示例#1
0
        protected override void OnGamepadUnplugged(SocketGamepad gamepad)
        {
            if (ActiveGamepads.ContainsKey(gamepad))
            {
                //Remove from players
                TicTacToePlayer player = (TicTacToePlayer)ActiveGamepads[gamepad];
                player.PlayerIcon.SetActive(false);
                ActiveGamepads.Remove(gamepad);
                LocalPlayers.Remove(player);
                player.Gamepad = null;

                if (XPlayer.Gamepad == null && OPlayer.Gamepad == null)
                {
                    CurrentMode = CurrentModeType.WaitForPlayers;
                }
            }
        }
示例#2
0
        protected void TriggerEndgame()
        {
            XPlayer.Ready = false;
            OPlayer.Ready = false;

            switch (Winner)
            {
            case 1:
                //TODO: Display Text
                Debug.Log("[Tic Tac Toe] X Won");
                XPlayer.Wins++;

                if (XWinsPlaque != null)
                {
                    XWinsPlaque.SetActive(true);
                }
                break;

            case 2:
                //TODO: Display Text
                Debug.Log("[Tic Tac Toe] O Won");
                OPlayer.Wins++;
                if (OWinsPlaque != null)
                {
                    OWinsPlaque.SetActive(true);
                }
                break;

            case 3:
                //TODO: Display Text
                Debug.Log("[Tic Tac Toe] Draw");
                XPlayer.Draws++;
                OPlayer.Draws++;
                if (DrawPlaque != null)
                {
                    DrawPlaque.SetActive(true);
                }
                break;
            }

            CurrentMode = CurrentModeType.WaitForReady;
            Debug.Log("Waiting for Players to Ready");
            SendGameEnd();
        }
示例#3
0
        protected void StartGame()
        {
            Debug.Log("[Tic Tac Toe] Starting Game");
            Reset();
            if (UnityEngine.Random.Range(0, 2) > 0)
            {
                XPlayer.isMyTurn = true;
                OPlayer.isMyTurn = false;
                PlayerTurn       = 1;
            }
            else
            {
                OPlayer.isMyTurn = true;
                XPlayer.isMyTurn = false;
                PlayerTurn       = 2;
            }

            CurrentMode = CurrentModeType.Playing;
            SendGameStart();
            SendMyTurn();
        }
示例#4
0
        protected override void OnGamepadPluggedIn(SocketGamepad gamepad)
        {
            if (XPlayer.Gamepad == null)
            {
                XPlayer.Xs      = true;
                XPlayer.FyoApp  = this;
                XPlayer.Gamepad = gamepad;
                XPlayer.PlayerIcon.SetActive(true);
                ActiveGamepads.Add(gamepad, XPlayer);
                XPlayer.InputWait = DateTime.Now.Ticks + (InputWaitMs * TimeSpan.TicksPerMillisecond);
                Debug.Log("X Connected");
            }
            else if (OPlayer.Gamepad == null)
            {
                OPlayer.Xs      = false;
                OPlayer.FyoApp  = this;
                OPlayer.Gamepad = gamepad;
                OPlayer.PlayerIcon.SetActive(true);
                Debug.Log("O Connected");
                ActiveGamepads.Add(gamepad, OPlayer);
                OPlayer.InputWait = DateTime.Now.Ticks + (InputWaitMs * TimeSpan.TicksPerMillisecond);
            }
            else
            {
                //Reconnected?
                if (CurrentMode == CurrentModeType.Playing && (XPlayer.Gamepad == gamepad || OPlayer.Gamepad == gamepad))
                {
                    SendGameState(gamepad);
                }
            }

            if (XPlayer.Gamepad != null && OPlayer.Gamepad != null && CurrentMode == CurrentModeType.WaitForPlayers)
            {
                CurrentMode = CurrentModeType.WaitForReady;
                Debug.Log("Waiting for Players to Ready");
            }
        }