From 62e0981568c6681f068c70767efb8042b9489bd9 Mon Sep 17 00:00:00 2001 From: compiling <8335770+compiling@users.noreply.github.com> Date: Mon, 2 Nov 2020 10:20:38 +1100 Subject: [PATCH 1/2] Fix entrances list for non-lobby shuffle. --- DoorShuffle.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/DoorShuffle.py b/DoorShuffle.py index 63f20e92..25be9a54 100644 --- a/DoorShuffle.py +++ b/DoorShuffle.py @@ -137,7 +137,7 @@ def vanilla_key_logic(world, player): overworld_prep(world, player) for builder in builders: - origin_list = find_accessible_entrances(world, player, default_dungeon_entrances[builder.name]) + origin_list = find_accessible_entrances(world, player, builder) start_regions = convert_regions(origin_list, world, player) doors = convert_key_doors(default_small_key_doors[builder.name], world, player) key_layout = build_key_layout(builder, start_regions, doors, world, player) @@ -372,7 +372,7 @@ def main_dungeon_generation(dungeon_builders, recombinant_builders, connections_ combine_layouts(recombinant_builders, dungeon_builders, entrances_map) world.dungeon_layouts[player] = {} for builder in dungeon_builders.values(): - builder.entrance_list = builder.layout_starts = builder.path_entrances = find_accessible_entrances(world, player, builder.all_entrances) + builder.entrance_list = builder.layout_starts = builder.path_entrances = find_accessible_entrances(world, player, builder) world.dungeon_layouts[player] = dungeon_builders @@ -1144,7 +1144,12 @@ def find_inaccessible_regions(world, player): logger.debug('%s', r) -def find_accessible_entrances(world, player, entrances): +def find_accessible_entrances(world, player, builder): + # todo: lobby shuffle + if world.mode[player] == 'standard' and builder.name == 'Hyrule Castle': + return ['Hyrule Castle Lobby'] + entrances = default_dungeon_entrances[builder.name] + if world.mode[player] != 'inverted': start_regions = ['Links House', 'Sanctuary'] else: From 6c531620e5912576253029c0058d314147458a88 Mon Sep 17 00:00:00 2001 From: compiling <8335770+compiling@users.noreply.github.com> Date: Mon, 2 Nov 2020 10:21:34 +1100 Subject: [PATCH 2/2] Make it possible to generate standard / retro / vanilla doors. --- BaseClasses.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/BaseClasses.py b/BaseClasses.py index d15652ce..518225b3 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -565,6 +565,8 @@ class CollectionState(object): def has_key(self, item, player, count=1): if self.world.retro[player]: + if self.world.mode[player] == 'standard' and self.world.doorShuffle[player] == 'vanilla' and item == 'Small Key (Escape)': + return True # Cannot access the shop until escape is finished. This is safe because the key is manually placed in make_custom_item_pool return self.can_buy_unlimited('Small Key (Universal)', player) if count == 1: return (item, player) in self.prog_items