All pastes #404848 Raw Edit

Untitled

public text v1 · immutable
·published 2007-03-21 09:13 UTC
rendered paste body
    public class WalkTimer : Timer
    {
        private Entity m_Entity;
        private int m_Cycle;

        public WalkTimer(Entity e)
            : base(TimeSpan.Zero, TimeSpan.FromSeconds(0.5))
        {
            m_Entity = e;
            Priority = TimerPriority.EveryTick;
            m_Cycle = 0;
        }

        protected override void OnTick()
        {
            if (m_Entity == null)
                Stop();
            if ((m_Entity is Player) && (m_Entity as Player).NetState == null)
                Stop();
            bool NeedMove = false;
            m_Cycle++;
            switch (m_Entity.WalkSpeed)
            {
                case WalkSpeed.Quick:
                    NeedMove = true;
                    m_Cycle = 0;
                    break;
                case WalkSpeed.Normal:
                    if (m_Cycle >= 2)
                    {
                        m_Cycle = 0;
                        NeedMove = true;
                    }
                    break;
                case WalkSpeed.Slow:
                    if (m_Cycle >= 4)
                    {
                        m_Cycle = 0;
                        NeedMove = true;
                    }
                    break;
            }
            if (NeedMove && !m_Entity.MoveOneStep())
                Stop();
        }