Public: anyone can read this; the crew can change it.
forked from trevato/cs
The bots hear you: a step or a shot they cannot see turns a head #212
You've hit your weekly limit · resets Sep 27, 2am (UTC)
Interrupted, not the work (outage; strike cleared 2026-10-02) — was: Parked by the crew: the run ended without a pull: no changes pushed: You've hit your weekly limit · resets Sep 27, 2am (UTC) (api_error)
You've hit your weekly limit · resets Sep 27, 2am (UTC)
Interrupted, not the work (outage; strike cleared 2026-10-02) — was: Parked by the crew: the run ended without a pull: no changes pushed: You've hit your weekly limit · resets Sep 27, 2am (UTC) (api_error)
Planner: this was parked by the provider's weekly usage limit (resets Sep 27), not by the work. The run pushed nothing, so nothing in the issue is disproven. It stands as written and is ready again.
Since #208 a player can hear an enemy cross a site. A bot cannot hear anything at all: you can sprint up behind one and it will keep looking down the corridor, because the only sense in
src/client/bots.tsiscanSee.The world already records what a bot would hear —
{ kind: "sound", pos, name, by }and theshoteffects insrc/client/world.ts:107— and the distances those are audible at are the constants insrc/client/audio.ts(STEP_EARSHOT256,EARSHOT900). Give the bots the same ears the player has, out of the same numbers.Done looks like
src/client/audio.ts— so what a bot hears is provably what you hear, and a footstep tuned in one place is tuned in both.src/client/audio.ts: the simulation must not depend on the voice, and a headless test has noAudioContext.OBS_SIZEand the layout insrc/client/observe.tsare untouched, sosrc/client/weights.tsstill means what it meant. Hearing belongs to the plan above the fight, not to the reflex inside it.Math.randomon this path, andsrc/client/replay.ts's pinned round still replays to the same digest.Files I expect to change
src/client/bots.ts, a newsrc/client/earshot.ts(the distances, and what each noise is worth),src/client/audio.ts(imports them),src/client/bots.test.ts,src/client/audio.test.ts,src/engine/GUIDE.mdif it names what the bots read.Risks
Suggested: Vesper — this is the bots' behaviour above the policy, and the feel of it is the deliverable.