From ba8276ef371267f1392f89f596cf9dd73577d23a Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Sat, 31 Aug 2024 00:21:24 +0200 Subject: [PATCH] =?UTF-8?q?Possibilit=C3=A9=20d'accorder=20un=20personnage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le drag&drop d'un acteur depuis la liste des acteurs sur la fiche d'une entité incarnée permet d'accorder le personnage --- changelog.md | 2 ++ module/actor/base-actor-reve.js | 4 ++-- module/actor/creature.js | 23 ----------------------- module/actor/entite-sheet.js | 6 ++++++ module/actor/entite.js | 16 ++++++---------- 5 files changed, 16 insertions(+), 35 deletions(-) diff --git a/changelog.md b/changelog.md index 5a696201..bfe40009 100644 --- a/changelog.md +++ b/changelog.md @@ -5,6 +5,8 @@ - les effets draconiques d'un souffle/queue - mise à jour des points de tâche des blessures lors des soins - pas d'expérience sur les particulières quand aucun MJ n'est connecté +- Le drag&drop d'un acteur depuis la liste des acteurs sur la fiche + d'une entité incarnée permet d'accorder le personnage ## 12.0.6 - Le bazar d'Astrobazzarh - Corrections de l'inventaire en bazar: diff --git a/module/actor/base-actor-reve.js b/module/actor/base-actor-reve.js index 840e6adf..f2a9205c 100644 --- a/module/actor/base-actor-reve.js +++ b/module/actor/base-actor-reve.js @@ -508,8 +508,8 @@ export class RdDBaseActorReve extends RdDBaseActor { isEntiteAccordee(attacker) { return true } - async setEntiteReveAccordee(attacker) { - ui.notifications.error("Impossible de s'accorder à " + this.name + ": ce n'est pas une entite de cauchemer/rêve"); + async setEntiteReveAccordee(actor) { + ui.notifications.error("Impossible de s'accorder à " + this.name + ": ce n'est pas une entité incarnée"); } } diff --git a/module/actor/creature.js b/module/actor/creature.js index b50c1e43..67b36168 100644 --- a/module/actor/creature.js +++ b/module/actor/creature.js @@ -33,27 +33,4 @@ export class RdDCreature extends RdDBaseActorSang { } } - isEntiteAccordee(attacker) { - if (this.isEntite([ENTITE_INCARNE])) { - let resonnance = this.system.sante.resonnance - return (resonnance.actors.find(it => it == attacker.id)) - } - return true - } - - /* -------------------------------------------- */ - async setEntiteReveAccordee(attacker) { - if (this.isEntite([ENTITE_INCARNE])) { - let resonnance = foundry.utils.duplicate(this.system.sante.resonnance); - if (resonnance.actors.find(it => it == attacker.id)) { - // déjà accordé - return; - } - await this.update({ "system.sante.resonnance": [...resonnance, attacker.id] }); - } - else { - super.setEntiteReveAccordee(attacker) - } - } - } diff --git a/module/actor/entite-sheet.js b/module/actor/entite-sheet.js index 354f4429..d0c485f4 100644 --- a/module/actor/entite-sheet.js +++ b/module/actor/entite-sheet.js @@ -54,6 +54,12 @@ export class RdDActorEntiteSheet extends RdDBaseActorReveSheet { }); } + async _onDropActor(event, dragData) { + const dropActor = fromUuidSync(dragData.uuid) + await this.actor.setEntiteReveAccordee(dropActor) + super._onDropActor(event, dragData) + } + async deleteSubActeur(actorId) { let newResonances = this.actor.system.sante.resonnance.actors.filter(id => id != actorId); await this.actor.update({ 'system.sante.resonnance.actors': newResonances }, { renderSheet: false }); diff --git a/module/actor/entite.js b/module/actor/entite.js index d8052088..ca63f334 100644 --- a/module/actor/entite.js +++ b/module/actor/entite.js @@ -67,7 +67,7 @@ export class RdDEntite extends RdDBaseActorReve { if (this.isNonIncarnee()) { return } - await RdDEncaisser.encaisser(this) + await RdDEncaisser.encaisser(this) } isEffectAllowed(effectId) { @@ -91,20 +91,16 @@ export class RdDEntite extends RdDBaseActorReve { } /* -------------------------------------------- */ - async setEntiteReveAccordee(attacker) { + async setEntiteReveAccordee(actor) { if (this.isEntite([ENTITE_INCARNE])) { - let resonnance = foundry.utils.duplicate(this.system.sante.resonnance); - if (resonnance.actors.find(it => it == attacker.id)) { + if (this.system.sante.resonnance.actors.find(it => it == actor.id)) { // déjà accordé - return; + return } - resonnance.actors.push(attacker.id); - await this.update({ "system.sante.resonnance": resonnance }); + await this.update({ "system.sante.resonnance.actors": [...this.system.sante.resonnance.actors, actor.id] }) } else { - super.setEntiteReveAccordee(attacker) + super.setEntiteReveAccordee(actor) } } - - }