From 783f0a1a7736fd72d0f72848d4687d90140996fe Mon Sep 17 00:00:00 2001 From: Nikhil Nagarajan Date: Thu, 11 Dec 2025 17:10:54 -0500 Subject: [PATCH] For a rainy day. --- module/data/actor/character.mjs | 6 +++++- module/data/item/armor.mjs | 4 ++-- module/data/item/consumable.mjs | 4 ++-- module/data/item/feature.mjs | 13 ++++++++++++ module/data/item/loot.mjs | 6 +++--- module/data/item/weapon.mjs | 4 ++-- templates/sheets/items/feature/settings.hbs | 22 +++++++++++++++++++++ 7 files changed, 49 insertions(+), 10 deletions(-) diff --git a/module/data/actor/character.mjs b/module/data/actor/character.mjs index 9c1c2d40..d356d54c 100644 --- a/module/data/actor/character.mjs +++ b/module/data/actor/character.mjs @@ -631,6 +631,10 @@ export default class DhCharacter extends BaseDataActor { if(item.type === 'weapon'){ //Weapon Type if(item.system.equipped) isValid = true; } + else if(item.type === 'weapon'){ + //Logic to verify for feature + isValid=true; + } else{ isValid=true; //Other items like Loot,Consumables(will need to tweak consumable to activate after consume) } @@ -667,7 +671,7 @@ export default class DhCharacter extends BaseDataActor { this.attack.roll.trait = this.rules.attack.roll.trait ?? this.attack.roll.trait; this.resources.armor = this._prepareArmorResources(); - + const armor = this.armor; this.armorScore = this.resources.armor.max; this.damageThresholds = { diff --git a/module/data/item/armor.mjs b/module/data/item/armor.mjs index 3de8ddeb..721ef150 100644 --- a/module/data/item/armor.mjs +++ b/module/data/item/armor.mjs @@ -34,8 +34,8 @@ export default class DHArmor extends AttachableItem { ), //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}), + value: new fields.NumberField({required: true, 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: armorPriorityKeys, diff --git a/module/data/item/consumable.mjs b/module/data/item/consumable.mjs index 924b2605..c18a6a04 100644 --- a/module/data/item/consumable.mjs +++ b/module/data/item/consumable.mjs @@ -21,12 +21,12 @@ export default class DHConsumable extends BaseDataItem { ...super.defineSchema(), //Testing new armor schema armor: new fields.SchemaField({ - value: new fields.NumberField({integer: true, min: 0, initial: 0}), + value: new fields.NumberField({required: true, 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: armorPriorityKeys, - initial: 'armor' + initial: 'consumable' }), armorResourceToggle: new fields.BooleanField({initial: false}) }), diff --git a/module/data/item/feature.mjs b/module/data/item/feature.mjs index 3b8fe064..1d5e3b36 100644 --- a/module/data/item/feature.mjs +++ b/module/data/item/feature.mjs @@ -1,4 +1,5 @@ import BaseDataItem from './base.mjs'; +import { armorPriorityKeys } from "../../config/itemConfig.mjs"; export default class DHFeature extends BaseDataItem { /** @inheritDoc */ @@ -24,6 +25,18 @@ export default class DHFeature extends BaseDataItem { const fields = foundry.data.fields; return { ...super.defineSchema(), + //Testing new armor schema + armor: new fields.SchemaField({ + value: new fields.NumberField({required: true, 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: armorPriorityKeys, + initial: 'feature' + }), + armorResourceToggle: new fields.BooleanField({initial: false}) + }), + //End originItemType: new fields.StringField({ choices: CONFIG.DH.ITEM.featureTypes, nullable: true, diff --git a/module/data/item/loot.mjs b/module/data/item/loot.mjs index eed506e9..caf8b881 100644 --- a/module/data/item/loot.mjs +++ b/module/data/item/loot.mjs @@ -21,12 +21,12 @@ export default class DHLoot extends BaseDataItem { ...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}), + value: new fields.NumberField({required: true, 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: armorPriorityKeys, - initial: 'armor' + initial: 'loot' }), armorResourceToggle: new fields.BooleanField({initial: false}) }), diff --git a/module/data/item/weapon.mjs b/module/data/item/weapon.mjs index ab5c4bda..21ce740b 100644 --- a/module/data/item/weapon.mjs +++ b/module/data/item/weapon.mjs @@ -21,12 +21,12 @@ export default class DHWeapon extends AttachableItem { ...super.defineSchema(), //Testing new armor schema armor: new fields.SchemaField({ - value: new fields.NumberField({integer: true, min: 0, initial: 0}), + value: new fields.NumberField({required: true, 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: armorPriorityKeys, - initial: 'armor' + initial: 'weapon' }), armorResourceToggle: new fields.BooleanField({initial: false}) }), diff --git a/templates/sheets/items/feature/settings.hbs b/templates/sheets/items/feature/settings.hbs index c2ecb3fe..89efc4e7 100644 --- a/templates/sheets/items/feature/settings.hbs +++ b/templates/sheets/items/feature/settings.hbs @@ -4,4 +4,26 @@ data-group='{{tabs.settings.group}}' > {{> "systems/daggerheart/templates/sheets/global/partials/resource-section/resource-section.hbs" }} + +
+ {{localize "DAGGERHEART.CONFIG.ItemArmor.settingTitle"}} + {{localize "DAGGERHEART.CONFIG.ItemArmor.toggleTitle"}} + {{formField + systemFields.armor.fields.armorResourceToggle + value=source.system.armor.armorResourceToggle + }} + {{#if source.system.armor.armorResourceToggle}} + {{localize "DAGGERHEART.CONFIG.ItemArmor.title"}} +
+ {{formField systemFields.armor.fields.value value=source.system.armor.value label=(localize "DAGGERHEART.CONFIG.ItemArmor.value")}} + {{formField systemFields.armor.fields.max value=source.system.armor.max label=(localize "DAGGERHEART.CONFIG.ItemArmor.max")}} + {{formField + systemFields.armor.fields.priority + value=source.system.armor.priority + label=(localize "DAGGERHEART.CONFIG.ItemArmor.priority") + localize=true + }} +
+ {{/if}} +
\ No newline at end of file