예제 #1
0
    //------------------------------------------------------------------------------------------------------------------

    /*
     * METODO QUE SE EJECUTA AL INICIO DE LA EJECUCIÓN PARA REALIZAR REFERENCIAS
     */
    void Awake()
    {
        //Obtener referencias
        infoPersistente = GameObject.Find("InfoPersistente").GetComponent <InfoPersistente>();
        refBD           = GameObject.Find("ReferenciaBD").GetComponent <ReferenciaBaseDatos>();

        //Resetear los nodos de juego de la base de datos
        infoPersistente.setJugando(true);
        infoPersistente.setPeticionBatalla("null");
        infoPersistente.setRespuestaBatalla("null");
        refBD.getBaseDatos().GetReference("usuarios").Child(refBD.getUsuario().UserId).Child("batalla/peticion").SetValueAsync("null");
        refBD.getBaseDatos().GetReference("usuarios").Child(refBD.getUsuario().UserId).Child("batalla/respuesta").SetValueAsync("null");

        //Inicializacion
        txtCuentaAtras.text = tiempoCuentaAtras.ToString("f0");
        panelCuentaAtras.gameObject.SetActive(false);
        txtCuentaAtras.text = tiempoReaparecer.ToString("f0");
        panelReaparecer.gameObject.SetActive(false);
    }
예제 #2
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");
        }
    }