bot: fix slow/unsteerable driving + controls tooltip

Diagnosis (agent + live values): tuning & tread geometry were fine, debugAutoDrive
off — the real drag was the box chassis sliding on default ~0.6 friction, which ate
forward speed AND resisted yaw (dead steering).
- Bot_LowFriction physics material (0.3, Minimum combine) on the chassis → slides +
  yaws freely.
- TreadPart yaw-assist (220 N·m, sign reinforces natural differential) so a throttle
  difference gives a clear turn; cancels to zero on equal throttle (straight kept).
- SeatManager: context-aware controls tooltip under the seat box (on-foot vs driving),
  with a 'turn: differ vs teammate' hint.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
megaproxy 2026-07-12 21:20:05 +01:00
parent 30d0b27813
commit 93b8fae66b
5 changed files with 58 additions and 4 deletions

View file

@ -179,6 +179,20 @@ namespace Jankenbots.Prototype
{
ReleaseSeatRpc();
}
// Controls hint under the seat box — context-aware (on foot vs driving).
int ty = y + h + 6, th = 54;
GUI.Box(new Rect(x, ty, w, th), "Controls");
if (mine.HasValue)
{
GUI.Label(new Rect(x + 10, ty + 20, w - 20, 18), "W throttle · LShift pivot · A/D lean");
GUI.Label(new Rect(x + 10, ty + 34, w - 20, 18), "Q leave · V camera · turn: differ vs teammate");
}
else
{
GUI.Label(new Rect(x + 10, ty + 20, w - 20, 18), "WASD move · Mouse look · Scroll zoom");
GUI.Label(new Rect(x + 10, ty + 34, w - 20, 18), "E claim tread · V camera · Esc free cursor");
}
}
static string SeatLabel(ulong pilot) => pilot == NoPilot ? "free" : $"#{pilot}";