381 Commits

Author SHA1 Message Date
Brues f657a9e7e8 drop MobHealth3 / MobHealthFrame fallbacks
libhealth ships with pfUI and Nampower's GetUnitField (hard-dep) covers
the real-HP read; the MobHealth integration was a chained last-resort
fallback that could never actually win, and on the nameplate path it
also mixed percentage and real-value scales into the bar's SetMinMaxValues
since it overwrote hp/hpmax without hpmin.
2026-06-27 16:08:39 -05:00
Brues d6951b386e unitframes/buffwatch/libpredict: route aura reads through C_UnitAuras
ClassicAPI's recent C_UnitAuras additions (sourceUnit / sourceGUID /
non-player expirationTime / the PLAYER filter token) finally cover
everything libdebuff:UnitDebuff and :UnitOwnDebuff were doing — caster
attribution, accurate timing for non-player units, and the own-debuffs
filter. Migrating the remaining callers off the libdebuff readers.

- api/unitframes.lua: collapses the debuff render path's three-branch
  if/else into a single C_UnitAuras.GetAuraDataByIndex with a HARMFUL
  or HARMFUL|PLAYER filter selected by the selfdebuff config; tooltip
  slot-finders match by sourceGUID instead of libdebuff's caster flag;
  custom-debuff indicator scan unifies the same way.
- modules/buffwatch.lua: GetBuffData drops the libdebuff fallback;
  tooltip slot-finder mirrors the unitframes pattern.
- libs/libpredict.lua: drops the orphaned UnitHasBuff slot-loop (no
  callers left).
- api/api.lua: pfUI.api.UnitHasBuff tightens from a HELPFUL iteration
  to a single GetAuraDataBySpellName lookup.

Each site that builds a cooldown ring from expirationTime carries the
talent-extension guard — when expirationTime exceeds the dbc base
duration (e.g. Shadow Affinity → SW:P), clamp start to now and use the
remaining time as the effective duration so CooldownFrame_SetTimer
doesn't get a future start it treats as "not yet begun".
2026-06-24 22:41:13 -05:00
Brues b3f8745b91 raise power bar above its backdrop
f.power.bar inherits f.power's frame level at creation. Bumping
f.power's level later doesn't propagate to existing children, so
CreateBackdrop's parent.fl - 1 backdrop ends up rendering above
the bar — a black bar appears where the power fill should be.
Set the bar's frame level explicitly to parent.fl + 1 after
CreateBackdrop to restore the bar-over-backdrop order.
2026-06-16 18:04:26 -05:00
brues-code f0d9dca63f Classic API Focus (#2)
* focus: migrate to FocusUnit / "focus" token / PLAYER_FOCUS_CHANGED

ClassicAPI now polyfills modern WoW's focus system: FocusUnit / ClearFocus
+ "focus" / "focustarget" unit tokens accepted by every UnitX function +
PLAYER_FOCUS_CHANGED event. Drop pfUI's GUID-juggling pseudo-frame.

- env/tables.lua: add "focus" and "focustarget" to pfValidUnits — the
  focus frames now follow the standard event-driven CreateUnitFrame path
  with f.label = "focus"
- modules/focus.lua: rewrite. Slash commands use FocusUnit / ClearFocus
  directly; no more manual frame.label/unitname/id manipulation. /focus
  <name> still does a target-swap to resolve names → units, then
  FocusUnit("target") captures the GUID before the target is restored.
  PLAYER_FOCUS_CHANGED triggers immediate frame refresh on assign/clear.
- api/unitframes.lua: delete the pseudo-focus block (per-tick "scan all
  units for matching name" loop) and the "focus"/"focustarget" special-
  case in the visibility branch — "focus" is now a real token.
- modules/castbar.lua: bind the focus castbar to unitstr = "focus" once;
  drop the OnUpdate that synced pfUI.castbar.focus from
  pfUI.uf.focus.label/unitname. UnitGUID("focus") resolves at read time.
- Drop C_Minimap.SetFocusByGUID / SetFocusByName / ClearFocus calls —
  C_Minimap subscribes to PLAYER_FOCUS_CHANGED on its own.

Net -183 lines. Focus stops being a pfUI-special pseudo-frame and
becomes "just another unit token" — same treatment as target/player.

* add nameplate to valid units

---------

Co-authored-by: Brues <5278969+brues-code@users.noreply.github.com>
2026-05-27 20:35:15 -05:00
Brues ba566cdd53 phase 2 removing tbc
Strip dead pfUI.client > 11200 and pfUI.expansion == "tbc" branches now
that vanilla is the only supported client.

- pfUI.lua: hardcode expansion = "vanilla"; collapse force_region matrix
- compat/vanilla.lua, libs/{libcast,libdebuff,libtotem,libunitscan,
  focus}: drop always-false early-returns
- api/unitframes.lua: delete TargetBuffOnUpdate poller + tbc visibility
  and secure-template branches; click-cast keeps only vanilla path
- api/ui-widgets.lua: unconditional EffectiveScale divide
- env/tables.lua: drop unused focus/focustarget pfValidUnits entries
- modules/actionbar.lua: simplify EnablePaging, drop ButtonSwitch/
  petvisibility, unwrap prowl block, single keybind-remap path
- modules/{castbar,chat,cooldown,loot,questitem,totems}: unwrap
  always-true conditionals
- modules/nameplates.lua: cfg-only fake-cooldown gate, unwrap overlap/
  clickthrough + mouselook blocks
- modules/friends.lua + skins/blizzard/friends.lua: maxtab = 4
- skins/blizzard/{help,game_menu,questlog}: drop tbc-only branches
2026-05-25 18:40:17 -05:00
Brues 58609b8c5c phase 1 removing tbc 2026-05-25 18:16:02 -05:00
Brues 1d27f7bed3 class color cleanup 2026-05-23 02:56:00 -05:00
Brues 8ad932b529 removed some hardcoded strings 2026-05-21 03:32:18 -05:00
Brues 8c416ae713 indicator system via C_UnitAuras
Both indicator scan loops (preset HoT indicators + custom name-based
indicators) now iterate the populated aura array from
C_UnitAuras.GetUnitAuras instead of brute-forcing UnitBuff(1..32). The
Rejuvenation/Renew/Regrowth disambiguation that previously required
scanner:SetUnitBuff + Line(1) tooltip scans now reads aura.name natively.

HoT-icon → name+predict mappings lifted into a HOT_INDICATORS table at
file scope so future additions are one-line edits.

The custom-debuff loop still defers to libdebuff for caster correlation
when available; C_UnitAuras provides the texture/name backstop. Also
unifies the non-selfdebuff debuff display branches through one
GetDebuffDataByIndex call.

Local `scanner` declaration removed (no remaining tooltip-scan uses in
this file).
2026-05-21 03:26:02 -05:00
Brues 2d67781c6f unit-frame tooltip/click handlers via SetUnitAura
BuffOnClick/DebuffOnClick switch to lazy bid lookup before CancelPlayerBuff
(matching the pattern in buff.lua/buffwatch.lua). DebuffOnEnter unifies its
player and non-player branches through GameTooltip:SetUnitAura — the only
divergent path is the selfdebuff caster-correlation lookup that still
needs libdebuff.
2026-05-21 03:20:08 -05:00
Brues 432ed546f5 debuff display via C_UnitAuras
Mirror the buff-side cleanup: drop the legacy DebuffOnUpdate poller from
player debuff frames, swap the player branch to GetDebuffDataByIndex with
the same future-start cap, and switch the dispel-indicator scan to
AuraData. libdebuff still owns non-player timers. Deletes the now-orphaned
BuffOnUpdate/DebuffOnUpdate/maxdurations.
2026-05-21 02:38:48 -05:00
Brues b18e6ffa67 refresh buff durations on player 2026-05-21 02:35:46 -05:00
Brues b7a0912e07 fixed target buffs not showing 2026-05-21 01:18:01 -05:00
Brues 8b04c53621 cleanup 2026-05-21 01:17:46 -05:00
Brues 82743b0f9a UnitAUra cleanup 2026-05-18 23:42:51 -05:00
Meow 491fcd51c8 New option to pick Original or pfui raid marks! 2026-03-31 02:20:53 +02:00
Meow 91590b5025 Changed the raid icons to use the original Blizzard icons! 2026-03-31 01:43:05 +02:00
Meow 21b4fb77b2 fixed upper/lower case issue for macros of players (click casting) 2026-03-29 21:56:00 +02:00
Meow 9a4fef71ff fixed maxpower not showing properly for warriors 2026-03-21 12:56:34 +01:00
Meow 8ae34d052d nampower fallback for icon textures
Icons that return no icon texture by the server are now recieved by GetUnitField and GetSpellRecField with nampower.
2026-03-03 08:46:50 +01:00
Meow 3922d9879e fixed typos and cleaned up comments 2026-03-02 19:13:45 +01:00
Meow c7aca0de99 GUID replacements
* Replace all `local _, guid = UnitExists(unit)` with `GetUnitGUID(unit)` (Nampower 3.0.0+)
* Bump minimum required Nampower version to 3.0.0
2026-03-02 10:41:49 +01:00
Meow bd36d91189 added option to show debuffs only for enemys OR friendly nameplates
added option to show debuffs only for enemys OR friendly nameplates
2026-02-28 21:32:17 +01:00
Meow 4cb67fa053 fix to show hots with same icon as Regrowth to not show up as tracked healing spell
fix to show hots with same icon as Regrowth to not show up as tracked healing spell
2026-02-24 18:54:28 +01:00
Meow 65f20e39c6 forced version push
forced version push
- fixed healpredicts for target and player frame
2026-02-22 20:58:52 +01:00
Meow a2cdaeb73c reverting last commit since it caused conflicts.
reverting last commit since it caused conflicts.
2026-02-19 07:31:39 +01:00
Meow 53969ddc01 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
2026-02-19 05:04:32 +01:00
Meow 22b6f37d56 adding SetMouseoverUnit for Unitframes.
adding SetMouseoverUnit for Unitframes.
2026-02-16 23:35:47 +01:00
Meow aaf01d7dce unitframe powertype for npc`s
unitframe powertype for npc`s
2026-02-06 08:35:56 +01:00
Meow cc3958fde9 Changed unitframes behavior for display
- Nampowers GetUnitField is now always used even for mobs
2026-02-06 08:21:21 +01:00
Meow 37beca7103 New throttling menu
New throttling menu
2026-02-06 08:07:33 +01:00
Meow 9c85a615ac pet/player handling
pet/player handling now uses always GetUnitField, only for npc`s it will use blizzards fallback...
2026-02-05 14:02:56 +01:00
Meow fce9b48bfd fixed powersbars for pets and npc`s 2026-02-05 12:48:56 +01:00
Meow 54355c9019 enhanced merge into master
Final release!
2026-02-04 22:48:30 +01:00
Meow 7c91ccf360 small update
Please read the readme to see what has been changed.
2026-01-27 07:32:16 +01:00
Meow 7898895cf4 timer animation fix
timer animation fix
2026-01-24 02:33:17 +01:00
Meow 7a765e16da pvp check for player frame
pvp check for player frame
2026-01-23 20:59:47 +01:00
Meow bb0774d73e Revert "removed wrong placed range faders"
This reverts commit 98e0084788.
2026-01-22 22:44:00 +01:00
Meow 98e0084788 removed wrong placed range faders
removed wrong placed range faders
2026-01-22 17:49:25 +01:00
Meow c9dd6404d3 fixed agro and combat glow
fixed agro and combat glow
2026-01-22 16:24:08 +01:00
Meow c890e44be1 agro indicator fix
agro indicator fix
2026-01-21 20:03:15 +01:00
Meow 43ee077285 fixed for unitframes!
- Fixed unitframes not updating health/buff/debuffs properly
- Fixed heal predictions
- Fps should be also stable now, ty for your patience....
2026-01-11 19:58:29 +01:00
Meow ce0c2104fa possible fix for low fps
possible fix for low fps - needs further testing tommorow in my raid... no garantue
2026-01-10 22:07:07 +01:00
Meow c775bdb648 Buff fading
Fixed a bug that sometimes not made buffs fades properly and remain visually on group or raid frames.
2026-01-09 13:31:17 +01:00
Meow 0b7325b03e Reapply "unitframe handling update"
This reverts commit 746aea450d.
2026-01-09 12:42:40 +01:00
Meow 746aea450d Revert "unitframe handling update"
This reverts commit 84197d3e9d.
2026-01-09 12:41:02 +01:00
Meow 84197d3e9d unitframe handling update
- Applied an other fix that should improve raid frame performance by 60%
- fixed incoming heals not showing up properly on player, target and target of target frames.
2026-01-09 09:12:59 +01:00
Meow 34f5c3eb02 Version 6.1.0 - Raid/Party Frame Fixes
Bugfixes:
- Fixed 40-yard range check not working for raid/party frames
- Fixed aggro indicator not displaying properly on raid/party frames
- Improved aggro cache to only cache positive results for instant detection
- Fixed HP/Mana not updating with "Use Raid Frames for group" enabled
- Added SuperWoW nil-check for SpellInfo
- Added missing events: PARTY_MEMBER_ENABLE, PARTY_MEMBER_DISABLE, PLAYER_UPDATE_RESTING

UI Improvements:
- Share/Hoverbind buttons now show warning when module is disabled
2026-01-08 12:25:18 +01:00
Meow 5d0e195d1e performance update
performance update
2026-01-03 12:58:31 +01:00
shagu 01aa2cd1b9 unitframes: attach combat feedback to text frame 2025-08-17 16:49:48 +02:00