aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Grids/Notifiers
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Grids/Notifiers')
-rw-r--r--src/server/game/Grids/Notifiers/GridNotifiers.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h
index 08165b08934..2f75b5d7447 100644
--- a/src/server/game/Grids/Notifiers/GridNotifiers.h
+++ b/src/server/game/Grids/Notifiers/GridNotifiers.h
@@ -887,6 +887,27 @@ namespace Trinity
uint64 i_hp;
};
+ class MostHPPercentMissingInRange
+ {
+ public:
+ MostHPPercentMissingInRange(Unit const* obj, float range, uint32 minHpPct, uint32 maxHpPct) : i_obj(obj), i_range(range), i_minHpPct(minHpPct), i_maxHpPct(maxHpPct), i_hpPct(101.f) { }
+
+ bool operator()(Unit* u)
+ {
+ if (u->IsAlive() && u->IsInCombat() && !i_obj->IsHostileTo(u) && i_obj->IsWithinDistInMap(u, i_range) && i_minHpPct <= u->GetHealthPct() && u->GetHealthPct() <= i_maxHpPct && u->GetHealthPct() < i_hpPct)
+ {
+ i_hpPct = u->GetHealthPct();
+ return true;
+ }
+ return false;
+ }
+
+ private:
+ Unit const* i_obj;
+ float i_range;
+ float i_minHpPct, i_maxHpPct, i_hpPct;
+ };
+
class FriendlyBelowHpPctEntryInRange
{
public: