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; } }