Fix rolling critical damage after rerolling into a crit

This commit is contained in:
Carlos Fernandez 2026-04-01 00:59:16 -04:00
parent 25264c26e9
commit 90d58a55ee
4 changed files with 48 additions and 51 deletions

View file

@ -40,7 +40,6 @@ export default class DHActorRoll extends foundry.abstract.TypeDataModel {
hasSave: new fields.BooleanField({ initial: false }),
hasTarget: new fields.BooleanField({ initial: false }),
isDirect: new fields.BooleanField({ initial: false }),
isCritical: new fields.BooleanField({ initial: false }),
onSave: new fields.StringField(),
source: new fields.SchemaField({
actor: new fields.StringField(),

View file

@ -49,11 +49,14 @@ export default class DamageField extends fields.SchemaField {
formulas = DamageField.formatFormulas.call(this, formulas, config);
messageId = config.message?._id ?? messageId;
const message = game.messages.get(messageId);
const damageConfig = {
dialog: {},
...config,
roll: formulas,
data: this.getRollData()
data: this.getRollData(),
isCritical: message?.system.roll.isCritical
};
delete damageConfig.evaluate;
@ -61,7 +64,7 @@ export default class DamageField extends fields.SchemaField {
damageConfig.dialog.configure = false;
if (config.hasSave) config.onSave = damageConfig.onSave = this.save.damageMod;
damageConfig.source.message = config.message?._id ?? messageId;
damageConfig.source.message = messageId;
damageConfig.directDamage = !!damageConfig.source?.message;
// if(damageConfig.source?.message && game.modules.get('dice-so-nice')?.active)