This commit is contained in:
WBHarry 2026-07-21 09:49:51 +02:00 committed by GitHub
commit a1f40ead36
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 104 additions and 60 deletions

View file

@ -1,5 +1,5 @@
import DamageDialog from '../applications/dialogs/damageDialog.mjs';
import { parseRallyDice, triggerChatRollFx } from '../helpers/utils.mjs';
import { getCritDamageBonus, parseRallyDice, triggerChatRollFx } from '../helpers/utils.mjs';
import DHRoll from './dhRoll.mjs';
export default class DamageRoll extends DHRoll {
@ -8,7 +8,17 @@ export default class DamageRoll extends DHRoll {
}
get isCritical() {
return !!this.options.isCritical;
return this.options.isCritical;
}
get modifierTotal() {
const criticalDamageBonus = this.isCritical ? getCritDamageBonus(this.terms) : 0;
return super.modifierTotal + criticalDamageBonus;
}
get total() {
const criticalDamageBonus = this.isCritical ? getCritDamageBonus(this.terms) : 0;
return super.total + criticalDamageBonus;
}
static DefaultDialog = DamageDialog;
@ -23,7 +33,7 @@ export default class DamageRoll extends DHRoll {
const evaluateRoll = async roll => {
await roll.roll.evaluate();
roll.roll.options = { damageTypes: roll.damageTypes ? [...roll.damageTypes] : [] };
roll.roll.options = { ...roll.roll.options, damageTypes: roll.damageTypes ? [...roll.damageTypes] : [] };
return roll.roll;
}
@ -31,8 +41,10 @@ export default class DamageRoll extends DHRoll {
if (config.damageFormula) {
config.damage.main = await evaluateRoll(config.damageFormula);
config.damage.main.options = { damageTypes:
config.damageFormula.damageTypes ? [...config.damageFormula.damageTypes] : []
config.damage.main.options = {
...config.damage.main.options,
damageTypes:
config.damageFormula.damageTypes ? [...config.damageFormula.damageTypes] : []
};
}
@ -151,7 +163,7 @@ export default class DamageRoll extends DHRoll {
if (!formulaData) return null;
this.options.isCritical = config.isCritical;
formulaData.roll = new Roll(Roll.replaceFormulaData(formulaData.formula, config.data));
formulaData.roll = new this.constructor(Roll.replaceFormulaData(formulaData.formula, config.data));
formulaData.roll.terms = Roll.parse(formulaData.roll.formula, config.data);
if (formulaData.extraFormula) {