void EndGame(CustomDataClient <ClientData> winner) { playerA.onDisconnect -= OnDisconnect; playerB.onDisconnect -= OnDisconnect; GameMove.onGameMove -= RegisterMove; Forfeit.onForfeit -= OnForfeit; onGameEnd?.Invoke(this, winner); }
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"); }
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()); }
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); }
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)); }
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()); }
void OnClientConnected(CustomDataClient <ClientData> client) { server.Broadcast(new Message(0, client.data.username + " joined."), (object data) => { return(((ClientData)data).id != client.data.id); }); }