Add OWG tests

This commit is contained in:
compiling
2020-10-30 16:21:13 +11:00
parent ad9db670a2
commit 82449763b7
26 changed files with 2348 additions and 17 deletions

View File

@@ -29,7 +29,7 @@ def create_inverted_regions(world, player):
"Blind\'s Hideout - Right",
"Blind\'s Hideout - Far Left",
"Blind\'s Hideout - Far Right"]),
create_lw_region(player, 'Northeast Light World', None, ['Zoras River', 'Waterfall of Wishing', 'Potion Shop Outer Rock', 'Northeast Dark World Mirror Spot', 'Northeast Light World Warp']),
create_lw_region(player, 'Northeast Light World', None, ['Zoras River', 'Waterfall of Wishing', 'Potion Shop Outer Rock', 'Catfish Mirror Spot', 'Northeast Light World Warp']),
create_lw_region(player, 'Potion Shop Area', None, ['Potion Shop', 'Potion Shop Inner Bushes', 'Potion Shop Inner Rock', 'Potion Shop Mirror Spot', 'Potion Shop River Drop']),
create_lw_region(player, 'Graveyard Cave Area', None, ['Graveyard Cave', 'Graveyard Cave Inner Bushes', 'Graveyard Cave Mirror Spot']),
create_lw_region(player, 'River', None, ['Light World Pier', 'Potion Shop Pier']),

50
test/TestBase.py Normal file
View File

@@ -0,0 +1,50 @@
import unittest
from BaseClasses import CollectionState
from Items import ItemFactory
class TestBase(unittest.TestCase):
_state_cache = {}
def get_state(self, items):
if (self.world, tuple(items)) in self._state_cache:
return self._state_cache[self.world, tuple(items)]
state = CollectionState(self.world)
for item in items:
item.advancement = True
state.collect(item)
state.sweep_for_events()
self._state_cache[self.world, tuple(items)] = state
return state
def run_location_tests(self, access_pool):
for location, access, *item_pool in access_pool:
items = item_pool[0]
all_except = item_pool[1] if len(item_pool) > 1 else None
with self.subTest(location=location, access=access, items=items, all_except=all_except):
if all_except and len(all_except) > 0:
items = self.world.itempool[:]
items = [item for item in items if item.name not in all_except and not ("Bottle" in item.name and "AnyBottle" in all_except)]
items.extend(ItemFactory(item_pool[0], 1))
else:
items = ItemFactory(items, 1)
state = self.get_state(items)
self.assertEqual(self.world.get_location(location, 1).can_reach(state), access)
def run_entrance_tests(self, access_pool):
for entrance, access, *item_pool in access_pool:
items = item_pool[0]
all_except = item_pool[1] if len(item_pool) > 1 else None
with self.subTest(entrance=entrance, access=access, items=items, all_except=all_except):
if all_except and len(all_except) > 0:
items = self.world.itempool[:]
items = [item for item in items if item.name not in all_except and not ("Bottle" in item.name and "AnyBottle" in all_except)]
items.extend(ItemFactory(item_pool[0], 1))
else:
items = ItemFactory(items, 1)
state = self.get_state(items)
self.assertEqual(self.world.get_entrance(entrance, 1).can_reach(state), access)

View File

@@ -6,10 +6,10 @@ from ItemList import generate_itempool, difficulties
from Items import ItemFactory
from Regions import mark_light_world_regions
from Rules import set_rules
from test.TestVanilla import TestVanilla
from test.TestBase import TestBase
class TestInverted(TestVanilla):
class TestInverted(TestBase):
def setUp(self):
self.world = World(1, 'vanilla', 'noglitches', 'inverted', 'random', 'normal', 'normal', 'none', 'on', 'ganon', 'balanced',
True, False, False, False, False, False, False, False, False, None,

View File

@@ -4,7 +4,7 @@ from test.inverted.TestInverted import TestInverted
class TestInvertedDeathMountain(TestInverted):
def testNorthWest(self):
self.run_tests([
self.run_location_tests([
["Brewery", True, []],
["C-Shaped House", True, []],
@@ -45,7 +45,7 @@ class TestInvertedDeathMountain(TestInverted):
])
def testNorthEast(self):
self.run_tests([
self.run_location_tests([
["Catfish", False, []],
["Catfish", False, [], ['Progressive Glove', 'Flippers']],
["Catfish", False, [], ['Progressive Glove', 'Magic Mirror']],
@@ -80,7 +80,7 @@ class TestInvertedDeathMountain(TestInverted):
])
def testSouth(self):
self.run_tests([
self.run_location_tests([
["Hype Cave - Top", True, []],
["Hype Cave - Middle Right", True, []],
@@ -99,7 +99,7 @@ class TestInvertedDeathMountain(TestInverted):
])
def testMireArea(self):
self.run_tests([
self.run_location_tests([
["Mire Shed - Left", False, []],
["Mire Shed - Left", False, [], ['Ocarina', 'Magic Mirror']],
["Mire Shed - Left", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove']],

View File

@@ -4,7 +4,7 @@ from test.inverted.TestInverted import TestInverted
class TestInvertedDeathMountain(TestInverted):
def testWestDeathMountain(self):
self.run_tests([
self.run_location_tests([
["Old Man", False, []],
["Old Man", False, [], ['Progressive Glove', 'Ocarina']],
["Old Man", False, [], ['Lamp']],
@@ -23,7 +23,7 @@ class TestInvertedDeathMountain(TestInverted):
])
def testEastDeathMountain(self):
self.run_tests([
self.run_location_tests([
["Spiral Cave", False, []],
["Spiral Cave", False, [], ['Moon Pearl']],
["Spiral Cave", False, [], ['Progressive Glove', 'Ocarina']],
@@ -158,7 +158,7 @@ class TestInvertedDeathMountain(TestInverted):
])
def testEastDarkWorldDeathMountain(self):
self.run_tests([
self.run_location_tests([
["Superbunny Cave - Top", False, []],
["Superbunny Cave - Top", False, [], ['Progressive Glove', 'Ocarina']],
["Superbunny Cave - Top", True, ['Progressive Glove', 'Lamp']],
@@ -204,7 +204,7 @@ class TestInvertedDeathMountain(TestInverted):
])
def testWestDarkWorldDeathMountain(self):
self.run_tests([
self.run_location_tests([
["Spike Cave", False, []],
["Spike Cave", False, [], ['Progressive Glove']],
["Spike Cave", False, [], ['Hammer']],

View File

@@ -0,0 +1,118 @@
from test.inverted.TestInverted import TestInverted
class TestEntrances(TestInverted):
def testDungeonEntrances(self):
self.run_entrance_tests([
["Hyrule Castle Entrance (South)", False, []],
["Hyrule Castle Entrance (South)", False, [], ["Beat Agahnim 1", "Moon Pearl"]],
["Hyrule Castle Entrance (South)", False, [], ["Beat Agahnim 1", "Progressive Glove"]],
["Hyrule Castle Entrance (South)", False, ["Progressive Glove"], ["Beat Agahnim 1", "Hammer", "Progressive Glove"]],
["Hyrule Castle Entrance (South)", True, ["Beat Agahnim 1"]],
["Hyrule Castle Entrance (South)", True, ["Moon Pearl", "Hammer", "Progressive Glove"]],
["Hyrule Castle Entrance (South)", True, ["Moon Pearl", "Progressive Glove", "Progressive Glove"]],
["Eastern Palace", False, []],
["Eastern Palace", False, [], ["Beat Agahnim 1", "Moon Pearl"]],
["Eastern Palace", False, [], ["Beat Agahnim 1", "Progressive Glove"]],
["Eastern Palace", False, ["Progressive Glove"], ["Beat Agahnim 1", "Hammer", "Progressive Glove"]],
["Eastern Palace", True, ["Beat Agahnim 1"]],
["Eastern Palace", True, ["Moon Pearl", "Hammer", "Progressive Glove"]],
["Eastern Palace", True, ["Moon Pearl", "Progressive Glove", "Progressive Glove"]],
["Desert Palace Entrance (South)", False, []],
["Desert Palace Entrance (South)", False, [], ["Book of Mudora"]],
["Desert Palace Entrance (South)", False, [], ["Beat Agahnim 1", "Moon Pearl"]],
["Desert Palace Entrance (South)", False, [], ["Beat Agahnim 1", "Progressive Glove"]],
["Desert Palace Entrance (South)", False, ["Progressive Glove"], ["Beat Agahnim 1", "Hammer", "Progressive Glove"]],
["Desert Palace Entrance (South)", True, ["Book of Mudora", "Beat Agahnim 1"]],
["Desert Palace Entrance (South)", True, ["Book of Mudora", "Moon Pearl", "Hammer", "Progressive Glove"]],
["Desert Palace Entrance (South)", True, ["Book of Mudora", "Moon Pearl", "Progressive Glove", "Progressive Glove"]],
["Desert Palace Entrance (North)", False, []],
["Desert Palace Entrance (North)", False, [], ["Book of Mudora"]],
["Desert Palace Entrance (North)", False, [], ["Progressive Glove"]],
["Desert Palace Entrance (North)", False, [], ["Moon Pearl"]],
["Desert Palace Entrance (North)", False, ["Progressive Glove"], ["Beat Agahnim 1", "Hammer", "Progressive Glove"]],
["Desert Palace Entrance (North)", True, ["Moon Pearl", "Book of Mudora", "Progressive Glove", "Hammer"]],
["Desert Palace Entrance (North)", True, ["Moon Pearl", "Book of Mudora", "Progressive Glove", "Progressive Glove"]],
["Desert Palace Entrance (North)", True, ["Moon Pearl", "Book of Mudora", "Progressive Glove", "Beat Agahnim 1"]],
["Tower of Hera", False, []],
["Tower of Hera", False, [], ["Moon Pearl"]],
["Tower of Hera", False, [], ["Hammer"]],
["Tower of Hera", False, ["Progressive Glove"], ["Hookshot", "Progressive Glove"]],
["Tower of Hera", False, [], ["Ocarina", "Lamp"]],
["Tower of Hera", False, [], ["Ocarina", "Progressive Glove"]],
["Tower of Hera", True, ["Moon Pearl", "Hammer", "Progressive Glove", "Progressive Glove", "Lamp"]],
["Tower of Hera", True, ["Moon Pearl", "Hammer", "Hookshot", "Progressive Glove", "Lamp"]],
["Tower of Hera", True, ["Moon Pearl", "Hammer", "Hookshot", "Progressive Glove", "Ocarina"]],
["Tower of Hera", True, ["Moon Pearl", "Hammer", "Beat Agahnim 1", "Ocarina", "Hookshot"]],
["Inverted Agahnims Tower", False, []],
["Inverted Agahnims Tower", False, [], ["Ocarina", "Lamp"]],
["Inverted Agahnims Tower", False, [], ["Ocarina", "Progressive Glove"]],
["Inverted Agahnims Tower", False, [], ["Moon Pearl", "Lamp"]],
["Inverted Agahnims Tower", False, [], ["Moon Pearl", "Progressive Glove"]],
["Inverted Agahnims Tower", True, ["Lamp", "Progressive Glove"]],
["Inverted Agahnims Tower", True, ["Ocarina", "Beat Agahnim 1", "Moon Pearl"]],
["Inverted Agahnims Tower", True, ["Ocarina", "Progressive Glove", "Progressive Glove", "Moon Pearl"]],
["Inverted Agahnims Tower", True, ["Ocarina", "Progressive Glove", "Hammer", "Moon Pearl"]],
["Palace of Darkness", False, []],
["Palace of Darkness", False, [], ["Hammer", "Flippers", "Magic Mirror", "Ocarina"]],
["Palace of Darkness", True, ["Hammer"]],
["Palace of Darkness", True, ["Flippers"]],
["Palace of Darkness", True, ["Progressive Glove", "Progressive Glove", "Moon Pearl", "Ocarina"]],
["Palace of Darkness", True, ["Progressive Glove", "Progressive Glove", "Moon Pearl", "Magic Mirror"]],
["Palace of Darkness", True, ["Beat Agahnim 1", "Moon Pearl", "Ocarina"]],
["Palace of Darkness", True, ["Beat Agahnim 1", "Moon Pearl", "Magic Mirror"]],
["Swamp Palace", True, []],
["Thieves Town", True, []],
["Skull Woods First Section Door", True, []],
["Skull Woods Final Section", False, []],
["Skull Woods Final Section", False, [], ["Fire Rod"]],
["Skull Woods Final Section", True, ["Fire Rod"]],
["Ice Palace", False, []],
["Ice Palace", False, [], ["Flippers"]],
["Ice Palace", True, ["Flippers"]],
["Misery Mire", False, []],
["Misery Mire", False, [], ["Ocarina", "Magic Mirror"]],
["Misery Mire", False, [], ["Moon Pearl", "Magic Mirror"]],
["Misery Mire", False, [], ["Ether"]],
["Misery Mire", False, [], ["Progressive Sword"]],
["Misery Mire", True, ["Progressive Sword", "Ether", "Beat Agahnim 1", "Magic Mirror"]],
["Misery Mire", True, ["Progressive Sword", "Ether", "Beat Agahnim 1", "Moon Pearl", "Ocarina"]],
["Misery Mire", True, ["Progressive Sword", "Ether", "Moon Pearl", "Hammer", "Progressive Glove", "Magic Mirror"]],
["Misery Mire", True, ["Progressive Sword", "Ether", "Moon Pearl", "Hammer", "Progressive Glove", "Ocarina"]],
["Misery Mire", True, ["Progressive Sword", "Ether", "Moon Pearl", "Progressive Glove", "Progressive Glove", "Magic Mirror"]],
["Misery Mire", True, ["Progressive Sword", "Ether", "Moon Pearl", "Progressive Glove", "Progressive Glove", "Ocarina"]],
["Turtle Rock", False, []],
["Turtle Rock", False, [], ["Quake"]],
["Turtle Rock", False, [], ["Progressive Sword"]],
["Turtle Rock", False, [], ["Lamp", "Ocarina"]],
["Turtle Rock", False, [], ["Progressive Glove", "Ocarina"]],
["Turtle Rock", True, ["Quake", "Progressive Sword", "Progressive Glove", "Lamp"]],
["Turtle Rock", True, ["Quake", "Progressive Sword", "Progressive Glove", "Progressive Glove", "Moon Pearl", "Ocarina"]],
["Turtle Rock", True, ["Quake", "Progressive Sword", "Progressive Glove", "Hammer", "Moon Pearl", "Ocarina"]],
["Turtle Rock", True, ["Quake", "Progressive Sword", "Beat Agahnim 1", "Moon Pearl", "Ocarina"]],
["Inverted Ganons Tower", False, []],
["Inverted Ganons Tower", False, [], ["Crystal 1"]],
["Inverted Ganons Tower", False, [], ["Crystal 2"]],
["Inverted Ganons Tower", False, [], ["Crystal 3"]],
["Inverted Ganons Tower", False, [], ["Crystal 4"]],
["Inverted Ganons Tower", False, [], ["Crystal 5"]],
["Inverted Ganons Tower", False, [], ["Crystal 6"]],
["Inverted Ganons Tower", False, [], ["Crystal 7"]],
["Inverted Ganons Tower", True, ["Beat Agahnim 1", "Crystal 1", "Crystal 2", "Crystal 3", "Crystal 4", "Crystal 5", "Crystal 6", "Crystal 7"]],
["Inverted Ganons Tower", True, ["Moon Pearl", "Progressive Glove", "Progressive Glove", "Crystal 1", "Crystal 2", "Crystal 3", "Crystal 4", "Crystal 5", "Crystal 6", "Crystal 7"]],
["Inverted Ganons Tower", True, ["Moon Pearl", "Hammer", "Progressive Glove", "Progressive Glove", "Crystal 1", "Crystal 2", "Crystal 3", "Crystal 4", "Crystal 5", "Crystal 6", "Crystal 7"]],
])

View File

@@ -6,7 +6,7 @@ class TestInvertedLightWorld(TestInverted):
super().setUp()
def testLostWoods(self):
self.run_tests([
self.run_location_tests([
["Master Sword Pedestal", False, []],
["Master Sword Pedestal", False, [], ['Green Pendant']],
["Master Sword Pedestal", False, [], ['Red Pendant']],
@@ -37,7 +37,7 @@ class TestInvertedLightWorld(TestInverted):
])
def testKakariko(self):
self.run_tests([
self.run_location_tests([
["Kakariko Tavern", False, []],
["Kakariko Tavern", False, [], ['Moon Pearl']],
["Kakariko Tavern", True, ['Moon Pearl', 'Beat Agahnim 1']],
@@ -171,7 +171,7 @@ class TestInvertedLightWorld(TestInverted):
])
def testSouthLightWorld(self):
self.run_tests([
self.run_location_tests([
["Desert Ledge", False, []],
["Desert Ledge", False, [], ['Book of Mudora']],
["Desert Ledge", False, [], ['Moon Pearl']],
@@ -251,7 +251,7 @@ class TestInvertedLightWorld(TestInverted):
])
def testZoraArea(self):
self.run_tests([
self.run_location_tests([
["King Zora", False, []],
["King Zora", False, [], ['Progressive Glove', 'Flippers']],
["King Zora", False, [], ['Moon Pearl']],
@@ -284,7 +284,7 @@ class TestInvertedLightWorld(TestInverted):
])
def testLightWorld(self):
self.run_tests([
self.run_location_tests([
["Link's Uncle", False, []],
["Link's Uncle", False, [], ['Moon Pearl']],
["Link's Uncle", True, ['Moon Pearl', 'Beat Agahnim 1']],

View File

@@ -4,7 +4,7 @@ from test.inverted.TestInverted import TestInverted
class TestInvertedTurtleRock(TestInverted):
def testTurtleRock(self):
self.run_tests([
self.run_location_tests([
["Turtle Rock - Compass Chest", False, []],
["Turtle Rock - Compass Chest", False, [], ['Cane of Somaria']],
["Turtle Rock - Compass Chest", False, [], ['Quake', 'Magic Mirror']],

View File

@@ -0,0 +1,78 @@
from test.inverted_owg.TestInvertedOWG import TestInvertedOWG
class TestDarkWorld(TestInvertedOWG):
def testSouthDarkWorld(self):
self.run_location_tests([
["Hype Cave - Top", True, []],
["Hype Cave - Middle Right", True, []],
["Hype Cave - Middle Left", True, []],
["Hype Cave - Bottom", True, []],
["Hype Cave - Generous Guy", True, []],
["Stumpy", True, []],
["Digging Game", True, []],
])
def testWestDarkWorld(self):
self.run_location_tests([
["Brewery", True, []],
["C-Shaped House", True, []],
["Chest Game", True, []],
["Peg Cave", False, []],
["Peg Cave", False, [], ['Hammer']],
["Peg Cave", True, ['Hammer', 'Pegasus Boots']],
["Bumper Cave Ledge", False, []],
["Bumper Cave Ledge", True, ['Pegasus Boots']],
["Blacksmith", False, []],
["Blacksmith", True, ['Magic Mirror', 'Pegasus Boots']],
["Blacksmith", True, ['Progressive Glove', 'Progressive Glove', 'Pegasus Boots', 'Moon Pearl']],
["Purple Chest", False, []],
["Purple Chest", True, ['Magic Mirror', 'Pegasus Boots']],
["Purple Chest", True, ['Progressive Glove', 'Progressive Glove', 'Pegasus Boots', 'Moon Pearl']],
])
def testEastDarkWorld(self):
self.run_location_tests([
["Catfish", False, []],
["Catfish", True, ['Pegasus Boots']],
#todo: Qirn Jump
#["Pyramid", True, []],
["Pyramid", False, []],
["Pyramid", True, ['Pegasus Boots']],
["Pyramid", True, ['Flippers']],
["Pyramid Fairy - Left", False, []],
["Pyramid Fairy - Left", False, [], ['Magic Mirror']],
["Pyramid Fairy - Left", False, [], ['Crystal 5']],
["Pyramid Fairy - Left", False, [], ['Crystal 6']],
["Pyramid Fairy - Left", True, ['Crystal 5', 'Crystal 6', 'Magic Mirror', 'Pegasus Boots']],
["Pyramid Fairy - Right", False, []],
["Pyramid Fairy - Right", False, [], ['Magic Mirror']],
["Pyramid Fairy - Right", False, [], ['Crystal 5']],
["Pyramid Fairy - Right", False, [], ['Crystal 6']],
["Pyramid Fairy - Right", True, ['Crystal 5', 'Crystal 6', 'Magic Mirror', 'Pegasus Boots']],
])
def testMireArea(self):
self.run_location_tests([
["Mire Shed - Left", False, []],
["Mire Shed - Left", True, ['Pegasus Boots']],
["Mire Shed - Right", False, []],
["Mire Shed - Right", True, ['Pegasus Boots']],
])

View File

@@ -0,0 +1,113 @@
from test.inverted_owg.TestInvertedOWG import TestInvertedOWG
class TestDeathMountain(TestInvertedOWG):
def testWestDeathMountain(self):
self.run_location_tests([
["Old Man", False, []],
["Old Man", False, [], ['Lamp']],
["Old Man", True, ['Pegasus Boots', 'Lamp']],
["Spectacle Rock Cave", False, []],
["Spectacle Rock Cave", True, ['Pegasus Boots']],
])
def testEastDeathMountain(self):
self.run_location_tests([
["Spiral Cave", False, []],
["Spiral Cave", False, [], ['Moon Pearl', 'Magic Mirror']],
["Spiral Cave", False, [], ['Moon Pearl', 'Progressive Sword']],
["Spiral Cave", True, ['Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Lamp', 'Progressive Sword']],
["Spiral Cave", True, ['Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Pegasus Boots', 'Progressive Sword']],
["Spiral Cave", True, ['Moon Pearl', 'Pegasus Boots']],
["Paradox Cave Lower - Far Left", False, []],
["Paradox Cave Lower - Far Left", False, [], ['Moon Pearl']],
["Paradox Cave Lower - Far Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Paradox Cave Lower - Left", False, []],
["Paradox Cave Lower - Left", False, [], ['Moon Pearl']],
["Paradox Cave Lower - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Paradox Cave Lower - Middle", False, []],
["Paradox Cave Lower - Middle", False, [], ['Moon Pearl']],
["Paradox Cave Lower - Middle", True, ['Moon Pearl', 'Pegasus Boots']],
["Paradox Cave Lower - Right", False, []],
["Paradox Cave Lower - Right", False, [], ['Moon Pearl']],
["Paradox Cave Lower - Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Paradox Cave Lower - Far Right", False, []],
["Paradox Cave Lower - Far Right", False, [], ['Moon Pearl']],
["Paradox Cave Lower - Far Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Paradox Cave Upper - Left", False, []],
["Paradox Cave Upper - Left", False, [], ['Moon Pearl']],
["Paradox Cave Upper - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Paradox Cave Upper - Right", False, []],
["Paradox Cave Upper - Right", False, [], ['Moon Pearl']],
["Paradox Cave Upper - Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Mimic Cave", False, []],
["Mimic Cave", False, [], ['Moon Pearl']],
["Mimic Cave", False, [], ['Hammer']],
["Mimic Cave", True, ['Moon Pearl', 'Hammer', 'Pegasus Boots']],
["Ether Tablet", False, []],
["Ether Tablet", False, ['Progressive Sword'], ['Progressive Sword']],
["Ether Tablet", False, [], ['Book of Mudora']],
["Ether Tablet", False, [], ['Moon Pearl']],
["Ether Tablet", True, ['Pegasus Boots', 'Moon Pearl', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword']],
["Spectacle Rock", False, []],
["Spectacle Rock", False, [], ['Moon Pearl']],
["Spectacle Rock", True, ['Moon Pearl', 'Pegasus Boots']],
])
def testWestDarkWorldDeathMountain(self):
self.run_location_tests([
["Spike Cave", False, []],
["Spike Cave", False, [], ['Progressive Glove']],
["Spike Cave", False, [], ['Hammer']],
["Spike Cave", False, [], ['Cape', 'Cane of Byrna']],
# ER doesn't put in an extra potion
#["Spike Cave", True, ['Bottle', 'Hammer', 'Progressive Glove', 'Pegasus Boots', 'Cape']],
["Spike Cave", True, ['Bottle', 'Hammer', 'Progressive Glove', 'Pegasus Boots', 'Cape', 'Moon Pearl']],
["Spike Cave", True, ['Bottle', 'Hammer', 'Progressive Glove', 'Pegasus Boots', 'Cane of Byrna']],
["Spike Cave", True, ['Magic Upgrade (1/2)', 'Hammer', 'Progressive Glove', 'Pegasus Boots', 'Cape']],
["Spike Cave", True, ['Magic Upgrade (1/2)', 'Hammer', 'Progressive Glove', 'Pegasus Boots', 'Cane of Byrna']],
["Spike Cave", True, ['Magic Upgrade (1/4)', 'Hammer', 'Progressive Glove', 'Pegasus Boots', 'Cape']],
["Spike Cave", True, ['Magic Upgrade (1/4)', 'Hammer', 'Progressive Glove', 'Pegasus Boots', 'Cane of Byrna']],
])
def testEastDarkWorldDeathMountain(self):
self.run_location_tests([
["Superbunny Cave - Top", False, []],
["Superbunny Cave - Top", True, ['Pegasus Boots']],
["Superbunny Cave - Bottom", False, []],
["Superbunny Cave - Bottom", True, ['Pegasus Boots']],
["Hookshot Cave - Bottom Right", False, []],
["Hookshot Cave - Bottom Right", False, [], ['Hookshot', 'Pegasus Boots']],
["Hookshot Cave - Bottom Right", False, [], ['Progressive Glove', 'Pegasus Boots', 'Magic Mirror']],
["Hookshot Cave - Bottom Right", True, ['Pegasus Boots']],
["Hookshot Cave - Bottom Left", False, []],
["Hookshot Cave - Bottom Left", False, [], ['Hookshot']],
["Hookshot Cave - Bottom Left", False, [], ['Progressive Glove', 'Pegasus Boots', 'Magic Mirror']],
["Hookshot Cave - Bottom Left", True, ['Pegasus Boots', 'Hookshot']],
["Hookshot Cave - Top Left", False, []],
["Hookshot Cave - Top Left", False, [], ['Hookshot']],
["Hookshot Cave - Top Left", False, [], ['Progressive Glove', 'Pegasus Boots', 'Magic Mirror']],
["Hookshot Cave - Top Left", True, ['Pegasus Boots', 'Hookshot']],
["Hookshot Cave - Top Right", False, []],
["Hookshot Cave - Top Right", False, [], ['Hookshot']],
["Hookshot Cave - Top Right", False, [], ['Progressive Glove', 'Pegasus Boots', 'Magic Mirror']],
["Hookshot Cave - Top Right", True, ['Pegasus Boots', 'Hookshot']],
])

View File

@@ -0,0 +1,115 @@
from test.inverted_owg.TestInvertedOWG import TestInvertedOWG
class TestDungeons(TestInvertedOWG):
def testFirstDungeonChests(self):
self.run_location_tests([
["Hyrule Castle - Map Chest", False, []],
["Hyrule Castle - Map Chest", True, ['Beat Agahnim 1']],
["Hyrule Castle - Map Chest", True, ['Moon Pearl', 'Pegasus Boots']],
["Hyrule Castle - Map Chest", True, ['Magic Mirror', 'Pegasus Boots']],
["Sanctuary", False, []],
["Sanctuary", False, ['Beat Agahnim 1']],
["Sanctuary", True, ['Magic Mirror', 'Beat Agahnim 1']],
["Sanctuary", True, ['Lamp', 'Beat Agahnim 1', 'Small Key (Escape)']],
["Sanctuary", True, ['Moon Pearl', 'Pegasus Boots']],
["Sanctuary", True, ['Magic Mirror', 'Pegasus Boots']],
["Sewers - Secret Room - Left", False, []],
["Sewers - Secret Room - Left", True, ['Moon Pearl', 'Progressive Glove', 'Pegasus Boots']],
["Sewers - Secret Room - Left", True, ['Moon Pearl', 'Pegasus Boots', 'Lamp', 'Small Key (Escape)']],
["Sewers - Secret Room - Left", True,
['Magic Mirror', 'Pegasus Boots', 'Lamp', 'Small Key (Escape)']],
["Sewers - Secret Room - Left", True, ['Beat Agahnim 1', 'Lamp', 'Small Key (Escape)']],
["Eastern Palace - Compass Chest", False, []],
["Eastern Palace - Compass Chest", True, ['Moon Pearl', 'Pegasus Boots']],
["Eastern Palace - Compass Chest", True, ['Magic Mirror', 'Pegasus Boots']],
["Eastern Palace - Compass Chest", True, ['Beat Agahnim 1']],
["Desert Palace - Map Chest", False, []],
["Desert Palace - Map Chest", True, ['Moon Pearl', 'Pegasus Boots']],
["Desert Palace - Map Chest", True, ['Book of Mudora', 'Magic Mirror', 'Pegasus Boots']],
["Desert Palace - Boss", False, []],
["Desert Palace - Boss", False, [], ['Small Key (Desert Palace)']],
["Desert Palace - Boss", False, [], ['Big Key (Desert Palace)']],
["Desert Palace - Boss", False, [], ['Lamp', 'Fire Rod']],
["Desert Palace - Boss", True, ['Progressive Sword', 'Small Key (Desert Palace)', 'Big Key (Desert Palace)', 'Moon Pearl', 'Pegasus Boots', 'Lamp']],
["Desert Palace - Boss", True, ['Progressive Sword', 'Small Key (Desert Palace)', 'Big Key (Desert Palace)', 'Moon Pearl', 'Pegasus Boots', 'Fire Rod']],
["Tower of Hera - Basement Cage", False, []],
["Tower of Hera - Basement Cage", False, [], ['Moon Pearl']],
["Tower of Hera - Basement Cage", True, ['Pegasus Boots', 'Moon Pearl']],
["Castle Tower - Room 03", False, []],
["Castle Tower - Room 03", False, [], ['Progressive Sword', 'Hammer', 'Progressive Bow', 'Fire Rod', 'Ice Rod', 'Cane of Somaria', 'Cane of Byrna']],
["Castle Tower - Room 03", True, ['Pegasus Boots', 'Progressive Sword']],
["Castle Tower - Room 03", True, ['Pegasus Boots', 'Progressive Bow']],
#todo: Qirn Jump
#["Palace of Darkness - Shooter Room", True, []],
["Palace of Darkness - Shooter Room", True, ['Pegasus Boots']],
["Palace of Darkness - Shooter Room", True, ['Hammer']],
["Palace of Darkness - Shooter Room", True, ['Flippers']],
["Palace of Darkness - Shooter Room", True, ['Pegasus Boots', 'Progressive Glove']],
["Palace of Darkness - Shooter Room", True, ['Pegasus Boots', 'Magic Mirror']],
["Swamp Palace - Entrance", False, []],
["Swamp Palace - Entrance", False, [], ['Magic Mirror']],
["Swamp Palace - Entrance", False, [], ['Flippers']],
["Swamp Palace - Entrance", True, ['Magic Mirror', 'Flippers', 'Pegasus Boots']],
["Swamp Palace - Entrance", True, ['Magic Mirror', 'Flippers', 'Beat Agahnim 1']],
["Skull Woods - Compass Chest", True, []],
["Skull Woods - Big Chest", False, []],
["Skull Woods - Big Chest", False, [], ['Big Key (Skull Woods)']],
["Skull Woods - Big Chest", True, ['Big Key (Skull Woods)']],
["Skull Woods - Big Key Chest", True, []],
["Skull Woods - Bridge Room", False, []],
["Skull Woods - Bridge Room", False, [], ['Fire Rod']],
["Skull Woods - Bridge Room", True, ['Fire Rod']],
["Thieves' Town - Map Chest", True, []],
["Ice Palace - Compass Chest", False, []],
["Ice Palace - Compass Chest", False, [], ['Fire Rod', 'Bombos', 'Progressive Sword']],
#todo: Qirn Jump
#["Ice Palace - Compass Chest", True, ['Fire Rod']],
#["Ice Palace - Compass Chest", True, ['Bombos', 'Progressive Sword']],
["Ice Palace - Compass Chest", True, ['Pegasus Boots', 'Fire Rod']],
["Ice Palace - Compass Chest", True, ['Pegasus Boots', 'Bombos', 'Progressive Sword']],
["Misery Mire - Bridge Chest", False, []],
["Misery Mire - Bridge Chest", False, [], ['Ether']],
["Misery Mire - Bridge Chest", False, [], ['Progressive Sword']],
["Misery Mire - Bridge Chest", True, ['Pegasus Boots', 'Ether', 'Progressive Sword']],
["Turtle Rock - Compass Chest", False, []],
["Turtle Rock - Compass Chest", False, [], ['Cane of Somaria']],
["Turtle Rock - Compass Chest", True, ['Pegasus Boots', 'Magic Mirror', 'Moon Pearl', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Compass Chest", True, ['Pegasus Boots', 'Quake', 'Progressive Sword', 'Cane of Somaria']],
["Turtle Rock - Chain Chomps", False, []],
["Turtle Rock - Chain Chomps", True, ['Pegasus Boots', 'Magic Mirror', 'Moon Pearl']],
["Turtle Rock - Crystaroller Room", False, []],
["Turtle Rock - Crystaroller Room", True, ['Pegasus Boots', 'Magic Mirror', 'Moon Pearl', 'Big Key (Turtle Rock)']],
["Turtle Rock - Crystaroller Room", True, ['Pegasus Boots', 'Magic Mirror', 'Moon Pearl', 'Lamp', 'Cane of Somaria']],
["Ganons Tower - Hope Room - Left", False, []],
["Ganons Tower - Hope Room - Left", False, [], ['Crystal 1']],
["Ganons Tower - Hope Room - Left", False, [], ['Crystal 2']],
["Ganons Tower - Hope Room - Left", False, [], ['Crystal 3']],
["Ganons Tower - Hope Room - Left", False, [], ['Crystal 4']],
["Ganons Tower - Hope Room - Left", False, [], ['Crystal 5']],
["Ganons Tower - Hope Room - Left", False, [], ['Crystal 6']],
["Ganons Tower - Hope Room - Left", False, [], ['Crystal 7']],
["Ganons Tower - Hope Room - Left", True, ['Beat Agahnim 1', 'Hookshot', 'Crystal 1', 'Crystal 2', 'Crystal 3', 'Crystal 4', 'Crystal 5', 'Crystal 6', 'Crystal 7']],
["Ganons Tower - Hope Room - Left", True, ['Pegasus Boots', 'Magic Mirror', 'Hookshot', 'Crystal 1', 'Crystal 2', 'Crystal 3', 'Crystal 4', 'Crystal 5', 'Crystal 6', 'Crystal 7']],
["Ganons Tower - Hope Room - Left", True, ['Pegasus Boots', 'Moon Pearl', 'Hookshot', 'Crystal 1', 'Crystal 2', 'Crystal 3', 'Crystal 4', 'Crystal 5', 'Crystal 6', 'Crystal 7']],
])

View File

@@ -0,0 +1,30 @@
from BaseClasses import World
from Dungeons import create_dungeons, get_dungeon_item_pool
from EntranceShuffle import link_inverted_entrances
from InvertedRegions import create_inverted_regions
from ItemList import generate_itempool, difficulties
from Items import ItemFactory
from Regions import mark_light_world_regions
from Rules import set_rules
from test.TestBase import TestBase
class TestInvertedOWG(TestBase):
def setUp(self):
self.world = World(1, 'vanilla', 'owglitches', 'inverted', 'random', 'normal', 'normal', 'none', 'on', 'ganon', 'balanced',
True, False, False, False, False, False, False, False, False, None,
'none', False)
self.world.difficulty_requirements = difficulties['normal']
create_inverted_regions(self.world, 1)
create_dungeons(self.world, 1)
link_inverted_entrances(self.world, 1)
generate_itempool(self.world, 1)
self.world.required_medallions[1] = ['Ether', 'Quake']
self.world.itempool.extend(get_dungeon_item_pool(self.world))
self.world.itempool.extend(ItemFactory(['Green Pendant', 'Red Pendant', 'Blue Pendant', 'Beat Agahnim 1', 'Beat Agahnim 2', 'Crystal 1', 'Crystal 2', 'Crystal 3', 'Crystal 4', 'Crystal 5', 'Crystal 6', 'Crystal 7'], 1))
self.world.get_location('Agahnim 1', 1).item = None
self.world.get_location('Agahnim 2', 1).item = None
self.world.precollected_items.clear()
self.world.itempool.append(ItemFactory('Pegasus Boots', 1))
mark_light_world_regions(self.world)
set_rules(self.world, 1)

View File

@@ -0,0 +1,312 @@
from test.inverted_owg.TestInvertedOWG import TestInvertedOWG
class TestLightWorld(TestInvertedOWG):
def testLightWorld(self):
self.run_location_tests([
["Master Sword Pedestal", False, []],
["Master Sword Pedestal", False, [], ['Green Pendant']],
["Master Sword Pedestal", False, [], ['Red Pendant']],
["Master Sword Pedestal", False, [], ['Blue Pendant']],
["Master Sword Pedestal", True, ['Green Pendant', 'Red Pendant', 'Blue Pendant', 'Moon Pearl', 'Pegasus Boots']],
["Master Sword Pedestal", True, ['Green Pendant', 'Red Pendant', 'Blue Pendant', 'Magic Mirror', 'Pegasus Boots']],
["Link's Uncle", False, []],
["Link's Uncle", False, [], ['Moon Pearl']],
["Link's Uncle", True, ['Moon Pearl', 'Pegasus Boots']],
["Secret Passage", False, []],
["Secret Passage", False, [], ['Moon Pearl']],
["Secret Passage", True, ['Moon Pearl', 'Pegasus Boots']],
["King's Tomb", False, []],
["King's Tomb", False, [], ['Pegasus Boots']],
["King's Tomb", False, [], ['Moon Pearl']],
["King's Tomb", True, ['Pegasus Boots', 'Magic Mirror', 'Moon Pearl']],
["Floodgate Chest", False, []],
["Floodgate Chest", False, [], ['Moon Pearl', 'Magic Mirror']],
["Floodgate Chest", True, ['Moon Pearl', 'Pegasus Boots']],
["Floodgate Chest", True, ['Magic Mirror', 'Pegasus Boots']],
["Kakariko Tavern", False, []],
["Kakariko Tavern", False, [], ['Moon Pearl', 'Magic Mirror']],
["Kakariko Tavern", True, ['Moon Pearl', 'Pegasus Boots']],
["Kakariko Tavern", True, ['Magic Mirror', 'Pegasus Boots']],
["Kakariko Tavern", True, ['Beat Agahnim 1', 'Moon Pearl']],
["Kakariko Tavern", True, ['Beat Agahnim 1', 'Magic Mirror']],
["Chicken House", False, []],
["Chicken House", False, [], ['Moon Pearl']],
["Chicken House", True, ['Moon Pearl', 'Pegasus Boots']],
["Aginah's Cave", False, []],
["Aginah's Cave", False, [], ['Moon Pearl']],
["Aginah's Cave", True, ['Moon Pearl', 'Pegasus Boots']],
["Sahasrahla's Hut - Left", False, []],
["Sahasrahla's Hut - Left", False, [], ['Moon Pearl', 'Magic Mirror']],
["Sahasrahla's Hut - Left", False, [], ['Moon Pearl', 'Pegasus Boots']],
["Sahasrahla's Hut - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Sahasrahla's Hut - Left", True, ['Magic Mirror', 'Pegasus Boots']],
##todo: Damage boost superbunny not in logic
#["Sahasrahla's Hut - Left", True, ['Beat Agahnim 1', 'Pegasus Boots']],
["Sahasrahla's Hut - Left", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Sahasrahla's Hut - Middle", False, []],
["Sahasrahla's Hut - Middle", False, [], ['Moon Pearl', 'Magic Mirror']],
["Sahasrahla's Hut - Middle", False, [], ['Moon Pearl', 'Pegasus Boots']],
["Sahasrahla's Hut - Middle", True, ['Moon Pearl', 'Pegasus Boots']],
["Sahasrahla's Hut - Middle", True, ['Magic Mirror', 'Pegasus Boots']],
#["Sahasrahla's Hut - Middle", True, ['Beat Agahnim 1', 'Pegasus Boots']],
["Sahasrahla's Hut - Middle", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Sahasrahla's Hut - Right", False, []],
["Sahasrahla's Hut - Right", False, [], ['Moon Pearl', 'Magic Mirror']],
["Sahasrahla's Hut - Right", False, [], ['Moon Pearl', 'Pegasus Boots']],
["Sahasrahla's Hut - Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Sahasrahla's Hut - Right", True, ['Magic Mirror', 'Pegasus Boots']],
#["Sahasrahla's Hut - Right", True, ['Beat Agahnim 1', 'Pegasus Boots']],
["Sahasrahla's Hut - Right", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Kakariko Well - Top", False, []],
["Kakariko Well - Top", False, [], ['Moon Pearl']],
["Kakariko Well - Top", True, ['Moon Pearl', 'Pegasus Boots']],
["Kakariko Well - Left", False, []],
["Kakariko Well - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Kakariko Well - Left", True, ['Magic Mirror', 'Pegasus Boots']],
["Kakariko Well - Left", True, ['Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Kakariko Well - Left", True, ['Beat Agahnim 1']],
["Kakariko Well - Middle", False, []],
["Kakariko Well - Middle", True, ['Moon Pearl', 'Pegasus Boots']],
["Kakariko Well - Middle", True, ['Magic Mirror', 'Pegasus Boots']],
["Kakariko Well - Middle", True, ['Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Kakariko Well - Middle", True, ['Beat Agahnim 1']],
["Kakariko Well - Right", False, []],
["Kakariko Well - Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Kakariko Well - Right", True, ['Magic Mirror', 'Pegasus Boots']],
["Kakariko Well - Right", True, ['Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Kakariko Well - Right", True, ['Beat Agahnim 1']],
["Kakariko Well - Bottom", False, []],
["Kakariko Well - Bottom", True, ['Moon Pearl', 'Pegasus Boots']],
["Kakariko Well - Bottom", True, ['Magic Mirror', 'Pegasus Boots']],
["Kakariko Well - Bottom", True, ['Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Kakariko Well - Bottom", True, ['Beat Agahnim 1']],
["Blind's Hideout - Top", False, []],
["Blind's Hideout - Top", False, [], ['Moon Pearl']],
["Blind's Hideout - Top", True, ['Moon Pearl', 'Pegasus Boots']],
["Blind's Hideout - Left", False, []],
["Blind's Hideout - Left", False, [], ['Moon Pearl', 'Magic Mirror']],
["Blind's Hideout - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Blind's Hideout - Left", True, ['Magic Mirror', 'Pegasus Boots']],
["Blind's Hideout - Left", True, ['Magic Mirror', 'Beat Agahnim 1']],
["Blind's Hideout - Right", False, []],
["Blind's Hideout - Right", False, [], ['Moon Pearl', 'Magic Mirror']],
["Blind's Hideout - Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Blind's Hideout - Right", True, ['Magic Mirror', 'Pegasus Boots']],
["Blind's Hideout - Right", True, ['Magic Mirror', 'Beat Agahnim 1']],
["Blind's Hideout - Far Left", False, []],
["Blind's Hideout - Far Left", False, [], ['Moon Pearl', 'Magic Mirror']],
["Blind's Hideout - Far Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Blind's Hideout - Far Left", True, ['Magic Mirror', 'Pegasus Boots']],
["Blind's Hideout - Far Left", True, ['Magic Mirror', 'Beat Agahnim 1']],
["Blind's Hideout - Far Right", False, []],
["Blind's Hideout - Far Right", False, [], ['Moon Pearl', 'Magic Mirror']],
["Blind's Hideout - Far Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Blind's Hideout - Far Right", True, ['Magic Mirror', 'Pegasus Boots']],
["Blind's Hideout - Far Right", True, ['Magic Mirror', 'Beat Agahnim 1']],
["Bonk Rock Cave", False, []],
["Bonk Rock Cave", False, [], ['Pegasus Boots']],
["Bonk Rock Cave", False, [], ['Moon Pearl']],
["Bonk Rock Cave", True, ['Moon Pearl', 'Pegasus Boots']],
["Mini Moldorm Cave - Far Left", False, []],
["Mini Moldorm Cave - Far Left", False, [], ['Moon Pearl']],
["Mini Moldorm Cave - Far Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Mini Moldorm Cave - Left", False, []],
["Mini Moldorm Cave - Left", False, [], ['Moon Pearl']],
["Mini Moldorm Cave - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Mini Moldorm Cave - Right", False, []],
["Mini Moldorm Cave - Right", False, [], ['Moon Pearl']],
["Mini Moldorm Cave - Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Mini Moldorm Cave - Far Right", False, []],
["Mini Moldorm Cave - Far Right", False, [], ['Moon Pearl']],
["Mini Moldorm Cave - Far Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Mini Moldorm Cave - Generous Guy", False, []],
["Mini Moldorm Cave - Generous Guy", False, [], ['Moon Pearl']],
["Mini Moldorm Cave - Generous Guy", True, ['Moon Pearl', 'Pegasus Boots']],
["Ice Rod Cave", False, []],
["Ice Rod Cave", False, [], ['Moon Pearl']],
["Ice Rod Cave", True, ['Moon Pearl', 'Pegasus Boots']],
#I don't think so
#["Ice Rod Cave", True, ['Magic Mirror', 'Pegasus Boots', 'BigRedBomb']],
#["Ice Rod Cave", True, ['Magic Mirror', 'Beat Agahnim 1', 'BigRedBomb']],
["Bottle Merchant", False, []],
["Bottle Merchant", True, ['Pegasus Boots', 'Magic Mirror']],
["Bottle Merchant", True, ['Moon Pearl', 'Pegasus Boots']],
["Bottle Merchant", True, ['Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Bottle Merchant", True, ['Magic Mirror', 'Pegasus Boots']],
["Sahasrahla", False, []],
["Sahasrahla", False, [], ['Green Pendant']],
["Sahasrahla", True, ['Green Pendant', 'Magic Mirror', 'Pegasus Boots']],
["Sahasrahla", True, ['Green Pendant', 'Moon Pearl', 'Pegasus Boots']],
["Sahasrahla", True, ['Green Pendant', 'Magic Mirror', 'Pegasus Boots']],
["Sahasrahla", True, ['Green Pendant', 'Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Magic Bat", False, []],
["Magic Bat", False, [], ['Magic Powder']],
["Magic Bat", False, [], ['Moon Pearl']],
["Magic Bat", True, ['Magic Powder', 'Pegasus Boots', 'Moon Pearl']],
["Sick Kid", False, []],
["Sick Kid", False, [], ['AnyBottle']],
["Sick Kid", False, ['Bottle (Bee)']],
["Sick Kid", False, ['Bottle (Fairy)']],
["Sick Kid", False, ['Bottle (Red Potion)']],
["Sick Kid", False, ['Bottle (Green Potion)']],
["Sick Kid", False, ['Bottle (Blue Potion)']],
["Sick Kid", False, ['Bottle']],
["Sick Kid", False, ['Bottle (Good Bee)']],
["Sick Kid", True, ['Bottle (Bee)', 'Magic Mirror', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Bee)', 'Moon Pearl', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Fairy)', 'Magic Mirror', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Fairy)', 'Moon Pearl', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Red Potion)', 'Magic Mirror', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Red Potion)', 'Moon Pearl', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Green Potion)', 'Magic Mirror', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Green Potion)', 'Moon Pearl', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Blue Potion)', 'Magic Mirror', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Blue Potion)', 'Moon Pearl', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Good Bee)', 'Magic Mirror', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Good Bee)', 'Moon Pearl', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle', 'Magic Mirror', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle', 'Moon Pearl', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle', 'Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Hobo", False, []],
["Hobo", False, [], ['Moon Pearl']],
["Hobo", True, ['Moon Pearl', 'Pegasus Boots']],
["Hobo", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Bombos Tablet", False, []],
["Bombos Tablet", False, ['Progressive Sword'], ['Progressive Sword']],
["Bombos Tablet", False, [], ['Book of Mudora']],
["Bombos Tablet", True, ['Moon Pearl', 'Book of Mudora', 'Pegasus Boots', 'Progressive Sword', 'Progressive Sword']],
["Bombos Tablet", True, ['Magic Mirror', 'Book of Mudora', 'Pegasus Boots', 'Progressive Sword', 'Progressive Sword']],
["Bombos Tablet", True, ['Progressive Glove', 'Progressive Glove', 'Book of Mudora', 'Pegasus Boots', 'Progressive Sword', 'Progressive Sword']],
["King Zora", False, []],
["King Zora", False, [], ['Moon Pearl']],
["King Zora", True, ['Moon Pearl', 'Pegasus Boots']],
["Lost Woods Hideout", False, []],
["Lost Woods Hideout", False, [], ['Moon Pearl']],
["Lost Woods Hideout", True, ['Moon Pearl', 'Pegasus Boots']],
["Lumberjack Tree", False, []],
["Lumberjack Tree", False, [], ['Beat Agahnim 1']],
["Lumberjack Tree", False, [], ['Pegasus Boots']],
["Lumberjack Tree", False, [], ['Moon Pearl']],
["Lumberjack Tree", True, ['Pegasus Boots', 'Moon Pearl', 'Beat Agahnim 1']],
["Cave 45", False, []],
["Cave 45", False, [], ['Moon Pearl', 'Magic Mirror']],
["Cave 45", True, ['Moon Pearl', 'Pegasus Boots']],
["Cave 45", True, ['Magic Mirror', 'Pegasus Boots']],
["Cave 45", True, ['Magic Mirror', 'Beat Agahnim 1']],
["Graveyard Cave", False, []],
["Graveyard Cave", False, [], ['Moon Pearl']],
["Graveyard Cave", True, ['Moon Pearl', 'Pegasus Boots']],
["Checkerboard Cave", False, []],
["Checkerboard Cave", False, [], ['Progressive Glove']],
["Checkerboard Cave", False, [], ['Moon Pearl']],
["Checkerboard Cave", True, ['Progressive Glove', 'Pegasus Boots', 'Moon Pearl']],
["Library", False, []],
["Library", False, [], ['Pegasus Boots']],
["Library", False, [], ['Moon Pearl', 'Magic Mirror']],
["Library", True, ['Pegasus Boots', 'Moon Pearl']],
["Library", True, ['Pegasus Boots', 'Magic Mirror']],
["Mushroom", False, []],
["Mushroom", False, [], ['Moon Pearl']],
["Mushroom", True, ['Moon Pearl', 'Pegasus Boots']],
["Potion Shop", False, []],
["Potion Shop", False, [], ['Mushroom']],
["Potion Shop", False, [], ['Moon Pearl']],
["Potion Shop", True, ['Mushroom', 'Moon Pearl', 'Pegasus Boots']],
["Maze Race", False, []],
["Maze Race", False, [], ['Moon Pearl']],
["Maze Race", True, ['Moon Pearl', 'Pegasus Boots']],
["Desert Ledge", False, []],
["Desert Ledge", True, ['Book of Mudora', 'Magic Mirror', 'Pegasus Boots']],
["Desert Ledge", True, ['Book of Mudora', 'Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Desert Ledge", True, ['Book of Mudora', 'Beat Agahnim 1']],
["Desert Ledge", True, ['Moon Pearl', 'Pegasus Boots']],
["Lake Hylia Island", False, []],
["Lake Hylia Island", False, [], ['Moon Pearl']],
["Lake Hylia Island", True, ['Moon Pearl', 'Pegasus Boots']],
["Sunken Treasure", False, []],
["Sunken Treasure", False, [], ['Moon Pearl', 'Magic Mirror']],
["Sunken Treasure", True, ['Moon Pearl', 'Pegasus Boots']],
["Sunken Treasure", True, ['Magic Mirror', 'Pegasus Boots']],
["Sunken Treasure", True, ['Magic Mirror', 'Beat Agahnim 1']],
["Zora's Ledge", False, []],
["Zora's Ledge", False, [], ['Moon Pearl']],
["Zora's Ledge", True, ['Moon Pearl', 'Pegasus Boots']],
["Flute Spot", False, []],
["Flute Spot", False, [], ['Shovel']],
["Flute Spot", False, [], ['Moon Pearl']],
["Flute Spot", True, ['Shovel', 'Moon Pearl', 'Pegasus Boots']],
["Waterfall Fairy - Left", False, []],
["Waterfall Fairy - Left", False, [], ['Moon Pearl']],
["Waterfall Fairy - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Waterfall Fairy - Left", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Waterfall Fairy - Left", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Waterfall Fairy - Left", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Waterfall Fairy - Right", False, []],
["Waterfall Fairy - Right", False, [], ['Moon Pearl']],
["Waterfall Fairy - Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Waterfall Fairy - Right", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Waterfall Fairy - Right", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Waterfall Fairy - Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
# Bomb Merchant is not a separate check, and is only used as part of the Pyramid Fairy rules
# ["Bomb Merchant", False, []],
# ["Bomb Merchant", False, [], ['Crystal 5']],
# ["Bomb Merchant", False, [], ['Crystal 6']],
# ["Bomb Merchant", True, ['Crystal 5', 'Crystal 6', 'Moon Pearl', 'Pegasus Boots']],
# ["Bomb Merchant", True, ['Crystal 5', 'Crystal 6', 'Magic Mirror', 'Pegasus Boots']],
# ["Bomb Merchant", True, ['Crystal 5', 'Crystal 6', 'Beat Agahnim 1']],
["Ganon", False, []],
])

View File

206
test/owg/TestDarkWorld.py Normal file
View File

@@ -0,0 +1,206 @@
from test.owg.TestVanillaOWG import TestVanillaOWG
class TestDarkWorld(TestVanillaOWG):
def testSouthDarkWorld(self):
self.run_location_tests([
["Hype Cave - Top", False, []],
["Hype Cave - Top", False, [], ['Moon Pearl']],
["Hype Cave - Top", True, ['Moon Pearl', 'Pegasus Boots']],
["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', 'Pegasus Boots']],
["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', 'Pegasus Boots']],
["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', 'Pegasus Boots']],
["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', 'Pegasus Boots']],
["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', 'Pegasus Boots']],
["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', 'Pegasus Boots']],
["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 testEastDarkWorld(self):
self.run_location_tests([
["Catfish", False, []],
["Catfish", False, [], ['Moon Pearl']],
["Catfish", False, [], ['Progressive Glove', 'Pegasus Boots']],
["Catfish", True, ['Moon Pearl', 'Pegasus Boots']],
["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', 'Magic Mirror']],
["Pyramid", False, [], ['Beat Agahnim 1', 'Moon Pearl', 'Pegasus Boots']],
["Pyramid", True, ['Moon Pearl', 'Pegasus Boots']],
["Pyramid", True, ['Magic Mirror', 'Pegasus Boots']],
["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, [], ['Pegasus Boots', 'Moon Pearl', 'Beat Agahnim 1']],
["Pyramid Fairy - Left", False, [], ['Pegasus Boots', 'Moon Pearl', 'Crystal 5']],
["Pyramid Fairy - Left", False, [], ['Pegasus Boots', 'Moon Pearl', 'Crystal 6']],
["Pyramid Fairy - Left", False, [], ['Magic Mirror', 'Crystal 5']],
["Pyramid Fairy - Left", False, [], ['Magic Mirror', 'Crystal 6']],
["Pyramid Fairy - Left", False, [], ['Magic Mirror', 'Moon Pearl']],
["Pyramid Fairy - Left", True, ['Magic Mirror', 'Pegasus Boots']],
["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 - Left", True, ['Crystal 5', 'Crystal 6', 'Beat Agahnim 1', 'Ocarina', 'Magic Mirror']],
["Pyramid Fairy - Left", True, ['Crystal 5', 'Crystal 6', 'Beat Agahnim 1', 'Progressive Glove', 'Lamp', 'Magic Mirror']],
["Pyramid Fairy - Right", False, []],
["Pyramid Fairy - Right", False, [], ['Pegasus Boots', 'Moon Pearl', 'Beat Agahnim 1']],
["Pyramid Fairy - Right", False, [], ['Pegasus Boots', 'Moon Pearl', 'Crystal 5']],
["Pyramid Fairy - Right", False, [], ['Pegasus Boots', 'Moon Pearl', 'Crystal 6']],
["Pyramid Fairy - Right", False, [], ['Magic Mirror', 'Crystal 5']],
["Pyramid Fairy - Right", False, [], ['Magic Mirror', 'Crystal 6']],
["Pyramid Fairy - Right", False, [], ['Magic Mirror', 'Moon Pearl']],
["Pyramid Fairy - Right", True, ['Magic Mirror', 'Pegasus Boots']],
["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']],
["Pyramid Fairy - Right", True, ['Crystal 5', 'Crystal 6', 'Beat Agahnim 1', 'Ocarina', 'Magic Mirror']],
["Pyramid Fairy - Right", True, ['Crystal 5', 'Crystal 6', 'Beat Agahnim 1', 'Progressive Glove', 'Lamp', 'Magic Mirror']],
["Ganon", False, []],
["Ganon", False, [], ['Moon Pearl']],
["Ganon", False, [], ['Beat Agahnim 2']],
])
def testWestDarkWorld(self):
self.run_location_tests([
["Brewery", False, []],
["Brewery", False, [], ['Moon Pearl']],
["Brewery", False, [], ['Pegasus Boots', 'Magic Mirror', 'Hookshot', 'Progressive Glove']],
["Brewery", True, ['Moon Pearl', 'Pegasus Boots']],
["Brewery", True, ['Moon Pearl', 'Ocarina', 'Magic Mirror']],
["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', 'Magic Mirror']],
["C-Shaped House", True, ['Moon Pearl', 'Pegasus Boots']],
["C-Shaped House", True, ['Magic Mirror', 'Pegasus Boots']],
["C-Shaped House", True, ['Magic Mirror', 'Ocarina']],
["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', 'Magic Mirror']],
["Chest Game", True, ['Moon Pearl', 'Pegasus Boots']],
["Chest Game", True, ['Magic Mirror', 'Pegasus Boots']],
["Chest Game", True, ['Magic Mirror', 'Ocarina']],
["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'], ['Pegasus Boots', 'Progressive Glove']],
["Peg Cave", True, ['Moon Pearl', 'Hammer', 'Pegasus Boots']],
["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', 'Pegasus Boots']],
["Bumper Cave Ledge", False, [], ['Progressive Glove', 'Pegasus Boots']],
["Bumper Cave Ledge", True, ['Moon Pearl', 'Pegasus Boots']],
["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'], ['Progressive Glove']],
["Blacksmith", False, [], ['Moon Pearl']],
["Blacksmith", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Purple Chest", False, []],
["Purple Chest", False, ['Progressive Glove'], ['Progressive Glove']],
["Purple Chest", False, [], ['Moon Pearl']],
["Purple Chest", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']]
])
def testMireArea(self):
self.run_location_tests([
["Mire Shed - Left", False, []],
["Mire Shed - Left", False, ['Progressive Glove'], ['Progressive Glove', 'Pegasus Boots']],
["Mire Shed - Left", False, [], ['Moon Pearl', 'Magic Mirror']],
["Mire Shed - Left", False, [], ['Ocarina', 'Pegasus Boots']],
["Mire Shed - Left", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove']],
["Mire Shed - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Mire Shed - Left", True, ['Magic Mirror', 'Ocarina', 'Progressive Glove', 'Progressive Glove']],
["Mire Shed - Right", False, []],
["Mire Shed - Right", False, [], ['Moon Pearl', 'Magic Mirror']],
["Mire Shed - Right", False, ['Progressive Glove'], ['Progressive Glove', 'Pegasus Boots']],
["Mire Shed - Right", False, [], ['Ocarina', 'Pegasus Boots']],
["Mire Shed - Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Mire Shed - Right", True, ['Magic Mirror', 'Ocarina', 'Progressive Glove', 'Progressive Glove']],
["Mire Shed - Right", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove']],
])

View File

@@ -0,0 +1,201 @@
from test.owg.TestVanillaOWG import TestVanillaOWG
class TestDeathMountain(TestVanillaOWG):
def testWestDeathMountain(self):
self.run_location_tests([
["Ether Tablet", False, []],
["Ether Tablet", False, ['Progressive Sword'], ['Progressive Sword']],
["Ether Tablet", False, [], ['Book of Mudora']],
["Ether Tablet", False, [], ['Pegasus Boots', 'Progressive Glove', 'Ocarina']],
["Ether Tablet", False, [], ['Pegasus Boots', 'Lamp', 'Ocarina']],
["Ether Tablet", False, [], ['Pegasus Boots', 'Magic Mirror', 'Hookshot']],
["Ether Tablet", False, [], ['Pegasus Boots', 'Magic Mirror', 'Hammer']],
["Ether Tablet", True, ['Pegasus Boots', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword']],
["Ether Tablet", True, ['Ocarina', 'Magic Mirror', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword']],
["Ether Tablet", True, ['Progressive Glove', 'Lamp', 'Magic Mirror', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword']],
["Ether Tablet", True, ['Ocarina', 'Hammer', 'Hookshot', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword']],
["Ether Tablet", True, ['Progressive Glove', 'Lamp', 'Hammer', 'Hookshot', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword']],
["Old Man", False, []],
["Old Man", False, [], ['Lamp']],
["Old Man", False, [], ['Pegasus Boots', 'Progressive Glove', 'Ocarina']],
["Old Man", True, ['Pegasus Boots', 'Lamp']],
["Old Man", True, ['Ocarina', 'Lamp']],
["Old Man", True, ['Progressive Glove', 'Lamp']],
["Spectacle Rock Cave", False, []],
["Spectacle Rock Cave", False, [], ['Pegasus Boots', 'Progressive Glove', 'Ocarina']],
["Spectacle Rock Cave", False, [], ['Pegasus Boots', 'Lamp', 'Ocarina']],
["Spectacle Rock Cave", True, ['Pegasus Boots']],
["Spectacle Rock Cave", True, ['Ocarina']],
["Spectacle Rock Cave", True, ['Progressive Glove', 'Lamp']],
["Spectacle Rock", False, []],
["Spectacle Rock", False, [], ['Pegasus Boots', 'Progressive Glove', 'Ocarina']],
["Spectacle Rock", False, [], ['Pegasus Boots', 'Lamp', 'Ocarina']],
["Spectacle Rock", False, [], ['Pegasus Boots', 'Magic Mirror']],
["Spectacle Rock", True, ['Pegasus Boots']],
["Spectacle Rock", True, ['Ocarina', 'Magic Mirror']],
["Spectacle Rock", True, ['Progressive Glove', 'Lamp', 'Magic Mirror']],
])
def testEastDeathMountain(self):
self.run_location_tests([
["Mimic Cave", False, []],
["Mimic Cave", False, [], ['Magic Mirror']],
["Mimic Cave", False, [], ['Hammer']],
["Mimic Cave", False, [], ['Pegasus Boots', 'Ocarina', 'Lamp']],
["Mimic Cave", False, [], ['Pegasus Boots', 'Ocarina', 'Progressive Glove']],
["Mimic Cave", True, ['Magic Mirror', 'Hammer', 'Pegasus Boots']],
["Mimic Cave", True, ['Magic Mirror', 'Hammer', 'Progressive Glove', 'Lamp']],
["Mimic Cave", True, ['Magic Mirror', 'Hammer', 'Ocarina']],
["Spiral Cave", False, []],
["Spiral Cave", False, [], ['Pegasus Boots', 'Progressive Glove', 'Ocarina']],
["Spiral Cave", False, [], ['Pegasus Boots', 'Magic Mirror', 'Hookshot']],
["Spiral Cave", True, ['Pegasus Boots']],
["Spiral Cave", True, ['Ocarina', 'Hookshot']],
["Spiral Cave", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Spiral Cave", True, ['Progressive Glove', 'Lamp', 'Magic Mirror']],
["Spiral Cave", True, ['Ocarina', 'Magic Mirror']],
["Paradox Cave Lower - Far Left", False, []],
["Paradox Cave Lower - Far Left", False, [], ['Pegasus Boots', 'Progressive Glove', 'Ocarina']],
["Paradox Cave Lower - Far Left", False, [], ['Pegasus Boots', 'Magic Mirror', 'Hookshot']],
["Paradox Cave Lower - Far Left", True, ['Pegasus Boots']],
["Paradox Cave Lower - Far Left", True, ['Ocarina', 'Hookshot']],
["Paradox Cave Lower - Far Left", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Paradox Cave Lower - Far Left", True, ['Progressive Glove', 'Lamp', 'Magic Mirror']],
["Paradox Cave Lower - Far Left", True, ['Ocarina', 'Magic Mirror']],
["Paradox Cave Lower - Left", False, []],
["Paradox Cave Lower - Left", False, [], ['Pegasus Boots', 'Progressive Glove', 'Ocarina']],
["Paradox Cave Lower - Left", False, [], ['Pegasus Boots', 'Magic Mirror', 'Hookshot']],
["Paradox Cave Lower - Left", True, ['Pegasus Boots']],
["Paradox Cave Lower - Left", True, ['Ocarina', 'Hookshot']],
["Paradox Cave Lower - Left", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Paradox Cave Lower - Left", True, ['Progressive Glove', 'Lamp', 'Magic Mirror']],
["Paradox Cave Lower - Left", True, ['Ocarina', 'Magic Mirror']],
["Paradox Cave Lower - Middle", False, []],
["Paradox Cave Lower - Middle", False, [], ['Pegasus Boots', 'Progressive Glove', 'Ocarina']],
["Paradox Cave Lower - Middle", False, [], ['Pegasus Boots', 'Magic Mirror', 'Hookshot']],
["Paradox Cave Lower - Middle", True, ['Pegasus Boots']],
["Paradox Cave Lower - Middle", True, ['Ocarina', 'Hookshot']],
["Paradox Cave Lower - Middle", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Paradox Cave Lower - Middle", True, ['Progressive Glove', 'Lamp', 'Magic Mirror']],
["Paradox Cave Lower - Middle", True, ['Ocarina', 'Magic Mirror']],
["Paradox Cave Lower - Right", False, []],
["Paradox Cave Lower - Right", False, [], ['Pegasus Boots', 'Progressive Glove', 'Ocarina']],
["Paradox Cave Lower - Right", False, [], ['Pegasus Boots', 'Magic Mirror', 'Hookshot']],
["Paradox Cave Lower - Right", True, ['Pegasus Boots']],
["Paradox Cave Lower - Right", True, ['Ocarina', 'Hookshot']],
["Paradox Cave Lower - Right", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Paradox Cave Lower - Right", True, ['Progressive Glove', 'Lamp', 'Magic Mirror']],
["Paradox Cave Lower - Right", True, ['Ocarina', 'Magic Mirror']],
["Paradox Cave Lower - Far Right", False, []],
["Paradox Cave Lower - Far Right", False, [], ['Pegasus Boots', 'Progressive Glove', 'Ocarina']],
["Paradox Cave Lower - Far Right", False, [], ['Pegasus Boots', 'Magic Mirror', 'Hookshot']],
["Paradox Cave Lower - Far Right", True, ['Pegasus Boots']],
["Paradox Cave Lower - Far Right", True, ['Ocarina', 'Hookshot']],
["Paradox Cave Lower - Far Right", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Paradox Cave Lower - Far Right", True, ['Progressive Glove', 'Lamp', 'Magic Mirror']],
["Paradox Cave Lower - Far Right", True, ['Ocarina', 'Magic Mirror']],
["Paradox Cave Upper - Left", False, []],
["Paradox Cave Upper - Left", False, [], ['Pegasus Boots', 'Progressive Glove', 'Ocarina']],
["Paradox Cave Upper - Left", False, [], ['Pegasus Boots', 'Magic Mirror', 'Hookshot']],
["Paradox Cave Upper - Left", True, ['Pegasus Boots']],
["Paradox Cave Upper - Left", True, ['Ocarina', 'Hookshot']],
["Paradox Cave Upper - Left", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Paradox Cave Upper - Left", True, ['Progressive Glove', 'Lamp', 'Magic Mirror']],
["Paradox Cave Upper - Left", True, ['Ocarina', 'Magic Mirror']],
["Paradox Cave Upper - Right", False, []],
["Paradox Cave Upper - Right", False, [], ['Pegasus Boots', 'Progressive Glove', 'Ocarina']],
["Paradox Cave Upper - Right", False, [], ['Pegasus Boots', 'Magic Mirror', 'Hookshot']],
["Paradox Cave Upper - Right", True, ['Pegasus Boots']],
["Paradox Cave Upper - Right", True, ['Ocarina', 'Hookshot']],
["Paradox Cave Upper - Right", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Paradox Cave Upper - Right", True, ['Progressive Glove', 'Lamp', 'Magic Mirror']],
["Paradox Cave Upper - Right", True, ['Ocarina', 'Magic Mirror']],
])
def testWestDarkWorldDeathMountain(self):
self.run_location_tests([
["Spike Cave", False, []],
["Spike Cave", False, [], ['Progressive Glove']],
["Spike Cave", False, [], ['Moon Pearl']],
["Spike Cave", False, [], ['Hammer']],
["Spike Cave", False, [], ['Cape', 'Cane of Byrna']],
["Spike Cave", True, ['Bottle', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Lamp', 'Cape']],
["Spike Cave", True, ['Bottle', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Ocarina', 'Cape']],
["Spike Cave", True, ['Bottle', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Lamp', 'Cane of Byrna']],
["Spike Cave", True, ['Bottle', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Ocarina', 'Cane of Byrna']],
["Spike Cave", True, ['Magic Upgrade (1/2)', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Lamp', 'Cape']],
["Spike Cave", True, ['Magic Upgrade (1/2)', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Ocarina', 'Cape']],
["Spike Cave", True, ['Magic Upgrade (1/2)', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Lamp', 'Cane of Byrna']],
["Spike Cave", True, ['Magic Upgrade (1/2)', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Ocarina', 'Cane of Byrna']],
["Spike Cave", True, ['Magic Upgrade (1/4)', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Lamp', 'Cape']],
["Spike Cave", True, ['Magic Upgrade (1/4)', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Ocarina', 'Cape']],
["Spike Cave", True, ['Magic Upgrade (1/4)', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Lamp', 'Cane of Byrna']],
["Spike Cave", True, ['Magic Upgrade (1/4)', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Ocarina', 'Cane of Byrna']],
])
def testEastDarkWorldDeathMountain(self):
self.run_location_tests([
["Superbunny Cave - Top", False, []],
["Superbunny Cave - Top", True, ['Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Superbunny Cave - Top", True, ['Hammer', 'Pegasus Boots']],
["Superbunny Cave - Top", True, ['Moon Pearl', 'Pegasus Boots']],
["Superbunny Cave - Top", True, ['Progressive Glove', 'Progressive Glove', 'Hookshot', 'Ocarina']],
["Superbunny Cave - Top", True, ['Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Hammer', 'Ocarina']],
["Superbunny Cave - Top", True, ['Progressive Glove', 'Progressive Glove', 'Hookshot', 'Lamp']],
["Superbunny Cave - Top", True, ['Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Hammer', 'Lamp']],
["Superbunny Cave - Bottom", False, []],
["Superbunny Cave - Bottom", True, ['Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Superbunny Cave - Bottom", True, ['Hammer', 'Pegasus Boots']],
["Superbunny Cave - Bottom", True, ['Moon Pearl', 'Pegasus Boots']],
["Superbunny Cave - Bottom", True, ['Progressive Glove', 'Progressive Glove', 'Hookshot', 'Ocarina']],
["Superbunny Cave - Bottom", True, ['Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Hammer', 'Ocarina']],
["Superbunny Cave - Bottom", True, ['Progressive Glove', 'Progressive Glove', 'Hookshot', 'Lamp']],
["Superbunny Cave - Bottom", True, ['Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Hammer', 'Lamp']],
["Hookshot Cave - Bottom Right", False, []],
["Hookshot Cave - Bottom Right", False, [], ['Progressive Glove', 'Pegasus Boots']],
["Hookshot Cave - Bottom Right", False, [], ['Moon Pearl']],
["Hookshot Cave - Bottom Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Hookshot Cave - Bottom Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Ocarina']],
["Hookshot Cave - Bottom Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Hammer', 'Ocarina', 'Pegasus Boots']],
["Hookshot Cave - Bottom Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Lamp']],
["Hookshot Cave - Bottom Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Hammer', 'Lamp', 'Pegasus Boots']],
["Hookshot Cave - Bottom Left", False, []],
["Hookshot Cave - Bottom Left", False, [], ['Progressive Glove', 'Pegasus Boots']],
["Hookshot Cave - Bottom Left", False, [], ['Moon Pearl']],
["Hookshot Cave - Bottom Left", False, [], ['Hookshot']],
["Hookshot Cave - Bottom Left", True, ['Moon Pearl', 'Pegasus Boots', 'Hookshot']],
["Hookshot Cave - Bottom Left", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Ocarina']],
["Hookshot Cave - Bottom Left", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Lamp']],
["Hookshot Cave - Top Left", False, []],
["Hookshot Cave - Top Left", False, [], ['Progressive Glove', 'Pegasus Boots']],
["Hookshot Cave - Top Left", False, [], ['Moon Pearl']],
["Hookshot Cave - Top Left", False, [], ['Hookshot']],
["Hookshot Cave - Top Left", True, ['Moon Pearl', 'Pegasus Boots', 'Hookshot']],
["Hookshot Cave - Top Left", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Ocarina']],
["Hookshot Cave - Top Left", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Lamp']],
["Hookshot Cave - Top Right", False, []],
["Hookshot Cave - Top Right", False, [], ['Progressive Glove', 'Pegasus Boots']],
["Hookshot Cave - Top Right", False, [], ['Moon Pearl']],
["Hookshot Cave - Top Right", False, [], ['Hookshot']],
["Hookshot Cave - Top Right", True, ['Moon Pearl', 'Pegasus Boots', 'Hookshot']],
["Hookshot Cave - Top Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Ocarina']],
["Hookshot Cave - Top Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Lamp']],
])

132
test/owg/TestDungeons.py Normal file
View File

@@ -0,0 +1,132 @@
from test.owg.TestVanillaOWG import TestVanillaOWG
class TestDungeons(TestVanillaOWG):
def testFirstDungeonChests(self):
self.run_location_tests([
["Hyrule Castle - Map Chest", True, []],
["Sanctuary", True, []],
["Sewers - Secret Room - Left", False, []],
["Sewers - Secret Room - Left", True, ['Progressive Glove']],
["Sewers - Secret Room - Left", True, ['Lamp', 'Small Key (Escape)']],
["Eastern Palace - Compass Chest", True, []],
["Desert Palace - Map Chest", False, []],
["Desert Palace - Map Chest", True, ['Pegasus Boots']],
["Desert Palace - Map Chest", True, ['Book of Mudora']],
["Desert Palace - Map Chest", True, ['Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror']],
["Desert Palace - Boss", False, []],
["Desert Palace - Boss", False, [], ['Small Key (Desert Palace)']],
["Desert Palace - Boss", False, [], ['Big Key (Desert Palace)']],
["Desert Palace - Boss", False, [], ['Lamp', 'Fire Rod']],
["Desert Palace - Boss", True, ['Progressive Sword', 'Small Key (Desert Palace)', 'Pegasus Boots', 'Lamp', 'Big Key (Desert Palace)']],
["Desert Palace - Boss", True, ['Small Key (Desert Palace)', 'Pegasus Boots', 'Fire Rod', 'Big Key (Desert Palace)']],
["Tower of Hera - Basement Cage", False, []],
["Tower of Hera - Basement Cage", False, [], ['Pegasus Boots', "Ocarina", "Progressive Glove"]],
["Tower of Hera - Basement Cage", False, [], ['Pegasus Boots', "Ocarina", "Lamp"]],
["Tower of Hera - Basement Cage", False, [], ['Pegasus Boots', "Magic Mirror", "Hammer"]],
["Tower of Hera - Basement Cage", False, [], ['Pegasus Boots', "Magic Mirror", "Hookshot"]],
["Tower of Hera - Basement Cage", True, ['Pegasus Boots']],
["Tower of Hera - Basement Cage", True, ["Ocarina", "Magic Mirror"]],
["Tower of Hera - Basement Cage", True, ["Progressive Glove", "Lamp", "Magic Mirror"]],
["Tower of Hera - Basement Cage", True, ["Ocarina", "Hookshot", "Hammer"]],
["Tower of Hera - Basement Cage", True, ["Progressive Glove", "Lamp", "Magic Mirror"]],
["Castle Tower - Room 03", False, []],
["Castle Tower - Room 03", False, ['Progressive Sword'], ['Progressive Sword', 'Cape', 'Beat Agahnim 1']],
["Castle Tower - Room 03", False, [], ['Progressive Sword', 'Hammer', 'Progressive Bow', 'Fire Rod', 'Ice Rod', 'Cane of Somaria', 'Cane of Byrna']],
["Castle Tower - Room 03", True, ['Progressive Sword', 'Progressive Sword']],
["Castle Tower - Room 03", True, ['Cape', 'Progressive Bow']],
["Castle Tower - Room 03", True, ['Beat Agahnim 1', 'Fire Rod']],
["Palace of Darkness - Shooter Room", False, []],
["Palace of Darkness - Shooter Room", False, [], ['Moon Pearl']],
["Palace of Darkness - Shooter Room", True, ['Moon Pearl', 'Pegasus Boots']],
["Palace of Darkness - Shooter Room", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Palace of Darkness - Shooter Room", True, ['Moon Pearl', 'Hammer', 'Progressive Glove']],
#todo: Qirn jump in logic?
#["Palace of Darkness - Shooter Room", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Palace of Darkness - Shooter Room", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Flippers']],
["Swamp Palace - Entrance", False, []],
["Swamp Palace - Entrance", False, [], ['Magic Mirror']],
["Swamp Palace - Entrance", False, [], ['Moon Pearl']],
["Swamp Palace - Entrance", False, [], ['Flippers']],
["Swamp Palace - Entrance", True, ['Magic Mirror', 'Moon Pearl', 'Flippers', 'Pegasus Boots']],
["Swamp Palace - Entrance", True, ['Magic Mirror', 'Moon Pearl', 'Flippers', 'Ocarina']],
["Swamp Palace - Entrance", True, ['Magic Mirror', 'Moon Pearl', 'Flippers', 'Hammer', 'Progressive Glove']],
["Swamp Palace - Entrance", True, ['Magic Mirror', 'Moon Pearl', 'Flippers', 'Progressive Glove', 'Progressive Glove']],
["Skull Woods - Compass Chest", False, []],
["Skull Woods - Compass Chest", True, ['Magic Mirror', 'Pegasus Boots']],
["Skull Woods - Compass Chest", True, ['Moon Pearl', 'Pegasus Boots']],
["Skull Woods - Big Chest", False, []],
["Skull Woods - Big Chest", False, [], ['Big Key (Skull Woods)']],
#todo: Bomb Jump in logic?
#["Skull Woods - Big Chest", True, ['Magic Mirror', 'Pegasus Boots', 'Big Key (Skull Woods)']],
["Skull Woods - Big Chest", True, ['Moon Pearl', 'Pegasus Boots', 'Big Key (Skull Woods)']],
["Skull Woods - Big Key Chest", False, []],
["Skull Woods - Big Key Chest", True, ['Magic Mirror', 'Pegasus Boots']],
["Skull Woods - Big Key Chest", True, ['Moon Pearl', 'Pegasus Boots']],
["Skull Woods - Bridge Room", False, []],
["Skull Woods - Bridge Room", False, [], ['Moon Pearl']],
["Skull Woods - Bridge Room", False, [], ['Fire Rod']],
["Skull Woods - Bridge Room", True, ['Moon Pearl', 'Pegasus Boots', 'Fire Rod']],
["Thieves' Town - Map Chest", False, []],
["Thieves' Town - Map Chest", False, [], ['Moon Pearl']],
["Thieves' Town - Map Chest", True, ['Moon Pearl', 'Pegasus Boots']],
["Ice Palace - Compass Chest", False, []],
["Ice Palace - Compass Chest", False, [], ['Fire Rod', 'Bombos']],
["Ice Palace - Compass Chest", False, [], ['Fire Rod', 'Progressive Sword']],
["Ice Palace - Compass Chest", False, ['Progressive Glove'], ['Progressive Glove']],
#["Ice Palace - Compass Chest", True, ['Moon Pearl', 'Pegasus Boots', 'Flippers', 'Fire Rod']],
#["Ice Palace - Compass Chest", True, ['Moon Pearl', 'Pegasus Boots', 'Flippers', 'Bombos', 'Progressive Sword']],
["Ice Palace - Compass Chest", True, ['Progressive Glove', 'Progressive Glove', 'Fire Rod']],
["Ice Palace - Compass Chest", True, ['Progressive Glove', 'Progressive Glove', 'Bombos', 'Progressive Sword']],
["Misery Mire - Bridge Chest", False, []],
["Misery Mire - Bridge Chest", False, [], ['Moon Pearl']],
["Misery Mire - Bridge Chest", False, [], ['Ether']],
["Misery Mire - Bridge Chest", False, [], ['Progressive Sword']],
["Misery Mire - Bridge Chest", True, ['Moon Pearl', 'Pegasus Boots', 'Ether', 'Progressive Sword']],
["Turtle Rock - Compass Chest", False, []],
["Turtle Rock - Compass Chest", False, [], ['Cane of Somaria']],
#todo: does clip require sword?
#["Turtle Rock - Compass Chest", True, ['Moon Pearl', 'Pegasus Boots', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Compass Chest", True, ['Moon Pearl', 'Pegasus Boots', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Progressive Sword']],
["Turtle Rock - Compass Chest", True, ['Moon Pearl', 'Pegasus Boots', 'Cane of Somaria', 'Progressive Sword', 'Quake', 'Hammer']],
["Turtle Rock - Compass Chest", True, ['Pegasus Boots', 'Magic Mirror', 'Hammer', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Chain Chomps", False, []],
#todo: does clip require sword?
#["Turtle Rock - Chain Chomps", True, ['Moon Pearl', 'Pegasus Boots']],
["Turtle Rock - Chain Chomps", True, ['Moon Pearl', 'Pegasus Boots', 'Progressive Sword']],
["Turtle Rock - Chain Chomps", True, ['Pegasus Boots', 'Magic Mirror', 'Hammer']],
["Turtle Rock - Chain Chomps", True, ['Pegasus Boots', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove']],
["Turtle Rock - Crystaroller Room", False, []],
["Turtle Rock - Crystaroller Room", False, [], ['Big Key (Turtle Rock)']],
#todo: does clip require sword?
#["Turtle Rock - Crystaroller Room", True, ['Moon Pearl', 'Pegasus Boots', 'Big Key (Turtle Rock)']],
["Turtle Rock - Crystaroller Room", True, ['Moon Pearl', 'Pegasus Boots', 'Big Key (Turtle Rock)', 'Progressive Sword']],
["Turtle Rock - Crystaroller Room", True, ['Moon Pearl', 'Pegasus Boots', 'Big Key (Turtle Rock)', 'Hookshot']],
["Turtle Rock - Crystaroller Room", True, ['Pegasus Boots', 'Magic Mirror', 'Hammer', 'Big Key (Turtle Rock)']],
["Ganons Tower - Hope Room - Left", False, []],
["Ganons Tower - Hope Room - Left", False, ['Moon Pearl', 'Crystal 1']],
["Ganons Tower - Hope Room - Left", False, ['Pegasus Boots', 'Crystal 1']],
["Ganons Tower - Hope Room - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Ganons Tower - Hope Room - Left", True, ['Pegasus Boots', 'Hammer', 'Crystal 1', 'Crystal 2', 'Crystal 3', 'Crystal 4', 'Crystal 5', 'Crystal 6', 'Crystal 7']],
])

194
test/owg/TestLightWorld.py Normal file
View File

@@ -0,0 +1,194 @@
from test.owg.TestVanillaOWG import TestVanillaOWG
class TestLightWorld(TestVanillaOWG):
def testLightWorld(self):
self.run_location_tests([
["Master Sword Pedestal", False, []],
["Master Sword Pedestal", False, [], ['Green Pendant']],
["Master Sword Pedestal", False, [], ['Red Pendant']],
["Master Sword Pedestal", False, [], ['Blue Pendant']],
["Master Sword Pedestal", True, ['Green Pendant', 'Red Pendant', 'Blue Pendant']],
["Link's Uncle", True, []],
["Secret Passage", True, []],
["King's Tomb", False, []],
["King's Tomb", False, [], ['Pegasus Boots']],
["King's Tomb", True, ['Pegasus Boots']],
["Floodgate Chest", True, []],
["Link's House", True, []],
["Kakariko Tavern", True, []],
["Chicken House", True, []],
["Aginah's Cave", True, []],
["Sahasrahla's Hut - Left", True, []],
["Sahasrahla's Hut - Middle", True, []],
["Sahasrahla's Hut - Right", True, []],
["Kakariko Well - Top", True, []],
["Kakariko Well - Left", True, []],
["Kakariko Well - Middle", True, []],
["Kakariko Well - Right", True, []],
["Kakariko Well - Bottom", True, []],
["Blind's Hideout - Top", True, []],
["Blind's Hideout - Left", True, []],
["Blind's Hideout - Right", True, []],
["Blind's Hideout - Far Left", True, []],
["Blind's Hideout - Far Right", True, []],
["Bonk Rock Cave", False, []],
["Bonk Rock Cave", False, [], ['Pegasus Boots']],
["Bonk Rock Cave", True, ['Pegasus Boots']],
["Mini Moldorm Cave - Far Left", True, []],
["Mini Moldorm Cave - Left", True, []],
["Mini Moldorm Cave - Right", True, []],
["Mini Moldorm Cave - Far Right", True, []],
["Ice Rod Cave", True, []],
["Bottle Merchant", True, []],
["Sahasrahla", False, []],
["Sahasrahla", False, [], ['Green Pendant']],
["Sahasrahla", True, ['Green Pendant']],
["Magic Bat", False, []],
["Magic Bat", False, [], ['Magic Powder']],
["Magic Bat", False, [], ['Pegasus Boots', 'Hammer', 'Magic Mirror']],
["Magic Bat", False, [], ['Pegasus Boots', 'Hammer', 'Moon Pearl']],
["Magic Bat", False, ['Progressive Glove'], ['Pegasus Boots', 'Hammer', 'Progressive Glove']],
["Magic Bat", True, ['Magic Powder', 'Pegasus Boots']],
["Magic Bat", True, ['Magic Powder', 'Hammer']],
["Magic Bat", True, ['Magic Powder', 'Progressive Glove', 'Progressive Glove', 'Moon Pearl', 'Magic Mirror']],
["Sick Kid", False, []],
["Sick Kid", False, [], ['AnyBottle']],
["Sick Kid", True, ['Bottle (Bee)']],
["Sick Kid", True, ['Bottle (Fairy)']],
["Sick Kid", True, ['Bottle (Red Potion)']],
["Sick Kid", True, ['Bottle (Green Potion)']],
["Sick Kid", True, ['Bottle (Blue Potion)']],
["Sick Kid", True, ['Bottle']],
["Sick Kid", True, ['Bottle (Good Bee)']],
["Hobo", True, []],
["Bombos Tablet", False, []],
["Bombos Tablet", False, ['Progressive Sword'], ['Progressive Sword']],
["Bombos Tablet", False, [], ['Book of Mudora']],
["Bombos Tablet", True, ['Pegasus Boots', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword']],
["King Zora", True, []],
["Lost Woods Hideout", True, []],
["Lumberjack Tree", False, []],
["Lumberjack Tree", False, [], ['Pegasus Boots']],
["Lumberjack Tree", False, [], ['Beat Agahnim 1']],
["Lumberjack Tree", True, ['Pegasus Boots', 'Beat Agahnim 1']],
["Cave 45", False, []],
["Cave 45", False, [], ['Pegasus Boots', 'Magic Mirror']],
["Cave 45", False, [], ['Pegasus Boots', 'Moon Pearl', 'Ocarina', 'Lamp']],
["Cave 45", False, [], ['Pegasus Boots', 'Moon Pearl', 'Ocarina', 'Progressive Glove']],
["Cave 45", True, ['Pegasus Boots']],
["Cave 45", True, ['Ocarina', 'Magic Mirror']],
["Cave 45", True, ['Progressive Glove', 'Lamp', 'Magic Mirror']],
["Cave 45", True, ['Moon Pearl', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove']],
["Cave 45", True, ['Moon Pearl', 'Magic Mirror', 'Progressive Glove', 'Hammer']],
["Cave 45", True, ['Moon Pearl', 'Magic Mirror', 'Beat Agahnim 1', 'Hammer']],
["Cave 45", True, ['Moon Pearl', 'Magic Mirror', 'Beat Agahnim 1', 'Progressive Glove', 'Hookshot']],
["Cave 45", True, ['Moon Pearl', 'Magic Mirror', 'Beat Agahnim 1', 'Flippers', 'Hookshot']],
["Graveyard Cave", False, []],
["Graveyard Cave", False, [], ['Pegasus Boots', 'Magic Mirror']],
["Graveyard Cave", False, [], ['Pegasus Boots', 'Moon Pearl']],
["Graveyard Cave", True, ['Pegasus Boots']],
["Graveyard Cave", True, ['Moon Pearl', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove']],
["Graveyard Cave", True, ['Moon Pearl', 'Magic Mirror', 'Progressive Glove', 'Hammer']],
["Graveyard Cave", True, ['Moon Pearl', 'Magic Mirror', 'Beat Agahnim 1', 'Hammer', 'Hookshot']],
["Graveyard Cave", True, ['Moon Pearl', 'Magic Mirror', 'Beat Agahnim 1', 'Progressive Glove', 'Hookshot']],
["Graveyard Cave", True, ['Moon Pearl', 'Magic Mirror', 'Beat Agahnim 1', 'Flippers', 'Hookshot']],
["Checkerboard Cave", False, []],
["Checkerboard Cave", False, [], ['Progressive Glove']],
["Checkerboard Cave", False, [], ['Pegasus Boots', 'Ocarina']],
["Checkerboard Cave", False, [], ['Pegasus Boots', 'Magic Mirror']],
["Checkerboard Cave", True, ['Pegasus Boots', 'Progressive Glove']],
["Checkerboard Cave", True, ['Ocarina', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove']],
["Mini Moldorm Cave - Generous Guy", True, []],
["Library", False, []],
["Library", False, [], ['Pegasus Boots']],
["Library", True, ['Pegasus Boots']],
["Mushroom", True, []],
["Potion Shop", False, []],
["Potion Shop", False, [], ['Mushroom']],
["Potion Shop", True, ['Mushroom']],
["Maze Race", True, []],
["Desert Ledge", False, []],
["Desert Ledge", False, [], ['Pegasus Boots', 'Book of Mudora', 'Ocarina']],
["Desert Ledge", False, [], ['Pegasus Boots', 'Book of Mudora', 'Magic Mirror']],
["Desert Ledge", False, ['Progressive Glove'], ['Pegasus Boots', 'Book of Mudora', 'Progressive Glove']],
["Desert Ledge", True, ['Pegasus Boots']],
["Desert Ledge", True, ['Book of Mudora']],
["Desert Ledge", True, ['Ocarina', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove']],
["Lake Hylia Island", False, []],
["Lake Hylia Island", False, [], ['Pegasus Boots', 'Magic Mirror']],
["Lake Hylia Island", False, [], ['Pegasus Boots', 'Moon Pearl']],
["Lake Hylia Island", False, [], ['Pegasus Boots', 'Flippers']],
["Lake Hylia Island", True, ['Pegasus Boots']],
["Lake Hylia Island", True, ['Flippers', 'Moon Pearl', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove']],
["Lake Hylia Island", True, ['Flippers', 'Moon Pearl', 'Magic Mirror', 'Progressive Glove', 'Hammer']],
["Lake Hylia Island", True, ['Flippers', 'Moon Pearl', 'Magic Mirror', 'Beat Agahnim 1']],
["Sunken Treasure", True, []],
["Zora's Ledge", False, []],
["Zora's Ledge", False, [], ['Pegasus Boots', 'Flippers']],
["Zora's Ledge", True, ['Pegasus Boots']],
["Zora's Ledge", True, ['Flippers']],
["Flute Spot", False, []],
["Flute Spot", False, [], ['Shovel']],
["Flute Spot", True, ['Shovel']],
["Waterfall Fairy - Left", False, []],
["Waterfall Fairy - Left", True, ['Flippers']],
["Waterfall Fairy - Left", True, ['Moon Pearl']],
["Waterfall Fairy - Left", True, ['Pegasus Boots']],
["Waterfall Fairy - Right", False, []],
["Waterfall Fairy - Right", True, ['Flippers']],
["Waterfall Fairy - Right", True, ['Moon Pearl']],
["Waterfall Fairy - Right", True, ['Pegasus Boots']]
])

View File

@@ -0,0 +1,29 @@
from BaseClasses import World
from Dungeons import create_dungeons, get_dungeon_item_pool
from EntranceShuffle import link_entrances
from InvertedRegions import mark_dark_world_regions
from ItemList import difficulties, generate_itempool
from Items import ItemFactory
from Regions import create_regions
from Rules import set_rules
from test.TestBase import TestBase
class TestVanillaOWG(TestBase):
def setUp(self):
self.world = World(1, 'vanilla', 'owglitches', 'open', 'random', 'normal', 'normal', 'none', 'on', 'ganon', 'balanced', True, 'items',
True, False, False, False, False, False, False, None, 'none', False)
self.world.difficulty_requirements = difficulties['normal']
create_regions(self.world, 1)
create_dungeons(self.world, 1)
link_entrances(self.world, 1)
generate_itempool(self.world, 1)
self.world.required_medallions[1] = ['Ether', 'Quake']
self.world.itempool.extend(get_dungeon_item_pool(self.world))
self.world.itempool.extend(ItemFactory(['Green Pendant', 'Red Pendant', 'Blue Pendant', 'Beat Agahnim 1', 'Beat Agahnim 2', 'Crystal 1', 'Crystal 2', 'Crystal 3', 'Crystal 4', 'Crystal 5', 'Crystal 6', 'Crystal 7'], 1))
self.world.get_location('Agahnim 1', 1).item = None
self.world.get_location('Agahnim 2', 1).item = None
self.world.precollected_items.clear()
self.world.itempool.append(ItemFactory('Pegasus Boots', 1))
mark_dark_world_regions(self.world)
set_rules(self.world, 1)

0
test/owg/__init__.py Normal file
View File

View File

@@ -0,0 +1,166 @@
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, [], ['Ocarina']],
["Mire Shed - Left", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove']],
["Mire Shed - Right", False, []],
["Mire Shed - Right", False, [], ['Progressive Glove']],
["Mire Shed - Right", False, [], ['Moon Pearl']],
["Mire Shed - Right", False, [], ['Ocarina']],
["Mire Shed - Right", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove']],
])

View File

@@ -0,0 +1,230 @@
from test.vanilla.TestVanilla import TestVanilla
class TestDeathMountain(TestVanilla):
def testWestDeathMountain(self):
self.run_location_tests([
["Ether Tablet", False, []],
["Ether Tablet", False, [], ['Progressive Glove', 'Ocarina']],
["Ether Tablet", False, [], ['Lamp', 'Ocarina']],
["Ether Tablet", False, [], ['Magic Mirror', 'Hookshot']],
["Ether Tablet", False, [], ['Magic Mirror', 'Hammer']],
["Ether Tablet", False, ['Progressive Sword'], ['Progressive Sword']],
["Ether Tablet", False, [], ['Book of Mudora']],
["Ether Tablet", True, ['Ocarina', 'Magic Mirror', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword']],
["Ether Tablet", True, ['Progressive Glove', 'Lamp', 'Magic Mirror', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword']],
["Ether Tablet", True, ['Ocarina', 'Hammer', 'Hookshot', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword']],
["Ether Tablet", True, ['Progressive Glove', 'Lamp', 'Hammer', 'Hookshot', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword']],
["Old Man", False, []],
["Old Man", False, [], ['Progressive Glove', 'Ocarina']],
["Old Man", False, [], ['Lamp']],
["Old Man", True, ['Ocarina', 'Lamp']],
["Old Man", True, ['Progressive Glove', 'Lamp']],
["Spectacle Rock Cave", False, []],
["Spectacle Rock Cave", False, [], ['Progressive Glove', 'Ocarina']],
["Spectacle Rock Cave", False, [], ['Lamp', 'Ocarina']],
["Spectacle Rock Cave", True, ['Ocarina']],
["Spectacle Rock Cave", True, ['Progressive Glove', 'Lamp']],
["Spectacle Rock", False, []],
["Spectacle Rock", False, [], ['Progressive Glove', 'Ocarina']],
["Spectacle Rock", False, [], ['Lamp', 'Ocarina']],
["Spectacle Rock", False, [], ['Magic Mirror']],
["Spectacle Rock", True, ['Ocarina', 'Magic Mirror']],
["Spectacle Rock", True, ['Progressive Glove', 'Lamp', 'Magic Mirror']],
])
def testEastDeathMountain(self):
self.run_location_tests([
["Mimic Cave", False, []],
["Mimic Cave", False, [], ['Quake']],
["Mimic Cave", False, [], ['Progressive Sword']],
["Mimic Cave", False, ['Progressive Glove'], ['Progressive Glove']],
["Mimic Cave", False, [], ['Hammer']],
["Mimic Cave", False, [], ['Magic Mirror']],
["Mimic Cave", False, [], ['Moon Pearl']],
["Mimic Cave", False, [], ['Cane of Somaria']],
["Mimic Cave", False, ['Small Key (Turtle Rock)'], ['Small Key (Turtle Rock)']],
["Mimic Cave", True, ['Quake', 'Progressive Sword', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Hammer', 'Moon Pearl', 'Cane of Somaria', 'Magic Mirror', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Spiral Cave", False, []],
["Spiral Cave", False, [], ['Progressive Glove', 'Ocarina']],
["Spiral Cave", False, [], ['Magic Mirror', 'Hammer', 'Hookshot']],
["Spiral Cave", False, [], ['Magic Mirror', 'Hookshot']],
["Spiral Cave", False, [], ['Hammer', 'Hookshot']],
["Spiral Cave", False, ['Progressive Glove', 'Lamp', 'Magic Mirror']],
["Spiral Cave", False, ['Progressive Glove', 'Hookshot']],
["Spiral Cave", False, ['Ocarina', 'Magic Mirror']],
["Spiral Cave", False, ['Ocarina', 'Hammer']],
["Spiral Cave", True, ['Ocarina', 'Hookshot']],
["Spiral Cave", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Spiral Cave", True, ['Progressive Glove', 'Lamp', 'Magic Mirror', 'Hammer']],
["Spiral Cave", True, ['Ocarina', 'Magic Mirror', 'Hammer']],
["Paradox Cave Lower - Far Left", False, []],
["Paradox Cave Lower - Far Left", False, [], ['Progressive Glove', 'Ocarina']],
["Paradox Cave Lower - Far Left", False, [], ['Magic Mirror', 'Hammer', 'Hookshot']],
["Paradox Cave Lower - Far Left", False, [], ['Magic Mirror', 'Hookshot']],
["Paradox Cave Lower - Far Left", False, [], ['Hammer', 'Hookshot']],
["Paradox Cave Lower - Far Left", False, ['Progressive Glove', 'Lamp', 'Magic Mirror']],
["Paradox Cave Lower - Far Left", False, ['Progressive Glove', 'Hookshot']],
["Paradox Cave Lower - Far Left", False, ['Ocarina', 'Magic Mirror']],
["Paradox Cave Lower - Far Left", False, ['Ocarina', 'Hammer']],
["Paradox Cave Lower - Far Left", True, ['Ocarina', 'Hookshot']],
["Paradox Cave Lower - Far Left", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Paradox Cave Lower - Far Left", True, ['Progressive Glove', 'Lamp', 'Magic Mirror', 'Hammer']],
["Paradox Cave Lower - Far Left", True, ['Ocarina', 'Magic Mirror', 'Hammer']],
["Paradox Cave Lower - Left", False, []],
["Paradox Cave Lower - Left", False, [], ['Progressive Glove', 'Ocarina']],
["Paradox Cave Lower - Left", False, [], ['Magic Mirror', 'Hammer', 'Hookshot']],
["Paradox Cave Lower - Left", False, [], ['Magic Mirror', 'Hookshot']],
["Paradox Cave Lower - Left", False, [], ['Hammer', 'Hookshot']],
["Paradox Cave Lower - Left", False, ['Progressive Glove', 'Lamp', 'Magic Mirror']],
["Paradox Cave Lower - Left", False, ['Progressive Glove', 'Hookshot']],
["Paradox Cave Lower - Left", False, ['Ocarina', 'Magic Mirror']],
["Paradox Cave Lower - Left", False, ['Ocarina', 'Hammer']],
["Paradox Cave Lower - Left", True, ['Ocarina', 'Hookshot']],
["Paradox Cave Lower - Left", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Paradox Cave Lower - Left", True, ['Progressive Glove', 'Lamp', 'Magic Mirror', 'Hammer']],
["Paradox Cave Lower - Left", True, ['Ocarina', 'Magic Mirror', 'Hammer']],
["Paradox Cave Lower - Middle", False, []],
["Paradox Cave Lower - Middle", False, [], ['Progressive Glove', 'Ocarina']],
["Paradox Cave Lower - Middle", False, [], ['Magic Mirror', 'Hammer', 'Hookshot']],
["Paradox Cave Lower - Middle", False, [], ['Magic Mirror', 'Hookshot']],
["Paradox Cave Lower - Middle", False, [], ['Hammer', 'Hookshot']],
["Paradox Cave Lower - Middle", False, ['Progressive Glove', 'Lamp', 'Magic Mirror']],
["Paradox Cave Lower - Middle", False, ['Progressive Glove', 'Hookshot']],
["Paradox Cave Lower - Middle", False, ['Ocarina', 'Magic Mirror']],
["Paradox Cave Lower - Middle", False, ['Ocarina', 'Hammer']],
["Paradox Cave Lower - Middle", True, ['Ocarina', 'Hookshot']],
["Paradox Cave Lower - Middle", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Paradox Cave Lower - Middle", True, ['Progressive Glove', 'Lamp', 'Magic Mirror', 'Hammer']],
["Paradox Cave Lower - Middle", True, ['Ocarina', 'Magic Mirror', 'Hammer']],
["Paradox Cave Lower - Right", False, []],
["Paradox Cave Lower - Right", False, [], ['Progressive Glove', 'Ocarina']],
["Paradox Cave Lower - Right", False, [], ['Magic Mirror', 'Hammer', 'Hookshot']],
["Paradox Cave Lower - Right", False, [], ['Magic Mirror', 'Hookshot']],
["Paradox Cave Lower - Right", False, [], ['Hammer', 'Hookshot']],
["Paradox Cave Lower - Right", False, ['Progressive Glove', 'Lamp', 'Magic Mirror']],
["Paradox Cave Lower - Right", False, ['Progressive Glove', 'Hookshot']],
["Paradox Cave Lower - Right", False, ['Ocarina', 'Magic Mirror']],
["Paradox Cave Lower - Right", False, ['Ocarina', 'Hammer']],
["Paradox Cave Lower - Right", True, ['Ocarina', 'Hookshot']],
["Paradox Cave Lower - Right", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Paradox Cave Lower - Right", True, ['Progressive Glove', 'Lamp', 'Magic Mirror', 'Hammer']],
["Paradox Cave Lower - Right", True, ['Ocarina', 'Magic Mirror', 'Hammer']],
["Paradox Cave Lower - Far Right", False, []],
["Paradox Cave Lower - Far Right", False, [], ['Progressive Glove', 'Ocarina']],
["Paradox Cave Lower - Far Right", False, [], ['Magic Mirror', 'Hammer', 'Hookshot']],
["Paradox Cave Lower - Far Right", False, [], ['Magic Mirror', 'Hookshot']],
["Paradox Cave Lower - Far Right", False, [], ['Hammer', 'Hookshot']],
["Paradox Cave Lower - Far Right", False, ['Progressive Glove', 'Lamp', 'Magic Mirror']],
["Paradox Cave Lower - Far Right", False, ['Progressive Glove', 'Hookshot']],
["Paradox Cave Lower - Far Right", False, ['Ocarina', 'Magic Mirror']],
["Paradox Cave Lower - Far Right", False, ['Ocarina', 'Hammer']],
["Paradox Cave Lower - Far Right", True, ['Ocarina', 'Hookshot']],
["Paradox Cave Lower - Far Right", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Paradox Cave Lower - Far Right", True, ['Progressive Glove', 'Lamp', 'Magic Mirror', 'Hammer']],
["Paradox Cave Lower - Far Right", True, ['Ocarina', 'Magic Mirror', 'Hammer']],
["Paradox Cave Upper - Left", False, []],
["Paradox Cave Upper - Left", False, [], ['Progressive Glove', 'Ocarina']],
["Paradox Cave Upper - Left", False, [], ['Magic Mirror', 'Hammer', 'Hookshot']],
["Paradox Cave Upper - Left", False, [], ['Magic Mirror', 'Hookshot']],
["Paradox Cave Upper - Left", False, [], ['Hammer', 'Hookshot']],
["Paradox Cave Upper - Left", False, ['Progressive Glove', 'Lamp', 'Magic Mirror']],
["Paradox Cave Upper - Left", False, ['Progressive Glove', 'Hookshot']],
["Paradox Cave Upper - Left", False, ['Ocarina', 'Magic Mirror']],
["Paradox Cave Upper - Left", False, ['Ocarina', 'Hammer']],
["Paradox Cave Upper - Left", True, ['Ocarina', 'Hookshot']],
["Paradox Cave Upper - Left", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Paradox Cave Upper - Left", True, ['Progressive Glove', 'Lamp', 'Magic Mirror', 'Hammer']],
["Paradox Cave Upper - Left", True, ['Ocarina', 'Magic Mirror', 'Hammer']],
["Paradox Cave Upper - Right", False, []],
["Paradox Cave Upper - Right", False, [], ['Progressive Glove', 'Ocarina']],
["Paradox Cave Upper - Right", False, [], ['Magic Mirror', 'Hammer', 'Hookshot']],
["Paradox Cave Upper - Right", False, [], ['Magic Mirror', 'Hookshot']],
["Paradox Cave Upper - Right", False, [], ['Hammer', 'Hookshot']],
["Paradox Cave Upper - Right", False, ['Progressive Glove', 'Lamp', 'Magic Mirror']],
["Paradox Cave Upper - Right", False, ['Progressive Glove', 'Hookshot']],
["Paradox Cave Upper - Right", False, ['Ocarina', 'Magic Mirror']],
["Paradox Cave Upper - Right", False, ['Ocarina', 'Hammer']],
["Paradox Cave Upper - Right", True, ['Ocarina', 'Hookshot']],
["Paradox Cave Upper - Right", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Paradox Cave Upper - Right", True, ['Progressive Glove', 'Lamp', 'Magic Mirror', 'Hammer']],
["Paradox Cave Upper - Right", True, ['Ocarina', 'Magic Mirror', 'Hammer']],
])
def testWestDarkWorldDeathMountain(self):
self.run_location_tests([
["Spike Cave", False, []],
["Spike Cave", False, [], ['Progressive Glove']],
["Spike Cave", False, [], ['Moon Pearl']],
["Spike Cave", False, [], ['Hammer']],
["Spike Cave", False, [], ['Cape', 'Cane of Byrna']],
["Spike Cave", True, ['Bottle', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Lamp', 'Cape']],
["Spike Cave", True, ['Bottle', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Ocarina', 'Cape']],
["Spike Cave", True, ['Bottle', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Lamp', 'Cane of Byrna']],
["Spike Cave", True, ['Bottle', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Ocarina', 'Cane of Byrna']],
["Spike Cave", True, ['Magic Upgrade (1/2)', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Lamp', 'Cape']],
["Spike Cave", True, ['Magic Upgrade (1/2)', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Ocarina', 'Cape']],
["Spike Cave", True, ['Magic Upgrade (1/2)', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Lamp', 'Cane of Byrna']],
["Spike Cave", True, ['Magic Upgrade (1/2)', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Ocarina', 'Cane of Byrna']],
["Spike Cave", True, ['Magic Upgrade (1/4)', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Lamp', 'Cape']],
["Spike Cave", True, ['Magic Upgrade (1/4)', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Ocarina', 'Cape']],
["Spike Cave", True, ['Magic Upgrade (1/4)', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Lamp', 'Cane of Byrna']],
["Spike Cave", True, ['Magic Upgrade (1/4)', 'Moon Pearl', 'Hammer', 'Progressive Glove', 'Ocarina', 'Cane of Byrna']],
])
def testEastDarkWorldDeathMountain(self):
self.run_location_tests([
["Superbunny Cave - Top", False, []],
["Superbunny Cave - Top", False, [], ['Progressive Glove']],
["Superbunny Cave - Top", False, [], ['Moon Pearl']],
["Superbunny Cave - Top", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Ocarina']],
["Superbunny Cave - Top", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Hammer', 'Ocarina']],
["Superbunny Cave - Top", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Lamp']],
["Superbunny Cave - Top", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Hammer', 'Lamp']],
["Superbunny Cave - Bottom", False, []],
["Superbunny Cave - Bottom", False, [], ['Progressive Glove']],
["Superbunny Cave - Bottom", False, [], ['Moon Pearl']],
["Superbunny Cave - Bottom", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Ocarina']],
["Superbunny Cave - Bottom", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Hammer', 'Ocarina']],
["Superbunny Cave - Bottom", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Lamp']],
["Superbunny Cave - Bottom", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Hammer', 'Lamp']],
["Hookshot Cave - Bottom Right", False, []],
["Hookshot Cave - Bottom Right", False, [], ['Progressive Glove']],
["Hookshot Cave - Bottom Right", False, [], ['Moon Pearl']],
["Hookshot Cave - Bottom Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Ocarina']],
["Hookshot Cave - Bottom Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Hammer', 'Ocarina', 'Pegasus Boots']],
["Hookshot Cave - Bottom Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Lamp']],
["Hookshot Cave - Bottom Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Hammer', 'Lamp', 'Pegasus Boots']],
["Hookshot Cave - Bottom Left", False, []],
["Hookshot Cave - Bottom Left", False, [], ['Progressive Glove']],
["Hookshot Cave - Bottom Left", False, [], ['Moon Pearl']],
["Hookshot Cave - Bottom Left", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Ocarina']],
["Hookshot Cave - Bottom Left", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Lamp']],
["Hookshot Cave - Top Left", False, []],
["Hookshot Cave - Top Left", False, [], ['Progressive Glove']],
["Hookshot Cave - Top Left", False, [], ['Moon Pearl']],
["Hookshot Cave - Top Left", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Ocarina']],
["Hookshot Cave - Top Left", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Lamp']],
["Hookshot Cave - Top Right", False, []],
["Hookshot Cave - Top Right", False, [], ['Progressive Glove']],
["Hookshot Cave - Top Right", False, [], ['Moon Pearl']],
["Hookshot Cave - Top Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Ocarina']],
["Hookshot Cave - Top Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hookshot', 'Lamp']],
])

View File

@@ -0,0 +1,133 @@
from test.vanilla.TestVanilla import TestVanilla
class TestEntrances(TestVanilla):
def testDungeonEntrances(self):
self.run_entrance_tests([
["Hyrule Castle Entrance (South)", True, []],
["Eastern Palace", True, []],
["Desert Palace Entrance (South)", False, []],
["Desert Palace Entrance (South)", False, [], ["Book of Mudora", "Ocarina"]],
["Desert Palace Entrance (South)", False, [], ["Book of Mudora", "Magic Mirror"]],
["Desert Palace Entrance (South)", False, ["Progressive Glove"], ["Book of Mudora", "Progressive Glove"]],
["Desert Palace Entrance (South)", True, ["Book of Mudora"]],
["Desert Palace Entrance (South)", True, ["Ocarina", "Progressive Glove", "Progressive Glove", "Magic Mirror"]],
["Desert Palace Entrance (North)", False, []],
["Desert Palace Entrance (North)", False, [], ["Progressive Glove"]],
["Desert Palace Entrance (North)", False, [], ["Book of Mudora", "Ocarina"]],
["Desert Palace Entrance (North)", False, [], ["Book of Mudora", "Magic Mirror"]],
["Desert Palace Entrance (North)", True, ["Book of Mudora", "Progressive Glove"]],
["Desert Palace Entrance (North)", True, ["Ocarina", "Progressive Glove", "Progressive Glove", "Magic Mirror"]],
["Tower of Hera", False, []],
["Tower of Hera", False, [], ["Ocarina", "Progressive Glove"]],
["Tower of Hera", False, [], ["Ocarina", "Lamp"]],
["Tower of Hera", False, [], ["Magic Mirror", "Hammer"]],
["Tower of Hera", False, [], ["Magic Mirror", "Hookshot"]],
["Tower of Hera", True, ["Ocarina", "Magic Mirror"]],
["Tower of Hera", True, ["Progressive Glove", "Lamp", "Magic Mirror"]],
["Tower of Hera", True, ["Ocarina", "Hookshot", "Hammer"]],
["Tower of Hera", True, ["Progressive Glove", "Lamp", "Magic Mirror"]],
["Agahnims Tower", False, []],
["Agahnims Tower", False, ["Progressive Sword"], ["Cape", "Progressive Sword", "Beat Agahnim 1"]],
["Agahnims Tower", True, ["Cape"]],
["Agahnims Tower", True, ["Progressive Sword", "Progressive Sword"]],
["Agahnims Tower", True, ["Beat Agahnim 1"]],
["Palace of Darkness", False, []],
["Palace of Darkness", False, [], ["Moon Pearl"]],
["Palace of Darkness", False, [], ["Beat Agahnim 1", "Progressive Glove"]],
["Palace of Darkness", False, ["Progressive Glove"], ["Beat Agahnim 1", "Hammer", "Progressive Glove"]],
["Palace of Darkness", False, [], ["Beat Agahnim 1", "Hammer", "Flippers"]],
["Palace of Darkness", True, ["Beat Agahnim 1", "Moon Pearl"]],
["Palace of Darkness", True, ["Hammer", "Progressive Glove", "Moon Pearl"]],
["Palace of Darkness", True, ["Progressive Glove", "Progressive Glove", "Flippers", "Moon Pearl"]],
["Swamp Palace", False, []],
["Swamp Palace", False, [], ["Moon Pearl"]],
["Swamp Palace", False, [], ["Beat Agahnim 1", "Progressive Glove"]],
["Swamp Palace", False, ["Progressive Glove"], ["Beat Agahnim 1", "Hammer", "Progressive Glove"]],
["Swamp Palace", True, ["Beat Agahnim 1", "Moon Pearl", "Hammer"]],
["Swamp Palace", True, ["Beat Agahnim 1", "Moon Pearl", "Hookshot", "Flippers"]],
["Swamp Palace", True, ["Beat Agahnim 1", "Moon Pearl", "Hookshot", "Progressive Glove"]],
["Swamp Palace", True, ["Hammer", "Progressive Glove", "Moon Pearl"]],
["Swamp Palace", True, ["Progressive Glove", "Progressive Glove", "Moon Pearl"]],
["Thieves Town", False, []],
["Thieves Town", False, [], ["Moon Pearl"]],
["Thieves Town", False, [], ["Beat Agahnim 1", "Progressive Glove"]],
["Thieves Town", False, ["Progressive Glove"], ["Beat Agahnim 1", "Hammer", "Progressive Glove"]],
["Thieves Town", True, ["Beat Agahnim 1", "Moon Pearl", "Hookshot", "Flippers"]],
["Thieves Town", True, ["Beat Agahnim 1", "Moon Pearl", "Hookshot", "Hammer"]],
["Thieves Town", True, ["Beat Agahnim 1", "Moon Pearl", "Hookshot", "Progressive Glove"]],
["Thieves Town", True, ["Hammer", "Progressive Glove", "Moon Pearl"]],
["Thieves Town", True, ["Progressive Glove", "Progressive Glove", "Moon Pearl"]],
["Skull Woods First Section Door", False, []],
["Skull Woods First Section Door", False, [], ["Moon Pearl"]],
["Skull Woods First Section Door", False, [], ["Beat Agahnim 1", "Progressive Glove"]],
["Skull Woods First Section Door", False, ["Progressive Glove"], ["Beat Agahnim 1", "Hammer", "Progressive Glove"]],
["Skull Woods First Section Door", True, ["Beat Agahnim 1", "Moon Pearl", "Hookshot", "Flippers"]],
["Skull Woods First Section Door", True, ["Beat Agahnim 1", "Moon Pearl", "Hookshot", "Hammer"]],
["Skull Woods First Section Door", True, ["Beat Agahnim 1", "Moon Pearl", "Hookshot", "Progressive Glove"]],
["Skull Woods First Section Door", True, ["Hammer", "Progressive Glove", "Moon Pearl"]],
["Skull Woods First Section Door", True, ["Progressive Glove", "Progressive Glove", "Moon Pearl"]],
["Skull Woods Final Section", False, []],
["Skull Woods Final Section", False, [], ["Moon Pearl"]],
["Skull Woods Final Section", False, [], ["Fire Rod"]],
["Skull Woods Final Section", False, [], ["Beat Agahnim 1", "Progressive Glove"]],
["Skull Woods Final Section", False, ["Progressive Glove"], ["Beat Agahnim 1", "Hammer", "Progressive Glove"]],
["Skull Woods Final Section", True, ["Beat Agahnim 1", "Moon Pearl", "Hookshot", "Flippers", "Fire Rod"]],
["Skull Woods Final Section", True, ["Beat Agahnim 1", "Moon Pearl", "Hookshot", "Hammer", "Fire Rod"]],
["Skull Woods Final Section", True, ["Beat Agahnim 1", "Moon Pearl", "Hookshot", "Progressive Glove", "Fire Rod"]],
["Skull Woods Final Section", True, ["Hammer", "Progressive Glove", "Moon Pearl", "Fire Rod"]],
["Skull Woods Final Section", True, ["Progressive Glove", "Progressive Glove", "Moon Pearl", "Fire Rod"]],
["Ice Palace", False, []],
["Ice Palace", False, [], ["Flippers"]],
["Ice Palace", False, ["Progressive Glove"], ["Progressive Glove"]],
["Ice Palace", True, ["Progressive Glove", "Progressive Glove", "Flippers"]],
["Misery Mire", False, []],
["Misery Mire", False, [], ["Moon Pearl"]],
["Misery Mire", False, [], ["Ocarina"]],
["Misery Mire", False, [], ["Ether"]],
["Misery Mire", False, [], ["Progressive Sword"]],
["Misery Mire", False, ["Progressive Glove"], ["Progressive Glove"]],
["Misery Mire", True, ["Progressive Glove", "Progressive Glove", "Ocarina", "Moon Pearl", "Ether", "Progressive Sword"]],
["Turtle Rock", False, []],
["Turtle Rock", False, [], ["Moon Pearl"]],
["Turtle Rock", False, [], ["Hammer"]],
["Turtle Rock", False, ["Progressive Glove"], ["Progressive Glove"]],
["Turtle Rock", False, [], ["Quake"]],
["Turtle Rock", False, [], ["Progressive Sword"]],
["Turtle Rock", False, [], ["Lamp", "Ocarina"]],
["Turtle Rock", False, [], ["Hookshot", "Magic Mirror"]],
["Turtle Rock", True, ["Progressive Glove", "Progressive Glove", "Moon Pearl", "Hammer", "Quake", "Progressive Sword", "Lamp", "Hookshot"]],
["Turtle Rock", True, ["Progressive Glove", "Progressive Glove", "Moon Pearl", "Hammer", "Quake", "Progressive Sword", "Lamp", "Magic Mirror"]],
["Turtle Rock", True, ["Progressive Glove", "Progressive Glove", "Moon Pearl", "Hammer", "Quake", "Progressive Sword", "Ocarina", "Hookshot"]],
["Turtle Rock", True, ["Progressive Glove", "Progressive Glove", "Moon Pearl", "Hammer", "Quake", "Progressive Sword", "Ocarina", "Magic Mirror"]],
["Ganons Tower", False, []],
["Ganons Tower", False, ["Progressive Glove"], ["Progressive Glove"]],
["Ganons Tower", False, [], ["Lamp", "Ocarina"]],
["Ganons Tower", False, [], ["Hookshot", "Hammer"]],
["Ganons Tower", False, [], ["Hookshot", "Magic Mirror"]],
["Ganons Tower", False, [], ["Crystal 1"]],
["Ganons Tower", False, [], ["Crystal 2"]],
["Ganons Tower", False, [], ["Crystal 3"]],
["Ganons Tower", False, [], ["Crystal 4"]],
["Ganons Tower", False, [], ["Crystal 5"]],
["Ganons Tower", False, [], ["Crystal 6"]],
["Ganons Tower", False, [], ["Crystal 7"]],
["Ganons Tower", True, ["Lamp", "Magic Mirror", "Hammer", "Progressive Glove", "Progressive Glove", "Crystal 1", "Crystal 2", "Crystal 3", "Crystal 4", "Crystal 5", "Crystal 6", "Crystal 7"]],
["Ganons Tower", True, ["Lamp", "Hookshot", "Progressive Glove", "Progressive Glove", "Crystal 1", "Crystal 2", "Crystal 3", "Crystal 4", "Crystal 5", "Crystal 6", "Crystal 7"]],
["Ganons Tower", True, ["Ocarina", "Magic Mirror", "Hammer", "Progressive Glove", "Progressive Glove", "Crystal 1", "Crystal 2", "Crystal 3", "Crystal 4", "Crystal 5", "Crystal 6", "Crystal 7"]],
["Ganons Tower", True, ["Ocarina", "Hookshot", "Progressive Glove", "Progressive Glove", "Crystal 1", "Crystal 2", "Crystal 3", "Crystal 4", "Crystal 5", "Crystal 6", "Crystal 7"]],
])

View File

@@ -0,0 +1,197 @@
from test.vanilla.TestVanilla import TestVanilla
class TestLightWorld(TestVanilla):
def testLightWorld(self):
self.run_location_tests([
["Master Sword Pedestal", False, []],
["Master Sword Pedestal", False, [], ['Green Pendant']],
["Master Sword Pedestal", False, [], ['Red Pendant']],
["Master Sword Pedestal", False, [], ['Blue Pendant']],
["Master Sword Pedestal", True, ['Green Pendant', 'Red Pendant', 'Blue Pendant']],
["Link's Uncle", True, []],
["Secret Passage", True, []],
["King's Tomb", False, []],
["King's Tomb", False, [], ['Pegasus Boots']],
["King's Tomb", True, ['Pegasus Boots', 'Progressive Glove', 'Progressive Glove']],
["King's Tomb", True, ['Pegasus Boots', 'Progressive Glove', 'Hammer', 'Moon Pearl', 'Magic Mirror']],
["King's Tomb", True, ['Pegasus Boots', 'Beat Agahnim 1', 'Progressive Glove', 'Hookshot', 'Moon Pearl', 'Magic Mirror']],
["King's Tomb", True, ['Pegasus Boots', 'Beat Agahnim 1', 'Hammer', 'Hookshot', 'Moon Pearl', 'Magic Mirror']],
["King's Tomb", True, ['Pegasus Boots', 'Beat Agahnim 1', 'Flippers', 'Hookshot', 'Moon Pearl', 'Magic Mirror']],
["Floodgate Chest", True, []],
["Link's House", True, []],
["Kakariko Tavern", True, []],
["Chicken House", True, []],
["Aginah's Cave", True, []],
["Sahasrahla's Hut - Left", True, []],
["Sahasrahla's Hut - Middle", True, []],
["Sahasrahla's Hut - Right", True, []],
["Kakariko Well - Top", True, []],
["Kakariko Well - Left", True, []],
["Kakariko Well - Middle", True, []],
["Kakariko Well - Right", True, []],
["Kakariko Well - Bottom", True, []],
["Blind's Hideout - Top", True, []],
["Blind's Hideout - Left", True, []],
["Blind's Hideout - Right", True, []],
["Blind's Hideout - Far Left", True, []],
["Blind's Hideout - Far Right", True, []],
["Bonk Rock Cave", False, []],
["Bonk Rock Cave", False, [], ['Pegasus Boots']],
["Bonk Rock Cave", True, ['Pegasus Boots']],
["Mini Moldorm Cave - Far Left", True, []],
["Mini Moldorm Cave - Left", True, []],
["Mini Moldorm Cave - Right", True, []],
["Mini Moldorm Cave - Far Right", True, []],
["Ice Rod Cave", True, []],
["Bottle Merchant", True, []],
["Sahasrahla", False, []],
["Sahasrahla", False, [], ['Green Pendant']],
["Sahasrahla", True, ['Green Pendant']],
["Magic Bat", False, []],
["Magic Bat", False, [], ['Magic Powder']],
["Magic Bat", False, [], ['Hammer', 'Magic Mirror']],
["Magic Bat", False, [], ['Hammer', 'Moon Pearl']],
["Magic Bat", False, ['Progressive Glove'], ['Hammer', 'Progressive Glove']],
["Magic Bat", True, ['Magic Powder', 'Hammer']],
["Magic Bat", True, ['Magic Powder', 'Progressive Glove', 'Progressive Glove', 'Moon Pearl', 'Magic Mirror']],
["Sick Kid", False, []],
["Sick Kid", False, [], ['AnyBottle']],
["Sick Kid", True, ['Bottle (Bee)']],
["Sick Kid", True, ['Bottle (Fairy)']],
["Sick Kid", True, ['Bottle (Red Potion)']],
["Sick Kid", True, ['Bottle (Green Potion)']],
["Sick Kid", True, ['Bottle (Blue Potion)']],
["Sick Kid", True, ['Bottle']],
["Sick Kid", True, ['Bottle (Good Bee)']],
["Hobo", False, []],
["Hobo", False, [], ['Flippers']],
["Hobo", True, ['Flippers']],
["Bombos Tablet", False, []],
["Bombos Tablet", False, [], ['Magic Mirror']],
["Bombos Tablet", False, ['Progressive Sword'], ['Progressive Sword']],
["Bombos Tablet", False, [], ['Book of Mudora']],
["Bombos Tablet", False, [], ['Moon Pearl']],
["Bombos Tablet", True, ['Moon Pearl', 'Magic Mirror', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword', 'Progressive Glove', 'Progressive Glove']],
["Bombos Tablet", True, ['Moon Pearl', 'Magic Mirror', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword', 'Progressive Glove', 'Hammer']],
["Bombos Tablet", True, ['Moon Pearl', 'Magic Mirror', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword', 'Beat Agahnim 1', 'Hammer']],
["Bombos Tablet", True, ['Moon Pearl', 'Magic Mirror', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword', 'Beat Agahnim 1', 'Progressive Glove', 'Hookshot']],
["Bombos Tablet", True, ['Moon Pearl', 'Magic Mirror', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword', 'Beat Agahnim 1', 'Flippers', 'Hookshot']],
["King Zora", False, []],
["King Zora", False, [], ['Progressive Glove', 'Flippers']],
["King Zora", True, ['Flippers']],
["King Zora", True, ['Progressive Glove']],
["Lost Woods Hideout", True, []],
["Lumberjack Tree", False, []],
["Lumberjack Tree", False, [], ['Pegasus Boots']],
["Lumberjack Tree", False, [], ['Beat Agahnim 1']],
["Lumberjack Tree", True, ['Pegasus Boots', 'Beat Agahnim 1']],
["Cave 45", False, []],
["Cave 45", False, [], ['Magic Mirror']],
["Cave 45", False, [], ['Moon Pearl']],
["Cave 45", True, ['Moon Pearl', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove']],
["Cave 45", True, ['Moon Pearl', 'Magic Mirror', 'Progressive Glove', 'Hammer']],
["Cave 45", True, ['Moon Pearl', 'Magic Mirror', 'Beat Agahnim 1', 'Hammer']],
["Cave 45", True, ['Moon Pearl', 'Magic Mirror', 'Beat Agahnim 1', 'Progressive Glove', 'Hookshot']],
["Cave 45", True, ['Moon Pearl', 'Magic Mirror', 'Beat Agahnim 1', 'Flippers', 'Hookshot']],
["Graveyard Cave", False, []],
["Graveyard Cave", False, [], ['Magic Mirror']],
["Graveyard Cave", False, [], ['Moon Pearl']],
["Graveyard Cave", True, ['Moon Pearl', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove']],
["Graveyard Cave", True, ['Moon Pearl', 'Magic Mirror', 'Progressive Glove', 'Hammer']],
["Graveyard Cave", True, ['Moon Pearl', 'Magic Mirror', 'Beat Agahnim 1', 'Hammer', 'Hookshot']],
["Graveyard Cave", True, ['Moon Pearl', 'Magic Mirror', 'Beat Agahnim 1', 'Progressive Glove', 'Hookshot']],
["Graveyard Cave", True, ['Moon Pearl', 'Magic Mirror', 'Beat Agahnim 1', 'Flippers', 'Hookshot']],
["Checkerboard Cave", False, []],
["Checkerboard Cave", False, [], ['Progressive Glove']],
["Checkerboard Cave", False, [], ['Ocarina']],
["Checkerboard Cave", False, [], ['Magic Mirror']],
["Checkerboard Cave", True, ['Ocarina', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove']],
["Mini Moldorm Cave - Generous Guy", True, []],
["Library", False, []],
["Library", False, [], ['Pegasus Boots']],
["Library", True, ['Pegasus Boots']],
["Mushroom", True, []],
["Potion Shop", False, []],
["Potion Shop", False, [], ['Mushroom']],
["Potion Shop", True, ['Mushroom']],
["Maze Race", True, []],
["Desert Ledge", False, []],
["Desert Ledge", False, [], ['Book of Mudora', 'Ocarina']],
["Desert Ledge", False, [], ['Book of Mudora', 'Magic Mirror']],
["Desert Ledge", False, ['Progressive Glove'], ['Book of Mudora', 'Progressive Glove']],
["Desert Ledge", True, ['Book of Mudora']],
["Desert Ledge", True, ['Ocarina', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove']],
["Lake Hylia Island", False, []],
["Lake Hylia Island", False, [], ['Magic Mirror']],
["Lake Hylia Island", False, [], ['Moon Pearl']],
["Lake Hylia Island", False, [], ['Flippers']],
["Lake Hylia Island", True, ['Flippers', 'Moon Pearl', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove']],
["Lake Hylia Island", True, ['Flippers', 'Moon Pearl', 'Magic Mirror', 'Progressive Glove', 'Hammer']],
["Lake Hylia Island", True, ['Flippers', 'Moon Pearl', 'Magic Mirror', 'Beat Agahnim 1']],
["Sunken Treasure", True, []],
["Zora's Ledge", False, []],
["Zora's Ledge", False, [], ['Flippers']],
["Zora's Ledge", True, ['Flippers']],
["Flute Spot", False, []],
["Flute Spot", False, [], ['Shovel']],
["Flute Spot", True, ['Shovel']],
["Waterfall Fairy - Left", False, []],
["Waterfall Fairy - Left", False, [], ['Flippers']],
["Waterfall Fairy - Left", True, ['Flippers']],
["Waterfall Fairy - Right", False, []],
["Waterfall Fairy - Right", False, [], ['Flippers']],
["Waterfall Fairy - Right", True, ['Flippers']],
])

View File

@@ -0,0 +1,27 @@
from BaseClasses import World
from Dungeons import create_dungeons, get_dungeon_item_pool
from EntranceShuffle import link_entrances
from InvertedRegions import mark_dark_world_regions
from ItemList import difficulties, generate_itempool
from Items import ItemFactory
from Regions import create_regions
from Rules import set_rules
from test.TestBase import TestBase
class TestVanilla(TestBase):
def setUp(self):
self.world = World(1, 'vanilla', 'noglitches', 'open', 'random', 'normal', 'normal', 'none', 'on', 'ganon', 'balanced', True, 'items',
True, False, False, False, False, False, False, None, 'none', False)
self.world.difficulty_requirements = difficulties['normal']
create_regions(self.world, 1)
create_dungeons(self.world, 1)
link_entrances(self.world, 1)
generate_itempool(self.world, 1)
self.world.required_medallions[1] = ['Ether', 'Quake']
self.world.itempool.extend(get_dungeon_item_pool(self.world))
self.world.itempool.extend(ItemFactory(['Green Pendant', 'Red Pendant', 'Blue Pendant', 'Beat Agahnim 1', 'Beat Agahnim 2', 'Crystal 1', 'Crystal 2', 'Crystal 3', 'Crystal 4', 'Crystal 5', 'Crystal 6', 'Crystal 7'], 1))
self.world.get_location('Agahnim 1', 1).item = None
self.world.get_location('Agahnim 2', 1).item = None
mark_dark_world_regions(self.world)
set_rules(self.world, 1)

0
test/vanilla/__init__.py Normal file
View File