Esempio n. 1
0
    //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();
        }
    }
Esempio n. 2
0
    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();
        }
    }