private void gerarAlternativo(out List <GameObject> thisLevelNodes) { thisLevelNodes = new List <GameObject>(); RandomGraph rg = new RandomGraph(numPoints, maxDistance, minDistance); foreach (var v in rg.PopulateVertices()) { var go = fac.SpawnNetworkNode(Random.Range(3, 6), Random.Range(0, 6) * 15, NetworkNode.NodeState.NS_Visible, getPosition(v.x, v.y)); thisLevelNodes.Add(go); v.tag = go; } // gerar arestas int numcons = 0; foreach (var e in rg.PopulateEdges(forgiveDistance)) { numcons++; fac.CreateConnection((GameObject)e.A.tag, (GameObject)e.B.tag); } // gerar nos 0 - 2 NetworkNode inputNode = null; for (int i = 0; i < 3; i++) { RandomGraph.Vertex p; var v = rg.CreateNew(out p); var go = fac.SpawnNetworkNode(i, Random.Range(0, 6) * 15, NetworkNode.NodeState.NS_Visible, getPosition(v.x, v.y)); thisLevelNodes.Add(go); v.tag = go; fac.CreateConnection((GameObject)v.tag, (GameObject)p.tag); if (i == 0) { inputNode = go.GetComponent <NetworkNode>(); } } // ativar nos conectados foreach (var conn in inputNode.Connetions) { var other = conn.nodes[0].netnode == inputNode ? conn.nodes[1].netnode : conn.nodes[0].netnode; other.State = NetworkNode.NodeState.NS_Active; } Debug.Log("LEVEL GERADO COM ALGORITMO RESERVA!!!"); }