2026-01-07 19:38:03 +05:30
|
|
|
using System;
|
2026-01-05 13:34:57 +05:30
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
public class TimerSystem
|
|
|
|
|
{
|
2026-01-07 19:38:03 +05:30
|
|
|
private float timeRem;
|
|
|
|
|
private float maxTimeAvail;
|
2026-01-05 13:34:57 +05:30
|
|
|
|
2026-01-07 19:38:03 +05:30
|
|
|
private Action onTimerComplete = null;
|
|
|
|
|
private Action onTimerInProgress = null;
|
|
|
|
|
public bool IsTimerComplete
|
|
|
|
|
{
|
|
|
|
|
get;
|
|
|
|
|
private set;
|
|
|
|
|
}
|
2026-01-05 13:34:57 +05:30
|
|
|
|
2026-01-07 19:38:03 +05:30
|
|
|
public bool IsInitialized
|
2026-01-05 13:34:57 +05:30
|
|
|
{
|
2026-01-07 19:38:03 +05:30
|
|
|
get;
|
|
|
|
|
private set;
|
2026-01-05 13:34:57 +05:30
|
|
|
}
|
|
|
|
|
|
2026-01-07 19:38:03 +05:30
|
|
|
public void Init(float maxTimeAvail, Action onComplete = null, Action inProgress = null, Action onStart = null)
|
2026-01-05 13:34:57 +05:30
|
|
|
{
|
2026-01-07 19:38:03 +05:30
|
|
|
timeRem = 0;
|
|
|
|
|
IsTimerComplete = false;
|
|
|
|
|
IsInitialized = true;
|
|
|
|
|
|
|
|
|
|
this.maxTimeAvail = maxTimeAvail;
|
|
|
|
|
this.onTimerComplete = onComplete;
|
|
|
|
|
this.onTimerInProgress = inProgress;
|
2026-01-05 13:34:57 +05:30
|
|
|
}
|
|
|
|
|
|
2026-01-07 19:38:03 +05:30
|
|
|
public void UpdateTimer(float deltaTime)
|
2026-01-05 13:34:57 +05:30
|
|
|
{
|
2026-01-07 19:38:03 +05:30
|
|
|
if (timeRem < maxTimeAvail)
|
|
|
|
|
{
|
|
|
|
|
timeRem += deltaTime;
|
|
|
|
|
onTimerInProgress?.Invoke();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
timeRem = 0;
|
|
|
|
|
onTimerComplete?.Invoke();
|
|
|
|
|
IsTimerComplete = true;
|
|
|
|
|
}
|
2026-01-05 13:34:57 +05:30
|
|
|
}
|
|
|
|
|
}
|