795ddeb425d930da213c3193d8e9ac7ce6cd4580
Input during the 'over' beat is no longer swallowed: a tap/flick while G.phase==='over' (splatter only) resets inline and falls through to the serve logic, so the finger is the only cadence limit. Spent balls (lastHit 'X' after a stagger bounce) and hopeless balls (out of the z/x bounds) are retired immediately instead of lingering until they roll out. New TUNE.splatterOverT (0.1) replaces the hardcoded 0.25 over-timer. The out-of-bounds z-bounds gate on travel direction so a quick-serve born behind the baseline (P.z up to 26, heading vz<0 to the far court) isn't killed on frame one. Verified via window.T: flick/tap during 'over' serves same frame; spent ball dies the frame it bounces; serve->serve latency 0 frames with immediate flicks; tennis 'over' unchanged (2.2s pause, tap ignored); tennis CPU still returns 11/12 serves; no console errors. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Languages
JavaScript
75.2%
Python
15.8%
HTML
7.3%
Shell
1.4%
Swift
0.2%