Scripts/Zul'farrak: Added dungeon encounter ids

This commit is contained in:
Shauren
2023-09-17 23:37:15 +02:00
parent 2b6f0c902f
commit 7a4cbddb2c
3 changed files with 55 additions and 14 deletions

View File

@@ -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);

View File

@@ -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())

View File

@@ -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