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/config/domainConfig.mjs b/module/config/domainConfig.mjs index 3ecb0bd1..136b077e 100644 --- a/module/config/domainConfig.mjs +++ b/module/config/domainConfig.mjs @@ -2,56 +2,55 @@ export const domains = { arcana: { id: 'arcana', label: 'DAGGERHEART.Domains.arcana.label', - src: 'icons/magic/symbols/circled-gem-pink.webp', + src: 'systems/daggerheart/assets/icons/domains/arcana.svg', description: 'DAGGERHEART.Domains.Arcana' }, blade: { id: 'blade', label: 'DAGGERHEART.Domains.blade.label', - src: 'icons/weapons/swords/sword-broad-crystal-paired.webp', + src: 'systems/daggerheart/assets/icons/domains/blade.svg', description: 'DAGGERHEART.Domains.Blade' }, bone: { id: 'bone', label: 'DAGGERHEART.Domains.bone.label', - src: 'icons/skills/wounds/bone-broken-marrow-red.webp', + src: 'systems/daggerheart/assets/icons/domains/bone.svg', description: 'DAGGERHEART.Domains.Bone' }, codex: { id: 'codex', label: 'DAGGERHEART.Domains.codex.label', - src: 'icons/sundries/books/book-embossed-jewel-gold-purple.webp', + src: 'systems/daggerheart/assets/icons/domains/codex.svg', description: 'DAGGERHEART.Domains.Codex' }, grace: { id: 'grace', label: 'DAGGERHEART.Domains.grace.label', - src: 'icons/skills/movement/feet-winged-boots-glowing-yellow.webp', + src: 'systems/daggerheart/assets/icons/domains/grace.svg', description: 'DAGGERHEART.Domains.Grace' }, midnight: { id: 'midnight', label: 'DAGGERHEART.Domains.midnight.label', - src: 'icons/environment/settlement/watchtower-castle-night.webp', - background: 'systems/daggerheart/assets/backgrounds/MidnightBackground.webp', + src: 'systems/daggerheart/assets/icons/domains/midnight.svg', description: 'DAGGERHEART.Domains.Midnight' }, sage: { id: 'sage', label: 'DAGGERHEART.Domains.sage.label', - src: 'icons/sundries/misc/pipe-wooden-straight-brown.webp', + src: 'systems/daggerheart/assets/icons/domains/sage.svg', description: 'DAGGERHEART.Domains.Sage' }, splendor: { id: 'splendor', label: 'DAGGERHEART.Domains.splendor.label', - src: 'icons/magic/control/control-influence-crown-gold.webp', + src: 'systems/daggerheart/assets/icons/domains/splendor.svg', description: 'DAGGERHEART.Domains.Splendor' }, valor: { id: 'valor', label: 'DAGGERHEART.Domains.valor.label', - src: 'icons/magic/control/control-influence-rally-purple.webp', + src: 'systems/daggerheart/assets/icons/domains/valor.svg', description: 'DAGGERHEART.Domains.Valor' } }; 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}}' > - -