From c54bf34e39d9cb1390a379020d4717cc8c9e9a52 Mon Sep 17 00:00:00 2001 From: Staleness89 Date: Mon, 17 Oct 2016 02:18:27 -0700 Subject: Script/Quest: Rivenwood Captives --- .../scripts/Northrend/zone_howling_fjord.cpp | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) (limited to 'src') 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(); } -- cgit v1.2.3 From 50c8f7fb0a5b904e2f3ab4ae1f9f59bb685da9ce Mon Sep 17 00:00:00 2001 From: Staleness89 Date: Mon, 17 Oct 2016 14:12:15 -0700 Subject: Fix coding style and build error --- .../scripts/Northrend/zone_howling_fjord.cpp | 95 +++++++++++----------- 1 file changed, 47 insertions(+), 48 deletions(-) (limited to 'src') diff --git a/src/server/scripts/Northrend/zone_howling_fjord.cpp b/src/server/scripts/Northrend/zone_howling_fjord.cpp index 666cc6f8015..529376ea655 100644 --- a/src/server/scripts/Northrend/zone_howling_fjord.cpp +++ b/src/server/scripts/Northrend/zone_howling_fjord.cpp @@ -589,63 +589,62 @@ 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 + 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 + 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); - } + 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 (roll_chance_i(20)) + { + player->CastSpell(me, SPELL_SUMMON_FREED_MIST_WHISPER_SCOUT, true); + player->KilledMonsterCredit(NPC_MIST_WHISPER_SCOUT); + } + else + player->CastSpell(me, rivenWidowCocoonVictims[urand(0, 10)], true); + } + }; + + CreatureAI* GetAI(Creature* creature) const override + { + return new npc_riven_widow_cocoon(creature); + } }; void AddSC_howling_fjord() @@ -656,5 +655,5 @@ void AddSC_howling_fjord() new npc_daegarn(); new npc_mindless_abomination(); new spell_mindless_abomination_explosion_fx_master(); - new npc_riven_widow_cocoonAI(); + new npc_riven_widow_cocoon(); } -- cgit v1.2.3 From c1fcb7d8bcc87715db01957dd72d9ba988131288 Mon Sep 17 00:00:00 2001 From: Staleness89 Date: Mon, 17 Oct 2016 14:18:57 -0700 Subject: Unused variable --- src/server/scripts/Northrend/zone_howling_fjord.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'src') diff --git a/src/server/scripts/Northrend/zone_howling_fjord.cpp b/src/server/scripts/Northrend/zone_howling_fjord.cpp index 529376ea655..8ac80081317 100644 --- a/src/server/scripts/Northrend/zone_howling_fjord.cpp +++ b/src/server/scripts/Northrend/zone_howling_fjord.cpp @@ -626,7 +626,6 @@ public: void JustDied(Unit* killer) override { Player* player = killer->ToPlayer(); - uint8 uiRand = urand(0, 99); if (!player) return; -- cgit v1.2.3 From 16d222aff34baa4340b5eb583a66b628bc6d3e83 Mon Sep 17 00:00:00 2001 From: Staleness89 Date: Mon, 17 Oct 2016 14:27:09 -0700 Subject: Fix a tab --- src/server/scripts/Northrend/zone_howling_fjord.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/scripts/Northrend/zone_howling_fjord.cpp b/src/server/scripts/Northrend/zone_howling_fjord.cpp index 8ac80081317..f2ffd0ea936 100644 --- a/src/server/scripts/Northrend/zone_howling_fjord.cpp +++ b/src/server/scripts/Northrend/zone_howling_fjord.cpp @@ -654,5 +654,5 @@ void AddSC_howling_fjord() new npc_daegarn(); new npc_mindless_abomination(); new spell_mindless_abomination_explosion_fx_master(); - new npc_riven_widow_cocoon(); + new npc_riven_widow_cocoon(); } -- cgit v1.2.3 From d208d6a66c3ddb73abb59ed47a14876676f6e14a Mon Sep 17 00:00:00 2001 From: Staleness89 Date: Mon, 17 Oct 2016 15:29:03 -0700 Subject: Is this what it wants? --- src/server/scripts/Northrend/zone_howling_fjord.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/scripts/Northrend/zone_howling_fjord.cpp b/src/server/scripts/Northrend/zone_howling_fjord.cpp index f2ffd0ea936..7a5a6128495 100644 --- a/src/server/scripts/Northrend/zone_howling_fjord.cpp +++ b/src/server/scripts/Northrend/zone_howling_fjord.cpp @@ -642,7 +642,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_riven_widow_cocoon(creature); + return new npc_riven_widow_cocoon(); } }; -- cgit v1.2.3 From 3dcaf0aee8ad519567583ef36bf6eb1221f3ed3f Mon Sep 17 00:00:00 2001 From: Staleness89 Date: Mon, 17 Oct 2016 15:49:25 -0700 Subject: This should do it --- src/server/scripts/Northrend/zone_howling_fjord.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/server/scripts/Northrend/zone_howling_fjord.cpp b/src/server/scripts/Northrend/zone_howling_fjord.cpp index 7a5a6128495..837be87e615 100644 --- a/src/server/scripts/Northrend/zone_howling_fjord.cpp +++ b/src/server/scripts/Northrend/zone_howling_fjord.cpp @@ -606,8 +606,17 @@ enum SummonSpells 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 + 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 @@ -642,7 +651,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_riven_widow_cocoon(); + return new npc_riven_widow_cocoonAI(creature); } }; -- cgit v1.2.3