69 lines
1.9 KiB
C#
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
|
|
};
|
|
}
|
|
} |