- Интегрирована система кастомных визуальных эффектов (VFX):
- Добавлена новая утилита MvpVFXUtility и настройки MvpVFXSpawnSettings для спавна эффектов.
- Реализован пул эффектов VFXPool с поддержкой отслеживания версий спавна, сброса оверрайдов и анимации масштаба по времени.
- Добавлены эффекты прыжка и приземления в PlayerAnimationEvents.
- Интегрирован эффект DeathVignetteController для плавного затемнения экрана при смерти игрока.
- Добавлены частицы stompImpactVFX при уничтожении врагов прыжком сверху (EnemyController).
- Реализован эффект конфетти finishVFX при успешном завершении уровня (LevelFinish).
- Интегрированы эффекты искр при сборе монеток, кристаллов и других собираемых предметов (Collectible, EnvironmentalCollectibleBase).
- Улучшен и визуально доработан пользовательский интерфейс (UI):
- Добавлен скрипт QRCodeTierHighlight для цветовой подсветки QR-кодов в зависимости от тира приза.
- Реализована пульсация блока приза в баннере победы (WinBannerController).
- Обновлено обозначение валюты в BalanceDisplay с "₽" на "руб.".
- Добавлены новые префабы, сцены, ассеты тайлсетов и шейдеров для настройки визуального стиля.
- Обновлён протокол и инициализация подсветки COM-платы:
- Изменен префикс команд подсветки с 85/86 на 8550, а диапазон эффектов обновлен с 40...52 на 10...22 (LightController, LightMode, LightCycleDurations).
- Исправлена хардкод-команда сброса подсветки при инициализации в ComDeviceClient с устаревшей 8600 на новую 8550 для предотвращения рассинхронизации буфера обмена платы.
- Рефакторинг системы подсветки: вместо длительности в секундах теперь
используется количество циклов (float). Добавлена таблица длительности
циклов эффектов `LightCycleDurations` для пересчёта циклов в секунды.
Префикс команд подсветки изменён с `85` на `86`.
- `LightSequence`: добавлены `Pause()` / `Resume()` с запоминанием текущего
шага последовательности; возобновление продолжает с сохранённой позиции.
- `LightController`: добавлены `PauseAll()` / `ResumeAll()` для
приостановки и восстановления подсветки и мигания шляпы при
отключении/переподключении платы. Свойства `IsSequencePaused`,
`IsBlinkPaused`.
- `ComDeviceClient`: после успешной авторизации отправляются команды
`890003` и `8600`. Добавлен запрос MAC-адреса через команду `06`
(ответ — 12 hex-символов без префикса). Новое событие `ConnectionLost`
при начале KeepAlive-реконнекта.
- `ComHub`: очередь `_disconnectedQueue` с типом `DeviceDisconnectMessage`
(DeviceId + Role + Mac) — сохраняет идентификатор устройства до его
удаления из словаря. Подписка на `ConnectionLost`.
Добавлен `GetDeviceMac()`.
- `ComSystemManager`: при инициализации, если плата не обнаружена,
подсветка сразу ставится на паузу. При отвале дефолтного устройства —
`PauseAll()`, при переподключении — сравнение по MAC и роли через
`IsSameDevice()`: та же плата → `ResumeAll()`, другая → `Blink()` с нуля.
Добавлены событие `OnDeviceDisconnected` и метод `GetDeviceMac()`.
- `COMInput`: при событии `OnDeviceDisconnected` сбрасываются все состояния
кнопок через `ResetAllButtons()`, генерируя `buttonUp` для зажатых кнопок.
Устраняет баг залипания управления после переподключения платы.
- `GameManager`: расширена последовательность световых эффектов в меню
(добавлены `DiagonalWave3`, `WaveUp`, `OrangeWave`); вызовы `SetLight`
для game over/won переведены на float-циклы.
- Обновлены `ARCHITECTURE.md` и `README.md`: переписана документация
на актуальную структуру проекта и текущие возможности игры.