4 Commits
Author SHA1 Message Date
OEVGandClaude Opus 5.5 9d0db31387 Skip hidden frames, idle heal cleanup, limit range event
Patterns from brues-code/pfUI:
- Event updates (health, power, auras, range, sight, connection,
  resurrection) skip frames whose container or group is hidden; Show
  and group Show already run UpdateAll to catch up
- HealPredict's cleanup OnUpdate stops when nothing can expire and
  restarts when a cast, HoT, resurrection or cast icon is added
- UNIT_IN_RANGE_UPDATE is only registered without UnitXP SP3 and
  SuperWoW, since ClassicAPI checks registered units every frame

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019W3rwwTK1hwTEWHqsan2mV
2026-11-02 19:43:42 +00:00
OEVGandClaude Opus 5.5 0f803aca4d Optional ClassicAPI support
When ClassicAPI is installed and "Use ClassicAPI" is on (Mods tab, reload):
- Detect ClassicAPI and each feature separately; show it in the Mods tab
- Read auras with C_UnitAuras.GetAuraSlots (fill form) + UnitAuraBySlot,
  reusing entries, with ClassicAPI durations, expirations and casters
- UNIT_AURA_DELTA: refresh-only events update stacks and timers in place
  without rebuilding the aura icons or the health bar
- Aura timers without SuperWoW; native Cooldown frames with one shared
  text driver instead of a Model and OnUpdateModel per icon
- UNIT_IN_RANGE_UPDATE, UNIT_DISTANCE_CHECK_UPDATE, UNIT_CONNECTION and
  INCOMING_RESURRECT_CHANGED; UnitHasIncomingResurrection in res checks
- HealPredict learns heals from COMBAT_LOG_EVENT_UNFILTERED when the
  GUID formats match SuperWoW's
- Distance and line of sight when UnitXP SP3 and SuperWoW are missing

Without ClassicAPI, or with the option off, behaviour is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019W3rwwTK1hwTEWHqsan2mV
2026-11-02 19:36:30 +00:00
OEVGandClaude Opus 5.5 f7ba1c934f Heal prediction: expire only the timed-out resurrection
When one caster's resurrection passed its 20-second limit, the cleanup
removed the whole target entry, so other casters' resurrections on the
same target vanished too. Drop only the expired caster and remove the
target entry once it is empty. Fix found in razzeee/Puppeteer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019W3rwwTK1hwTEWHqsan2mV
2026-11-02 16:34:59 +00:00
OEVG 92e171266e Apply Patch 2026-10-30 16:27:05 +00:00