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: '' };
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() }
]
}
);
@ -1790,6 +1792,21 @@ export class RdDActor extends Actor {
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() {
if (this.isCreature()) {