appel à la destinée et chance avec callbacks

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)
This commit is contained in:
Vincent Vandemeulebrouck 2021-01-07 00:29:38 +01:00
parent 8000ee4156
commit 212a94afee

View File

@ -1758,7 +1758,7 @@ export class RdDActor extends Actor {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
async rollAppelChance( ) async rollAppelChance( onSuccess = () => {}, onEchec= ()=>{})
{ {
let rollData = { selectedCarac: this.getCaracByName('chance-actuelle'), surprise: '' }; let rollData = { selectedCarac: this.getCaracByName('chance-actuelle'), surprise: '' };
const dialog = await RdDRoll.create(this, rollData, const dialog = await RdDRoll.create(this, rollData,
@ -1768,7 +1768,9 @@ export class RdDActor extends Actor {
label: 'Appel à la chance', label: 'Appel à la chance',
callbacks: [ callbacks: [
this.createCallbackExperience(), 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); chance.value = Math.max(chance.value + value, 0);
await this.update( {"data.compteurs.chance": chance } ); await this.update( {"data.compteurs.chance": chance } );
} }
/* -------------------------------------------- */
async appelDestinee( onSuccess = () => {}, onEchec= ()=>{}) {
if (this.data.data.compteurs.destinee?.value ?? 0 >0 ) {
ChatMessage.create({content: `<span class="rdd-roll-part">${this.name} a fait appel à la Destinée !</span>` });
let destinee = duplicate(this.data.data.compteurs.destinee);
destinee.value = destinee.value - 1;
await this.update( {"data.compteurs.destinee": destinee } );
onSuccess();
}
else {
onEchec();
}
}
/* -------------------------------------------- */ /* -------------------------------------------- */
ajustementAstrologique() { ajustementAstrologique() {