예제 #1
0
    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);
    }
예제 #2
0
    private void OnClientChangePortMessageHandler(ChangePortMessage msg)
    {
        string port = msg.Argument;

        ChangeConnection(port);
    }