Ejemplo n.º 1
0
    public void LogroDiasSeguidosCompletado()
    {
        //Llamar al metodo inicial del LogrosManager para que cree las entidades de los logros y las annada al array
        // !!! descomentar la llamada a ComprobarDiasSeguidos
        LogrosManager.InitializeAfterSceneLoad();

        //Guardar ultima fecha
        PlayerPrefs.SetString("UltimoDia", "26/01/2019 12:15:05");
        //Fecha de "hoy"
        DateTime hoy = Convert.ToDateTime("27/01/2019 17:30:15");

        //Poner numero de dias seguidos actuales a 2 para que se cumpla el primer nivel del logro
        PlayerPrefs.SetInt("Nivel0", 1);
        PlayerPrefs.SetFloat("DiasSeguidos", 2.0f);

        //Cantidad de monedas antes de comprobar el logro
        int monedas_prev = PlayerPrefs.GetInt("Monedas");

        //Lamar al metodo de LogrosManager pasandole la fecha de "hoy"
        ComprobacionesDiarias.ComprobarDiasSeguidos(hoy);

        //Cantidad de monedas despues de comprobar el logro
        int monedas_nuevo = PlayerPrefs.GetInt("Monedas");

        //Comprobar que el numero de monedas se ha incrementado al recibir la recompensa
        Assert.That(monedas_nuevo, Is.GreaterThan(monedas_prev));
    }
Ejemplo n.º 2
0
    //Metodo para comprar un juego
    private void DesbloquearJuego()
    {
        audioSource.PlayOneShot(comprarClip);

        //Restar monedas
        int monedasActuales = PlayerPrefs.GetInt("Monedas");

        PlayerPrefs.SetInt("Monedas", monedasActuales - precioJuego);

        //Guardar juego como desbloqueado
        PlayerPrefs.SetInt(nombreJuego + "Desbloqueado", 1);

        //Desactivar boton desbloquear y precio
        transform.Find("Btn_Desbloquear").gameObject.SetActive(false);
        transform.Find("Precio").gameObject.SetActive(false);
        //Activar boton jugar, desactivado anteriormente
        transform.Find("Btn_Jugar").gameObject.SetActive(true);

        //LOGRO
        //Incrementar el numero de juegos desbloqueados
        float nJuegos = PlayerPrefs.GetFloat("JuegosConseguidos");

        PlayerPrefs.SetFloat("JuegosConseguidos", nJuegos + 1);
        //Comprobar si se ha completado el logro de objetos (id=2)
        LogrosManager.ComprobarLogroCompletado(3);
    }
Ejemplo n.º 3
0
    protected override void OnUpdate()
    {
        //Entidades que poseen los componentes LogroComponent y ComprobarLogroComponent
        EntityArray logros = m_Logros.GetEntityArray();
        //Datos de los LogroComponent obtenidos
        var            logroComponents = m_Logros.GetComponentDataArray <LogroComponent>();
        bool           completado;
        LogroComponent componenteAux;

        for (int i = 0; i < logros.Length; i++)
        {
            componenteAux = logroComponents[i];
            completado    = ComprobarLogroCompletado(componenteAux);

            //Subir el nivel en la entidad para la ui
            if (completado)
            {
                EntityManager.SetComponentData(logros[i], new LogroComponent {
                    id             = componenteAux.id,
                    requisitoBase  = componenteAux.requisitoBase,
                    recompensaBase = componenteAux.recompensaBase,
                    nivel          = componenteAux.nivel + 1,
                    factor         = componenteAux.factor
                });

                //Mostrar el pop-up de logro completado
                LogrosManager.PopUpLogroCompletado(componenteAux.id, componenteAux.nivel, componenteAux.recompensaBase * componenteAux.nivel);
            }

            EntityManager.RemoveComponent(logros[i], typeof(ComprobarLogroComponent));
        }
    }
Ejemplo n.º 4
0
    //Rellena la barra de progreso del logro según el porcentaje de requisitos cumplidos
    private void RellenarBarraProgreso(LogroComponent componenteAux)
    {
        Image fillBarraProgreso;

        int idLogro = componenteAux.id;

        fillBarraProgreso = GameObject.Find("Fill" + idLogro).GetComponent <Image>();

        string nombreRequisito = LogrosManager.GetNombreRequisito(idLogro);
        float  valorRequisito;

        //Si aun no hay ningun valor almacenado para el requisito del logro, se obtiene el valor
        // por defecto, que en el caso de los dias seguidos es 1 (porque cuenta el primer dia que abre la app)
        if (nombreRequisito.Equals("DiasSeguidos"))
        {
            valorRequisito = PlayerPrefs.GetFloat(nombreRequisito, 1);
        }
        else
        {
            valorRequisito = PlayerPrefs.GetFloat(nombreRequisito, 0);
        }

        //Calcular la proporcion con la que hay que rellenar la barra
        float requisito  = componenteAux.requisitoBase * componenteAux.nivel * componenteAux.factor;
        float fillAmount = (float)valorRequisito / requisito;

        fillBarraProgreso.fillAmount = fillAmount;

        //Debug.Log("Id: "+idLogro+", "+nombreRequisito+": "+valorRequisito+"/"+requisito);
    }
Ejemplo n.º 5
0
    //Metodo para comprar un item si se tienen las monedas suficientes
    public void DesbloquearItem(string tipo, int id)
    {
        int precio  = listas[tipo][id].precio;
        int monedas = PlayerPrefs.GetInt("Monedas");

        //Comprobar que se tienen monedas suficientes
        if (precio <= monedas)
        {
            listas[tipo][id].desbloqueado = true;
            PlayerPrefs.SetInt("Monedas", monedas - precio); //Restar monedas gastadas

            //Actualizar monedas en pantalla
            DataManager.instance.ActualizarMonedas();

            //Guardar los cambios en el JSON
            SaveItemsData(tipo);
            //Ocultar el pop-up de info item
            infoItem.SetActive(false);
            //Refrescar la lista de items en pantalla
            ItemsList.instance.ReloadList(tipo);

            //Incrementar el numero de objetos desbloqueados
            float nObjetos = PlayerPrefs.GetFloat("ObjetosConseguidos");
            PlayerPrefs.SetFloat("ObjetosConseguidos", nObjetos + 1);
            //Comprobar si se ha completado el logro de objetos (id=2)
            LogrosManager.ComprobarLogroCompletado(2);
        }
    }
Ejemplo n.º 6
0
    //Metodo para comprobar ha pasado un solo dia desde la ultima vez que se abrio la app,
    // para el logro de dias seguidos
    public static void ComprobarDiasSeguidos(DateTime hoy)
    {
        //Informacion para obtener la fecha en el formato de España
        CultureInfo CI = new CultureInfo("es-ES"); //Español

        CultureInfo.CurrentCulture = CI;

        //Recuperar ultimo dia guardado (por defecto, si no hay valor guardado, es la fecha actual)
        DateTime ultimoDia  = Convert.ToDateTime(PlayerPrefs.GetString("UltimoDia", hoy.ToString()));
        TimeSpan diferencia = hoy.Subtract(ultimoDia); //Calcular la diferencia entre el ultimo dia guardado y el actual

        //Debug.Log("Hoy: " + hoy + ", ultimo: " + ultimoDia + ", diferencia: " + diferencia.Days);

        //Si hay 1 dia entero de diferencia, o si hay menos de 24h de diferencia pero los dias son distintos
        // es que se ha abierto la app en dias seguidos
        if (diferencia.Days == 1 || (diferencia.Days < 1 && hoy.Day != ultimoDia.Day))
        {
            PlayerPrefs.SetFloat("DiasSeguidos", PlayerPrefs.GetFloat("DiasSeguidos", 1) + 1);

            //Comprobar si se ha cumplido el logro de dias seguidos (id = 0)
            LogrosManager.ComprobarLogroCompletado(0);
        }
        //Si han pasado mas de 24h / 1 dia, se pierde la racha de dias seguidos
        else if (diferencia.Days > 1)
        {
            //Reiniciar numero de dias seguidos
            PlayerPrefs.SetFloat("DiasSeguidos", 1);
        }

        //Guardar la fecha actual
        PlayerPrefs.SetString("UltimoDia", hoy.ToString());
    }
Ejemplo n.º 7
0
    //Marcar la tarea como completada
    public void CompleteTask()
    {
        //Eliminarla de la lista
        DeleteTask();
        //Sumar 5 monedas por tarea completada
        int monedasActuales = PlayerPrefs.GetInt("Monedas");

        PlayerPrefs.SetInt("Monedas", monedasActuales + 1);

        //Aumentar el numero de tareas completadas
        float tareasCompletadas = PlayerPrefs.GetFloat("TareasCompletadas");

        PlayerPrefs.SetFloat("TareasCompletadas", tareasCompletadas + 1);

        //Recuperar de la bd tareas almacenadas hoy
        EstadisticasDB estadisticasDB  = new EstadisticasDB();
        string         fechaActual     = DateTime.Today.Date.ToShortDateString();
        int            tareasGuardadas = 0;

        System.Data.IDataReader reader = estadisticasDB.BuscarTareasPorFecha(fechaActual);
        while (reader.Read())
        {
            tareasGuardadas = reader.GetInt32(0);
        }
        //Sumar minutos y guardarlos
        tareasGuardadas++;
        estadisticasDB.GuardarTareasPorFecha(fechaActual, tareasGuardadas);

        estadisticasDB.close();

        //Comprobar logro (id = 4)
        LogrosManager.ComprobarLogroCompletado(4);
    }
Ejemplo n.º 8
0
    //Al terminar la partida, se muestra el pop-up con los puntos totales conseguidos
    public void FinJuego()
    {
        gameOver = true;
        StopMusic();

        var PopUpJuego = Instantiate(Resources.Load("Prefabs/PopUpJuego_Puntos") as GameObject, canvas);

        var PPPanel = PopUpJuego.transform.Find("PanelPopUp");

        PPPanel.transform.Find("TituloPopUp").GetComponent <Text>().text = "¡Fin del juego!";

        //Info del popup
        PPPanel.transform.Find("TotalPopUp").GetComponent <Text>().text = puntos.ToString();

        //Record
        int recordActual = PlayerPrefs.GetInt("RecordNova", 0);

        if (puntos > recordActual)
        {
            PlayerPrefs.SetInt("RecordNova", puntos);
            PPPanel.transform.Find("RecordPopUp").GetComponent <Text>().text = "¡Nuevo récord!";

            //Al superar el record, comprobar si tambien se ha alcanzado el logro
            //Guardar nuevo numero de puntos
            PlayerPrefs.SetFloat("PuntosNova", puntos);
            //Comprobar si se ha completado el logro nova (id = 7)
            LogrosManager.ComprobarLogroCompletado(7);
        }
        else
        {
            PPPanel.transform.Find("RecordPopUp").GetComponent <Text>().text = "Record: " + recordActual;
        }
    }
Ejemplo n.º 9
0
 void Awake()
 {
     if (m_instance == null)
     {
         m_instance = this;
         m_instance.InicializarListasLogros();
     }
 }
Ejemplo n.º 10
0
    public void CrearTodasEntidadesLogros()
    {
        LogrosManager.InitializeAfterSceneLoad();

        //Comprobar que hay 5 entidades
        int n_entidades = m_Manager.GetAllEntities().Length;

        Assert.That(n_entidades, Is.EqualTo(8));
        Assert.That(LogrosManager.entidadesLogros.Count, Is.EqualTo(8));
    }
Ejemplo n.º 11
0
    // Use this for initialization
    void Start()
    {
        monedas.text   = Tempo_UltimaEscena.GetMonedas().ToString();
        categoria      = "estudio";
        estadisticasDB = new EstadisticasDB();
        fechaActual    = DateTime.Today.Date.ToShortDateString();

        //Reproducir sonido al terminar la cuenta atras
        audioSource.PlayOneShot(finTempo);

        //Antes de cargar esta escena, en el metodo EndCDT de CDAux, se han sumado los ultimos minutos
        // al numero total. Al iniciar esta escena, hay que comprobar si se ha cumplido el logro de tiempo
        //Se comprueba al cargar esta escena y no en la anterior para poder mostrar el pop up
        //Comprobar el logro de horas seguidas
        LogrosManager.ComprobarLogroCompletado(1);
    }
Ejemplo n.º 12
0
        //Al terminar el juego, el FinJuegoSystem llama a este metodo para mostrar por pantalla
        // un pop-up con toda la informacion de la partida
        public void FinJuego()
        {
            /*NativeArray<Entity> allEntities = entityManager.GetAllEntities();
             * entityManager.DestroyEntity(allEntities);
             * allEntities.Dispose();*/

            //Detener scroll fondo
            bootstrap_NV.fondo.GetComponent <ScrollFondo>().enabled = false;

            var PopUpJuego = Instantiate(Resources.Load("Prefabs/PopUpJuego") as GameObject, canvas);

            var PPPanel = PopUpJuego.transform.Find("PanelPopUp");

            PPPanel.transform.Find("TituloPopUp").GetComponent <Text>().text = "¡Fin del juego!";

            //Info del popup
            PPPanel.transform.Find("MonedasPopUp").GetComponent <Text>().text = bootstrap_NV.n_monedas.ToString();
            PPPanel.transform.Find("TiempoPopUp").GetComponent <Text>().text  = bootstrap_NV.n_puntos.ToString();
            int puntosTotales = (int)bootstrap_NV.n_puntos * 2 + bootstrap_NV.n_monedas * 5;

            PPPanel.transform.Find("PuntosPopUp").GetComponent <Text>().text = "Total: " + puntosTotales;

            //Record
            int recordActual = PlayerPrefs.GetInt("RecordNaves", 0);

            if (puntosTotales > recordActual)
            {
                PlayerPrefs.SetInt("RecordNaves", puntosTotales);
                PPPanel.transform.Find("RecordPopUp").GetComponent <Text>().text = "¡Nuevo récord!";

                //Al superar el record, comprobar si tambien se ha alcanzado el logro
                //Guardar nuevo numero de puntos
                PlayerPrefs.SetFloat("PuntosSlinger", puntosTotales);
                //Comprobar si se ha completado el logro slinger (id = 6)
                LogrosManager.ComprobarLogroCompletado(6);
            }
            else
            {
                PPPanel.transform.Find("RecordPopUp").GetComponent <Text>().text = "Record: " + recordActual;
            }

            //Sumar las monedas obtenidas
            int monedasActuales = PlayerPrefs.GetInt("Monedas");

            PlayerPrefs.SetInt("Monedas", monedasActuales + bootstrap_NV.n_monedas);
        }
Ejemplo n.º 13
0
    // Use this for initialization
    void Start()
    {
        entityManager = World.Active.GetOrCreateManager <EntityManager>();

        entidadesLogros = LogrosManager.GetListaEntidades();

        LogroComponent componenteAux;

        //Actualiza la UI por cada entidad de Logro existente, con los datos almacenados en su componentes
        foreach (Entity logro in entidadesLogros)
        {
            componenteAux = entityManager.GetComponentData <LogroComponent>(logro);
            RellenarBarraProgreso(componenteAux);
            ActualizarRequisito(componenteAux);
            ActualizarRecompensa(componenteAux);
        }
    }
Ejemplo n.º 14
0
    public void DiasSeguidos()
    {
        //Guardar ultima fecha
        PlayerPrefs.SetString("UltimoDia", "26/01/2019 12:15:05");
        //Fecha de "hoy"
        DateTime hoy = Convert.ToDateTime("27/01/2019 17:30:15");
        //Numero de dias seguidos antes de hacer la comprobacion
        float diasSeguidos_prev = PlayerPrefs.GetFloat("DiasSeguidos");

        //Lamar al metodo de LogrosManager pasandole la fecha de "hoy"
        LogrosManager.InitializeAfterSceneLoad();
        ComprobacionesDiarias.ComprobarDiasSeguidos(hoy);

        //Nuevo numero de dias seguidos
        float diasSeguidos_nuevo = PlayerPrefs.GetFloat("DiasSeguidos");

        //Comprobar que el numero de dias seguidos se ha incrementado en 1
        Assert.That(diasSeguidos_nuevo, Is.EqualTo(diasSeguidos_prev + 1));
    }
Ejemplo n.º 15
0
    //Actualiza en la UI los requisitos para un logro y cuantos se han cumplido
    private void ActualizarRequisito(LogroComponent componenteAux)
    {
        int idLogro = componenteAux.id;

        string nombreRequisito = LogrosManager.GetNombreRequisito(componenteAux.id);
        float  valorRequisito;

        if (nombreRequisito.Equals("DiasSeguidos"))
        {
            valorRequisito = PlayerPrefs.GetFloat(nombreRequisito, 1);
        }
        else
        {
            valorRequisito = PlayerPrefs.GetFloat(nombreRequisito, 0);
        }
        //El valor de los requisitos depende del valor base, el nivel del logro y un factor de multiplicacion
        float requisito = componenteAux.requisitoBase * componenteAux.nivel * componenteAux.factor;

        GameObject.Find("Requisito" + idLogro).GetComponent <Text>().text = (Mathf.Round(valorRequisito * 10f) / 10f) + "/" + (int)requisito;
    }
Ejemplo n.º 16
0
    //Al terminar el juego, el FinJuegoSystem llama a este metodo para mostrar por pantalla
    // un pop-up con toda la informacion de la partida
    public void FinJuego()
    {
        var PopUpJuego = Instantiate(Resources.Load("Prefabs/PopUpJuego") as GameObject, canvas);

        var PPPanel = PopUpJuego.transform.Find("PanelPopUp");

        PPPanel.transform.Find("TituloPopUp").GetComponent <Text>().text = "¡Fin del juego!";

        //Info del popup
        PPPanel.transform.Find("MonedasPopUp").GetComponent <Text>().text = bootstrap.n_monedas.ToString();
        PPPanel.transform.Find("TiempoPopUp").GetComponent <Text>().text  = ObtenerTiempoTotal();
        int puntosTotales = (int)bootstrap.tiempoTotal * 5 + bootstrap.n_monedas * 10;

        PPPanel.transform.Find("PuntosPopUp").GetComponent <Text>().text = "Puntos: " + puntosTotales;

        //Comprobar si se ha superado el record
        int recordActual = PlayerPrefs.GetInt("RecordSushi", 0);

        if (puntosTotales > recordActual)
        {
            PlayerPrefs.SetInt("RecordSushi", puntosTotales);
            PPPanel.transform.Find("RecordPopUp").GetComponent <Text>().text = "¡Nuevo récord!";

            //Al superar el record, comprobar si tambien se ha alcanzado el logro
            //Guardar nuevo numero de puntos
            PlayerPrefs.SetFloat("PuntosKaitenzushi", puntosTotales);
            //Comprobar si se ha completado el logro kaitenzushi (id = 5)
            LogrosManager.ComprobarLogroCompletado(5);
        }
        else
        {
            PPPanel.transform.Find("RecordPopUp").GetComponent <Text>().text = "Record: " + recordActual;
        }

        //Sumar las monedas obtenidas
        int monedasActuales = PlayerPrefs.GetInt("Monedas");

        PlayerPrefs.SetInt("Monedas", monedasActuales + bootstrap.n_monedas);
    }
Ejemplo n.º 17
0
    public void CrearEntidadLogroTest()
    {
        //Numero original de entidades
        int n_entidades_prev = m_Manager.GetAllEntities().Length;

        //Llamar al metodo
        Entity creada = LogrosManager.CrearEntidadLogro(0, 5, 8, 1);
        //Numero de entidades actualizado
        int n_entidades = m_Manager.GetAllEntities().Length;

        //Comprobar que hay una entidad mas
        Assert.That(n_entidades, Is.EqualTo(n_entidades_prev + 1));
        //Comprobar que existe la entidad que se acaba de crear
        Assert.That(m_Manager.Exists(creada), Is.True);

        //Comprobar que esa entidad tiene los datos correctos
        LogroComponent componenteLogro = m_Manager.GetComponentData <LogroComponent>(creada);

        Assert.That(componenteLogro.id, Is.EqualTo(0));
        Assert.That(componenteLogro.requisitoBase, Is.EqualTo(5));
        Assert.That(componenteLogro.recompensaBase, Is.EqualTo(8));
    }