public void EliminarArticulo(GameObject prefab) { CargaDeFichero(); contenedorArticuloEspecial = prefab.transform.parent.gameObject; contenedorArticuloEspecial.GetComponent <RectTransform>().pivot = new Vector2(0.5f, 1); if (prefab.GetComponent <Image>().color == Color.cyan) { Destroy(prefab, 0.5f); } else { ArticuloEspecial articuloEliminado = new ArticuloEspecial(); //Se comprueba qué ID tiene el articulo que estamos eliminando, para localizarla en la lista de objetos articulo en base a su atributo ID. string idArticulo = prefab.transform.Find("IDEspecial").gameObject.GetComponent <TMP_Text>().text; idArticulo = idArticulo.Substring(1, idArticulo.Length - 1); articuloEliminado = listaArticulos.articulos.Find(x => x.id == int.Parse(idArticulo)); listaArticulos.articulos.Remove(articuloEliminado); Destroy(prefab, 0.5f); EscribirEnFichero(); } if (contenedorArticuloEspecial.transform.childCount <= 1) { contenedorArticuloEspecial. gameObject.transform.parent. gameObject.transform.parent. gameObject.transform.parent. Find("PanelMensaje").gameObject.SetActive(true); } }
public void GuardarArticulo(GameObject prefab) { CargaDeFichero(); //Si el Articulo es nuevo (por el fondo verde) if (prefab.GetComponent <Image>().color == Color.cyan) { //Si no hay ningun Articulo en listaArticulos if (listaArticulos.articulos.Count() == 0) { ArticuloEspecial articulo = new ArticuloEspecial(); if (cogerDatosYResetPrefab(articulo, prefab)) { prefab.transform.Find("IDEspecial").GetComponent <TMP_Text>().text = "#1"; articulo.id = 1; listaArticulos.articulos.Add(articulo); EscribirEnFichero(); } } //Si ya hay Articulos en listaArticulos else { ArticuloEspecial ultimoArticulo = new ArticuloEspecial(); ultimoArticulo = listaArticulos.articulos[listaArticulos.articulos.Count() - 1]; ArticuloEspecial articulo = new ArticuloEspecial(); // Para no asignar un ID repetido, se recorre la lista tantas veces como ID tiene el último elemento (Ej: ID=12). // hasta que se encuentra el primer ID en la lista que no existe. // Si existe el ID 1, 2, 3 y 5, se asignará el 4 al nuevo Articulo y parará el bucle. // Si existiesen 1, 2, 3, 4, 5... 12, el nuevo Articulo tendría el ID 13. for (int i = 1; i <= ultimoArticulo.id + 1; i++) { if (!listaArticulos.articulos.Exists(x => x.id == i)) { articulo.id = i; break; } } if (cogerDatosYResetPrefab(articulo, prefab)) { prefab.transform.Find("IDEspecial").GetComponent <TMP_Text>().text = "#" + articulo.id.ToString(); listaArticulos.articulos.Add(articulo); EscribirEnFichero(); } } } }
public void ComprarArticuloPersonalizado(GameObject prefab) { CargaDeFichero(); ArticuloEspecial articuloComprado = new ArticuloEspecial(); prefab.GetComponent <Image>().color = Color.cyan; //Se comprueba qué ID tiene la tarea que estamos reclamando, para localizarla en la lista de objetos tarea en base a su atributo ID. string idTarea = prefab.transform.Find("IDEspecial").gameObject.GetComponent <TMP_Text>().text; idTarea = idTarea.Substring(1, idTarea.Length - 1); TMP_Text comprado = prefab.transform.Find("ArticuloComprado").GetComponent <TMP_Text>(); comprado.text = "1"; articuloComprado = listaArticulos.articulos.Find(x => x.id == int.Parse(idTarea)); articuloComprado.comprado = true; prefab.transform.Find("Comprado").gameObject.SetActive(true); Button botonComprar = prefab.transform.Find("btnComprar").GetComponent <Button>(); botonComprar.interactable = false; GameObject fondoPrecio = prefab.transform.Find("FondoPrecio").gameObject; int inputPrecio = int.Parse(fondoPrecio.transform.Find("InputPrecio").gameObject.GetComponent <TMP_Text>().text); subir = prefab.transform.parent. gameObject.transform.parent. gameObject.transform.parent. gameObject.transform.parent. gameObject.transform.parent. gameObject.transform.Find("MANAGER CANVAS").GetComponent <SubirNivelyMonedas>(); subir.subirMonedas(-inputPrecio); EscribirEnFichero(); }
public bool cogerDatosYResetPrefab(ArticuloEspecial articulo, GameObject prefab) { bool sePuedeGuardar = false; TMP_InputField inputArticulo = prefab.transform.Find("InputArticulo").GetComponent <TMP_InputField>(); TMP_InputField inputPrecio = prefab.transform.Find("InputPrecio").GetComponent <TMP_InputField>(); TMP_InputField inputNivel = prefab.transform.Find("InputNivel").GetComponent <TMP_InputField>(); Button botonGuardar = prefab.transform.Find("btnGuardar").GetComponent <Button>(); if (inputArticulo.text == "" || inputPrecio.text == "" || inputNivel.text == "") { if (inputArticulo.text == "") { inputArticulo.image.color = colorFondoInputError; if (!(inputPrecio.text == "")) { inputPrecio.image.color = Color.white; } if (!(inputNivel.text == "")) { inputNivel.image.color = Color.white; } } if (inputPrecio.text == "") { inputPrecio.image.color = colorFondoInputError; if (!(inputArticulo.text == "")) { inputArticulo.image.color = Color.white; } if (!(inputNivel.text == "")) { inputNivel.image.color = Color.white; } } if (inputNivel.text == "") { inputNivel.image.color = colorFondoInputError; if (!(inputArticulo.text == "")) { inputArticulo.image.color = Color.white; } if (!(inputPrecio.text == "")) { inputPrecio.image.color = Color.white; } } sePuedeGuardar = false; } else { inputArticulo.image.color = Color.white; inputPrecio.image.color = Color.white; inputNivel.image.color = Color.white; articulo.comprado = false; articulo.precio = int.Parse(inputPrecio.text); articulo.nivel = int.Parse(inputNivel.text); articulo.nombre = inputArticulo.text; prefab.GetComponent <Image>().color = colorFondoArticulo; inputArticulo.interactable = false; inputPrecio.interactable = false; inputNivel.interactable = false; botonGuardar.interactable = false; sePuedeGuardar = true; } return(sePuedeGuardar); }