diff --git a/eslint.config.js b/eslint.config.js index 9a2da83c..1f584aea 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -33,8 +33,6 @@ const foundryGlobals = { renderTemplate: false, TokenDocument: false, Roll: false, - PoolTerm: false, - DiceTerm: false, TextEditor: false, CONST: false, getProperty: false, diff --git a/src/dice/check.js b/src/dice/check.js index 93e0766f..38bd9383 100644 --- a/src/dice/check.js +++ b/src/dice/check.js @@ -15,7 +15,7 @@ import { evaluateCheck, getRequiredNumberOfDice } from "./check-evaluation"; * - Roll a check with a racial ability that makes `2` a coup and `19` a fumble: `/r dsv19c2:19` * - Roll a check with a racial ability that makes `5` a coup and default fumble: `/r dsv19c5` */ -export class DS4Check extends DiceTerm { +export class DS4Check extends foundry.dice.terms.DiceTerm { constructor({ modifiers = [], results = [], options } = {}) { super({ faces: 20, @@ -86,8 +86,15 @@ export class DS4Check extends DiceTerm { } /** @override */ - _evaluateSync({ minimize = false, maximize = false } = {}) { - super._evaluateSync({ minimize, maximize }); + _evaluateSync(options = {}) { + super._evaluateSync(options); + this.evaluateResults(); + return this; + } + + /** @override */ + async _evaluateAsync(options = {}) { + await super._evaluateAsync(options); this.evaluateResults(); return this; } diff --git a/src/dice/slaying-dice-modifier.js b/src/dice/slaying-dice-modifier.js index bc0e2cd7..5f50aec0 100644 --- a/src/dice/slaying-dice-modifier.js +++ b/src/dice/slaying-dice-modifier.js @@ -7,14 +7,14 @@ import { getGame } from "../utils/utils"; import { DS4Check } from "./check"; export function registerSlayingDiceModifier() { - PoolTerm.MODIFIERS.x = slay; + foundry.dice.terms.PoolTerm.MODIFIERS.x = slay; } /** * @this {PoolTerm} * @param {string} modifier */ -function slay(modifier) { +async function slay(modifier) { const rgx = /[xX]/; const match = modifier.match(rgx); if (!match || !this.rolls) return; @@ -25,7 +25,7 @@ function slay(modifier) { checked++; if (diceTerm instanceof DS4Check && diceTerm.coup) { const formula = `dsv${diceTerm.checkTargetNumber}c${diceTerm.maximumCoupResult}:${diceTerm.minimumFumbleResult}n`; - const additionalRoll = Roll.create(formula).evaluate({ async: false }); + const additionalRoll = await Roll.create(formula).evaluate(); this.rolls.push(additionalRoll); this.results.push({ result: additionalRoll.total ?? 0, active: true }); diff --git a/system.json b/system.json index 85054fef..0e67ae56 100644 --- a/system.json +++ b/system.json @@ -40,8 +40,8 @@ } }, "compatibility": { - "minimum": "11.305", - "verified": "11" + "minimum": "12.331", + "verified": "12" }, "esmodules": ["ds4.js"], "styles": ["css/ds4.css"], @@ -118,9 +118,10 @@ "manifest": "https://git.f3l.de/api/packages/dungeonslayers/generic/ds4/latest/system.json", "download": "https://git.f3l.de/dungeonslayers/ds4/releases/download/1.21.1/ds4.zip", "initiative": "@combatValues.initiative.total", - "gridDistance": 1, - "gridUnits": "m", + "grid": { + "distance": 1, + "units": "m" + }, "primaryTokenAttribute": "combatValues.hitPoints", - "manifestPlusVersion": "1.2.0", "url": "https://git.f3l.de/dungeonslayers/ds4" } diff --git a/templates/dialogs/roll-options.hbs b/templates/dialogs/roll-options.hbs index 426fcba4..406a512e 100644 --- a/templates/dialogs/roll-options.hbs +++ b/templates/dialogs/roll-options.hbs @@ -25,11 +25,7 @@ SPDX-License-Identifier: MIT
@@ -52,11 +48,7 @@ SPDX-License-Identifier: MIT
diff --git a/templates/sheets/active-effect/active-effect-config.hbs b/templates/sheets/active-effect/active-effect-config.hbs index 2d42a394..5a52247a 100644 --- a/templates/sheets/active-effect/active-effect-config.hbs +++ b/templates/sheets/active-effect/active-effect-config.hbs @@ -8,14 +8,14 @@ SPDX-License-Identifier: MIT
- +

-