if (data.pool == "XP" && !data.skipDialog) return ui.notifications.warn(game.i18n.localize("CYPHERSYSTEM.CantUseAIOMacroWithAbilitiesUsingXP"));
But at this point data.skipDialog is set to !game.settings.get("cyphersystem", "itemMacrosUseAllInOne") and the lines 49-51 that deal with Alt modifier and other ways to change AIO for the roll didn't execute yet.
Describe the bug All-In-One dialog check for abilities that cost XP only considers system setting, and does not take Alt into consideration.
Steps to reproduce the behavior
Scenario 1:
Scenario 2:
Expected behavior
Non-AIO rolls succeed, AIO rolls are blocked for XP-costing abilities regardless of system setting.
Setup
Additional context
The culprit is in
roll-engine-main.js
, specifically the ordering of lines https://github.com/mrkwnzl/cyphersystem-foundryvtt/blob/fd22e2c4bed79cd297da6096a20a684b72950684/module/utilities/roll-engine/roll-engine-main.js#L5-L51The check happens in line 38:
But at this point
data.skipDialog
is set to!game.settings.get("cyphersystem", "itemMacrosUseAllInOne")
and the lines 49-51 that deal with Alt modifier and other ways to change AIO for the roll didn't execute yet.