Skip to content

platformer: expand Scorched Dunes (L5) to three acts (length + variety)#61

Merged
SethMorrowSoftware merged 5 commits into
mainfrom
claude/wizardly-brown-1lgjrx
Jun 18, 2026
Merged

platformer: expand Scorched Dunes (L5) to three acts (length + variety)#61
SethMorrowSoftware merged 5 commits into
mainfrom
claude/wizardly-brown-1lgjrx

Conversation

@SethMorrowSoftware

Copy link
Copy Markdown
Owner

What

Second increment of the level-length / variety pass (after L6 in #60). Expands L5 "Scorched Dunes" from a single ~4,200px act into a full three-act level, with thematic desert variety.

L5 — Scorched Dunes, now ~6,400px / 24 coins / 3 checkpoints (was 4,200px / 12 / 1)

All of Act 1 kept verbatim (the dune, thorn pit, two-cloud hop, slime/frog/snail/barnacle); two new acts appended across three thorn pits:

  • Act 2 — the boulder dune: a darting fly (mover with a hurt box), a second sand dune a boulder rolls down at you (it re-parks at x4160 so the bank you land on after PIT2 stays safe), a high one-way sand-cloud route, a fire slime (no stomp) and a second frog.
  • Act 3 — the deep desert: a treasure mimic, a second fly, a final cloud route, and a homeward snail to the summit steps + flag.

Variety stays in-theme for a desert — flies, a rolling dune boulder, fire slimes, a buried-treasure mimic — no cave creatures.

The three checkpoints use the multi-checkpoint fix from #60 (each flag banks its own respawn x; only ever advances). This PR also back-fills the CHANGELOG with that fix, which shipped in #60 without a changelog note.

Verification

  • check-livecodescript.py — PASS
  • audit-platformer.py0 findings across all 7 levels (it caught a summit coin overlapping the flag; fixed)
  • Example-side only — no Kit change, no harness bump.

Needs the OXT pass for feel/spacing — especially that the dune boulder is dodgeable on the climb and never traps you, and the three thorn-pit checkpoints all light. L7 (taller tower + more spinners/ledges) and a coin top-up for L2 follow.

🤖 Generated with Claude Code


Generated by Claude Code

claude added 5 commits June 18, 2026 18:53
Second of the level-length audit pass: Scorched Dunes grows from 4,200px
/ 12 coins / 3 foes to ~6,400px and 24 coins, keeping Act 1 verbatim and
appending two desert acts across three thorn pits.

ACT 2 - a darting fly (mover with a hurt box), a SECOND dune a sand
boulder rolls DOWN at you (it re-parks at 4160, so the bank you land on
after PIT2 stays safe), a high one-way sand-cloud route, a fire critter
(spike-type: no stomp) and a second frog.

ACT 3 - a treasure mimic, a second fly, a final sand-cloud route and a
homeward snail to the summit steps + flag.

Three checkpoints now (using the fixed multi-checkpoint path). Desert
variety stays thematic - flies, a rolling dune boulder, fire slimes, a
buried-treasure mimic - no cave creatures.

Also back-fills the CHANGELOG with the multi-checkpoint fix that shipped
in the previous PR without a changelog note.

Example-side only (no Kit change, no harness bump). Static gates clean;
the geometry audit caught a summit coin overlapping the flag (fixed),
0 findings across all 7 levels. Needs the OXT pass for feel/spacing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X92APxUJUMue3bAzXiX9V2
The vertical climbing tower, made to really pop for the length pass. It
roughly doubles in height (1,280 -> ~2,300px, 8 -> 16 ledges) and goes
from 8 coins / 2 spinners to ~22 coins / 2 bonus gems and a real
bestiary.

Variety chosen to work in a VERTICAL shaft. Bats, ghosts, snails and
mimics all hardcode a horizontal ground-y (the bat seeks y450, the ghost
clamps to 220..540, the snail builds its body at y544, etc.), so they
were ruled out. The makers that take an explicit surface-y ride the
one-way ledges fine, so the keep fields:
 - FIVE sweeping spinners guarding the climb gaps, each verified
   standing-safe on both adjacent ledges (hero half-height 38, hurt 28);
 - a stationary HALF-BLADE (pfMakeSpinner pHalf) on the final ledge;
 - three WARDENS on the wide "fight" ledges - a slime to stomp, a
   hopping frog, and a spike slime to dodge (no stomp on the spikes).

pfDressWall tiles the taller shaft; the windows/torches climb it.

Example-side only (no Kit change, no harness bump). The geometry audit
skips vertical levels, so the spinner safety and ledge spacing were
hand-verified; script gates clean, L1-L6 still 0 findings. Needs the OXT
pass for the vertical-only checks (walkers resting on the one-way ledges,
the spike-slime leap to L14, blade timing, the taller wall build).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X92APxUJUMue3bAzXiX9V2
Phase C slice 3, part 1 (the multi-key half). pfMakeKeyDoor was
single-instance - it stashed the door + its key state in shared globals
(gHasKey/gDoorX/gLockSpr/...) that each call overwrote, so a level could
have exactly one door. It now appends to a per-door table indexed
1..gDoorN, and the hero carries a SET of keys instead of a single
boolean:
 - gKeysHeld is the comma-list of colours held (HUD: [KEYS yellow,blue]);
 - each key tags itself uPfKeyWord = its colour (Word, not Colour - the
   stem 'colour' is an engine property, gotcha 2) and rides the shoulder,
   fanned out by held-count when you carry several;
 - pfTickDoors loops every door; the matching held key opens it and is
   CONSUMED, so each key opens exactly its own colour.
Single-door levels (L3's red door) build as door #1 and behave as before.

L2 "The Works" now ends on a TWO-KEY lockgate: a yellow key on the main
run, a blue key up on the hop clouds, and a double door before the flag.
L2 also gains coins to 24 (was 19), closing the level-length audit's last
loose end.

Example-side only (no Kit change, no harness bump). Static gates clean;
audit 0 findings across all 7 levels. The floor switch -> gate half of
slice 3 lands next.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X92APxUJUMue3bAzXiX9V2
…rt 2)

The floor-switch half of Phase C slice 3. pfMakeSwitchGate plants a
floor/ledge switch (switch_<colour>) and the coloured kinematic gate
(block_<colour>) it opens. Unlike pfMakeGate's momentary pressure pad it
LATCHES: step on the switch once and the gate rises out of the way for
good. pfTickSwitchGates polls only-moving-bodies (the ground slab never
reads as pressed), drives the kinematic gate up on change, and once it
settles open gSwDone short-circuits the tick to one compare/frame.

L2 "The Works" gets a GREEN switch-gate: the gate bars the way into the
crusher alley until you climb to the third-bay cloud and press the switch
up there - a "find the switch" beat (skip it and the closed gate sends
you back to look). Keys + switch are all gToysOK-gated, so a missing
tiles sheet degrades to an open run.

Mirrors pfMakeGate's kinematic-velocity move (write-on-change). Fixed a
dangling-else in the maker (block-form the inner sprite-bind if, like
pfMakeGate). Example-side only (no Kit change, no harness bump); static
gates clean, audit 0 findings. Slice 3 complete - needs the OXT pass
(the switch detection + the gate opening reliably).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X92APxUJUMue3bAzXiX9V2
OXT feedback: the blue door sat embedded in the goal step (level
unwinnable), and the two gates were crammed together by the flag.

The L2 stone vault finale was only ~220px (yellow door 5344 -> steps
5568), with no room for a second door - so the blue door at 5600 landed
inside pf_plat1 (5568..5760). Extended the finale (~5,884 -> ~6,312px)
into a real corridor: yellow gate (5344), a 416px stone corridor, blue
gate (5760), a run, then the steps (6016) and flag (6272) - each its own
beat, the gates well clear of the steps. End coins re-placed along it (L2
now 25 coins), and the grass bush that would have sat inside the stone
vault moved out to 5160.

Also gave the GREEN switch-gate clear air: moved it 4060 -> 4000 and
retired the redundant fourth-bay snail (it jammed between the snail and
the first crusher) - the switch-gate guards that approach now.

Example-side only; static gates clean, audit 0 findings across 7 levels.
Needs the OXT pass (the two gates open with their keys, the switch opens
the green gate, the flag is reachable).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X92APxUJUMue3bAzXiX9V2
@SethMorrowSoftware SethMorrowSoftware marked this pull request as ready for review June 18, 2026 19:58
@SethMorrowSoftware SethMorrowSoftware merged commit 2350e55 into main Jun 18, 2026
7 checks passed
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.

2 participants