FFA baseline: let the band target orbit, so a bot at its band radius stops standing still (dormant, default unchanged) - #74
Open
devin-ai-integration[bot] wants to merge 1 commit into
Conversation
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Contributor
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ffaBandTargetprojects the move target onto the bot's own current bearing from the ring center:so a bot that has reached its band radius is targeting the point it is already standing on, and issues no movement until the ring shrinks into it. This adds an optional tangential lead angle, which makes the same expression self-sustaining orbital motion (the bearing is recomputed from the real position every tick, so a constant lead keeps producing a target ahead along the circumference):
The lead defaults to
0.0, which is byte-identical to today's expression, so nothing changes for any existing seat or the league until an arm sets the env var — this lands dormant like the weapon drop did. Rotation preserves|target - center|, so it orbits rather than spiralling; the sign comes from slot parity so a seat's orbit direction is stable across ticks instead of flip-flopping.Why this knob: over 30 matched-field GV46 episodes (12-seat lobbies containing our arms and the league's top three), our arms are motionless 65-73% of their living ticks while the leaders are motionless 20-46% — and they fire a third as many shots at higher accuracy (59-64% vs 42-50%), deal a third of the damage, and die to the ring 10-20% of the time versus 0-7%. Since vision is a forward cone around the aim angle, "accurate but barely shoots" is the signature of a bot that isn't finding anyone rather than one that's missing. Two earlier hypotheses are already dead on the same data (arm-trip reach: +0.8 ±12.6; doctrine choice: every compiled doctrine 60-90 points below the leaders), which is what pointed at the band target itself.
Nothing here is a rules change:
players/baseline/andtests/only,GameVersionuntouched, no fixtures re-recorded, label contract unchanged. The measurement that decides whether the lead is worth turning on (and at what angle) runs as env-only arms off this same binary; if it doesn't clear the gate, the knob stays at0.0and costs nothing.Link to Devin session: https://app.devin.ai/sessions/274a6b4a46034710a7a81a2a81dc02dc
Open in Devin Desktop: https://app.devin.ai/desktop/session/274a6b4a46034710a7a81a2a81dc02dc?variant=devin
Requested by: @aaln