From b578ecb10d729ab6ca25d04b1f26e94f2bf32c0b Mon Sep 17 00:00:00 2001 From: Oliver-Akins Date: Wed, 25 Dec 2024 22:16:08 -0700 Subject: [PATCH] RC-42 | Weapon | Damage --- module/data/Item/Weapon.mjs | 3 ++- module/data/helpers.mjs | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) 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, + }); +};