- Добавлен асинхронный процесс аппаратной выдачи физических призов (хоппер и витрина) в GameplayHudController. - Реализована блокировка выдачи по 10-секундному таймауту датчика хоппера с гарантированной отправкой команды отключения двигателя '300'. - Реализован автоматический таймаут неактивности на экране QR-кода с последующим переходом в главное меню. - Расширен сервис статистики PrizeSessionStateService новыми долгосрочными счетчиками (сыгранные игры, очки, монеты, сбои связи COM, физ. выдачи и ошибки). - Обновлен построитель сводки статистики в меню настроек для отображения новых счетчиков и списка последних 5 сессий. - Написаны EditMode тесты для проверки инкремента счетчиков и запуска выдачи призов.
29 lines
1.3 KiB
C#
29 lines
1.3 KiB
C#
using DanroJump.Prizes;
|
|
|
|
namespace DanroJump.Settings
|
|
{
|
|
/// <summary>
|
|
/// Формирует операторскую сводку призовых уровней и legacy-флагов.
|
|
/// </summary>
|
|
internal static class ServiceSettingsPrizeSummaryBuilder
|
|
{
|
|
public static string Build(IReadOnlyServiceSettings settings)
|
|
{
|
|
if (settings == null)
|
|
{
|
|
return "Раздел призов открыт. Сервис настроек пока недоступен.";
|
|
}
|
|
|
|
var smallPrize = settings.GetBool(ServiceSettingsKeys.GiveSmallPrize) ? "включён" : "выключен";
|
|
var bigPrize = settings.GetBool(ServiceSettingsKeys.GiveBigPrize) ? "включён" : "выключен";
|
|
var levels = PrizeLevelTable.FromJson(settings.GetString(ServiceSettingsKeys.PrizeLevels));
|
|
if (levels.Count > 0)
|
|
{
|
|
return $"Раздел призов открыт. Настроено уровней: {levels.Count}.";
|
|
}
|
|
|
|
return $"Раздел призов открыт. Таблица уровней пустая. Legacy: малый приз {smallPrize}, большой приз {bigPrize}.";
|
|
}
|
|
}
|
|
}
|