OWG fixes (#79)

* Fix Waterfall entrance being inaccessible with the flippers.
Fix Spectacle Rock and Bombos Tablet requiring moon pearl

* Inverted - make the blacksmith, purple chest, bottle merchant and master sword pedestal accessible without the moon pearl.

* Fix moon pearl checks to avoid requiring moon pearl for mirror accessible locations.

* Dark Desert Teleporter requires the mitts

* Fix OWG bunny rules

* Fix another bunny rule bug.

* Separate superbunny cave into 2 regions.
For OWG, allow superbunny in superbunny cave with no mirror when entering from the bottom
Fix boots clip logic to desert teleporter ledge and TR teleporter
Fix mirror wrap logic for pyramid fairy
For insanity shuffle, exiting Superbunny Cave bottom is now in logic.

* Always require pearl for Swamp (Superbunny cannot do anything)

* Allow clipping into the GT entrance

* Add OWG tests from vt_randomizer

* Add some extra vanilla test cases

* Allow superbunny into the Blind's Hideout entrance.

* More moon pearl / superbunny fixes
Use the Catfish region properly, so Catfish Descent works.

* Allow superbunny into tavern
Fix inverted Kings Grave logic

* Inverted OWG tests

* Update unit tests for King's Tomb clip.

* All superbunny to spiral cave item (with sword)

* Bunny revive is not possible in Sanctuary.

* More inverted tests

* Add/fix test cases

* Fix logic for Magic Bat

* Fix merge to multiworld

* Fix Floodgate superbunny rule

* Require bunny revival for all dungeons except for Swamp/TR Main/Hera/Sanctuary, which have extra requirements

* Require a weapon for Castle Tower.

* Test case fixes

* Update test case - superbunny into Kakariko Tavern is in logic
This commit is contained in:
compiling
2020-04-29 01:34:30 +10:00
committed by GitHub
parent 00da5dfd65
commit 4851a905cf
34 changed files with 2442 additions and 162 deletions

View File

@@ -6,14 +6,12 @@ class TestInvertedLightWorld(TestInverted):
super().setUp()
def testLostWoods(self):
self.run_tests([
self.run_location_tests([
["Master Sword Pedestal", False, []],
["Master Sword Pedestal", False, [], ['Green Pendant']],
["Master Sword Pedestal", False, [], ['Red Pendant']],
["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', 'Beat Agahnim 1']],
["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']],
@@ -37,7 +35,7 @@ class TestInvertedLightWorld(TestInverted):
])
def testKakariko(self):
self.run_tests([
self.run_location_tests([
["Kakariko Tavern", False, []],
["Kakariko Tavern", False, [], ['Moon Pearl']],
["Kakariko Tavern", True, ['Moon Pearl', 'Beat Agahnim 1']],
@@ -111,9 +109,7 @@ class TestInvertedLightWorld(TestInverted):
["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, ['Beat Agahnim 1']],
["Bottle Merchant", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Bottle Merchant", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
@@ -171,7 +167,7 @@ class TestInvertedLightWorld(TestInverted):
])
def testSouthLightWorld(self):
self.run_tests([
self.run_location_tests([
["Desert Ledge", False, []],
["Desert Ledge", False, [], ['Book of Mudora']],
["Desert Ledge", False, [], ['Moon Pearl']],
@@ -251,7 +247,7 @@ class TestInvertedLightWorld(TestInverted):
])
def testZoraArea(self):
self.run_tests([
self.run_location_tests([
["King Zora", False, []],
["King Zora", False, [], ['Progressive Glove', 'Flippers']],
["King Zora", False, [], ['Moon Pearl']],
@@ -284,7 +280,7 @@ class TestInvertedLightWorld(TestInverted):
])
def testLightWorld(self):
self.run_tests([
self.run_location_tests([
["Link's Uncle", False, []],
["Link's Uncle", False, [], ['Moon Pearl']],
["Link's Uncle", True, ['Moon Pearl', 'Beat Agahnim 1']],