public static void ClientDisconnectedEventHandler(UdpClient client) { NetWerewolfPlayer player = client.GetPlayer(); player.Status = PlayerStatus.Dead; ServerInstance.Send(2, player.PlayerID); // RemoteClientDisconnected(uint) ServerInstance.Send(5, 0u, $"{player.Name} has fallen..."); try { ConnectedPlayers.Remove(player); GameInfo.Players.Remove(player); } catch { } try { NetWerewolfPlayer nextHost = ConnectedPlayers.First(); if (nextHost != null && !nextHost.IsHost) { nextHost.IsHost = true; nextHost.PlayerClient.Send(199, true); ServerInstance.Send(5, 0, $"{nextHost.Name} is now the game master."); } } catch { } // No players left to be host }
private void OnPlayerFinished(string nick) { if (ConnectedPlayers.Select(item => item.Nick).Contains(nick)) { ConnectedPlayers.First(item => item.Nick == nick).IsPlaying = false; } AvailablePlayers.Add(nick); }
private void OnUserDisconnect(string nick) { var helpPlayer = ConnectedPlayers.First(player => player.Nick == nick); ConnectedPlayers.Remove(helpPlayer); AvailablePlayers.Remove(nick); if (ChatTabs.Count == 0) { return; } var chatTab = ChatTabs.First(item => item.Header == nick); if (chatTab != null) { ChatTabs.Remove(chatTab); } }
private void OnPlayerStarted(string nick) { ConnectedPlayers.First(player => player.Nick == nick).IsPlaying = true; AvailablePlayers.Remove(nick); }