Пример #1
0
        /*
         * Class specific methods
         */
        public void OnNewTradeActivity(PlayerTrade playerTrade, TradeActions tradeAction)
        {
            if (tradeAction == TradeActions.TradeOffered)
            {
                return;
            }

            MyNetworkedAgent.OnNewTradeActivity(playerTrade, tradeAction);
        }
Пример #2
0
        /*
         * Networked
         */
        public override void StartGame()
        {
            MyNetworkedAgent.StartGame();
            localGameHandler.StartGame();

            if (PhotonNetwork.IsMasterClient)
            {
                UpdateReadyCounter();
            }
        }
Пример #3
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);
            }
        }
Пример #4
0
 /*
  * Networked
  */
 public override void NewTrade(Direction direction, int directionIndex, PlayerTags playerTagsReceiving, PlayerTags playerTagsOffering, int tradeId)
 {
     MyNetworkedAgent.NewTrade(direction, directionIndex, playerTagsReceiving, playerTagsOffering, tradeId);
     localGameHandler.NewTrade(direction, directionIndex, playerTagsReceiving, playerTagsOffering, tradeId);
 }
Пример #5
0
 private void UpdateReadyCounter()
 {
     MyNetworkedAgent.UpdateRemoteReadyCounter($"{_numberOfReadyPlayers}/{localGameHandler.numberOfSpawnedPlayers} Ready");
 }
Пример #6
0
 public override PlayerTags SpawnNewPlayer()
 {
     MyNetworkedAgent.SpawnNewPlayer();
     return(localGameHandler.SpawnNewPlayer());
 }
Пример #7
0
 public override void SpawnNewPlayer(PlayerTags playerTag)
 {
     MyNetworkedAgent.SpawnNewPlayer(playerTag);
     localGameHandler.SpawnNewPlayer(playerTag);
 }
Пример #8
0
 /*
  * Networked
  */
 public override void SpawnMaxPlayers()
 {
     MyNetworkedAgent.SpawnMaxPlayers();
     localGameHandler.SpawnMaxPlayers();
 }
Пример #9
0
        public override IEnumerator PerformSequence()
        {
            yield return(StartCoroutine(MyNetworkedAgent.PerformSequence()));

            yield return(StartCoroutine(localGameHandler.PerformSequence()));
        }
Пример #10
0
 public override void RemoveMoveFromSequence(StoredPlayerMove move)
 {
     MyNetworkedAgent.RemoveMoveFromSequence(move);
     localGameHandler.RemoveMoveFromSequence(move);
 }
Пример #11
0
 /*
  * Networked
  */
 public override void AddMoveToSequence(PlayerTags p, Direction d, int moveId, int index)
 {
     MyNetworkedAgent.AddMoveToSequence(p, d, moveId, index);
     localGameHandler.AddMoveToSequence(p, d, moveId, index);
 }