|
Ревью-раунд: багфиксы движка и игры
Системный поиск ошибок (ревью движка + сверка с v1 + стресс рантайма). Игра: тема лугов не останавливалась и наслаивалась (GameAudio держит хендл лупа и кроссфейдит); «E» сквозь катсцену/фейд по протухшим целям; порядок диалогов NPC как в v1 (незнакомый — всегда first); «E» — ближайшая цель с приоритетом при ничьей (v1 pickInteract); радиус NPC 4.5; скорость героя 5.25 вокс/с (v1 1.75 юнита/с); колокольчик в сумку при сборе; ночной свет колокольчиков следует за полем (живой слой тайлов); пустой return-стек — фолбэк на спавн (фейд не зацикливается); кэш декода RLE (isFlower 25/тик); камера входа в область без округления (микро-скачок). Движок: stepTick вне ручного режима = 0 (защита от двойных шагов); addComponent на мёртвой сущности = undefined; dispose закрывает AudioContext и гасит все лупы (Loops.stopAll — свободные слоты playLoopBuffer раньше не останавливались никогда); validateDialogue — kind в do[] узла и циклы узлов-действий; DialogueRunner — реентрантность abort/start в эффектах; dayNightFactor без NaN на вырожденных границах; remapSlots с пустой палитрой без TypeError. Тесты 281→287, все 5 гейтов зелёные. Co-Authored-By: Claude Code <noreply@anthropic.com> |
|---|
|
|
| v2/CLAUDE.md |
|---|
| v2/apps/game/src/audio.ts |
|---|
| v2/apps/game/src/flowers.ts |
|---|
| v2/apps/game/src/main.ts |
|---|
| v2/packages/engine/src/audio/AudioManager.ts |
|---|
| v2/packages/engine/src/audio/Loops.ts |
|---|
| v2/packages/engine/src/audio/__tests__/AudioManager.test.ts |
|---|
| v2/packages/engine/src/core/__tests__/ecs.test.ts |
|---|
| v2/packages/engine/src/core/__tests__/loop.test.ts |
|---|
| v2/packages/engine/src/core/ecs.ts |
|---|
| v2/packages/engine/src/core/loop.ts |
|---|
| v2/packages/engine/src/dialogue/__tests__/graph.test.ts |
|---|
| v2/packages/engine/src/dialogue/graph.ts |
|---|
| v2/packages/engine/src/dialogue/runner.ts |
|---|
| v2/packages/engine/src/models/paletteMap.ts |
|---|
| v2/packages/engine/src/render/daynight.ts |
|---|