From 58e732c923e7bcda0c68d4535b8b059fab821280 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Tue, 3 May 2022 18:25:30 -0700 Subject: [PATCH] Clean up and document room rect generation --- roguebasin/map.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/roguebasin/map.py b/roguebasin/map.py index 9018efe..3fc5996 100644 --- a/roguebasin/map.py +++ b/roguebasin/map.py @@ -119,8 +119,13 @@ class RoomsAndCorridorsGenerator(MapGenerator): else: LOG.debug(f'{" " * indent}{node_bounds} (room) {node}') - size = Size(self.rng.randint(5, min(15, max(5, node.width - 2))), - self.rng.randint(5, min(15, max(5, node.height - 2)))) + # Generate a room size between minimum_room_size and maximum_room_size. The minimum value is + # straight-forward, but the maximum value needs to be clamped between minimum_room_size and the size of + # the node. + width_range = (minimum_room_size.width, min(maximum_room_size.width, max(minimum_room_size.width, node.width - 2))) + height_range = (minimum_room_size.height, min(maximum_room_size.height, max(minimum_room_size.height, node.height - 2))) + + size = Size(self.rng.randint(*width_range), self.rng.randint(*height_range)) origin = Point(node.x + self.rng.randint(1, max(1, node.width - size.width - 1)), node.y + self.rng.randint(1, max(1, node.height - size.height - 1))) bounds = Rect(origin, size)