Fix damage & healing roll

This commit is contained in:
Dapoolp 2025-08-01 19:49:59 +02:00
parent 57f19c41cd
commit a25dbb462c
19 changed files with 200 additions and 60 deletions

View file

@ -34,6 +34,7 @@ export default class DHDamageAction extends DHBaseAction {
}
async rollDamage(event, data) {
// console.log(data)
const systemData = data.system ?? data;
let formulas = this.damage.parts.map(p => ({
@ -46,6 +47,36 @@ export default class DHDamageAction extends DHBaseAction {
formulas = this.formatFormulas(formulas, systemData);
delete systemData.evaluate;
systemData.targets.forEach(t => t.hit = true);
const config = {
...systemData,
roll: formulas,
dialog: {},
data: this.getRollData()
}
if (this.hasSave) config.onSave = this.save.damageMod;
if (data.system) {
config.source.message = data._id;
config.directDamage = false;
} else {
config.directDamage = true;
}
return CONFIG.Dice.daggerheart.DamageRoll.build(config);
/* const systemData = data.system ?? data;
let formulas = this.damage.parts.map(p => ({
formula: this.getFormulaValue(p, data).getFormula(this.actor),
damageTypes: p.applyTo === 'hitPoints' && !p.type.size ? new Set(['physical']) : p.type,
applyTo: p.applyTo
}));
if (!formulas.length) return;
formulas = this.formatFormulas(formulas, systemData);
const config = {
title: game.i18n.format(`DAGGERHEART.UI.Chat.${ this.type === 'healing' ? 'healing' : 'damage'}Roll.title`, { damage: game.i18n.localize(this.name) }),
roll: formulas,
@ -53,6 +84,9 @@ export default class DHDamageAction extends DHBaseAction {
hasSave: this.hasSave,
isCritical: systemData.roll?.isCritical ?? false,
isHealing: this.type === 'healing',
hasDamage: this.type !== 'healing',
hasHealing: this.type === 'healing',
hasTarget: true,
source: systemData.source,
data: this.getRollData(),
event
@ -65,6 +99,6 @@ export default class DHDamageAction extends DHBaseAction {
config.directDamage = true;
}
return CONFIG.Dice.daggerheart.DamageRoll.build(config);
return CONFIG.Dice.daggerheart.DamageRoll.build(config); */
}
}