FIX: formula lables for attacks and weapons

This commit is contained in:
Joaquin Pereyra 2025-08-10 21:30:54 -03:00
parent 9d0cfdd927
commit e154d8610c
4 changed files with 22 additions and 18 deletions

View file

@ -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 });
}
}

View file

@ -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;
}

View file

@ -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;
}
}

View file

@ -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 });
}
}