Danil Iarosh d39d160d92 Implement physical prize dispensing, service stats, and QR screen timeout
- Добавлен асинхронный процесс аппаратной выдачи физических призов (хоппер и витрина) в GameplayHudController.
- Реализована блокировка выдачи по 10-секундному таймауту датчика хоппера с гарантированной отправкой команды отключения двигателя '300'.
- Реализован автоматический таймаут неактивности на экране QR-кода с последующим переходом в главное меню.
- Расширен сервис статистики PrizeSessionStateService новыми долгосрочными счетчиками (сыгранные игры, очки, монеты, сбои связи COM, физ. выдачи и ошибки).
- Обновлен построитель сводки статистики в меню настроек для отображения новых счетчиков и списка последних 5 сессий.
- Написаны EditMode тесты для проверки инкремента счетчиков и запуска выдачи призов.
2026-06-23 10:36:13 +03:00

34 lines
994 B
C#

using UnityEngine;
namespace DanroJump.Prizes.Qr
{
/// <summary>
/// Готовые данные для QR-экрана призовой выдачи.
/// </summary>
public sealed class PrizeQrTicket
{
public PrizeQrTicket(
string telegramUrl,
string originalPhone,
string phoneDigits,
string message,
Texture2D texture,
QrPrizeTier tier)
{
TelegramUrl = telegramUrl ?? string.Empty;
OriginalPhone = originalPhone ?? string.Empty;
PhoneDigits = phoneDigits ?? string.Empty;
Message = message ?? string.Empty;
Texture = texture;
Tier = tier;
}
public string TelegramUrl { get; }
public string OriginalPhone { get; }
public string PhoneDigits { get; }
public string Message { get; }
public Texture2D Texture { get; }
public QrPrizeTier Tier { get; }
}
}