private RewardDataHolder CalculateNewTimers(int time) { RewardDataHolder result = default(RewardDataHolder); result.ServerTime = time; result.ServerTimeUpdated = Mathf.RoundToInt(Time.realtimeSinceStartup); DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); DateTime dateTime2 = dateTime.AddSeconds((double)time); DateTime dateTime3; DateTime dateTime4; if (Singleton <BuildCustomizationLoader> .Instance.CheatsEnabled) { dateTime3 = new DateTime(dateTime2.Year, dateTime2.Month, dateTime2.Day, dateTime2.Hour, dateTime2.Minute, dateTime2.Second, DateTimeKind.Utc); dateTime4 = new DateTime(dateTime2.Year, dateTime2.Month, dateTime2.Day, dateTime2.Hour, dateTime2.Minute, dateTime2.Second, DateTimeKind.Utc); switch (RewardSystem.CurrentRewardStatus.TimerMode) { case 0: { DateTime dateTime5 = new DateTime(dateTime2.Year, dateTime2.Month, dateTime2.Day, 0, 0, 0, DateTimeKind.Utc); dateTime3 = dateTime5.AddDays(1.0); DateTime dateTime6 = new DateTime(dateTime2.Year, dateTime2.Month, dateTime2.Day, 0, 0, 0, DateTimeKind.Utc); dateTime4 = dateTime6.AddDays(2.0); break; } case 1: dateTime3 = dateTime3.AddMinutes(15.0); dateTime4 = dateTime4.AddMinutes(30.0); break; case 2: dateTime3 = dateTime3.AddMinutes(5.0); dateTime4 = dateTime4.AddMinutes(15.0); break; case 3: dateTime3 = dateTime3.AddMinutes(1.0); dateTime4 = dateTime4.AddMinutes(1.0).AddSeconds(15.0); break; case 4: dateTime3 = dateTime3.AddSeconds(5.0); dateTime4 = dateTime4.AddSeconds(10.0); break; } } else { DateTime dateTime7 = new DateTime(dateTime2.Year, dateTime2.Month, dateTime2.Day, 0, 0, 0, DateTimeKind.Utc); dateTime3 = dateTime7.AddDays(1.0); DateTime dateTime8 = new DateTime(dateTime2.Year, dateTime2.Month, dateTime2.Day, 0, 0, 0, DateTimeKind.Utc); dateTime4 = dateTime8.AddDays(2.0); } result.RewardTime = Convert.ToInt32(dateTime3.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds); result.ResetTime = Convert.ToInt32(dateTime4.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds); return(result); }
private void SaveData(RewardDataHolder data) { GameProgress.SetInt("AmazonPendingRewardLevel", data.PendingRewardLevel, GameProgress.Location.Local); GameProgress.SetInt("AmazonRandomRewardSeed", data.RandomSeed, GameProgress.Location.Local); GameProgress.SetInt("AmazonRewardTime", data.RewardTime, GameProgress.Location.Local); GameProgress.SetInt("AmazonResetTime", data.ResetTime, GameProgress.Location.Local); GameProgress.SetInt("AmazonRewardLevel", data.Level, GameProgress.Location.Local); GameProgress.SetInt("AmazonTimerMode", data.TimerMode, GameProgress.Location.Local); }
private void HandleRewardLogic(int time) { if (this.mNeedReset) { this.mNeedReset = false; RewardDataHolder rewardDataHolder = this.CalculateNewTimers(time); RewardSystem.CurrentRewardStatus.ServerTime = time; RewardSystem.CurrentRewardStatus.RewardTime = rewardDataHolder.RewardTime; RewardSystem.CurrentRewardStatus.ResetTime = rewardDataHolder.ResetTime; RewardSystem.CurrentRewardStatus.ServerTimeUpdated = rewardDataHolder.ServerTimeUpdated; this.SaveData(RewardSystem.CurrentRewardStatus); } if (this.ResetTimePassed(time, RewardSystem.CurrentRewardStatus.ResetTime) || RewardSystem.CurrentRewardStatus.Level >= RewardSystem.AmountOfDays) { if (RewardSystem.CurrentRewardStatus.Level >= RewardSystem.AmountOfDays) { this.mNeedReset = true; } this.ResetData(); RewardSystem.CurrentRewardStatus = this.LoadSavedData(); this.HandleRewardLogic(time); return; } if (this.EligibleForReward(time, RewardSystem.CurrentRewardStatus.RewardTime)) { int level = RewardSystem.CurrentRewardStatus.Level; RewardDataHolder data = this.CalculateNewTimers(time); data.Level = RewardSystem.CurrentRewardStatus.Level; data.TimerMode = RewardSystem.CurrentRewardStatus.TimerMode; RewardSystem.CurrentRewardStatus.ServerTime = time; this.SaveData(data); if (this.rewardDialog != null) { if (!this.rewardDialog.gameObject.activeInHierarchy) { this.OpenDialog(); } RewardSystem.CurrentRewardStatus.PendingRewardLevel = level; } } else { RewardSystem.CurrentRewardStatus.ServerTime = time; RewardSystem.CurrentRewardStatus.ServerTimeUpdated = Mathf.RoundToInt(Time.realtimeSinceStartup); } }