From 3001ae44de26444f233e1e149a4a721e308cef11 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Sat, 24 Jun 2023 00:58:45 +0200 Subject: [PATCH] =?UTF-8?q?Endurance=20limit=C3=A9e=20en=20cas=20d'insomni?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- module/actor.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/module/actor.js b/module/actor.js index c6848e1b..f77aea82 100644 --- a/module/actor.js +++ b/module/actor.js @@ -621,14 +621,14 @@ export class RdDActor extends RdDBaseActor { whisper: ChatUtility.getWhisperRecipientsAndGMs(this.name), content: this.name + ': ' }; - await this.recupereEndurance(message); - if (this.system.sommeil?.insomnie || heures == 0) { + const insomnie = this.system.sommeil?.insomnie || heures == 0; + await this.recupereEndurance({message:message, demi:insomnie}); + if (insomnie) { message.content += 'Vous ne trouvez pas le sommeil'; } else { let jetsReve = []; let dormi = await this.dormirDesHeures(jetsReve, message, heures, options); - message.content += `Vous dormez ${dormi.heures <= 1 ? 'une heure' : (dormi.heures + ' heures')}. `; if (jetsReve.length > 0) { message.content += `Vous récupérez ${jetsReve.filter(it => it >= 0).reduce(Misc.joining("+"))} Points de rêve. `; } @@ -636,6 +636,7 @@ export class RdDActor extends RdDBaseActor { message.content += 'Vous êtes réveillé par un Rêve de Dragon.' } options.chateauDormant = options.chateauDormant && dormi.heures >= heures; + message.content += `Vous avez dormi ${dormi.heures <= 1 ? 'une heure' : (dormi.heures + ' heures')}. `; } if (!options.grisReve) { @@ -702,8 +703,13 @@ export class RdDActor extends RdDBaseActor { } /* -------------------------------------------- */ - async recupereEndurance(message) { - const manquant = this._computeEnduranceMax() - this.system.sante.endurance.value; + async recupereEndurance({message, demi}) { + let max = this._computeEnduranceMax(); + if (demi) { + max = Math.floor(max/2); + } + const manquant = max - this.system.sante.endurance.value; + if (manquant > 0) { await this.santeIncDec("endurance", manquant); message.content += `Vous récuperez ${manquant} points d'endurance. `; @@ -1706,6 +1712,7 @@ export class RdDActor extends RdDBaseActor { await this.rollTache(tache.id); } } + async actionHerbe(item, onActionItem = async () => { }) { if (item.isHerbeAPotion()) { return DialogFabriquerPotion.create(this, item, onActionItem);