diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2024-03-03 02:20:37 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-03 08:20:37 +0100 |
commit | fcb3b36f44a7d475aa49c5c44971a2b7cabc4ca8 (patch) | |
tree | 7098b5a4c05195383f50c0af4f8b262afecac7ba /test | |
parent | aa22095508e85abe337951fa8ab85fbbfd37d93b (diff) | |
download | lingo-apworld-fcb3b36f44a7d475aa49c5c44971a2b7cabc4ca8.tar.gz lingo-apworld-fcb3b36f44a7d475aa49c5c44971a2b7cabc4ca8.tar.bz2 lingo-apworld-fcb3b36f44a7d475aa49c5c44971a2b7cabc4ca8.zip |
Lingo: Add a third location to Starting Room (#2839)
Despite earlier efforts, there were still rare fill errors when door shuffle and color shuffle were on and early color hallways was off, because sphere 1 was too small. This turns "Starting Room - HI" back into a location, which should give the algorithm more room. The "forced good item" pool has been reconsidered. The problem with the specific item that caused the recent failure (Welcome Back - Shortcut to Starting Room) is that it only provided one location when color shuffle was on, which is a net of zero considering that the GOOD LUCK check was forced. It will no longer show up as a good item unless color shuffle is off. On an opposite vein, Rhyme Room Doors will now show up even if color shuffle is on, because it gives color hallways access by itself. A good item will only be forced onto GOOD LUCK now if there is more than one player.
Diffstat (limited to 'test')
-rw-r--r-- | test/TestDoors.py | 10 | ||||
-rw-r--r-- | test/TestOrangeTower.py | 4 | ||||
-rw-r--r-- | test/TestProgressive.py | 6 | ||||
-rw-r--r-- | test/__init__.py | 9 |
4 files changed, 0 insertions, 29 deletions
diff --git a/test/TestDoors.py b/test/TestDoors.py index 49a0f9c..f496c5f 100644 --- a/test/TestDoors.py +++ b/test/TestDoors.py | |||
@@ -8,8 +8,6 @@ class TestRequiredRoomLogic(LingoTestBase): | |||
8 | } | 8 | } |
9 | 9 | ||
10 | def test_pilgrim_first(self) -> None: | 10 | def test_pilgrim_first(self) -> None: |
11 | self.remove_forced_good_item() | ||
12 | |||
13 | self.assertFalse(self.multiworld.state.can_reach("The Seeker", "Region", self.player)) | 11 | self.assertFalse(self.multiworld.state.can_reach("The Seeker", "Region", self.player)) |
14 | self.assertFalse(self.multiworld.state.can_reach("Pilgrim Antechamber", "Region", self.player)) | 12 | self.assertFalse(self.multiworld.state.can_reach("Pilgrim Antechamber", "Region", self.player)) |
15 | self.assertFalse(self.multiworld.state.can_reach("Pilgrim Room", "Region", self.player)) | 13 | self.assertFalse(self.multiworld.state.can_reach("Pilgrim Room", "Region", self.player)) |
@@ -30,8 +28,6 @@ class TestRequiredRoomLogic(LingoTestBase): | |||
30 | self.assertTrue(self.can_reach_location("The Seeker - Achievement")) | 28 | self.assertTrue(self.can_reach_location("The Seeker - Achievement")) |
31 | 29 | ||
32 | def test_hidden_first(self) -> None: | 30 | def test_hidden_first(self) -> None: |
33 | self.remove_forced_good_item() | ||
34 | |||
35 | self.assertFalse(self.multiworld.state.can_reach("The Seeker", "Region", self.player)) | 31 | self.assertFalse(self.multiworld.state.can_reach("The Seeker", "Region", self.player)) |
36 | self.assertFalse(self.multiworld.state.can_reach("Pilgrim Room", "Region", self.player)) | 32 | self.assertFalse(self.multiworld.state.can_reach("Pilgrim Room", "Region", self.player)) |
37 | self.assertFalse(self.can_reach_location("The Seeker - Achievement")) | 33 | self.assertFalse(self.can_reach_location("The Seeker - Achievement")) |
@@ -59,8 +55,6 @@ class TestRequiredDoorLogic(LingoTestBase): | |||
59 | } | 55 | } |
60 | 56 | ||
61 | def test_through_rhyme(self) -> None: | 57 | def test_through_rhyme(self) -> None: |
62 | self.remove_forced_good_item() | ||
63 | |||
64 | self.assertFalse(self.can_reach_location("Rhyme Room - Circle/Looped Square Wall")) | 58 | self.assertFalse(self.can_reach_location("Rhyme Room - Circle/Looped Square Wall")) |
65 | 59 | ||
66 | self.collect_by_name("Starting Room - Rhyme Room Entrance") | 60 | self.collect_by_name("Starting Room - Rhyme Room Entrance") |
@@ -70,8 +64,6 @@ class TestRequiredDoorLogic(LingoTestBase): | |||
70 | self.assertTrue(self.can_reach_location("Rhyme Room - Circle/Looped Square Wall")) | 64 | self.assertTrue(self.can_reach_location("Rhyme Room - Circle/Looped Square Wall")) |
71 | 65 | ||
72 | def test_through_hidden(self) -> None: | 66 | def test_through_hidden(self) -> None: |
73 | self.remove_forced_good_item() | ||
74 | |||
75 | self.assertFalse(self.can_reach_location("Rhyme Room - Circle/Looped Square Wall")) | 67 | self.assertFalse(self.can_reach_location("Rhyme Room - Circle/Looped Square Wall")) |
76 | 68 | ||
77 | self.collect_by_name("Starting Room - Rhyme Room Entrance") | 69 | self.collect_by_name("Starting Room - Rhyme Room Entrance") |
@@ -91,8 +83,6 @@ class TestSimpleDoors(LingoTestBase): | |||
91 | } | 83 | } |
92 | 84 | ||
93 | def test_requirement(self): | 85 | def test_requirement(self): |
94 | self.remove_forced_good_item() | ||
95 | |||
96 | self.assertFalse(self.multiworld.state.can_reach("Outside The Wanderer", "Region", self.player)) | 86 | self.assertFalse(self.multiworld.state.can_reach("Outside The Wanderer", "Region", self.player)) |
97 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | 87 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) |
98 | 88 | ||
diff --git a/test/TestOrangeTower.py b/test/TestOrangeTower.py index 9170de1..7b0c3bb 100644 --- a/test/TestOrangeTower.py +++ b/test/TestOrangeTower.py | |||
@@ -8,8 +8,6 @@ class TestProgressiveOrangeTower(LingoTestBase): | |||
8 | } | 8 | } |
9 | 9 | ||
10 | def test_from_welcome_back(self) -> None: | 10 | def test_from_welcome_back(self) -> None: |
11 | self.remove_forced_good_item() | ||
12 | |||
13 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player)) | 11 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player)) |
14 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player)) | 12 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player)) |
15 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | 13 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) |
@@ -85,8 +83,6 @@ class TestProgressiveOrangeTower(LingoTestBase): | |||
85 | self.assertTrue(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player)) | 83 | self.assertTrue(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player)) |
86 | 84 | ||
87 | def test_from_hub_room(self) -> None: | 85 | def test_from_hub_room(self) -> None: |
88 | self.remove_forced_good_item() | ||
89 | |||
90 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player)) | 86 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player)) |
91 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player)) | 87 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player)) |
92 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | 88 | self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) |
diff --git a/test/TestProgressive.py b/test/TestProgressive.py index 081d674..e79fd6b 100644 --- a/test/TestProgressive.py +++ b/test/TestProgressive.py | |||
@@ -7,8 +7,6 @@ class TestComplexProgressiveHallwayRoom(LingoTestBase): | |||
7 | } | 7 | } |
8 | 8 | ||
9 | def test_item(self): | 9 | def test_item(self): |
10 | self.remove_forced_good_item() | ||
11 | |||
12 | self.assertFalse(self.multiworld.state.can_reach("Outside The Agreeable", "Region", self.player)) | 10 | self.assertFalse(self.multiworld.state.can_reach("Outside The Agreeable", "Region", self.player)) |
13 | self.assertFalse(self.multiworld.state.can_reach("Hallway Room (2)", "Region", self.player)) | 11 | self.assertFalse(self.multiworld.state.can_reach("Hallway Room (2)", "Region", self.player)) |
14 | self.assertFalse(self.multiworld.state.can_reach("Hallway Room (3)", "Region", self.player)) | 12 | self.assertFalse(self.multiworld.state.can_reach("Hallway Room (3)", "Region", self.player)) |
@@ -60,8 +58,6 @@ class TestSimpleHallwayRoom(LingoTestBase): | |||
60 | } | 58 | } |
61 | 59 | ||
62 | def test_item(self): | 60 | def test_item(self): |
63 | self.remove_forced_good_item() | ||
64 | |||
65 | self.assertFalse(self.multiworld.state.can_reach("Outside The Agreeable", "Region", self.player)) | 61 | self.assertFalse(self.multiworld.state.can_reach("Outside The Agreeable", "Region", self.player)) |
66 | self.assertFalse(self.multiworld.state.can_reach("Hallway Room (2)", "Region", self.player)) | 62 | self.assertFalse(self.multiworld.state.can_reach("Hallway Room (2)", "Region", self.player)) |
67 | self.assertFalse(self.multiworld.state.can_reach("Hallway Room (3)", "Region", self.player)) | 63 | self.assertFalse(self.multiworld.state.can_reach("Hallway Room (3)", "Region", self.player)) |
@@ -90,8 +86,6 @@ class TestProgressiveArtGallery(LingoTestBase): | |||
90 | } | 86 | } |
91 | 87 | ||
92 | def test_item(self): | 88 | def test_item(self): |
93 | self.remove_forced_good_item() | ||
94 | |||
95 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery", "Region", self.player)) | 89 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery", "Region", self.player)) |
96 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) | 90 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player)) |
97 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) | 91 | self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player)) |
diff --git a/test/__init__.py b/test/__init__.py index 7ff456d..a4196de 100644 --- a/test/__init__.py +++ b/test/__init__.py | |||
@@ -6,12 +6,3 @@ from test.bases import WorldTestBase | |||
6 | class LingoTestBase(WorldTestBase): | 6 | class LingoTestBase(WorldTestBase): |
7 | game = "Lingo" | 7 | game = "Lingo" |
8 | player: ClassVar[int] = 1 | 8 | player: ClassVar[int] = 1 |
9 | |||
10 | def world_setup(self, *args, **kwargs): | ||
11 | super().world_setup(*args, **kwargs) | ||
12 | |||
13 | def remove_forced_good_item(self): | ||
14 | location = self.multiworld.get_location("Second Room - Good Luck", self.player) | ||
15 | self.remove(location.item) | ||
16 | self.multiworld.itempool.append(location.item) | ||
17 | self.multiworld.state.events.add(location) | ||