diff --git a/module/data/Actor/Hero.mjs b/module/data/Actor/Hero.mjs index 89dc9a1..2f0dc15 100644 --- a/module/data/Actor/Hero.mjs +++ b/module/data/Actor/Hero.mjs @@ -1,3 +1,4 @@ +import { derivedMaximumBar } from "../helpers.mjs"; import { gameTerms } from "../../gameTerms.mjs"; import { sumReduce } from "../../utils/sumReduce.mjs"; @@ -59,14 +60,7 @@ export class HeroData extends foundry.abstract.TypeDataModel { nullable: false, }), }), - guts: new fields.SchemaField({ - value: new fields.NumberField({ - min: 0, - initial: 5, - integer: true, - nullable: false, - }), - }), + guts: derivedMaximumBar(0, 5), coin: new fields.SchemaField({ gold: new fields.NumberField({ initial: 5, diff --git a/module/data/helpers.mjs b/module/data/helpers.mjs index 2321503..e7c705f 100644 --- a/module/data/helpers.mjs +++ b/module/data/helpers.mjs @@ -19,6 +19,17 @@ export function barAttribute(min, initial, max = undefined) { }); }; +export function derivedMaximumBar(min, initial) { + return new fields.SchemaField({ + value: new fields.NumberField({ + min, + initial, + integer: true, + nullable: false, + }), + }); +}; + export function optionalInteger({min, initial = null, max} = {}) { return new fields.NumberField({ min,