You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Full Dual Compatibility Restored: Restored complete compatibility between Fantasy Grounds Classic (FGC) and Fantasy Grounds Unity (FGU).
Roll Resolution Hooking on FGC: In FGC, ActionsManager.getResultHandler is absent and its internal handler table is locally scoped. getResultHandlerSafe now properly falls back to the ruleset's ActionSkill.onRoll and ActionAttack.onAttack handlers, fixing an issue where skill and attack roll resolutions were completely suppressed on FGC.
Actor Resolution on FGC: Fixed getActorSafe on FGC where calling legacy 2-argument ActorManager.getActor returned nil, restoring CT turn activation Stealth analysis vs PP, NPC Stealth skill auto-population, and attack from stealth handling.
Attack from Stealth Advantage Analysis: Fixed advantage check when attacking non-hiding targets by uncoupling attacker stealth analysis from target hiding state in getFormattedPerformAttackFromStealth.
Exhaustion Passive Perception Calculation: Corrected getEffectsBonusSafe return arity for exhaustion checks to match FGC 5E ruleset behavior (bModOnly = true returning 2 values: modifier and effect count), eliminating a runtime comparison error.
Defensive CT Node Resolution: Pre-populates sCTNode on attacker and target actors in onRollAttack and displayProcessAttackFromStealth via ActorManager.getCTNodeName or CombatManager.getCTFromNode.
Recursion Guard: Guarded CombatManager.requestActivation against recursive self-invocation on ruleset reload (/reload).
FGC Drop Deduplication: Restored deduplication guard for CombatManager.onDrop events firing twice in FGC.
Unit Test Coverage: Expanded automated unit test suite to 70 tests covering all FGC and FGU edge cases.