IEnumerator BuildStartCity() { List <GridTile> gridTiles = GridTile.FindAnnulusAround(centerTile.position, currentRadius, 3); // Mainly only cardinal directions while (true) { while (currentMaxHouses > currentPlacedHouses) { // Get the grid tiles to build on foreach (GridTile tile in gridTiles) { if (Random.Range(0f, 1f) > 0.5f) { BuildBuilding(tile); } else { UpgradeBuilding(); } if (currentPlacedHouses >= currentMaxHouses) { break; } yield return(null); } yield return(null); if (currentRadius < 100) { currentRadius += 3; gridTiles = GridTile.FindAnnulusAround(centerTile.position, currentRadius, 3); } else { yield break; } } yield return(null); } }