/// <summary> /// Gets free spaces and randomly pick one for finish tile /// </summary> /// <returns>Map position x and y</returns> public (int x, int y) GetFinishPosition() { Random random = new Random(); List <GameElement> gameElements = GetAllElements(true); GameElement randElement = gameElements[random.Next(gameElements.Count)]; return(randElement.MapPositionX, randElement.MapPositionY); }
private void AddBomb() { foreach (var bomb in Bombs) { // if there is bomb on the same tile if (GameElement.OnTheSameTile(bomb, Player)) { return; } } Bombs.Add(new Bomb(Player.MapCenterPositionX, Player.MapCenterPositionY)); }
public List <GameElement> GetCloseElements(GameElement element) { List <GameElement> elements = new List <GameElement>(); int x = element.MapPositionX; int y = element.MapPositionY; for (int i = y - 1; i <= y + 1; i++) { for (int j = x - 1; j <= x + 1; j++) { if (Map[i, j] is Grass is false) { elements.Add(Map[i, j]); } } } return(elements); }
public static bool OnTheSameTile(GameElement element1, GameElement element2) => element1.MapPositionX == element2.MapPositionX && element1.MapPositionY == element2.MapPositionY;
public bool IntersectWith(GameElement otherElement) => ElementRectangle.IntersectsWith(otherElement.ElementRectangle);
public void RemoveElement(GameElement element) { Map[element.MapPositionY, element.MapPositionX] = new Grass(element.MapPositionX, element.MapPositionY); }
public void AddElement(GameElement element) { Map[element.MapPositionY, element.MapPositionX] = element; }