private void CalculateTier(ConditionalDefinition <T> definition)
        {
            ConditionalTier <T>[] tiers = definition.Tiers;
            foreach (ConditionalTier <T> conditionalTier in tiers)
            {
                if (ConditionsMeetForTier(conditionalTier))
                {
                    Tier = conditionalTier;
                    AnalyticsTierName = (string.IsNullOrEmpty(conditionalTier.AnalyticsName) ? conditionalTier.name : conditionalTier.AnalyticsName);
                    break;
                }
            }
            string key = $"cp.ConditionalPropertyLogged.{base.Key}";

            if (PlayerPrefs.GetInt(key, 0) == 0 && definition.SendAnalytics)
            {
                PlayerPrefs.SetInt(key, 1);
                if (Service.IsSet <ICPSwrveService>())
                {
                    string text = base.Key.ToLower();
                    string tier = AnalyticsTierName.ToLower();
                    Service.Get <ICPSwrveService>().Action("game." + text, tier);
                }
            }
        }
 private bool ConditionsMeetForTier(ConditionalTier <T> tier)
 {
     return(tier.Condition.IsSatisfied());
 }