Add unit tests for vanilla inverted layout, and dungeon logic.

This commit is contained in:
compiling 2020-03-16 17:39:54 +11:00
parent 270fbce516
commit 053aec4f26
22 changed files with 1829 additions and 0 deletions

53
test/TestDeathMountain.py Normal file
View File

@ -0,0 +1,53 @@
from BaseClasses import World
from Dungeons import create_dungeons
from EntranceShuffle import link_entrances
from ItemList import difficulties
from Regions import create_regions
from Rules import set_rules
from test.TestVanilla import TestVanilla
class TestDeathMountain(TestVanilla):
def setUp(self):
self.world = World(1, 'vanilla', 'noglitches', 'open', '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_regions(self.world, 1)
create_dungeons(self.world, 1)
link_entrances(self.world, 1)
set_rules(self.world, 1)
def testWestDeathMountain(self):
self.run_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']],
])

41
test/TestVanilla.py Normal file
View File

@ -0,0 +1,41 @@
import unittest
from BaseClasses import World, CollectionState
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
from Items import ItemFactory
from Regions import create_regions
from Rules import set_rules
class TestVanilla(unittest.TestCase):
def setUp(self):
self.world = World(1, 'vanilla', 'noglitches', 'open', '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_regions(self.world, 1)
create_dungeons(self.world, 1)
link_entrances(self.world, 1)
mark_dark_world_regions(self.world)
set_rules(self.world, 1)
def run_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 = CollectionState(self.world)
for item in items:
item.advancement = True
state.collect(item)
self.assertEqual(self.world.get_location(location, 1).can_reach(state), access)

0
test/__init__.py Normal file
View File

View File

@ -0,0 +1,24 @@
from test.dungeons.TestDungeon import TestDungeon
class TestAgahnimsTower(TestDungeon):
def testTower(self):
self.starting_regions = ['Agahnims Tower']
self.run_tests([
["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, ['Progressive Sword']],
["Castle Tower - Dark Maze", False, []],
["Castle Tower - Dark Maze", False, [], ['Small Key (Agahnims Tower)']],
["Castle Tower - Dark Maze", False, [], ['Lamp']],
["Castle Tower - Dark Maze", False, [], ['Progressive Sword', 'Hammer', 'Progressive Bow', 'Fire Rod', 'Ice Rod', 'Cane of Somaria', 'Cane of Byrna']],
["Castle Tower - Dark Maze", True, ['Progressive Sword', 'Small Key (Agahnims Tower)', 'Lamp']],
["Agahnim 1", False, []],
["Agahnim 1", False, ['Small Key (Agahnims Tower)'], ['Small Key (Agahnims Tower)']],
["Agahnim 1", False, [], ['Progressive Sword']],
["Agahnim 1", False, [], ['Lamp']],
["Agahnim 1", True, ['Small Key (Agahnims Tower)', 'Small Key (Agahnims Tower)', 'Lamp', 'Progressive Sword']],
])

View File

@ -0,0 +1,80 @@
from test.dungeons.TestDungeon import TestDungeon
class TestDarkPalace(TestDungeon):
def testDarkPalace(self):
self.starting_regions = ['Palace of Darkness (Entrance)']
key = 'Small Key (Palace of Darkness)'
self.run_tests([
["Palace of Darkness - Shooter Room", True, []],
["Palace of Darkness - The Arena - Ledge", False, []],
["Palace of Darkness - The Arena - Ledge", False, [], ['Progressive Bow']],
["Palace of Darkness - The Arena - Ledge", True, ['Progressive Bow']],
["Palace of Darkness - Map Chest", False, []],
["Palace of Darkness - Map Chest", False, [], ['Progressive Bow']],
["Palace of Darkness - Map Chest", True, ['Progressive Bow']],
#Lower requirement for self-locking key
#No lower requirement when bow/hammer is out of logic
["Palace of Darkness - Big Key Chest", False, []],
["Palace of Darkness - Big Key Chest", False, [key]*5, [key]],
["Palace of Darkness - Big Key Chest", True, [key]*6],
["Palace of Darkness - The Arena - Bridge", False, []],
["Palace of Darkness - The Arena - Bridge", False, [], [key, 'Progressive Bow']],
["Palace of Darkness - The Arena - Bridge", False, [], [key, 'Hammer']],
["Palace of Darkness - The Arena - Bridge", True, [key]],
["Palace of Darkness - The Arena - Bridge", True, ['Progressive Bow', 'Hammer']],
["Palace of Darkness - Stalfos Basement", False, []],
["Palace of Darkness - Stalfos Basement", False, [], [key, 'Progressive Bow']],
["Palace of Darkness - Stalfos Basement", False, [], [key, 'Hammer']],
["Palace of Darkness - Stalfos Basement", True, [key]],
["Palace of Darkness - Stalfos Basement", True, ['Progressive Bow', 'Hammer']],
["Palace of Darkness - Compass Chest", False, []],
["Palace of Darkness - Compass Chest", False, [key]*3, [key]],
["Palace of Darkness - Compass Chest", True, [key]*4],
#@todo: Advanced?
["Palace of Darkness - Dark Basement - Left", False, []],
["Palace of Darkness - Dark Basement - Left", False, [], ['Lamp']],
["Palace of Darkness - Dark Basement - Left", False, [key]*3, [key]],
["Palace of Darkness - Dark Basement - Left", True, ['Lamp'] + [key]*4],
["Palace of Darkness - Dark Basement - Right", False, []],
["Palace of Darkness - Dark Basement - Right", False, [], ['Lamp']],
["Palace of Darkness - Dark Basement - Right", False, [key] * 3, [key]],
["Palace of Darkness - Dark Basement - Right", True, ['Lamp'] + [key] * 4],
["Palace of Darkness - Harmless Hellway", False, []],
["Palace of Darkness - Harmless Hellway", False, [key]*5, [key]],
["Palace of Darkness - Harmless Hellway", True, [key]*6],
["Palace of Darkness - Dark Maze - Top", False, []],
["Palace of Darkness - Dark Maze - Top", False, [], ['Lamp']],
["Palace of Darkness - Dark Maze - Top", False, [key]*5, [key]],
["Palace of Darkness - Dark Maze - Top", True, ['Lamp'] + [key]*6],
["Palace of Darkness - Dark Maze - Bottom", False, []],
["Palace of Darkness - Dark Maze - Bottom", False, [], ['Lamp']],
["Palace of Darkness - Dark Maze - Bottom", False, [key]*5, [key]],
["Palace of Darkness - Dark Maze - Bottom", True, ['Lamp'] + [key]*6],
["Palace of Darkness - Big Chest", False, []],
["Palace of Darkness - Big Chest", False, [], ['Lamp']],
["Palace of Darkness - Big Chest", False, [], ['Big Key (Palace of Darkness)']],
["Palace of Darkness - Big Chest", False, [key]*5, [key]],
["Palace of Darkness - Big Chest", True, ['Lamp', 'Big Key (Palace of Darkness)'] + [key]*6],
["Palace of Darkness - Boss", False, []],
["Palace of Darkness - Boss", False, [], ['Lamp']],
["Palace of Darkness - Boss", False, [], ['Hammer']],
["Palace of Darkness - Boss", False, [], ['Progressive Bow']],
["Palace of Darkness - Boss", False, [], ['Big Key (Palace of Darkness)']],
["Palace of Darkness - Boss", False, [key]*5, [key]],
["Palace of Darkness - Boss", True, ['Lamp', 'Hammer', 'Progressive Bow', 'Big Key (Palace of Darkness)'] + [key]*6],
])

View File

@ -0,0 +1,39 @@
from test.dungeons.TestDungeon import TestDungeon
class TestDesertPalace(TestDungeon):
def testDesertPalace(self):
self.starting_regions = ['Desert Palace North', 'Desert Palace Main (Inner)', 'Desert Palace Main (Outer)']
self.run_tests([
["Desert Palace - Map Chest", True, []],
["Desert Palace - Big Chest", False, []],
["Desert Palace - Big Chest", False, [], ['Big Key (Desert Palace)']],
["Desert Palace - Big Chest", True, ['Big Key (Desert Palace)']],
["Desert Palace - Torch", False, []],
["Desert Palace - Torch", False, [], ['Pegasus Boots']],
["Desert Palace - Torch", True, ['Pegasus Boots']],
["Desert Palace - Compass Chest", False, []],
["Desert Palace - Compass Chest", False, [], ['Small Key (Desert Palace)']],
["Desert Palace - Compass Chest", True, ['Small Key (Desert Palace)']],
#@todo: Require a real weapon for enemizer?
["Desert Palace - Big Key Chest", False, []],
["Desert Palace - Big Key Chest", False, [], ['Small Key (Desert Palace)']],
["Desert Palace - Big Key Chest", True, ['Small Key (Desert Palace)']],
["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", False, [], ['Progressive Sword', 'Hammer', 'Fire Rod', 'Ice Rod', 'Progressive Bow', 'Cane of Somaria', 'Cane of Byrna']],
["Desert Palace - Boss", True, ['Small Key (Desert Palace)', 'Big Key (Desert Palace)', 'Fire Rod']],
["Desert Palace - Boss", True, ['Small Key (Desert Palace)', 'Big Key (Desert Palace)', 'Lamp', 'Progressive Sword']],
["Desert Palace - Boss", True, ['Small Key (Desert Palace)', 'Big Key (Desert Palace)', 'Lamp', 'Hammer']],
["Desert Palace - Boss", True, ['Small Key (Desert Palace)', 'Big Key (Desert Palace)', 'Lamp', 'Ice Rod']],
["Desert Palace - Boss", True, ['Small Key (Desert Palace)', 'Big Key (Desert Palace)', 'Lamp', 'Cane of Somaria']],
["Desert Palace - Boss", True, ['Small Key (Desert Palace)', 'Big Key (Desert Palace)', 'Lamp', 'Cane of Byrna']],
])

View File

@ -0,0 +1,49 @@
import unittest
from BaseClasses import World, CollectionState
from Dungeons import create_dungeons, get_dungeon_item_pool
from EntranceShuffle import mandatory_connections, connect_simple
from ItemList import difficulties, generate_itempool
from Items import ItemFactory
from Regions import create_regions
from Rules import set_rules
class TestDungeon(unittest.TestCase):
def setUp(self):
self.world = World(1, 'vanilla', 'noglitches', 'open', 'random', 'normal', 'normal', 'none', 'on', 'ganon', 'balanced',
True, False, False, False, False, False, False, False, False, None,
'none', False)
self.starting_regions = []
self.world.difficulty_requirements = difficulties['normal']
create_regions(self.world, 1)
create_dungeons(self.world, 1)
for exitname, regionname in mandatory_connections:
connect_simple(self.world, exitname, regionname, 1)
connect_simple(self.world, self.world.get_entrance('Big Bomb Shop', 1), self.world.get_region('Big Bomb Shop', 1), 1)
self.world.swamp_patch_required[1] = True
set_rules(self.world, 1)
generate_itempool(self.world, 1)
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))
def run_tests(self, access_pool):
for region in self.starting_regions:
self.world.get_region(region, 1).can_reach_private = lambda _: True
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 = CollectionState(self.world)
for item in items:
item.advancement = True
state.collect(item)
self.assertEqual(self.world.get_location(location, 1).can_reach(state), access)

View File

@ -0,0 +1,29 @@
from test.dungeons.TestDungeon import TestDungeon
class TestEasternPalace(TestDungeon):
def testEastern(self):
self.starting_regions = ["Eastern Palace"]
self.run_tests([
["Eastern Palace - Compass Chest", True, []],
["Eastern Palace - Cannonball Chest", True, []],
["Eastern Palace - Big Chest", False, []],
["Eastern Palace - Big Chest", False, [], ['Big Key (Eastern Palace)']],
["Eastern Palace - Big Chest", True, ['Big Key (Eastern Palace)']],
["Eastern Palace - Map Chest", True, []],
["Eastern Palace - Big Key Chest", False, []],
["Eastern Palace - Big Key Chest", False, [], ['Lamp']],
["Eastern Palace - Big Key Chest", True, ['Lamp']],
#@todo: Advanced?
["Eastern Palace - Boss", False, []],
["Eastern Palace - Boss", False, [], ['Lamp']],
["Eastern Palace - Boss", False, [], ['Progressive Bow']],
["Eastern Palace - Boss", False, [], ['Big Key (Eastern Palace)']],
["Eastern Palace - Boss", True, ['Lamp', 'Progressive Bow', 'Big Key (Eastern Palace)']]
])

View File

@ -0,0 +1,144 @@
from test.dungeons.TestDungeon import TestDungeon
class TestGanonsTower(TestDungeon):
def testGanonsTower(self):
self.starting_regions = ['Ganons Tower (Entrance)']
self.run_tests([
["Ganons Tower - Bob's Torch", False, []],
["Ganons Tower - Bob's Torch", False, [], ['Pegasus Boots']],
["Ganons Tower - Bob's Torch", True, ['Pegasus Boots']],
["Ganons Tower - DMs Room - Top Left", False, []],
["Ganons Tower - DMs Room - Top Left", False, [], ['Hammer']],
["Ganons Tower - DMs Room - Top Left", False, [], ['Hookshot']],
["Ganons Tower - DMs Room - Top Left", True, ['Hookshot', 'Hammer']],
["Ganons Tower - DMs Room - Top Right", False, []],
["Ganons Tower - DMs Room - Top Right", False, [], ['Hammer']],
["Ganons Tower - DMs Room - Top Right", False, [], ['Hookshot']],
["Ganons Tower - DMs Room - Top Right", True, ['Hookshot', 'Hammer']],
["Ganons Tower - DMs Room - Bottom Left", False, []],
["Ganons Tower - DMs Room - Bottom Left", False, [], ['Hammer']],
["Ganons Tower - DMs Room - Bottom Left", False, [], ['Hookshot']],
["Ganons Tower - DMs Room - Bottom Left", True, ['Hookshot', 'Hammer']],
["Ganons Tower - DMs Room - Bottom Right", False, []],
["Ganons Tower - DMs Room - Bottom Right", False, [], ['Hammer']],
["Ganons Tower - DMs Room - Bottom Right", False, [], ['Hookshot']],
["Ganons Tower - DMs Room - Bottom Right", True, ['Hookshot', 'Hammer']],
["Ganons Tower - Randomizer Room - Top Left", False, []],
["Ganons Tower - Randomizer Room - Top Left", False, [], ['Hammer']],
["Ganons Tower - Randomizer Room - Top Left", False, [], ['Hookshot']],
["Ganons Tower - Randomizer Room - Top Left", True, ['Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Hookshot', 'Hammer']],
["Ganons Tower - Randomizer Room - Top Right", False, []],
["Ganons Tower - Randomizer Room - Top Right", False, [], ['Hammer']],
["Ganons Tower - Randomizer Room - Top Right", False, [], ['Hookshot']],
["Ganons Tower - Randomizer Room - Top Right", True, ['Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Hookshot', 'Hammer']],
["Ganons Tower - Randomizer Room - Bottom Left", False, []],
["Ganons Tower - Randomizer Room - Bottom Left", False, [], ['Hammer']],
["Ganons Tower - Randomizer Room - Bottom Left", False, [], ['Hookshot']],
["Ganons Tower - Randomizer Room - Bottom Left", True, ['Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Hookshot', 'Hammer']],
["Ganons Tower - Randomizer Room - Bottom Right", False, []],
["Ganons Tower - Randomizer Room - Bottom Right", False, [], ['Hammer']],
["Ganons Tower - Randomizer Room - Bottom Right", False, [], ['Hookshot']],
["Ganons Tower - Randomizer Room - Bottom Right", True, ['Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Hookshot', 'Hammer']],
["Ganons Tower - Firesnake Room", False, []],
["Ganons Tower - Firesnake Room", False, [], ['Hammer']],
["Ganons Tower - Firesnake Room", False, [], ['Hookshot']],
["Ganons Tower - Firesnake Room", True, ['Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Hookshot', 'Hammer']],
["Ganons Tower - Map Chest", False, []],
["Ganons Tower - Map Chest", False, [], ['Hammer']],
["Ganons Tower - Map Chest", False, [], ['Hookshot', 'Pegasus Boots']],
["Ganons Tower - Map Chest", True, ['Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Hookshot', 'Hammer']],
["Ganons Tower - Map Chest", True, ['Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Hammer', 'Pegasus Boots']],
["Ganons Tower - Big Chest", False, []],
["Ganons Tower - Big Chest", False, [], ['Big Key (Ganons Tower)']],
["Ganons Tower - Big Chest", True, ['Big Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Cane of Somaria', 'Fire Rod']],
["Ganons Tower - Big Chest", True, ['Big Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Hookshot', 'Hammer']],
["Ganons Tower - Hope Room - Left", True, []],
["Ganons Tower - Hope Room - Right", True, []],
["Ganons Tower - Bob's Chest", False, []],
["Ganons Tower - Bob's Chest", True, ['Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Cane of Somaria', 'Fire Rod']],
["Ganons Tower - Bob's Chest", True, ['Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Hookshot', 'Hammer']],
["Ganons Tower - Tile Room", False, []],
["Ganons Tower - Tile Room", False, [], ['Cane of Somaria']],
["Ganons Tower - Tile Room", True, ['Cane of Somaria']],
["Ganons Tower - Compass Room - Top Left", False, []],
["Ganons Tower - Compass Room - Top Left", False, [], ['Cane of Somaria']],
["Ganons Tower - Compass Room - Top Left", False, [], ['Fire Rod']],
["Ganons Tower - Compass Room - Top Left", True, ['Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Fire Rod', 'Cane of Somaria']],
["Ganons Tower - Compass Room - Top Right", False, []],
["Ganons Tower - Compass Room - Top Right", False, [], ['Cane of Somaria']],
["Ganons Tower - Compass Room - Top Right", False, [], ['Fire Rod']],
["Ganons Tower - Compass Room - Top Right", True, ['Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Fire Rod', 'Cane of Somaria']],
["Ganons Tower - Compass Room - Bottom Left", False, []],
["Ganons Tower - Compass Room - Bottom Left", False, [], ['Cane of Somaria']],
["Ganons Tower - Compass Room - Bottom Left", False, [], ['Fire Rod']],
["Ganons Tower - Compass Room - Bottom Left", True, ['Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Fire Rod', 'Cane of Somaria']],
["Ganons Tower - Compass Room - Bottom Right", False, []],
["Ganons Tower - Compass Room - Bottom Right", False, [], ['Cane of Somaria']],
["Ganons Tower - Compass Room - Bottom Right", False, [], ['Fire Rod']],
["Ganons Tower - Compass Room - Bottom Right", True, ['Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Fire Rod', 'Cane of Somaria']],
["Ganons Tower - Big Key Chest", False, []],
["Ganons Tower - Big Key Chest", True, ['Progressive Bow', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Cane of Somaria', 'Fire Rod']],
["Ganons Tower - Big Key Chest", True, ['Progressive Bow', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Hookshot', 'Hammer']],
["Ganons Tower - Big Key Room - Left", False, []],
["Ganons Tower - Big Key Room - Left", True, ['Progressive Bow', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Cane of Somaria', 'Fire Rod']],
["Ganons Tower - Big Key Room - Left", True, ['Progressive Bow', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Hookshot', 'Hammer']],
["Ganons Tower - Big Key Room - Right", False, []],
["Ganons Tower - Big Key Room - Right", True, ['Progressive Bow', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Cane of Somaria', 'Fire Rod']],
["Ganons Tower - Big Key Room - Right", True, ['Progressive Bow', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Hookshot', 'Hammer']],
["Ganons Tower - Mini Helmasaur Room - Left", False, []],
["Ganons Tower - Mini Helmasaur Room - Left", False, [], ['Progressive Bow']],
["Ganons Tower - Mini Helmasaur Room - Left", False, [], ['Big Key (Ganons Tower)']],
["Ganons Tower - Mini Helmasaur Room - Left", False, [], ['Lamp', 'Fire Rod']],
["Ganons Tower - Mini Helmasaur Room - Left", True, ['Progressive Bow', 'Big Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Lamp']],
["Ganons Tower - Mini Helmasaur Room - Left", True, ['Progressive Bow', 'Big Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Fire Rod']],
["Ganons Tower - Mini Helmasaur Room - Right", False, []],
["Ganons Tower - Mini Helmasaur Room - Right", False, [], ['Progressive Bow']],
["Ganons Tower - Mini Helmasaur Room - Right", False, [], ['Big Key (Ganons Tower)']],
["Ganons Tower - Mini Helmasaur Room - Right", False, [], ['Lamp', 'Fire Rod']],
["Ganons Tower - Mini Helmasaur Room - Right", True, ['Progressive Bow', 'Big Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Lamp']],
["Ganons Tower - Mini Helmasaur Room - Right", True, ['Progressive Bow', 'Big Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Fire Rod']],
["Ganons Tower - Pre-Moldorm Chest", False, []],
["Ganons Tower - Pre-Moldorm Chest", False, [], ['Progressive Bow']],
["Ganons Tower - Pre-Moldorm Chest", False, [], ['Big Key (Ganons Tower)']],
["Ganons Tower - Pre-Moldorm Chest", False, [], ['Lamp', 'Fire Rod']],
["Ganons Tower - Pre-Moldorm Chest", True, ['Progressive Bow', 'Big Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Lamp']],
["Ganons Tower - Pre-Moldorm Chest", True, ['Progressive Bow', 'Big Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Fire Rod']],
["Ganons Tower - Validation Chest", False, []],
["Ganons Tower - Validation Chest", False, [], ['Hookshot']],
["Ganons Tower - Validation Chest", False, [], ['Progressive Bow']],
["Ganons Tower - Validation Chest", False, [], ['Big Key (Ganons Tower)']],
["Ganons Tower - Validation Chest", False, [], ['Lamp', 'Fire Rod']],
["Ganons Tower - Validation Chest", False, [], ['Progressive Sword', 'Hammer']],
["Ganons Tower - Validation Chest", True, ['Progressive Bow', 'Big Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Lamp', 'Hookshot', 'Progressive Sword']],
["Ganons Tower - Validation Chest", True, ['Progressive Bow', 'Big Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Fire Rod', 'Hookshot', 'Progressive Sword']],
["Ganons Tower - Validation Chest", True, ['Progressive Bow', 'Big Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Lamp', 'Hookshot', 'Hammer']],
["Ganons Tower - Validation Chest", True, ['Progressive Bow', 'Big Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Small Key (Ganons Tower)', 'Fire Rod', 'Hookshot', 'Hammer']],
])

View File

@ -0,0 +1,79 @@
from test.dungeons.TestDungeon import TestDungeon
class TestIcePalace(TestDungeon):
def testIcePalace(self):
self.starting_regions = ['Ice Palace (Entrance)']
self.run_tests([
["Ice Palace - Big Key Chest", False, []],
["Ice Palace - Big Key Chest", False, [], ['Hammer']],
["Ice Palace - Big Key Chest", False, [], ['Progressive Glove']],
["Ice Palace - Big Key Chest", False, [], ['Fire Rod', 'Bombos']],
["Ice Palace - Big Key Chest", False, [], ['Fire Rod', 'Progressive Sword']],
["Ice Palace - Big Key Chest", True, ['Progressive Glove', 'Fire Rod', 'Hammer', 'Hookshot', 'Small Key (Ice Palace)']],
["Ice Palace - Big Key Chest", True, ['Progressive Glove', 'Bombos', 'Progressive Sword', 'Hammer', 'Hookshot', 'Small Key (Ice Palace)']],
#@todo: Change from item randomizer - Right side key door is only in logic if big key is in there
#["Ice Palace - Big Key Chest", True, ['Progressive Glove', 'Cane of Byrna', 'Fire Rod', 'Hammer', 'Small Key (Ice Palace)', 'Small Key (Ice Palace)']],
#["Ice Palace - Big Key Chest", True, ['Progressive Glove', 'Cane of Byrna', 'Bombos', 'Progressive Sword', 'Hammer', 'Small Key (Ice Palace)', 'Small Key (Ice Palace)']],
#["Ice Palace - Big Key Chest", True, ['Progressive Glove', 'Cape', 'Fire Rod', 'Hammer', 'Small Key (Ice Palace)', 'Small Key (Ice Palace)']],
#["Ice Palace - Big Key Chest", True, ['Progressive Glove', 'Cape', 'Bombos', 'Progressive Sword', 'Hammer', 'Small Key (Ice Palace)', 'Small Key (Ice Palace)']],
["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", True, ['Fire Rod']],
["Ice Palace - Compass Chest", True, ['Bombos', 'Progressive Sword']],
["Ice Palace - Map Chest", False, []],
["Ice Palace - Map Chest", False, [], ['Hammer']],
["Ice Palace - Map Chest", False, [], ['Progressive Glove']],
["Ice Palace - Map Chest", False, [], ['Fire Rod', 'Bombos']],
["Ice Palace - Map Chest", False, [], ['Fire Rod', 'Progressive Sword']],
["Ice Palace - Map Chest", True, ['Progressive Glove', 'Fire Rod', 'Hammer', 'Hookshot', 'Small Key (Ice Palace)']],
["Ice Palace - Map Chest", True, ['Progressive Glove', 'Bombos', 'Progressive Sword', 'Hammer', 'Hookshot', 'Small Key (Ice Palace)']],
#["Ice Palace - Map Chest", True, ['Progressive Glove', 'Cane of Byrna', 'Fire Rod', 'Hammer', 'Small Key (Ice Palace)', 'Small Key (Ice Palace)']],
#["Ice Palace - Map Chest", True, ['Progressive Glove', 'Cane of Byrna', 'Bombos', 'Progressive Sword', 'Hammer', 'Small Key (Ice Palace)', 'Small Key (Ice Palace)']],
#["Ice Palace - Map Chest", True, ['Progressive Glove', 'Cape', 'Fire Rod', 'Hammer', 'Small Key (Ice Palace)', 'Small Key (Ice Palace)']],
#["Ice Palace - Map Chest", True, ['Progressive Glove', 'Cape', 'Bombos', 'Progressive Sword', 'Hammer', 'Small Key (Ice Palace)', 'Small Key (Ice Palace)']],
["Ice Palace - Spike Room", False, []],
["Ice Palace - Spike Room", False, [], ['Fire Rod', 'Bombos']],
["Ice Palace - Spike Room", False, [], ['Fire Rod', 'Progressive Sword']],
["Ice Palace - Spike Room", True, ['Fire Rod', 'Hookshot', 'Small Key (Ice Palace)']],
["Ice Palace - Spike Room", True, ['Bombos', 'Progressive Sword', 'Hookshot', 'Small Key (Ice Palace)']],
#["Ice Palace - Spike Room", True, ['Cape', 'Fire Rod', 'Small Key (Ice Palace)', 'Small Key (Ice Palace)']],
#["Ice Palace - Spike Room", True, ['Cape', 'Bombos', 'Progressive Sword', 'Small Key (Ice Palace)', 'Small Key (Ice Palace)']],
#["Ice Palace - Spike Room", True, ['Cane of Byrna', 'Fire Rod', 'Small Key (Ice Palace)', 'Small Key (Ice Palace)']],
#["Ice Palace - Spike Room", True, ['Cane of Byrna', 'Bombos', 'Progressive Sword', 'Small Key (Ice Palace)', 'Small Key (Ice Palace)']],
["Ice Palace - Freezor Chest", False, []],
["Ice Palace - Freezor Chest", False, [], ['Fire Rod', 'Bombos']],
["Ice Palace - Freezor Chest", False, [], ['Fire Rod', 'Progressive Sword']],
["Ice Palace - Freezor Chest", True, ['Fire Rod']],
["Ice Palace - Freezor Chest", True, ['Bombos', 'Progressive Sword']],
["Ice Palace - Iced T Room", False, []],
["Ice Palace - Iced T Room", False, [], ['Fire Rod', 'Bombos']],
["Ice Palace - Iced T Room", False, [], ['Fire Rod', 'Progressive Sword']],
["Ice Palace - Iced T Room", True, ['Fire Rod']],
["Ice Palace - Iced T Room", True, ['Bombos', 'Progressive Sword']],
["Ice Palace - Big Chest", False, []],
["Ice Palace - Big Chest", False, [], ['Big Key (Ice Palace)']],
["Ice Palace - Big Chest", False, [], ['Fire Rod', 'Bombos']],
["Ice Palace - Big Chest", False, [], ['Fire Rod', 'Progressive Sword']],
["Ice Palace - Big Chest", True, ['Big Key (Ice Palace)', 'Fire Rod']],
["Ice Palace - Big Chest", True, ['Big Key (Ice Palace)', 'Bombos', 'Progressive Sword']],
["Ice Palace - Boss", False, []],
["Ice Palace - Boss", False, [], ['Hammer']],
["Ice Palace - Boss", False, [], ['Progressive Glove']],
["Ice Palace - Boss", False, [], ['Big Key (Ice Palace)']],
["Ice Palace - Boss", False, [], ['Fire Rod', 'Bombos']],
["Ice Palace - Boss", False, [], ['Fire Rod', 'Progressive Sword']],
["Ice Palace - Boss", True, ['Progressive Glove', 'Big Key (Ice Palace)', 'Fire Rod', 'Hammer', 'Small Key (Ice Palace)', 'Small Key (Ice Palace)']],
["Ice Palace - Boss", True, ['Progressive Glove', 'Big Key (Ice Palace)', 'Fire Rod', 'Hammer', 'Cane of Somaria', 'Small Key (Ice Palace)']],
["Ice Palace - Boss", True, ['Progressive Glove', 'Big Key (Ice Palace)', 'Bombos', 'Progressive Sword', 'Hammer', 'Small Key (Ice Palace)', 'Small Key (Ice Palace)']],
["Ice Palace - Boss", True, ['Progressive Glove', 'Big Key (Ice Palace)', 'Bombos', 'Progressive Sword', 'Hammer', 'Cane of Somaria', 'Small Key (Ice Palace)']],
])

View File

@ -0,0 +1,84 @@
from test.dungeons.TestDungeon import TestDungeon
class TestMiseryMire(TestDungeon):
def testMiseryMire(self):
self.starting_regions = ['Misery Mire (Entrance)']
self.run_tests([
["Misery Mire - Bridge Chest", False, []],
["Misery Mire - Bridge Chest", False, [], ['Pegasus Boots', 'Hookshot']],
["Misery Mire - Bridge Chest", False, [], ['Progressive Sword', 'Hammer', 'Fire Rod', 'Cane of Somaria', 'Progressive Bow', 'Ice Rod']], #Ice Rod works!
["Misery Mire - Bridge Chest", True, ['Progressive Sword', 'Pegasus Boots']],
["Misery Mire - Bridge Chest", True, ['Progressive Sword', 'Hookshot']],
["Misery Mire - Bridge Chest", True, ['Hammer', 'Pegasus Boots']],
["Misery Mire - Bridge Chest", True, ['Hammer', 'Hookshot']],
["Misery Mire - Bridge Chest", True, ['Fire Rod', 'Pegasus Boots']],
["Misery Mire - Bridge Chest", True, ['Fire Rod', 'Hookshot']],
["Misery Mire - Bridge Chest", True, ['Cane of Somaria', 'Pegasus Boots']],
["Misery Mire - Bridge Chest", True, ['Cane of Somaria', 'Hookshot']],
["Misery Mire - Bridge Chest", True, ['Progressive Bow', 'Pegasus Boots']],
["Misery Mire - Bridge Chest", True, ['Progressive Bow', 'Hookshot']],
["Misery Mire - Bridge Chest", True, ['Ice Rod', 'Pegasus Boots']],
["Misery Mire - Bridge Chest", True, ['Ice Rod', 'Hookshot']],
["Misery Mire - Big Chest", False, []],
["Misery Mire - Big Chest", False, [], ['Big Key (Misery Mire)']],
["Misery Mire - Big Chest", False, [], ['Pegasus Boots', 'Hookshot']],
["Misery Mire - Big Chest", False, [], ['Progressive Sword', 'Hammer', 'Fire Rod', 'Cane of Somaria', 'Progressive Bow', 'Ice Rod']],
["Misery Mire - Big Chest", True, ['Big Key (Misery Mire)', 'Pegasus Boots', 'Progressive Sword']],
["Misery Mire - Big Chest", True, ['Big Key (Misery Mire)', 'Hookshot', 'Progressive Sword']],
["Misery Mire - Main Lobby", False, []],
["Misery Mire - Main Lobby", False, [], ['Pegasus Boots', 'Hookshot']],
["Misery Mire - Main Lobby", False, [], ['Small Key (Misery Mire)', 'Big Key (Misery Mire)']],
["Misery Mire - Main Lobby", True, ['Small Key (Misery Mire)', 'Hookshot', 'Progressive Sword']],
["Misery Mire - Main Lobby", True, ['Small Key (Misery Mire)', 'Pegasus Boots', 'Progressive Sword']],
["Misery Mire - Main Lobby", True, ['Big Key (Misery Mire)', 'Hookshot', 'Progressive Sword']],
["Misery Mire - Main Lobby", True, ['Big Key (Misery Mire)', 'Pegasus Boots', 'Progressive Sword']],
["Misery Mire - Big Key Chest", False, []],
["Misery Mire - Big Key Chest", False, [], ['Fire Rod', 'Lamp']],
["Misery Mire - Big Key Chest", False, [], ['Pegasus Boots', 'Hookshot']],
["Misery Mire - Big Key Chest", False, ['Small Key (Misery Mire)', 'Small Key (Misery Mire)'], ['Small Key (Misery Mire)']],
["Misery Mire - Big Key Chest", True, ['Small Key (Misery Mire)', 'Small Key (Misery Mire)', 'Small Key (Misery Mire)', 'Lamp', 'Progressive Sword', 'Pegasus Boots']],
["Misery Mire - Big Key Chest", True, ['Small Key (Misery Mire)', 'Small Key (Misery Mire)', 'Small Key (Misery Mire)', 'Lamp', 'Progressive Sword', 'Hookshot']],
["Misery Mire - Big Key Chest", True, ['Small Key (Misery Mire)', 'Small Key (Misery Mire)', 'Small Key (Misery Mire)', 'Fire Rod', 'Progressive Sword', 'Pegasus Boots']],
["Misery Mire - Big Key Chest", True, ['Small Key (Misery Mire)', 'Small Key (Misery Mire)', 'Small Key (Misery Mire)', 'Fire Rod', 'Progressive Sword', 'Hookshot']],
["Misery Mire - Compass Chest", False, []],
["Misery Mire - Compass Chest", False, [], ['Fire Rod', 'Lamp']],
["Misery Mire - Compass Chest", False, [], ['Pegasus Boots', 'Hookshot']],
["Misery Mire - Compass Chest", False, ['Small Key (Misery Mire)', 'Small Key (Misery Mire)'], ['Small Key (Misery Mire)']],
["Misery Mire - Compass Chest", True, ['Small Key (Misery Mire)', 'Small Key (Misery Mire)', 'Small Key (Misery Mire)', 'Lamp', 'Progressive Sword', 'Pegasus Boots']],
["Misery Mire - Compass Chest", True, ['Small Key (Misery Mire)', 'Small Key (Misery Mire)', 'Small Key (Misery Mire)', 'Lamp', 'Progressive Sword', 'Hookshot']],
["Misery Mire - Compass Chest", True, ['Small Key (Misery Mire)', 'Small Key (Misery Mire)', 'Small Key (Misery Mire)', 'Fire Rod', 'Progressive Sword', 'Pegasus Boots']],
["Misery Mire - Compass Chest", True, ['Small Key (Misery Mire)', 'Small Key (Misery Mire)', 'Small Key (Misery Mire)', 'Fire Rod', 'Progressive Sword', 'Hookshot']],
["Misery Mire - Map Chest", False, []],
["Misery Mire - Map Chest", False, [], ['Small Key (Misery Mire)', 'Big Key (Misery Mire)']],
["Misery Mire - Map Chest", False, [], ['Pegasus Boots', 'Hookshot']],
["Misery Mire - Map Chest", True, ['Small Key (Misery Mire)', 'Progressive Sword', 'Pegasus Boots']],
["Misery Mire - Map Chest", True, ['Small Key (Misery Mire)', 'Progressive Sword', 'Hookshot']],
["Misery Mire - Map Chest", True, ['Big Key (Misery Mire)', 'Progressive Sword', 'Pegasus Boots']],
["Misery Mire - Map Chest", True, ['Big Key (Misery Mire)', 'Progressive Sword', 'Hookshot']],
["Misery Mire - Spike Chest", False, []],
["Misery Mire - Spike Chest", False, [], ['Pegasus Boots', 'Hookshot']],
["Misery Mire - Spike Chest", True, ['Progressive Sword', 'Pegasus Boots', 'Cape']],
["Misery Mire - Spike Chest", True, ['Progressive Sword', 'Hookshot', 'Cape']],
["Misery Mire - Spike Chest", True, ['Progressive Sword', 'Pegasus Boots', 'Cane of Byrna']],
["Misery Mire - Spike Chest", True, ['Progressive Sword', 'Hookshot', 'Cane of Byrna']],
["Misery Mire - Spike Chest", True, ['Progressive Sword', 'Pegasus Boots', 'Boss Heart Container']],
["Misery Mire - Spike Chest", True, ['Progressive Sword', 'Hookshot', 'Boss Heart Container']],
["Misery Mire - Boss", False, []],
["Misery Mire - Boss", False, [], ['Lamp']],
["Misery Mire - Boss", False, [], ['Cane of Somaria']],
["Misery Mire - Boss", False, [], ['Progressive Sword', 'Hammer', 'Progressive Bow']],
["Misery Mire - Boss", False, [], ['Big Key (Misery Mire)']],
["Misery Mire - Boss", False, [], ['Pegasus Boots', 'Hookshot']],
["Misery Mire - Boss", True, ['Big Key (Misery Mire)', 'Lamp', 'Cane of Somaria', 'Progressive Sword', 'Pegasus Boots']],
["Misery Mire - Boss", True, ['Big Key (Misery Mire)', 'Lamp', 'Cane of Somaria', 'Hammer', 'Pegasus Boots']],
["Misery Mire - Boss", True, ['Big Key (Misery Mire)', 'Lamp', 'Cane of Somaria', 'Progressive Bow', 'Pegasus Boots']],
])

View File

@ -0,0 +1,96 @@
from test.dungeons.TestDungeon import TestDungeon
class TestSkullWoods(TestDungeon):
def testSkullWoodsFrontAllEntrances(self):
self.starting_regions = ['Skull Woods First Section', 'Skull Woods First Section (Left)', 'Skull Woods First Section (Top)']
self.run_tests([
["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 - Compass Chest", True, []],
["Skull Woods - Map Chest", True, []],
["Skull Woods - Pot Prison", True, []],
["Skull Woods - Pinball Room", True, []]
])
def testSkullWoodsFrontOnly(self):
self.starting_regions = ['Skull Woods First Section']
self.run_tests([
["Skull Woods - Big Chest", False, []],
["Skull Woods - Big Chest", False, [], ['Never in logic']],
["Skull Woods - Compass Chest", False, []],
["Skull Woods - Compass Chest", False, ['Small Key (Skull Woods)'], ['Small Key (Skull Woods)']],
["Skull Woods - Compass Chest", True, ['Small Key (Skull Woods)', 'Small Key (Skull Woods)']],
["Skull Woods - Map Chest", True, []],
["Skull Woods - Pot Prison", False, []],
["Skull Woods - Pot Prison", False, ['Small Key (Skull Woods)'], ['Small Key (Skull Woods)']],
["Skull Woods - Pot Prison", True, ['Small Key (Skull Woods)', 'Small Key (Skull Woods)']],
["Skull Woods - Pinball Room", False, []],
["Skull Woods - Pinball Room", False, [], ['Small Key (Skull Woods)']],
["Skull Woods - Pinball Room", True, ['Small Key (Skull Woods)']]
])
def testSkullWoodsLeftOnly(self):
self.starting_regions = ['Skull Woods First Section (Left)']
self.run_tests([
["Skull Woods - Big Chest", False, []],
["Skull Woods - Big Chest", False, [], ['Never in logic']],
["Skull Woods - Compass Chest", True, []],
["Skull Woods - Map Chest", False, []],
["Skull Woods - Map Chest", False, [], ['Small Key (Skull Woods)']],
["Skull Woods - Map Chest", True, ['Small Key (Skull Woods)']],
["Skull Woods - Pot Prison", True, []],
["Skull Woods - Pinball Room", True, []]
])
def testSkullWoodsBackOnly(self):
self.starting_regions = ['Skull Woods First Section (Top)']
self.run_tests([
["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 - Compass Chest", False, []],
["Skull Woods - Compass Chest", False, ['Small Key (Skull Woods)'], ['Small Key (Skull Woods)']],
["Skull Woods - Compass Chest", True, ['Small Key (Skull Woods)', 'Small Key (Skull Woods)']],
["Skull Woods - Map Chest", True, []],
["Skull Woods - Pot Prison", False, []],
["Skull Woods - Pot Prison", False, ['Small Key (Skull Woods)'], ['Small Key (Skull Woods)']],
["Skull Woods - Pot Prison", True, ['Small Key (Skull Woods)', 'Small Key (Skull Woods)']],
["Skull Woods - Pinball Room", False, []],
["Skull Woods - Pinball Room", False, [], ['Small Key (Skull Woods)']],
["Skull Woods - Pinball Room", True, ['Small Key (Skull Woods)']]
])
def testSkullWoodsMiddle(self):
self.starting_regions = ['Skull Woods Second Section']
self.run_tests([["Skull Woods - Big Key Chest", True, []]])
def testSkullWoodsBack(self):
self.starting_regions = ['Skull Woods Final Section (Entrance)']
self.run_tests([
["Skull Woods - Bridge Room", True, []],
["Skull Woods - Boss", False, []],
["Skull Woods - Boss", False, [], ['Fire Rod']],
["Skull Woods - Boss", False, [], ['Progressive Sword']],
["Skull Woods - Boss", False, ['Small Key (Skull Woods)', 'Small Key (Skull Woods)'], ['Small Key (Skull Woods)']],
["Skull Woods - Boss", True, ['Small Key (Skull Woods)', 'Small Key (Skull Woods)', 'Small Key (Skull Woods)', 'Fire Rod', 'Progressive Sword']],
])

View File

@ -0,0 +1,80 @@
from test.dungeons.TestDungeon import TestDungeon
class TestSwampPalace(TestDungeon):
def testSwampPalace(self):
self.starting_regions = ['Swamp Palace (Entrance)']
self.run_tests([
["Swamp Palace - Entrance", False, []],
["Swamp Palace - Entrance", False, [], ['Flippers']],
["Swamp Palace - Entrance", False, [], ['Open Floodgate']],
["Swamp Palace - Entrance", True, ['Open Floodgate', 'Flippers']],
["Swamp Palace - Big Chest", False, []],
["Swamp Palace - Big Chest", False, [], ['Flippers']],
["Swamp Palace - Big Chest", False, [], ['Open Floodgate']],
["Swamp Palace - Big Chest", False, [], ['Hammer']],
["Swamp Palace - Big Chest", False, [], ['Big Key (Swamp Palace)']],
["Swamp Palace - Big Chest", False, [], ['Small Key (Swamp Palace)']],
["Swamp Palace - Big Chest", True, ['Open Floodgate', 'Big Key (Swamp Palace)', 'Small Key (Swamp Palace)', 'Flippers', 'Hammer']],
["Swamp Palace - Big Key Chest", False, []],
["Swamp Palace - Big Key Chest", False, [], ['Flippers']],
["Swamp Palace - Big Key Chest", False, [], ['Open Floodgate']],
["Swamp Palace - Big Key Chest", False, [], ['Hammer']],
["Swamp Palace - Big Key Chest", False, [], ['Small Key (Swamp Palace)']],
["Swamp Palace - Big Key Chest", True, ['Open Floodgate', 'Small Key (Swamp Palace)', 'Flippers', 'Hammer']],
["Swamp Palace - Map Chest", False, []],
["Swamp Palace - Map Chest", False, [], ['Flippers']],
["Swamp Palace - Map Chest", False, [], ['Open Floodgate']],
["Swamp Palace - Map Chest", False, [], ['Small Key (Swamp Palace)']],
["Swamp Palace - Map Chest", True, ['Open Floodgate', 'Small Key (Swamp Palace)', 'Flippers']],
["Swamp Palace - West Chest", False, []],
["Swamp Palace - West Chest", False, [], ['Flippers']],
["Swamp Palace - West Chest", False, [], ['Open Floodgate']],
["Swamp Palace - West Chest", False, [], ['Hammer']],
["Swamp Palace - West Chest", False, [], ['Small Key (Swamp Palace)']],
["Swamp Palace - West Chest", True, ['Open Floodgate', 'Small Key (Swamp Palace)', 'Flippers', 'Hammer']],
["Swamp Palace - Compass Chest", False, []],
["Swamp Palace - Compass Chest", False, [], ['Flippers']],
["Swamp Palace - Compass Chest", False, [], ['Open Floodgate']],
["Swamp Palace - Compass Chest", False, [], ['Hammer']],
["Swamp Palace - Compass Chest", False, [], ['Small Key (Swamp Palace)']],
["Swamp Palace - Compass Chest", True, ['Open Floodgate', 'Small Key (Swamp Palace)', 'Flippers', 'Hammer']],
["Swamp Palace - Flooded Room - Left", False, []],
["Swamp Palace - Flooded Room - Left", False, [], ['Flippers']],
["Swamp Palace - Flooded Room - Left", False, [], ['Open Floodgate']],
["Swamp Palace - Flooded Room - Left", False, [], ['Hammer']],
["Swamp Palace - Flooded Room - Left", False, [], ['Hookshot']],
["Swamp Palace - Flooded Room - Left", False, [], ['Small Key (Swamp Palace)']],
["Swamp Palace - Flooded Room - Left", True, ['Open Floodgate', 'Small Key (Swamp Palace)', 'Flippers', 'Hammer', 'Hookshot']],
["Swamp Palace - Flooded Room - Right", False, []],
["Swamp Palace - Flooded Room - Right", False, [], ['Flippers']],
["Swamp Palace - Flooded Room - Right", False, [], ['Open Floodgate']],
["Swamp Palace - Flooded Room - Right", False, [], ['Hammer']],
["Swamp Palace - Flooded Room - Right", False, [], ['Hookshot']],
["Swamp Palace - Flooded Room - Right", False, [], ['Small Key (Swamp Palace)']],
["Swamp Palace - Flooded Room - Right", True, ['Open Floodgate', 'Small Key (Swamp Palace)', 'Flippers', 'Hammer', 'Hookshot']],
["Swamp Palace - Waterfall Room", False, []],
["Swamp Palace - Waterfall Room", False, [], ['Flippers']],
["Swamp Palace - Waterfall Room", False, [], ['Open Floodgate']],
["Swamp Palace - Waterfall Room", False, [], ['Hammer']],
["Swamp Palace - Waterfall Room", False, [], ['Hookshot']],
["Swamp Palace - Waterfall Room", False, [], ['Small Key (Swamp Palace)']],
["Swamp Palace - Waterfall Room", True, ['Open Floodgate', 'Small Key (Swamp Palace)', 'Flippers', 'Hammer', 'Hookshot']],
["Swamp Palace - Boss", False, []],
["Swamp Palace - Boss", False, [], ['Flippers']],
["Swamp Palace - Boss", False, [], ['Open Floodgate']],
["Swamp Palace - Boss", False, [], ['Hammer']],
["Swamp Palace - Boss", False, [], ['Hookshot']],
["Swamp Palace - Boss", False, [], ['Small Key (Swamp Palace)']],
["Swamp Palace - Boss", True, ['Open Floodgate', 'Small Key (Swamp Palace)', 'Flippers', 'Hammer', 'Hookshot']],
])

View File

@ -0,0 +1,40 @@
from test.dungeons.TestDungeon import TestDungeon
class TestThievesTown(TestDungeon):
def testThievesTown(self):
self.starting_regions = ['Thieves Town (Entrance)']
self.run_tests([
["Thieves' Town - Attic", False, []],
["Thieves' Town - Attic", False, [], ['Big Key (Thieves Town)']],
["Thieves' Town - Attic", False, [], ['Small Key (Thieves Town)']],
["Thieves' Town - Attic", True, ['Big Key (Thieves Town)', 'Small Key (Thieves Town)']],
["Thieves' Town - Big Key Chest", True, []],
["Thieves' Town - Map Chest", True, []],
["Thieves' Town - Compass Chest", True, []],
["Thieves' Town - Ambush Chest", True, []],
["Thieves' Town - Big Chest", False, []],
["Thieves' Town - Big Chest", False, [], ['Big Key (Thieves Town)']],
["Thieves' Town - Big Chest", False, [], ['Small Key (Thieves Town)']],
["Thieves' Town - Big Chest", False, [], ['Hammer']],
["Thieves' Town - Big Chest", True, ['Hammer', 'Small Key (Thieves Town)', 'Big Key (Thieves Town)']],
["Thieves' Town - Blind's Cell", False, []],
["Thieves' Town - Blind's Cell", False, [], ['Big Key (Thieves Town)']],
["Thieves' Town - Blind's Cell", True, ['Big Key (Thieves Town)']],
["Thieves' Town - Boss", False, []],
["Thieves' Town - Boss", False, [], ['Big Key (Thieves Town)']],
["Thieves' Town - Boss", False, [], ['Small Key (Thieves Town)']],
["Thieves' Town - Boss", False, [], ['Hammer', 'Progressive Sword', 'Cane of Somaria', 'Cane of Byrna']],
["Thieves' Town - Boss", True, ['Small Key (Thieves Town)', 'Big Key (Thieves Town)', 'Hammer']],
["Thieves' Town - Boss", True, ['Small Key (Thieves Town)', 'Big Key (Thieves Town)', 'Progressive Sword']],
["Thieves' Town - Boss", True, ['Small Key (Thieves Town)', 'Big Key (Thieves Town)', 'Cane of Somaria']],
["Thieves' Town - Boss", True, ['Small Key (Thieves Town)', 'Big Key (Thieves Town)', 'Cane of Byrna']],
])

View File

@ -0,0 +1,32 @@
from test.dungeons.TestDungeon import TestDungeon
class TestTowerOfHera(TestDungeon):
def testTowerOfHera(self):
self.starting_regions = ['Tower of Hera (Bottom)']
self.run_tests([
["Tower of Hera - Big Key Chest", False, []],
["Tower of Hera - Big Key Chest", False, [], ['Small Key (Tower of Hera)']],
["Tower of Hera - Big Key Chest", False, [], ['Lamp', 'Fire Rod']],
["Tower of Hera - Big Key Chest", True, ['Small Key (Tower of Hera)', 'Lamp']],
["Tower of Hera - Big Key Chest", True, ['Small Key (Tower of Hera)', 'Fire Rod']],
["Tower of Hera - Basement Cage", True, []],
["Tower of Hera - Map Chest", True, []],
["Tower of Hera - Compass Chest", False, []],
["Tower of Hera - Compass Chest", False, [], ['Big Key (Tower of Hera)']],
["Tower of Hera - Compass Chest", True, ['Big Key (Tower of Hera)']],
["Tower of Hera - Big Chest", False, []],
["Tower of Hera - Big Chest", False, [], ['Big Key (Tower of Hera)']],
["Tower of Hera - Big Chest", True, ['Big Key (Tower of Hera)']],
["Tower of Hera - Boss", False, []],
["Tower of Hera - Boss", False, [], ['Big Key (Tower of Hera)']],
["Tower of Hera - Boss", False, [], ['Progressive Sword', 'Hammer']],
["Tower of Hera - Boss", True, ['Progressive Sword', 'Big Key (Tower of Hera)']],
["Tower of Hera - Boss", True, ['Hammer', 'Big Key (Tower of Hera)']],
])

View File

View File

@ -0,0 +1,28 @@
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.TestVanilla import TestVanilla
class TestInverted(TestVanilla):
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,
'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
mark_light_world_regions(self.world)
set_rules(self.world, 1)

View File

@ -0,0 +1,116 @@
from test.inverted.TestInverted import TestInverted
class TestInvertedDeathMountain(TestInverted):
def testNorthWest(self):
self.run_tests([
["Brewery", True, []],
["C-Shaped House", True, []],
["Chest Game", True, []],
["Peg Cave", False, []],
["Peg Cave", False, [], ['Hammer']],
["Peg Cave", False, [], ['Progressive Glove', 'Magic Mirror']],
["Peg Cave", True, ['Hammer', 'Progressive Glove', 'Progressive Glove']],
["Peg Cave", True, ['Hammer', 'Progressive Glove', 'Magic Mirror', 'Moon Pearl']],
["Peg Cave", True, ['Hammer', 'Beat Agahnim 1', 'Magic Mirror']],
["Bumper Cave Ledge", False, []],
["Bumper Cave Ledge", False, [], ['Moon Pearl']],
["Bumper Cave Ledge", False, [], ['Cape']],
["Bumper Cave Ledge", False, [], ['Progressive Glove']],
["Bumper Cave Ledge", False, [], ['Magic Mirror']],
["Bumper Cave Ledge", True, ['Moon Pearl', 'Cape', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove']],
["Bumper Cave Ledge", True, ['Moon Pearl', 'Cape', 'Magic Mirror', 'Progressive Glove', 'Hammer']],
["Bumper Cave Ledge", True, ['Moon Pearl', 'Cape', 'Magic Mirror', 'Progressive Glove', 'Beat Agahnim 1']],
["Blacksmith", False, []],
["Blacksmith", False, [], ['Progressive Glove', 'Magic Mirror']],
["Blacksmith", True, ['Progressive Glove', 'Progressive Glove', 'Moon Pearl']],
#@todo: Can get this without moon pearl
#["Blacksmith", True, ['Beat Agahnim 1', 'Magic Mirror']],
["Blacksmith", True, ['Beat Agahnim 1', 'Magic Mirror', 'Moon Pearl']],
["Blacksmith", True, ['Progressive Glove', 'Hammer', 'Magic Mirror', 'Moon Pearl']],
["Purple Chest", False, []],
["Purple Chest", False, [], ['Progressive Glove', 'Magic Mirror']],
["Purple Chest", True, ['Progressive Glove', 'Progressive Glove', 'Moon Pearl']],
# @todo: Can get this without moon pearl
#["Purple Chest", True, ['Beat Agahnim 1', 'Magic Mirror']],
["Purple Chest", True, ['Beat Agahnim 1', 'Magic Mirror', 'Moon Pearl']],
["Purple Chest", True, ['Progressive Glove', 'Hammer', 'Magic Mirror', 'Moon Pearl']],
])
def testNorthEast(self):
self.run_tests([
["Catfish", False, []],
["Catfish", False, [], ['Progressive Glove', 'Flippers']],
["Catfish", False, [], ['Progressive Glove', 'Magic Mirror']],
["Catfish", False, [], ['Progressive Glove', 'Moon Pearl']],
["Catfish", True, ['Beat Agahnim 1', 'Magic Mirror', 'Progressive Glove']],
["Catfish", True, ['Beat Agahnim 1', 'Moon Pearl', 'Magic Mirror', 'Flippers']],
["Catfish", True, ['Progressive Glove', 'Hammer']],
["Catfish", True, ['Progressive Glove', 'Flippers']],
["Catfish", True, ['Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Moon Pearl']],
["Pyramid", False, []],
["Pyramid", True, ['Beat Agahnim 1', 'Magic Mirror']],
["Pyramid", True, ['Hammer']],
["Pyramid", True, ['Flippers', 'Progressive Glove']],
["Pyramid", True, ['Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Moon Pearl']],
["Pyramid Fairy - Left", False, []],
["Pyramid Fairy - Left", False, [], ['Magic Mirror']],
["Pyramid Fairy - Left", False, [], ['Crystal 5']],
["Pyramid Fairy - Left", False, [], ['Crystal 6']],
["Pyramid Fairy - Right", True, ['Crystal 5', 'Crystal 6', 'Magic Mirror', 'Hammer', 'Progressive Glove', 'Moon Pearl']],
["Pyramid Fairy - Right", True, ['Crystal 5', 'Crystal 6', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Moon Pearl']],
["Pyramid Fairy - Right", True, ['Crystal 5', 'Crystal 6', 'Magic Mirror', 'Beat Agahnim 1']],
["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', 'Hammer', 'Progressive Glove', 'Moon Pearl']],
["Pyramid Fairy - Right", True, ['Crystal 5', 'Crystal 6', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Moon Pearl']],
["Pyramid Fairy - Right", True, ['Crystal 5', 'Crystal 6', 'Magic Mirror', 'Beat Agahnim 1']],
])
def testSouth(self):
self.run_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, []],
["Link's House", True, []],
])
def testMireArea(self):
self.run_tests([
["Mire Shed - Left", False, []],
["Mire Shed - Left", False, [], ['Ocarina', 'Magic Mirror']],
["Mire Shed - Left", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove']],
["Mire Shed - Left", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Hammer']],
["Mire Shed - Left", True, ['Moon Pearl', 'Ocarina', 'Beat Agahnim 1']],
["Mire Shed - Left", True, ['Magic Mirror', 'Beat Agahnim 1']],
["Mire Shed - Right", False, []],
["Mire Shed - Right", False, [], ['Ocarina', 'Magic Mirror']],
["Mire Shed - Right", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove']],
["Mire Shed - Right", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Hammer']],
["Mire Shed - Right", True, ['Moon Pearl', 'Ocarina', 'Beat Agahnim 1']],
["Mire Shed - Right", True, ['Magic Mirror', 'Beat Agahnim 1']],
])

View File

@ -0,0 +1,229 @@
from test.inverted.TestInverted import TestInverted
class TestInvertedDeathMountain(TestInverted):
def testWestDeathMountain(self):
self.run_tests([
["Old Man", False, []],
["Old Man", False, [], ['Progressive Glove', 'Ocarina']],
["Old Man", False, [], ['Lamp']],
["Old Man", True, ['Progressive Glove', 'Lamp']],
["Old Man", False, ['Ocarina', 'Lamp']],
["Spectacle Rock Cave", False, []],
["Spectacle Rock Cave", False, [], ['Progressive Glove', 'Ocarina']],
["Spectacle Rock Cave", False, [], ['Lamp', 'Ocarina']],
["Spectacle Rock Cave", False, ['Ocarina', 'Progressive Glove', 'Hammer']],
["Spectacle Rock Cave", False, ['Ocarina', 'Progressive Glove', 'Progressive Glove', 'Hammer']],
["Spectacle Rock Cave", False, ['Progressive Glove', 'Hammer', 'Moon Pearl']],
["Spectacle Rock Cave", True, ['Ocarina', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Spectacle Rock Cave", True, ['Ocarina', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Spectacle Rock Cave", True, ['Progressive Glove', 'Lamp']],
])
def testEastDeathMountain(self):
self.run_tests([
["Spiral Cave", False, []],
["Spiral Cave", False, [], ['Moon Pearl']],
["Spiral Cave", False, [], ['Progressive Glove', 'Ocarina']],
["Spiral Cave", False, [], ['Lamp', 'Ocarina']],
["Spiral Cave", False, ['Progressive Glove'], ['Hookshot', 'Progressive Glove']],
["Spiral Cave", False, ['Progressive Glove', 'Lamp', 'Moon Pearl']],
["Spiral Cave", False, ['Progressive Glove', 'Hookshot', 'Moon Pearl']],
["Spiral Cave", False, ['Ocarina', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Spiral Cave", False, ['Ocarina', 'Hookshot', 'Moon Pearl']],
["Spiral Cave", True, ['Ocarina', 'Hookshot', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Spiral Cave", True, ['Progressive Glove', 'Lamp', 'Moon Pearl', 'Hookshot']],
["Spiral Cave", True, ['Progressive Glove', 'Progressive Glove', 'Lamp', 'Moon Pearl']],
["Spiral Cave", True, ['Ocarina', 'Progressive Glove', 'Progressive Glove', 'Moon Pearl']],
["Paradox Cave Lower - Far Left", False, []],
["Paradox Cave Lower - Far Left", False, [], ['Moon Pearl']],
["Paradox Cave Lower - Far Left", False, [], ['Progressive Glove', 'Ocarina']],
["Paradox Cave Lower - Far Left", False, [], ['Lamp', 'Ocarina']],
["Paradox Cave Lower - Far Left", False, ['Progressive Glove'], ['Progressive Glove', 'Hookshot']],
["Paradox Cave Lower - Far Left", False, ['Progressive Glove', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Lower - Far Left", False, ['Ocarina', 'Progressive Glove', 'Hammer', 'Moon Pearl']],
["Paradox Cave Lower - Far Left", True, ['Ocarina', 'Progressive Glove', 'Hammer', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Lower - Far Left", True, ['Progressive Glove', 'Lamp', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Lower - Far Left", True, ['Progressive Glove', 'Progressive Glove', 'Lamp', 'Moon Pearl']],
["Paradox Cave Lower - Far Left", True, ['Ocarina', 'Progressive Glove', 'Progressive Glove', 'Moon Pearl']],
["Paradox Cave Lower - Left", False, []],
["Paradox Cave Lower - Left", False, [], ['Moon Pearl']],
["Paradox Cave Lower - Left", False, [], ['Progressive Glove', 'Ocarina']],
["Paradox Cave Lower - Left", False, [], ['Lamp', 'Ocarina']],
["Paradox Cave Lower - Left", False, ['Progressive Glove'], ['Progressive Glove', 'Hookshot']],
["Paradox Cave Lower - Left", False, ['Progressive Glove', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Lower - Left", False, ['Ocarina', 'Progressive Glove', 'Hammer', 'Moon Pearl']],
["Paradox Cave Lower - Left", True, ['Ocarina', 'Progressive Glove', 'Hammer', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Lower - Left", True, ['Progressive Glove', 'Lamp', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Lower - Left", True, ['Progressive Glove', 'Progressive Glove', 'Lamp', 'Moon Pearl']],
["Paradox Cave Lower - Left", True, ['Ocarina', 'Progressive Glove', 'Progressive Glove', 'Moon Pearl']],
["Paradox Cave Lower - Middle", False, []],
["Paradox Cave Lower - Middle", False, [], ['Moon Pearl']],
["Paradox Cave Lower - Middle", False, [], ['Progressive Glove', 'Ocarina']],
["Paradox Cave Lower - Middle", False, [], ['Lamp', 'Ocarina']],
["Paradox Cave Lower - Middle", False, ['Progressive Glove'], ['Progressive Glove', 'Hookshot']],
["Paradox Cave Lower - Middle", False, ['Progressive Glove', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Lower - Middle", False, ['Ocarina', 'Progressive Glove', 'Hammer', 'Moon Pearl']],
["Paradox Cave Lower - Middle", True, ['Ocarina', 'Progressive Glove', 'Hammer', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Lower - Middle", True, ['Progressive Glove', 'Lamp', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Lower - Middle", True, ['Progressive Glove', 'Progressive Glove', 'Lamp', 'Moon Pearl']],
["Paradox Cave Lower - Middle", True, ['Ocarina', 'Progressive Glove', 'Progressive Glove', 'Moon Pearl']],
["Paradox Cave Lower - Right", False, []],
["Paradox Cave Lower - Right", False, [], ['Moon Pearl']],
["Paradox Cave Lower - Right", False, [], ['Progressive Glove', 'Ocarina']],
["Paradox Cave Lower - Right", False, [], ['Lamp', 'Ocarina']],
["Paradox Cave Lower - Right", False, ['Progressive Glove'], ['Progressive Glove', 'Hookshot']],
["Paradox Cave Lower - Right", False, ['Progressive Glove', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Lower - Right", False, ['Ocarina', 'Progressive Glove', 'Hammer', 'Moon Pearl']],
["Paradox Cave Lower - Right", True, ['Ocarina', 'Progressive Glove', 'Hammer', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Lower - Right", True, ['Progressive Glove', 'Lamp', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Lower - Right", True, ['Progressive Glove', 'Progressive Glove', 'Lamp', 'Moon Pearl']],
["Paradox Cave Lower - Right", True, ['Ocarina', 'Progressive Glove', 'Progressive Glove', 'Moon Pearl']],
["Paradox Cave Lower - Far Right", False, []],
["Paradox Cave Lower - Far Right", False, [], ['Moon Pearl']],
["Paradox Cave Lower - Far Right", False, [], ['Progressive Glove', 'Ocarina']],
["Paradox Cave Lower - Far Right", False, [], ['Lamp', 'Ocarina']],
["Paradox Cave Lower - Far Right", False, ['Progressive Glove'], ['Progressive Glove', 'Hookshot']],
["Paradox Cave Lower - Far Right", False, ['Progressive Glove', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Lower - Far Right", False, ['Ocarina', 'Progressive Glove', 'Hammer', 'Moon Pearl']],
["Paradox Cave Lower - Far Right", True, ['Ocarina', 'Progressive Glove', 'Hammer', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Lower - Far Right", True, ['Progressive Glove', 'Lamp', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Lower - Far Right", True, ['Progressive Glove', 'Progressive Glove', 'Lamp', 'Moon Pearl']],
["Paradox Cave Lower - Far Right", True, ['Ocarina', 'Progressive Glove', 'Progressive Glove', 'Moon Pearl']],
["Paradox Cave Upper - Left", False, []],
["Paradox Cave Upper - Left", False, [], ['Moon Pearl']],
["Paradox Cave Upper - Left", False, [], ['Progressive Glove', 'Ocarina']],
["Paradox Cave Upper - Left", False, [], ['Lamp', 'Ocarina']],
["Paradox Cave Upper - Left", False, ['Progressive Glove'], ['Progressive Glove', 'Hookshot']],
["Paradox Cave Upper - Left", False, ['Progressive Glove', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Upper - Left", False, ['Ocarina', 'Progressive Glove', 'Hammer', 'Moon Pearl']],
["Paradox Cave Upper - Left", True, ['Ocarina', 'Progressive Glove', 'Hammer', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Upper - Left", True, ['Progressive Glove', 'Lamp', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Upper - Left", True, ['Progressive Glove', 'Progressive Glove', 'Lamp', 'Moon Pearl']],
["Paradox Cave Upper - Left", True, ['Ocarina', 'Progressive Glove', 'Progressive Glove', 'Moon Pearl']],
["Paradox Cave Upper - Right", False, []],
["Paradox Cave Upper - Right", False, [], ['Moon Pearl']],
["Paradox Cave Upper - Right", False, [], ['Progressive Glove', 'Ocarina']],
["Paradox Cave Upper - Right", False, [], ['Lamp', 'Ocarina']],
["Paradox Cave Upper - Right", False, ['Progressive Glove'], ['Progressive Glove', 'Hookshot']],
["Paradox Cave Upper - Right", False, ['Progressive Glove', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Upper - Right", False, ['Ocarina', 'Progressive Glove', 'Hammer', 'Moon Pearl']],
["Paradox Cave Upper - Right", True, ['Ocarina', 'Progressive Glove', 'Hammer', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Upper - Right", True, ['Progressive Glove', 'Lamp', 'Hookshot', 'Moon Pearl']],
["Paradox Cave Upper - Right", True, ['Progressive Glove', 'Progressive Glove', 'Lamp', 'Moon Pearl']],
["Paradox Cave Upper - Right", True, ['Ocarina', 'Progressive Glove', 'Progressive Glove', 'Moon Pearl']],
["Mimic Cave", False, []],
["Mimic Cave", False, [], ['Moon Pearl']],
["Mimic Cave", False, [], ['Hammer']],
["Mimic Cave", False, [], ['Progressive Glove', 'Ocarina']],
["Mimic Cave", False, [], ['Lamp', 'Ocarina']],
["Mimic Cave", True, ['Ocarina', 'Moon Pearl', 'Progressive Glove', 'Hammer', 'Hookshot']],
["Mimic Cave", True, ['Ocarina', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hammer']],
["Mimic Cave", True, ['Progressive Glove', 'Lamp', 'Moon Pearl', 'Hammer', 'Hookshot']],
["Mimic Cave", True, ['Progressive Glove', 'Progressive Glove', 'Lamp', 'Moon Pearl', 'Hammer']],
["Ether Tablet", False, []],
["Ether Tablet", False, [], ['Moon Pearl']],
["Ether Tablet", False, [], ['Progressive Glove', 'Ocarina']],
["Ether Tablet", False, [], ['Lamp', 'Ocarina']],
["Ether Tablet", False, ['Progressive Glove'], ['Progressive Glove', 'Hookshot']],
["Ether Tablet", False, [], ['Hammer']],
["Ether Tablet", False, ['Progressive Sword'], ['Progressive Sword']],
["Ether Tablet", False, [], ['Book of Mudora']],
["Ether Tablet", True, ['Ocarina', 'Moon Pearl', 'Progressive Glove', 'Hammer', 'Hookshot', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword']],
["Ether Tablet", True, ['Ocarina', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hammer', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword']],
["Ether Tablet", True, ['Progressive Glove', 'Lamp', 'Moon Pearl', 'Hammer', 'Hookshot', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword']],
["Ether Tablet", True, ['Progressive Glove', 'Progressive Glove', 'Lamp', 'Moon Pearl', 'Hammer', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword']],
["Spectacle Rock", False, []],
["Spectacle Rock", False, [], ['Moon Pearl']],
["Spectacle Rock", False, [], ['Progressive Glove', 'Ocarina']],
["Spectacle Rock", False, [], ['Lamp', 'Ocarina']],
["Spectacle Rock", False, ['Progressive Glove'], ['Progressive Glove', 'Hookshot']],
["Spectacle Rock", False, [], ['Hammer']],
["Spectacle Rock", True, ['Ocarina', 'Moon Pearl', 'Progressive Glove', 'Hammer', 'Hookshot']],
["Spectacle Rock", True, ['Ocarina', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove', 'Hammer']],
["Spectacle Rock", True, ['Progressive Glove', 'Lamp', 'Moon Pearl', 'Hammer', 'Hookshot']],
["Spectacle Rock", True, ['Progressive Glove', 'Progressive Glove', 'Lamp', 'Moon Pearl', 'Hammer']],
])
def testEastDarkWorldDeathMountain(self):
self.run_tests([
["Superbunny Cave - Top", False, []],
["Superbunny Cave - Top", False, [], ['Progressive Glove', 'Ocarina']],
["Superbunny Cave - Top", True, ['Progressive Glove', 'Lamp']],
["Superbunny Cave - Top", True, ['Progressive Glove', 'Progressive Glove', 'Moon Pearl', 'Ocarina']],
["Superbunny Cave - Top", True, ['Hammer', 'Progressive Glove', 'Moon Pearl', 'Ocarina']],
["Superbunny Cave - Bottom", False, []],
["Superbunny Cave - Bottom", False, [], ['Progressive Glove', 'Ocarina']],
["Superbunny Cave - Bottom", True, ['Progressive Glove', 'Lamp']],
["Superbunny Cave - Bottom", True, ['Progressive Glove', 'Progressive Glove', 'Moon Pearl', 'Ocarina']],
["Superbunny Cave - Bottom", True, ['Hammer', 'Progressive Glove', 'Moon Pearl', 'Ocarina']],
["Hookshot Cave - Bottom Right", False, []],
["Hookshot Cave - Bottom Right", False, [], ['Progressive Glove', 'Ocarina']],
["Hookshot Cave - Bottom Right", False, [], ['Pegasus Boots', 'Hookshot']],
["Hookshot Cave - Bottom Right", True, ['Progressive Glove', 'Lamp', 'Pegasus Boots']],
["Hookshot Cave - Bottom Right", True, ['Progressive Glove', 'Progressive Glove', 'Moon Pearl', 'Ocarina', 'Pegasus Boots']],
["Hookshot Cave - Bottom Right", True, ['Progressive Glove', 'Hammer', 'Moon Pearl', 'Ocarina', 'Pegasus Boots']],
["Hookshot Cave - Bottom Right", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Hookshot Cave - Bottom Right", True, ['Progressive Glove', 'Progressive Glove', 'Moon Pearl', 'Ocarina', 'Hookshot']],
["Hookshot Cave - Bottom Right", True, ['Progressive Glove', 'Hammer', 'Moon Pearl', 'Ocarina', 'Hookshot']],
["Hookshot Cave - Bottom Left", False, []],
["Hookshot Cave - Bottom Left", False, [], ['Progressive Glove', 'Ocarina']],
["Hookshot Cave - Bottom Left", False, [], ['Pegasus Boots', 'Hookshot']],
["Hookshot Cave - Bottom Left", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Hookshot Cave - Bottom Left", True, ['Progressive Glove', 'Progressive Glove', 'Moon Pearl', 'Ocarina', 'Hookshot']],
["Hookshot Cave - Bottom Left", True, ['Progressive Glove', 'Hammer', 'Moon Pearl', 'Ocarina', 'Hookshot']],
["Hookshot Cave - Top Left", False, []],
["Hookshot Cave - Top Left", False, [], ['Progressive Glove', 'Ocarina']],
["Hookshot Cave - Top Left", False, [], ['Pegasus Boots', 'Hookshot']],
["Hookshot Cave - Top Left", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Hookshot Cave - Top Left", True, ['Progressive Glove', 'Progressive Glove', 'Moon Pearl', 'Ocarina', 'Hookshot']],
["Hookshot Cave - Top Left", True, ['Progressive Glove', 'Hammer', 'Moon Pearl', 'Ocarina', 'Hookshot']],
["Hookshot Cave - Top Right", False, []],
["Hookshot Cave - Top Right", False, [], ['Progressive Glove', 'Ocarina']],
["Hookshot Cave - Top Right", False, [], ['Pegasus Boots', 'Hookshot']],
["Hookshot Cave - Top Right", True, ['Progressive Glove', 'Lamp', 'Hookshot']],
["Hookshot Cave - Top Right", True, ['Progressive Glove', 'Progressive Glove', 'Moon Pearl', 'Ocarina', 'Hookshot']],
["Hookshot Cave - Top Right", True, ['Progressive Glove', 'Hammer', 'Moon Pearl', 'Ocarina', 'Hookshot']],
])
def testWestDarkWorldDeathMountain(self):
self.run_tests([
["Spike Cave", False, []],
["Spike Cave", False, [], ['Progressive Glove']],
["Spike Cave", False, [], ['Hammer']],
["Spike Cave", False, [], ['Cape', 'Cane of Byrna']],
["Spike Cave", False, [], ['Cane of Byrna', 'AnyBottle', 'Magic Upgrade (1/2)']],
["Spike Cave", False, [], ['AnyBottle', 'Magic Upgrade (1/2)', 'Pegasus Boots', 'Boss Heart Container', 'Piece of Heart', 'Sanctuary Heart Container']],
["Spike Cave", False, ['Bottle', 'Hammer', 'Progressive Glove', 'Lamp', 'Cape']],
["Spike Cave", True, ['Bottle', 'Hammer', 'Progressive Glove', 'Lamp', 'Moon Pearl', 'Cape']],
["Spike Cave", True, ['Bottle', 'Hammer', 'Progressive Glove', 'Ocarina', 'Moon Pearl', 'Cape']],
["Spike Cave", False, ['Bottle', 'Hammer', 'Progressive Glove', 'Lamp', 'Cane of Byrna']],
["Spike Cave", True, ['Bottle', 'Hammer', 'Progressive Glove', 'Lamp', 'Moon Pearl', 'Cane of Byrna']],
["Spike Cave", True, ['Bottle', 'Hammer', 'Progressive Glove', 'Ocarina', 'Moon Pearl', 'Cane of Byrna']],
["Spike Cave", True, ['Magic Upgrade (1/2)', 'Hammer', 'Progressive Glove', 'Lamp', 'Cape']],
["Spike Cave", True, ['Magic Upgrade (1/2)', 'Hammer', 'Progressive Glove', 'Ocarina', 'Moon Pearl', 'Cape']],
["Spike Cave", True, ['Magic Upgrade (1/2)', 'Hammer', 'Progressive Glove', 'Lamp', 'Cane of Byrna']],
["Spike Cave", True, ['Magic Upgrade (1/2)', 'Hammer', 'Progressive Glove', 'Ocarina', 'Moon Pearl', 'Cane of Byrna']],
["Spike Cave", True, ['Pegasus Boots', 'Hammer', 'Progressive Glove', 'Lamp', 'Cane of Byrna']],
["Spike Cave", True, ['Pegasus Boots', 'Hammer', 'Progressive Glove', 'Ocarina', 'Moon Pearl', 'Cane of Byrna']],
["Spike Cave", True, ['Boss Heart Container', 'Hammer', 'Progressive Glove', 'Lamp', 'Cane of Byrna']],
["Spike Cave", True, ['Boss Heart Container', 'Hammer', 'Progressive Glove', 'Ocarina', 'Moon Pearl', 'Cane of Byrna']],
])

View File

@ -0,0 +1,380 @@
from test.inverted.TestInverted import TestInverted
class TestInvertedLightWorld(TestInverted):
def setUp(self):
super().setUp()
def testLostWoods(self):
self.run_tests([
["Master Sword Pedestal", False, []],
["Master Sword Pedestal", False, [], ['Green Pendant']],
["Master Sword Pedestal", False, [], ['Red Pendant']],
["Master Sword Pedestal", False, [], ['Blue Pendant']],
# @todo: Can get this without moon pearl
# ["Master Sword Pedestal", True, ['Green Pendant', 'Red Pendant', 'Blue Pendant', 'Beat Agahnim 1']],
["Master Sword Pedestal", True, ['Green Pendant', 'Red Pendant', 'Blue Pendant', 'Beat Agahnim 1', 'Moon Pearl']],
["Master Sword Pedestal", True, ['Green Pendant', 'Red Pendant', 'Blue Pendant', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Master Sword Pedestal", True, ['Green Pendant', 'Red Pendant', 'Blue Pendant', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Mushroom", False, []],
["Mushroom", False, [], ['Moon Pearl']],
["Mushroom", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Mushroom", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Mushroom", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Lost Woods Hideout", False, []],
["Lost Woods Hideout", False, [], ['Moon Pearl']],
["Lost Woods Hideout", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Lost Woods Hideout", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Lost Woods Hideout", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Lumberjack Tree", False, []],
["Lumberjack Tree", False, [], ['Pegasus Boots']],
["Lumberjack Tree", False, [], ['Beat Agahnim 1']],
["Lumberjack Tree", False, [], ['Moon Pearl']],
["Lumberjack Tree", True, ['Pegasus Boots', 'Beat Agahnim 1', 'Moon Pearl']],
])
def testKakariko(self):
self.run_tests([
["Kakariko Tavern", False, []],
["Kakariko Tavern", False, [], ['Moon Pearl']],
["Kakariko Tavern", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Kakariko Tavern", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Kakariko Tavern", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Chicken House", False, []],
["Chicken House", False, [], ['Moon Pearl']],
["Chicken House", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Chicken House", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Chicken House", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Kakariko Well - Top", False, []],
["Kakariko Well - Top", False, [], ['Moon Pearl']],
["Kakariko Well - Top", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Kakariko Well - Top", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Kakariko Well - Top", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Kakariko Well - Left", False, []],
["Kakariko Well - Left", False, [], ['Moon Pearl']],
["Kakariko Well - Left", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Kakariko Well - Left", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Kakariko Well - Left", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Kakariko Well - Middle", False, []],
["Kakariko Well - Middle", False, [], ['Moon Pearl']],
["Kakariko Well - Middle", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Kakariko Well - Middle", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Kakariko Well - Middle", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Kakariko Well - Right", False, []],
["Kakariko Well - Right", False, [], ['Moon Pearl']],
["Kakariko Well - Right", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Kakariko Well - Right", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Kakariko Well - Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Kakariko Well - Bottom", False, []],
["Kakariko Well - Bottom", False, [], ['Moon Pearl']],
["Kakariko Well - Bottom", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Kakariko Well - Bottom", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Kakariko Well - Bottom", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Blind's Hideout - Top", False, []],
["Blind's Hideout - Top", False, [], ['Moon Pearl']],
["Blind's Hideout - Top", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Blind's Hideout - Top", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Blind's Hideout - Top", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Blind's Hideout - Left", False, []],
["Blind's Hideout - Left", False, [], ['Moon Pearl']],
["Blind's Hideout - Left", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Blind's Hideout - Left", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Blind's Hideout - Left", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Blind's Hideout - Right", False, []],
["Blind's Hideout - Right", False, [], ['Moon Pearl']],
["Blind's Hideout - Right", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Blind's Hideout - Right", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Blind's Hideout - Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Blind's Hideout - Far Left", False, []],
["Blind's Hideout - Far Left", False, [], ['Moon Pearl']],
["Blind's Hideout - Far Left", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Blind's Hideout - Far Left", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Blind's Hideout - Far Left", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Blind's Hideout - Far Right", False, []],
["Blind's Hideout - Far Right", False, [], ['Moon Pearl']],
["Blind's Hideout - Far Right", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Blind's Hideout - Far Right", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Blind's Hideout - Far Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Bottle Merchant", False, []],
#@todo: Can get this without moon pearl
#["Bottle Merchant", True, ['Beat Agahnim 1']],
["Bottle Merchant", True, ['Beat Agahnim 1', 'Moon Pearl']],
["Bottle Merchant", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Bottle Merchant", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["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)', 'Beat Agahnim 1']],
["Sick Kid", True, ['Bottle (Bee)', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Sick Kid", True, ['Bottle (Bee)', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Sick Kid", True, ['Bottle (Fairy)', 'Beat Agahnim 1']],
["Sick Kid", True, ['Bottle (Fairy)', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Sick Kid", True, ['Bottle (Fairy)', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Sick Kid", True, ['Bottle (Red Potion)', 'Beat Agahnim 1']],
["Sick Kid", True, ['Bottle (Red Potion)', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Sick Kid", True, ['Bottle (Red Potion)', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Sick Kid", True, ['Bottle (Green Potion)', 'Beat Agahnim 1']],
["Sick Kid", True, ['Bottle (Green Potion)', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Sick Kid", True, ['Bottle (Green Potion)', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Sick Kid", True, ['Bottle (Blue Potion)', 'Beat Agahnim 1']],
["Sick Kid", True, ['Bottle (Blue Potion)', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Sick Kid", True, ['Bottle (Blue Potion)', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Sick Kid", True, ['Bottle', 'Beat Agahnim 1']],
["Sick Kid", True, ['Bottle', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Sick Kid", True, ['Bottle', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Sick Kid", True, ['Bottle (Good Bee)', 'Beat Agahnim 1']],
["Sick Kid", True, ['Bottle (Good Bee)', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Sick Kid", True, ['Bottle (Good Bee)', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Magic Bat", False, []],
["Magic Bat", False, [], ['Magic Powder']],
["Magic Bat", False, [], ['Hammer']],
["Magic Bat", False, [], ['Moon Pearl']],
["Magic Bat", False, ['Magic Powder', 'Hammer', 'Moon Pearl']],
["Magic Bat", True, ['Magic Powder', 'Hammer', 'Moon Pearl', 'Beat Agahnim 1']],
["Magic Bat", True, ['Magic Powder', 'Hammer', 'Moon Pearl', 'Progressive Glove']],
["Library", False, []],
["Library", False, [], ['Pegasus Boots']],
["Library", False, [], ['Moon Pearl']],
["Library", True, ['Pegasus Boots', 'Moon Pearl', 'Beat Agahnim 1']],
["Library", True, ['Pegasus Boots', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Library", True, ['Pegasus Boots', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Maze Race", False, []],
["Maze Race", False, [], ['Moon Pearl']],
["Maze Race", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Maze Race", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Maze Race", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
])
def testSouthLightWorld(self):
self.run_tests([
["Desert Ledge", False, []],
["Desert Ledge", False, [], ['Book of Mudora']],
["Desert Ledge", False, [], ['Moon Pearl']],
["Desert Ledge", True, ['Book of Mudora', 'Moon Pearl', 'Beat Agahnim 1']],
["Desert Ledge", True, ['Book of Mudora', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Desert Ledge", True, ['Book of Mudora', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Checkerboard Cave", False, []],
["Checkerboard Cave", False, [], ['Progressive Glove']],
["Checkerboard Cave", False, [], ['Moon Pearl']],
["Checkerboard Cave", True, ['Progressive Glove', 'Beat Agahnim 1', 'Moon Pearl']],
["Checkerboard Cave", True, ['Progressive Glove', 'Hammer', 'Moon Pearl']],
["Checkerboard Cave", True, ['Progressive Glove', 'Progressive Glove', 'Moon Pearl']],
["Aginah's Cave", False, []],
["Aginah's Cave", False, [], ['Moon Pearl']],
["Aginah's Cave", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Aginah's Cave", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Aginah's Cave", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Bombos Tablet", False, []],
["Bombos Tablet", False, ['Progressive Sword'], ['Progressive Sword']],
["Bombos Tablet", False, [], ['Book of Mudora']],
["Bombos Tablet", False, [], ['Moon Pearl', 'Beat Agahnim 1']],
["Bombos Tablet", True, ['Beat Agahnim 1', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword']],
["Bombos Tablet", True, ['Moon Pearl', 'Book of Mudora', 'Progressive Glove', 'Progressive Glove', 'Progressive Sword', 'Progressive Sword']],
["Bombos Tablet", True, ['Moon Pearl', 'Book of Mudora', 'Progressive Glove', 'Hammer', 'Progressive Sword', 'Progressive Sword']],
["Bombos Tablet", True, ['Moon Pearl', 'Book of Mudora', 'Beat Agahnim 1', 'Progressive Sword', 'Progressive Sword']],
["Floodgate Chest", False, []],
["Floodgate Chest", False, [], ['Moon Pearl']],
["Floodgate Chest", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Floodgate Chest", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Floodgate Chest", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Sunken Treasure", False, []],
["Sunken Treasure", False, [], ['Moon Pearl']],
["Sunken Treasure", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Sunken Treasure", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Sunken Treasure", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Mini Moldorm Cave - Far Left", False, []],
["Mini Moldorm Cave - Far Left", False, [], ['Moon Pearl']],
["Mini Moldorm Cave - Far Left", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Mini Moldorm Cave - Far Left", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Mini Moldorm Cave - Far Left", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Mini Moldorm Cave - Left", False, []],
["Mini Moldorm Cave - Left", False, [], ['Moon Pearl']],
["Mini Moldorm Cave - Left", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Mini Moldorm Cave - Left", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Mini Moldorm Cave - Left", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Mini Moldorm Cave - Generous Guy", False, []],
["Mini Moldorm Cave - Generous Guy", False, [], ['Moon Pearl']],
["Mini Moldorm Cave - Generous Guy", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Mini Moldorm Cave - Generous Guy", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Mini Moldorm Cave - Generous Guy", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Mini Moldorm Cave - Right", False, []],
["Mini Moldorm Cave - Right", False, [], ['Moon Pearl']],
["Mini Moldorm Cave - Right", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Mini Moldorm Cave - Right", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Mini Moldorm Cave - Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Mini Moldorm Cave - Far Right", False, []],
["Mini Moldorm Cave - Far Right", False, [], ['Moon Pearl']],
["Mini Moldorm Cave - Far Right", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Mini Moldorm Cave - Far Right", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Mini Moldorm Cave - Far Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Ice Rod Cave", False, []],
["Ice Rod Cave", False, [], ['Moon Pearl']],
["Ice Rod Cave", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Ice Rod Cave", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Ice Rod Cave", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
])
def testZoraArea(self):
self.run_tests([
["King Zora", False, []],
["King Zora", False, [], ['Progressive Glove', 'Flippers']],
["King Zora", False, [], ['Moon Pearl']],
["King Zora", True, ['Flippers', 'Moon Pearl', 'Beat Agahnim 1']],
["King Zora", True, ['Progressive Glove', 'Moon Pearl', 'Beat Agahnim 1']],
["King Zora", True, ['Progressive Glove', 'Moon Pearl', 'Hammer']],
["King Zora", True, ['Progressive Glove', 'Progressive Glove', 'Moon Pearl']],
["Zora's Ledge", False, []],
["Zora's Ledge", False, [], ['Flippers']],
["Zora's Ledge", False, [], ['Moon Pearl']],
["Zora's Ledge", True, ['Flippers', 'Moon Pearl', 'Beat Agahnim 1']],
["Zora's Ledge", True, ['Flippers', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Zora's Ledge", True, ['Flippers', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Waterfall Fairy - Left", False, []],
["Waterfall Fairy - Left", False, [], ['Flippers']],
["Waterfall Fairy - Left", False, [], ['Moon Pearl']],
["Waterfall Fairy - Left", True, ['Flippers', 'Moon Pearl', 'Beat Agahnim 1']],
["Waterfall Fairy - Left", True, ['Flippers', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Waterfall Fairy - Left", True, ['Flippers', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Waterfall Fairy - Right", False, []],
["Waterfall Fairy - Right", False, [], ['Flippers']],
["Waterfall Fairy - Right", False, [], ['Moon Pearl']],
["Waterfall Fairy - Right", True, ['Flippers', 'Moon Pearl', 'Beat Agahnim 1']],
["Waterfall Fairy - Right", True, ['Flippers', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Waterfall Fairy - Right", True, ['Flippers', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
])
def testLightWorld(self):
self.run_tests([
["Link's Uncle", False, []],
["Link's Uncle", False, [], ['Moon Pearl']],
["Link's Uncle", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Link's Uncle", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Link's Uncle", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Secret Passage", False, []],
["Secret Passage", False, [], ['Moon Pearl']],
["Secret Passage", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Secret Passage", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Secret Passage", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["King's Tomb", False, []],
["King's Tomb", False, [], ['Pegasus Boots']],
["King's Tomb", False, ['Progressive Glove'], ['Progressive Glove']],
["King's Tomb", False, [], ['Moon Pearl']],
["King's Tomb", True, ['Pegasus Boots', 'Progressive Glove', 'Progressive Glove', 'Moon Pearl']],
["Sahasrahla's Hut - Left", False, []],
["Sahasrahla's Hut - Left", False, [], ['Moon Pearl']],
["Sahasrahla's Hut - Left", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Sahasrahla's Hut - Left", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Sahasrahla's Hut - Left", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Sahasrahla's Hut - Middle", False, []],
["Sahasrahla's Hut - Middle", False, [], ['Moon Pearl']],
["Sahasrahla's Hut - Middle", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Sahasrahla's Hut - Middle", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Sahasrahla's Hut - Middle", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Sahasrahla's Hut - Right", False, []],
["Sahasrahla's Hut - Right", False, [], ['Moon Pearl']],
["Sahasrahla's Hut - Right", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Sahasrahla's Hut - Right", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Sahasrahla's Hut - Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Sahasrahla", False, []],
["Sahasrahla", False, [], ['Green Pendant']],
["Sahasrahla", True, ['Green Pendant', 'Beat Agahnim 1']],
["Sahasrahla", True, ['Green Pendant', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Sahasrahla", True, ['Green Pendant', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Bonk Rock Cave", False, []],
["Bonk Rock Cave", False, [], ['Pegasus Boots']],
["Bonk Rock Cave", False, [], ['Moon Pearl']],
["Bonk Rock Cave", True, ['Pegasus Boots', 'Moon Pearl', 'Beat Agahnim 1']],
["Bonk Rock Cave", True, ['Pegasus Boots', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Bonk Rock Cave", True, ['Pegasus Boots', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Hobo", False, []],
["Hobo", False, [], ['Flippers']],
["Hobo", False, [], ['Flippers', 'Moon Pearl']],
["Hobo", True, ['Flippers', 'Moon Pearl', 'Beat Agahnim 1']],
["Hobo", True, ['Flippers', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Hobo", True, ['Flippers', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Cave 45", False, []],
["Cave 45", False, [], ['Moon Pearl']],
["Cave 45", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Cave 45", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Cave 45", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Graveyard Cave", False, []],
["Graveyard Cave", False, [], ['Moon Pearl']],
["Graveyard Cave", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Graveyard Cave", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Graveyard Cave", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Potion Shop", False, []],
["Potion Shop", False, [], ['Mushroom']],
["Potion Shop", False, [], ['Moon Pearl']],
["Potion Shop", True, ['Mushroom', 'Moon Pearl', 'Beat Agahnim 1']],
["Potion Shop", True, ['Mushroom', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Potion Shop", True, ['Mushroom', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Lake Hylia Island", False, []],
["Lake Hylia Island", False, [], ['Moon Pearl']],
["Lake Hylia Island", False, [], ['Flippers']],
["Lake Hylia Island", True, ['Flippers', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Lake Hylia Island", True, ['Flippers', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Lake Hylia Island", True, ['Flippers', 'Moon Pearl', 'Beat Agahnim 1']],
["Flute Spot", False, []],
["Flute Spot", False, [], ['Shovel']],
["Flute Spot", False, [], ['Moon Pearl']],
["Flute Spot", True, ['Shovel', 'Moon Pearl', 'Beat Agahnim 1']],
["Flute Spot", True, ['Shovel', 'Moon Pearl', 'Progressive Glove', 'Hammer']],
["Flute Spot", True, ['Shovel', 'Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Ganon", False, []],
["Ganon", False, [], ['Moon Pearl']],
["Ganon", False, [], ['Beat Agahnim 2']],
])

View File

@ -0,0 +1,206 @@
from test.inverted.TestInverted import TestInverted
class TestInvertedTurtleRock(TestInverted):
def testTurtleRock(self):
self.run_tests([
["Turtle Rock - Compass Chest", False, []],
["Turtle Rock - Compass Chest", False, [], ['Cane of Somaria']],
["Turtle Rock - Compass Chest", False, [], ['Quake', 'Magic Mirror']],
["Turtle Rock - Compass Chest", False, ['Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)'], ['Quake', 'Small Key (Turtle Rock)']],
["Turtle Rock - Compass Chest", True, ['Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Cane of Somaria']],
["Turtle Rock - Compass Chest", True, ['Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Cane of Somaria']],
["Turtle Rock - Compass Chest", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Compass Chest", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot', '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', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot', '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', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Chain Chomps", False, []],
["Turtle Rock - Chain Chomps", False, [], ['Magic Mirror', 'Cane of Somaria']],
#@todo: Item rando only needs 1 key
["Turtle Rock - Chain Chomps", False, ['Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)'], ['Magic Mirror', 'Small Key (Turtle Rock)']],
["Turtle Rock - Chain Chomps", True, ['Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Chain Chomps", True, ['Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Chain Chomps", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove']],
["Turtle Rock - Chain Chomps", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot']],
["Turtle Rock - Chain Chomps", True, ['Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot']],
["Turtle Rock - Chain Chomps", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror']],
["Turtle Rock - Roller Room - Left", False, []],
["Turtle Rock - Roller Room - Left", False, [], ['Cane of Somaria']],
["Turtle Rock - Roller Room - Left", False, [], ['Fire Rod']],
["Turtle Rock - Roller Room - Left", False, [], ['Quake', 'Magic Mirror']],
["Turtle Rock - Roller Room - Left", False, ['Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)'], ['Quake', 'Small Key (Turtle Rock)']],
["Turtle Rock - Roller Room - Left", True, ['Fire Rod', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Cane of Somaria']],
["Turtle Rock - Roller Room - Left", True, ['Fire Rod', 'Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Cane of Somaria']],
["Turtle Rock - Roller Room - Left", True, ['Fire Rod', 'Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Roller Room - Left", True, ['Fire Rod', 'Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Roller Room - Left", True, ['Fire Rod', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Roller Room - Left", True, ['Fire Rod', 'Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Roller Room - Right", False, []],
["Turtle Rock - Roller Room - Right", False, [], ['Cane of Somaria']],
["Turtle Rock - Roller Room - Right", False, [], ['Fire Rod']],
["Turtle Rock - Roller Room - Right", False, [], ['Quake', 'Magic Mirror']],
["Turtle Rock - Roller Room - Right", False, ['Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)'], ['Quake', 'Small Key (Turtle Rock)']],
["Turtle Rock - Roller Room - Right", True, ['Fire Rod', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Cane of Somaria']],
["Turtle Rock - Roller Room - Right", True, ['Fire Rod', 'Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Cane of Somaria']],
["Turtle Rock - Roller Room - Right", True, ['Fire Rod', 'Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Roller Room - Right", True, ['Fire Rod', 'Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Roller Room - Right", True, ['Fire Rod', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Roller Room - Right", True, ['Fire Rod', 'Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Big Chest", False, []],
["Turtle Rock - Big Chest", False, [], ['Big Key (Turtle Rock)']],
["Turtle Rock - Big Chest", False, [], ['Magic Mirror', 'Cane of Somaria']],
["Turtle Rock - Big Chest", False, ['Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)'], ['Magic Mirror', 'Small Key (Turtle Rock)']],
["Turtle Rock - Big Chest", True, ['Big Key (Turtle Rock)', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Big Chest", True, ['Big Key (Turtle Rock)', 'Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Big Chest", True, ['Big Key (Turtle Rock)', 'Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Cane of Somaria']],
["Turtle Rock - Big Chest", True, ['Big Key (Turtle Rock)', 'Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Hookshot']],
["Turtle Rock - Big Chest", True, ['Big Key (Turtle Rock)', 'Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot']],
["Turtle Rock - Big Chest", True, ['Big Key (Turtle Rock)', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot']],
["Turtle Rock - Big Chest", True, ['Big Key (Turtle Rock)', 'Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Cane of Somaria']],
["Turtle Rock - Big Chest", True, ['Big Key (Turtle Rock)', 'Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Hookshot']],
["Turtle Rock - Big Key Chest", False, []],
["Turtle Rock - Big Key Chest", False, ['Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)'], ['Small Key (Turtle Rock)']],
["Turtle Rock - Big Key Chest", True, ['Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Big Key Chest", True, ['Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Big Key Chest", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Big Key Chest", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Big Key Chest", True, ['Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Big Key Chest", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Crystaroller Room", False, []],
["Turtle Rock - Crystaroller Room", False, [], ['Big Key (Turtle Rock)', 'Magic Mirror']],
["Turtle Rock - Crystaroller Room", False, [], ['Big Key (Turtle Rock)', 'Cane of Somaria']],
["Turtle Rock - Crystaroller Room", False, [], ['Big Key (Turtle Rock)', 'Lamp']],
["Turtle Rock - Crystaroller Room", False, [], ['Magic Mirror', 'Cane of Somaria']],
["Turtle Rock - Crystaroller Room", False, ['Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)'], ['Magic Mirror', 'Small Key (Turtle Rock)']],
["Turtle Rock - Crystaroller Room", True, ['Big Key (Turtle Rock)', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Crystaroller Room", True, ['Big Key (Turtle Rock)', 'Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Crystaroller Room", True, ['Big Key (Turtle Rock)', 'Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove']],
["Turtle Rock - Crystaroller Room", True, ['Big Key (Turtle Rock)', 'Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot']],
["Turtle Rock - Crystaroller Room", True, ['Big Key (Turtle Rock)', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot']],
["Turtle Rock - Crystaroller Room", True, ['Big Key (Turtle Rock)', 'Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror']],
["Turtle Rock - Crystaroller Room", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Cane of Somaria']],
["Turtle Rock - Crystaroller Room", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot', 'Cane of Somaria']],
["Turtle Rock - Crystaroller Room", True, ['Lamp', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot', 'Cane of Somaria']],
["Turtle Rock - Crystaroller Room", True, ['Lamp', 'Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Cane of Somaria']],
#@todo: Advanced?
["Turtle Rock - Eye Bridge - Bottom Left", False, []],
["Turtle Rock - Eye Bridge - Bottom Left", False, ['Progressive Shield', 'Progressive Shield'], ['Progressive Shield', 'Cape', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Bottom Left", False, [], ['Big Key (Turtle Rock)', 'Magic Mirror']],
["Turtle Rock - Eye Bridge - Bottom Left", False, [], ['Magic Mirror', 'Cane of Somaria']],
["Turtle Rock - Eye Bridge - Bottom Left", False, [], ['Magic Mirror', 'Lamp']],
["Turtle Rock - Eye Bridge - Bottom Left", False, ['Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)'], ['Magic Mirror', 'Small Key (Turtle Rock)']],
["Turtle Rock - Eye Bridge - Bottom Left", True, ['Big Key (Turtle Rock)', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Lamp', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Bottom Left", True, ['Big Key (Turtle Rock)', 'Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Bottom Left", True, ['Big Key (Turtle Rock)', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Lamp', 'Cape']],
["Turtle Rock - Eye Bridge - Bottom Left", True, ['Big Key (Turtle Rock)', 'Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Cape']],
["Turtle Rock - Eye Bridge - Bottom Left", True, ['Big Key (Turtle Rock)', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Lamp', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Bottom Left", True, ['Big Key (Turtle Rock)', 'Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Bottom Left", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Cane of Somaria', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Bottom Left", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot', 'Cane of Somaria', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Bottom Left", True, ['Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot', 'Cane of Somaria', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Bottom Left", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Cane of Somaria', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Bottom Left", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Cane of Somaria', 'Cape']],
["Turtle Rock - Eye Bridge - Bottom Left", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot', 'Cane of Somaria', 'Cape']],
["Turtle Rock - Eye Bridge - Bottom Left", True, ['Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot', 'Cane of Somaria', 'Cape']],
["Turtle Rock - Eye Bridge - Bottom Left", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Cane of Somaria', 'Cape']],
["Turtle Rock - Eye Bridge - Bottom Left", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Cane of Somaria', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Bottom Left", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot', 'Cane of Somaria', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Bottom Left", True, ['Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot', 'Cane of Somaria', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Bottom Left", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Cane of Somaria', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Bottom Right", False, []],
["Turtle Rock - Eye Bridge - Bottom Right", False, ['Progressive Shield', 'Progressive Shield'], ['Progressive Shield', 'Cape', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Bottom Right", False, [], ['Big Key (Turtle Rock)', 'Magic Mirror']],
["Turtle Rock - Eye Bridge - Bottom Right", False, [], ['Magic Mirror', 'Cane of Somaria']],
["Turtle Rock - Eye Bridge - Bottom Right", False, [], ['Magic Mirror', 'Lamp']],
["Turtle Rock - Eye Bridge - Bottom Right", False, ['Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)'], ['Magic Mirror', 'Small Key (Turtle Rock)']],
["Turtle Rock - Eye Bridge - Bottom Right", True, ['Big Key (Turtle Rock)', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Lamp', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Bottom Right", True, ['Big Key (Turtle Rock)', 'Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Bottom Right", True, ['Big Key (Turtle Rock)', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Lamp', 'Cape']],
["Turtle Rock - Eye Bridge - Bottom Right", True, ['Big Key (Turtle Rock)', 'Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Cape']],
["Turtle Rock - Eye Bridge - Bottom Right", True, ['Big Key (Turtle Rock)', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Lamp', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Bottom Right", True, ['Big Key (Turtle Rock)', 'Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Bottom Right", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Cane of Somaria', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Bottom Right", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot', 'Cane of Somaria', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Bottom Right", True, ['Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot', 'Cane of Somaria', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Bottom Right", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Cane of Somaria', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Bottom Right", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Cane of Somaria', 'Cape']],
["Turtle Rock - Eye Bridge - Bottom Right", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot', 'Cane of Somaria', 'Cape']],
["Turtle Rock - Eye Bridge - Bottom Right", True, ['Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot', 'Cane of Somaria', 'Cape']],
["Turtle Rock - Eye Bridge - Bottom Right", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Cane of Somaria', 'Cape']],
["Turtle Rock - Eye Bridge - Bottom Right", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Cane of Somaria', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Bottom Right", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot', 'Cane of Somaria', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Bottom Right", True, ['Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot', 'Cane of Somaria', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Bottom Right", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Cane of Somaria', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Top Left", False, []],
["Turtle Rock - Eye Bridge - Top Left", False, ['Progressive Shield', 'Progressive Shield'], ['Progressive Shield', 'Cape', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Top Left", False, [], ['Big Key (Turtle Rock)', 'Magic Mirror']],
["Turtle Rock - Eye Bridge - Top Left", False, [], ['Magic Mirror', 'Cane of Somaria']],
["Turtle Rock - Eye Bridge - Top Left", False, [], ['Magic Mirror', 'Lamp']],
["Turtle Rock - Eye Bridge - Top Left", False, ['Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)'], ['Magic Mirror', 'Small Key (Turtle Rock)']],
["Turtle Rock - Eye Bridge - Top Left", True, ['Big Key (Turtle Rock)', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Lamp', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Top Left", True, ['Big Key (Turtle Rock)', 'Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Top Left", True, ['Big Key (Turtle Rock)', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Lamp', 'Cape']],
["Turtle Rock - Eye Bridge - Top Left", True, ['Big Key (Turtle Rock)', 'Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Cape']],
["Turtle Rock - Eye Bridge - Top Left", True, ['Big Key (Turtle Rock)', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Lamp', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Top Left", True, ['Big Key (Turtle Rock)', 'Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Top Left", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Cane of Somaria', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Top Left", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot', 'Cane of Somaria', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Top Left", True, ['Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot', 'Cane of Somaria', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Top Left", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Cane of Somaria', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Top Left", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Cane of Somaria', 'Cape']],
["Turtle Rock - Eye Bridge - Top Left", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot', 'Cane of Somaria', 'Cape']],
["Turtle Rock - Eye Bridge - Top Left", True, ['Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot', 'Cane of Somaria', 'Cape']],
["Turtle Rock - Eye Bridge - Top Left", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Cane of Somaria', 'Cape']],
["Turtle Rock - Eye Bridge - Top Left", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Cane of Somaria', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Top Left", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot', 'Cane of Somaria', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Top Left", True, ['Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot', 'Cane of Somaria', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Top Left", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Cane of Somaria', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Top Right", False, []],
["Turtle Rock - Eye Bridge - Top Right", False, ['Progressive Shield', 'Progressive Shield'], ['Progressive Shield', 'Cape', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Top Right", False, [], ['Big Key (Turtle Rock)', 'Magic Mirror']],
["Turtle Rock - Eye Bridge - Top Right", False, [], ['Magic Mirror', 'Cane of Somaria']],
["Turtle Rock - Eye Bridge - Top Right", False, [], ['Magic Mirror', 'Lamp']],
["Turtle Rock - Eye Bridge - Top Right", False, ['Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)'], ['Magic Mirror', 'Small Key (Turtle Rock)']],
["Turtle Rock - Eye Bridge - Top Right", True, ['Big Key (Turtle Rock)', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Lamp', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Top Right", True, ['Big Key (Turtle Rock)', 'Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Top Right", True, ['Big Key (Turtle Rock)', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Lamp', 'Cape']],
["Turtle Rock - Eye Bridge - Top Right", True, ['Big Key (Turtle Rock)', 'Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Cape']],
["Turtle Rock - Eye Bridge - Top Right", True, ['Big Key (Turtle Rock)', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Lamp', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Top Right", True, ['Big Key (Turtle Rock)', 'Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Top Right", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Cane of Somaria', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Top Right", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot', 'Cane of Somaria', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Top Right", True, ['Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot', 'Cane of Somaria', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Top Right", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Cane of Somaria', 'Cane of Byrna']],
["Turtle Rock - Eye Bridge - Top Right", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Cane of Somaria', 'Cape']],
["Turtle Rock - Eye Bridge - Top Right", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot', 'Cane of Somaria', 'Cape']],
["Turtle Rock - Eye Bridge - Top Right", True, ['Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot', 'Cane of Somaria', 'Cape']],
["Turtle Rock - Eye Bridge - Top Right", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Cane of Somaria', 'Cape']],
["Turtle Rock - Eye Bridge - Top Right", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Cane of Somaria', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Top Right", True, ['Lamp', 'Magic Mirror', 'Progressive Glove', 'Moon Pearl', 'Hookshot', 'Cane of Somaria', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Top Right", True, ['Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Hookshot', 'Cane of Somaria', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Eye Bridge - Top Right", True, ['Moon Pearl', 'Ocarina', 'Progressive Glove', 'Progressive Glove', 'Magic Mirror', 'Cane of Somaria', 'Progressive Shield', 'Progressive Shield', 'Progressive Shield']],
["Turtle Rock - Boss", False, []],
["Turtle Rock - Boss", False, [], ['Cane of Somaria']],
["Turtle Rock - Boss", False, [], ['Ice Rod']],
["Turtle Rock - Boss", False, [], ['Fire Rod']],
["Turtle Rock - Boss", False, [], ['Progressive Sword', 'Hammer']],
["Turtle Rock - Boss", False, [], ['Big Key (Turtle Rock)']],
["Turtle Rock - Boss", False, [], ['Magic Mirror', 'Lamp']],
["Turtle Rock - Boss", False, ['Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)'], ['Small Key (Turtle Rock)']],
["Turtle Rock - Boss", True, ['Ice Rod', 'Fire Rod', 'Lamp', 'Moon Pearl', 'Ocarina', 'Beat Agahnim 1', 'Quake', 'Progressive Sword', 'Progressive Sword', 'Cane of Somaria', 'Bottle', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Big Key (Turtle Rock)']],
["Turtle Rock - Boss", True, ['Ice Rod', 'Fire Rod', 'Lamp', 'Progressive Glove', 'Quake', 'Progressive Sword', 'Progressive Sword', 'Cane of Somaria', 'Bottle', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Big Key (Turtle Rock)']],
["Turtle Rock - Boss", True, ['Ice Rod', 'Fire Rod', 'Lamp', 'Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Hammer', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Big Key (Turtle Rock)']],
["Turtle Rock - Boss", True, ['Ice Rod', 'Fire Rod', 'Ocarina', 'Beat Agahnim 1', 'Magic Mirror', 'Moon Pearl', 'Hookshot', 'Hammer', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Big Key (Turtle Rock)']]
])

View File