aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOvahlord <dreadkiller@gmx.de>2022-09-23 10:17:24 +0200
committerShauren <shauren.trinity@gmail.com>2022-09-23 19:06:12 +0200
commit7a73b8412a4232eccb1986ec220ec9031b1e0bff (patch)
treee8285071b8ac439e570274f4f0df35b046815664 /src
parent63275e7316ad6b3256640841fdd8210c62b2c120 (diff)
Scripts/HoL: modernized instance script
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp10
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/halls_of_lightning.h18
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp68
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