//REFACTOR
        public IEnumerator UpdateSeconds()
        {
            var gameID     = Resources.LoadAll <RewardMobData>("")[0].GameId;
            var webRequest = new WWW(RewardMobEndpoints.GetTournamentTimeRemainingEndpoint() + gameID);

            //halt execution until request returns
            yield return(webRequest);

            float.TryParse(webRequest.text, out secondsRemaining);
        }
        private IEnumerator GetTimeLeftAndUpdate()
        {
            //grab game id, and prepare web request
            var gameID     = Resources.LoadAll <RewardMobData>("")[0].GameId;
            var webRequest = new WWW(RewardMobEndpoints.GetTournamentTimeRemainingEndpoint() + gameID);

            //halt execution until request returns
            yield return(webRequest);

            float.TryParse(webRequest.text, out secondsRemaining);

            //invoke time update
            InvokeRepeating("UpdateTime", 0f, 1.0f);
        }
Beispiel #3
0
        /// <summary>
        /// Asynchronous method to send Reward off to API
        ///
        /// TODO: Should be split into more defined methods.
        /// </summary>
        /// <param name="rewardAmount">The amount of rewards to send.</param>
        /// <param name="rewardMessage">A short description explaining why the rewards were earned.</param>
        /// <returns>Cor</returns>
        private IEnumerator SendRewardCor(int rewardAmount, string rewardMessage, Action <Reward> onSuccess, Action <string> onFailed)
        {
            //check time remaining
            var webRequest = new WWW(RewardMobEndpoints.GetTournamentTimeRemainingEndpoint() + RewardMob.instance.gameID);

            //halt execution until request returns
            yield return(webRequest);

            float secondsRemaining;

            float.TryParse(webRequest.text, out secondsRemaining);

            //if there's no time remaining, don't bother
            if (secondsRemaining <= 0)
            {
                yield break;
            }

            //check if the reward is "cacheworthy"
            if (ShouldCache())
            {
                Cache(new Reward(RewardMob.instance.platformID, rewardAmount, rewardMessage, System.DateTime.UtcNow.ToString()));

                //update the user
                onSuccess(new Reward(RewardMob.instance.platformID, rewardAmount, rewardMessage));
                yield break;
            }

            //prepare the request
            var requestData = RewardMobWebRequestFactory.CreateRewardRequest(rewardAmount, rewardMessage);

            WWW postRewardRequest = new WWW(RewardMobEndpoints.GetSingleRewardEndpoint(), requestData.Payload, requestData.Headers);

            yield return(postRewardRequest);

            HandleRewardRequestClientsideUpdate(postRewardRequest, new Reward(RewardMob.instance.platformID, rewardAmount, rewardMessage), onSuccess, onFailed);

            //if we got an authorization error, cache it!
            if (!string.IsNullOrEmpty(postRewardRequest.error))
            {
                Cache(new Reward(RewardMob.instance.platformID, rewardAmount, rewardMessage, System.DateTime.UtcNow.ToString()));
            }
        }