From 599bbad6aac02b13f0c73b86cea563da34a74733 Mon Sep 17 00:00:00 2001 From: Shocker Date: Sat, 4 Jun 2011 13:18:38 +0300 Subject: Core/Spells: Righteous Defense shouldn't affect targets that can't attack you --- src/server/game/Spells/SpellEffects.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src') diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index e5846e21a1f..f0cca173e4b 100755 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -1381,6 +1381,13 @@ void Spell::EffectDummy(SpellEffIndex effIndex) // not empty (checked), copy Unit::AttackerSet attackers = unitTarget->getAttackers(); + // remove invalid attackers + for (Unit::AttackerSet::iterator aItr = attackers.begin(); aItr != attackers.end(); ) + if (!(*aItr)->canAttack(m_caster)) + attackers.erase(aItr++); + else + ++aItr; + // selected from list 3 uint32 maxTargets = std::min(3, attackers.size()); for (uint32 i = 0; i < maxTargets; ++i) -- cgit v1.2.3