Пример #1
0
        public override void UpdateState(dynamic newState, HubCallerContext context)
        {
            var currentUserId = LobbyHub.UserMatches[context.ConnectionId];

            if (newState["turn"] != null)
            {
                if (PlayerTurns.Count > 0 && PlayerTurns.Peek() == currentUserId)
                {
                    return;
                }
                if (!BoardValues.ContainsKey(currentUserId))
                {
                    return;
                }

                var index = (int)newState["turn"]["index"];
                if (0 > index || index >= Board.Items.Length)
                {
                    return;
                }

                var boardItem = Board[index];
                if (boardItem.Value != GameBoard.BoardItem.BoardValue.None)
                {
                    return;
                }

                PlayerTurns.Push(currentUserId);
                boardItem.Value     = BoardValues[currentUserId];
                newState.turn.value = boardItem.Value;
                UpdateGameState(new OnGameStateUpdateArgs(newState, context));
                CheckFinshed();
            }
        }
Пример #2
0
    public void CheckDeath()
    {
        //check what the value of playerdeaths is if the function is called.
        switch (playerDeaths)
        {
        //if the value is player1death when the function is called, give points to the opposing player and make it thier turn
        //and make the value for the switch equal to the opposing player, etc.

        case PlayerDeaths.Player1Death:
            Debug.Log("player 1 has died");
            player2Points++;
            playerTurns = PlayerTurns.Player2Active;

            //if the player has died, it means they have failed to score so that turn will be passed on to the next player
            playerToScore = PlayerScored.Player2Scored;
            break;

        case PlayerDeaths.Player2Death:
            player1Points++;
            Debug.Log("player 2 has died");
            playerTurns   = PlayerTurns.Player1Active;
            playerToScore = PlayerScored.Player1Scored;
            break;
        }

        /* if(playerTurns == PlayerTurns.Player2Active)
         *       {
         *
         *       }
         */
    }
Пример #3
0
    private void Start()
    {
        playerTurns   = PlayerTurns.Player1Active;
        playerToScore = PlayerScored.Player1Scored;



        player1Goalobj = GameObject.FindWithTag("Player1Goal");
        player2Goalobj = GameObject.FindWithTag("Player2Goal");

        CheckPlayer();

        //Ball.GetComponent<Renderer>().material.color = colorOfPlayer;
        //myMat = Ball.GetComponent<Renderer>().material;
        //myMat.color = colorOfPlayer;
    }
Пример #4
0
    public void CheckPoints()
    {
        //check which players turn is it to score
        switch (playerToScore)
        {
        //if a player has scored, award this player a point then give the turn to the next player
        case PlayerScored.Player1Scored:

            player1Points++;
            playerTurns = PlayerTurns.Player2Active;

            break;

        case PlayerScored.Player2Scored:

            player2Points++;
            playerTurns = PlayerTurns.Player1Active;

            break;
        }
    }
Пример #5
0
        private void CheckFinshed()
        {
            Func <string, GameBoard.BoardItem> getItemFromPos = pos => Board.Items.First(x => x.Position == pos);

            for (int i = 1; i < 3; i++)
            {
                var value = (GameBoard.BoardItem.BoardValue)i;
                //#
                // #
                //  #
                if (getItemFromPos(GameBoard.BoardItem.TopLeft).Value == value &&
                    getItemFromPos(GameBoard.BoardItem.MiddleMiddle).Value == value &&
                    getItemFromPos(GameBoard.BoardItem.BottomRight).Value == value)
                {
                    EndGame(new OnGameEndArgs(OnGameEndArgs.GameWinReason.PlayerWin, PlayerTurns.Peek(), new
                    {
                        BoardWin = new [] { GameBoard.BoardItem.TopLeft, GameBoard.BoardItem.MiddleMiddle, GameBoard.BoardItem.BottomRight }
                    }));
                    return;
                }
                //  #
                // #
                //#
                if (getItemFromPos(GameBoard.BoardItem.TopRight).Value == value &&
                    getItemFromPos(GameBoard.BoardItem.MiddleMiddle).Value == value &&
                    getItemFromPos(GameBoard.BoardItem.BottomLeft).Value == value)
                {
                    EndGame(new OnGameEndArgs(OnGameEndArgs.GameWinReason.PlayerWin, PlayerTurns.Peek(), new
                    {
                        BoardWin = new[] { GameBoard.BoardItem.TopRight, GameBoard.BoardItem.MiddleMiddle, GameBoard.BoardItem.BottomLeft }
                    }));
                    return;
                }
                //###
                //
                //
                if (getItemFromPos(GameBoard.BoardItem.TopLeft).Value == value &&
                    getItemFromPos(GameBoard.BoardItem.TopMiddle).Value == value &&
                    getItemFromPos(GameBoard.BoardItem.TopRight).Value == value)
                {
                    EndGame(new OnGameEndArgs(OnGameEndArgs.GameWinReason.PlayerWin, PlayerTurns.Peek(), new
                    {
                        BoardWin = new[] { GameBoard.BoardItem.TopLeft, GameBoard.BoardItem.TopMiddle, GameBoard.BoardItem.TopRight }
                    }));
                    return;
                }
                //
                //###
                //
                if (getItemFromPos(GameBoard.BoardItem.MiddleLeft).Value == value &&
                    getItemFromPos(GameBoard.BoardItem.MiddleMiddle).Value == value &&
                    getItemFromPos(GameBoard.BoardItem.MiddleRight).Value == value)
                {
                    EndGame(new OnGameEndArgs(OnGameEndArgs.GameWinReason.PlayerWin, PlayerTurns.Peek(), new
                    {
                        BoardWin = new[] { GameBoard.BoardItem.MiddleLeft, GameBoard.BoardItem.MiddleMiddle, GameBoard.BoardItem.MiddleRight }
                    }));
                    return;
                }
                //
                //
                //###
                if (getItemFromPos(GameBoard.BoardItem.BottomLeft).Value == value &&
                    getItemFromPos(GameBoard.BoardItem.BottomMiddle).Value == value &&
                    getItemFromPos(GameBoard.BoardItem.BottomRight).Value == value)
                {
                    EndGame(new OnGameEndArgs(OnGameEndArgs.GameWinReason.PlayerWin, PlayerTurns.Peek(), new
                    {
                        BoardWin = new[] { GameBoard.BoardItem.BottomLeft, GameBoard.BoardItem.BottomMiddle, GameBoard.BoardItem.BottomRight }
                    }));
                    return;
                }
                //#
                //#
                //#
                if (getItemFromPos(GameBoard.BoardItem.TopLeft).Value == value &&
                    getItemFromPos(GameBoard.BoardItem.MiddleLeft).Value == value &&
                    getItemFromPos(GameBoard.BoardItem.BottomLeft).Value == value)
                {
                    EndGame(new OnGameEndArgs(OnGameEndArgs.GameWinReason.PlayerWin, PlayerTurns.Peek(), new
                    {
                        BoardWin = new[] { GameBoard.BoardItem.TopLeft, GameBoard.BoardItem.MiddleMiddle, GameBoard.BoardItem.BottomRight }
                    }));
                    return;
                }
                // #
                // #
                // #
                if (getItemFromPos(GameBoard.BoardItem.TopMiddle).Value == value &&
                    getItemFromPos(GameBoard.BoardItem.MiddleMiddle).Value == value &&
                    getItemFromPos(GameBoard.BoardItem.BottomMiddle).Value == value)
                {
                    EndGame(new OnGameEndArgs(OnGameEndArgs.GameWinReason.PlayerWin, PlayerTurns.Peek(), new
                    {
                        BoardWin = new[] { GameBoard.BoardItem.TopMiddle, GameBoard.BoardItem.MiddleMiddle, GameBoard.BoardItem.BottomMiddle }
                    }));
                    return;
                }
                //  #
                //  #
                //  #
                if (getItemFromPos(GameBoard.BoardItem.TopLeft).Value == value &&
                    getItemFromPos(GameBoard.BoardItem.MiddleLeft).Value == value &&
                    getItemFromPos(GameBoard.BoardItem.BottomLeft).Value == value)
                {
                    EndGame(new OnGameEndArgs(OnGameEndArgs.GameWinReason.PlayerWin, PlayerTurns.Peek(), new
                    {
                        BoardWin = new[] { GameBoard.BoardItem.TopLeft, GameBoard.BoardItem.MiddleLeft, GameBoard.BoardItem.BottomLeft }
                    }));
                    return;
                }
            }
        }
Пример #6
0
 void ChangeTurn()
 {
     CurrentPlayer = (Random.Range(0, 2) == 0) ? PlayerTurns.Player1 : PlayerTurns.Player2;
     //TimeStamp = 0;
 }