22 Commits

Author SHA1 Message Date
c3bb250769 Integrate COM logging HUD fixes and hopper dispensing
Подробный список изменений:
- Добавлено файловое логирование игровых сессий в game.log и расширена диагностика COM-подключений.
- Подключен native COM transport с fallback-логикой для IL2CPP и добавлен плагин ComNative.dll.
- Исправлена логика one-way платформ, чтобы игрок проходил сквозь платформы при нахождении ниже их верхней точки.
- Переработана компоновка gameplay HUD: верхние плашки выровнены, левая уменьшена, центральная плашка очков центрирована и масштабирована.
- Добавлена общая выдача призов через хоппер с командами запуска/остановки мотора и ожиданием датчика.
- Подключен сервисный тест хоппера в настройках и обновлены связанные тесты.
- Добавлены скриншоты визуальной проверки HUD.
list v2.0.1
2026-07-06 16:47:27 +03:00
9b9f57871a Mirror visualRoot hierarchy in Screen Wrapping container to fix clone rotation and scale flipping
Подробный список изменений:
- В JumpPlayerController.cs добавлено поле visualRootClone для создания промежуточного объекта-зеркала.
- В RebuildWrapVisuals все клоны спрайтов теперь создаются дочерними к visualRootClone.
- В CopyWrappedVisuals локальная позиция, поворот и масштаб оригинального visualRoot копируются в visualRootClone, а клоны спрайтов позиционируются локально. Это решило проблему переворота персонажа вверх ногами при отзеркаливании скейлом.
2026-07-03 16:58:27 +03:00
4e8c258824 Fix Screen Wrapping visual rotation offset and OneWay platform bottom collision
Подробный список изменений:
- В JumpPlayerController.cs в методе CopyWrappedVisuals возвращено мировое позиционирование и вращение клонов с оффсетом (вместо локальных). Это полностью исправило баг двойной трансформации поворота родительского объекта, из-за которого клон лежал на боку.
- В OneWayPlatformCollider.cs добавлено отслеживание позиции платформы. В FixedUpdate, если позиция платформы изменилась по сравнению с предыдущим кадром, вызывается UpdateCachedTopY. Это решило проблему ложного срабатывания коллизии при прыжке сквозь перенесенные вверх платформы.
2026-07-03 16:51:08 +03:00
15adf94b21 Implement score combo multiplier with animated HUD text
Подробный список изменений:
- В IPlayerController.cs и JumpPlayerController.cs добавлено событие LandedOnNormalPlatform, срабатывающее при обычном автопрыжке.
- В GameplaySession.cs внедрено свойство CurrentCombo. Очки при сборе монет и убийстве врагов умножаются на текущий комбо-множитель, который растет с каждым набором очков. Сброс комбо в 1 происходит по событию приземления на обычную платформу, при смерти или сбросе сессии.
- В GameplayHud.uxml добавлен элемент ComboValue с оранжевым стилем и тенью.
- В GameplayHudController.cs реализовано отображение комбо с анимацией пульсации scale.
2026-07-03 16:40:34 +03:00
19ac082fed Create Vfx sorting layer and configure Particle System generator to use it
Подробный список изменений:
- В ProjectSettings/TagManager.asset добавлен новый слой сортировки Vfx на самом переднем плане (после Player).
- В VfxGeneratorEditor.cs добавлено назначение sortingLayerName = 'Vfx' для ParticleSystemRenderer при генерации префабов эффектов частиц.
- Удалены старые префабы VFX, чтобы они автоматически пересоздались с новым слоем сортировки и отображались поверх персонажей и платформ.
2026-07-03 16:11:58 +03:00
77c72e2f01 Implement seamless physical Screen Wrapping using Compound Collider on wrap visuals container
Подробный список изменений:
- Объект wrapVisualCloneRoot сделан дочерним к transform игрока.
- Внедрен метод RebuildWrapCollider для автоматического дублирования основного коллайдера игрока (Box/Circle/Capsule) на wrapVisualCloneRoot.
- В Unity дочерние коллайдеры при наличии Rigidbody2D на родителе автоматически формируют Compound Collider (составное физическое тело). Это позволило собирать монеты, активировать пружины и получать урон от врагов визуальным клоном на противоположной стороне экрана.
- В методе CopyWrappedVisuals сменено позиционирование клонов SpriteRenderer на локальные координаты для предотвращения графических артефактов при переносе.
2026-07-03 15:53:11 +03:00
988f54bc01 Optimize physical collisions on platforms by caching TopY and implementing early out in FixedUpdate
Подробный список изменений:
- В OneWayPlatformCollider.cs добавлено поле cachedTopY. Координата верха платформы теперь вычисляется один раз в Awake/OnEnable, исключая постоянные вызовы TransformPoint и bounds.max.y в каждом FixedUpdate.
- В FixedUpdate добавлена проверка направления полета игрока: если игрок взлетает вверх, коллизия мгновенно отключается (shouldIgnore = true) и метод прерывается, экономя такты процессора на обсчет расстояний для всех платформ.
2026-07-03 15:44:17 +03:00
01a6f631ef Implement Object Pooling for platform items and procedural enemies to optimize memory allocations
Подробный список изменений:
- В компонент PlatformSpawnedContent добавлен указатель SourcePrefab на оригинальный префаб.
- Переписаны методы создания и очистки в PlatformContentSpawner: при движении экрана вниз монеты, пружины и другое оборудование не уничтожаются, а деактивируются и переносятся в скрытый пул Platform Content Pool. При движении вверх объекты активируются из пула по их префабам.
- Реализован аналогичный пулинг в ProceduralEnemySpawner для процедурных врагов с очисткой пула в OnDestroy при выгрузке сцены.
2026-07-03 15:35:40 +03:00
839a68aef1 Improve VFX, UI overlays, session statistics, COM reliability, audio mixer, and expand architecture guides
Подробный список изменений:
- Перенесены эффекты частиц из 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-индекс проекта.
2026-07-03 15:04:08 +03:00
9000a6bc0c Improve F6 hotkey robustness and add legacy Input system fallback
- В метод ComSystem.Update добавлен надежный ручной трекинг состояния зажатия клавиши F6 для обхода проблем с execution order в wasPressedThisFrame.

- Добавлен резервный опрос через UnityEngine.Input.GetKey с перехватом исключений на случай, если новый Input System не успел инициализироваться или отключен.

- Добавлено приватное поле f6WasPressedLastFrame для сохранения состояния клавиши в предыдущем кадре.
2026-06-23 15:54:39 +03:00
4067a705ee Add F6 hotkey to simulate payment system impulse
- В метод ComSystem.Update добавлен опрос клавиши F6 через новую систему ввода Keyboard.current.

- Данная обработка работает исключительно в Editor и Development билдах для безопасности.

- При нажатии клавиши F6 вызывается AddPaymentImpulse с заданным количеством импульсов, пополняя баланс игрока.
2026-06-23 15:51:52 +03:00
2289c48bab Add prize showcase cell grid visualization to PrizeResultOverlay
- В шаблон GameplayOverlays.uxml добавлен контейнер PrizeStandContainer с тестовыми ячейками для корректного отображения структуры витрины в UI Builder.

- Убрано принудительное скрытие display: none для QR-контейнера в GameplayHud.uss для видимости в редакторе; скрытие теперь происходит при старте в C# скрипте.

- В GameplayHud.uss добавлены стили для сетки ячеек витрины и их цветовых состояний (готова к выдаче, пустая, открывается, открыта, ошибка).

- В PrizeResultOverlayWindow.cs реализован метод SetPrizeStandStatus для динамической генерации сетки ячеек витрины на основе их реального статуса.

- В GameplayHudController.cs интегрирован опрос состояний ячеек при выдаче физического приза с витрины и обновление их статуса на экране.

- В PrizeResultOverlayWindowTests.cs добавлен юнит-тест SetPrizeStandStatus_RendersCellsWithCorrectStatuses для верификации логики отображения ячеек.
2026-06-23 15:47:36 +03:00
2525f471db Apply game-wide styles and typography to GameplayOverlays template
- Добавлено импортирование таблицы стилей GameplayHud.uss внутрь GameplayOverlays.uxml для корректного отображения стилей в UI Builder.

- В GameplayHud.uss добавлены свойства -unity-font-definition для классов заголовков, кнопок и информационных полей оверлеев, использующие шрифты RifficFree-Bold и BerlinSansFBCyrillic-Regular.
2026-06-23 15:41:15 +03:00
9549d42ea3 Add unit tests for security contour, COM port shutdown and VFX service
- Äîáàâëåíû EditMode òåñòû äëÿ âåðèôèêàöèè ââîäà PIN-êîäà àâòîðèçàöèè ïåðåä îòêðûòèåì ìåíþ íàñòðîåê â MainMenuControllerServiceActionTests.cs.
- Ñîçäàíû íîâûå EditMode òåñòû VfxServiceTests.cs, ïîêðûâàþùèå null-safety è êîððåêòíîå ñîçäàíèå GameObject ñèñòåì ÷àñòèö äëÿ IVfxService è GameVfxService.
- Ñîçäàí íîâûé EditMode êëàññ òåñòîâ ComSystemShutdownTests.cs, ïðîâåðÿþùèé áûñòðîå è áåçîïàñíîå çàêðûòèå COM-ñèñòåìû.
- Èñïðàâëåí ïîðÿäîê âûçîâà RequestClose() â ServiceTextInputModalWindow.Confirm() äëÿ ïðåäîòâðàùåíèÿ çàêðûòèÿ ìîäàëüíûõ îêîí ïîâåðõ òåêóùåãî ïðè çàêðûòèè îêíà ââîäà.
- Èñïðàâëåíî óíè÷òîæåíèå îáúåêòîâ â GameVfxService.cs è JumpPlayerController.cs â EditMode ñ ïîìîùüþ ïðîâåðêè Application.isPlaying.
- Äîáàâëåíà ëåíèâàÿ èíèöèàëèçàöèÿ Rigidbody2D â ìåòîäàõ Bounce() è Die() â JumpPlayerController.cs äëÿ ïðåäîòâðàùåíèÿ NullReferenceException â èçîëèðîâàííûõ òåñòàõ.
- Âñå 174 EditMode è 7 PlayMode òåñòîâ óñïåøíî ïðîéäåíû â Unity Editor.
2026-06-23 15:38:21 +03:00
e70120f0b0 Improve COM stability, settings security, and add VFX layer
- Оптимизировано закрытие COM-системы: вызов ReadLine вынесен из-под блокировки во избежание зависания главного потока Unity Editor при выходе из игры или выгрузке сцены.
- Реализован контур безопасности: доступ к меню настроек теперь заблокирован за вводом PIN-кода "1234" с использованием существующего экранного модального ввода ServiceTextInputModalWindow.
- Создана и интегрирована централизованная служба визуальных эффектов IVfxService / GameVfxService. Программно генерируются и воспроизводятся эффекты частиц для автопрыжка, сбора монет и гибели персонажа.
2026-06-23 14:56:40 +03:00
cbc49d4384 Decouple gameplay sessions and camera follow from concrete JumpPlayerController
- Создан интерфейс IPlayerController, абстрагирующий состояние и действия игрока.
- JumpPlayerController изменен для реализации интерфейса IPlayerController.
- GameplaySession и VerticalCameraFollow переведены на использование IPlayerController для ослабления связей.
- В GameplayInstaller добавлена регистрация зависимости IPlayerController в Zenject.
2026-06-23 10:56:44 +03:00
d39d160d92 Implement physical prize dispensing, service stats, and QR screen timeout
- Добавлен асинхронный процесс аппаратной выдачи физических призов (хоппер и витрина) в GameplayHudController.
- Реализована блокировка выдачи по 10-секундному таймауту датчика хоппера с гарантированной отправкой команды отключения двигателя '300'.
- Реализован автоматический таймаут неактивности на экране QR-кода с последующим переходом в главное меню.
- Расширен сервис статистики PrizeSessionStateService новыми долгосрочными счетчиками (сыгранные игры, очки, монеты, сбои связи COM, физ. выдачи и ошибки).
- Обновлен построитель сводки статистики в меню настроек для отображения новых счетчиков и списка последних 5 сессий.
- Написаны EditMode тесты для проверки инкремента счетчиков и запуска выдачи призов.
2026-06-23 10:36:13 +03:00
c1b72854f4 Implement prize QR and service UI polish
Подробные изменения:

- Добавлена система призовых уровней и выдачи призов с 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
2026-06-12 16:43:28 +03:00
77186697f8 Prepare v0.1 gameplay and hardware foundation
Подробные изменения:

- Расширен основной gameplay loop: джетпак, новые платформы, оборудование, враги, прогрессия сложности и ограничения взаимодействий игрока.

- Добавлены Bootstrap-сервисы запуска приложения, защита, фокус окна, управление курсором и настройки сервисов через DI.

- Добавлена COM-интеграция с технической схемой Input System, обработкой кнопок/ADC, подсветкой и консольной диагностикой.

- Добавлен отдельный debug/logging модуль с каналами, обработчиками консоли и файловым выводом.

- Добавлены asmdef, link.xml, EditMode/PlayMode тесты и обновлена дорожная карта проекта.

Проверки:

- dotnet build .\\DanroJump.Runtime.csproj --no-restore

- dotnet build .\\DanroJump.Tests.EditMode.csproj --no-restore

- dotnet build .\\DanroJump.Tests.PlayMode.csproj --no-restore
v0.1
2026-06-08 14:22:48 +03:00
1f6884c5ac Build gameplay systems and service settings
Подробные изменения:
- Добавлены и доработаны модальные окна главного меню, сервисные настройки, шаблоны UI Toolkit и единый scene-flow сервис для переходов между сценами.
- Расширена gameplay-архитектура: сессия забега, HUD, спавн контента платформ, collectible-предметы, оборудование, хрупкие и движущиеся платформы.
- Добавлена база противников: типы спавна, патрулирование, процедурный спавнер, правила размещения через ScriptableObject-сложности и убийство врагов прыжком сверху.
- Исправлены смерть и respawn игрока, финальный GameOver, отскоки от врагов, пружин и boost-предметов, а также проход сквозь врагов при усиленном подъеме.
- Проведен рефакторинг взаимодействия систем: общий landing context, единые правила player-contact, NonLazy gameplay session, fail-fast installer и централизованный выбор точек спавна.
- Обновлены сцены, prefab-ассеты, difficulty stages, ресурсы главного меню, настройки проекта, roadmap и аппаратная COM-интеграция.
- Добавлены ассеты летучей мыши, врагов, collectibles, TextMesh Pro, ProjectContext и gameplay UI.

Проверки:
- dotnet build .\\Assembly-CSharp.csproj --no-restore
- Unity validation ключевых gameplay/UI/scene-flow скриптов
- Unity Console после force refresh без ошибок
2026-05-27 16:34:51 +03:00
cefb2fd345 Build initial vertical platformer foundation
Подробные изменения:
- Добавлены сцены 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 из репозитория.
2026-05-11 07:41:14 +03:00
6bbc7f7010 chore: initial project setup 2026-05-05 14:52:54 +03:00