diff --git a/module/actor.js b/module/actor.js index 0e130098..f6b1cee3 100644 --- a/module/actor.js +++ b/module/actor.js @@ -651,7 +651,7 @@ export class RdDActor extends RdDBaseActor { if (dormi.etat == 'eveil') { 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; } if (!options.grisReve) { @@ -666,8 +666,8 @@ export class RdDActor extends RdDBaseActor { } async dormirDesHeures(jetsReve, message, heures, options) { - const dormi = { heures: 1, etat: 'dort' }; - for (; dormi.heures <= heures && dormi.etat == 'dort'; dormi.heures++) { + const dormi = { heures: 0, etat: 'dort' }; + for (; dormi.heures < heures && dormi.etat == 'dort'; dormi.heures++) { await this._recupererEthylisme(message); if (options.grisReve) { await this.recupererFatigue(message); diff --git a/module/sommeil/dialog-chateau-dormant.js b/module/sommeil/dialog-chateau-dormant.js index 33ce5a28..49faa706 100644 --- a/module/sommeil/dialog-chateau-dormant.js +++ b/module/sommeil/dialog-chateau-dormant.js @@ -1,4 +1,3 @@ -import { EffetsDraconiques } from "../tmr/effets-draconiques.js"; export class DialogChateauDormant extends Dialog { @@ -76,28 +75,31 @@ export class DialogChateauDormant extends Dialog { async onChateauDormant() { const motifStress = this.html.find("form input[name='motifStress']").val(); - const consignesChateauDormant = jQuery.map(this.html.find('li.set-sommeil-actor'), it => { - const actorRow = this.html.find(it); - const actorId = actorRow.data('actor-id'); - const actor = this.getActor(actorId); - const insomnie = actorRow.find('input.sommeil-insomnie').is(':checked'); - return { - actor, - ignorer: actorRow.find('input.sommeil-ignorer').is(':checked'), - stress: { - motif: motifStress, - valeur: Number.parseInt(actorRow.find('input.sommeil-stress').val()), - }, - sommeil: { - nouveaujour: true, - date: this.dialogData.finChateauDormant, - insomnie: insomnie, - heures: insomnie ? 0 : Number.parseInt(actorRow.find('input.sommeil-heures').val()), - moral: actor.moral, - } - } - }); - consignesChateauDormant.forEach(async consigne => await consigne.actor.prepareChateauDormant(consigne)) + jQuery.map( + this.html.find('li.set-sommeil-actor'), + it => this.extractConsigneActor(this.html.find(it), motifStress) + ).forEach(async consigne => await consigne.actor.prepareChateauDormant(consigne)) } + + extractConsigneActor(actorRow, motifStress) { + const actorId = actorRow.data('actor-id'); + const actor = this.getActor(actorId); + const insomnie = actorRow.find('input.sommeil-insomnie').is(':checked'); + return { + actor, + ignorer: actorRow.find('input.sommeil-ignorer').is(':checked'), + stress: { + motif: motifStress, + valeur: Number.parseInt(actorRow.find('input.sommeil-stress').val()), + }, + sommeil: { + nouveaujour: true, + date: this.dialogData.finChateauDormant, + insomnie: insomnie, + heures: insomnie ? 0 : Number.parseInt(actorRow.find('input.sommeil-heures').val()), + moral: actor.system.sommeil.moral ?? 'neutre', + } + }; + } } \ No newline at end of file diff --git a/system.json b/system.json index 90ba7fe9..cb06707d 100644 --- a/system.json +++ b/system.json @@ -1,8 +1,8 @@ { "id": "foundryvtt-reve-de-dragon", "title": "Rêve de Dragon", - "version": "10.6.17", - "download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-10.6.17.zip", + "version": "10.6.18", + "download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-10.6.18.zip", "manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/v10/system.json", "compatibility": { "minimum": "10",