AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
AssistDelayEvent Class Reference

#include "Creature.h"

Inheritance diagram for AssistDelayEvent:
BasicEvent

Public Member Functions

 AssistDelayEvent (ObjectGuid victim, Creature *owner)
 
bool Execute (uint64 e_time, uint32 p_time) override
 
void AddAssistant (ObjectGuid guid)
 
- Public Member Functions inherited from BasicEvent
 BasicEvent ()=default
 
virtual ~BasicEvent ()=default
 
virtual bool IsDeletable () const
 
virtual void Abort (uint64)
 
void ScheduleAbort ()
 

Private Member Functions

 AssistDelayEvent ()
 

Private Attributes

ObjectGuid m_victim
 
GuidList m_assistants
 
Creature * m_owner
 

Detailed Description

Constructor & Destructor Documentation

◆ AssistDelayEvent() [1/2]

AssistDelayEvent::AssistDelayEvent ( ObjectGuid  victim,
Creature *  owner 
)
inline
572: BasicEvent(), m_victim(victim), m_owner(owner) { }
ObjectGuid m_victim
Definition Creature.h:580
Creature * m_owner
Definition Creature.h:582
BasicEvent()=default

◆ AssistDelayEvent() [2/2]

AssistDelayEvent::AssistDelayEvent ( )
private

Member Function Documentation

◆ AddAssistant()

void AssistDelayEvent::AddAssistant ( ObjectGuid  guid)
inline
575{ m_assistants.push_back(guid); }
GuidList m_assistants
Definition Creature.h:581

References m_assistants.

Referenced by Creature::CallAssistance().

◆ Execute()

bool AssistDelayEvent::Execute ( uint64  e_time,
uint32  p_time 
)
overridevirtual

Reimplemented from BasicEvent.

218{
220 {
221 while (!m_assistants.empty())
222 {
224 m_assistants.pop_front();
225
226 if (assistant && assistant->CanAssistTo(m_owner, victim))
227 {
228 assistant->SetNoCallAssistance(true);
229 assistant->EngageWithTarget(victim);
230
231 // When nearby mobs aggro from another mob's initial call for assistance
232 // their leash timers become linked and attacking one will keep the rest from evading.
233 if (assistant->IsEngaged())
235 }
236 }
237 }
238 return true;
239}
Definition Creature.h:47
bool IsEngaged() const override
Definition Creature.cpp:2963
std::shared_ptr< time_t > const & GetLastLeashExtensionTimePtr() const
Definition Creature.cpp:3764
bool CanAssistTo(Unit const *u, Unit const *enemy, bool checkfaction=true) const
Definition Creature.cpp:2555
void SetLastLeashExtensionTimePtr(std::shared_ptr< time_t > const &timer)
Definition Creature.cpp:3771
void SetNoCallAssistance(bool val)
Definition Creature.h:273
Definition Unit.h:667
void EngageWithTarget(Unit *who)
Definition Unit.cpp:7306
Unit * GetUnit(WorldObject const &, ObjectGuid const &guid)
Definition ObjectAccessor.cpp:223
Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
Definition ObjectAccessor.cpp:234

References Creature::CanAssistTo(), Unit::EngageWithTarget(), ObjectAccessor::GetCreature(), Creature::GetLastLeashExtensionTimePtr(), ObjectAccessor::GetUnit(), Creature::IsEngaged(), m_assistants, m_owner, m_victim, Creature::SetLastLeashExtensionTimePtr(), and Creature::SetNoCallAssistance().

Member Data Documentation

◆ m_assistants

GuidList AssistDelayEvent::m_assistants
private

Referenced by AddAssistant(), and Execute().

◆ m_owner

Creature* AssistDelayEvent::m_owner
private

Referenced by Execute().

◆ m_victim

ObjectGuid AssistDelayEvent::m_victim
private

Referenced by Execute().


The documentation for this class was generated from the following files: