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

25 lines
813 B
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

namespace DanroJump.Prizes
{
/// <summary>
/// Результат решения о призе по завершенной игровой сессии.
/// </summary>
public readonly struct PrizeFlowResult
{
public PrizeFlowResult(PrizeRewardKind rewardKind, int score, int coins, float height, string sessionId = null)
{
RewardKind = rewardKind;
Score = score;
Coins = coins;
Height = height;
SessionId = sessionId ?? string.Empty;
}
public PrizeRewardKind RewardKind { get; }
public int Score { get; }
public int Coins { get; }
public float Height { get; }
public string SessionId { get; }
public bool HasPrize => RewardKind != PrizeRewardKind.None;
}
}