From d1ac62ff6e4c1fe83d4bae1be7d5f5b9c0ebc937 Mon Sep 17 00:00:00 2001 From: IntelligentQuantum Date: Sun, 27 Mar 2022 09:36:23 +0430 Subject: [PATCH] feat(Core/Spells): Move Spell q1846 bending shinbone to spell scripts (#11106) --- .../rev_1647923874715608181.sql | 5 ++++ src/server/game/Spells/SpellEffects.cpp | 11 -------- src/server/scripts/Spells/spell_quest.cpp | 28 +++++++++++++++++++ 3 files changed, 33 insertions(+), 11 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1647923874715608181.sql diff --git a/data/sql/updates/pending_db_world/rev_1647923874715608181.sql b/data/sql/updates/pending_db_world/rev_1647923874715608181.sql new file mode 100644 index 000000000..5c6872626 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1647923874715608181.sql @@ -0,0 +1,5 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647923874715608181'); + +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_q1846_bending_shinbone'); +INSERT INTO `spell_script_names` VALUES +(8856, 'spell_q1846_bending_shinbone'); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 1749fb28b..ef5dd6579 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -3782,17 +3782,6 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex) { switch (m_spellInfo->Id) { - // Bending Shinbone - case 8856: - { - if (!itemTarget && m_caster->GetTypeId() != TYPEID_PLAYER) - return; - - uint32 spell_id = roll_chance_i(20) ? 8854 : 8855; - - m_caster->CastSpell(m_caster, spell_id, true, nullptr); - return; - } // Brittle Armor - need remove one 24575 Brittle Armor aura case 24590: unitTarget->RemoveAuraFromStack(24575); diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index 04131ea79..8cd052331 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -840,6 +840,33 @@ public: } }; +enum BendingShinbone +{ + SPELL_BENDING_SHINBONE1 = 8854, + SPELL_BENDING_SHINBONE2 = 8855 +}; + +class spell_q1846_bending_shinbone : public SpellScript +{ + PrepareSpellScript(spell_q1846_bending_shinbone); + + void HandleScriptEffect(SpellEffIndex /* effIndex */) + { + Item* target = GetHitItem(); + Unit* caster = GetCaster(); + if (!target && caster->GetTypeId() != TYPEID_PLAYER) + return; + + uint32 const spellId = roll_chance_i(20) ? SPELL_BENDING_SHINBONE1 : SPELL_BENDING_SHINBONE2; + caster->CastSpell(caster, spellId, true); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_q1846_bending_shinbone::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + // 9712 - Thaumaturgy Channel enum ThaumaturgyChannel { @@ -2400,6 +2427,7 @@ void AddSC_quest_spell_scripts() RegisterSpellScript(spell_q10985_light_of_the_naaru); RegisterSpellScript(spell_q9718_crow_transform); new spell_q55_sacred_cleansing(); + RegisterSpellScript(spell_q1846_bending_shinbone); RegisterSpellScript(spell_q2203_thaumaturgy_channel); RegisterSpellScript(spell_q5206_test_fetid_skull); RegisterSpellScript(spell_q6124_6129_apply_salve);