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:
@ -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) }
|
||||
]
|
||||
}
|
||||
|
@ -700,6 +700,7 @@ export class RdDCombat {
|
||||
label: 'Attaque: ' + (arme?.name ?? competence.name),
|
||||
callbacks: [
|
||||
this.attacker.createCallbackExperience(),
|
||||
this.attacker.createCallbackAppelAuMoral(),
|
||||
{ action: r => this.removeChatMessageActionsPasseArme(r.passeArme) },
|
||||
{ condition: r => arme && !RdDCombat.isParticuliere(r), action: r => this.attacker.incDecItemUse(arme._id) },
|
||||
{ condition: r => (RdDCombat.isReussite(r) && !RdDCombat.isParticuliere(r)), action: r => this._onAttaqueNormale(r) },
|
||||
@ -936,6 +937,7 @@ export class RdDCombat {
|
||||
label: 'Parade: ' + (arme ? arme.name : rollData.competence.name),
|
||||
callbacks: [
|
||||
this.defender.createCallbackExperience(),
|
||||
this.defender.createCallbackAppelAuMoral(),
|
||||
{ action: r => this.removeChatMessageActionsPasseArme(r.passeArme) },
|
||||
{ condition: r => !RdDCombat.isParticuliere(r), action: r => this.defender.incDecItemUse(armeParadeId) },
|
||||
{ condition: RdDCombat.isReussite, action: r => this._onParadeNormale(r) },
|
||||
@ -1039,6 +1041,7 @@ export class RdDCombat {
|
||||
label: 'Esquiver',
|
||||
callbacks: [
|
||||
this.defender.createCallbackExperience(),
|
||||
this.defender.createCallbackAppelAuMoral(),
|
||||
{ condition: r => !RdDCombat.isParticuliere(r), action: r => this.defender.incDecItemUse(esquive._id) },
|
||||
{ action: r => this.removeChatMessageActionsPasseArme(r.passeArme) },
|
||||
{ condition: RdDCombat.isReussite, action: r => this._onEsquiveNormale(r) },
|
||||
|
@ -54,7 +54,7 @@ export class RdDRoll extends Dialog {
|
||||
useMalusSurenc: false,
|
||||
appelAuMoralPossible : false, /* Est-ce que l'appel au moral est possible ? Variable utisé pour l'affichage ou non de la ligne concernant le moral */
|
||||
appelAuMoralDemander :false, /* Est-ce que le joueur demande d'utiliser le moral ? Utile si le joueur change plusieurs fois de carac associée. */
|
||||
jetEchouerMoralDiminuer : false, /* Pour l'affichage dans le chat */
|
||||
perteMoralEchec : false, /* Pour l'affichage dans le chat */
|
||||
use: { libre: true, conditions: true, surenc: false, encTotal: false, appelAuMoral : false /* Le jet se fait ou non en utilisant l'appel au moral */},
|
||||
isMalusEncombrementTotal: RdDItemCompetence.isMalusEncombrementTotal(rollData.competence),
|
||||
useMalusEncTotal: false,
|
||||
|
Reference in New Issue
Block a user