Make the double tap a stance that holds the net

Oliver on v376: "wenn man doppeltippt, geht er minimal vor". His own
ball's flight covered 4-9 m of the 10 to the net. His next ball was met
from mid-court, outside the net zone, and the recovery after that volley
walked him straight back to the baseline.

The double tap now sets a stance (P.post) that lasts until the next
double tap, a lob he has to run down, or the end of the point. Every
recovery heads for the net at full pace, and every incoming ball is
planned as a net man's. The 'back' stance clears once he is behind the
net zone, so short balls still pull him in.

Measured: contacts while committed are ~35% at the net and ~40% around
the service line, and he no longer falls back. The base ladder is
unchanged. New test; v377.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Opus 5.5 committed 2026-10-14 20:40:56 +02:00
1 parent 48d1069e40
commit ba8d13a867
6 files changed
+72 -11

No files matched your search

+24 -1
View File
@@ -5736,6 +5736,28 @@ only the deep hard ball, the long down-flick only the lob.
- **Not built:** a lesson for it. The ghost hand teaches the tap and the side flick only; the double tap
is undiscoverable without being told. Add one if the phone test says so.
### The double tap is a STANCE, not one ball's run (2026-10-14, v377)
Oliver on v376: *"funktioniert irgendwie nicht — wenn man doppeltippt, geht er minimal vor"*. **Measured**
(`NETX=1`, the bot double-tapping behind 100% of its deep flicks):
- His own ball's flight covered only 4-9 m of the ~10 m to `netStand`.
- His next ball was usually met from mid-court, 7-10 m out, which is OUTSIDE `netFrom` (7 m).
- The approach flag lived for one ball, so the recovery after that volley (`rallyHome`: outside the net
zone → baseline) walked him straight back. Forward a little, then back: exactly the report.
**Now `P.post`** ('net' / 'base') is set by the double tap and holds:
- 'net' lasts until the next double tap, a lob he cannot get under and runs down (`plan.over === null` →
'base'), or the point's end (`setupPoint` clears it).
- `atNetHome` reads it first for the player, so every recovery heads for `netStand` at full pace.
`P.rushing` follows it, so every incoming ball is planned as a net man's.
- 'base' clears itself once he is back beyond `netFrom` + 0.5, so a short ball still pulls him in as before.
**After:** of his contacts while committed, ~35% are at the net (< 3.5 m), ~40% around the service line (the
first volley), ~20% at 7-10 m, and ~5% further. The stance is dropped only by lobs and point ends. Ladder
(σ60, 8 seeds): the base is unchanged; following in is now about neutral, still good against the pushers
(Steward 52 → 61), and no longer punished by the Brute and the Champion.
Test: committed to the net, a volley struck 9 m out keeps him coming in (< 7 m a second later); without the
stance the old recovery still takes him back.
# OPEN — leftovers, in rough priority order
Nothing here is broken; these are known gaps and unverified risks.
@@ -5751,7 +5773,8 @@ Nothing here is broken; these are known gaps and unverified risks.
go back, and the SMASH. See "The player's way to the net and back" above.
v375: the auto-run's shake is gone (a latched chase plan); he is a little stronger for it, so the bottom
of the Climb and classic easy may now be too easy. See "The auto-run stops shaking".
v376: the run to the net and back is a DOUBLE TAP while his own ball flies (replaces v374's flick length). Fallback tag `rally-baseline-v360`.
v376: the run to the net and back is a DOUBLE TAP while his own ball flies (replaces v374's flick length).
v377: the double tap is a stance (P.post) that holds until changed — v376 only moved him a few metres. Fallback tag `rally-baseline-v360`.
1. **`RES` 4 is unverified on a real phone under load.** It nearly doubled the fill rate (810 -> 1080
device px across). Oliver has not reported stutter, but he also has not played a late horde since.