Turn the praise down, and stop the footnotes shouting

The band made PERFECT earnable, which was the fix — but you learn a band, and
then the HUD is talking on every other serve again whatever the word says. So
the praise goes behind a shared cooldown (TUNE.praiseEvery, 14s), the same model
the umpire's asides have used all along for exactly this problem. Eight
band-perfect serves back to back now yield one word. The bright click in the pull
is the reliable feedback for a good draw; the word was only ever garnish, and
garnish on every plate is just food.

And the free-floating slot drops 24 -> 18. It shares that slot with CLEAR THE
COURT, DOUBLE KILL, RETURNED and GAME N — half of which are a footnote to
something you already watched happen. Sharing the loud FACE with the milestone
cards is right; sharing their SIZE made every footnote read as a milestone.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Opus 5 committed 2026-08-03 22:53:10 +02:00
1 parent 9c7ee42bfa
commit ebce08199f
6 files changed
+26 -4

No files matched your search

+4
View File
@@ -195,6 +195,10 @@ export const TUNE = {
// needs the pull to STOP in the band pullFull..pullFull*this (130-166 px), which
// is a target you can miss. The pull clicks when you enter it (see input.js) and
// goes quiet when you overshoot, so the window is learnable by feel.
praiseEvery: 14, // s between praise words, on the umpire's-asides model (asideEvery below). The
// band alone was not enough: you learn to hit it, and then the HUD talks on
// every other serve again. The CLICK is the reliable feedback for a good pull —
// the word is garnish, and garnish on every plate is just food.
aimCone: 0.10, // lane half-width added per meter of range. This is what makes the pull's ANGLE
// mean something: at 0.45 the cone was ±10 m at the far baseline — the whole
// court — so every downward pull picked the same body and the angle felt inert.