public void OnStateChanged(string state)
        {
            if (!(state == HandledState) || !(rootStateMachine != null))
            {
                return;
            }
            CPDataEntityCollection cPDataEntityCollection = Service.Get <CPDataEntityCollection>();

            if (cPDataEntityCollection == null || cPDataEntityCollection.LocalPlayerHandle.IsNull)
            {
                throw new Exception("Unable to resolve data entity collection");
            }
            if (cPDataEntityCollection.TryGetComponent <ProfileData>(cPDataEntityCollection.LocalPlayerHandle, out var component))
            {
                MembershipService membershipService = Service.Get <MembershipService>();
                string            text;
                if (component.IsFirstTimePlayer && !membershipService.LoginViaMembership && !membershipService.LoginViaRestore)
                {
                    QuestService        questService        = Service.Get <QuestService>();
                    GameStateController gameStateController = Service.Get <GameStateController>();
                    text = ((questService.ActiveQuest == null || !(questService.ActiveQuest.Id == gameStateController.FTUEConfig.FtueQuestId)) ? FirstTimePlayerEvent : ReturnPlayerEvent);
                }
                else
                {
                    if (membershipService.LoginViaRestore)
                    {
                        SessionManager sessionManager = Service.Get <SessionManager>();
                        if (sessionManager.HasSession)
                        {
                            sessionManager.ReturnToRestorePurchases();
                        }
                        Service.Get <ICPSwrveService>().Funnel(Service.Get <MembershipService>().AccountFunnelName, "21", "check_cpremixprofile", "ReturnToSettings");
                        AccountPopupController componentInParent = GetComponentInParent <AccountPopupController>();
                        componentInParent.OnClosePopup();
                        return;
                    }
                    text = ReturnPlayerEvent;
                }
                Service.Get <ICPSwrveService>().Funnel(Service.Get <MembershipService>().AccountFunnelName, "21", "check_cpremixprofile", text);
                rootStateMachine.SendEvent(text);
                return;
            }
            throw new MissingReferenceException("No profile data found for local player");
        }
예제 #2
0
 public void OnStateChanged(string state)
 {
     if (state == HandledState && rootStateMachine != null)
     {
         CPDataEntityCollection cPDataEntityCollection = Service.Get <CPDataEntityCollection>();
         if (cPDataEntityCollection == null || cPDataEntityCollection.LocalPlayerHandle.IsNull)
         {
             throw new Exception("Unable to resolve data entity collection");
         }
         bool flag = false;
         if (!cPDataEntityCollection.TryGetComponent <ProfileData>(cPDataEntityCollection.LocalPlayerHandle, out var component) || !cPDataEntityCollection.TryGetComponent <MembershipData>(cPDataEntityCollection.LocalPlayerHandle, out var component2))
         {
             throw new MissingReferenceException("No profile data or membership data found for local player");
         }
         MembershipService membershipService = Service.Get <MembershipService>();
         AccountFlowData   accountFlowData   = membershipService.GetAccountFlowData();
         bool   flag2 = Service.Get <SessionManager>().LocalUser.RegistrationProfile.AccountStatus == AccountStatus.AwaitingParentalConsent;
         bool   flag3 = component2.MembershipType == MembershipType.Member;
         string text;
         if (!membershipService.IsPurchaseFunnelAvailable())
         {
             text = SkipMembershipEvent;
         }
         else if (!flag3 && showAllAccess() && !membershipService.LoginViaMembership)
         {
             text = ShowAllAccessEvent;
         }
         else if (!flag3 && showAllAccessOver() && !membershipService.LoginViaMembership)
         {
             text = ShowAllAccessOverEvent;
         }
         else if (flag || (membershipService.LoginViaMembership && !flag3 && !flag2) || (component.IsFirstTimePlayer && !component2.IsMember && !accountFlowData.SkipMembership && !flag2))
         {
             accountFlowData.SkipMembership = true;
             text = ((!component.IsFirstTimePlayer || membershipService.LoginViaMembership) ? ShowMembershipEvent : EndMembershipFlowEvent);
         }
         else
         {
             text = SkipMembershipEvent;
         }
         Service.Get <ICPSwrveService>().Funnel(Service.Get <MembershipService>().AccountFunnelName, "22", "check_showmembership", text);
         rootStateMachine.SendEvent(text);
     }
 }
        public void OnStateChanged(string state)
        {
            if (!(state == HandledState) || !(rootStateMachine != null))
            {
                return;
            }
            MembershipService membershipService = Service.Get <MembershipService>();

            if (carrierBillingSupported == null)
            {
                initializeCarrierBillingSupported();
            }
            string text      = NotSupportedEvent;
            string prop_name = "skip";

            if (carrierBillingSupported.Contains(prop_name))
            {
                Dictionary <string, string> deviceInfo = Service.Get <ICPSwrveService>().GetDeviceInfo();
                string value = MembershipService.OverrideSimCountryCode;
                if (string.IsNullOrEmpty(value))
                {
                    deviceInfo.TryGetValue("swrve.sim_operator.iso_country_code", out value);
                }
                string value2 = MembershipService.OverrideSimCarrierName;
                if (string.IsNullOrEmpty(value2))
                {
                    deviceInfo.TryGetValue("swrve.sim_operator.name", out value2);
                }
                if (!string.IsNullOrEmpty(value) && !string.IsNullOrEmpty(value2) && carrierBillingSupported[prop_name].Contains(value.ToUpper()))
                {
                    JsonData jsonData = carrierBillingSupported[prop_name][value.ToUpper()];
                    foreach (object item in (IEnumerable)jsonData)
                    {
                        if (item.ToString().Trim().ToUpper() == value2.Trim().ToUpper())
                        {
                            text = SupportedEvent;
                        }
                    }
                }
            }
            Service.Get <ICPSwrveService>().Funnel(membershipService.MembershipFunnelName, "02a", "check_carrier_billing_supported", text);
            rootStateMachine.SendEvent(text);
        }
 public void Start()
 {
     membershipService = Service.Get <MembershipService>();
 }
 public void Start()
 {
     rootStateMachine  = GetComponent <StateMachine>();
     membershipService = Service.Get <MembershipService>();
 }