public void OnDrop(GameObject dragged) { if (showInside) { if (dragged.transform.parent != transform) { GameObject go = Instantiate(dragged); go.transform.SetParent(transform); go.transform.localPosition = Vector3.zero; go.transform.localScale = Vector3.one; go.name = go.name + dropN; dropN++; GemaItem gi = go.GetComponent <GemaItem> (); //gi.image.raycastTarget = true; gi.GetComponent <Image> ().raycastTarget = true; gi.text.enabled = false; go.GetComponent <Draggable> ().dropable = true; Events.DroppedUI(dragged); } else { dragged.transform.SetAsFirstSibling(); } } else { Events.DroppedUI(dragged); } }
void DroppedUI(GameObject dragged) { audioSource.PlayOneShot(dropIn); GemaItem gi = dragged.GetComponentInParent <GemaItem> (); sumaCentral += gi.val; if (sumaCentral == cLevelData.resultado) { RingDone(); } }
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; }
void RingDone() { if (burbujasDone > 0) { int[] vals = new int[centralContent.childCount]; for (int i = 0; i < centralContent.childCount; i++) { vals [i] = centralContent.GetChild(i).GetComponent <GemaItem> ().val; } bool repetido; for (int i = 0; i < burbujasDone; i++) { repetido = true; if (burbujas [i].combinacion.Count == vals.Length) { System.Array.Sort(vals); List <int> l = burbujas [i].combinacion; for (int j = 0; j < vals.Length; j++) { if (vals [j] != l [j]) { repetido = false; } } } else { repetido = false; } if (repetido) { for (int k = centralContent.childCount - 1; k > -1; k--) { Destroy(centralContent.GetChild(k).gameObject); } burbujas [i].done.SetActive(false); burbujas [i].done.SetActive(true); sumaCentral = 0; return; } } } for (int i = centralContent.childCount - 1; i > -1; i--) { Transform t = centralContent.GetChild(i); t.SetParent(burbujas[burbujasDone].content.transform); t.localPosition = Vector3.zero; t.localScale = new Vector3(0.4f, 0.4f, 0.4f); GemaItem gi = t.gameObject.GetComponent <GemaItem> (); gi.image.color = Data.Instance.levelsData.GetInProgressLevel().color; burbujas [burbujasDone].combinacion.Add(t.GetComponent <GemaItem> ().val); burbujas [burbujasDone].combinacion.Sort(); burbujas [burbujasDone].WinEffect.SetActive(true); } burbujas [burbujasDone].done.SetActive(true); burbujasDone++; sumaCentral = 0; audioSource.PlayOneShot(combiOK); if (burbujasDone >= cLevelData.combinaciones) { Invoke("FiguraComplete", 1.0f); } }