- Перенесены новые графические ресурсы (спрайты, текстуры, плашки и персонажи) из проекта дизайнеров с сохранением соответствующих файлов .meta (для сохранения оригинальных GUID).
- Добавлены новые персонажи и костные 2D-анимации в формате .psb: крабы (Crab1, Crab2), ниндзя (Ninja, Ninja_Red) и лягушка (frog@4x).
- Добавлены новые элементы окружения и пропсы: сундуки (chest, chest 1), аркадные игровые автоматы (game_machines), лозы (vines) и снаряды-тамагочи (тамагочи.png / TamagoCH.psb).
- Добавлены новые UI-плашки и иконки в папку Assets/Resources/ (включая coin_art, Crystal_art, plashka_central/levels/prize/side).
- Обновлен и оптимизирован спрайт неба (Sky.png) вместе с его метафайлом (.meta), что скоординировало GUID с версией дизайнеров.
- Импортирована обновленная дизайнерами сцена уровня 1-1 (Assets/Scenes/Levels/1-1.unity) с сохранением работоспособности всех ссылок и связей в Unity.
- Интегрирована система кастомных визуальных эффектов (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 для предотвращения рассинхронизации буфера обмена платы.
- Убран пулинг из `EnvironmentalCollectibleBase` и `EnvironmentalCollectibleSpawner`:
при подборе и деспауне частицы теперь уничтожаются через `Destroy()`,
что устраняет проблему переиспользования объектов старого типа при смене частиц.
- Удалены поля `usePooling`, `_ownerPool`, `_originPrefab` из `EnvironmentalCollectibleBase`;
упрощены методы `Collect()` и `Despawn()`.
- Добавлено время жизни частиц: поле `defaultLifetime` в `EnvironmentalCollectibleBase`,
таймер `_age` с автоматическим деспауном по истечении; виртуальный `OnDespawned()` для наследников.
- В `SpawnEntry` добавлены `overrideLifetime` и `lifetimeOverride` для переопределения времени жизни.
- Добавлена структура `NamedSpawnEntry` — именованные записи с ключом (`string key`),
полным `SpawnEntry` и флагом `hardReplace`, настраиваемые в инспекторе.
- Спаунер получает игрока из `GameManager.Instance.PlayerObj` вместо `FindGameObjectWithTag`;
подписка на `GameManager.PlayerSpawned` для автообновления ссылки.
- Добавлен постепенный спаун: `MaintainFixedCount()` запускает корутину `SpawnRoutine()`
с рандомной задержкой `spawnDelay` между объектами.
- Добавлены диапазоны случайного масштаба (`scaleRange`) и угла поворота (`rotationRange`) при спауне.
- Добавлены публичные методы переключения типа частиц для `UnityEvent`:
`SetForcedPrefab`, `SetForcedPrefabHard`, `SetForcedPrefabByObject`, `SetForcedPrefabByObjectHard`,
`SetForcedPrefabByIndex`, `SetForcedPrefabHardByIndex`, `SetForcedEntry`, `SetForcedEntryByName`,
`SetEntryByName` (мягкая постепенная замена через `GradualReplaceRoutine`),
`ClearForcedPrefab`, `SetOverrideArea`.
- Исправлено сравнение prefab по ссылкам на сравнение по `name`, устраняя проблему
когда один и тот же ассет из разных массивов (`spawnEntries` / `namedEntries`) не совпадал.
- Удалён `EnvironmentalZoneTrigger.cs` (триггер-зона не нужна как отдельный скрипт).
- Удалены `EnvironmentalPool` из использования в спаунере и базовом классе.
- Префабы `Coin.prefab` и `Coin_Robotail.prefab` перемещены в `Prefabs/Props/Collectibles/`;
добавлены `LeafCollectible.prefab` и `BatCollectible.prefab`.