Give the rally its length back: deep balls, baseliners, approaches off short balls
Every match had collapsed into serve, both at the net, reflex volleys at ~0.7 s per shot. The rally ball landed on the service line by definition, the match CPU stood on the bounce and volleyed 90-100% of everything, and the auto-run chased the earliest contact. Rally modes only (classic + every match; gore and the duel untouched): rally balls land deep and mistiming only shortens them (no new long outs); each shot latches the receiver's plan as it leaves the racket — from the back he lets it bounce and meets it falling, up to 2.2 m behind the line, a short ball pulls him in and he follows it to the net, nobody approaches a man already there, and a volley below the tape is a weak block. Measured: contacts 10.5-13.7 m from the net, back-court volleys 0-8%, 0.8-1.0 s per baseline shot. Three new tests pin the shape; v361. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
f33d46366a
commit
4e7c816a25
8 files changed
+292
-29
No files matched your search
@@ -74,6 +74,24 @@ export const TUNE = {
|
||||
smashBoost: 0.42, // extra pace on a FORWARD flick (aim.az < 0), scaled by timing. It does not
|
||||
// send the ball longer — solveShot still lands it on the same spot — it
|
||||
// gets there flatter and sooner, which is what a smash is.
|
||||
// THE COURT HAS ITS LENGTH (2026-10-13, PROJECT.md "THE RALLY GOES FLAT"). RALLY MODES ONLY
|
||||
// (classic + every match). Gore's tennis prologue and the duel keep SHOT_DEPTH and HOME. The rally
|
||||
// ball used to land ON the service line (SHOT_DEPTH.mid 5.4) and both sides met it as early as
|
||||
// they could, so every point became a volley exchange at the T at ~0.7 s per shot.
|
||||
rallyMid: 2.8, // m inside the receiver's baseline a plain rally ball aims for (gore: 5.4)
|
||||
rallyDeep: 1.9, // ...and a forward flick (gore: 3.0). Mistiming only ever SHORTENS these,
|
||||
// so depth adds no long out
|
||||
shortK: 3.0, // m of depth a quality-0 ball loses (rolled x0.5..1.5): a mistimed ball
|
||||
// sits up SHORT, which is the ball a real opponent attacks
|
||||
shortBall: 4.9, // m from the receiver's baseline past which a landing is SHORT: he runs
|
||||
// in and takes it on the rise (serves never count)
|
||||
netFrom: 7.0, // m from the net inside which a body is AT THE NET: it volleys, and it
|
||||
// recovers to netStand instead of the baseline
|
||||
netStand: 3.2, // m from the net a net player recovers to
|
||||
rallyBack: 0.6, // m behind the baseline a baseliner recovers to
|
||||
rallyBehind: 2.2, // m behind the baseline he will drop back to let a deep ball come down
|
||||
rallyHit: 1.0, // m: a baseliner meets the ball falling through this height
|
||||
lowVolleyQ: 0.3, // quality cap on a volley struck below the tape: you can only block it up
|
||||
aimError: 2.4, // m of scatter at quality 0
|
||||
aimTrust: 0.3, // an aimed rally shot TRUSTS its flick: the scatter may still push the
|
||||
// ball further OUT (the chosen out-risk keeps its exact shape) but only
|
||||
|
||||
Reference in new issue
Block a user