private void ServerHandleBaseDeSpawned(UnitBase unitBase) { bases.Remove(unitBase); if (bases.Count > 1) { return; } int playerId = bases[0].connectionToClient.connectionId; RpcGameOver($"Player {playerId}"); ServerOnGameOver?.Invoke(); }
private void ServerHandleBaseDespawned(UnitBase unitBase) { bases.Remove(unitBase); if (bases.Count == 1) { Debug.Log("Game Over"); int playerId = bases[0].connectionToClient.connectionId; RpcGameOver($"Player {playerId}"); ServerOnGameOver?.Invoke(); } }
private void ServerHandleBaseDespawned(UnitBase unitBase) { bases.Remove(unitBase); if (bases.Count != 1) { return; } int playerID = bases[0].connectionToClient.connectionId; RpcGameOver($"Player {playerID}"); // $ is like f-strings for C# ServerOnGameOver?.Invoke(); }
private void ServerHandleBaseDespawned(UnitBase unitBase) { bases.Remove(unitBase); if (bases.Count != 1) { return; } int playerId = bases[0].connectionToClient.connectionId; // only one player base left in list, so they must be the winner RpcGameOver($"Player {playerId}"); ServerOnGameOver?.Invoke(); }
private void ServerHandleEnemyDespawned(UnitEnemy unitEnemy) { enemies.Remove(unitEnemy); if (enemies.Count != 1) { return; } int playerId = enemies[0].connectionToClient.connectionId; RpcGameOver($"Player {playerId}"); ServerOnGameOver?.Invoke(); }
private void DespawnedHeadquarter(Headquarter headquarter) { _headquarters.Remove(headquarter); if (_headquarters.Count != 1) { return; } //else int winnerPlayerID = _headquarters[0].connectionToClient.connectionId; Debug.Log("Game Finished only one player left !!!"); CilentRpcGameOver($"Winner : Player {winnerPlayerID}"); ServerOnGameOver?.Invoke(); }
private void ServerHandleBaseDespawned(UnitBase unitBase) { bases.Remove(unitBase); //if is not only one base don't continue in code if (bases.Count != 1) { return; } // Debug.Log("GAME OVER!"); int playerId = bases[0].connectionToClient.connectionId; RpcGameOver($"Player {playerId}"); ServerOnGameOver?.Invoke(); }
void ServerHandleBaseDespawned(UnitBase unitBase) { //if (this == null) { return; } unitBases.Remove(unitBase); if (unitBases.Count != 1) { return; } int playerID = unitBases[0].connectionToClient.connectionId; RpcGameOver("Player " + playerID); ServerOnGameOver?.Invoke(); }
private void ServerHandleBaseDespawn(Base b) { bases.Remove(b); if (bases.Count != 1) { return; } // TODO: if you play twice in a row, game over manager exception here. // Not sure why, could be action event handlers aren't cleared properly. // Shouldn't be the case since scene is reloaded in between. string name = bases[0].connectionToClient.identity.GetComponent <Player>().GetDisplayName(); RpcGameOver(name); ServerOnGameOver?.Invoke(); }
//Whenever A Base DeSpawned Remove Base From Bases List private void ServerHandleBaseDeSpawned(UnitBase unitBase) { bases.Remove(unitBase); if (bases.Count != 1) { return; } //Get Winner Id int playerId = bases[0].connectionToClient.connectionId; //Show Who Winned The Game RpcGameOver($"Player {playerId}"); ServerOnGameOver?.Invoke(); }
private void ServerHandleBaseDespawned(UnitBase unitBase) { // workaround for GameOverHandler Destroyed But You Are Still Trying To Acces it // which occurs during the second playthrough. Note this seems to occur only if the host/client // destroy's the client base on the second playthrough. if (this == null) { return; } bases.Remove(unitBase); if (bases.Count != 1) { return; } int playerId = bases[0].connectionToClient.connectionId; RpcGameOver($"Player {playerId}"); ServerOnGameOver?.Invoke(); }