diff options
| author | Vincent-Michael <Vincent_Michael@gmx.de> | 2013-08-09 20:02:21 +0200 |
|---|---|---|
| committer | Vincent-Michael <Vincent_Michael@gmx.de> | 2013-08-09 20:02:21 +0200 |
| commit | 99aa4649d2f293672256c78b96eeff5be8e3a16c (patch) | |
| tree | 822dc07f26dc020a947463df47d18baa2be5a2e5 /src/server/scripts/Spells | |
| parent | 80d7c093ebdf17b24390426c7b09c0b8a732949e (diff) | |
| parent | 8aff3945f275b2285413ffadef616da1eb513faa (diff) | |
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts:
src/server/scripts/CMakeLists.txt
Diffstat (limited to 'src/server/scripts/Spells')
| -rw-r--r-- | src/server/scripts/Spells/spell_quest.cpp | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index 10cc62a8a91..ca94f871d03 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -1785,6 +1785,63 @@ class spell_q12847_summon_soul_moveto_bunny : public SpellScriptLoader } }; +enum BearFlankMaster +{ + SPELL_BEAR_FLANK_MASTER = 56565, + SPELL_CREATE_BEAR_FLANK = 56566, + SPELL_BEAR_FLANK_FAIL = 56569 +}; + +class spell_q13011_bear_flank_master : public SpellScriptLoader +{ + public: + spell_q13011_bear_flank_master() : SpellScriptLoader("spell_q13011_bear_flank_master") { } + + class spell_q13011_bear_flank_master_SpellScript : public SpellScript + { + PrepareSpellScript(spell_q13011_bear_flank_master_SpellScript); + + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE + { + if (!sSpellMgr->GetSpellInfo(SPELL_BEAR_FLANK_MASTER) || + !sSpellMgr->GetSpellInfo(SPELL_CREATE_BEAR_FLANK)) + return false; + return true; + } + + bool Load() OVERRIDE + { + return GetCaster()->GetTypeId() == TYPEID_UNIT; + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + bool failed = RAND(0, 1); // 50% chance + Creature* creature = GetCaster()->ToCreature(); + if (Player* player = GetHitPlayer()) + { + if (failed) + { + player->CastSpell(creature, SPELL_BEAR_FLANK_FAIL); + creature->AI()->Talk(0, player->GetGUID()); + } + else + player->CastSpell(player, SPELL_CREATE_BEAR_FLANK); + } + } + + void Register() OVERRIDE + { + OnEffectHitTarget += SpellEffectFn(spell_q13011_bear_flank_master_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } + }; + + SpellScript* GetSpellScript() const OVERRIDE + { + return new spell_q13011_bear_flank_master_SpellScript(); + } +}; + class spell_q13086_cannons_target : public SpellScriptLoader { public: @@ -1863,5 +1920,6 @@ void AddSC_quest_spell_scripts() new spell_q13291_q13292_q13239_q13261_frostbrood_skytalon_grab_decoy(); new spell_q13291_q13292_q13239_q13261_armored_decoy_summon_skytalon(); new spell_q12847_summon_soul_moveto_bunny(); + new spell_q13011_bear_flank_master(); new spell_q13086_cannons_target(); } |
