63770790b9
Arrêter d'utiliser le jQuery $(selector) qui cause des effets de bord si plusieurs élements de la page (ie: foundry) correspondent au selector. Stocker le html dans les Sheet/Dialogs lors de l'appel activateListeners afin de pouvoir s'y référer ensuite. Utiliser this.html.find pour chercher dans le html de la fenêtre courante. Eliminer les référence par id html car l'id est unique (donc ne marche pas en multi-fenêtres)
57 lines
1.7 KiB
JavaScript
57 lines
1.7 KiB
JavaScript
import { Misc } from "./misc.js";
|
|
|
|
export class DialogRepos extends Dialog {
|
|
|
|
static async create(actor) {
|
|
const html = await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/dialog-repos.html", actor);
|
|
const dialog = new DialogRepos(html, actor);
|
|
dialog.render(true);
|
|
}
|
|
|
|
constructor(html, actor) {
|
|
let options = { classes: ["DialogCreateSigneDraconiqueActorsActors"], width: 500, height: 400, 'z-index': 99999 };
|
|
let conf = {
|
|
title: "Se reposer",
|
|
content: html,
|
|
default: "repos",
|
|
buttons: {
|
|
"repos": { label: "Se reposer", callback: async it => { this.repos(); } }
|
|
}
|
|
};
|
|
super(conf, options);
|
|
this.actor = actor;
|
|
}
|
|
activateListeners(html) {
|
|
super.activateListeners(html);
|
|
this.html = html;
|
|
}
|
|
/* -------------------------------------------- */
|
|
|
|
async repos() {
|
|
await this.html.find("[name='nb-heures']").change();
|
|
await this.html.find("[name='nb-jours']").change();
|
|
const selection = await this.html.find("[name='repos']:checked").val();
|
|
const nbHeures = Number.parseInt(await this.html.find("[name='nb-heures']").val());
|
|
const nbJours = Number.parseInt(await this.html.find("[name='nb-jours']").val());
|
|
switch (selection) {
|
|
case "sieste": {
|
|
await this.actor.dormir(nbHeures);
|
|
return;
|
|
}
|
|
case "nuit": {
|
|
let heuresDormies = await this.actor.dormir(nbHeures);
|
|
if (heuresDormies == nbHeures) {
|
|
await this.actor.dormirChateauDormant();
|
|
}
|
|
return;
|
|
}
|
|
case "chateau-dormant":
|
|
await this.actor.dormirChateauDormant();
|
|
return;
|
|
case "gris-reve": {
|
|
await this.actor.grisReve(nbJours);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
} |