mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Scripts/Halls of Origination: modernized creature accessing via data type
This commit is contained in:
@@ -170,7 +170,7 @@ struct boss_anraphet : public BossAI
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
|
||||
Talk(ANRAPHET_SAY_DEATH);
|
||||
|
||||
if (Creature* brann = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BRANN_0_GUID)))
|
||||
if (Creature* brann = instance->GetCreature(DATA_BRANN_BRONZEBEARD))
|
||||
brann->AI()->DoAction(ACTION_ANRAPHET_DIED);
|
||||
|
||||
_JustDied();
|
||||
@@ -289,7 +289,7 @@ struct npc_alpha_beam : public ScriptedAI
|
||||
|
||||
void IsSummonedBy(WorldObject* /*summoner*/) override
|
||||
{
|
||||
if (Creature* anraphet = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_ANRAPHET_GUID)))
|
||||
if (Creature* anraphet = _instance->GetCreature(BOSS_ANRAPHET))
|
||||
anraphet->CastSpell(me, SPELL_ALPHA_BEAMS_BACK_CAST);
|
||||
}
|
||||
|
||||
@@ -330,22 +330,22 @@ struct npc_brann_bronzebeard_anraphet : public CreatureAI
|
||||
{
|
||||
switch (action)
|
||||
{
|
||||
case ACTION_ELEMENTAL_DIED:
|
||||
{
|
||||
uint32 dead = _instance->GetData(DATA_DEAD_ELEMENTALS);
|
||||
Talk(BRANN_1_ELEMENTAL_DEAD + dead - 1);
|
||||
if (dead == 4)
|
||||
case ACTION_ELEMENTAL_DIED:
|
||||
{
|
||||
_instance->DoCastSpellOnPlayers(SPELL_VAULT_OF_LIGHTS_CREDIT);
|
||||
if (Creature* anraphet = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_ANRAPHET_GUID)))
|
||||
anraphet->AI()->DoAction(ACTION_ANRAPHET_INTRO);
|
||||
uint32 dead = _instance->GetData(DATA_DEAD_ELEMENTALS);
|
||||
Talk(BRANN_1_ELEMENTAL_DEAD + dead - 1);
|
||||
if (dead == 4)
|
||||
{
|
||||
_instance->DoCastSpellOnPlayers(SPELL_VAULT_OF_LIGHTS_CREDIT);
|
||||
if (Creature* anraphet = _instance->GetCreature(BOSS_ANRAPHET))
|
||||
anraphet->AI()->DoAction(ACTION_ANRAPHET_INTRO);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ACTION_ANRAPHET_DIED:
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
events.ScheduleEvent(EVENT_BRANN_MOVE_INTRO, 1s);
|
||||
break;
|
||||
case ACTION_ANRAPHET_DIED:
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
events.ScheduleEvent(EVENT_BRANN_MOVE_INTRO, 1s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -38,8 +38,8 @@ struct go_hoo_the_makers_lift_controller : public GameObjectAI
|
||||
ClearGossipMenuFor(player);
|
||||
player->PlayerTalkClass->SendCloseGossip();
|
||||
|
||||
if (GameObject* elevator = _instance->GetGameObject(DATA_LIFT_OF_THE_MAKERS))
|
||||
elevator->SetGoState(GOState(GO_STATE_TRANSPORT_ACTIVE + gossipListId));
|
||||
if (GameObject* elevator = _instance->GetGameObject(DATA_LIFT_OF_THE_MAKERS))
|
||||
elevator->SetGoState(GOState(GO_STATE_TRANSPORT_ACTIVE + gossipListId));
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -44,16 +44,14 @@ enum HOOData
|
||||
BOSS_AIR_WARDEN,
|
||||
|
||||
// Temple Guardian Anhuur
|
||||
DATA_ANHUUR_GUID,
|
||||
DATA_ANHUUR_LEFT_BEACON,
|
||||
DATA_ANHUUR_RIGHT_BEACON,
|
||||
DATA_ANHUUR_BRIDGE,
|
||||
DATA_ANHUUR_DOOR,
|
||||
|
||||
// Anraphet
|
||||
DATA_BRANN_0_GUID,
|
||||
DATA_DEAD_ELEMENTALS,
|
||||
DATA_ANRAPHET_GUID,
|
||||
DATA_BRANN_BRONZEBEARD,
|
||||
|
||||
// Events
|
||||
DATA_LIFT_OF_THE_MAKERS
|
||||
|
||||
@@ -40,6 +40,15 @@ DoorData const doorData[] =
|
||||
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
|
||||
};
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
{
|
||||
{ NPC_TEMPLE_GUARDIAN_ANHUUR, BOSS_TEMPLE_GUARDIAN_ANHUUR },
|
||||
{ NPC_ANRAPHET, BOSS_ANRAPHET },
|
||||
{ NPC_EARTHRAGER_PTAH, BOSS_EARTHRAGER_PTAH },
|
||||
{ NPC_BRANN_BRONZEBEARD_0, DATA_BRANN_BRONZEBEARD },
|
||||
{ 0, 0 } //END
|
||||
};
|
||||
|
||||
ObjectData const gameObjectData[] =
|
||||
{
|
||||
{ GO_LIFT_OF_THE_MAKERS, DATA_LIFT_OF_THE_MAKERS },
|
||||
@@ -68,7 +77,7 @@ class instance_halls_of_origination : public InstanceMapScript
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(EncounterCount);
|
||||
LoadObjectData(nullptr, gameObjectData);
|
||||
LoadObjectData(creatureData, gameObjectData);
|
||||
LoadDoorData(doorData);
|
||||
LoadDungeonEncounterData(encounters);
|
||||
_deadElementals = 0;
|
||||
@@ -137,24 +146,6 @@ class instance_halls_of_origination : public InstanceMapScript
|
||||
}
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature* creature) override
|
||||
{
|
||||
InstanceScript::OnCreatureCreate(creature);
|
||||
|
||||
switch (creature->GetEntry())
|
||||
{
|
||||
case BOSS_TEMPLE_GUARDIAN_ANHUUR:
|
||||
TempleGuardianAnhuurGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_BRANN_BRONZEBEARD_0:
|
||||
BrannBronzebeardGUID = creature->GetGUID();
|
||||
break;
|
||||
case BOSS_ANRAPHET:
|
||||
AnraphetGUID = creature->GetGUID();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 data) const override
|
||||
{
|
||||
switch (data)
|
||||
@@ -180,12 +171,6 @@ class instance_halls_of_origination : public InstanceMapScript
|
||||
return AnhuurLeftBeaconGUID;
|
||||
case DATA_ANHUUR_RIGHT_BEACON:
|
||||
return AnhuurRightBeaconGUID;
|
||||
case DATA_ANHUUR_GUID:
|
||||
return TempleGuardianAnhuurGUID;
|
||||
case DATA_BRANN_0_GUID:
|
||||
return BrannBronzebeardGUID;
|
||||
case DATA_ANRAPHET_GUID:
|
||||
return AnraphetGUID;
|
||||
}
|
||||
|
||||
return InstanceScript::GetGuidData(type);
|
||||
@@ -221,7 +206,7 @@ class instance_halls_of_origination : public InstanceMapScript
|
||||
SetBossState(data, IN_PROGRESS); // Needs to be set to IN_PROGRESS or else the gameobjects state won't be updated
|
||||
SetBossState(data, DONE);
|
||||
IncreaseDeadElementals(1);
|
||||
if (Creature* brann = instance->GetCreature(BrannBronzebeardGUID))
|
||||
if (Creature* brann = GetCreature(DATA_BRANN_BRONZEBEARD))
|
||||
brann->AI()->DoAction(ACTION_ELEMENTAL_DIED);
|
||||
break;
|
||||
}
|
||||
@@ -234,13 +219,10 @@ class instance_halls_of_origination : public InstanceMapScript
|
||||
}
|
||||
|
||||
protected:
|
||||
ObjectGuid TempleGuardianAnhuurGUID;
|
||||
ObjectGuid AnhuursBridgeGUID;
|
||||
ObjectGuid AnhuursDoorGUID;
|
||||
ObjectGuid AnhuurRightBeaconGUID;
|
||||
ObjectGuid AnhuurLeftBeaconGUID;
|
||||
ObjectGuid BrannBronzebeardGUID;
|
||||
ObjectGuid AnraphetGUID;
|
||||
ObjectGuid AnraphetDoorGUID;
|
||||
ObjectGuid SunMirrorGUID;
|
||||
uint32 _deadElementals;
|
||||
|
||||
Reference in New Issue
Block a user