diff --git a/module/data/countdowns.mjs b/module/data/countdowns.mjs index c288abb4..b3ef9a54 100644 --- a/module/data/countdowns.mjs +++ b/module/data/countdowns.mjs @@ -1,3 +1,5 @@ +import FormulaField from './fields/formulaField.mjs'; + export default class DhCountdowns extends foundry.abstract.DataModel { static defineSchema() { const fields = foundry.data.fields; @@ -165,11 +167,11 @@ export class DhCountdown extends foundry.abstract.DataModel { initial: 1, label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.progress.current.label' }), - max: new fields.NumberField({ + max: new FormulaField({ required: true, - integer: true, initial: 1, - label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.progress.max.label' + label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.progress.max.label', + deterministic: false }), looping: new fields.StringField({ required: true, diff --git a/module/data/fields/action/countdownField.mjs b/module/data/fields/action/countdownField.mjs index 9a8f3544..4e7dd38b 100644 --- a/module/data/fields/action/countdownField.mjs +++ b/module/data/fields/action/countdownField.mjs @@ -39,13 +39,15 @@ export default class CountdownField extends fields.ArrayField { return; } - const data = config.countdowns.reduce( - (acc, curr) => { + const data = await config.countdowns.reduce( + async (acc, curr) => { + const { total: max } = await new Roll(curr.progress.max).evaluate(); acc.countdowns[foundry.utils.randomID()] = { ...curr, progress: { ...curr.progress, - current: curr.progress.max + current: max, + max: max } }; return acc;