Commit graph

1841 commits

Author SHA1 Message Date
Kelsi
c0c750a76e feat: show aura stack/charge count on focus frame aura icons for parity with target frame 2026-03-12 14:50:59 -07:00
Kelsi
6044739661 feat: show group leader crown on world nameplate for party/raid leader players 2026-03-12 14:48:53 -07:00
Kelsi
61412ae06d feat: show group leader crown on player frame when you are party/raid leader 2026-03-12 14:47:51 -07:00
Kelsi
d682ec4ca7 feat: show group leader crown on focus frame for parity with target frame 2026-03-12 14:43:58 -07:00
Kelsi
2f234af43b feat: show group leader crown on target frame when targeting party leader 2026-03-12 14:39:29 -07:00
Kelsi
6d21a8cb8d feat: add distance indicator to focus frame for range awareness 2026-03-12 14:34:21 -07:00
Kelsi
b44ff09b63 feat: add pulsing golden glow to Attack action bar slot when auto-attacking 2026-03-12 14:32:15 -07:00
Kelsi
950a4e2991 feat: show raid mark icon on focus frame to match target frame parity 2026-03-12 14:30:15 -07:00
Kelsi
65f19b2d53 feat: show durability warning overlay when gear is damaged or broken
Displays a bottom-center HUD banner when any equipped item drops below
20% durability (yellow) or reaches 0 (red "broken" alert), matching
WoW's own repair reminder UX.
2026-03-12 14:25:37 -07:00
Kelsi
d34f505eea feat: add quest indicator, classification badge, and subtitle to focus frame
Mirrors the target frame improvements: NPC focus targets now show
quest giver ! / ? indicators, Elite/Rare/Boss/Rare Elite badges,
and the creature subtitle (e.g. '<Grand Marshal of the Alliance>').
Keeps the focus and target frames in consistent feature parity.
2026-03-12 14:21:02 -07:00
Kelsi
9494b1e607 feat: show quest giver ! and ? indicators on nameplates
For non-hostile NPCs with quest status data, displays a colored symbol
to the right of the nameplate name:
  !  (gold)  — quest available
  !  (gray)  — low-level quest
  ?  (gold)  — quest ready to turn in
  ?  (gray)  — quest incomplete

Displayed adjacent to the existing quest-kill sword icon, maintaining
the existing icon offset logic so both can coexist.
2026-03-12 14:18:22 -07:00
Kelsi
d2db0b46ff feat: show quest giver ! and ? indicators in target frame
Reads QuestGiverStatus from the existing npcQuestStatus_ cache and
displays a colored badge next to the target's name:
  !  (gold)  — quest available
  !  (gray)  — low-level quest available
  ?  (gold)  — quest ready to turn in
  ?  (gray)  — quest incomplete / in progress
Matches the standard WoW quest indicator convention.
2026-03-12 14:15:45 -07:00
Kelsi
1165aa6e74 feat: display creature subtitle in target frame
Shows the NPC subtitle (e.g. '<Warchief of the Horde>') below the
creature name in the target frame, using the subName field already
parsed from SMSG_CREATURE_QUERY_RESPONSE. Adds getCachedCreatureSubName()
accessor to GameHandler. Matches the official client's presentation.
2026-03-12 14:14:25 -07:00
Kelsi
8cb0f1d0ef feat: show Elite/Rare/Boss classification badge in target frame
Reads creature rank (0=Normal, 1=Elite, 2=RareElite, 3=Boss, 4=Rare)
from the existing creatureInfoCache populated by creature query responses.
Shows a colored badge next to the level: gold for Elite, purple for
Rare Elite, red for Boss, cyan for Rare — each with a tooltip. Adds
getCreatureRank() accessor to GameHandler for UI use.
2026-03-12 14:13:09 -07:00
Kelsi
a03ee33f8c feat: add power bar to boss frames for energy/mana tracking
Energy bosses (e.g. Anub'arak, various WotLK encounters) use energy as
their ability cooldown mechanic — tracking it in the boss frame lets
raiders anticipate major ability casts. Mana, rage, focus, and energy
all shown with type-appropriate colors as a slim 6px bar below HP.
2026-03-12 14:09:01 -07:00
Kelsi
fb843026ad feat: add LFG queue time indicator below minimap with role-check pulsing 2026-03-12 14:00:14 -07:00
Kelsi
e2b2425230 feat: add cast bar to target-of-target frame with pulsing interrupt warning 2026-03-12 13:58:30 -07:00
Kelsi
f39ba56390 feat: show raid mark symbols on raid frame cells beside leader crown 2026-03-12 13:50:46 -07:00
Kelsi
e6f48dd822 feat: show raid mark symbols on minimap party member dots with name tooltip 2026-03-12 13:48:01 -07:00
Kelsi
1e76df7c98 feat: show raid mark symbols on party frame member names 2026-03-12 13:47:02 -07:00
Kelsi
3d1b187986 feat: add aura icons to boss frame with DoT tracking and duration overlays 2026-03-12 13:43:12 -07:00
Kelsi
3665723622 feat: add aura icons to target-of-target frame with debuff coloring and tooltips 2026-03-12 13:39:36 -07:00
Kelsi
abfb6ecdb5 feat: add spell name tooltips to nameplate debuff dots on hover
When hovering over a player-applied DoT/debuff indicator square on an
enemy nameplate, the spell name is now shown as a tooltip. Uses direct
mouse-position hit test since nameplates render into the background
draw list rather than an ImGui window.
2026-03-12 13:36:06 -07:00
Kelsi
8d7391d73e feat: upgrade pet action bar to rich spell tooltips with autocast status
Pet ability buttons now show full spell info (name, description, range,
cost, cooldown) instead of just the spell name. Built-in commands (Follow,
Stay, Attack, etc.) keep their existing simple labels. Autocast-enabled
spells show "Autocast: On" at the bottom of the tooltip.
2026-03-12 13:33:48 -07:00
Kelsi
c76ac579cb feat: add aura icons to focus frame with rich tooltips and duration overlays
The focus frame now shows buff/debuff icons matching the target frame:
debuffs first with dispel-type border colors, buffs after with green
borders, duration countdowns on each icon, and rich spell info tooltips
on hover. Uses getUnitAuras() falling back to getTargetAuras() when
focus happens to also be the current target.
2026-03-12 13:32:10 -07:00
Kelsi
9336b2943c feat: add debuff dots to raid frame and NPC name tooltips on minimap quest markers
- Raid frame now shows dispellable debuff dots (magic/curse/disease/poison)
  in the bottom of each cell, matching the existing party frame behavior;
  hovering a dot shows the debuff type and spell names for that dispel type
- Minimap quest giver dots (! and ?) now show a tooltip with the NPC name
  and whether the NPC has a new quest or a quest ready to turn in
2026-03-12 13:28:49 -07:00
Kelsi
d46feee4fc feat: show debuff type and spell names on party frame debuff dot hover 2026-03-12 13:23:21 -07:00
Kelsi
2268f7ac34 feat: add item tooltips to quest tracker overlay item objectives 2026-03-12 13:22:20 -07:00
Kelsi
6ffc0cec3d feat: show spell tooltip on hover in combat log 2026-03-12 13:21:00 -07:00
Kelsi
fe4fc714c3 feat: add item tooltips to quest objective item tracking 2026-03-12 13:19:10 -07:00
Kelsi
0ffcf001a5 feat: show full item tooltip on action bar item hover 2026-03-12 13:14:24 -07:00
Kelsi
d7c4bdcd57 feat: add item tooltips to quest reward items in quest log 2026-03-12 13:12:24 -07:00
Kelsi
3ea1b96681 feat: show spell description in trainer window tooltip
Trainer spell tooltips now show the spell's effect description from
Spell.dbc (e.g. "Sends a shadowy bolt at the enemy...") above the
status/requirement lines, matching the WoW trainer UI style.
Also styles the spell name yellow (like WoW) and moves status to
TextDisabled for better visual hierarchy.
2026-03-12 13:09:40 -07:00
Kelsi
a10139284d feat: show spell tooltip text instead of name in item spell effects
Item "Equip:" and "Use:" spell effects now display the spell's
description text from Spell.dbc (e.g. "Increases your Spell Power by 30.")
rather than the internal spell name (e.g. "Mana Spring Totem").
Falls back to the name when description is unavailable (e.g. older DBCs).
Adds getSpellDescription() to GameHandler, backed by the existing
loadSpellNameCache() pass which now reads the Tooltip field.
2026-03-12 13:08:41 -07:00
Kelsi
ed2b50af26 fix: look up socket bonus name from SpellItemEnchantment.dbc
socketBonus is a SpellItemEnchantment entry ID, not a spell ID.
Previously getSpellName() was called on it, which produced wrong or
empty results. Now a lazy SpellItemEnchantment.dbc cache in the item
tooltip correctly resolves names like "+6 All Stats".
2026-03-12 12:57:15 -07:00
Kelsi
8921c2ddf4 feat: show criteria description and progress in achievement window
The Criteria tab now loads AchievementCriteria.dbc to display each
criterion's description text, parent achievement name, and a
current/required progress counter (e.g. "25/100") instead of the
raw numeric IDs. The search filter now also matches by achievement name.
AchievementCriteria DBC layout added to wotlk/dbc_layouts.json.
2026-03-12 12:52:08 -07:00
Kelsi
d44f5e6560 feat: show achievement description and point value in tooltip
Hovering an earned achievement now shows its point value (gold badge),
description text from Achievement.dbc field 21, and the earn date.
loadAchievementNameCache() also populates achievementDescCache_ and
achievementPointsCache_ in a single DBC pass; Points field (39) added
to the WotLK Achievement DBC layout.
2026-03-12 12:49:38 -07:00
Kelsi
bc0d98adae feat: show item set piece count and active bonuses in item tooltip 2026-03-12 12:43:53 -07:00
Kelsi
a56b50df2b feat: show average item level in character stats panel 2026-03-12 12:41:05 -07:00
Kelsi
48f12d9ca8 feat: parse item set ID and display set name in item tooltip via ItemSet.dbc 2026-03-12 12:35:56 -07:00
Kelsi
d48e4fb7c3 feat: resolve enchant names from SpellItemEnchantment.dbc in inspect window 2026-03-12 12:32:19 -07:00
Kelsi
60794c6e0f feat: track and display elemental resistances in character stats panel 2026-03-12 12:24:15 -07:00
Kelsi
0a2cd213dc feat: display gem socket slots and socket bonus in item tooltips 2026-03-12 12:15:08 -07:00
Kelsi
a90f2acd26 feat: populate unitAurasCache_ from SMSG_PARTY_MEMBER_STATS aura block
Some checks are pending
Build / Build (arm64) (push) Waiting to run
Build / Build (x86-64) (push) Waiting to run
Build / Build (macOS arm64) (push) Waiting to run
Build / Build (windows-arm64) (push) Waiting to run
Build / Build (windows-x86-64) (push) Waiting to run
Security / CodeQL (C/C++) (push) Waiting to run
Security / Semgrep (push) Waiting to run
Security / Sanitizer Build (ASan/UBSan) (push) Waiting to run
SMSG_PARTY_MEMBER_STATS includes a 64-bit aura presence mask + per-slot
spellId/flags that was previously read and discarded. Now populate
unitAurasCache_[memberGuid] from this data so party frame debuff dots
show even when no dedicated SMSG_AURA_UPDATE has been received for that
unit. For Classic/TBC (no flags byte), infer debuff status from dispel
type — any spell with a non-zero dispel type is treated as a debuff.
2026-03-12 12:07:46 -07:00
Kelsi
562fc13a6a fix: wire TOGGLE_CHARACTER_SCREEN (C) and TOGGLE_BAGS (B) keybindings
Both actions were defined in KeybindingManager but never wired to the
input handling block — C had no effect and B did nothing. Connect them:
- C toggles inventoryScreen's character panel (equipment slots view)
- B opens all separate bags, or falls back to toggling the unified view
2026-03-12 12:05:05 -07:00
Kelsi
79c0887db2 feat: add BG scoreboard (MSG_PVP_LOG_DATA) and fix TBC aura cache for party frames
- Parse MSG_PVP_LOG_DATA to populate BgScoreboardData (players, KB, deaths,
  HKs, honor, BG-specific stats, winner)
- Add /score command to request the scorecard while in a battleground
- Render sortable per-player table with team color-coding and self-highlight
- Refresh button re-requests live data from server
- Fix TBC SMSG_INIT/SET_EXTRA_AURA_INFO_OBSOLETE to populate unitAurasCache_
  for all GUIDs (not just player/target), mirroring WotLK aura update behavior
  so party frame debuff dots work on TBC servers
2026-03-12 12:02:59 -07:00
Kelsi
a4c23b7fa2 feat: add per-unit aura cache and dispellable debuff indicators on party frames
Extend the aura tracking system to cache auras for any unit (not just
player and current target), so healers can see dispellable debuffs on
party members. Colored 8px dots appear below the power bar:
  Magic=blue, Curse=purple, Disease=brown, Poison=green
One dot per dispel type; non-dispellable auras are suppressed.
Cache is populated via existing SMSG_AURA_UPDATE/SMSG_AURA_UPDATE_ALL
handling and cleared on world exit.
2026-03-12 11:44:30 -07:00
Kelsi
9c276d1072 feat: add encounter-level DPS/HPS tracking to DPS meter
Track cumulative player damage/healing for the full combat encounter
using the persistent CombatLog, shown alongside the existing 2.5s
rolling window. The encounter row appears after 3s of combat and
persists post-combat until the next engagement, giving a stable
full-fight average rather than the spiky per-window reading.
2026-03-12 11:40:31 -07:00
Kelsi
a336bebbe5 feat: add debuff dot indicators on hostile target nameplate
Show small colored squares below the health bar of the current
hostile target indicating player-applied auras. Colors map to
dispel types from Spell.dbc: blue=Magic, purple=Curse,
yellow=Disease, green=Poison, grey=other/physical.

Dots are positioned below the cast bar if one is active,
otherwise directly below the health bar. They are clipped
to the nameplate width and only rendered for the targeted
hostile unit to keep the display readable.
2026-03-12 11:31:45 -07:00
Kelsi
f3e399e0ff feat: show unread message count on chat tabs
Each non-General chat tab now shows an unread count in parentheses
(e.g. "Whispers (3)") when messages arrive while that tab is inactive.
The counter clears when the tab is selected. The General tab is excluded
since it shows all messages anyway.
2026-03-12 11:23:01 -07:00