Батч 4: ИИ врагов (LOS, шум, патруль, настороженность, отступление)
- los.ts: линия видимости по сетке (дискретизация 0.25 юнита), тайлы с
  tall-объектами непрозрачны; кэш LOS раз в 3 тика в EnemySystem.
- EnemyBrain: состояния patrol/wary/flee/return поверх существующего цикла;
  расширенные сенсоры (pos, canSee, noise, patrolPoints, home, hpFraction);
  бег при отступлении (run в EnemyIntent.move); warySec-таймер.
- CombatWorld.noise(pos, level): шаги героя 0.35, удар конусом 1.0, плевок и
  смерть 0.6; спящих будит только уровень >= 0.7, бодрых слышат от 0.35 в
  hearRadius (окно слышимости 0.5 с).
- Патруль — per-spawn (AREAS[*].enemies patrol {points, pauseSec}): тяжеловес
  и плевун на лугах бродят по маршрутам, ползуны спят в пепле как раньше.
- Поля ИИ в EnemyKindDef + withDefaults; инварианты enemy-state-legal и
  enemy-in-bounds; команды scene:noise и scene:damageEnemy.
- Сценарий tools/checks/ai.mjs (7 проверок) в agent check; 14 новых юнит-
  тестов (EnemyAI) + 6 (los); доки: agent.md, practices.md, demo.md.

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent 1de7e9a commit 376b20b6351054092484030a96dc75c1dc08d1e2
@root root authored 59 minutes ago
Showing 13 changed files
View
apps/game/src/data/enemies.ts
View
apps/game/src/data/locations.ts
View
apps/game/src/scenes/LocationScene.ts
View
apps/game/src/systems/combat/CombatWorld.ts
View
apps/game/src/systems/combat/EnemyBrain.ts
View
apps/game/src/systems/combat/__tests__/EnemyAI.test.ts 0 → 100644
View
apps/game/src/systems/combat/__tests__/los.test.ts 0 → 100644
View
apps/game/src/systems/combat/los.ts 0 → 100644
View
docs/demo.md
View
docs/engine/agent.md
View
docs/engine/practices.md
View
tools/agent.mjs
View
tools/checks/ai.mjs 0 → 100644