Esempio n. 1
0
    public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
    {
        if (stream.IsWriting)
        {
            if (PhotonNetwork.IsMasterClient)
            {
                stream.SendNext(currentGameTime);
                stream.SendNext((int)CurrentGameTimeState);
                stream.SendNext(countdownTime);
                stream.SendNext(notifiedCurrentGameTime);
            }
        }
        else
        {
            if (!PhotonNetwork.IsMasterClient)
            {
                currentGameTime = (float)stream.ReceiveNext();

                GameTimeState syncedState = (GameTimeState)stream.ReceiveNext();
                if (syncedState != CurrentGameTimeState)
                {
                    CurrentGameTimeState = syncedState;
                }

                countdownTime           = (float)stream.ReceiveNext();
                notifiedCurrentGameTime = (bool)stream.ReceiveNext();
            }
        }
    }
Esempio n. 2
0
 private void HandleState_Ready()
 {
     if (!EnoughPeopleToStart())
     {
         CurrentGameTimeState = GameTimeState.WaitingForPlayers;
     }
 }
Esempio n. 3
0
 private void HandleState_WaitingForPlayers()
 {
     if (EnoughPeopleToStart())
     {
         CurrentGameTimeState = GameTimeState.Ready;
     }
 }
Esempio n. 4
0
 private void Start()
 {
     // First one to join.
     if (PhotonNetwork.IsMasterClient)
     {
         CurrentGameTimeState = GameTimeState.WaitingForPlayers;
     }
 }
Esempio n. 5
0
 private void HandleState_Ending()
 {
     countdownTime -= Time.deltaTime;
     if (countdownTime <= 0)
     {
         CurrentGameTimeState = GameTimeState.WaitingForPlayers;
     }
 }
Esempio n. 6
0
    private void HandleState_Starting()
    {
        countdownTime -= Time.deltaTime;
        if (countdownTime <= 0)
        {
            StartMatch();
        }

        if (!EnoughPeopleToStart())
        {
            CurrentGameTimeState = GameTimeState.WaitingForPlayers;
            countdownTime        = 0;
        }
    }
Esempio n. 7
0
    private void StartMatch()
    {
        if (CurrentGameTimeState == GameTimeState.InProgress)
        {
            return;
        }

        currentGameTime      = GAME_TIME_IN_SECONDS;
        CurrentGameTimeState = GameTimeState.InProgress;

        if (PhotonNetwork.IsMasterClient)
        {
            NotificationManager.instance.NewNotification("<color=red>Match Started!");
        }
    }
Esempio n. 8
0
    private void EndMatch()
    {
        if (CurrentGameTimeState == GameTimeState.Ending)
        {
            return;
        }

        currentGameTime      = 0;
        countdownTime        = endGameCountdownTime;
        CurrentGameTimeState = GameTimeState.Ending;

        if (PhotonNetwork.IsMasterClient)
        {
            NotificationManager.instance.NewNotification("<color=red>Match Ended!");
        }
    }
Esempio n. 9
0
    private void TryStartMatch()
    {
        if (EnoughPeopleToStart())
        {
            if (CurrentGameTimeState != GameTimeState.Starting)
            {
                CurrentGameTimeState = GameTimeState.Starting;
            }

            if (PhotonNetwork.IsMasterClient)
            {
                countdownTime = startGameCountdownTime;
            }
        }
        else
        {
            if (CurrentGameTimeState != GameTimeState.WaitingForPlayers)
            {
                CurrentGameTimeState = GameTimeState.WaitingForPlayers;
            }
        }
    }
Esempio n. 10
0
    public void ChangeGameState(GameTimeState gameState)
    {
        this.gameState = gameState;

        if (this.gameState == GameTimeState.Pause)
        {
            pauseMenu.SetActive(true);
            Time.timeScale   = 0;
            Cursor.lockState = CursorLockMode.None;
        }
        else if (this.gameState == GameTimeState.Moving)
        {
            pauseMenu.SetActive(false);
            Time.timeScale   = 1;
            Cursor.lockState = CursorLockMode.Locked;
        }
        else if (this.gameState == GameTimeState.Talking)
        {
            pauseMenu.SetActive(false);
            Time.timeScale   = 1;
            Cursor.lockState = CursorLockMode.None;
        }
    }
Esempio n. 11
0
 public SChangeSubStateAckMessage(GameTimeState state)
 {
     State = state;
 }
Esempio n. 12
0
 public GameRefreshGameRuleInfoAckMessage(GameState _GameState, GameTimeState _GameTimeState, int _ElapsedTime)
 {
     GameState     = _GameState;
     GameTimeState = _GameTimeState;
     ElapsedTime   = _ElapsedTime;
 }
Esempio n. 13
0
 public MustBeTimeState(GameTimeState state)
 {
     _state = state;
 }