diff options
author | Killyana <morphone1@gmail.com> | 2020-02-18 20:22:02 +0100 |
---|---|---|
committer | Killyana <morphone1@gmail.com> | 2020-02-18 20:22:02 +0100 |
commit | 3181a1c87fda562c75c48f9618fcf93282cd76be (patch) | |
tree | b6e9906c2edc5b6f6af2ae7e8b1a0d500230ec5d | |
parent | f7f630bcb3367c234457ec5b4a33fa879cf843ee (diff) |
Boss/Script: Add Crazed Apothecary to Apothecary Hummel encounter
Closes #19520
Closes #24176
4 files changed, 59 insertions, 27 deletions
diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp index c14e5b6a348..b3321480eaf 100644 --- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp +++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp @@ -70,7 +70,9 @@ enum ApothecaryEvents EVENT_PERFUME_SPRAY, EVENT_COLOGNE_SPRAY, EVENT_CALL_BAXTER, - EVENT_CALL_FRYE + EVENT_CALL_FRYE, + EVENT_CALL_CRAZED_APOTHECARY, + EVENT_CRAZED_APOTHECARY }; enum ApothecaryMisc @@ -220,8 +222,9 @@ class boss_apothecary_hummel : public CreatureScript events.ScheduleEvent(EVENT_CALL_FRYE, 14s); events.ScheduleEvent(EVENT_PERFUME_SPRAY, Milliseconds(3640)); events.ScheduleEvent(EVENT_CHAIN_REACTION, 15s); + events.ScheduleEvent(EVENT_CALL_CRAZED_APOTHECARY, 15s); + events.ScheduleEvent(EVENT_CRAZED_APOTHECARY, 15s); - Talk(SAY_SUMMON_ADDS); std::vector<Creature*> trashs; me->GetCreatureListWithEntryInGrid(trashs, NPC_CROWN_APOTHECARY); for (Creature* crea : trashs) @@ -244,6 +247,13 @@ class boss_apothecary_hummel : public CreatureScript summons.DoAction(ACTION_START_FIGHT, pred); break; } + case EVENT_CALL_CRAZED_APOTHECARY: + Talk(SAY_SUMMON_ADDS); + break; + case EVENT_CRAZED_APOTHECARY: + instance->SetData(DATA_SPAWN_VALENTINE_ADDS, 0); + events.Repeat(Seconds(4), Seconds(6)); + break; case EVENT_PERFUME_SPRAY: DoCastVictim(SPELL_PERFUME_SPRAY); events.Repeat(Milliseconds(3640)); diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp index 108f136d345..7d12f1c0bd9 100644 --- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp +++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp @@ -40,24 +40,10 @@ enum Yells SAY_ARCHMAGE = 0 }; -enum Creatures -{ - NPC_ASH = 3850, - NPC_ADA = 3849, - NPC_ARCHMAGE_ARUGAL = 4275, - NPC_ARUGAL_VOIDWALKER = 4627 -}; - -enum GameObjects -{ - GO_COURTYARD_DOOR = 18895, //door to open when talking to NPC's - GO_SORCERER_DOOR = 18972, //door to open when Fenrus the Devourer - GO_ARUGAL_DOOR = 18971 //door to open when Wolf Master Nandos -}; - enum Spells { - SPELL_ASHCROMBE_TELEPORT = 15742 + SPELL_ASHCROMBE_TELEPORT = 15742, + SPELL_SUMMON_VALENTINE_ADD = 68610 }; const Position SpawnLocation[] = @@ -68,6 +54,7 @@ const Position SpawnLocation[] = {-140.794f, 2178.037f, 128.448f, 4.090f}, {-138.640f, 2170.159f, 136.577f, 2.737f} }; + class instance_shadowfang_keep : public InstanceMapScript { public: @@ -107,9 +94,20 @@ public: { switch (creature->GetEntry()) { - case NPC_ASH: uiAshGUID = creature->GetGUID(); break; - case NPC_ADA: uiAdaGUID = creature->GetGUID(); break; - case NPC_ARCHMAGE_ARUGAL: uiArchmageArugalGUID = creature->GetGUID(); break; + case NPC_ASH: + uiAshGUID = creature->GetGUID(); + break; + case NPC_ADA: + uiAdaGUID = creature->GetGUID(); + break; + case NPC_ARCHMAGE_ARUGAL: + uiArchmageArugalGUID = creature->GetGUID(); + break; + case NPC_DND_CRAZED_APOTHECARY_GENERATOR: + _crazedApothecaryGeneratorGUIDs.push_back(creature->GetGUID()); + break; + default: + break; } } @@ -179,6 +177,15 @@ public: DoUseDoorOrButton(DoorArugalGUID); m_auiEncounter[3] = data; break; + case DATA_SPAWN_VALENTINE_ADDS: + for (ObjectGuid guid : _crazedApothecaryGeneratorGUIDs) + { + if (Creature* generator = instance->GetCreature(guid)) + generator->CastSpell(nullptr, SPELL_SUMMON_VALENTINE_ADD); + } + break; + default: + break; } if (data == DONE) @@ -279,6 +286,9 @@ public: } else uiTimer -= uiDiff; } } + + private: + GuidVector _crazedApothecaryGeneratorGUIDs; }; }; diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp index 66fc71f1edf..0c3c37d4c43 100644 --- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp +++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp @@ -56,11 +56,6 @@ enum Spells SPELL_DARK_OFFERING = 7154 }; -enum Creatures -{ - NPC_ASH = 3850 -}; - class npc_shadowfang_prisoner : public CreatureScript { public: diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h index 486c9750acc..4fabceb767b 100644 --- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h +++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h @@ -30,7 +30,24 @@ enum SKDataTypes TYPE_FENRUS = 3, TYPE_NANDOS = 4, BOSS_ARUGAL = 5, - DATA_APOTHECARY_HUMMEL = 6 + DATA_APOTHECARY_HUMMEL = 6, + DATA_SPAWN_VALENTINE_ADDS = 7 +}; + +enum SKCreatures +{ + NPC_ASH = 3850, + NPC_ADA = 3849, + NPC_ARCHMAGE_ARUGAL = 4275, + NPC_ARUGAL_VOIDWALKER = 4627, + NPC_DND_CRAZED_APOTHECARY_GENERATOR = 36212 +}; + +enum SKGameObjects +{ + GO_COURTYARD_DOOR = 18895, //door to open when talking to NPC's + GO_SORCERER_DOOR = 18972, //door to open when Fenrus the Devourer + GO_ARUGAL_DOOR = 18971 //door to open when Wolf Master Nandos }; template <class AI, class T> |