aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKillyana <morphone1@gmail.com>2020-02-18 20:22:02 +0100
committerKillyana <morphone1@gmail.com>2020-02-18 20:22:02 +0100
commit3181a1c87fda562c75c48f9618fcf93282cd76be (patch)
treeb6e9906c2edc5b6f6af2ae7e8b1a0d500230ec5d
parentf7f630bcb3367c234457ec5b4a33fa879cf843ee (diff)
Boss/Script: Add Crazed Apothecary to Apothecary Hummel encounter
Closes #19520 Closes #24176
-rw-r--r--src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp48
-rw-r--r--src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h19
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>