//Cambia el atributo "comprado" del item correspondiente en la lista y lo guarda en el archivo JSON public void AdquirirItemPersonalizable(GameObject prefab) { CargaDeFichero(); Button botonComprar = prefab.transform.Find("btnComprar").GetComponent <Button>(); Button botonAplicar = prefab.transform.Find("btnAplicar").GetComponent <Button>(); GameObject fondoPrecio = prefab.transform.Find("FondoPrecio").gameObject; int precio = int.Parse(fondoPrecio.transform.Find("InputPrecio").GetComponent <TMP_Text>().text); GameObject fondoItem = prefab.transform.Find("FondoItem").gameObject; Image imagenArticulo = fondoItem.transform.Find("Item").GetComponent <Image>(); TMP_Text aplicar = prefab.transform.Find("Aplicar").GetComponent <TMP_Text>(); Personalizacion articuloPersonalizable = new Personalizacion(); articuloPersonalizable = listaPersonalizacion.listaPersonalizacion.Find(x => x.imagen == imagenArticulo.sprite.name); //Se comprueba que existe para que no haya NullReferenceException if (articuloPersonalizable != null && !articuloPersonalizable.Equals(null)) { articuloPersonalizable.comprado = true; botonComprar.interactable = false; botonComprar.gameObject.SetActive(false); fondoPrecio.gameObject.SetActive(false); botonAplicar.interactable = true; botonAplicar.gameObject.SetActive(true); aplicar.gameObject.SetActive(true); aplicar.text = "Aplicar"; aplicar.color = Color.white; GameObject managerCanvas = gameObject.transform.parent. gameObject.transform.parent. gameObject.transform.parent. gameObject.transform.parent. gameObject.transform.parent. gameObject.transform.Find("MANAGER CANVAS").gameObject; subir = managerCanvas.GetComponent <SubirNivelyMonedas>(); subir.subirMonedas(-precio); gestionTienda = managerCanvas.GetComponent <GestionTienda>(); //gestionTienda.comprobarDisponibilidadPersonalizacion(prefab.transform.parent.gameObject); EscribirEnFichero(); } }
public void AnadirComidaInventario(GameObject prefab) { subir = gameObject.transform.parent. gameObject.transform.parent. gameObject.transform.parent. gameObject.transform.parent. gameObject.transform.parent. gameObject.transform.Find("MANAGER CANVAS").GetComponent <SubirNivelyMonedas>(); gestionTienda = gameObject.transform.parent. gameObject.transform.parent. gameObject.transform.parent. gameObject.transform.parent. gameObject.transform.parent. gameObject.transform.Find("MANAGER CANVAS").GetComponent <GestionTienda>(); Comida comida = new Comida(); Comida comidaAux = new Comida(); string nombre = gameObject.transform.Find("FondoNombre") .gameObject.transform.Find("InputNombre") .gameObject.GetComponent <TMP_Text>().text.ToString(); string imagen = gameObject.transform.Find("FondoItem") .gameObject.transform.Find("Item") .gameObject.GetComponent <Image>().sprite.name; int cantidad = int.Parse(gameObject.transform.Find("FondoNumeroItems") .gameObject.transform.Find("NumeroItems") .gameObject.GetComponent <TMP_Text>().text); int precio = int.Parse(gameObject.transform.Find("FondoPrecio") .gameObject.transform.Find("InputPrecio") .gameObject.GetComponent <TMP_Text>().text); string subidaComida = gameObject.transform.Find("FondoPropiedad") .gameObject.transform.Find("InputPropiedad") .gameObject.GetComponent <TMP_Text>().text.ToString(); int subida = int.Parse(subidaComida.Substring(1, subidaComida.Length - 2)); Debug.Log(gameObject); int precioTotal = cantidad * precio; subir.subirMonedas(-precioTotal); gestionTienda.comprobarDisponibilidadComida(); //Busca en la lista el item con el mismo nombre, para que, si se añade cualquier cantidad, se vaya incrementando y //no se creen entradas nuevas en el fichero JSON comidaAux = listaComida.listaComida.Find(x => x.nombre == nombre); if (comidaAux != null) { comidaAux.cantidad += cantidad; EscribirEnFichero(); } else { comida.cantidad = cantidad; comida.imagen = imagen; comida.nombre = nombre; comida.subidaComida = subida; comida.precio = 0; comida.infinito = false; listaComida.listaComida.Add(comida); EscribirEnFichero(); } }