示例#1
0
    public void ScoreBall(Ball ball)
    {
        //Add scored ball to turn container
        scoredBallsPerTurn[scoredBallsPerTurn.Count - 1].Add(ball.Type);

        switch (ball.Type)
        {
        case Ball.BallType.Black:
            if (playersBalls[playerTurn] == Ball.BallType.Solid)
            {
                if (solidTeamPoints == 7)
                {
                    gameInProgress = false;
                    menu.EndGame($"Player {playerTurn + 1}");
                }
                gameInProgress = false;
                menu.EndGame($"Player {(playerTurn + 1) % 2 + 1}");
            }
            else if (playersBalls[playerTurn] == Ball.BallType.Stripe)
            {
                if (stripeTeamPoints == 7)
                {
                    gameInProgress = false;
                    menu.EndGame($"Player {playerTurn + 1}");
                }
                gameInProgress = false;
                menu.EndGame($"Player {(playerTurn + 1) % 2 + 1}");
            }
            break;

        case Ball.BallType.White:
            ball.gameObject.GetComponent <Rigidbody>().velocity = new Vector3(0, 0, 0);
            ball.gameObject.transform.position = new Vector3(0, 10, 0);
            return;

        case Ball.BallType.Stripe:
            //First score
            if (playersBalls[0] == Ball.BallType.None)
            {
                AssignBallToPlayer(ball.Type);
                gameCommunicatesText.text = "Current player will play stripe balls";
            }
            else
            {
                gameCommunicatesText.text = "Stripe player scores";
            }
            stripeTeamPoints += 1;
            break;

        case Ball.BallType.Solid:
            //First score
            if (playersBalls[0] == Ball.BallType.None)
            {
                AssignBallToPlayer(ball.Type);
                gameCommunicatesText.text = "Solid player will play stripe balls";
            }
            else
            {
                gameCommunicatesText.text = "Solid player scores";
            }
            solidTeamPoints += 1;
            break;
        }


        UpdateScore();
        gameBalls.Remove(ball);
        Destroy(ball.gameObject);
    }