using PrizeSystem; using System.Collections.Generic; using UnityEngine; public class SimplePrizesPanel : MonoBehaviour { [SerializeField] private List _records; [SerializeField] private CanvasGroup _canvasGroup; //Призы [SerializeField] Sprite emptySprite; [SerializeField] Sprite hopperSprite; [SerializeField] Sprite marblesSprite; [SerializeField] Sprite ticketSprite; [SerializeField] Sprite vitrinaSprite; [SerializeField] Sprite qrSprite; private void Start() { Initialize(); } public void Initialize() { UpdatePrizes(PrizeSystemManager.cachedPrizes); PrizeSystemManager.PrizesChanged += UpdatePrizes; UpdateVisibility(); SettingsManager.OnSettingsChanged.AddListener(UpdateVisibility); } private void UpdateVisibility() { bool visible = SettingsManager.GetBool("Prizing", false); _canvasGroup.alpha = visible ? 1 : 0; } private void UpdatePrizes(List prizes) { Character[] characters = CharacterController.I.characters; for (int i = 0; i < prizes.Count; i++) { var character = characters[i]; var prize = prizes[i]; var record = _records[i]; record.Fill(number: i + 1, character.IconSmall, description: RulesPrizePanel.GetPrizeText(prize), prizeIcon: GetPrizeSprite(prize)); } } private Sprite GetPrizeSprite(Prize prize) { return prize.PrizeType switch { PrizeType.Hopper => hopperSprite, PrizeType.Hopper2 => hopperSprite, PrizeType.Ticket => ticketSprite, PrizeType.Marbles => marblesSprite, PrizeType.Qr => qrSprite, PrizeType.VitrinaBox => vitrinaSprite, _ => emptySprite }; } }