The leagues, phase 2: five bands, pace tiers, locked courts, the members' ground, the promotion ceremony
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
9133c0d351
commit
16bf5b9fed
12 files changed
+406
-71
No files matched your search
+48
@@ -491,6 +491,54 @@ zombie (now an occasional opponent, `TUNE.racketEvery`, not the every-game fixtu
|
||||
`RETURNED`, `DOUBLE KILL`) is a footnote to something you already watched happen. Sharing the loud
|
||||
FACE with the milestone cards is right; sharing their SIZE made every footnote read as a milestone.
|
||||
|
||||
## Session log: THE LEAGUES, PHASE 2 — bands, pace tiers, courts, the promotion (2026-08-29, STAGING ONLY)
|
||||
|
||||
Phase 2 of the plan. STAGING ONLY, like phase 1.
|
||||
|
||||
- **`LEAGUES` in config.js** — five bands tiling the 18-rung ladder exactly (1-4 / 5-8 / 9-12 /
|
||||
13-15 / 16-18, the club's own hierarchy), each with its home court: clay → hard → grass →
|
||||
gloom → **members** (new). `leagueOf(lg)`, and the ladder-shape test now pins the tiling.
|
||||
- **`CUP_ROUNDS` is GONE; the cup carries its own rounds** (`cup.rounds`, stamped by startMatch
|
||||
from `cupRoundsFor(G.league)`). A league band is 3-4 rungs, so the draw is WITHOUT REPLACEMENT:
|
||||
non-final rounds carry the whole sub-band, `cup.played` (and buildBracket's `used` set) stop a
|
||||
body being dealt twice, the final is always the band's top rung — "only the finale is settled"
|
||||
survives the narrow bands. 4-rung leagues play four rounds, 3-rung leagues three.
|
||||
- **`G.league`** (state, PRISTINE 1) is stamped by startMatch — netplay and training stay league-1
|
||||
worlds. **`gameplay.leaguePace()`** = `1 + (league-1) * TUNE.leaguePace` (0.06) multiplies ball
|
||||
pace on BOTH rackets (doHit, both serve paths) and `rzChaseSpeed`, so the world speeds up as one
|
||||
piece and the reach tests keep believing the legs. League 1 IS the shipped game (factor 1.0 —
|
||||
the calibration rule); league 5 plays ~24% faster. Everything non-match is factor 1: gore keeps
|
||||
its own director.
|
||||
- **The arcade opens at its band's bottom rung and CLAMPS at its top** — past it the league has
|
||||
nobody stronger and the top body walks back on; the cup is the only way up. `d.felled` counts
|
||||
bodies now (opp is a band position, `opp - 1` stopped meaning anything — killPlayer, pagehide
|
||||
and the scoreboard slot all read felled).
|
||||
- **Courts lock to the leagues**: a court unlocks for EVERY mode when you reach its league
|
||||
(settled reward formula). Rows keep their tile visible but answer no tap and say the price
|
||||
("LOCKED — REACH THE OFFICIALS"); syncSetup repaints locks on entry; a remembered-but-locked
|
||||
pick falls back to the league court. League matches force the league court in `start()`; the
|
||||
footer says so plus "LEAGUE N". The training picker only offers rungs up to your band's top.
|
||||
- **THE MEMBERS' GROUND** (Oliver's pick): new COURTS row — brightly decayed prestige, dead
|
||||
grey-green lawn (fastest bounce in the table, finishing the pace ladder), pale marble, ivy,
|
||||
faded gold; borrows clay's crowd/ads with `dim` 0.15. Tile rolled via the famroll OpenRouter
|
||||
route (style ref = court_grass tile, 4x NEAREST downscale + quantise), SPRV 148 → 149.
|
||||
- **THE PROMOTION CEREMONY**: cupWon (non-train, cup of your CURRENT league) moves `prof.lg`,
|
||||
parks a ceremony in the profile module (consumed-on-read, survives restartRun), and
|
||||
maybeRestart plays it before the name prompt: PROMOTED. / league name / the new court's tile /
|
||||
"OPEN IN EVERY MODE" / WALK ON. League 5 crowns instead (`prof.ch`, "CHAMPION."). The cup
|
||||
summary's big line is league-aware now: 'CHAMPION OF THE DEAD CLUB.' belongs to league 5 only,
|
||||
lower cups say 'THE CUP IS YOURS.'
|
||||
- **Fix found live**: the scoreboard's cup slot indexed `cup.rounds[cup.round]` one past the end
|
||||
on the trophy frame (cup.round is incremented before cupWon is reached) — clamped.
|
||||
- **XP bar wears a gradient** (Oliver, mid-session): green → acid → gold, splash strip and the
|
||||
canvas bar on the death screen.
|
||||
- Tests 118 → 121 (band tiling + per-league cup shape, promotion + ceremony parked, champion
|
||||
crown, arcade band clamp + felled, pace-tier scaling and its exemptions; the tournament
|
||||
walkthrough now also asserts no body is dealt twice and the promotion fires; freshSplatter
|
||||
resets the profile league so a won cup cannot leak league 2 into later tests). Seeds fuzzed.
|
||||
Pane-verified: locks, forced court + league footer, league-2 draw, full cup → trophy (+1512 XP
|
||||
· LEVEL 6 → 8) → PROMOTED ceremony → league-5 arcade opening vs THE BRUTE on the members court.
|
||||
|
||||
## Session log: THE LEAGUES, PHASE 1 — profile, xp, the identity screen (2026-08-29, STAGING ONLY)
|
||||
|
||||
Phase 1 of the plan below, built exactly to it. **STAGING ONLY for now** (Oliver: he tests himself
|
||||
|
||||
Reference in new issue
Block a user