Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
- добавлена новая система призов: PrizeBase, PrizeType, PrizeDatabase, LevelPrizeConfig и реализации для hopper, QR-кода, отсутствия приза и стойки с призом - добавлена конфигурация призов уровней через `prizes.json` и связанная логика загрузки/обработки в менеджерах игры - расширен UI главного меню и настроек уровней: добавлены LevelSettingsModal, LevelPrizeSettingsModal, QRCodeModal и PrizeStandModal - обновлена навигация модальных окон и связанный UI-код: ModalManager, MainMenu, RulesModal, PauseMenu, PrizeErrorDisplay, UIRowPointer и WinBannerController - доработаны настройки и генерация UI-элементов: обновлены SettingsDatabase, SettingsUIGenerator, SettingUIItem, ValueSelectorRow и editor drawer для настроек - обновлены и добавлены UI-prefab'ы для кнопок, строк настроек, панели групп и кнопки настроек уровня - обновлены сцены `MainMenu` и `Level UI` под новый флоу настройки уровней, выбора призов и отображения модалок - добавлены файлы лаунчера в `StreamingAssets`, включая `RRLauncher.exe`, служебные meta-файлы и документацию - улучшено логирование через FileLogger и удален устаревший код лицензирования - удалены больше неиспользуемые файлы: `Licensing.cs`, `SteppedSlider.cs` и recovery-сцены
39 lines
1.6 KiB
C#
39 lines
1.6 KiB
C#
using System;
|
||
using UnityEngine;
|
||
|
||
namespace RR.Common.Prizes
|
||
{
|
||
/// <summary>
|
||
/// Абстрактный исполнитель приза.
|
||
/// Каждый тип приза реализует <see cref="Execute"/> для своей логики выдачи.
|
||
/// Исполнители создаются PrizeSystemManager, не хранят конфигурацию —
|
||
/// получают её через <see cref="LevelPrizeConfig"/> при вызове.
|
||
/// </summary>
|
||
public abstract class PrizeBase
|
||
{
|
||
/// <summary>Тип приза, который обрабатывает этот исполнитель.</summary>
|
||
public abstract PrizeType Type { get; }
|
||
|
||
/// <summary>Идёт ли процесс выдачи.</summary>
|
||
public virtual bool IsGiving => false;
|
||
|
||
/// <summary>
|
||
/// Вызывается после завершения выдачи. true — успех, false — ошибка.
|
||
/// </summary>
|
||
public event Action<bool> OnPrizeResult;
|
||
|
||
/// <summary>
|
||
/// Выполняет выдачу приза.
|
||
/// </summary>
|
||
/// <param name="host">MonoBehaviour для запуска корутин.</param>
|
||
/// <param name="config">Конфигурация приза для текущего уровня.</param>
|
||
public abstract void Execute(MonoBehaviour host, LevelPrizeConfig config);
|
||
|
||
/// <summary>Уведомляет подписчиков о результате.</summary>
|
||
protected void InvokeResult(bool success)
|
||
{
|
||
OnPrizeResult?.Invoke(success);
|
||
}
|
||
}
|
||
}
|