Archipelago/test/vanilla/TestDarkWorld.py

167 lines
10 KiB
Python
Raw Normal View History

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
from test.vanilla.TestVanilla import TestVanilla
class TestDarkWorld(TestVanilla):
def testSouthDarkWorld(self):
self.run_location_tests([
["Hype Cave - Top", False, []],
["Hype Cave - Top", False, [], ['Moon Pearl']],
["Hype Cave - Top", True, ['Moon Pearl', 'Beat Agahnim 1', 'Hammer']],
["Hype Cave - Top", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Hype Cave - Top", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Hype Cave - Top", True, ['Moon Pearl', 'Beat Agahnim 1', 'Progressive Glove', 'Hookshot']],
["Hype Cave - Top", True, ['Moon Pearl', 'Beat Agahnim 1', 'Flippers', 'Hookshot']],
["Hype Cave - Middle Right", False, []],
["Hype Cave - Middle Right", False, [], ['Moon Pearl']],
["Hype Cave - Middle Right", True, ['Moon Pearl', 'Beat Agahnim 1', 'Hammer']],
["Hype Cave - Middle Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Hype Cave - Middle Right", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Hype Cave - Middle Right", True, ['Moon Pearl', 'Beat Agahnim 1', 'Progressive Glove', 'Hookshot']],
["Hype Cave - Middle Right", True, ['Moon Pearl', 'Beat Agahnim 1', 'Flippers', 'Hookshot']],
["Hype Cave - Middle Left", False, []],
["Hype Cave - Middle Left", False, [], ['Moon Pearl']],
["Hype Cave - Middle Left", True, ['Moon Pearl', 'Beat Agahnim 1', 'Hammer']],
["Hype Cave - Middle Left", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Hype Cave - Middle Left", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Hype Cave - Middle Left", True, ['Moon Pearl', 'Beat Agahnim 1', 'Progressive Glove', 'Hookshot']],
["Hype Cave - Middle Left", True, ['Moon Pearl', 'Beat Agahnim 1', 'Flippers', 'Hookshot']],
["Hype Cave - Bottom", False, []],
["Hype Cave - Bottom", False, [], ['Moon Pearl']],
["Hype Cave - Bottom", True, ['Moon Pearl', 'Beat Agahnim 1', 'Hammer']],
["Hype Cave - Bottom", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Hype Cave - Bottom", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Hype Cave - Bottom", True, ['Moon Pearl', 'Beat Agahnim 1', 'Progressive Glove', 'Hookshot']],
["Hype Cave - Bottom", True, ['Moon Pearl', 'Beat Agahnim 1', 'Flippers', 'Hookshot']],
["Hype Cave - Generous Guy", False, []],
["Hype Cave - Generous Guy", False, [], ['Moon Pearl']],
["Hype Cave - Generous Guy", True, ['Moon Pearl', 'Beat Agahnim 1', 'Hammer']],
["Hype Cave - Generous Guy", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Hype Cave - Generous Guy", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Hype Cave - Generous Guy", True, ['Moon Pearl', 'Beat Agahnim 1', 'Progressive Glove', 'Hookshot']],
["Hype Cave - Generous Guy", True, ['Moon Pearl', 'Beat Agahnim 1', 'Flippers', 'Hookshot']],
["Stumpy", False, []],
["Stumpy", False, [], ['Moon Pearl']],
["Stumpy", True, ['Moon Pearl', 'Beat Agahnim 1', 'Hammer']],
["Stumpy", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Stumpy", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Stumpy", True, ['Moon Pearl', 'Beat Agahnim 1', 'Progressive Glove', 'Hookshot']],
["Stumpy", True, ['Moon Pearl', 'Beat Agahnim 1', 'Flippers', 'Hookshot']],
["Digging Game", False, []],
["Digging Game", False, [], ['Moon Pearl']],
["Digging Game", True, ['Moon Pearl', 'Beat Agahnim 1', 'Hammer']],
["Digging Game", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Digging Game", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Digging Game", True, ['Moon Pearl', 'Beat Agahnim 1', 'Progressive Glove', 'Hookshot']],
["Digging Game", True, ['Moon Pearl', 'Beat Agahnim 1', 'Flippers', 'Hookshot']]
])
def testWestDarkWorld(self):
self.run_location_tests([
["Brewery", False, []],
["Brewery", False, [], ['Moon Pearl']],
["Brewery", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Brewery", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Brewery", True, ['Moon Pearl', 'Beat Agahnim 1', 'Progressive Glove', 'Hookshot']],
["Brewery", True, ['Moon Pearl', 'Beat Agahnim 1', 'Flippers', 'Hookshot']],
["C-Shaped House", False, []],
["C-Shaped House", False, [], ['Moon Pearl']],
["C-Shaped House", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["C-Shaped House", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["C-Shaped House", True, ['Moon Pearl', 'Beat Agahnim 1', 'Progressive Glove', 'Hookshot']],
["C-Shaped House", True, ['Moon Pearl', 'Beat Agahnim 1', 'Flippers', 'Hookshot']],
["Chest Game", False, []],
["Chest Game", False, [], ['Moon Pearl']],
["Chest Game", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Chest Game", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Chest Game", True, ['Moon Pearl', 'Beat Agahnim 1', 'Progressive Glove', 'Hookshot']],
["Chest Game", True, ['Moon Pearl', 'Beat Agahnim 1', 'Flippers', 'Hookshot']],
["Peg Cave", False, []],
["Peg Cave", False, [], ['Moon Pearl']],
["Peg Cave", False, [], ['Hammer']],
["Peg Cave", False, [], ['Progressive Glove']],
["Peg Cave", True, ['Moon Pearl', 'Hammer', 'Progressive Glove', 'Progressive Glove']],
["Bumper Cave Ledge", False, []],
["Bumper Cave Ledge", False, [], ['Moon Pearl']],
["Bumper Cave Ledge", False, [], ['Cape']],
["Bumper Cave Ledge", False, [], ['Progressive Glove']],
["Bumper Cave Ledge", True, ['Moon Pearl', 'Cape', 'Progressive Glove', 'Progressive Glove']],
["Bumper Cave Ledge", True, ['Moon Pearl', 'Cape', 'Progressive Glove', 'Hammer']],
["Bumper Cave Ledge", True, ['Moon Pearl', 'Cape', 'Beat Agahnim 1', 'Progressive Glove', 'Hookshot']],
["Blacksmith", False, []],
["Blacksmith", False, [], ['Progressive Glove']],
["Blacksmith", False, [], ['Moon Pearl']],
["Blacksmith", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Purple Chest", False, []],
["Purple Chest", False, [], ['Progressive Glove']],
["Purple Chest", False, [], ['Moon Pearl']],
["Purple Chest", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']]
])
def testEastDarkWorld(self):
self.run_location_tests([
["Catfish", False, []],
["Catfish", False, [], ['Progressive Glove']],
["Catfish", False, [], ['Moon Pearl']],
["Catfish", True, ['Moon Pearl', 'Beat Agahnim 1', 'Progressive Glove']],
["Catfish", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Catfish", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Flippers']],
["Pyramid", False, []],
["Pyramid", False, [], ['Beat Agahnim 1', 'Moon Pearl']],
["Pyramid", True, ['Beat Agahnim 1']],
["Pyramid", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Pyramid", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Flippers']],
["Pyramid Fairy - Left", False, []],
["Pyramid Fairy - Left", False, [], ['Moon Pearl']],
["Pyramid Fairy - Left", False, [], ['Crystal 5']],
["Pyramid Fairy - Left", False, [], ['Crystal 6']],
["Pyramid Fairy - Left", True, ['Moon Pearl', 'Crystal 5', 'Crystal 6', 'Beat Agahnim 1', 'Hammer']],
["Pyramid Fairy - Left", True, ['Moon Pearl', 'Crystal 5', 'Crystal 6', 'Progressive Glove', 'Hammer']],
["Pyramid Fairy - Left", True, ['Moon Pearl', 'Crystal 5', 'Crystal 6', 'Beat Agahnim 1', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror']],
["Pyramid Fairy - Left", True, ['Moon Pearl', 'Crystal 5', 'Crystal 6', 'Beat Agahnim 1', 'Progressive Glove', 'Hookshot', 'Magic Mirror']],
["Pyramid Fairy - Left", True, ['Moon Pearl', 'Crystal 5', 'Crystal 6', 'Beat Agahnim 1', 'Flippers', 'Hookshot', 'Magic Mirror']],
["Pyramid Fairy - Right", False, []],
["Pyramid Fairy - Right", False, [], ['Moon Pearl']],
["Pyramid Fairy - Right", False, [], ['Crystal 5']],
["Pyramid Fairy - Right", False, [], ['Crystal 6']],
["Pyramid Fairy - Right", True, ['Moon Pearl', 'Crystal 5', 'Crystal 6', 'Beat Agahnim 1', 'Hammer']],
["Pyramid Fairy - Right", True, ['Moon Pearl', 'Crystal 5', 'Crystal 6', 'Progressive Glove', 'Hammer']],
["Pyramid Fairy - Right", True, ['Moon Pearl', 'Crystal 5', 'Crystal 6', 'Beat Agahnim 1', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror']],
["Pyramid Fairy - Right", True, ['Moon Pearl', 'Crystal 5', 'Crystal 6', 'Beat Agahnim 1', 'Progressive Glove', 'Hookshot', 'Magic Mirror']],
["Pyramid Fairy - Right", True, ['Moon Pearl', 'Crystal 5', 'Crystal 6', 'Beat Agahnim 1', 'Flippers', 'Hookshot', 'Magic Mirror']],
["Ganon", False, []],
["Ganon", False, [], ['Moon Pearl']],
["Ganon", False, [], ['Beat Agahnim 2']],
])
def testMireArea(self):
self.run_location_tests([
["Mire Shed - Left", False, []],
["Mire Shed - Left", False, [], ['Progressive Glove']],
["Mire Shed - Left", False, [], ['Moon Pearl']],
["Mire Shed - Left", False, [], ['Flute']],
["Mire Shed - Left", True, ['Moon Pearl', 'Flute', 'Progressive Glove', 'Progressive Glove']],
["Mire Shed - Right", False, []],
["Mire Shed - Right", False, [], ['Progressive Glove']],
["Mire Shed - Right", False, [], ['Moon Pearl']],
["Mire Shed - Right", False, [], ['Flute']],
["Mire Shed - Right", True, ['Moon Pearl', 'Flute', 'Progressive Glove', 'Progressive Glove']],
])