Gestion des signes draconiques #455

Closed
vincent.vandeme wants to merge 233 commits from v1.4-signes-draconiques into master
Showing only changes of commit c6c098b635 - Show all commits

View File

@ -1474,7 +1474,7 @@ export class RdDActor extends Actor {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
async santeIncDec(name, inc, isCritique = false) { async santeIncDec(name, inc, options = {isCritique: false, ethylisme: false}) {
const sante = duplicate(Misc.templateData(this).sante); const sante = duplicate(Misc.templateData(this).sante);
let compteur = sante[name]; let compteur = sante[name];
@ -1491,7 +1491,7 @@ export class RdDActor extends Actor {
//console.log("New value ", inc, minValue, result.newValue); //console.log("New value ", inc, minValue, result.newValue);
let fatigue = 0; let fatigue = 0;
if (name == "endurance" && !this.isEntiteCauchemar()) { if (name == "endurance" && !this.isEntiteCauchemar()) {
if (result.newValue == 0 && inc < 0 && !isCritique) { // perte endurance et endurance devient 0 (sauf critique) -> -1 vie if (result.newValue == 0 && inc < 0 && !options.isCritique) { // perte endurance et endurance devient 0 (sauf critique) -> -1 vie
sante.vie.value--; sante.vie.value--;
} }
result.newValue = Math.max(0, result.newValue); result.newValue = Math.max(0, result.newValue);
@ -1499,7 +1499,7 @@ export class RdDActor extends Actor {
result.newValue = Math.min(result.newValue, this._computeEnduranceMax()) result.newValue = Math.min(result.newValue, this._computeEnduranceMax())
} }
const perte = compteur.value - result.newValue; const perte = compteur.value - result.newValue;
if (perte > 1) { if (perte > 1 && !options.ethylisme) {
// Peut-être sonné si 2 points d'endurance perdus d'un coup // Peut-être sonné si 2 points d'endurance perdus d'un coup
const testIsSonne = await this.testSiSonne(sante, result.newValue); const testIsSonne = await this.testSiSonne(sante, result.newValue);
result.sonne = testIsSonne.sonne; result.sonne = testIsSonne.sonne;
@ -1669,7 +1669,7 @@ export class RdDActor extends Actor {
let enduranceLost = new Roll("1d6").roll().total; let enduranceLost = new Roll("1d6").roll().total;
rollDataView.enduranceLost = enduranceLost; rollDataView.enduranceLost = enduranceLost;
await this.santeIncDec("endurance", -enduranceLost, false); await this.santeIncDec("endurance", -enduranceLost, {ethylisme:true});
// Qui a bu boira (p 164) // Qui a bu boira (p 164)
let rollVolonte = await RdDResolutionTable.roll(actorData.data.carac.volonte.value, Math.min(ethylisme.value, 0) + actorData.data.compteurs.moral.value); 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.rollVolonteIsSuccess = rollVolonte.isSuccess;
@ -2948,7 +2948,7 @@ export class RdDActor extends Actor {
const perteVie = this.isEntiteCauchemar() const perteVie = this.isEntiteCauchemar()
? { newValue: 0 } ? { newValue: 0 }
: await this.santeIncDec("vie", - encaissement.vie); : await this.santeIncDec("vie", - encaissement.vie);
const perteEndurance = await this.santeIncDec("endurance", -encaissement.endurance, (encaissement.critiques > 0)); const perteEndurance = await this.santeIncDec("endurance", -encaissement.endurance, {critiques: encaissement.critiques > 0});
this.computeEtatGeneral(); this.computeEtatGeneral();
this.sheet.render(false); this.sheet.render(false);