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

Public Member Functions

 go_suppression_deviceAI (GameObject *go)
 
void InitializeAI () override
 
void UpdateAI (uint32 diff) override
 
void DoAction (int32 action) override
 
void Activate ()
 
void Deactivate ()
 
- 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 *)
 

Private Attributes

InstanceScript_instance
 
EventMap _events
 
bool _active
 

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_suppression_deviceAI()

go_suppression_device::go_suppression_deviceAI::go_suppression_deviceAI ( GameObject go)
inline
162: GameObjectAI(go), _instance(go->GetInstanceScript()), _active(true) { }
Definition: GameObjectAI.h:34
InstanceScript * GetInstanceScript() const
Definition: Object.cpp:1192
bool _active
Definition: boss_broodlord_lashlayer.cpp:242
InstanceScript * _instance
Definition: boss_broodlord_lashlayer.cpp:240

Member Function Documentation

◆ Activate()

void go_suppression_device::go_suppression_deviceAI::Activate ( )
inline
217 {
218 if (_active)
219 return;
220 _active = true;
221 if (me->GetGoState() == GO_STATE_ACTIVE)
226 me->Respawn();
227 }
@ GO_READY
Definition: GameObject.h:113
@ GO_STATE_READY
Definition: GameObjectData.h:691
@ GO_STATE_ACTIVE
Definition: GameObjectData.h:690
@ EVENT_SUPPRESSION_CAST
Definition: boss_broodlord_lashlayer.cpp:49
@ GO_FLAG_NOT_SELECTABLE
Definition: SharedDefines.h:1579
void ScheduleEvent(uint32 eventId, uint32 time, uint32 group=0, uint32 phase=0)
Definition: EventMap.cpp:56
GameObject *const me
Definition: GameObjectAI.h:36
void SetGoState(GOState state)
Definition: GameObject.cpp:2467
GOState GetGoState() const
Definition: GameObject.h:207
void SetLootState(LootState s, Unit *unit=nullptr)
Definition: GameObject.cpp:2432
void Respawn()
Definition: GameObject.cpp:1316
void RemoveGameObjectFlag(GameObjectFlags flags)
Definition: GameObject.h:221
EventMap _events
Definition: boss_broodlord_lashlayer.cpp:241

References _active, _events, EVENT_SUPPRESSION_CAST, GameObject::GetGoState(), GO_FLAG_NOT_SELECTABLE, GO_READY, GO_STATE_ACTIVE, GO_STATE_READY, GameObjectAI::me, GameObject::RemoveGameObjectFlag(), GameObject::Respawn(), EventMap::ScheduleEvent(), GameObject::SetGoState(), and GameObject::SetLootState().

Referenced by UpdateAI().

◆ Deactivate()

void go_suppression_device::go_suppression_deviceAI::Deactivate ( )
inline
230 {
231 if (!_active)
232 return;
233 _active = false;
237 }
void CancelEvent(uint32 eventId)
Definition: EventMap.cpp:190
void SetGameObjectFlag(GameObjectFlags flags)
Definition: GameObject.h:220

References _active, _events, EventMap::CancelEvent(), EVENT_SUPPRESSION_CAST, GO_FLAG_NOT_SELECTABLE, GO_STATE_ACTIVE, GameObjectAI::me, GameObject::SetGameObjectFlag(), and GameObject::SetGoState().

Referenced by DoAction(), and InitializeAI().

◆ DoAction()

void go_suppression_device::go_suppression_deviceAI::DoAction ( int32  action)
inlineoverridevirtual

Reimplemented from GameObjectAI.

199 {
200 if (action == ACTION_DEACTIVATE)
201 {
203 }
204 else if (action == ACTION_DISARMED)
205 {
206 Deactivate();
208
210 {
212 }
213 }
214 }
@ DONE
Definition: InstanceScript.h:59
@ DATA_BROODLORD_LASHLAYER
Definition: blackwing_lair.h:33
@ ACTION_DEACTIVATE
Definition: boss_broodlord_lashlayer.cpp:55
@ ACTION_DISARMED
Definition: boss_broodlord_lashlayer.cpp:56
@ EVENT_SUPPRESSION_RESET
Definition: boss_broodlord_lashlayer.cpp:50
EncounterState GetBossState(uint32 id) const
Definition: InstanceScript.h:230
void Deactivate()
Definition: boss_broodlord_lashlayer.cpp:229

References _events, _instance, ACTION_DEACTIVATE, ACTION_DISARMED, EventMap::CancelEvent(), DATA_BROODLORD_LASHLAYER, Deactivate(), DONE, EVENT_SUPPRESSION_CAST, EVENT_SUPPRESSION_RESET, InstanceScript::GetBossState(), and EventMap::ScheduleEvent().

◆ InitializeAI()

void go_suppression_device::go_suppression_deviceAI::InitializeAI ( )
inlineoverridevirtual

◆ UpdateAI()

void go_suppression_device::go_suppression_deviceAI::UpdateAI ( uint32  diff)
inlineoverridevirtual

Reimplemented from GameObjectAI.

176 {
177 _events.Update(diff);
178
179 while (uint32 eventId = _events.ExecuteEvent())
180 {
181 switch (eventId)
182 {
184 if (me->GetGoState() == GO_STATE_READY)
185 {
187 me->SendCustomAnim(0);
188 }
190 break;
192 Activate();
193 break;
194 }
195 }
196 }
std::uint32_t uint32
Definition: Define.h:108
@ SPELL_SUPPRESSION_AURA
Definition: boss_broodlord_lashlayer.cpp:38
uint32 ExecuteEvent()
Definition: EventMap.cpp:114
void Update(uint32 time)
Definition: EventMap.h:54
void SendCustomAnim(uint32 anim)
Definition: GameObject.cpp:2138
void CastSpell(Unit *target, uint32 spell)
Definition: GameObject.cpp:2073
void Activate()
Definition: boss_broodlord_lashlayer.cpp:216

References _events, Activate(), GameObject::CastSpell(), EVENT_SUPPRESSION_CAST, EVENT_SUPPRESSION_RESET, EventMap::ExecuteEvent(), GameObject::GetGoState(), GO_STATE_READY, GameObjectAI::me, EventMap::ScheduleEvent(), GameObject::SendCustomAnim(), SPELL_SUPPRESSION_AURA, and EventMap::Update().

Member Data Documentation

◆ _active

bool go_suppression_device::go_suppression_deviceAI::_active
private

Referenced by Activate(), and Deactivate().

◆ _events

EventMap go_suppression_device::go_suppression_deviceAI::_events
private

◆ _instance

InstanceScript* go_suppression_device::go_suppression_deviceAI::_instance
private

Referenced by DoAction(), and InitializeAI().