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 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
 
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
319: 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.

326 {
327 events.Reset();
328
329 if (InstanceScript* instance = player->GetInstanceScript())
330 {
331 if (instance->GetBossState(DATA_MIRKBLOOD) != DONE)
332 {
333 opener = player;
334 mirkblood = instance->GetCreature(DATA_MIRKBLOOD);
335
336 events.ScheduleEvent(EVENT_SAY, 1s);
337 events.ScheduleEvent(EVENT_FLAG, 5s);
338 }
339 }
340
342
343 return true;
344 }
@ DONE
Definition InstanceScript.h:61
@ GO_FLAG_NOT_SELECTABLE
Definition SharedDefines.h:1613
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:1238
@ DATA_MIRKBLOOD
Definition karazhan.h:78
Creature * mirkblood
Definition boss_tenris_mirkblood.cpp:322
Player * opener
Definition boss_tenris_mirkblood.cpp:323

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.

347 {
348 if (events.Empty())
349 return;
350
351 events.Update(diff);
352 switch (events.ExecuteEvent())
353 {
354 case EVENT_SAY:
355 if (!mirkblood || !mirkblood->IsAlive())
356 return;
358 break;
359 case EVENT_FLAG:
360 if (mirkblood)
361 mirkblood->SetImmuneToPC(false);
362 me->Delete();
363 break;
364 }
365 }
@ SAY_AGGRO
Definition boss_tenris_mirkblood.cpp:33
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr, Milliseconds delay=0ms)
Causes the creature to talk/say the text assigned to their entry in the creature_text database table.
Definition CreatureAI.cpp:67
CreatureAI * AI() const
Definition Creature.h:143
void Delete()
Definition GameObject.cpp:973
bool IsAlive() const
Definition Unit.h:1793
void SetImmuneToPC(bool apply, bool keepCombat=false)
Definition Unit.cpp:10597

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: