Core/Spells: Spell casts should be interrupted if the target goes out of LoS.

Signed-off-by: Subv <s.v.h21@hotmail.com>
This commit is contained in:
Subv
2012-02-12 15:30:16 -05:00
parent ca2324b5ee
commit 5ea49613d2

View File

@@ -3481,6 +3481,14 @@ void Spell::update(uint32 difftime)
{
if (m_timer > 0)
{
// Cancel the cast if the target is not in line of sight
if (m_targets.GetUnitTarget() && !m_caster->IsWithinLOSInMap(m_targets.GetUnitTarget()))
{
SendCastResult(SPELL_FAILED_LINE_OF_SIGHT);
cancel();
return;
}
if (difftime >= (uint32)m_timer)
m_timer = 0;
else