Refactor OWG rules to keep them separate from no glitches.

Add logic for superbunny access to Sahasrahla's closet (with boots)
Add logic for superbunny through Two Brother's House (with boots)
Fix superbunny logic for spiral cave and mini moldorm cave - requires a sword
Add logic for waterwalking into Waterfall Cave
Add clip to Ice Palace entrance (requires boots, pearl and flippers)
Add extra clips to inverted owg logic - PoD and Dark Lake Hylia Ledge are now in logic with just boots
Add clip to flute point 6 into inverted owg logic - some light world locations are now accessible with boots and mitts, but no pearl or mirror.
This commit is contained in:
compiling
2020-05-07 18:07:53 +10:00
parent bd7325b03d
commit 441f59d6ea
12 changed files with 382 additions and 484 deletions

View File

@@ -52,8 +52,7 @@ class TestDarkWorld(TestInvertedOWG):
#todo: Qirn Jump
#["Pyramid", True, []],
["Pyramid", False, []],
#todo: Waterwalk
#["Pyramid", True, ['Pegasus Boots']],
["Pyramid", True, ['Pegasus Boots']],
["Pyramid", True, ['Flippers']],
["Pyramid Fairy - Left", False, []],

View File

@@ -16,6 +16,8 @@ class TestDeathMountain(TestInvertedOWG):
def testEastDeathMountain(self):
self.run_location_tests([
["Spiral Cave", False, []],
["Spiral Cave", False, [], ['Moon Pearl', 'Magic Mirror']],
["Spiral Cave", False, [], ['Moon Pearl', 'Progressive Sword']],
["Spiral Cave", True, ['Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Lamp', 'Progressive Sword']],
["Spiral Cave", True, ['Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Pegasus Boots', 'Progressive Sword']],
["Spiral Cave", True, ['Moon Pearl', 'Pegasus Boots']],

View File

@@ -47,9 +47,9 @@ class TestDungeons(TestInvertedOWG):
["Castle Tower - Room 03", True, ['Pegasus Boots', 'Progressive Sword']],
["Castle Tower - Room 03", True, ['Pegasus Boots', 'Progressive Bow']],
#todo: Qirn Jump, Waterwalk
#todo: Qirn Jump
#["Palace of Darkness - Shooter Room", True, []],
#["Palace of Darkness - Shooter Room", True, ['Pegasus Boots']],
["Palace of Darkness - Shooter Room", True, ['Pegasus Boots']],
["Palace of Darkness - Shooter Room", True, ['Hammer']],
["Palace of Darkness - Shooter Room", True, ['Flippers']],
["Palace of Darkness - Shooter Room", True, ['Pegasus Boots', 'Progressive Glove']],
@@ -80,8 +80,8 @@ class TestDungeons(TestInvertedOWG):
#todo: Qirn Jump
#["Ice Palace - Compass Chest", True, ['Fire Rod']],
#["Ice Palace - Compass Chest", True, ['Bombos', 'Progressive Sword']],
["Ice Palace - Compass Chest", True, ['Pegasus Boots', 'Magic Mirror', 'Fire Rod']],
["Ice Palace - Compass Chest", True, ['Pegasus Boots', 'Magic Mirror', 'Bombos', 'Progressive Sword']],
["Ice Palace - Compass Chest", True, ['Pegasus Boots', 'Fire Rod']],
["Ice Palace - Compass Chest", True, ['Pegasus Boots', 'Bombos', 'Progressive Sword']],
["Misery Mire - Bridge Chest", False, []],
["Misery Mire - Bridge Chest", False, [], ['Ether']],

View File

@@ -13,11 +13,11 @@ class TestLightWorld(TestInvertedOWG):
["Master Sword Pedestal", True, ['Green Pendant', 'Red Pendant', 'Blue Pendant', 'Magic Mirror', 'Pegasus Boots']],
["Link's Uncle", False, []],
["Link's Uncle", False, [], ['Moon Pearl', 'Magic Mirror']],
["Link's Uncle", False, [], ['Moon Pearl']],
["Link's Uncle", True, ['Moon Pearl', 'Pegasus Boots']],
["Secret Passage", False, []],
["Secret Passage", False, [], ['Moon Pearl', 'Magic Mirror']],
["Secret Passage", False, [], ['Moon Pearl']],
["Secret Passage", True, ['Moon Pearl', 'Pegasus Boots']],
["King's Tomb", False, []],
@@ -26,6 +26,7 @@ class TestLightWorld(TestInvertedOWG):
["King's Tomb", True, ['Pegasus Boots', 'Magic Mirror', 'Moon Pearl']],
["Floodgate Chest", False, []],
["Floodgate Chest", False, [], ['Moon Pearl', 'Magic Mirror']],
["Floodgate Chest", True, ['Moon Pearl', 'Pegasus Boots']],
["Floodgate Chest", True, ['Magic Mirror', 'Pegasus Boots']],
@@ -45,24 +46,27 @@ class TestLightWorld(TestInvertedOWG):
["Aginah's Cave", True, ['Moon Pearl', 'Pegasus Boots']],
["Sahasrahla's Hut - Left", False, []],
["Sahasrahla's Hut - Left", False, ['Moon Pearl', 'Magic Mirror']],
["Sahasrahla's Hut - Left", False, [], ['Moon Pearl', 'Magic Mirror']],
["Sahasrahla's Hut - Left", False, [], ['Moon Pearl', 'Pegasus Boots']],
["Sahasrahla's Hut - Left", True, ['Moon Pearl', 'Pegasus Boots']],
#todo: superbunny into sahasrahla in logic?
#["Sahasrahla's Hut - Left", True, ['Magic Mirror', 'Pegasus Boots']],
["Sahasrahla's Hut - Left", True, ['Magic Mirror', 'Pegasus Boots']],
##todo: Damage boost superbunny not in logic
#["Sahasrahla's Hut - Left", True, ['Beat Agahnim 1', 'Pegasus Boots']],
["Sahasrahla's Hut - Left", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Sahasrahla's Hut - Middle", False, []],
["Sahasrahla's Hut - Middle", False, ['Moon Pearl', 'Magic Mirror']],
["Sahasrahla's Hut - Middle", False, [], ['Moon Pearl', 'Magic Mirror']],
["Sahasrahla's Hut - Middle", False, [], ['Moon Pearl', 'Pegasus Boots']],
["Sahasrahla's Hut - Middle", True, ['Moon Pearl', 'Pegasus Boots']],
#["Sahasrahla's Hut - Middle", True, ['Magic Mirror', 'Pegasus Boots']],
["Sahasrahla's Hut - Middle", True, ['Magic Mirror', 'Pegasus Boots']],
#["Sahasrahla's Hut - Middle", True, ['Beat Agahnim 1', 'Pegasus Boots']],
["Sahasrahla's Hut - Middle", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Sahasrahla's Hut - Right", False, []],
["Sahasrahla's Hut - Right", False, ['Moon Pearl', 'Magic Mirror']],
["Sahasrahla's Hut - Right", False, [], ['Moon Pearl', 'Magic Mirror']],
["Sahasrahla's Hut - Right", False, [], ['Moon Pearl', 'Pegasus Boots']],
["Sahasrahla's Hut - Right", True, ['Moon Pearl', 'Pegasus Boots']],
#["Sahasrahla's Hut - Right", True, ['Magic Mirror', 'Pegasus Boots']],
["Sahasrahla's Hut - Right", True, ['Magic Mirror', 'Pegasus Boots']],
#["Sahasrahla's Hut - Right", True, ['Beat Agahnim 1', 'Pegasus Boots']],
["Sahasrahla's Hut - Right", True, ['Moon Pearl', 'Beat Agahnim 1']],
@@ -73,21 +77,25 @@ class TestLightWorld(TestInvertedOWG):
["Kakariko Well - Left", False, []],
["Kakariko Well - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Kakariko Well - Left", True, ['Magic Mirror', 'Pegasus Boots']],
["Kakariko Well - Left", True, ['Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Kakariko Well - Left", True, ['Beat Agahnim 1']],
["Kakariko Well - Middle", False, []],
["Kakariko Well - Middle", True, ['Moon Pearl', 'Pegasus Boots']],
["Kakariko Well - Middle", True, ['Magic Mirror', 'Pegasus Boots']],
["Kakariko Well - Middle", True, ['Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Kakariko Well - Middle", True, ['Beat Agahnim 1']],
["Kakariko Well - Right", False, []],
["Kakariko Well - Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Kakariko Well - Right", True, ['Magic Mirror', 'Pegasus Boots']],
["Kakariko Well - Right", True, ['Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Kakariko Well - Right", True, ['Beat Agahnim 1']],
["Kakariko Well - Bottom", False, []],
["Kakariko Well - Bottom", True, ['Moon Pearl', 'Pegasus Boots']],
["Kakariko Well - Bottom", True, ['Magic Mirror', 'Pegasus Boots']],
["Kakariko Well - Bottom", True, ['Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Kakariko Well - Bottom", True, ['Beat Agahnim 1']],
["Blind's Hideout - Top", False, []],
@@ -95,21 +103,25 @@ class TestLightWorld(TestInvertedOWG):
["Blind's Hideout - Top", True, ['Moon Pearl', 'Pegasus Boots']],
["Blind's Hideout - Left", False, []],
["Blind's Hideout - Left", False, [], ['Moon Pearl', 'Magic Mirror']],
["Blind's Hideout - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Blind's Hideout - Left", True, ['Magic Mirror', 'Pegasus Boots']],
["Blind's Hideout - Left", True, ['Magic Mirror', 'Beat Agahnim 1']],
["Blind's Hideout - Right", False, []],
["Blind's Hideout - Right", False, [], ['Moon Pearl', 'Magic Mirror']],
["Blind's Hideout - Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Blind's Hideout - Right", True, ['Magic Mirror', 'Pegasus Boots']],
["Blind's Hideout - Right", True, ['Magic Mirror', 'Beat Agahnim 1']],
["Blind's Hideout - Far Left", False, []],
["Blind's Hideout - Far Left", False, [], ['Moon Pearl', 'Magic Mirror']],
["Blind's Hideout - Far Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Blind's Hideout - Far Left", True, ['Magic Mirror', 'Pegasus Boots']],
["Blind's Hideout - Far Left", True, ['Magic Mirror', 'Beat Agahnim 1']],
["Blind's Hideout - Far Right", False, []],
["Blind's Hideout - Far Right", False, [], ['Moon Pearl', 'Magic Mirror']],
["Blind's Hideout - Far Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Blind's Hideout - Far Right", True, ['Magic Mirror', 'Pegasus Boots']],
["Blind's Hideout - Far Right", True, ['Magic Mirror', 'Beat Agahnim 1']],
@@ -125,6 +137,7 @@ class TestLightWorld(TestInvertedOWG):
["Mini Moldorm Cave - Left", False, []],
["Mini Moldorm Cave - Left", False, [], ['Moon Pearl']],
["Mini Moldorm Cave - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Mini Moldorm Cave - Right", False, []],
["Mini Moldorm Cave - Right", False, [], ['Moon Pearl']],
@@ -132,9 +145,13 @@ class TestLightWorld(TestInvertedOWG):
["Mini Moldorm Cave - Far Right", False, []],
["Mini Moldorm Cave - Far Right", False, [], ['Moon Pearl']],
["Mini Moldorm Cave - Far Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Mini Moldorm Cave - Generous Guy", False, []],
["Mini Moldorm Cave - Generous Guy", False, [], ['Moon Pearl']],
["Mini Moldorm Cave - Generous Guy", True, ['Moon Pearl', 'Pegasus Boots']],
["Ice Rod Cave", False, []],
#["Ice Rod Cave", False, [], ['Moon Pearl', 'BigRedBomb']],
["Ice Rod Cave", False, [], ['Moon Pearl']],
["Ice Rod Cave", True, ['Moon Pearl', 'Pegasus Boots']],
#I don't think so
@@ -144,11 +161,15 @@ class TestLightWorld(TestInvertedOWG):
["Bottle Merchant", False, []],
["Bottle Merchant", True, ['Pegasus Boots', 'Magic Mirror']],
["Bottle Merchant", True, ['Moon Pearl', 'Pegasus Boots']],
["Bottle Merchant", True, ['Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Bottle Merchant", True, ['Magic Mirror', 'Pegasus Boots']],
["Sahasrahla", False, []],
["Sahasrahla", False, [], ['Green Pendant']],
["Sahasrahla", True, ['Green Pendant', 'Magic Mirror', 'Pegasus Boots']],
["Sahasrahla", True, ['Green Pendant', 'Moon Pearl', 'Pegasus Boots']],
["Sahasrahla", True, ['Green Pendant', 'Magic Mirror', 'Pegasus Boots']],
["Sahasrahla", True, ['Green Pendant', 'Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Magic Bat", False, []],
["Magic Bat", False, [], ['Magic Powder']],
@@ -174,10 +195,11 @@ class TestLightWorld(TestInvertedOWG):
["Sick Kid", True, ['Bottle (Green Potion)', 'Moon Pearl', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Blue Potion)', 'Magic Mirror', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Blue Potion)', 'Moon Pearl', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle', 'Magic Mirror', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle', 'Moon Pearl', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Good Bee)', 'Magic Mirror', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Good Bee)', 'Moon Pearl', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle', 'Magic Mirror', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle', 'Moon Pearl', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle', 'Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Hobo", False, []],
["Hobo", False, [], ['Moon Pearl']],
@@ -189,6 +211,7 @@ class TestLightWorld(TestInvertedOWG):
["Bombos Tablet", False, [], ['Book of Mudora']],
["Bombos Tablet", True, ['Moon Pearl', 'Book of Mudora', 'Pegasus Boots', 'Progressive Sword', 'Progressive Sword']],
["Bombos Tablet", True, ['Magic Mirror', 'Book of Mudora', 'Pegasus Boots', 'Progressive Sword', 'Progressive Sword']],
["Bombos Tablet", True, ['Progressive Glove', 'Progressive Glove', 'Book of Mudora', 'Pegasus Boots', 'Progressive Sword', 'Progressive Sword']],
["King Zora", False, []],
["King Zora", False, [], ['Moon Pearl']],
@@ -205,6 +228,7 @@ class TestLightWorld(TestInvertedOWG):
["Lumberjack Tree", True, ['Pegasus Boots', 'Moon Pearl', 'Beat Agahnim 1']],
["Cave 45", False, []],
["Cave 45", False, [], ['Moon Pearl', 'Magic Mirror']],
["Cave 45", True, ['Moon Pearl', 'Pegasus Boots']],
["Cave 45", True, ['Magic Mirror', 'Pegasus Boots']],
["Cave 45", True, ['Magic Mirror', 'Beat Agahnim 1']],
@@ -218,12 +242,9 @@ class TestLightWorld(TestInvertedOWG):
["Checkerboard Cave", False, [], ['Moon Pearl']],
["Checkerboard Cave", True, ['Progressive Glove', 'Pegasus Boots', 'Moon Pearl']],
["Mini Moldorm Cave - Generous Guy", False, []],
["Mini Moldorm Cave - Generous Guy", False, [], ['Moon Pearl']],
["Mini Moldorm Cave - Generous Guy", True, ['Moon Pearl', 'Pegasus Boots']],
["Library", False, []],
["Library", False, [], ['Pegasus Boots']],
["Library", False, [], ['Moon Pearl', 'Magic Mirror']],
["Library", True, ['Pegasus Boots', 'Moon Pearl']],
["Library", True, ['Pegasus Boots', 'Magic Mirror']],
@@ -242,6 +263,7 @@ class TestLightWorld(TestInvertedOWG):
["Desert Ledge", False, []],
["Desert Ledge", True, ['Book of Mudora', 'Magic Mirror', 'Pegasus Boots']],
["Desert Ledge", True, ['Book of Mudora', 'Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Desert Ledge", True, ['Book of Mudora', 'Beat Agahnim 1']],
["Desert Ledge", True, ['Moon Pearl', 'Pegasus Boots']],
@@ -250,6 +272,7 @@ class TestLightWorld(TestInvertedOWG):
["Lake Hylia Island", True, ['Moon Pearl', 'Pegasus Boots']],
["Sunken Treasure", False, []],
["Sunken Treasure", False, [], ['Moon Pearl', 'Magic Mirror']],
["Sunken Treasure", True, ['Moon Pearl', 'Pegasus Boots']],
["Sunken Treasure", True, ['Magic Mirror', 'Pegasus Boots']],
["Sunken Treasure", True, ['Magic Mirror', 'Beat Agahnim 1']],
@@ -265,20 +288,17 @@ class TestLightWorld(TestInvertedOWG):
["Waterfall Fairy - Left", False, []],
["Waterfall Fairy - Left", False, [], ['Moon Pearl']],
["Waterfall Fairy - Left", True, ['Moon Pearl', 'Pegasus Boots', 'Flippers']],
#todo: Waterwalking into caves not in logic
# ["Waterfall Fairy - Left", True, ['Moon Pearl', 'Pegasus Boots']],
# ["Waterfall Fairy - Left", True, ['Moon Pearl', 'Beat Agahnim 1']],
# ["Waterfall Fairy - Left", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
# ["Waterfall Fairy - Left", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Waterfall Fairy - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Waterfall Fairy - Left", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Waterfall Fairy - Left", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Waterfall Fairy - Left", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Waterfall Fairy - Right", False, []],
["Waterfall Fairy - Right", False, [], ['Moon Pearl']],
["Waterfall Fairy - Right", True, ['Moon Pearl', 'Pegasus Boots', 'Flippers']],
# ["Waterfall Fairy - Right", True, ['Moon Pearl', 'Pegasus Boots']],
# ["Waterfall Fairy - Right", True, ['Moon Pearl', 'Beat Agahnim 1']],
# ["Waterfall Fairy - Right", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
# ["Waterfall Fairy - Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Waterfall Fairy - Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Waterfall Fairy - Right", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Waterfall Fairy - Right", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Waterfall Fairy - Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
# Bomb Merchant is not a separate check, and is only used as part of the Pyramid Fairy rules
# ["Bomb Merchant", False, []],

View File

@@ -89,9 +89,8 @@ class TestDungeons(TestVanillaOWG):
["Ice Palace - Compass Chest", False, []],
["Ice Palace - Compass Chest", False, [], ['Fire Rod', 'Bombos']],
["Ice Palace - Compass Chest", False, [], ['Fire Rod', 'Progressive Sword']],
#todo: Missing clip?
#["Ice Palace - Compass Chest", True, ['Moon Pearl', 'Pegasus Boots', 'Flippers', 'Fire Rod']],
#["Ice Palace - Compass Chest", True, ['Moon Pearl', 'Pegasus Boots', 'Flippers', 'Bombos', 'Progressive Sword']],
["Ice Palace - Compass Chest", True, ['Moon Pearl', 'Pegasus Boots', 'Flippers', 'Fire Rod']],
["Ice Palace - Compass Chest", True, ['Moon Pearl', 'Pegasus Boots', 'Flippers', 'Bombos', 'Progressive Sword']],
["Ice Palace - Compass Chest", True, ['Progressive Glove', 'Progressive Glove', 'Fire Rod']],
["Ice Palace - Compass Chest", True, ['Progressive Glove', 'Progressive Glove', 'Bombos', 'Progressive Sword']],
@@ -121,6 +120,7 @@ class TestDungeons(TestVanillaOWG):
#todo: does clip require sword?
#["Turtle Rock - Crystaroller Room", True, ['Moon Pearl', 'Pegasus Boots', 'Big Key (Turtle Rock)']],
["Turtle Rock - Crystaroller Room", True, ['Moon Pearl', 'Pegasus Boots', 'Big Key (Turtle Rock)', 'Progressive Sword']],
["Turtle Rock - Crystaroller Room", True, ['Moon Pearl', 'Pegasus Boots', 'Big Key (Turtle Rock)', 'Hookshot']],
["Turtle Rock - Crystaroller Room", True, ['Pegasus Boots', 'Magic Mirror', 'Hammer', 'Big Key (Turtle Rock)']],
["Ganons Tower - Hope Room - Left", False, []],