From 65525cfd793656fc0c0742440d3f8b0a2fc6ac5a Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Mon, 13 May 2024 01:49:42 +0200 Subject: [PATCH] =?UTF-8?q?Correction=20r=C3=A9cup=C3=A9ration=20seuil?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La récupération de seuil sur Rêve de Dragon était empéchée par la gestion d'expérience quand aucune expérience n'était gagnée. Le même problème pouvait arriver pour d'autres raisons. --- module/actor.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/module/actor.js b/module/actor.js index c3d1ae9a..19d4c101 100644 --- a/module/actor.js +++ b/module/actor.js @@ -429,7 +429,7 @@ export class RdDActor extends RdDBaseActorSang { let jetsReve = []; let dormi = await this.dormirDesHeures(jetsReve, message, heures, options); if (jetsReve.length > 0) { - message.content += `Vous récupérez ${jetsReve.map(it => it < 0 ? '(dragon)' : it).reduce(Misc.joining("+"))} Points de rêve. `; + message.content += `Vous récupérez ${jetsReve.map(it => it < 0 ? '0 (réveil)' : it).reduce(Misc.joining("+"))} Points de rêve. `; } if (dormi.etat == 'eveil') { await this.reveilReveDeDragon(message, dormi.heures); @@ -450,7 +450,6 @@ export class RdDActor extends RdDBaseActorSang { } async reveilReveDeDragon(message, heures) { - message.content += 'Vous êtes réveillé par un Rêve de Dragon.'; const restant = Math.max(this.system.sommeil?.heures - heures, 0) if (restant > 0) { await this.update({ 'system.sommeil': { heures: restant } }); @@ -1333,7 +1332,7 @@ export class RdDActor extends RdDBaseActorSang { } await RdDResolutionTable.rollData(ethylismeData.jetVie); - this._appliquerExperienceRollData(ethylismeData.jetVie); + this._gererExperience(ethylismeData.jetVie); RollDataAjustements.calcul(ethylismeData.jetVie, this); if (ethylismeData.jetVie.rolled.isSuccess) { ethylisme.nb_doses++; @@ -1365,7 +1364,7 @@ export class RdDActor extends RdDBaseActorSang { finalLevel: Number(ethylisme.value) + Number(this.system.compteurs.moral.value) } await RdDResolutionTable.rollData(ethylismeData.jetVolonte); - this._appliquerExperienceRollData(ethylismeData.jetVolonte); + this._gererExperience(ethylismeData.jetVolonte); RollDataAjustements.calcul(ethylismeData.jetVolonte, this); } } @@ -1549,7 +1548,7 @@ export class RdDActor extends RdDBaseActorSang { const content = await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-actor-gain-xp.html`, { actor: this, xpData - }); + }) if (hideChatMessage) { ChatUtility.blindMessageToGM({ content: content }); } @@ -1779,13 +1778,13 @@ export class RdDActor extends RdDBaseActorSang { }; RollDataAjustements.calcul(rollData, this); await RdDResolutionTable.rollData(rollData); - this._appliquerExperienceRollData(rollData); + this._gererExperience(rollData); await RdDResolutionTable.displayRollData(rollData, this) return rollData.rolled; } /* -------------------------------------------- */ - _appliquerExperienceRollData(rollData) { + _gererExperience(rollData) { const callback = this.createCallbackExperience(); if (callback.condition(rollData)) { callback.action(rollData); @@ -2269,7 +2268,7 @@ export class RdDActor extends RdDBaseActorSang { async _appliquerExperience(rolled, caracName, competence, jetResistance) { // Pas d'XP if (!rolled.isPart || rolled.finalLevel >= 0) { - return undefined; + return [] } if (this.checkDesirLancinant()) { // Cas de désir lancinant, pas d'expérience sur particulière @@ -2277,7 +2276,7 @@ export class RdDActor extends RdDBaseActorSang { content: `Vous souffrez au moins d'un Désir Lancinant, vous ne pouvez pas gagner d'expérience sur une Particulière tant que le désir n'est pas assouvi`, whisper: ChatMessage.getWhisperRecipients(this.name) }); - return undefined; + return [] } let xp = Math.abs(rolled.finalLevel);