Isle-Slingers/js/physics/collision/agents.md
Relay dff5dd5b30 Clean release scrub: remove internal fleet references
Removes internal process references so the repo is presentable to an
outside audience: dropped the internal build-retrospective doc
(process log with internal terms, not useful to an outside reader),
and reworded remaining internal references in code comments and
module docs (agents.md cards, architecture.md, MODULES.md,
index.html, package.json) to generic descriptions of what changed
and when, with no behavior change -- full 47/47 suite re-run green
after the scrub, every edit verified comment/doc-only via diff.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-29 14:36:52 +00:00

1.1 KiB

js/physics/collision/ — agents.md

Part of the modularization pass. Module map: MODULES.md; runtime model: architecture.md.

Installs into P: crushCircleVsBox, collideBirdWorld, collideBirdBlocks, collideBirdEnemies, REST_VEL_CLAMP, resolveBoxPair.

  • Contact resolution for circles (birds, enemies) vs axis-aligned blocks and block-block pairs. resolveBoxPair is the box-box rest/impulse resolver; crushCircleVsBox is the fast-falling-onto-structure damage path.
  • Added 2026-09-29: crushCircleVsBox is velocity-direction- aware (the box must be the body plowing into the enemy, boxAlong > 30; a resting box never crushes), carries a per-enemy crush cooldown (0.12 s — one landing = one crush instance) and an inelastic velocity transfer so boxes do not phase through enemies; resolveBoxPair stacked contact is mass-weighted inelastic (heavy blocks drive light planks — chain-crush). S-3 (topple) does NOT live here: pivoting blocks are excluded from box-pair resolution by the step loop and integrate in topple/ — keep it that way.
  • Consumes: MATERIALS, WORLD, damageBlock, damageEnemy.