67 lines
3.0 KiB
Python
67 lines
3.0 KiB
Python
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,
|
|
)
|