diff --git a/Main.py b/Main.py index 017a9262..03c78887 100644 --- a/Main.py +++ b/Main.py @@ -16,7 +16,7 @@ from OverworldGlitchRules import create_owg_connections from PotShuffle import shuffle_pots, shuffle_pot_switches from Regions import create_regions, create_shops, mark_light_dark_world_regions, create_dungeon_regions, adjust_locations from OWEdges import create_owedges -from OverworldShuffle import link_overworld, update_world_regions, create_flute_exits +from OverworldShuffle import link_overworld, update_world_regions, create_flute_exits, create_mirror_exits from EntranceShuffle import link_entrances from Rom import patch_rom, patch_race_rom, patch_enemizer, apply_rom_settings, LocalRom, JsonRom, get_hash_string from Doors import create_doors @@ -232,6 +232,8 @@ def main(args, seed=None, fish=None): update_world_regions(world, player) mark_light_dark_world_regions(world, player) create_flute_exits(world, player) + create_mirror_exits(world, player) + world.initialize_regions() logger.info(world.fish.translate("cli","cli","shuffling.world")) @@ -522,11 +524,14 @@ def copy_world(world): if world.logic[player] in ('owglitches', 'nologic'): create_owg_connections(ret, player) create_flute_exits(ret, player) + create_mirror_exits(ret, player) create_dungeon_regions(ret, player) create_owedges(ret, player) create_shops(ret, player) + #create_doors(ret, player) create_rooms(ret, player) create_dungeons(ret, player) + world.initialize_regions() # there are region references here they must be migrated to preserve integrity # ret.exp_cache = world.exp_cache.copy() @@ -698,6 +703,8 @@ def copy_world_premature(world, player): if world.logic[player] in ('owglitches', 'nologic'): create_owg_connections(ret, player) create_flute_exits(ret, player) + create_mirror_exits(ret, player) + world.initialize_regions() create_dungeon_regions(ret, player) create_owedges(ret, player) create_shops(ret, player) diff --git a/OWEdges.py b/OWEdges.py index 7fe4b016..01b2ad69 100644 --- a/OWEdges.py +++ b/OWEdges.py @@ -1733,195 +1733,7 @@ OWExitTypes = { 'Qirn Jump Whirlpool', 'Bomber Corner Whirlpool' ], - 'Mirror': ['Skull Woods Back Mirror Spot', - 'Skull Woods Forgotten (West) Mirror Spot', - 'Skull Woods Forgotten (East) Mirror Spot', - 'Skull Woods Portal Entry Mirror Spot', - 'Skull Woods Forgotten (Middle) Mirror Spot', - 'Skull Woods Front Mirror Spot', - 'Dark Lumberjack Mirror Spot', - 'West Dark Death Mountain (Top) Mirror Spot', - 'Bubble Boy Mirror Spot', - 'West Dark Death Mountain (Bottom) Mirror Spot', - 'East Dark Death Mountain (Top West) Mirror Spot', - 'East Dark Death Mountain (Top East) Mirror Spot', - 'TR Ledge (West) Mirror Spot', - 'TR Ledge (East) Mirror Spot', - 'TR Isolated Mirror Spot', - 'East Dark Death Mountain (Bottom Plateau) Mirror Spot', - 'East Dark Death Mountain (Bottom Left) Mirror Spot', - 'East Dark Death Mountain (Bottom) Mirror Spot', - 'Dark Floating Island Mirror Spot', - 'Turtle Rock Mirror Spot', - 'Turtle Rock Ledge Mirror Spot', - 'Bumper Cave Area Mirror Spot', - 'Bumper Cave Entry Mirror Spot', - 'Bumper Cave Ledge Mirror Spot', - 'Catfish Mirror Spot', - 'Skull Woods Pass West Mirror Spot', - 'Skull Woods Pass East Top Mirror Spot', - 'Skull Woods Pass Portal Mirror Spot', - 'Skull Woods Pass East Bottom Mirror Spot', - 'Outcast Fortune Mirror Spot', - 'Outcast Pond Mirror Spot', - 'Dark Chapel Mirror Spot', - 'Dark Chapel Ledge Mirror Spot', - 'Dark Graveyard Mirror Spot', - 'Dark Graveyard Ledge Mirror Spot', - 'Dark Graveyard Grave Mirror Spot', - 'Qirn Jump Mirror Spot', - 'Qirn Jump East Mirror Spot', - 'Dark Witch Mirror Spot', - 'Dark Witch Northeast Mirror Spot', - 'Catfish Approach Mirror Spot', - 'Catfish Approach Ledge Mirror Spot', - 'Village of Outcasts Mirror Spot', - 'Village of Outcasts Southwest Mirror Spot', - 'Hammer House Mirror Spot', - 'Shield Shop Mirror Spot', - 'Pyramid Mirror Spot', - 'Pyramid Pass Mirror Spot', - 'Pyramid Courtyard Mirror Spot', - 'Pyramid Uncle Mirror Spot', - 'Pyramid From Ledge Mirror Spot', - 'Pyramid Entry Mirror Spot', - 'Broken Bridge West Mirror Spot', - 'Broken Bridge East Mirror Spot', - 'Broken Bridge Northeast Mirror Spot', - 'Palace of Darkness Mirror Spot', - 'Hammer Pegs Mirror Spot', - 'Hammer Pegs Entry Mirror Spot', - 'Dark Dunes Mirror Spot', - 'Dig Game Mirror Spot', - 'Dig Game Ledge Mirror Spot', - 'Frog Mirror Spot', - 'Frog Prison Mirror Spot', - 'Archery Game Mirror Spot', - 'Stumpy Mirror Spot', - 'Stumpy Pass Mirror Spot', - 'Dark Bonk Rocks Mirror Spot', - 'Big Bomb Shop Mirror Spot', - 'Hammer Bridge North Mirror Spot', - 'Hammer Bridge South Mirror Spot', - 'Dark Hobo Mirror Spot', - 'Dark Tree Line Mirror Spot', - 'Darkness Nook Mirror Spot', - 'Misery Mire Mirror Spot', - 'Misery Mire Ledge Mirror Spot', - 'Misery Mire Blocked Mirror Spot', - 'Misery Mire Main Mirror Spot', - 'Stumpy Approach Mirror Spot', - 'Stumpy Bush Entry Mirror Spot', - 'Dark C Whirlpool Mirror Spot', - 'Dark C Whirlpool Outer Mirror Spot', - 'Hype Cave Mirror Spot', - 'Ice Lake Mirror Spot', - 'Ice Lake Southwest Mirror Spot', - 'Ice Lake Southeast Mirror Spot', - 'Ice Lake Northeast Mirror Spot', - 'Ice Palace Mirror Spot', - 'Ice Lake Moat Mirror Spot', - 'Shopping Mall Mirror Spot', - 'Swamp Nook Mirror Spot', - 'Swamp Nook Southeast Mirror Spot', - 'Swamp Nook Pegs Mirror Spot', - 'Swamp Mirror Spot', - 'Dark South Pass Mirror Spot', - 'Bomber Corner Mirror Spot', - 'Lost Woods East Mirror Spot', - 'Lost Woods Entry Mirror Spot', - 'Lost Woods Pedestal Mirror Spot', - 'Lost Woods Southwest Mirror Spot', - 'Lost Woods East (Forgotten) Mirror Spot', - 'Lost Woods West (Forgotten) Mirror Spot', - 'Lumberjack Mirror Spot', - 'West Death Mountain (Top) Mirror Spot', - 'Spectacle Rock Mirror Spot', - 'East Death Mountain (Top West) Mirror Spot', - 'East Death Mountain (Top East) Mirror Spot', - 'Fairy Ascension Mirror Spot', - 'Death Mountain Bridge Mirror Spot', - 'Spiral Cave Mirror Spot', - 'Mimic Cave Mirror Spot', - 'Isolated Ledge Mirror Spot', - 'Floating Island Mirror Spot', - 'TR Pegs Area Mirror Spot', - 'Mountain Entry Mirror Spot', - 'Mountain Entry Entrance Mirror Spot', - 'Mountain Entry Ledge Mirror Spot', - 'Zora Waterfall Mirror Spot', - 'Lost Woods Pass West Mirror Spot', - 'Lost Woods Pass East Top Mirror Spot', - 'Lost Woods Pass Portal Mirror Spot', - 'Lost Woods Pass East Bottom Mirror Spot', - 'Kakariko Fortune Mirror Spot', - 'Kakariko Pond Mirror Spot', - 'Sanctuary Mirror Spot', - 'Bonk Rock Ledge Mirror Spot', - 'Graveyard Ledge Mirror Spot', - 'Kings Grave Mirror Spot', - 'River Bend Mirror Spot', - 'River Bend East Mirror Spot', - 'Potion Shop Mirror Spot', - 'Potion Shop Northeast Mirror Spot', - 'Zora Approach Mirror Spot', - 'Zora Approach Ledge Mirror Spot', - 'Kakariko Mirror Spot', - 'Kakariko Grass Mirror Spot', - 'Forgotton Forest Mirror Spot', - 'Forgotton Forest Fence Mirror Spot', - 'HC Ledge Mirror Spot', - 'HC Courtyard Mirror Spot', - 'HC Area Mirror Spot', - 'HC East Entry Mirror Spot', - 'HC Courtyard Left Mirror Spot', - 'HC Area South Mirror Spot', - 'Wooden Bridge Mirror Spot', - 'Wooden Bridge Northeast Mirror Spot', - 'Wooden Bridge West Mirror Spot', - 'Eastern Palace Mirror Spot', - 'Blacksmith Entry Mirror Spot', - 'Blacksmith Mirror Spot', - 'Bat Cave Ledge Mirror Spot', - 'Sand Dunes Mirror Spot', - 'Maze Race Mirror Spot', - 'Maze Race Ledge Mirror Spot', - 'Kakariko Suburb Mirror Spot', - 'Kakariko Suburb South Mirror Spot', - 'Flute Boy Mirror Spot', - 'Flute Boy Pass Mirror Spot', - 'Central Bonk Rocks Mirror Spot', - 'Links House Mirror Spot', - 'Stone Bridge Mirror Spot', - 'Stone Bridge South Mirror Spot', - 'Hobo Mirror Spot', - 'Tree Line Mirror Spot', - 'Eastern Nook Mirror Spot', - 'Desert Mirror Spot', - 'Desert Ledge Mirror Spot', - 'Checkerboard Mirror Spot', - 'DP Stairs Mirror Spot', - 'DP Entrance (North) Mirror Spot', - 'Bombos Tablet Ledge Mirror Spot', - 'Cave 45 Mirror Spot', - 'Flute Boy Entry Mirror Spot', - 'C Whirlpool Mirror Spot', - 'C Whirlpool Outer Mirror Spot', - 'Statues Mirror Spot', - 'Lake Hylia Mirror Spot', - 'Lake Hylia Northeast Mirror Spot', - 'South Shore Mirror Spot', - 'South Shore East Mirror Spot', - 'Lake Hylia Island Mirror Spot', - 'Lake Hylia Water Mirror Spot', - 'Lake Hylia Water D Mirror Spot', - 'Lake Hylia Central Island Mirror Spot', - 'Ice Cave Mirror Spot', - 'Desert Pass Ledge Mirror Spot', - 'Desert Pass Mirror Spot', - 'Dam Mirror Spot', - 'South Pass Mirror Spot', - 'Octoballoon Mirror Spot' + 'Mirror': ['Bombos Tablet Ledge Mirror Spot' ] } diff --git a/OverworldShuffle.py b/OverworldShuffle.py index fe981f78..edee4b88 100644 --- a/OverworldShuffle.py +++ b/OverworldShuffle.py @@ -836,7 +836,33 @@ def create_flute_exits(world, player): exit.access_rule = lambda state: state.can_flute(player) exit.connect(world.get_region('Flute Sky', player)) region.exits.append(exit) - world.initialize_regions() + +def create_mirror_exits(world, player): + mirror_exits = set() + for region in (r for r in world.regions if r.player == player and r.name not in ['Zoras Domain', 'Master Sword Meadow', 'Hobo Bridge']): + if region.type == (RegionType.DarkWorld if world.mode[player] != 'inverted' else RegionType.LightWorld): + if region.name in mirror_connections: + for region_dest_name in mirror_connections[region.name]: + to_region = world.get_region(region_dest_name, player) + if len(mirror_connections[region.name]) == 1: + exitname = 'Mirror From ' + region.name + else: + exitname = 'Mirror To ' + region_dest_name + + assert(exitname not in mirror_exits, f'Mirror Exit with name already exists: {exitname}') + + exit = Entrance(region.player, exitname, region) + exit.spot_type = 'Mirror' + if region.terrain == Terrain.Water or to_region.terrain == Terrain.Water: + exit.access_rule = lambda state: state.has('Flippers', player) and state.has_Pearl(player) and state.has_Mirror(player) + else: + exit.access_rule = lambda state: state.has_Mirror(player) + exit.connect(to_region) + region.exits.append(exit) + + mirror_exits.add(exitname) + elif region.terrain == Terrain.Land: + logging.getLogger('').debug(f'Region has no mirror exit: {region.name}') def categorize_world_regions(world, player): for type in OWExitTypes: @@ -1359,47 +1385,14 @@ default_flute_connections = [ ] ow_connections = { - 0x00: ([ - ('Lost Woods East Mirror Spot', 'Lost Woods East Area'), - ('Lost Woods Entry Mirror Spot', 'Lost Woods West Area'), - ('Lost Woods Pedestal Mirror Spot', 'Lost Woods West Area'), - ('Lost Woods Southwest Mirror Spot', 'Lost Woods West Area'), - ('Lost Woods East (Forgotten) Mirror Spot', 'Lost Woods East Area'), - ('Lost Woods West (Forgotten) Mirror Spot', 'Lost Woods West Area') - ], [ - ('Skull Woods Back Mirror Spot', 'Skull Woods Forest (West)'), - ('Skull Woods Forgotten (West) Mirror Spot', 'Skull Woods Forgotten Path (Southwest)'), - ('Skull Woods Forgotten (East) Mirror Spot', 'Skull Woods Forgotten Path (Northeast)'), - ('Skull Woods Portal Entry Mirror Spot', 'Skull Woods Portal Entry'), - ('Skull Woods Forgotten (Middle) Mirror Spot', 'Skull Woods Forgotten Path (Northeast)'), - ('Skull Woods Front Mirror Spot', 'Skull Woods Forest') - ]), - 0x02: ([ - ('Lumberjack Mirror Spot', 'Lumberjack Area') - ], [ - ('Dark Lumberjack Mirror Spot', 'Dark Lumberjack Area') - ]), 0x03: ([ - ('Spectacle Rock Mirror Spot', 'Spectacle Rock Ledge'), - ('West Death Mountain (Top) Mirror Spot', 'West Death Mountain (Top)'), ('West Death Mountain Teleporter', 'West Dark Death Mountain (Bottom)') ], [ ('Spectacle Rock Leave', 'West Death Mountain (Top)'), ('Spectacle Rock Approach', 'Spectacle Rock Ledge'), - ('West Dark Death Mountain (Top) Mirror Spot', 'West Dark Death Mountain (Top)'), - ('Bubble Boy Mirror Spot', 'West Dark Death Mountain (Bottom)'), - ('West Dark Death Mountain (Bottom) Mirror Spot', 'West Dark Death Mountain (Bottom)'), ('Dark Death Mountain Teleporter (West)', 'West Death Mountain (Bottom)') ]), 0x05: ([ - ('East Death Mountain (Top West) Mirror Spot', 'East Death Mountain (Top West)'), - ('East Death Mountain (Top East) Mirror Spot', 'East Death Mountain (Top East)'), - ('Spiral Cave Mirror Spot', 'Spiral Cave Ledge'), - ('Mimic Cave Mirror Spot', 'Mimic Cave Ledge'), - ('Isolated Ledge Mirror Spot', 'Fairy Ascension Ledge'), - ('Fairy Ascension Mirror Spot', 'Fairy Ascension Plateau'), - ('Death Mountain Bridge Mirror Spot', 'East Death Mountain (Bottom Left)'), - ('Floating Island Mirror Spot', 'Death Mountain Floating Island'), ('East Death Mountain Teleporter', 'East Dark Death Mountain (Bottom)') ], [ ('Floating Island Bridge (West)', 'East Death Mountain (Top East)'), @@ -1411,252 +1404,91 @@ ow_connections = { ('Spiral Ledge Approach', 'Spiral Cave Ledge'), ('Mimic Ledge Approach', 'Mimic Cave Ledge'), ('Spiral Mimic Ledge Drop', 'Fairy Ascension Ledge'), - ('East Dark Death Mountain (Top West) Mirror Spot', 'East Dark Death Mountain (Top)'), - ('East Dark Death Mountain (Top East) Mirror Spot', 'East Dark Death Mountain (Top)'), - ('TR Ledge (West) Mirror Spot', 'Dark Death Mountain Ledge'), - ('TR Ledge (East) Mirror Spot', 'Dark Death Mountain Ledge'), - ('TR Isolated Mirror Spot', 'Dark Death Mountain Isolated Ledge'), - ('East Dark Death Mountain (Bottom Plateau) Mirror Spot', 'East Dark Death Mountain (Bottom)'), - ('East Dark Death Mountain (Bottom Left) Mirror Spot', 'East Dark Death Mountain (Bottom Left)'), - ('East Dark Death Mountain (Bottom) Mirror Spot', 'East Dark Death Mountain (Bottom)'), - ('Dark Floating Island Mirror Spot', 'Dark Death Mountain Floating Island'), ('Dark Death Mountain Teleporter (East)', 'East Death Mountain (Bottom)') ]), 0x07: ([ - ('TR Pegs Area Mirror Spot', 'Death Mountain TR Pegs'), ('TR Pegs Teleporter', 'Turtle Rock Ledge') ], [ ('Turtle Rock Tail Ledge Drop', 'Turtle Rock Ledge'), - ('Turtle Rock Mirror Spot', 'Turtle Rock Area'), - ('Turtle Rock Ledge Mirror Spot', 'Turtle Rock Ledge'), ('Turtle Rock Teleporter', 'Death Mountain TR Pegs Ledge') ]), - 0x0a: ([ - ('Mountain Entry Mirror Spot', 'Mountain Entry Area'), - ('Mountain Entry Entrance Mirror Spot', 'Mountain Entry Entrance'), - ('Mountain Entry Ledge Mirror Spot', 'Mountain Entry Ledge') - ], [ - ('Bumper Cave Area Mirror Spot', 'Bumper Cave Area'), - ('Bumper Cave Entry Mirror Spot', 'Bumper Cave Entrance'), - ('Bumper Cave Ledge Mirror Spot', 'Bumper Cave Ledge') - ]), - 0x0f: ([ - ('Zora Waterfall Mirror Spot', 'Zora Waterfall Area') - ], [ - ('Catfish Mirror Spot', 'Catfish Area') - ]), 0x10: ([ - ('Lost Woods Pass West Mirror Spot', 'Lost Woods Pass West Area'), - ('Lost Woods Pass East Top Mirror Spot', 'Lost Woods Pass East Top Area'), - ('Lost Woods Pass Portal Mirror Spot', 'Lost Woods Pass Portal Area'), - ('Lost Woods Pass East Bottom Mirror Spot', 'Lost Woods Pass East Bottom Area'), ('Kakariko Teleporter', 'Skull Woods Pass Portal Area') ], [ - ('Skull Woods Pass West Mirror Spot', 'Skull Woods Pass West Area'), - ('Skull Woods Pass East Top Mirror Spot', 'Skull Woods Pass East Top Area'), - ('Skull Woods Pass Portal Mirror Spot', 'Skull Woods Pass Portal Area'), - ('Skull Woods Pass East Bottom Mirror Spot', 'Skull Woods Pass East Bottom Area'), ('West Dark World Teleporter', 'Lost Woods Pass Portal Area') ]), - 0x11: ([ - ('Kakariko Fortune Mirror Spot', 'Kakariko Fortune Area') - ], [ - ('Outcast Fortune Mirror Spot', 'Dark Fortune Area') - ]), - 0x12: ([ - ('Kakariko Pond Mirror Spot', 'Kakariko Pond Area') - ], [ - ('Outcast Pond Mirror Spot', 'Outcast Pond Area') - ]), - 0x13: ([ - ('Sanctuary Mirror Spot', 'Sanctuary Area'), - ('Bonk Rock Ledge Mirror Spot', 'Bonk Rock Ledge') - ], [ - ('Dark Chapel Mirror Spot', 'Dark Chapel Area'), - ('Dark Chapel Ledge Mirror Spot', 'Dark Chapel Area') - ]), 0x14: ([ - ('Graveyard Ledge Mirror Spot', 'Graveyard Ledge'), - ('Kings Grave Mirror Spot', 'Kings Grave Area') + ], [ ('Graveyard Ladder (Top)', 'Graveyard Area'), - ('Graveyard Ladder (Bottom)', 'Graveyard Ledge'), - ('Dark Graveyard Mirror Spot', 'Dark Graveyard Area'), - ('Dark Graveyard Ledge Mirror Spot', 'Dark Graveyard Area'), - ('Dark Graveyard Grave Mirror Spot', 'Dark Graveyard Area') - ]), - 0x15: ([ - ('River Bend Mirror Spot', 'River Bend Area'), - ('River Bend East Mirror Spot', 'River Bend East Bank') - ], [ - ('Qirn Jump Mirror Spot', 'Qirn Jump Area'), - ('Qirn Jump East Mirror Spot', 'Qirn Jump East Bank') - ]), - 0x16: ([ - ('Potion Shop Mirror Spot', 'Potion Shop Area'), - ('Potion Shop Northeast Mirror Spot', 'Potion Shop Northeast') - ], [ - ('Dark Witch Mirror Spot', 'Dark Witch Area'), - ('Dark Witch Northeast Mirror Spot', 'Dark Witch Northeast') - ]), - 0x17: ([ - ('Zora Approach Mirror Spot', 'Zora Approach Area'), - ('Zora Approach Ledge Mirror Spot', 'Zora Approach Ledge') - ], [ - ('Catfish Approach Mirror Spot', 'Catfish Approach Area'), - ('Catfish Approach Ledge Mirror Spot', 'Catfish Approach Ledge') - ]), - 0x18: ([ - ('Kakariko Mirror Spot', 'Kakariko Area'), - ('Kakariko Grass Mirror Spot', 'Kakariko Area') - ], [ - ('Village of Outcasts Mirror Spot', 'Village of Outcasts Area'), - ('Village of Outcasts Southwest Mirror Spot', 'Village of Outcasts Area'), - ('Hammer House Mirror Spot', 'Dark Grassy Lawn') - ]), - 0x1a: ([ - ('Forgotton Forest Mirror Spot', 'Forgotten Forest Area'), - ('Forgotton Forest Fence Mirror Spot', 'Forgotten Forest Area') - ], [ - ('Shield Shop Mirror Spot', 'Shield Shop Area') + ('Graveyard Ladder (Bottom)', 'Graveyard Ledge') ]), 0x1b: ([ - ('HC Ledge Mirror Spot', 'Hyrule Castle Ledge'), - ('HC Courtyard Mirror Spot', 'Hyrule Castle Courtyard'), - ('HC Area Mirror Spot', 'Hyrule Castle Area'), - ('HC Courtyard Left Mirror Spot', 'Hyrule Castle Courtyard'), - ('HC Area South Mirror Spot', 'Hyrule Castle Area'), - ('HC East Entry Mirror Spot', 'Hyrule Castle East Entry'), ('Top of Pyramid', 'Pyramid Area'), ('Top of Pyramid (Inner)', 'Pyramid Area') ], [ - ('Pyramid Mirror Spot', 'Pyramid Area'), - ('Pyramid Pass Mirror Spot', 'Pyramid Pass'), - ('Pyramid Courtyard Mirror Spot', 'Pyramid Area'), - ('Pyramid Uncle Mirror Spot', 'Pyramid Area'), - ('Pyramid From Ledge Mirror Spot', 'Pyramid Area'), - ('Pyramid Entry Mirror Spot', 'Pyramid Area'), ('Post Aga Inverted Teleporter', 'Hyrule Castle Area') ]), - 0x1d: ([ - ('Wooden Bridge Mirror Spot', 'Wooden Bridge Area'), - ('Wooden Bridge Northeast Mirror Spot', 'Wooden Bridge Area'), - ('Wooden Bridge West Mirror Spot', 'Wooden Bridge Area') - ], [ - ('Broken Bridge West Mirror Spot', 'Broken Bridge West'), - ('Broken Bridge East Mirror Spot', 'Broken Bridge Area'), - ('Broken Bridge Northeast Mirror Spot', 'Broken Bridge Northeast') - ]), 0x1e: ([ - ('Eastern Palace Mirror Spot', 'Eastern Palace Area'), ('Eastern Palace Ledge Drop', 'Eastern Palace Area'), # OWG ('Palace of Darkness Ledge Drop', 'Palace of Darkness Area') # OWG ], [ - ('Palace of Darkness Mirror Spot', 'Palace of Darkness Area'), ('Eastern Palace Ledge Drop', 'Palace of Darkness Area'), # OWG ('Palace of Darkness Ledge Drop', 'Eastern Palace Area') # OWG ]), - 0x22: ([ - ('Blacksmith Mirror Spot', 'Blacksmith Area'), - ('Blacksmith Entry Mirror Spot', 'Blacksmith Area'), - ('Bat Cave Ledge Mirror Spot', 'Bat Cave Ledge') - ], [ - ('Hammer Pegs Mirror Spot', 'Hammer Pegs Area'), - ('Hammer Pegs Entry Mirror Spot', 'Hammer Pegs Entry') - ]), 0x25: ([ - ('Sand Dunes Mirror Spot', 'Sand Dunes Area'), ('Sand Dunes Ledge Drop', 'Sand Dunes Area'), # OWG ('Dark Dunes Ledge Drop', 'Dark Dunes Area') # OWG ], [ - ('Dark Dunes Mirror Spot', 'Dark Dunes Area'), ('Sand Dunes Ledge Drop', 'Dark Dunes Area'), # OWG ('Dark Dunes Ledge Drop', 'Sand Dunes Area') # OWG ]), - 0x28: ([ - ('Maze Race Mirror Spot', 'Maze Race Ledge'), - ('Maze Race Ledge Mirror Spot', 'Maze Race Ledge') - ], [ - ('Dig Game Mirror Spot', 'Dig Game Area'), - ('Dig Game Ledge Mirror Spot', 'Dig Game Ledge') - ]), 0x29: ([ - ('Kakariko Suburb Mirror Spot', 'Kakariko Suburb Area'), - ('Kakariko Suburb South Mirror Spot', 'Kakariko Suburb Area'), ('Suburb Cliff Ledge Drop', 'Kakariko Suburb Area'), # OWG ('Archery Game Cliff Ledge Drop', 'Archery Game Area') # OWG ], [ - ('Frog Mirror Spot', 'Frog Area'), - ('Frog Prison Mirror Spot', 'Frog Prison'), - ('Archery Game Mirror Spot', 'Archery Game Area'), ('Suburb Cliff Ledge Drop', 'Archery Game Area'), # OWG ('Archery Game Cliff Ledge Drop', 'Kakariko Suburb Area') # OWG ]), - 0x2a: ([ - ('Flute Boy Mirror Spot', 'Flute Boy Area'), - ('Flute Boy Pass Mirror Spot', 'Flute Boy Pass') - ], [ - ('Stumpy Mirror Spot', 'Stumpy Area'), - ('Stumpy Pass Mirror Spot', 'Stumpy Pass') - ]), 0x2b: ([ - ('Central Bonk Rocks Mirror Spot', 'Central Bonk Rocks Area'), ('Central Bonk Rocks Cliff Ledge Drop', 'Central Bonk Rocks Area'), # OWG ('Dark Bonk Rocks Cliff Ledge Drop', 'Dark Bonk Rocks Area') # OWG ], [ - ('Dark Bonk Rocks Mirror Spot', 'Dark Bonk Rocks Area'), ('Central Bonk Rocks Cliff Ledge Drop', 'Dark Bonk Rocks Area'), # OWG ('Dark Bonk Rocks Cliff Ledge Drop', 'Central Bonk Rocks Area') # OWG ]), 0x2c: ([ - ('Links House Mirror Spot', 'Links House Area'), ('Links House Cliff Ledge Drop', 'Links House Area'), # OWG ('Bomb Shop Cliff Ledge Drop', 'Big Bomb Shop Area') # OWG ], [ - ('Big Bomb Shop Mirror Spot', 'Big Bomb Shop Area'), ('Links House Cliff Ledge Drop', 'Big Bomb Shop Area'), # OWG ('Bomb Shop Cliff Ledge Drop', 'Links House Area') # OWG ]), 0x2d: ([ - ('Stone Bridge Mirror Spot', 'Stone Bridge North Area'), - ('Stone Bridge South Mirror Spot', 'Stone Bridge South Area'), - ('Hobo Mirror Spot', 'Stone Bridge Water'), ('Stone Bridge East Ledge Drop', 'Stone Bridge North Area'), # OWG ('Hammer Bridge North Ledge Drop', 'Hammer Bridge North Area'), # OWG ('Stone Bridge Cliff Ledge Drop', 'Stone Bridge South Area'), # OWG ('Hammer Bridge South Cliff Ledge Drop', 'Hammer Bridge South Area') # OWG ], [ - ('Hammer Bridge North Mirror Spot', 'Hammer Bridge North Area'), - ('Hammer Bridge South Mirror Spot', 'Hammer Bridge South Area'), - ('Dark Hobo Mirror Spot', 'Hammer Bridge Water'), ('Stone Bridge East Ledge Drop', 'Hammer Bridge North Area'), # OWG ('Hammer Bridge North Ledge Drop', 'Stone Bridge North Area'), # OWG ('Stone Bridge Cliff Ledge Drop', 'Hammer Bridge South Area'), # OWG ('Hammer Bridge South Cliff Ledge Drop', 'Stone Bridge South Area') # OWG ]), 0x2e: ([ - ('Tree Line Mirror Spot', 'Tree Line Area'), ('Tree Line Ledge Drop', 'Tree Line Area'), # OWG ('Dark Tree Line Ledge Drop', 'Dark Tree Line Area') # OWG ], [ - ('Dark Tree Line Mirror Spot', 'Dark Tree Line Area'), ('Tree Line Ledge Drop', 'Dark Tree Line Area'), # OWG ('Dark Tree Line Ledge Drop', 'Tree Line Area') # OWG ]), 0x2f: ([ - ('Eastern Nook Mirror Spot', 'Eastern Nook Area'), ('East Hyrule Teleporter', 'Palace of Darkness Nook Area') ], [ - ('Darkness Nook Mirror Spot', 'Palace of Darkness Nook Area'), ('East Dark World Teleporter', 'Eastern Nook Area') ]), 0x30: ([ - ('Desert Mirror Spot', 'Desert Area'), - ('Desert Ledge Mirror Spot', 'Desert Ledge'), - ('Checkerboard Mirror Spot', 'Desert Checkerboard Ledge'), - ('DP Stairs Mirror Spot', 'Desert Palace Stairs'), - ('DP Entrance (North) Mirror Spot', 'Desert Palace Entrance (North) Spot'), - ('Bombos Tablet Ledge Mirror Spot', 'Bombos Tablet Ledge'), + ('Bombos Tablet Ledge Mirror Spot', 'Bombos Tablet Ledge'), # OWG ('Desert Teleporter', 'Misery Mire Teleporter Ledge'), ('Desert Boss Cliff Ledge Drop', 'Desert Palace Entrance (North) Spot'), # OWG ('Mire Cliff Ledge Drop', 'Misery Mire Area'), # OWG @@ -1664,10 +1496,6 @@ ow_connections = { ], [ ('Checkerboard Ledge Approach', 'Desert Checkerboard Ledge'), ('Checkerboard Ledge Leave', 'Desert Area'), - ('Misery Mire Mirror Spot', 'Misery Mire Area'), - ('Misery Mire Ledge Mirror Spot', 'Misery Mire Area'), - ('Misery Mire Blocked Mirror Spot', 'Misery Mire Area'), - ('Misery Mire Main Mirror Spot', 'Misery Mire Area'), ('Misery Mire Teleporter', 'Desert Palace Teleporter Ledge'), ('Desert Boss Cliff Ledge Drop', 'Misery Mire Area'), # OWG ('Mire Cliff Ledge Drop', 'Desert Palace Entrance (North) Spot'), # OWG @@ -1675,21 +1503,15 @@ ow_connections = { ]), 0x32: ([ ('Cave 45 Ledge Drop', 'Flute Boy Approach Area'), - ('Flute Boy Entry Mirror Spot', 'Flute Boy Bush Entry'), - ('Cave 45 Mirror Spot', 'Cave 45 Ledge'), ('Cave 45 Cliff Ledge Drop', 'Cave 45 Ledge'), # OWG ('Stumpy Approach Cliff Ledge Drop', 'Stumpy Approach Area') # OWG ], [ ('Cave 45 Inverted Leave', 'Flute Boy Approach Area'), ('Cave 45 Inverted Approach', 'Cave 45 Ledge'), - ('Stumpy Approach Mirror Spot', 'Stumpy Approach Area'), - ('Stumpy Bush Entry Mirror Spot', 'Stumpy Approach Bush Entry'), ('Cave 45 Cliff Ledge Drop', 'Stumpy Approach Area'), # OWG ('Stumpy Approach Cliff Ledge Drop', 'Cave 45 Ledge') # OWG ]), 0x33: ([ - ('C Whirlpool Mirror Spot', 'C Whirlpool Area'), - ('C Whirlpool Outer Mirror Spot', 'C Whirlpool Outer Area'), ('South Hyrule Teleporter', 'Dark C Whirlpool Portal Area'), ('C Whirlpool Cliff Ledge Drop', 'C Whirlpool Area'), # OWG ('Dark C Whirlpool Cliff Ledge Drop', 'Dark C Whirlpool Area'), # OWG @@ -1700,8 +1522,6 @@ ow_connections = { ('Desert C Whirlpool Cliff Ledge Drop', 'C Whirlpool Outer Area'), # OWG ('Mire C Whirlpool Cliff Ledge Drop', 'Dark C Whirlpool Outer Area') # OWG ], [ - ('Dark C Whirlpool Mirror Spot', 'Dark C Whirlpool Area'), - ('Dark C Whirlpool Outer Mirror Spot', 'Dark C Whirlpool Outer Area'), ('South Dark World Teleporter', 'C Whirlpool Portal Area'), ('C Whirlpool Cliff Ledge Drop', 'Dark C Whirlpool Area'), # OWG ('Dark C Whirlpool Cliff Ledge Drop', 'C Whirlpool Area'), # OWG @@ -1713,23 +1533,13 @@ ow_connections = { ('Mire C Whirlpool Cliff Ledge Drop', 'C Whirlpool Outer Area') # OWG ]), 0x34: ([ - ('Statues Mirror Spot', 'Statues Area'), ('Statues Cliff Ledge Drop', 'Statues Area'), # OWG ('Hype Cliff Ledge Drop', 'Hype Cave Area') # OWG ], [ - ('Hype Cave Mirror Spot', 'Hype Cave Area'), ('Statues Cliff Ledge Drop', 'Hype Cave Area'), # OWG ('Hype Cliff Ledge Drop', 'Statues Area') # OWG ]), 0x35: ([ - ('Lake Hylia Mirror Spot', 'Lake Hylia Area'), - ('Lake Hylia Northeast Mirror Spot', 'Lake Hylia Northeast Bank'), - ('South Shore Mirror Spot', 'Lake Hylia South Shore'), - ('South Shore East Mirror Spot', 'Lake Hylia South Shore'), - ('Lake Hylia Island Mirror Spot', 'Lake Hylia Island'), - ('Lake Hylia Central Island Mirror Spot', 'Lake Hylia Central Island'), - ('Lake Hylia Water Mirror Spot', 'Lake Hylia Water'), - ('Lake Hylia Water D Mirror Spot', 'Lake Hylia Water D'), ('Lake Hylia Teleporter', 'Ice Palace Area'), #('Ice Palace Ledge Drop', 'Ice Lake Moat'), ('Lake Hylia Area Cliff Ledge Drop', 'Lake Hylia Area'), # OWG @@ -1738,58 +1548,281 @@ ow_connections = { ('Ice Palace Island FAWT Ledge Drop', 'Ice Lake Moat') # OWG ], [ ('Lake Hylia Island Pier', 'Lake Hylia Island'), - ('Ice Lake Mirror Spot', 'Ice Lake Area'), - ('Ice Lake Southwest Mirror Spot', 'Ice Lake Ledge (West)'), - ('Ice Lake Southeast Mirror Spot', 'Ice Lake Ledge (East)'), - ('Ice Lake Northeast Mirror Spot', 'Ice Lake Northeast Bank'), - ('Ice Palace Mirror Spot', 'Ice Palace Area'), - ('Ice Lake Moat Mirror Spot', 'Ice Lake Moat'), ('Ice Palace Teleporter', 'Lake Hylia Water D'), ('Lake Hylia Area Cliff Ledge Drop', 'Ice Lake Area'), # OWG ('Ice Lake Area Cliff Ledge Drop', 'Lake Hylia Area'), # OWG ('Lake Hylia Island FAWT Ledge Drop', 'Ice Lake Moat'), # OWG ('Ice Palace Island FAWT Ledge Drop', 'Lake Hylia Island') # OWG ]), - 0x37: ([ - ('Ice Cave Mirror Spot', 'Ice Cave Area') - ], [ - ('Shopping Mall Mirror Spot', 'Shopping Mall Area') - ]), 0x3a: ([ - ('Desert Pass Ledge Mirror Spot', 'Desert Pass Ledge'), - ('Desert Pass Mirror Spot', 'Desert Pass Area'), ('Desert Pass Cliff Ledge Drop', 'Desert Pass Area'), # OWG ('Swamp Nook Cliff Ledge Drop', 'Swamp Nook Area') # OWG ], [ ('Desert Pass Ladder (North)', 'Desert Pass Area'), ('Desert Pass Ladder (South)', 'Desert Pass Ledge'), - ('Swamp Nook Mirror Spot', 'Swamp Nook Area'), - ('Swamp Nook Southeast Mirror Spot', 'Swamp Nook Area'), - ('Swamp Nook Pegs Mirror Spot', 'Swamp Nook Area'), ('Desert Pass Cliff Ledge Drop', 'Swamp Nook Area'), # OWG ('Swamp Nook Cliff Ledge Drop', 'Desert Pass Area') # OWG ]), 0x3b: ([ - ('Dam Mirror Spot', 'Dam Area'), ('Dam Cliff Ledge Drop', 'Dam Area'), # OWG ('Swamp Cliff Ledge Drop', 'Swamp Area') # OWG ], [ - ('Swamp Mirror Spot', 'Swamp Area'), ('Dam Cliff Ledge Drop', 'Swamp Area'), # OWG ('Swamp Cliff Ledge Drop', 'Dam Area') # OWG - ]), - 0x3c: ([ - ('South Pass Mirror Spot', 'South Pass Area') - ], [ - ('Dark South Pass Mirror Spot', 'Dark South Pass Area') - ]), - 0x3f: ([ - ('Octoballoon Mirror Spot', 'Octoballoon Area') - ], [ - ('Bomber Corner Mirror Spot', 'Bomber Corner Area') ]) } +mirror_connections = { + 'Skull Woods Forest': ['Lost Woods East Area'], + 'Skull Woods Portal Entry': ['Lost Woods West Area'], + 'Skull Woods Forest (West)': ['Lost Woods West Area'], + 'Skull Woods Forgotten Path (Southwest)': ['Lost Woods West Area'], + 'Skull Woods Forgotten Path (Northeast)': ['Lost Woods East Area', 'Lost Woods West Area'], + + 'Dark Lumberjack Area': ['Lumberjack Area'], + + 'West Dark Death Mountain (Top)': ['West Death Mountain (Top)'], + 'West Dark Death Mountain (Bottom)': ['Spectacle Rock Ledge'], + + 'Dark Death Mountain Floating Island': ['Death Mountain Floating Island'], + 'East Dark Death Mountain (Top)': ['East Death Mountain (Top West)', 'East Death Mountain (Top East)'], + 'Dark Death Mountain Ledge': ['Spiral Cave Ledge', 'Mimic Cave Ledge'], + 'Dark Death Mountain Isolated Ledge': ['Fairy Ascension Ledge'], + 'East Dark Death Mountain (Bottom)': ['Fairy Ascension Plateau'], + 'East Dark Death Mountain (Bottom Left)': ['East Death Mountain (Bottom Left)'], + + 'Turtle Rock Area': ['Death Mountain TR Pegs'], + + 'Bumper Cave Area': ['Mountain Entry Area'], + 'Bumper Cave Entrance': ['Mountain Entry Entrance'], + 'Bumper Cave Ledge': ['Mountain Entry Ledge'], + + 'Catfish Area': ['Zora Waterfall Area'], + + 'Skull Woods Pass West Area': ['Lost Woods Pass West Area'], + 'Skull Woods Pass East Top Area': ['Lost Woods Pass East Top Area'], + 'Skull Woods Pass Portal Area': ['Lost Woods Pass Portal Area'], + 'Skull Woods Pass East Bottom Area': ['Lost Woods Pass East Bottom Area'], + + 'Dark Fortune Area': ['Kakariko Fortune Area'], + + 'Outcast Pond Area': ['Kakariko Pond Area'], + + 'Dark Chapel Area': ['Sanctuary Area', 'Bonk Rock Ledge'], + + 'Dark Graveyard Area': ['Graveyard Area'], + 'Dark Graveyard North': ['Graveyard Ledge', 'Kings Grave Area'], + + 'Qirn Jump Area': ['River Bend Area'], + 'Qirn Jump East Bank': ['River Bend East Bank'], + + 'Dark Witch Area': ['Potion Shop Area'], + 'Dark Witch Northeast': ['Potion Shop Northeast'], + + 'Catfish Approach Area': ['Zora Approach Area'], + 'Catfish Approach Ledge': ['Zora Approach Ledge'], + + 'Village of Outcasts Area': ['Kakariko Area'], + 'Dark Grassy Lawn': ['Kakariko Area'], + + 'Shield Shop Area': ['Forgotten Forest Area'], + 'Shield Shop Fence': ['Forgotten Forest Area'], + + 'Pyramid Area': ['Hyrule Castle Ledge', 'Hyrule Castle Courtyard', 'Hyrule Castle Area', 'Hyrule Castle East Entry'], + 'Pyramid Exit Ledge': ['Hyrule Castle Courtyard'], + 'Pyramid Pass': ['Hyrule Castle Area'], + + 'Broken Bridge Area': ['Wooden Bridge Area'], + 'Broken Bridge Northeast': ['Wooden Bridge Area'], + 'Broken Bridge West': ['Wooden Bridge Area'], + + 'Palace of Darkness Area': ['Eastern Palace Area'], + + 'Hammer Pegs Area': ['Blacksmith Area', 'Bat Cave Ledge'], + 'Hammer Pegs Entry': ['Blacksmith Area'], + + 'Dark Dunes Area': ['Sand Dunes Area'], + + 'Dig Game Area': ['Maze Race Ledge'], + 'Dig Game Ledge': ['Maze Race Ledge'], + + 'Frog Area': ['Kakariko Suburb Area'], + 'Archery Game Area': ['Kakariko Suburb Area'], + + 'Stumpy Area': ['Flute Boy Area'], + 'Stumpy Pass': ['Flute Boy Pass'], + + 'Dark Bonk Rocks Area': ['Central Bonk Rocks Area'], + + 'Big Bomb Shop Area': ['Links House Area'], + + 'Hammer Bridge North Area': ['Stone Bridge North Area'], + 'Hammer Bridge South Area': ['Stone Bridge South Area'], + 'Hammer Bridge Water': ['Stone Bridge Water'], + + 'Dark Tree Line Area': ['Tree Line Area'], + + 'Palace of Darkness Nook Area': ['Eastern Nook Area'], + + 'Misery Mire Area': ['Desert Area', 'Desert Ledge', 'Desert Checkerboard Ledge', 'Desert Palace Stairs', 'Desert Palace Entrance (North) Spot'], + + 'Stumpy Approach Area': ['Cave 45 Ledge'], + 'Stumpy Approach Bush Entry': ['Flute Boy Bush Entry'], + + 'Dark C Whirlpool Area': ['C Whirlpool Area'], + 'Dark C Whirlpool Outer Area': ['C Whirlpool Outer Area'], + + 'Hype Cave Area': ['Statues Area'], + + 'Ice Lake Area': ['Lake Hylia Area'], + 'Ice Lake Northeast Bank': ['Lake Hylia Northeast Bank'], + 'Ice Lake Ledge (West)': ['Lake Hylia South Shore'], + 'Ice Lake Ledge (East)': ['Lake Hylia South Shore'], + 'Ice Lake Water': ['Lake Hylia Island'], + 'Ice Palace Area': ['Lake Hylia Central Island'], + 'Ice Lake Moat': ['Lake Hylia Water', 'Lake Hylia Water D'], #needs flippers + + 'Shopping Mall Area': ['Ice Cave Area'], + + 'Swamp Nook Area': ['Desert Pass Area', 'Desert Pass Ledge'], + + 'Swamp Area': ['Dam Area'], + + 'Dark South Pass Area': ['South Pass Area'], + + 'Bomber Corner Area': ['Octoballoon Area'], + + + 'Lost Woods West Area': ['Skull Woods Forest (West)', 'Skull Woods Forgotten Path (Southwest)', 'Skull Woods Portal Entry'], + #'Lost Woods West Area': ['Skull Woods Forgotten Path (Northeast)'], # technically yes, but we dont need it + 'Lost Woods East Area': ['Skull Woods Forgotten Path (Northeast)', 'Skull Woods Forest'], + + 'Lumberjack Area': ['Dark Lumberjack Area'], + + 'West Death Mountain (Top)': ['West Dark Death Mountain (Top)'], + 'Spectacle Rock Ledge': ['West Dark Death Mountain (Bottom)'], + 'West Death Mountain (Bottom)': ['West Dark Death Mountain (Bottom)'], + + 'East Death Mountain (Top West)': ['East Dark Death Mountain (Top)'], + 'East Death Mountain (Top East)': ['East Dark Death Mountain (Top)'], + 'Spiral Cave Ledge': ['Dark Death Mountain Ledge'], + 'Mimic Cave Ledge': ['Dark Death Mountain Ledge'], + 'Fairy Ascension Ledge': ['Dark Death Mountain Isolated Ledge'], + 'Fairy Ascension Plateau': ['East Dark Death Mountain (Bottom)'], + 'East Death Mountain (Bottom Left)': ['East Dark Death Mountain (Bottom Left)'], + 'East Death Mountain (Bottom)': ['East Dark Death Mountain (Bottom)'], + 'Death Mountain Floating Island': ['Dark Death Mountain Floating Island'], + + 'Death Mountain TR Pegs': ['Turtle Rock Area'], + 'Death Mountain TR Pegs Ledge': ['Turtle Rock Ledge'], + + 'Mountain Entry Area': ['Bumper Cave Area'], + 'Mountain Entry Entrance': ['Bumper Cave Entrance'], + 'Mountain Entry Ledge': ['Bumper Cave Ledge'], + + 'Zora Waterfall Area': ['Catfish Area'], + + 'Lost Woods Pass West Area': ['Skull Woods Pass West Area'], + 'Lost Woods Pass East Top Area': ['Skull Woods Pass East Top Area'], + 'Lost Woods Pass Portal Area': ['Skull Woods Pass Portal Area'], + 'Lost Woods Pass East Bottom Area': ['Skull Woods Pass East Bottom Area'], + + 'Kakariko Fortune Area': ['Dark Fortune Area'], + + 'Kakariko Pond Area': ['Outcast Pond Area'], + + 'Sanctuary Area': ['Dark Chapel Area'], + 'Bonk Rock Ledge': ['Dark Chapel Area'], + + 'Graveyard Area': ['Dark Graveyard Area'], + 'Graveyard Ledge': ['Dark Graveyard Area'], + 'Kings Grave Area': ['Dark Graveyard Area'], + + 'River Bend Area': ['Qirn Jump Area'], + 'River Bend East Bank': ['Qirn Jump East Bank'], + + 'Potion Shop Area': ['Dark Witch Area'], + 'Potion Shop Northeast': ['Dark Witch Northeast'], + + 'Zora Approach Area': ['Catfish Approach Area'], + 'Zora Approach Ledge': ['Catfish Approach Ledge'], + + 'Kakariko Area': ['Village of Outcasts Area'], + 'Kakariko Southwest': ['Village of Outcasts Area'], + 'Kakariko Grass Yard': ['Dark Grassy Lawn'], + + 'Forgotten Forest Area': ['Shield Shop Area'], + + 'Hyrule Castle Area': ['Pyramid Area', 'Pyramid Pass'], + 'Hyrule Castle Southwest': ['Pyramid Pass'], + 'Hyrule Castle Courtyard': ['Pyramid Area'], + 'Hyrule Castle Courtyard Northeast': ['Pyramid Area'], + 'Hyrule Castle Ledge': ['Pyramid Area'], + 'Hyrule Castle East Entry': ['Pyramid Area'], + + 'Wooden Bridge Area': ['Broken Bridge Area', 'Broken Bridge West'], + 'Wooden Bridge Northeast': ['Broken Bridge Northeast'], + + 'Eastern Palace Area': ['Palace of Darkness Area'], + + 'Blacksmith Area': ['Hammer Pegs Area', 'Hammer Pegs Entry'], + + 'Sand Dunes Area': ['Dark Dunes Area'], + + 'Maze Race Area': ['Dig Game Area'], + 'Maze Race Ledge': ['Dig Game Ledge'], + + 'Kakariko Suburb Area': ['Frog Area', 'Frog Prison', 'Archery Game Area'], + + 'Flute Boy Area': ['Stumpy Area'], + 'Flute Boy Pass': ['Stumpy Pass'], + + 'Central Bonk Rocks Area': ['Dark Bonk Rocks Area'], + + 'Links House Area': ['Big Bomb Shop Area'], + + 'Stone Bridge North Area': ['Hammer Bridge North Area'], + 'Stone Bridge South Area': ['Hammer Bridge South Area'], + 'Stone Bridge Water': ['Hammer Bridge Water'], + + 'Tree Line Area': ['Dark Tree Line Area'], + + 'Eastern Nook Area': ['Palace of Darkness Nook Area'], + + 'Desert Area': ['Misery Mire Area'], + 'Desert Ledge': ['Misery Mire Area'], + 'Desert Palace Entrance (North) Spot': ['Misery Mire Area'], + 'Desert Checkerboard Ledge': ['Misery Mire Area'], + 'Desert Palace Stairs': ['Misery Mire Area'], + + 'Flute Boy Approach Area': ['Stumpy Approach Area'], + 'Cave 45 Ledge': ['Stumpy Approach Area'], + 'Flute Boy Bush Entry': ['Stumpy Approach Bush Entry'], + + 'C Whirlpool Area': ['Dark C Whirlpool Area'], + 'C Whirlpool Outer Area': ['Dark C Whirlpool Outer Area'], + + 'Statues Area': ['Hype Cave Area'], + + 'Lake Hylia Area': ['Ice Lake Area'], + 'Lake Hylia South Shore': ['Ice Lake Ledge (West)', 'Ice Lake Ledge (East)'], + 'Lake Hylia Northeast Bank': ['Ice Lake Northeast Bank'], + 'Lake Hylia Central Island': ['Ice Palace Area'], + 'Lake Hylia Water D': ['Ice Lake Moat'], + + 'Ice Cave Area': ['Shopping Mall Area'], + + 'Desert Pass Area': ['Swamp Nook Area'], + 'Desert Pass Southeast': ['Swamp Nook Area'], + 'Desert Pass Ledge': ['Swamp Nook Area'], + + 'Dam Area': ['Swamp Area'], + + 'South Pass Area': ['Dark South Pass Area'], + + 'Octoballoon Area': ['Bomber Corner Area'] +} + parallelsimilar_connections = [('Maze Race ES', 'Kakariko Suburb WS'), ('Dig Game EC', 'Frog WC') ] diff --git a/Regions.py b/Regions.py index 010d6c3b..d8dfd7eb 100644 --- a/Regions.py +++ b/Regions.py @@ -10,223 +10,223 @@ def create_regions(world, player): create_menu_region(player, 'Flute Sky', None, ['Flute Spot 1', 'Flute Spot 2', 'Flute Spot 3', 'Flute Spot 4', 'Flute Spot 5', 'Flute Spot 6', 'Flute Spot 7', 'Flute Spot 8']), create_lw_region(player, 'Master Sword Meadow', ['Master Sword Pedestal'], ['Master Sword Meadow SC']), - create_lw_region(player, 'Lost Woods West Area', None, ['Lost Woods Bush (West)', 'Skull Woods Back Mirror Spot', 'Skull Woods Forgotten (West) Mirror Spot', 'Skull Woods Forgotten (East) Mirror Spot', 'Skull Woods Portal Entry Mirror Spot', 'Lost Woods NW', 'Lost Woods SW', 'Lost Woods SC']), - create_lw_region(player, 'Lost Woods East Area', ['Mushroom'], ['Lost Woods Bush (East)', 'Lost Woods Gamble', 'Lost Woods Hideout Drop', 'Lost Woods Hideout Stump', 'Skull Woods Forgotten (Middle) Mirror Spot', 'Skull Woods Front Mirror Spot', 'Lost Woods SE', 'Lost Woods EN']), - create_lw_region(player, 'Lumberjack Area', None, ['Lumberjack Tree Tree', 'Lumberjack Tree Cave', 'Lumberjack House', 'Dark Lumberjack Mirror Spot', 'Lumberjack WN', 'Lumberjack SW']), - create_lw_region(player, 'West Death Mountain (Top)', ['Ether Tablet'], ['Spectacle Rock Approach', 'West Death Mountain Drop', 'Tower of Hera', 'West Dark Death Mountain (Top) Mirror Spot', 'West Death Mountain EN']), - create_lw_region(player, 'Spectacle Rock Ledge', ['Spectacle Rock'], ['Spectacle Rock Leave', 'Spectacle Rock Drop', 'Bubble Boy Mirror Spot']), - create_lw_region(player, 'West Death Mountain (Bottom)', ['Old Man Drop Off'], ['Old Man Drop Off', 'Old Man Cave (East)', 'Old Man House (Bottom)', 'Old Man House (Top)', 'Death Mountain Return Cave (East)', 'Spectacle Rock Cave', 'Spectacle Rock Cave Peak', 'Spectacle Rock Cave (Bottom)', 'West Dark Death Mountain (Bottom) Mirror Spot', 'West Death Mountain Teleporter', 'West Death Mountain ES']), + create_lw_region(player, 'Lost Woods West Area', None, ['Lost Woods Bush (West)', 'Lost Woods NW', 'Lost Woods SW', 'Lost Woods SC']), + create_lw_region(player, 'Lost Woods East Area', ['Mushroom'], ['Lost Woods Bush (East)', 'Lost Woods Gamble', 'Lost Woods Hideout Drop', 'Lost Woods Hideout Stump', 'Lost Woods SE', 'Lost Woods EN']), + create_lw_region(player, 'Lumberjack Area', None, ['Lumberjack Tree Tree', 'Lumberjack Tree Cave', 'Lumberjack House', 'Lumberjack WN', 'Lumberjack SW']), + create_lw_region(player, 'West Death Mountain (Top)', ['Ether Tablet'], ['Spectacle Rock Approach', 'West Death Mountain Drop', 'Tower of Hera', 'West Death Mountain EN']), + create_lw_region(player, 'Spectacle Rock Ledge', ['Spectacle Rock'], ['Spectacle Rock Leave', 'Spectacle Rock Drop']), + create_lw_region(player, 'West Death Mountain (Bottom)', ['Old Man Drop Off'], ['Old Man Drop Off', 'Old Man Cave (East)', 'Old Man House (Bottom)', 'Old Man House (Top)', 'Death Mountain Return Cave (East)', 'Spectacle Rock Cave', 'Spectacle Rock Cave Peak', 'Spectacle Rock Cave (Bottom)', 'West Death Mountain Teleporter', 'West Death Mountain ES']), create_dw_region(player, 'Old Man Drop Off', ['Old Man'], None), - create_lw_region(player, 'East Death Mountain (Top West)', None, ['DM Hammer Bridge (West)', 'East Dark Death Mountain (Top West) Mirror Spot', 'East Death Mountain WN']), - create_lw_region(player, 'East Death Mountain (Top East)', None, ['DM Hammer Bridge (East)', 'Floating Island Bridge (East)', 'East Death Mountain Spiral Ledge Drop', 'East Death Mountain Fairy Ledge Drop', 'East Death Mountain Mimic Ledge Drop', 'Paradox Cave (Top)', 'East Dark Death Mountain (Top East) Mirror Spot', 'East Death Mountain EN']), - create_lw_region(player, 'Spiral Cave Ledge', None, ['Spiral Ledge Drop', 'Spiral Mimic Bridge (West)', 'Spiral Cave', 'TR Ledge (West) Mirror Spot']), - create_lw_region(player, 'Mimic Cave Ledge', None, ['Mimic Ledge Drop', 'Spiral Mimic Bridge (East)', 'Mimic Cave', 'TR Ledge (East) Mirror Spot']), + create_lw_region(player, 'East Death Mountain (Top West)', None, ['DM Hammer Bridge (West)', 'East Death Mountain WN']), + create_lw_region(player, 'East Death Mountain (Top East)', None, ['DM Hammer Bridge (East)', 'Floating Island Bridge (East)', 'East Death Mountain Spiral Ledge Drop', 'East Death Mountain Fairy Ledge Drop', 'East Death Mountain Mimic Ledge Drop', 'Paradox Cave (Top)', 'East Death Mountain EN']), + create_lw_region(player, 'Spiral Cave Ledge', None, ['Spiral Ledge Drop', 'Spiral Mimic Bridge (West)', 'Spiral Cave']), + create_lw_region(player, 'Mimic Cave Ledge', None, ['Mimic Ledge Drop', 'Spiral Mimic Bridge (East)', 'Mimic Cave']), create_lw_region(player, 'Spiral Mimic Ledge Extend', None, ['Spiral Ledge Approach', 'Mimic Ledge Approach', 'Spiral Mimic Ledge Drop']), - create_lw_region(player, 'Fairy Ascension Ledge', None, ['Fairy Ascension Ledge Drop', 'Fairy Ascension Cave (Top)', 'TR Isolated Mirror Spot']), - create_lw_region(player, 'Fairy Ascension Plateau', None, ['Fairy Ascension Rocks (North)', 'Fairy Ascension Plateau Ledge Drop', 'Fairy Ascension Cave (Bottom)', 'East Dark Death Mountain (Bottom Plateau) Mirror Spot']), - create_lw_region(player, 'East Death Mountain (Bottom Left)', None, ['DM Broken Bridge (West)', 'East Dark Death Mountain (Bottom Left) Mirror Spot', 'East Death Mountain WS']), - create_lw_region(player, 'East Death Mountain (Bottom)', None, ['DM Broken Bridge (East)', 'Paradox Cave (Bottom)', 'Paradox Cave (Middle)', 'Hookshot Fairy', 'Spiral Cave (Bottom)', 'Fairy Ascension Rocks (South)', 'East Dark Death Mountain (Bottom) Mirror Spot', 'East Death Mountain Teleporter']), - create_lw_region(player, 'Death Mountain Floating Island', ['Floating Island'], ['Floating Island Bridge (West)', 'Dark Floating Island Mirror Spot']), - create_lw_region(player, 'Death Mountain TR Pegs', None, ['TR Pegs Ledge Entry', 'Turtle Rock Mirror Spot', 'Death Mountain TR Pegs WN']), - create_lw_region(player, 'Death Mountain TR Pegs Ledge', None, ['TR Pegs Ledge Leave', 'TR Pegs Ledge Drop', 'Turtle Rock Ledge Mirror Spot', 'TR Pegs Teleporter']), - create_lw_region(player, 'Mountain Entry Area', None, ['Mountain Entry Entrance Rock (West)', 'Bumper Cave Area Mirror Spot', 'Mountain Entry NW', 'Mountain Entry SE']), - create_lw_region(player, 'Mountain Entry Entrance', None, ['Mountain Entry Entrance Rock (East)', 'Mountain Entry Entrance Ledge Drop', 'Old Man Cave (West)', 'Bumper Cave Entry Mirror Spot']), - create_lw_region(player, 'Mountain Entry Ledge', None, ['Mountain Entry Ledge Drop', 'Death Mountain Return Cave (West)', 'Bumper Cave Ledge Mirror Spot'], 'a ledge in the foothills'), - create_lw_region(player, 'Zora Waterfall Area', None, ['Zora Waterfall Water Entry', 'Catfish Mirror Spot', 'Zora Waterfall SE', 'Zora Waterfall NE']), + create_lw_region(player, 'Fairy Ascension Ledge', None, ['Fairy Ascension Ledge Drop', 'Fairy Ascension Cave (Top)']), + create_lw_region(player, 'Fairy Ascension Plateau', None, ['Fairy Ascension Rocks (North)', 'Fairy Ascension Plateau Ledge Drop', 'Fairy Ascension Cave (Bottom)']), + create_lw_region(player, 'East Death Mountain (Bottom Left)', None, ['DM Broken Bridge (West)', 'East Death Mountain WS']), + create_lw_region(player, 'East Death Mountain (Bottom)', None, ['DM Broken Bridge (East)', 'Paradox Cave (Bottom)', 'Paradox Cave (Middle)', 'Hookshot Fairy', 'Spiral Cave (Bottom)', 'Fairy Ascension Rocks (South)', 'East Death Mountain Teleporter']), + create_lw_region(player, 'Death Mountain Floating Island', ['Floating Island'], ['Floating Island Bridge (West)']), + create_lw_region(player, 'Death Mountain TR Pegs', None, ['TR Pegs Ledge Entry', 'Death Mountain TR Pegs WN']), + create_lw_region(player, 'Death Mountain TR Pegs Ledge', None, ['TR Pegs Ledge Leave', 'TR Pegs Ledge Drop', 'TR Pegs Teleporter']), + create_lw_region(player, 'Mountain Entry Area', None, ['Mountain Entry Entrance Rock (West)', 'Mountain Entry NW', 'Mountain Entry SE']), + create_lw_region(player, 'Mountain Entry Entrance', None, ['Mountain Entry Entrance Rock (East)', 'Mountain Entry Entrance Ledge Drop', 'Old Man Cave (West)']), + create_lw_region(player, 'Mountain Entry Ledge', None, ['Mountain Entry Ledge Drop', 'Death Mountain Return Cave (West)'], 'a ledge in the foothills'), + create_lw_region(player, 'Zora Waterfall Area', None, ['Zora Waterfall Water Entry', 'Zora Waterfall SE', 'Zora Waterfall NE']), create_lw_region(player, 'Zora Waterfall Water', None, ['Zora Waterfall Water Approach', 'Zora Waterfall Landing', 'Zora Whirlpool'], 'Light World', Terrain.Water), create_lw_region(player, 'Zora Waterfall Entryway', None, ['Zora Waterfall Water Drop', 'Waterfall of Wishing']), create_lw_region(player, 'Zoras Domain', ['King Zora', 'Zora\'s Ledge'], ['Zoras Domain SW']), - create_lw_region(player, 'Lost Woods Pass West Area', None, ['Skull Woods Pass West Mirror Spot', 'Lost Woods Pass NW', 'Lost Woods Pass SW']), - create_lw_region(player, 'Lost Woods Pass East Top Area', None, ['Skull Woods Pass East Top Mirror Spot', 'Lost Woods Pass Hammer (North)', 'Lost Woods Pass NE']), - create_lw_region(player, 'Lost Woods Pass Portal Area', None, ['Skull Woods Pass Portal Mirror Spot', 'Kakariko Teleporter', 'Lost Woods Pass Hammer (South)', 'Lost Woods Pass Rock (North)']), - create_lw_region(player, 'Lost Woods Pass East Bottom Area', None, ['Skull Woods Pass East Bottom Mirror Spot', 'Lost Woods Pass Rock (South)', 'Lost Woods Pass SE']), - create_lw_region(player, 'Kakariko Fortune Area', None, ['Fortune Teller (Light)', 'Outcast Fortune Mirror Spot', 'Kakariko Fortune NE', 'Kakariko Fortune EN', 'Kakariko Fortune ES', 'Kakariko Fortune SC']), - create_lw_region(player, 'Kakariko Pond Area', None, ['Outcast Pond Mirror Spot', 'Kakariko Pond NE', 'Kakariko Pond WN', 'Kakariko Pond WS', 'Kakariko Pond SW', 'Kakariko Pond SE', 'Kakariko Pond EN', 'Kakariko Pond ES', 'Kakariko Pond Whirlpool']), - create_lw_region(player, 'Sanctuary Area', None, ['Sanctuary', 'Dark Chapel Mirror Spot', 'Sanctuary WS', 'Sanctuary EC']), - create_lw_region(player, 'Bonk Rock Ledge', None, ['Bonk Rock Cave', 'Bonk Rock Ledge Drop', 'Dark Chapel Ledge Mirror Spot', 'Sanctuary WN']), - create_lw_region(player, 'Graveyard Area', None, ['Sanctuary Grave', 'Kings Grave Outer Rocks', 'Graveyard Ladder (Bottom)', 'Dark Graveyard Mirror Spot', 'Graveyard WC', 'Graveyard EC']), - create_lw_region(player, 'Graveyard Ledge', None, ['Graveyard Ledge Drop', 'Graveyard Ladder (Top)', 'Graveyard Cave', 'Dark Graveyard Ledge Mirror Spot']), - create_lw_region(player, 'Kings Grave Area', None, ['Kings Grave Inner Rocks', 'Kings Grave', 'Dark Graveyard Grave Mirror Spot']), - create_lw_region(player, 'River Bend Area', None, ['North Fairy Cave Drop', 'River Bend Water Drop', 'North Fairy Cave', 'Qirn Jump Mirror Spot', 'River Bend WC', 'River Bend SW']), - create_lw_region(player, 'River Bend East Bank', None, ['River Bend East Water Drop', 'Qirn Jump East Mirror Spot', 'River Bend SE', 'River Bend EC', 'River Bend ES']), + create_lw_region(player, 'Lost Woods Pass West Area', None, ['Lost Woods Pass NW', 'Lost Woods Pass SW']), + create_lw_region(player, 'Lost Woods Pass East Top Area', None, ['Lost Woods Pass Hammer (North)', 'Lost Woods Pass NE']), + create_lw_region(player, 'Lost Woods Pass Portal Area', None, ['Kakariko Teleporter', 'Lost Woods Pass Hammer (South)', 'Lost Woods Pass Rock (North)']), + create_lw_region(player, 'Lost Woods Pass East Bottom Area', None, ['Lost Woods Pass Rock (South)', 'Lost Woods Pass SE']), + create_lw_region(player, 'Kakariko Fortune Area', None, ['Fortune Teller (Light)', 'Kakariko Fortune NE', 'Kakariko Fortune EN', 'Kakariko Fortune ES', 'Kakariko Fortune SC']), + create_lw_region(player, 'Kakariko Pond Area', None, ['Kakariko Pond NE', 'Kakariko Pond WN', 'Kakariko Pond WS', 'Kakariko Pond SW', 'Kakariko Pond SE', 'Kakariko Pond EN', 'Kakariko Pond ES', 'Kakariko Pond Whirlpool']), + create_lw_region(player, 'Sanctuary Area', None, ['Sanctuary', 'Sanctuary WS', 'Sanctuary EC']), + create_lw_region(player, 'Bonk Rock Ledge', None, ['Bonk Rock Cave', 'Bonk Rock Ledge Drop', 'Sanctuary WN']), + create_lw_region(player, 'Graveyard Area', None, ['Sanctuary Grave', 'Kings Grave Outer Rocks', 'Graveyard Ladder (Bottom)', 'Graveyard WC', 'Graveyard EC']), + create_lw_region(player, 'Graveyard Ledge', None, ['Graveyard Ledge Drop', 'Graveyard Ladder (Top)', 'Graveyard Cave']), + create_lw_region(player, 'Kings Grave Area', None, ['Kings Grave Inner Rocks', 'Kings Grave']), + create_lw_region(player, 'River Bend Area', None, ['North Fairy Cave Drop', 'River Bend Water Drop', 'North Fairy Cave', 'River Bend WC', 'River Bend SW']), + create_lw_region(player, 'River Bend East Bank', None, ['River Bend East Water Drop', 'River Bend SE', 'River Bend EC', 'River Bend ES']), create_lw_region(player, 'River Bend Water', None, ['River Bend West Pier', 'River Bend East Pier', 'River Bend EN', 'River Bend SC', 'River Bend Whirlpool'], 'Light World', Terrain.Water), - create_lw_region(player, 'Potion Shop Area', None, ['Potion Shop Water Drop', 'Potion Shop Rock (South)', 'Potion Shop', 'Dark Witch Mirror Spot', 'Potion Shop WC', 'Potion Shop WS']), - create_lw_region(player, 'Potion Shop Northeast', None, ['Potion Shop Northeast Water Drop', 'Potion Shop Rock (North)', 'Dark Witch Northeast Mirror Spot', 'Potion Shop EC']), + create_lw_region(player, 'Potion Shop Area', None, ['Potion Shop Water Drop', 'Potion Shop Rock (South)', 'Potion Shop', 'Potion Shop WC', 'Potion Shop WS']), + create_lw_region(player, 'Potion Shop Northeast', None, ['Potion Shop Northeast Water Drop', 'Potion Shop Rock (North)', 'Potion Shop EC']), create_lw_region(player, 'Potion Shop Water', None, ['Potion Shop WN', 'Potion Shop EN'], 'Light World', Terrain.Water), - create_lw_region(player, 'Zora Approach Area', None, ['Zora Approach Rocks (West)', 'Zora Approach Bottom Ledge Drop', 'Zora Approach Water Drop', 'Catfish Approach Mirror Spot', 'Zora Approach WC']), - create_lw_region(player, 'Zora Approach Ledge', None, ['Zora Approach Rocks (East)', 'Zora Approach Ledge Drop', 'Catfish Approach Ledge Mirror Spot', 'Zora Approach NE']), + create_lw_region(player, 'Zora Approach Area', None, ['Zora Approach Rocks (West)', 'Zora Approach Bottom Ledge Drop', 'Zora Approach Water Drop', 'Zora Approach WC']), + create_lw_region(player, 'Zora Approach Ledge', None, ['Zora Approach Rocks (East)', 'Zora Approach Ledge Drop', 'Zora Approach NE']), create_lw_region(player, 'Zora Approach Water', None, ['Zora Approach WN'], 'Light World', Terrain.Water), create_lw_region(player, 'Kakariko Area', ['Bottle Merchant'], ['Kakariko Southwest Bush (North)', 'Kakariko Yard Bush (South)', 'Kakariko Well Drop', 'Kakariko Well Cave', 'Blinds Hideout', 'Elder House (West)', 'Elder House (East)', 'Snitch Lady (West)', 'Snitch Lady (East)', 'Chicken House', 'Sick Kids House', - 'Kakariko Shop', 'Tavern (Front)', 'Tavern North', 'Village of Outcasts Mirror Spot', 'Kakariko NW', 'Kakariko NC', 'Kakariko NE', 'Kakariko ES', 'Kakariko SE']), - create_lw_region(player, 'Kakariko Southwest', None, ['Kakariko Southwest Bush (South)', 'Light World Bomb Hut', 'Village of Outcasts Southwest Mirror Spot']), - create_lw_region(player, 'Kakariko Grass Yard', None, ['Kakariko Yard Bush (North)', 'Bush Covered House', 'Hammer House Mirror Spot']), - create_lw_region(player, 'Forgotten Forest Area', None, ['Shield Shop Mirror Spot', 'Forgotten Forest NW', 'Forgotten Forest NE', 'Forgotten Forest ES']), - create_lw_region(player, 'Hyrule Castle Area', None, ['Hyrule Castle Secret Entrance Drop', 'Hyrule Castle Main Gate (South)', 'Hyrule Castle Inner East Rock', 'Hyrule Castle Southwest Bush (North)', 'Top of Pyramid', 'Pyramid Mirror Spot', 'Pyramid Pass Mirror Spot', 'Hyrule Castle WN', 'Hyrule Castle SE']), + 'Kakariko Shop', 'Tavern (Front)', 'Tavern North', 'Kakariko NW', 'Kakariko NC', 'Kakariko NE', 'Kakariko ES', 'Kakariko SE']), + create_lw_region(player, 'Kakariko Southwest', None, ['Kakariko Southwest Bush (South)', 'Light World Bomb Hut']), + create_lw_region(player, 'Kakariko Grass Yard', None, ['Kakariko Yard Bush (North)', 'Bush Covered House']), + create_lw_region(player, 'Forgotten Forest Area', None, ['Forgotten Forest NW', 'Forgotten Forest NE', 'Forgotten Forest ES']), + create_lw_region(player, 'Hyrule Castle Area', None, ['Hyrule Castle Secret Entrance Drop', 'Hyrule Castle Main Gate (South)', 'Hyrule Castle Inner East Rock', 'Hyrule Castle Southwest Bush (North)', 'Top of Pyramid', 'Hyrule Castle WN', 'Hyrule Castle SE']), create_lw_region(player, 'Hyrule Castle Southwest', None, ['Hyrule Castle Southwest Bush (South)', 'Hyrule Castle SW']), - create_lw_region(player, 'Hyrule Castle Courtyard', None, ['Hyrule Castle Courtyard Bush (South)', 'Hyrule Castle Main Gate (North)', 'Hyrule Castle Entrance (South)', 'Pyramid Courtyard Mirror Spot', 'Top of Pyramid (Inner)']), - create_lw_region(player, 'Hyrule Castle Courtyard Northeast', None, ['Hyrule Castle Courtyard Bush (North)', 'Hyrule Castle Secret Entrance Stairs', 'Pyramid Uncle Mirror Spot']), - create_lw_region(player, 'Hyrule Castle Ledge', None, ['Hyrule Castle Ledge Drop', 'Hyrule Castle Ledge Courtyard Drop', 'Inverted Pyramid Entrance', 'Hyrule Castle Entrance (West)', 'Agahnims Tower', 'Hyrule Castle Entrance (East)', 'Inverted Pyramid Hole', 'Pyramid From Ledge Mirror Spot'], 'the castle rampart'), - create_lw_region(player, 'Hyrule Castle East Entry', None, ['Hyrule Castle Outer East Rock', 'Pyramid Entry Mirror Spot', 'Hyrule Castle ES']), + create_lw_region(player, 'Hyrule Castle Courtyard', None, ['Hyrule Castle Courtyard Bush (South)', 'Hyrule Castle Main Gate (North)', 'Hyrule Castle Entrance (South)', 'Top of Pyramid (Inner)']), + create_lw_region(player, 'Hyrule Castle Courtyard Northeast', None, ['Hyrule Castle Courtyard Bush (North)', 'Hyrule Castle Secret Entrance Stairs']), + create_lw_region(player, 'Hyrule Castle Ledge', None, ['Hyrule Castle Ledge Drop', 'Hyrule Castle Ledge Courtyard Drop', 'Inverted Pyramid Entrance', 'Hyrule Castle Entrance (West)', 'Agahnims Tower', 'Hyrule Castle Entrance (East)', 'Inverted Pyramid Hole'], 'the castle rampart'), + create_lw_region(player, 'Hyrule Castle East Entry', None, ['Hyrule Castle Outer East Rock', 'Hyrule Castle ES']), create_dw_region(player, 'Hyrule Castle Water', None, ['Blacksmith Water Exit'], 'Dark World', Terrain.Water), - create_lw_region(player, 'Wooden Bridge Area', None, ['Wooden Bridge Bush (South)', 'Wooden Bridge Water Drop', 'Broken Bridge West Mirror Spot', 'Broken Bridge East Mirror Spot', 'Wooden Bridge NW', 'Wooden Bridge SW']), - create_lw_region(player, 'Wooden Bridge Northeast', None, ['Wooden Bridge Bush (North)', 'Wooden Bridge Northeast Water Drop', 'Broken Bridge Northeast Mirror Spot', 'Wooden Bridge NE']), + create_lw_region(player, 'Wooden Bridge Area', None, ['Wooden Bridge Bush (South)', 'Wooden Bridge Water Drop', 'Wooden Bridge NW', 'Wooden Bridge SW']), + create_lw_region(player, 'Wooden Bridge Northeast', None, ['Wooden Bridge Bush (North)', 'Wooden Bridge Northeast Water Drop', 'Wooden Bridge NE']), create_lw_region(player, 'Wooden Bridge Water', None, ['Wooden Bridge NC'], 'Light World', Terrain.Water), - create_lw_region(player, 'Eastern Palace Area', None, ['Sahasrahlas Hut', 'Eastern Palace', 'Palace of Darkness Mirror Spot', 'Eastern Palace SW', 'Eastern Palace SE']), + create_lw_region(player, 'Eastern Palace Area', None, ['Sahasrahlas Hut', 'Eastern Palace', 'Eastern Palace SW', 'Eastern Palace SE']), create_lw_region(player, 'Eastern Cliff', None, ['Sand Dunes Ledge Drop', 'Stone Bridge East Ledge Drop', 'Tree Line Ledge Drop', 'Eastern Palace Ledge Drop']), - create_lw_region(player, 'Blacksmith Area', None, ['Blacksmiths Hut', 'Bat Cave Cave', 'Bat Cave Ledge Peg', 'Hammer Pegs Mirror Spot', 'Hammer Pegs Entry Mirror Spot', 'Blacksmith WS']), + create_lw_region(player, 'Blacksmith Area', None, ['Blacksmiths Hut', 'Bat Cave Cave', 'Bat Cave Ledge Peg', 'Blacksmith WS']), create_lw_region(player, 'Bat Cave Ledge', None, ['Bat Cave Ledge Peg (East)', 'Bat Cave Drop']), - create_lw_region(player, 'Sand Dunes Area', None, ['Dark Dunes Mirror Spot', 'Sand Dunes NW', 'Sand Dunes WN', 'Sand Dunes SC']), - create_lw_region(player, 'Maze Race Area', None, ['Dig Game Mirror Spot', 'Maze Race ES']), - create_lw_region(player, 'Maze Race Ledge', None, ['Two Brothers House (West)', 'Maze Race Game', 'Dig Game Ledge Mirror Spot'], 'a race against time'), + create_lw_region(player, 'Sand Dunes Area', None, ['Sand Dunes NW', 'Sand Dunes WN', 'Sand Dunes SC']), + create_lw_region(player, 'Maze Race Area', None, ['Maze Race ES']), + create_lw_region(player, 'Maze Race Ledge', None, ['Two Brothers House (West)', 'Maze Race Game'], 'a race against time'), create_lw_region(player, 'Maze Race Prize', ['Maze Race'], ['Maze Race Ledge Drop']), #this is a separate region to make OWG item get possible without allowing the Entrance access - create_lw_region(player, 'Kakariko Suburb Area', None, ['Library', 'Two Brothers House (East)', 'Kakariko Gamble Game', 'Frog Mirror Spot', 'Frog Prison Mirror Spot', 'Archery Game Mirror Spot', 'Kakariko Suburb NE', 'Kakariko Suburb WS', 'Kakariko Suburb ES']), - create_lw_region(player, 'Flute Boy Area', ['Flute Spot'], ['Stumpy Mirror Spot', 'Flute Boy SC']), - create_lw_region(player, 'Flute Boy Pass', None, ['Stumpy Pass Mirror Spot', 'Flute Boy WS', 'Flute Boy SW']), - create_lw_region(player, 'Central Bonk Rocks Area', None, ['Bonk Fairy (Light)', 'Dark Bonk Rocks Mirror Spot', 'Central Bonk Rocks NW', 'Central Bonk Rocks SW', 'Central Bonk Rocks EN', 'Central Bonk Rocks EC', 'Central Bonk Rocks ES']), - create_lw_region(player, 'Links House Area', None, ['Links House', 'Big Bomb Shop Mirror Spot', 'Links House NE', 'Links House WN', 'Links House WC', 'Links House WS', 'Links House SC', 'Links House ES']), - create_lw_region(player, 'Stone Bridge North Area', None, ['Stone Bridge Southbound', 'Hammer Bridge North Mirror Spot', 'Stone Bridge NC', 'Stone Bridge EN']), - 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, 'Kakariko Suburb Area', None, ['Library', 'Two Brothers House (East)', 'Kakariko Gamble Game', 'Kakariko Suburb NE', 'Kakariko Suburb WS', 'Kakariko Suburb ES']), + create_lw_region(player, 'Flute Boy Area', ['Flute Spot'], ['Flute Boy SC']), + create_lw_region(player, 'Flute Boy Pass', None, ['Flute Boy WS', 'Flute Boy SW']), + create_lw_region(player, 'Central Bonk Rocks Area', None, ['Bonk Fairy (Light)', 'Central Bonk Rocks NW', 'Central Bonk Rocks SW', 'Central Bonk Rocks EN', 'Central Bonk Rocks EC', 'Central Bonk Rocks ES']), + create_lw_region(player, 'Links House Area', None, ['Links House', 'Links House NE', 'Links House WN', 'Links House WC', 'Links House WS', 'Links House SC', 'Links House ES']), + create_lw_region(player, 'Stone Bridge North Area', None, ['Stone Bridge Southbound', 'Stone Bridge NC', 'Stone Bridge EN']), + create_lw_region(player, 'Stone Bridge South Area', None, ['Stone Bridge Northbound', 'Stone Bridge WS', 'Stone Bridge SC']), + create_lw_region(player, 'Stone Bridge Water', None, ['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', '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 Area', None, ['Lake Hylia Fairy', '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']), - create_lw_region(player, 'Desert Area', None, ['Desert Palace Statue Move', 'Checkerboard Ledge Approach', 'Aginahs Cave', 'Misery Mire Mirror Spot', 'Desert ES']), - create_lw_region(player, 'Desert Ledge', ['Desert Ledge'], ['Desert Ledge Outer Rocks', 'Desert Ledge Drop', 'Desert Palace Entrance (West)', 'Misery Mire Ledge Mirror Spot'], 'the desert ledge'), - create_lw_region(player, 'Desert Palace Entrance (North) Spot', None, ['Desert Ledge Inner Rocks', 'Desert Palace Entrance (North)', 'Misery Mire Blocked Mirror Spot'], 'the desert ledge'), + create_lw_region(player, 'Eastern Nook Area', None, ['Long Fairy Cave', 'East Hyrule Teleporter', 'Eastern Nook NE']), + create_lw_region(player, 'Desert Area', None, ['Desert Palace Statue Move', 'Checkerboard Ledge Approach', 'Aginahs Cave', 'Desert ES']), + create_lw_region(player, 'Desert Ledge', ['Desert Ledge'], ['Desert Ledge Outer Rocks', 'Desert Ledge Drop', 'Desert Palace Entrance (West)'], 'the desert ledge'), + create_lw_region(player, 'Desert Palace Entrance (North) Spot', None, ['Desert Ledge Inner Rocks', 'Desert Palace Entrance (North)'], 'the desert ledge'), create_lw_region(player, 'Desert Checkerboard Ledge', None, ['Checkerboard Ledge Leave', 'Checkerboard Ledge Drop', 'Checkerboard Cave']), - create_lw_region(player, 'Desert Palace Stairs', None, ['Desert Palace Entrance (South)', 'Misery Mire Main Mirror Spot'], 'a sandy vista'), + create_lw_region(player, 'Desert Palace Stairs', None, ['Desert Palace Entrance (South)'], 'a sandy vista'), create_lw_region(player, 'Desert Palace Mouth', None, ['Desert Mouth Drop', 'Desert Palace Entrance (East)']), create_lw_region(player, 'Desert Palace Teleporter Ledge', None, ['Desert Teleporter Drop', 'Desert Teleporter']), create_lw_region(player, 'Desert Northeast Cliffs', None, ['Desert Boss Cliff Ledge Drop', 'Checkerboard Cliff Ledge Drop', 'Suburb Cliff Ledge Drop', 'Cave 45 Cliff Ledge Drop', 'Desert C Whirlpool Cliff Ledge Drop', 'Desert Pass Cliff Ledge Drop', 'Dam Cliff Ledge Drop']), create_lw_region(player, 'Bombos Tablet Ledge', ['Bombos Tablet'], ['Bombos Tablet Drop', 'Desert EC']), - 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, 'Flute Boy Approach Area', None, ['Flute Boy Bush (South)', 'Cave 45 Inverted Approach', 'Flute Boy Approach NW', 'Flute Boy Approach EC']), + create_lw_region(player, 'Flute Boy Bush Entry', None, ['Flute Boy Bush (North)', '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 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 Area', None, ['C Whirlpool Rock (Bottom)', 'C Whirlpool Pegs (Right)', 'C Whirlpool Water Entry', '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']), + create_lw_region(player, 'C Whirlpool Outer Area', None, ['C Whirlpool Rock (Top)', 'C Whirlpool WC', 'C Whirlpool NW']), + create_lw_region(player, 'Statues Area', None, ['Statues Water Entry', 'Light Hype Fairy', 'Statues NC', 'Statues WN', 'Statues WS', 'Statues SC']), create_lw_region(player, 'Statues Water', None, ['Statues Landing', 'Statues WC'], 'Light World', Terrain.Water), - create_lw_region(player, 'Lake Hylia Area', None, ['Lake Hylia Water Drop', 'Lake Hylia Fortune Teller', 'Cave Shop (Lake Hylia)', 'Ice Lake Mirror Spot', 'Lake Hylia NW']), - create_lw_region(player, 'Lake Hylia South Shore', None, ['Lake Hylia South Water Drop', 'Mini Moldorm Cave', 'Ice Lake Southwest Mirror Spot', 'Ice Lake Southeast Mirror Spot', 'Lake Hylia WS', 'Lake Hylia ES']), - create_lw_region(player, 'Lake Hylia Northeast Bank', None, ['Lake Hylia Northeast Water Drop', 'Ice Lake Northeast Mirror Spot', 'Lake Hylia NE']), - create_lw_region(player, 'Lake Hylia Central Island', None, ['Lake Hylia Central Water Drop', 'Capacity Upgrade', 'Ice Palace Mirror Spot', 'Lake Hylia Teleporter']), + create_lw_region(player, 'Lake Hylia Area', None, ['Lake Hylia Water Drop', 'Lake Hylia Fortune Teller', 'Cave Shop (Lake Hylia)', 'Lake Hylia NW']), + create_lw_region(player, 'Lake Hylia South Shore', None, ['Lake Hylia South Water Drop', 'Mini Moldorm Cave', 'Lake Hylia WS', 'Lake Hylia ES']), + create_lw_region(player, 'Lake Hylia Northeast Bank', None, ['Lake Hylia Northeast Water Drop', 'Lake Hylia NE']), + create_lw_region(player, 'Lake Hylia Central Island', None, ['Lake Hylia Central Water Drop', 'Capacity Upgrade', 'Lake Hylia Teleporter']), create_lw_region(player, 'Lake Hylia Island', ['Lake Hylia Island'], ['Lake Hylia Island Water Drop']), create_lw_region(player, 'Lake Hylia Water', None, ['Lake Hylia Central Island Pier', 'Lake Hylia Island Pier', 'Lake Hylia West Pier', 'Lake Hylia East Pier', 'Lake Hylia Water D Approach', 'Lake Hylia NC', 'Lake Hylia EC', 'Lake Hylia Whirlpool'], 'Light World', Terrain.Water), - create_lw_region(player, 'Lake Hylia Water D', None, ['Lake Hylia Water D Leave', 'Ice Lake Moat Mirror Spot'], 'Light World', Terrain.Water), - create_lw_region(player, 'Ice Cave Area', None, ['Ice Rod Cave', 'Good Bee Cave', '20 Rupee Cave', 'Shopping Mall Mirror Spot', 'Ice Cave SE', 'Ice Cave SW']), - create_lw_region(player, 'Desert Pass Area', ['Middle Aged Man'], ['Desert Pass Ladder (South)', 'Middle Aged Man', 'Desert Fairy', '50 Rupee Cave', 'Swamp Nook Mirror Spot', 'Desert Pass WS', 'Desert Pass EC', 'Desert Pass Rocks (North)']), + create_lw_region(player, 'Lake Hylia Water D', None, ['Lake Hylia Water D Leave'], 'Light World', Terrain.Water), + create_lw_region(player, 'Ice Cave Area', None, ['Ice Rod Cave', 'Good Bee Cave', '20 Rupee Cave', 'Ice Cave SE', 'Ice Cave SW']), + create_lw_region(player, 'Desert Pass Area', ['Middle Aged Man'], ['Desert Pass Ladder (South)', 'Middle Aged Man', 'Desert Fairy', '50 Rupee Cave', 'Desert Pass WS', 'Desert Pass EC', 'Desert Pass Rocks (North)']), create_lw_region(player, 'Middle Aged Man', ['Purple Chest'], None), - create_lw_region(player, 'Desert Pass Southeast', None, ['Desert Pass Rocks (South)', 'Swamp Nook Southeast Mirror Spot', 'Desert Pass ES']), - create_lw_region(player, 'Desert Pass Ledge', None, ['Desert Pass Ladder (North)', 'Desert Pass Ledge Drop', 'Swamp Nook Pegs Mirror Spot', 'Desert Pass WC']), - create_lw_region(player, 'Dam Area', ['Sunken Treasure'], ['Dam', 'Swamp Mirror Spot', 'Dam WC', 'Dam WS', 'Dam NC', 'Dam EC']), - create_lw_region(player, 'South Pass Area', None, ['Dark South Pass Mirror Spot', 'South Pass WC', 'South Pass NC', 'South Pass ES']), - create_lw_region(player, 'Octoballoon Area', None, ['Octoballoon Water Drop', 'Bomber Corner Mirror Spot', 'Octoballoon WS', 'Octoballoon NE']), + create_lw_region(player, 'Desert Pass Southeast', None, ['Desert Pass Rocks (South)', 'Desert Pass ES']), + create_lw_region(player, 'Desert Pass Ledge', None, ['Desert Pass Ladder (North)', 'Desert Pass Ledge Drop', 'Desert Pass WC']), + create_lw_region(player, 'Dam Area', ['Sunken Treasure'], ['Dam', 'Dam WC', 'Dam WS', 'Dam NC', 'Dam EC']), + create_lw_region(player, 'South Pass Area', None, ['South Pass WC', 'South Pass NC', 'South Pass ES']), + create_lw_region(player, 'Octoballoon Area', None, ['Octoballoon Water Drop', 'Octoballoon WS', 'Octoballoon NE']), create_lw_region(player, 'Octoballoon Water', None, ['Octoballoon Pier', 'Octoballoon WC', 'Octoballoon Whirlpool'], 'Light World', Terrain.Water), create_lw_region(player, 'Octoballoon Water Ledge', None, ['Octoballoon Waterfall Water Drop', 'Octoballoon NW'], 'Light World', Terrain.Water), create_dw_region(player, 'Skull Woods Forest', None, ['Skull Woods Bush Rock (East)', 'Skull Woods First Section Hole (East)', 'Skull Woods First Section Hole (West)', 'Skull Woods First Section Hole (North)', - 'Skull Woods First Section Door', 'Skull Woods Second Section Door (East)', 'Lost Woods East Mirror Spot', 'Skull Woods SE']), - create_dw_region(player, 'Skull Woods Portal Entry', None, ['Skull Woods Bush Rock (West)', 'Lost Woods Entry Mirror Spot', 'Skull Woods SC']), - create_dw_region(player, 'Skull Woods Forest (West)', None, ['Skull Woods Second Section Hole', 'Skull Woods Second Section Door (West)', 'Skull Woods Final Section', 'Lost Woods Pedestal Mirror Spot'], 'a deep, dark forest'), - create_dw_region(player, 'Skull Woods Forgotten Path (Southwest)', None, ['Skull Woods Forgotten Bush (West)', 'Lost Woods Southwest Mirror Spot', 'Skull Woods SW']), - create_dw_region(player, 'Skull Woods Forgotten Path (Northeast)', None, ['Skull Woods Forgotten Bush (East)', 'Lost Woods East (Forgotten) Mirror Spot', 'Lost Woods West (Forgotten) Mirror Spot', 'Skull Woods EN']), - create_dw_region(player, 'Dark Lumberjack Area', None, ['Dark World Lumberjack Shop', 'Lumberjack Mirror Spot', 'Dark Lumberjack WN', 'Dark Lumberjack SW']), - create_dw_region(player, 'West Dark Death Mountain (Top)', None, ['Dark Death Mountain Drop (West)', 'GT Entry Approach', 'West Death Mountain (Top) Mirror Spot', 'West Dark Death Mountain EN']), + 'Skull Woods First Section Door', 'Skull Woods Second Section Door (East)', 'Skull Woods SE']), + create_dw_region(player, 'Skull Woods Portal Entry', None, ['Skull Woods Bush Rock (West)', 'Skull Woods SC']), + create_dw_region(player, 'Skull Woods Forest (West)', None, ['Skull Woods Second Section Hole', 'Skull Woods Second Section Door (West)', 'Skull Woods Final Section'], 'a deep, dark forest'), + create_dw_region(player, 'Skull Woods Forgotten Path (Southwest)', None, ['Skull Woods Forgotten Bush (West)', 'Skull Woods SW']), + create_dw_region(player, 'Skull Woods Forgotten Path (Northeast)', None, ['Skull Woods Forgotten Bush (East)', 'Skull Woods EN']), + create_dw_region(player, 'Dark Lumberjack Area', None, ['Dark World Lumberjack Shop', 'Dark Lumberjack WN', 'Dark Lumberjack SW']), + create_dw_region(player, 'West Dark Death Mountain (Top)', None, ['Dark Death Mountain Drop (West)', 'GT Entry Approach', 'West Dark Death Mountain EN']), create_dw_region(player, 'GT Approach', None, ['GT Entry Leave', 'Ganons Tower']), - create_dw_region(player, 'West Dark Death Mountain (Bottom)', None, ['Spike Cave', 'Dark Death Mountain Fairy', 'Dark Death Mountain Teleporter (West)', 'Spectacle Rock Mirror Spot', 'West Dark Death Mountain ES']), - create_dw_region(player, 'East Dark Death Mountain (Top)', None, ['Dark Death Mountain Drop (East)', 'Superbunny Cave (Top)', 'Hookshot Cave', 'East Death Mountain (Top West) Mirror Spot', 'East Death Mountain (Top East) Mirror Spot', 'East Dark Death Mountain WN', 'East Dark Death Mountain EN']), - create_dw_region(player, 'East Dark Death Mountain (Bottom)', None, ['Superbunny Cave (Bottom)', 'Cave Shop (Dark Death Mountain)', 'Dark Death Mountain Teleporter (East)', 'Fairy Ascension Mirror Spot']), - create_dw_region(player, 'East Dark Death Mountain (Bottom Left)', None, ['Death Mountain Bridge Mirror Spot', 'East Dark Death Mountain WS']), - create_dw_region(player, 'Dark Death Mountain Ledge', None, ['Dark Death Mountain Ledge (East)', 'Dark Death Mountain Ledge (West)', 'Spiral Cave Mirror Spot', 'Mimic Cave Mirror Spot'], 'a dark ledge'), - create_dw_region(player, 'Dark Death Mountain Isolated Ledge', None, ['Turtle Rock Isolated Ledge Entrance', 'Isolated Ledge Mirror Spot'], 'a dark vista'), - create_dw_region(player, 'Dark Death Mountain Floating Island', None, ['Floating Island Drop', 'Hookshot Cave Back Entrance', 'Floating Island Mirror Spot'], 'a dark floating island'), - create_dw_region(player, 'Turtle Rock Area', None, ['Turtle Rock Tail Ledge Drop', 'Turtle Rock', 'TR Pegs Area Mirror Spot', 'Turtle Rock WN']), + create_dw_region(player, 'West Dark Death Mountain (Bottom)', None, ['Spike Cave', 'Dark Death Mountain Fairy', 'Dark Death Mountain Teleporter (West)', 'West Dark Death Mountain ES']), + create_dw_region(player, 'East Dark Death Mountain (Top)', None, ['Dark Death Mountain Drop (East)', 'Superbunny Cave (Top)', 'Hookshot Cave', 'East Dark Death Mountain WN', 'East Dark Death Mountain EN']), + create_dw_region(player, 'East Dark Death Mountain (Bottom)', None, ['Superbunny Cave (Bottom)', 'Cave Shop (Dark Death Mountain)', 'Dark Death Mountain Teleporter (East)']), + create_dw_region(player, 'East Dark Death Mountain (Bottom Left)', None, ['East Dark Death Mountain WS']), + create_dw_region(player, 'Dark Death Mountain Ledge', None, ['Dark Death Mountain Ledge (East)', 'Dark Death Mountain Ledge (West)'], 'a dark ledge'), + create_dw_region(player, 'Dark Death Mountain Isolated Ledge', None, ['Turtle Rock Isolated Ledge Entrance'], 'a dark vista'), + create_dw_region(player, 'Dark Death Mountain Floating Island', None, ['Floating Island Drop', 'Hookshot Cave Back Entrance'], 'a dark floating island'), + create_dw_region(player, 'Turtle Rock Area', None, ['Turtle Rock Tail Ledge Drop', 'Turtle Rock', 'Turtle Rock WN']), create_dw_region(player, 'Turtle Rock Ledge', ['Turtle Medallion Pad'], ['Turtle Rock Ledge Drop', 'Turtle Rock Teleporter']), - create_dw_region(player, 'Bumper Cave Area', None, ['Bumper Cave Entrance Rock', 'Mountain Entry Mirror Spot', 'Bumper Cave NW', 'Bumper Cave SE']), - create_dw_region(player, 'Bumper Cave Entrance', None, ['Bumper Cave Ledge Drop', 'Bumper Cave (Bottom)', 'Mountain Entry Entrance Mirror Spot']), - create_dw_region(player, 'Bumper Cave Ledge', ['Bumper Cave Ledge'], ['Bumper Cave Entrance Drop', 'Bumper Cave (Top)', 'Mountain Entry Ledge Mirror Spot'], 'a ledge with an item'), - create_dw_region(player, 'Catfish Area', ['Catfish'], ['Zora Waterfall Mirror Spot', 'Catfish SE']), - create_dw_region(player, 'Skull Woods Pass West Area', None, ['Skull Woods Pass Bush Row (West)', 'Lost Woods Pass West Mirror Spot', 'Skull Woods Pass NW', 'Skull Woods Pass SW']), - create_dw_region(player, 'Skull Woods Pass East Top Area', None, ['Lost Woods Pass East Top Mirror Spot', 'Skull Woods Pass Bush Row (East)', 'Skull Woods Pass Bush (North)', 'Skull Woods Pass NE']), - create_dw_region(player, 'Skull Woods Pass Portal Area', None, ['Lost Woods Pass Portal Mirror Spot', 'West Dark World Teleporter', 'Skull Woods Pass Bush (South)', 'Skull Woods Pass Rock (North)']), - create_dw_region(player, 'Skull Woods Pass East Bottom Area', None, ['Lost Woods Pass East Bottom Mirror Spot', 'Skull Woods Pass Rock (South)', 'Skull Woods Pass SE']), - create_dw_region(player, 'Dark Fortune Area', None, ['Fortune Teller (Dark)', 'Kakariko Fortune Mirror Spot', 'Dark Fortune NE', 'Dark Fortune EN', 'Dark Fortune ES', 'Dark Fortune SC']), - create_dw_region(player, 'Outcast Pond Area', None, ['Kakariko Pond Mirror Spot', 'Outcast Pond NE', 'Outcast Pond WN', 'Outcast Pond WS', 'Outcast Pond SW', 'Outcast Pond SE', 'Outcast Pond EN', 'Outcast Pond ES']), - create_dw_region(player, 'Dark Chapel Area', None, ['Dark Sanctuary Hint', 'Sanctuary Mirror Spot', 'Bonk Rock Ledge Mirror Spot', 'Dark Chapel WN', 'Dark Chapel WS', 'Dark Chapel EC']), + create_dw_region(player, 'Bumper Cave Area', None, ['Bumper Cave Entrance Rock', 'Bumper Cave NW', 'Bumper Cave SE']), + create_dw_region(player, 'Bumper Cave Entrance', None, ['Bumper Cave Ledge Drop', 'Bumper Cave (Bottom)']), + create_dw_region(player, 'Bumper Cave Ledge', ['Bumper Cave Ledge'], ['Bumper Cave Entrance Drop', 'Bumper Cave (Top)'], 'a ledge with an item'), + create_dw_region(player, 'Catfish Area', ['Catfish'], ['Catfish SE']), + create_dw_region(player, 'Skull Woods Pass West Area', None, ['Skull Woods Pass Bush Row (West)', 'Skull Woods Pass NW', 'Skull Woods Pass SW']), + create_dw_region(player, 'Skull Woods Pass East Top Area', None, ['Skull Woods Pass Bush Row (East)', 'Skull Woods Pass Bush (North)', 'Skull Woods Pass NE']), + create_dw_region(player, 'Skull Woods Pass Portal Area', None, ['West Dark World Teleporter', 'Skull Woods Pass Bush (South)', 'Skull Woods Pass Rock (North)']), + create_dw_region(player, 'Skull Woods Pass East Bottom Area', None, ['Skull Woods Pass Rock (South)', 'Skull Woods Pass SE']), + create_dw_region(player, 'Dark Fortune Area', None, ['Fortune Teller (Dark)', 'Dark Fortune NE', 'Dark Fortune EN', 'Dark Fortune ES', 'Dark Fortune SC']), + create_dw_region(player, 'Outcast Pond Area', None, ['Outcast Pond NE', 'Outcast Pond WN', 'Outcast Pond WS', 'Outcast Pond SW', 'Outcast Pond SE', 'Outcast Pond EN', 'Outcast Pond ES']), + create_dw_region(player, 'Dark Chapel Area', None, ['Dark Sanctuary Hint', 'Dark Chapel WN', 'Dark Chapel WS', 'Dark Chapel EC']), create_dw_region(player, 'Dark Graveyard Area', None, ['Dark Graveyard Bush (South)', 'Dark Graveyard WC', 'Dark Graveyard EC']), - create_dw_region(player, 'Dark Graveyard North', None, ['Graveyard Ledge Mirror Spot', 'Kings Grave Mirror Spot', 'Dark Graveyard Bush (North)']), - create_dw_region(player, 'Qirn Jump Area', None, ['Qirn Jump Water Drop', 'River Bend Mirror Spot', 'Qirn Jump WC', 'Qirn Jump SW']), - create_dw_region(player, 'Qirn Jump East Bank', None, ['Qirn Jump East Water Drop', 'River Bend East Mirror Spot', 'Qirn Jump SE', 'Qirn Jump EC', 'Qirn Jump ES']), + create_dw_region(player, 'Dark Graveyard North', None, ['Dark Graveyard Bush (North)']), + create_dw_region(player, 'Qirn Jump Area', None, ['Qirn Jump Water Drop', 'Qirn Jump WC', 'Qirn Jump SW']), + create_dw_region(player, 'Qirn Jump East Bank', None, ['Qirn Jump East Water Drop', 'Qirn Jump SE', 'Qirn Jump EC', 'Qirn Jump ES']), create_dw_region(player, 'Qirn Jump Water', None, ['Qirn Jump Pier', 'Qirn Jump Whirlpool', 'Qirn Jump EN', 'Qirn Jump SC'], 'Dark World', Terrain.Water), - create_dw_region(player, 'Dark Witch Area', None, ['Dark Witch Water Drop', 'Dark Witch Rock (South)', 'Dark World Potion Shop', 'Potion Shop Mirror Spot', 'Dark Witch WC', 'Dark Witch WS']), - create_dw_region(player, 'Dark Witch Northeast', None, ['Dark Witch Northeast Water Drop', 'Dark Witch Rock (North)', 'Potion Shop Northeast Mirror Spot', 'Dark Witch EC']), + create_dw_region(player, 'Dark Witch Area', None, ['Dark Witch Water Drop', 'Dark Witch Rock (South)', 'Dark World Potion Shop', 'Dark Witch WC', 'Dark Witch WS']), + create_dw_region(player, 'Dark Witch Northeast', None, ['Dark Witch Northeast Water Drop', 'Dark Witch Rock (North)', 'Dark Witch EC']), create_dw_region(player, 'Dark Witch Water', None, ['Dark Witch WN', 'Dark Witch EN'], 'Dark World', Terrain.Water), - create_dw_region(player, 'Catfish Approach Area', None, ['Catfish Approach Rocks (West)', 'Catfish Approach Bottom Ledge Drop', 'Catfish Approach Water Drop', 'Zora Approach Mirror Spot', 'Catfish Approach WC']), - create_dw_region(player, 'Catfish Approach Ledge', None, ['Catfish Approach Rocks (East)', 'Catfish Approach Ledge Drop', 'Zora Approach Ledge Mirror Spot', 'Catfish Approach NE']), + create_dw_region(player, 'Catfish Approach Area', None, ['Catfish Approach Rocks (West)', 'Catfish Approach Bottom Ledge Drop', 'Catfish Approach Water Drop', 'Catfish Approach WC']), + create_dw_region(player, 'Catfish Approach Ledge', None, ['Catfish Approach Rocks (East)', 'Catfish Approach Ledge Drop', 'Catfish Approach NE']), create_dw_region(player, 'Catfish Approach Water', None, ['Catfish Approach WN'], 'Dark World', Terrain.Water), - create_dw_region(player, 'Village of Outcasts Area', None, ['Village of Outcasts Pegs', 'Chest Game', 'Thieves Town', 'C-Shaped House', 'Brewery', 'Kakariko Mirror Spot', 'Village of Outcasts NW', 'Village of Outcasts NC', 'Village of Outcasts NE', 'Village of Outcasts ES', 'Village of Outcasts SE']), - create_dw_region(player, 'Dark Grassy Lawn', None, ['Grassy Lawn Pegs', 'Dark World Shop', 'Kakariko Grass Mirror Spot']), - create_dw_region(player, 'Shield Shop Area', None, ['Shield Shop Fence (Outer) Ledge Drop', 'Forgotton Forest Mirror Spot', 'Shield Shop NW', 'Shield Shop NE']), - create_dw_region(player, 'Shield Shop Fence', None, ['Shield Shop Fence (Inner) Ledge Drop', 'Red Shield Shop', 'Forgotton Forest Fence Mirror Spot']), - create_dw_region(player, 'Pyramid Area', ['Pyramid Crack', 'Pyramid'], ['Pyramid Crack', 'Pyramid Hole', 'HC Ledge Mirror Spot', 'HC Courtyard Mirror Spot', 'HC Area Mirror Spot', 'HC East Entry Mirror Spot', 'Pyramid ES']), + create_dw_region(player, 'Village of Outcasts Area', None, ['Village of Outcasts Pegs', 'Chest Game', 'Thieves Town', 'C-Shaped House', 'Brewery', 'Village of Outcasts NW', 'Village of Outcasts NC', 'Village of Outcasts NE', 'Village of Outcasts ES', 'Village of Outcasts SE']), + create_dw_region(player, 'Dark Grassy Lawn', None, ['Grassy Lawn Pegs', 'Dark World Shop']), + create_dw_region(player, 'Shield Shop Area', None, ['Shield Shop Fence (Outer) Ledge Drop', 'Shield Shop NW', 'Shield Shop NE']), + create_dw_region(player, 'Shield Shop Fence', None, ['Shield Shop Fence (Inner) Ledge Drop', 'Red Shield Shop']), + create_dw_region(player, 'Pyramid Area', ['Pyramid Crack', 'Pyramid'], ['Pyramid Crack', 'Pyramid Hole', 'Pyramid ES']), create_dw_region(player, 'Pyramid Crack', None, ['Pyramid Fairy']), - create_dw_region(player, 'Pyramid Exit Ledge', None, ['Pyramid Exit Ledge Drop', 'HC Courtyard Left Mirror Spot', 'Pyramid Entrance']), - create_dw_region(player, 'Pyramid Pass', None, ['Post Aga Inverted Teleporter', 'HC Area South Mirror Spot', 'Pyramid SW', 'Pyramid SE']), + create_dw_region(player, 'Pyramid Exit Ledge', None, ['Pyramid Exit Ledge Drop', 'Pyramid Entrance']), + create_dw_region(player, 'Pyramid Pass', None, ['Post Aga Inverted Teleporter', 'Pyramid SW', 'Pyramid SE']), create_dw_region(player, 'Pyramid Water', None, ['Hammerpegs Water Exit', 'Big Bomb Shop Water Exit'], 'Dark World', Terrain.Water), - create_dw_region(player, 'Broken Bridge Area', None, ['Broken Bridge Hammer Rock (South)', 'Broken Bridge Water Drop', 'Wooden Bridge Mirror Spot', 'Broken Bridge SW']), - create_dw_region(player, 'Broken Bridge Northeast', None, ['Broken Bridge Hammer Rock (North)', 'Broken Bridge Hookshot Gap', 'Broken Bridge Northeast Water Drop', 'Wooden Bridge Northeast Mirror Spot', 'Broken Bridge NE']), - create_dw_region(player, 'Broken Bridge West', None, ['Broken Bridge West Water Drop', 'Wooden Bridge West Mirror Spot', 'Broken Bridge NW']), + create_dw_region(player, 'Broken Bridge Area', None, ['Broken Bridge Hammer Rock (South)', 'Broken Bridge Water Drop', 'Broken Bridge SW']), + create_dw_region(player, 'Broken Bridge Northeast', None, ['Broken Bridge Hammer Rock (North)', 'Broken Bridge Hookshot Gap', 'Broken Bridge Northeast Water Drop', 'Broken Bridge NE']), + create_dw_region(player, 'Broken Bridge West', None, ['Broken Bridge West Water Drop', 'Broken Bridge NW']), create_dw_region(player, 'Broken Bridge Water', None, ['Broken Bridge NC'], 'Dark World', Terrain.Water), - create_dw_region(player, 'Palace of Darkness Area', None, ['Palace of Darkness Hint', 'Palace of Darkness', 'Eastern Palace Mirror Spot', 'Palace of Darkness SW', 'Palace of Darkness SE']), + create_dw_region(player, 'Palace of Darkness Area', None, ['Palace of Darkness Hint', 'Palace of Darkness', 'Palace of Darkness SW', 'Palace of Darkness SE']), create_dw_region(player, 'Darkness Cliff', None, ['Dark Dunes Ledge Drop', 'Hammer Bridge North Ledge Drop', 'Dark Tree Line Ledge Drop', 'Palace of Darkness Ledge Drop']), - create_dw_region(player, 'Hammer Pegs Entry', None, ['Peg Area Rocks (West)', 'Blacksmith Entry Mirror Spot', 'Hammer Pegs WS']), - create_dw_region(player, 'Hammer Pegs Area', ['Dark Blacksmith Ruins'], ['Peg Area Rocks (East)', 'Dark World Hammer Peg Cave', 'Blacksmith Mirror Spot', 'Bat Cave Ledge Mirror Spot']), - create_dw_region(player, 'Dark Dunes Area', None, ['Sand Dunes Mirror Spot', 'Dark Dunes NW', 'Dark Dunes WN', 'Dark Dunes SC']), - create_dw_region(player, 'Dig Game Area', ['Digging Game'], ['Dig Game To Ledge Drop', 'Maze Race Mirror Spot', 'Dig Game ES']), - create_dw_region(player, 'Dig Game Ledge', None, ['Dig Game Ledge Drop', 'Maze Race Ledge Mirror Spot', 'Dig Game EC']), - create_dw_region(player, 'Frog Area', None, ['Frog Ledge Drop', 'Frog Rock (Outer)', 'Archery Game Rock (North)', 'Kakariko Suburb Mirror Spot', 'Frog NE']), + create_dw_region(player, 'Hammer Pegs Entry', None, ['Peg Area Rocks (West)', 'Hammer Pegs WS']), + create_dw_region(player, 'Hammer Pegs Area', ['Dark Blacksmith Ruins'], ['Peg Area Rocks (East)', 'Dark World Hammer Peg Cave']), + create_dw_region(player, 'Dark Dunes Area', None, ['Dark Dunes NW', 'Dark Dunes WN', 'Dark Dunes SC']), + create_dw_region(player, 'Dig Game Area', ['Digging Game'], ['Dig Game To Ledge Drop', 'Dig Game ES']), + create_dw_region(player, 'Dig Game Ledge', None, ['Dig Game Ledge Drop', 'Dig Game EC']), + create_dw_region(player, 'Frog Area', None, ['Frog Ledge Drop', 'Frog Rock (Outer)', 'Archery Game Rock (North)', 'Frog NE']), create_dw_region(player, 'Frog Prison', ['Frog'], ['Frog Rock (Inner)']), - create_dw_region(player, 'Archery Game Area', None, ['Archery Game Rock (South)', 'Archery Game', 'Kakariko Suburb South Mirror Spot', 'Frog WC', 'Frog WS', 'Frog ES']), - create_dw_region(player, 'Stumpy Area', ['Stumpy'], ['Flute Boy Mirror Spot', 'Stumpy SC']), - create_dw_region(player, 'Stumpy Pass', None, ['Flute Boy Pass Mirror Spot', 'Stumpy WS', 'Stumpy SW']), - create_dw_region(player, 'Dark Bonk Rocks Area', None, ['Bonk Fairy (Dark)', 'Central Bonk Rocks Mirror Spot', 'Dark Bonk Rocks NW', 'Dark Bonk Rocks SW', 'Dark Bonk Rocks EN', 'Dark Bonk Rocks EC', 'Dark Bonk Rocks ES']), - create_dw_region(player, 'Big Bomb Shop Area', None, ['Big Bomb Shop', 'Links House Mirror Spot', 'Big Bomb Shop NE', 'Big Bomb Shop WN', 'Big Bomb Shop WC', 'Big Bomb Shop WS', 'Big Bomb Shop SC', 'Big Bomb Shop ES']), - create_dw_region(player, 'Hammer Bridge North Area', None, ['Hammer Bridge Pegs (North)', 'Hammer Bridge Water Drop', 'Stone Bridge Mirror Spot', 'Hammer Bridge NC', 'Hammer Bridge EN']), - 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, 'Archery Game Area', None, ['Archery Game Rock (South)', 'Archery Game', 'Frog WC', 'Frog WS', 'Frog ES']), + create_dw_region(player, 'Stumpy Area', ['Stumpy'], ['Stumpy SC']), + create_dw_region(player, 'Stumpy Pass', None, ['Stumpy WS', 'Stumpy SW']), + create_dw_region(player, 'Dark Bonk Rocks Area', None, ['Bonk Fairy (Dark)', 'Dark Bonk Rocks NW', 'Dark Bonk Rocks SW', 'Dark Bonk Rocks EN', 'Dark Bonk Rocks EC', 'Dark Bonk Rocks ES']), + create_dw_region(player, 'Big Bomb Shop Area', None, ['Big Bomb Shop', 'Big Bomb Shop NE', 'Big Bomb Shop WN', 'Big Bomb Shop WC', 'Big Bomb Shop WS', 'Big Bomb Shop SC', 'Big Bomb Shop ES']), + create_dw_region(player, 'Hammer Bridge North Area', None, ['Hammer Bridge Pegs (North)', 'Hammer Bridge Water Drop', 'Hammer Bridge NC', 'Hammer Bridge EN']), + create_dw_region(player, 'Hammer Bridge South Area', None, ['Hammer Bridge Pegs (South)', 'Hammer Bridge WS', 'Hammer Bridge SC']), + create_dw_region(player, 'Hammer Bridge Water', None, ['Hammer Bridge Pier', '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', '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 Area', None, ['Dark Lake Hylia Fairy', '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']), - create_dw_region(player, 'Misery Mire Area', None, ['Mire Shed', 'Misery Mire', 'Dark Desert Fairy', 'Dark Desert Hint', 'Desert Mirror Spot', 'Desert Ledge Mirror Spot', 'Checkerboard Mirror Spot', 'DP Stairs Mirror Spot', 'DP Entrance (North) Mirror Spot']), + create_dw_region(player, 'Palace of Darkness Nook Area', None, ['East Dark World Hint', 'East Dark World Teleporter', 'Palace of Darkness Nook NE']), + create_dw_region(player, 'Misery Mire Area', None, ['Mire Shed', 'Misery Mire', 'Dark Desert Fairy', 'Dark Desert Hint']), create_dw_region(player, 'Misery Mire Teleporter Ledge', None, ['Misery Mire Teleporter Ledge Drop', 'Misery Mire Teleporter']), 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)', '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, 'Stumpy Approach Area', None, ['Stumpy Approach Bush (South)', 'Stumpy Approach NW', 'Stumpy Approach EC']), + create_dw_region(player, 'Stumpy Approach Bush Entry', None, ['Stumpy Approach Bush (North)', 'Stumpy Approach NC']), + create_dw_region(player, 'Dark C Whirlpool Area', None, ['Dark C Whirlpool Rock (Bottom)', 'Dark C Whirlpool Pegs (Right)', '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']), + create_dw_region(player, 'Dark C Whirlpool Outer Area', None, ['Dark C Whirlpool Rock (Top)', 'Dark C Whirlpool WC', 'Dark C Whirlpool NW']), + create_dw_region(player, 'Hype Cave Area', None, ['Hype Cave Water Entry', 'Hype Cave', 'Hype Cave NC', 'Hype Cave WN', 'Hype Cave WS', 'Hype Cave SC']), create_dw_region(player, 'Hype Cave Water', None, ['Hype Cave Landing', 'Hype Cave WC'], 'Dark World', Terrain.Water), - create_dw_region(player, 'Ice Lake Area', None, ['Ice Lake Water Drop', 'Dark Lake Hylia Shop', 'Lake Hylia Mirror Spot', 'Ice Lake NW']), - create_dw_region(player, 'Ice Lake Northeast Bank', None, ['Ice Lake Northeast Water Drop', 'Lake Hylia Northeast Mirror Spot', 'Ice Lake NE']), - create_dw_region(player, 'Ice Lake Ledge (West)', None, ['Ice Lake Southwest Water Drop', 'South Shore Mirror Spot', 'Ice Lake WS']), - create_dw_region(player, 'Ice Lake Ledge (East)', None, ['Ice Lake Southeast Water Drop', 'South Shore East Mirror Spot', 'Ice Lake ES']), - create_dw_region(player, 'Ice Lake Water', None, ['Ice Lake Northeast Pier', 'Ice Lake Moat Bomb Jump', 'Lake Hylia Island Mirror Spot', 'Ice Lake NC', 'Ice Lake EC'], 'Dark World', Terrain.Water), - create_dw_region(player, 'Ice Lake Moat', None, ['Ice Palace Teleporter', 'Ice Lake Moat Water Entry', 'Ice Lake Northeast Pier Hop', 'Lake Hylia Water Mirror Spot', 'Lake Hylia Water D Mirror Spot']), - create_dw_region(player, 'Ice Palace Area', None, ['Ice Palace', 'Lake Hylia Central Island Mirror Spot']), - create_dw_region(player, 'Shopping Mall Area', None, ['Dark Lake Hylia Ledge Fairy', 'Dark Lake Hylia Ledge Hint', 'Dark Lake Hylia Ledge Spike Cave', 'Ice Cave Mirror Spot', 'Shopping Mall SW', 'Shopping Mall SE']), - create_dw_region(player, 'Swamp Nook Area', None, ['Desert Pass Ledge Mirror Spot', 'Desert Pass Mirror Spot', 'Swamp Nook EC', 'Swamp Nook ES']), - create_dw_region(player, 'Swamp Area', None, ['Swamp Palace', 'Dam Mirror Spot', 'Swamp WC', 'Swamp WS', 'Swamp NC', 'Swamp EC']), - create_dw_region(player, 'Dark South Pass Area', None, ['South Pass Mirror Spot', 'Dark South Pass WC', 'Dark South Pass NC', 'Dark South Pass ES']), - create_dw_region(player, 'Bomber Corner Area', None, ['Bomber Corner Water Drop', 'Octoballoon Mirror Spot', 'Bomber Corner WS', 'Bomber Corner NE']), + create_dw_region(player, 'Ice Lake Area', None, ['Ice Lake Water Drop', 'Dark Lake Hylia Shop', 'Ice Lake NW']), + create_dw_region(player, 'Ice Lake Northeast Bank', None, ['Ice Lake Northeast Water Drop', 'Ice Lake NE']), + create_dw_region(player, 'Ice Lake Ledge (West)', None, ['Ice Lake Southwest Water Drop', 'Ice Lake WS']), + create_dw_region(player, 'Ice Lake Ledge (East)', None, ['Ice Lake Southeast Water Drop', 'Ice Lake ES']), + create_dw_region(player, 'Ice Lake Water', None, ['Ice Lake Northeast Pier', 'Ice Lake Moat Bomb Jump', 'Ice Lake NC', 'Ice Lake EC'], 'Dark World', Terrain.Water), + create_dw_region(player, 'Ice Lake Moat', None, ['Ice Palace Teleporter', 'Ice Lake Moat Water Entry', 'Ice Lake Northeast Pier Hop']), + create_dw_region(player, 'Ice Palace Area', None, ['Ice Palace']), + create_dw_region(player, 'Shopping Mall Area', None, ['Dark Lake Hylia Ledge Fairy', 'Dark Lake Hylia Ledge Hint', 'Dark Lake Hylia Ledge Spike Cave', 'Shopping Mall SW', 'Shopping Mall SE']), + create_dw_region(player, 'Swamp Nook Area', None, ['Swamp Nook EC', 'Swamp Nook ES']), + create_dw_region(player, 'Swamp Area', None, ['Swamp Palace', 'Swamp WC', 'Swamp WS', 'Swamp NC', 'Swamp EC']), + create_dw_region(player, 'Dark South Pass Area', None, ['Dark South Pass WC', 'Dark South Pass NC', 'Dark South Pass ES']), + create_dw_region(player, 'Bomber Corner Area', None, ['Bomber Corner Water Drop', 'Bomber Corner WS', 'Bomber Corner NE']), create_dw_region(player, 'Bomber Corner Water', None, ['Bomber Corner Pier', 'Bomber Corner Whirlpool', 'Bomber Corner WC'], 'Dark World', Terrain.Water), create_dw_region(player, 'Bomber Corner Water Ledge', None, ['Bomber Corner Waterfall Water Drop', 'Bomber Corner NW'], 'Dark World', Terrain.Water), diff --git a/Rules.py b/Rules.py index 7eb1353d..4be18a1a 100644 --- a/Rules.py +++ b/Rules.py @@ -983,169 +983,33 @@ def ow_inverted_rules(world, player): set_rule(world.get_entrance('GT Entry Approach', player), lambda state: state.has_crystals(world.crystals_needed_for_gt[player], player)) set_rule(world.get_entrance('GT Entry Leave', player), lambda state: state.has_crystals(world.crystals_needed_for_gt[player], player) or state.world.shuffle[player] in ('restricted', 'full', 'lite', 'lean', 'crossed', 'insanity')) - if not world.is_tile_swapped(0x00, player): - set_rule(world.get_entrance('Lost Woods East Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Lost Woods Entry Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Lost Woods Pedestal Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Lost Woods Southwest Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Lost Woods East (Forgotten) Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Lost Woods West (Forgotten) Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Skull Woods Back Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Skull Woods Forgotten (West) Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Skull Woods Forgotten (East) Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Skull Woods Portal Entry Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Skull Woods Forgotten (Middle) Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Skull Woods Front Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x02, player): - set_rule(world.get_entrance('Lumberjack Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Dark Lumberjack Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x03, player): - set_rule(world.get_entrance('West Death Mountain (Top) Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Spectacle Rock Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('West Dark Death Mountain (Top) Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Bubble Boy Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('West Dark Death Mountain (Bottom) Mirror Spot', player), lambda state: state.has_Mirror(player)) + if world.is_tile_swapped(0x03, player): set_rule(world.get_entrance('Spectacle Rock Approach', player), lambda state: world.logic[player] in ['noglitches', 'minorglitches'] and state.has_Pearl(player)) set_rule(world.get_entrance('Spectacle Rock Leave', player), lambda state: world.logic[player] in ['noglitches', 'minorglitches'] and state.has_Pearl(player)) if not world.is_tile_swapped(0x05, player): - set_rule(world.get_entrance('East Death Mountain (Top West) Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('East Death Mountain (Top East) Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Mimic Cave Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Spiral Cave Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Fairy Ascension Mirror Spot', player), lambda state: state.has_Mirror(player) and state.has_Pearl(player)) # need to lift flowers - set_rule(world.get_entrance('Isolated Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Death Mountain Bridge Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Floating Island Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('East Death Mountain Teleporter', player), lambda state: state.can_lift_heavy_rocks(player)) else: - set_rule(world.get_entrance('East Dark Death Mountain (Top West) Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('East Dark Death Mountain (Top East) Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('TR Ledge (West) Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('TR Ledge (East) Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('TR Isolated Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('East Dark Death Mountain (Bottom Plateau) Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('East Dark Death Mountain (Bottom Left) Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('East Dark Death Mountain (Bottom) Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Dark Floating Island Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Dark Death Mountain Teleporter (East)', player), lambda state: state.can_lift_heavy_rocks(player)) if not world.is_tile_swapped(0x07, player): - set_rule(world.get_entrance('TR Pegs Area Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('TR Pegs Teleporter', player), lambda state: state.has('Hammer', player)) else: - set_rule(world.get_entrance('Turtle Rock Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Turtle Rock Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Turtle Rock Teleporter', player), lambda state: state.can_lift_heavy_rocks(player)) set_rule(world.get_entrance('TR Pegs Ledge Drop', player), lambda state: False) set_rule(world.get_entrance('TR Pegs Ledge Leave', player), lambda state: state.has('Hammer', player) and state.can_lift_heavy_rocks(player) and state.has_Pearl(player)) set_rule(world.get_entrance('Turtle Rock Tail Ledge Drop', player), lambda state: world.logic[player] in ['noglitches', 'minorglitches']) - if not world.is_tile_swapped(0x0a, player): - set_rule(world.get_entrance('Mountain Entry Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Mountain Entry Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Mountain Entry Entrance Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Bumper Cave Area Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Bumper Cave Entry Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Bumper Cave Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x0f, player): - set_rule(world.get_entrance('Zora Waterfall Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Catfish Mirror Spot', player), lambda state: state.has_Mirror(player)) - if not world.is_tile_swapped(0x10, player): - set_rule(world.get_entrance('Lost Woods Pass West Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Lost Woods Pass East Top Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Lost Woods Pass Portal Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Lost Woods Pass East Bottom Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Kakariko Teleporter', player), lambda state: state.can_lift_rocks(player)) else: - set_rule(world.get_entrance('Skull Woods Pass West Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Skull Woods Pass East Top Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Skull Woods Pass Portal Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Skull Woods Pass East Bottom Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('West Dark World Teleporter', player), lambda state: state.can_lift_rocks(player)) - if not world.is_tile_swapped(0x11, player): - set_rule(world.get_entrance('Kakariko Fortune Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Outcast Fortune Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x12, player): - set_rule(world.get_entrance('Kakariko Pond Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Outcast Pond Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x13, player): - set_rule(world.get_entrance('Sanctuary Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Bonk Rock Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Dark Chapel Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Dark Chapel Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x14, player): - set_rule(world.get_entrance('Graveyard Ledge Mirror Spot', player), lambda state: state.has_Pearl(player) and state.has_Mirror(player)) - set_rule(world.get_entrance('Kings Grave Mirror Spot', player), lambda state: state.has_Pearl(player) and state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Graveyard Ladder (Top)', player), lambda state: world.logic[player] in ['noglitches', 'minorglitches'] and state.has_Pearl(player)) - set_rule(world.get_entrance('Graveyard Ladder (Bottom)', player), lambda state: world.logic[player] in ['noglitches', 'minorglitches'] and state.has_Pearl(player)) - set_rule(world.get_entrance('Dark Graveyard Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Dark Graveyard Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Dark Graveyard Grave Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x15, player): - set_rule(world.get_entrance('River Bend Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('River Bend East Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Qirn Jump Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Qirn Jump East Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x16, player): - set_rule(world.get_entrance('Potion Shop Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Potion Shop Northeast Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Dark Witch Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Dark Witch Northeast Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x17, player): - set_rule(world.get_entrance('Zora Approach Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Zora Approach Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Catfish Approach Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Catfish Approach Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x18, player): - set_rule(world.get_entrance('Kakariko Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Kakariko Grass Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Village of Outcasts Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Village of Outcasts Southwest Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Hammer House Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x1a, player): - set_rule(world.get_entrance('Forgotton Forest Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Forgotton Forest Fence Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Shield Shop Mirror Spot', player), lambda state: state.has_Mirror(player)) - if not world.is_tile_swapped(0x1b, player): set_rule(world.get_entrance('Inverted Pyramid Hole', player), lambda state: False) set_rule(world.get_entrance('Inverted Pyramid Entrance', player), lambda state: False) set_rule(world.get_entrance('Pyramid Hole', player), lambda state: world.is_pyramid_open(player) or state.has('Beat Agahnim 2', player)) - set_rule(world.get_entrance('HC Area Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('HC Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('HC Courtyard Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('HC East Entry Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('HC Courtyard Left Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('HC Area South Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Hyrule Castle Main Gate (South)', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Hyrule Castle Main Gate (North)', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Top of Pyramid', player), lambda state: state.has_beaten_aga(player)) @@ -1155,182 +1019,39 @@ def ow_inverted_rules(world, player): set_rule(world.get_entrance('Pyramid Hole', player), lambda state: False) set_rule(world.get_entrance('Pyramid Entrance', player), lambda state: False) - set_rule(world.get_entrance('Pyramid Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Pyramid Pass Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Pyramid Courtyard Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Pyramid Uncle Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Pyramid From Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Pyramid Entry Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Post Aga Inverted Teleporter', player), lambda state: state.has_beaten_aga(player)) - if not world.is_tile_swapped(0x1d, player): - set_rule(world.get_entrance('Wooden Bridge Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Wooden Bridge Northeast Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Wooden Bridge West Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Broken Bridge West Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Broken Bridge East Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Broken Bridge Northeast Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x1e, player): - set_rule(world.get_entrance('Eastern Palace Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Palace of Darkness Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x22, player): - set_rule(world.get_entrance('Blacksmith Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Blacksmith Entry Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Bat Cave Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Hammer Pegs Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Hammer Pegs Entry Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x25, player): - set_rule(world.get_entrance('Sand Dunes Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Dark Dunes Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x28, player): - set_rule(world.get_entrance('Maze Race Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Maze Race Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Dig Game Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Dig Game Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x29, player): - set_rule(world.get_entrance('Kakariko Suburb Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Kakariko Suburb South Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Frog Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Frog Prison Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Archery Game Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x2a, player): - set_rule(world.get_entrance('Flute Boy Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Flute Boy Pass Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Stumpy Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Stumpy Pass Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x2b, player): - set_rule(world.get_entrance('Central Bonk Rocks Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Dark Bonk Rocks Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x2c, player): - set_rule(world.get_entrance('Links House Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Big Bomb Shop Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x2d, player): - set_rule(world.get_entrance('Stone Bridge Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Stone Bridge South Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Hobo Mirror Spot', player), lambda state: state.has_Mirror(player) and state.has_Pearl(player) and state.has('Flippers', player)) - else: - set_rule(world.get_entrance('Hammer Bridge North Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Hammer Bridge South Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Dark Hobo Mirror Spot', player), lambda state: state.has_Mirror(player) and state.has_Pearl(player) and state.has('Flippers', player)) - - if not world.is_tile_swapped(0x2e, player): - set_rule(world.get_entrance('Tree Line Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Dark Tree Line Mirror Spot', player), lambda state: state.has_Mirror(player)) - if not world.is_tile_swapped(0x2f, player): - set_rule(world.get_entrance('Eastern Nook Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('East Hyrule Teleporter', player), lambda state: state.has('Hammer', player) and state.can_lift_rocks(player) and state.has_Pearl(player)) # bunny cannot use hammer else: - set_rule(world.get_entrance('Darkness Nook Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('East Dark World Teleporter', player), lambda state: state.has('Hammer', player) and state.can_lift_rocks(player) and state.has_Pearl(player)) if not world.is_tile_swapped(0x30, player): - set_rule(world.get_entrance('Checkerboard Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Desert Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Desert Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('DP Stairs Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('DP Entrance (North) Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Bombos Tablet Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Desert Teleporter', player), lambda state: state.can_lift_heavy_rocks(player)) else: - set_rule(world.get_entrance('Misery Mire Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Misery Mire Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Misery Mire Blocked Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Misery Mire Main Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Misery Mire Teleporter', player), lambda state: state.can_lift_heavy_rocks(player)) set_rule(world.get_entrance('Checkerboard Ledge Approach', player), lambda state: world.logic[player] in ['noglitches', 'minorglitches']) set_rule(world.get_entrance('Checkerboard Ledge Leave', player), lambda state: world.logic[player] in ['noglitches', 'minorglitches']) - if not world.is_tile_swapped(0x32, player): - set_rule(world.get_entrance('Cave 45 Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Flute Boy Entry Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Stumpy Approach Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Stumpy Bush Entry Mirror Spot', player), lambda state: state.has_Mirror(player)) + if world.is_tile_swapped(0x32, player): set_rule(world.get_entrance('Cave 45 Inverted Approach', player), lambda state: world.logic[player] in ['noglitches', 'minorglitches']) set_rule(world.get_entrance('Cave 45 Inverted Leave', player), lambda state: world.logic[player] in ['noglitches', 'minorglitches']) 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.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.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)) - else: - set_rule(world.get_entrance('Hype Cave Mirror Spot', player), lambda state: state.has_Mirror(player)) - if not world.is_tile_swapped(0x35, player): - set_rule(world.get_entrance('Lake Hylia Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Lake Hylia Northeast Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Lake Hylia Island Mirror Spot', player), lambda state: state.has_Mirror(player) and state.has_Pearl(player) and state.has('Flippers', player)) - set_rule(world.get_entrance('Lake Hylia Central Island Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Lake Hylia Water Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Lake Hylia Water D Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('South Shore Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('South Shore East Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Lake Hylia Teleporter', player), lambda state: state.can_lift_heavy_rocks(player)) else: - set_rule(world.get_entrance('Ice Lake Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Ice Lake Southwest Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Ice Lake Southeast Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Ice Lake Northeast Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Ice Palace Mirror Spot', player), lambda state: state.has_Mirror(player)) set_rule(world.get_entrance('Ice Palace Teleporter', player), lambda state: state.can_lift_heavy_rocks(player)) set_rule(world.get_entrance('Lake Hylia Island Pier', player), lambda state: world.logic[player] in ['noglitches', 'minorglitches']) - if not world.is_tile_swapped(0x37, player): - set_rule(world.get_entrance('Ice Cave Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Shopping Mall Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x3a, player): - set_rule(world.get_entrance('Desert Pass Ledge Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Desert Pass Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Swamp Nook Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Swamp Nook Southeast Mirror Spot', player), lambda state: state.has_Mirror(player)) - set_rule(world.get_entrance('Swamp Nook Pegs Mirror Spot', player), lambda state: state.has_Mirror(player)) + if world.is_tile_swapped(0x3a, player): set_rule(world.get_entrance('Desert Pass Ladder (South)', player), lambda state: world.logic[player] in ['noglitches', 'minorglitches']) set_rule(world.get_entrance('Desert Pass Ladder (North)', player), lambda state: world.logic[player] in ['noglitches', 'minorglitches']) - - if not world.is_tile_swapped(0x3b, player): - set_rule(world.get_entrance('Dam Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Swamp Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x3c, player): - set_rule(world.get_entrance('South Pass Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Dark South Pass Mirror Spot', player), lambda state: state.has_Mirror(player)) - - if not world.is_tile_swapped(0x3f, player): - set_rule(world.get_entrance('Octoballoon Mirror Spot', player), lambda state: state.has_Mirror(player)) - else: - set_rule(world.get_entrance('Bomber Corner Mirror Spot', player), lambda state: state.has_Mirror(player)) def ow_bunny_rules(world, player): diff --git a/source/overworld/EntranceShuffle2.py b/source/overworld/EntranceShuffle2.py index b9bea9cd..8085b17b 100644 --- a/source/overworld/EntranceShuffle2.py +++ b/source/overworld/EntranceShuffle2.py @@ -1876,7 +1876,6 @@ mandatory_connections = [('Links House S&Q', 'Links House'), ('Zora Waterfall Water Drop', 'Light World'), ('Kings Grave Outer Rocks', 'Kings Grave Area'), ('Kings Grave Inner Rocks', 'Light World'), - ('Kings Grave Mirror Spot', 'Kings Grave Area'), ('Kakariko Well (top to bottom)', 'Kakariko Well (bottom)'), ('Kakariko Well (top to back)', 'Kakariko Well (back)'), ('Master Sword Meadow', 'Master Sword Meadow'), @@ -1922,9 +1921,6 @@ mandatory_connections = [('Links House S&Q', 'Links House'), ('Dark Lake Hylia Ledge', 'Dark Lake Hylia Ledge'), ('Dark Lake Hylia Ledge Drop', 'Dark Lake Hylia'), ('East Dark World Pier', 'East Dark World'), - ('Lake Hylia Island Mirror Spot', 'Lake Hylia Island'), - ('Lake Hylia Central Island Mirror Spot', 'Lake Hylia Central Island'), - ('Hyrule Castle Ledge Mirror Spot', 'Hyrule Castle Ledge'), ('South Dark World Bridge', 'South Dark World'), ('East Dark World Bridge', 'East Dark World'), ('Maze Race Mirror Spot', 'Maze Race Ledge'), @@ -1934,7 +1930,6 @@ mandatory_connections = [('Links House S&Q', 'Links House'), ('Village of Outcasts Pegs', 'Dark Grassy Lawn'), ('Peg Area Rocks', 'West Dark World'), ('Grassy Lawn Pegs', 'West Dark World'), - ('Bat Cave Drop Ledge Mirror Spot', 'Bat Cave Drop Ledge'), ('East Dark World River Pier', 'East Dark World'), ('West Dark World Gap', 'West Dark World'), ('East Dark World Broken Bridge Pass', 'East Dark World'), @@ -1943,17 +1938,11 @@ mandatory_connections = [('Links House S&Q', 'Links House'), ('Northeast Dark World Broken Bridge Pass', 'Northeast Dark World'), ('Bumper Cave Entrance Rock', 'Bumper Cave Entrance'), ('Bumper Cave Entrance Drop', 'West Dark World'), - ('Bumper Cave Entrance Mirror Spot', 'Death Mountain Entrance'), ('Bumper Cave Ledge Drop', 'West Dark World'), - ('Bumper Cave Ledge Mirror Spot', 'Death Mountain Return Ledge'), ('Bumper Cave Top To Bottom', 'Bumper Cave (bottom)'), ('Bumper Cave Bottom to Top', 'Bumper Cave (top)'), ('Skull Woods Forest', 'Skull Woods Forest'), - ('Desert Ledge Mirror Spot', 'Desert Ledge'), - ('Desert Ledge (Northeast) Mirror Spot', 'Desert Ledge (Northeast)'), - ('Desert Palace Entrance (North) Mirror Spot', 'Desert Palace Entrance (North) Spot'), ('Dark Desert Teleporter', 'Dark Desert'), - ('Desert Palace Stairs Mirror Spot', 'Desert Palace Stairs'), ('East Hyrule Teleporter', 'East Dark World'), ('South Hyrule Teleporter', 'South Dark World'), ('Kakariko Teleporter', 'West Dark World'), @@ -1965,17 +1954,14 @@ mandatory_connections = [('Links House S&Q', 'Links House'), ('Paradox Cave Drop', 'Paradox Cave Chest Area'), ('Light World Death Mountain Shop', 'Light World Death Mountain Shop'), ('Fairy Ascension Rocks', 'Fairy Ascension Plateau'), - ('Fairy Ascension Mirror Spot', 'Fairy Ascension Plateau'), ('Fairy Ascension Drop', 'East Death Mountain (Bottom)'), ('Fairy Ascension Ledge Drop', 'Fairy Ascension Plateau'), ('Fairy Ascension Ledge', 'Fairy Ascension Ledge'), ('Fairy Ascension Cave Climb', 'Fairy Ascension Cave (Top)'), ('Fairy Ascension Cave Pots', 'Fairy Ascension Cave (Bottom)'), ('Fairy Ascension Cave Drop', 'Fairy Ascension Cave (Drop)'), - ('Spectacle Rock Mirror Spot', 'Spectacle Rock'), ('Dark Death Mountain Drop (East)', 'Dark Death Mountain (East Bottom)'), ('Dark Death Mountain Drop (West)', 'Dark Death Mountain (West Bottom)'), - ('East Death Mountain (Top) Mirror Spot', 'East Death Mountain (Top)'), ('Superbunny Cave Climb', 'Superbunny Cave (Top)'), ('Hookshot Cave Front to Middle', 'Hookshot Cave (Middle)'), ('Hookshot Cave Middle to Front', 'Hookshot Cave (Front)'), @@ -1986,14 +1972,8 @@ mandatory_connections = [('Links House S&Q', 'Links House'), ('Turtle Rock Teleporter', 'Turtle Rock (Top)'), ('Turtle Rock Drop', 'Dark Death Mountain (Top)'), ('Floating Island Drop', 'Dark Death Mountain (Top)'), - ('Floating Island Mirror Spot', 'Death Mountain Floating Island (Light World)'), ('East Death Mountain Teleporter', 'Dark Death Mountain (East Bottom)'), - ('Isolated Ledge Mirror Spot', 'Fairy Ascension Ledge'), - ('Spiral Cave Mirror Spot', 'Spiral Cave Ledge'), - ('Mimic Cave Mirror Spot', 'Mimic Cave Ledge'), - ('Cave 45 Mirror Spot', 'Cave 45 Ledge'), ('Bombos Tablet Mirror Spot', 'Bombos Tablet Ledge'), - ('Graveyard Ledge Mirror Spot', 'Graveyard Ledge'), ('Ganon Drop', 'Bottom of Pyramid'), ('Pyramid Drop', 'East Dark World'), ('Maze Race Ledge Drop', 'Light World'), @@ -2105,7 +2085,6 @@ inverted_mandatory_connections = [('Links House S&Q', 'Inverted Links House'), ('Potion Shop River Drop', 'River'), ('Graveyard Cave Inner Bushes', 'Light World'), ('Graveyard Cave Outer Bushes', 'Graveyard Cave Area'), - ('Graveyard Cave Mirror Spot', 'West Dark World'), ('Light World River Drop', 'River'), ('Light World Pier', 'Light World'), ('Potion Shop Pier', 'Potion Shop Area'), @@ -2131,30 +2110,7 @@ inverted_mandatory_connections = [('Links House S&Q', 'Inverted Links House'), ('Dark Death Mountain Teleporter (West)', 'Death Mountain'), ('Dark Death Mountain Teleporter (East)', 'East Death Mountain (Top)'), ('Dark Death Mountain Teleporter (East Bottom)', 'East Death Mountain (Bottom)'), - ('Mire Mirror Spot', 'Dark Desert'), ('Dark Desert Drop', 'Dark Desert'), - ('Desert Palace Stairs Mirror Spot', 'Dark Desert'), - ('Desert Palace North Mirror Spot', 'Dark Desert'), - ('Maze Race Mirror Spot', 'West Dark World'), - ('Lake Hylia Central Island Mirror Spot', 'Dark Lake Hylia Central Island'), - ('Hammer Peg Area Mirror Spot', 'Hammer Peg Area'), - ('Bumper Cave Ledge Mirror Spot', 'Bumper Cave Ledge'), - ('Bumper Cave Entrance Mirror Spot', 'Bumper Cave Entrance'), - ('Death Mountain Mirror Spot', 'Dark Death Mountain'), - ('East Death Mountain Mirror Spot (Top)', 'Dark Death Mountain'), - ('East Death Mountain Mirror Spot (Bottom)', 'Dark Death Mountain (East Bottom)'), - ('Death Mountain (Top) Mirror Spot', 'Dark Death Mountain'), - ('Dark Death Mountain Ledge Mirror Spot (East)', 'Dark Death Mountain Ledge'), - ('Dark Death Mountain Ledge Mirror Spot (West)', 'Dark Death Mountain Ledge'), - ('Floating Island Mirror Spot', 'Death Mountain Floating Island (Dark World)'), - ('Laser Bridge Mirror Spot', 'Dark Death Mountain Isolated Ledge'), - ('East Dark World Mirror Spot', 'East Dark World'), - ('West Dark World Mirror Spot', 'West Dark World'), - ('South Dark World Mirror Spot', 'South Dark World'), - ('Potion Shop Mirror Spot', 'Northeast Dark World'), - ('Catfish Mirror Spot', 'Catfish'), - ('Shopping Mall Mirror Spot', 'Dark Lake Hylia Ledge'), - ('Skull Woods Mirror Spot', 'Skull Woods Forest (West)'), ('DDM Flute', 'The Sky'), ('DDM Landing', 'Dark Death Mountain'), ('NEDW Flute', 'The Sky'), @@ -2174,10 +2130,8 @@ inverted_mandatory_connections = [('Links House S&Q', 'Inverted Links House'), ('Hammer Peg Area Flute', 'The Sky'), ('Bush Covered Lawn Inner Bushes', 'Light World'), ('Bush Covered Lawn Outer Bushes', 'Bush Covered Lawn'), - ('Bush Covered Lawn Mirror Spot', 'Dark Grassy Lawn'), ('Bomb Hut Inner Bushes', 'Light World'), ('Bomb Hut Outer Bushes', 'Bomb Hut Area'), - ('Bomb Hut Mirror Spot', 'West Dark World'), ('Maze Race Ledge Drop', 'Light World')] # non-shuffled entrance links