FFA hunter: let an unarmed bot go find loot instead of waiting to see it (dormant, default unchanged) - #78
Open
devin-ai-integration[bot] wants to merge 2 commits into
Open
Conversation
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
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
An unarmed hunter can only take a weapon that is already in its observation:
bestFfaGuniteratesclient.spriteObjectsWithLabel(...), vision is a cone around aim, and the hunter holds a band at 0.85 of the ring (~800px from center in the frame data), so the central loot cluster is usually not visible at all. The result, measured over 1200 clean hosted seat-rows on GV46 in a ladder-representative field: 35% of hunter seat-episodes never pick up a weapon for the entire game, and mean weapon tier while alive is flat at 0.62 from 30s to 105s, while the leaders climb past 1.2 by 90s (meyernever-arms 4%,rshadow3%,jbr10%).This adds the missing behavior — walk to where loot is when you have nothing and can't see any — as an opt-in branch. Defaults are unchanged, so with the flags unset
hunterFfaIntentbehaves exactly as today; nosrc/file and noGameVersionchange.Shape, in the unarmed tail of
hunterFfaIntent(so precedence stays heal > pursue > visible-gun loot trip > seek):Two details worth calling out:
safeMarginand the actor-proximity veto on the gun itself are untouched, and the 240px cap still applies when the flag is off.ffaSeekDonelatches the abort. Without it the timeout and stop-radius conditions are inert: clearingffaSeekLootalone means the next tick starts a fresh seek with a fresh timer, soMAX_SECbounds nothing and a bot that reaches the stop radius gets pushed back out by the 0.85 band target and re-seeks — dithering between center and band for the rest of its unarmed life. The latch clears when the bot becomes armed and onresetTransient, so a new life re-enables seeking and nothing else does. Two tests cover exactly this non-rearming.Behavior, homogeneous 12-seat GV46 lobbies, seeds 42-53, 144 seat-episodes per arm (score is meaningless in a homogeneous lobby; behavior is not):
Paired never-arm delta
-0.104 ± 0.043(outside 2 SE). Median first-weapon time gets later because the arm now includes seats that previously never armed at all.Shipped dormant: a hosted gate in a representative field decides whether this is worth activating, and the ladder entrant stays
aaln-br-hunter:v2until it clears.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