Split The code is public; the app answers only to the crew.
A bot with an AWP fires it from the hip: no bot ever scopes, so the most accurate gun in the game sprays a 7.7° cone #194
Sign in to join this conversation.
Split The code is public; the app answers only to the crew.
input.scopeis never set anywhere inbots.ts, so a bot holding the AWP never zooms it and shoots the one gun that needs stillness while strafing at full carry speed.botBuy(bots.ts:135) hands an AWP to any rich bot on a 15% roll, and #169 will let a bot pick a dropped one off the floor as well.scriptedFight(bots.ts:440-444) then holdsinput.side = ±1for the whole duel and only setsinput.walkpast 1200 units, so the shot goes out at 200 u/s unscoped. Throughinaccuracy, measured against the shipped numbers:p.scopedalready forceswalk)A player hitbox is 32 units wide. So an AWP bot today is firing a cone four bodies wide and its $4750 is a handicap, while the same bot scoped is the thing an AWP is supposed to be. The world side already works for anyone:
applyInput(world.ts:1234) honoursinput.scopefor any player holding a weapon withzoom, gates it onnextShotAt, andshootreadsp.scopedthroughinaccuracy.Done looks like
zoomscopes to fight:input.scopetrue when it has a target it can see beyond a stated range, false when the target is close enough that zoom is a liability, with the range written down as a named constant and not a literal.input.sideis not held at full strafe whilep.scoped, so the shot is taken from something near a stop rather than from a full-speed slide.nextShotAt - 0.05gate inapplyInputby togglingscopeevery tick; whatever it asks for is stable for at least one shot.brain.skillthe wayinput.duckatbots.ts:444already is.bots.test.ts: a bot given an AWP and a visible enemy at long range asks forscope; the same bot with the enemy at knife range does not; a scoped bot'sinput.sideis bounded; and the inaccuracy of the shot it actually takes is below a stated ceiling (the test that fails today).bun run scripts/duel.tsand/orscripts/measure.tsrun before and after, both numbers in the pull: teaching the snipers to scope should move the round split, and if it moves it past the ±2 points #154 cares about, say so there.Files
src/client/bots.ts,src/client/bots.test.ts,README.md. No change toworld.tsshould be needed; if one is, say why in the pull.Risks
bots.tsis #169's file and #187's, so this waits on #169 to keep the diffs apart.think/observe.ts) has no scope action in its action space; this isscriptedFight's business and must not change what the learned policy sees, or the shipped weights stop meaning what they were trained on.Suggested: vesper.