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

View File

@ -621,14 +621,14 @@ export class RdDActor extends RdDBaseActor {
whisper: ChatUtility.getWhisperRecipientsAndGMs(this.name), whisper: ChatUtility.getWhisperRecipientsAndGMs(this.name),
content: this.name + ': ' content: this.name + ': '
}; };
await this.recupereEndurance(message); const insomnie = this.system.sommeil?.insomnie || heures == 0;
if (this.system.sommeil?.insomnie || heures == 0) { await this.recupereEndurance({message:message, demi:insomnie});
if (insomnie) {
message.content += 'Vous ne trouvez pas le sommeil'; message.content += 'Vous ne trouvez pas le sommeil';
} }
else { else {
let jetsReve = []; let jetsReve = [];
let dormi = await this.dormirDesHeures(jetsReve, message, heures, options); 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) { if (jetsReve.length > 0) {
message.content += `Vous récupérez ${jetsReve.filter(it => it >= 0).reduce(Misc.joining("+"))} Points de rêve. `; 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.' message.content += 'Vous êtes réveillé par un Rêve de Dragon.'
} }
options.chateauDormant = options.chateauDormant && dormi.heures >= heures; options.chateauDormant = options.chateauDormant && dormi.heures >= heures;
message.content += `Vous avez dormi ${dormi.heures <= 1 ? 'une heure' : (dormi.heures + ' heures')}. `;
} }
if (!options.grisReve) { if (!options.grisReve) {
@ -702,8 +703,13 @@ export class RdDActor extends RdDBaseActor {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
async recupereEndurance(message) { async recupereEndurance({message, demi}) {
const manquant = this._computeEnduranceMax() - this.system.sante.endurance.value; let max = this._computeEnduranceMax();
if (demi) {
max = Math.floor(max/2);
}
const manquant = max - this.system.sante.endurance.value;
if (manquant > 0) { if (manquant > 0) {
await this.santeIncDec("endurance", manquant); await this.santeIncDec("endurance", manquant);
message.content += `Vous récuperez ${manquant} points d'endurance. `; message.content += `Vous récuperez ${manquant} points d'endurance. `;
@ -1706,6 +1712,7 @@ export class RdDActor extends RdDBaseActor {
await this.rollTache(tache.id); await this.rollTache(tache.id);
} }
} }
async actionHerbe(item, onActionItem = async () => { }) { async actionHerbe(item, onActionItem = async () => { }) {
if (item.isHerbeAPotion()) { if (item.isHerbeAPotion()) {
return DialogFabriquerPotion.create(this, item, onActionItem); return DialogFabriquerPotion.create(this, item, onActionItem);