Example #1
0
        public virtual bool Move(Map map)
        {
            if (HitPoints < 1)
                return false;

            if (EndReached)
                return false;

            if ((DateTime.Now - _lastMoveTime).TotalMilliseconds < MoveDelayMilis)
                return false;

            _lastMoveTime = DateTime.Now;

            Shooted = false;

            MoveCount++;

            if (!_slowed && SlowPercent > 0)
            {
                Speed = Speed - Speed * SlowPercent / 100;
                _slowed = true;
            }
            SlowDuration = SlowDuration > 0 ? SlowDuration - 1 : 0;
            SlowPercent = SlowDuration > 0 ? SlowPercent : 0;
            if (SlowPercent == 0)
            {
                _slowed = false;
                Speed = _designatedSpeed;
            }

            EndReached = map.EndReached(Center);

            return true;
        }