Danro/Assets/Scripts/Prizes/LevelPrizeConfig.cs
Danil Iarosh a40b761c81
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
feat(prizes, ui): add configurable level prize flow and launcher assets
- добавлена новая система призов:
  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-сцены
2026-03-16 08:15:36 +03:00

45 lines
1.2 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
namespace RR.Common.Prizes
{
/// <summary>
/// Конфигурация приза для одного уровня.
/// Сериализуется в JSON через <see cref="PrizeDatabase"/>.
/// </summary>
[Serializable]
public class LevelPrizeConfig
{
public PrizeType type = PrizeType.None;
// ── Хоппер ──
public int hopperCapsuleCount = 1;
public float hopperDelayBetweenCapsules = 1f;
// ── Витрина ──
public int prizeStandBoxCount = 6;
}
/// <summary>
/// Запись «уровень → приз» для JSON-сериализации.
/// JsonUtility не поддерживает Dictionary, поэтому используем список.
/// </summary>
[Serializable]
internal class PrizeLevelEntry
{
public string level;
public LevelPrizeConfig config = new();
}
/// <summary>
/// Корневая структура файла prizes.json.
/// </summary>
[Serializable]
internal class PrizesFileData
{
public List<PrizeLevelEntry> levels = new();
}
}