void CarveCrawlways() { map.BulkEditBegin(); int originX; int originY; int x; foreach (ProcRoom room in rooms) { int rand2 = Rand.Range(0, 1); if (rand2 == 0) { var crawlway = new ProcHall(); direction = RIGHT; originX = room.TopRightX(); originY = room.TopRightY() + 1; x = 1; // get random height to make halls either two or four tiles tall rand2 = Rand.Range(0, 10); int i = (rand2 == 0 ? 2 : 4); while (map.GetTileInfo(originX + x, originY) != null && TileInBounds(originX + x, originY)) { if (i == 2) { map.ClearTile(originX + x, originY); map.ClearTile(originX + x, originY - 1); } else { map.ClearTile(originX + x, originY); map.ClearTile(originX + x, originY - 1); // map.ClearTile(originX + x, originY - 2); // map.ClearTile(originX + x, originY - 3); } x = (direction == RIGHT ? x + 1 : x - 1); } // with hall succesfully placed, set its origin, width, and height, then add to List crawlway.width = Math.Abs(x) - 1; crawlway.height = i; crawlway.originY = originY - (i - 1); crawlway.originX = (direction == RIGHT ? originX + 1 : originX - crawlway.width); crawlways.Add(crawlway); } } map.BulkEditEnd(); }
void CarveCrawlways() { map.BulkEditBegin(); int originX; int originY; int x; foreach (ProcRoom room in rooms) { int rand2 = Rand.Range(0, 1); if (rand2 == 0) { ProcHall crawlway = new ProcHall(); direction = RIGHT; originX = room.TopRightX(); originY = room.TopRightY() + 1; x = 1; // get random height to make halls either two or four tiles tall rand2 = Rand.Range(0, 10); int i = (rand2 == 0 ? 2 : 4); while (map.GetTileInfo(originX + x, originY) != null && TileInBounds(originX + x, originY)) { if (i == 2) { map.ClearTile(originX + x, originY); map.ClearTile(originX + x, originY - 1); } else { map.ClearTile(originX + x, originY); map.ClearTile(originX + x, originY - 1); // map.ClearTile(originX + x, originY - 2); // map.ClearTile(originX + x, originY - 3); } x = (direction == RIGHT ? x + 1 : x - 1); } // with hall succesfully placed, set its origin, width, and height, then add to List crawlway.width = Math.Abs(x) - 1; crawlway.height = i; crawlway.originY = originY - (i - 1); crawlway.originX = (direction == RIGHT ? originX + 1 : originX - crawlway.width); crawlways.Add(crawlway); } } map.BulkEditEnd(); }
void CarveHalls() { map.BulkEditBegin(); int originX; int originY; int x; foreach (ProcRoom room in rooms) { ProcHall hall = new ProcHall(); // get random direction int rand = Rand.Range(0, 1); direction = (rand == 0 ? RIGHT : LEFT); // set origin point if (direction == RIGHT) { originX = room.BottomRightX(); originY = room.BottomRightY(); x = 1; } else { originX = room.BottomLeftX(); originY = room.BottomLeftY(); x = -1; } // get random height to make halls either two or four tiles tall int rand2 = Rand.Range(0, 10); int i = (rand2 == 0 ? 2 : 4); while (map.GetTileInfo(originX + x, originY) != null && TileInBounds(originX + x, originY)) { if (i == 2) { map.ClearTile(originX + x, originY); map.ClearTile(originX + x, originY - 1); } else { map.ClearTile(originX + x, originY); map.ClearTile(originX + x, originY - 1); map.ClearTile(originX + x, originY - 2); map.ClearTile(originX + x, originY - 3); } x = (direction == RIGHT ? x + 1 : x - 1); } // with hall succesfully placed, set its origin, width, and height, then add to List hall.width = Math.Abs(x) - 1; hall.height = i; hall.originY = originY - (i - 1); hall.originX = (direction == RIGHT ? originX + 1 : originX - hall.width); halls.Add(hall); } map.BulkEditEnd(); }
void CarveHalls() { map.BulkEditBegin(); int originX; int originY; int x; foreach (ProcRoom room in rooms) { var hall = new ProcHall(); // get random direction int rand = Rand.Range(0, 1); direction = (rand == 0 ? RIGHT : LEFT); // set origin point if (direction == RIGHT) { originX = room.BottomRightX(); originY = room.BottomRightY(); x = 1; } else { originX = room.BottomLeftX(); originY = room.BottomLeftY(); x = -1; } // get random height to make halls either two or four tiles tall int rand2 = Rand.Range(0, 10); int i = (rand2 == 0 ? 2 : 4); while (map.GetTileInfo(originX + x, originY) != null && TileInBounds(originX + x, originY)) { if (i == 2) { map.ClearTile(originX + x, originY); map.ClearTile(originX + x, originY - 1); } else { map.ClearTile(originX + x, originY); map.ClearTile(originX + x, originY - 1); map.ClearTile(originX + x, originY - 2); map.ClearTile(originX + x, originY - 3); } x = (direction == RIGHT ? x + 1 : x - 1); } // with hall succesfully placed, set its origin, width, and height, then add to List hall.width = Math.Abs(x) - 1; hall.height = i; hall.originY = originY - (i - 1); hall.originX = (direction == RIGHT ? originX + 1 : originX - hall.width); halls.Add(hall); } map.BulkEditEnd(); }
void CarveHalls() { map.BeginBulkEdit(); int originX; int originY; int x; int y; foreach (ProcRoom room in rooms) { ProcHall hall = new ProcHall(); int rand = UnityEngine.Random.Range(0, 2); direction = (rand == 0 ? RIGHT : LEFT); // direction = RIGHT; if (direction == RIGHT) { originX = room.BottomRightX(); originY = room.BottomRightY(); x = 1; } else { originX = room.BottomLeftX(); originY = room.BottomLeftY(); x = -1; } y = 0; int rand2 = UnityEngine.Random.Range(0, 10); int i = (rand2 == 0 ? 2 : 4); while (map.GetTile(originY, originX + x) != null && TileInBounds(originX + x, originY)) { // randomly make halls either two or four tiles tall if (i == 2) { map.EraseTile(originY, originX + x); map.RefreshSurroundingTiles(originY, originX); map.EraseTile(originY - 1, originX + x); map.RefreshSurroundingTiles(originY - 1, originX); } else { map.EraseTile(originY, originX + x); map.RefreshSurroundingTiles(originY, originX); map.EraseTile(originY - 1, originX + x); map.RefreshSurroundingTiles(originY - 1, originX); map.EraseTile(originY - 2, originX + x); map.RefreshSurroundingTiles(originY - 2, originX); map.EraseTile(originY - 3, originX + x); map.RefreshSurroundingTiles(originY - 3, originX); } x = (direction == RIGHT ? x + 1 : x - 1); } // with hall succesfully placed, set its origin, width, and height, then add to List hall.width = Math.Abs(x) - 1; hall.height = i; hall.originY = originY - (i - 1); hall.originX = (direction == RIGHT ? originX + 1 : originX - hall.width); halls.Add(hall); } map.EndBulkEdit(); }