예제 #1
0
        private Vector2 FindFirstFreeSpot(int x, int y, HullTypes type)
        {
            if (type == HullTypes.Weapon)
            {
                if (y + 1 <= size && !map.ContainsKey(new Vector2(x, y + 1)))
                {
                    return new Vector2(x, y + 1);
                }
                else if (x + 1 <= size && !map.ContainsKey(new Vector2(x + 1, y)))
                {
                    return new Vector2(x + 1, y);
                }
                else if (x - 1 >= -size && !map.ContainsKey(new Vector2(x - 1, y)))
                {
                    return new Vector2(x - 1, y);
                }
                return Vector2.zero;

            }
            else if (type == HullTypes.Hull)
            {
                if (y + 1 <= size && !map.ContainsKey(new Vector2(x, y + 1)))
                {
                    return new Vector2(x, y + 1);
                }
                else if (x + 1 <= size && !map.ContainsKey(new Vector2(x + 1, y)))
                {
                    return new Vector2(x + 1, y);
                }
                else if (x - 1 >= -size && !map.ContainsKey(new Vector2(x - 1, y)))
                {
                    return new Vector2(x - 1, y);
                }
                return Vector2.zero;

            }
            else
            { // ENGINE
                if (y - 1 >= -size && !map.ContainsKey(new Vector2(x, y - 1)))
                {
                    return new Vector2(x, y + 1);
                }
                else if (x + 1 <= size && !map.ContainsKey(new Vector2(x + 1, y)))
                {
                    return new Vector2(x + 1, y);
                }
                else if (x - 1 >= -size && !map.ContainsKey(new Vector2(x - 1, y)))
                {
                    return new Vector2(x - 1, y);
                }
                return Vector2.zero;
            }
        }
예제 #2
0
 private Vector2 FindFirstFreeSpot(HullTypes type)
 {
     return FindFirstFreeSpot(0, 0, type);
 }