Skip to content

fix(underground): the cellar reads – floors, door, pillars, motion - #235

Merged
arudaev merged 4 commits into
mainfrom
underground/1-walkable
Oct 25, 2026
Merged

arudaev merged 4 commits into
mainfrom
underground/1-walkable

Conversation

@arudaev

@arudaev arudaev commented Oct 25, 2026

Copy link
Copy Markdown
Member

What and why

Alexander's playtest of the underground (#234): walking around the cellar didn't make sense. This PR makes it match its painting and shows what can be used.

The door, lit, with its key Behind the pillar A ladder's key

The cellar, measured from its painting (hidden_garden_proof.py MEASURED):

  • Upper floor: one floor behind every pillar, running on into the drain's upper ledge. There was a gap under a pillar, which is where you fell through.
  • Ladders: both run from the ledge to the floor. The left one used to climb into the ceiling girder, which was the floating on a wall. The right one was 80 px beside its paint.
  • Door: the stairs door is now on the painted wooden door. It used to sit on a ladder and showed as a purple box in debug mode. The graph still pairs it with the shed door, by id.
  • Notes: the two notes lie on crates instead of on the lower door and out over the forest view.
  • Drain: its second painted ladder can be climbed.

Pillars in front:

  • New layer: 06-pillars sits at z 6, so it's drawn over the hero like 06-near, but it doesn't sway.
  • Cellar: a measured mask takes in its five steel columns.

In the game:

  • Walls at row ends: wherever a chunk has no neighbour in its row, collision.ts edgeWalls closes it. That stops you walking out of the map.
  • The guide stays on his row: the prologue guide now gets only his own row's walk lines (guideLines). He used to follow you down and walk in the cellar's air, which was the second Dexter. The cellar's own sighting stays: he waves from an arch and is gone when you come close.
  • What can be used shows itself:
    • near a door, the door is lit warm and shows the up key, dim until you stand in it;
    • at a ladder's foot or top, you see the key that climbs it;
    • the keycap is bigger;
    • all of it stays wordless.
  • Rooms move (stage/ambient.ts):
    • the lanterns flicker, with dust drifting in their light;
    • the pond above drips through the ceiling onto the floor and splashes;
    • both come from lamp and drip markers in the zone script, in all three rooms.

Issue

Closes #234 once Alexander has checked it on this PR's preview.

Verification

  • pytest scripts: 167 passed. npm test: 364 passed, including new tests for the edge walls, the door and ladder hints, the guide's row and the ambient model. tsc is clean.
  • hidden_garden_proof.py: every surface reachable and leavable. split_layers.py --check rebuilds the cellar exactly with the new layer. collision_check.py --surfaces: 0 problems. check_docs.py is clean.
  • Checked in the dev build (captures above):
    • the hero crosses the old gap and stays on the floor;
    • he's hidden behind the pillar;
    • the door lights up and the ladder shows its key;
    • the lanterns glow;
    • the guide stays at y 471, on the garden row.

…er keys, the guide on his row, moving rooms

From Alexander's playtest of the Hidden Garden's underground (25 Oct):
- collision.ts edgeWalls: a row is closed where a chunk has no neighbour,
  so walking off the cellar's left end no longer falls out of the map.
- Prologue: the guide gets his own row's walk lines (prologueGuide
  guideLines); given the rooms below too, he followed the hero into the
  cellar and walked through its air – the second Dexter.
- rooms.ts: a door you come near is lit warm and shows the up key, dim
  until you stand in it; a ladder's foot and top show the key that climbs
  it. A bigger keycap. Still wordless.
- ambient.ts: lamp markers flicker with dust in their light, drip markers
  drop from the ceiling to the floor under them and splash.
…s, its door; pillars in front

hidden_garden_proof.py MEASURED where the trace disagreed with the
painting: the upper ledge is one floor behind every pillar (it had a gap
under one), the ladders run from the ledge to the floor (one climbed into
the ceiling girder, one was 80 px beside its paint), the stairs door is on
the painted door (it sat on a ladder and read as a purple box), the notes
lie on crates; the drain's second painted ladder climbs. A new layer,
06-pillars: the cellar's steel columns are drawn over the hero and hold
still (split_layers, export, atmosphere). AMBIENT: lantern and drip markers
for the cellar, the drain and the reflection hall. docs/09 records the
rules; game/verification/underground has the in-game captures.
@vercel

vercel Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
wincs Ready Ready Preview Oct 25, 2026 4:20pm UTC

Request Review

@github-actions github-actions Bot added area:art Sprite sheets, stage plates, direction pack area:stage Chunks, layers, collision, clean/anomaly states area:story Prologue, Dexter, crossings, ending area:pipeline Rerunnable art and export scripts area:docs Design docs, README, contributor guides labels Oct 25, 2026
…de on his row

The ladder clip already alternates the arms (frame 2 reaches with the left),
and the rung-step mirroring turned the poncho's THD into DHT (Alexander's
second playtest, 25 Oct). The debug overlay drew the guide at the floor
nearest the hero, so underground his label seemed to follow the hero down:
it now uses his own y.
…the wall top, behind the ledge

Measured: the cellar's ledge steps down 15 px under the middle arch (he
stood on air there); the drain's top "floor" was the top of its back wall
under the water ceiling (he hovered at the pillar) – gone, its ladders
trimmed to the floors they join, the string note on the ledge below. Where
a ladder passes through the cellar's ledge, the ledge's face is drawn over
the climber (06-pillars). The reflection hall's Dexter waits on its floor in
view of the way in, beckoning toward the tear.
@arudaev

arudaev commented Oct 25, 2026

Copy link
Copy Markdown
Member Author

Second playtest (same preview URL, redeployed):

  • Floating over the cellar ledge: the ledge steps down about 15 px under the middle arch, and the floor now follows it.
  • Hovering at the drain pillar: that 'floor' was the top of the back wall under the water ceiling. It's gone, and its ladders now only join the floors they reach.
  • Climbing down through the ledge: you now go behind the stone's face.
  • Mirrored logo: the climb is never mirrored, so the poncho reads THD. The ladder clip already alternates the arms on its own.
  • Dexter in the reflection hall: he now waits on the hall floor where you see him from the way in, beckoning toward the tear. The 'dexter wait' debug label that followed you underground was the overlay drawing him at your height; it now draws him where he is, on the garden row.

@github-actions github-actions Bot added the area:player Hero movement, animation state, camera label Oct 25, 2026
@arudaev
arudaev merged commit 8bf0c59 into main Oct 25, 2026
8 checks passed
@arudaev

arudaev commented Oct 25, 2026

Copy link
Copy Markdown
Member Author

Alexander checked the preview (25 Oct): the underground plays right. Ready to merge on his word; merging closes #234.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:art Sprite sheets, stage plates, direction pack area:docs Design docs, README, contributor guides area:pipeline Rerunnable art and export scripts area:player Hero movement, animation state, camera area:stage Chunks, layers, collision, clean/anomaly states area:story Prologue, Dexter, crossings, ending

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Underground playtest: the cellar doesn't read

1 participant