示例#1
0
    //------------------------------------------------------------------------------------------------------------------

    /*
     * 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;
    }
示例#2
0
    //--------------------------------------------------------------------------------------------------------------

    /*
     * 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;
    }
示例#3
0
    //------------------------------------------------------------------------------------------------------------------

    /*
     * 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");
        }
    }