Пример #1
0
        IEnumerator WaitForResults()
        {
            yield return(new WaitUntil(delegate() { return Resources.FindObjectsOfTypeAll <ResultsViewController>().Count() > 0; }));

            ResultsViewController results = Resources.FindObjectsOfTypeAll <ResultsViewController>().First();

            results.GetComponentsInChildren <Button>().First(x => x.name == "RestartButton").interactable = false;


            results.resultsViewControllerDidPressContinueButtonEvent += delegate(ResultsViewController viewController) {
                try
                {
                    MultiplayerServerHubViewController hub   = ui.CreateViewController <MultiplayerServerHubViewController>();
                    MultiplayerLobbyViewController     lobby = ui.CreateViewController <MultiplayerLobbyViewController>();

                    viewController.DismissModalViewController(null, true);
                    FindObjectOfType <SongSelectionMasterViewController>().DismissModalViewController(null, true);
                    FindObjectOfType <SoloModeSelectionViewController>().DismissModalViewController(null, true);

                    hub.doNotUpdate = true;
                    FindObjectOfType <MainMenuViewController>().PresentModalViewController(hub, null, true);
                    lobby.selectedServerIP   = lastServerIP;
                    lobby.selectedServerPort = lastServerPort;
                    hub.PresentModalViewController(lobby, null, true);
                }
                catch (Exception e)
                {
                    Console.WriteLine($"RESULTS EXCEPTION: {e}");
                }
            };
        }
Пример #2
0
        IEnumerator WaitForMenu()
        {
            yield return(new WaitUntil(delegate() { return Resources.FindObjectsOfTypeAll <VRUIScreenSystem>().Any(); }));

            VRUIScreenSystem screenSystem = Resources.FindObjectsOfTypeAll <VRUIScreenSystem>().First();

            yield return(new WaitWhile(delegate() { Console.WriteLine("Waiting for mainScreen"); return screenSystem.mainScreen == null; }));

            yield return(new WaitWhile(delegate() { Console.WriteLine("Waiting for rootViewController"); return screenSystem.mainScreen.rootViewController == null; }));

            try
            {
                VRUIViewController root = screenSystem.mainScreen.rootViewController;

                List <VRUIViewController> children = new List <VRUIViewController>();

                children.Add(root);

                while (children.Last().childViewController != null)
                {
                    children.Add(children.Last().childViewController);
                }

                children.Reverse();
                children.Remove(root);
                children.ForEach(x => { Console.WriteLine($"Dismissing {x.name}..."); x.DismissModalViewController(null, true); });

                MultiplayerServerHubViewController hub   = ui.CreateViewController <MultiplayerServerHubViewController>();
                MultiplayerLobbyViewController     lobby = ui.CreateViewController <MultiplayerLobbyViewController>();

                bool serverClosed = (lastCommands != null) ? lastCommands.Any(x => x.commandType == ServerCommandType.Kicked && x.kickReason == "Server closed") : false;

                hub.doNotUpdate = !serverClosed;
                FindObjectOfType <MainMenuViewController>().PresentModalViewController(hub, null, true);
                if (!serverClosed)
                {
                    lobby.selectedServerIP   = lastServerIP;
                    lobby.selectedServerPort = lastServerPort;
                    hub.PresentModalViewController(lobby, null, true);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine($"MENU EXCEPTION: {e}");
            }
        }