Endurance limitée en cas d'insomnie

This commit is contained in:
Vincent Vandemeulebrouck 2023-06-24 00:58:45 +02:00
parent a43ceb3188
commit 3001ae44de
1 changed files with 12 additions and 5 deletions

View File

@ -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);