platformer: transition card + boot title screen + recomposed win card#70
Merged
Merged
Conversation
The headline polish item (docs/platformer-polish-plan.md §2/§2.4): a full-screen opaque overlay now COVERS every level teardown+rebuild, so the player never sees construction. One card-level control (pfCardShade/pfCardText, built once in buildPfUI, kPfUIVersion 10->11) does three jobs: - Cover->reveal: pfStartGame raises the opaque biome card before the teardown trio, the build paints behind it, then pfCardReveal holds a beat and fades it out via a send-driven, generation-guarded blendLevel ramp (decoupled from the frame loop, so it never touches the intro code a past pan rework broke). - Boot title screen: the demo opens on a BOX2DXT card with a live hero preview and the 1-5 hero chooser moved here (off the in-level binding, which could accidentally restart a level); SPACE/RETURN starts. pfPickHero retired. - Recomposed win card: the final-run summary in the level-card visual language, now naming the chosen hero. Also folds the per-caller run-bank resets into one pfResetRun, fixing a latent bug where the dev picker and Play again left the coin-score/star banks stale. Example-side only (no Kit touch -> no harness bump, embedded Kit in sync). Static gates + audit clean. Needs an OXT pass to confirm the cover masks the build and to tune the card tints/flavours/timings. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HkN9P6YodA65ZuhDDuuQks
SethMorrowSoftware
pushed a commit
that referenced
this pull request
Jun 21, 2026
Tie off the merged transition-card / title / illustrated-card work (PR #70 + #71) across the docs: - platformer-polish-plan: §2 status -> SHIPPED & MERGED (transitions, bookends, illustrated cards); tick the §9 DoD "no visible build" + "bookends"; note the docs pass under "Docs current". - Fix the false "recoverable at commit fbc93b2" claim - that commit does not exist in git and there is no Clocktown commit anywhere, so the rollback left no recoverable trace; the as-built record is plan.md + CHANGELOG.md. - README + CLAUDE: describe the new front-end (a boot title screen with character select, biome-illustrated transition cards that mask every level load). Docs only. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HkN9P6YodA65ZuhDDuuQks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
The headline item of
docs/platformer-polish-plan.md(§2 / §2.4): kill the single most "demo-not-game" tell.pfStartGameran its teardown trio (b2kClear/b2kTeardown/pfWipeStage) beforelock screen, so the player watched the old level clear and the new one assemble on every start / advance / restart / picker-jump / hero-pick.A single full-screen card-level overlay now covers that, and the same overlay system gives the demo its bookends.
What changed (example-side only)
Transition card —
pfCardShade+pfCardText(built once inbuildPfUI,kPfUIVersion10 → 11; card-level chrome raised above the camera viewport like the pause overlay, so it never scrolls):pfStartGameraises the opaque biome card (pfCardCover) before the teardown, so the whole build paints behind it; afterb2kStart,pfCardRevealholds a beat then fades it out via asend-driven, generation-guardedblendLevelramp. The fade is decoupled from the frame loop on purpose — it never touches the intro code a past pan rework broke (gotcha 11). Every caller gets it for free (level start, level→level, R-restart, dev picker, title SPACE-start). Death/respawn keeps its light camera-shake (no full card, by design).Boot title screen (
pfShowTitle): the demo no longer drops straight into L1. It opens on aB O X 2 D X Tcard with a live hero preview (the chosen skin's idle frame — a camera-off Kit sprite is a plain card control) and the 1-5 hero chooser moved here, where picking can't accidentally restart a level. SPACE/RETURN starts a fresh run. The in-level1-5binding andpfPickHeroare retired; the pause overlay's hero line now points at the title.Recomposed win card (
pfWin): the final-run summary restyled in the level-card visual language (deeper, more central panel) and now naming the chosen hero alongside time / falls / gems / stars / coin-score / the flawless callout.Bug fix carried along: a single
pfResetRunzeroes every whole-run bank. The dev picker and "Play again" previously left the coin-score + star banks stale, inflating a second run's win screen.Verification
python3 tools/check-livecodescript.py— clean (handler/control balance, smart-quotes, dangling-else, embedded-Kit in sync).python3 tools/audit-platformer.py— 0 findings across 7 levels.kStHarnessVbump, embedded copies stay in sync.OXT is the only runtime; this is "verified statically, needs an engine pass." Please confirm on the engine:
lock screen/unlock screenflush inpfCardShowputs the cover on screen before the churn).gIntroPanbeat ends.pfLevelTint), flavours, text vertical centering, and the win-card layout. All first-pass tunables.🤖 Generated with Claude Code
https://claude.ai/code/session_01HkN9P6YodA65ZuhDDuuQks
Generated by Claude Code