Fix async/await roll postEvaluate

This commit is contained in:
Dapoolp 2025-07-26 14:40:34 +02:00
parent bf31ced3df
commit 86b651cc11
4 changed files with 22 additions and 18 deletions

View file

@ -140,8 +140,8 @@ export default class D20Roll extends DHRoll {
return modifiers; return modifiers;
} }
static async postEvaluate(roll, config = {}) { static postEvaluate(roll, config = {}) {
const data = await super.postEvaluate(roll, config); const data = super.postEvaluate(roll, config);
if (config.targets?.length) { if (config.targets?.length) {
config.targets.forEach(target => { config.targets.forEach(target => {
const difficulty = config.roll.difficulty ?? target.difficulty ?? target.evasion; const difficulty = config.roll.difficulty ?? target.difficulty ?? target.evasion;
@ -184,7 +184,7 @@ export default class D20Roll extends DHRoll {
static async reroll(rollString, _target, message) { static async reroll(rollString, _target, message) {
let parsedRoll = game.system.api.dice.D20Roll.fromData(rollString); let parsedRoll = game.system.api.dice.D20Roll.fromData(rollString);
parsedRoll = await parsedRoll.reroll(); parsedRoll = await parsedRoll.reroll();
const newRoll = await game.system.api.dice.D20Roll.postEvaluate(parsedRoll, { const newRoll = game.system.api.dice.D20Roll.postEvaluate(parsedRoll, {
targets: message.system.targets, targets: message.system.targets,
roll: { roll: {
advantage: message.system.roll.advantage?.type, advantage: message.system.roll.advantage?.type,

View file

@ -25,10 +25,10 @@ export default class DamageRoll extends DHRoll {
config.roll = this.unifyDamageRoll(parts); config.roll = this.unifyDamageRoll(parts);
} }
static async postEvaluate(roll, config = {}) { static postEvaluate(roll, config = {}) {
return { return {
...roll, ...roll,
...(await super.postEvaluate(roll.roll, config)), ...super.postEvaluate(roll.roll, config),
damageTypes: [...(roll.damageTypes ?? [])], damageTypes: [...(roll.damageTypes ?? [])],
roll: roll.roll, roll: roll.roll,
type: config.type, type: config.type,

View file

@ -47,7 +47,7 @@ export default class DHRoll extends Roll {
static async buildEvaluate(roll, config = {}, message = {}) { static async buildEvaluate(roll, config = {}, message = {}) {
if (config.evaluate !== false) await roll.evaluate(); if (config.evaluate !== false) await roll.evaluate();
config.roll = await this.postEvaluate(roll, config); config.roll = this.postEvaluate(roll, config);
} }
static async buildPost(roll, config, message) { static async buildPost(roll, config, message) {
@ -67,7 +67,7 @@ export default class DHRoll extends Roll {
} else config.message = await this.toMessage(roll, config); } else config.message = await this.toMessage(roll, config);
} }
static async postEvaluate(roll, config = {}) { static postEvaluate(roll, config = {}) {
return { return {
total: roll.total, total: roll.total,
formula: roll.formula, formula: roll.formula,

View file

@ -166,8 +166,20 @@ export default class DualityRoll extends D20Roll {
return modifiers; return modifiers;
} }
static async postEvaluate(roll, config = {}) { static async buildEvaluate(roll, config = {}, message = {}) {
const data = await super.postEvaluate(roll, config); await super.buildEvaluate(roll, config, message);
await setDiceSoNiceForDualityRoll(
roll,
config.roll.advantage.type,
config.roll.hope.dice,
config.roll.fear.dice,
config.roll.advantage.dice
);
}
static postEvaluate(roll, config = {}) {
const data = super.postEvaluate(roll, config);
data.hope = { data.hope = {
dice: roll.dHope.denomination, dice: roll.dHope.denomination,
@ -198,14 +210,6 @@ export default class DualityRoll extends D20Roll {
if (roll._rallyIndex && roll.data?.parent) if (roll._rallyIndex && roll.data?.parent)
roll.data.parent.deleteEmbeddedDocuments('ActiveEffect', [roll._rallyIndex]); roll.data.parent.deleteEmbeddedDocuments('ActiveEffect', [roll._rallyIndex]);
await setDiceSoNiceForDualityRoll(
roll,
data.advantage.type,
data.hope.dice,
data.fear.dice,
data.advantage.dice
);
return data; return data;
} }
@ -237,7 +241,7 @@ export default class DualityRoll extends D20Roll {
await parsedRoll.evaluate(); await parsedRoll.evaluate();
const newRoll = await game.system.api.dice.DualityRoll.postEvaluate(parsedRoll, { const newRoll = game.system.api.dice.DualityRoll.postEvaluate(parsedRoll, {
targets: message.system.targets, targets: message.system.targets,
roll: { roll: {
advantage: message.system.roll.advantage?.type, advantage: message.system.roll.advantage?.type,