Esempio n. 1
0
        private async void StartTimer()
        {
            var now = DateTime.Now;

            if (_expirationTime < now)
            {
                throw new ArgumentException("ExpirationTime has already expired");
            }

            var timeLeft = _expirationTime - now;

            await Task.Delay(timeLeft);

            Expired = true;

            OnTimerExpired?.Invoke(this);
        }
Esempio n. 2
0
        protected IEnumerator TimeoutTimer(float timeRemaining)
        {
            if (timeRemaining == -1)
            {
                yield break;                                  // -1 represents indefinite role
            }
            TimeRemaining = timeRemaining;
            while (TimeRemaining > 0)
            {
                TimeRemaining -= Time.deltaTime;
                yield return(WaitFor.EndOfFrame);
            }

            if (this is GhostRoleServer && TimeRemaining == -2) // -2 represents role prematurely ended
            {
                yield break;                                    // Don't invoke OnTimerExpired for premature endings
            }

            OnTimerExpired?.Invoke();
        }
Esempio n. 3
0
 public void Initialize()
 {
     isTimer        = false;
     OnTimerExpired = new OnTimerExpired();
 }