From ebdb330932cf12419c06d4834316792e8ef76676 Mon Sep 17 00:00:00 2001 From: WBHarry Date: Sat, 28 Jun 2025 02:50:38 +0200 Subject: [PATCH] Added HitPoints on class for use on character --- lang/en.json | 1 + module/data/actor/character.mjs | 7 +++++-- module/data/item/class.mjs | 10 ++++++++-- templates/sheets/items/class/settings.hbs | 7 +++---- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/lang/en.json b/lang/en.json index ce8f0295..205a77e4 100755 --- a/lang/en.json +++ b/lang/en.json @@ -1295,6 +1295,7 @@ "Severe": "Severe" }, "Evasion": "Evasion", + "HitPoints": "Hit Points", "ClassFeatures": "Class Features", "Subclasses": "Subclasses", "Guide": { diff --git a/module/data/actor/character.mjs b/module/data/actor/character.mjs index 9e467cab..8d6e2e41 100644 --- a/module/data/actor/character.mjs +++ b/module/data/actor/character.mjs @@ -30,7 +30,10 @@ export default class DhCharacter extends BaseDataActor { return { resources: new fields.SchemaField({ - hitPoints: resourceField(6), + hitPoints: new fields.SchemaField({ + value: new foundry.data.fields.NumberField({ initial: 0, integer: true }), + bonus: new foundry.data.fields.NumberField({ initial: 0, integer: true }) + }), stress: resourceField(6), hope: resourceField(6) }), @@ -243,7 +246,7 @@ export default class DhCharacter extends BaseDataActor { experience.total = experience.value + experience.bonus; } - this.resources.hitPoints.maxTotal = this.resources.hitPoints.max + this.resources.hitPoints.bonus; + this.resources.hitPoints.maxTotal = (this.class.value?.system?.hitPoints ?? 0) + this.resources.hitPoints.bonus; this.resources.stress.maxTotal = this.resources.stress.max + this.resources.stress.bonus; this.evasion.total = (this.class?.evasion ?? 0) + this.evasion.bonus; this.proficiency.total = this.proficiency.value + this.proficiency.bonus; diff --git a/module/data/item/class.mjs b/module/data/item/class.mjs index cd69648d..46ec6ff8 100644 --- a/module/data/item/class.mjs +++ b/module/data/item/class.mjs @@ -20,8 +20,14 @@ export default class DHClass extends BaseDataItem { ...super.defineSchema(), domains: new fields.ArrayField(new fields.StringField(), { max: 2 }), classItems: new ForeignDocumentUUIDArrayField({ type: 'Item', required: false }), - - evasion: new fields.NumberField({ initial: 0, integer: true }), + hitPoints: new fields.NumberField({ + required: true, + integer: true, + min: 1, + initial: 5, + label: 'DAGGERHEART.Sheets.Class.HitPoints' + }), + evasion: new fields.NumberField({ initial: 0, integer: true, label: 'DAGGERHEART.Sheets.Class.Evasion' }), hopeFeatures: new foundry.data.fields.ArrayField(new ActionField()), classFeatures: new foundry.data.fields.ArrayField(new ActionField()), subclasses: new ForeignDocumentUUIDArrayField({ type: 'Item', required: false }), diff --git a/templates/sheets/items/class/settings.hbs b/templates/sheets/items/class/settings.hbs index 1a211f2b..47e3ddb9 100644 --- a/templates/sheets/items/class/settings.hbs +++ b/templates/sheets/items/class/settings.hbs @@ -3,11 +3,10 @@ data-tab='{{tabs.settings.id}}' data-group='{{tabs.settings.group}}' > - -
+
{{localize tabs.settings.label}} - {{localize "DAGGERHEART.Sheets.Class.Evasion"}} - {{formField systemFields.evasion value=source.system.evasion}} + {{formGroup systemFields.hitPoints value=source.system.hitPoints localize=true}} + {{formGroup systemFields.evasion value=source.system.evasion localize=true}}