aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-09-17 23:37:15 +0200
committerShauren <shauren.trinity@gmail.com>2023-09-17 23:37:15 +0200
commit7a4cbddb2ceb9ba7c8a25a3798fde1cbfa7e1fff (patch)
tree25177855d4f2719010eee073678b2f4e41e6317d
parent2b6f0c902ff937f90edd49a5da0e60cf1077ce0b (diff)
Scripts/Zul'farrak: Added dungeon encounter ids
-rw-r--r--src/server/scripts/Kalimdor/ZulFarrak/boss_zum_rah.cpp12
-rw-r--r--src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp31
-rw-r--r--src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.h26
3 files changed, 55 insertions, 14 deletions
diff --git a/src/server/scripts/Kalimdor/ZulFarrak/boss_zum_rah.cpp b/src/server/scripts/Kalimdor/ZulFarrak/boss_zum_rah.cpp
index 7da92e05f4d..14113e37fe2 100644
--- a/src/server/scripts/Kalimdor/ZulFarrak/boss_zum_rah.cpp
+++ b/src/server/scripts/Kalimdor/ZulFarrak/boss_zum_rah.cpp
@@ -21,7 +21,6 @@ Category: Tanaris, ZulFarrak
*/
#include "ScriptMgr.h"
-#include "InstanceScript.h"
#include "ScriptedCreature.h"
#include "zulfarrak.h"
@@ -55,7 +54,7 @@ public:
struct boss_zum_rahAI : public BossAI
{
- boss_zum_rahAI(Creature* creature) : BossAI(creature, DATA_ZUM_RAH)
+ boss_zum_rahAI(Creature* creature) : BossAI(creature, BOSS_WITCH_DOCTOR_ZUM_RAH)
{
Initialize();
}
@@ -69,22 +68,19 @@ public:
void Reset() override
{
+ _Reset();
me->SetFaction(FACTION_FRIENDLY); // areatrigger sets faction to enemy
Initialize();
}
- void JustEngagedWith(Unit* /*who*/) override
+ void JustEngagedWith(Unit* who) override
{
+ _JustEngagedWith(who);
Talk(SAY_SANCT_INVADE);
events.ScheduleEvent(EVENT_SHADOW_BOLT, 1s);
events.ScheduleEvent(EVENT_SHADOWBOLT_VOLLEY, 10s);
}
- void JustDied(Unit* /*killer*/) override
- {
- instance->SetData(DATA_ZUM_RAH, DONE);
- }
-
void KilledUnit(Unit* /*victim*/) override
{
Talk(SAY_KILL);
diff --git a/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp b/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
index 7700bcfe5a0..e86f39bd4da 100644
--- a/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
+++ b/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
@@ -32,6 +32,18 @@ enum Misc
PATH_ADDS = 652424
};
+static constexpr DungeonEncounterData Encounters[] =
+{
+ { BOSS_HYDROMANCER_VELRATHA, { { 593 } } },
+ { BOSS_GAHZ_RILLA, { { 594 } } },
+ { BOSS_ANTU_SUL, { { 595 } } },
+ { BOSS_THEKA_THE_MARTYR, { { 596 } } },
+ { BOSS_WITCH_DOCTOR_ZUM_RAH, { { 597 } } },
+ { BOSS_NEKRUM_GUTCHEWER, { { 598 } } },
+ { BOSS_SHADOWPRIEST_SEZZ_ZIZ, { { 599 } } },
+ { BOSS_CHIEF_UKORZ_SANDSCALP, { { 600 } } },
+};
+
int const pyramidSpawnTotal = 54;
/* list of wave spawns: 0 = wave ID, 1 = creature id, 2 = x, 3 = y
no z coordinat b/c they're all the same */
@@ -113,6 +125,8 @@ public:
instance_zulfarrak_InstanceMapScript(InstanceMap* map) : InstanceScript(map)
{
SetHeaders(DataHeader);
+ SetBossNumber(MAX_ENCOUNTER);
+ LoadDungeonEncounterData(Encounters);
GahzRillaEncounter = NOT_STARTED;
PyramidPhase = 0;
major_wave_Timer = 0;
@@ -164,13 +178,28 @@ public:
break;
case NPC_GAHZRILLA:
if (GahzRillaEncounter >= IN_PROGRESS)
- creature->DisappearAndDie();
+ creature->DespawnOrUnsummon();
else
GahzRillaEncounter = IN_PROGRESS;
break;
}
}
+ void OnUnitDeath(Unit* unit) override
+ {
+ switch (unit->GetEntry())
+ {
+ case ENTRY_VELRTHA: SetBossState(BOSS_HYDROMANCER_VELRATHA, DONE); break;
+ case ENTRY_GAHZRILLA: SetBossState(BOSS_GAHZ_RILLA, DONE); break;
+ case ENTRY_ANTUSUL: SetBossState(BOSS_ANTU_SUL, DONE); break;
+ case ENTRY_THEKA: SetBossState(BOSS_THEKA_THE_MARTYR, DONE); break;
+ case ENTRY_NEKRUM: SetBossState(BOSS_NEKRUM_GUTCHEWER, DONE); break;
+ case ENTRY_SEZZZIZ: SetBossState(BOSS_SHADOWPRIEST_SEZZ_ZIZ, DONE); break;
+ case ENTRY_SANDSCALP: SetBossState(BOSS_CHIEF_UKORZ_SANDSCALP, DONE); break;
+ default: break;
+ }
+ }
+
void OnGameObjectCreate(GameObject* go) override
{
switch (go->GetEntry())
diff --git a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.h b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.h
index a4eaca7664d..39dbaa66feb 100644
--- a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.h
+++ b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.h
@@ -23,14 +23,35 @@
#define ZFScriptName "instance_zulfarrak"
#define DataHeader "ZF"
+enum ZFBossIds
+{
+ BOSS_HYDROMANCER_VELRATHA = 0,
+ BOSS_GAHZ_RILLA = 1,
+ BOSS_ANTU_SUL = 2,
+ BOSS_THEKA_THE_MARTYR = 3,
+ BOSS_WITCH_DOCTOR_ZUM_RAH = 4,
+ BOSS_NEKRUM_GUTCHEWER = 5,
+ BOSS_SHADOWPRIEST_SEZZ_ZIZ = 6,
+ BOSS_CHIEF_UKORZ_SANDSCALP = 7,
+
+ MAX_ENCOUNTER
+};
+
enum ZFEntries
{
+ ENTRY_SANDSCALP = 7267,
ENTRY_ZUM_RAH = 7271,
+ ENTRY_THEKA = 7272,
+ ENTRY_GAHZRILLA = 7273,
+ ENTRY_SEZZZIZ = 7275,
ENTRY_BLY = 7604,
ENTRY_RAVEN = 7605,
ENTRY_ORO = 7606,
ENTRY_WEEGLI = 7607,
ENTRY_MURTA = 7608,
+ ENTRY_VELRTHA = 7795,
+ ENTRY_NEKRUM = 7796,
+ ENTRY_ANTUSUL = 8127,
GO_END_DOOR = 146084,
@@ -38,11 +59,6 @@ enum ZFEntries
EVENT_GAHZRILLA
};
-enum ZFDataTypes
-{
- DATA_ZUM_RAH = 0
-};
-
enum ZFPyramidPhases
{
PYRAMID_NOT_STARTED, //default