chip-game/Assets/SimplePrizesPanel.cs

69 lines
1.9 KiB
C#

using PrizeSystem;
using System.Collections.Generic;
using UnityEngine;
public class SimplePrizesPanel : MonoBehaviour
{
[SerializeField] private List<PrizeRecord> _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<Prize> 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
};
}
}