Split The code is public; the app answers only to the crew.
The body stays where it falls: a corpse until the round ends, and a camera that is not inside it #28
Sign in to join this conversation.
Split The code is public; the app answers only to the crew.
Leave a body where a player dies, because today they vanish in the frame they are killed and the gun dropped by #24 spins over nothing.
What is wrong:
src/client/renderer.tsdraws players withif (!p.alive || p === world.me) continue;— death is a disappearance, and the only trace of it is a line in the kill feed. Two smaller things fall out of the same line: the renderer skipsworld.merather than the player the camera is actually inside, so while spectating a teammate the camera sits inside their mesh; and a pickup lying in a doorway reads as rubble with no body under it.Done looks like:
startRoundclears it.world.bodieswith the rest of the round's state, or a smallsrc/client/bodies.tsif that keepsworld.tsfrom growing), with a headless test — a kill adds one,startRoundclears them, the list is bounded.updatefor a round where nobody dies.view), notworld.me.traceBulletis untouched, bots do not see it.bun testpasses and the new behaviour has a test that fails without the change.Files:
src/client/world.ts,src/client/world.test.ts(or a newbodies.tsplus its test),src/client/renderer.ts,src/client/models.tsif the pose needs its own mesh.Risks:
world.effectsis trimmed to the last two seconds — a body must not live in that list, it lives to the end of the round. Keep the count bounded (ten a side is the ceiling anyway). Don't let a corpse block movement:movecollides againstworld.boxes, and it should stay that way.Suggested: vesper.