Ejemplo n.º 1
0
        private (GameLobbyController, Mock <IUserService>, Mock <IGameLobbyService>) TestObjects()
        {
            var userService         = new Mock <IUserService>();
            var gameLobbyService    = new Mock <IGameLobbyService>();
            var gameLobbyController = new GameLobbyController(gameLobbyService.Object, userService.Object);
            var claimsUser          = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.NameIdentifier, "1")
            }));

            gameLobbyController.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = claimsUser
                }
            };

            return(gameLobbyController, userService, gameLobbyService);
        }
        //////////////////////////////////////////////////////////////////////////////

        #region Child controllers

        protected override void OnControllerStop(Controller controller)
        {
            if (controller is MenuController)
            {
                MenuController.ExitCode exitCode = (MenuController.ExitCode)controller.exitCode;
                if (exitCode == MenuController.ExitCode.Quit)
                {
                    Application.sharedApplication.Stop();
                    return;
                }

                switch (exitCode)
                {
                case MenuController.ExitCode.SingleStart:
                {
                    StartController(new GameLobbyController());
                    break;
                }

                case MenuController.ExitCode.MultiplayerStart:
                {
                    StartController(new MultiplayerController());
                    break;
                }

                case MenuController.ExitCode.DebugClientStart:
                {
                    StartController(new DebugMultiplayerController(DebugMultiplayerController.Mode.Client));
                    break;
                }

                case MenuController.ExitCode.DebugServerStart:
                {
                    StartController(new DebugMultiplayerController(DebugMultiplayerController.Mode.Server));
                    break;
                }
                }
            }
            else if (controller is MultiplayerController)
            {
                MultiplayerController.ExitCode exitCode = (MultiplayerController.ExitCode)controller.exitCode;
                if (exitCode == MultiplayerController.ExitCode.Cancel)
                {
                    StartMainMenuController();
                    return;
                }

                switch (exitCode)
                {
                case MultiplayerController.ExitCode.Create:
                    break;

                case MultiplayerController.ExitCode.Join:
                    break;
                }
            }
            else if (controller is GameController)
            {
                StartMainMenuController();
            }
            else if (controller is GameLobbyController)
            {
                GameLobbyController.ExitCode exitCode = (GameLobbyController.ExitCode)controller.exitCode;
                switch (exitCode)
                {
                case GameLobbyController.ExitCode.StartGame:
                {
                    GameLobbyController glc = controller as GameLobbyController;
                    Scheme selectedScheme   = glc.GetSelectedScheme();

                    GameSettings settings = new GameSettings(selectedScheme);
                    settings.inputEntries = glc.CreateInputEntries();
                    StartController(GameController.Local(settings));
                    break;
                }

                case GameLobbyController.ExitCode.Cancel:
                {
                    StartMainMenuController();
                    break;
                }
                }
            }
            else if (controller is DebugMultiplayerController)
            {
                DebugMultiplayerController.ExitCode exitCode = (DebugMultiplayerController.ExitCode)controller.exitCode;
                switch (exitCode)
                {
                case DebugMultiplayerController.ExitCode.Cancel:
                {
                    StartMainMenuController();
                    break;
                }

                case DebugMultiplayerController.ExitCode.ClientStarted:
                {
                    ServerInfo info = controller.exitData as ServerInfo;
                    Debug.Assert(info != null);

                    GameSettings settings = new GameSettings(info.scheme);
                    StartController(GameController.Client(settings));
                    break;
                }

                case DebugMultiplayerController.ExitCode.ServerStarted:
                {
                    ServerInfo info = controller.exitData as ServerInfo;
                    Debug.Assert(info != null);

                    GameSettings settings = new GameSettings(info.scheme);
                    settings.inputEntries = new GameSettings.InputEntry[]
                    {
                        new GameSettings.InputEntry(0, InputMapping.CreatePlayerInput(InputType.Keyboard1))
                    };
                    StartController(GameController.Server(settings));
                    break;
                }
                }
            }
        }
Ejemplo n.º 3
0
    //private int continueButtonSituation = -1;

    public void Awake()
    {
        PV       = GetComponent <PhotonView>();
        Instance = this;
    }