THE TOURNAMENT, the pace-lit trail, and brighter opponents
The fourth mode: four rounds up the dead hierarchy (CUP_ROUNDS), each round drawing a rung from its band, the champion always the final. It rides the match machinery whole — cupDraw feeds the drawn rung through d.opp so every ladder dial scales untouched; the body's pool spans the round (need-scaled pool and divisor, so wounds carry between games); cupGameWon holds the same body mid-round, kills it on the round, and past the final cupWon banks a NOT-dead match run under CHAMPION OF THE DEAD CLUB. Blood carries; round one is a single game; deathmatch stays as the arcade run. Full-run state test. Sidequests: the ghost trail is pace-qualified (TUNE.trailSpeed) so both tennis modes streak — pow>0.8 was only ever reached by the gore slingshot; opponent sprites draw ~18% brighter via a load-time baked copy (render.brighten, TUNE.oppBright) with no PNG touched; the cup scoreboard line names the round instead of lying with deathmatch arithmetic; the rack and the apron demo no longer draw under a trophy screen. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
098aefeb63
commit
f9b26e5380
8 files changed
+202
-22
No files matched your search
@@ -46,6 +46,10 @@ export const TUNE = {
|
||||
faceFlip: 0.13, // s an auto-steered direction must persist before the body mirrors (earnFlip).
|
||||
// The rolled cycles hold a real racket, and an un-earned flip teleports it
|
||||
// across the body — the "racket flashing left and right" report
|
||||
trailSpeed: 16, // m/s of horizontal pace at which a rally ball earns the ghost streak in every
|
||||
// mode (the pow>0.8 gate alone was only ever reached by the gore slingshot)
|
||||
oppBright: 1.18, // brightness baked into every OPPONENT sprite copy at load (render.brighten) —
|
||||
// the far bodies read dark against the crowd. Load-time: reload to retune
|
||||
serveSpin: 1.3, // extra gravity a full-power serve carries (was a fixed 0.35). Without it the
|
||||
// net-clearance loop ate the whole smash: a flat fast ball can't get over the
|
||||
// tape AND come down on a target, so it got throttled back to walking pace.
|
||||
@@ -630,9 +634,24 @@ export const COURTS = [
|
||||
export const MODES = [
|
||||
{ id: 'classic', name: 'CLASSIC TENNIS', sub: 'REAL TENNIS · BEST OF THREE SETS', tile: 'o_swing1' },
|
||||
{ id: 'zombie', name: 'ZOMBIE TENNIS', sub: 'ONE GAME PER OPPONENT · BLOOD ONLY', tile: 'z_r1' },
|
||||
{ id: 'cup', name: 'THE TOURNAMENT', sub: 'FOUR ROUNDS · THE CHAMPION WAITS', tile: 'z_champ1' },
|
||||
{ id: 'gore', name: 'SPLATTER GORE', sub: 'THE MATCH TURNS · SURVIVE IT', tile: 'z_boss1' },
|
||||
];
|
||||
|
||||
// THE TOURNAMENT (Oliver's pick over the endless ladder, 2026-08-13): four rounds up the club's
|
||||
// dead hierarchy, each round DRAWING one rung from its band so runs differ, the final always THE
|
||||
// CHAMPION. `need` is games to take the round — round one is a single game so a run opens fast —
|
||||
// and the drawn body's pool scales with need (see matchOpponent), so its wound stages spread
|
||||
// across the whole round instead of being spent in game one. Blood carries between rounds; the
|
||||
// trainer's heal-per-game is what makes the distance survivable. Deathmatch (id 'zombie') stays
|
||||
// beside it as the arcade run.
|
||||
export const CUP_ROUNDS = [
|
||||
{ name: 'ROUND ONE', band: [1, 2, 3], need: 1 },
|
||||
{ name: 'QUARTER-FINAL', band: [4, 5, 6], need: 2 },
|
||||
{ name: 'SEMI-FINAL', band: [7, 8, 9, 10, 11], need: 2 },
|
||||
{ name: 'THE FINAL', band: [12], need: 2 },
|
||||
];
|
||||
|
||||
export const TOURS = [
|
||||
{ id: 'men', name: "MEN'S SINGLES", tile: 'tour_m', sfx: null },
|
||||
{ id: 'women', name: "WOMEN'S SINGLES", tile: 'tour_w', sfx: '_f', dx: 0.46, apex: 0.78, tossDx: -0.59 },
|
||||
|
||||
Reference in new issue
Block a user