diff --git a/module/data/fields/action/damageField.mjs b/module/data/fields/action/damageField.mjs index bb81c702..a7e313f1 100644 --- a/module/data/fields/action/damageField.mjs +++ b/module/data/fields/action/damageField.mjs @@ -161,6 +161,22 @@ export default class DamageField extends fields.SchemaField { return formulaValue; } + /** + * Return a display ready damage formula string + * Must be called within Action context or similar. + * @param {Array} parts Damage Parts + * @param {object} data Action getRollData + * @returns Formula string + */ + static getFormulaString(parts) { + const strings = []; + for (const { value } of parts) { + strings.push(Roll.replaceFormulaData(value.getFormula(), this.actor?.getRollData() ?? {})); + } + + return strings.join(' + '); + } + /** * Prepare formulas for Damage Roll * Must be called within Action context or similar. diff --git a/module/helpers/handlebarsHelper.mjs b/module/helpers/handlebarsHelper.mjs index 2aa72dfc..05f33b11 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 game.system.api.fields.ActionFields.DamageField.getFormulaString.bind(attack)(attack.damage.parts); } 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 @@