protected override void OnTick() { if (m_From == null || m_From.Deleted) { Stop(); } else { Mobile target = m_From.Combatant; if (target != null && target.Alive && m_From.CanBeHarmful(target) && target.Map != m_From.Map && target.InRange(m_From, m_From.RangePerception) && m_From.InLOS(target)) { Stop(); } else { DoHarvest(); if (++m_Index == m_Count) { Stop(); } } } }