Skip to content

feat(qol): add Movement Alert (Movement Cooldown, Time Spiral, Gatewa…#656

Open
dfrisone wants to merge 6 commits into
EllesmereGaming:mainfrom
dfrisone:movement-alert-feature
Open

feat(qol): add Movement Alert (Movement Cooldown, Time Spiral, Gatewa…#656
dfrisone wants to merge 6 commits into
EllesmereGaming:mainfrom
dfrisone:movement-alert-feature

Conversation

@dfrisone

@dfrisone dfrisone commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a new Quality of Life feature, Movement Alert, with three independently-toggleable on-screen trackers: a Movement Cooldown Alert for the player's class mobility spell(s), a Time Spiral banner for cooldown-reset procs, and a Warlock-only Gateway Shard usability alert — each with Sound and Text-to-Speech support and full Unlock Mode positioning.

Changes

Movement Alert — Runtime

  • New file EllesmereUIQoL_MovementAlert.lua implementing all three trackers:
    • Movement Cooldown Alert: per-spec mobility spell detection, charge tracking, text/icon/bar display modes, class filtering, and a per-spell override list (enable/disable, custom text, add-by-ID).
    • Time Spiral: detects a tracked mobility spell's cooldown being proc-reset via SPELL_ACTIVATION_OVERLAY_GLOW and flashes a countdown banner.
    • Gateway Shard: polls the Gateway Control Shard item and alerts when usable, with a Combat Only mode.
  • Added a shared FireTrackerAlert dispatcher: Text-to-Speech (via C_VoiceChat.SpeakText) takes priority over a configured Sound when both are set.
  • Wired Sound playback through EllesmereUI._groupDeathSoundPaths (LibSharedMedia-backed, shared with the rest of the addon) rather than querying LibSharedMedia directly, with type-safe routing between PlaySound (SoundKitID) and PlaySoundFile (file path).

Movement Alert — Options UI

  • New file EUI_QoL_MovementAlert_Options.lua building the "Movement" page: master toggle + settings cog per tracker, a 13-class filter grid, a Tracked Spells list with per-spell enable/custom-text/remove and an "Add Spell" popup, and Sound/TTS controls (including a live voice-preview dropdown) on all three trackers.
  • Added a Sound dropdown to the Movement Cooldown Alert cog for parity with Time Spiral and Gateway Shard, greyed out when Text-to-Speech is enabled.

Unlock Mode

  • Registered three independently movable/resizable elements (EUI_MovementAlert, EUI_TimeSpiralAlert, EUI_GatewayShardAlert) under the Quality of Life group.

Module Registration

  • Added the Movement page, tab, and search terms (mobility, blink, disengage, time spiral, gateway shard, etc.) to the EllesmereUIQoL module in EUI_QoL_Options.lua.
  • Wired EllesmereUI._ResetMovementAlert into the module's existing Reset-to-defaults handler.

Bug Fixes

(found in review, fixed before commit)

  • Fixed the Time Spiral banner getting stuck on screen permanently when disabled mid-flash.
  • Fixed Reset-to-defaults leaving an active Movement Cooldown Alert frame frozen on screen.
  • Fixed Gateway Shard fighting the user when repositioning via Unlock Mode.
  • Fixed stale recharge timers surviving a respec/reset and corrupting charge counts.
  • Fixed the Burning Rush-style buff indicator not resyncing when the master toggle is turned off/on mid-combat.
  • Fixed an unrelated aura landing in the same batch being able to falsely trigger the buff-active indicator.
  • Fixed a crash when a custom spell's display text contains % or %t.
  • Fixed the Gateway Shard poll ticker running continuously out of combat even with Combat Only enabled.

Defaults

  • All three trackers default to disabled; resetting the module returns every Movement Alert setting to these same defaults.
  • No migration needed — this is a new, additive DB slice (profile.movementAlert) that doesn't touch any existing profile data.
Movementpanel Movementalertsettings gatewaysettings Timespiralsettings EUIEditMode

…y Shard)

New Quality of Life page with three independently-toggleable trackers:
- Movement Cooldown Alert: shows the current spec's mobility spell(s)
  counting down on cooldown (text/icon/bar), with per-spell overrides
  and a class filter grid.
- Time Spiral: flashes a banner when a tracked mobility spell's
  cooldown is proc-reset.
- Gateway Shard: Warlock-only alert when the Gateway Control Shard is
  usable, with a "Combat Only" mode that pauses polling out of combat.

All three support Sound (via the existing LibSharedMedia-backed sound
list) and Text-to-Speech alerts, and are positioned/resized through
EUI's Unlock Mode rather than in-page sliders.

Ported from Naowh QOL's Movement Alert feature, rewritten against this
addon's own DB/widget/Unlock Mode conventions rather than copied
as-is. Reviewed with a multi-pass bug hunt before commit; fixed
several state-lifecycle issues (banner/frame getting stuck on screen
when a tracker is disabled mid-display or reset, stale recharge
timers surviving a respec, buff-active tracking not resyncing when
re-enabled mid-combat, Gateway Shard fighting Unlock Mode while
repositioning, a crash on custom spell text containing "%").

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@dfrisone
dfrisone marked this pull request as ready for review July 9, 2026 19:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant