public void StartTimer(float from, string id, bool looping = false) { TickerObject ticker = new TickerObject(); if (ticker.routine == null) { ticker.lastSystemTime = "0"; ticker.routine = routineRunner.StartCoroutine(UpdateTimerCoro(ticker, from, id, looping)); } _runningTickers.Add(id, ticker); }
public void StartEventTimer(string eventID) { logger.Log("<color=blue>EventTimer </color>", "Start"); float timeTillEnd = EventTimerCooldown(eventID); if (timeTillEnd > 0) { TickerObject ticker = new TickerObject(); if (ticker.routine == null) { ticker.lastSystemTime = "0"; ticker.routine = routineRunner.StartCoroutine(UpdateTimerCoro(ticker, timeTillEnd, eventID, false)); } _runningTickers.Add(eventID, ticker); } }
public void StartRewardTimer() { if (GsdkSettingsData.Instance.IsRewardSystemEnabled) { logger.Log("<color=yellow>RewardTimer</color>", "Init"); if (RewardTimerCooldown() > 0) { TickerObject ticker = new TickerObject(); if (ticker.routine == null) { ticker.lastSystemTime = "0"; ticker.routine = routineRunner.StartCoroutine(UpdateTimerCoro(ticker, RewardTimerCooldown(), RewardTimerID, false)); } _runningTickers.Add(RewardTimerID, ticker); } } }
private IEnumerator UpdateTimerCoro(TickerObject ticker, float from, string id, bool looping) { ticker.timeLeft = from; while (!ticker.stop) { DateTime systemTime; if (networkCheck.HasInternetConnection()) { systemTime = serverTime.GetLocalTime(); } else { systemTime = DateTime.Now; } if (ticker.lastSystemTime == "0") { string time = systemTime.ToString(); ticker.lastSystemTime = time; } else { DateTime lastSysT = DateTime.Parse(ticker.lastSystemTime); TimeSpan timediff = systemTime - lastSysT; ticker.timeLeft -= (float)timediff.TotalSeconds; ticker.lastSystemTime = systemTime.ToString(); } if (ticker.timeLeft <= 0) { if (looping) { ticker.timeLeft = from; } else { ticker.stop = true; } onTimerLoopCompleteSignal.Dispatch(id); } ticker.minutes = Mathf.Floor(ticker.timeLeft / 60); ticker.seconds = Mathf.Ceil(ticker.timeLeft % 60); if (ticker.seconds == 60f) { ticker.minutes += 1; ticker.seconds = 0; } ticker.timerCounter = string.Format("{0:0}:{1:00}", ticker.minutes, ticker.seconds); yield return(new WaitForSeconds(1f)); } routineRunner.StopCoroutine(ticker.routine); ticker.routine = null; _runningTickers.Remove(id); }