コード例 #1
0
        private bool baseConditionMet(LoginZoneDefinition.LoginZoneCondition condition)
        {
            ScheduledEventDateDefinition scheduledEventDateDefinition = Service.Get <IGameData>().Get <Dictionary <int, ScheduledEventDateDefinition> >()[condition.DateDefinitionKey.Id];

            if (!DateTimeUtils.DoesDateFallBetween(contentSchedulerService.ScheduledEventDate(), scheduledEventDateDefinition.Dates.StartDate, scheduledEventDateDefinition.Dates.EndDate))
            {
                return(false);
            }
            bool   result = false;
            string key    = condition.PlayerPrefsKey;

            if (condition.AddPlayerNameToKey)
            {
                CPDataEntityCollection cPDataEntityCollection = Service.Get <CPDataEntityCollection>();
                string displayName = cPDataEntityCollection.GetComponent <DisplayNameData>(cPDataEntityCollection.LocalPlayerHandle).DisplayName;
                key = displayName + condition.PlayerPrefsKey;
            }
            switch (condition.TypeOfCondition)
            {
            case LoginZoneDefinition.ConditionType.PlayerPrefExist:
                result = PlayerPrefs.HasKey(key);
                break;

            case LoginZoneDefinition.ConditionType.PlayerPrefDoesNotExist:
                result = !PlayerPrefs.HasKey(key);
                break;
            }
            return(result);
        }
コード例 #2
0
 private void parseUnlockDefinitions()
 {
     foreach (ClaimableRewardDefinition value in claimableRewardDefinition.Values)
     {
         if (value.ClaimOnLogin && (!value.IsMemberOnly || isMember()))
         {
             DateTime target = contentSchedulerService.ScheduledEventDate();
             ScheduledEventDateDefinition definitionById = Service.Get <IGameData>().GetDefinitionById(value.DateDefinitionKey);
             if (DateTimeUtils.DoesDateFallBetween(target, definitionById.Dates.StartDate, definitionById.Dates.EndDate) && (claimedRewardIdsData == null || !claimedRewardIdsData.RewardIds.Contains(value.Id)))
             {
                 rewardsToClaimById.Enqueue(value.Id);
             }
         }
     }
     if (rewardsToClaimById.Count > 0)
     {
         claimNextReward();
     }
     else
     {
         showRewardsComplete();
     }
 }