Potential stair key door fix

This commit is contained in:
aerinon
2019-12-19 15:10:03 -07:00
parent 35c3a07dc3
commit 106e25f120
2 changed files with 14 additions and 1 deletions

View File

@@ -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)

View File

@@ -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]