forked from public/foundryvtt-reve-de-dragon
Gestion des jets de moral #40
This commit is contained in:
@ -1189,6 +1189,45 @@ export class RdDActor extends Actor {
|
||||
this.update( { "data.blessures": blessures } );
|
||||
}
|
||||
|
||||
async jetDeMoral(situation) {
|
||||
let jetMoral = new Roll("1d20").roll();
|
||||
RdDDice.show(jetMoral);
|
||||
let compteurs = duplicate(this.data.data.compteurs);
|
||||
compteurs.moral.value = Misc.toInt(compteurs.moral.value);
|
||||
const succes = jetMoral.total <= 10 + compteurs.moral.value;
|
||||
let ajustementMoral = this._calculAjustementMoral(succes, compteurs.moral, situation);
|
||||
if (ajustementMoral != 0) {
|
||||
compteurs.moral.value += ajustementMoral;
|
||||
if (compteurs.moral.value>3) {
|
||||
// exaltation
|
||||
compteurs.moral.value --;
|
||||
compteurs.exaltation.value = Misc.toInt(compteurs.exaltation.value) + 1;
|
||||
}
|
||||
if (compteurs.moral.value<-3) {
|
||||
// dissolution
|
||||
compteurs.moral.value ++;
|
||||
compteurs.dissolution.value = Misc.toInt(compteurs.dissolution.value) + 1;
|
||||
}
|
||||
await this.update( { 'data.compteurs': compteurs} );
|
||||
}
|
||||
ChatMessage.create({
|
||||
whisper: ChatMessage.getWhisperRecipients(game.user.name),
|
||||
content: "Jet de moral ("+ jetMoral.total + ")" + (succes? "réussi": "manqué") + " en situation "+situation+", vous "+(ajustementMoral>0? "gagnez du moral":ajustementMoral<0? "perdez du moral": "gardez votre moral")
|
||||
});
|
||||
}
|
||||
|
||||
_calculAjustementMoral(succes, moral, situation)
|
||||
{
|
||||
switch (situation) {
|
||||
case 'heureuse': return succes ? 1 : 0;
|
||||
case 'malheureuse':return succes ? 0 : -1;
|
||||
case 'neutre':
|
||||
if (succes && moral <= 0) return 1;
|
||||
if (!succes && moral > 0) return -1;
|
||||
}
|
||||
return 0;
|
||||
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async ethylismeTest() {
|
||||
let rollData = {
|
||||
@ -1648,7 +1687,7 @@ export class RdDActor extends Actor {
|
||||
// Cas de désir lancinant, pas d'expérience sur particulière
|
||||
if ( this.checkDesirLancinant() ) {
|
||||
ChatMessage.create( { content: `Vous souffrez au moins d'un Désir Lancinant, vous ne pouvez pas gagner d'expérience sur une Particulière tant que le désir n'est pas assouvi`,
|
||||
whisper: ChatMessage.getWhisperRecipients(game.user.name) } ).create();
|
||||
whisper: ChatMessage.getWhisperRecipients(game.user.name) } );
|
||||
return { result:false, xpcarac:0, xpCompetence: 0 };
|
||||
}
|
||||
|
||||
@ -1672,7 +1711,7 @@ export class RdDActor extends Actor {
|
||||
await this.update( {"data.carac": carac } );
|
||||
} else {
|
||||
ChatMessage.create( { content: `Vous avez ${xpCarac} à répartir pour la caractérisque dérivée ${caracName}. Vous devez le faire manuellement.`,
|
||||
whisper: ChatMessage.getWhisperRecipients(game.user.name) } ).create();
|
||||
whisper: ChatMessage.getWhisperRecipients(game.user.name) } );
|
||||
}
|
||||
return { result:true, xpcarac:xpCarac, xpCompetence: xpComp }; //XP
|
||||
}
|
||||
|
Reference in New Issue
Block a user