From a704aa3005c0115bea527598fda807914eb8a25e Mon Sep 17 00:00:00 2001 From: IntelligentQuantum Date: Sun, 27 Mar 2022 09:32:17 +0430 Subject: [PATCH] feat(Core/Spells): Move Spell death knight initiate visual to spell scripts (#11103) --- .../rev_1647924729405978168.sql | 5 ++ src/server/game/Spells/SpellEffects.cpp | 78 ------------------- .../ScarletEnclave/chapter1.cpp | 48 ++++++++++++ 3 files changed, 53 insertions(+), 78 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1647924729405978168.sql diff --git a/data/sql/updates/pending_db_world/rev_1647924729405978168.sql b/data/sql/updates/pending_db_world/rev_1647924729405978168.sql new file mode 100644 index 000000000..a710c28ae --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1647924729405978168.sql @@ -0,0 +1,5 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647924729405978168'); + +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_death_knight_initiate_visual'); +INSERT INTO `spell_script_names` VALUES +(51519, 'spell_death_knight_initiate_visual'); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index a06c04af0..1749fb28b 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -3934,84 +3934,6 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex) m_caster->TextEmote(buf); break; } - // Death Knight Initiate Visual - case 51519: - { - if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT) - return; - - uint32 iTmpSpellId = 0; - switch (unitTarget->GetDisplayId()) - { - case 25369: - iTmpSpellId = 51552; - break; // bloodelf female - case 25373: - iTmpSpellId = 51551; - break; // bloodelf male - case 25363: - iTmpSpellId = 51542; - break; // draenei female - case 25357: - iTmpSpellId = 51541; - break; // draenei male - case 25361: - iTmpSpellId = 51537; - break; // dwarf female - case 25356: - iTmpSpellId = 51538; - break; // dwarf male - case 25372: - iTmpSpellId = 51550; - break; // forsaken female - case 25367: - iTmpSpellId = 51549; - break; // forsaken male - case 25362: - iTmpSpellId = 51540; - break; // gnome female - case 25359: - iTmpSpellId = 51539; - break; // gnome male - case 25355: - iTmpSpellId = 51534; - break; // human female - case 25354: - iTmpSpellId = 51520; - break; // human male - case 25360: - iTmpSpellId = 51536; - break; // nightelf female - case 25358: - iTmpSpellId = 51535; - break; // nightelf male - case 25368: - iTmpSpellId = 51544; - break; // orc female - case 25364: - iTmpSpellId = 51543; - break; // orc male - case 25371: - iTmpSpellId = 51548; - break; // tauren female - case 25366: - iTmpSpellId = 51547; - break; // tauren male - case 25370: - iTmpSpellId = 51545; - break; // troll female - case 25365: - iTmpSpellId = 51546; - break; // troll male - default: - return; - } - - unitTarget->CastSpell(unitTarget, iTmpSpellId, true); - Creature* npc = unitTarget->ToCreature(); - npc->LoadEquipment(); - return; - } // Deathbolt from Thalgran Blightbringer // reflected by Freya's Ward // Retribution by Sevenfold Retribution diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp index 965c537c2..dbee1f0bb 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -1171,6 +1171,52 @@ public: } }; +class spell_death_knight_initiate_visual : public SpellScript +{ + PrepareSpellScript(spell_death_knight_initiate_visual); + + void HandleScriptEffect(SpellEffIndex /* effIndex */) + { + Creature* target = GetHitCreature(); + if (!target) + return; + + uint32 spellId; + switch (target->GetDisplayId()) + { + case 25369: spellId = 51552; break; // bloodelf female + case 25373: spellId = 51551; break; // bloodelf male + case 25363: spellId = 51542; break; // draenei female + case 25357: spellId = 51541; break; // draenei male + case 25361: spellId = 51537; break; // dwarf female + case 25356: spellId = 51538; break; // dwarf male + case 25372: spellId = 51550; break; // forsaken female + case 25367: spellId = 51549; break; // forsaken male + case 25362: spellId = 51540; break; // gnome female + case 25359: spellId = 51539; break; // gnome male + case 25355: spellId = 51534; break; // human female + case 25354: spellId = 51520; break; // human male + case 25360: spellId = 51536; break; // nightelf female + case 25358: spellId = 51535; break; // nightelf male + case 25368: spellId = 51544; break; // orc female + case 25364: spellId = 51543; break; // orc male + case 25371: spellId = 51548; break; // tauren female + case 25366: spellId = 51547; break; // tauren male + case 25370: spellId = 51545; break; // troll female + case 25365: spellId = 51546; break; // troll male + default: return; + } + + target->CastSpell(target, spellId, true); + target->LoadEquipment(); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_death_knight_initiate_visual::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + void AddSC_the_scarlet_enclave_c1() { // Ours @@ -1191,4 +1237,6 @@ void AddSC_the_scarlet_enclave_c1() new npc_scarlet_miner(); new npc_scarlet_miner_cart(); new go_inconspicuous_mine_car(); + + RegisterSpellScript(spell_death_knight_initiate_visual); }