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 Execute (uint64, uint32)
 
virtual bool IsDeletable () const
 
virtual void Abort (uint64)
 
void ScheduleAbort ()
 

Private Member Functions

 AssistDelayEvent ()
 

Private Attributes

ObjectGuid m_victim
 
GuidList m_assistants
 
Creaturem_owner
 

Detailed Description

Constructor & Destructor Documentation

◆ AssistDelayEvent() [1/2]

AssistDelayEvent::AssistDelayEvent ( ObjectGuid  victim,
Creature owner 
)
inline
494: BasicEvent(), m_victim(victim), m_owner(owner) { }
BasicEvent()=default
ObjectGuid m_victim
Definition: Creature.h:502
Creature * m_owner
Definition: Creature.h:504

◆ AssistDelayEvent() [2/2]

AssistDelayEvent::AssistDelayEvent ( )
private

Member Function Documentation

◆ AddAssistant()

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

References m_assistants.

Referenced by Creature::CallAssistance().

◆ Execute()

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

Reimplemented from BasicEvent.

168{
170 {
171 // Initialize last damage timer if it doesn't exist
173
174 while (!m_assistants.empty())
175 {
177 m_assistants.pop_front();
178
179 if (assistant && assistant->CanAssistTo(m_owner, victim))
180 {
181 assistant->SetNoCallAssistance(true);
182 assistant->CombatStart(victim);
183 if (assistant->IsAIEnabled)
184 assistant->AI()->AttackStart(victim);
185
187 }
188 }
189 }
190 return true;
191}
#define MAX_AGGRO_RESET_TIME
Definition: CreatureData.h:32
Unit * GetUnit(WorldObject const &, ObjectGuid const guid)
Definition: ObjectAccessor.cpp:204
Creature * GetCreature(WorldObject const &u, ObjectGuid const guid)
Definition: ObjectAccessor.cpp:215
Seconds GetGameTime()
Definition: GameTime.cpp:38
virtual void AttackStart(Unit *)
Definition: UnitAI.cpp:28
Definition: Creature.h:46
void SetLastDamagedTime(time_t val)
Definition: Creature.cpp:3583
void SetLastDamagedTimePtr(std::shared_ptr< time_t > const &val)
Definition: Creature.cpp:3596
bool CanAssistTo(Unit const *u, Unit const *enemy, bool checkfaction=true) const
Definition: Creature.cpp:2415
std::shared_ptr< time_t > const & GetLastDamagedTimePtr() const
Definition: Creature.cpp:3578
void SetNoCallAssistance(bool val)
Definition: Creature.h:259
CreatureAI * AI() const
Definition: Creature.h:135
Definition: Unit.h:1290
void CombatStart(Unit *target, bool initialAggro=true)
Definition: Unit.cpp:13536
bool IsAIEnabled
Definition: Unit.h:2350

References Creature::AI(), UnitAI::AttackStart(), Creature::CanAssistTo(), Unit::CombatStart(), ObjectAccessor::GetCreature(), GameTime::GetGameTime(), Creature::GetLastDamagedTimePtr(), ObjectAccessor::GetUnit(), Unit::IsAIEnabled, m_assistants, m_owner, m_victim, MAX_AGGRO_RESET_TIME, Creature::SetLastDamagedTime(), Creature::SetLastDamagedTimePtr(), 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().