Datamodel + Appv2 migration, WIP

This commit is contained in:
2026-01-12 23:32:51 +01:00
parent 2abd2c881a
commit ed76a49e7d
27 changed files with 1695 additions and 1494 deletions

42
module/models/item.mjs Normal file
View File

@@ -0,0 +1,42 @@
/**
* 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: null }),
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"];
}