From 212a94afee552142b9dc4ddfcdee4b4791edd659 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Thu, 7 Jan 2021 00:29:38 +0100 Subject: [PATCH] =?UTF-8?q?appel=20=C3=A0=20la=20destin=C3=A9e=20et=20chan?= =?UTF-8?q?ce=20avec=20callbacks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajout de callbacks pour être capable de réagir à un appel à la chance réussi ou manqué Ajout de méthode pour gérer un appel à la destinée (mêmes callbacks) --- module/actor.js | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/module/actor.js b/module/actor.js index 777d20a7..e0d09e07 100644 --- a/module/actor.js +++ b/module/actor.js @@ -1758,7 +1758,7 @@ export class RdDActor extends Actor { } /* -------------------------------------------- */ - async rollAppelChance( ) + async rollAppelChance( onSuccess = () => {}, onEchec= ()=>{}) { let rollData = { selectedCarac: this.getCaracByName('chance-actuelle'), surprise: '' }; const dialog = await RdDRoll.create(this, rollData, @@ -1768,7 +1768,9 @@ export class RdDActor extends Actor { label: 'Appel à la chance', callbacks: [ this.createCallbackExperience(), - { action: r => this._appelChanceResult(r) } + { action: r => this._appelChanceResult(r) }, + { condition: r=> r.rolled.isSuccess, action: r => onSuccess() }, + { condition: r=> r.rolled.isEchec, action: r => onEchec() } ] } ); @@ -1789,6 +1791,21 @@ export class RdDActor extends Actor { chance.value = Math.max(chance.value + value, 0); await this.update( {"data.compteurs.chance": chance } ); } + + /* -------------------------------------------- */ + async appelDestinee( onSuccess = () => {}, onEchec= ()=>{}) { + if (this.data.data.compteurs.destinee?.value ?? 0 >0 ) { + ChatMessage.create({content: `${this.name} a fait appel à la Destinée !` }); + let destinee = duplicate(this.data.data.compteurs.destinee); + destinee.value = destinee.value - 1; + await this.update( {"data.compteurs.destinee": destinee } ); + onSuccess(); + } + else { + onEchec(); + } + } + /* -------------------------------------------- */ ajustementAstrologique() {