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

Public Member Functions

 go_flamesAI (GameObject *gameObject)
 
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 *)
 

Private Attributes

uint32 timer
 

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

go_flames::go_flamesAI::go_flamesAI ( GameObject gameObject)
inline
352 : GameObjectAI(gameObject),
353 timer { 0 }
354 { }
Definition: GameObjectAI.h:34
uint32 timer
Definition: go_scripts.cpp:378

Member Function Documentation

◆ UpdateAI()

void go_flames::go_flamesAI::UpdateAI ( uint32  diff)
inlineoverridevirtual

Reimplemented from GameObjectAI.

357 {
358 timer += diff;
359 if (timer > 3000)
360 {
361 timer = 0;
362 std::list<Player*> players;
365 Cell::VisitWorldObjects(me, searcher, 0.3f);
366
367 if (players.size() > 0)
368 {
369 std::list<Player*>::iterator itr = players.begin();
370 std::advance(itr, urand(0, players.size() - 1));
371 if (Creature* trigger = me->SummonTrigger((*itr)->GetPositionX(), (*itr)->GetPositionY(), (*itr)->GetPositionZ(), 0, 2000, true))
372 trigger->CastSpell(trigger, SPELL_FLAMES);
373 }
374 }
375 }
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:44
@ SPELL_FLAMES
Definition: go_scripts.cpp:342
GameObject *const me
Definition: GameObjectAI.h:36
Definition: Creature.h:46
Creature * SummonTrigger(float x, float y, float z, float ang, uint32 dur, bool setLevel=false, CreatureAI *(*GetAI)(Creature *)=nullptr)
Definition: Object.cpp:2367
static void VisitWorldObjects(WorldObject const *obj, T &visitor, float radius, bool dont_load=true)
Definition: CellImpl.h:193
Definition: GridNotifiers.h:522

References GameObjectAI::me, SPELL_FLAMES, WorldObject::SummonTrigger(), timer, urand(), and Cell::VisitWorldObjects().

Member Data Documentation

◆ timer

uint32 go_flames::go_flamesAI::timer
private

Referenced by UpdateAI().