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
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
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