public void ConfirmCheck() { checkSelection = false; labelCheck.SetActive(false); List <ItemConnection> conns = Object.FindObjectsOfType(typeof(ItemConnection)).Select((obj) => { return((ItemConnection)obj); }).TakeWhile((conn) => { return(conn.GetPistaA().selected&& conn.GetPistaB().selected); }).ToList(); foreach (PistaFrame pista in Object.FindObjectsOfType(typeof(PistaFrame))) { pista.selected = false; } //passa pro GetResponse List <SolutionScriptableObject.Solution> solutions = this.solution.GetResponse(conns); if (solutions.Count > 0) { SolutionScriptableObject.Solution solution = solutions[0]; //Da lista de soluções encontradas, procura a que tem mais conexões foreach (SolutionScriptableObject.Solution s in solutions) { if (s.conns.Length > solution.conns.Length) { solution = s; } } GlobalProfile.getInstance().dialogIgnition = solution.dialogo.ToList(); GlobalProfile.getInstance().SendMessage(solution.event_id); foreach (ItemConnection conn in conns) { foreach (SolutionScriptableObject.ConnStruct str in solution.conns) { if (CompareConnections(conn, str)) { conn.status = solution.correctness; } } } SaveQuadro(); fadeEffect.ExitScene(GlobalProfile.getInstance().lastScenarioBeforeInventory); } else { foreach (ItemConnection conn in conns) { PistaFrame pistaA = conn.objectA.GetComponent <PistaPin>().pista.transform.parent.GetComponent <PistaFrame>(); PistaFrame pistaB = conn.objectB.GetComponent <PistaPin>().pista.transform.parent.GetComponent <PistaFrame>(); Debug.Log("Pista 1: " + pistaA.item.itemID); Debug.Log("Pista 2: " + pistaB.item.itemID); Debug.Log("Conexão: " + conn.connector); } } }
public void OpenMenu(PistaFrame pista, GameObject pistaSlot, ItemConnection connection, bool connectButton, bool descButton, bool removeButton) { Vector3 position = Camera.main.ScreenToWorldPoint(Input.mousePosition); position.z = 0; transform.position = position; gameObject.SetActive(true); selected = pista; this.pistaSlot = pistaSlot; this.connection = connection; this.connectButton.SetActive(connectButton); this.removeButton.SetActive(removeButton); this.descButton.SetActive(descButton); }
public void OpenMenu(PistaFrame pista, GameObject pistaSlot) { bool canDelete = true; foreach (ItemConnection conn in Object.FindObjectsOfType(typeof(ItemConnection))) { if (conn.status != 0) { if (pista == conn.GetPistaA() || pista == conn.GetPistaB()) { canDelete = false; } } } menu.OpenMenu(pista, pistaSlot, null, true, true, canDelete); }
public PistaFrame InsertPistaFrame(Vector3 position, InventoryItem item) { //Coloca o manolo no quadro GameObject itemQuadro = Instantiate(framePrefab);// new GameObject("Item"); PistaFrame frame = itemQuadro.GetComponent <PistaFrame>(); frame.item = item; frame.linhaGroup = linhaGroup; frame.quadro = quadro; ItemSlot[] slots = content.transform.GetComponentsInChildren <ItemSlot>(); foreach (ItemSlot slot in slots) { if (slot.item.itemID == item.itemID) { frame.originalSlot = slot.gameObject; break; } } frame.originalSlot.GetComponent <Image>().color = new Color(1, 1, 1, 0); //frame.originalSlot = selection.originalSlot; //Encontrar baseado no Item itemQuadro.transform.Find("Pista").GetComponent <Image>().sprite = item.image; itemQuadro.transform.Find("Text").GetComponent <Text>().text = item.displayName; //Posiciona ele itemQuadro.transform.SetParent(quadro.content.transform, false); itemQuadro.transform.SetAsFirstSibling(); itemQuadro.transform.position = position; itemQuadro.transform.RotateAround(itemQuadro.transform.position, new Vector3(0, 0, 1), Random.Range(-10, 10)); GameObject pin = Instantiate(pinPrefab); pin.GetComponent <PistaPin>().pista = itemQuadro.transform.Find("Pin").gameObject; pin.transform.SetParent(quadro.content.transform, false); pin.transform.SetAsLastSibling(); frame.outerPin = pin; return(frame); }