55 lines
1.2 KiB
C#
55 lines
1.2 KiB
C#
using PrizeSystem;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace CharacterSystem
|
|
{
|
|
public class PrizeModule : MonoBehaviour
|
|
{
|
|
private List<Prize> _prizes;
|
|
public bool HasPrize { get; private set; }
|
|
|
|
public void SetPrizes(PrizeSet prizesSet)
|
|
{
|
|
_prizes = prizesSet.Prizes;
|
|
}
|
|
|
|
public void ResetModule()
|
|
{
|
|
HasPrize = true;
|
|
}
|
|
|
|
public List<Prize> CheckPrizes()
|
|
=> _prizes;
|
|
|
|
public bool TryFetchPrize(out List<Prize> prizes)
|
|
{
|
|
if (HasPrize)
|
|
{
|
|
prizes = _prizes;
|
|
HasPrize = false;
|
|
return true;
|
|
}
|
|
|
|
prizes = null;
|
|
return false;
|
|
}
|
|
|
|
public bool TryFetchIfTypeMatch<T>(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;
|
|
}
|
|
}
|
|
} |