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(); } }
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) * { * * } */ }
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; }
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; } }
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; } } }
void ChangeTurn() { CurrentPlayer = (Random.Range(0, 2) == 0) ? PlayerTurns.Player1 : PlayerTurns.Player2; //TimeStamp = 0; }