52 lines
921 B
C#
52 lines
921 B
C#
|
|
namespace BingoBrain.Core
|
||
|
|
{
|
||
|
|
public class IsfvData
|
||
|
|
{
|
||
|
|
public delegate void DealMethod();
|
||
|
|
|
||
|
|
|
||
|
|
private float _currentTime;
|
||
|
|
|
||
|
|
|
||
|
|
public float DelayTime = 1f;
|
||
|
|
|
||
|
|
|
||
|
|
public DealMethod dealMethod;
|
||
|
|
|
||
|
|
|
||
|
|
public int RepeatCount = 1;
|
||
|
|
|
||
|
|
|
||
|
|
public bool IsComplete => RepeatCount == 0;
|
||
|
|
|
||
|
|
|
||
|
|
public void PassTime(float time)
|
||
|
|
{
|
||
|
|
_currentTime += time;
|
||
|
|
if (!(_currentTime >= DelayTime))
|
||
|
|
{
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
_currentTime -= DelayTime;
|
||
|
|
Run();
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
private void Run()
|
||
|
|
{
|
||
|
|
if (RepeatCount == -1)
|
||
|
|
{
|
||
|
|
dealMethod?.Invoke();
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
if (RepeatCount > 0)
|
||
|
|
{
|
||
|
|
dealMethod?.Invoke();
|
||
|
|
RepeatCount--;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|