diff --git a/data/sql/updates/pending_db_world/rev_1488307580281293100.sql b/data/sql/updates/pending_db_world/rev_1488307580281293100.sql new file mode 100644 index 000000000..22835a3b0 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1488307580281293100.sql @@ -0,0 +1,8 @@ +INSERT INTO version_db_world (`sql_rev`) VALUES ('1488307580281293100'); +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/scripts/Spells/spell_generic.cpp b/src/scripts/Spells/spell_generic.cpp index 44d822556..ff27b7750 100644 --- a/src/scripts/Spells/spell_generic.cpp +++ b/src/scripts/Spells/spell_generic.cpp @@ -1709,6 +1709,47 @@ class spell_gen_create_lance : 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 @@ -4910,6 +4951,7 @@ void AddSC_generic_spell_scripts() new spell_gen_break_shield("spell_gen_break_shield"); new spell_gen_break_shield("spell_gen_tournament_counterattack"); new spell_gen_mounted_charge(); + new spell_gen_moss_covered_feet(); new spell_gen_defend(); new spell_gen_tournament_duel(); new spell_gen_summon_tournament_mount();