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: for ext in region.exits:
create_door(world, player, ext.name, region.name) create_door(world, player, ext.name, region.name)
if ext.connected_region is None: if ext.connected_region is None:
logging.getLogger('').error('Exit not connected to any region: %s', ext.name) logging.getLogger('').warning('Exit not connected to any region: %s', ext.name)
if ext.connected_region.name.endswith(' Portal'): elif ext.connected_region.name.endswith(' Portal'):
for more_exts in ext.connected_region.exits: for more_exts in ext.connected_region.exits:
create_door(world, player, more_exts.name, ext.connected_region.name) create_door(world, player, more_exts.name, ext.connected_region.name)
@@ -1897,6 +1897,7 @@ def create_doors_for_inaccessible_region(inaccessible_region, world, player):
def create_door(world, player, entName, region_name): def create_door(world, player, entName, region_name):
entrance = world.get_entrance(entName, player) entrance = world.get_entrance(entName, player)
connect = entrance.connected_region connect = entrance.connected_region
if connect is not None:
for ext in connect.exits: for ext in connect.exits:
if ext.connected_region is not None and ext.connected_region.name == region_name: if ext.connected_region is not None and ext.connected_region.name == region_name:
d = Door(player, ext.name, DoorType.Logical, ext), d = Door(player, ext.name, DoorType.Logical, ext),

View File

@@ -314,18 +314,12 @@ mandatory_connections = [ # Whirlpool Connections
('Lost Woods Bush (East)', 'Lost Woods West Area'), #pearl ('Lost Woods Bush (East)', 'Lost Woods West Area'), #pearl
('West Death Mountain Drop', 'West Death Mountain (Bottom)'), ('West Death Mountain Drop', 'West Death Mountain (Bottom)'),
('Spectacle Rock Drop', 'West Death Mountain (Top)'), ('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 (West)', 'East Death Mountain (Top East)'), #hammer
('DM Hammer Bridge (East)', 'East Death Mountain (Top West)'), #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'), ('East Death Mountain Spiral Ledge Drop', 'Spiral Cave Ledge'),
('Spiral Ledge Drop', 'East Death Mountain (Bottom)'), ('Spiral Ledge Drop', 'East Death Mountain (Bottom)'),
('East Death Mountain Fairy Ledge Drop', 'Fairy Ascension Ledge'), ('East Death Mountain Fairy Ledge Drop', 'Fairy Ascension Ledge'),
('Fairy Ascension Ledge Drop', 'Fairy Ascension Plateau'), ('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 Plateau Ledge Drop', 'East Death Mountain (Bottom)'),
('Fairy Ascension Rocks (North)', 'East Death Mountain (Bottom)'), #mitts ('Fairy Ascension Rocks (North)', 'East Death Mountain (Bottom)'), #mitts
('Fairy Ascension Rocks (South)', 'Fairy Ascension Plateau'), #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 ('Waterfall of Wishing Cave Entry', 'Waterfall of Wishing Cave'), #flippers
('Bonk Rock Ledge Drop', 'Sanctuary Area'), ('Bonk Rock Ledge Drop', 'Sanctuary Area'),
('Graveyard Ledge Drop', 'Graveyard 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 Outer Rocks', 'Kings Grave Area'), #mitts
('Kings Grave Inner Rocks', 'Graveyard Area'), #mitts ('Kings Grave Inner Rocks', 'Graveyard Area'), #mitts
('River Bend Water Drop', 'River Bend Water'), #flippers ('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 Outer Rocks', 'Desert Palace Entrance (North) Spot'), #glove
('Desert Ledge Inner Rocks', 'Desert Ledge'), #glove ('Desert Ledge Inner Rocks', 'Desert Ledge'), #glove
('Checkerboard Ledge Drop', 'Desert Area'), ('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 Mouth Drop', 'Desert Area'),
('Desert Teleporter Drop', 'Desert Area'), ('Desert Teleporter Drop', 'Desert Area'),
('Bombos Tablet Drop', 'Desert Area'), ('Bombos Tablet Drop', 'Desert Area'),
('Flute Boy Bush (North)', 'Flute Boy Approach Area'), #pearl ('Flute Boy Bush (North)', 'Flute Boy Approach Area'), #pearl
('Flute Boy Bush (South)', 'Flute Boy Bush Entry'), #pearl ('Flute Boy Bush (South)', 'Flute Boy Bush Entry'), #pearl
('Cave 45 Ledge Drop', 'Flute Boy Approach Area'), ('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 Water Entry', 'C Whirlpool Water'), #flippers
('C Whirlpool Landing', 'C Whirlpool Area'), ('C Whirlpool Landing', 'C Whirlpool Area'),
('C Whirlpool Rock (Bottom)', 'C Whirlpool Outer Area'), #glove ('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 Central Water Drop', 'Lake Hylia Water'), #flippers
('Lake Hylia Island 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 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 West Pier', 'Lake Hylia Area'),
('Lake Hylia East Pier', 'Lake Hylia Northeast Bank'), ('Lake Hylia East Pier', 'Lake Hylia Northeast Bank'),
('Desert Pass Ledge Drop', 'Desert Pass Area'), ('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 (North)', 'Desert Pass Southeast'), #glove
('Desert Pass Rocks (South)', 'Desert Pass Area'), #glove ('Desert Pass Rocks (South)', 'Desert Pass Area'), #glove
('Octoballoon Water Drop', 'Octoballoon Water'), #flippers ('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 (West)', 'Skull Woods Forgotten Path (Northeast)'), #pearl
('Skull Woods Forgotten Bush (East)', 'Skull Woods Forgotten Path (Southwest)'), #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 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 Approach', 'GT Approach'),
('GT Entry Leave', 'West Dark Death Mountain (Top)'), ('GT Entry Leave', 'West Dark Death Mountain (Top)'),
('Floating Island Drop', 'East Dark Death Mountain (Top)'), ('Floating Island Drop', 'East Dark Death Mountain (Top)'),
('Dark Death Mountain Drop (East)', 'East Dark Death Mountain (Bottom)'), ('Dark Death Mountain Drop (East)', 'East Dark Death Mountain (Bottom)'),
('Turtle Rock Ledge Drop', 'Turtle Rock Area'), ('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 Entrance Rock', 'Bumper Cave Entrance'), #glove
('Bumper Cave Ledge Drop', 'Bumper Cave Area'), ('Bumper Cave Ledge Drop', 'Bumper Cave Area'),
('Bumper Cave Entrance 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 Southeast Water Drop', 'Ice Lake Water'), #flippers
('Ice Lake Moat Water Entry', 'Ice Lake Water'), #flippers ('Ice Lake Moat Water Entry', 'Ice Lake Water'), #flippers
('Ice Lake Northeast Pier', 'Ice Lake Northeast Bank'), ('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 Water Drop', 'Bomber Corner Water'), #flippers
('Bomber Corner Waterfall Water Drop', 'Bomber Corner Water'), #flippers ('Bomber Corner Waterfall Water Drop', 'Bomber Corner Water'), #flippers
('Bomber Corner Pier', 'Bomber Corner Area'), ('Bomber Corner Pier', 'Bomber Corner Area'),
@@ -541,35 +521,27 @@ mandatory_connections = [ # Whirlpool Connections
('Ice Lake Northeast Pier Bomb Jump', 'Ice Lake Northeast Bank'), ('Ice Lake Northeast Pier Bomb Jump', 'Ice Lake Northeast Bank'),
('Dark C Whirlpool Cliff Ledge Drop', 'Dark C Whirlpool Area'), ('Dark C Whirlpool Cliff Ledge Drop', 'Dark C Whirlpool Area'),
('Dark C Whirlpool Outer Cliff Ledge Drop', 'Dark C Whirlpool Outer 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'), ('Hype Cliff Ledge Drop', 'Hype Cave Area'),
('Ice Palace Island FAWT Ledge Drop', 'Ice Lake Moat'), ('Ice Palace Island FAWT Ledge Drop', 'Ice Lake Moat'),
('Hammer Bridge EC Cliff Water Drop', 'Hammer Bridge Water'), #fake flipper ('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 standard_connections = [('Hyrule Castle SW', 'Central Bonk Rocks NW'),
('Kakariko Teleporter (Hammer)', 'Skull Woods Pass East Top Area'), ('Hyrule Castle SE', 'Links House NE'),
('Kakariko Teleporter (Rock)', 'Skull Woods Pass East Top Area'), ('Central Bonk Rocks EN', 'Links House WN'),
('Top of Pyramid', 'Pyramid Area'), ('Central Bonk Rocks EC', 'Links House WC'),
('Top of Pyramid (Inner)', 'Pyramid Area'), ('Central Bonk Rocks ES', 'Links House WS')
('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'),
('Post Aga Inverted Teleporter', 'Hyrule Castle Area'), open_connections = [('Flute Spot 1', 'West Death Mountain (Bottom)'),
('Ice Palace Teleporter', 'Lake Hylia Central Island'), ('Flute Spot 2', 'Potion Shop Area'),
('Misery Mire Teleporter', 'Desert Palace Teleporter Ledge'), ('Flute Spot 3', 'Kakariko Area'),
('East Dark World Teleporter', 'Eastern Nook Area'), ('Flute Spot 4', 'Links House Area'),
('South Dark World Teleporter', 'C Whirlpool Area'), ('Flute Spot 5', 'Eastern Nook Area'),
('West Dark World Teleporter (Hammer)', 'Lost Woods Pass East Top Area'), ('Flute Spot 6', 'Desert Palace Teleporter Ledge'),
('West Dark World Teleporter (Rock)', 'Lost Woods Pass East Bottom Area'), ('Flute Spot 7', 'Dam Area'),
('Dark Death Mountain Teleporter (West)', 'West Death Mountain (Bottom)'), ('Flute Spot 8', 'Octoballoon Area'),
('Dark Death Mountain Teleporter (East)', 'East Death Mountain (Bottom)'),
('Turtle Rock Teleporter', 'Death Mountain TR Pegs Ledge'),
# Mirror Connections # Mirror Connections
('Lost Woods East Mirror Spot', 'Lost Woods East Area'), ('Lost Woods East Mirror Spot', 'Lost Woods East Area'),
@@ -663,7 +635,52 @@ mandatory_connections = [ # Whirlpool Connections
('Octoballoon Mirror Spot', 'Octoballoon Area'), ('Octoballoon Mirror Spot', 'Octoballoon Area'),
('Ice Cave Mirror Spot', 'Ice Cave Area'), ('Ice Cave Mirror Spot', 'Ice Cave Area'),
#Inverted Mirror Connections # 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
('Skull Woods Back Mirror Spot', 'Skull Woods Forest (West)'), ('Skull Woods Back Mirror Spot', 'Skull Woods Forest (West)'),
('Skull Woods Forgotten (West) Mirror Spot', 'Skull Woods Forgotten Path (Southwest)'), ('Skull Woods Forgotten (West) Mirror Spot', 'Skull Woods Forgotten Path (Southwest)'),
('Skull Woods Forgotten (East) Mirror Spot', 'Skull Woods Forgotten Path (Northeast)'), ('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 Nook Pegs Mirror Spot', 'Swamp Nook Area'),
('Swamp Mirror Spot', 'Swamp Area'), ('Swamp Mirror Spot', 'Swamp Area'),
('Dark South Pass Mirror Spot', 'Dark South Pass 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'), # Portal Connections
('Hyrule Castle SE', 'Links House NE'), ('Post Aga Inverted Teleporter', 'Hyrule Castle Area'),
('Central Bonk Rocks EN', 'Links House WN'), ('Ice Palace Teleporter', 'Lake Hylia Central Island'),
('Central Bonk Rocks EC', 'Links House WC'), ('Misery Mire Teleporter', 'Desert Palace Teleporter Ledge'),
('Central Bonk Rocks ES', 'Links House WS') ('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'),
open_connections = [('Flute Spot 1', 'West Death Mountain (Bottom)'), ('West Dark World Teleporter (Rock)', 'Lost Woods Pass East Bottom Area'),
('Flute Spot 2', 'Potion Shop Area'), ('Dark Death Mountain Teleporter (West)', 'West Death Mountain (Bottom)'),
('Flute Spot 3', 'Kakariko Area'), ('Dark Death Mountain Teleporter (East)', 'East Death Mountain (Bottom)'),
('Flute Spot 4', 'Links House Area'), ('Turtle Rock Teleporter', 'Death Mountain TR Pegs Ledge')
('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')
] ]
parallelsimilar_connections = [('Maze Race ES', 'Kakariko Suburb WS'), 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('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('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('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 # Entrance Access
set_rule(world.get_entrance('Lumberjack Tree Tree', player), lambda state: state.has_Boots(player) and state.has('Beat Agahnim 1', player)) 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): 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 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 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 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('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('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 (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('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)) 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('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('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('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) 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('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('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 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('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('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 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 (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 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('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('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 (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('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)) set_rule(world.get_entrance('Post Aga Inverted Teleporter', player), lambda state: state.has('Beat Agahnim 1', player))