diff options
| author | Star Rauchenberger <fefferburbia@gmail.com> | 2024-07-26 04:53:11 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-26 10:53:11 +0200 |
| commit | 7641d9590110fa7b4901c7f7ca0384392ef24375 (patch) | |
| tree | 8efdfa5be3a88879a690a4a7351eb7b635989dc7 /test/TestDoors.py | |
| parent | 00c16023c45301224400a06f31f637fdedba00ee (diff) | |
| download | lingo-apworld-7641d9590110fa7b4901c7f7ca0384392ef24375.tar.gz lingo-apworld-7641d9590110fa7b4901c7f7ca0384392ef24375.tar.bz2 lingo-apworld-7641d9590110fa7b4901c7f7ca0384392ef24375.zip | |
Lingo: Add panels mode door shuffle (#3163)
* Created panels mode door shuffle * Added some panel door item names * Remove RUNT TURN panel door Not really useful. * Fix logic with First SIX related stuff * Add group_doors to slot data * Fix LEVEL 2 behavior with panels mode * Fixed unit tests * Fixed duplicate IDs from merge * Just regenerated new IDs * Fixed duplication of color and door group items * Removed unnecessary unit test option * Fix The Seeker being achievable without entrance door * Fix The Observant being achievable without locked panels * Added some more panel doors * Added Progressive Suits Area * Lingo: Fix Basement access with THE MASTER * Added indirect conditions for MASTER-blocked entrances * Fixed Incomparable achievement access * Fix STAIRS panel logic * Fix merge error with good items * Is this clearer? * DREAD and TURN LEARN * Allow a weird edge case for reduced locations Panels mode door shuffle + grouped doors + color shuffle + pilgrimage enabled is exactly the right number of items for reduced locations. Removing color shuffle also allows for disabling pilgrimage, adding sunwarp locking, or both, with a couple of locations left over. * Prevent small sphere one on panels mode * Added shuffle_doors aliases for old options * Fixed a unit test * Updated datafile * Tweaked requirements for reduced locations * Added player name to OptionError messages * Update generated.dat
Diffstat (limited to 'test/TestDoors.py')
| -rw-r--r-- | test/TestDoors.py | 56 |
1 files changed, 53 insertions, 3 deletions
| diff --git a/test/TestDoors.py b/test/TestDoors.py index f496c5f..cfbd7f3 100644 --- a/test/TestDoors.py +++ b/test/TestDoors.py | |||
| @@ -3,7 +3,7 @@ from . import LingoTestBase | |||
| 3 | 3 | ||
| 4 | class TestRequiredRoomLogic(LingoTestBase): | 4 | class TestRequiredRoomLogic(LingoTestBase): |
| 5 | options = { | 5 | options = { |
| 6 | "shuffle_doors": "complex", | 6 | "shuffle_doors": "doors", |
| 7 | "shuffle_colors": "false", | 7 | "shuffle_colors": "false", |
| 8 | } | 8 | } |
| 9 | 9 | ||
| @@ -50,7 +50,7 @@ class TestRequiredRoomLogic(LingoTestBase): | |||
| 50 | 50 | ||
| 51 | class TestRequiredDoorLogic(LingoTestBase): | 51 | class TestRequiredDoorLogic(LingoTestBase): |
| 52 | options = { | 52 | options = { |
| 53 | "shuffle_doors": "complex", | 53 | "shuffle_doors": "doors", |
| 54 | "shuffle_colors": "false", | 54 | "shuffle_colors": "false", |
| 55 | } | 55 | } |
| 56 | 56 | ||
| @@ -78,7 +78,8 @@ class TestRequiredDoorLogic(LingoTestBase): | |||
| 78 | 78 | ||
| 79 | class TestSimpleDoors(LingoTestBase): | 79 | class TestSimpleDoors(LingoTestBase): |
| 80 | options = { | 80 | options = { |
| 81 | "shuffle_doors": "simple", | 81 | "shuffle_doors": "doors", |
| 82 | "group_doors": "true", | ||
| 82 | "shuffle_colors": "false", | 83 | "shuffle_colors": "false", |
| 83 | } | 84 | } |
| 84 | 85 | ||
| @@ -90,3 +91,52 @@ class TestSimpleDoors(LingoTestBase): | |||
| 90 | self.assertTrue(self.multiworld.state.can_reach("Outside The Wanderer", "Region", self.player)) | 91 | self.assertTrue(self.multiworld.state.can_reach("Outside The Wanderer", "Region", self.player)) |
| 91 | self.assertTrue(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | 92 | self.assertTrue(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) |
| 92 | 93 | ||
| 94 | |||
| 95 | class TestPanels(LingoTestBase): | ||
| 96 | options = { | ||
| 97 | "shuffle_doors": "panels" | ||
| 98 | } | ||
| 99 | |||
| 100 | def test_requirement(self): | ||
| 101 | self.assertFalse(self.can_reach_location("Starting Room - HIDDEN")) | ||
| 102 | self.assertFalse(self.can_reach_location("Hidden Room - OPEN")) | ||
| 103 | self.assertFalse(self.can_reach_location("The Seeker - Achievement")) | ||
| 104 | |||
| 105 | self.collect_by_name("Starting Room - HIDDEN (Panel)") | ||
| 106 | self.assertTrue(self.can_reach_location("Starting Room - HIDDEN")) | ||
| 107 | self.assertFalse(self.can_reach_location("Hidden Room - OPEN")) | ||
| 108 | self.assertFalse(self.can_reach_location("The Seeker - Achievement")) | ||
| 109 | |||
| 110 | self.collect_by_name("Hidden Room - OPEN (Panel)") | ||
| 111 | self.assertTrue(self.can_reach_location("Starting Room - HIDDEN")) | ||
| 112 | self.assertTrue(self.can_reach_location("Hidden Room - OPEN")) | ||
| 113 | self.assertTrue(self.can_reach_location("The Seeker - Achievement")) | ||
| 114 | |||
| 115 | |||
| 116 | class TestGroupedPanels(LingoTestBase): | ||
| 117 | options = { | ||
| 118 | "shuffle_doors": "panels", | ||
| 119 | "group_doors": "true", | ||
| 120 | "shuffle_colors": "false", | ||
| 121 | } | ||
| 122 | |||
| 123 | def test_requirement(self): | ||
| 124 | self.assertFalse(self.can_reach_location("Hub Room - SLAUGHTER")) | ||
| 125 | self.assertFalse(self.can_reach_location("Dread Hallway - DREAD")) | ||
| 126 | self.assertFalse(self.can_reach_location("The Tenacious - Achievement")) | ||
| 127 | |||
| 128 | self.collect_by_name("Tenacious Entrance Panels") | ||
| 129 | self.assertTrue(self.can_reach_location("Hub Room - SLAUGHTER")) | ||
| 130 | self.assertFalse(self.can_reach_location("Dread Hallway - DREAD")) | ||
| 131 | self.assertFalse(self.can_reach_location("The Tenacious - Achievement")) | ||
| 132 | |||
| 133 | self.collect_by_name("Outside The Agreeable - BLACK (Panel)") | ||
| 134 | self.assertTrue(self.can_reach_location("Hub Room - SLAUGHTER")) | ||
| 135 | self.assertTrue(self.can_reach_location("Dread Hallway - DREAD")) | ||
| 136 | self.assertFalse(self.can_reach_location("The Tenacious - Achievement")) | ||
| 137 | |||
| 138 | self.collect_by_name("The Tenacious - Black Palindromes (Panels)") | ||
| 139 | self.assertTrue(self.can_reach_location("Hub Room - SLAUGHTER")) | ||
| 140 | self.assertTrue(self.can_reach_location("Dread Hallway - DREAD")) | ||
| 141 | self.assertTrue(self.can_reach_location("The Tenacious - Achievement")) | ||
| 142 | |||
