You aim it yourself now, and no two rounds are dealt alike

Oliver played it: "the auto aim just mean no skills involved at all. this
should just go away.. there is no penalty at the moment.. make some
variations of the position on the court and the color".

The first two notes are one finding. With the shot locked to the called body
it was unmissable, so the fault could never fire — there was no penalty
because there was no way to earn one. Both snaps are deleted. What replaced
them is one line: aimTie is 0 during a drill. That is not auto-aim, it is
removing the guess — the ordinary magnet lets a nearer body inside the same
cone steal a shot aimed past it, which is right for a crowd you are mowing
down and exactly wrong where hitting the wrong body IS the failure. An
unaimed tap now lands on grass.

And the variation:
- six colours (purple, white) with the court dealt three to five of them, so
  which colours turn up and how many decoys there are are live questions. At
  four out of four every round dealt every colour and only the order moved.
- PLACEMENTS: fan, cluster, column, stagger, wing — weighted, mirrored per
  round, lanes shuffled against the bib order. column stacks bodies in one
  lane, and the ball hits the first thing it touches, so feet matter.
- pips are dice faces now, shared by bib and HUD chip. A row of five dots has
  to be counted; a die is recognised.

Measured over 30 deals: all five shapes, counts even, all six colours, and
the first target screened by another body in ~10% of rounds. Verified end to
end in the browser that FAULT and DOUBLE FAULT both fire.

26 tests, including a named regression for the auto-aim staying gone.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Opus 5 committed 2026-08-11 18:16:25 +02:00
1 parent 22df96cc1d
commit ef8a413031
10 files changed
+173 -64

No files matched your search

+44 -9
View File
@@ -487,22 +487,57 @@ round is theirs. Settled in discussion: **audio-first, and shown as a pattern to
- **Eight new tests** (24 total) pin the ownership contract both ways, the call beat, the clean win,
the double fault, the un-winnable-round guard and the softer death.
**SECOND PASS, same day — Oliver played it: "the auto aim just mean no skills involved at all.
this should just go away.. there is no penalty at the moment.. make some variations of the position
on the court and the color".** All three landed, and the first two are the same finding: with the
shot locked to the called body the mode was unmissable, so **the fault could never fire** — there was
no penalty because there was no way to earn one.
- **Both snaps deleted.** You aim. What replaced them is one line: `aimTie` is **0 during a drill**.
That is not auto-aim, it is removing the *guess* — the ordinary magnet lets a nearer body inside
the same cone steal a shot aimed past it, which is right for a crowd you are mowing down and
exactly wrong where hitting the wrong body IS the failure. An unaimed tap now targets nothing:
`splatServeTarget` returns null and `hitServe` falls back to the service box, so the ball lands on
grass. Verified end to end in the browser: aiming at a decoy kills the decoy, raises FAULT, and
sets the rush; a second wrong body prints DOUBLE FAULT and the round is theirs.
- **The palette is SIX** (purple and white added, two more `say -v Daniel` recordings) **and the
court takes three to five of them** (`drillBodiesMin`/`drillBodies`). Four bibs out of a
four-colour palette meant every round dealt every colour and only the order changed — three
quarters of the round was known before the umpire opened his mouth. Now which colours turn up,
how many, and how many decoys are all live questions.
- **`PLACEMENTS` in drill.js — five shapes, weighted, mirrored left/right per round**: `fan`,
`cluster`, `column` (two or three SHARING A LANE at different depths — the shape that makes feet
matter, because the ball hits the first body it touches), `stagger`, `wing`. Lanes are shuffled
against the bib order, so the called order is unrelated to both the left-right order and the depth
order. Measured over 30 deals: all five shapes appear, counts 3/4/5 roughly even, all six colours
rotate, and **the first called target is screened by another body in about 10% of rounds** — often
enough to matter, rare enough not to be a tax.
- **The pips are DICE FACES now** (`PIP_FACES`, shared by the bib and the HUD chip so they cannot
drift). A row of five dots has to be counted; a die is recognised — and the redundant channel is
pointless if reading it costs more time than reading the hue. **Known limit: the die reads on the
HUD chip at any distance but degrades on the BODY as it recedes.** The bib colour carries; the
face does not. If that turns out to matter, the answer is a bigger bib, not more pips.
- Ten tests now (26 total), including a named regression for the auto-aim being gone and one that
deals 40 rounds and asserts colours, counts and shapes all move.
**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** — measured: one serve
killed bib 1 and then bib 2 standing behind it, banking two correct steps in one shot. Had the
second body been out of order that is an instant fault the player could not have intended. Either
the lane is part of the puzzle (it is the same occlusion that makes footwork matter) or the pierce
has to stop on a drill kill. Do not patch it silently — it is a design fork, not a bug.
2. **The tap now aims itself completely.** With `zombieTarget` snapped, a bare tap is a legal shot at
the called body, so the mode currently has NO aiming skill in it at all — only order and tempo.
That is probably right for a cognitive mode played one-thumbed, and occlusion is the only thing
left that makes standing position matter. Worth a deliberate look rather than an accident.
the lane is part of the puzzle (it is the same occlusion the `column` shape is built on) or the
pierce has to stop on a drill kill. Do not patch it silently — it is a design fork, not a bug.
**More likely to come up now** that `column` deliberately stacks bodies in one lane.
2. ~~**The tap aims itself.**~~ CLOSED by the second pass above — the snap is gone, you aim.
3. Difficulty climbs on sequence LENGTH today (`drillSeq` 3 -> `drillSeqMax` 4, +1 every 3 rounds)
and is deliberately capped low: a longer list is a memory test and memory tests fatigue. The dial
with real headroom is the GEOMETRY — how often the called order fights the order they reach you
in, and how often the target is behind someone. Unbuilt.
and is deliberately capped low: a longer list is a memory test and memory tests fatigue. The
`PLACEMENTS` table is where the real headroom is, and it is currently drawn at random with fixed
weights — nothing ramps. Weighting it toward `column`/`cluster` as the rounds go on is the
obvious next dial and is about four lines.
4. Nothing is wired to tennis scoring, the menu or the run, and the mode has no ending. That is the
next job IF the answer to "tense or noisy?" comes back tense.
5. **A shambler takes two splat-quality hits.** In a mode where every shot is aimed by hand that is
two aimed serves per body, which paces a round more than the order does. Worth checking on feel
whether drill bodies should be one-shot glass.
## Session log: beats.js, the rename, and the build gate (2026-08-11, same day)