Skip to content

v1.10.2

Latest

Choose a tag to compare

@github-actions github-actions released this 13 Sep 18:44

Dual FGC & FGU Compatibility

  • Single-Codebase Support: Fully restored seamless compatibility across both Fantasy Grounds Classic (FGC) and Fantasy Grounds Unity (FGU) in a unified master branch.
  • Robust FGC Runtime Detection (checkFGC): Implemented reliable runtime detection that handles string version return values (e.g. "3.3.16") under FGC's Lua 5.1 runtime, as well as UtilityManager.isClientFGU and Session.VersionMajor without comparison crashes.
  • Actor Resolution Fix (getActorSafe): Fixed single-argument ActorManager.getActor(v) returning nil on FGC by routing to ActorManager.resolveActor(v).

Function Hook Hardening & Idempotency

  • /reload Recursion Elimination: Added idempotency guards to all function hooks (CombatManager.requestActivation, EffectManager.addEffect, EffectManager.addEffectByTable, and Combat Drop hooks) to prevent infinite recursion stack overflows when reloading.
  • Clean Action Attack Interception: Replaced direct ActionAttack.onAttack hook with ActionsManager.registerResultHandler("attack", fWrapper) using an unwrap table (aOwnResultWrappers) to avoid stomping or colliding with other extensions.

Event Deduplication & Tooling

  • Combat Tracker Drop Deduplication: Restored file-scoped drop deduplication (LAST_DRAG_INFO, LAST_NODE_NAME, LAST_NODE_TYPE) on FGC to suppress phantom double-drop events.
  • Automated Unit Testing: Expanded test suite to 29 assertions in test/run_tests.js covering FGC/FGU version detection, actor resolution, idempotency, and drop deduplication.
  • Clean Extension Packaging: Updated packaging script to exclude local development binaries (luacheck.exe).