Update "Jet d'ethylisme" to use a handlebars template

This commit is contained in:
raphaelpieroni 2021-04-28 23:25:48 +02:00
parent d486fa7aff
commit 0c57a243f7
2 changed files with 42 additions and 43 deletions

View File

@ -83,8 +83,8 @@ export class RdDActor extends Actor {
/**
* Override the create() function to provide additional RdD functionality.
*
* This overrided create() function adds initial items
* Namely: Basic skills, money,
* This overrided create() function adds initial items
* Namely: Basic skills, money,
*
* @param {Object} actorData Barebones actor data which this function adds onto.
* @param {Object} options (Unused) Additional options which customize the creation workflow.
@ -909,7 +909,7 @@ export class RdDActor extends Actor {
}
/* -------------------------------------------- */
/** Supprime un item d'un conteneur, sur la base
/** Supprime un item d'un conteneur, sur la base
* de leurs ID */
async enleverDeConteneur(itemId, conteneur) {
if (conteneur?.isConteneur()) { // Si présent
@ -926,7 +926,7 @@ export class RdDActor extends Actor {
}
/* -------------------------------------------- */
/** Ajoute un item dans un conteneur, sur la base
/** Ajoute un item dans un conteneur, sur la base
* de leurs ID */
async ajouterDansConteneur(itemId, conteneur) {
if (conteneur?.isConteneur()) {
@ -1617,40 +1617,37 @@ export class RdDActor extends Actor {
const actorData = Misc.data(this);
let ethylisme = duplicate(actorData.data.compteurs.ethylisme);
// Je d'ethylisme
// Jet d'ethylisme
let rollEthylisme = await RdDResolutionTable.roll(rollData.vieValue, rollData.finalLevel);
let msgText = RdDResolutionTable.explain(rollEthylisme) + "<br>";
let rollDataView = {
forceAlcool: rollData.forceAlcool,
rollEthylismeIsSuccess: rollEthylisme.isSuccess,
rollEthylismeText: RdDResolutionTable.explain(rollEthylisme),
};
if (rollEthylisme.isSuccess) {
ethylisme.nb_doses++;
msgText += `Vous avez réussi votre jet d'éthylisme, vous avez consommé ${ethylisme.nb_doses} doses sans effet.`;
rollDataView.doses = ethylisme.nb_doses;
} else {
ethylisme.value = Math.max(ethylisme.value - 1, -7);
ethylisme.nb_doses = 0;
rollDataView.doses = ethylisme.nb_doses;
rollDataView.ajustementEthylique = ethylisme.value;
rollDataView.nomEthylisme = RdDUtility.getNomEthylisme(ethylisme.value);
let enduranceLost = new Roll("1d6").roll().total;
await this.santeIncDec("endurance", -enduranceLost);
const ajustementEthylique = ethylisme.value;
rollDataView.enduranceLost = enduranceLost;
await this.santeIncDec("endurance", -enduranceLost, false);
// Qui a bu boira (p 164)
let rollVolonte = await RdDResolutionTable.roll(actorData.data.carac.volonte.value, Math.min(ajustementEthylique, 0) + actorData.data.compteurs.moral.value);
const quiABuBoira = (rollVolonte.isSuccess
? "vous êtes libre de continuer à boire ou pas."
: "vous avez une envie irrépréssible de reprendre un verre.");
msgText += `Vous avez échoué à votre jet d'éthylisme, vous êtes
maintenant ${RdDUtility.getNomEthylisme(ajustementEthylique)} (${ajustementEthylique}).
<br> ${RdDResolutionTable.explain(rollVolonte)}
<br>Qui a bu boira : ${quiABuBoira}`;
let rollVolonte = await RdDResolutionTable.roll(actorData.data.carac.volonte.value, Math.min(ethylisme.value, 0) + actorData.data.compteurs.moral.value);
rollDataView.rollVolonteIsSuccess = rollVolonte.isSuccess;
rollDataView.rollVolonteText = RdDResolutionTable.explain(rollVolonte);
}
ChatMessage.create({
content: msgText,
whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name)
});
RdDResolutionTable.displayRollData(rollDataView, this, 'chat-resultat-ethylisme.html');
if (rollEthylisme.isEchec) {
await this._jetDeMoralEthylique(ethylisme);
}
await this.update({ 'data.compteurs.ethylisme': ethylisme });
await this.update({'data.compteurs.ethylisme': ethylisme});
}
/* -------------------------------------------- */
@ -1663,7 +1660,7 @@ export class RdDActor extends Actor {
if (ethylisme.value == -1 && adjust <= 0) {
// alcool triste
ChatMessage.create({
content: "Décidément, vous avez l'alcool triste, vous perdez finalement un point de moral!",
content: "Décidément, vous avez l'alcool triste, vous perdez finalement un point de moral !",
whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name)
});
await this.moralIncDec(-1);
@ -2637,7 +2634,7 @@ export class RdDActor extends Actor {
});
}
}
return { result: true, xpCarac: xpCarac, xpCompetence: xpComp }; //XP
return { result: true, xpCarac: xpCarac, xpCompetence: xpComp }; //XP
}
return { result: false, xpCarac: 0, xpCompetence: 0 }; // Pas d'XP
}

View File

@ -1,24 +1,26 @@
<h4>
{{alias}} {{#if isSortReserve}}met en réserve{{else}}lance{{/if}}
le {{#if selectedSort.data.isrituel}}rituel{{else}}sort{{/if}}
{{selectedSort.name}}
{{alias}} bois un verre d'alcool de force {{forceAlcool}}
</h4>
<div>Pour {{selectedSort.data.ptreve_reel}} point{{~#if (gt selectedSort.data.ptreve_reel 1)}}s{{/if}} de rêve en {{coordLabel}} ({{coord}}).
{{#if show.reveInsuffisant}}
<span>Pas assez de rêve!</span>
{{/if}}
</div>
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.html"}}
<hr>
<div>
<span>
{{#if rolled.isETotal}}Echec TOTAL
{{else if rolled.isEchec}}Echec
{{else}}Réussite{{/if}}
du {{#if selectedSort.data.isrituel}}rituel{{else}}sort{{/if}},
{{#if (eq depenseReve 0)}}pas de dépense de rêve
{{else if (eq depenseReve 1)}}1 point de rêve a été dépensé
{{else}}{{depenseReve}} points de rêve ont été dépensés
{{~/if}}.
{{{rollEthylismeText}}}
<br/>
{{#if rollEthylismeIsSuccess}}
Vous avez réussi votre jet d'éthylisme, vous avez consommé {{doses}} doses sans effet.
{{else}}
Vous avez échoué à votre jet d'éthylisme, vous êtes maintenant {{nomEthylisme}} ({{ajustementEthylique}}).
<br/>
Vous perdez {{enduranceLost}} points d'endurance.
<br/>
Qui a bu boira :
{{{rollVolonteText}}}
<br/>
{{#if rollVolonteIsSuccess}}
Vous êtes libre de continuer à boire ou pas.
{{else}}
Vous avez une envie irrépréssible de reprendre un verre
{{/if}}
{{/if}}
</span>
</div>