Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
- Рефакторинг системы подсветки: вместо длительности в секундах теперь используется количество циклов (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`: переписана документация на актуальную структуру проекта и текущие возможности игры.
48 lines
3.2 KiB
Markdown
48 lines
3.2 KiB
Markdown
# Данро (Danro)
|
||
|
||
`Danro` - это 2D-платформер на Unity с аркадным режимом запуска. Проект совмещает классический side-scrolling gameplay с логикой кредитов, баланса, внешнего COM-контроллера и призовой системой для инсталляций.
|
||
|
||
## Актуальное состояние игры
|
||
|
||
Сейчас в проекте реализованы и подключены в `Build Settings`:
|
||
|
||
- главное меню (`MainMenu`);
|
||
- отдельная UI-сцена игрового интерфейса (`Level UI`);
|
||
- три игровых уровня: `1-1`, `1-2`, `1-3`.
|
||
|
||
Игра уже включает:
|
||
|
||
- прохождение уровней с автоматическим переходом между сценами;
|
||
- систему жизней, монет и подсчета времени сессии;
|
||
- чекпоинты и респавн без полного сброса прогресса по уровню;
|
||
- врагов, ловушки, движущиеся и исчезающие платформы, трамплины, снаряды и интерактивные объекты;
|
||
- меню паузы, окно настроек, модальное окно выбора уровней;
|
||
- экраны победы и поражения;
|
||
- продолжение после поражения при достаточном балансе;
|
||
- аркадную механику кредитов, импульсов оплаты и бесплатного режима;
|
||
- окно статистики и админ-статистики;
|
||
- генерацию и показ QR-кодов на экране победы для призовой системы;
|
||
- поддержку клавиатуры и внешнего COM-управления.
|
||
|
||
## Управление
|
||
|
||
Базовое управление с клавиатуры:
|
||
|
||
- движение: `A` / `D` или стрелки;
|
||
- прыжок: `Space`;
|
||
- навигация по UI: через назначенные действия `Unity Input System`.
|
||
|
||
Если игра используется в аркадной стойке, ввод может приходить с внешней платы через COM-подсистему. В этом режиме часть действий, кредиты, подсветка и выдача призов зависят от конфигурации установки.
|
||
|
||
## Что важно для запуска и разработки
|
||
|
||
- Версия Unity проекта: `6000.3.8f1`.
|
||
- Основной стек: `Unity`, `C#`, `Input System`, `UGUI`, `Cinemachine`, `URP`, `VFX Graph`.
|
||
- Ключевая точка входа в runtime: `GameManager`.
|
||
|
||
## Документация
|
||
|
||
- `README.md` описывает проект с точки зрения текущих возможностей игры.
|
||
- `ARCHITECTURE.md` содержит краткий обзор структуры проекта.
|
||
- `TECHDOC.md` содержит подробную техническую документацию по архитектурным решениям, подсистемам и ограничениям.
|