Commit graph

2058 commits

Author SHA1 Message Date
Kelsi
bd8c46fa49 fix(combatlog): parse classic dispel failed GUIDs as packed 2026-03-14 01:00:56 -07:00
Kelsi
1fa2cbc64e fix(combatlog): parse classic dispel and spellsteal GUIDs as packed 2026-03-14 00:53:42 -07:00
Kelsi
fd8ea4e69e fix(combatlog): parse classic proc log GUIDs as packed 2026-03-14 00:45:50 -07:00
Kelsi
8ba5ca5337 fix(combatlog): parse classic instakill log GUIDs as packed 2026-03-14 00:38:22 -07:00
Kelsi
9c3b5d17cf fix(combatlog): parse classic resist log GUIDs as packed 2026-03-14 00:31:35 -07:00
Kelsi
ed5134d601 fix(combatlog): parse classic spelllogexecute GUIDs as packed 2026-03-14 00:24:21 -07:00
Kelsi
a147347393 fix(combattext): honor health leech multipliers 2026-03-14 00:16:28 -07:00
Kelsi
209f8db382 fix(combattext): honor power drain multipliers 2026-03-14 00:06:05 -07:00
Kelsi
64483a31d5 fix(combattext): show power drain separately from damage 2026-03-13 23:56:44 -07:00
Kelsi
e9d2c43191 fix(combatlog): validate classic spelllogexecute packed GUIDs 2026-03-13 23:47:57 -07:00
Kelsi
842771cb10 fix(combatlog): validate tbc spelllogexecute effect GUIDs 2026-03-13 23:40:39 -07:00
Kelsi
57265bfa4f fix(combattext): render evade results explicitly 2026-03-13 23:32:57 -07:00
Kelsi
6095170167 fix(combattext): correct reflect miss floating text 2026-03-13 23:24:09 -07:00
Kelsi
3f1083e9b5 fix(combatlog): consume reflect payload in spell-go miss entries 2026-03-13 23:15:56 -07:00
Kelsi
77d53baa09 fix(combattext): render deflect and reflect miss events 2026-03-13 23:08:49 -07:00
Kelsi
dceaf8f1ac fix(combattext): show aura names for dispel and spellsteal 2026-03-13 23:00:49 -07:00
Kelsi
5392243575 fix(combatlog): stop treating spell break logs as damage shield hits 2026-03-13 22:53:04 -07:00
Kelsi
3e4708fe15 fix(combatlog): parse classic spell miss GUIDs as packed 2026-03-13 22:45:59 -07:00
Kelsi
46b297aacc fix(combatlog): consume reflect payload in spell miss logs 2026-03-13 22:38:35 -07:00
Kelsi
21762485ea fix(combatlog): guard truncated spell energize packets 2026-03-13 22:30:25 -07:00
Kelsi
3ef5b546fb fix(combatlog): render instakill events explicitly 2026-03-13 22:22:00 -07:00
Kelsi
5be55b1b14 fix(combatlog): validate full TBC spell-go header 2026-03-13 22:14:04 -07:00
Kelsi
cf68c156f1 fix(combatlog): accept short packed spell-go packets 2026-03-13 21:16:24 -07:00
Kelsi
16c8a2fd33 fix(combatlog): parse packed spell-go hit target GUIDs 2026-03-13 21:08:00 -07:00
Kelsi
d4d876a563 fix(combatlog): list all dispelled and stolen auras in system messages 2026-03-13 21:00:34 -07:00
Kelsi
c5e7dde931 fix(combatlog): parse proc log GUIDs in classic and tbc 2026-03-13 20:52:34 -07:00
Kelsi
f09913d6d2 fix(combatlog): render interrupt floating combat text 2026-03-13 20:45:26 -07:00
Kelsi
d61bb036a7 fix(combatlog): parse classic dispel and steal aura entries correctly 2026-03-13 20:38:59 -07:00
Kelsi
1214369755 fix(combatlog): log outgoing proc resist events 2026-03-13 20:30:39 -07:00
Kelsi
91dc45d19e fix(combatlog): dedupe duplicate spellsteal aura logs 2026-03-13 20:23:24 -07:00
Kelsi
3edf280e06 fix(combatlog): log all dispelled and stolen auras 2026-03-13 20:14:02 -07:00
Kelsi
98c195fb8e fix(combatlog): preserve spellsteal in dispel log handler 2026-03-13 20:06:39 -07:00
Kelsi
c45951b368 fix(combatlog): distinguish spellsteal from dispel 2026-03-13 19:58:37 -07:00
Kelsi
a48eab43b8 fix(combatlog): show resist entries for resist log packets 2026-03-13 19:51:21 -07:00
Kelsi
3fa495d9ea fix(combatlog): preserve spell ids in spell miss events 2026-03-13 19:43:50 -07:00
Kelsi
23023dc140 fix(combatlog): keep spell-go miss metadata 2026-03-13 19:36:42 -07:00
Kelsi
db681ec4c6 fix(combatlog): target drain and leech self-gain events correctly 2026-03-13 19:28:22 -07:00
Kelsi
6af9f90f45 ignore 2026-03-13 19:22:55 -07:00
Kelsi
e51b215f85 feat: add DISPEL and INTERRUPT combat log entries for dispel/spellsteal/interrupt events
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
2026-03-13 12:03:07 -07:00
Kelsi
ffef3dda7e fix: pass actual GUIDs in SMSG_SPELL_CHANCE_PROC_LOG combat log entries 2026-03-13 11:57:45 -07:00
Kelsi
38111fe8c0 fix: pass actual GUIDs in SMSG_SPELLLOGEXECUTE power drain and health leech combat log entries 2026-03-13 11:55:23 -07:00
Kelsi
d48ead939b fix: pass actual GUIDs in SMSG_SPELLINSTAKILLLOG combat log entries 2026-03-13 11:54:14 -07:00
Kelsi
0982f557d2 fix: pass actual GUIDs for environmental damage and energize combat log entries
SMSG_ENVIRONMENTALDAMAGELOG and SMSG_ENVIRONMENTAL_DAMAGE_LOG now pass
dstGuid=victimGuid with srcGuid=0 (no caster for env damage), ensuring
the combat log shows an empty source name rather than the player's
current target.

SMSG_SPELLENERGIZERLOG now passes casterGuid/victimGuid so the log
correctly attributes mana/energy restoration to the actual caster
rather than the player's current target.
2026-03-13 11:52:31 -07:00
Kelsi
3bdd3f1d3f fix: pass actual GUIDs and spellId to SPELLDAMAGESHIELD and SPELLORDAMAGE_IMMUNE combat log
These handlers already had casterGuid/victimGuid available but were
discarding the packet spellId and not passing GUIDs to addCombatText.
Now the combat log entries show the correct attacker/victim names and
the spell that caused the reflect/immune event.
2026-03-13 11:51:07 -07:00
Kelsi
8213de1d0f fix: pass actual GUIDs to combat log in SPELLLOGMISS and PROCRESIST handlers
SMSG_SPELLLOGMISS and SMSG_PROCRESIST already parsed casterGuid /
victimGuid from the packet but discarded them when calling addCombatText.
Now pass those GUIDs so combat log entries record the actual
attacker/victim names rather than falling back to current target.
2026-03-13 11:50:00 -07:00
Kelsi
d40e8f1618 fix: combat log uses actual attacker/victim GUIDs instead of current target
addCombatText now accepts optional srcGuid/dstGuid parameters. When
provided, the persistent combat log resolves names from the actual
packet GUIDs rather than always falling back to playerGuid/targetGuid.

Updated handleAttackerStateUpdate, handleSpellDamageLog,
handleSpellHealLog, and SMSG_PERIODICAURALOG to pass data.attackerGuid
/ data.targetGuid (or casterGuid/victimGuid), so the combat log
correctly records the attacker name when being hit by enemies the
player has not selected as their current target.

All 48 existing call sites use the 0/0 default and are unaffected.
2026-03-13 11:48:42 -07:00
Kelsi
a05abc8881 feat: include spell names in MISS/DODGE/PARRY/BLOCK/IMMUNE/ABSORB/RESIST combat log entries 2026-03-13 11:39:22 -07:00
Kelsi
04768f41de fix: targetEnemy uses faction isHostile() instead of targeting all non-player units 2026-03-13 11:37:13 -07:00
Kelsi
84d5a1125f feat: show gem sockets and item set bonuses in ItemDef tooltip path 2026-03-13 11:34:48 -07:00
Kelsi
ef7494700e feat: parse and display Heroic/Unique/Unique-Equipped item flags in tooltips 2026-03-13 11:32:32 -07:00