public void NotifyGameEnd(Vector3 cameraPosition, INexus nexus, List <Pair <uint, ClientInfo> > players) { var losingTeam = nexus.Team; foreach (var p in players) { var cam = new MoveCamera(p.Item2.Champion, cameraPosition.X, cameraPosition.Y, cameraPosition.Z, 2); _packetHandlerManager.SendPacket((int)p.Item2.UserId, cam, Channel.CHL_S2C); _packetHandlerManager.SendPacket((int)p.Item2.UserId, new HideUi(), Channel.CHL_S2C); } _packetHandlerManager.BroadcastPacket(new ExplodeNexus(nexus), Channel.CHL_S2C); var timer = new Timer(5000) { AutoReset = false }; timer.Elapsed += (a, b) => { var gameEndPacket = new GameEnd(losingTeam != TeamId.TEAM_BLUE); _packetHandlerManager.BroadcastPacket(gameEndPacket, Channel.CHL_S2C); }; timer.Start(); }