Zombie tennis: one game per opponent, blood only
Triage failed the only test that matters — "i think the normal player does not grasp this" — and the lesson across four drill designs is that every invented rule needs teaching, while the rules the scene already implies need none. So the new mode is the game's own oldest rule: tennis. MATCH TEST in the back room (#match). One game per opponent, real 15/30/40 scoring. Built on top of the duel machinery: G.match runs a permanent interlude, which is already what makes serving tennis-like, hides the rack, quiets the spawn director and wakes racketAI. The one change is in resolveInterlude — a settled point feeds matchPoint instead of ending anything. About 90 lines for a whole mode, because the deepest system in the repo was already built. The score is the body: a quarter of its pool per point won, floored at 1, so a love game walks the racket zombie through every wound stage and the game point fells it. Its points draw your blood — hp--, eaten at zero, matchHeal 2 per game won is how you last. Regicide is inherited: kill the body mid-game and the game banks by hand. The timing is drawn, per Oliver's ask: an approach ring around the incoming ball that kisses a fixed inner ring exactly at the sweet contact distance (gold inside the band), and an apex band beside the toss spanning the same 0.12m keyPressed scores as perfect, with a tick riding the live ball. Both cues use the mechanics' own numbers, so the picture cannot lie. Verified by autopilot: 7 games in 90 simulated seconds, opponents 1..8, pools 4/6/8/10, wounds tracking points exactly. 36 tests, 15 seeds clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
be191dba82
commit
0620e97d6c
9 files changed
+298
-16
No files matched your search
+37
@@ -816,6 +816,43 @@ walking with no kills.
|
||||
them back. The teacher steps in exactly when you demonstrably need it and out when you don't,
|
||||
and `drillMark: 0` still kills them outright.
|
||||
|
||||
**THIRTEENTH PASS — ZOMBIE TENNIS, and the drill steps aside.** Oliver on triage: *"i think the
|
||||
normal player does not grasp this"* — the lesson across four drill designs being that **every
|
||||
invented rule needs teaching, and the only rules that don't are the ones the scene already implies**.
|
||||
Brainstormed again; he picked the dark horse: real tennis against the dead. One game per opponent,
|
||||
blood only. *"i can live simple tapping and timing"* — the tap-and-timing scheme, not the slingshot.
|
||||
|
||||
**MATCH TEST in the back room (`#match`).** Built ON TOP of the duel machinery, deliberately:
|
||||
`G.match` runs a PERMANENT interlude — which is already what makes serving tennis-like, hides the
|
||||
rack, quiets the spawn director and wakes `racketAI`. The one change is in `resolveInterlude`: a
|
||||
settled point feeds `matchPoint` instead of ending anything. ~90 lines in beats.js for a whole mode,
|
||||
because the deepest system in the repo (swings, volleys, lanes, the AI) was already built.
|
||||
|
||||
- **The score IS the body**: a quarter of the pool per point won, floored at 1 — a love game walks
|
||||
the racket zombie through every wound stage and the game point fells it (`explode` at the body).
|
||||
The scoreboard and the corpse agree all the way down. `matchOppHp` 4 + 2 per opponent felled.
|
||||
- **Its points draw your blood**: `G.hp--`, eaten at zero, the ordinary channel. Four clean points
|
||||
against you IS the run — `matchHeal` 2 per game won is how you last.
|
||||
- **Regicide inherited free**: smashing the ball into the body still wounds it, killing it outright
|
||||
wins the game early (killZombie -> resolveInterlude('P') lands with the court empty; the game is
|
||||
banked BY HAND there, since advancePoint never saw a game point).
|
||||
- **THE TIMING IS DRAWN** — his ask: *"what is the possible tap window what is the sweet spot"*.
|
||||
Two cues riding the mechanics' own numbers so the picture cannot lie: the APPROACH RING (a ring
|
||||
around the incoming ball that kisses a fixed inner ring exactly at `matchRingSweet` 2.7 m — the
|
||||
centre of the tapped-points benchmark's window — gold inside `matchRingBand`), and the APEX BAND
|
||||
(a guide beside the toss, gold across serveApexY ± the same 0.12 m keyPressed scores as perfect,
|
||||
a white tick riding the live ball). Match-only for now; they would serve plain tennis and the
|
||||
duel too if Oliver wants them there.
|
||||
- Verified by autopilot in the browser: 7 games in 90 simulated seconds, opponents 1..8, pools
|
||||
4/6/8/10, wounds tracking points exactly, heal capping at hpMax.
|
||||
- **One harness trap that cost a round**: startMatch queues TWO first-sight modals (EXHIBITION
|
||||
MATCH, then the racket zombie's own) — and a dismiss during a modal's entrance (`m.in < 1`) is
|
||||
swallowed BY DESIGN. A scripted playtest must clear `G.modal` AND `G.modalQ`, or the world is
|
||||
frozen and sixty seconds of stepping measures nothing.
|
||||
|
||||
**The drill stays in the back room beside it** — triage is a decent idea that failed the
|
||||
grasp-in-five-seconds test, and the match is now the lead candidate for the middle mode.
|
||||
|
||||
**Open, and every one of them is Oliver's call after he plays it:**
|
||||
1. ~~**A ball that carries through the lane can complete two steps at once.**~~ Largely CLOSED by
|
||||
the slice removal (seventh pass) — a cut ball picking its own next victim was the main way this
|
||||
|
||||
Reference in new issue
Block a user