From 8f7ebc46b2880fc7b4b796e2303e1a8428255b00 Mon Sep 17 00:00:00 2001 From: Catobat <69204835+Catobat@users.noreply.github.com> Date: Mon, 20 May 2024 18:20:05 +0200 Subject: [PATCH 1/2] Fix edge cases with undefined_chance --- OverworldShuffle.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/OverworldShuffle.py b/OverworldShuffle.py index 5430e175..c0d17a1e 100644 --- a/OverworldShuffle.py +++ b/OverworldShuffle.py @@ -1049,9 +1049,13 @@ def shuffle_tiles(world, groups, result_list, do_grouped, forced_flips, player): # tile shuffle happens here removed = [] - if 0 < undefined_chance < 100: - for group in groups: - if group[0] in nonflipped_groups or (group[0] not in flipped_groups and random.randint(1, 100) > undefined_chance): + for group in groups: + if group[0] in nonflipped_groups: + removed.append(group) + else: + if group[0] in flipped_groups or undefined_chance >= 100: + continue + if undefined_chance == 0 or random.randint(1, 100) > undefined_chance: removed.append(group) # save shuffled tiles to list From 90817a14fd3c5d3ced00f0bd007d1cba7d888fba Mon Sep 17 00:00:00 2001 From: Catobat <69204835+Catobat@users.noreply.github.com> Date: Tue, 21 May 2024 18:09:31 +0200 Subject: [PATCH 2/2] Make Doors adjust to Santuary in the Dark World --- DoorShuffle.py | 2 +- Doors.py | 2 +- DungeonGenerator.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DoorShuffle.py b/DoorShuffle.py index 19483bd9..69991d13 100644 --- a/DoorShuffle.py +++ b/DoorShuffle.py @@ -3405,7 +3405,7 @@ def find_accessible_entrances(world, player, builder): visited_entrances = [] # Add Sanctuary as an additional entrance in open mode, since you can save and quit to there - if world.mode[player] == 'open' and world.get_region('Sanctuary', player).dungeon.name == builder.name and 'Sanctuary' not in entrances: + if not world.is_dark_chapel_start(player) and world.get_region('Sanctuary', player).dungeon.name == builder.name and 'Sanctuary' not in entrances: entrances.append('Sanctuary') visited_entrances.append('Sanctuary') regs.remove(world.get_region('Sanctuary', player)) diff --git a/Doors.py b/Doors.py index defdcbf0..c5519d13 100644 --- a/Doors.py +++ b/Doors.py @@ -1516,7 +1516,7 @@ def create_doors(world, player): # static portal flags world.get_door('Sanctuary S', player).dead_end(allowPassage=True) - if world.mode[player] == 'open' and world.shuffle[player] not in ['lean', 'swapped', 'crossed', 'insanity']: + if not world.is_dark_chapel_start(player) and world.shuffle[player] not in ['lean', 'swapped', 'crossed', 'insanity']: world.get_door('Sanctuary S', player).lw_restricted = True world.get_door('Eastern Hint Tile Blocked Path SE', player).passage = False world.get_door('TR Big Chest Entrance SE', player).passage = False diff --git a/DungeonGenerator.py b/DungeonGenerator.py index 5f34fbf2..1009d20a 100644 --- a/DungeonGenerator.py +++ b/DungeonGenerator.py @@ -1360,7 +1360,7 @@ def create_dungeon_builders(all_sectors, connections_tuple, world, player, dunge for name, builder in dungeon_map.items(): calc_allowance_and_dead_ends(builder, connections_tuple, world, player) - if world.mode[player] == 'open' and world.shuffle[player] not in ['lean', 'swapped', 'crossed', 'insanity']: + if not world.is_dark_chapel_start(player) and world.shuffle[player] not in ['lean', 'swapped', 'crossed', 'insanity']: sanc = find_sector('Sanctuary', candidate_sectors) if sanc: # only run if sanc if a candidate lw_builders = []