mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-06 19:15:53 +00:00
Left paths
This commit is contained in:
parent
9331876637
commit
ee7ee8b955
18 changed files with 52 additions and 8 deletions
|
|
@ -70,7 +70,9 @@ public partial class RogueliteRoomManager : Node2D
|
|||
}
|
||||
|
||||
private IEnumerable<RogueliteRoomResource> StarterRooms => Rooms.Where(x => x.Type is RoomType.Starter);
|
||||
private IEnumerable<RogueliteRoomResource> RegularRooms => Rooms.Where(x => x.Type is RoomType.Regular);
|
||||
private IEnumerable<RogueliteRoomResource> RegularRooms => Rooms.Where(x => x.Type is RoomType.Regular && x.HasDoors(DoorDirections.North | DoorDirections.South));
|
||||
private IEnumerable<RogueliteRoomResource> OffshootRooms => Rooms.Where(x => x.Type is RoomType.Regular && x.HasDoors(DoorDirections.East | DoorDirections.West));
|
||||
|
||||
private IEnumerable<RogueliteRoomResource> BossRooms => Rooms.Where(x => x.Type is RoomType.Boss);
|
||||
|
||||
private List<Vector2I> _mainPath = new();
|
||||
|
|
@ -92,6 +94,8 @@ public partial class RogueliteRoomManager : Node2D
|
|||
|
||||
var randomRoomsList = RegularRooms.Shuffle(DungeonLength).ToList();
|
||||
|
||||
var randomOffshootRoomsList = OffshootRooms.Shuffle(MaxBranchLength).ToList();
|
||||
|
||||
var currentPos = origin;
|
||||
_connections.Add(new RoomConnection(origin, currentPos + new Vector2I(0, 1)));
|
||||
Vector2I nextPos;
|
||||
|
|
@ -152,12 +156,29 @@ public partial class RogueliteRoomManager : Node2D
|
|||
|
||||
// Spawn offshoot here
|
||||
|
||||
var offshootToSpawn = shuffledOffshoots[currentOffshoot % shuffledOffshoots.Count()];
|
||||
var offshootTypeToSpawn = shuffledOffshoots[currentOffshoot % shuffledOffshoots.Count()];
|
||||
|
||||
int roomsInOffshot = GD.RandRange(0, MaxBranchLength);
|
||||
|
||||
var leftPosition = spawnedRoom.GridPosition;
|
||||
|
||||
for (int j = 0; j < roomsInOffshot; j++)
|
||||
{
|
||||
var room = randomOffshootRoomsList.Shuffle().FirstOrDefault();
|
||||
|
||||
var offshootCoord = leftPosition - new Vector2I(room.Size.X, 0);
|
||||
|
||||
SpawnRoom(room, offshootCoord, out var spanwedOffshooot);
|
||||
|
||||
_connections.Add(new RoomConnection(leftPosition, offshootCoord + new Vector2I(room.Size.X -1, 0)));
|
||||
|
||||
leftPosition = offshootCoord;
|
||||
|
||||
// Get a random room with the required doors
|
||||
|
||||
|
||||
//var leftToRightRooms =
|
||||
|
||||
// Get a random door on right or left side
|
||||
// spawn
|
||||
// Add path
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue