예제 #1
0
    private void introStateMachine(int state)
    {
        if (state == startState)
        {
            pressSpaceBarToStart.SetActive(true);
            if (Input.GetKeyDown(KeyCode.Space))
            {
                setGameState(numPlayersState);
                //howManyPlayers.SetActive(true);
                return;
            }
            return;
        }

        if (state == numPlayersState)
        {
            //print("In NumPlayersState");

            //if "one" pressed, numPlayers = 1; etc.
            //Once number of players has been selected, go to next state
            //This action is handled by the button's events defined in the Unity editor

            return;
        }

        if (state == playerNameState)
        {
            if (playersCreated >= numPlayers && numPlayers > 0)
            {
                if (numPlayers > 0)
                {
                    setGameState(readyState);
                }
            }
            return;
        }

        if (state == playerQuadState)
        {
            //selectQuadrant.active = true;
            return;
        }

        if (state == readyState)
        {
            if (Input.GetKeyDown(KeyCode.Return))
            {
                setGameState(startGameAnimationState);
            }
            return;
        }
        if (state == startGameAnimationState)
        {
            //do things here.  Interpolate camera position.
            bool ready = mainCam.smoothCameraTransition(playerManager.playerLocation(), Quaternion.Euler(new Vector3(60, 0, 0)), 50);
            print("Is ready? " + ready);
            if (ready)
            {
                print("Ready to start turn");
                HUD.SetActive(true);
                setGameState(playerRollDiceState);
            }
            return;
        }

        if (state == playerRollDiceState)
        {
            //start of player's turn

            if (Input.GetKeyDown(KeyCode.Space))
            {
                playerManager.currentRollDice();

                setGameState(playerChooseSpaceState);
            }
            return;
        }

        if (state == playerChooseSpaceState)
        {
            //transition to nextPlayerTransitionState if the player has no steps remaining.

            //if(NumSteps > 0){
            int steps = 1;

            if (Input.GetKeyDown(KeyCode.LeftArrow))
            {
                steps = playerManager.currentTryToStepLeft();
            }
            if (Input.GetKeyDown(KeyCode.DownArrow))
            {
                steps = playerManager.currentTryToStepDown();
            }
            if (Input.GetKeyDown(KeyCode.RightArrow))
            {
                steps = playerManager.currentTryToStepRight();
            }
            if (Input.GetKeyDown(KeyCode.UpArrow))
            {
                steps = playerManager.currentTryToStepUp();
            }

            if (steps <= 0)
            {
                mainCam.cameraFollowAvatar = false;
                playerManager.nextPlayer();
                setGameState(nextPlayerTransitionState);
            }
            return;
        }

        if (state == showPlayerCardsState)
        {
            //display the cards that the player has in hand
            return;
        }

        if (state == showPlayerStandingsState)
        {
            //show player rankings
            return;
        }

        if (state == nextPlayerTransitionState)
        {
            bool cameraAtNextPlayer = mainCam.smoothCameraTransition(playerManager.playerLocation(), Quaternion.Euler(new Vector3(60, 0, 0)), 50);

            if (cameraAtNextPlayer)
            {
                mainCam.cameraFollowAvatar = true;
                setGameState(playerRollDiceState);
                return;
            }
            return;
        }
    }