/* * Class specific methods */ public void OnNewTradeActivity(PlayerTrade playerTrade, TradeActions tradeAction) { if (tradeAction == TradeActions.TradeOffered) { return; } MyNetworkedAgent.OnNewTradeActivity(playerTrade, tradeAction); }
/* * Networked */ public override void StartGame() { MyNetworkedAgent.StartGame(); localGameHandler.StartGame(); if (PhotonNetwork.IsMasterClient) { UpdateReadyCounter(); } }
/* * 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); } }
/* * 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); }
private void UpdateReadyCounter() { MyNetworkedAgent.UpdateRemoteReadyCounter($"{_numberOfReadyPlayers}/{localGameHandler.numberOfSpawnedPlayers} Ready"); }
public override PlayerTags SpawnNewPlayer() { MyNetworkedAgent.SpawnNewPlayer(); return(localGameHandler.SpawnNewPlayer()); }
public override void SpawnNewPlayer(PlayerTags playerTag) { MyNetworkedAgent.SpawnNewPlayer(playerTag); localGameHandler.SpawnNewPlayer(playerTag); }
/* * Networked */ public override void SpawnMaxPlayers() { MyNetworkedAgent.SpawnMaxPlayers(); localGameHandler.SpawnMaxPlayers(); }
public override IEnumerator PerformSequence() { yield return(StartCoroutine(MyNetworkedAgent.PerformSequence())); yield return(StartCoroutine(localGameHandler.PerformSequence())); }
public override void RemoveMoveFromSequence(StoredPlayerMove move) { MyNetworkedAgent.RemoveMoveFromSequence(move); localGameHandler.RemoveMoveFromSequence(move); }
/* * 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); }