Skip to content

Commit

Permalink
put limbo warp shortcut to SW archive in logic by adding an explicit …
Browse files Browse the repository at this point in the history
…'Subterranean Lake (Out of Bounds)' region
  • Loading branch information
Ixrec committed Sep 19, 2024
1 parent c418f51 commit dd88e32
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 4 deletions.
14 changes: 10 additions & 4 deletions worlds/outer_wilds/shared_static_logic/connections.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,8 @@
{ "category": "dlc", "from": "Dream Raft Loop", "to": "Starlit Cove", "requires": [ { "item": "Raft Docks Patch" } ] },
{ "category": "dlc", "from": "Dream Raft Loop", "to": "Endless Canyon", "requires": [ { "item": "Raft Docks Patch" } ] },

{ "category": "dlc", "from": "Dream Raft Loop", "to": "Subterranean Lake", "requires": [ { "item": "Limbo Warp Patch" } ] },
{ "category": "dlc", "from": "Dream Raft Loop", "to": "Subterranean Lake (Out of Bounds)", "requires": [ { "item": "Limbo Warp Patch" } ] },
{ "category": "dlc", "from": "Subterranean Lake (Out of Bounds)", "to": "Subterranean Lake", "requires": [] },

{ "category": "dlc", "from": "Hidden Gorge", "to": "Abandoned Temple", "requires": [
{ "item": "Ghost Matter Wavelength" },
Expand All @@ -171,7 +172,7 @@
{ "item": "Dream Totem Patch" } // project bridge, hand warp to project 2nd bridge, project raft
] },

// The Shrouded Woodlands Archive needs special logic because you must arrive at SW from the river loop
// The vanilla SW Archive route needs special logic because you must arrive at SW from the river loop
// instead of the green fire, since entering the archive requires waiting for the RL green fire to be
// extinguished by the dam breaking.
// Implementing this requires a bunch of "duplicate" (After Dam Breaks) regions to express that only
Expand All @@ -197,6 +198,12 @@
{ "item": "Dream Totem Patch" } // project covered bridge
] },

// or if you have Limbo Warp Patch, you can get to SW archives right away via the lake
{ "category": "dlc", "from": "Subterranean Lake (Out of Bounds)", "to": "Shrouded Woodlands Archive", "requires": [] },

// you can also use ^this path to reach SW itself without docks patch or RL painting, but
// only after dam breaks, and that's not worth the complexity of including it in logic

{ "category": "dlc", "from": "Starlit Cove", "to": "Starlit Cove Archive", "requires": [
{ "anyOf": [
{ "item": "Dream Totem Patch" }, // hand warp to extinguish well lights
Expand All @@ -208,8 +215,7 @@
{ "item": "Dream Totem Patch" } // extinguish lodge mural, project bridge, hand warp to project 2nd bridge
] },

{ "category": "dlc", "from": "Dream Raft Loop", "to": "Sealed Vault", "requires": [
{ "item": "Limbo Warp Patch" },
{ "category": "dlc", "from": "Subterranean Lake (Out of Bounds)", "to": "Sealed Vault", "requires": [
{ "item": "Projection Range Patch" },
{ "item": "Alarm Bypass Patch" }
] }
Expand Down
Binary file modified worlds/outer_wilds/shared_static_logic/static_logic.pickle
Binary file not shown.
23 changes: 23 additions & 0 deletions worlds/outer_wilds/test/test_eote.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ def test_eote_dlc_with_logsanity(self):
# 34(+4V) DLC default locations + 72 DLC logsanity locations
self.assertEqual(self.getLocationCount(), 375)

# Routes to Shrouded Woodlands

# the obvious route: use the RL artifact on the RL flame
self.assertReachableWith("DW Ship Log: Shrouded Woodlands 1 - Visit", [
"Ghost Matter Wavelength", "River Lowlands Painting Code",
Expand All @@ -103,6 +105,27 @@ def test_eote_dlc_with_logsanity(self):
self.assertNotReachableWith("DW Ship Log: Shrouded Woodlands 1 - Visit", [ "Stranger Light Modulator", "Hidden Gorge Painting Code" ])
self.assertNotReachableWith("DW Ship Log: Shrouded Woodlands 1 - Visit", [ "Stranger Light Modulator", "Hidden Gorge Painting Code", "Raft Docks Patch" ])

# Routes to Shrouded Woodlands Archive

# the first-time vanilla route:
self.assertReachableWith("DW Ship Log: Shrouded Woodlands Archive 1 - Enter", [
"River Lowlands Painting Code", "Ghost Matter Wavelength", # open RL dock
# wait for dam to break
"Breach Override Codes", "Hidden Gorge Painting Code", # use a different flame
"Dream Totem Patch", # to reach the dream raft, and take it to SW
])
self.assertNotReachableWith("DW Ship Log: Shrouded Woodlands Archive 1 - Enter", [
"River Lowlands Painting Code", "Dream Totem Patch"
])

# the "intended shortcut" using the limbo warp glitch learned from SW archive:
self.assertReachableWith("DW Ship Log: Shrouded Woodlands Archive 1 - Enter", [
"River Lowlands Painting Code", "Ghost Matter Wavelength", "Dream Totem Patch", # get on the dream raft
"Limbo Warp Patch", # fall down to Subterranean Lake "out of bounds"
# then simply walk into SW archives
])
self.assertNotReachableWith("DW Ship Log: Shrouded Woodlands Archive 1 - Enter", ["Limbo Warp Patch"])


class TestStrangerSpawn(OuterWildsTestBase):
options = {
Expand Down

0 comments on commit dd88e32

Please sign in to comment.