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
1104 : GameObjectAI(go)
1105 {
1106 _locked = false;
1107 }
Definition: GameObjectAI.h:34
bool _locked
Definition: boss_algalon_the_observer.cpp:1110

References _locked.

Member Function Documentation

◆ GossipHello()

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

Reimplemented from GameObjectAI.

1113 {
1114 bool hasKey = true;
1115 if (LockEntry const* lock = sLockStore.LookupEntry(me->GetGOInfo()->goober.lockId))
1116 {
1117 hasKey = false;
1118 for (uint32 i = 0; i < MAX_LOCK_CASE; ++i)
1119 {
1120 if (!lock->Index[i])
1121 continue;
1122
1123 if (player->HasItemCount(lock->Index[i]))
1124 {
1125 hasKey = true;
1126 break;
1127 }
1128 }
1129 }
1130
1131 if (!hasKey)
1132 return false;
1133
1134 if (_locked)
1135 return false;
1136 _locked = true;
1137 // Start Algalon event
1139 events.ScheduleEvent(EVENT_DESPAWN_CONSOLE, 5000ms);
1141 brann->AI()->DoAction(ACTION_START_INTRO);
1142
1143 if (InstanceScript* instance = me->GetInstanceScript())
1144 {
1145 instance->SetData(DATA_ALGALON_SUMMON_STATE, 1);
1146 if (GameObject* sigil = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_DOODAD_UL_SIGILDOOR_01)))
1147 sigil->SetGoState(GO_STATE_ACTIVE);
1148
1149 if (GameObject* sigil = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_DOODAD_UL_SIGILDOOR_02)))
1150 sigil->SetGoState(GO_STATE_ACTIVE);
1151 }
1152
1153 return false;
1154 }
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:79
Position const BrannIntroSpawnPos
Definition: boss_algalon_the_observer.cpp:196
@ EVENT_DESPAWN_CONSOLE
Definition: boss_algalon_the_observer.cpp:106
@ 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:1288
@ GO_FLAG_IN_USE
Definition: SharedDefines.h:1575
GameObject * GetGameObject(WorldObject const &u, ObjectGuid const guid)
Definition: ObjectAccessor.cpp:189
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::@215::@226 goober
uint32 lockId
Definition: GameObjectData.h:47
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:2318
InstanceScript * GetInstanceScript() const
Definition: Object.cpp:1192
bool HasItemCount(uint32 item, uint32 count=1, bool inBankAlso=false) const
Definition: PlayerStorage.cpp:686
Definition: InstanceScript.h:140
Definition: DBCStructure.h:1291

References _locked, ACTION_START_INTRO, BrannIntroSpawnPos, DATA_ALGALON_SUMMON_STATE, EVENT_DESPAWN_CONSOLE, ObjectAccessor::GetGameObject(), GameObject::GetGOInfo(), WorldObject::GetInstanceScript(), 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, and WorldObject::SummonCreature().

◆ UpdateAI()

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

Reimplemented from GameObjectAI.

1157 {
1158 if (events.Empty())
1159 return;
1160
1161 events.Update(diff);
1162 switch (events.ExecuteEvent())
1163 {
1165 me->Delete();
1166 break;
1167 }
1168 }
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