예제 #1
0
    IEnumerator TryGetCurrentTime()
    {
        Debug.Log("Making the Request");
        canSave = false;
        //Make request
        UnityWebRequest uwr = UnityWebRequest.Get("http://architap.io");

        yield return(uwr.SendWebRequest());

        try {
            if (uwr.isHttpError)
            {
                Debug.Log("Error While Sending: " + uwr.error);
            }
            else
            {
                // Debug.Log("Received: " + uwr.downloadHandler.text);
                string   todaysDates = uwr.GetResponseHeader("date");
                DateTime nowTime     = DateTime.ParseExact(todaysDates,
                                                           "ddd, dd MMM yyyy HH:mm:ss 'GMT'",
                                                           CultureInfo.InvariantCulture.DateTimeFormat,
                                                           DateTimeStyles.AssumeUniversal);

                string   previousTimeString = LoadString("lastSaveTime");
                TimeSpan idleTimeSpan       = GetTimeDifference(previousTimeString, nowTime);
                double   idleSeconds        = idleTimeSpan.TotalSeconds;

                if (idleSeconds > 0)
                {
                    Debug.Log("Time Difference: " + idleTimeSpan);
                    Debug.Log("In Seconds: " + idleSeconds);
                    CalculateIdleReward(idleSeconds, idleTimeSpan);
                    foreach (string key in skillController.keys)
                    {
                        skillController.DecreaseCooldownBySeconds(key, (int)idleSeconds);
                    }
                }
            }
        } catch (Exception e) {
            Debug.Log("Loading Current Date failed.");
            Debug.Log(e.StackTrace);
        }
        canSave = true;
    }