From dcc0f0acfdfdc4bc298c2c6b9b7f1a0fb03559ca Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Mon, 5 Jun 2023 19:57:57 +0200 Subject: [PATCH 1/2] Fix: validation encaissement MJ --- module/actor.js | 16 +++++++++++----- module/actor/base-actor.js | 1 + module/dialog-validation-encaissement.js | 9 +++++---- module/rdd-carac.js | 9 --------- module/rdd-roll.js | 2 +- module/rolldata-ajustements.js | 9 ++++++++- 6 files changed, 26 insertions(+), 20 deletions(-) diff --git a/module/actor.js b/module/actor.js index 64adae39..29f089fb 100644 --- a/module/actor.js +++ b/module/actor.js @@ -3204,25 +3204,31 @@ export class RdDActor extends RdDBaseActor { if (attacker && !await attacker.accorder(this, 'avant-encaissement')) { return; } + const attackerId = attacker?.id; if (ReglesOptionelles.isUsing('validation-encaissement-gr') && !game.user.isGM) { RdDBaseActor.remoteActorCall({ actorId: this.id, - method: 'validerEncaissement', - args: [rollData, show] + method: 'appliquerEncaissement', + args: [rollData, show, attackerId] }); return; } + await this.appliquerEncaissement(rollData, show, attackerId); + } + + async appliquerEncaissement(rollData, show, attackerId) { const armure = await this.computeArmure(rollData); if (ReglesOptionelles.isUsing('validation-encaissement-gr')) { - DialogValidationEncaissement.validerEncaissement(this, rollData, armure, show, (encaissement, show) => this._appliquerEncaissement(encaissement, show, attacker)); + DialogValidationEncaissement.validerEncaissement(this, rollData, armure, show, attackerId, (encaissement, show, attackerId) => this._appliquerEncaissement(encaissement, show, attackerId)); } else { let encaissement = await RdDUtility.jetEncaissement(rollData, armure, { showDice: SHOW_DICE }); - await this._appliquerEncaissement(encaissement, show, attacker) + await this._appliquerEncaissement(encaissement, show, attackerId); } } - async _appliquerEncaissement(encaissement, show, attacker) { + async _appliquerEncaissement(encaissement, show, attackedId) { + const attacker = attackedId ? game.actors.get(attackedId) : undefined let santeOrig = duplicate(this.system.sante); const blessure = await this.ajouterBlessure(encaissement, attacker); // Will update the result table diff --git a/module/actor/base-actor.js b/module/actor/base-actor.js index 92746eea..59b15b25 100644 --- a/module/actor/base-actor.js +++ b/module/actor/base-actor.js @@ -3,6 +3,7 @@ import { SYSTEM_SOCKET_ID } from "../constants.js"; import { Monnaie } from "../item-monnaie.js"; import { Misc } from "../misc.js"; import { RdDAudio } from "../rdd-audio.js"; +import { RdDConfirm } from "../rdd-confirm.js"; import { RdDUtility } from "../rdd-utility.js"; import { SystemCompendiums } from "../settings/system-compendiums.js"; import { APP_ASTROLOGIE_REFRESH } from "../sommeil/app-astrologie.js"; diff --git a/module/dialog-validation-encaissement.js b/module/dialog-validation-encaissement.js index 4172bcfe..a8808466 100644 --- a/module/dialog-validation-encaissement.js +++ b/module/dialog-validation-encaissement.js @@ -7,7 +7,7 @@ import { RdDUtility } from "./rdd-utility.js"; */ export class DialogValidationEncaissement extends Dialog { - static async validerEncaissement(actor, rollData, armure, show, onEncaisser) { + static async validerEncaissement(actor, rollData, armure, show, attackerId, onEncaisser) { let encaissement = await RdDUtility.jetEncaissement(rollData, armure, { showDice: HIDE_DICE }); const html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/dialog-validation-encaissement.html', { actor: actor, @@ -15,12 +15,12 @@ export class DialogValidationEncaissement extends Dialog { encaissement: encaissement, show: show }); - const dialog = new DialogValidationEncaissement(html, actor, rollData, armure, encaissement, show, onEncaisser); + const dialog = new DialogValidationEncaissement(html, actor, rollData, armure, encaissement, show, attackerId, onEncaisser); dialog.render(true); } /* -------------------------------------------- */ - constructor(html, actor, rollData, armure, encaissement, show, onEncaisser) { + constructor(html, actor, rollData, armure, encaissement, show, attackerId, onEncaisser) { // Common conf let buttons = { "valider": { label: "Valider", callback: html => this.onValider() }, @@ -48,6 +48,7 @@ export class DialogValidationEncaissement extends Dialog { this.armure = armure; this.encaissement = encaissement; this.show = show; + this.attackerId = attackerId; this.onEncaisser = onEncaisser; this.forceDiceResult = {total: encaissement.roll.result }; } @@ -66,6 +67,6 @@ export class DialogValidationEncaissement extends Dialog { async onValider() { this.encaissement = await RdDUtility.jetEncaissement(this.rollData, this.armure, { showDice: SHOW_DICE, forceDiceResult: this.forceDiceResult}); - this.onEncaisser(this.encaissement, this.show) + this.onEncaisser(this.encaissement, this.show, this.attackerId) } } diff --git a/module/rdd-carac.js b/module/rdd-carac.js index f5a905dc..10a23e5b 100644 --- a/module/rdd-carac.js +++ b/module/rdd-carac.js @@ -58,15 +58,6 @@ export class RdDCarac { selectedCarac?.label.match(/(Apparence|Force|Agilité|Dextérité|Vue|Ouïe|Odorat-Goût|Empathie|Dérobée|Mêlée|Tir|Lancer)/); } - static isIgnoreEtatGeneral(rollData) { - const selectedCarac = rollData.selectedCarac; - return !selectedCarac || - rollData.ethylisme || - RdDCarac.isChance(selectedCarac) || - (RdDCarac.isReve(selectedCarac) && !rollData.competence); - } - - static computeTotal(carac, beaute = undefined) { const total = Object.values(carac ?? {}).filter(c => !c.derivee) .map(it => parseInt(it.value)) diff --git a/module/rdd-roll.js b/module/rdd-roll.js index 4266e995..e558902c 100644 --- a/module/rdd-roll.js +++ b/module/rdd-roll.js @@ -314,8 +314,8 @@ export class RdDRoll extends Dialog { HtmlUtility.showControlWhen(this.html.find(".use-encTotal"), rollData.ajustements.encTotal.visible && RdDCarac.isAgiliteOuDerobee(rollData.selectedCarac)); HtmlUtility.showControlWhen(this.html.find(".use-surenc"), rollData.ajustements.surenc.visible && RdDCarac.isActionPhysique(rollData.selectedCarac)); HtmlUtility.showControlWhen(this.html.find(".utilisation-moral"), rollData.use.appelAuMoral); - HtmlUtility.showControlWhen(this.html.find(".diffMoral"), rollData.ajustements.moralTotal.used); HtmlUtility.showControlWhen(this.html.find(".divAppelAuMoral"), rollData.use.appelAuMoral); + HtmlUtility.showControlWhen(this.html.find(".diffMoral"), rollData.ajustements.moralTotal.used); // Mise à jour valeurs this.html.find(".dialog-roll-title").text(this._getTitle(rollData)); diff --git a/module/rolldata-ajustements.js b/module/rolldata-ajustements.js index b42884f4..71879f2a 100644 --- a/module/rolldata-ajustements.js +++ b/module/rolldata-ajustements.js @@ -51,7 +51,7 @@ export const referenceAjustements = { getValue: (rollData, actor) => RdDBonus.find(rollData.surpriseDefenseur).attaque, }, etat: { - isUsed: (rollData, actor) => !RdDCarac.isIgnoreEtatGeneral(rollData), + isUsed: (rollData, actor) => !RollDataAjustements.isIgnoreEtatGeneral(rollData), getLabel: (rollData, actor) => 'Etat général', getValue: (rollData, actor) => actor.getEtatGeneral({ ethylisme: rollData.forceAlcool != undefined }) }, @@ -177,4 +177,11 @@ export class RollDataAjustements { return sum; } + static isIgnoreEtatGeneral(rollData) { + const selectedCarac = rollData.selectedCarac; + return !selectedCarac || + rollData.ethylisme || + RdDCarac.isChance(selectedCarac) || + (RdDCarac.isReve(selectedCarac) && !rollData.competence); + } } From 727701bdcd3ca745197f5041f01f061c00a46afb Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Mon, 5 Jun 2023 20:00:31 +0200 Subject: [PATCH 2/2] v10.7.17 --- changelog.md | 3 +++ system.json | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/changelog.md b/changelog.md index c3ee9e59..1f1898e0 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,9 @@ --- # v10.7 - L'os de Semolosse +## v10.7.17 - le doigt du destin de Semolosse +- correction de la validation d'encaissement par le MJ + ## v10.7.16 - la morsure de Semolosse - correction de l'affichage des objets suite à confusion - correction de liens dans la liste des équipements diff --git a/system.json b/system.json index 63eaa33f..f2d961e2 100644 --- a/system.json +++ b/system.json @@ -1,8 +1,8 @@ { "id": "foundryvtt-reve-de-dragon", "title": "Rêve de Dragon", - "version": "10.7.16", - "download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-10.7.16.zip", + "version": "10.7.17", + "download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-10.7.17.zip", "manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/v10/system.json", "compatibility": { "minimum": "10",