Fix appel au moral

Maintenant géré pour les cas autres qu'un jet de compétence pur:

- attaque/défense
- tâches
- carac pure
- arts
- jeu

Message à la 2ème personne, la 3eme est utilisée juste pour le "titre"
des messages
This commit is contained in:
Vincent Vandemeulebrouck
2021-03-15 00:10:29 +01:00
parent 1de15d0b32
commit 396f73ec22
16 changed files with 58 additions and 35 deletions

View File

@ -1708,7 +1708,7 @@ export class RdDActor extends Actor {
createCallbackAppelAuMoral() { /* Si l'appel au moral est utilisé, on l'affiche dans le chat et on diminue éventuellement le moral */
return {
condition: r => r.use.appelAuMoral && game.settings.get("core", "rollMode") != 'selfroll',
action: r => { this.displayAppelAuMoral ; this._appliquerAppelMoral(r, game.settings.get("core", "rollMode") != 'blindroll') }
action: r => this._appliquerAppelMoral(r)
};
}
@ -1786,9 +1786,10 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
async _appliquerAppelMoral(rollData, display = true) {
if (!this.isPersonnage()) return;
if (!rollData.rolled.isEchec) return;
this.moralIncDec(-1); /* L'appel au moral a échoué. Le personnage perd un point de moral */
rollData.jetEchouerMoralDiminuer = true;
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;
}
}
/* -------------------------------------------- */
@ -2013,6 +2014,7 @@ export class RdDActor extends Actor {
label: 'Jet ' + Grammar.apostrophe('de', rollData.selectedCarac.label),
callbacks: [
this.createCallbackExperience(),
this.createCallbackAppelAuMoral(),
{ action: r => this._onRollCaracResult(r) }
]
}
@ -2049,7 +2051,7 @@ export class RdDActor extends Actor {
label: 'Jet ' + Grammar.apostrophe('de', name),
callbacks: [
this.createCallbackExperience(),
this.createCallbackAppelAuMoral(),
this.createCallbackAppelAuMoral(),
{ action: r => this._competenceResult(r) }
]
});
@ -2096,6 +2098,7 @@ export class RdDActor extends Actor {
label: 'Jet de Tâche ' + tache.name,
callbacks: [
this.createCallbackExperience(),
this.createCallbackAppelAuMoral(),
{ condition: r => r.rolled.isETotal, action: r => this._tacheETotal(r) },
{ action: r => this._tacheResult(r) }
]
@ -2144,6 +2147,7 @@ export class RdDActor extends Actor {
height: 600,
callbacks: [
this.createCallbackExperience(),
this.createCallbackAppelAuMoral(),
{ action: r => callBackResult(r) }
]
});
@ -2982,6 +2986,7 @@ export class RdDActor extends Actor {
label: 'Tache Alchimique',
callbacks: [
this.createCallbackExperience(),
this.createCallbackAppelAuMoral(),
{ action: r => this._alchimieResult(r, false) }
]
}