Ejemplo n.º 1
0
    void EndGame(CustomDataClient <ClientData> winner)
    {
        playerA.onDisconnect -= OnDisconnect;
        playerB.onDisconnect -= OnDisconnect;

        GameMove.onGameMove -= RegisterMove;
        Forfeit.onForfeit   -= OnForfeit;

        onGameEnd?.Invoke(this, winner);
    }
Ejemplo n.º 2
0
    void OnClientReady(CustomDataClient <ClientData> client)
    {
        pendingClientsMutex.WaitOne();
        if (!pendingClients.Contains(client))
        {
            pendingClients.Add(client);
        }
        pendingClientsMutex.ReleaseMutex();

        client.Write(new Message(0, "Waiting for oponnent..."));
        Console.WriteLine(client.data.username + " is ready");
    }
Ejemplo n.º 3
0
    private void connectToServer()
    {
        client = new CustomDataClient <ClientData>(new ClientData(), true);
        ClientData data = client.data;

        data.skinId              = (uint)UnityEngine.Random.Range(0, 1000);
        client.data              = data;
        client.onDisconnect     += OnDisconnect;
        client.onPacketReceived += OnPacketReceived;

        StartCoroutine(TryConnect());
    }
Ejemplo n.º 4
0
 void OnGameEnd(Game game, CustomDataClient <ClientData> winner)
 {
     Console.WriteLine("ended game between " + game.playerA.data.username + " and " + game.playerB.data.username);
     if (winner != null)
     {
         Console.WriteLine(winner.data.username + " won!");
     }
     else
     {
         Console.WriteLine("they tied");
     }
     games.Remove(game);
 }
Ejemplo n.º 5
0
    public Game(CustomDataClient <ClientData> playerA, CustomDataClient <ClientData> playerB)
    {
        this.playerA = playerA;
        this.playerB = playerB;

        playerA.onDisconnect += OnDisconnect;
        playerB.onDisconnect += OnDisconnect;

        board = new uint[9];
        GameMove.onGameMove += RegisterMove;
        Forfeit.onForfeit   += OnForfeit;

        playerA.Write(new GameStart(playerB.data, true));
        playerB.Write(new GameStart(playerA.data, false));
    }
Ejemplo n.º 6
0
    private void connectToServer()
    {
        client = new CustomDataClient <ClientData>(new ClientData(), true);
        client.onDisconnect     += OnServerDisconnect;
        client.onPacketReceived += OnPacketReceived;
        IEnumerator TryConnect()
        {
            while (!client.Connect(_server, _port) && !client.connected)
            {
                Debug.Log("Failed to connect to server.");
                yield return(new WaitForSeconds(1));
            }
            onConnect?.Invoke();
            Debug.Log("Connected to server.");
        }

        StartCoroutine(TryConnect());
    }
Ejemplo n.º 7
0
 void OnClientConnected(CustomDataClient <ClientData> client)
 {
     server.Broadcast(new Message(0, client.data.username + " joined."), (object data) => { return(((ClientData)data).id != client.data.id); });
 }