ensure inverted runs
This commit is contained in:
parent
c6cf8c1ebe
commit
e4ab046027
48
OWGSets.py
48
OWGSets.py
|
@ -2,18 +2,20 @@
|
||||||
Helper functions to deliver entrance/exit/region sets to OWG rules.
|
Helper functions to deliver entrance/exit/region sets to OWG rules.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
def get_immediately_accessible_entrances():
|
def get_immediately_accessible_entrances(world, player):
|
||||||
'''
|
'''
|
||||||
Entrances that are available with no items at all.
|
Entrances that are available with no items at all.
|
||||||
|
|
||||||
At this point, these are fake flipper spots.
|
At this point, these are fake flipper spots.
|
||||||
'''
|
'''
|
||||||
return [
|
entrances = [
|
||||||
'Hobo Bridge',
|
'Hobo Bridge',
|
||||||
'Zoras River',
|
'Zoras River',
|
||||||
'Lake Hylia Island Mirror Spot',
|
|
||||||
'Capacity Upgrade',
|
'Capacity Upgrade',
|
||||||
]
|
]
|
||||||
|
if world.mode[player] != 'inverted':
|
||||||
|
entrances.append('Lake Hylia Island Mirror Spot')
|
||||||
|
return entrances
|
||||||
|
|
||||||
def get_lw_boots_accessible_entrances(world, player):
|
def get_lw_boots_accessible_entrances(world, player):
|
||||||
'''
|
'''
|
||||||
|
@ -24,7 +26,6 @@ def get_lw_boots_accessible_entrances(world, player):
|
||||||
'Desert Ledge Return Rocks',
|
'Desert Ledge Return Rocks',
|
||||||
'Desert Palace Entrance (West)',
|
'Desert Palace Entrance (West)',
|
||||||
'Desert Palace Entrance (North)',
|
'Desert Palace Entrance (North)',
|
||||||
'Flute Spot 1',
|
|
||||||
'Broken Bridge (East)',
|
'Broken Bridge (East)',
|
||||||
'Death Mountain Drop',
|
'Death Mountain Drop',
|
||||||
'Old Man Cave (East)',
|
'Old Man Cave (East)',
|
||||||
|
@ -34,7 +35,6 @@ def get_lw_boots_accessible_entrances(world, player):
|
||||||
'Spectacle Rock Cave',
|
'Spectacle Rock Cave',
|
||||||
'Spectacle Rock Cave Peak',
|
'Spectacle Rock Cave Peak',
|
||||||
'Spectacle Rock Cave (Bottom)',
|
'Spectacle Rock Cave (Bottom)',
|
||||||
'Spectacle Rock Mirror Spot',
|
|
||||||
'Broken Bridge (West)',
|
'Broken Bridge (West)',
|
||||||
'Broken Bridge (East)',
|
'Broken Bridge (East)',
|
||||||
'East Death Mountain Drop',
|
'East Death Mountain Drop',
|
||||||
|
@ -43,7 +43,6 @@ def get_lw_boots_accessible_entrances(world, player):
|
||||||
'Fairy Ascension Cave (Bottom)',
|
'Fairy Ascension Cave (Bottom)',
|
||||||
'East Death Mountain (Top)',
|
'East Death Mountain (Top)',
|
||||||
'Death Mountain (Top)',
|
'Death Mountain (Top)',
|
||||||
'Spectacle Rock Drop',
|
|
||||||
'Death Mountain Return Cave (West)',
|
'Death Mountain Return Cave (West)',
|
||||||
'Paradox Cave (Bottom)',
|
'Paradox Cave (Bottom)',
|
||||||
'Paradox Cave (Middle)',
|
'Paradox Cave (Middle)',
|
||||||
|
@ -51,23 +50,24 @@ def get_lw_boots_accessible_entrances(world, player):
|
||||||
'Spiral Cave (Bottom)',
|
'Spiral Cave (Bottom)',
|
||||||
'Paradox Cave (Top)',
|
'Paradox Cave (Top)',
|
||||||
'Spiral Cave Ledge Access',
|
'Spiral Cave Ledge Access',
|
||||||
'Fairy Ascension Ledge',
|
|
||||||
'Cave 45 Mirror Spot',
|
|
||||||
'Graveyard Ledge Mirror Spot',
|
|
||||||
'Bumper Cave Ledge Mirror Spot',
|
'Bumper Cave Ledge Mirror Spot',
|
||||||
'Desert Ledge (Northeast) Mirror Spot',
|
|
||||||
'Desert Ledge Mirror Spot',
|
|
||||||
'Desert Palace Entrance (North) Mirror Spot',
|
|
||||||
'East Death Mountain (Top) Mirror Spot',
|
|
||||||
'Spiral Cave Mirror Spot',
|
|
||||||
'Fairy Ascension Mirror Spot',
|
|
||||||
'Floating Island Mirror Spot',
|
'Floating Island Mirror Spot',
|
||||||
]
|
]
|
||||||
|
|
||||||
if world.mode[player] != 'inverted':
|
if world.mode[player] != 'inverted':
|
||||||
entrances.append('Cave 45')
|
entrances.append('Cave 45')
|
||||||
entrances.append('Graveyard Cave')
|
entrances.append('Graveyard Cave')
|
||||||
|
entrances.append('Flute Spot 1')
|
||||||
|
entrances.append('Spectacle Rock Mirror Spot')
|
||||||
|
entrances.append('Spectacle Rock Drop')
|
||||||
|
entrances.append('Fairy Ascension Ledge')
|
||||||
|
entrances.append('Cave 45 Mirror Spot')
|
||||||
|
entrances.append('Graveyard Ledge Mirror Spot')
|
||||||
|
entrances.append('Desert Ledge (Northeast) Mirror Spot')
|
||||||
|
entrances.append('Desert Ledge Mirror Spot')
|
||||||
|
entrances.append('Desert Palace Entrance (North) Mirror Spot')
|
||||||
|
entrances.append('East Death Mountain (Top) Mirror Spot')
|
||||||
|
entrances.append('Spiral Cave Mirror Spot')
|
||||||
|
entrances.append('Fairy Ascension Mirror Spot')
|
||||||
return entrances
|
return entrances
|
||||||
|
|
||||||
|
|
||||||
|
@ -83,11 +83,11 @@ def get_lw_boots_accessible_locations():
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
def get_dw_boots_accessible_entrances():
|
def get_dw_boots_accessible_entrances(world, player):
|
||||||
'''
|
'''
|
||||||
Dark World entrances that can be accessed with boots clips.
|
Dark World entrances that can be accessed with boots clips.
|
||||||
'''
|
'''
|
||||||
return [
|
entrances = [
|
||||||
'Northeast Dark World Broken Bridge Pass',
|
'Northeast Dark World Broken Bridge Pass',
|
||||||
'Peg Area Rocks',
|
'Peg Area Rocks',
|
||||||
'Grassy Lawn Pegs',
|
'Grassy Lawn Pegs',
|
||||||
|
@ -97,19 +97,15 @@ def get_dw_boots_accessible_entrances():
|
||||||
'Floating Island Drop',
|
'Floating Island Drop',
|
||||||
'Dark Death Mountain Drop (East)',
|
'Dark Death Mountain Drop (East)',
|
||||||
'Village of Outcasts Drop',
|
'Village of Outcasts Drop',
|
||||||
'Dark Lake Hylia Ledge',
|
|
||||||
'Hype Cave',
|
'Hype Cave',
|
||||||
'Dark World Potion Shop',
|
'Dark World Potion Shop',
|
||||||
'Big Bomb Shop',
|
|
||||||
'Archery Game',
|
'Archery Game',
|
||||||
'Brewery',
|
'Brewery',
|
||||||
'C-Shaped House',
|
'C-Shaped House',
|
||||||
'Chest Game',
|
'Chest Game',
|
||||||
'Thieves Town',
|
'Thieves Town',
|
||||||
'Kings Grave Mirror Spot',
|
|
||||||
'Bumper Cave Entrance Rock',
|
'Bumper Cave Entrance Rock',
|
||||||
'Red Shield Shop',
|
'Red Shield Shop',
|
||||||
'Dark Sanctuary Hint',
|
|
||||||
'Fortune Teller (Dark)',
|
'Fortune Teller (Dark)',
|
||||||
'Dark World Lumberjack Shop',
|
'Dark World Lumberjack Shop',
|
||||||
'Misery Mire',
|
'Misery Mire',
|
||||||
|
@ -117,6 +113,12 @@ def get_dw_boots_accessible_entrances():
|
||||||
'Dark Desert Hint',
|
'Dark Desert Hint',
|
||||||
'Dark Desert Fairy',
|
'Dark Desert Fairy',
|
||||||
]
|
]
|
||||||
|
if world.mode[player] != 'inverted':
|
||||||
|
entrances.append('Dark Lake Hylia Ledge')
|
||||||
|
entrances.append('Big Bomb Shop')
|
||||||
|
entrances.append('Kings Grave Mirror Spot')
|
||||||
|
entrances.append('Dark Sanctuary Hint')
|
||||||
|
return entrances
|
||||||
|
|
||||||
|
|
||||||
def get_dw_boots_accessible_locations():
|
def get_dw_boots_accessible_locations():
|
||||||
|
|
4
Rules.py
4
Rules.py
|
@ -722,7 +722,7 @@ def overworld_glitches_rules(world, player):
|
||||||
# around. We could detect a path to determine if one can be stored.
|
# around. We could detect a path to determine if one can be stored.
|
||||||
|
|
||||||
# Spots that are immediately accessible.
|
# Spots that are immediately accessible.
|
||||||
for entrance in OWGSets.get_immediately_accessible_entrances():
|
for entrance in OWGSets.get_immediately_accessible_entrances(world, player):
|
||||||
set_rule(world.get_entrance(entrance, player), lambda state: True)
|
set_rule(world.get_entrance(entrance, player), lambda state: True)
|
||||||
|
|
||||||
# Boots-accessible locations.
|
# Boots-accessible locations.
|
||||||
|
@ -732,7 +732,7 @@ def overworld_glitches_rules(world, player):
|
||||||
add_rule(world.get_entrance(entrance, player), needs_boots_and_pearl if world.mode[player] == 'inverted' else needs_boots, 'or')
|
add_rule(world.get_entrance(entrance, player), needs_boots_and_pearl if world.mode[player] == 'inverted' else needs_boots, 'or')
|
||||||
for location in OWGSets.get_lw_boots_accessible_locations():
|
for location in OWGSets.get_lw_boots_accessible_locations():
|
||||||
add_rule(world.get_location(location, player), needs_boots_and_pearl if world.mode[player] == 'inverted' else needs_boots, 'or')
|
add_rule(world.get_location(location, player), needs_boots_and_pearl if world.mode[player] == 'inverted' else needs_boots, 'or')
|
||||||
for entrance in OWGSets.get_dw_boots_accessible_entrances():
|
for entrance in OWGSets.get_dw_boots_accessible_entrances(world, player):
|
||||||
add_rule(world.get_entrance(entrance, player), needs_boots_and_pearl if world.mode[player] != 'inverted' else needs_boots, 'or')
|
add_rule(world.get_entrance(entrance, player), needs_boots_and_pearl if world.mode[player] != 'inverted' else needs_boots, 'or')
|
||||||
for location in OWGSets.get_dw_boots_accessible_locations():
|
for location in OWGSets.get_dw_boots_accessible_locations():
|
||||||
add_rule(world.get_location(location, player), needs_boots_and_pearl if world.mode[player] != 'inverted' else needs_boots, 'or')
|
add_rule(world.get_location(location, player), needs_boots_and_pearl if world.mode[player] != 'inverted' else needs_boots, 'or')
|
||||||
|
|
Loading…
Reference in New Issue