Beispiel #1
0
    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());
    }
Beispiel #2
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);
    }