forked from GitHub-Mirrors/foundry-sw5e

DND5e Core 1.3.5 modded to SW5e System Combining with DND5e Core 1.3.2 to see one big commit since last core update DND5e Core 1.3.2 modded to SW5e System
67 lines
No EOL
2 KiB
JavaScript
67 lines
No EOL
2 KiB
JavaScript
/**
|
|
* A helper Dialog subclass for completing a long rest
|
|
* @extends {Dialog}
|
|
*/
|
|
export default class LongRestDialog extends Dialog {
|
|
constructor(actor, dialogData = {}, options = {}) {
|
|
super(dialogData, options);
|
|
this.actor = actor;
|
|
}
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
/** @override */
|
|
static get defaultOptions() {
|
|
return mergeObject(super.defaultOptions, {
|
|
template: "systems/sw5e/templates/apps/long-rest.html",
|
|
classes: ["sw5e", "dialog"]
|
|
});
|
|
}
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
/** @override */
|
|
getData() {
|
|
const data = super.getData();
|
|
const variant = game.settings.get("sw5e", "restVariant");
|
|
data.promptNewDay = variant !== "gritty"; // It's always a new day when resting 1 week
|
|
data.newDay = variant === "normal"; // It's probably a new day when resting normally (8 hours)
|
|
return data;
|
|
}
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
/**
|
|
* A helper constructor function which displays the Long Rest confirmation dialog and returns a Promise once it's
|
|
* workflow has been resolved.
|
|
* @param {Actor5e} actor
|
|
* @return {Promise}
|
|
*/
|
|
static async longRestDialog({ actor } = {}) {
|
|
return new Promise((resolve, reject) => {
|
|
const dlg = new this(actor, {
|
|
title: game.i18n.localize("SW5E.LongRest"),
|
|
buttons: {
|
|
rest: {
|
|
icon: '<i class="fas fa-bed"></i>',
|
|
label: game.i18n.localize("SW5E.Rest"),
|
|
callback: html => {
|
|
let newDay = true;
|
|
if (game.settings.get("sw5e", "restVariant") !== "gritty")
|
|
newDay = html.find('input[name="newDay"]')[0].checked;
|
|
resolve(newDay);
|
|
}
|
|
},
|
|
cancel: {
|
|
icon: '<i class="fas fa-times"></i>',
|
|
label: game.i18n.localize("Cancel"),
|
|
callback: reject
|
|
}
|
|
},
|
|
default: 'rest',
|
|
close: reject
|
|
});
|
|
dlg.render(true);
|
|
});
|
|
}
|
|
} |