diff --git a/module/data/Item/Weapon.mjs b/module/data/Item/Weapon.mjs index 5e610f3..8290725 100644 --- a/module/data/Item/Weapon.mjs +++ b/module/data/Item/Weapon.mjs @@ -1,4 +1,4 @@ -import { optionalInteger } from "../helpers.mjs"; +import { optionalInteger, requiredInteger } from "../helpers.mjs"; const { fields } = foundry.data; @@ -20,6 +20,7 @@ export class WeaponData extends foundry.abstract.TypeDataModel { short: optionalInteger(), long: optionalInteger(), }), + damage: requiredInteger({ min: 0, initial: 0 }), }; }; diff --git a/module/data/helpers.mjs b/module/data/helpers.mjs index 62e1590..2321503 100644 --- a/module/data/helpers.mjs +++ b/module/data/helpers.mjs @@ -29,3 +29,17 @@ export function optionalInteger({min, initial = null, max} = {}) { integer: true, }); }; + +export function requiredInteger({ min, initial, max } = {}) { + if (initial == null || typeof initial !== `number`) { + throw new Error(`"initial" must be a number`); + }; + return new fields.NumberField({ + min, + initial, + max, + required: true, + nullable: false, + integer: true, + }); +};