diff options
| author | Staleness89 <Staleness665@live.com> | 2016-10-17 02:18:27 -0700 |
|---|---|---|
| committer | Staleness89 <Staleness665@live.com> | 2016-10-17 02:18:27 -0700 |
| commit | c54bf34e39d9cb1390a379020d4717cc8c9e9a52 (patch) | |
| tree | bf36a2dd8034e7cc0bc0b41104cf008b652a1337 | |
| parent | 34f734c89047900da30c8bfea61af1be567bf7c8 (diff) | |
Script/Quest: Rivenwood Captives
| -rw-r--r-- | src/server/scripts/Northrend/zone_howling_fjord.cpp | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/server/scripts/Northrend/zone_howling_fjord.cpp b/src/server/scripts/Northrend/zone_howling_fjord.cpp index 1bbf5adcb3d..666cc6f8015 100644 --- a/src/server/scripts/Northrend/zone_howling_fjord.cpp +++ b/src/server/scripts/Northrend/zone_howling_fjord.cpp @@ -587,6 +587,67 @@ class spell_mindless_abomination_explosion_fx_master : public SpellScriptLoader } }; +enum SummonSpells +{ + SPELL_SUMMON_BABY_RIVEN_WIDOWS = 43275, + SPELL_SUMMON_DARKCLAW_BAT = 43276, + SPELL_SUMMON_FANGGORE_WORG = 43277, + SPELL_SUMMON_GJALERBRON_RUNECASTER = 43278, + SPELL_SUMMON_GJALERBRON_SLEEPWATCHER = 43279, + SPELL_SUMMON_GJALERBRON_WARRIOR = 43280, + SPELL_SUMMON_PUTRID_HORROR = 43281, + SPELL_SUMMON_WINTERSKORN_BERSERKER = 43282, + SPELL_SUMMON_WINTERSKORN_WOODSMAN = 43283, + SPELL_SUMMON_WINTERSKORN_TRIBESMAN = 43284, + SPELL_SUMMON_WINTERSKORN_ORACLE = 43285, + SPELL_SUMMON_FREED_MIST_WHISPER_SCOUT = 43289, + NPC_MIST_WHISPER_SCOUT = 24211 +}; + +const uint32 rivenWidowCocoonVictims[11] = +{ + SPELL_SUMMON_BABY_RIVEN_WIDOWS, SPELL_SUMMON_DARKCLAW_BAT, SPELL_SUMMON_FANGGORE_WORG, SPELL_SUMMON_GJALERBRON_RUNECASTER, SPELL_SUMMON_GJALERBRON_SLEEPWATCHER, SPELL_SUMMON_GJALERBRON_WARRIOR, + SPELL_SUMMON_PUTRID_HORROR, SPELL_SUMMON_WINTERSKORN_BERSERKER, SPELL_SUMMON_WINTERSKORN_WOODSMAN, SPELL_SUMMON_WINTERSKORN_TRIBESMAN, SPELL_SUMMON_WINTERSKORN_ORACLE +}; + +class npc_riven_widow_cocoon : public CreatureScript +{ +public: + npc_riven_widow_cocoon() : CreatureScript("npc_riven_widow_cocoon") { } + + struct npc_riven_widow_cocoonAI : public ScriptedAI + { + npc_riven_widow_cocoonAI(Creature* creature) : ScriptedAI(creature) { } + + void Reset() override { } + void EnterCombat(Unit* /*who*/) override { } + void MoveInLineOfSight(Unit* /*who*/) override { } + + void JustDied(Unit* killer) override + { + Player* player = killer->ToPlayer(); + uint8 uiRand = urand(0, 99); + + if (!player) + return; + + if (uiRand < 20) + { + player->CastSpell(me, SPELL_SUMMON_FREED_MIST_WHISPER_SCOUT, true); + player->KilledMonsterCredit(NPC_MIST_WHISPER_SCOUT); + } + else if (uiRand >= 20) + player->CastSpell(me, rivenWidowCocoonVictims[urand(0, 10)], true); + } + }; + + CreatureAI* GetAI(Creature* creature) const override + { + return new npc_riven_widow_cocoonAI(creature); + } + +}; + void AddSC_howling_fjord() { new npc_apothecary_hanes(); @@ -595,4 +656,5 @@ void AddSC_howling_fjord() new npc_daegarn(); new npc_mindless_abomination(); new spell_mindless_abomination_explosion_fx_master(); + new npc_riven_widow_cocoonAI(); } |
