using PrizeSystem; using UnityEngine; namespace CharacterSystem { public class PrizeModule : MonoBehaviour { private Prize _prize; public bool HasPrize { get; private set; } public void SetPrize(Prize prize) { _prize = prize; } public void ResetModule() { HasPrize = true; } public Prize CheckPrize() => _prize; public bool TryFetchPrize(out Prize prize) { if (HasPrize) { prize = _prize; HasPrize = false; return true; } prize = null; return false; } public bool TryFetchIfTypeMatch(out T castedPrize) where T : Prize { castedPrize = null; if (HasPrize == false) return false; if (_prize is T casted) { castedPrize = casted; HasPrize = false; return true; } return false; } } }