diff --git a/module/actor-sheet.js b/module/actor-sheet.js index 6abc9c39..a9fcc32e 100644 --- a/module/actor-sheet.js +++ b/module/actor-sheet.js @@ -124,7 +124,6 @@ export class RdDActorSheet extends ActorSheet { this.armesList = duplicate(formData.data.combat); formData.data.carac.taille.isTaille = true; // To avoid button link; - formData.data.compteurs.chance.isChance = true; formData.data.blessures.resume = this.actor.computeResumeBlessure(formData.data.blessures); // Mise à jour de l'encombrement total et du prix de l'équipement @@ -290,11 +289,11 @@ export class RdDActorSheet extends ActorSheet { this.actor.rollCarac(caracName.toLowerCase()); }); - html.find('#chance-actuelle').click((event) => { + html.find('.chance-actuelle').click((event) => { this.actor.rollCarac('chance-actuelle'); }); - html.find('#chance-appel').click((event) => { + html.find('.chance-appel').click((event) => { this.actor.rollAppelChance(); }); @@ -500,7 +499,7 @@ export class RdDActorSheet extends ActorSheet { html.find('#ethylisme').change((event) => { this.actor.setEthylisme(parseInt(event.target.value)); }); - html.find('#stress-test').click((event) => { + html.find('.stress-test').click((event) => { this.actor.transformerStress(); this.render(true); }); diff --git a/module/actor.js b/module/actor.js index d7ac680c..8b046d36 100644 --- a/module/actor.js +++ b/module/actor.js @@ -1535,6 +1535,7 @@ export class RdDActor extends Actor { } await this.update({ 'data.compteurs': compteurs }); } + return compteurs.moral.value; } /* -------------------------------------------- */ @@ -1625,7 +1626,7 @@ export class RdDActor extends Actor { content: "Décidément, vous avez l'alcool triste, vous perdez finalement un point de moral!", whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name) }); - this.moralIncDec(-1); + await this.moralIncDec(-1); } } } @@ -1789,9 +1790,11 @@ export class RdDActor extends Actor { /* -------------------------------------------- */ async _appliquerAppelMoral(rollData, display = true) { if (!this.isPersonnage()) return; - if (rollData.rolled.isEchec || (rollData.rolled.roll * rollData.ajustements.diviseurSignificative > rollData.score)) { - this.moralIncDec(-1); /* L'appel au moral a échoué. Le personnage perd un point de moral */ - rollData.perteMoralEchec = true; + if (!rollData.useMoral) return; + if (rollData.rolled.isEchec || + (rollData.ajustements.diviseurSignificative && (rollData.rolled.roll * rollData.ajustements.diviseurSignificative > rollData.score))) { + rollData.perteMoralEchec = rollData.moral<=-3? 'dissolution' : 'perte'; + rollData.moral = await this.moralIncDec(-1); /* L'appel au moral a échoué. Le personnage perd un point de moral */ } } diff --git a/module/rdd-roll.js b/module/rdd-roll.js index be625be5..07462460 100644 --- a/module/rdd-roll.js +++ b/module/rdd-roll.js @@ -125,7 +125,7 @@ export class RdDRoll extends Dialog { if (action.callbacks) for (let callback of action.callbacks) { if (callback.condition == undefined || callback.condition(this.rollData)) { - callback.action(this.rollData); + await callback.action(this.rollData); } } } diff --git a/templates/actor-sheet.html b/templates/actor-sheet.html index 0a23c621..84b0b5a8 100644 --- a/templates/actor-sheet.html +++ b/templates/actor-sheet.html @@ -161,7 +161,7 @@ {{#each data.attributs as |attr key|}}