39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
/**
|
|
* An application responsible for configuring how dice are rolled and evaluated.
|
|
*/
|
|
class DiceConfig extends FormApplication {
|
|
/** @inheritDoc */
|
|
static get defaultOptions() {
|
|
return foundry.utils.mergeObject(super.defaultOptions, {
|
|
id: "dice-config",
|
|
template: "templates/dice/config.html",
|
|
title: "DICE.CONFIG.Title",
|
|
width: 500
|
|
});
|
|
}
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
/** @inheritDoc */
|
|
getData(options={}) {
|
|
const context = super.getData(options);
|
|
const { methods, dice } = CONFIG.Dice.fulfillment;
|
|
if ( !game.user.hasPermission("MANUAL_ROLLS") ) delete methods.manual;
|
|
const config = game.settings.get("core", "diceConfiguration");
|
|
context.methods = methods;
|
|
context.dice = Object.entries(dice).map(([k, { label, icon }]) => {
|
|
return { label, icon, denomination: k, method: config[k] || "" };
|
|
});
|
|
return context;
|
|
}
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
/** @override */
|
|
async _updateObject(event, formData) {
|
|
const config = game.settings.get("core", "diceConfiguration");
|
|
foundry.utils.mergeObject(config, formData);
|
|
return game.settings.set("core", "diceConfiguration", config);
|
|
}
|
|
}
|