AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
Acore::MostHPMissingGroupInRange Class Reference

#include "GridNotifiers.h"

Public Member Functions

 MostHPMissingGroupInRange (Unit const *obj, float range, uint32 hp)
 
bool operator() (Unit *u)
 

Private Attributes

Unit const * i_obj
 
float i_range
 
uint32 i_hp
 

Detailed Description

Constructor & Destructor Documentation

◆ MostHPMissingGroupInRange()

Acore::MostHPMissingGroupInRange::MostHPMissingGroupInRange ( Unit const *  obj,
float  range,
uint32  hp 
)
inline
1514: i_obj(obj), i_range(range), i_hp(hp) {}
float i_range
Definition GridNotifiers.h:1556
Unit const * i_obj
Definition GridNotifiers.h:1555
uint32 i_hp
Definition GridNotifiers.h:1557

Member Function Documentation

◆ operator()()

bool Acore::MostHPMissingGroupInRange::operator() ( Unit u)
inline
1517 {
1518 if (i_obj == u)
1519 {
1520 return false;
1521 }
1522
1523 Player* player = nullptr;
1524 if (u->IsPlayer())
1525 {
1526 player = u->ToPlayer();
1527 }
1528
1529 else if (u->IsPet() && u->GetOwner())
1530 {
1531 player = u->GetOwner()->ToPlayer();
1532 }
1533
1534 if (!player)
1535 {
1536 return false;
1537 }
1538
1539 Group* group = player->GetGroup();
1540 if (!group || !group->IsMember(i_obj->IsPet() ? i_obj->GetOwnerGUID() : i_obj->GetGUID()))
1541 {
1542 return false;
1543 }
1544
1545 if (u->IsAlive() && !i_obj->IsHostileTo(u) && i_obj->IsWithinDistInMap(u, i_range) && u->GetMaxHealth() - u->GetHealth() >= i_hp)
1546 {
1547 i_hp = u->GetMaxHealth() - u->GetHealth();
1548 return true;
1549 }
1550
1551 return false;
1552 }
Definition Group.h:169
bool IsMember(ObjectGuid guid) const
Definition Group.cpp:2346
bool IsPlayer() const
Definition Object.h:200
Player * ToPlayer()
Definition Object.h:201
Definition Player.h:1084
Group * GetGroup()
Definition Player.h:2501
Unit * GetOwner() const
Definition Unit.cpp:7582
bool IsPet() const
Definition Unit.h:797
uint32 GetMaxHealth() const
Definition Unit.h:1104
bool IsAlive() const
Definition Unit.h:1783
uint32 GetHealth() const
Definition Unit.h:1103
ObjectGuid GetOwnerGUID() const
Definition Unit.h:713
bool IsHostileTo(Unit const *unit) const
Definition Unit.cpp:7193
bool IsWithinDistInMap(WorldObject const *obj, float dist2compare, bool is3D=true, bool incOwnRadius=true, bool incTargetRadius=true) const
Definition Object.cpp:1347

References Player::GetGroup(), Object::GetGUID(), Unit::GetHealth(), Unit::GetMaxHealth(), Unit::GetOwner(), Unit::GetOwnerGUID(), i_hp, i_obj, i_range, Unit::IsAlive(), Unit::IsHostileTo(), Group::IsMember(), Unit::IsPet(), Object::IsPlayer(), WorldObject::IsWithinDistInMap(), and Object::ToPlayer().

Member Data Documentation

◆ i_hp

uint32 Acore::MostHPMissingGroupInRange::i_hp
private

Referenced by operator()().

◆ i_obj

Unit const* Acore::MostHPMissingGroupInRange::i_obj
private

Referenced by operator()().

◆ i_range

float Acore::MostHPMissingGroupInRange::i_range
private

Referenced by operator()().


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