181 lines
4.7 KiB
Python
181 lines
4.7 KiB
Python
'''
|
|
Helper functions to deliver entrance/exit/region sets to OWG rules.
|
|
'''
|
|
|
|
def get_immediately_accessible_entrances(world, player):
|
|
'''
|
|
Entrances that are available with no items at all.
|
|
|
|
At this point, these are fake flipper spots.
|
|
'''
|
|
entrances = [
|
|
'Hobo Bridge',
|
|
'Zoras River',
|
|
'Lake Hylia Central Island Pier',
|
|
]
|
|
return entrances
|
|
|
|
|
|
def get_sword_required_superbunny_mirror_regions():
|
|
'''
|
|
Cave regions that superbunny can get through - but only with a sword.
|
|
'''
|
|
return [
|
|
'Mini Moldorm Cave',
|
|
'Spiral Cave (Top)',
|
|
]
|
|
|
|
|
|
def get_invalid_mirror_bunny_entrances_dw():
|
|
'''
|
|
Dark World entrances that can't be superbunny-mirrored into.
|
|
'''
|
|
return [
|
|
'Skull Woods Final Section (Entrance)',
|
|
'Hype Cave',
|
|
'Bonk Fairy (Dark)',
|
|
'Thieves Town',
|
|
'Dark World Hammer Peg Cave',
|
|
'Brewery',
|
|
'Hookshot Cave',
|
|
'Hookshot Cave Exit (South)',
|
|
'Dark Lake Hylia Ledge Fairy',
|
|
'Dark Lake Hylia Ledge Spike Cave',
|
|
]
|
|
|
|
|
|
def get_invalid_mirror_bunny_entrances_lw():
|
|
'''
|
|
Light World entrances that can't be superbunny-mirrored into.
|
|
|
|
A couple of these, like Blind's Hideout, are odd cases where the pixel
|
|
leading into the entrance prevents mirror superbunnying - generally due to
|
|
there being stairs there.
|
|
'''
|
|
return [
|
|
'Bonk Rock Cave',
|
|
'Bonk Fairy (Light)',
|
|
'Blinds Hideout',
|
|
'50 Rupee Cave',
|
|
'20 Rupee Cave',
|
|
'Checkerboard Cave',
|
|
'Light Hype Fairy',
|
|
'Waterfall of Wishing',
|
|
'Light World Bomb Hut',
|
|
'Mini Moldorm Cave',
|
|
'Ice Rod Cave',
|
|
'Hyrule Castle Secret Entrance Stairs',
|
|
'Sanctuary Grave',
|
|
'Kings Grave',
|
|
'Tower of Hera',
|
|
]
|
|
|
|
|
|
def get_superbunny_accessible_locations():
|
|
'''
|
|
Interior locations that can be accessed with superbunny state.
|
|
'''
|
|
return [
|
|
'Waterfall of Wishing - Left',
|
|
'Waterfall of Wishing - Right',
|
|
'King\'s Tomb', 'Floodgate',
|
|
'Floodgate Chest',
|
|
'Cave 45',
|
|
'Bonk Rock Cave',
|
|
'Brewery',
|
|
'C-Shaped House',
|
|
'Chest Game',
|
|
'Mire Shed - Left',
|
|
'Mire Shed - Right',
|
|
'Secret Passage',
|
|
'Ice Rod Cave',
|
|
'Pyramid Fairy - Left',
|
|
'Pyramid Fairy - Right',
|
|
'Superbunny Cave - Top',
|
|
'Superbunny Cave - Bottom',
|
|
]
|
|
|
|
|
|
def get_boots_clip_exits_lw(inverted = False):
|
|
'''
|
|
Special Light World region exits that require boots clips.
|
|
'''
|
|
exits = [
|
|
'Bat Cave River Clip Spot',
|
|
'Light World DMA Clip Spot',
|
|
'Hera Ascent',
|
|
'Death Mountain Return Ledge Clip Spot',
|
|
'Death Mountain Glitched Bridge',
|
|
'Zora Descent Clip Spot',
|
|
'Desert Northern Cliffs',
|
|
'Lake Hylia Island Clip Spot',
|
|
'Death Mountain Entrance Clip (Broken Camera)',
|
|
'Death Mountain Descent',
|
|
]
|
|
if not inverted:
|
|
exits.append('Spectacle Rock Clip Spot')
|
|
exits.append('Graveyard Ledge Clip Spot')
|
|
exits.append('Bombos Tablet Clip Spot')
|
|
exits.append('Floating Island Clip Spot')
|
|
return exits
|
|
|
|
|
|
def get_boots_clip_exits_dw(inverted = False):
|
|
'''
|
|
Special Dark World region exits that require boots clips.
|
|
'''
|
|
exits = [
|
|
'Dark World DMA Clip Spot',
|
|
'Bumper Cave Ledge Clip Spot',
|
|
'Hookshot Cave Island Clip Spot',
|
|
'Catfish Descent',
|
|
'Hammer Pegs River Clip Spot',
|
|
'Dark Lake Hylia Ledge Clip Spot',
|
|
'Dark Desert Cliffs Clip Spot',
|
|
'Bumper Cave Entrance Clip (Broken Camera)',
|
|
'Dark Death Mountain Descent',
|
|
]
|
|
if not inverted:
|
|
exits.append('Ganons Tower Ascent')
|
|
exits.append('Dark Death Mountain Glitched Bridge')
|
|
exits.append('Turtle Rock (Top) Clip Spot')
|
|
return exits
|
|
|
|
|
|
def get_glitched_speed_drops_lw():
|
|
'''
|
|
Light World drop-down ledges that require glitched speed.
|
|
'''
|
|
return [
|
|
'Death Mountain Return Ledge Clip Drop',
|
|
]
|
|
|
|
|
|
def get_glitched_speed_drops_dw():
|
|
'''
|
|
Dark World drop-down ledges that require glitched speed.
|
|
'''
|
|
return [
|
|
'Dark Death Mountain Ledge Clip Spot',
|
|
'Bumper Cave Ledge Clip Drop',
|
|
]
|
|
|
|
|
|
def get_mirror_clip_spots_dw():
|
|
'''
|
|
Mirror shenanigans that are in logic even if the player is a bunny.
|
|
'''
|
|
return [
|
|
'Dark Death Mountain Offset Mirror',
|
|
'Dark Death Mountain Bunny Descent Mirror Spot',
|
|
]
|
|
|
|
|
|
def get_mirror_clip_spots_lw():
|
|
'''
|
|
Inverted mirror shenanigans in logic even if the player is a bunny.
|
|
'''
|
|
return [
|
|
'Death Mountain Bunny Descent Mirror Spot',
|
|
]
|