Add unit tests for vanilla inverted layout, and dungeon logic.
This commit is contained in:
24
test/dungeons/TestAgahnimsTower.py
Normal file
24
test/dungeons/TestAgahnimsTower.py
Normal 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']],
|
||||
])
|
||||
80
test/dungeons/TestDarkPalace.py
Normal file
80
test/dungeons/TestDarkPalace.py
Normal 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],
|
||||
])
|
||||
39
test/dungeons/TestDesertPalace.py
Normal file
39
test/dungeons/TestDesertPalace.py
Normal 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']],
|
||||
])
|
||||
49
test/dungeons/TestDungeon.py
Normal file
49
test/dungeons/TestDungeon.py
Normal 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)
|
||||
29
test/dungeons/TestEasternPalace.py
Normal file
29
test/dungeons/TestEasternPalace.py
Normal 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)']]
|
||||
])
|
||||
144
test/dungeons/TestGanonsTower.py
Normal file
144
test/dungeons/TestGanonsTower.py
Normal 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']],
|
||||
])
|
||||
79
test/dungeons/TestIcePalace.py
Normal file
79
test/dungeons/TestIcePalace.py
Normal 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)']],
|
||||
])
|
||||
84
test/dungeons/TestMiseryMire.py
Normal file
84
test/dungeons/TestMiseryMire.py
Normal 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']],
|
||||
])
|
||||
96
test/dungeons/TestSkullWoods.py
Normal file
96
test/dungeons/TestSkullWoods.py
Normal 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']],
|
||||
])
|
||||
80
test/dungeons/TestSwampPalace.py
Normal file
80
test/dungeons/TestSwampPalace.py
Normal 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']],
|
||||
])
|
||||
40
test/dungeons/TestThievesTown.py
Normal file
40
test/dungeons/TestThievesTown.py
Normal 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']],
|
||||
])
|
||||
32
test/dungeons/TestTowerOfHera.py
Normal file
32
test/dungeons/TestTowerOfHera.py
Normal 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)']],
|
||||
])
|
||||
0
test/dungeons/__init__.py
Normal file
0
test/dungeons/__init__.py
Normal file
Reference in New Issue
Block a user