diff options
author | Krudor <erikstrandberg93@hotmail.com> | 2016-12-03 18:26:24 +0100 |
---|---|---|
committer | joschiwald <joschiwald.trinity@gmail.com> | 2016-12-03 18:26:24 +0100 |
commit | 79b984832ff6a30865755c0f202e08dd334d7dbc (patch) | |
tree | ab94231d243926c8fedababa76a1a46f567b20a0 /src | |
parent | 1272e9eea684d1f155709baee44a301ff938ade5 (diff) |
Core/Scripts: Wormhole Generator - Pandaria (#18321)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Spells/spell_item.cpp | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index 381876a8e19..7080e0ba434 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -1373,6 +1373,69 @@ class spell_item_underbelly_elixir : public SpellScriptLoader } }; +enum WormholeGeneratorPandariaSpell +{ + SPELL_WORMHOLE_PANDARIA_ISLE_OF_RECKONING = 126756, + SPELL_WORMHOLE_PANDARIA_KUNLAI_UNDERWATER = 126757, + SPELL_WORMHOLE_PANDARIA_SRA_VESS = 126758, + SPELL_WORMHOLE_PANDARIA_RIKKITUN_VILLAGE = 126759, + SPELL_WORMHOLE_PANDARIA_ZANVESS_TREE = 126760, + SPELL_WORMHOLE_PANDARIA_ANGLERS_WHARF = 126761, + SPELL_WORMHOLE_PANDARIA_CRANE_STATUE = 126762, + SPELL_WORMHOLE_PANDARIA_EMPERORS_OMEN = 126763, + SPELL_WORMHOLE_PANDARIA_WHITEPETAL_LAKE = 126764, +}; + +std::vector<uint32> const WormholeTargetLocations = +{ + SPELL_WORMHOLE_PANDARIA_ISLE_OF_RECKONING, + SPELL_WORMHOLE_PANDARIA_KUNLAI_UNDERWATER, + SPELL_WORMHOLE_PANDARIA_SRA_VESS, + SPELL_WORMHOLE_PANDARIA_RIKKITUN_VILLAGE, + SPELL_WORMHOLE_PANDARIA_ZANVESS_TREE, + SPELL_WORMHOLE_PANDARIA_ANGLERS_WHARF, + SPELL_WORMHOLE_PANDARIA_CRANE_STATUE, + SPELL_WORMHOLE_PANDARIA_EMPERORS_OMEN, + SPELL_WORMHOLE_PANDARIA_WHITEPETAL_LAKE +}; + +// 126755 - Wormhole: Pandaria +class spell_item_wormhole_pandaria : public SpellScriptLoader +{ + public: + spell_item_wormhole_pandaria() : SpellScriptLoader("spell_item_wormhole_pandaria") { } + + class spell_item_wormhole_pandaria_SpellScript : public SpellScript + { + PrepareSpellScript(spell_item_wormhole_pandaria_SpellScript); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + for (uint32 spellId : WormholeTargetLocations) + if (!sSpellMgr->GetSpellInfo(spellId)) + return false; + return true; + } + + void HandleTeleport(SpellEffIndex effIndex) + { + PreventHitDefaultEffect(effIndex); + uint32 spellId = Trinity::Containers::SelectRandomContainerElement(WormholeTargetLocations); + GetCaster()->CastSpell(GetHitUnit(), spellId, true); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_item_wormhole_pandaria_SpellScript::HandleTeleport, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const override + { + return new spell_item_wormhole_pandaria_SpellScript(); + } +}; + // 47776 - Roll 'dem Bones class spell_item_worn_troll_dice : public SpellScriptLoader { @@ -3075,6 +3138,7 @@ void AddSC_item_spell_scripts() new spell_item_six_demon_bag(); new spell_item_the_eye_of_diminution(); new spell_item_underbelly_elixir(); + new spell_item_wormhole_pandaria(); new spell_item_worn_troll_dice(); new spell_item_red_rider_air_rifle(); |