From ef4652ab1a9df0f110bb701de6becc6e0501d84f Mon Sep 17 00:00:00 2001 From: moliloo Date: Tue, 27 May 2025 21:49:28 -0300 Subject: [PATCH] enhance armor and weapon sheet --- lang/en.json | 139 ++++++++++---------- module/applications/_module.mjs | 4 +- module/applications/sheets/armor.mjs | 63 --------- module/applications/sheets/items/armor.mjs | 59 +++++++++ module/applications/sheets/items/weapon.mjs | 62 +++++++++ module/applications/sheets/weapon.mjs | 63 --------- module/config/actorConfig.mjs | 60 ++++----- module/config/generalConfig.mjs | 32 ++--- module/data/armor.mjs | 6 +- module/data/weapon.mjs | 14 +- styles/daggerheart.css | 6 + styles/less/global/elements.less | 8 ++ styles/less/global/item-header.less | 1 + templates/sheets/armor.hbs | 42 ------ templates/sheets/class.hbs | 4 +- templates/sheets/items/armor/header.hbs | 21 +++ templates/sheets/items/armor/settings.hbs | 21 +++ templates/sheets/items/weapon/header.hbs | 24 ++++ templates/sheets/items/weapon/settings.hbs | 30 +++++ templates/sheets/weapon.hbs | 86 ------------ 20 files changed, 367 insertions(+), 378 deletions(-) delete mode 100644 module/applications/sheets/armor.mjs create mode 100644 module/applications/sheets/items/armor.mjs create mode 100644 module/applications/sheets/items/weapon.mjs delete mode 100644 module/applications/sheets/weapon.mjs delete mode 100644 templates/sheets/armor.hbs create mode 100644 templates/sheets/items/armor/header.hbs create mode 100644 templates/sheets/items/armor/settings.hbs create mode 100644 templates/sheets/items/weapon/header.hbs create mode 100644 templates/sheets/items/weapon/settings.hbs delete mode 100644 templates/sheets/weapon.hbs diff --git a/lang/en.json b/lang/en.json index 3be85a5d..85c98ba6 100755 --- a/lang/en.json +++ b/lang/en.json @@ -154,52 +154,58 @@ "Reaction": "Reaction" }, "Abilities": { - "Agility": { - "Name": "Agility", - "Verb": { - "Sprint": "Sprint", - "Leap": "Leap", - "Maneuver": "Maneuver" + "agility": { + "name": "Agility", + "short": "AGI", + "verb": { + "sprint": "Sprint", + "leap": "Leap", + "maneuver": "Maneuver" } }, - "Strength": { - "Name": "Strength", - "Verb": { - "Lift": "Lift", - "Smash": "Smash", - "Grapple": "Grapple" + "strength": { + "name": "Strength", + "short": "STR", + "verb": { + "lift": "Lift", + "smash": "Smash", + "grapple": "Grapple" } }, - "Finesse": { - "Name": "Finesse", - "Verb": { - "Control": "Control", - "Hide": "Hide", - "Tinker": "Tinker" + "finesse": { + "name": "Finesse", + "short": "FIN", + "verb": { + "control": "Control", + "hide": "Hide", + "tinker": "Tinker" } }, - "Instinct": { - "Name": "Instinct", - "Verb": { - "Perceive": "Perceive", - "Sense": "Sense", - "Navigate": "Navigate" + "instinct": { + "name": "Instinct", + "short": "INS", + "verb": { + "perceive": "Perceive", + "sense": "Sense", + "navigate": "Navigate" } }, - "Presence": { - "Name": "Presence", - "Verb": { - "Charm": "Charm", - "Perform": "Perform", - "Deceive": "Deceive" + "presence": { + "name": "Presence", + "short": "PRE", + "verb": { + "charm": "Charm", + "perform": "Perform", + "deceive": "Deceive" } }, - "Knowledge": { - "Name": "Knowledge", - "Verb": { - "Recall": "Recall", - "Analyze": "Analyze", - "Comprehend": "Comprehend" + "knowledge": { + "name": "Knowledge", + "short": "KNO", + "verb": { + "recall": "Recall", + "analyze": "Analyze", + "comprehend": "Comprehend" } } }, @@ -394,39 +400,39 @@ } }, "Burden": { - "OneHanded": "One-Handed", - "TwoHanded": "Two-Handed" + "oneHanded": "One-Handed", + "twoHanded": "Two-Handed" }, "Range": { - "Melee": { - "Name": "Melee", - "Description": "means a character is within touching distance of the target. PCs can generally touch targets up to a few feet away from them, but melee range may be greater for especially large NPCs." + "melee": { + "name": "Melee", + "description": "means a character is within touching distance of the target. PCs can generally touch targets up to a few feet away from them, but melee range may be greater for especially large NPCs." }, - "VeryClose": { - "Name": "Very Close", - "Description": "means a distance where one can see fine details of a target- within moments of reaching, if need be. This is usually anywhere from about 5-10 feet away. While in danger, a PC can usually get to anything that’s very close as part of any other action they take. Anything on a battle map that is within the shortest length of a game card (~2-3 inches) can usually be considered very close." + "veryClose": { + "name": "Very Close", + "description": "means a distance where one can see fine details of a target- within moments of reaching, if need be. This is usually anywhere from about 5-10 feet away. While in danger, a PC can usually get to anything that’s very close as part of any other action they take. Anything on a battle map that is within the shortest length of a game card (~2-3 inches) can usually be considered very close." }, - "Close": { - "Name": "Close", - "Description": "means a distance where one can see prominent details of a target-- across a room or to a neighboring market stall, generally about 10-30 feet away. While in danger, a PC can usually get to anything that’s close as part of any other action they take. Anything on a battle map that is within the length of a standard pen or pencil (~5-6 inches) can usually be considered close." + "close": { + "name": "Close", + "description": "means a distance where one can see prominent details of a target-- across a room or to a neighboring market stall, generally about 10-30 feet away. While in danger, a PC can usually get to anything that’s close as part of any other action they take. Anything on a battle map that is within the length of a standard pen or pencil (~5-6 inches) can usually be considered close." }, - "Far": { - "Name": "Far", - "Description": "means a distance where one can see the appearance of a person or object, but probably not in great detail-- across a small battlefield or down a large corridor. This is usually about 30-100 feet away. While under danger, a PC will likely have to make an Agility check to get here safely. Anything on a battle map that is within the length of a standard piece of paper (~10-11 inches) can usually be considered far." + "far": { + "name": "Far", + "description": "means a distance where one can see the appearance of a person or object, but probably not in great detail-- across a small battlefield or down a large corridor. This is usually about 30-100 feet away. While under danger, a PC will likely have to make an Agility check to get here safely. Anything on a battle map that is within the length of a standard piece of paper (~10-11 inches) can usually be considered far." }, - "VeryFar": { - "Name": "Very Far", - "Description": "means a distance where you can see the shape of a person or object, but probably not make outany details-- across a large battlefield or down a long street, generally about 100-300 feet away. While under danger, a PC likely has to make an Agility check to get here safely. Anything on a battle map that is beyond far distance, but still within sight of the characters can usually be considered very far." + "veryFar": { + "name": "Very Far", + "description": "means a distance where you can see the shape of a person or object, but probably not make outany details-- across a large battlefield or down a long street, generally about 100-300 feet away. While under danger, a PC likely has to make an Agility check to get here safely. Anything on a battle map that is beyond far distance, but still within sight of the characters can usually be considered very far." } }, "DamageType": { - "Physical": { - "Name": "Physical", - "Abbreviation": "Phy" + "physical": { + "name": "Physical", + "abbreviation": "Phy" }, - "Magical": { - "Name": "Magical", - "Abbreviation": "Mag" + "magical": { + "name": "Magical", + "abbreviation": "Mag" } }, "HealingType": { @@ -934,13 +940,13 @@ "NewFeature": "New Feature" }, "Armor": { - "BaseScore": "Base Score", - "Feature": "Feature", - "Description": "Description", - "BaseThresholds": { - "Base": "Base Thresholds", - "Major": "Major Threshold", - "Severe": "Severe Threshold" + "baseScore": "Base Score", + "feature": "Feature", + "description": "Description", + "baseThresholds": { + "base": "Base Thresholds", + "major": "Major Threshold", + "severe": "Severe Threshold" } }, "Class": { @@ -1062,6 +1068,7 @@ } }, "Weapon": { + "PrimaryWeapon": "Primary Weapon", "SecondaryWeapon": "Secondary Weapon", "Trait": "Trait", "Range": "Range", diff --git a/module/applications/_module.mjs b/module/applications/_module.mjs index 1e280d81..cc1bc90e 100644 --- a/module/applications/_module.mjs +++ b/module/applications/_module.mjs @@ -8,7 +8,7 @@ export { default as DhpAncestry } from './sheets/ancestry.mjs'; export { default as DhpCommunity } from './sheets/community.mjs'; export { default as DhpMiscellaneous } from './sheets/items/miscellaneous.mjs'; export { default as DhpConsumable } from './sheets/items/consumable.mjs'; -export { default as DhpWeapon } from './sheets/weapon.mjs'; -export { default as DhpArmor } from './sheets/armor.mjs'; +export { default as DhpWeapon } from './sheets/items/weapon.mjs'; +export { default as DhpArmor } from './sheets/items/armor.mjs'; export { default as DhpChatMessage } from './chatMessage.mjs'; export { default as DhpEnvironment } from './sheets/environment.mjs'; diff --git a/module/applications/sheets/armor.mjs b/module/applications/sheets/armor.mjs deleted file mode 100644 index 0c6c933a..00000000 --- a/module/applications/sheets/armor.mjs +++ /dev/null @@ -1,63 +0,0 @@ -// import DhpApplicationMixin from '../daggerheart-sheet.mjs'; - -// export default class ArmorSheet extends DhpApplicationMixin(ItemSheet) { -// static documentType = "armor"; - -// /** @override */ -// static get defaultOptions() { -// return foundry.utils.mergeObject(super.defaultOptions, { -// classes: ["daggerheart", "sheet", "armor"], -// width: 400, -// height: 'auto', -// }); -// } - -// /** @override */ -// getData() { -// const context = super.getData(); -// context.config = CONFIG.daggerheart; - -// return context; -// } - -// async _handleAction(action, event, button) { -// switch(action){ -// } -// } -// } -import DaggerheartSheet from './daggerheart-sheet.mjs'; - -const { ItemSheetV2 } = foundry.applications.sheets; -export default class ArmorSheet extends DaggerheartSheet(ItemSheetV2) { - static DEFAULT_OPTIONS = { - tag: 'form', - classes: ['daggerheart', 'sheet', 'armor'], - position: { width: 400 }, - form: { - handler: this.updateForm, - submitOnChange: true, - closeOnSubmit: false - }, - dragDrop: [{ dragSelector: null, dropSelector: null }] - }; - - static PARTS = { - form: { - id: 'feature', - template: 'systems/daggerheart/templates/sheets/armor.hbs' - } - }; - - async _prepareContext(_options) { - const context = await super._prepareContext(_options); - context.document = this.document; - context.config = CONFIG.daggerheart; - - return context; - } - - static async updateForm(event, _, formData) { - await this.document.update(formData.object); - this.render(); - } -} diff --git a/module/applications/sheets/items/armor.mjs b/module/applications/sheets/items/armor.mjs new file mode 100644 index 00000000..25b2ddb5 --- /dev/null +++ b/module/applications/sheets/items/armor.mjs @@ -0,0 +1,59 @@ +import DaggerheartSheet from '../daggerheart-sheet.mjs'; + +const { ItemSheetV2 } = foundry.applications.sheets; +export default class ArmorSheet extends DaggerheartSheet(ItemSheetV2) { + static DEFAULT_OPTIONS = { + tag: 'form', + classes: ['daggerheart', 'sheet', 'dh-style', 'armor'], + position: { width: 600 }, + form: { + handler: this.updateForm, + submitOnChange: true, + closeOnSubmit: false + }, + dragDrop: [{ dragSelector: null, dropSelector: null }] + }; + + static PARTS = { + header: { template: 'systems/daggerheart/templates/sheets/items/armor/header.hbs' }, + tabs: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs' }, + description: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-description.hbs' }, + settings: { + template: 'systems/daggerheart/templates/sheets/items/armor/settings.hbs', + scrollable: ['.settings'] + } + }; + + static TABS = { + description: { + active: true, + cssClass: '', + group: 'primary', + id: 'description', + icon: null, + label: 'DAGGERHEART.Sheets.Feature.Tabs.Description' + }, + settings: { + active: false, + cssClass: '', + group: 'primary', + id: 'settings', + icon: null, + label: 'DAGGERHEART.Sheets.Feature.Tabs.Settings' + } + }; + + async _prepareContext(_options) { + const context = await super._prepareContext(_options); + context.document = this.document; + context.config = CONFIG.daggerheart; + context.tabs = super._getTabs(this.constructor.TABS); + + return context; + } + + static async updateForm(event, _, formData) { + await this.document.update(formData.object); + this.render(); + } +} diff --git a/module/applications/sheets/items/weapon.mjs b/module/applications/sheets/items/weapon.mjs new file mode 100644 index 00000000..1ab02da8 --- /dev/null +++ b/module/applications/sheets/items/weapon.mjs @@ -0,0 +1,62 @@ +import DaggerheartSheet from '../daggerheart-sheet.mjs'; + +const { ItemSheetV2 } = foundry.applications.sheets; +export default class WeaponSheet extends DaggerheartSheet(ItemSheetV2) { + static DEFAULT_OPTIONS = { + tag: 'form', + classes: ['daggerheart', 'sheet', 'dh-style', 'weapon'], + position: { width: 600 }, + form: { + handler: this.updateForm, + submitOnChange: true, + closeOnSubmit: false + } + }; + + static PARTS = { + form: { + id: 'feature', + template: 'systems/daggerheart/templates/sheets/weapon.hbs' + }, + header: { template: 'systems/daggerheart/templates/sheets/items/weapon/header.hbs' }, + tabs: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs' }, + description: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-description.hbs' }, + settings: { + template: 'systems/daggerheart/templates/sheets/items/weapon/settings.hbs', + scrollable: ['.settings'] + } + }; + + static TABS = { + description: { + active: true, + cssClass: '', + group: 'primary', + id: 'description', + icon: null, + label: 'DAGGERHEART.Sheets.Feature.Tabs.Description' + }, + settings: { + active: false, + cssClass: '', + group: 'primary', + id: 'settings', + icon: null, + label: 'DAGGERHEART.Sheets.Feature.Tabs.Settings' + } + }; + + async _prepareContext(_options) { + const context = await super._prepareContext(_options); + context.document = this.document; + context.config = CONFIG.daggerheart; + context.tabs = super._getTabs(this.constructor.TABS); + + return context; + } + + static async updateForm(event, _, formData) { + await this.document.update(formData.object); + this.render(); + } +} diff --git a/module/applications/sheets/weapon.mjs b/module/applications/sheets/weapon.mjs deleted file mode 100644 index af979c2b..00000000 --- a/module/applications/sheets/weapon.mjs +++ /dev/null @@ -1,63 +0,0 @@ -// import DhpApplicationMixin from '../daggerheart-sheet.mjs'; - -// export default class WeaponSheet extends DhpApplicationMixin(ItemSheet) { -// static documentType = "weapon"; - -// /** @override */ -// static get defaultOptions() { -// return foundry.utils.mergeObject(super.defaultOptions, { -// classes: ["daggerheart", "sheet", "weapon"], -// width: 400, -// height: 'auto', -// }); -// } - -// /** @override */ -// getData() { -// const context = super.getData(); -// context.config = CONFIG.daggerheart; - -// return context; -// } - -// async _handleAction(action, event, button) { -// switch(action){ -// } -// } -// } - -import DaggerheartSheet from './daggerheart-sheet.mjs'; - -const { ItemSheetV2 } = foundry.applications.sheets; -export default class WeaponSheet extends DaggerheartSheet(ItemSheetV2) { - static DEFAULT_OPTIONS = { - tag: 'form', - classes: ['daggerheart', 'sheet', 'weapon'], - position: { width: 400 }, - form: { - handler: this.updateForm, - submitOnChange: true, - closeOnSubmit: false - } - }; - - static PARTS = { - form: { - id: 'feature', - template: 'systems/daggerheart/templates/sheets/weapon.hbs' - } - }; - - async _prepareContext(_options) { - const context = await super._prepareContext(_options); - context.document = this.document; - context.config = CONFIG.daggerheart; - - return context; - } - - static async updateForm(event, _, formData) { - await this.document.update(formData.object); - this.render(); - } -} diff --git a/module/config/actorConfig.mjs b/module/config/actorConfig.mjs index 23216b4d..241d3302 100644 --- a/module/config/actorConfig.mjs +++ b/module/config/actorConfig.mjs @@ -1,77 +1,77 @@ export const abilities = { agility: { - label: 'DAGGERHEART.Abilities.Agility.Name', + label: 'DAGGERHEART.Abilities.agility.name', verbs: [ - 'DAGGERHEART.Abilities.Agility.Verb.Sprint', - 'DAGGERHEART.Abilities.Agility.Verb.Leap', - 'DAGGERHEART.Abilities.Agility.Verb.Maneuver' + 'DAGGERHEART.Abilities.agility.verb.sprint', + 'DAGGERHEART.Abilities.agility.verb.leap', + 'DAGGERHEART.Abilities.agility.verb.maneuver' ] }, strength: { - label: 'DAGGERHEART.Abilities.Strength.Name', + label: 'DAGGERHEART.Abilities.strength.name', verbs: [ - 'DAGGERHEART.Abilities.Strength.Verb.Lift', - 'DAGGERHEART.Abilities.Strength.Verb.Smash', - 'DAGGERHEART.Abilities.Strength.Verb.Grapple' + 'DAGGERHEART.Abilities.strength.verb.lift', + 'DAGGERHEART.Abilities.strength.verb.smash', + 'DAGGERHEART.Abilities.strength.verb.grapple' ] }, finesse: { - label: 'DAGGERHEART.Abilities.Finesse.Name', + label: 'DAGGERHEART.Abilities.finesse.name', verbs: [ - 'DAGGERHEART.Abilities.Finesse.Verb.Control', - 'DAGGERHEART.Abilities.Finesse.Verb.Hide', - 'DAGGERHEART.Abilities.Finesse.Verb.Tinker' + 'DAGGERHEART.Abilities.finesse.verb.control', + 'DAGGERHEART.Abilities.finesse.verb.hide', + 'DAGGERHEART.Abilities.finesse.verb.tinker' ] }, instinct: { - label: 'DAGGERHEART.Abilities.Instinct.Name', + label: 'DAGGERHEART.Abilities.instinct.name', verbs: [ - 'DAGGERHEART.Abilities.Instinct.Verb.Perceive', - 'DAGGERHEART.Abilities.Instinct.Verb.Sense', - 'DAGGERHEART.Abilities.Instinct.Verb.Navigate' + 'DAGGERHEART.Abilities.instinct.verb.perceive', + 'DAGGERHEART.Abilities.instinct.verb.sense', + 'DAGGERHEART.Abilities.instinct.verb.navigate' ] }, presence: { - label: 'DAGGERHEART.Abilities.Presence.Name', + label: 'DAGGERHEART.Abilities.presence.name', verbs: [ - 'DAGGERHEART.Abilities.Presence.Verb.Charm', - 'DAGGERHEART.Abilities.Presence.Verb.Perform', - 'DAGGERHEART.Abilities.Presence.Verb.Deceive' + 'DAGGERHEART.Abilities.presence.verb.charm', + 'DAGGERHEART.Abilities.presence.verb.perform', + 'DAGGERHEART.Abilities.presence.verb.deceive' ] }, knowledge: { - label: 'DAGGERHEART.Abilities.Knowledge.Name', + label: 'DAGGERHEART.Abilities.knowledge.name', verbs: [ - 'DAGGERHEART.Abilities.Knowledge.Verb.Recall', - 'DAGGERHEART.Abilities.Knowledge.Verb.Analyze', - 'DAGGERHEART.Abilities.Knowledge.Verb.Comprehend' + 'DAGGERHEART.Abilities.knowledge.verb.recall', + 'DAGGERHEART.Abilities.knowledge.verb.analyze', + 'DAGGERHEART.Abilities.knowledge.verb.comprehend' ] } }; export const featureProperties = { agility: { - name: 'DAGGERHEART.Abilities.Agility.Name', + name: 'DAGGERHEART.Abilities.agility.name', path: actor => actor.system.attributes.agility.data.value }, strength: { - name: 'DAGGERHEART.Abilities.Strength.Name', + name: 'DAGGERHEART.Abilities.strength.name', path: actor => actor.system.attributes.strength.data.value }, finesse: { - name: 'DAGGERHEART.Abilities.Finesse.Name', + name: 'DAGGERHEART.Abilities.finesse.name', path: actor => actor.system.attributes.finesse.data.value }, instinct: { - name: 'DAGGERHEART.Abilities.Instinct.Name', + name: 'DAGGERHEART.Abilities.instinct.name', path: actor => actor.system.attributes.instinct.data.value }, presence: { - name: 'DAGGERHEART.Abilities.Presence.Name', + name: 'DAGGERHEART.Abilities.presence.name', path: actor => actor.system.attributes.presence.data.value }, knowledge: { - name: 'DAGGERHEART.Abilities.Knowledge.Name', + name: 'DAGGERHEART.Abilities.knowledge.name', path: actor => actor.system.attributes.knowledge.data.value }, spellcastingTrait: { diff --git a/module/config/generalConfig.mjs b/module/config/generalConfig.mjs index 650b2489..fb596347 100644 --- a/module/config/generalConfig.mjs +++ b/module/config/generalConfig.mjs @@ -1,27 +1,27 @@ export const range = { melee: { - label: 'DAGGERHEART.Range.Melee.Name', - description: 'DAGGERHEART.Range.Melee.Description', + label: 'DAGGERHEART.Range.melee.name', + description: 'DAGGERHEART.Range.melee.description', distance: 1 }, veryClose: { - label: 'DAGGERHEART.Range.VeryClose.Name', - description: 'DAGGERHEART.Range.VeryClose.Description', + label: 'DAGGERHEART.Range.veryClose.name', + description: 'DAGGERHEART.Range.veryClose.description', distance: 3 }, close: { - label: 'DAGGERHEART.Range.Close.Name', - description: 'DAGGERHEART.Range.Close.Description', + label: 'DAGGERHEART.Range.close.name', + description: 'DAGGERHEART.Range.close.description', distance: 10 }, far: { - label: 'DAGGERHEART.Range.Far.Name', - description: 'DAGGERHEART.Range.Far.Description', + label: 'DAGGERHEART.Range.far.name', + description: 'DAGGERHEART.Range.far.description', distance: 20 }, veryFar: { - label: 'DAGGERHEART.Range.VeryFar.Name', - description: 'DAGGERHEART.Range.VeryFar.Description', + label: 'DAGGERHEART.Range.veryFar.name', + description: 'DAGGERHEART.Range.veryFar.description', distance: 30 } }; @@ -29,24 +29,24 @@ export const range = { export const burden = { oneHanded: { value: 'oneHanded', - label: 'DAGGERHEART.Burden.OneHanded' + label: 'DAGGERHEART.Burden.oneHanded' }, twoHanded: { value: 'twoHanded', - label: 'DAGGERHEART.Burden.TwoHanded' + label: 'DAGGERHEART.Burden.twoHanded' } }; export const damageTypes = { physical: { id: 'physical', - label: 'DAGGERHEART.DamageType.Physical.Name', - abbreviation: 'DAGGERHEART.DamageType.Physical.Abbreviation' + label: 'DAGGERHEART.DamageType.physical.name', + abbreviation: 'DAGGERHEART.DamageType.physical.abbreviation' }, magical: { id: 'magical', - label: 'DAGGERHEART.DamageType.Magical.Name', - abbreviation: 'DAGGERHEART.DamageType.Magical.Abbreviation' + label: 'DAGGERHEART.DamageType.magical.name', + abbreviation: 'DAGGERHEART.DamageType.magical.abbreviation' } }; diff --git a/module/data/armor.mjs b/module/data/armor.mjs index dc6cda19..f58cda18 100644 --- a/module/data/armor.mjs +++ b/module/data/armor.mjs @@ -3,7 +3,7 @@ export default class DhpArmor extends foundry.abstract.TypeDataModel { const fields = foundry.data.fields; return { equipped: new fields.BooleanField({ initial: false }), - baseScore: new fields.NumberField({ initial: 1, integer: true }), + baseScore: new fields.NumberField({ initial: 1, integer: true, initial: 0 }), feature: new fields.StringField({ choices: SYSTEM.ITEM.armorFeatures, integer: false, @@ -14,8 +14,8 @@ export default class DhpArmor extends foundry.abstract.TypeDataModel { value: new fields.NumberField({ initial: 0, integer: true }) }), baseThresholds: new fields.SchemaField({ - major: new fields.NumberField({ initial: 0, integer: true }), - severe: new fields.NumberField({ initial: 0, integer: true }) + major: new fields.NumberField({ initial: 0, integer: true, initial: 0 }), + severe: new fields.NumberField({ initial: 0, integer: true, initial: 0 }) }), quantity: new fields.NumberField({ initial: 1, integer: true }), description: new fields.HTMLField({}) diff --git a/module/data/weapon.mjs b/module/data/weapon.mjs index 263a4fb4..a0ef07b2 100644 --- a/module/data/weapon.mjs +++ b/module/data/weapon.mjs @@ -5,13 +5,17 @@ export default class DhpWeapon extends foundry.abstract.TypeDataModel { equipped: new fields.BooleanField({ initial: false }), inventoryWeapon: new fields.NumberField({ initial: null, nullable: true, integer: true }), secondary: new fields.BooleanField({ initial: false }), - trait: new fields.StringField({ choices: SYSTEM.ACTOR.abilities, integer: false }), - range: new fields.StringField({ choices: SYSTEM.GENERAL.range, integer: false }), + trait: new fields.StringField({ choices: SYSTEM.ACTOR.abilities, integer: false, initial: 'agility' }), + range: new fields.StringField({ choices: SYSTEM.GENERAL.range, integer: false, initial: 'melee' }), damage: new fields.SchemaField({ - value: new fields.StringField({}), - type: new fields.StringField({ choices: SYSTEM.GENERAL.damageTypes, integer: false }) + value: new fields.StringField({ initial: 'd6' }), + type: new fields.StringField({ + choices: SYSTEM.GENERAL.damageTypes, + integer: false, + initial: 'physical' + }) }), - burden: new fields.StringField({ choices: SYSTEM.GENERAL.burden, integer: false }), + burden: new fields.StringField({ choices: SYSTEM.GENERAL.burden, integer: false, initial: 'oneHanded' }), feature: new fields.StringField({ choices: SYSTEM.ITEM.weaponFeatures, integer: false, blank: true }), quantity: new fields.NumberField({ initial: 1, integer: true }), description: new fields.HTMLField({}) diff --git a/styles/daggerheart.css b/styles/daggerheart.css index f15e3ede..178e4d69 100755 --- a/styles/daggerheart.css +++ b/styles/daggerheart.css @@ -3075,6 +3075,11 @@ div.daggerheart.views.multiclass { align-items: center; gap: 5px; } +.application.sheet.dh-style fieldset .form-group label { + font-family: 'Montserrat', sans-serif; + font-weight: bold; + font-size: smaller; +} .application.sheet.dh-style line-div { display: block; height: 1px; @@ -3177,6 +3182,7 @@ div.daggerheart.views.multiclass { } .application.sheet.daggerheart.dh-style .item-sheet-header .item-info .item-description { display: flex; + flex-direction: column; gap: 10px; } .application.sheet.daggerheart.dh-style .item-sheet-header .item-info h3 { diff --git a/styles/less/global/elements.less b/styles/less/global/elements.less index 7888d8d3..9001e65e 100755 --- a/styles/less/global/elements.less +++ b/styles/less/global/elements.less @@ -132,6 +132,14 @@ align-items: center; gap: 5px; } + + .form-group { + label { + font-family: @font-body; + font-weight: bold; + font-size: smaller; + } + } } line-div { diff --git a/styles/less/global/item-header.less b/styles/less/global/item-header.less index e34bc30f..290e3bdd 100755 --- a/styles/less/global/item-header.less +++ b/styles/less/global/item-header.less @@ -41,6 +41,7 @@ .item-description { display: flex; + flex-direction: column; gap: 10px; } diff --git a/templates/sheets/armor.hbs b/templates/sheets/armor.hbs deleted file mode 100644 index aee89005..00000000 --- a/templates/sheets/armor.hbs +++ /dev/null @@ -1,42 +0,0 @@ -
-
-
- -
- {{formInput fields.name value=source.name rootId=partId}} -
-
-
- -
- {{formField systemFields.baseScore value=source.system.baseScore label=(localize "DAGGERHEART.Sheets.Armor.BaseScore") }} - {{formField systemFields.feature value=source.system.feature label=(localize "DAGGERHEART.Sheets.Armor.Feature") localize=true blank=""}} -
-

{{localize "DAGGERHEART.Sheets.Armor.BaseThresholds.Base"}}

- {{ formField systemFields.baseThresholds.fields.major value=source.system.baseThresholds.major label=(localize "DAGGERHEART.Sheets.Armor.BaseThresholds.Major") }}/ - {{ formField systemFields.baseThresholds.fields.severe value=source.system.baseThresholds.severe label=(localize "DAGGERHEART.Sheets.Armor.BaseThresholds.Severe") }} -
-
-

{{localize "DAGGERHEART.Sheets.Armor.Description"}}

- {{formInput systemFields.description value=source.system.description enriched=source.system.description localize=true toggled=true}} -
- {{!--
- -
- -
-
--}} - {{!--
- -
- -
-
-
-

{{localize "DAGGERHEART.Sheets.Armor.Description"}}

- {{editor item.system.description target="system.description" button=true}} -
--}} -
-
\ No newline at end of file diff --git a/templates/sheets/class.hbs b/templates/sheets/class.hbs index 99da282d..935b1019 100644 --- a/templates/sheets/class.hbs +++ b/templates/sheets/class.hbs @@ -80,13 +80,13 @@
- +
- +
diff --git a/templates/sheets/items/armor/header.hbs b/templates/sheets/items/armor/header.hbs new file mode 100644 index 00000000..c7453077 --- /dev/null +++ b/templates/sheets/items/armor/header.hbs @@ -0,0 +1,21 @@ +
+ +
+ +

+
+

+ {{localize 'TYPES.Item.armor'}} +

+

+ {{localize "DAGGERHEART.Sheets.Armor.baseScore"}}: + {{source.system.baseScore}} + - + {{localize "DAGGERHEART.Sheets.Armor.baseThresholds.base"}}: + {{source.system.baseThresholds.major}} + / + {{source.system.baseThresholds.severe}} +

+
+
+
\ No newline at end of file diff --git a/templates/sheets/items/armor/settings.hbs b/templates/sheets/items/armor/settings.hbs new file mode 100644 index 00000000..cf0fea50 --- /dev/null +++ b/templates/sheets/items/armor/settings.hbs @@ -0,0 +1,21 @@ +
+ +
+ {{localize tabs.settings.label}} + {{localize "DAGGERHEART.Sheets.Armor.baseScore"}} + {{formField systemFields.baseScore value=source.system.baseScore}} + + {{localize "DAGGERHEART.Sheets.Armor.feature"}} + {{formField systemFields.feature value=source.system.feature localize=true blank=""}} + + {{localize "DAGGERHEART.Sheets.Armor.baseThresholds.base"}} +
+ {{ formField systemFields.baseThresholds.fields.major value=source.system.baseThresholds.major label=(localize "DAGGERHEART.Sheets.Armor.baseThresholds.major") }} + {{ formField systemFields.baseThresholds.fields.severe value=source.system.baseThresholds.severe label=(localize "DAGGERHEART.Sheets.Armor.baseThresholds.severe") }} +
+
+
\ No newline at end of file diff --git a/templates/sheets/items/weapon/header.hbs b/templates/sheets/items/weapon/header.hbs new file mode 100644 index 00000000..5d33c6ae --- /dev/null +++ b/templates/sheets/items/weapon/header.hbs @@ -0,0 +1,24 @@ +
+ +
+ +

+
+ {{#if source.system.secondary}} +

{{localize "DAGGERHEART.Sheets.Weapon.SecondaryWeapon"}}

+ {{else}} +

{{localize "DAGGERHEART.Sheets.Weapon.PrimaryWeapon"}}

+ {{/if}} +

+ {{localize (concat 'DAGGERHEART.Abilities.' source.system.trait '.short')}} + - + {{localize (concat 'DAGGERHEART.Range.' source.system.range '.name')}} + - + {{source.system.damage.value}} + ({{localize (concat 'DAGGERHEART.DamageType.' source.system.damage.type '.abbreviation')}}) + - + {{localize (concat 'DAGGERHEART.Burden.' source.system.burden)}} +

+
+
+
\ No newline at end of file diff --git a/templates/sheets/items/weapon/settings.hbs b/templates/sheets/items/weapon/settings.hbs new file mode 100644 index 00000000..00d2e432 --- /dev/null +++ b/templates/sheets/items/weapon/settings.hbs @@ -0,0 +1,30 @@ +
+
+ {{localize tabs.settings.label}} + {{localize "DAGGERHEART.Sheets.Weapon.SecondaryWeapon"}} + {{formField systemFields.secondary value=source.system.secondary}} + {{localize "DAGGERHEART.Sheets.Weapon.Trait"}} + {{formField systemFields.trait value=source.system.trait localize=true}} + {{localize "DAGGERHEART.Sheets.Weapon.Range"}} + {{formField systemFields.range value=source.system.range localize=true}} + {{localize "DAGGERHEART.Sheets.Weapon.Burden"}} + {{formField systemFields.burden value=source.system.burden localize=true}} +
+ +
+ {{localize "DAGGERHEART.Sheets.Weapon.Damage.Title"}} + {{localize "DAGGERHEART.Sheets.Weapon.Damage.Value"}} + {{formGroup systemFields.damage.fields.value value=source.system.damage.value}} + {{localize "DAGGERHEART.Sheets.Weapon.Damage.Type"}} + {{formGroup systemFields.damage.fields.type value=source.system.damage.type localize=true}} +
+
+ {{localize "DAGGERHEART.Sheets.Weapon.Feature"}} + {{localize "DAGGERHEART.Sheets.Weapon.Feature"}} + {{formField systemFields.feature value=source.system.feature localize=true}} +
+
\ No newline at end of file diff --git a/templates/sheets/weapon.hbs b/templates/sheets/weapon.hbs deleted file mode 100644 index 7d5739b7..00000000 --- a/templates/sheets/weapon.hbs +++ /dev/null @@ -1,86 +0,0 @@ -
-
- {{!--
- -
-

-
-
--}} -
- -
- {{formInput fields.name value=source.name rootId=partId}} -
-
-
- -
- {{formField systemFields.secondary value=source.system.secondary label=(localize "DAGGERHEART.Sheets.Weapon.SecondaryWeapon") }} - {{formField systemFields.trait value=source.system.trait label=(localize "DAGGERHEART.Sheets.Weapon.Trait") localize=true }} - {{formField systemFields.range value=source.system.range label=(localize "DAGGERHEART.Sheets.Weapon.Range") localize=true }} -
- -
- {{formGroup systemFields.damage.fields.value value=source.system.damage.value label=(localize "DAGGERHEART.Sheets.Weapon.Damage.Value") }} - {{formGroup systemFields.damage.fields.type value=source.system.damage.type label=(localize "DAGGERHEART.Sheets.Weapon.Damage.Type") localize=true }} -
-
- {{formField systemFields.burden value=source.system.burden label=(localize "DAGGERHEART.Sheets.Weapon.Burden") localize=true }} - {{formField systemFields.feature value=source.system.feature label=(localize "DAGGERHEART.Sheets.Weapon.Feature") localize=true }} - {{!--
- -
- -
-
--}} - {{!--
- -
- -
-
--}} - {{!--
- -
- -
-
--}} - {{!--
- -
- - - - -
-
--}} - - {{!--
- -
- -
-
--}} - {{!--
- -
- -
-
--}} -
-

{{localize "DAGGERHEART.Sheets.Weapon.Description"}}

- {{formInput systemFields.description value=source.system.description enriched=source.system.description localize=true toggled=true}} - {{!-- {{editor item.system.description target="system.description" button=true}} --}} -
-
-
\ No newline at end of file