public void AutoDecorate() { for (int i = Room.Bounds.Left; i < Room.Bounds.Right; i++) { for (int j = Room.Bounds.Bottom; j < Room.Bounds.Top; j++) { var type = GetTypeOfWall(i, j); if (type == TypeOfTile.Top) { if (SeededRandom.RandBool(.125f)) { DecorativeTileMap.SpawnTorch(i, j); } else if (SeededRandom.RandBool(.125f)) { Level.Decorations.SetTile(new Vector3Int(i, j, 0), Painter.GetRandomTopWallDecoration()); } } if (type == TypeOfTile.Left && SeededRandom.RandBool(.125f) && IsFloor(i + 1, j)) { DecorativeTileMap.SpawnSideTorch(i + 1, j, true); } if (type == TypeOfTile.Right && SeededRandom.RandBool(.125f) && IsFloor(i - 1, j)) { DecorativeTileMap.SpawnSideTorch(i - 1, j, false); } if (type == TypeOfTile.Floor && SeededRandom.RandBool(.02f)) { Level.Decorations.SetTile(new Vector3Int(i, j, 0), Painter.GetRandomFloorDecoration()); } } } }
private void PlaceTraps() { traps = Level.GetRequiredTraps(); var spawnLocations = Level.GetPossibleSpawnLocations(); foreach (var trap in traps) { var trapLocation = BattleManager.ConvertVector(trap.transform.position); spawnLocations.Remove(trapLocation); PlaceTerrainOn(trapLocation.x, trapLocation.y, trap); } var numTraps = GetNumberOfTrapsForFloor(); while (traps.Count < numTraps && spawnLocations.Count > 0) { var spawnLoc = SeededRandom.PickRandom(spawnLocations); spawnLocations.Remove(spawnLoc); var trap = EnemySpawner.SpawnSpikes(spawnLoc).GetComponent <Spikes>(); traps.Add(trap); PlaceTerrainOn(spawnLoc.x, spawnLoc.y, trap); if (SeededRandom.RandBool(.5f)) { trap.MakeInvisible(); } } }
protected void CreateBranches(List <Room> roomsToBranch) { Debug.Log($"Number of rooms to branch: {roomsToBranch.Count}"); var currentBranch = new List <Room>(); var i = 0; while (i < roomsToBranch.Count) { currentBranch.Clear(); var room = roomsToBranch[i]; var curr = SeededRandom.PickRandom(branchable); var numConnections = SeededRandom.PickRandom(branchConnectionLength); currentBranch = TryCreateBranch(room, curr, numConnections); if (currentBranch.Count != numConnections + 1) { continue; } foreach (var branched in currentBranch) { if (branched.Info.MaxConnections > 1 && SeededRandom.RandBool(.3f)) { if (branched is StandardRoom) { for (int j = 0; j < SeededRandom.Range(1, 4); j++) { branchable.Add(branched); } } else { branchable.Add(branched); } } } i++; } }