forked from ArchipelagoMW/Archipelago
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The Witness: Fix Tunnels Theater Flower EP Access Logic + Add Unit Te…
…st for it (and Expert PP2) (ArchipelagoMW#3807) * Tunnels Theater Flowers fix + Flowers&PP2 Unit Tests * copypaste * Can just do it like this * This is even better probably * Also do some cleanup :3 * God damnit
- Loading branch information
Showing
2 changed files
with
84 additions
and
32 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
from ..test import WitnessTestBase | ||
|
||
|
||
class TestWeirdTraversalRequirements(WitnessTestBase): | ||
options = { | ||
"shuffle_vault_boxes": True, | ||
"shuffle_symbols": False, | ||
"shuffle_EPs": "individual", | ||
"EP_difficulty": "tedious", | ||
"shuffle_doors": "doors", | ||
"door_groupings": "off", | ||
"puzzle_randomization": "sigma_expert", | ||
} | ||
|
||
def test_weird_traversal_requirements(self) -> None: | ||
""" | ||
Test that Tunnels Theater Flowers EP and Expert PP2 consider all valid paths logically. | ||
""" | ||
|
||
with self.subTest("Tunnels Theater Flowers EP"): | ||
self.assertAccessDependency( | ||
["Tunnels Theater Flowers EP"], | ||
[ | ||
["Theater Exit Left (Door)", "Windmill Entry (Door)", "Tunnels Theater Shortcut (Door)"], | ||
["Theater Exit Right (Door)", "Windmill Entry (Door)", "Tunnels Theater Shortcut (Door)"], | ||
["Theater Exit Left (Door)", "Tunnels Town Shortcut (Door)"], | ||
["Theater Exit Right (Door)", "Tunnels Town Shortcut (Door)"], | ||
["Theater Entry (Door)", "Tunnels Theater Shortcut (Door)"], | ||
["Theater Entry (Door)", "Windmill Entry (Door)", "Tunnels Town Shortcut (Door)"], | ||
], | ||
only_check_listed=True, | ||
) | ||
|
||
with self.subTest("Expert Keep Pressure Plates 2"): | ||
# Always necessary | ||
self.assertAccessDependency( | ||
["Keep Pressure Plates 2"], | ||
[["Keep Pressure Plates 1 Exit (Door)"]], | ||
only_check_listed=True, | ||
) | ||
|
||
# Always necessary | ||
self.assertAccessDependency( | ||
["Keep Pressure Plates 2"], | ||
[["Keep Pressure Plates 3 Exit (Door)"]], | ||
only_check_listed=True, | ||
) | ||
|
||
# All the possible "Exit methods" from PP3 | ||
self.assertAccessDependency( | ||
["Keep Pressure Plates 2"], | ||
[ | ||
["Keep Shadows Shortcut (Door)"], | ||
["Keep Pressure Plates 4 Exit (Door)", "Keep Tower Shortcut (Door)"], | ||
["Keep Pressure Plates 4 Exit (Door)", "Keep Hedge Maze 4 Exit (Door)", | ||
"Keep Hedge Maze 4 Shortcut (Door)"], | ||
["Keep Pressure Plates 4 Exit (Door)", "Keep Hedge Maze 4 Exit (Door)", | ||
"Keep Hedge Maze 3 Exit (Door)", "Keep Hedge Maze 3 Shortcut (Door)"], | ||
["Keep Pressure Plates 4 Exit (Door)", "Keep Hedge Maze 4 Exit (Door)", | ||
"Keep Hedge Maze 3 Exit (Door)", "Keep Hedge Maze 2 Exit (Door)", | ||
"Keep Hedge Maze 2 Shortcut (Door)"], | ||
["Keep Pressure Plates 4 Exit (Door)", "Keep Hedge Maze 4 Exit (Door)", | ||
"Keep Hedge Maze 3 Exit (Door)", "Keep Hedge Maze 2 Exit (Door)", "Keep Hedge Maze 1 Exit (Door)"], | ||
], | ||
only_check_listed=True, | ||
) |