diff options
Diffstat (limited to 'src')
7 files changed, 51 insertions, 158 deletions
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp index 23f9d315457..6c168b4c20e 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp @@ -149,7 +149,7 @@ public: if (!Intro || IsIntro) return; - if (Creature* Madrigosa = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MADRIGOSA))) + if (Creature* Madrigosa = instance->GetCreature(DATA_MADRIGOSA)) { Madrigosa->Respawn(); Madrigosa->setActive(true); @@ -184,7 +184,7 @@ public: void DoIntro() { - Creature* Madrigosa = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MADRIGOSA)); + Creature* Madrigosa = instance->GetCreature(DATA_MADRIGOSA); if (!Madrigosa) return; @@ -287,7 +287,7 @@ public: { if (IntroFrostBoltTimer <= diff) { - if (Creature* Madrigosa = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MADRIGOSA))) + if (Creature* Madrigosa = instance->GetCreature(DATA_MADRIGOSA)) { Madrigosa->CastSpell(me, SPELL_INTRO_FROSTBOLT, true); IntroFrostBoltTimer = 2000; diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp index f2d5fca1ba8..b3aeb81f3ef 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp @@ -116,7 +116,7 @@ public: { Enraged = false; - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ALYTHESS))) + if (Creature* temp = instance->GetCreature(DATA_ALYTHESS)) { if (temp->isDead()) temp->Respawn(); @@ -136,7 +136,7 @@ public: { DoZoneInCombat(); - Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ALYTHESS)); + Creature* temp = instance->GetCreature(DATA_ALYTHESS); if (temp && temp->IsAlive() && !temp->GetVictim()) temp->AI()->AttackStart(who); @@ -209,7 +209,7 @@ public: { if (!SisterDeath) { - Unit* Temp = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_ALYTHESS)); + Unit* Temp = instance->GetCreature(DATA_ALYTHESS); if (Temp && Temp->isDead()) { Talk(YELL_SISTER_ALYTHESS_DEAD); @@ -368,7 +368,7 @@ public: { Enraged = false; - if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SACROLASH))) + if (Creature* temp = instance->GetCreature(DATA_SACROLASH)) { if (temp->isDead()) temp->Respawn(); @@ -388,7 +388,7 @@ public: { DoZoneInCombat(); - Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SACROLASH)); + Creature* temp = instance->GetCreature(DATA_SACROLASH); if (temp && temp->IsAlive() && !temp->GetVictim()) temp->AI()->AttackStart(who); @@ -488,7 +488,7 @@ public: uint32 IntroStep(uint32 step) { - Creature* Sacrolash = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SACROLASH)); + Creature* Sacrolash = instance->GetCreature(DATA_SACROLASH); switch (step) { case 0: @@ -537,7 +537,7 @@ public: if (!SisterDeath) { - Unit* Temp = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_SACROLASH)); + Unit* Temp = instance->GetCreature(DATA_SACROLASH); if (Temp && Temp->isDead()) { Talk(YELL_SISTER_SACROLASH_DEAD); @@ -548,7 +548,7 @@ public: } if (!me->GetVictim()) { - Creature* sisiter = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SACROLASH)); + Creature* sisiter = instance->GetCreature(DATA_SACROLASH); if (sisiter && !sisiter->isDead() && sisiter->GetVictim()) { me->AddThreat(sisiter->GetVictim(), 0.0f); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp index 0a0f528ffdd..8f86452fc8f 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp @@ -155,7 +155,9 @@ public: void Reset() override { - SathGUID = instance->GetGuidData(DATA_SATHROVARR); + if (Creature* sath = instance->GetCreature(DATA_SATHROVARR)) + SathGUID = sath->GetGUID(); + instance->SetBossState(DATA_KALECGOS, NOT_STARTED); if (Creature* Sath = ObjectAccessor::GetCreature(*me, SathGUID)) @@ -474,7 +476,8 @@ public: void Reset() override { - SathGUID = instance->GetGuidData(DATA_SATHROVARR); + if (Creature* sath = instance->GetCreature(DATA_SATHROVARR)) + SathGUID = sath->GetGUID(); Initialize(); } @@ -624,7 +627,8 @@ public: { me->SetFullHealth();//dunno why it does not resets health at evade.. me->setActive(true); - KalecgosGUID = instance->GetGuidData(DATA_KALECGOS_DRAGON); + if (Creature* kalecgos = instance->GetCreature(DATA_KALECGOS_DRAGON)) + KalecgosGUID = kalecgos->GetGUID(); instance->SetBossState(DATA_KALECGOS, NOT_STARTED); if (!KalecGUID.IsEmpty()) { @@ -641,7 +645,7 @@ public: void EnterCombat(Unit* /*who*/) override { - if (Creature* Kalec = me->SummonCreature(NPC_KALEC, me->GetPositionX() + 10, me->GetPositionY() + 5, me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0)) + if (Creature* Kalec = me->SummonCreature(NPC_KALECGOS_HUMAN, me->GetPositionX() + 10, me->GetPositionY() + 5, me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0)) { KalecGUID = Kalec->GetGUID(); me->CombatStart(Kalec); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp index 146ebefceaf..8790e535e52 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp @@ -383,7 +383,7 @@ class go_orb_of_the_blue_flight : public GameObjectScript player->CastSpell(player, SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT, false); me->SetFaction(FACTION_NONE); - if (Creature* pKalec = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_KALECGOS_KJ))) + if (Creature* pKalec = instance->GetCreature(DATA_KALECGOS_KJ)) ENSURE_AI(boss_kalecgos_kj::boss_kalecgos_kjAI, pKalec->AI())->SetRingOfBlueFlames(); me->Refresh(); @@ -451,7 +451,7 @@ public: { Initialize(); - if (Creature* pKalecKJ = ObjectAccessor::GetCreature((*me), instance->GetGuidData(DATA_KALECGOS_KJ))) + if (Creature* pKalecKJ = instance->GetCreature(DATA_KALECGOS_KJ)) ENSURE_AI(boss_kalecgos_kj::boss_kalecgos_kjAI, pKalecKJ->AI())->ResetOrbs(); summons.DespawnAll(); } @@ -585,7 +585,7 @@ public: { Initialize(); - if (Creature* pKalec = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KALECGOS_KJ))) + if (Creature* pKalec = instance->GetCreature(DATA_KALECGOS_KJ)) pKalec->RemoveDynObject(SPELL_RING_OF_BLUE_FLAMES); me->SetCombatReach(12.0f); @@ -645,7 +645,7 @@ public: summons.DespawnAll(); // Reset the controller - if (Creature* pControl = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KILJAEDEN_CONTROLLER))) + if (Creature* pControl = instance->GetCreature(DATA_KILJAEDEN_CONTROLLER)) ENSURE_AI(npc_kiljaeden_controller::npc_kiljaeden_controllerAI, pControl->AI())->Reset(); } @@ -727,10 +727,10 @@ public: if (Speeches[speechCount].timer < SpeechTimer) { SpeechTimer = 0; - if (Creature* speechCreature = ObjectAccessor::GetCreature(*me, instance->GetGuidData(Speeches[speechCount].creature))) + if (Creature* speechCreature = instance->GetCreature(Speeches[speechCount].creature)) speechCreature->AI()->Talk(Speeches[speechCount].textid); if (speechCount == 12) - if (Creature* pAnveena = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ANVEENA))) + if (Creature* pAnveena = instance->GetCreature(DATA_ANVEENA)) pAnveena->CastSpell(me, SPELL_SACRIFICE_OF_ANVEENA, false); // ChangeTimers(true, 10000); // Kil should do an emote while screaming without attacking for 10 seconds if (speechCount == speechPhaseEnd) @@ -829,7 +829,7 @@ public: } break; case TIMER_ORBS_EMPOWER: //Phase 3 - if (Creature* pKalec = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KALECGOS_KJ))) + if (Creature* pKalec = instance->GetCreature(DATA_KALECGOS_KJ)) { switch (Phase) { @@ -955,7 +955,7 @@ public: void EnterCombat(Unit* who) override { instance->SetBossState(DATA_KILJAEDEN, IN_PROGRESS); - if (Creature* pControl = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KILJAEDEN_CONTROLLER))) + if (Creature* pControl = instance->GetCreature(DATA_KILJAEDEN_CONTROLLER)) pControl->AddThreat(who, 1.0f); me->InterruptNonMeleeSpells(true); @@ -963,7 +963,7 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* pControl = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KILJAEDEN_CONTROLLER))) + if (Creature* pControl = instance->GetCreature(DATA_KILJAEDEN_CONTROLLER)) ++(ENSURE_AI(npc_kiljaeden_controller::npc_kiljaeden_controllerAI, pControl->AI())->deceiverDeathCount); } diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index 100e8ad51bb..f07684174c8 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -182,7 +182,7 @@ public: void EnterEvadeMode(EvadeReason /*why*/) override { - if (Creature* muru = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MURU))) + if (Creature* muru = instance->GetCreature(DATA_MURU)) muru->AI()->EnterEvadeMode(); DoResetPortals(); @@ -194,7 +194,7 @@ public: { _JustDied(); - if (Creature* muru = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MURU))) + if (Creature* muru = instance->GetCreature(DATA_MURU)) muru->DisappearAndDie(); } @@ -468,7 +468,7 @@ public: void IsSummonedBy(Unit* /*summoner*/) override { - if (Creature* muru = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_MURU))) + if (Creature* muru = _instance->GetCreature(DATA_MURU)) muru->AI()->JustSummoned(me); } diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp index 0782ec8b5df..95b2eb92103 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp @@ -44,6 +44,24 @@ DoorData const doorData[] = { 0, 0, DOOR_TYPE_ROOM } // END }; +ObjectData const creatureData[] = +{ + { NPC_KALECGOS, DATA_KALECGOS_DRAGON }, + { NPC_KALECGOS_HUMAN, DATA_KALECGOS_HUMAN }, + { NPC_SATHROVARR, DATA_SATHROVARR }, + { NPC_BRUTALLUS, DATA_BRUTALLUS }, + { NPC_MADRIGOSA, DATA_MADRIGOSA }, + { NPC_FELMYST, DATA_FELMYST }, + { NPC_GRAND_WARLOCK_ALYTHESS, DATA_ALYTHESS }, + { NPC_LADY_SACROLASH, DATA_SACROLASH }, + { NPC_MURU, DATA_MURU }, + { NPC_KILJAEDEN, DATA_KILJAEDEN }, + { NPC_KILJAEDEN_CONTROLLER, DATA_KILJAEDEN_CONTROLLER }, + { NPC_ANVEENA, DATA_ANVEENA }, + { NPC_KALECGOS_KJ, DATA_KALECGOS_KJ }, + { 0, 0 } // END +}; + class instance_sunwell_plateau : public InstanceMapScript { public: @@ -56,9 +74,7 @@ class instance_sunwell_plateau : public InstanceMapScript SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); - - SpectralPlayers = 0; - SpectralRealmTimer = 5000; + LoadObjectData(creatureData, nullptr); } Player const* GetPlayerInMap() const @@ -80,118 +96,10 @@ class instance_sunwell_plateau : public InstanceMapScript return NULL; } - void OnCreatureCreate(Creature* creature) override - { - switch (creature->GetEntry()) - { - case NPC_KALECGOS: - KalecgosDragonGUID = creature->GetGUID(); - break; - case NPC_KALEC: - KalecgosHumanGUID = creature->GetGUID(); - break; - case NPC_SATHROVARR: - SathrovarrGUID = creature->GetGUID(); - break; - case NPC_BRUTALLUS: - BrutallusGUID = creature->GetGUID(); - break; - case NPC_MADRIGOSA: - MadrigosaGUID = creature->GetGUID(); - break; - case NPC_FELMYST: - FelmystGUID = creature->GetGUID(); - break; - case NPC_GRAND_WARLOCK_ALYTHESS: - AlythessGUID = creature->GetGUID(); - break; - case NPC_LADY_SACROLASH: - SacrolashGUID = creature->GetGUID(); - break; - case NPC_MURU: - MuruGUID = creature->GetGUID(); - break; - case NPC_KILJAEDEN: - KilJaedenGUID = creature->GetGUID(); - break; - case NPC_KILJAEDEN_CONTROLLER: - KilJaedenControllerGUID = creature->GetGUID(); - break; - case NPC_ANVEENA: - AnveenaGUID = creature->GetGUID(); - break; - case NPC_KALECGOS_KJ: - KalecgosKjGUID = creature->GetGUID(); - break; - default: - break; - } - } - - void OnGameObjectCreate(GameObject* go) override - { - switch (go->GetEntry()) - { - case GO_FORCE_FIELD: - case GO_BOSS_COLLISION_1: - case GO_BOSS_COLLISION_2: - case GO_FIRE_BARRIER: - case GO_MURUS_GATE_1: - case GO_MURUS_GATE_2: - AddDoor(go, true); - break; - default: - break; - } - } - - void OnGameObjectRemove(GameObject* go) override - { - switch (go->GetEntry()) - { - case GO_FIRE_BARRIER: - case GO_MURUS_GATE_1: - case GO_MURUS_GATE_2: - case GO_BOSS_COLLISION_1: - case GO_BOSS_COLLISION_2: - case GO_FORCE_FIELD: - AddDoor(go, false); - break; - default: - break; - } - } - ObjectGuid GetGuidData(uint32 id) const override { switch (id) { - case DATA_KALECGOS_DRAGON: - return KalecgosDragonGUID; - case DATA_KALECGOS_HUMAN: - return KalecgosHumanGUID; - case DATA_SATHROVARR: - return SathrovarrGUID; - case DATA_BRUTALLUS: - return BrutallusGUID; - case DATA_MADRIGOSA: - return MadrigosaGUID; - case DATA_FELMYST: - return FelmystGUID; - case DATA_ALYTHESS: - return AlythessGUID; - case DATA_SACROLASH: - return SacrolashGUID; - case DATA_MURU: - return MuruGUID; - case DATA_KILJAEDEN: - return KilJaedenGUID; - case DATA_KILJAEDEN_CONTROLLER: - return KilJaedenControllerGUID; - case DATA_ANVEENA: - return AnveenaGUID; - case DATA_KALECGOS_KJ: - return KalecgosKjGUID; case DATA_PLAYER_GUID: { Player const* target = GetPlayerInMap(); @@ -202,25 +110,6 @@ class instance_sunwell_plateau : public InstanceMapScript } return ObjectGuid::Empty; } - - protected: - ObjectGuid KalecgosDragonGUID; - ObjectGuid KalecgosHumanGUID; - ObjectGuid SathrovarrGUID; - ObjectGuid BrutallusGUID; - ObjectGuid MadrigosaGUID; - ObjectGuid FelmystGUID; - ObjectGuid AlythessGUID; - ObjectGuid SacrolashGUID; - ObjectGuid MuruGUID; - ObjectGuid KilJaedenGUID; - ObjectGuid KilJaedenControllerGUID; - ObjectGuid AnveenaGUID; - ObjectGuid KalecgosKjGUID; - uint32 SpectralPlayers; - - uint32 SpectralRealmTimer; - GuidVector SpectralRealmList; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h b/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h index 2e70fbe6922..90b8df36f33 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h @@ -60,7 +60,7 @@ enum SWPCreatureIds NPC_MURU = 25741, NPC_ENTROPIUS = 25840, NPC_KALECGOS = 24850, - NPC_KALEC = 24891, + NPC_KALECGOS_HUMAN = 24891, NPC_SATHROVARR = 24892, NPC_BRUTALLUS = 24882, NPC_MADRIGOSA = 24895, |