diff --git a/lang/en.json b/lang/en.json index d2386744..f1671bb2 100755 --- a/lang/en.json +++ b/lang/en.json @@ -692,6 +692,13 @@ "bruiser": "for each Bruiser adversary.", "solo": "for each Solo adversary." }, + "ArmorKeys": { + "armor": "Armor", + "weapon": "Weapon", + "consumable": "Consumable", + "loot": "Loot", + "feature": "Feature" + }, "ArmorFeature": { "burning": { "name": "Burning", diff --git a/module/config/itemConfig.mjs b/module/config/itemConfig.mjs index a9ad1d68..d222f650 100644 --- a/module/config/itemConfig.mjs +++ b/module/config/itemConfig.mjs @@ -489,6 +489,18 @@ export const orderedArmorFeatures = () => { return Object.values(all).sort((a, b) => game.i18n.localize(a.label).localeCompare(game.i18n.localize(b.label))); }; +export const armorPriorityKeys = { + armor: {label: 'DAGGERHEART.CONFIG.ArmorKeys.armor'}, + weapon: {label: 'DAGGERHEART.CONFIG.ArmorKeys.weapon'}, + consumable: {label: 'DAGGERHEART.CONFIG.ArmorKeys.consumable'}, + loot: {label: 'DAGGERHEART.CONFIG.ArmorKeys.loot'}, + features: {label: 'DAGGERHEART.CONFIG.ArmorKeys.features'} +} + +export const allArmorKeys = () => { + return {...armorPriorityKeys}; +} + export const weaponFeatures = { barrier: { label: 'DAGGERHEART.CONFIG.WeaponFeature.barrier.name', diff --git a/module/data/item/armor.mjs b/module/data/item/armor.mjs index e35fae46..9f339f0d 100644 --- a/module/data/item/armor.mjs +++ b/module/data/item/armor.mjs @@ -31,6 +31,17 @@ export default class DHArmor extends AttachableItem { actionIds: new fields.ArrayField(new fields.StringField({ required: true })) }) ), + //Testing new armor schema + armor: new fields.SchemaField({ + value: new fields.NumberField({integer: true, min: 0, initial: 0}), + max: new fields.NumberField({ required: true, integer: true, min: 0, initial: 0}), + priority: new fields.StringField({ + required: true, + choices: CONFIG.DH.ITEM.allArmorKeys, + initial: CONFIG.DH.ITEM.armorPriorityKeys[0] + }) + }), + //End marks: new fields.SchemaField({ value: new fields.NumberField({ initial: 0, integer: true }) }), diff --git a/module/data/item/consumable.mjs b/module/data/item/consumable.mjs index 5a50525a..ac09d029 100644 --- a/module/data/item/consumable.mjs +++ b/module/data/item/consumable.mjs @@ -18,6 +18,17 @@ export default class DHConsumable extends BaseDataItem { const fields = foundry.data.fields; return { ...super.defineSchema(), + //Testing new armor schema + armor: new fields.SchemaField({ + value: new fields.NumberField({integer: true, min: 0, initial: 0}), + max: new fields.NumberField({ required: true, integer: true, min: 0, initial: 0}), + priority: new fields.StringField({ + required: true, + choices: CONFIG.DH.ITEM.allArmorKeys, + initial: CONFIG.DH.ITEM.armorPriorityKeys[0] + }) + }), + //End consumeOnUse: new fields.BooleanField({ initial: true }), destroyOnEmpty: new fields.BooleanField({ initial: true }) }; diff --git a/module/data/item/loot.mjs b/module/data/item/loot.mjs index cdb0855e..1fd1b547 100644 --- a/module/data/item/loot.mjs +++ b/module/data/item/loot.mjs @@ -16,7 +16,18 @@ export default class DHLoot extends BaseDataItem { /** @inheritDoc */ static defineSchema() { return { - ...super.defineSchema() + ...super.defineSchema(), + //Testing new armor schema + armor: new fields.SchemaField({ + value: new fields.NumberField({integer: true, min: 0, initial: 0}), + max: new fields.NumberField({ required: true, integer: true, min: 0, initial: 0}), + priority: new fields.StringField({ + required: true, + choices: CONFIG.DH.ITEM.allArmorKeys, + initial: CONFIG.DH.ITEM.armorPriorityKeys[0] + }) + }) + //End }; } diff --git a/module/data/item/weapon.mjs b/module/data/item/weapon.mjs index 295cc0c5..3aca1f79 100644 --- a/module/data/item/weapon.mjs +++ b/module/data/item/weapon.mjs @@ -18,6 +18,17 @@ export default class DHWeapon extends AttachableItem { const fields = foundry.data.fields; return { ...super.defineSchema(), + //Testing new armor schema + armor: new fields.SchemaField({ + value: new fields.NumberField({integer: true, min: 0, initial: 0}), + max: new fields.NumberField({ required: true, integer: true, min: 0, initial: 0}), + priority: new fields.StringField({ + required: true, + choices: CONFIG.DH.ITEM.allArmorKeys, + initial: CONFIG.DH.ITEM.armorPriorityKeys[0] + }) + }), + //End tier: new fields.NumberField({ required: true, integer: true,