Fixed so the damage calculation is correct. Fixed so the right tooltip is shown for attacks

This commit is contained in:
WBHarry 2025-12-01 16:25:59 +01:00
parent 8f917c3640
commit 51135b6a67
8 changed files with 48 additions and 32 deletions

View file

@ -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<object>} 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.

View file

@ -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) {