public void JoinSquad(string biSource)
        {
            if (this.squad == null)
            {
                return;
            }
            Lang lang = Service.Get <Lang>();

            this.biSource = biSource;
            Squad squad = Service.Get <CurrentPlayer>().Squad;

            if (this.button.VisuallyDisabled)
            {
                string msg;
                SquadUtils.CanCurrentPlayerJoinSquad(Service.Get <CurrentPlayer>(), Service.Get <SquadController>().StateManager.GetCurrentSquad(), this.squad, Service.Get <Lang>(), out msg);
                this.ShowInfoText(msg);
                return;
            }
            this.button.Enabled = false;
            Service.Get <EventManager>().SendEvent(EventId.SquadNext, null);
            if (this.squad.InviteType != 1)
            {
                Service.Get <ScreenController>().AddScreen(new SquadJoinRequestScreen(this.squad, new SquadController.ActionCallback(this.OnApplyToSquadComplete), this.button));
                return;
            }
            if (squad == null)
            {
                ProcessingScreen.Show();
                this.ActualJoinSquad();
                return;
            }
            if (!SquadUtils.CanLeaveSquad())
            {
                string message = Service.Get <Lang>().Get("IN_WAR_CANT_LEAVE_SQUAD", new object[0]);
                AlertScreen.ShowModal(false, null, message, null, null, true);
                return;
            }
            YesNoScreen.ShowModal(lang.Get("ALERT", new object[0]), lang.Get("JOIN_LEAVE_SQUAD_ALERT", new object[]
            {
                squad.SquadName,
                this.squad.SquadName
            }), false, lang.Get("JOIN_CTA", new object[0]), lang.Get("ACCOUNT_CONFLICT_CONFIRM_CANCEL", new object[0]), new OnScreenModalResult(this.OnLeaveAndJoinSquad), this.squad, false);
            Service.Get <EventManager>().SendEvent(EventId.UISquadLeaveConfirmation, squad.SquadID + "|join|" + this.squad.SquadID);
        }
Example #2
0
 private void OnCommandComplete(GetContentResponse response, object cookie)
 {
     this.response = response;
     this.options  = new ContentManagerOptions();
     if (response.CdnRoots.Count > 0 && !string.IsNullOrEmpty(response.CdnRoots[0]) && !string.IsNullOrEmpty(response.ManifestVersion) && !string.IsNullOrEmpty(response.ManifestPath))
     {
         this.options.ManifestVersion = int.Parse(response.ManifestVersion);
         this.options.ManifestPath    = response.ManifestPath;
         this.options.ContentBaseUrl  = response.CdnRoots[0];
         this.options.Env             = response.Environment;
         ContentManagerMode mode = ContentManagerMode.Remote;
         this.options.Mode = mode;
         this.LoadContentManager();
         Service.CurrentPlayer.Patches = response.Patches;
         return;
     }
     Service.Logger.Error("Content is not initialized");
     AlertScreen.ShowModalWithBI(true, null, "The server was unable to deliver content initialization data. Please try again soon.", "Connection error!");
 }
Example #3
0
        private IEnumerator Download(string url)
        {
            WWW wWW = new WWW(url);

            WWWManager.Add(wWW);
            yield return(wWW);

            if (!WWWManager.Remove(wWW))
            {
                yield break;
            }
            if (!string.IsNullOrEmpty(wWW.error) && wWW.error.StartsWith("Could not resolve host"))
            {
                Lang lang = Service.Get <Lang>();
                AlertScreen.ShowModal(true, lang.Get("NO_INTERNET_TITLE", new object[0]), lang.Get("NO_INTERNET", new object[0]), null, null);
            }
            wWW.Dispose();
            yield break;
        }
Example #4
0
        public ScreenInfo AddScreen(UXElement screen, bool modal, bool visibleScrim, QueueScreenBehavior subType)
        {
            ScreenBase highestLevelScreen = this.GetHighestLevelScreen <ScreenBase>();

            if (highestLevelScreen != null)
            {
                AlertScreen alertScreen = highestLevelScreen as AlertScreen;
                if (alertScreen != null && alertScreen.IsFatal)
                {
                    screen.Visible = false;
                    return(null);
                }
            }
            ScreenBase  screenBase   = screen as ScreenBase;
            AlertScreen alertScreen2 = screen as AlertScreen;
            ScreenInfo  screenInfo   = new ScreenInfo(screen, modal, visibleScrim, subType);

            if (!this.HandleScreenQueue(screenInfo))
            {
                if (highestLevelScreen != null && highestLevelScreen.IsAlwaysOnTop && this.screens.Count > 0)
                {
                    if ((screenBase != null && screenBase.IsAlwaysOnTop) || (alertScreen2 != null && alertScreen2.IsFatal))
                    {
                        this.screens.Add(screenInfo);
                        Service.EventManager.SendEvent(EventId.NewTopScreen, null);
                    }
                    else
                    {
                        this.screens.Insert(this.screens.Count - 1, screenInfo);
                    }
                }
                else
                {
                    this.screens.Add(screenInfo);
                    Service.EventManager.SendEvent(EventId.NewTopScreen, null);
                }
                screen.Visible = true;
                this.UpdateScrimAndDepths();
                Service.UserInputManager.ResetLastScreenPosition();
            }
            return(screenInfo);
        }
Example #5
0
 protected virtual void OnTransitionInComplete(object cookie)
 {
     this.transitioning = false;
     if (this.onTransitionComplete != null)
     {
         this.onTransitionComplete();
         this.onTransitionComplete = null;
     }
     if (!this.skipTransitions)
     {
         Service.Get <EventManager>().SendEvent(EventId.WorldInTransitionComplete, null);
     }
     this.CleanupTransitionVisuals();
     if (this.alertMessage != null)
     {
         AlertScreen.ShowModal(false, null, this.alertMessage, null, null);
         this.alertMessage = null;
     }
     Service.Get <Engine>().ForceGarbageCollection(null);
 }
Example #6
0
        private void OnRemoveClicked(UXButton button)
        {
            SquadMember squadMember = button.Tag as SquadMember;

            Service.EventManager.SendEvent(EventId.SquadNext, null);
            SquadController squadController = Service.SquadController;

            if (squadController.WarManager.IsMemberInWarParty(squadMember.MemberID) || squadController.WarManager.IsSquadMemberInWarOrMatchmaking(squadMember))
            {
                AlertScreen.ShowModal(false, null, this.lang.Get("CANT_REMOVE_MEMBER_IN_WAR", new object[0]), null, null, true);
            }
            else
            {
                string message = this.lang.Get("REMOVE_SQUAD_MEMBER_ALERT", new object[]
                {
                    squadMember.MemberName
                });
                AlertScreen.ShowModal(false, null, message, new OnScreenModalResult(this.OnAlertMemberRemoveResult), squadMember, true);
            }
        }
        private void OnTroopRequestClicked(UXButton btn)
        {
            SquadController squadController  = Service.Get <SquadController>();
            uint            serverTime       = Service.Get <ServerAPI>().ServerTime;
            uint            troopRequestDate = squadController.StateManager.TroopRequestDate;
            bool            flag             = !SquadUtils.CanSendFreeTroopRequest(serverTime, troopRequestDate);
            string          text             = this.requestInputBox.Text;

            if (!Service.Get <ProfanityController>().IsValid(text, false))
            {
                AlertScreen.ShowModal(false, null, this.lang.Get("INVALID_TEXT", new object[0]), null, null);
                return;
            }
            if (flag)
            {
                squadController.ShowTroopRequestScreen(text, false);
                return;
            }
            squadController.SendTroopRequest(text, false);
        }
Example #8
0
        private void FacebookLoginLogicAfterGetSelfDataResponse()
        {
            string            @string           = PlayerPrefs.GetString("FB_ID", null);
            SharedPlayerPrefs sharedPlayerPrefs = Service.Get <SharedPlayerPrefs>();
            string            text = null;

            if (sharedPlayerPrefs != null)
            {
                text = sharedPlayerPrefs.GetPref <string>("FB_ID");
            }
            if ((!string.IsNullOrEmpty(text) && text.CompareTo(FacebookManager.Instance.getUserId()) != 0) || (!string.IsNullOrEmpty(@string) && @string.CompareTo(FacebookManager.Instance.getUserId()) != 0))
            {
                ProcessingScreen.Hide();
                Lang   lang    = Service.Get <Lang>();
                string title   = lang.Get("IAP_DISABLED_ANDROID_TITLE", new object[0]);
                string message = lang.Get("FACEBOOK_YOU_ARE_USING_ANOTHER_ACCOUNT", new object[0]);
                AlertScreen.ShowModal(false, title, message, new OnScreenModalResult(this.OnFacebookOverrideWarningClosed), null);
                return;
            }
            this.FinishFacebookLogin();
        }
        private void CheckDeviceCompatibility()
        {
            if (!Service.Get <CurrentPlayer>().HasNotCompletedFirstFueStep())
            {
                this.checkedDeviceCompatibilty = true;
                this.TryComplete();
                return;
            }
            bool flag = false;

            if (flag)
            {
                Service.Get <UserInputManager>().Enable(true);
                Service.Get <CameraManager>().SetCameraOrderForPreloadScreens();
                Lang lang = Service.Get <Lang>();
                AlertScreen.ShowModal(false, lang.Get("ALERT", new object[0]), lang.Get("DEVICE_NOT_SUPPORTED", new object[0]), new OnScreenModalResult(this.OnDeviceCompatibilityWarningClosed), null);
                return;
            }
            this.checkedDeviceCompatibilty = true;
            this.TryComplete();
        }
Example #10
0
        public override OnCompleteAction OnFailure(uint status, object data)
        {
            if (SquadUtils.IsNotFatalServerError(status))
            {
                return(base.EatFailure(status, data));
            }
            string text = null;

            if (status == 2414u)
            {
                text = "WAR_ERROR_ENDED";
                Service.SquadController.WarManager.EndSquadWar();
            }
            if (text != null)
            {
                OnScreenModalResult onModalResult = new OnScreenModalResult(Service.UXController.HUD.OnSquadWarAttackResultCallback);
                AlertScreen.ShowModal(false, null, Service.Lang.Get(text, new object[0]), onModalResult, null);
                return(OnCompleteAction.Ok);
            }
            return(OnCompleteAction.Desync);
        }
Example #11
0
        private void DisplayUpdateWindow()
        {
            Lang           lang           = Service.Get <Lang>();
            ProtocolResult protocolResult = this.protocolResult;

            if (protocolResult != ProtocolResult.Higher)
            {
                if (protocolResult == ProtocolResult.Lower)
                {
                    string title   = lang.Get("FORCED_UPDATE_TITLE", new object[0]);
                    string message = lang.Get("FORCED_UPDATE_MESSAGE", new object[0]);
                    UpdateClientScreen.ShowModal(title, message, new OnScreenModalResult(this.OnUpdateWindowClosed), null);
                }
            }
            else
            {
                string title   = lang.Get("UPDATE_COMING_TITLE", new object[0]);
                string message = lang.Get("UPDATE_COMING_MESSAGE", new object[0]);
                AlertScreen.ShowModal(true, title, message, null, null);
            }
            this.KillStartup();
        }
 private void OnSquadDetailsUpdated(Squad squad, bool success)
 {
     ProcessingScreen.Hide();
     if (this.IsClosedOrClosing())
     {
         return;
     }
     if (!success)
     {
         string message = this.lang.Get("GENERIC_SQUAD_INFO_ISSUE", new object[0]);
         AlertScreen.ShowModal(false, null, message, null, null);
         return;
     }
     if (squad != null)
     {
         string detailsString;
         bool   showRequestButton = SquadUtils.CanCurrentPlayerJoinSquad(Service.Get <CurrentPlayer>(), Service.Get <SquadController>().StateManager.GetCurrentSquad(), squad, Service.Get <Lang>(), out detailsString);
         this.DisplaySquadInfoView(squad, showRequestButton, detailsString);
         return;
     }
     success = false;
 }
Example #13
0
        private OnCompleteAction HandleFailure(uint status, object data)
        {
            bool   flag = true;
            string text = null;

            if (status != 917u)
            {
                if (status != 1900u)
                {
                    if (status == 1999u)
                    {
                        string playerId = Service.Get <CurrentPlayer>().PlayerId;
                        text = Service.Get <Lang>().Get("DESYNC_BANNED", new object[]
                        {
                            playerId
                        });
                    }
                }
                else
                {
                    Service.Get <PlayerIdentityController>().HandleInactiveIdentityError(data as string);
                    flag = false;
                }
            }
            else
            {
                text = Service.Get <Lang>().Get("DESYNC_DUPLICATE_SESSION", new object[0]);
            }
            if (!flag)
            {
                return(OnCompleteAction.Ok);
            }
            if (text != null)
            {
                string biMessage = text + " Status : " + status;
                AlertScreen.ShowModalWithBI(true, null, text, biMessage);
            }
            return(OnCompleteAction.Desync);
        }
        public override OnCompleteAction OnFailure(uint status, object data)
        {
            if (SquadUtils.IsNotFatalServerError(status))
            {
                return(base.EatFailure(status, data));
            }
            string text = null;

            switch (status)
            {
            case 2402u:
                text = "WAR_ERROR_BUFF_BASE_OWNED";
                break;

            case 2403u:
                text = "WAR_ERROR_BUFF_BASE_IN_BATTLE";
                break;

            case 2404u:
                text = "WAR_ERROR_OPPONENT_IN_BATTLE";
                break;

            default:
                if (status == 2414u)
                {
                    text = "WAR_ERROR_ENDED";
                    Service.Get <SquadController>().WarManager.EndSquadWar();
                }
                break;
            }
            if (text != null)
            {
                OnScreenModalResult onModalResult = new OnScreenModalResult(Service.Get <UXController>().HUD.OnSquadWarAttackResultCallback);
                AlertScreen.ShowModal(false, null, Service.Get <Lang>().Get(text, new object[0]), onModalResult, null);
                return(OnCompleteAction.Ok);
            }
            return(OnCompleteAction.Desync);
        }
Example #15
0
 public EatResponse OnEvent(EventId id, object cookie)
 {
     if (id == EventId.ScreenLoaded)
     {
         AlertScreen alertScreen = cookie as AlertScreen;
         if (this.vo.PrepareString.Equals("Planetary_Command_Confirm_Small_Box") && alertScreen != null && "Tutorial".Equals(alertScreen.Tag))
         {
             this.RemoveListeners();
             this.parent.SatisfyTrigger(this);
         }
         else if (cookie is PlanetDetailsScreen && this.vo.PrepareString.Equals("Planet_Detail_Screen"))
         {
             this.RemoveListeners();
             this.parent.SatisfyTrigger(this);
         }
         else if (cookie is NavigationCenterUpgradeScreen && this.vo.PrepareString.Equals("Planetary_Command_Upgrade_Screen"))
         {
             this.RemoveListeners();
             this.parent.SatisfyTrigger(this);
         }
     }
     return(EatResponse.NotEaten);
 }
        private bool CanPurchaseIAPLinkedOffer(TargetedBundleVO currentOffer)
        {
            bool            flag           = true;
            IDataController dataController = Service.Get <IDataController>();
            int             i     = 0;
            int             count = currentOffer.RewardUIDs.Count;

            while (i < count)
            {
                RewardVO optional = dataController.GetOptional <RewardVO>(currentOffer.RewardUIDs[i]);
                if (optional != null && optional.BuildingInstantRewards != null)
                {
                    flag = this.CanPlaceAllRewardBuildings(optional.BuildingInstantRewards);
                    if (!flag)
                    {
                        AlertScreen.ShowModal(false, Service.Get <Lang>().Get("promo_error_nospace_title", new object[0]), Service.Get <Lang>().Get("promo_error_nospace_desc", new object[0]), null, null);
                        break;
                    }
                }
                i++;
            }
            return(flag);
        }
Example #17
0
 private void ClaimReward(string limitedTimeRewardUid, string contextUid)
 {
     if (!string.IsNullOrEmpty(contextUid))
     {
         StaticDataController staticDataController = Service.StaticDataController;
         LimitedTimeRewardVO  optional             = staticDataController.GetOptional <LimitedTimeRewardVO>(limitedTimeRewardUid);
         if (optional == null)
         {
             Service.Logger.WarnFormat("No LimitedTimeReward data found for uid: {0}", new object[]
             {
                 limitedTimeRewardUid
             });
             return;
         }
         RewardVO optional2 = staticDataController.GetOptional <RewardVO>(optional.RewardUid);
         if (optional2 == null)
         {
             Service.Logger.WarnFormat("LimitedTimeReward {0} points to reward {1} but it was not found", new object[]
             {
                 limitedTimeRewardUid,
                 optional.RewardUid
             });
             return;
         }
         HolonetClaimRewardRequest request = new HolonetClaimRewardRequest(limitedTimeRewardUid, contextUid);
         HolonetClaimRewardCommand command = new HolonetClaimRewardCommand(request);
         Service.ServerAPI.Sync(command);
         GameUtils.AddRewardToInventory(optional2);
         Service.CurrentPlayer.AddHolonetReward(limitedTimeRewardUid);
         Lang   lang = Service.Lang;
         string text = lang.Get(optional.Title, new object[0]);
         AlertScreen.ShowModal(false, lang.Get("hn_reward_redeemed", new object[0]), lang.Get("hn_reward_claimed_desc", new object[]
         {
             text
         }), null, null);
     }
 }
Example #18
0
        private void MemberItemClicked(UXButton btn)
        {
            SquadController squadController = Service.SquadController;

            Service.EventManager.SendEvent(EventId.SquadMore, null);
            SquadMember         squadMember         = btn.Tag as SquadMember;
            string              id                  = "member_" + squadMember.MemberID;
            SquadMemberElements squadMemberElements = new SquadMemberElements();

            SquadScreenMembersView.SquadMemberElementsSetup(this.squadMemberGrid, squadMemberElements, id);
            if (Service.SquadController.WarManager.MatchMakingPrepMode)
            {
                if (squadMemberElements.SpriteMemberSelect.Visible && squadController.WarManager.WarPartyRemove(squadMember.MemberID))
                {
                    squadMemberElements.SpriteMemberSelect.Visible = false;
                }
                else if (!squadMemberElements.SpriteMemberSelect.Visible && squadController.WarManager.WarPartyAdd(squadMember))
                {
                    squadMemberElements.SpriteMemberSelect.Visible = true;
                }
                else if (!(bool)squadMemberElements.SpriteMemberSelect.Tag)
                {
                    string message = this.lang.Get("WAR_START_HQ_INELIGIBLE", new object[]
                    {
                        GameConstants.WAR_PARTICIPANT_MIN_LEVEL
                    });
                    AlertScreen.ShowModal(false, null, message, null, null, true);
                }
                this.screen.RefreshViews();
            }
            else
            {
                squadMemberElements.ButtonContainer.Visible = true;
                squadMemberElements.ButtonContainer.PlayTween(true);
            }
        }
Example #19
0
 private void OnContentManagerLoadFailure(ContentManager manager)
 {
     Service.Logger.Error("Content manager failed to initialize.");
     AlertScreen.ShowModalWithBI(true, null, "Content Manager failed to initialize.", "CONTENT ERROR");
 }
Example #20
0
        private void HandleBackButton()
        {
            IState currentState = Service.GameStateMachine.CurrentState;

            if (currentState is IntroCameraState)
            {
                IntroCameraAnimation intro = Service.UXController.Intro;
                if (intro != null)
                {
                    intro.FinishUp(true);
                }
                return;
            }
            for (int i = this.backButtonHandlers.Count - 1; i >= 0; i--)
            {
                if (this.backButtonHandlers[i].HandleBackButtonPress())
                {
                    return;
                }
            }
            UICamera.selectedObject = null;
            UICamera.hoveredObject  = null;
            if (TouchScreenKeyboard.visible)
            {
                return;
            }
            ScreenController screenController = null;

            if (Service.ScreenController != null)
            {
                screenController = Service.ScreenController;
                AlertScreen highestLevelScreen = screenController.GetHighestLevelScreen <AlertScreen>();
                if (highestLevelScreen != null && highestLevelScreen.IsAlwaysOnTop)
                {
                    this.HandleScreenBack(highestLevelScreen);
                    return;
                }
            }
            if (Service.HoloController != null)
            {
                HoloController holoController = Service.HoloController;
                if (holoController.HasAnyCharacter())
                {
                    Service.EventManager.SendEvent(EventId.StoryNextButtonClicked, null);
                    return;
                }
            }
            if (screenController != null)
            {
                ScreenBase     highestLevelScreen2 = screenController.GetHighestLevelScreen <ScreenBase>();
                ClosableScreen highestLevelScreen3 = screenController.GetHighestLevelScreen <ClosableScreen>();
                if (Service.CurrentPlayer.CampaignProgress.FueInProgress || Service.UserInputInhibitor.IsDenying())
                {
                    if (highestLevelScreen2 != null && highestLevelScreen2.AllowFUEBackButton && this.HandleScreenBack(highestLevelScreen2))
                    {
                        return;
                    }
                    this.TryQuit();
                    return;
                }
                else
                {
                    if (highestLevelScreen2 != null && this.HandleScreenBack(highestLevelScreen2))
                    {
                        return;
                    }
                    if (highestLevelScreen3 != null && this.HandleScreenBack(highestLevelScreen3))
                    {
                        return;
                    }
                }
            }
            if (currentState is EditBaseState)
            {
                HomeState.GoToHomeState(null, false);
                return;
            }
            if (Service.BuildingController != null)
            {
                BuildingController buildingController = Service.BuildingController;
                if (buildingController.SelectedBuilding != null)
                {
                    buildingController.EnsureDeselectSelectedBuilding();
                    return;
                }
            }
            if (currentState is BaseLayoutToolState)
            {
                UXController uXController = Service.UXController;
                uXController.HUD.BaseLayoutToolView.CancelBaseLayoutTool();
                return;
            }
            if (Service.GalaxyViewController != null && currentState is GalaxyState)
            {
                GalaxyViewController galaxyViewController = Service.GalaxyViewController;
                galaxyViewController.GoToHome();
                return;
            }
            this.TryQuit();
        }
Example #21
0
        private void OnAccountRegisterFailure(uint status, object cookie)
        {
            RegisterExternalAccountCommand registerExternalAccountCommand = (RegisterExternalAccountCommand)cookie;
            Lang   lang    = Service.Lang;
            string title   = lang.Get("ACCOUNT_SYNC_ERROR", new object[0]);
            string message = null;
            string derivedExternalAccountId = registerExternalAccountCommand.ResponseResult.DerivedExternalAccountId;

            if (status != 2200u)
            {
                if (status != 2201u)
                {
                    if (status == 1318u)
                    {
                        switch (registerExternalAccountCommand.RequestArgs.Provider)
                        {
                        case AccountProvider.FACEBOOK:
                            message = lang.Get("ACCOUNT_SYNC_AUTH_ERROR_FACEBOOK", new object[0]);
                            break;

                        case AccountProvider.GAMECENTER:
                            message = lang.Get("ACCOUNT_SYNC_AUTH_ERROR_GAMECENTER", new object[0]);
                            break;

                        case AccountProvider.GOOGLEPLAY:
                            message = lang.Get("ACCOUNT_SYNC_AUTH_ERROR_GOOGLEPLAY", new object[0]);
                            break;

                        case AccountProvider.RECOVERY:
                            message = lang.Get("ACCOUNT_SYNC_AUTH_ERROR_RECOVERY", new object[0]);
                            break;
                        }
                        ProcessingScreen.Hide();
                        AlertScreen.ShowModal(false, title, message, null, null);
                    }
                }
                else
                {
                    switch (registerExternalAccountCommand.RequestArgs.Provider)
                    {
                    case AccountProvider.FACEBOOK:
                        if (this.externalAccountInfo.DerivedFacebookAccountId != null && this.externalAccountInfo.DerivedFacebookAccountId != derivedExternalAccountId)
                        {
                            message = lang.Get("ACCOUNT_SYNC_ERROR_FACEBOOK", new object[0]);
                        }
                        else if (this.externalAccountInfo.DerivedGooglePlayAccountId != null)
                        {
                            message = lang.Get("ACCOUNT_SYNC_ERROR_FACEBOOK_GOOGLEPLAY", new object[0]);
                        }
                        break;

                    case AccountProvider.GAMECENTER:
                        if (this.externalAccountInfo.DerivedGameCenterAccountId != null && this.externalAccountInfo.DerivedGameCenterAccountId != derivedExternalAccountId)
                        {
                            message = lang.Get("ACCOUNT_SYNC_ERROR_GAMECENTER", new object[0]);
                        }
                        else if (this.externalAccountInfo.DerivedFacebookAccountId != null)
                        {
                            message = lang.Get("ACCOUNT_SYNC_ERROR_GAMECENTER_FACEBOOK", new object[0]);
                        }
                        break;

                    case AccountProvider.GOOGLEPLAY:
                        if (this.externalAccountInfo.DerivedGooglePlayAccountId != null && this.externalAccountInfo.DerivedGooglePlayAccountId != derivedExternalAccountId)
                        {
                            message = lang.Get("ACCOUNT_SYNC_ERROR_GOOGLEPLAY", new object[0]);
                        }
                        else if (this.externalAccountInfo.DerivedFacebookAccountId != null)
                        {
                            message = lang.Get("ACCOUNT_SYNC_ERROR_GOOGLEPLAY_FACEBOOK", new object[0]);
                        }
                        break;

                    case AccountProvider.RECOVERY:
                        message = lang.Get("ACCOUNT_SYNC_ERROR_RECOVERY", new object[0]);
                        break;
                    }
                    ProcessingScreen.Hide();
                    AlertScreen.ShowModal(false, title, message, null, null);
                }
            }
            else
            {
                ProcessingScreen.Hide();
                AccountSyncScreen accountSyncScreen = AccountSyncScreen.CreateSyncConflictScreen(registerExternalAccountCommand);
                if (registerExternalAccountCommand.RequestArgs.Provider == AccountProvider.RECOVERY)
                {
                    accountSyncScreen.OverrideDescription(lang.Get("ACCOUNT_SYNC_CONFLICT_RECOVERY", new object[0]));
                }
                Service.ScreenController.AddScreen(accountSyncScreen);
            }
        }
Example #22
0
        public static int TransferPrizeFromInventory(PrizeType prizeType, string prizeID)
        {
            Lang             lang               = Service.Get <Lang>();
            IDataController  dataController     = Service.Get <IDataController>();
            CurrentPlayer    currentPlayer      = Service.Get <CurrentPlayer>();
            PrizeInventory   prizes             = currentPlayer.Prizes;
            Inventory        inventory          = currentPlayer.Inventory;
            InventoryStorage inventoryStorage   = null;
            IUpgradeableVO   finalUnitFromPrize = TimedEventPrizeUtils.GetFinalUnitFromPrize(prizeType, prizeID);
            string           text               = null;
            string           text2              = null;
            string           id = null;
            int result          = 0;
            int num             = 0;

            switch (prizeType)
            {
            case PrizeType.Currency:
                num = prizes.GetResourceAmount(prizeID);
                TimedEventPrizeUtils.GetCurrencyAmountToTransfer(prizeID, ref num, ref result);
                if (num > 0)
                {
                    inventory.ModifyItemAmount(prizeID, num);
                    prizes.ModifyResourceAmount(prizeID, -num);
                    text  = "INVENTORY_REWARD_USED_CURRENCY";
                    text2 = lang.Get(prizeID.ToUpper(), new object[0]);
                }
                else
                {
                    id = "INVENTORY_NO_ROOM";
                }
                break;

            case PrizeType.Infantry:
            case PrizeType.Vehicle:
            case PrizeType.Mercenary:
                inventoryStorage = inventory.Troop;
                if (inventoryStorage.GetTotalStorageCapacity() >= inventoryStorage.GetTotalStorageAmount() + finalUnitFromPrize.Size)
                {
                    num = 1;
                    inventoryStorage.ModifyItemAmount(finalUnitFromPrize.Uid, num);
                    prizes.ModifyTroopAmount(prizeID, -num);
                    text  = "INVENTORY_REWARD_USED_TROOP";
                    text2 = LangUtils.GetTroopDisplayName((TroopTypeVO)finalUnitFromPrize);
                    StorageSpreadUtils.UpdateAllStarportFullnessMeters();
                }
                else
                {
                    id = "NOT_ENOUGH_HOUSING";
                }
                result = prizes.GetTroopAmount(prizeID);
                break;

            case PrizeType.Hero:
                inventoryStorage = inventory.Hero;
                if (!Service.Get <BuildingLookupController>().HasHeroCommand())
                {
                    id = "INVENTORY_NO_HERO_COMMAND";
                }
                else if (inventoryStorage.GetTotalStorageCapacity() >= inventoryStorage.GetTotalStorageAmount() + finalUnitFromPrize.Size)
                {
                    bool flag = false;
                    foreach (KeyValuePair <string, InventoryEntry> current in inventoryStorage.GetInternalStorage())
                    {
                        if (current.get_Value().Amount > 0)
                        {
                            TroopTypeVO troopTypeVO = dataController.Get <TroopTypeVO>(current.get_Key());
                            if (troopTypeVO.UpgradeGroup == finalUnitFromPrize.UpgradeGroup)
                            {
                                flag = true;
                                break;
                            }
                        }
                    }
                    if (!flag)
                    {
                        flag = ContractUtils.HasExistingHeroContract(finalUnitFromPrize.UpgradeGroup);
                    }
                    if (!flag)
                    {
                        num = 1;
                        inventoryStorage.ModifyItemAmount(finalUnitFromPrize.Uid, num);
                        prizes.ModifyTroopAmount(prizeID, -num);
                        text  = "INVENTORY_REWARD_USED_HERO";
                        text2 = LangUtils.GetTroopDisplayName((TroopTypeVO)finalUnitFromPrize);
                        Service.Get <EventManager>().SendEvent(EventId.HeroMobilizedFromPrize, finalUnitFromPrize.Uid);
                    }
                    else
                    {
                        id = "INVENTORY_NO_ROOM_HERO_IN_QUEUE";
                    }
                }
                else
                {
                    id = "INVENTORY_NO_ROOM_HERO";
                }
                result = prizes.GetTroopAmount(prizeID);
                break;

            case PrizeType.SpecialAttack:
                inventoryStorage = inventory.SpecialAttack;
                if (!Service.Get <BuildingLookupController>().HasStarshipCommand())
                {
                    id = "INVENTORY_NO_FLEET_COMMAND";
                }
                else if (inventoryStorage.GetTotalStorageCapacity() >= inventoryStorage.GetTotalStorageAmount() + finalUnitFromPrize.Size)
                {
                    num = 1;
                    inventoryStorage.ModifyItemAmount(finalUnitFromPrize.Uid, num);
                    prizes.ModifySpecialAttackAmount(prizeID, -num);
                    text  = "INVENTORY_REWARD_USED_TROOP";
                    text2 = LangUtils.GetStarshipDisplayName((SpecialAttackTypeVO)finalUnitFromPrize);
                    Service.Get <EventManager>().SendEvent(EventId.StarshipMobilizedFromPrize, finalUnitFromPrize.Uid);
                }
                else
                {
                    id = "NOT_ENOUGH_SPACE";
                }
                result = prizes.GetSpecialAttackAmount(prizeID);
                break;
            }
            if (num > 0)
            {
                InventoryTransferRequest request = new InventoryTransferRequest(prizeID, num);
                Service.Get <ServerAPI>().Enqueue(new InventoryTransferCommand(request));
            }
            else
            {
                string message = lang.Get(id, new object[0]);
                AlertScreen.ShowModal(false, null, message, null, null);
            }
            if (text != null)
            {
                string text3 = (prizeType == PrizeType.Hero) ? text2 : lang.Get("AMOUNT_AND_NAME", new object[]
                {
                    num,
                    text2
                });
                string instructions = lang.Get(text, new object[]
                {
                    text3
                });
                Service.Get <UXController>().MiscElementsManager.ShowPlayerInstructions(instructions, 1f, 2f);
            }
            return(result);
        }
Example #23
0
        private void OnDesync(string message, uint status, ProtocolResult result)
        {
            ServerAPI serverAPI = Service.ServerAPI;

            if (result == ProtocolResult.Match)
            {
                string title = null;
                Lang   lang  = Service.Lang;
                if (this.hasSecondary && serverAPI.GetDispatcher().Url.StartsWith("https://starts-integration-prod.disney.io/starts") && message.StartsWith(lang.Get(LangUtils.DESYNC_BATCH_MAX_RETRY, new object[0])))
                {
                    title   = lang.Get("UPDATE_COMING_TITLE", new object[0]);
                    message = lang.Get("UPDATE_COMING_MESSAGE", new object[0]);
                    Service.Logger.Warn("Maintenance message shown due to client update before server deploy");
                }
                if (status != 1999u)
                {
                    AlertScreen.ShowModalWithBI(true, title, message, message);
                }
                this.KillStartup();
                return;
            }
            if (this.isHandlingMismatch)
            {
                return;
            }
            this.isHandlingMismatch = true;
            this.protocolResult     = result;
            if (result == ProtocolResult.Higher && !serverAPI.GetDispatcher().Url.StartsWith("https://starts-integration-prod.disney.io/starts") && this.hasSecondary && this.isAttemptingAuth)
            {
                Service.Logger.WarnFormat("Trying secondary API due to higher protocol", new object[0]);
                if (this.getAuthTokenCommand != null)
                {
                    this.getAuthTokenCommand.RemoveAllCallbacks();
                }
                if (this.generatePlayerCommand != null)
                {
                    this.generatePlayerCommand.RemoveAllCallbacks();
                }
                serverAPI.SetDispatcher("https://starts-integration-prod.disney.io/starts", Service.Engine);
                this.GetOrCreatePlayer();
                return;
            }
            IState currentState = Service.GameStateMachine.CurrentState;

            if (currentState is BattleStartState || currentState is BattlePlayState || currentState is BattleEndState)
            {
                this.isHandlingMismatch = false;
                return;
            }
            if (result != ProtocolResult.Higher)
            {
                if (result == ProtocolResult.Lower)
                {
                    Service.Logger.Warn(message);
                }
            }
            else
            {
                Service.Logger.Error(message);
            }
            this.DisplayUpdateWindow();
        }
Example #24
0
        private void timer1_Tick_1(object sender, EventArgs e)
        {
            timer1.Enabled  = true;
            timer1.Interval = 200;

            if (loginBar.Value < 100)
            {
                loginBar.Value += 10; //2
            }
            else
            {
                //Creamos variables
                var username = txt_username.Text.Trim();
                var password = mtxt_password.Text.Trim();

                // validamos usuario
                if (ValidateUser(username, password))
                {
                    var sql  = "SELECT* FROM Users WHERE UserName = '******'; ";
                    var menu = new Menu(sql);
                    menu.Show();
                    this.Hide();
                    Init(null, null);

                    incorrectlbl.Visible      = false;
                    btn_login.Visible         = true;
                    usernameLabel.Visible     = true;
                    passwordLabel.Visible     = true;
                    messageLoginLabel.Visible = false;
                    mtxt_password.Visible     = true;
                    txt_username.Visible      = true;
                    loginBar.Visible          = false;
                    timer1.Enabled            = false;
                    txt_username.Text         = "";
                    mtxt_password.Text        = "";
                    validImg.Visible          = false;
                }
                else
                {
                    _intentos--;

                    txt_username.Text         = "";
                    mtxt_password.Text        = "";
                    validImg.Visible          = false;
                    incorrectlbl.Visible      = true;
                    btn_login.Visible         = true;
                    usernameLabel.Visible     = true;
                    passwordLabel.Visible     = true;
                    messageLoginLabel.Visible = false; // todo
                    incorrectlbl.Text         = $@"El usuario y/o la contraseƱa son incorrectos!
{_intentos} intentos hasta el bloqueo de la aplicaciĆ³n";
                    mtxt_password.Visible     = true;
                    txt_username.Visible      = true;
                    loginBar.Visible          = false;
                    timer1.Enabled            = false;

                    if (_intentos == 0)
                    {
                        //Abrir nuevo formulario con mensaje AMENAZADDOR
                        var amenaza = new AlertScreen();
                        amenaza.Show();
                        Close();
                    }
                }
            }
        }
Example #25
0
 private void OnFmsError()
 {
     AlertScreen.ShowModalWithBI(true, null, "FMS failed to initialize.", "FMS ERROR");
 }
        private void OnAccountRegisterFailure(uint status, object cookie)
        {
            RegisterExternalAccountCommand registerExternalAccountCommand = (RegisterExternalAccountCommand)cookie;
            Lang   lang    = Service.Get <Lang>();
            string title   = lang.Get("ACCOUNT_SYNC_ERROR", new object[0]);
            string message = null;

            if (status == 1318u)
            {
                switch (registerExternalAccountCommand.RequestArgs.Provider)
                {
                case AccountProvider.FACEBOOK:
                    message = lang.Get("ACCOUNT_SYNC_AUTH_ERROR_FACEBOOK", new object[0]);
                    break;

                case AccountProvider.GAMECENTER:
                    message = lang.Get("ACCOUNT_SYNC_AUTH_ERROR_GAMECENTER", new object[0]);
                    break;

                case AccountProvider.GOOGLEPLAY:
                    message = lang.Get("ACCOUNT_SYNC_AUTH_ERROR_GOOGLEPLAY", new object[0]);
                    break;
                }
                ProcessingScreen.Hide();
                AlertScreen.ShowModal(false, title, message, null, null);
                return;
            }
            if (status == 2200u)
            {
                ProcessingScreen.Hide();
                AccountSyncScreen screen = AccountSyncScreen.CreateSyncConflictScreen(registerExternalAccountCommand);
                Service.Get <ScreenController>().AddScreen(screen);
                return;
            }
            if (status != 2201u)
            {
                return;
            }
            switch (registerExternalAccountCommand.RequestArgs.Provider)
            {
            case AccountProvider.FACEBOOK:
                if (this.externalAccountInfo.FacebookAccountId != null && this.externalAccountInfo.FacebookAccountId != FacebookManager.Instance.getUserId())
                {
                    message = lang.Get("ACCOUNT_SYNC_ERROR_FACEBOOK", new object[0]);
                }
                else if (this.externalAccountInfo.FacebookAccountId != null)
                {
                    message = lang.Get("ACCOUNT_SYNC_ERROR_FACEBOOK", new object[0]);
                }
                break;

            case AccountProvider.GAMECENTER:
                if (this.externalAccountInfo.GameCenterAccountId != null && this.externalAccountInfo.GameCenterAccountId != GameServicesManager.GetUserId())
                {
                    message = lang.Get("ACCOUNT_SYNC_ERROR_GAMECENTER", new object[0]);
                }
                else if (this.externalAccountInfo.FacebookAccountId != null)
                {
                    message = lang.Get("ACCOUNT_SYNC_ERROR_GAMECENTER_FACEBOOK", new object[0]);
                }
                break;

            case AccountProvider.GOOGLEPLAY:
                if (this.externalAccountInfo.GooglePlayAccountId != null && this.externalAccountInfo.GooglePlayAccountId != GameServicesManager.GetUserId())
                {
                    message = lang.Get("ACCOUNT_SYNC_ERROR_GOOGLEPLAY", new object[0]);
                }
                else if (this.externalAccountInfo.FacebookAccountId != null)
                {
                    message = lang.Get("ACCOUNT_SYNC_ERROR_GOOGLEPLAY_FACEBOOK", new object[0]);
                }
                break;
            }
            ProcessingScreen.Hide();
            AlertScreen.ShowModal(false, title, message, null, null);
        }