Merge pull request 'v11 - sommeil' (#752) from VincentVk/foundryvtt-reve-de-dragon:v11 into v11
Reviewed-on: #752
This commit is contained in:
commit
40be65a94e
@ -243,7 +243,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
}
|
||||
await this.resetInfoSommeil()
|
||||
ChatMessage.create(message);
|
||||
this.sheet.render(true);
|
||||
setTimeout(() => this.sheet.render(), 20)
|
||||
}
|
||||
|
||||
async _recuperationSante(message) {
|
||||
@ -299,7 +299,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
ChatMessage.create(message);
|
||||
}
|
||||
await this.resetInfoSommeil();
|
||||
this.sheet.render(true);
|
||||
setTimeout(() => this.sheet.render(), 20)
|
||||
}
|
||||
}
|
||||
|
||||
@ -442,10 +442,9 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
message.content += 'Vous ne trouvez pas le sommeil';
|
||||
}
|
||||
else {
|
||||
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 ? '0 (réveil)' : it).reduce(Misc.joining("+"))} Points de rêve. `;
|
||||
let dormi = await this.$dormirDesHeures(message, heures, options);
|
||||
if (dormi.jetsReve.length > 0) {
|
||||
message.content += `Vous récupérez ${dormi.jetsReve.map(it => it < 0 ? '0 (réveil)' : it).reduce(Misc.joining("+"))} Points de rêve. `;
|
||||
}
|
||||
if (dormi.etat == 'eveil') {
|
||||
await this.reveilReveDeDragon(message, dormi.heures);
|
||||
@ -461,7 +460,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
await this.dormirChateauDormant();
|
||||
}
|
||||
else {
|
||||
this.sheet.render(true);
|
||||
setTimeout(() => this.sheet.render(), 20)
|
||||
}
|
||||
}
|
||||
|
||||
@ -472,18 +471,18 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
}
|
||||
}
|
||||
|
||||
async dormirDesHeures(jetsReve, message, heures, options) {
|
||||
const dormi = { heures: 0, etat: 'dort' };
|
||||
async $dormirDesHeures(message, heures, options) {
|
||||
const dormi = { heures: 0, etat: 'dort', jetsReve: [] };
|
||||
for (; dormi.heures < heures && dormi.etat == 'dort'; dormi.heures++) {
|
||||
await this._recupererEthylisme(message);
|
||||
await this.$recupererEthylisme(message);
|
||||
if (options.grisReve) {
|
||||
await this.recupererFatigue(message);
|
||||
await this.$recupererFatigue(message);
|
||||
}
|
||||
else if (!this.system.sommeil?.insomnie) {
|
||||
await this.recupererFatigue(message);
|
||||
dormi.etat = await this.jetRecuperationReve(jetsReve, message);
|
||||
await this.$recupererFatigue(message);
|
||||
await this.$jetRecuperationReve(dormi, message);
|
||||
if (dormi.etat == 'dort' && EffetsDraconiques.isDonDoubleReve(this)) {
|
||||
dormi.etat = await this.jetRecuperationReve(jetsReve, message);
|
||||
dormi.etat = await this.$jetRecuperationReve(dormi, message);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -491,35 +490,36 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async jetRecuperationReve(jetsReve, message) {
|
||||
async $jetRecuperationReve(dormi, message) {
|
||||
if (this.getReveActuel() < this.system.reve.seuil.value) {
|
||||
let reve = await RdDDice.rollTotal("1dr");
|
||||
const reve = await RdDDice.rollTotal("1dr")
|
||||
if (reve >= 7) {
|
||||
// Rêve de Dragon !
|
||||
message.content += `Vous faites un <strong>Rêve de Dragon</strong> de ${reve} Points de rêve qui vous réveille! `;
|
||||
await this.combattreReveDeDragon(reve);
|
||||
jetsReve.push(-1);
|
||||
return 'eveil';
|
||||
dormi.jetsReve.push(-1);
|
||||
dormi.etat = 'eveil'
|
||||
return
|
||||
}
|
||||
else {
|
||||
if (!ReglesOptionnelles.isUsing("recuperation-reve")) {
|
||||
ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(this),
|
||||
content: `Pas de récupération de rêve (${reve} points ignorés)`
|
||||
});
|
||||
jetsReve.push(0);
|
||||
})
|
||||
dormi.jetsReve.push(0)
|
||||
}
|
||||
else {
|
||||
await this.reveActuelIncDec(reve);
|
||||
jetsReve.push(reve);
|
||||
await this.reveActuelIncDec(reve)
|
||||
dormi.jetsReve.push(reve)
|
||||
}
|
||||
}
|
||||
}
|
||||
return 'dort';
|
||||
dormi.etat = 'dort'
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async _recupererEthylisme(message) {
|
||||
async $recupererEthylisme(message) {
|
||||
if (!ReglesOptionnelles.isUsing("recuperation-ethylisme")) { return; }
|
||||
let value = Math.min(Number.parseInt(this.system.compteurs.ethylisme.value) + 1, 1);
|
||||
if (value <= 0) {
|
||||
@ -549,18 +549,15 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async recupererFatigue(message) {
|
||||
async $recupererFatigue(message) {
|
||||
if (ReglesOptionnelles.isUsing("appliquer-fatigue")) {
|
||||
let fatigue = this.system.sante.fatigue.value;
|
||||
const fatigueMin = this.getFatigueMin();
|
||||
let fatigue = this.system.sante.fatigue.value
|
||||
const fatigueMin = this.getFatigueMin()
|
||||
if (fatigue <= fatigueMin) {
|
||||
return;
|
||||
return
|
||||
}
|
||||
fatigue = Math.max(fatigueMin, this._calculRecuperationSegment(fatigue));
|
||||
setTimeout( // On attend un peu pour que le message de récupération de r
|
||||
async () => {
|
||||
await this.update({ 'system.sante.fatigue.value': fatigue });
|
||||
}, 200);
|
||||
fatigue = Math.max(fatigueMin, this._calculRecuperationSegment(fatigue))
|
||||
await this.update({ 'system.sante.fatigue.value': fatigue });
|
||||
if (fatigue == 0) {
|
||||
message.content += "Vous êtes complêtement reposé. ";
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
{
|
||||
"scripts": {
|
||||
"build": "npx vite build",
|
||||
"run": "npx vite serve",
|
||||
"packCompendiumsToDist": "node ./tools/packCompendiumsToDist.mjs",
|
||||
"packCompendiumsToPublic": "node ./tools/packCompendiumsToPublic.mjs",
|
||||
"unpackCompendiumsFromPublic": "node ./tools/unpackCompendiumsFromPublic.mjs"
|
||||
|
Loading…
x
Reference in New Issue
Block a user