From 217fcc14da5cd33755c091612556bcd3ad88df80 Mon Sep 17 00:00:00 2001 From: codemann8 Date: Sun, 27 Nov 2022 14:11:29 -0600 Subject: [PATCH] Modeled South Portal Area correctly for OWG prep --- OWEdges.py | 10 ++++++++-- OverworldShuffle.py | 8 ++++++++ Regions.py | 10 ++++++---- Rules.py | 12 ++++++++++-- 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/OWEdges.py b/OWEdges.py index 3f615aaa..cb61a153 100644 --- a/OWEdges.py +++ b/OWEdges.py @@ -1483,6 +1483,7 @@ OWExitTypes = { 'Tree Line WC Cliff Water Drop', 'C Whirlpool Outer Cliff Ledge Drop', 'C Whirlpool Cliff Ledge Drop', + 'C Whirlpool Portal Cliff Ledge Drop', 'Statues Cliff Ledge Drop', 'Desert Ledge Drop', 'Checkerboard Ledge Drop', @@ -1538,6 +1539,7 @@ OWExitTypes = { 'Dark Tree Line WC Cliff Water Drop', 'Dark C Whirlpool Outer Cliff Ledge Drop', 'Dark C Whirlpool Cliff Ledge Drop', + 'Dark C Whirlpool Portal Cliff Ledge Drop', 'Hype Cliff Ledge Drop', 'Misery Mire Teleporter Ledge Drop', 'Mire Cliff Ledge Drop', @@ -1622,9 +1624,11 @@ OWExitTypes = { 'Flute Boy Bush (North)', 'Cave 45 Inverted Leave', 'C Whirlpool Rock (Bottom)', + 'C Whirlpool Rock (Top)', + 'C Whirlpool Pegs (Right)', + 'C Whirlpool Pegs (Left)', 'C Whirlpool Water Entry', 'C Whirlpool Landing', - 'C Whirlpool Rock (Top)', 'Statues Water Entry', 'Statues Landing', 'Lake Hylia Central Water Drop', @@ -1684,9 +1688,11 @@ OWExitTypes = { 'Stumpy Approach Bush (South)', 'Stumpy Approach Bush (North)', 'Dark C Whirlpool Rock (Bottom)', + 'Dark C Whirlpool Rock (Top)', + 'Dark C Whirlpool Pegs (Right)', + 'Dark C Whirlpool Pegs (Left)', 'Dark C Whirlpool Water Entry', 'Dark C Whirlpool Landing', - 'Dark C Whirlpool Rock (Top)', 'Hype Cave Water Entry', 'Hype Cave Landing', 'Ice Lake Northeast Water Drop', diff --git a/OverworldShuffle.py b/OverworldShuffle.py index 127a1280..d07b64f6 100644 --- a/OverworldShuffle.py +++ b/OverworldShuffle.py @@ -1236,6 +1236,8 @@ mandatory_connections = [# Intra-tile OW Connections ('C Whirlpool Landing', 'C Whirlpool Area'), ('C Whirlpool Rock (Bottom)', 'C Whirlpool Outer Area'), #glove ('C Whirlpool Rock (Top)', 'C Whirlpool Area'), #glove + ('C Whirlpool Pegs (Right)', 'C Whirlpool Portal Area'), #hammer + ('C Whirlpool Pegs (Left)', 'C Whirlpool Area'), #hammer ('Statues Water Entry', 'Statues Water'), #flippers ('Statues Landing', 'Statues Area'), ('Lake Hylia Water Drop', 'Lake Hylia Water'), #flippers @@ -1321,6 +1323,8 @@ mandatory_connections = [# Intra-tile OW Connections ('Dark C Whirlpool Landing', 'Dark C Whirlpool Area'), ('Dark C Whirlpool Rock (Bottom)', 'Dark C Whirlpool Outer Area'), #glove ('Dark C Whirlpool Rock (Top)', 'Dark C Whirlpool Area'), #glove + ('Dark C Whirlpool Pegs (Right)', 'Dark C Whirlpool Portal Area'), #hammer + ('Dark C Whirlpool Pegs (Left)', 'Dark C Whirlpool Area'), #hammer ('Hype Cave Water Entry', 'Hype Cave Water'), #flippers ('Hype Cave Landing', 'Hype Cave Area'), ('Ice Lake Water Drop', 'Ice Lake Water'), #flippers @@ -1691,6 +1695,8 @@ ow_connections = { ('Dark C Whirlpool Cliff Ledge Drop', 'Dark C Whirlpool Area'), # OWG ('C Whirlpool Outer Cliff Ledge Drop', 'C Whirlpool Outer Area'), # OWG ('Dark C Whirlpool Outer Cliff Ledge Drop', 'Dark C Whirlpool Outer Area'), # OWG + ('C Whirlpool Portal Cliff Ledge Drop', 'C Whirlpool Portal Area'), #OWG + ('Dark C Whirlpool Portal Cliff Ledge Drop', 'Dark C Whirlpool Portal Area'), #OWG ('Desert C Whirlpool Cliff Ledge Drop', 'C Whirlpool Outer Area'), # OWG ('Mire C Whirlpool Cliff Ledge Drop', 'Dark C Whirlpool Outer Area') # OWG ], [ @@ -1701,6 +1707,8 @@ ow_connections = { ('Dark C Whirlpool Cliff Ledge Drop', 'C Whirlpool Area'), # OWG ('C Whirlpool Outer Cliff Ledge Drop', 'Dark C Whirlpool Outer Area'), # OWG ('Dark C Whirlpool Outer Cliff Ledge Drop', 'C Whirlpool Outer Area'), # OWG + ('C Whirlpool Portal Cliff Ledge Drop', 'Dark C Whirlpool Portal Area'), #OWG + ('Dark C Whirlpool Portal Cliff Ledge Drop', 'C Whirlpool Portal Area'), #OWG ('Desert C Whirlpool Cliff Ledge Drop', 'Dark C Whirlpool Outer Area'), # OWG ('Mire C Whirlpool Cliff Ledge Drop', 'C Whirlpool Outer Area') # OWG ]), diff --git a/Regions.py b/Regions.py index bf55213c..9208094a 100644 --- a/Regions.py +++ b/Regions.py @@ -89,7 +89,7 @@ def create_regions(world, player): create_lw_region(player, 'Stone Bridge South Area', None, ['Stone Bridge Northbound', 'Hammer Bridge South Mirror Spot', 'Stone Bridge WS', 'Stone Bridge SC']), create_lw_region(player, 'Stone Bridge Water', None, ['Dark Hobo Mirror Spot', 'Stone Bridge WC', 'Stone Bridge EC'], 'Light World', Terrain.Water), create_lw_region(player, 'Hobo Bridge', ['Hobo'], ['Hobo EC'], 'Light World', Terrain.Water), - create_lw_region(player, 'Central Cliffs', None, ['Central Bonk Rocks Cliff Ledge Drop', 'Links House Cliff Ledge Drop', 'Stone Bridge Cliff Ledge Drop', 'Lake Hylia Area Cliff Ledge Drop', 'Lake Hylia Island FAWT Ledge Drop', 'Stone Bridge EC Cliff Water Drop', 'Tree Line WC Cliff Water Drop', 'C Whirlpool Outer Cliff Ledge Drop', 'C Whirlpool Cliff Ledge Drop', 'Statues Cliff Ledge Drop']), + create_lw_region(player, 'Central Cliffs', None, ['Central Bonk Rocks Cliff Ledge Drop', 'Links House Cliff Ledge Drop', 'Stone Bridge Cliff Ledge Drop', 'Lake Hylia Area Cliff Ledge Drop', 'Lake Hylia Island FAWT Ledge Drop', 'Stone Bridge EC Cliff Water Drop', 'Tree Line WC Cliff Water Drop', 'C Whirlpool Outer Cliff Ledge Drop', 'C Whirlpool Cliff Ledge Drop', 'C Whirlpool Portal Cliff Ledge Drop', 'Statues Cliff Ledge Drop']), create_lw_region(player, 'Tree Line Area', None, ['Lake Hylia Fairy', 'Dark Tree Line Mirror Spot', 'Tree Line WN', 'Tree Line NW', 'Tree Line SE']), create_lw_region(player, 'Tree Line Water', None, ['Tree Line WC', 'Tree Line SC'], 'Light World', Terrain.Water), create_lw_region(player, 'Eastern Nook Area', None, ['Long Fairy Cave', 'Darkness Nook Mirror Spot', 'East Hyrule Teleporter', 'Eastern Nook NE']), @@ -105,7 +105,8 @@ def create_regions(world, player): create_lw_region(player, 'Flute Boy Approach Area', None, ['Flute Boy Bush (South)', 'Cave 45 Inverted Approach', 'Stumpy Approach Mirror Spot', 'Flute Boy Approach NW', 'Flute Boy Approach EC']), create_lw_region(player, 'Flute Boy Bush Entry', None, ['Flute Boy Bush (North)', 'Stumpy Bush Entry Mirror Spot', 'Flute Boy Approach NC']), create_lw_region(player, 'Cave 45 Ledge', None, ['Cave 45 Inverted Leave', 'Cave 45 Ledge Drop', 'Cave 45']), - create_lw_region(player, 'C Whirlpool Area', None, ['C Whirlpool Rock (Bottom)', 'C Whirlpool Water Entry', 'Dark C Whirlpool Mirror Spot', 'South Hyrule Teleporter', 'C Whirlpool EN', 'C Whirlpool ES', 'C Whirlpool SC']), + create_lw_region(player, 'C Whirlpool Area', None, ['C Whirlpool Rock (Bottom)', 'C Whirlpool Pegs (Right)', 'C Whirlpool Water Entry', 'Dark C Whirlpool Mirror Spot', 'C Whirlpool EN', 'C Whirlpool ES', 'C Whirlpool SC']), + create_lw_region(player, 'C Whirlpool Portal Area', None, ['C Whirlpool Pegs (Left)', 'South Hyrule Teleporter']), create_lw_region(player, 'C Whirlpool Water', None, ['C Whirlpool Landing', 'C Whirlpool', 'C Whirlpool EC'], 'Light World', Terrain.Water), create_lw_region(player, 'C Whirlpool Outer Area', None, ['C Whirlpool Rock (Top)', 'Dark C Whirlpool Outer Mirror Spot', 'C Whirlpool WC', 'C Whirlpool NW']), create_lw_region(player, 'Statues Area', None, ['Statues Water Entry', 'Light Hype Fairy', 'Hype Cave Mirror Spot', 'Statues NC', 'Statues WN', 'Statues WS', 'Statues SC']), @@ -199,7 +200,7 @@ def create_regions(world, player): create_dw_region(player, 'Hammer Bridge South Area', None, ['Hammer Bridge Pegs (South)', 'Stone Bridge South Mirror Spot', 'Hammer Bridge WS', 'Hammer Bridge SC']), create_dw_region(player, 'Hammer Bridge Water', None, ['Hammer Bridge Pier', 'Hobo Mirror Spot', 'Hammer Bridge EC'], 'Dark World', Terrain.Water), create_dw_region(player, 'Dark Central Cliffs', None, ['Dark Bonk Rocks Cliff Ledge Drop', 'Bomb Shop Cliff Ledge Drop', 'Hammer Bridge South Cliff Ledge Drop', 'Ice Lake Area Cliff Ledge Drop', 'Ice Palace Island FAWT Ledge Drop', - 'Hammer Bridge EC Cliff Water Drop', 'Dark Tree Line WC Cliff Water Drop', 'Dark C Whirlpool Outer Cliff Ledge Drop', 'Dark C Whirlpool Cliff Ledge Drop', 'Hype Cliff Ledge Drop']), + 'Hammer Bridge EC Cliff Water Drop', 'Dark Tree Line WC Cliff Water Drop', 'Dark C Whirlpool Outer Cliff Ledge Drop', 'Dark C Whirlpool Cliff Ledge Drop', 'Dark C Whirlpool Portal Cliff Ledge Drop', 'Hype Cliff Ledge Drop']), create_dw_region(player, 'Dark Tree Line Area', None, ['Dark Lake Hylia Fairy', 'Tree Line Mirror Spot', 'Dark Tree Line WN', 'Dark Tree Line NW', 'Dark Tree Line SE']), create_dw_region(player, 'Dark Tree Line Water', None, ['Dark Tree Line WC', 'Dark Tree Line SC'], 'Dark World', Terrain.Water), create_dw_region(player, 'Palace of Darkness Nook Area', None, ['East Dark World Hint', 'East Dark World Teleporter', 'Eastern Nook Mirror Spot', 'Palace of Darkness Nook NE']), @@ -208,7 +209,8 @@ def create_regions(world, player): create_dw_region(player, 'Mire Northeast Cliffs', None, ['Mire Cliff Ledge Drop', 'Dark Checkerboard Cliff Ledge Drop', 'Archery Game Cliff Ledge Drop', 'Stumpy Approach Cliff Ledge Drop', 'Mire C Whirlpool Cliff Ledge Drop', 'Swamp Nook Cliff Ledge Drop', 'Swamp Cliff Ledge Drop', 'Bombos Tablet Ledge Mirror Spot']), create_dw_region(player, 'Stumpy Approach Area', None, ['Stumpy Approach Bush (South)', 'Cave 45 Mirror Spot', 'Stumpy Approach NW', 'Stumpy Approach EC']), create_dw_region(player, 'Stumpy Approach Bush Entry', None, ['Stumpy Approach Bush (North)', 'Flute Boy Entry Mirror Spot', 'Stumpy Approach NC']), - create_dw_region(player, 'Dark C Whirlpool Area', None, ['Dark C Whirlpool Rock (Bottom)', 'South Dark World Teleporter', 'C Whirlpool Mirror Spot', 'Dark C Whirlpool Water Entry', 'Dark C Whirlpool EN', 'Dark C Whirlpool ES', 'Dark C Whirlpool SC']), + create_dw_region(player, 'Dark C Whirlpool Area', None, ['Dark C Whirlpool Rock (Bottom)', 'Dark C Whirlpool Pegs (Right)', 'C Whirlpool Mirror Spot', 'Dark C Whirlpool Water Entry', 'Dark C Whirlpool EN', 'Dark C Whirlpool ES', 'Dark C Whirlpool SC']), + create_dw_region(player, 'Dark C Whirlpool Portal Area', None, ['Dark C Whirlpool Pegs (Left)', 'South Dark World Teleporter']), create_dw_region(player, 'Dark C Whirlpool Water', None, ['Dark C Whirlpool Landing', 'Dark C Whirlpool EC'], 'Dark World', Terrain.Water), create_dw_region(player, 'Dark C Whirlpool Outer Area', None, ['Dark C Whirlpool Rock (Top)', 'C Whirlpool Outer Mirror Spot', 'Dark C Whirlpool WC', 'Dark C Whirlpool NW']), create_dw_region(player, 'Hype Cave Area', None, ['Hype Cave Water Entry', 'Hype Cave', 'Statues Mirror Spot', 'Hype Cave NC', 'Hype Cave WN', 'Hype Cave WS', 'Hype Cave SC']), diff --git a/Rules.py b/Rules.py index b8f0c871..8394fbd5 100644 --- a/Rules.py +++ b/Rules.py @@ -891,6 +891,8 @@ def default_rules(world, player): set_rule(world.get_entrance('Desert Ledge Inner Rocks', player), lambda state: state.can_lift_rocks(player)) set_rule(world.get_entrance('C Whirlpool Rock (Bottom)', player), lambda state: state.can_lift_rocks(player)) set_rule(world.get_entrance('C Whirlpool Rock (Top)', player), lambda state: state.can_lift_rocks(player)) + set_rule(world.get_entrance('C Whirlpool Pegs (Left)', player), lambda state: state.has('Hammer', player)) + set_rule(world.get_entrance('C Whirlpool Pegs (Right)', player), lambda state: state.has('Hammer', player)) set_rule(world.get_entrance('Desert Pass Rocks (North)', player), lambda state: state.can_lift_rocks(player)) set_rule(world.get_entrance('Desert Pass Rocks (South)', player), lambda state: state.can_lift_rocks(player)) set_rule(world.get_entrance('Skull Woods Bush Rock (West)', player), lambda state: state.can_lift_rocks(player)) @@ -918,6 +920,8 @@ def default_rules(world, player): set_rule(world.get_entrance('Hammer Bridge Pegs (South)', player), lambda state: state.has('Hammer', player)) set_rule(world.get_entrance('Dark C Whirlpool Rock (Bottom)', player), lambda state: state.can_lift_rocks(player)) set_rule(world.get_entrance('Dark C Whirlpool Rock (Top)', player), lambda state: state.can_lift_rocks(player)) + set_rule(world.get_entrance('Dark C Whirlpool Pegs (Left)', player), lambda state: state.has('Hammer', player)) + set_rule(world.get_entrance('Dark C Whirlpool Pegs (Right)', player), lambda state: state.has('Hammer', player)) set_rule(world.get_entrance('Zora Waterfall Water Drop', player), lambda state: state.has('Flippers', player)) set_rule(world.get_entrance('Zora Waterfall Water Entry', player), lambda state: state.has('Flippers', player)) @@ -1262,11 +1266,11 @@ def ow_inverted_rules(world, player): if not world.is_tile_swapped(0x33, player): set_rule(world.get_entrance('C Whirlpool Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('C Whirlpool Outer Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('South Hyrule Teleporter', player), lambda state: state.has('Hammer', player) and state.can_lift_rocks(player) and state.has_Pearl(player)) # bunny cannot use hammer + set_rule(world.get_entrance('South Hyrule Teleporter', player), lambda state: state.can_lift_rocks(player)) else: set_rule(world.get_entrance('Dark C Whirlpool Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Dark C Whirlpool Outer Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('South Dark World Teleporter', player), lambda state: state.has('Hammer', player) and state.can_lift_rocks(player) and state.has_Pearl(player)) + set_rule(world.get_entrance('South Dark World Teleporter', player), lambda state: state.can_lift_rocks(player)) if not world.is_tile_swapped(0x34, player): set_rule(world.get_entrance('Statues Mirror Spot', player), lambda state: state.has_Mirror(player)) @@ -1398,6 +1402,8 @@ def ow_bunny_rules(world, player): add_bunny_rule(world.get_entrance('Flute Boy Bush (South)', player), player) add_bunny_rule(world.get_entrance('C Whirlpool Rock (Bottom)', player), player) add_bunny_rule(world.get_entrance('C Whirlpool Rock (Top)', player), player) + add_bunny_rule(world.get_entrance('C Whirlpool Pegs (Left)', player), player) + add_bunny_rule(world.get_entrance('C Whirlpool Pegs (Right)', player), player) add_bunny_rule(world.get_entrance('Desert Pass Rocks (North)', player), player) add_bunny_rule(world.get_entrance('Desert Pass Rocks (South)', player), player) add_bunny_rule(world.get_entrance('Skull Woods Bush Rock (West)', player), player) @@ -1436,6 +1442,8 @@ def ow_bunny_rules(world, player): add_bunny_rule(world.get_entrance('Stumpy Approach Bush (South)', player), player) add_bunny_rule(world.get_entrance('Dark C Whirlpool Rock (Bottom)', player), player) add_bunny_rule(world.get_entrance('Dark C Whirlpool Rock (Top)', player), player) + add_bunny_rule(world.get_entrance('Dark C Whirlpool Pegs (Left)', player), player) + add_bunny_rule(world.get_entrance('Dark C Whirlpool Pegs (Right)', player), player) add_bunny_rule(world.get_entrance('Zora Waterfall Water Drop', player), player) add_bunny_rule(world.get_entrance('Zora Waterfall Water Entry', player), player)