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

Public Member Functions

 go_blood_drenched_doorAI (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, 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
 
Creaturemirkblood
 
Playeropener
 

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

go_blood_drenched_door::go_blood_drenched_doorAI::go_blood_drenched_doorAI ( GameObject go)
inline
315: GameObjectAI(go) {}
Definition GameObjectAI.h:33

Member Function Documentation

◆ GossipHello()

bool go_blood_drenched_door::go_blood_drenched_doorAI::GossipHello ( Player player,
bool   
)
inlineoverridevirtual

Reimplemented from GameObjectAI.

322 {
323 events.Reset();
324
325 if (InstanceScript* instance = player->GetInstanceScript())
326 {
327 if (instance->GetBossState(DATA_MIRKBLOOD) != DONE)
328 {
329 opener = player;
330 mirkblood = instance->GetCreature(DATA_MIRKBLOOD);
331
332 events.ScheduleEvent(EVENT_SAY, 1s);
333 events.ScheduleEvent(EVENT_FLAG, 5s);
334 }
335 }
336
338
339 return true;
340 }
@ DONE
Definition InstanceScript.h:61
@ GO_FLAG_NOT_SELECTABLE
Definition SharedDefines.h:1618
events
Definition boss_sartura.cpp:43
@ EVENT_FLAG
Definition boss_tenris_mirkblood.cpp:71
@ EVENT_SAY
Definition boss_tenris_mirkblood.cpp:70
GameObject *const me
Definition GameObjectAI.h:35
void SetGameObjectFlag(GameObjectFlags flags)
Definition GameObject.h:217
Definition InstanceScript.h:143
InstanceScript * GetInstanceScript() const
Definition Object.cpp:1197
@ DATA_MIRKBLOOD
Definition karazhan.h:78
Creature * mirkblood
Definition boss_tenris_mirkblood.cpp:318
Player * opener
Definition boss_tenris_mirkblood.cpp:319

References DATA_MIRKBLOOD, DONE, EVENT_FLAG, EVENT_SAY, WorldObject::GetInstanceScript(), GO_FLAG_NOT_SELECTABLE, GameObjectAI::me, mirkblood, opener, and GameObject::SetGameObjectFlag().

◆ UpdateAI()

void go_blood_drenched_door::go_blood_drenched_doorAI::UpdateAI ( uint32  diff)
inlineoverridevirtual

Reimplemented from GameObjectAI.

343 {
344 if (events.Empty())
345 return;
346
347 events.Update(diff);
348 switch (events.ExecuteEvent())
349 {
350 case EVENT_SAY:
351 if (!mirkblood || !mirkblood->IsAlive())
352 return;
354 break;
355 case EVENT_FLAG:
356 if (mirkblood)
357 mirkblood->SetImmuneToPC(false);
358 me->Delete();
359 break;
360 }
361 }
@ SAY_AGGRO
Definition boss_tenris_mirkblood.cpp:33
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr, Milliseconds delay=0s)
Causes the creature to talk/say the text assigned to their entry in the creature_text database table.
Definition CreatureAI.cpp:53
CreatureAI * AI() const
Definition Creature.h:141
void Delete()
Definition GameObject.cpp:978
bool IsAlive() const
Definition Unit.h:1710
void SetImmuneToPC(bool apply, bool keepCombat=false)
Definition Unit.cpp:13702

References Creature::AI(), GameObject::Delete(), EVENT_FLAG, EVENT_SAY, Unit::IsAlive(), GameObjectAI::me, mirkblood, opener, SAY_AGGRO, Unit::SetImmuneToPC(), and CreatureAI::Talk().

Member Data Documentation

◆ events

EventMap go_blood_drenched_door::go_blood_drenched_doorAI::events

◆ mirkblood

Creature* go_blood_drenched_door::go_blood_drenched_doorAI::mirkblood

Referenced by GossipHello(), and UpdateAI().

◆ opener

Player* go_blood_drenched_door::go_blood_drenched_doorAI::opener

Referenced by GossipHello(), and UpdateAI().


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