Fix rolling critical damage after rerolling into a crit (#1761)

This commit is contained in:
Carlos Fernandez 2026-04-01 03:47:20 -04:00 committed by GitHub
parent 25264c26e9
commit 29734c5fb5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
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)