/// <summary> /// Realiza el proceso para crear una partida. /// Valida que no tenga nombre vacío y el jugador no haya creado una partida con ese mismo nombre que aun esté disponible. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Bt_Crear_Click(object sender, RoutedEventArgs e) { if (tb_NombrePartida.Text != null && tb_NombrePartida.Text.Length > 0) { ServiceSYE.PartidaClient clientePartida = new ServiceSYE.PartidaClient(new InstanceContext(new Partidas())); MainWindow mainWindow = new MainWindow(); if (mainWindow.ValidarNombreUsuario(tb_NombrePartida.Text)) { try { if (clientePartida.ValidarNombrePartida(tb_NombrePartida.Text + "-" + jugador.NombreUsuario)) { CrearJuego(clientePartida); } else { MessageBox.Show(Properties.Resources.mb_NombrePartidaOcupado, Properties.Resources.mb_Alerta); } } catch (CommunicationException) { MessageBox.Show(Properties.Resources.mb_ConexionServidor, Properties.Resources.mb_Alerta); } } else { MessageBox.Show(Properties.Resources.mb_CaracteresInvalidosPartida, Properties.Resources.mb_Ayuda); } } else { MessageBox.Show(Properties.Resources.mb_NombreVacio, Properties.Resources.mb_Alerta); } }
/// <summary> /// Constructor de la ventana Espera. /// </summary> /// <param name="jugador"> /// Objeto jugador que se mandó desde el menú. /// </param> /// <param name="partida"> /// Objeto partida que se mandó desde el menú. /// </param> /// /// <param name="clientePartida"> /// Conexión con el servidor para acceder a los métodos que proporciona sobre las partidas. /// </param> /// /// <param name="clienteChat"> /// Conexión con el servidor para acceder a los métodos que proporciona sobre el chat. /// </param> /// /// <param name="partidas"> /// Objeto mensajes que implementa los métodos que reciben respuesta del servidor, sobre las partidas. /// </param> /// /// <param name="mensajes"> /// Objeto mensajes que implementa los métodos que reciben respuesta del servidor, sobre el chat. /// </param> public Partida(ServiceSYE.Jugador jugador, ServiceSYE.Partida partida, ServiceSYE.PartidaClient clientePartida, ServiceSYE.ChatClient clienteChat, Partidas partidas, Mensajes mensajes) { InitializeComponent(); this.Title = this.Title + " - " + jugador.NombreUsuario; partidas.Partida = this; mensajes.Partida = this; this.Jugador = jugador; this.clienteChat = clienteChat; this.clientePartida = clientePartida; this.clienteJugador = new ServiceSYE.JugadorClient(); try { this.PartidaEnJuego = clientePartida.ObtenerPartida(partida.Nombre); DispatcherTimer temporizadorInicio = new DispatcherTimer(); temporizadorInicio.Interval = new TimeSpan(0, 0, 5); temporizadorInicio.Tick += (a, b) => { temporizadorInicio.Stop(); if (PartidaEnJuego.JugadoresPartida.ElementAt(0).Value.NombreUsuario.Equals(jugador.NombreUsuario)) { try { clienteChat.EnviarMensajePartida("", PartidaEnJuego.Nombre, 1); } catch (CommunicationException) { EnviarMensajeError(); } } }; temporizadorInicio.Start(); CargarTablero(); CargarBonus(); this.Jugador = ObtenerTurno(PartidaEnJuego.JugadoresPartida, this.Jugador); EnviarMensajeTurnos(); ValidarConectado(); } catch (CommunicationException) { EnviarMensajeError(); } }
/// <summary> /// Constructor de la ventana UnirsePartida. /// </summary> /// <param name="menuPrincipal"> /// Ventana MenúPrincipal de la cual se mandó a llamar la ventana. /// </param> /// <param name="jugador"> /// Objeto jugador que se mandó desde el menú. /// </param> public UnirsePartida(MenuPrincipal menuPrincipal, ServiceSYE.Jugador jugador) { InitializeComponent(); this.menuPrincipal = menuPrincipal; this.jugador = jugador; Partidas partidas = new Partidas(); partidas.UnirsePartida = this; InstanceContext contexto = new InstanceContext(partidas); clientePartida = new ServiceSYE.PartidaClient(contexto); try { clientePartida.VerPartidas(jugador.NombreUsuario); } catch (CommunicationException) { MessageBox.Show(Properties.Resources.mb_ConexionServidor, Properties.Resources.mb_Alerta); } CargarPartidas(); }
/// <summary> /// Crea la partida. /// Si el jugador no tiene los puntos suficientes manda un mensaje de alerta. /// </summary> /// <param name="clientePartida"> /// Referencia al servidor. /// </param> private void CrearJuego(ServiceSYE.PartidaClient clientePartida) { if (jugador.Estadisticas.Puntos >= 200) { ServiceSYE.Partida partida = new ServiceSYE.Partida { Nombre = tb_NombrePartida.Text + "-" + jugador.NombreUsuario, Dificultad = cb_Dificultad.Text, Turno = 1, }; clientePartida.CrearPartida(partida); menuPrincipal.UnirseAPartida(partida); this.Close(); } else { MessageBox.Show(Properties.Resources.mb_PuntosInsuficientes, Properties.Resources.mb_Alerta); } }