diff --git a/langs/en-ca.json b/langs/en-ca.json index e1f0484..737906c 100644 --- a/langs/en-ca.json +++ b/langs/en-ca.json @@ -7,6 +7,7 @@ "ammo": "Ammo", "armour": "Armour", "craft": "Craft", + "good": "Good", "shield": "Shield", "skill": "Skill", "weapon": "Weapon" diff --git a/module/data/Item/Good.mjs b/module/data/Item/Good.mjs new file mode 100644 index 0000000..3973cc1 --- /dev/null +++ b/module/data/Item/Good.mjs @@ -0,0 +1,56 @@ +import { CommonItemData } from "./Common.mjs"; + +const { fields } = foundry.data; + +export class GoodData extends CommonItemData { + // MARK: Schema + static defineSchema() { + const schema = super.defineSchema(); + + schema.description = new fields.HTMLField({ + blank: true, + nullable: false, + trim: true, + }); + + return schema; + }; + + // MARK: Base Data + prepareBaseData() { + super.prepareBaseData(); + }; + + // MARK: Derived Data + prepareDerivedData() { + super.prepareDerivedData(); + }; + + // #region Getters + // #endregion + + // #region Sheet Data + async getFormFields(_ctx) { + const fields = [ + { + id: `quantity`, + type: `integer`, + label: `RipCrypt.common.quantity`, + path: `system.quantity`, + value: this.quantity, + min: 0, + }, + { + id: `description`, + type: `prosemirror`, + label: `RipCrypt.common.description`, + path: `system.description`, + uuid: this.parent.uuid, + value: await TextEditor.enrichHTML(this.description), + collaborative: false, + }, + ]; + return fields; + }; + // #endregion +}; diff --git a/module/gameTerms.mjs b/module/gameTerms.mjs index f903878..de258d9 100644 --- a/module/gameTerms.mjs +++ b/module/gameTerms.mjs @@ -40,5 +40,6 @@ export const gameTerms = Object.preventExtensions({ `armour`, `weapon`, `shield`, + `good`, ]), }); diff --git a/module/hooks/init.mjs b/module/hooks/init.mjs index 7ea36b7..50d4a6b 100644 --- a/module/hooks/init.mjs +++ b/module/hooks/init.mjs @@ -8,6 +8,7 @@ import { HeroSummaryCardV1 } from "../Apps/ActorSheets/HeroSummaryCardV1.mjs"; // Data Models import { AmmoData } from "../data/Item/Ammo.mjs"; import { CraftData } from "../data/Item/Craft.mjs"; +import { GoodData } from "../data/Item/Good.mjs"; import { HeroData } from "../data/Actor/Hero.mjs"; import { ProtectorData } from "../data/Item/Protector.mjs"; import { SkillData } from "../data/Item/Skill.mjs"; @@ -45,6 +46,7 @@ Hooks.once(`init`, () => { CONFIG.Item.dataModels.ammo = AmmoData, CONFIG.Item.dataModels.armour = ProtectorData; CONFIG.Item.dataModels.craft = CraftData; + CONFIG.Item.dataModels.good = GoodData; CONFIG.Item.dataModels.shield = ProtectorData; CONFIG.Item.dataModels.skill = SkillData; CONFIG.Item.dataModels.weapon = WeaponData; diff --git a/system.json b/system.json index b7f85ff..9924bfe 100644 --- a/system.json +++ b/system.json @@ -47,6 +47,7 @@ "ammo": {}, "armour": {}, "craft": {}, + "good": {}, "shield": {}, "skill": {}, "weapon": {}