diff --git a/module/actor.js b/module/actor.js index 8102b7fa..178110e3 100644 --- a/module/actor.js +++ b/module/actor.js @@ -1117,16 +1117,31 @@ export class RdDActor extends Actor { /* -------------------------------------------- */ async transformerStress(message) { - const stress = Misc.toInt(this.data.data.compteurs.stress.value); + let compteurs = duplicate(this.data.data.compteurs); + const stress = Misc.toInt(compteurs.stress.value); + if (stress<=0) { return; } + + let stressRoll = await this._stressRoll(); let convertis = Math.floor(stress * stressRoll.factor); - - let compteurs = duplicate(this.data.data.compteurs); - compteurs.experience.value += convertis; compteurs.stress.value = Math.max(stress - convertis - 1, 0); + + let dissolution = Math.max(0, Misc.toInt(compteurs.dissolution.value)); + let exaltation = Math.max(0, Misc.toInt(compteurs.exaltation.value)); + const annule = Math.min(dissolution, exaltation); + dissolution -= annule; + exaltation -= annule; + if (dissolution>0) { + const perdus = Math.min(dissolution, convertis); + convertis -= perdus; + dissolution -= perdus; + } + compteurs.experience.value += convertis + exaltation; + compteurs.dissolution.value = dissolution; + compteurs.exaltation.value = 0; message.content += "
Vous transformez " + convertis + " points de Stress en Expérience" + stressRoll.comment; await this.update({ "data.compteurs": compteurs }); }