Initial Inverted changes
This commit is contained in:
344
Rules.py
344
Rules.py
@@ -75,6 +75,9 @@ def add_rule(spot, rule, combine='and'):
|
||||
else:
|
||||
spot.access_rule = lambda state: rule(state) and old_rule(state)
|
||||
|
||||
def add_bunny_rule(spot, player):
|
||||
add_rule(spot, lambda state: state.is_not_bunny(spot.parent_region, player))
|
||||
|
||||
|
||||
def or_rule(rule1, rule2):
|
||||
return lambda state: rule1(state) or rule2(state)
|
||||
@@ -427,6 +430,11 @@ def global_rules(world, player):
|
||||
|
||||
|
||||
def default_rules(world, player):
|
||||
set_rule(world.get_entrance('Sanctuary S&Q', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
set_rule(world.get_entrance('Castle Ledge S&Q', player), lambda state: state.has_Mirror(player) and state.has('Beat Agahnim 1', player))
|
||||
add_rule(world.get_entrance('Castle Ledge S&Q', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Dark Sanctuary S&Q', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
|
||||
# Underworld Logic
|
||||
set_rule(world.get_entrance('Old Man Cave Exit (West)', player), lambda state: False) # drop cannot be climbed up
|
||||
set_rule(world.get_entrance('Paradox Cave Push Block Reverse', player), lambda state: state.has('Mirror', player)) # can erase block
|
||||
@@ -439,8 +447,13 @@ def default_rules(world, player):
|
||||
set_rule(world.get_location('Zora\'s Ledge', player), lambda state: state.has('Flippers', 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.has_Pearl(player) and state.can_lift_heavy_rocks(player)) # will get automatic moon pearl requirement
|
||||
set_rule(world.get_location('Catfish', player), lambda state: state.has_Pearl(player))
|
||||
set_rule(world.get_location('Frog', player), lambda state: state.can_lift_heavy_rocks(player)) # will get automatic moon pearl requirement
|
||||
add_bunny_rule(world.get_location('Mushroom', player), player)
|
||||
add_bunny_rule(world.get_location('Zora\'s Ledge', player), player)
|
||||
add_bunny_rule(world.get_location('Maze Race', player), player)
|
||||
add_bunny_rule(world.get_location('Flute Spot', player), player)
|
||||
add_bunny_rule(world.get_location('Frog', player), player)
|
||||
add_bunny_rule(world.get_location('Catfish', player), 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))
|
||||
@@ -448,29 +461,75 @@ def default_rules(world, player):
|
||||
set_rule(world.get_entrance('Sanctuary Grave', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Kings Grave', player), lambda state: state.has_Boots(player))
|
||||
set_rule(world.get_entrance('Waterfall of Wishing', player), lambda state: state.has('Flippers', player)) # can be fake flippered into, but is in weird state inside that might prevent you from doing things. Can be improved in future Todo
|
||||
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))
|
||||
set_rule(world.get_entrance('Inverted Pyramid Hole', player), lambda state: state.has('Beat Agahnim 2', player) or world.open_pyramid[player])
|
||||
add_rule(world.get_entrance('Inverted Pyramid Hole', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Inverted Pyramid Entrance', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Bonk Fairy (Light)', player), lambda state: state.has_Boots(player))
|
||||
set_rule(world.get_entrance('Checkerboard Cave', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('50 Rupee Cave', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('20 Rupee Cave', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Skull Woods First Section Hole (North)', player), lambda state: state.has_Pearl(player)) # bunny cannot lift bush
|
||||
set_rule(world.get_entrance('Skull Woods Second Section Hole', player), lambda state: state.has_Pearl(player)) # bunny cannot lift bush
|
||||
set_rule(world.get_entrance('Skull Woods Final Section', player), lambda state: state.has('Fire Rod', player) and state.has_Pearl(player)) # bunny cannot use fire rod
|
||||
set_rule(world.get_entrance('Thieves Town', player), lambda state: state.has_Pearl(player)) # bunny cannot pull
|
||||
set_rule(world.get_entrance('Brewery', player), lambda state: state.has_Pearl(player)) # bomb required
|
||||
set_rule(world.get_entrance('Dark World Hammer Peg Cave', player), lambda state: state.has_Pearl(player) and state.has('Hammer', player))
|
||||
set_rule(world.get_entrance('Skull Woods Final Section', player), lambda state: state.has('Fire Rod', player))
|
||||
set_rule(world.get_entrance('Dark World Hammer Peg Cave', player), lambda state: state.has('Hammer', 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('Bonk Fairy (Dark)', player), lambda state: state.has_Pearl(player) and state.has_Boots(player))
|
||||
set_rule(world.get_entrance('Hype Cave', player), lambda state: state.has_Pearl(player)) # bomb required
|
||||
set_rule(world.get_entrance('Palace of Darkness', player), lambda state: state.has_Pearl(player)) # kiki needs pearl
|
||||
set_rule(world.get_entrance('Misery Mire', player), lambda state: state.has_Pearl(player) and state.has_sword(player) and state.has_misery_mire_medallion(player)) # sword required to cast magic (!)
|
||||
set_rule(world.get_entrance('Dark Lake Hylia Ledge Fairy', player), lambda state: state.has_Pearl(player)) # bomb required
|
||||
set_rule(world.get_entrance('Dark Lake Hylia Ledge Spike Cave', player), lambda state: state.can_lift_rocks(player) and state.has_Pearl(player))
|
||||
set_rule(world.get_entrance('Hookshot Cave', player), lambda state: state.can_lift_rocks(player) and state.has_Pearl(player))
|
||||
set_rule(world.get_entrance('Turtle Rock', player), lambda state: state.has_Pearl(player) and state.has_sword(player) and state.has_turtle_rock_medallion(player) and state.can_reach('Turtle Rock Ledge', 'Region', player)) # sword required to cast magic (!)
|
||||
add_rule(world.get_entrance('Pyramid Hole', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
set_rule(world.get_entrance('Pyramid Entrance', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
set_rule(world.get_entrance('Bonk Fairy (Dark)', player), lambda state: state.has_Boots(player))
|
||||
set_rule(world.get_entrance('Misery Mire', player), lambda state: state.has_sword(player) and state.has_misery_mire_medallion(player)) # sword required to cast magic (!)
|
||||
set_rule(world.get_entrance('Dark Lake Hylia Ledge Spike Cave', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Hookshot Cave', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Turtle Rock', player), lambda state: state.has_sword(player) and state.has_turtle_rock_medallion(player) and state.can_reach('Turtle Rock Ledge', 'Region', player)) # sword required to cast magic (!)
|
||||
add_bunny_rule(world.get_entrance('Lost Woods Hideout Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Lumberjack Tree Tree', player), player)
|
||||
add_bunny_rule(world.get_entrance('Waterfall of Wishing', player), player)
|
||||
add_bunny_rule(world.get_entrance('Bonk Rock Cave', player), player)
|
||||
add_bunny_rule(world.get_entrance('Sanctuary Grave', player), player)
|
||||
add_bunny_rule(world.get_entrance('Kings Grave', player), player)
|
||||
add_bunny_rule(world.get_entrance('North Fairy Cave Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Hyrule Castle Secret Entrance Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Agahnims Tower', player), player)
|
||||
add_rule(world.get_entrance('Agahnims Tower', player), lambda state: state.has('Beat Agahnim 1', player), 'or') # barrier gets removed after killing agahnim, relevant for entrance shuffle
|
||||
add_rule(world.get_entrance('Agahnims Tower', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
add_bunny_rule(world.get_entrance('Bonk Fairy (Light)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Checkerboard Cave', player), player)
|
||||
add_bunny_rule(world.get_entrance('50 Rupee Cave', player), player)
|
||||
add_bunny_rule(world.get_entrance('20 Rupee Cave', player), player)
|
||||
add_bunny_rule(world.get_entrance('Skull Woods First Section Hole (North)', player), player) # bunny cannot lift bush
|
||||
add_bunny_rule(world.get_entrance('Skull Woods Second Section Hole', player), player) # bunny cannot lift bush
|
||||
add_bunny_rule(world.get_entrance('Skull Woods Final Section', player), player) # bunny cannot use fire rod
|
||||
add_bunny_rule(world.get_entrance('Thieves Town', player), player) # bunny cannot pull
|
||||
add_bunny_rule(world.get_entrance('Brewery', player), player) # bomb required
|
||||
add_bunny_rule(world.get_entrance('Dark World Hammer Peg Cave', player), player)
|
||||
add_bunny_rule(world.get_entrance('Bonk Fairy (Dark)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Hype Cave', player), player) # bomb required
|
||||
add_bunny_rule(world.get_entrance('Palace of Darkness', player), player) # kiki needs pearl
|
||||
add_bunny_rule(world.get_entrance('Misery Mire', player), player)
|
||||
add_bunny_rule(world.get_entrance('Dark Lake Hylia Ledge Fairy', player), player) # bomb required
|
||||
add_bunny_rule(world.get_entrance('Dark Lake Hylia Ledge Spike Cave', player), player)
|
||||
add_bunny_rule(world.get_entrance('Hookshot Cave', player), player)
|
||||
add_bunny_rule(world.get_entrance('Turtle Rock', player), player)
|
||||
|
||||
# Region Access
|
||||
set_rule(world.get_entrance('Flute Spot 1', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
set_rule(world.get_entrance('Flute Spot 2', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
set_rule(world.get_entrance('Flute Spot 3', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
set_rule(world.get_entrance('Flute Spot 4', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
set_rule(world.get_entrance('Flute Spot 5', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
set_rule(world.get_entrance('Flute Spot 6', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
set_rule(world.get_entrance('Flute Spot 7', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
set_rule(world.get_entrance('Flute Spot 8', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
set_rule(world.get_entrance('Inverted Flute Spot 1', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Inverted Flute Spot 2', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Inverted Flute Spot 3', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Inverted Flute Spot 4', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Inverted Flute Spot 5', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Inverted Flute Spot 6', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Inverted Flute Spot 7', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Inverted Flute Spot 8', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
|
||||
set_rule(world.get_entrance('Death Mountain Entrance Rock', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Graveyard Ladder (Top)', player), lambda state: state.has_Pearl(player) and state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Graveyard Ladder (Bottom)', player), lambda state: state.has_Pearl(player) and state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Kings Grave Outer Rocks', player), lambda state: state.can_lift_heavy_rocks(player))
|
||||
set_rule(world.get_entrance('Kings Grave Inner Rocks', player), lambda state: state.can_lift_heavy_rocks(player))
|
||||
set_rule(world.get_entrance('Potion Shop Rock (South)', player), lambda state: state.can_lift_rocks(player))
|
||||
@@ -480,45 +539,109 @@ def default_rules(world, player):
|
||||
set_rule(world.get_entrance('Hyrule Castle Main Gate (North)', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Hyrule Castle Inner East Rock', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Hyrule Castle Outer East Rock', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Cave 45 Inverted Approach', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Cave 45 Inverted Leave', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('C Whirlpool Rock (Bottom)', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('C Whirlpool Rock (Top)', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Lake Hylia Island Pier', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Desert Palace Statue Move', player), lambda state: state.has('Book of Mudora', player))
|
||||
set_rule(world.get_entrance('Checkerboard Ledge Approach', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Checkerboard Ledge Leave', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Desert Ledge Outer Rocks', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Desert Ledge Inner Rocks', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Desert Pass Rocks (North)', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Desert Pass Rocks (South)', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Desert Pass Ladder (North)', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Desert Pass Ladder (South)', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Spectacle Rock Approach', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Spectacle Rock Leave', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('DM Hammer Bridge (West)', player), lambda state: state.has('Hammer', player))
|
||||
set_rule(world.get_entrance('DM Hammer Bridge (East)', player), lambda state: state.has('Hammer', player))
|
||||
set_rule(world.get_entrance('Floating Island Bridge (West)', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Floating Island Bridge (East)', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('East Death Mountain Mimic Drop', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('Mimic Ledge Drop', player), lambda state: state.world.mode[player] == 'inverted')
|
||||
set_rule(world.get_entrance('DM Broken Bridge (West)', player), lambda state: state.has('Hookshot', player))
|
||||
set_rule(world.get_entrance('DM Broken Bridge (East)', player), lambda state: state.has('Hookshot', player))
|
||||
set_rule(world.get_entrance('Fairy Ascension Rocks', player), lambda state: state.can_lift_heavy_rocks(player))
|
||||
set_rule(world.get_entrance('Skull Woods Bush Rock (West)', player), lambda state: state.has_Pearl(player) and state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Skull Woods Bush Rock (East)', player), lambda state: state.has_Pearl(player) and state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Skull Woods Forgotten Bush (West)', player), lambda state: state.has_Pearl(player))
|
||||
set_rule(world.get_entrance('Skull Woods Forgotten Bush (East)', player), lambda state: state.has_Pearl(player))
|
||||
set_rule(world.get_entrance('Skull Woods Second Section Hole', player), lambda state: state.has_Pearl(player))
|
||||
set_rule(world.get_entrance('Bumper Cave Entrance Rock', player), lambda state: state.has_Pearl(player) and state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Skull Woods Pass Bush Row (West)', player), lambda state: state.has_Pearl(player))
|
||||
set_rule(world.get_entrance('Skull Woods Pass Bush Row (East)', player), lambda state: state.has_Pearl(player))
|
||||
set_rule(world.get_entrance('Skull Woods Pass Rock (Top)', player), lambda state: state.has_Pearl(player) and state.can_lift_heavy_rocks(player))
|
||||
set_rule(world.get_entrance('Skull Woods Pass Rock (Bottom)', player), lambda state: state.has_Pearl(player) and state.can_lift_heavy_rocks(player))
|
||||
set_rule(world.get_entrance('Dark Witch Rock (North)', player), lambda state: state.has_Pearl(player) and state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Dark Witch Rock (South)', player), lambda state: state.has_Pearl(player) and state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Broken Bridge Hammer Rock (South)', player), lambda state: state.has_Pearl(player) and (state.can_lift_rocks(player) or state.has('Hammer', player)))
|
||||
set_rule(world.get_entrance('Broken Bridge Hammer Rock (North)', player), lambda state: state.has_Pearl(player) and (state.can_lift_rocks(player) or state.has('Hammer', player)))
|
||||
set_rule(world.get_entrance('Broken Bridge Hookshot Gap', player), lambda state: state.has_Pearl(player) and state.has('Hookshot', player))
|
||||
set_rule(world.get_entrance('Village of Outcasts Pegs', player), lambda state: state.has_Pearl(player) and state.has('Hammer', player))
|
||||
set_rule(world.get_entrance('Grassy Lawn Pegs', player), lambda state: state.has_Pearl(player) and state.has('Hammer', player))
|
||||
set_rule(world.get_entrance('Peg Area Rocks (West)', player), lambda state: state.has_Pearl(player) and state.can_lift_heavy_rocks(player))
|
||||
set_rule(world.get_entrance('Peg Area Rocks (East)', player), lambda state: state.has_Pearl(player) and state.can_lift_heavy_rocks(player))
|
||||
set_rule(world.get_entrance('Dig Game To Ledge Drop', player), lambda state: state.has_Pearl(player) and state.can_lift_heavy_rocks(player))
|
||||
set_rule(world.get_entrance('Archery Game Rock', player), lambda state: state.has_Pearl(player) and state.can_lift_heavy_rocks(player))
|
||||
set_rule(world.get_entrance('Dark C Whirlpool Rock (Bottom)', player), lambda state: state.has_Pearl(player) and state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Dark C Whirlpool Rock (Top)', player), lambda state: state.has_Pearl(player) and state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Hammer Bridge Pegs (North)', player), lambda state: state.has('Hammer', player) and state.has_Pearl(player))
|
||||
set_rule(world.get_entrance('Hammer Bridge Pegs (South)', player), lambda state: state.has_Pearl(player) and state.has('Hammer', player))
|
||||
set_rule(world.get_entrance('Circle of Bushes Bush (North)', player), lambda state: state.has_Pearl(player))
|
||||
set_rule(world.get_entrance('Circle of Bushes Bush (South)', player), lambda state: state.has_Pearl(player))
|
||||
set_rule(world.get_entrance('Skull Woods Bush Rock (West)', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Skull Woods Bush Rock (East)', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Bumper Cave Entrance Rock', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Skull Woods Pass Rock (Top)', player), lambda state: state.can_lift_heavy_rocks(player))
|
||||
set_rule(world.get_entrance('Skull Woods Pass Rock (Bottom)', player), lambda state: state.can_lift_heavy_rocks(player))
|
||||
set_rule(world.get_entrance('Dark Witch Rock (North)', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Dark Witch Rock (South)', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Broken Bridge Hammer Rock (South)', player), lambda state: state.can_lift_rocks(player) or state.has('Hammer', player))
|
||||
set_rule(world.get_entrance('Broken Bridge Hammer Rock (North)', player), lambda state: state.can_lift_rocks(player) or state.has('Hammer', player))
|
||||
set_rule(world.get_entrance('Broken Bridge Hookshot Gap', player), lambda state: state.has('Hookshot', player))
|
||||
set_rule(world.get_entrance('Village of Outcasts Pegs', player), lambda state: state.has('Hammer', player))
|
||||
set_rule(world.get_entrance('Grassy Lawn Pegs', player), lambda state: state.has('Hammer', player))
|
||||
set_rule(world.get_entrance('Peg Area Rocks (West)', player), lambda state: state.can_lift_heavy_rocks(player))
|
||||
set_rule(world.get_entrance('Peg Area Rocks (East)', player), lambda state: state.can_lift_heavy_rocks(player))
|
||||
set_rule(world.get_entrance('Dig Game To Ledge Drop', player), lambda state: state.can_lift_heavy_rocks(player))
|
||||
set_rule(world.get_entrance('Archery Game Rock', player), lambda state: state.can_lift_heavy_rocks(player))
|
||||
set_rule(world.get_entrance('Dark C Whirlpool Rock (Bottom)', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Dark C Whirlpool Rock (Top)', player), lambda state: state.can_lift_rocks(player))
|
||||
set_rule(world.get_entrance('Hammer Bridge Pegs (North)', player), lambda state: state.has('Hammer', player))
|
||||
set_rule(world.get_entrance('Hammer Bridge Pegs (South)', player), lambda state: state.has('Hammer', player))
|
||||
add_bunny_rule(world.get_entrance('Lost Woods Bush (West)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Lost Woods Bush (East)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Death Mountain Entrance Rock', player), player)
|
||||
add_bunny_rule(world.get_entrance('Kings Grave Outer Rocks', player), player)
|
||||
add_bunny_rule(world.get_entrance('Kings Grave Inner Rocks', player), player)
|
||||
add_bunny_rule(world.get_entrance('Potion Shop Rock (South)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Potion Shop Rock (North)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Kakariko Southwest Bush (North)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Kakariko Southwest Bush (South)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Kakariko Yard Bush (North)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Kakariko Yard Bush (South)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Bat Cave Ledge Peg', player), player)
|
||||
add_bunny_rule(world.get_entrance('Hyrule Castle Courtyard Bush (North)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Hyrule Castle Courtyard Bush (South)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Hyrule Castle Inner East Rock', player), player)
|
||||
add_bunny_rule(world.get_entrance('Hyrule Castle Outer East Rock', player), player)
|
||||
add_bunny_rule(world.get_entrance('Wooden Bridge Bush (North)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Wooden Bridge Bush (South)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Flute Boy Bush (North)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Flute Boy Bush (South)', player), player)
|
||||
add_bunny_rule(world.get_entrance('C Whirlpool Rock (Bottom)', player), player)
|
||||
add_bunny_rule(world.get_entrance('C Whirlpool Rock (Top)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Desert Ledge Outer Rocks', player), player)
|
||||
add_bunny_rule(world.get_entrance('Desert Ledge Inner Rocks', player), player)
|
||||
add_bunny_rule(world.get_entrance('Desert Pass Rocks (North)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Desert Pass Rocks (South)', player), player)
|
||||
add_bunny_rule(world.get_entrance('DM Hammer Bridge (West)', player), player)
|
||||
add_bunny_rule(world.get_entrance('DM Hammer Bridge (East)', player), player)
|
||||
add_bunny_rule(world.get_entrance('DM Broken Bridge (West)', player), player)
|
||||
add_bunny_rule(world.get_entrance('DM Broken Bridge (East)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Fairy Ascension Rocks', player), player)
|
||||
add_bunny_rule(world.get_entrance('Skull Woods Bush Rock (West)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Skull Woods Bush Rock (East)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Skull Woods Forgotten Bush (West)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Skull Woods Forgotten Bush (East)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Skull Woods Second Section Hole', player), player)
|
||||
add_bunny_rule(world.get_entrance('Bumper Cave Entrance Rock', player), player)
|
||||
add_bunny_rule(world.get_entrance('Skull Woods Pass Bush Row (West)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Skull Woods Pass Bush Row (East)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Skull Woods Pass Rock (Top)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Skull Woods Pass Rock (Bottom)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Dark Witch Rock (North)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Dark Witch Rock (South)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Broken Bridge Hammer Rock (South)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Broken Bridge Hammer Rock (North)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Broken Bridge Hookshot Gap', player), player)
|
||||
add_bunny_rule(world.get_entrance('Village of Outcasts Pegs', player), player)
|
||||
add_bunny_rule(world.get_entrance('Grassy Lawn Pegs', player), player)
|
||||
add_bunny_rule(world.get_entrance('Peg Area Rocks (West)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Peg Area Rocks (East)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Dig Game To Ledge Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Archery Game Rock', player), player)
|
||||
add_bunny_rule(world.get_entrance('Circle of Bushes Bush (North)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Circle of Bushes Bush (South)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Dark C Whirlpool Rock (Bottom)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Dark C Whirlpool Rock (Top)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Hammer Bridge Pegs (North)', player), player)
|
||||
add_bunny_rule(world.get_entrance('Hammer Bridge Pegs (South)', player), player)
|
||||
|
||||
set_rule(world.get_entrance('Flute Away', player), lambda state: state.can_flute(player))
|
||||
|
||||
@@ -528,34 +651,70 @@ def default_rules(world, player):
|
||||
set_rule(world.get_entrance('River Bend Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('River Bend East Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Wooden Bridge Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Wooden Bridge Northeast Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('C Whirlpool EC', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Statues WC', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Lake Hylia Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Lake Hylia South Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Lake Hylia Northeast Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Lake Hylia Central Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Lake Hylia Island Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Ice Cave SW', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Octoballoon Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Octoballoon Waterfall Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Catfish Approach Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Dark Witch Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Dark Witch Northeast Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Qirn Jump Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Qirn Jump East Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Broken Bridge Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Broken Bridge Northeast Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Broken Bridge West Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Hammer Bridge Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Ice Lake Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Ice Lake Northeast Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Ice Lake Southwest Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Ice Lake Southeast Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Bomber Corner Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Bomber Corner Waterfall Water Drop', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Ice Cave SW', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Shopping Mall SW', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('C Whirlpool EC', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Statues WC', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Dark C Whirlpool EC', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Hype Cave WC', player), lambda state: state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Catfish Approach Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Dark Witch Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Dark Witch Northeast Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Qirn Jump Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Qirn Jump East Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Broken Bridge Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Broken Bridge Northeast Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Broken Bridge West Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Hammer Bridge Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Dark C Whirlpool EC', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Hype Cave WC', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Ice Lake Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Ice Lake Northeast Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Ice Lake Southwest Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Ice Lake Southeast Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Shopping Mall SW', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Bomber Corner Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Bomber Corner Waterfall Water Drop', player), lambda state: state.has('Flippers', player))
|
||||
add_bunny_rule(world.get_entrance('Zora Warning Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Potion Shop Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Potion Shop Northeast Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('River Bend Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('River Bend East Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Wooden Bridge Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Wooden Bridge Northeast Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('C Whirlpool EC', player), player)
|
||||
add_bunny_rule(world.get_entrance('Statues WC', player), player)
|
||||
add_bunny_rule(world.get_entrance('Lake Hylia Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Lake Hylia South Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Lake Hylia Northeast Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Lake Hylia Central Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Lake Hylia Island Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Ice Cave SW', player), player)
|
||||
add_bunny_rule(world.get_entrance('Octoballoon Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Octoballoon Waterfall Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Catfish Approach Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Dark Witch Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Dark Witch Northeast Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Qirn Jump Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Qirn Jump East Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Broken Bridge Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Broken Bridge Northeast Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Broken Bridge West Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Hammer Bridge Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Dark C Whirlpool EC', player), player)
|
||||
add_bunny_rule(world.get_entrance('Hype Cave WC', player), player)
|
||||
add_bunny_rule(world.get_entrance('Ice Lake Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Ice Lake Northeast Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Ice Lake Southwest Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Ice Lake Southeast Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Shopping Mall SW', player), player)
|
||||
add_bunny_rule(world.get_entrance('Bomber Corner Water Drop', player), player)
|
||||
add_bunny_rule(world.get_entrance('Bomber Corner Waterfall Water Drop', player), player)
|
||||
|
||||
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
|
||||
@@ -566,13 +725,25 @@ def default_rules(world, player):
|
||||
set_rule(world.get_entrance('Desert Teleporter', player), lambda state: state.can_flute(player) and 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('Turtle Rock Teleporter', player), lambda state: state.can_lift_heavy_rocks(player) and state.has('Hammer', player))
|
||||
set_rule(world.get_entrance('TR Pegs Teleporter', player), lambda state: state.can_lift_heavy_rocks(player) and state.has('Hammer', player))
|
||||
add_rule(world.get_entrance('Kakariko Teleporter (Hammer)', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
add_rule(world.get_entrance('Kakariko Teleporter (Rock)', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
add_rule(world.get_entrance('Top of Pyramid', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
add_rule(world.get_entrance('Top of Pyramid (Inner)', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
add_rule(world.get_entrance('East Hyrule Teleporter', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
add_rule(world.get_entrance('South Hyrule Teleporter', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
add_rule(world.get_entrance('Desert Teleporter', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
add_rule(world.get_entrance('Lake Hylia Teleporter', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
add_rule(world.get_entrance('East Death Mountain Teleporter', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
add_rule(world.get_entrance('TR Pegs Teleporter', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
|
||||
set_rule(world.get_entrance('Lost Woods 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 Pedestal Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Lost Woods Southwest Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Lost Woods Northeast Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Lost Woods East (Forgotten) Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Lost Woods West (Forgotten) Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Lumberjack Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Mountain Entry Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Mountain Entry Ledge Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
@@ -586,7 +757,6 @@ def default_rules(world, player):
|
||||
set_rule(world.get_entrance('Bonk Rock Ledge Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Graveyard Ledge Mirror Spot', player), lambda state: state.has_Pearl(player) and state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Kings Grave Mirror Spot', player), lambda state: state.has_Pearl(player) and state.has_Mirror(player))
|
||||
# Caution: If king's grave is relaxed at all to account for reaching it via a two way cave's exit in insanity mode, then the bomb shop logic will need to be updated (that would involve create a small ledge-like Region for it)
|
||||
set_rule(world.get_entrance('River Bend Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('River Bend East Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Potion Shop Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
@@ -623,7 +793,7 @@ def default_rules(world, player):
|
||||
set_rule(world.get_entrance('Links House Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Stone Bridge Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Stone Bridge South Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Hobo Mirror Spot', player), lambda state: state.has_Pearl(player) and state.has_Mirror(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Hobo Mirror Spot', player), lambda state: state.has_Mirror(player) and state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Tree Line Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Checkerboard Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Desert Ledge Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
@@ -636,7 +806,7 @@ def default_rules(world, player):
|
||||
set_rule(world.get_entrance('South Pass Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Lake Hylia Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Lake Hylia Northeast Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Lake Hylia Island Mirror Spot', player), lambda state: state.has_Pearl(player) and state.has_Mirror(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Lake Hylia Island Mirror Spot', player), lambda state: state.has_Mirror(player) and state.has_Pearl(player) and state.has('Flippers', player))
|
||||
set_rule(world.get_entrance('Lake Hylia Central Island Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('South Shore Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('South Shore East Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
@@ -644,8 +814,8 @@ def default_rules(world, player):
|
||||
set_rule(world.get_entrance('Ice Cave Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('West Death Mountain (Top) Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Spectacle Rock Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('East Death Mountain (Top West) Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('East Death Mountain (Top East) Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('East Death Mountain (West Top) Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('East Death Mountain (East Top) Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Mimic Cave Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Spiral Cave Mirror Spot', player), lambda state: state.has_Mirror(player))
|
||||
set_rule(world.get_entrance('Fairy Ascension Mirror Spot', player), lambda state: state.has_Mirror(player) and state.has_Pearl(player)) # need to lift flowers
|
||||
@@ -661,12 +831,12 @@ def default_rules(world, player):
|
||||
swordless_rules(world, player)
|
||||
|
||||
set_rule(world.get_entrance('Ganons Tower', player), lambda state: state.has_crystals(world.crystals_needed_for_gt[player], player))
|
||||
add_rule(world.get_entrance('Ganons Tower', player), lambda state: state.world.mode[player] != 'inverted')
|
||||
|
||||
|
||||
def inverted_rules(world, player):
|
||||
# s&q regions. link's house entrance is set to true so the filler knows the chest inside can always be reached
|
||||
set_rule(world.get_entrance('Castle Ledge S&Q', player), lambda state: state.has_Mirror(player) and state.has('Beat Agahnim 1', player))
|
||||
|
||||
|
||||
# overworld requirements
|
||||
set_rule(world.get_location('Ice Rod Cave', player), lambda state: state.has_Pearl(player))
|
||||
set_rule(world.get_location('Maze Race', player), lambda state: state.has_Pearl(player))
|
||||
@@ -1048,31 +1218,7 @@ def standard_rules(world, player):
|
||||
rule_list, debug_path = find_rules_for_zelda_delivery(world, player)
|
||||
set_rule(world.get_location('Zelda Drop Off', player), lambda state: state.has('Zelda Herself', player) and check_rule_list(state, rule_list))
|
||||
|
||||
# for location in ['Mushroom', 'Bottle Merchant', 'Flute Spot', 'Sunken Treasure', 'King Zora', 'Zora\'s Ledge',
|
||||
# 'Purple Chest', 'Maze Race', 'Hobo', 'Desert Ledge', 'Bombos Tablet', 'Lake Hylia Island',
|
||||
# 'Old Man', 'Ether Tablet', 'Spectacle Rock', 'Floating Island']:
|
||||
# add_rule(world.get_location(location, player), lambda state: state.has('Zelda Delivered', player))
|
||||
|
||||
# Bonk Fairy (Light) is a notable omission in ER shuffles/Retro
|
||||
# for entrance in ['Blinds Hideout', 'Kings Grave Outer Rocks', 'Dam', 'Tavern North',
|
||||
# 'Chicken House', 'Aginahs Cave', 'Sahasrahlas Hut', 'Kakariko Well Drop', 'Kakariko Well Cave',
|
||||
# 'Blacksmiths Hut', 'Bat Cave Drop Ledge', 'Bat Cave Cave', 'Sick Kids House', 'Hobo Bridge',
|
||||
# 'Lost Woods Hideout Drop', 'Lost Woods Hideout Stump', 'Lumberjack Tree Tree',
|
||||
# 'Lumberjack Tree Cave', 'Mini Moldorm Cave', 'Ice Rod Cave', 'Lake Hylia Central Island Pier',
|
||||
# 'Bonk Rock Cave', 'Library', 'Potion Shop', 'Two Brothers House (East)', 'Desert Palace Statue Move',
|
||||
# 'Eastern Palace', 'Master Sword Meadow', 'Sanctuary', 'Sanctuary Grave',
|
||||
# 'Death Mountain Entrance Rock', 'Desert Teleporter', 'East Hyrule Teleporter',
|
||||
# 'Flute Spot 1', 'Flute Spot 2', 'Flute Spot 3', 'Flute Spot 4',
|
||||
# 'Flute Spot 5', 'Flute Spot 6', 'Flute Spot 7', 'Flute Spot 8',
|
||||
# 'South Hyrule Teleporter', 'Kakariko Teleporter', 'Elder House (East)', 'Elder House (West)',
|
||||
# 'North Fairy Cave', 'North Fairy Cave Drop', 'Lost Woods Gamble', 'Snitch Lady (East)',
|
||||
# 'Snitch Lady (West)', 'Tavern (Front)', 'Bush Covered House', 'Light World Bomb Hut',
|
||||
# 'Kakariko Shop', 'Long Fairy Cave', 'Good Bee Cave', '20 Rupee Cave', 'Cave Shop (Lake Hylia)',
|
||||
# 'Waterfall of Wishing', 'Hyrule Castle Main Gate (North)', 'Hyrule Castle Main Gate (South)', '50 Rupee Cave',
|
||||
# 'Fortune Teller (Light)', 'Lake Hylia Fairy', 'Light Hype Fairy', 'Desert Fairy',
|
||||
# 'Lumberjack House', 'Lake Hylia Fortune Teller', 'Kakariko Gamble Game', 'Top of Pyramid', 'Top of Pyramid (Inner)']:
|
||||
# add_rule(world.get_entrance(entrance, player), lambda state: state.has('Zelda Delivered', player))
|
||||
|
||||
add_rule(world.get_entrance('Links House SC', player), lambda state: state.has('Zelda Delivered', player))
|
||||
add_rule(world.get_entrance('Links House ES', player), lambda state: state.has('Zelda Delivered', player))
|
||||
add_rule(world.get_entrance('Central Bonk Rocks SW', player), lambda state: state.has('Zelda Delivered', player))
|
||||
|
||||
Reference in New Issue
Block a user