Decompte des heure en cas de réveil
Si le gardien gère la durée des nuits, en cas de rêve de dragon, les heures restant à dormir sont mises à jour.
This commit is contained in:
parent
78336a3f45
commit
4b1381e535
@ -622,7 +622,7 @@ export class RdDActor extends RdDBaseActor {
|
||||
content: this.name + ': '
|
||||
};
|
||||
const insomnie = this.system.sommeil?.insomnie || heures == 0;
|
||||
await this.recupereEndurance({message:message, demi:insomnie});
|
||||
await this.recupereEndurance({ message: message, demi: insomnie });
|
||||
if (insomnie) {
|
||||
message.content += 'Vous ne trouvez pas le sommeil';
|
||||
}
|
||||
@ -630,10 +630,10 @@ export class RdDActor extends RdDBaseActor {
|
||||
let jetsReve = [];
|
||||
let dormi = await this.dormirDesHeures(jetsReve, message, heures, options);
|
||||
if (jetsReve.length > 0) {
|
||||
message.content += `Vous récupérez ${jetsReve.map(it => it <0 ? '(dragon)' : it).reduce(Misc.joining("+"))} Points de rêve. `;
|
||||
message.content += `Vous récupérez ${jetsReve.map(it => it < 0 ? '(dragon)' : it).reduce(Misc.joining("+"))} Points de rêve. `;
|
||||
}
|
||||
if (dormi.etat == 'eveil') {
|
||||
message.content += 'Vous êtes réveillé par un Rêve de Dragon.'
|
||||
await this.reveilReveDeDragon(message, dormi.heures);
|
||||
}
|
||||
options.chateauDormant = options.chateauDormant && dormi.heures >= heures;
|
||||
message.content += `Vous avez dormi ${dormi.heures <= 1 ? 'une heure' : (dormi.heures + ' heures')}. `;
|
||||
@ -650,6 +650,14 @@ export class RdDActor extends RdDBaseActor {
|
||||
}
|
||||
}
|
||||
|
||||
async reveilReveDeDragon(message, heures) {
|
||||
message.content += 'Vous êtes réveillé par un Rêve de Dragon.';
|
||||
const restant = Math.max(this.system.sommeil?.heures - heures, 0)
|
||||
if (restant > 0) {
|
||||
await this.update({ 'system.sommeil': { heures: restant } });
|
||||
}
|
||||
}
|
||||
|
||||
async dormirDesHeures(jetsReve, message, heures, options) {
|
||||
const dormi = { heures: 0, etat: 'dort' };
|
||||
for (; dormi.heures < heures && dormi.etat == 'dort'; dormi.heures++) {
|
||||
@ -703,10 +711,10 @@ export class RdDActor extends RdDBaseActor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async recupereEndurance({message, demi}) {
|
||||
async recupereEndurance({ message, demi }) {
|
||||
let max = this._computeEnduranceMax();
|
||||
if (demi) {
|
||||
max = Math.floor(max/2);
|
||||
max = Math.floor(max / 2);
|
||||
}
|
||||
const manquant = max - this.system.sante.endurance.value;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user