The bench learns to host the living: two player slots for run-cycle tuning
Oliver: "add a normal player male and female to the hidden bench and let it run there." The fam walk (up/down) now runs two slots past ZFAMS — PLAYER MALE and PLAYER FEMALE. In a living slot the racket zombie steps outside the frame, G.hideO lifts (splatter set it when the match turned), and the real O runs the walk stop's own back-and-forth at the classic CPU's speed class, so the cadence on the bench is the cadence the game plays. SK() reads the slot for the _f suffix, so both tours review without touching the picked tour. The HUD swaps the wound readout for the tuning one: runHz and aiSpeed, the dials a live session turns through T.TUNE. T also gains a keyPressed alias. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ad624d281c
commit
90d7ac1096
4 files changed
+42
-7
No files matched your search
+17
-2
@@ -954,8 +954,18 @@ function drawBenchHud() {
|
||||
const y = CARD_TOP + 4;
|
||||
ctx.textAlign = 'center';
|
||||
ctx.font = B(20);
|
||||
shadowText((ZFAMS.length > 1 ? ZFAMS[b.fam].toUpperCase() + ' · ' : '') + BENCH[b.i].name,
|
||||
shadowText(b.char
|
||||
? 'PLAYER ' + (b.char === 'of' ? 'FEMALE' : 'MALE') + ' · RUN CYCLE'
|
||||
: (ZFAMS.length > 1 ? ZFAMS[b.fam].toUpperCase() + ' · ' : '') + BENCH[b.i].name,
|
||||
W / 2, y, UI.cream);
|
||||
if (b.char) { // the finetune readout: the dials a live tuning session actually turns
|
||||
ctx.font = F(8);
|
||||
shadowText('runHz ' + TUNE.runHz + ' · aiSpeed ' + TUNE.aiSpeed
|
||||
+ ' · T.TUNE.runHz = … to tune live', W / 2, y + 24, UI.warm);
|
||||
ctx.font = F(7, 0);
|
||||
shadowText('↑/↓: OPPONENT · THE LIVING SLOTS SHOW ONLY THE RUN', W / 2, H - 26, UI.dim);
|
||||
return;
|
||||
}
|
||||
ctx.font = F(8);
|
||||
// ...and say so when the stop has no wound variant. The serve and the fall exist for the HEALTHY
|
||||
// body only so far, so a stage label there would be claiming art that has not been drawn — and the
|
||||
@@ -1438,7 +1448,12 @@ function drawPiles(near) { // split at the net like zombies so height occludes c
|
||||
// one whose PNG has not loaded yet — falls straight through to the men's frame. That fallback is
|
||||
// deliberate: a cached 404 on one female frame degrades to a man for a frame, it does not blink the
|
||||
// body out of existence (the same rule drawZombie's missing-frame guard is built on).
|
||||
const SK = n => (tour.sfx && SPR[n + tour.sfx]) ? n + tour.sfx : n;
|
||||
const SK = n => {
|
||||
// the bench's living slots pick the suffix directly (G.bench.char 'o'/'of'), so both tennis
|
||||
// opponents can be reviewed without touching the picked tour
|
||||
const sfx = G.bench && G.bench.char != null ? (G.bench.char === 'of' ? '_f' : '') : tour.sfx;
|
||||
return (sfx && SPR[n + sfx]) ? n + sfx : n;
|
||||
};
|
||||
|
||||
// BOUNCE_IDLE.dx/apex are measured off the DRAWN PALM (see config), so a tour whose player reaches
|
||||
// differently needs its own pair. Only the women's row carries them; ?? falls back to the men's.
|
||||
|
||||
Reference in new issue
Block a user