Add additional castchecks for SPELL_EFFECT_LEAP_BACK

--HG--
branch : trunk
This commit is contained in:
click
2010-05-21 10:24:51 +02:00
parent 9c1c67d4fd
commit ee507dd945
+14 -6
View File
@@ -5196,14 +5196,22 @@ SpellCastResult Spell::CheckCast(bool strict)
} }
case SPELL_EFFECT_LEAP_BACK: case SPELL_EFFECT_LEAP_BACK:
{ {
if (m_spellInfo->Id == 781) // Spell 781 (Disengage) requires player to be in combat
if (!m_caster->isInCombat()) if (m_caster->GetTypeId() == TYPEID_PLAYER && m_spellInfo->Id == 781 && !m_caster->isInCombat())
return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW; return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
if (m_caster->hasUnitState(UNIT_STAT_ROOT))
return SPELL_FAILED_ROOTED; Unit* target = m_targets.getUnitTarget();
if (m_caster == target && m_caster->hasUnitState(UNIT_STAT_ROOT))
{
if (m_caster->GetTypeID() == TYPEID_PLAYER)
return SPELL_FAILED_ROOTED;
else
return SPELL_FAILED_DONT_REPORT;
}
break; break;
} }
default:break; default:
break;
} }
} }