6 Commits

Author SHA1 Message Date
Kelsi
2de06c267a add map trackers and fix spell and mount state 2026-07-21 02:23:51 -07:00
Kelsi
e4acdee419 fix NPC selection and cast errors 2026-07-19 17:48:36 -07:00
Kelsi
d00f20b3e1 fix(gameplay): polish worker and consumable presentation
Parse per-animation M2 color alpha tracks across vanilla and WotLK layouts so hidden lumberjack bundle meshes remain culled until their authored death sequence.

Keep scripted worker emotes and display swaps coherent across movement and async model loads. Rework food and drink presentation around the seated aura lifecycle, repeat consumption audio, preserve real cast animations on auto-stand, and retain potion swigs.

Add server-driven intoxication movement, camera, and post-process effects plus focused regression coverage for M2 alpha tracks and consumable classification.
2026-07-17 00:48:21 -07:00
Kelsi
e68d7adbb6 fix(gameplay): repair fishing casts and animations 2026-07-16 21:38:12 -07:00
Kelsi
08afad57f0 fix(combat): correct ranged attack readiness feedback 2026-07-14 20:16:28 -07:00
Kelsi
9fb614db34 test(spell): cover range classification and superseded rank resolution
Every spell fix this week was verified by hand against the DBCs, which found the
bugs but did nothing to stop them coming back. The decision logic is now a set of
pure functions in spell_classification.hpp, driven by DBC data rather than spell
ids, and SpellHandler delegates to them so the tested code is the code that runs.

31 assertions across 8 cases, each pinned to a real regression: a physical-school
self-buff must not read as melee (Battle Shout), a physical-school 35-yard shot
must not read as melee (Steady Shot, Taunt, Deadly Throw), and a superseded rank
must resolve to the highest rank actually known while leaving item spells and
other classes' spells alone.
2026-07-14 14:40:23 -07:00