Пример #1
0
        private void MoveEnemy(Point enPos, EnemyUnit eu)
        {
            int           moves = eu.GetMovementSpeed();
            Stack <Point> path  = GetMovementPath(enPos, eu);
            Point         oldPoint;
            Point         newPoint = enPos;

            while (moves-- > 0)
            {
                if (path.Count == 0)
                {
                    break;
                }
                oldPoint = newPoint;
                newPoint = path.Pop();
                if (this.entities.ContainsKey(newPoint))
                {
                    LookForPlayers(newPoint, eu);
                    break;
                }
                entities.Remove(oldPoint);
                entities.Add(newPoint, eu);
                eu.MoveUnit(oldPoint, newPoint);
                LookForPlayers(newPoint, eu);
            }
            if (path.Count == 0)
            {
                eu.state.NextDestination(eu);
            }
        }