using PrizeSystem; using System.Collections.Generic; using UnityEngine; namespace CharacterSystem { public class PrizeModule : MonoBehaviour { private List _prizes; public bool HasPrize { get; private set; } public void SetPrizes(PrizeSet prizesSet) { _prizes = prizesSet.Prizes; } public void ResetModule() { HasPrize = true; } public List CheckPrizes() => _prizes; public bool TryFetchPrize(out List prizes) { if (HasPrize) { prizes = _prizes; HasPrize = false; return true; } prizes = null; return false; } public bool TryFetchIfTypeMatch(out T castedPrize) where T : Prize { castedPrize = null; if (HasPrize == false) return false; if (_prizes is T casted) { castedPrize = casted; HasPrize = false; return true; } return false; } } }