Fixed a generation bug

Add ganonhunt to pyramid open
This commit is contained in:
aerinon
2023-07-27 13:45:44 -06:00
parent b6275d0688
commit 8d17d95640
3 changed files with 13 additions and 12 deletions

View File

@@ -283,7 +283,7 @@ class World(object):
else: else:
if self.shuffle[player] not in ['vanilla', 'dungeonssimple', 'dungeonsfull']: if self.shuffle[player] not in ['vanilla', 'dungeonssimple', 'dungeonsfull']:
return False return False
elif self.goal[player] in ['crystals', 'trinity']: elif self.goal[player] in ['crystals', 'trinity', 'ganonhunt']:
return True return True
else: else:
return False return False

View File

@@ -2547,13 +2547,12 @@ def reassign_big_key_doors(bk_map, used_doors, world, player):
queue = deque(find_current_bk_doors(builder)) queue = deque(find_current_bk_doors(builder))
while len(queue) > 0: while len(queue) > 0:
d = queue.pop() d = queue.pop()
if (d.type is DoorType.Interior and d not in flat_proposal and d.dest not in flat_proposal if d.type is DoorType.Interior and d not in flat_proposal and d.dest not in flat_proposal:
and d not in used_doors and d.dest not in used_doors): if not d.entranceFlag and d not in used_doors and d.dest not in used_doors:
if not d.entranceFlag:
world.get_room(d.roomIndex, player).change(d.doorListPos, DoorKind.Normal) world.get_room(d.roomIndex, player).change(d.doorListPos, DoorKind.Normal)
d.bigKey = False d.bigKey = False
elif d.type is DoorType.Normal and d not in flat_proposal and d not in used_doors: elif d.type is DoorType.Normal and d not in flat_proposal :
if not d.entranceFlag: if not d.entranceFlag and d not in used_doors:
world.get_room(d.roomIndex, player).change(d.doorListPos, DoorKind.Normal) world.get_room(d.roomIndex, player).change(d.doorListPos, DoorKind.Normal)
d.bigKey = False d.bigKey = False
for obj in big_doors: for obj in big_doors:
@@ -3014,7 +3013,7 @@ def reassign_key_doors(small_map, used_doors, world, player):
queue = deque(find_current_key_doors(builder)) queue = deque(find_current_key_doors(builder))
while len(queue) > 0: while len(queue) > 0:
d = queue.pop() d = queue.pop()
if d.type is DoorType.SpiralStairs and d not in proposal and d not in used_doors: if d.type is DoorType.SpiralStairs and d not in proposal:
room = world.get_room(d.roomIndex, player) room = world.get_room(d.roomIndex, player)
if room.doorList[d.doorListPos][1] == DoorKind.StairKeyLow: if room.doorList[d.doorListPos][1] == DoorKind.StairKeyLow:
room.delete(d.doorListPos) room.delete(d.doorListPos)
@@ -3024,15 +3023,14 @@ def reassign_key_doors(small_map, used_doors, world, player):
else: else:
room.delete(d.doorListPos) room.delete(d.doorListPos)
d.smallKey = False d.smallKey = False
elif (d.type is DoorType.Interior and d not in flat_proposal and d.dest not in flat_proposal elif d.type is DoorType.Interior and d not in flat_proposal and d.dest not in flat_proposal:
and d not in used_doors and d.dest not in used_doors): if not d.entranceFlag and d not in used_doors and d.dest not in used_doors:
if not d.entranceFlag:
world.get_room(d.roomIndex, player).change(d.doorListPos, DoorKind.Normal) world.get_room(d.roomIndex, player).change(d.doorListPos, DoorKind.Normal)
d.smallKey = False d.smallKey = False
d.dest.smallKey = False d.dest.smallKey = False
queue.remove(d.dest) queue.remove(d.dest)
elif d.type is DoorType.Normal and d not in flat_proposal and d not in used_doors: elif d.type is DoorType.Normal and d not in flat_proposal:
if not d.entranceFlag: if not d.entranceFlag and d not in used_doors:
world.get_room(d.roomIndex, player).change(d.doorListPos, DoorKind.Normal) world.get_room(d.roomIndex, player).change(d.doorListPos, DoorKind.Normal)
d.smallKey = False d.smallKey = False
for dp in world.paired_doors[player]: for dp in world.paired_doors[player]:

View File

@@ -109,6 +109,9 @@ These are now independent of retro mode and have three options: None, Random, an
# Bug Fixes and Notes # Bug Fixes and Notes
* 1.2.0.19u
* Fixed a bug with dungeon generation
* Changed the "Ganonhunt" goal to use open pyramid on the Auto setting
* 1.2.0.18u * 1.2.0.18u
* Fixed an issue with pyramid hole being in logic when it is not opened. * Fixed an issue with pyramid hole being in logic when it is not opened.
* Crystal cutscene at GT use new symmetrical layouts (thanks Codemann) * Crystal cutscene at GT use new symmetrical layouts (thanks Codemann)