feat: implement SMSG_PLAY_SPELL_VISUAL with SpellVisual DBC chain lookup

Parse SMSG_PLAY_SPELL_VISUAL (casterGuid + visualId) and spawn a
transient M2 spell effect at the caster's world position.

DBC chain: SpellVisual.dbc → SpellVisualKit.dbc → SpellVisualEffectName.dbc
Lookup priority: CastKit.SpecialEffect0, fallback to MissileModel.
Models are lazy-loaded and cached by path; instances auto-expire after 3.5s.
DBC layouts added to all four expansion layout files (Classic/TBC/WotLK/Turtle).
This commit is contained in:
Kelsi 2026-03-17 18:23:05 -07:00
parent 06ad676be1
commit 315adfbe93
7 changed files with 245 additions and 3 deletions

View file

@ -108,5 +108,14 @@
"Threshold0": 30, "Threshold1": 31, "Threshold2": 32, "Threshold3": 33,
"Threshold4": 34, "Threshold5": 35, "Threshold6": 36, "Threshold7": 37,
"Threshold8": 38, "Threshold9": 39
},
"SpellVisual": {
"ID": 0, "CastKit": 2, "ImpactKit": 3, "MissileModel": 8
},
"SpellVisualKit": {
"ID": 0, "BaseEffect": 5, "SpecialEffect0": 11, "SpecialEffect1": 12, "SpecialEffect2": 13
},
"SpellVisualEffectName": {
"ID": 0, "FilePath": 2
}
}