From 2acac2c9f7dfa03f11d77f889f39a7dd5b9c4d66 Mon Sep 17 00:00:00 2001 From: ariel- Date: Tue, 28 Feb 2017 14:08:25 -0300 Subject: [PATCH] Core/Scripts: implement Moss Covered Feet Closes #19022 --- .../world/3.3.5/2017_02_28_00_world.sql | 4 ++ src/server/scripts/Spells/spell_generic.cpp | 42 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 sql/updates/world/3.3.5/2017_02_28_00_world.sql diff --git a/sql/updates/world/3.3.5/2017_02_28_00_world.sql b/sql/updates/world/3.3.5/2017_02_28_00_world.sql new file mode 100644 index 0000000000..4ee3939e02 --- /dev/null +++ b/sql/updates/world/3.3.5/2017_02_28_00_world.sql @@ -0,0 +1,4 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_gen_moss_covered_feet'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(6870, 'spell_gen_moss_covered_feet'), +(31399, 'spell_gen_moss_covered_feet'); diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 9a326cdc82..3bc75549c6 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -2014,6 +2014,47 @@ class spell_gen_mounted_charge: public SpellScriptLoader } }; +enum MossCoveredFeet +{ + SPELL_FALL_DOWN = 6869 +}; + +// 6870 Moss Covered Feet +// 31399 Moss Covered Feet +class spell_gen_moss_covered_feet : public SpellScriptLoader +{ + public: + spell_gen_moss_covered_feet() : SpellScriptLoader("spell_gen_moss_covered_feet") { } + + class spell_gen_moss_covered_feet_AuraScript : public AuraScript + { + PrepareAuraScript(spell_gen_moss_covered_feet_AuraScript); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + if (!sSpellMgr->GetSpellInfo(SPELL_FALL_DOWN)) + return false; + return true; + } + + void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) + { + PreventDefaultAction(); + eventInfo.GetActionTarget()->CastSpell((Unit*)nullptr, SPELL_FALL_DOWN, true, nullptr, aurEff); + } + + void Register() override + { + OnEffectProc += AuraEffectProcFn(spell_gen_moss_covered_feet_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); + } + }; + + AuraScript* GetAuraScript() const override + { + return new spell_gen_moss_covered_feet_AuraScript(); + } +}; + enum Netherbloom { SPELL_NETHERBLOOM_POLLEN_1 = 28703 @@ -4304,6 +4345,7 @@ void AddSC_generic_spell_scripts() new spell_gen_lifebloom("spell_twisted_visage_lifebloom", SPELL_TWISTED_VISAGE_LIFEBLOOM_FINAL_HEAL); new spell_gen_lifebloom("spell_faction_champion_dru_lifebloom", SPELL_FACTION_CHAMPIONS_DRU_LIFEBLOOM_FINAL_HEAL); new spell_gen_mounted_charge(); + new spell_gen_moss_covered_feet(); new spell_gen_netherbloom(); new spell_gen_obsidian_armor(); new spell_gen_on_tournament_mount();