Ejemplo n.º 1
0
        /*
         * Networked
         */
        public override void OnReadyStateChanged(bool state, PlayerTags player)
        {
            if (PhotonNetwork.IsMasterClient)
            {
                GUIEvents.current.OnPlayerReadyNotify(state, player);
                switch (state)
                {
                case true:
                    _numberOfReadyPlayers++;
                    break;

                case false:
                    _numberOfReadyPlayers--;
                    break;
                }

                /*
                 * This is a stupid network fix. Basically, all client will report back to
                 * the master and say they are not ready. At the same time, the master itself will also set
                 * players to not be ready. The result is that the master thinks that -4 players are ready
                 * after a sequence have been played, which should be 0.
                 */
                if (_numberOfReadyPlayers < 0)
                {
                    _numberOfReadyPlayers = 0;
                }

                UpdateReadyCounter();

                if (_numberOfReadyPlayers == localGameHandler.numberOfSpawnedPlayers)
                {
                    StartCoroutine(MyNetworkedAgent.PerformSequence());
                    _numberOfReadyPlayers = 0;
                }
            }

            if (!PhotonNetwork.IsMasterClient)
            {
                MyNetworkedAgent.OnReadyStateChanged(state, player);
            }
        }
Ejemplo n.º 2
0
        public override IEnumerator PerformSequence()
        {
            yield return(StartCoroutine(MyNetworkedAgent.PerformSequence()));

            yield return(StartCoroutine(localGameHandler.PerformSequence()));
        }