From fc13549ccf4114b84843cfa735f4c73eb96d68db Mon Sep 17 00:00:00 2001 From: aerinon Date: Sat, 5 Dec 2020 10:37:58 -0700 Subject: [PATCH] Swamp Flooded Room logic re-work Fix a minor bug --- DungeonGenerator.py | 2 +- Regions.py | 6 +++--- Rules.py | 3 +-- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/DungeonGenerator.py b/DungeonGenerator.py index 7b2bf229..d5b0c1eb 100644 --- a/DungeonGenerator.py +++ b/DungeonGenerator.py @@ -1404,7 +1404,7 @@ def calc_allowance_and_dead_ends(builder, connections_tuple, world, player): builder.allowance = starting_allowance for entrance in needed_connections: sector = find_sector(entrance, builder.sectors) - if sector not in used_sectors: # ignore things on same sector + if sector and sector not in used_sectors: # ignore things on same sector is_destination = entrance in destination_entrances connect_able = False if entrance in connections.keys(): diff --git a/Regions.py b/Regions.py index fb991200..ce4281c0 100644 --- a/Regions.py +++ b/Regions.py @@ -445,9 +445,9 @@ def create_dungeon_regions(world, player): create_dungeon_region(player, 'Swamp Right Elbow', 'Swamp Palace', None, ['Swamp Right Elbow SE', 'Swamp Right Elbow Down Stairs']), create_dungeon_region(player, 'Swamp Drain Left', 'Swamp Palace', None, ['Swamp Drain Left Up Stairs', 'Swamp Drain WN']), create_dungeon_region(player, 'Swamp Drain Right', 'Swamp Palace', ['Swamp Drain'], ['Swamp Drain Right Switch', 'Swamp Drain Right Up Stairs']), - # This is intentionally odd so I don't have to treat the WS door in the Flooded Room oddly (because of how it works when going backward) - create_dungeon_region(player, 'Swamp Flooded Room', 'Swamp Palace', None, ['Swamp Flooded Room Up Stairs', 'Swamp Flooded Room Ladder', 'Swamp Flooded Room WS']), - create_dungeon_region(player, 'Swamp Flooded Spot', 'Swamp Palace', ['Swamp Palace - Flooded Room - Left', 'Swamp Palace - Flooded Room - Right'], ['Swamp Flooded Spot Ladder']), + create_dungeon_region(player, 'Swamp Flooded Room', 'Swamp Palace', None, ['Swamp Flooded Room Up Stairs', 'Swamp Flooded Room Ladder']), + # this is more normal and allows getting the chests from doing this room backward in logic + create_dungeon_region(player, 'Swamp Flooded Spot', 'Swamp Palace', ['Swamp Palace - Flooded Room - Left', 'Swamp Palace - Flooded Room - Right'], ['Swamp Flooded Room WS', 'Swamp Flooded Spot Ladder']), create_dungeon_region(player, 'Swamp Basement Shallows', 'Swamp Palace', None, ['Swamp Basement Shallows NW', 'Swamp Basement Shallows EN', 'Swamp Basement Shallows ES']), create_dungeon_region(player, 'Swamp Waterfall Room', 'Swamp Palace', ['Swamp Palace - Waterfall Room'], ['Swamp Waterfall Room SW', 'Swamp Waterfall Room NW', 'Swamp Waterfall Room NE']), create_dungeon_region(player, 'Swamp Refill', 'Swamp Palace', None, ['Swamp Refill SW']), diff --git a/Rules.py b/Rules.py index 9c11552a..ceeeecbf 100644 --- a/Rules.py +++ b/Rules.py @@ -209,10 +209,9 @@ def global_rules(world, player): set_rule(world.get_entrance('Swamp Barrier Ledge Hook Path', player), lambda state: state.has('Hookshot', player)) set_rule(world.get_entrance('Swamp Drain Right Switch', player), lambda state: state.has('Drained Swamp', player)) set_rule(world.get_entrance('Swamp Drain WN', player), lambda state: state.has('Drained Swamp', player)) + # this might be unnecesssary for an insanity style shuffle set_rule(world.get_entrance('Swamp Flooded Room WS', player), lambda state: state.has('Drained Swamp', player)) set_rule(world.get_entrance('Swamp Flooded Room Ladder', player), lambda state: state.has('Drained Swamp', player)) - set_rule(world.get_location('Swamp Palace - Flooded Room - Left', player), lambda state: state.has('Drained Swamp', player)) - set_rule(world.get_location('Swamp Palace - Flooded Room - Right', player), lambda state: state.has('Drained Swamp', player)) set_rule(world.get_entrance('Swamp Flooded Spot Ladder', player), lambda state: state.has('Flippers', player) or state.has('Drained Swamp', player)) set_rule(world.get_entrance('Swamp Drain Left Up Stairs', player), lambda state: state.has('Flippers', player) or state.has('Drained Swamp', player)) set_rule(world.get_entrance('Swamp Waterway NW', player), lambda state: state.has('Flippers', player))