Skip to content

Platformer Phase B slices 2–3: block slime + conveyor belt (completes Phase B)#59

Draft
SethMorrowSoftware wants to merge 2 commits into
mainfrom
claude/wizardly-brown-1lgjrx
Draft

Platformer Phase B slices 2–3: block slime + conveyor belt (completes Phase B)#59
SethMorrowSoftware wants to merge 2 commits into
mainfrom
claude/wizardly-brown-1lgjrx

Conversation

@SethMorrowSoftware

Copy link
Copy Markdown
Owner

What this is

The final two slices of asset-expansion Phase B, building on the merged slice 1 (Cavern Depths). Both are example-side — no Kit change, no harness bump — and ride the existing slime-family / per-frame machinery.

Slice 2 — the BLOCK SLIME (b49c487)

The previously-unused slime_block_* foes art becomes a new slime-family kind block: a cube that arcs back and forth across its band in hops — the _jump frame in the air, a walk_a/b squish idle when settled — reversing at the band edges and sleeping between hops. Stompable on the classic path (a stomp squashes it to slime_block_rest, a side touch knocks back), so it needs no new b2kContact case — same as the frog. It debuts in L6, replacing a plain slime, so the cavern's signature foe is the hopper.

  • new pfMakeBlockSlime maker (hopper, modeled on pfMakeFrog) + a "blockidle" anim
  • new case "block" in pfTickSlimes (hop on a timer when grounded; reuses gFrogAir as the per-index airborne flag)
  • audit-platformer.py parse branch — it's checked as a walker on solid ground

Slice 3 — the CONVEYOR BELT (6c64b24)

The previously-unused conveyor tile becomes a polled surface zone (pfMakeConveyor pL, pR, pDir) that adds a steady vx to the grounded hero on top of his own walking — you can power against it, jumping over it is unaffected, and a hero on a higher platform at the same x is excluded. No body (the ground slab still owns the collision). Built example-side per the plan (no Kit "surface velocity" feature). The conveyor art is a single frame (no scroll animation), flipped to face the push direction. It debuts in L6 as a leftward treadmill before the block slime.

  • new pfTickConveyor in the frame fan-out (one compare when no belts exist; reads the per-frame hero snapshot)
  • gConv* zone arrays (declared + reset in pfStartGame)
  • audit-platformer.py: conveyor parse branch + an over-solid-ground check (a belt may not run over a pit); also corrected a now-stale spike-tiling comment

Verification

  • tools/check-livecodescript.pyPASS
  • tools/audit-platformer.py0 findings across all 6 levels (block slime parsed as a walker on solid ground; conveyor passes the new over-ground check)
  • All frame names verified against the atlas.

Statically verified — needs an OXT pass. Things to confirm: the block slime hops cleanly (jump frame airborne / squish idle settled, no apex-flicker) and stomps to slime_block_rest; the conveyor carries you on contact, you can power across, and the tread art faces the push direction (the single-frame flip is the only direction cue — gotcha 26). Header verify item 20 has the full checklist.

This completes asset-expansion Phase B (dirt biome L6 + block slime + conveyor; torches landed in slice 1's polish).

🤖 Generated with Claude Code

https://claude.ai/code/session_01X92APxUJUMue3bAzXiX9V2


Generated by Claude Code

claude added 2 commits June 18, 2026 00:06
…e 2)

The unused slime_block_* foes art becomes a new slime-family kind "block": a
cube that arcs back and forth across its band in hops (the _jump frame in the
air, a walk_a/b squish idle when settled), reversing at the band edges and
sleeping between hops. Stompable on the classic path (a stomp squashes it to
slime_block_rest, a side touch knocks back) - no new b2kContact case, like the
frog.

- new pfMakeBlockSlime maker (hopper, modeled on pfMakeFrog) + "blockidle" anim
- new case "block" in pfTickSlimes (hop on a timer when grounded; jump frame
  airborne; reuses gFrogAir as the per-index airborne flag)
- debuts in L6 "Cavern Depths" (replaces a plain slime, 2440..2680 band)
- audit-platformer.py gains the pfMakeBlockSlime parse branch

Example-side only (no Kit change, no harness bump). check-livecodescript passes;
audit clears all 6 levels (L6 still 0 findings, block slime parsed as a walker
on solid ground). Statically verified; needs an OXT pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X92APxUJUMue3bAzXiX9V2
The unused `conveyor` tile becomes a polled surface zone (pfMakeConveyor pL,pR,
pDir) that adds a steady vx to the GROUNDED hero on top of his own walking, so
you can power against it; jumping over it is unaffected and a hero on a higher
platform at the same x is excluded. No body - the level's ground slab still owns
the collision. Built example-side per the plan (no Kit "surface velocity"
feature). The conveyor art is a single frame (no scroll animation), flipped to
face the push direction.

- new pfMakeConveyor maker + pfTickConveyor (added to the frame fan-out; one
  compare when no belts exist; reads the per-frame hero snapshot)
- gConv* zone arrays (declared + reset in pfStartGame)
- debuts in L6 as a leftward treadmill (2176..2368) before the block slime
- audit-platformer.py: conveyor parse branch + an over-solid-ground check (a
  belt may not run over a pit); also corrected the now-stale spike-tiling comment

Completes asset-expansion Phase B (dirt biome L6 + block slime + conveyor; torches
landed in slice 1's polish). Example-side only (no Kit change, no harness bump).
check-livecodescript passes; audit clears all 6 levels. Statically verified.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X92APxUJUMue3bAzXiX9V2
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