From e22b6c52f1ebd7791ddd11674978fea9f30a92e8 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Mon, 6 Jun 2022 21:01:38 +0200 Subject: [PATCH] =?UTF-8?q?Fix=20m=C3=A9ditation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - augmentation du malus en cas d'échec particulier/total - le malus affecte négativement la méditation - en cas d'échec, aucun signe n'est créé --- module/actor.js | 13 ++++++------- module/item-meditation.js | 2 +- module/item-signedraconique.js | 31 +++++++++++++++---------------- 3 files changed, 22 insertions(+), 24 deletions(-) diff --git a/module/actor.js b/module/actor.js index 5e97c81e..a6e5f525 100644 --- a/module/actor.js +++ b/module/actor.js @@ -2838,20 +2838,19 @@ export class RdDActor extends Actor { } /* -------------------------------------------- */ - async _meditationResult(meditationData) { + async _meditationResult(meditationRoll) { this.santeIncDec("fatigue", 2); - const signeData = RdDItemSigneDraconique.prepareSigneDraconiqueMeditation(meditationData.meditation, meditationData.rolled) - if (signeData) { - await this.createEmbeddedDocuments("Item", [signeData]); + if (meditationRoll.rolled.isSuccess) { + await this.createEmbeddedDocuments("Item", [RdDItemSigneDraconique.prepareSigneDraconiqueMeditation(meditationRoll.meditation, meditationRoll.rolled)]); } - await RdDResolutionTable.displayRollData(meditationData, this.name, 'chat-resultat-meditation.html'); + await RdDResolutionTable.displayRollData(meditationRoll, this.name, 'chat-resultat-meditation.html'); } /* -------------------------------------------- */ - _meditationEPart(meditationData) { - this.updateEmbeddedDocuments('Item', [{ _id: meditationData._id, 'data.malus': meditationData.meditation.data.malus - 1 }]); + _meditationEPart(meditationRoll) { + this.updateEmbeddedDocuments('Item', [{ _id: meditationRoll.meditation._id, 'data.malus': meditationRoll.meditation.data.malus - 1 }]); } diff --git a/module/item-meditation.js b/module/item-meditation.js index 7ba0b076..fb77f098 100644 --- a/module/item-meditation.js +++ b/module/item-meditation.js @@ -3,7 +3,7 @@ export class RdDItemMeditation { static calculDifficulte(rollData) { if (rollData.meditation) { // Malus permanent éventuel - let diff = -rollData.meditation.data.malus ?? 0; + let diff = rollData.meditation.data.malus ?? 0; if (!rollData.conditionMeditation.isHeure) diff -= 2; if (!rollData.conditionMeditation.isVeture) diff -= 2; if (!rollData.conditionMeditation.isComportement) diff -= 2; diff --git a/module/item-signedraconique.js b/module/item-signedraconique.js index e93dc9df..b540a9aa 100644 --- a/module/item-signedraconique.js +++ b/module/item-signedraconique.js @@ -13,25 +13,24 @@ const tableSignesIndicatifs = [ ] +const DIFFICULTE_LECTURE_SIGNE_MANQUE = +11; + export class RdDItemSigneDraconique { static prepareSigneDraconiqueMeditation(meditation, rolled) { - if (rolled.isSuccess != undefined) { - meditation = Misc.data(meditation); - return { - name: "de la " + meditation.name, - type: "signedraconique", - img: meditation.img, - data: { - typesTMR: [TMRUtility.typeTmrName(meditation.data.tmr)], - difficulte: RdDItemSigneDraconique.getDiffSigneMeditation(rolled.code), - ephemere: true, - duree: "1 round", - valeur: { "norm": 3, "sign": 5, "part": 10 } - } - }; - } - return undefined; + meditation = Misc.data(meditation); + return { + name: "de la " + meditation.name, + type: "signedraconique", + img: meditation.img, + data: { + typesTMR: [TMRUtility.typeTmrName(meditation.data.tmr)], + difficulte: rolled.isSuccess ? RdDItemSigneDraconique.getDiffSigneMeditation(rolled.code) : DIFFICULTE_LECTURE_SIGNE_MANQUE, + ephemere: true, + duree: "1 round", + valeur: rolled.isSuccess ? { "norm": 3, "sign": 5, "part": 10 } : { "norm": 0, "sign": 0, "part": 0 } + } + }; } static getDiffSigneMeditation(code) {