feat(Core/Scripts): implemented a guid map in InstanceScript, this wa… (#8781)

Co-authored-by: joschiwald <joschiwald.trinity@gmail.com>
This commit is contained in:
Skjalf
2021-11-02 15:55:50 -03:00
committed by GitHub
parent aeafd1f376
commit d35c6b6022
3 changed files with 146 additions and 12 deletions

View File

@@ -28,6 +28,12 @@ DoorData const doorData[] =
{ 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE }
};
ObjectData const creatureData[] =
{
{ NPC_KRIKTHIR_THE_GATEWATCHER, DATA_KRIKTHIR_THE_GATEWATCHER_EVENT },
{ NPC_HADRONOX, DATA_HADRONOX_EVENT }
};
class instance_azjol_nerub : public InstanceMapScript
{
public:
@@ -39,30 +45,27 @@ public:
{
SetBossNumber(MAX_ENCOUNTERS);
LoadDoorData(doorData);
LoadObjectData(creatureData, nullptr);
};
void OnCreatureCreate(Creature* creature) override
{
switch (creature->GetEntry())
{
case NPC_KRIKTHIR_THE_GATEWATCHER:
_krikthirGUID = creature->GetGUID();
break;
case NPC_HADRONOX:
_hadronoxGUID = creature->GetGUID();
break;
case NPC_SKITTERING_SWARMER:
case NPC_SKITTERING_INFECTIOR:
if (Creature* krikthir = instance->GetCreature(_krikthirGUID))
if (Creature* krikthir = GetCreature((DATA_KRIKTHIR_THE_GATEWATCHER_EVENT)))
krikthir->AI()->JustSummoned(creature);
break;
case NPC_ANUB_AR_CHAMPION:
case NPC_ANUB_AR_NECROMANCER:
case NPC_ANUB_AR_CRYPTFIEND:
if (Creature* hadronox = instance->GetCreature(_hadronoxGUID))
if (Creature* hadronox = GetCreature(DATA_HADRONOX_EVENT))
hadronox->AI()->JustSummoned(creature);
break;
}
InstanceScript::OnCreatureCreate(creature);
}
void OnGameObjectCreate(GameObject* go) override
@@ -123,10 +126,6 @@ public:
}
}
}
private:
ObjectGuid _krikthirGUID;
ObjectGuid _hadronoxGUID;
};
InstanceScript* GetInstanceScript(InstanceMap* map) const override