public IEnumerator EndGameCoroutine() { var combatResult = GamePlayers.OrderByDescending(x => x.playerControl.GetHealth()).ToList(); int i = 0; foreach (var player in combatResult) { managerClasification.combatResult[i] = player.playerControl.Token; ++i; } GamePlayers.Clear(); ChangePortMessage msg = new ChangePortMessage(); msg.Argument = puertoOriginal; NetworkServer.SendToAll <ChangePortMessage>(msg); yield return(new WaitForEndOfFrame()); StopServer(); while (NetworkServer.active) { yield return(new WaitForEndOfFrame()); } CombatResultMessage resultado = new CombatResultMessage(); resultado.PlayerTokens = managerClasification.combatResult; ChangePort(puertoOriginal); networkAddress = GlobalVariables.matchServerIP; StartClient(); while (!NetworkClient.isConnected) { yield return(new WaitForEndOfFrame()); } NetworkClient.Send <CombatResultMessage>(resultado); }
private void OnClientChangePortMessageHandler(ChangePortMessage msg) { string port = msg.Argument; ChangeConnection(port); }