|
Сцена на SceneRegistry: NPC/интерактивы/пропы/фауна/враги в одном реестре
- дефы получают юниты: NpcDef.pos + atlas?, InteractableDef.pos + view? (tile вычисляется при загрузке модуля — сейвы/снапшот/валидатор без миграций) - SceneObjects: фасад реестра области (npc/int/prop с footprint) - клик-роутинг: npcAt/interactableAt/enemyAt через реестр; чистый resolveClick и приоритеты не тронуты (пробы transitions/interact зелёные) - шов врагов ECS: запись с pos по ссылке, move после шага, remove при смерти - фауна регистрируется (kind 'fauna'), вьюхи NPC — def.atlas, интерактивов — def.view.tex - инвариант registry-consistent (реестр согласован с ECS) Co-Authored-By: Claude Code <noreply@anthropic.com> |
|---|
|
|
| apps/game/src/agent/SceneAgentView.ts |
|---|
| apps/game/src/data/__tests__/interactables.test.ts |
|---|
| apps/game/src/data/interactables.ts |
|---|
| apps/game/src/data/npcs.ts |
|---|
| apps/game/src/scenes/LocationScene.ts |
|---|
| apps/game/src/systems/ClickRouting.ts |
|---|
| apps/game/src/systems/SceneObjects.ts 0 → 100644 |
|---|
| apps/game/src/systems/__tests__/ClickRouting.test.ts |
|---|
| apps/game/src/systems/__tests__/Interactables.test.ts |
|---|
| apps/game/src/systems/combat/CombatWorld.ts |
|---|
| apps/game/src/systems/fauna/FaunaSystem.ts |
|---|