Time flicks from touch-down, log the opponent's shots, save early half-volleys

From Oliver's first swing log (cup vs the Brute): 13 of 22 hits were
perfect, 9 badly early or late — mostly forward-right flicks — and the
weak balls became seven "passed you". Every hit was a flick, and flicks
still swung only at the flickMin crossing while the timed ring says "touch
now": they are now timed from touch-down too (capped at flickLead 0.1 s).

The log gains its other half: a THEM line per opponent shot (kind, pace,
where it lands relative to you, coming in) and "never swung" judged per
incoming ball instead of once a point. And an early swing on a low ball
digs it out as a capped half-volley instead of whiffing. v366.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Opus 5.5 committed 2026-10-14 11:48:51 +02:00
1 parent d110e12321
commit 5bbde720ad
7 files changed
+66 -9

No files matched your search

+4
View File
@@ -1390,6 +1390,10 @@ test('THE SWING LOG writes in the match too: a whiff, a hit with its tap, and wh
}
const hit = G.missLog.find(e => e.result === 'HIT');
assert.ok(hit && /^q=/.test(hit.reason) && /tap 100ms/.test(hit.reason), 'the hit says how it was struck: ' + (hit && hit.reason));
// ...and the opponent's half is there: what it hit back, and where it lands relative to you
for (let i = 0; i < 2 * 60 && ball.lastHit === 'P'; i++) { zb.swingCool = 0; update(DT); }
const them = G.missLog.find(e => e.result === 'THEM');
assert.ok(them && (/lands/.test(them.reason) || /whiffed/.test(them.reason)), 'the reply is logged: ' + (them && them.reason));
} finally { TUNE.autoAssist = assist; }
});