Exemplo n.º 1
0
 public GameStatusStateMachine(GameStatusEnum gameStatus)
 {
     GameStatusStatesFactory.SetGameStateMachine(this); // Set GameStatusStateMachine in Factory
     currentGameStatusState = GameStatusStatesFactory.GetGameState(gameStatus);
     ChangeGameStatus(gameStatus);                      // To enter the currentGameStatusState
     currentGameStatusEnum = gameStatus;                // To be set after currentGameStatusState has been entered
 }
Exemplo n.º 2
0
    IEnumerator StartServiceCounterCoroutine()
    {
        yield return(delayServiceWaitForSeconds);

        currentBall  = Instantiate(ballPrefab);
        ballIsServed = true;
        GameStatusStatesFactory.GetGameStateMachine().ChangeGameStatus(GameStatusEnum.GameRunning);
    }
Exemplo n.º 3
0
 void PauseUnpause()
 {
     isGamePaused = !isGamePaused;
     if (isGamePaused == true)
     {
         GameStatusStatesFactory.GetGameStateMachine().ChangeGameStatus(GameStatusEnum.GamePaused);
     }
     else
     {
         GameStatusStatesFactory.GetGameStateMachine().BackToPreviousState();
     }
 }
Exemplo n.º 4
0
    public void ChangeGameStatus(GameStatusEnum gameStatus)
    {
        if (currentGameStatusEnum == gameStatus)
        {
            Debug.LogWarning($"GameStatusStateMachine : Trying to set an already active {currentGameStatusEnum} GameStatusState!!");
            return;
        }

        if (currentGameStatusState != null)
        {
            PreviousGameStatusEnum = currentGameStatusEnum;
            currentGameStatusEnum  = gameStatus;
            currentGameStatusState.Exit();
        }
        Debug.Log($"Game Current State : {currentGameStatusEnum}");
        currentGameStatusState = GameStatusStatesFactory.GetGameState(gameStatus);
        currentGameStatusState.Enter();
    }
Exemplo n.º 5
0
 private void GoHome()
 {
     Debug.Log("Back to Home");
     GameStatusStatesFactory.GetGameStateMachine().ChangeGameStatus(GameStatusEnum.ReadyToStart);
 }