Подробный список изменений:
- Добавлено файловое логирование игровых сессий в game.log и расширена диагностика COM-подключений.
- Подключен native COM transport с fallback-логикой для IL2CPP и добавлен плагин ComNative.dll.
- Исправлена логика one-way платформ, чтобы игрок проходил сквозь платформы при нахождении ниже их верхней точки.
- Переработана компоновка gameplay HUD: верхние плашки выровнены, левая уменьшена, центральная плашка очков центрирована и масштабирована.
- Добавлена общая выдача призов через хоппер с командами запуска/остановки мотора и ожиданием датчика.
- Подключен сервисный тест хоппера в настройках и обновлены связанные тесты.
- Добавлены скриншоты визуальной проверки HUD.
Подробный список изменений:
- В JumpPlayerController.cs добавлено поле visualRootClone для создания промежуточного объекта-зеркала.
- В RebuildWrapVisuals все клоны спрайтов теперь создаются дочерними к visualRootClone.
- В CopyWrappedVisuals локальная позиция, поворот и масштаб оригинального visualRoot копируются в visualRootClone, а клоны спрайтов позиционируются локально. Это решило проблему переворота персонажа вверх ногами при отзеркаливании скейлом.
Подробный список изменений:
- В JumpPlayerController.cs в методе CopyWrappedVisuals возвращено мировое позиционирование и вращение клонов с оффсетом (вместо локальных). Это полностью исправило баг двойной трансформации поворота родительского объекта, из-за которого клон лежал на боку.
- В OneWayPlatformCollider.cs добавлено отслеживание позиции платформы. В FixedUpdate, если позиция платформы изменилась по сравнению с предыдущим кадром, вызывается UpdateCachedTopY. Это решило проблему ложного срабатывания коллизии при прыжке сквозь перенесенные вверх платформы.
Подробный список изменений:
- В IPlayerController.cs и JumpPlayerController.cs добавлено событие LandedOnNormalPlatform, срабатывающее при обычном автопрыжке.
- В GameplaySession.cs внедрено свойство CurrentCombo. Очки при сборе монет и убийстве врагов умножаются на текущий комбо-множитель, который растет с каждым набором очков. Сброс комбо в 1 происходит по событию приземления на обычную платформу, при смерти или сбросе сессии.
- В GameplayHud.uxml добавлен элемент ComboValue с оранжевым стилем и тенью.
- В GameplayHudController.cs реализовано отображение комбо с анимацией пульсации scale.
Подробный список изменений:
- Объект wrapVisualCloneRoot сделан дочерним к transform игрока.
- Внедрен метод RebuildWrapCollider для автоматического дублирования основного коллайдера игрока (Box/Circle/Capsule) на wrapVisualCloneRoot.
- В Unity дочерние коллайдеры при наличии Rigidbody2D на родителе автоматически формируют Compound Collider (составное физическое тело). Это позволило собирать монеты, активировать пружины и получать урон от врагов визуальным клоном на противоположной стороне экрана.
- В методе CopyWrappedVisuals сменено позиционирование клонов SpriteRenderer на локальные координаты для предотвращения графических артефактов при переносе.
Подробный список изменений:
- В OneWayPlatformCollider.cs добавлено поле cachedTopY. Координата верха платформы теперь вычисляется один раз в Awake/OnEnable, исключая постоянные вызовы TransformPoint и bounds.max.y в каждом FixedUpdate.
- В FixedUpdate добавлена проверка направления полета игрока: если игрок взлетает вверх, коллизия мгновенно отключается (shouldIgnore = true) и метод прерывается, экономя такты процессора на обсчет расстояний для всех платформ.
Подробный список изменений:
- В компонент PlatformSpawnedContent добавлен указатель SourcePrefab на оригинальный префаб.
- Переписаны методы создания и очистки в PlatformContentSpawner: при движении экрана вниз монеты, пружины и другое оборудование не уничтожаются, а деактивируются и переносятся в скрытый пул Platform Content Pool. При движении вверх объекты активируются из пула по их префабам.
- Реализован аналогичный пулинг в ProceduralEnemySpawner для процедурных врагов с очисткой пула в OnDestroy при выгрузке сцены.
Подробный список изменений:
- Перенесены эффекты частиц из C#-кода в готовые префабы-ассеты (Vfx Prefabs) в папке Assets/Resources/Vfx/ с автоматической генерацией материалов в Editor.
- Исправлены ошибки duration на играющих системах частиц и розовые текстуры в GameVfxService.cs.
- Исправлена навигация и фокус кнопок на оверлеях ContinueGameOverlay и PrizeResultOverlay с автоматическим подсвечиванием кнопок лимонно-зеленым цветом при фокусе и проигрыванием звука.
- Добавлена проверка настроек в GameplayHudController.cs для скрытия ContinueGameOverlay, если продолжение игры отключено.
- Расширен сбор статистики: создана структура GameplaySessionRecord, добавлена история до 50 раундов в PrizeSessionStateService и JsonPrizeSessionStateRepository, выведен расчет средних показателей и список 5 последних раундов в сервисной статистике.
- Повышена надежность COM-транспорта: добавлен sleep (80мс) в Dispose для graceful shutdown потоков, реализован цикл переподключения до 10 попыток при обрыве связи.
- Интегрированы настройки громкости с микшером: изменен шаг изменения громкости на 5% (0.05) для удобства, добавлен статус-чек и логи в ApplyServiceVolumes, расширены юнит-тесты на GetFloat параметры.
- Созданы новые архитектурные гайды по аппаратному COM-транспорту и призовой экономике автомата в папке GUIDES/architecture/.
- Оптимизирован и обновлен RAG-индекс проекта.
- Оптимизировано закрытие COM-системы: вызов ReadLine вынесен из-под блокировки во избежание зависания главного потока Unity Editor при выходе из игры или выгрузке сцены.
- Реализован контур безопасности: доступ к меню настроек теперь заблокирован за вводом PIN-кода "1234" с использованием существующего экранного модального ввода ServiceTextInputModalWindow.
- Создана и интегрирована централизованная служба визуальных эффектов IVfxService / GameVfxService. Программно генерируются и воспроизводятся эффекты частиц для автопрыжка, сбора монет и гибели персонажа.
- Создан интерфейс IPlayerController, абстрагирующий состояние и действия игрока.
- JumpPlayerController изменен для реализации интерфейса IPlayerController.
- GameplaySession и VerticalCameraFollow переведены на использование IPlayerController для ослабления связей.
- В GameplayInstaller добавлена регистрация зависимости IPlayerController в Zenject.
- Добавлен асинхронный процесс аппаратной выдачи физических призов (хоппер и витрина) в GameplayHudController.
- Реализована блокировка выдачи по 10-секундному таймауту датчика хоппера с гарантированной отправкой команды отключения двигателя '300'.
- Реализован автоматический таймаут неактивности на экране QR-кода с последующим переходом в главное меню.
- Расширен сервис статистики PrizeSessionStateService новыми долгосрочными счетчиками (сыгранные игры, очки, монеты, сбои связи COM, физ. выдачи и ошибки).
- Обновлен построитель сводки статистики в меню настроек для отображения новых счетчиков и списка последних 5 сессий.
- Написаны EditMode тесты для проверки инкремента счетчиков и запуска выдачи призов.
Подробные изменения:
- Добавлена система призовых уровней и выдачи призов с QR-контуром Telegram, шаблоном сообщения и генерацией QR без внешних библиотек.
- Доработаны сервисные настройки: действия кнопок, модальные окна, ввод с джойстика/клавиатуры, статистика, настройки призов и маршрутизация QR.
- Переработаны gameplay HUD и overlay-панели на UI Toolkit со спрайтовыми плашками, DEV BUILD-статистикой, экраном продолжения и экраном результата приза.
- Исправлены сценарии смерти, GameOver, продолжения игры, начисления очков за высоту и перехода в главное меню.
- Перенесены UI-шаблоны из Resources в Assets/UI, подключена Addressables-загрузка шаблонов настроек и standalone-стили для MainMenuModals.
- Добавлены EditMode/PlayMode тесты для призов, QR, arcade input, UI-модалок, scene flow, HUD и gameplay-сессии.
- Обновлены сцены, настройки Addressables, service settings database, документация и дорожная карта.
Проверки:
- Targeted EditMode QR/UI/settings: 23/23 passed
- Targeted UI templates/EditMode: 17/17 passed
- MainMenuUxmlTests: 3/3 passed
- Full EditMode: 129/129 passed
- PlayMode: 6/6 passed
- Runtime Addressables template load check: loaded=5
- Unity Console после финального refresh: 0 errors
Подробные изменения:
- Добавлены сцены Bootstrap, MainMenu и Game с текущей вертикальной 9:16 структурой проекта.
- Добавлены runtime-скрипты gameplay-архитектуры: DI через Extenject, спавнер платформ, прогрессия этапов, one-way платформы, игрок, камера и оборудование JumpPad.
- Добавлены ScriptableObject-этапы сложности, weighted-настройки платформ, оборудования, противников и collectibles.
- Добавлены UI Toolkit ресурсы главного меню, preview-материалы, шрифты, спрайты, анимации и игровые prefab-ассеты.
- Перенесена и оформлена новая COM-система для работы с аппаратными портами и StreamingAssets.
- Обновлены проектные гайды, AGENTS.md, правила Git/Git LFS, .gitignore, Unity Packages и ProjectSettings.
- Удалён локальный skill start-required-mcp-servers из репозитория.