diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-09-17 23:37:15 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-09-17 23:37:15 +0200 |
commit | 7a4cbddb2ceb9ba7c8a25a3798fde1cbfa7e1fff (patch) | |
tree | 25177855d4f2719010eee073678b2f4e41e6317d | |
parent | 2b6f0c902ff937f90edd49a5da0e60cf1077ce0b (diff) |
Scripts/Zul'farrak: Added dungeon encounter ids
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 |