Option pour état général hors éthylisme

Préparation pour les abus de nourriture et boissons
This commit is contained in:
Vincent Vandemeulebrouck
2021-04-06 23:39:27 +02:00
parent 674582d6e8
commit e8626f3566
3 changed files with 34 additions and 24 deletions

View File

@ -227,8 +227,14 @@ export class RdDActor extends Actor {
return Misc.toInt(Misc.templateData(this).attributs.protection.value);
}
/* -------------------------------------------- */
getEtatGeneral() {
return Misc.toInt(Misc.templateData(this).compteurs.etat?.value);
getEtatGeneral(options = { ethylisme: false }) {
const tplData = Misc.templateData(this);
let etatGeneral = Misc.toInt(tplData.compteurs.etat?.value);
if (options.ethylisme) {
// Pour les jets d'Ethylisme, on ignore le degré d'éthylisme (p.162)
etatGeneral -= Math.min(0, tplData.compteurs.ethylisme.value);
}
return etatGeneral;
}
getMalusArmure() {
return Misc.toInt(Misc.templateData(this).attributs?.malusarmure?.value);
@ -1461,8 +1467,8 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
_calculAjustementMoral(succes, moral, situation) {
switch (situation) {
case 'heureuse': return succes ? 1 : 0;
case 'malheureuse': return succes ? 0 : -1;
case 'heureux': case 'heureuse': return succes ? 1 : 0;
case 'malheureuse': case 'malheureux': return succes ? 0 : -1;
case 'neutre':
if (succes && moral <= 0) return 1;
if (!succes && moral > 0) return -1;
@ -1482,19 +1488,18 @@ export class RdDActor extends Actor {
}
/* -------------------------------------------- */
async ethylismeTest() {
async jetEthylisme(forceAlcool = 0) {
const actorData = Misc.data(this);
let rollData = {
vieValue: actorData.data.sante.vie.value,
etat: this.getEtatGeneral() - Math.min(0, actorData.data.compteurs.ethylisme.value), // Pour les jets d'Ethylisme, on ignore le degré d'éthylisme (p.162)
forceAlcool: forceAlcool,
etat: this.getEtatGeneral({ ethylisme: true }),
diffNbDoses: -Number(actorData.data.compteurs.ethylisme.nb_doses || 0),
finalLevel: 0,
diffConditions: 0,
ajustementsConditions: CONFIG.RDD.ajustementsConditions,
forceAlcool: 0
diffConditions: 0
}
let html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/dialog-roll-ethylisme.html', rollData);
new RdDRollDialogEthylisme(html, rollData, this).render(true);
new RdDRollDialogEthylisme(html, rollData, this, r => this.performEthylisme(r)).render(true);
}
/* -------------------------------------------- */