diff options
author | n0n4m3 <none@none> | 2009-12-20 15:11:57 +0100 |
---|---|---|
committer | n0n4m3 <none@none> | 2009-12-20 15:11:57 +0100 |
commit | c412c437a3c3fa25dc70b40e3149b294591ed2ea (patch) | |
tree | 5a91049222e3bf393481a37bdce55df9bab03b6a /src/game/Spell.cpp | |
parent | 89a2d7e46ce47eaa49ce9678a9fe093311edbf30 (diff) |
Fixed spell Righteous Defense
--HG--
branch : trunk
Diffstat (limited to 'src/game/Spell.cpp')
-rw-r--r-- | src/game/Spell.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 11aaa192727..2916b955a01 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -4795,6 +4795,16 @@ SpellCastResult Spell::CheckCast(bool strict) if(!m_caster->FindNearestCreature(28653,5)) return SPELL_FAILED_OUT_OF_RANGE; } + else if (m_spellInfo->Id == 31789) // Righteous Defense + { + if (m_caster->GetTypeId() != TYPEID_PLAYER) + return SPELL_FAILED_DONT_REPORT; + + Unit* target = m_targets.getUnitTarget(); + if (!target || !target->IsFriendlyTo(m_caster) || target->getAttackers().empty()) + return SPELL_FAILED_BAD_TARGETS; + + } break; } case SPELL_EFFECT_LEARN_SPELL: @@ -5102,10 +5112,8 @@ SpellCastResult Spell::CheckCast(bool strict) if (!target || target->GetTypeId() != TYPEID_PLAYER) return SPELL_FAILED_BAD_TARGETS; - const Group* casterGroup = ((Player*)m_caster)->GetGroup(); - bool isInSameRaidOrGroup = casterGroup && casterGroup == ((Player*)target)->GetGroup(); - if (m_caster != target && !isInSameRaidOrGroup) - return SPELL_FAILED_BAD_TARGETS; + if (!((Player*)m_caster)->IsInSameRaidWith(((Player*)target))) + return SPELL_FAILED_TARGET_NOT_IN_RAID; break; } |