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 InitializeAI ()
 
virtual void Reset ()
 
virtual void DoAction (int32)
 
virtual void SetGUID (ObjectGuid const &, int32)
 
virtual ObjectGuid GetGUID (int32) const
 
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 *)
 
virtual void SummonedCreatureEvade (Creature *)
 

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
1164 : GameObjectAI(go)
1165 {
1166 _locked = false;
1167 }
Definition GameObjectAI.h:33
bool _locked
Definition boss_algalon_the_observer.cpp:1170

References _locked.

Member Function Documentation

◆ GossipHello()

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

Reimplemented from GameObjectAI.

1173 {
1174 bool hasKey = true;
1175 if (LockEntry const* lock = sLockStore.LookupEntry(me->GetGOInfo()->goober.lockId))
1176 {
1177 hasKey = false;
1178 for (uint32 i = 0; i < MAX_LOCK_CASE; ++i)
1179 {
1180 if (!lock->Index[i])
1181 continue;
1182
1183 if (player->HasItemCount(lock->Index[i]))
1184 {
1185 hasKey = true;
1186 break;
1187 }
1188 }
1189 }
1190
1191 if (!hasKey)
1192 return false;
1193
1194 if (_locked)
1195 return false;
1196 _locked = true;
1197 // Start Algalon event
1199 events.ScheduleEvent(EVENT_DESPAWN_CONSOLE, 5s);
1201 brann->AI()->DoAction(ACTION_START_INTRO);
1202
1203 if (InstanceScript* instance = me->GetInstanceScript())
1204 {
1205 instance->SetData(DATA_ALGALON_SUMMON_STATE, 1);
1206 if (GameObject* sigil = instance->GetGameObject(DATA_SIGILDOOR_01))
1207 sigil->SetGoState(GO_STATE_ACTIVE);
1208
1209 if (GameObject* sigil = instance->GetGameObject(DATA_SIGILDOOR_02))
1210 sigil->SetGoState(GO_STATE_ACTIVE);
1211
1212 if (Map* map = player->GetMap())
1213 {
1214 if (InstanceMap* instanceMap = map->ToInstanceMap())
1215 {
1216 instanceMap->PermBindAllPlayers();
1217 }
1218 }
1219 }
1220
1221 return false;
1222 }
DBCStorage< LockEntry > sLockStore(LockEntryfmt)
#define MAX_LOCK_CASE
Definition DBCStructure.h:1341
std::uint32_t uint32
Definition Define.h:107
@ GO_STATE_ACTIVE
Definition GameObjectData.h:708
@ GO_FLAG_IN_USE
Definition SharedDefines.h:1607
Position const BrannIntroSpawnPos
Definition boss_algalon_the_observer.cpp:213
@ EVENT_DESPAWN_CONSOLE
Definition boss_algalon_the_observer.cpp:111
@ ACTION_START_INTRO
Definition boss_nightbane.cpp:57
events
Definition boss_sartura.cpp:43
Definition Creature.h:47
GameObject *const me
Definition GameObjectAI.h:35
Definition GameObject.h:125
void SetGameObjectFlag(GameObjectFlags flags)
Definition GameObject.h:224
GameObjectTemplate const * GetGOInfo() const
Definition GameObject.h:141
Definition Map.h:727
Definition InstanceScript.h:143
Definition Map.h:168
InstanceMap * ToInstanceMap()
Definition Map.h:390
bool HasItemCount(uint32 item, uint32 count=1, bool inBankAlso=false) const
Definition PlayerStorage.cpp:659
Map * GetMap() const
Definition Object.h:637
InstanceScript * GetInstanceScript() const
Definition Object.cpp:1247
TempSummon * SummonCreature(uint32 id, Position const &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
Definition Object.cpp:2460
struct GameObjectTemplate::@237::@248 goober
uint32 lockId
Definition GameObjectData.h:47
Definition DBCStructure.h:1344
@ DATA_SIGILDOOR_02
Definition ulduar.h:107
@ DATA_SIGILDOOR_01
Definition ulduar.h:106
@ DATA_ALGALON_SUMMON_STATE
Definition ulduar.h:103
@ NPC_BRANN_BRONZBEARD_ALG
Definition ulduar.h:243

References _locked, ACTION_START_INTRO, BrannIntroSpawnPos, DATA_ALGALON_SUMMON_STATE, DATA_SIGILDOOR_01, DATA_SIGILDOOR_02, EVENT_DESPAWN_CONSOLE, GameObject::GetGOInfo(), WorldObject::GetInstanceScript(), WorldObject::GetMap(), 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.

1225 {
1226 if (events.Empty())
1227 return;
1228
1229 events.Update(diff);
1230 switch (events.ExecuteEvent())
1231 {
1233 me->Delete();
1234 break;
1235 }
1236 }
void Delete()
Definition GameObject.cpp:1092

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

The documentation for this struct was generated from the following file: