private void OnServerCombatResultMessageHandler(NetworkConnection conn, CombatResultMessage msg) { print("Recibido CombatResultMessage: (" + msg.PlayerTokens[0] + "," + msg.PlayerTokens[1] + ")"); managerClasification.IncrementCell(msg.PlayerTokens[0], 0); // Estructura es token, {primero, segundo, tercero, puntuaciontotal} managerClasification.IncrementCell(msg.PlayerTokens[1], 2); clasificacionOrdenada = managerClasification.GetClasificacionOrdenada(); indexClasificacionActualizada++; print("rondaAJugar: " + rondaAJugar + " --- maxRondas: " + maxRondas); if ((rondaAJugar <= maxRondas && indexClasificacionActualizada == 2) || rondaAJugar > maxRondas) { clasificacionActualizada = true; indexClasificacionActualizada = 0; } conn.Send <CombatResultReceivedMessage>(new CombatResultReceivedMessage()); }
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); }