Тела не проходят друг сквозь друга + карта коллизий агенту
Расталкивание через реестр сцены: герой выталкивает себя из NPC
(PlayerController), враг — из героя, NPC и своих (EnemySystem); каждый
актор двигает только себя (separateCircles). attackStop (0.85) больше
суммы радиусов — авто-атака не дрожит.

A* не ведёт героя сквозь тело: SceneObjects.walkGrid() считает тайлы
NPC занятыми (герой застревал «на носу» у Ирвина — звон в верёвку
не поднимал флаг). Проводка: клик по миру, авто-подход к цели,
scene:route моста.

Карта коллизий агенту: слой s.collision {width, height, blocked (0/1
с footprint пропов), props} + команды scene:walkable {x, y} и
scene:raycast {from, to} (прямая видимость, вода прозрачна). Новый
сценарий checks/collision.mjs: слой валиден, walkable/raycast на
конкретных тайлах, клик в дерево — герой в проходимом, телепорт в
тело спящего ползуна — враг выталкивает себя.

Доки: agent.md (слой + 2 команды), practices.md (ситуация «проверяю
коллизии/движение» + грабли телепорта на тайл перехода).

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent 76521cb commit 3d6c6f9556692f8ad4bac3341366dac8a278ba5e
@root root authored 1 day ago
Showing 12 changed files
View
apps/game/src/agent/SceneAgentView.ts
View
apps/game/src/agent/__tests__/snapshot.test.ts
View
apps/game/src/agent/snapshot.ts
View
apps/game/src/scenes/LocationScene.ts
View
apps/game/src/systems/ClickRouting.ts
View
apps/game/src/systems/PlayerController.ts
View
apps/game/src/systems/SceneObjects.ts
View
apps/game/src/systems/combat/CombatWorld.ts
View
apps/game/tools/agent.mjs
View
apps/game/tools/checks/collision.mjs 0 → 100644
View
docs/engine/agent.md
View
docs/engine/practices.md