From 106e25f120f0368ebcd6f5b961cef2066fc6a642 Mon Sep 17 00:00:00 2001 From: aerinon Date: Thu, 19 Dec 2019 15:10:03 -0700 Subject: [PATCH] Potential stair key door fix --- DoorShuffle.py | 5 ++++- RoomData.py | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/DoorShuffle.py b/DoorShuffle.py index 68a418a1..7ca3f849 100644 --- a/DoorShuffle.py +++ b/DoorShuffle.py @@ -1033,7 +1033,10 @@ def reassign_key_doors(builder, proposal, world, player): if room.doorList[d.doorListPos][1] == DoorKind.StairKeyLow: room.delete(d.doorListPos) else: - room.change(d.doorListPos, DoorKind.Waterfall) + if len(room.doorList) > 1: + room.mirror(d.doorListPos) + else: + room.delete(d.doorListPos) d.smallKey = False elif d.type is DoorType.Interior and d not in flat_proposal and d.dest not in flat_proposal: world.get_room(d.roomIndex, player).change(d.doorListPos, DoorKind.Normal) diff --git a/RoomData.py b/RoomData.py index 31001ea5..f1f89fc4 100644 --- a/RoomData.py +++ b/RoomData.py @@ -257,6 +257,16 @@ class Room(object): self.doorList[list_idx] = (prev[0], kind) self.modified = True + def mirror(self, list_idx): + prev = self.doorList[list_idx] + mirror_door = None + for door in self.doorList: + if door != prev: + mirror_door = door + break + self.doorList[list_idx] = (mirror_door[0], mirror_door[1]) + self.modified = True + def swap(self, idx1, idx2): item1 = self.doorList[idx1] item2 = self.doorList[idx2]