36 lines
2.0 KiB
Python
36 lines
2.0 KiB
Python
from . import LADXTestBase
|
|
|
|
from ..Items import ItemName
|
|
|
|
class TestD6(LADXTestBase):
|
|
# Force keys into pool for testing
|
|
options = {
|
|
"shuffle_small_keys": "any_world"
|
|
}
|
|
|
|
def test_keylogic(self):
|
|
keys = self.get_items_by_name(ItemName.KEY6)
|
|
self.collect_by_name([ItemName.FACE_KEY, ItemName.HOOKSHOT, ItemName.POWER_BRACELET, ItemName.BOMB, ItemName.PEGASUS_BOOTS, ItemName.FEATHER, ItemName.FLIPPERS])
|
|
# Can reach an un-keylocked item in the dungeon
|
|
self.assertTrue(self.can_reach_location("L2 Bracelet Chest (Face Shrine)"))
|
|
|
|
# For each location, add a key and check that the right thing unlocks
|
|
location_1 = "Tile Room Key (Face Shrine)"
|
|
location_2 = "Top Right Horse Heads Chest (Face Shrine)"
|
|
location_3 = "Pot Locked Chest (Face Shrine)"
|
|
self.assertFalse(self.can_reach_location(location_1), "Tile Room Key, 0 keys")
|
|
self.assertFalse(self.can_reach_location(location_2), "Top Right Horse Heads Chest, 0 keys")
|
|
self.assertFalse(self.can_reach_location(location_3), "Pot Locked Chest, 0 keys")
|
|
self.collect(keys[0])
|
|
self.assertTrue(self.can_reach_location(location_1), "Tile Room Key, 1 key")
|
|
self.assertFalse(self.can_reach_location(location_2), "Top Right Horse Heads Chest, 1 key")
|
|
self.assertFalse(self.can_reach_location(location_3), "Pot Locked Chest, 1 key")
|
|
self.collect(keys[1])
|
|
self.assertTrue(self.can_reach_location(location_1), "Tile Room Key, 2 keys")
|
|
self.assertTrue(self.can_reach_location(location_2), "Top Right Horse Heads Chest, 2 keys")
|
|
self.assertFalse(self.can_reach_location(location_3), "Pot Locked Chest, 2 keys")
|
|
self.collect(keys[2])
|
|
self.assertTrue(self.can_reach_location(location_1), "Tile Room Key, 3 keys")
|
|
self.assertTrue(self.can_reach_location(location_2), "Top Right Horse Heads Chest, 3 keys")
|
|
self.assertTrue(self.can_reach_location(location_3), "Pot Locked Chest, 3 keys")
|