protected override void OnTick()
{
if (m_Spell.State == SpellState.Casting && m_Spell.Caster.Spell == m_Spell)
{
m_Spell.State = SpellState.Sequencing;
m_Spell.m_CastTimer = null;
m_Spell.Caster.OnSpellCast(m_Spell);
m_Spell.Caster.Region.OnSpellCast(m_Spell.Caster, m_Spell);
m_Spell.Caster.NextSpellTime = DateTime.UtcNow + m_Spell.GetCastRecovery(); // Spell.NextSpellDelay;
if (!m_Spell.m_Caster.Deleted && m_Spell.m_Caster.NetState != null && m_Spell.m_Caster is BaseCreature)
// pseudoseer controlled
{
m_Spell.m_Caster.NextSpellTime += ((BaseCreature)m_Spell.m_Caster).Pseu_SpellDelay;
}
Target originalTarget = m_Spell.Caster.Target;
m_Spell.OnCast();
if (m_Spell.Caster.Player && m_Spell.Caster.Target != null && m_Spell.Caster.Target != originalTarget)
{
m_Spell.Caster.Target.BeginTimeout(m_Spell.Caster, TimeSpan.FromSeconds(30.0));
}
m_Spell.m_CastTimer = null;
}
}