-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathsettings.mjs
40 lines (35 loc) · 1.23 KB
/
settings.mjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/** @type {string | number} */
export let defaultHearingRange;
Hooks.once("init", () => {
game.settings.register(
"vision-5e",
"defaultHearingRange",
{
name: "VISION5E.SETTINGS.defaultHearingRange.label",
hint: "VISION5E.SETTINGS.defaultHearingRange.hint",
scope: "world",
config: true,
requiresReload: true,
type: new dnd5e.dataModels.fields.FormulaField({
deterministic: true,
initial: "15 + 2.5 * (@skills.prc.passive - 10)",
}),
},
);
Hooks.on("renderSettingsConfig", (app, html) => {
if (!game.user.isGM) {
return;
}
html[0].querySelector(`input[name="vision-5e.defaultHearingRange"]`).placeholder = "0";
html[0].querySelector(`[data-setting-id="vision-5e.defaultHearingRange"] label`)
.insertAdjacentHTML("beforeend", ` <span class="units">(ft)</span>`);
});
const formula = game.settings.get("vision-5e", "defaultHearingRange");
if (Roll.validate(formula)) {
try {
defaultHearingRange = Roll.safeEval(formula);
} catch (_error) {
defaultHearingRange = formula;
}
}
});