TrinityCore
Loading...
Searching...
No Matches
CombatManager Class Reference

#include <CombatManager.h>

Public Types

using UnitFilter = bool(Unit const *otherUnit)
 

Public Member Functions

 CombatManager (Unit *owner)
 
 ~CombatManager ()
 
void Update (uint32 tdiff)
 
Unit * GetOwner () const
 
bool HasCombat () const
 
bool HasPvECombat () const
 
bool HasPvECombatWithPlayers () const
 
std::unordered_map< ObjectGuid, CombatReference * > const & GetPvECombatRefs () const
 
bool HasPvPCombat () const
 
std::unordered_map< ObjectGuid, PvPCombatReference * > const & GetPvPCombatRefs () const
 
Unit * GetAnyTarget () const
 
bool SetInCombatWith (Unit *who, bool addSecondUnitSuppressed=false)
 
bool IsInCombatWith (ObjectGuid const &who) const
 
bool IsInCombatWith (Unit const *who) const
 
void InheritCombatStatesFrom (Unit const *who)
 
void EndCombatBeyondRange (float range, bool includingPvP=false)
 
void SuppressPvPCombat (UnitFilter *unitFilter=nullptr)
 
void EndAllPvECombat (UnitFilter *unitFilter=nullptr)
 
void RevalidateCombat ()
 
void EndAllPvPCombat (UnitFilter *unitFilter=nullptr)
 
void EndAllCombat (UnitFilter *unitFilter=nullptr)
 
 CombatManager (CombatManager const &)=delete
 
CombatManager & operator= (CombatManager const &)=delete
 

Static Public Member Functions

static bool CanBeginCombat (Unit const *a, Unit const *b)
 

Private Member Functions

void PutReference (ObjectGuid const &guid, CombatReference *ref)
 
void PurgeReference (ObjectGuid const &guid, bool pvp)
 
bool UpdateOwnerCombatState () const
 

Static Private Member Functions

static void NotifyAICombat (Unit *me, Unit *other)
 

Private Attributes

Unit *const _owner
 
std::unordered_map< ObjectGuid, CombatReference * > _pveRefs
 
std::unordered_map< ObjectGuid, PvPCombatReference * > _pvpRefs
 

Friends

struct CombatReference
 
struct PvPCombatReference
 

Detailed Description

Definition at line 98 of file CombatManager.h.

Member Typedef Documentation

◆ UnitFilter

using CombatManager::UnitFilter = bool(Unit const* otherUnit)

Definition at line 124 of file CombatManager.h.

Constructor & Destructor Documentation

◆ CombatManager() [1/2]

CombatManager::CombatManager ( Unit *  owner)

Definition at line 129 of file CombatManager.cpp.

◆ ~CombatManager()

CombatManager::~CombatManager ( )

◆ CombatManager() [2/2]

CombatManager::CombatManager ( CombatManager const &  )
delete

Member Function Documentation

◆ CanBeginCombat()

◆ EndAllCombat()

void CombatManager::EndAllCombat ( UnitFilter *  unitFilter = nullptr)
inline

Definition at line 131 of file CombatManager.h.

Referenced by Unit::SetImmuneToAll().

◆ EndAllPvECombat()

void CombatManager::EndAllPvECombat ( UnitFilter *  unitFilter = nullptr)

◆ EndAllPvPCombat()

void CombatManager::EndAllPvPCombat ( UnitFilter *  unitFilter = nullptr)

Definition at line 358 of file CombatManager.cpp.

References _owner, and _pvpRefs.

Referenced by Unit::CombatStop().

◆ EndCombatBeyondRange()

void CombatManager::EndCombatBeyondRange ( float  range,
bool  includingPvP = false 
)

◆ GetAnyTarget()

Unit * CombatManager::GetAnyTarget ( ) const

◆ GetOwner()

Unit * CombatManager::GetOwner ( ) const
inline

Definition at line 107 of file CombatManager.h.

◆ GetPvECombatRefs()

◆ GetPvPCombatRefs()

◆ HasCombat()

bool CombatManager::HasCombat ( ) const
inline

◆ HasPvECombat()

bool CombatManager::HasPvECombat ( ) const

Definition at line 155 of file CombatManager.cpp.

References _owner, and _pveRefs.

Referenced by Unit::getAttackerForHelper().

◆ HasPvECombatWithPlayers()

bool CombatManager::HasPvECombatWithPlayers ( ) const

◆ HasPvPCombat()

bool CombatManager::HasPvPCombat ( ) const

Definition at line 172 of file CombatManager.cpp.

References _owner, and _pvpRefs.

Referenced by Unit::getAttackerForHelper(), and npc_pet_mage_mirror_image::UpdateVictim().

◆ InheritCombatStatesFrom()

◆ IsInCombatWith() [1/2]

bool CombatManager::IsInCombatWith ( ObjectGuid const &  who) const

◆ IsInCombatWith() [2/2]

bool CombatManager::IsInCombatWith ( Unit const *  who) const

Definition at line 241 of file CombatManager.cpp.

References BaseEntity::GetGUID(), and IsInCombatWith().

◆ NotifyAICombat()

void CombatManager::NotifyAICombat ( Unit *  me,
Unit *  other 
)
staticprivate

Definition at line 370 of file CombatManager.cpp.

References Unit::GetAI().

Referenced by CombatReference::Refresh(), and SetInCombatWith().

◆ operator=()

CombatManager & CombatManager::operator= ( CombatManager const &  )
delete

◆ PurgeReference()

void CombatManager::PurgeReference ( ObjectGuid const &  guid,
bool  pvp 
)
private

Definition at line 392 of file CombatManager.cpp.

References _pveRefs, and _pvpRefs.

Referenced by CombatReference::EndCombat().

◆ PutReference()

void CombatManager::PutReference ( ObjectGuid const &  guid,
CombatReference *  ref 
)
private

◆ RevalidateCombat()

void CombatManager::RevalidateCombat ( )

◆ SetInCombatWith()

◆ SuppressPvPCombat()

void CombatManager::SuppressPvPCombat ( UnitFilter *  unitFilter = nullptr)

Definition at line 302 of file CombatManager.cpp.

References _owner, _pvpRefs, Unit::GetAI(), and UpdateOwnerCombatState().

Referenced by Unit::CombatStop().

◆ Update()

void CombatManager::Update ( uint32  tdiff)

◆ UpdateOwnerCombatState()

Friends And Related Symbol Documentation

◆ CombatReference

friend struct CombatReference
friend

Definition at line 145 of file CombatManager.h.

Referenced by SetInCombatWith().

◆ PvPCombatReference

friend struct PvPCombatReference
friend

Definition at line 146 of file CombatManager.h.

Referenced by SetInCombatWith().

Member Data Documentation

◆ _owner

◆ _pveRefs

◆ _pvpRefs


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