diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/Map/DungeonGenerator.cs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/scripts/Map/DungeonGenerator.cs b/scripts/Map/DungeonGenerator.cs index 2b24e8a..f7a3f4d 100644 --- a/scripts/Map/DungeonGenerator.cs +++ b/scripts/Map/DungeonGenerator.cs @@ -90,7 +90,9 @@ public partial class DungeonGenerator : Node // Coloca os corredores. TunnelDivisions(data, root); - Rect2I lastRoom = new(0, 0, 0, 0); + Vector2I lastRoom = new(0, 0); + + bool placedStair = false; // Cria as salas com base nas divisões geradas. foreach (MapDivision division in root.GetLeaves()) @@ -113,13 +115,19 @@ public partial class DungeonGenerator : Node first = false; player.GridPosition = room.GetCenter(); } + else if (!placedStair && rng.RandiRange(0, 100) > 25) + { + lastRoom = room.GetCenter(); + placedStair = true; + } else if (!placedStair) { + lastRoom = room.GetCenter(); + } + // Colocamos os inimigos na sala. PlaceEntities(data, room); - - lastRoom = room; } - data.DownstairsLocation = lastRoom!.GetCenter(); + data.DownstairsLocation = lastRoom; Tile downTile = data.GetTile(data.DownstairsLocation); downTile.Key = TileType.DOWN_STAIRS; |
