Подробный список изменений: - Перенесены эффекты частиц из C#-кода в готовые префабы-ассеты (Vfx Prefabs) в папке Assets/Resources/Vfx/ с автоматической генерацией материалов в Editor. - Исправлены ошибки duration на играющих системах частиц и розовые текстуры в GameVfxService.cs. - Исправлена навигация и фокус кнопок на оверлеях ContinueGameOverlay и PrizeResultOverlay с автоматическим подсвечиванием кнопок лимонно-зеленым цветом при фокусе и проигрыванием звука. - Добавлена проверка настроек в GameplayHudController.cs для скрытия ContinueGameOverlay, если продолжение игры отключено. - Расширен сбор статистики: создана структура GameplaySessionRecord, добавлена история до 50 раундов в PrizeSessionStateService и JsonPrizeSessionStateRepository, выведен расчет средних показателей и список 5 последних раундов в сервисной статистике. - Повышена надежность COM-транспорта: добавлен sleep (80мс) в Dispose для graceful shutdown потоков, реализован цикл переподключения до 10 попыток при обрыве связи. - Интегрированы настройки громкости с микшером: изменен шаг изменения громкости на 5% (0.05) для удобства, добавлен статус-чек и логи в ApplyServiceVolumes, расширены юнит-тесты на GetFloat параметры. - Созданы новые архитектурные гайды по аппаратному COM-транспорту и призовой экономике автомата в папке GUIDES/architecture/. - Оптимизирован и обновлен RAG-индекс проекта.
38 lines
1.1 KiB
C#
38 lines
1.1 KiB
C#
using System;
|
||
|
||
namespace DanroJump.Prizes
|
||
{
|
||
/// <summary>
|
||
/// Запись о сыгранной игровой сессии для эксплуатационной истории.
|
||
/// </summary>
|
||
[Serializable]
|
||
public sealed class GameplaySessionRecord
|
||
{
|
||
public GameplaySessionRecord(
|
||
string sessionId,
|
||
int score,
|
||
int coins,
|
||
float maxHeight,
|
||
int deathCount,
|
||
PrizeRewardKind rewardKind,
|
||
DateTime timestamp)
|
||
{
|
||
SessionId = sessionId ?? string.Empty;
|
||
Score = score;
|
||
Coins = coins;
|
||
MaxHeight = maxHeight;
|
||
DeathCount = deathCount;
|
||
RewardKind = rewardKind;
|
||
Timestamp = timestamp;
|
||
}
|
||
|
||
public string SessionId { get; }
|
||
public int Score { get; }
|
||
public int Coins { get; }
|
||
public float MaxHeight { get; }
|
||
public int DeathCount { get; }
|
||
public PrizeRewardKind RewardKind { get; }
|
||
public DateTime Timestamp { get; }
|
||
}
|
||
}
|