Commit graph

558 commits

Author SHA1 Message Date
Kelsi
6dc630c1d8 feat: add Arena tab to Social frame showing per-team rating and weekly/season record 2026-03-12 14:58:48 -07:00
Kelsi
6645845d05 feat: show aura stack/charge count on boss frame aura icons for parity 2026-03-12 14:53:14 -07:00
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
0ffcf001a5 feat: show full item tooltip on action bar item hover 2026-03-12 13:14: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
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
d48e4fb7c3 feat: resolve enchant names from SpellItemEnchantment.dbc in inspect window 2026-03-12 12:32:19 -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
Kelsi
db1f111054 feat: add Guild chat tab and fix Trade/LFG tab index after insertion
Inserts a dedicated "Guild" tab between Whispers and Trade/LFG that
shows guild, officer, and guild achievement messages. Updates the
Trade/LFG channel-name filter from hardcoded index 3 to 4 to match
the new tab order.
2026-03-12 11:21:12 -07:00
Kelsi
afcd6f2db3 feat: add CHANNEL option to chat type dropdown with channel picker
Adds an 11th chat type "CHANNEL" to the dropdown, displaying a secondary
combo box populated from the player's joined channels. Typing /1, /2 etc.
in the input now also auto-switches the dropdown to CHANNEL mode and
selects the corresponding channel. Input text is colored cyan for channel
messages to visually distinguish them from other chat types.
2026-03-12 11:16:42 -07:00
Kelsi
20fef40b7b feat: show area trigger messages as screen banners
SMSG_AREA_TRIGGER_MESSAGE events (dungeon enter messages, objective
triggers, etc.) were previously only appended to chat. Now they also
appear as animated slide-up toasts in the lower-center of the screen:
blue-bordered dark panel with light-blue text, 4.5s lifetime with
35ms slide-in/out animation. Up to 4 simultaneous toasts stack
vertically. Messages still go to chat as before.
2026-03-12 11:06:40 -07:00
Kelsi
9fe7bbf826 feat: show lootable corpse diamonds on minimap
Dead units with UNIT_DYNFLAG_LOOTABLE (0x0001) set are rendered as small
yellow-green diamonds on the minimap, distinct from live NPC dots. A hover
tooltip shows the unit name. Uses the dynamic flags already tracked by the
update-object parser, so no new server data is needed.
2026-03-12 11:04:10 -07:00
Kelsi
661f7e3e8d feat: add persistent combat log window (/combatlog or /cl)
Stores up to 500 combat events in a rolling deque alongside the existing
floating combat text. Events are populated via the existing addCombatText()
call site, resolving attacker/target names from the entity manager and
player name cache at event time.

- CombatLogEntry struct in spell_defines.hpp (type, amount, spellId,
  isPlayerSource, timestamp, sourceName, targetName)
- getCombatLog() / clearCombatLog() accessors on GameHandler
- renderCombatLog() in GameScreen: scrollable two-column table (Time +
  Event), color-coded by event category, with Damage/Healing/Misc filter
  checkboxes, auto-scroll toggle, and Clear button
- /combatlog (/cl) chat command toggles the window
2026-03-12 11:00:10 -07:00
Kelsi
36d40905e1 feat: add in-window search bar to who results window
Add a search field with "Search" button directly in the who results
window so players can query without using the chat box. Pressing Enter
in the search field also triggers a new /who query.
2026-03-12 10:45:31 -07:00
Kelsi
367390a852 feat: add /who results window with sortable player table
Store structured WhoEntry data from SMSG_WHO responses and show them
in a dedicated popup window with Name/Guild/Level/Class/Zone columns.
Right-click on any row to Whisper, Invite, Add Friend, or Ignore.
Window auto-opens when /who or /whois is typed; shows online count
in the title bar. Results persist until the next /who query.
2026-03-12 10:41:18 -07:00
Kelsi
2f0fe302bc feat: add Trade, Duel, and Inspect to nameplate player context menu 2026-03-12 10:27:51 -07:00