The flick shows itself, the width is a dial, the blood stays on

Three asks. The placement ring: an aimed rally hit stamps a gold ring that
fades where the shot is going — flick, watch it bite the corner, learn the
cause. Not stamped for unaimed hits (marking scatter would teach noise), gone
in 0.8s (a permanent ring reads as a target rather than feedback).

The opponent's width is the ladder's third dial. Its returns scatter off
aimError x (1 - quality), which painted lines from game one. matchWideBase
2.1 keeps opponent one inside what an auto-run player can cover — measured,
25 returns all inside +-2.2m — and matchWidePer earns 0.4m per rung, so
line-painting is the late ladder. Speed, reliability, width: three dials.

The blood vignette replaces the temporary border. The old wash flashed 0.3s
and vanished, so between hits the screen said you were fine. A radial
vignette reads G.hp directly now — its depth is your damage fraction,
permanent until healed, hit pulse riding on top. Global: the hp channel is
global. Same no-HP-bar philosophy one layer out; at 1 hp the frame is
properly blood-rimmed and the court centre stays legible.

44 tests, 12 seeds clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Opus 5 committed 2026-08-11 23:09:33 +02:00
1 parent d6df582cd4
commit 8ccf0a8fad
7 files changed
+81 -9

No files matched your search

+17
View File
@@ -931,6 +931,23 @@ strength because the balls kept landing where he wasn't.
(stepping in to take the ball pre-bounce carries reach x1.4 / window x1.8), and serve pace off the
apex. The placement flick is taught nowhere on touch — worth a ghost-hand lesson if the mode ships.
**EIGHTEENTH PASS — the flick shows itself, the width is a dial, the blood stays on.**
- **THE PLACEMENT RING**: an aimed rally hit (flick or held direction at contact) stamps
`G.placeMark` and a gold ring fades where the shot is going — flick, watch it bite the corner,
learn the cause. Deliberately NOT stamped for unaimed hits: marking the scatter would teach noise.
Fades in 0.8 s; a permanent ring would read as a target to hit rather than feedback.
- **`matchWideBase` 2.1 / `matchWidePer` 0.4 — the opponent's WIDTH is the ladder's third dial.**
Its returns scatter off `aimError x (1 - quality)`, which painted lines from game one ("still a
LOT of unreachable balls"). Opponent one now keeps its returns inside what an auto-run player can
actually cover (measured: 25 returns, all inside ±2.2 m), and earns 0.4 m more width per rung —
line-painting is the LATE ladder. Speed, reliability, width: three dials, all per-rung.
- **THE BLOOD VIGNETTE replaces the temporary border.** The old edge wash flashed 0.3 s and
vanished — between hits the screen said you were fine. Now a radial vignette reads `G.hp`
directly: its depth IS your damage fraction, permanent until healed, and the hit pulse rides on
top. Global (the hp channel is global), not match-only. Same no-HP-bar philosophy, one layer out:
the state is worn, not reported. At 1 hp the frame is properly blood-rimmed and the court centre
stays legible.
**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