Ported from pfUI's swing timer. UNIT_SPELLCAST_SENT with
C_Spell.IsNextMeleeSpell and the spell name sets the queue; it clears on
UNIT_SPELLCAST_SUCCEEDED or _FAILED, on leaving combat, or when the
ability's action button goes dark after being lit (Esc or a second press
un-queues it without an event). Heroic Strike is light blue instead of
pfUI's yellow, which would not stand out on the gold bar; Cleave green
and Maul orange as in pfUI. Out-of-range gray still wins.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019W3rwusM4i1CYaHQAYixJ7
Two Action Bar options, off by default, ported from brues-code/pfUI's
swing timer and restyled as classic cast bars: dark background,
UI-StatusBar fill, the cast bar border and spark, and the weapon's icon
on the left like Improved Castbar's spell icon.
- Swing Timer: main hand and off hand (shields are skipped).
- Wand Timer: wand Shoot, and Auto Shot for bows, guns and crossbows,
red during Auto Shot's last half second.
ClassicAPI's PLAYER_SWING drives the timers and PLAYER_SWING_RANGE_UPDATE
grays a bar while the target is out of reach. Auto-attack state uses the
1.12 PLAYER_ENTER_COMBAT/PLAYER_LEAVE_COMBAT and START/STOP_AUTOREPEAT_SPELL
events, plus START/STOP_AUTOATTACK on ClassicAPI v1.18.14+. Without
PLAYER_SWING (before v1.15.10) both options do nothing.
The bars stack just above the cast bar. Holding Ctrl+Shift+Alt shows a
preview to drag; right-click resets. The position is saved per character.
pfUI's MIT license is preserved in LICENSES/pfUI-MIT.txt and credited in
THIRD_PARTY_NOTICES.md and the README.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019W3rwusM4i1CYaHQAYixJ7