refactor(Scripts/GruulsLair): Clean up instance script (#17347)

This commit is contained in:
Skjalf
2023-09-25 06:10:56 -03:00
committed by GitHub
parent cc60bc0c35
commit 13a9de1083

View File

@@ -26,6 +26,12 @@ DoorData const doorData[] =
{ 0, 0, DOOR_TYPE_ROOM } // END
};
ObjectData const creatureData[] =
{
{ NPC_MAULGAR, DATA_MAULGAR },
{ 0, 0 }
};
MinionData const minionData[] =
{
{ NPC_MAULGAR, DATA_MAULGAR },
@@ -46,64 +52,13 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(MAX_ENCOUNTER);
LoadObjectData(creatureData, nullptr);
LoadDoorData(doorData);
LoadMinionData(minionData);
_addsKilled = 0;
}
void OnCreatureCreate(Creature* creature) override
{
switch (creature->GetEntry())
{
case NPC_MAULGAR:
_maulgarGUID = creature->GetGUID();
[[fallthrough]];
case NPC_KROSH_FIREHAND:
case NPC_OLM_THE_SUMMONER:
case NPC_KIGGLER_THE_CRAZED:
case NPC_BLINDEYE_THE_SEER:
AddMinion(creature, true);
break;
}
}
void OnCreatureRemove(Creature* creature) override
{
switch (creature->GetEntry())
{
case NPC_MAULGAR:
case NPC_KROSH_FIREHAND:
case NPC_OLM_THE_SUMMONER:
case NPC_KIGGLER_THE_CRAZED:
case NPC_BLINDEYE_THE_SEER:
AddMinion(creature, false);
break;
}
}
void OnGameObjectCreate(GameObject* go) override
{
switch (go->GetEntry())
{
case GO_MAULGAR_DOOR:
case GO_GRUUL_DOOR:
AddDoor(go, true);
break;
}
}
void OnGameObjectRemove(GameObject* go) override
{
switch (go->GetEntry())
{
case GO_MAULGAR_DOOR:
case GO_GRUUL_DOOR:
AddDoor(go, false);
break;
}
}
bool SetBossState(uint32 id, EncounterState state) override
{
if (!InstanceScript::SetBossState(id, state))
@@ -117,8 +72,12 @@ public:
void SetData(uint32 type, uint32 /*id*/) override
{
if (type == DATA_ADDS_KILLED)
if (Creature* maulgar = instance->GetCreature(_maulgarGUID))
{
if (Creature* maulgar = GetCreature(DATA_MAULGAR))
{
maulgar->AI()->DoAction(++_addsKilled);
}
}
}
uint32 GetData(uint32 type) const override
@@ -130,7 +89,6 @@ public:
protected:
uint32 _addsKilled;
ObjectGuid _maulgarGUID;
};
InstanceScript* GetInstanceScript(InstanceMap* map) const override