diff options
-rw-r--r-- | src/server/scripts/Pet/pet_dk.cpp | 8 | ||||
-rw-r--r-- | src/server/scripts/Pet/pet_hunter.cpp | 16 |
2 files changed, 13 insertions, 11 deletions
diff --git a/src/server/scripts/Pet/pet_dk.cpp b/src/server/scripts/Pet/pet_dk.cpp index eaa850a1671..902b6c45327 100644 --- a/src/server/scripts/Pet/pet_dk.cpp +++ b/src/server/scripts/Pet/pet_dk.cpp @@ -56,12 +56,14 @@ class npc_pet_dk_ebon_gargoyle : public CreatureScript Trinity::AnyUnfriendlyUnitInObjectRangeCheck u_check(me, me, 30.0f); Trinity::UnitListSearcher<Trinity::AnyUnfriendlyUnitInObjectRangeCheck> searcher(me, targets, u_check); Cell::VisitAllObjects(me, searcher, 30.0f); - for (std::list<Unit*>::const_iterator iter = targets.begin(); iter != targets.end(); ++iter) - if ((*iter)->HasAura(SPELL_DK_SUMMON_GARGOYLE_1, ownerGuid)) + for (Unit* target : targets) + { + if (target->HasAura(SPELL_DK_SUMMON_GARGOYLE_1, ownerGuid)) { - me->Attack((*iter), false); + me->Attack(target, false); break; } + } } void JustDied(Unit* /*killer*/) override diff --git a/src/server/scripts/Pet/pet_hunter.cpp b/src/server/scripts/Pet/pet_hunter.cpp index 769867ecbf9..38bb2bb599c 100644 --- a/src/server/scripts/Pet/pet_hunter.cpp +++ b/src/server/scripts/Pet/pet_hunter.cpp @@ -78,20 +78,20 @@ class npc_pet_hunter_snake_trap : public CreatureScript Unit* summoner = me->ToTempSummon()->GetSummonerUnit(); std::vector<Unit*> targets; - for (std::pair<ObjectGuid const, PvPCombatReference*> const& pair : summoner->GetCombatManager().GetPvPCombatRefs()) + + auto addTargetIfValid = [this, &targets, summoner](CombatReference* ref) mutable { - Unit* enemy = pair.second->GetOther(summoner); + Unit* enemy = ref->GetOther(summoner); if (!enemy->HasBreakableByDamageCrowdControlAura() && me->CanCreatureAttack(enemy) && me->IsWithinDistInMap(enemy, me->GetAttackDistance(enemy))) targets.push_back(enemy); - } + }; + + for (std::pair<ObjectGuid const, PvPCombatReference*> const& pair : summoner->GetCombatManager().GetPvPCombatRefs()) + addTargetIfValid(pair.second); if (targets.empty()) for (std::pair<ObjectGuid const, CombatReference*> const& pair : summoner->GetCombatManager().GetPvECombatRefs()) - { - Unit* enemy = pair.second->GetOther(summoner); - if (!enemy->HasBreakableByDamageCrowdControlAura() && me->CanCreatureAttack(enemy) && me->IsWithinDistInMap(enemy, me->GetAttackDistance(enemy))) - targets.push_back(enemy); - } + addTargetIfValid(pair.second); for (Unit* target : targets) me->EngageWithTarget(target); |