forked from GitHub-Mirrors/foundry-sw5e
69 lines
2.1 KiB
JavaScript
69 lines
2.1 KiB
JavaScript
![]() |
/**
|
||
|
* A helper Dialog subclass for completing a refitting rest
|
||
|
* @extends {Dialog}
|
||
|
*/
|
||
|
export default class RefittingRestDialog 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/refitting-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 Refitting Rest confirmation dialog and returns a Promise once it's
|
||
|
* workflow has been resolved.
|
||
|
* @param {Actor5e} actor
|
||
|
* @return {Promise}
|
||
|
*/
|
||
|
static async refittingRestDialog({ actor } = {}) {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
const dlg = new this(actor, {
|
||
|
title: "Refitting Rest",
|
||
|
buttons: {
|
||
|
rest: {
|
||
|
icon: '<i class="fas fa-bed"></i>',
|
||
|
label: "Rest",
|
||
|
callback: html => {
|
||
|
let newDay = false;
|
||
|
if (game.settings.get("sw5e", "restVariant") === "normal")
|
||
|
newDay = html.find('input[name="newDay"]')[0].checked;
|
||
|
else if(game.settings.get("sw5e", "restVariant") === "gritty")
|
||
|
newDay = true;
|
||
|
resolve(newDay);
|
||
|
}
|
||
|
},
|
||
|
cancel: {
|
||
|
icon: '<i class="fas fa-times"></i>',
|
||
|
label: "Cancel",
|
||
|
callback: reject
|
||
|
}
|
||
|
},
|
||
|
default: 'rest',
|
||
|
close: reject
|
||
|
});
|
||
|
dlg.render(true);
|
||
|
});
|
||
|
}
|
||
|
}
|