diff --git a/module/actor.js b/module/actor.js index 0364d399..d898c7cf 100644 --- a/module/actor.js +++ b/module/actor.js @@ -1426,34 +1426,32 @@ export class RdDActor extends Actor { /* -------------------------------------------- */ async actionRefoulement(item) { const refoulement = item?.system.refoulement ?? 0; - if (refoulement>0) { + if (refoulement > 0) { RdDConfirm.confirmer({ settingConfirmer: "confirmation-refouler", content: `

Prennez-vous le risque de refouler ${item.name} pour ${refoulement} points de refoulement ?

`, title: 'Confirmer la refoulement', buttonLabel: 'Refouler', onAction: async () => { - ChatMessage.create({ - whisper: ChatUtility.getWhisperRecipientsAndGMs(this.name), - content: `${this.name} a refoulé une queue ${item.nname} pour ${refoulement} points de refoulement` - }); - await this.ajouterRefoulement(refoulement); + await this.ajouterRefoulement(refoulement, `une queue ${item.name}`); await item.delete(); } - }) + }); } } - + /* -------------------------------------------- */ - async ajouterRefoulement(value = 1) { - let refoulement = this.system.reve.refoulement.value + value; - let total = await RdDDice.rollTotal("1d20"); - if (total <= refoulement) { + async ajouterRefoulement(value = 1, refouler) { + const refoulement = this.system.reve.refoulement.value + value; + const roll = new Roll("1d20"); + await roll.evaluate({ async: true }); + await roll.toMessage({ flavor: `${this.name} refoule ${refouler} pour ${value} points de refoulement (total: ${refoulement})` }); + if (roll.total <= refoulement) { refoulement = 0; await this.ajouterSouffle({ chat: true }); } await this.update({ "system.reve.refoulement.value": refoulement }); - return refoulement == 0 ? "souffle" : "none"; + return roll; } /* -------------------------------------------- */ diff --git a/module/rdd-tmr-dialog.js b/module/rdd-tmr-dialog.js index 53557756..5a65cc89 100644 --- a/module/rdd-tmr-dialog.js +++ b/module/rdd-tmr-dialog.js @@ -289,9 +289,8 @@ export class RdDTMRDialog extends Dialog { /* -------------------------------------------- */ async refouler() { - this._tellToGM(this.actor.name + " a refoulé : " + this.currentRencontre.name); + await this.actor.ajouterRefoulement(this.currentRencontre.refoulement ?? 1, `une rencontre ${this.currentRencontre.name}`); await this.actor.deleteTMRRencontreAtPosition(); // Remove the stored rencontre if necessary - await this.actor.ajouterRefoulement(this.currentRencontre.refoulement ?? 1); this.updateTokens(); console.log("-> refouler", this.currentRencontre) this.updateValuesDisplay(); @@ -300,7 +299,7 @@ export class RdDTMRDialog extends Dialog { /* -------------------------------------------- */ async ignorerRencontre() { - this._tellToGM(this.actor.name + " a ignoré : " + this.currentRencontre.name); + this._tellToGM(this.actor.name + " a ignoré: " + this.currentRencontre.name); await this.actor.deleteTMRRencontreAtPosition(); // Remove the stored rencontre if necessary this.updateTokens(); this.updateValuesDisplay(); diff --git a/templates/actor/carac-main.html b/templates/actor/carac-main.html index d3fb3aaa..08e550d8 100644 --- a/templates/actor/carac-main.html +++ b/templates/actor/carac-main.html @@ -11,7 +11,7 @@