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)); }
//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); }
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)); } }
//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); }
//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); } }
//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()); }
//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); }
//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; } }
void Awake() { if (m_instance == null) { m_instance = this; m_instance.InicializarListasLogros(); } }
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)); }
// 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); }
//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); }
// 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); } }
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)); }
//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; }
//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); }
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)); }