From e65ddccd1b82ed3e2b49a7032d7ed4b69ff2276b Mon Sep 17 00:00:00 2001 From: Keader Date: Sun, 27 Nov 2016 20:28:06 -0200 Subject: Core/AI: Added new method for search friendly targets with certain entry and hp pct below a value (#18310) (cherry picked from commit e7024f8a4c514eb4d8466383f8b5367ad7bab630) --- src/server/game/Grids/Notifiers/GridNotifiers.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/server/game/Grids/Notifiers') diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h index f2611edab14..4635f16042a 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiers.h +++ b/src/server/game/Grids/Notifiers/GridNotifiers.h @@ -804,6 +804,28 @@ namespace Trinity uint64 i_hp; }; + class FriendlyBelowHpPctEntryInRange + { + public: + FriendlyBelowHpPctEntryInRange(Unit const* obj, uint32 entry, float range, uint8 pct, bool excludeSelf) : i_obj(obj), i_entry(entry), i_range(range), i_pct(pct), i_excludeSelf(excludeSelf) { } + + bool operator()(Unit* u) + { + if (i_excludeSelf && i_obj->GetGUID() == u->GetGUID()) + return false; + if (u->GetEntry() == i_entry && u->IsAlive() && u->IsInCombat() && !i_obj->IsHostileTo(u) && i_obj->IsWithinDistInMap(u, i_range) && u->HealthBelowPct(i_pct)) + return true; + return false; + } + + private: + Unit const* i_obj; + uint32 i_entry; + float i_range; + uint8 i_pct; + bool i_excludeSelf; + }; + class FriendlyCCedInRange { public: -- cgit v1.2.3