- Добавлен компонент подмены спрайтов игрока перед началом игры.
- Обновлены сцена уровня, префабы, шейдеры, настройки импорта и данные призов.
- Зафиксирован embedded-пакет Unity MCP 9.6.8 и обновлены связанные файлы проекта.
- Создан скрипт EntitySpawnerZone.cs для выделения зон замены префабов в Unity Editor.
- Модифицирован EntitySpawner.cs для поддержки зон при выборе префаба на основе координат точки спавна.
- Исправлено поведение игрока при падении с высоты и разворотах (устранен сильный отскок от углов)
- Центрирован PolygonCollider2D по оси X на префабе character_defeat_4.prefab (m_Offset.x установлен в 0)
- Упрощена форма PolygonCollider2D до симметричного выпуклого шестиугольника
- Сохранен бэкап старого префаба игрока в Player_Old.prefab
- Перенесены новые графические ресурсы (спрайты, текстуры, плашки и персонажи) из проекта дизайнеров с сохранением соответствующих файлов .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 для предотвращения рассинхронизации буфера обмена платы.
- доработан flow призовой витрины и связанного UI:
добавлены `PrizeStandButtonView` и `RulesPrizeListPage`, обновлены
`PrizeStandController`, `PrizeStandPrize`, `PrizeStandModal`,
`PrizeStandSettingsModal`, `LevelPrizeSettingsModal`, `QRCodeSettingsModal`,
`BalanceDisplay`, `ButtonTextFocusColor` и связанные prefab'ы,
чтобы улучшить настройку, навигацию, отображение кнопок и prize flow
- расширена система настроек и сохранения значений:
`OptionPicker` получил отдельный формат `ValueSelector`,
обновлены `SettingsDatabase`, `SettingEntryDrawer`, `SettingUIItem`,
`SettingsUIGenerator`, `ValueSelectorRow` и `MainSettingsDatabase.asset`,
а сохранение option picker-значений, включая `gameplay.gameDifficulty`,
исправлено и синхронизировано с остальными настройками
- добавлены универсальные спавнеры сущностей:
реализованы `EntitySpawner` и `EntitySpawnerManager` с поддержкой
весов префабов, точек спавна, заполнения по проценту, ограничений
на количество и автоспавна при инициализации
- доработана логика игрового спавна и сложности:
процент инициализационного спавна может зависеть от настройки
`gameplay.gameDifficulty` с градациями 25/50/75/100,
в одном цикле массового спавна повторно не используется та же точка,
а gizmo спавнера теперь показывает только сами точки без линий
- упрощена работа в редакторе Unity и добавлены editor-инструменты:
в `GameManager` лицензия пропускается при запуске в `UNITY_EDITOR`,
а `HierarchySelectionCounter`, `HierarchySelectionCountOverlay`
и `HierarchyBulkRenamerWindow` добавляют подсчет выделения,
realtime overlay в `SceneView` и массовое переименование объектов
по правилам нумерации из Unity Project Settings
- синхронизированы сцены, ресурсы и UI-ассеты под новый flow:
обновлены `MainMenu`, `Level UI`, уровни `1-1` и `1-2`,
строки настроек, кнопки, TMP/font assets, изображения UI,
`prizes.json` и recovery-данные после правок интерфейса и логики
- очищены и переразложены часть внешних и служебных ресурсов:
удалён пакет `Lava_Flowing_Shader`, переименованы/заменены
отдельные UI-prefab'ы и добавлены сопутствующие проектные артефакты,
которые сейчас используются обновлённой конфигурацией проекта
- завершен спринт 24 марта - 2 апреля с опережением плана и закрытием задач раньше срока
- расширена и стабилизирована система призов:
добавлены и доработаны QR-tier конфиги, новые типы и модели данных,
сохранение `qrCodes` в `prizes.json`, fallback-логика и синхронизация
через `PrizeSystemManager`, `PrizeDatabase` и `LevelPrizeConfig`
- переработан flow настройки QR-призов:
добавлены `QRCodeSettingsModal` и связанный UI-код,
разнесены короткий текст приза и полный текст сообщения,
добавлены шаблоны форматирования, корректная подстановка текста
в QR и в UI-модалках, а также сохранение конфигурации между запусками
- доработан flow суперприза и текстовых настроек:
добавлены fallback-правила показа, корректная обработка пустых строк
и строк из одних пробелов, обновлены binders и показ текста в меню
- реализована и обновлена отдельная настройка витрины:
добавлена `PrizeStandSettingsModal`, обновлена навигация строк,
логика выбора ячейки и порогов очков, циклический выбор ячеек,
ускорение изменения значений и исправления для keyboard/gamepad UX
- доработана игровая модалка витрины `PrizeStandModal`:
добавлен вывод очков игрока, форматируемый текст счета,
улучшено отображение ячеек и связанная логика выбора приза
- исправлен подсчет очков и интеграция с prize flow:
`ScoreSystem` переведен на событийное обновление текущего счета,
добавлены `CurrentScore`, `CurrentScoreChanged` и корректный display score,
витрина и связанные UI-элементы теперь получают актуальные очки,
а не нулевые или несвоевременные preview-значения
- переработаны модальные окна и навигация UI:
улучшены `Modal`, `ModalManager`, `UIRowPointer`, `RulesModal`,
`QRCodeModal`, `PrizeStandModal`, `LevelPrizeSettingsModal` и др.,
чтобы фокус, указатель и submit работали консистентно без мыши
- обновлен win/prize UI:
доработаны `WinBannerController`, `GameEndUIController`,
`MainMenu`, `QRCodeUIController`, `TopPanelTextController` и настройки UI,
улучшены тексты баннеров, отображение призов и итогового счета
- обновлены сцены и ассеты под новый flow:
`MainMenu`, `Level UI`, prefab'ы строк настроек и кнопок,
глобальные префабы, шрифты TMP, иконки, recovery-данные и ресурсы UI
- добавлены вспомогательные UI-компоненты и служебные скрипты:
`ButtonTextFocusColor`, `SelectableDescriptionTarget`, `QRTier`
и другие изменения, поддерживающие новый конфигурируемый prize UI
- добавлена новая система призов:
PrizeBase, PrizeType, PrizeDatabase, LevelPrizeConfig и реализации
для hopper, QR-кода, отсутствия приза и стойки с призом
- добавлена конфигурация призов уровней через `prizes.json`
и связанная логика загрузки/обработки в менеджерах игры
- расширен UI главного меню и настроек уровней:
добавлены LevelSettingsModal, LevelPrizeSettingsModal,
QRCodeModal и PrizeStandModal
- обновлена навигация модальных окон и связанный UI-код:
ModalManager, MainMenu, RulesModal, PauseMenu,
PrizeErrorDisplay, UIRowPointer и WinBannerController
- доработаны настройки и генерация UI-элементов:
обновлены SettingsDatabase, SettingsUIGenerator,
SettingUIItem, ValueSelectorRow и editor drawer для настроек
- обновлены и добавлены UI-prefab'ы для кнопок, строк настроек,
панели групп и кнопки настроек уровня
- обновлены сцены `MainMenu` и `Level UI` под новый флоу
настройки уровней, выбора призов и отображения модалок
- добавлены файлы лаунчера в `StreamingAssets`,
включая `RRLauncher.exe`, служебные meta-файлы и документацию
- улучшено логирование через FileLogger
и удален устаревший код лицензирования
- удалены больше неиспользуемые файлы:
`Licensing.cs`, `SteppedSlider.cs` и recovery-сцены
Система выдачи призов хоппером:
- PrizeSystemManager теперь читает enableHopper из настройки prizes.giveSmallPrize
вместо захардкоженного SerializeField (реагирует на изменения в реальном времени)
- LevelFinish: исправлен ключ настройки на prizes.giveSmallPrize
- Добавлен HopperCheckController для тестирования выдачи приза кнопкой в настройках
- Проверка датчика хоппера перенесена в ComDeviceClient (2-й бит INPUT)
- PrizeGivenBuffer заменён с PlayerPrefs на потокобезопасный Interlocked-буфер
(исправлен краш при вызове PlayerPrefs из фонового потока платы)
- Добавлен PrizeSystem.OnPrizeResult (Action<bool>) — событие результата выдачи
Отображение ошибки выдачи приза:
- Добавлен PrizeErrorDisplay — UI-компонент, подписанный на OnPrizeResult
- Зависит от настройки prizes.showPrizeError (реагирует на изменения в реальном времени)
QR-коды:
- PrizeSystemManager подписан на изменение prizes.phoneNumber — QR-коды
перегенерируются автоматически при смене номера
- WinBannerController показывает QR-коды только при включённой prizes.giveBigPrize
Прочее:
- Добавлен Levitator — компонент плавной левитации объекта (высота, скорость, плавность)
- Настройки: группы поддержки/тестов реорганизованы, добавлена кнопка btn.hopper_test
Добавлены новые UI-компоненты и исправлена надёжность подсветки
- Добавлен UIElementAnimator — универсальный аниматор UI-элементов (покачивание, движение вверх-вниз, пульсация масштаба)
- Добавлен GamePriceDisplay — отображение стоимости игры из настроек (payment.startGameCost, payment.currency)
- Добавлен метод StartIdleEffects() в GameManager для гарантированного запуска мигания шапки и последовательности эффектов
- Исправлена подсветка, не включавшаяся при переходе в главное меню: OnSceneLoaded теперь вызывает StartIdleEffects()
- Исправлено восстановление подсветки при переподключении платы: ComSystemManager использует StartIdleEffects() для MainMenu
- Добавлены LightController.IsHatOn и ResendHatState() для корректного отслеживания состояния шапки
- Исправлено зависание спецэффектов при мигании шапки: LightSequence теперь переотправляет команду эффекта каждые 2 сек
- Убраны дублирующиеся вызовы Blink/SetLight из LoadScene (теперь обрабатывается в OnSceneLoaded)
- Обновлена сцена MainMenu, ассеты шрифтов, удалён старый префаб Coin
- Убран пулинг из `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`.
- Добавлен LevelFinish.cs: новый компонент финиша уровня
- выдача маленького приза через PrizeSystemManager (учитывает enableHopper)
- настройки: enablePrizeOnFinish, prizeEnabledSettingKey, prizeDelay, debugMode
- защита от двойной выдачи (_prizeGiven)
- PlayerController: закомментирован старый переход на следующий уровень по тегу 'Finish'
(теперь за это отвечает LevelFinish)
- QRCodeUIController: помечен [Obsolete], QR-коды показываются только при победе
через WinBannerController.ShowWin() -> PrizeSystemManager.GetQRCodes()
- Finish.prefab: добавлен компонент LevelFinish (enablePrizeOnFinish=true, prizeDelay=0)
- Сцена 1-1: переопределён enablePrizeOnFinish=false для финиша промежуточного уровня
- Сцена 1-3: minor update
- MainMenu: правки якорей UI-элементов и активация скрытого объекта
- Добавлена система ввода текста через модальное окно с ячейками для аркадного автомата
- Реализован TextInputModal с поддержкой кастомных алфавитов и навигации
- Добавлен TextInputCell для ввода отдельных символов с циклической навигацией
- Создан TextInputSettingsBinder для интеграции ввода текста с системой настроек
- Реализована компактная сериализация настроек (только нужные поля в JSON)
- Внедрена система баланса игрока (BalanceManager)
- Баланс начисляется при оплате импульсом, списывается при начале/продолжении игры
- Добавлен InactivityManager для выхода в меню при отсутствии активности (5 минут)
- Улучшена система настроек
- Добавлены флаги shownInSettings и exposed для управления видимостью настроек
- Реализована автоматическая регистрация/отписка SettingsButtonBinder при активации/деактивации
- Исправлена загрузка настроек с проверкой типов через Sanitize()
- SettingsApplier упрощен - оставлена только поддержка AudioManager
- Добавлен ValueSelectorRow для выбора целочисленных значений с шагом
- Удалены примеры и документация из production кода (QUICK_SETUP.md, TextInputExample, AdvancedLoggingExample)
- Убран весь отладочный вывод Debug.Log из системы настроек и ввода текста
- Очищены неразрывные пробелы из файлов проекта
- Добавлены префабы UI (InputCell)
- Добавил новую систему настроек, возможности:
- Динамически создает список настроек
- Сохраняет настройки в JSON-файл
- Возможность группировать настройки
- Широкие возможности по кастомизации
- Применение настроек в реальном времени (частично)
- Добавил префабы для новых элементов настроек
- Изменил поведение игры исходя из нового формата настроек
- Добавил систему диалогов
- Создал классы Sequencer.cs и SequenceAction.cs для воссоздания последовательности действий
- Добавил иеханику последовательности действий в Message.cs и MessageController.cs
- Исправил мелкие баки в поведенчеких скриптах
- Добавил CreatureAnimationEvents.cs для унификации поведения анимационных ивентов игровых сущностей
- Добавил VFX для смерти врагов
- Добавил пул VFX, пока много багов, UNSTABLE
- Настроил исользование пула в анимационных скриптах
- Created AdvancedLoggingExample class demonstrating composite and file loggers
- Implemented multi-file logging setup with separate error and full logs
- Added game event and performance logging methods
- Included key input handling for log operations (flush, clear)
- Setup proper resource disposal on application quit
- Increased SFX pool size from 8 to 16 in AudioManager
- Enabled preloadAudioData for multiple SFX files
- Removed unused VisualScripting import from Checkpoint script
- Reordered using statements in several scripts for consistency
- Added CoinCollectible component to Coin prefab with pickup effects
- Updated sorting layers and mesh LOD settings in Coin prefabs
- Fixed typo in Interfaces.cs: optionaAttachPoint to optionalAttachPoint
- Modified AddCoin method to accept count parameter and handle coin overflow
- Moved projectile scripts (BasicProjectile, EnemyBasicProjectile, PhysicsProjectile, PickableProjectile)
- Cleaned up unused namespaces and imports across various scripts
-Add LevelSpecificPlayerSFX prefabs for levels 1-1 and 1-2
-Configure checkpoints to activate sound effects, including pitch, volume, and audio editing
-Rename the checkpoint effect object to Checkpoint VFX
-Update the audio manager, the default value of the music target volume is 0.2
-Add SoundEffect structure to support sound parameter configuration
-Optimize audio source creation and crossfade logic
-Remove the old music control components and use the new audio management method