//------------------------------------------------------------------------------------------------------------------ /* * METODO QUE SE EJECUTA CUANDO SE PULSA EL BOTON DE ACEPTAR LA BATALLA */ public void bAceptar() { //Ocultar panel panelPrincipal.gameObject.SetActive(false); //Indicar aceptar solicitud de batalla al contrincante refBD.getBaseDatos().GetReference("usuarios").Child(uidOponente).Child("batalla/respuesta").SetValueAsync("true"); //Indicar que esta en batalla para no recibir mas solicitudes infoPersistente.setEnBatalla(true); //Marcar la variable para empezar la partida desde el metodo update empezarPartida = true; }
//-------------------------------------------------------------------------------------------------------------- /* * METODO PARA MOSTRAR MENSAJE DE SOLICITUD DE BATALLA */ public async System.Threading.Tasks.Task crearBatalla() { string nombre = ""; await refBD.getBaseDatos().GetReference("jugadores") .GetValueAsync().ContinueWith(task => { if (task.IsFaulted) { } else if (task.IsCompleted) { DataSnapshot snapshot = task.Result; IEnumerable <DataSnapshot> posLeida = snapshot.Children; //Recorrer los resultado leidos del usuario foreach (var linea in posLeida) { //Buscar el nombre del jugador con el id de batalla if (linea.Key.ToString().Equals(infoPersistente.getPeticionBatalla())) { nombre = linea.Value.ToString(); } } } }); //Indicar que estamos en batalla infoPersistente.setEnBatalla(true); //Guardar nombre oponente infoPersistente.setNombreOponente(nombre); //Mostrar el mensaje emergente de batalla ventanaBatalla.GetComponent <Batalla>().crear(nombre, infoPersistente.getPeticionBatalla()); //A partir de la creacion del mensaje contar tiempo contarTiempo = true; }
//------------------------------------------------------------------------------------------------------------------ /* * METODO QUE SE EJECUTA REPETIDAMENTE CADA FOTOGRAMA DE LA EJECUCION */ void Update() { /////////////////////////////////////////////// RECIBIR RESPUESTAS A PETICIONES ///////////////////////////////////////////////// if (solicitado) { if (tiempoAux > 0) { tiempoAux -= Time.deltaTime; } else { //Si ha finalizado el tiempo de vida de la solicitud sin respuesta //Ocultar ventana de espera ventanaEmergente.GetComponent <VentanaEspera>().ocultar(); //Marcar como fin de solicitud solicitado = false; infoPersistente.setEnBatalla(false); //reiniciar tiempo tiempoAux = tiempoEspera; //Mostrar mensaje info string texto = "Tiempo de espera agotado"; ventanaEmergente.GetComponent <VentanaInformacion>().mostrarInfo(texto, "Aceptar"); } } else if (buscando) { if (tiempoAux > 0) { tiempoAux -= Time.deltaTime; } else { //Si ha finalizado el tiempo de vida de la busqueda sin respuesta //Ocultar ventana de espera ventanaEmergente.GetComponent <VentanaEspera>().ocultar(); //Marcar como fin de solicitud buscando = false; infoPersistente.setEnBatalla(false); //Salir de la sala creada gestionPartidas.salirSala(); //reiniciar tiempo tiempoAux = tiempoEspera; //Mostrar mensaje info string texto = "No hay ningun jugador en este momento, intentelo mas tarde"; ventanaEmergente.GetComponent <VentanaInformacion>().mostrarInfo(texto, "Aceptar"); } } if (infoPersistente.getRespuestaBatalla().Equals("true")) { //Crear Sala de juego con el nombre de mi uid gestionPartidas.crearSalaAmigo(refBD.getUsuario().UserId); //Reinicializar la respuesta refBD.getBaseDatos().GetReference("usuarios").Child(refBD.getUsuario().UserId).Child("batalla/respuesta").SetValueAsync("null"); //Establecer a nulo la respuesta para evitar que se ejecute mas de una vez infoPersistente.setRespuestaBatalla("null"); } else if (infoPersistente.getRespuestaBatalla().Equals("false")) { //Reinicializar la respuesta refBD.getBaseDatos().GetReference("usuarios").Child(refBD.getUsuario().UserId).Child("batalla/respuesta").SetValueAsync("null"); ventanaEmergente.GetComponent <VentanaEspera>().ocultar(); //Mostrar mensaje info string texto = "El oponente ha rechazado la batalla"; ventanaEmergente.GetComponent <VentanaInformacion>().mostrarInfo(texto, "Aceptar"); //Marcar como fin de solicitud solicitado = false; infoPersistente.setEnBatalla(false); infoPersistente.setRespuestaBatalla("null"); } }