From fad894704d7004af59f0c564b2611bbcc28a569d Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Wed, 1 May 2024 01:08:41 +0200 Subject: [PATCH] Fix: encaisser dommages par MJ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lorsque l'option d'encaisser les dommages était contrôlée par le MJ, les données envoyées par les joueurs ne correspondaient pas aux paramètres de la méthode à exécuter par le MJ. De plus, l'envoi de l'attacker (Actor) était reçu comme un Object, donc inutilisable en tant qu'Actor. --- module/actor/base-actor-reve.js | 8 ++++++-- module/rdd-combat.js | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/module/actor/base-actor-reve.js b/module/actor/base-actor-reve.js index 1765340d..166aff9c 100644 --- a/module/actor/base-actor-reve.js +++ b/module/actor/base-actor-reve.js @@ -421,6 +421,10 @@ export class RdDBaseActorReve extends RdDBaseActor { /* -------------------------------------------- */ async encaisser() { await RdDEncaisser.encaisser(this) } + async encaisserDommagesRemote(rollData, attackerId, show) { + const attacker = game.actors.get(attackerId); + await this.encaisserDommages(rollData, attacker, show) + } async encaisserDommages(rollData, attacker = undefined, show = undefined) { if (attacker && !await attacker.accorder(this, 'avant-encaissement')) { return; @@ -430,8 +434,8 @@ export class RdDBaseActorReve extends RdDBaseActor { RdDBaseActor.remoteActorCall({ tokenId: this.token?.id, actorId: this.id, - method: 'encaisserDommages', - args: [rollData, show, attackerId] + method: 'encaisserDommagesRemote', + args: [rollData, attackerId, show] }); return; } diff --git a/module/rdd-combat.js b/module/rdd-combat.js index 32887eed..c7058834 100644 --- a/module/rdd-combat.js +++ b/module/rdd-combat.js @@ -1282,7 +1282,7 @@ export class RdDCombat { attackerRoll.defenderTokenId = defenderTokenId; await this.computeRecul(defenderRoll); - this.defender.encaisserDommages(attackerRoll, this.attacker, defenderRoll?.show); + await this.defender.encaisserDommages(attackerRoll, this.attacker, defenderRoll?.show); } else { // envoi à un GM: les joueurs n'ont pas le droit de modifier les personnages qu'ils ne possèdent pas game.socket.emit(SYSTEM_SOCKET_ID, {