From e154d8610c6ccfbbf5de31893abfb3ff7c43b4b5 Mon Sep 17 00:00:00 2001 From: Joaquin Pereyra Date: Sun, 10 Aug 2025 21:30:54 -0300 Subject: [PATCH] FIX: formula lables for attacks and weapons --- module/data/action/attackAction.mjs | 12 +++++------- module/data/item/armor.mjs | 3 ++- module/data/item/domainCard.mjs | 10 +++++++++- module/data/item/weapon.mjs | 15 ++++++--------- 4 files changed, 22 insertions(+), 18 deletions(-) diff --git a/module/data/action/attackAction.mjs b/module/data/action/attackAction.mjs index 984ff97a..62463d15 100644 --- a/module/data/action/attackAction.mjs +++ b/module/data/action/attackAction.mjs @@ -50,23 +50,21 @@ export default class DHAttackAction extends DHDamageAction { _getLabels() { const labels = []; const { roll, range, damage } = this; - + if (roll.trait) labels.push(game.i18n.localize(`DAGGERHEART.CONFIG.Traits.${roll.trait}.short`)) - labels.push(game.i18n.localize(`DAGGERHEART.CONFIG.Range.${range}.short`)); + if (range) labels.push(game.i18n.localize(`DAGGERHEART.CONFIG.Range.${range}.short`)); for (const { value, type } of damage.parts) { - const str = [value.dice]; - if (value.bonus) str.push(value.bonus.signedString()); + const str = Roll.replaceFormulaData(value.getFormula(), this.actor?.getRollData() ?? {}); const icons = Array.from(type) .map(t => CONFIG.DH.GENERAL.damageTypes[t]?.icon) .filter(Boolean); - const labelValue = str.join(''); if (icons.length === 0) { - labels.push(labelValue); + labels.push(str); } else { - labels.push({ value: labelValue, icons }); + labels.push({ value: str, icons }); } } diff --git a/module/data/item/armor.mjs b/module/data/item/armor.mjs index a8c3dcec..7f70d3f7 100644 --- a/module/data/item/armor.mjs +++ b/module/data/item/armor.mjs @@ -144,7 +144,8 @@ export default class DHArmor extends AttachableItem { * @returns {(string | { value: string, icons: string[] })[]} An array of localized strings and damage label objects. */ _getLabels() { - const labels = [`${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.baseScore}`]; + const labels = []; + if(this.baseScore) labels.push(`${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.baseScore}`) return labels; } diff --git a/module/data/item/domainCard.mjs b/module/data/item/domainCard.mjs index 7705adb1..9d5e80e7 100644 --- a/module/data/item/domainCard.mjs +++ b/module/data/item/domainCard.mjs @@ -89,7 +89,7 @@ export default class DHDomainCard extends BaseDataItem { */ _getLabels() { const labels = [ - game.i18n.localize(`DAGGERHEART.CONFIG.DomainCardTypes.${this.type}`), + , this.domainLabel, { value: `${this.recallCost}`, //converts the number to a string @@ -97,6 +97,14 @@ export default class DHDomainCard extends BaseDataItem { } ]; + if (this.type) labels.push(game.i18n.localize(`DAGGERHEART.CONFIG.DomainCardTypes.${this.type}`)); + if (this.domainLabel) labels.push(this.domainLabel); + if (this.recallCost) { + labels.push({ + value: `${this.recallCost}`, //converts the number to a string + icons: ['fa-bolt'] + }); + } return labels; } } diff --git a/module/data/item/weapon.mjs b/module/data/item/weapon.mjs index 60a17e3d..0cba35b8 100644 --- a/module/data/item/weapon.mjs +++ b/module/data/item/weapon.mjs @@ -209,26 +209,23 @@ export default class DHWeapon extends AttachableItem { * @returns {(string | { value: string, icons: string[] })[]} An array of localized strings and damage label objects. */ _getLabels() { + const labels = []; const { roll, range, damage } = this.attack; - const labels = [ - game.i18n.localize(`DAGGERHEART.CONFIG.Traits.${roll.trait}.short`), - game.i18n.localize(`DAGGERHEART.CONFIG.Range.${range}.short`) - ]; + if (roll.trait) labels.push(game.i18n.localize(`DAGGERHEART.CONFIG.Traits.${roll.trait}.short`)) + if (range) labels.push(game.i18n.localize(`DAGGERHEART.CONFIG.Range.${range}.short`)); for (const { value, type } of damage.parts) { - const str = [value.dice]; - if (value.bonus) str.push(value.bonus.signedString()); + const str = Roll.replaceFormulaData(value.getFormula(), this.actor?.getRollData() ?? {}); const icons = Array.from(type) .map(t => CONFIG.DH.GENERAL.damageTypes[t]?.icon) .filter(Boolean); - const labelValue = str.join(''); if (icons.length === 0) { - labels.push(labelValue); + labels.push(str); } else { - labels.push({ value: labelValue, icons }); + labels.push({ value: str, icons }); } }