Danro/README.md
Danil Iarosh 79b66b2d17
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
feat: add controller disconnect/reconnect handling, MAC identification, lighting pause/resume system
- Рефакторинг системы подсветки: вместо длительности в секундах теперь
  используется количество циклов (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`: переписана документация
  на актуальную структуру проекта и текущие возможности игры.
2026-03-04 13:55:08 +03:00

3.2 KiB
Raw Permalink Blame History

Данро (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 содержит подробную техническую документацию по архитектурным решениям, подсистемам и ограничениям.