diff options
author | Ovahlord <dreadkiller@gmx.de> | 2022-09-23 10:17:24 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-09-23 19:06:12 +0200 |
commit | 7a73b8412a4232eccb1986ec220ec9031b1e0bff (patch) | |
tree | e8285071b8ac439e570274f4f0df35b046815664 /src | |
parent | 63275e7316ad6b3256640841fdd8210c62b2c120 (diff) |
Scripts/HoL: modernized instance script
Diffstat (limited to 'src')
3 files changed, 35 insertions, 61 deletions
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp index ab25ce6781a..f7ca6d04870 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp @@ -175,7 +175,7 @@ struct boss_bjarngrim : public ScriptedAI SetEquipmentSlots(false, EQUIP_SWORD, EQUIP_SHIELD, EQUIP_NO_CHANGE); - instance->SetBossState(DATA_BJARNGRIM, NOT_STARTED); + instance->SetBossState(DATA_GENERAL_BJARNGRIM, NOT_STARTED); } void EnterEvadeMode(EvadeReason why) override @@ -195,7 +195,7 @@ struct boss_bjarngrim : public ScriptedAI //must get both lieutenants here and make sure they are with him me->CallForHelp(30.0f); - instance->SetBossState(DATA_BJARNGRIM, IN_PROGRESS); + instance->SetBossState(DATA_GENERAL_BJARNGRIM, IN_PROGRESS); } void KilledUnit(Unit* /*victim*/) override @@ -207,7 +207,7 @@ struct boss_bjarngrim : public ScriptedAI { Talk(SAY_DEATH); - instance->SetBossState(DATA_BJARNGRIM, DONE); + instance->SetBossState(DATA_GENERAL_BJARNGRIM, DONE); } /// @todo remove when removal is done by the core @@ -400,7 +400,7 @@ struct npc_stormforged_lieutenant : public ScriptedAI void JustEngagedWith(Unit* who) override { - if (Creature* pBjarngrim = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BJARNGRIM))) + if (Creature* pBjarngrim = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_GENERAL_BJARNGRIM))) { if (pBjarngrim->IsAlive() && !pBjarngrim->GetVictim()) pBjarngrim->AI()->AttackStart(who); @@ -423,7 +423,7 @@ struct npc_stormforged_lieutenant : public ScriptedAI if (m_uiRenewSteel_Timer <= uiDiff) { - if (Creature* pBjarngrim = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BJARNGRIM))) + if (Creature* pBjarngrim = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_GENERAL_BJARNGRIM))) { if (pBjarngrim->IsAlive()) DoCast(pBjarngrim, SPELL_RENEW_STEEL_N); diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/halls_of_lightning.h b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/halls_of_lightning.h index e13ad0c7265..e3623bef90b 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/halls_of_lightning.h +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/halls_of_lightning.h @@ -27,19 +27,23 @@ uint32 const EncounterCount = 4; enum HOLDataTypes { - // Encounter States/Boss GUIDs - DATA_BJARNGRIM = 0, + // Bosses + DATA_GENERAL_BJARNGRIM = 0, DATA_VOLKHAN = 1, DATA_IONAR = 2, - DATA_LOKEN = 3 + DATA_LOKEN = 3, + + // Misc + DATA_LOKEN_GLOBE }; enum HOLCreaturesIds { - NPC_BJARNGRIM = 28586, - NPC_VOLKHAN = 28587, - NPC_IONAR = 28546, - NPC_LOKEN = 28923 + // Bosses + BOSS_GENERAL_BJARNGRIM = 28586, + BOSS_VOLKHAN = 28587, + BOSS_IONAR = 28546, + BOSS_LOKEN = 28923 }; enum HOLGameObjectIds diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp index 735d80cdbe1..8bda40c0aa3 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp @@ -30,6 +30,21 @@ DoorData const doorData[] = { 0, 0, DOOR_TYPE_ROOM } // END }; +ObjectData const creatureData[] = +{ + { BOSS_GENERAL_BJARNGRIM, DATA_GENERAL_BJARNGRIM }, + { BOSS_VOLKHAN, DATA_VOLKHAN }, + { BOSS_IONAR, DATA_IONAR }, + { BOSS_LOKEN, DATA_LOKEN }, + { 0, 0 } // END +}; + +ObjectData const gameObjectData[] = +{ + { GO_LOKEN_THRONE, DATA_LOKEN_GLOBE }, + { 0, 0 } // END +}; + class instance_halls_of_lightning : public InstanceMapScript { public: @@ -41,42 +56,18 @@ class instance_halls_of_lightning : public InstanceMapScript { SetHeaders(DataHeader); SetBossNumber(EncounterCount); + LoadObjectData(creatureData, gameObjectData); LoadDoorData(doorData); } void OnCreatureCreate(Creature* creature) override { - switch (creature->GetEntry()) - { - case NPC_BJARNGRIM: - GeneralBjarngrimGUID = creature->GetGUID(); - break; - case NPC_VOLKHAN: - VolkhanGUID = creature->GetGUID(); - break; - case NPC_IONAR: - IonarGUID = creature->GetGUID(); - break; - case NPC_LOKEN: - LokenGUID = creature->GetGUID(); - break; - default: - break; - } + InstanceScript::OnCreatureCreate(creature); } void OnGameObjectCreate(GameObject* go) override { InstanceScript::OnGameObjectCreate(go); - - switch (go->GetEntry()) - { - case GO_LOKEN_THRONE: - LokenGlobeGUID = go->GetGUID(); - break; - default: - break; - } } bool SetBossState(uint32 type, EncounterState state) override @@ -88,7 +79,7 @@ class instance_halls_of_lightning : public InstanceMapScript { case DATA_LOKEN: if (state == DONE) - if (GameObject* globe = instance->GetGameObject(LokenGlobeGUID)) + if (GameObject* globe = GetGameObject(DATA_LOKEN_GLOBE)) globe->SendCustomAnim(0); break; default: @@ -100,29 +91,8 @@ class instance_halls_of_lightning : public InstanceMapScript ObjectGuid GetGuidData(uint32 type) const override { - switch (type) - { - case DATA_BJARNGRIM: - return GeneralBjarngrimGUID; - case DATA_VOLKHAN: - return VolkhanGUID; - case DATA_IONAR: - return IonarGUID; - case DATA_LOKEN: - return LokenGUID; - default: - break; - } - return ObjectGuid::Empty; + return InstanceScript::GetGuidData(type); } - - protected: - ObjectGuid GeneralBjarngrimGUID; - ObjectGuid VolkhanGUID; - ObjectGuid IonarGUID; - ObjectGuid LokenGUID; - - ObjectGuid LokenGlobeGUID; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override |