[BUG] DiceSoNice fix (#312)

* Fixed DiceSoNice integration again

* PR fixes

* Improved with tertiary
This commit is contained in:
WBHarry 2025-07-10 13:28:51 +02:00 committed by GitHub
parent b3e7c6b9b2
commit 70239ec06a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 9 additions and 15 deletions

View file

@ -1,5 +1,4 @@
import D20RollDialog from '../applications/dialogs/d20RollDialog.mjs'; import D20RollDialog from '../applications/dialogs/d20RollDialog.mjs';
import { setDiceSoNiceForDualityRoll } from '../helpers/utils.mjs';
import DHRoll from './dhRoll.mjs'; import DHRoll from './dhRoll.mjs';
export default class D20Roll extends DHRoll { export default class D20Roll extends DHRoll {
@ -137,12 +136,7 @@ export default class D20Roll extends DHRoll {
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();
const advantageState =
config.roll.advantage == this.ADV_MODE.ADVANTAGE
? true
: config.roll.advantage == this.ADV_MODE.DISADVANTAGE
? false
: null;
this.postEvaluate(roll, config); this.postEvaluate(roll, config);
} }

View file

@ -154,7 +154,7 @@ export const registerRollDiceHooks = () => {
if (updates.length) actor.modifyResource(updates); 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), const rollResult = config.roll.success || config.targets.some(t => t.hit),
looseSpotlight = !rollResult || config.roll.result.duality === -1; looseSpotlight = !rollResult || config.roll.result.duality === -1;

View file

@ -1,5 +1,6 @@
import D20RollDialog from '../applications/dialogs/d20RollDialog.mjs'; import D20RollDialog from '../applications/dialogs/d20RollDialog.mjs';
import D20Roll from './d20Roll.mjs'; import D20Roll from './d20Roll.mjs';
import { setDiceSoNiceForDualityRoll } from '../helpers/utils.mjs';
export default class DualityRoll extends D20Roll { export default class DualityRoll extends D20Roll {
_advantageFaces = 6; _advantageFaces = 6;
@ -80,7 +81,6 @@ export default class DualityRoll extends D20Roll {
} }
static getHooks(hooks) { static getHooks(hooks) {
return [...(hooks ?? []), 'Duality']; return [...(hooks ?? []), 'Duality'];
} }
@ -142,5 +142,7 @@ export default class DualityRoll extends D20Roll {
total: roll.dHope.total + roll.dFear.total, total: roll.dHope.total + roll.dFear.total,
label: roll.totalLabel label: roll.totalLabel
}; };
setDiceSoNiceForDualityRoll(roll, config.roll.advantage.type);
} }
} }

View file

@ -126,12 +126,10 @@ export const setDiceSoNiceForDualityRoll = (rollResult, advantageState) => {
const diceSoNicePresets = getDiceSoNicePresets(); const diceSoNicePresets = getDiceSoNicePresets();
rollResult.dice[0].options = { appearance: diceSoNicePresets.hope }; rollResult.dice[0].options = { appearance: diceSoNicePresets.hope };
rollResult.dice[1].options = { appearance: diceSoNicePresets.fear }; //diceSoNicePresets.fear; rollResult.dice[1].options = { appearance: diceSoNicePresets.fear }; //diceSoNicePresets.fear;
if (rollResult.dice[2]) { if (rollResult.dice[2] && advantageState) {
if (advantageState === true) { rollResult.dice[2].options = {
rollResult.dice[2].options = { appearance: diceSoNicePresets.advantage }; appearance: advantageState === 1 ? diceSoNicePresets.advantage : diceSoNicePresets.disadvantage
} else if (advantageState === false) { };
rollResult.dice[2].options = { appearance: diceSoNicePresets.disadvantage };
}
} }
}; };