Пример #1
0
    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);
    }
Пример #2
0
 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);
 }
Пример #3
0
 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);
     }
 }