swing timer fixes and additions

* fixed offhand timer incorrectly showing for 2H weapon users
* fixed sw_texture resolving pfUI.media key correctly instead of passing raw file path
* added proper offhand weapon detection via GetEquippedItem + GetItemStatsField (Nampower), with vanilla API fallback
* added UNIT_DIED event to reset timer when target dies
* added ACTIONBAR_SLOT_CHANGED event to keep HS/Cleave slot cache up to date
* added immediate offhand bar hide when OH weapon is unequipped mid-combat
* added player GUID caching for UNIT_DIED comparison
* added GUI options: texture, font size, show/hide timer text, MH/OH labels, offhand bar, HS/Cleave queue color
* added HS/Cleave queue color coding for Warriors (green = Cleave, yellow = Heroic Strike)
* added unit frame text options: attack speed, min/max damage, unit string, HP/mana display variants, pet name
* removed unreliable dual-wield heuristic guard (mhAge < 0.1)

Co-authored-by: Zedris
This commit is contained in:
Meow
2026-02-19 05:04:32 +01:00
co-authored by Zedris
parent 8248e4ed91
commit 53969ddc01
4 changed files with 222 additions and 39 deletions
+17
View File
@@ -1060,6 +1060,17 @@ pfUI:RegisterModule("gui", "vanilla:tbc", function ()
"powerperc:" .. T["Mana - Percentage"],
"powermiss:" .. T["Mana - Missing"],
"powerminmax:" .. T["Mana - Min/Max"],
"attackspeed:" .. T["Attack Speed"],
"attackdmg:" .. T["Min/Max Damage"],
"unit-left:" .. T["Unit String Left"],
"unit-right:" .. T["Unit String Right"],
"unit-white-left:" .. T["Unit String Left White"],
"unit-white-right:" .. T["Unit String Right White"],
"hp-right:" .. T["HP Current | Percent"],
"hp-left:" .. T["HP Percent | Current"],
"mana-auto-deli:" .. T["Mana Auto"],
"mana-current-deli:" .. T["Mana Current"],
"petname:" .. T["Pet Name"],
},
["hpformat"] = {
"percent:" .. T["Percent"],
@@ -1957,6 +1968,12 @@ pfUI:RegisterModule("gui", "vanilla:tbc", function ()
CreateConfig(nil, T["Swing Timer"], nil, nil, "header")
CreateConfig(nil, T["Swing Timer Width"], C.unitframes, "swingtimerwidth")
CreateConfig(nil, T["Swing Timer Height"], C.unitframes, "swingtimerheight")
CreateConfig(nil, T["Swing Timer Texture"], C.unitframes, "swingtimertexture", "dropdown", pfUI.gui.dropdowns.uf_bartexture)
CreateConfig(nil, T["Show Timer Text"], C.unitframes, "swingtimertext", "checkbox")
CreateConfig(nil, T["Timer Text Font Size"], C.unitframes, "swingtimerfontsize")
CreateConfig(nil, T["Show MH/OH Labels"], C.unitframes, "swingtimerlabel", "checkbox")
CreateConfig(nil, T["Show Offhand Bar"], C.unitframes, "swingtimeroh", "checkbox")
CreateConfig(nil, T["Show HS/Cleave Queue Color"], C.unitframes, "swingtimerhsqueue", "checkbox")
CreateConfig(U[c], T["Font Options"], nil, nil, "header")
CreateConfig(nil, T["Unit Frame Text Font"], C.global, "font_unit", "dropdown", pfUI.gui.dropdowns.fonts)