Archipelago/OWGSets.py

182 lines
4.9 KiB
Python
Raw Normal View History

"""
Helper functions to deliver entrance/exit/region sets to OWG rules.
"""
2020-04-10 19:18:36 +00:00
# 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'
2020-02-08 16:40:51 +00:00
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)'
2020-02-08 19:18:17 +00:00
def get_invalid_mirror_bunny_entrances_dw():
"""
2020-02-08 19:18:17 +00:00
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'
2020-02-08 19:18:17 +00:00
def get_invalid_mirror_bunny_entrances_lw():
"""
2020-02-08 19:18:17 +00:00
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'
OWG fixes (#79) * Fix Waterfall entrance being inaccessible with the flippers. Fix Spectacle Rock and Bombos Tablet requiring moon pearl * Inverted - make the blacksmith, purple chest, bottle merchant and master sword pedestal accessible without the moon pearl. * Fix moon pearl checks to avoid requiring moon pearl for mirror accessible locations. * Dark Desert Teleporter requires the mitts * Fix OWG bunny rules * Fix another bunny rule bug. * Separate superbunny cave into 2 regions. For OWG, allow superbunny in superbunny cave with no mirror when entering from the bottom Fix boots clip logic to desert teleporter ledge and TR teleporter Fix mirror wrap logic for pyramid fairy For insanity shuffle, exiting Superbunny Cave bottom is now in logic. * Always require pearl for Swamp (Superbunny cannot do anything) * Allow clipping into the GT entrance * Add OWG tests from vt_randomizer * Add some extra vanilla test cases * Allow superbunny into the Blind's Hideout entrance. * More moon pearl / superbunny fixes Use the Catfish region properly, so Catfish Descent works. * Allow superbunny into tavern Fix inverted Kings Grave logic * Inverted OWG tests * Update unit tests for King's Tomb clip. * All superbunny to spiral cave item (with sword) * Bunny revive is not possible in Sanctuary. * More inverted tests * Add/fix test cases * Fix logic for Magic Bat * Fix merge to multiworld * Fix Floodgate superbunny rule * Require bunny revival for all dungeons except for Swamp/TR Main/Hera/Sanctuary, which have extra requirements * Require a weapon for Castle Tower. * Test case fixes * Update test case - superbunny into Kakariko Tavern is in logic
2020-04-28 15:34:30 +00:00
#todo: you can for insanity shuffle
yield 'Hyrule Castle Secret Entrance Stairs'
yield 'Tower of Hera'
2020-02-08 19:18:17 +00:00
def get_superbunny_accessible_locations():
"""
2020-02-08 19:18:17 +00:00
Interior locations that can be accessed with superbunny state.
"""
yield 'Waterfall of Wishing - Left'
yield 'Waterfall of Wishing - Right'
OWG fixes (#79) * Fix Waterfall entrance being inaccessible with the flippers. Fix Spectacle Rock and Bombos Tablet requiring moon pearl * Inverted - make the blacksmith, purple chest, bottle merchant and master sword pedestal accessible without the moon pearl. * Fix moon pearl checks to avoid requiring moon pearl for mirror accessible locations. * Dark Desert Teleporter requires the mitts * Fix OWG bunny rules * Fix another bunny rule bug. * Separate superbunny cave into 2 regions. For OWG, allow superbunny in superbunny cave with no mirror when entering from the bottom Fix boots clip logic to desert teleporter ledge and TR teleporter Fix mirror wrap logic for pyramid fairy For insanity shuffle, exiting Superbunny Cave bottom is now in logic. * Always require pearl for Swamp (Superbunny cannot do anything) * Allow clipping into the GT entrance * Add OWG tests from vt_randomizer * Add some extra vanilla test cases * Allow superbunny into the Blind's Hideout entrance. * More moon pearl / superbunny fixes Use the Catfish region properly, so Catfish Descent works. * Allow superbunny into tavern Fix inverted Kings Grave logic * Inverted OWG tests * Update unit tests for King's Tomb clip. * All superbunny to spiral cave item (with sword) * Bunny revive is not possible in Sanctuary. * More inverted tests * Add/fix test cases * Fix logic for Magic Bat * Fix merge to multiworld * Fix Floodgate superbunny rule * Require bunny revival for all dungeons except for Swamp/TR Main/Hera/Sanctuary, which have extra requirements * Require a weapon for Castle Tower. * Test case fixes * Update test case - superbunny into Kakariko Tavern is in logic
2020-04-28 15:34:30 +00:00
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'
OWG fixes (#79) * Fix Waterfall entrance being inaccessible with the flippers. Fix Spectacle Rock and Bombos Tablet requiring moon pearl * Inverted - make the blacksmith, purple chest, bottle merchant and master sword pedestal accessible without the moon pearl. * Fix moon pearl checks to avoid requiring moon pearl for mirror accessible locations. * Dark Desert Teleporter requires the mitts * Fix OWG bunny rules * Fix another bunny rule bug. * Separate superbunny cave into 2 regions. For OWG, allow superbunny in superbunny cave with no mirror when entering from the bottom Fix boots clip logic to desert teleporter ledge and TR teleporter Fix mirror wrap logic for pyramid fairy For insanity shuffle, exiting Superbunny Cave bottom is now in logic. * Always require pearl for Swamp (Superbunny cannot do anything) * Allow clipping into the GT entrance * Add OWG tests from vt_randomizer * Add some extra vanilla test cases * Allow superbunny into the Blind's Hideout entrance. * More moon pearl / superbunny fixes Use the Catfish region properly, so Catfish Descent works. * Allow superbunny into tavern Fix inverted Kings Grave logic * Inverted OWG tests * Update unit tests for King's Tomb clip. * All superbunny to spiral cave item (with sword) * Bunny revive is not possible in Sanctuary. * More inverted tests * Add/fix test cases * Fix logic for Magic Bat * Fix merge to multiworld * Fix Floodgate superbunny rule * Require bunny revival for all dungeons except for Swamp/TR Main/Hera/Sanctuary, which have extra requirements * Require a weapon for Castle Tower. * Test case fixes * Update test case - superbunny into Kakariko Tavern is in logic
2020-04-28 15:34:30 +00:00
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'
2020-02-11 05:14:57 +00:00
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'
OWG fixes (#79) * Fix Waterfall entrance being inaccessible with the flippers. Fix Spectacle Rock and Bombos Tablet requiring moon pearl * Inverted - make the blacksmith, purple chest, bottle merchant and master sword pedestal accessible without the moon pearl. * Fix moon pearl checks to avoid requiring moon pearl for mirror accessible locations. * Dark Desert Teleporter requires the mitts * Fix OWG bunny rules * Fix another bunny rule bug. * Separate superbunny cave into 2 regions. For OWG, allow superbunny in superbunny cave with no mirror when entering from the bottom Fix boots clip logic to desert teleporter ledge and TR teleporter Fix mirror wrap logic for pyramid fairy For insanity shuffle, exiting Superbunny Cave bottom is now in logic. * Always require pearl for Swamp (Superbunny cannot do anything) * Allow clipping into the GT entrance * Add OWG tests from vt_randomizer * Add some extra vanilla test cases * Allow superbunny into the Blind's Hideout entrance. * More moon pearl / superbunny fixes Use the Catfish region properly, so Catfish Descent works. * Allow superbunny into tavern Fix inverted Kings Grave logic * Inverted OWG tests * Update unit tests for King's Tomb clip. * All superbunny to spiral cave item (with sword) * Bunny revive is not possible in Sanctuary. * More inverted tests * Add/fix test cases * Fix logic for Magic Bat * Fix merge to multiworld * Fix Floodgate superbunny rule * Require bunny revival for all dungeons except for Swamp/TR Main/Hera/Sanctuary, which have extra requirements * Require a weapon for Castle Tower. * Test case fixes * Update test case - superbunny into Kakariko Tavern is in logic
2020-04-28 15:34:30 +00:00
# TODO: This is not an OWG only entrance
# Also requires a waterwalk setup, but the point still remains.
OWG fixes (#79) * Fix Waterfall entrance being inaccessible with the flippers. Fix Spectacle Rock and Bombos Tablet requiring moon pearl * Inverted - make the blacksmith, purple chest, bottle merchant and master sword pedestal accessible without the moon pearl. * Fix moon pearl checks to avoid requiring moon pearl for mirror accessible locations. * Dark Desert Teleporter requires the mitts * Fix OWG bunny rules * Fix another bunny rule bug. * Separate superbunny cave into 2 regions. For OWG, allow superbunny in superbunny cave with no mirror when entering from the bottom Fix boots clip logic to desert teleporter ledge and TR teleporter Fix mirror wrap logic for pyramid fairy For insanity shuffle, exiting Superbunny Cave bottom is now in logic. * Always require pearl for Swamp (Superbunny cannot do anything) * Allow clipping into the GT entrance * Add OWG tests from vt_randomizer * Add some extra vanilla test cases * Allow superbunny into the Blind's Hideout entrance. * More moon pearl / superbunny fixes Use the Catfish region properly, so Catfish Descent works. * Allow superbunny into tavern Fix inverted Kings Grave logic * Inverted OWG tests * Update unit tests for King's Tomb clip. * All superbunny to spiral cave item (with sword) * Bunny revive is not possible in Sanctuary. * More inverted tests * Add/fix test cases * Fix logic for Magic Bat * Fix merge to multiworld * Fix Floodgate superbunny rule * Require bunny revival for all dungeons except for Swamp/TR Main/Hera/Sanctuary, which have extra requirements * Require a weapon for Castle Tower. * Test case fixes * Update test case - superbunny into Kakariko Tavern is in logic
2020-04-28 15:34:30 +00:00
# yield 'Waterfall of Wishing'
2020-02-11 05:14:57 +00:00
if not inverted:
yield 'Spectacle Rock Clip Spot'
yield 'Bombos Tablet Clip Spot'
yield 'Floating Island Clip Spot'
yield 'Cave 45 Clip Spot'
2020-02-11 05:14:57 +00:00
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'
2020-02-11 05:14:57 +00:00
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'
2020-02-11 05:14:57 +00:00
def get_mirror_clip_spots_lw():
"""
2020-02-11 05:14:57 +00:00
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)'
OWG fixes (#79) * Fix Waterfall entrance being inaccessible with the flippers. Fix Spectacle Rock and Bombos Tablet requiring moon pearl * Inverted - make the blacksmith, purple chest, bottle merchant and master sword pedestal accessible without the moon pearl. * Fix moon pearl checks to avoid requiring moon pearl for mirror accessible locations. * Dark Desert Teleporter requires the mitts * Fix OWG bunny rules * Fix another bunny rule bug. * Separate superbunny cave into 2 regions. For OWG, allow superbunny in superbunny cave with no mirror when entering from the bottom Fix boots clip logic to desert teleporter ledge and TR teleporter Fix mirror wrap logic for pyramid fairy For insanity shuffle, exiting Superbunny Cave bottom is now in logic. * Always require pearl for Swamp (Superbunny cannot do anything) * Allow clipping into the GT entrance * Add OWG tests from vt_randomizer * Add some extra vanilla test cases * Allow superbunny into the Blind's Hideout entrance. * More moon pearl / superbunny fixes Use the Catfish region properly, so Catfish Descent works. * Allow superbunny into tavern Fix inverted Kings Grave logic * Inverted OWG tests * Update unit tests for King's Tomb clip. * All superbunny to spiral cave item (with sword) * Bunny revive is not possible in Sanctuary. * More inverted tests * Add/fix test cases * Fix logic for Magic Bat * Fix merge to multiworld * Fix Floodgate superbunny rule * Require bunny revival for all dungeons except for Swamp/TR Main/Hera/Sanctuary, which have extra requirements * Require a weapon for Castle Tower. * Test case fixes * Update test case - superbunny into Kakariko Tavern is in logic
2020-04-28 15:34:30 +00:00
yield 'Sanctuary'