using PrizeSystem; using TMPro; using UnityEngine; using UnityEngine.Serialization; using UnityEngine.UI; public class CountablePrizeConfigurator : BasePrizeConfigurator { [SerializeField, FormerlySerializedAs("icon")] private Image _icon; [SerializeField, FormerlySerializedAs("numberInput")] private MNumberStepper _numberInput; [SerializeField] private TextMeshProUGUI _prizeName; private PrizeType _prizeType; public override void Configure(PrizeType prizeType) { _prizeType = prizeType; _icon.sprite = PrizeSystemManager.GetPrizeIcon(prizeType); _prizeName.text = prizeType switch { PrizeType.Hopper => "ХОППЕР", PrizeType.Ticket => "ТИКЕТ", PrizeType.Marbles => "МАРБЛС", _ => PrizeUtils.PrizeTypeToString(prizeType).ToUpperInvariant() }; int maxValue = prizeType switch { PrizeType.Hopper => 10, PrizeType.Ticket => 100, PrizeType.Marbles => 10, _ => 1 }; _numberInput.Initialize(value: 1, min: 1, maxValue); } public override void Confirm() { CountablePrizeType countableType = _prizeType switch { PrizeType.Hopper => CountablePrizeType.Hopper, PrizeType.Ticket => CountablePrizeType.Ticket, PrizeType.Marbles => CountablePrizeType.Marbles, _ => CountablePrizeType.Hopper }; Complete(PrizeUtils.CreatePrize(countableType, _numberInput.Value)); } public override void UpdateControls() { _numberInput.SetDirection(In.GetAxis(JoystickSide.Both, InteractMode.Continious).x); if (In.GetAction(JoystickSide.Both, InteractMode.Discrete)) Confirm(); } }