Skip to content

[14/16] feat: patrol and charge with autonomous rovers - #145

Merged
arudaev merged 2 commits into
feature/43-coffee-savefrom
feature/45-rover-controller
Oct 24, 2026
Merged

arudaev merged 2 commits into
feature/43-coffee-savefrom
feature/45-rover-controller

Conversation

@Vatsal2005

@Vatsal2005 Vatsal2005 commented Oct 23, 2026 •

Copy link
Copy Markdown
Collaborator

What and why

Autonomous rovers now patrol their authored decks, spot the hero ahead, turn the lidar red and rear for 0.5s before a straight charge. Three accepted chair hits play the five wreck poses and emit one enemy-defeated payload. Living contact costs one battery cell; normal rovers reset when the hero dies.

The controller uses real collision spawns and patrol endpoints, a measured 31×25px standing body, documented movement speeds and native approved poses. Rovers expose chair targets through the existing combat registry. This draft leaves the guard, pogo and shared fluid consumer for their assigned follow-up issues.

Issue

Closes #45
Refs #40, #41, #48

Stack

Base: feature/43-coffee-save. Human merges bottom up; retarget the next PR to main and merge origin/main into every open branch, never rebase.

Acceptance and remaining integration

Verification

  • Node 22: npm run typecheck, npm test (113 tests), npm run build; includes main integration at e8577ab
  • py -3.13 scripts/check_docs.py
  • git diff --cached --check
  • Tests use the actual tutorial collision file: range 640–880, spawn 760/508, exact body bounds, patrol speed 75.25px/s, half-second tell, locked 258px/s charge, forward/vertical detection, three separate sweeps, no duplicate strike, exact wreck completion, reset, hit recovery and jump clearance
  • Browser rover-test: real patrol, charge, contact damage and a sweep reducing the real rover to 2/3 HP. Later player death resets it to 3/3. A full sweep-only clear remains unchecked; the controller has not been called complete.
  • Physical gamepad and Vercel preview: existing deployments require Vatsal2005 to be granted project access by the owner

Reference comparison

Plan and measured tuning: docs/05 rover controller.

Native rover poses on the documented 25px baseline

Reproduce: python scripts/compare.py lineup enemy-rover:idle-00 enemy-rover:drive-00 enemy-rover:charge-00 enemy-rover:charge-01 enemy-rover:charge-02 enemy-rover:wreck-04 --out game/verification/45-rover-pose-compare.png.

Idle measures 31×25px. The approved charge poses lower the mast and measure 18–21px high; their native pixels remain intact while the standing collision body stays 31×25. The red lidar points left and dust trails right, so the renderer mirrors rightward motion. No atlas or lane A changes. Browser capture is retained in ignored tmp/verification/45-rover-sweeps.png; it shows a successful hit and the ongoing encounter, not a completed tutorial clear.

Use authored rover spawns and patrol ranges, a half-second lidar tell, straight charges and a measured 31 by 25 pixel body. Register three-hit chair targets and contact damage; play the wreck poses and emit one defeat event.

Reset normal rovers on player death and document controller tuning with a reference comparison. Typecheck, 113 tests, build and docs pass. Guard, pogo and shared fluid integration remain for their assigned issues.
@Vatsal2005 Vatsal2005 self-assigned this Oct 23, 2026
@Vatsal2005
Vatsal2005 requested a review from arudaev October 23, 2026 23:45
@vercel

vercel Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
wincs Error Error Oct 24, 2026 12:33am UTC

Request Review

@vercel

vercel Bot commented Oct 23, 2026

Copy link
Copy Markdown

@Vatsal2005 must be a member of the arudaev's projects team on Vercel to deploy.
- Click here to add @Vatsal2005 to the team.
- If you initiated this build, request access.
- If you're already a member of the arudaev's projects team, make sure that your Vercel account is connected to your GitHub account.

Learn more about collaboration on Vercel and other options here.

Carry human-merged lane A changes upward without rewriting published commits.
@arudaev
arudaev added this pull request to stack #129 October 24, 2026 00:39
@arudaev
arudaev marked this pull request as ready for review October 24, 2026 01:34
@arudaev
arudaev merged commit 2cb1f6d into main Oct 24, 2026
7 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:docs Design docs, README, contributor guides area:enemies Autonomous robots and Jenny

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[M2-S6] Rover: patrol, spot, charge

2 participants