Skip to content

fix(world3): make level-45 world-3-finale reachable - #150

Merged
sv-tmueller merged 1 commit into
mainfrom
feat/140-world3-finale
Aug 16, 2026
Merged

fix(world3): make level-45 world-3-finale reachable#150
sv-tmueller merged 1 commit into
mainfrom
feat/140-world3-finale

Conversation

@sv-tmueller

Copy link
Copy Markdown
Owner

Summary

Fix W3#15 (world-3-finale, level-45.json) by adding mechanics and intermediate one-way platforms to make the 20-row vertical level reachable.

Changes

Mechanics added

  • Teleporter pair: (10,21) <-> (7,16) -- bridges the 5-tile gap from the spawn area (row 21) to the mid-level platforms (row 16)
  • Moving platform (left): (7,16) -> (4,12) -- bridges the 4-tile gap on the left side of the midsection
  • Moving platform (right): (13,16) -> (5,12) -- bridges the 4-tile gap on the right side
  • Control inversion (duration=-1): always-on reversed controls as a gameplay challenge (consistent with W3#8 reverse-commute)

Geometry adjustments (one-way platforms)

  • Row 2, cols 2 and 17: makes both exit positions standable (base exit at (17,1) and mutation-3 exit at (2,1))
  • Row 3, col 4: creates a stepping stone for the path to the attempt-3 exit at (2,1)
  • Row 5, col 10: bridges the row 6 to row 4 gap (solids at row 5 block direct vertical jumps at the existing platform columns)
  • Row 9, col 8: bridges the row 10 to row 6 gap (avoids the solid at (7,7) that would obstruct jumps from col 7)
  • Row 11, col 7: bridges the row 12 to row 10 gap (horizontal distance exceeded the jump envelope without an intermediate platform)

Verified path (base level, exit at (17,1))

Spawn(2,21) -> walk -> (10,21) -> teleport -> (7,16)
-> ride platform -> (4,12) -> walk -> (5,12)
-> jump -> (7,10) -> walk -> (9,10) -> jump -> (8,8) -> jump -> (6,6)
-> walk -> (7,6) -> jump -> (10,6) -> jump -> (14,6)
-> jump -> (10,4) [via oneway at (10,5)] -> jump -> (14,4)
-> jump -> (16,2) -> jump -> (17,1) = EXIT

Mutation variants

  • Attempt 2 (resize-gap): no effect on path -- row 16 cols 7-9 already empty
  • Attempt 3 (move-exit to (2,1)): alternate path via (5,4)->(4,2)->(2,1) using new oneway at (4,3)
  • Attempt 4 (set-tile (10,8)=1, (11,8)=1): new solids dont obstruct any jumps (obstruction check uses source column only; our path uses col 8)

Validation

  • All 1340 tests pass (npm test)
  • ESLint clean (npm run lint)
  • TypeScript clean (npm run typecheck)
  • Reachability validator confirms all 4 mutation variants reachable

Closes #140

Add mechanics (teleporter pair, two moving platforms, control inversion)
and intermediate one-way platforms to bridge the 20-row vertical gap.

Changes:
- Teleporter pair: (10,21)<->(7,16) bridges the 5-tile gap from spawn
  area to the mid-level platforms
- Moving platform left: (7,16)->(4,12) bridges the 4-tile gap on the
  left side of the midsection
- Moving platform right: (13,16)->(5,12) bridges the 4-tile gap on the
  right side
- Control inversion (duration=-1): always-on reversed controls as a
  gameplay challenge
- One-way platforms at rows 2, 3, 5, 9, 11 to create intermediate
  stepping stones for the climb and make both exit positions standable

Verified: all 1340 tests pass, reachability validator confirms all
mutation variants (attempts 1-4) are reachable.

Closes #140
@vercel

vercel Bot commented Aug 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
pitfall Ready Ready Preview Aug 16, 2026 7:22am

@sv-tmueller
sv-tmueller merged commit 9a86847 into main Aug 16, 2026
6 checks passed
@sv-tmueller
sv-tmueller deleted the feat/140-world3-finale branch August 16, 2026 07:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(levels): fix W3#15 world-3-finale (multiple W3 mechanics)

1 participant