protected override void OnGameEnd() { _server.HandleGameEnded(this); if (Users.All(usr => !usr.Connected)) { return; } var winner = ValidEntities.Any() ? Users.First(usr => usr.Identifier == ValidEntities.First().PlayerIdentifier) : null; foreach (var serverUser in Users) { serverUser.Send(Packet.PacketTypeS2C.GameEnd, new GameEnd(GameIdentifier, Users.ToArray(), serverUser.Identifier == winner?.Identifier, winner)); } if (winner == null) { return; } _supervisor.GameEnded(this, winner.Login, Users.Where(usr => usr.Identifier != winner.Identifier).Select(usr => usr.Login).ToArray()); }