diff options
| author | Giacomo Pozzoni <giacomopoz@gmail.com> | 2020-08-25 14:14:06 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2022-02-04 00:27:13 +0100 |
| commit | 902ed74c2adaf2dadcd38f1fb96963f7ec46df07 (patch) | |
| tree | fd0cd09378c62d25c43d09aba97e37471b7cc583 /src/server/game/Grids/Notifiers | |
| parent | 71cbe9f3185432dd60814452f2eaf98df0ed985c (diff) | |
Core/SAI: Implement SMART_TARGET_ACTION_INVOKER in SMART_EVENT_FRIENDLY_HEALTH_PCT (#25318)
* Core/SAI: Implement SMART_TARGET_ACTION_INVOKER in SMART_EVENT_FRIENDLY_HEALTH_PCT
* Require radius (5th parameter) to be set
(cherry picked from commit cbed1039c47f0e3487cea555bb8552a4e6445f5a)
Diffstat (limited to 'src/server/game/Grids/Notifiers')
| -rw-r--r-- | src/server/game/Grids/Notifiers/GridNotifiers.h | 21 |
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: |
