Core/Spells: Fixed spell effect on caster not being processed instantly for spells that have travel time and hit both caster and another unit

This commit is contained in:
Shauren
2016-06-28 17:38:19 +02:00
parent 68473ccba2
commit b3d814ee50

View File

@@ -6824,8 +6824,8 @@ bool SpellEvent::Execute(uint64 e_time, uint32 p_time)
return true; // spell is deletable, finish event
}
// event will be re-added automatically at the end of routine)
} break;
break;
}
case SPELL_STATE_DELAYED:
{
// first, check, if we have just started
@@ -6875,17 +6875,21 @@ bool SpellEvent::Execute(uint64 e_time, uint32 p_time)
{
// delaying had just started, record the moment
m_Spell->SetDelayStart(e_time);
// handle effects on caster if the spell has travel time but also affects the caster in some way
uint64 n_offset = m_Spell->handle_delayed(0);
ASSERT(n_offset == m_Spell->GetDelayMoment());
// re-plan the event for the delay moment
m_Spell->GetCaster()->m_Events.AddEvent(this, e_time + m_Spell->GetDelayMoment(), false);
return false; // event not complete
}
} break;
break;
}
default:
{
// all other states
// event will be re-added automatically at the end of routine)
} break;
break;
}
}
// spell processing not complete, plan event on the next update interval