forked from GitHub-Mirrors/foundry-sw5e

add structure for Hull, Shield, and Power Dice to allow for recharge, refitting, and regeneration. Not complete.
69 lines
No EOL
2.1 KiB
JavaScript
69 lines
No EOL
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);
|
|
});
|
|
}
|
|
} |