From 082c3f4267ea84a3193bdd5a15eea4a00edf397f Mon Sep 17 00:00:00 2001 From: Vincent-Michael Date: Tue, 4 Dec 2012 20:50:01 +0100 Subject: [PATCH] Core/Hunter: Fix Furious Howl targets --- ...2012_12_04_05_world_spell_script_names.sql | 3 ++ src/server/scripts/Spells/spell_hunter.cpp | 31 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 sql/updates/world/2012_12_04_05_world_spell_script_names.sql diff --git a/sql/updates/world/2012_12_04_05_world_spell_script_names.sql b/sql/updates/world/2012_12_04_05_world_spell_script_names.sql new file mode 100644 index 00000000000..f325ac731d4 --- /dev/null +++ b/sql/updates/world/2012_12_04_05_world_spell_script_names.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `spell_id`=-24604; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(-24604,'spell_hun_furious_howl'); diff --git a/src/server/scripts/Spells/spell_hunter.cpp b/src/server/scripts/Spells/spell_hunter.cpp index a73af6892ca..e52034ed2d9 100644 --- a/src/server/scripts/Spells/spell_hunter.cpp +++ b/src/server/scripts/Spells/spell_hunter.cpp @@ -706,6 +706,36 @@ class spell_hun_tame_beast : public SpellScriptLoader } }; +class spell_hun_furious_howl : public SpellScriptLoader +{ + public: + spell_hun_furious_howl() : SpellScriptLoader("spell_hun_furious_howl") { } + + class spell_hun_furious_howl_SpellScript : public SpellScript + { + PrepareSpellScript(spell_hun_furious_howl_SpellScript); + + void FilterTargets(std::list& targets) + { + targets.clear(); + targets.push_back(GetCaster()); + if (Unit* owner = GetCaster()->GetOwner()) + targets.push_back(owner); + } + + void Register() + { + OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_hun_furious_howl_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_CASTER_AREA_PARTY); + OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_hun_furious_howl_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_CASTER_AREA_PARTY); + } + }; + + SpellScript* GetSpellScript() const + { + return new spell_hun_furious_howl_SpellScript(); + } +}; + void AddSC_hunter_spell_scripts() { new spell_hun_aspect_of_the_beast(); @@ -722,4 +752,5 @@ void AddSC_hunter_spell_scripts() new spell_hun_misdirection_proc(); new spell_hun_disengage(); new spell_hun_tame_beast(); + new spell_hun_furious_howl(); }