More Inverted improvements

This commit is contained in:
codemann8
2021-05-24 00:39:41 -05:00
parent 9d70a8c19d
commit a9325ea355
3 changed files with 179 additions and 406 deletions

View File

@@ -1888,8 +1888,8 @@ def create_doors_for_inaccessible_region(inaccessible_region, world, player):
for ext in region.exits:
create_door(world, player, ext.name, region.name)
if ext.connected_region is None:
logging.getLogger('').error('Exit not connected to any region: %s', ext.name)
if ext.connected_region.name.endswith(' Portal'):
logging.getLogger('').warning('Exit not connected to any region: %s', ext.name)
elif ext.connected_region.name.endswith(' Portal'):
for more_exts in ext.connected_region.exits:
create_door(world, player, more_exts.name, ext.connected_region.name)
@@ -1897,14 +1897,15 @@ def create_doors_for_inaccessible_region(inaccessible_region, world, player):
def create_door(world, player, entName, region_name):
entrance = world.get_entrance(entName, player)
connect = entrance.connected_region
for ext in connect.exits:
if ext.connected_region is not None and ext.connected_region.name == region_name:
d = Door(player, ext.name, DoorType.Logical, ext),
world.doors += d
connect_door_only(world, ext.name, ext.connected_region, player)
d = Door(player, entName, DoorType.Logical, entrance),
world.doors += d
connect_door_only(world, entName, connect, player)
if connect is not None:
for ext in connect.exits:
if ext.connected_region is not None and ext.connected_region.name == region_name:
d = Door(player, ext.name, DoorType.Logical, ext),
world.doors += d
connect_door_only(world, ext.name, ext.connected_region, player)
d = Door(player, entName, DoorType.Logical, entrance),
world.doors += d
connect_door_only(world, entName, connect, player)
def check_required_paths(paths, world, player):

View File

@@ -314,18 +314,12 @@ mandatory_connections = [ # Whirlpool Connections
('Lost Woods Bush (East)', 'Lost Woods West Area'), #pearl
('West Death Mountain Drop', 'West Death Mountain (Bottom)'),
('Spectacle Rock Drop', 'West Death Mountain (Top)'),
('Spectacle Rock Leave', 'West Death Mountain (Top)'), #inverted only
('Spectacle Rock Approach', 'Spectacle Rock Ledge'), #inverted only
('DM Hammer Bridge (West)', 'East Death Mountain (Top East)'), #hammer
('DM Hammer Bridge (East)', 'East Death Mountain (Top West)'), #hammer
('Floating Island Bridge (West)', 'East Death Mountain (Top East)'), #inverted only
('Floating Island Bridge (East)', 'Death Mountain Floating Island'), #inverted only
('East Death Mountain Spiral Ledge Drop', 'Spiral Cave Ledge'),
('Spiral Ledge Drop', 'East Death Mountain (Bottom)'),
('East Death Mountain Fairy Ledge Drop', 'Fairy Ascension Ledge'),
('Fairy Ascension Ledge Drop', 'Fairy Ascension Plateau'),
('East Death Mountain Mimic Ledge Drop', 'Mimic Cave Ledge'), #inverted only
('Mimic Ledge Drop', 'East Death Mountain (Bottom)'), #inverted only
('Fairy Ascension Plateau Ledge Drop', 'East Death Mountain (Bottom)'),
('Fairy Ascension Rocks (North)', 'East Death Mountain (Bottom)'), #mitts
('Fairy Ascension Rocks (South)', 'Fairy Ascension Plateau'), #mitts
@@ -343,8 +337,6 @@ mandatory_connections = [ # Whirlpool Connections
('Waterfall of Wishing Cave Entry', 'Waterfall of Wishing Cave'), #flippers
('Bonk Rock Ledge Drop', 'Sanctuary Area'),
('Graveyard Ledge Drop', 'Graveyard Area'),
('Graveyard Ladder (Top)', 'Graveyard Area'), #inverted only
('Graveyard Ladder (Bottom)', 'Graveyard Ledge'), #inverted only
('Kings Grave Outer Rocks', 'Kings Grave Area'), #mitts
('Kings Grave Inner Rocks', 'Graveyard Area'), #mitts
('River Bend Water Drop', 'River Bend Water'), #flippers
@@ -384,16 +376,12 @@ mandatory_connections = [ # Whirlpool Connections
('Desert Ledge Outer Rocks', 'Desert Palace Entrance (North) Spot'), #glove
('Desert Ledge Inner Rocks', 'Desert Ledge'), #glove
('Checkerboard Ledge Drop', 'Desert Area'),
('Checkerboard Ledge Approach', 'Desert Checkerboard Ledge'), #inverted only
('Checkerboard Ledge Leave', 'Desert Area'), #inverted only
('Desert Mouth Drop', 'Desert Area'),
('Desert Teleporter Drop', 'Desert Area'),
('Bombos Tablet Drop', 'Desert Area'),
('Flute Boy Bush (North)', 'Flute Boy Approach Area'), #pearl
('Flute Boy Bush (South)', 'Flute Boy Bush Entry'), #pearl
('Cave 45 Ledge Drop', 'Flute Boy Approach Area'),
('Cave 45 Inverted Leave', 'Flute Boy Approach Area'), #inverted only
('Cave 45 Inverted Approach', 'Cave 45 Ledge'), #inverted only
('C Whirlpool Water Entry', 'C Whirlpool Water'), #flippers
('C Whirlpool Landing', 'C Whirlpool Area'),
('C Whirlpool Rock (Bottom)', 'C Whirlpool Outer Area'), #glove
@@ -406,12 +394,9 @@ mandatory_connections = [ # Whirlpool Connections
('Lake Hylia Central Water Drop', 'Lake Hylia Water'), #flippers
('Lake Hylia Island Water Drop', 'Lake Hylia Water'), #flippers
('Lake Hylia Central Island Pier', 'Lake Hylia Central Island'),
('Lake Hylia Island Pier', 'Lake Hylia Island'), #inverted only
('Lake Hylia West Pier', 'Lake Hylia Area'),
('Lake Hylia East Pier', 'Lake Hylia Northeast Bank'),
('Desert Pass Ledge Drop', 'Desert Pass Area'),
('Desert Pass Ladder (North)', 'Desert Pass Area'), #inverted only
('Desert Pass Ladder (South)', 'Desert Pass Ledge'), #inverted only
('Desert Pass Rocks (North)', 'Desert Pass Southeast'), #glove
('Desert Pass Rocks (South)', 'Desert Pass Area'), #glove
('Octoballoon Water Drop', 'Octoballoon Water'), #flippers
@@ -423,14 +408,11 @@ mandatory_connections = [ # Whirlpool Connections
('Skull Woods Forgotten Bush (West)', 'Skull Woods Forgotten Path (Northeast)'), #pearl
('Skull Woods Forgotten Bush (East)', 'Skull Woods Forgotten Path (Southwest)'), #pearl
('Dark Death Mountain Drop (West)', 'West Dark Death Mountain (Bottom)'),
('Dark Death Mountain Ladder (North)', 'West Dark Death Mountain (Bottom)'), #inverted only
('Dark Death Mountain Ladder (South)', 'West Dark Death Mountain (Top)'), #inverted only
('GT Entry Approach', 'GT Approach'),
('GT Entry Leave', 'West Dark Death Mountain (Top)'),
('Floating Island Drop', 'East Dark Death Mountain (Top)'),
('Dark Death Mountain Drop (East)', 'East Dark Death Mountain (Bottom)'),
('Turtle Rock Ledge Drop', 'Turtle Rock Area'),
('Turtle Rock Tail Ledge Drop', 'Turtle Rock Ledge'), #inverted only
('Bumper Cave Entrance Rock', 'Bumper Cave Entrance'), #glove
('Bumper Cave Ledge Drop', 'Bumper Cave Area'),
('Bumper Cave Entrance Drop', 'Bumper Cave Area'),
@@ -489,8 +471,6 @@ mandatory_connections = [ # Whirlpool Connections
('Ice Lake Southeast Water Drop', 'Ice Lake Water'), #flippers
('Ice Lake Moat Water Entry', 'Ice Lake Water'), #flippers
('Ice Lake Northeast Pier', 'Ice Lake Northeast Bank'),
('Ice Palace Approach', 'Ice Palace Area'), #inverted only
('Ice Palace Leave', 'Ice Lake Moat'), #inverted only
('Bomber Corner Water Drop', 'Bomber Corner Water'), #flippers
('Bomber Corner Waterfall Water Drop', 'Bomber Corner Water'), #flippers
('Bomber Corner Pier', 'Bomber Corner Area'),
@@ -541,129 +521,166 @@ mandatory_connections = [ # Whirlpool Connections
('Ice Lake Northeast Pier Bomb Jump', 'Ice Lake Northeast Bank'),
('Dark C Whirlpool Cliff Ledge Drop', 'Dark C Whirlpool Area'),
('Dark C Whirlpool Outer Cliff Ledge Drop', 'Dark C Whirlpool Outer Area'),
('Dark South Teleporter Cliff Ledge Drop', 'Central Cliffs'), #TODO:inverted only, add glove requirement
('Hype Cliff Ledge Drop', 'Hype Cave Area'),
('Ice Palace Island FAWT Ledge Drop', 'Ice Lake Moat'),
('Hammer Bridge EC Cliff Water Drop', 'Hammer Bridge Water'), #fake flipper
('Dark Tree Line WC Cliff Water Drop', 'Dark Tree Line Water'), #fake flipper
('Dark Tree Line WC Cliff Water Drop', 'Dark Tree Line Water') #fake flipper
]
# Portal Connections
('Kakariko Teleporter (Hammer)', 'Skull Woods Pass East Top Area'),
('Kakariko Teleporter (Rock)', 'Skull Woods Pass East Top Area'),
('Top of Pyramid', 'Pyramid Area'),
('Top of Pyramid (Inner)', 'Pyramid Area'),
('East Hyrule Teleporter', 'Palace of Darkness Nook Area'),
('South Hyrule Teleporter', 'Dark C Whirlpool Area'),
('Desert Teleporter', 'Misery Mire Teleporter Ledge'),
('Lake Hylia Teleporter', 'Ice Palace Area'),
('West Death Mountain Teleporter', 'West Dark Death Mountain (Bottom)'),
('East Death Mountain Teleporter', 'East Dark Death Mountain (Bottom)'),
('TR Pegs Teleporter', 'Turtle Rock Ledge'),
standard_connections = [('Hyrule Castle SW', 'Central Bonk Rocks NW'),
('Hyrule Castle SE', 'Links House NE'),
('Central Bonk Rocks EN', 'Links House WN'),
('Central Bonk Rocks EC', 'Links House WC'),
('Central Bonk Rocks ES', 'Links House WS')
]
('Post Aga Inverted Teleporter', 'Hyrule Castle Area'),
('Ice Palace Teleporter', 'Lake Hylia Central Island'),
('Misery Mire Teleporter', 'Desert Palace Teleporter Ledge'),
('East Dark World Teleporter', 'Eastern Nook Area'),
('South Dark World Teleporter', 'C Whirlpool Area'),
('West Dark World Teleporter (Hammer)', 'Lost Woods Pass East Top Area'),
('West Dark World Teleporter (Rock)', 'Lost Woods Pass East Bottom Area'),
('Dark Death Mountain Teleporter (West)', 'West Death Mountain (Bottom)'),
('Dark Death Mountain Teleporter (East)', 'East Death Mountain (Bottom)'),
('Turtle Rock Teleporter', 'Death Mountain TR Pegs Ledge'),
open_connections = [('Flute Spot 1', 'West Death Mountain (Bottom)'),
('Flute Spot 2', 'Potion Shop Area'),
('Flute Spot 3', 'Kakariko Area'),
('Flute Spot 4', 'Links House Area'),
('Flute Spot 5', 'Eastern Nook Area'),
('Flute Spot 6', 'Desert Palace Teleporter Ledge'),
('Flute Spot 7', 'Dam Area'),
('Flute Spot 8', 'Octoballoon Area'),
# Mirror Connections
('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'),
('Lumberjack Mirror Spot', 'Lumberjack Area'),
('Spectacle Rock Mirror Spot', 'Spectacle Rock Ledge'),
('West Death Mountain (Top) Mirror Spot', 'West Death Mountain (Top)'),
('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'),
('TR Pegs Area Mirror Spot', 'Death Mountain TR Pegs'),
('Mountain Entry Mirror Spot', 'Mountain Entry Area'),
('Mountain Entry Entrance Mirror Spot', 'Death Mountain Entrance'),
('Mountain Entry Ledge Mirror Spot', 'Death Mountain Return Ledge'),
('Zora Waterfall Mirror Spot', 'Zora Waterfall Area'),
('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 East Bottom Mirror Spot', 'Lost Woods Pass East Bottom Area'),
('Kakariko Fortune Mirror Spot', 'Kakariko Fortune Area'),
('Kakariko Pond Mirror Spot', 'Kakariko Pond Area'),
('Forgotton Forest Mirror Spot', 'Forgotten Forest Area'),
('Forgotton Forest Fence Mirror Spot', 'Forgotten Forest Area'),
('Bonk Rock Ledge Mirror Spot', 'Bonk Rock Ledge'),
('Graveyard Ledge Mirror Spot', 'Graveyard Ledge'),
('Kings Grave Mirror Spot', 'Kings Grave Area'),
('River Bend Mirror Spot', 'River Bend Area'),
('River Bend East Mirror Spot', 'River Bend East Bank'),
('Potion Shop Mirror Spot', 'Potion Shop Area'),
('Potion Shop Northeast Mirror Spot', 'Potion Shop Northeast'),
('Zora Approach Mirror Spot', 'Zora Approach Area'),
('Zora Approach Ledge Mirror Spot', 'Zora Approach Ledge'),
('Kakariko Mirror Spot', 'Kakariko Area'),
('Kakariko Grass Mirror Spot', 'Kakariko Area'),
('HC Ledge Mirror Spot', 'Hyrule Castle Ledge'),
('HC Courtyard Mirror Spot', 'Hyrule Castle Courtyard'),
('HC Area Mirror Spot', 'Hyrule Castle Area'),
('HC Area South Mirror Spot', 'Hyrule Castle Area'),
('HC East Entry Mirror Spot', 'Hyrule Castle East Entry'),
('Wooden Bridge Mirror Spot', 'Wooden Bridge Area'),
('Wooden Bridge Northeast Mirror Spot', 'Wooden Bridge Area'),
('Wooden Bridge West Mirror Spot', 'Wooden Bridge Area'),
('Eastern Palace Mirror Spot', 'Eastern Palace Area'),
('Blacksmith Mirror Spot', 'Blacksmith Area'),
('Blacksmith Entry Mirror Spot', 'Blacksmith Area'),
('Bat Cave Ledge Mirror Spot', 'Bat Cave Ledge'),
('Sand Dunes Mirror Spot', 'Sand Dunes Area'),
('Maze Race Mirror Spot', 'Maze Race Ledge'),
('Maze Race Ledge Mirror Spot', 'Maze Race Ledge'),
('Kakariko Suburb Mirror Spot', 'Kakariko Suburb Area'),
('Kakariko Suburb South Mirror Spot', 'Kakariko Suburb Area'),
('Flute Boy Mirror Spot', 'Flute Boy Area'),
('Flute Boy Pass Mirror Spot', 'Flute Boy Pass'),
('Central Bonk Rocks Mirror Spot', 'Central Bonk Rocks Area'),
('Links House Mirror Spot', 'Links House Area'),
('Stone Bridge Mirror Spot', 'Stone Bridge Area'),
('Stone Bridge South Mirror Spot', 'Stone Bridge Area'),
('Hobo Mirror Spot', 'Stone Bridge Water'),
('Tree Line Mirror Spot', 'Tree Line Area'),
('Eastern Nook Mirror Spot', 'Eastern Nook Area'),
('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'),
('Flute Boy Entry Mirror Spot', 'Flute Boy Bush Entry'),
('Cave 45 Mirror Spot', 'Cave 45 Ledge'),
('C Whirlpool Mirror Spot', 'C Whirlpool Area'),
('C Whirlpool Outer Mirror Spot', 'C Whirlpool Outer Area'),
('Desert Pass Ledge Mirror Spot', 'Desert Pass Ledge'),
('Desert Pass Mirror Spot', 'Desert Pass Area'),
('Dam Mirror Spot', 'Dam Area'),
('Statues Mirror Spot', 'Statues Area'),
('South Pass Mirror Spot', 'South Pass Area'),
('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'),
('Octoballoon Mirror Spot', 'Octoballoon Area'),
('Ice Cave Mirror Spot', 'Ice Cave Area'),
# Portal Connections
('Kakariko Teleporter (Hammer)', 'Skull Woods Pass East Top Area'),
('Kakariko Teleporter (Rock)', 'Skull Woods Pass East Top Area'),
('Top of Pyramid', 'Pyramid Area'),
('Top of Pyramid (Inner)', 'Pyramid Area'),
('East Hyrule Teleporter', 'Palace of Darkness Nook Area'),
('South Hyrule Teleporter', 'Dark C Whirlpool Area'),
('Desert Teleporter', 'Misery Mire Teleporter Ledge'),
('Lake Hylia Teleporter', 'Ice Palace Area'),
('West Death Mountain Teleporter', 'West Dark Death Mountain (Bottom)'),
('East Death Mountain Teleporter', 'East Dark Death Mountain (Bottom)'),
('TR Pegs Teleporter', 'Turtle Rock Ledge')
]
inverted_connections = [('Flute Spot 1', 'West Dark Death Mountain (Bottom)'),
('Flute Spot 2', 'Dark Witch Area'),
('Flute Spot 3', 'Village of Outcasts Area'),
('Flute Spot 4', 'Big Bomb Shop Area'),
('Flute Spot 5', 'Palace of Darkness Nook Area'),
('Flute Spot 6', 'Misery Mire Teleporter Ledge'),
('Flute Spot 7', 'Swamp Area'),
('Flute Spot 8', 'Bomber Corner Area'),
('Spectacle Rock Leave', 'West Death Mountain (Top)'),
('Spectacle Rock Approach', 'Spectacle Rock Ledge'),
('Floating Island Bridge (West)', 'East Death Mountain (Top East)'),
('Floating Island Bridge (East)', 'Death Mountain Floating Island'),
('East Death Mountain Mimic Ledge Drop', 'Mimic Cave Ledge'),
('Mimic Ledge Drop', 'East Death Mountain (Bottom)'),
('Graveyard Ladder (Top)', 'Graveyard Area'),
('Graveyard Ladder (Bottom)', 'Graveyard Ledge'),
('Checkerboard Ledge Approach', 'Desert Checkerboard Ledge'),
('Checkerboard Ledge Leave', 'Desert Area'),
('Cave 45 Inverted Leave', 'Flute Boy Approach Area'),
('Cave 45 Inverted Approach', 'Cave 45 Ledge'),
('Lake Hylia Island Pier', 'Lake Hylia Island'),
('Desert Pass Ladder (North)', 'Desert Pass Area'),
('Desert Pass Ladder (South)', 'Desert Pass Ledge'),
('Dark Death Mountain Ladder (North)', 'West Dark Death Mountain (Bottom)'),
('Dark Death Mountain Ladder (South)', 'West Dark Death Mountain (Top)'),
('Dark South Teleporter Cliff Ledge Drop', 'Central Cliffs'), #OWG only, needs glove
('Turtle Rock Tail Ledge Drop', 'Turtle Rock Ledge'),
('Ice Palace Approach', 'Ice Palace Area'),
('Ice Palace Leave', 'Ice Lake Moat'),
# Mirror Connections
('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'),
('Lumberjack Mirror Spot', 'Lumberjack Area'),
('Spectacle Rock Mirror Spot', 'Spectacle Rock Ledge'),
('West Death Mountain (Top) Mirror Spot', 'West Death Mountain (Top)'),
('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'),
('TR Pegs Area Mirror Spot', 'Death Mountain TR Pegs'),
('Mountain Entry Mirror Spot', 'Mountain Entry Area'),
('Mountain Entry Entrance Mirror Spot', 'Death Mountain Entrance'),
('Mountain Entry Ledge Mirror Spot', 'Death Mountain Return Ledge'),
('Zora Waterfall Mirror Spot', 'Zora Waterfall Area'),
('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 East Bottom Mirror Spot', 'Lost Woods Pass East Bottom Area'),
('Kakariko Fortune Mirror Spot', 'Kakariko Fortune Area'),
('Kakariko Pond Mirror Spot', 'Kakariko Pond Area'),
('Forgotton Forest Mirror Spot', 'Forgotten Forest Area'),
('Forgotton Forest Fence Mirror Spot', 'Forgotten Forest Area'),
('Bonk Rock Ledge Mirror Spot', 'Bonk Rock Ledge'),
('Graveyard Ledge Mirror Spot', 'Graveyard Ledge'),
('Kings Grave Mirror Spot', 'Kings Grave Area'),
('River Bend Mirror Spot', 'River Bend Area'),
('River Bend East Mirror Spot', 'River Bend East Bank'),
('Potion Shop Mirror Spot', 'Potion Shop Area'),
('Potion Shop Northeast Mirror Spot', 'Potion Shop Northeast'),
('Zora Approach Mirror Spot', 'Zora Approach Area'),
('Zora Approach Ledge Mirror Spot', 'Zora Approach Ledge'),
('Kakariko Mirror Spot', 'Kakariko Area'),
('Kakariko Grass Mirror Spot', 'Kakariko Area'),
('HC Ledge Mirror Spot', 'Hyrule Castle Ledge'),
('HC Courtyard Mirror Spot', 'Hyrule Castle Courtyard'),
('HC Area Mirror Spot', 'Hyrule Castle Area'),
('HC Area South Mirror Spot', 'Hyrule Castle Area'),
('HC East Entry Mirror Spot', 'Hyrule Castle East Entry'),
('Wooden Bridge Mirror Spot', 'Wooden Bridge Area'),
('Wooden Bridge Northeast Mirror Spot', 'Wooden Bridge Area'),
('Wooden Bridge West Mirror Spot', 'Wooden Bridge Area'),
('Eastern Palace Mirror Spot', 'Eastern Palace Area'),
('Blacksmith Mirror Spot', 'Blacksmith Area'),
('Blacksmith Entry Mirror Spot', 'Blacksmith Area'),
('Bat Cave Ledge Mirror Spot', 'Bat Cave Ledge'),
('Sand Dunes Mirror Spot', 'Sand Dunes Area'),
('Maze Race Mirror Spot', 'Maze Race Ledge'),
('Maze Race Ledge Mirror Spot', 'Maze Race Ledge'),
('Kakariko Suburb Mirror Spot', 'Kakariko Suburb Area'),
('Kakariko Suburb South Mirror Spot', 'Kakariko Suburb Area'),
('Flute Boy Mirror Spot', 'Flute Boy Area'),
('Flute Boy Pass Mirror Spot', 'Flute Boy Pass'),
('Central Bonk Rocks Mirror Spot', 'Central Bonk Rocks Area'),
('Links House Mirror Spot', 'Links House Area'),
('Stone Bridge Mirror Spot', 'Stone Bridge Area'),
('Stone Bridge South Mirror Spot', 'Stone Bridge Area'),
('Hobo Mirror Spot', 'Stone Bridge Water'),
('Tree Line Mirror Spot', 'Tree Line Area'),
('Eastern Nook Mirror Spot', 'Eastern Nook Area'),
('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'),
('Flute Boy Entry Mirror Spot', 'Flute Boy Bush Entry'),
('Cave 45 Mirror Spot', 'Cave 45 Ledge'),
('C Whirlpool Mirror Spot', 'C Whirlpool Area'),
('C Whirlpool Outer Mirror Spot', 'C Whirlpool Outer Area'),
('Desert Pass Ledge Mirror Spot', 'Desert Pass Ledge'),
('Desert Pass Mirror Spot', 'Desert Pass Area'),
('Dam Mirror Spot', 'Dam Area'),
('Statues Mirror Spot', 'Statues Area'),
('South Pass Mirror Spot', 'South Pass Area'),
('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'),
('Octoballoon Mirror Spot', 'Octoballoon Area'),
('Ice Cave Mirror Spot', 'Ice Cave Area'),
#Inverted Mirror Connections
('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)'),
@@ -756,34 +773,19 @@ mandatory_connections = [ # Whirlpool Connections
('Swamp Nook Pegs Mirror Spot', 'Swamp Nook Area'),
('Swamp Mirror Spot', 'Swamp Area'),
('Dark South Pass Mirror Spot', 'Dark South Pass Area'),
('Bomber Corner Mirror Spot', 'Bomber Corner Area')
]
('Bomber Corner Mirror Spot', 'Bomber Corner Area'),
standard_connections = [('Hyrule Castle SW', 'Central Bonk Rocks NW'),
('Hyrule Castle SE', 'Links House NE'),
('Central Bonk Rocks EN', 'Links House WN'),
('Central Bonk Rocks EC', 'Links House WC'),
('Central Bonk Rocks ES', 'Links House WS')
]
open_connections = [('Flute Spot 1', 'West Death Mountain (Bottom)'),
('Flute Spot 2', 'Potion Shop Area'),
('Flute Spot 3', 'Kakariko Area'),
('Flute Spot 4', 'Links House Area'),
('Flute Spot 5', 'Eastern Nook Area'),
('Flute Spot 6', 'Desert Palace Teleporter Ledge'),
('Flute Spot 7', 'Dam Area'),
('Flute Spot 8', 'Octoballoon Area')
]
inverted_connections = [('Flute Spot 1', 'West Dark Death Mountain (Bottom)'),
('Flute Spot 2', 'Dark Witch Area'),
('Flute Spot 3', 'Village of Outcasts Area'),
('Flute Spot 4', 'Big Bomb Shop Area'),
('Flute Spot 5', 'Palace of Darkness Nook Area'),
('Flute Spot 6', 'Misery Mire Teleporter Ledge'),
('Flute Spot 7', 'Swamp Area'),
('Flute Spot 8', 'Bomber Corner Area')
# Portal Connections
('Post Aga Inverted Teleporter', 'Hyrule Castle Area'),
('Ice Palace Teleporter', 'Lake Hylia Central Island'),
('Misery Mire Teleporter', 'Desert Palace Teleporter Ledge'),
('East Dark World Teleporter', 'Eastern Nook Area'),
('South Dark World Teleporter', 'C Whirlpool Area'),
('West Dark World Teleporter (Hammer)', 'Lost Woods Pass East Top Area'),
('West Dark World Teleporter (Rock)', 'Lost Woods Pass East Bottom Area'),
('Dark Death Mountain Teleporter (West)', 'West Death Mountain (Bottom)'),
('Dark Death Mountain Teleporter (East)', 'East Death Mountain (Bottom)'),
('Turtle Rock Teleporter', 'Death Mountain TR Pegs Ledge')
]
parallelsimilar_connections = [('Maze Race ES', 'Kakariko Suburb WS'),

230
Rules.py
View File

@@ -719,7 +719,6 @@ def default_rules(world, player):
set_rule(world.get_location('Potion Shop', player), lambda state: state.has('Mushroom', player))
set_rule(world.get_location('Flute Spot', player), lambda state: state.has('Shovel', player))
set_rule(world.get_location('Bombos Tablet', player), lambda state: state.has('Book of Mudora', player) and state.has_beam_sword(player))
set_rule(world.get_location('Frog', player), lambda state: state.can_reach('Blacksmith', 'Location', player))
# Entrance Access
set_rule(world.get_entrance('Lumberjack Tree Tree', player), lambda state: state.has_Boots(player) and state.has('Beat Agahnim 1', player))
@@ -838,27 +837,6 @@ def default_rules(world, player):
def ow_open_rules(world, player):
set_rule(world.get_entrance('Spectacle Rock Approach', player), lambda state: False)
set_rule(world.get_entrance('Spectacle Rock Leave', player), lambda state: False)
set_rule(world.get_entrance('Floating Island Bridge (West)', player), lambda state: False)
set_rule(world.get_entrance('Floating Island Bridge (East)', player), lambda state: False)
set_rule(world.get_entrance('East Death Mountain Mimic Ledge Drop', player), lambda state: False)
set_rule(world.get_entrance('Mimic Ledge Drop', player), lambda state: False)
set_rule(world.get_entrance('Graveyard Ladder (Top)', player), lambda state: False)
set_rule(world.get_entrance('Graveyard Ladder (Bottom)', player), lambda state: False)
set_rule(world.get_entrance('Checkerboard Ledge Approach', player), lambda state: False)
set_rule(world.get_entrance('Checkerboard Ledge Leave', player), lambda state: False)
set_rule(world.get_entrance('Cave 45 Inverted Approach', player), lambda state: False)
set_rule(world.get_entrance('Cave 45 Inverted Leave', player), lambda state: False)
set_rule(world.get_entrance('Lake Hylia Island Pier', player), lambda state: False)
set_rule(world.get_entrance('Desert Pass Ladder (North)', player), lambda state: False)
set_rule(world.get_entrance('Desert Pass Ladder (South)', player), lambda state: False)
set_rule(world.get_entrance('Dark Death Mountain Ladder (North)', player), lambda state: False)
set_rule(world.get_entrance('Dark Death Mountain Ladder (South)', player), lambda state: False)
set_rule(world.get_entrance('Turtle Rock Tail Ledge Drop', player), lambda state: False)
set_rule(world.get_entrance('Ice Palace Approach', player), lambda state: False)
set_rule(world.get_entrance('Ice Palace Leave', player), lambda state: False)
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))
@@ -950,100 +928,6 @@ def ow_open_rules(world, player):
set_rule(world.get_entrance('South Pass Mirror Spot', player), lambda state: state.has_Mirror(player))
set_rule(world.get_entrance('Octoballoon Mirror Spot', player), lambda state: state.has_Mirror(player))
set_rule(world.get_entrance('Skull Woods Back Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Skull Woods Forgotten (West) Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Skull Woods Forgotten (East) Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Skull Woods Portal Entry Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Skull Woods Forgotten (Middle) Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Skull Woods Front Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Dark Lumberjack Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('West Dark Death Mountain (Top) Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Bubble Boy Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('West Dark Death Mountain (Bottom) Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('East Dark Death Mountain (Top West) Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('East Dark Death Mountain (Top East) Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('TR Ledge (West) Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('TR Ledge (East) Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('TR Isolated Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('East Dark Death Mountain (Bottom Plateau) Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('East Dark Death Mountain (Bottom Left) Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('East Dark Death Mountain (Bottom) Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Dark Floating Island Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Turtle Rock Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Turtle Rock Ledge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Bumper Cave Area Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Bumper Cave Entry Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Bumper Cave Ledge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Catfish Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Skull Woods Pass West Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Skull Woods Pass East Top Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Skull Woods Pass East Bottom Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Outcast Fortune Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Outcast Pond Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Dark Chapel Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Dark Chapel Ledge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Dark Graveyard Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Dark Graveyard Ledge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Dark Graveyard Grave Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Qirn Jump Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Qirn Jump East Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Dark Witch Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Dark Witch Northeast Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Catfish Approach Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Catfish Approach Ledge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Village of Outcasts Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Village of Outcasts Southwest Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Hammer House Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Shield Shop Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Pyramid Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Pyramid Pass Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Pyramid Courtyard Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Pyramid Uncle Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Pyramid From Ledge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Pyramid Entry Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Broken Bridge West Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Broken Bridge East Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Broken Bridge Northeast Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Palace of Darkness Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Hammer Pegs Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Hammer Pegs Entry Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Dark Dunes Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Dig Game Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Dig Game Ledge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Frog Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Frog Prison Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Archery Game Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Stumpy Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Stumpy Pass Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Dark Bonk Rocks Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Big Bomb Shop Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Hammer Bridge North Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Hammer Bridge South Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Dark Hobo Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Dark Tree Line Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Darkness Nook Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Misery Mire Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Misery Mire Ledge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Misery Mire Blocked Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Misery Mire Main Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Stumpy Approach Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Stumpy Bush Entry Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Dark C Whirlpool Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Dark C Whirlpool Outer Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Hype Cave Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Ice Lake Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Ice Lake Southwest Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Ice Lake Southeast Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Ice Lake Northeast Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Ice Palace Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Shopping Mall Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Swmap Nook Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Swamp Nook Southeast Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Swamp Nook Pegs Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Swamp Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Dark South Pass Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Bomber Corner Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Kakariko Teleporter (Hammer)', player), lambda state: state.has('Hammer', player) and state.can_lift_rocks(player) and state.has_Pearl(player)) # bunny cannot lift bushes
set_rule(world.get_entrance('Kakariko Teleporter (Rock)', player), lambda state: state.can_lift_heavy_rocks(player) and state.has_Pearl(player)) # bunny cannot lift bushes
set_rule(world.get_entrance('Top of Pyramid', player), lambda state: state.has('Beat Agahnim 1', player))
@@ -1055,20 +939,8 @@ def ow_open_rules(world, player):
set_rule(world.get_entrance('Lake Hylia Teleporter', player), lambda state: state.can_lift_heavy_rocks(player))
set_rule(world.get_entrance('East Death Mountain Teleporter', player), lambda state: state.can_lift_heavy_rocks(player))
set_rule(world.get_entrance('TR Pegs Teleporter', player), lambda state: state.has('Hammer', player))
set_rule(world.get_entrance('West Dark World Teleporter (Hammer)', player), lambda state: False)
set_rule(world.get_entrance('West Dark World Teleporter (Rock)', player), lambda state: False)
set_rule(world.get_entrance('Post Aga Inverted Teleporter', player), lambda state: False)
set_rule(world.get_entrance('East Dark World Teleporter', player), lambda state: False)
set_rule(world.get_entrance('South Dark World Teleporter', player), lambda state: False)
set_rule(world.get_entrance('South Teleporter Cliff Ledge Drop', player), lambda state: False)
set_rule(world.get_entrance('Misery Mire Teleporter', player), lambda state: False)
set_rule(world.get_entrance('Ice Palace Teleporter', player), lambda state: False)
set_rule(world.get_entrance('Dark Death Mountain Teleporter (West)', player), lambda state: False)
set_rule(world.get_entrance('Dark Death Mountain Teleporter (East)', player), lambda state: False)
set_rule(world.get_entrance('Turtle Rock Teleporter', player), lambda state: False)
set_rule(world.get_entrance('Inverted Pyramid Hole', player), lambda state: False)
add_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: state.has('Beat Agahnim 2', player) or world.open_pyramid[player])
set_rule(world.get_entrance('Agahnims Tower', player), lambda state: state.has('Cape', player) or state.has_beam_sword(player) or state.has('Beat Agahnim 1', player)) # barrier gets removed after killing agahnim, relevant for entrance shuffle
@@ -1081,97 +953,6 @@ def ow_inverted_rules(world, player):
set_rule(world.get_entrance('Graveyard Ladder (Bottom)', player), lambda state: state.has_Pearl(player))
set_rule(world.get_entrance('Pyramid Exit Ledge Drop', player), lambda state: state.has('Hammer', player))
set_rule(world.get_entrance('Lost Woods East Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Lost Woods Entry Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Lost Woods Pedestal Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Lost Woods Southwest Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Lost Woods East (Forgotten) Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Lost Woods West (Forgotten) Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Lumberjack Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('West Death Mountain (Top) Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Spectacle Rock Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('East Death Mountain (Top West) Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('East Death Mountain (Top East) Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Mimic Cave Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Spiral Cave Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Fairy Ascension Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Isolated Ledge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Death Mountain Bridge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Floating Island Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('TR Pegs Area Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Mountain Entry Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Mountain Entry Ledge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Mountain Entry Entrance Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Zora Waterfall Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Lost Woods Pass West Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Lost Woods Pass East Top Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Lost Woods Pass East Bottom Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Kakariko Fortune Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Kakariko Pond Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Bonk Rock Ledge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Graveyard Ledge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Kings Grave Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('River Bend Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('River Bend East Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Potion Shop Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Potion Shop Northeast Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Zora Approach Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Zora Approach Ledge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Kakariko Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Kakariko Grass Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Forgotton Forest Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Forgotton Forest Fence Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('HC Area Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('HC Ledge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('HC Courtyard Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('HC East Entry Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('HC Area South Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Wooden Bridge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Wooden Bridge Northeast Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Wooden Bridge West Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Eastern Palace Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Blacksmith Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Blacksmith Entry Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Bat Cave Ledge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Sand Dunes Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Maze Race Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Maze Race Ledge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Kakariko Suburb Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Kakariko Suburb South Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Flute Boy Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Flute Boy Pass Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Central Bonk Rocks Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Links House Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Stone Bridge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Stone Bridge South Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Hobo Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Tree Line Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Eastern Nook Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Checkerboard Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Desert Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Desert Ledge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('DP Stairs Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('DP Entrance (North) Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Bombos Tablet Ledge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Cave 45 Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Flute Boy Entry Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('C Whirlpool Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('C Whirlpool Outer Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Statues Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Lake Hylia Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Lake Hylia Northeast Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Lake Hylia Island Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Lake Hylia Central Island Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Lake Hylia Water Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('South Shore Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('South Shore East Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Ice Cave Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Desert Pass Ledge Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Desert Pass Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Dam Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('South Pass Mirror Spot', player), lambda state: False)
set_rule(world.get_entrance('Octoballoon Mirror Spot', player), lambda state: False)
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))
@@ -1266,17 +1047,6 @@ def ow_inverted_rules(world, player):
set_rule(world.get_entrance('Dark South Pass Mirror Spot', player), lambda state: state.has_Mirror(player))
set_rule(world.get_entrance('Bomber Corner Mirror Spot', player), lambda state: state.has_Mirror(player))
set_rule(world.get_entrance('Kakariko Teleporter (Hammer)', player), lambda state: False)
set_rule(world.get_entrance('Kakariko Teleporter (Rock)', player), lambda state: False)
set_rule(world.get_entrance('Top of Pyramid', player), lambda state: False)
set_rule(world.get_entrance('Top of Pyramid (Inner)', player), lambda state: False)
set_rule(world.get_entrance('East Hyrule Teleporter', player), lambda state: False)
set_rule(world.get_entrance('South Hyrule Teleporter', player), lambda state: False)
set_rule(world.get_entrance('South Teleporter Cliff Ledge Drop', player), lambda state: False)
set_rule(world.get_entrance('Desert Teleporter', player), lambda state: False)
set_rule(world.get_entrance('Lake Hylia Teleporter', player), lambda state: False)
set_rule(world.get_entrance('East Death Mountain Teleporter', player), lambda state: False)
set_rule(world.get_entrance('TR Pegs Teleporter', player), lambda state: False)
set_rule(world.get_entrance('West Dark World Teleporter (Hammer)', player), lambda state: state.has('Hammer', player) and state.has_Pearl(player))
set_rule(world.get_entrance('West Dark World Teleporter (Rock)', player), lambda state: state.can_lift_heavy_rocks(player) and state.has_Pearl(player)) # bunny cannot lift bushes
set_rule(world.get_entrance('Post Aga Inverted Teleporter', player), lambda state: state.has('Beat Agahnim 1', player))