diff --git a/module/data/action/damageAction.mjs b/module/data/action/damageAction.mjs index b4b3e17c..51735543 100644 --- a/module/data/action/damageAction.mjs +++ b/module/data/action/damageAction.mjs @@ -2,4 +2,17 @@ import DHBaseAction from './baseAction.mjs'; export default class DHDamageAction extends DHBaseAction { static extraSchemas = [...super.extraSchemas, 'damage', 'target', 'effects']; + + /** + * Return a display ready damage formula string + * @returns Formula string + */ + getDamageFormula() { + const strings = []; + for (const { value } of this.damage.parts) { + strings.push(Roll.replaceFormulaData(value.getFormula(), this.actor?.getRollData() ?? {})); + } + + return strings.join(' + '); + } } diff --git a/module/helpers/handlebarsHelper.mjs b/module/helpers/handlebarsHelper.mjs index 2aa72dfc..2faea830 100644 --- a/module/helpers/handlebarsHelper.mjs +++ b/module/helpers/handlebarsHelper.mjs @@ -35,14 +35,8 @@ export default class RegisterHandlebarsHelpers { return accum; } - static damageFormula(attack, actor) { - const traitTotal = actor.system.traits?.[attack.roll.trait]?.value; - const instances = [ - attack.damage.parts.map(x => Roll.replaceFormulaData(x.value.getFormula(), actor)).join(' + '), - traitTotal - ].filter(x => x); - - return instances.join(traitTotal > 0 ? ' + ' : ' - '); + static damageFormula(attack) { + return attack.getDamageFormula(); } static formulaValue(formula, item) { diff --git a/templates/sheets/actors/adversary/sidebar.hbs b/templates/sheets/actors/adversary/sidebar.hbs index cf724e7d..d2fca5f1 100644 --- a/templates/sheets/actors/adversary/sidebar.hbs +++ b/templates/sheets/actors/adversary/sidebar.hbs @@ -64,9 +64,9 @@ diff --git a/templates/sheets/actors/character/sidebar.hbs b/templates/sheets/actors/character/sidebar.hbs index 9ef3939a..7f470b0a 100644 --- a/templates/sheets/actors/character/sidebar.hbs +++ b/templates/sheets/actors/character/sidebar.hbs @@ -104,16 +104,16 @@