diff --git a/module/data/chat-message/dualityRoll.mjs b/module/data/chat-message/dualityRoll.mjs index 63fa9fa3..62b07d6f 100644 --- a/module/data/chat-message/dualityRoll.mjs +++ b/module/data/chat-message/dualityRoll.mjs @@ -1,6 +1,19 @@ import DHAdversaryRoll from './adversaryRoll.mjs'; export default class DHDualityRoll extends DHAdversaryRoll { + static defineSchema() { + const fields = foundry.data.fields; + + return { + ...super.defineSchema(), + result: new fields.SchemaField({ + duality: new fields.NumberField({ integer: true }), + label: new fields.StringField(), + total: new fields.NumberField({ integer: true }) + }) + }; + } + get messageTemplate() { return 'systems/daggerheart/templates/ui/chat/duality-roll.hbs'; } diff --git a/module/dice/d20Roll.mjs b/module/dice/d20Roll.mjs index c344231f..9c784084 100644 --- a/module/dice/d20Roll.mjs +++ b/module/dice/d20Roll.mjs @@ -1,5 +1,4 @@ import D20RollDialog from '../applications/dialogs/d20RollDialog.mjs'; -import { setDiceSoNiceForDualityRoll } from '../helpers/utils.mjs'; import DHRoll from './dhRoll.mjs'; export default class D20Roll extends DHRoll { @@ -137,12 +136,7 @@ export default class D20Roll extends DHRoll { static async buildEvaluate(roll, config = {}, message = {}) { if (config.evaluate !== false) await roll.evaluate(); - const advantageState = - config.roll.advantage == this.ADV_MODE.ADVANTAGE - ? true - : config.roll.advantage == this.ADV_MODE.DISADVANTAGE - ? false - : null; + this.postEvaluate(roll, config); } diff --git a/module/dice/dhRoll.mjs b/module/dice/dhRoll.mjs index 13246ac9..46e7374e 100644 --- a/module/dice/dhRoll.mjs +++ b/module/dice/dhRoll.mjs @@ -154,7 +154,7 @@ export const registerRollDiceHooks = () => { if (updates.length) actor.modifyResource(updates); - if (!config.roll.hasOwnProperty('success') && !config.targets.length) return; + if (!config.roll.hasOwnProperty('success') && !config.targets?.length) return; const rollResult = config.roll.success || config.targets.some(t => t.hit), looseSpotlight = !rollResult || config.roll.result.duality === -1; diff --git a/module/dice/dualityRoll.mjs b/module/dice/dualityRoll.mjs index 4d0e99a3..6b991f8a 100644 --- a/module/dice/dualityRoll.mjs +++ b/module/dice/dualityRoll.mjs @@ -1,5 +1,6 @@ import D20RollDialog from '../applications/dialogs/d20RollDialog.mjs'; import D20Roll from './d20Roll.mjs'; +import { setDiceSoNiceForDualityRoll } from '../helpers/utils.mjs'; export default class DualityRoll extends D20Roll { _advantageFaces = 6; @@ -80,7 +81,6 @@ export default class DualityRoll extends D20Roll { } static getHooks(hooks) { - return [...(hooks ?? []), 'Duality']; } @@ -142,5 +142,13 @@ export default class DualityRoll extends D20Roll { total: roll.dHope.total + roll.dFear.total, label: roll.totalLabel }; + + const advantageState = + config.roll.advantage == this.ADV_MODE.ADVANTAGE + ? true + : config.roll.advantage == this.ADV_MODE.DISADVANTAGE + ? false + : null; + setDiceSoNiceForDualityRoll(roll, advantageState); } }