AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
go_celestial_planetarium_access::go_celestial_planetarium_accessAI Struct Reference
Inheritance diagram for go_celestial_planetarium_access::go_celestial_planetarium_accessAI:
GameObjectAI

Public Member Functions

 go_celestial_planetarium_accessAI (GameObject *go)
 
bool GossipHello (Player *player, bool) override
 
void UpdateAI (uint32 diff) override
 
- Public Member Functions inherited from GameObjectAI
 GameObjectAI (GameObject *go)
 
virtual ~GameObjectAI ()
 
virtual void UpdateAI (uint32)
 
virtual void InitializeAI ()
 
virtual void Reset ()
 
virtual void DoAction (int32)
 
virtual void SetGUID (ObjectGuid, int32)
 
virtual ObjectGuid GetGUID (int32) const
 
virtual bool GossipHello (Player *, bool)
 
virtual bool GossipSelect (Player *, uint32, uint32)
 
virtual bool GossipSelectCode (Player *, uint32, uint32, char const *)
 
virtual bool QuestAccept (Player *, Quest const *)
 
virtual bool QuestReward (Player *, Quest const *, uint32)
 
virtual uint32 GetDialogStatus (Player *)
 
virtual void Destroyed (Player *, uint32)
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void OnGameEvent (bool, uint16)
 
virtual void OnStateChanged (uint32, Unit *)
 
virtual void EventInform (uint32)
 
virtual void SpellHit (Unit *, SpellInfo const *)
 
virtual bool CanBeSeen (Player const *)
 
virtual void JustSummoned (Creature *)
 
virtual void SummonedCreatureDespawn (Creature *)
 
virtual void SummonedCreatureDies (Creature *, Unit *)
 

Public Attributes

EventMap events
 
bool _locked
 

Additional Inherited Members

- Static Public Member Functions inherited from GameObjectAI
static int32 Permissible (GameObject const *go)
 
- Protected Attributes inherited from GameObjectAI
GameObject *const me
 

Detailed Description

Constructor & Destructor Documentation

◆ go_celestial_planetarium_accessAI()

go_celestial_planetarium_access::go_celestial_planetarium_accessAI::go_celestial_planetarium_accessAI ( GameObject go)
inline
1115 : GameObjectAI(go)
1116 {
1117 _locked = false;
1118 }
Definition: GameObjectAI.h:34
bool _locked
Definition: boss_algalon_the_observer.cpp:1121

References _locked.

Member Function Documentation

◆ GossipHello()

bool go_celestial_planetarium_access::go_celestial_planetarium_accessAI::GossipHello ( Player player,
bool   
)
inlineoverridevirtual

Reimplemented from GameObjectAI.

1124 {
1125 bool hasKey = true;
1126 if (LockEntry const* lock = sLockStore.LookupEntry(me->GetGOInfo()->goober.lockId))
1127 {
1128 hasKey = false;
1129 for (uint32 i = 0; i < MAX_LOCK_CASE; ++i)
1130 {
1131 if (!lock->Index[i])
1132 continue;
1133
1134 if (player->HasItemCount(lock->Index[i]))
1135 {
1136 hasKey = true;
1137 break;
1138 }
1139 }
1140 }
1141
1142 if (!hasKey)
1143 return false;
1144
1145 if (_locked)
1146 return false;
1147 _locked = true;
1148 // Start Algalon event
1150 events.ScheduleEvent(EVENT_DESPAWN_CONSOLE, 5000ms);
1152 brann->AI()->DoAction(ACTION_START_INTRO);
1153
1154 if (InstanceScript* instance = me->GetInstanceScript())
1155 {
1156 instance->SetData(DATA_ALGALON_SUMMON_STATE, 1);
1157 if (GameObject* sigil = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_DOODAD_UL_SIGILDOOR_01)))
1158 sigil->SetGoState(GO_STATE_ACTIVE);
1159
1160 if (GameObject* sigil = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_DOODAD_UL_SIGILDOOR_02)))
1161 sigil->SetGoState(GO_STATE_ACTIVE);
1162
1163 if (Map* map = player->GetMap())
1164 {
1165 if (InstanceMap* instanceMap = map->ToInstanceMap())
1166 {
1167 instanceMap->PermBindAllPlayers();
1168 }
1169 }
1170 }
1171
1172 return false;
1173 }
std::uint32_t uint32
Definition: Define.h:108
DBCStorage< LockEntry > sLockStore(LockEntryfmt)
@ GO_STATE_ACTIVE
Definition: GameObjectData.h:690
events
Definition: boss_sartura.cpp:43
@ ACTION_START_INTRO
Definition: boss_algalon_the_observer.cpp:82
Position const BrannIntroSpawnPos
Definition: boss_algalon_the_observer.cpp:199
@ EVENT_DESPAWN_CONSOLE
Definition: boss_algalon_the_observer.cpp:109
@ DATA_ALGALON_SUMMON_STATE
Definition: ulduar.h:93
@ GO_DOODAD_UL_SIGILDOOR_01
Definition: ulduar.h:245
@ GO_DOODAD_UL_SIGILDOOR_02
Definition: ulduar.h:246
@ NPC_BRANN_BRONZBEARD_ALG
Definition: ulduar.h:163
#define MAX_LOCK_CASE
Definition: DBCStructure.h:1303
@ GO_FLAG_IN_USE
Definition: SharedDefines.h:1603
GameObject * GetGameObject(WorldObject const &u, ObjectGuid const guid)
Definition: ObjectAccessor.cpp:187
GameObject *const me
Definition: GameObjectAI.h:36
Definition: Creature.h:46
Definition: GameObject.h:122
void SetGameObjectFlag(GameObjectFlags flags)
Definition: GameObject.h:220
GameObjectTemplate const * GetGOInfo() const
Definition: GameObject.h:138
struct GameObjectTemplate::@223::@234 goober
uint32 lockId
Definition: GameObjectData.h:47
Map * GetMap() const
Definition: Object.h:517
TempSummon * SummonCreature(uint32 id, const Position &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
Definition: Object.cpp:2343
InstanceScript * GetInstanceScript() const
Definition: Object.cpp:1192
bool HasItemCount(uint32 item, uint32 count=1, bool inBankAlso=false) const
Definition: PlayerStorage.cpp:683
Definition: InstanceScript.h:141
Definition: Map.h:313
InstanceMap * ToInstanceMap()
Definition: Map.h:545
Definition: Map.h:818
Definition: DBCStructure.h:1306

References _locked, ACTION_START_INTRO, BrannIntroSpawnPos, DATA_ALGALON_SUMMON_STATE, EVENT_DESPAWN_CONSOLE, ObjectAccessor::GetGameObject(), GameObject::GetGOInfo(), WorldObject::GetInstanceScript(), WorldObject::GetMap(), GO_DOODAD_UL_SIGILDOOR_01, GO_DOODAD_UL_SIGILDOOR_02, GO_FLAG_IN_USE, GO_STATE_ACTIVE, GameObjectTemplate::goober, Player::HasItemCount(), GameObjectTemplate::lockId, MAX_LOCK_CASE, GameObjectAI::me, NPC_BRANN_BRONZBEARD_ALG, GameObject::SetGameObjectFlag(), sLockStore, WorldObject::SummonCreature(), and Map::ToInstanceMap().

◆ UpdateAI()

void go_celestial_planetarium_access::go_celestial_planetarium_accessAI::UpdateAI ( uint32  diff)
inlineoverridevirtual

Reimplemented from GameObjectAI.

1176 {
1177 if (events.Empty())
1178 return;
1179
1180 events.Update(diff);
1181 switch (events.ExecuteEvent())
1182 {
1184 me->Delete();
1185 break;
1186 }
1187 }
void Delete()
Definition: GameObject.cpp:976

References GameObject::Delete(), EVENT_DESPAWN_CONSOLE, and GameObjectAI::me.

Member Data Documentation

◆ _locked

bool go_celestial_planetarium_access::go_celestial_planetarium_accessAI::_locked

◆ events

EventMap go_celestial_planetarium_access::go_celestial_planetarium_accessAI::events