Gestion des signes draconiques #455

Closed
vincent.vandeme wants to merge 233 commits from v1.4-signes-draconiques into master
2 changed files with 42 additions and 43 deletions
Showing only changes of commit 0c57a243f7 - Show all commits

View File

@ -1617,35 +1617,32 @@ 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);

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>