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

+8 -4
View File
@@ -348,11 +348,15 @@ export const TUNE = {
// ---- THE COACHING DRILL (src/drill.js) — the cognitive mode, currently a feel-test prototype.
// The umpire calls a colour sequence while bibbed bodies take their marks; you put them down in
// that order. Uncalled colours are decoys. Two faults and they take the point.
drillBodies: 4, // bibs on court. Capped by DRILL_COLS — four hues is what reads at phone scale
drillSeq: 3, // colours CALLED in round one; the rest of the court is decoys
drillBodiesMin: 3,// bibs on court: a RANGE, drawn per round out of the six-colour palette. Fixed at
drillBodies: 5, // four out of four, every round dealt every colour and only the order changed —
// three quarters of the round was known before the umpire opened his mouth.
// Capped by DRILL_COLS. Above five the court stops reading at phone scale.
drillSeq: 3, // colours CALLED in round one; whatever is left on court is decoys
drillSeqMax: 4, // ...and the ceiling it climbs to (+1 every 3 rounds). Deliberately low: a longer
// list is a memory test and memory tests fatigue. What should keep getting harder
// is the GEOMETRY — how badly the called order fights the order they reach you in.
// list is a memory test and memory tests fatigue. What keeps getting harder is
// the GEOMETRY — the PLACEMENTS table in drill.js, and how badly the called order
// fights the order they reach you in.
drillCallT: 4.2, // s of walk-on while the umpire reads the list. No serving during it
drillWalkOn: 3.4, // m/s they jog out to their marks (a walk-on is brisk; the approach is not)
drillMarkZ: 5.0, // near edge of the band they line up in...