aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShocker <shocker@freakz.ro>2011-06-04 13:18:38 +0300
committerShocker <shocker@freakz.ro>2011-06-04 13:18:38 +0300
commit599bbad6aac02b13f0c73b86cea563da34a74733 (patch)
treebd1533f2c59ec056e784dfee67d361c58768894c /src
parent665dbfd9aef9dd5620f2fe44844872c9d0f5ea8f (diff)
Core/Spells: Righteous Defense shouldn't affect targets that can't attack you
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Spells/SpellEffects.cpp7
1 files changed, 7 insertions, 0 deletions
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<uint32>(3, attackers.size());
for (uint32 i = 0; i < maxTargets; ++i)