43 lines
1.8 KiB
JavaScript
43 lines
1.8 KiB
JavaScript
/**
|
|
* 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"];
|
|
}
|