public void SetInterval(float m_interval) {
public void Attempt (float currentTime, System.Action onSuccess, System.Action onFail) {
if(currentTime >= lastTime + interval || lastTime == -1){
}else if(currentTime < lastTime + interval)
public float PercentReady(float currentTime) {
float value = (currentTime - lastTime)/interval;
public static void Main()
Console.WriteLine("Cooldown Test Suite");
Cooldown c = new Cooldown();
Console.WriteLine("Trying at 1");
c.Attempt(1, PrintSuccess, PrintFailure);
Console.WriteLine("Trying at 2");
c.Attempt(2, PrintSuccess, PrintFailure);
Console.WriteLine("Trying at 5");
c.Attempt(5, PrintSuccess, PrintFailure);
Console.WriteLine("Trying at 6");
c.Attempt(6, PrintSuccess, PrintFailure);
Console.WriteLine("Trying at -5");
c.Attempt(-5, PrintSuccess, PrintFailure);
static void PrintSuccess() {
Console.WriteLine("success");
static void PrintFailure() {
Console.WriteLine("failure");