/** * Data model for Item items */ export default class BoLItemDataModel extends foundry.abstract.TypeDataModel { static defineSchema() { const fields = foundry.data.fields; const requiredInteger = { required: true, nullable: false, integer: true }; return { // Base fields category: new fields.StringField({ initial: "" }), subtype: new fields.StringField({ initial: "default" }), description: new fields.HTMLField({ initial: "" }), properties: new fields.SchemaField({ ranged: new fields.BooleanField({ initial: false }), melee: new fields.BooleanField({ initial: false }), spell: new fields.BooleanField({ initial: false }), protection: new fields.BooleanField({ initial: false }), weapon: new fields.BooleanField({ initial: false }), armor: new fields.BooleanField({ initial: false }), helm: new fields.BooleanField({ initial: false }), shield: new fields.BooleanField({ initial: false }), equipable: new fields.BooleanField({ initial: false }), consumable: new fields.BooleanField({ initial: false }), magical: new fields.BooleanField({ initial: false }), "2H": new fields.BooleanField({ initial: false }), reloadable: new fields.BooleanField({ initial: false }), bow: new fields.BooleanField({ initial: false }), crossbow: new fields.BooleanField({ initial: false }), throwing: new fields.BooleanField({ initial: false }) }), // Equipment fields quantity: new fields.NumberField({ ...requiredInteger, initial: 1 }), weight: new fields.NumberField({ initial: 0 }), price: new fields.NumberField({ initial: 0 }), worn: new fields.BooleanField({ initial: false }) }; } static LOCALIZATION_PREFIXES = ["BOL.Item"]; }