182 lines
4.9 KiB
Python
182 lines
4.9 KiB
Python
"""
|
|
Helper functions to deliver entrance/exit/region sets to OWG rules.
|
|
"""
|
|
|
|
|
|
# TODO: reevaluate these points:
|
|
# why is this its own module?
|
|
# why are these functions?
|
|
# why is it named sets, when it was originally functions that return lists and had nothing to do with sets?
|
|
|
|
def get_immediately_accessible_entrances():
|
|
"""
|
|
Entrances that are available with no items at all.
|
|
|
|
At this point, these are fake flipper spots.
|
|
"""
|
|
yield 'Hobo Bridge'
|
|
yield 'Zoras River'
|
|
yield 'Lake Hylia Central Island Pier'
|
|
|
|
|
|
def get_sword_required_superbunny_mirror_regions():
|
|
"""
|
|
Cave regions that superbunny can get through - but only with a sword.
|
|
"""
|
|
yield 'Mini Moldorm Cave'
|
|
yield 'Spiral Cave (Top)'
|
|
|
|
|
|
def get_invalid_mirror_bunny_entrances_dw():
|
|
"""
|
|
Dark World entrances that can't be superbunny-mirrored into.
|
|
"""
|
|
|
|
yield 'Skull Woods Final Section (Entrance)'
|
|
yield 'Hype Cave'
|
|
yield 'Bonk Fairy (Dark)'
|
|
yield 'Thieves Town'
|
|
yield 'Dark World Hammer Peg Cave'
|
|
yield 'Brewery'
|
|
yield 'Hookshot Cave'
|
|
yield 'Hookshot Cave Exit (South)'
|
|
yield 'Dark Lake Hylia Ledge Fairy'
|
|
yield 'Dark Lake Hylia Ledge Spike Cave'
|
|
|
|
|
|
def get_invalid_mirror_bunny_entrances_lw():
|
|
"""
|
|
Light World entrances that can't be superbunny-mirrored into.
|
|
"""
|
|
|
|
yield 'Bonk Rock Cave'
|
|
yield 'Bonk Fairy (Light)'
|
|
yield '50 Rupee Cave'
|
|
yield '20 Rupee Cave'
|
|
yield 'Checkerboard Cave'
|
|
yield 'Light Hype Fairy'
|
|
yield 'Waterfall of Wishing'
|
|
yield 'Light World Bomb Hut'
|
|
yield 'Mini Moldorm Cave'
|
|
yield 'Ice Rod Cave'
|
|
yield 'Sanctuary Grave'
|
|
yield 'Kings Grave'
|
|
#todo: you can for insanity shuffle
|
|
yield 'Hyrule Castle Secret Entrance Stairs'
|
|
yield 'Tower of Hera'
|
|
|
|
|
|
def get_superbunny_accessible_locations():
|
|
"""
|
|
Interior locations that can be accessed with superbunny state.
|
|
"""
|
|
|
|
yield 'Waterfall of Wishing - Left'
|
|
yield 'Waterfall of Wishing - Right'
|
|
yield 'King\'s Tomb'
|
|
yield 'Floodgate'
|
|
yield 'Floodgate Chest'
|
|
yield 'Cave 45'
|
|
yield 'Bonk Rock Cave'
|
|
yield 'Brewery'
|
|
yield 'C-Shaped House'
|
|
yield 'Chest Game'
|
|
yield 'Mire Shed - Left'
|
|
yield 'Mire Shed - Right'
|
|
yield 'Secret Passage'
|
|
yield 'Ice Rod Cave'
|
|
yield 'Pyramid Fairy - Left'
|
|
yield 'Pyramid Fairy - Right'
|
|
yield 'Superbunny Cave - Top'
|
|
yield 'Superbunny Cave - Bottom'
|
|
yield 'Blind\'s Hideout - Left'
|
|
yield 'Blind\'s Hideout - Right'
|
|
yield 'Blind\'s Hideout - Far Left'
|
|
yield 'Blind\'s Hideout - Far Right'
|
|
yield 'Kakariko Well - Left'
|
|
yield 'Kakariko Well - Middle'
|
|
yield 'Kakariko Well - Right'
|
|
yield 'Kakariko Well - Bottom'
|
|
yield 'Kakariko Tavern'
|
|
yield 'Library'
|
|
yield 'Spiral Cave'
|
|
|
|
|
|
def get_boots_clip_exits_lw(inverted = False):
|
|
"""
|
|
Special Light World region exits that require boots clips.
|
|
"""
|
|
|
|
yield 'Bat Cave River Clip Spot'
|
|
yield 'Light World DMA Clip Spot'
|
|
yield 'Hera Ascent'
|
|
yield 'Death Mountain Return Ledge Clip Spot'
|
|
yield 'Death Mountain Glitched Bridge'
|
|
yield 'Zora Descent Clip Spot'
|
|
yield 'Desert Northern Cliffs'
|
|
yield 'Lake Hylia Island Clip Spot'
|
|
yield 'Death Mountain Descent'
|
|
yield 'Graveyard Ledge Clip Spot'
|
|
# TODO: This is not an OWG only entrance
|
|
# Also requires a waterwalk setup, but the point still remains.
|
|
# yield 'Waterfall of Wishing'
|
|
|
|
if not inverted:
|
|
yield 'Spectacle Rock Clip Spot'
|
|
yield 'Bombos Tablet Clip Spot'
|
|
yield 'Floating Island Clip Spot'
|
|
yield 'Cave 45 Clip Spot'
|
|
|
|
|
|
def get_boots_clip_exits_dw(inverted = False):
|
|
"""
|
|
Special Dark World region exits that require boots clips.
|
|
"""
|
|
|
|
yield 'Dark World DMA Clip Spot'
|
|
yield 'Bumper Cave Ledge Clip Spot'
|
|
yield 'Catfish Descent'
|
|
yield 'Hammer Pegs River Clip Spot'
|
|
yield 'Dark Lake Hylia Ledge Clip Spot'
|
|
yield 'Dark Desert Cliffs Clip Spot'
|
|
yield 'Dark Death Mountain Descent'
|
|
|
|
if not inverted:
|
|
yield 'Ganons Tower Ascent'
|
|
yield 'Dark Death Mountain Glitched Bridge'
|
|
yield 'Turtle Rock (Top) Clip Spot'
|
|
|
|
|
|
def get_glitched_speed_drops_dw():
|
|
"""
|
|
Dark World drop-down ledges that require glitched speed.
|
|
"""
|
|
yield 'Dark Death Mountain Ledge Clip Spot'
|
|
|
|
|
|
def get_mirror_clip_spots_dw():
|
|
"""
|
|
Mirror shenanigans that are in logic even if the player is a bunny.
|
|
"""
|
|
yield 'Dark Death Mountain Offset Mirror'
|
|
yield '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.
|
|
"""
|
|
yield 'Death Mountain Bunny Descent Mirror Spot'
|
|
yield 'Death Mountain Offset Mirror'
|
|
|
|
|
|
def get_invalid_bunny_revival_dungeons():
|
|
"""
|
|
Dungeon regions that can't be bunny revived from.
|
|
"""
|
|
|
|
yield 'Tower of Hera (Bottom)'
|
|
yield 'Swamp Palace (Entrance)'
|
|
yield 'Turtle Rock (Entrance)'
|
|
yield 'Sanctuary'
|