示例#1
0
    void SetGrillaLevel()
    {
        gLevelData = Data.Instance.grillaData.GetLevel();

        consigna.SetActive(true);
        ConsignaCombinatoria cs = consigna.GetComponent <ConsignaCombinatoria> ();

        cs.texto.text = gLevelData.consigna;
        //cs.valor.text = ""+cLevelData.resultado;

        foreach (Transform child in gridContent)
        {
            Destroy(child.gameObject);
        }

        RectTransform rt = gemaGrid.GetComponent <RectTransform> ();

        gridContent.sizeDelta = new Vector2(gLevelData.size[0] * rt.sizeDelta.x, gLevelData.size[1] * rt.sizeDelta.y);

        respuesta.gameObject.SetActive(false);

        int fromX, fromY, toX, toY;

        fromX = fromY = toX = toY = -1;
        if ((int)gLevelData.levelType > 1)
        {
            fromX = UnityEngine.Random.Range(0, gLevelData.size[0] - gLevelData.filled[0]);
            fromY = UnityEngine.Random.Range(0, gLevelData.size[1] - gLevelData.filled[1]);

            toX = fromX + gLevelData.filled[0];
            toY = fromY + gLevelData.filled[1];

            if ((int)gLevelData.levelType == 2)
            {
                respuesta.gameObject.SetActive(true);
            }
        }

        grid = new int[gLevelData.size[0], gLevelData.size[1]];

        for (int i = 0; i < gLevelData.size[0] * gLevelData.size[1]; i++)
        {
            GameObject go = Instantiate(gemaGrid);
            go.transform.SetParent(gridContent);
            go.transform.localPosition = Vector3.zero;
            go.transform.localScale    = Vector3.one;
            go.transform.SetAsLastSibling();

            GemaGrid gg = go.GetComponent <GemaGrid> ();
            gg.id = new Vector2(i % gLevelData.size[0], Mathf.Floor(i / gLevelData.size[1]));

            if ((int)gLevelData.levelType == 2)
            {
                gg.SetInteractable(false);
                if (gg.id.x >= fromX && gg.id.x < toX && gg.id.y >= fromY && gg.id.y < toY)
                {
                    gg.SetActive(true);
                }
            }
            else if ((int)gLevelData.levelType == 3)
            {
                if (gg.id.x >= fromX && gg.id.x < toX && gg.id.y >= fromY && gg.id.y < toY)
                {
                    grid [(int)gg.id.x, (int)gg.id.y] = 1;
                    gg.SetInteractable(false);
                    gg.SetActive(true);
                }
            }
        }

        totalTime = gLevelData.time * 3;
    }
示例#2
0
    void SetCombiLevel()
    {
        cLevelData = Data.Instance.combinatoriasData.GetLevel();
        int[] vals = cLevelData.valores.Clone() as int[];
        System.Array.Sort(vals);
        List <CombinatoriasData.Gema> gemas = new List <CombinatoriasData.Gema> ();

        foreach (CombinatoriasData.Gema g in Data.Instance.combinatoriasData.gemas)
        {
            gemas.Add(g);
        }

        Utils.Shuffle(gemas);

        for (int i = 0; i < vals.Length; i++)
        {
            GameObject slot = Instantiate(gemaSlot);
            slot.transform.SetParent(inventarioContent);
            slot.transform.localPosition = Vector3.zero;
            slot.transform.localScale    = Vector3.one;
            slot.transform.SetAsLastSibling();
            CombinatoriasData.Gema g  = gemas.Find(x => x.size == i);
            GameObject             gi = Instantiate(gemaItem);
            gi.transform.SetParent(slot.transform);
            gi.transform.localPosition = Vector3.zero;
            gi.transform.localScale    = Vector3.one;
            //gi.transform.SetAsLastSibling();*/
            GemaItem gis = gi.GetComponent <GemaItem> ();
            gis.image.sprite = g.sprite;
            gis.text.text    = "" + vals [i];
            gis.val          = vals [i];

            for (int j = 0; j < cLevelData.incluidos.Length; j++)
            {
                if (vals[i] == cLevelData.incluidos[j])
                {
                    GameObject go = Instantiate(gemaItem);
                    go.transform.SetParent(centralContent);
                    go.transform.localPosition = Vector3.zero;
                    go.transform.localScale    = Vector3.one;
                    //go.name = go.name + dropN;
                    //dropN++;
                    GemaItem git = go.GetComponent <GemaItem> ();
                    git.image.sprite = g.sprite;
                    git.val          = vals [i];
                    git.GetComponent <Image> ().raycastTarget = false;
                    git.text.enabled = false;
                    go.GetComponent <Draggable> ().dropable = false;
                    sumaCentral += vals [i];
                }
            }
        }
        consigna.SetActive(true);
        ConsignaCombinatoria cs = consigna.GetComponent <ConsignaCombinatoria> ();

        cs.texto.text = "Encerrá dentro de los anillos de poder ";
        if (cLevelData.combinaciones > 1)
        {
            cs.texto.text += cLevelData.combinaciones + " combinaciones que sumen";
        }
        else
        {
            cs.texto.text += cLevelData.combinaciones + " combinación que sume";
        }
        cs.valor.text = "" + cLevelData.resultado;
    }