private List <GameTile> ReturnFloorTouchingWallsAroundTile(GameTile tile) { //retruns walls around a given tile, will only add tiles that aren't marked and are valid neighbour's of floor tiles List <GameTile> allWallsList = new List <GameTile>(); List <GameTile> validWallsList = new List <GameTile>(); tile.SetIsMarked(true); List <GameTile> tileNeighbours = board.GetTileNeighbours(tile); foreach (GameTile q in tileNeighbours) { if (q.IsWall() && !q.IsMarked()) { q.SetIsMarked(true); allWallsList.Add(q); } } foreach (GameTile q in allWallsList) { List <GameTile> cardinalNeighbours = board.GetTileCardinalNeighbours(q); foreach (GameTile neighbour in cardinalNeighbours) { if (neighbour.OpenForPlacement()) { validWallsList.Add(q); break; } } } return(validWallsList); }
private List <GameTile> SpawnGrassAroundRootTiles(List <GameTile> roots, float checkForGrassSpawn) { //Changes the textures of tiles around the root node to create patches of grass List <GameTile> newGrassTiles = new List <GameTile>(); foreach (GameTile root in roots) { List <GameTile> rootNeighbours = board.GetTileNeighbours(root); foreach (GameTile possibleGrassTiles in rootNeighbours) { float testForGrassSpawn = Random.Range(1, 101); if (testForGrassSpawn <= checkForGrassSpawn && possibleGrassTiles.OpenForPlacement() && !possibleGrassTiles.IsMarked()) { newGrassTiles.Add(possibleGrassTiles); possibleGrassTiles.SetIsMarked(true); } } } ChangeToGrassSprite(newGrassTiles); return(newGrassTiles); }