Skip to content

feat(qol): add Forever swing timer - #3

Closed
dfrisone wants to merge 12 commits into
mainfrom
feat/forever-swing-timer
Closed

dfrisone wants to merge 12 commits into
mainfrom
feat/forever-swing-timer

Conversation

@dfrisone

@dfrisone dfrisone commented Sep 19, 2026 •

Copy link
Copy Markdown
Owner

What does this PR do?

Adds an optional Quality of Life swing timer with separately configurable main-hand, off-hand, and ranged bars. It uses the client-provided player swing event and native duration rendering. The feature is disabled by default and removes its event registrations, visible frames, and duration bindings when disabled.

How was it tested?

  • Passed the offline lifecycle harness for disabled startup, enable/disable cleanup, native duration routing, restricted-value guards, queue display, weapon changes, Unlock Mode positioning, and frame reuse.
  • Added and passed a regression case where the initial main-hand attack speed is opaque; the Main Hand row remains visible before the first attack event.
  • Passed the diff-scoped style gate, whitespace check, and locale-key extraction.
  • In-game validation has not been run by Codex.

Screenshots

Swing Timer showing the Main Hand row

Checklist

  • New settings default OFF (no behavior change without opt-in)
  • Zero cost while disabled: no events registered, no polling, no hooks doing work, no frames built
  • Cheap while enabled: event-driven (no polling, no timer-based logic, no per-frame allocations)
  • No writes onto Blizzard-owned frames (weak-table pattern used); HookScript/hooksecurefunc only, never SetScript on Blizzard frames
  • Tested in-game on live; no version gates or pre-Midnight APIs added (unverified: no in-game test)

LGTM

@dfrisone
dfrisone force-pushed the feat/forever-swing-timer branch from 7cbfdff to d6f5a35 Compare September 19, 2026 21:01
@dfrisone
dfrisone force-pushed the feat/forever-swing-timer branch from d6f5a35 to b63f577 Compare September 19, 2026 21:07
@dfrisone
dfrisone marked this pull request as draft September 19, 2026 22:20
@dfrisone
dfrisone marked this pull request as ready for review September 19, 2026 22:21
@dfrisone

Copy link
Copy Markdown
Owner Author

Already upstream: this landed as EllesmereGaming#2128 on 2026-09-19. The branch has no commits that are not in upstream/main, so there is nothing left to submit.

@dfrisone dfrisone closed this Sep 20, 2026
dfrisone pushed a commit that referenced this pull request Sep 29, 2026
Raid Frames: simplify to 'Hide Groups 5-8 in Mythic Raid' toggle
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.

2 participants