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 str  = base.Key.ToLower();
                string tier = AnalyticsTierName.ToLower();
                Service.Get <ICPSwrveService>().Action("game." + str, tier);
            }
        }
    }
 private bool ConditionsMeetForTier(ConditionalTier <T> tier)
 {
     return(tier.Condition.IsSatisfied());
 }