public void GenerateMap(int shortest, int Nodesnum) { g = new MapGenGraph(); g.InitGraph(shortest, Nodesnum); CreateMap(g); List <GameObject> knights = new List <GameObject>(); knights.Add(Instantiate(knight, new Vector3(0.0f, 0.16f, 0.0f), new Quaternion(0.0f, 0.0f, 0.0f, 0.0f))); knights[knights.Count - 1].GetComponent <Animator>().runtimeAnimatorController = knight1Animator; if (!GenerateAtStart) { GameplayController.registerKnight(knights[knights.Count - 1], 1); } knights.Add(Instantiate(knight, new Vector3(0.0f, -0.16f, 0.0f), new Quaternion(0.0f, 0.0f, 0.0f, 0.0f))); knights[knights.Count - 1].GetComponent <Animator>().runtimeAnimatorController = knight2Animator; if (!GenerateAtStart) { GameplayController.registerKnight(knights[knights.Count - 1], 2); } knights.Add(Instantiate(knight, new Vector3(0.16f, 0.16f, 0.0f), new Quaternion(0.0f, 0.0f, 0.0f, 0.0f))); knights[knights.Count - 1].GetComponent <Animator>().runtimeAnimatorController = knight3Animator; if (!GenerateAtStart) { GameplayController.registerKnight(knights[knights.Count - 1], 3); } knights.Add(Instantiate(knight, new Vector3(-0.16f, 0.16f, 0.0f), new Quaternion(0.0f, 0.0f, 0.0f, 0.0f))); knights[knights.Count - 1].GetComponent <Animator>().runtimeAnimatorController = knight4Animator; if (!GenerateAtStart) { GameplayController.registerKnight(knights[knights.Count - 1], 4); } knights.Add(Instantiate(knight, new Vector3(0.16f, 0.0f, 0.0f), new Quaternion(0.0f, 0.0f, 0.0f, 0.0f))); knights[knights.Count - 1].GetComponent <Animator>().runtimeAnimatorController = knight5Animator; if (!GenerateAtStart) { GameplayController.registerKnight(knights[knights.Count - 1], 5); } int i = 0; Fighter f = null; foreach (var k in knights) { k.GetComponent <SpriteRenderer>().sprite = sprites[i]; f = k.GetComponent <Fighter>(); f.currentNode = g.Start.jnode; FighterController.fighters.Add(f); i++; } g.Start.jnode.fighterCount = 5; g.Start.jnode.visited = true; FighterController.goOut(); g.Print(); }
public void CreateMap(MapGenGraph g) { List <Vertex> visited = new List <Vertex>(); List <Vertex> waiting = new List <Vertex>(); waiting.Add(g.Start); while (waiting.Count != 0) { Vertex v = waiting[0]; visited.Add(v); waiting.RemoveAt(0); for (int i = 0; i < 4; i++) { if (v.CheckNeighbour(i)) { Vertex n = v.GetNeighbour(i); if (!properContains(visited, n)) { PutCorBtwNeighBours(v, n, i); if (!properContains(waiting, n)) { waiting.Add(n); } } } } if (v == g.Start) { PutNormalRoom(new Vector3((v.X - g.Start.X) * 2 * corridors * SQUARE_SIDE, -1 * (v.Y - g.Start.Y) * 2 * corridors * SQUARE_SIDE), v, false); var roomobject = Instantiate(StartTile, new Vector3((v.X - g.Start.X) * 2 * corridors * SQUARE_SIDE, -1 * (v.Y - g.Start.Y) * 2 * corridors * SQUARE_SIDE), new Quaternion(0.0f, 0.0f, 0.0f, 0.0f)); } else if (v == g.Finish) { PutNormalRoom(new Vector3((v.X - g.Start.X) * 2 * corridors * SQUARE_SIDE, -1 * (v.Y - g.Start.Y) * 2 * corridors * SQUARE_SIDE), v, false); var roomobject = Instantiate(FinishTile, new Vector3((v.X - g.Start.X) * 2 * corridors * SQUARE_SIDE, -1 * (v.Y - g.Start.Y) * 2 * corridors * SQUARE_SIDE), new Quaternion(0.0f, 0.0f, 0.0f, 0.0f)); } else { int sorn = Random.Range(0, 100); if (sorn > 20) { bool putspec = false; if (v.CheckNeighbour(0) && v.CheckNeighbour(2) && !v.CheckNeighbour(1) && !v.CheckNeighbour(3)) { if (Random.Range(0, 1) == 0) { PutSpecRoom(new Vector3((v.X - g.Start.X) * 2 * corridors * SQUARE_SIDE + SQUARE_SIDE / 2, -1 * (v.Y - g.Start.Y) * 2 * corridors * SQUARE_SIDE), v); putspec = true; } } if (!v.CheckNeighbour(0) && !v.CheckNeighbour(2) && v.CheckNeighbour(1) && v.CheckNeighbour(3)) { PutNormalRoom(new Vector3((v.X - g.Start.X) * 2 * corridors * SQUARE_SIDE, -1 * (v.Y - g.Start.Y) * 2 * corridors * SQUARE_SIDE), v, false, true, false); putspec = true; } if (v.CheckNeighbour(0) && v.CheckNeighbour(2) && v.CheckNeighbour(1) && v.CheckNeighbour(3)) { PutNormalRoom(new Vector3((v.X - g.Start.X) * 2 * corridors * SQUARE_SIDE, -1 * (v.Y - g.Start.Y) * 2 * corridors * SQUARE_SIDE), v, false, true, true); putspec = true; } if (!putspec) { //Azért van csere, mert koordináta váltás PutSmallRoom(new Vector3((v.X - g.Start.X) * 2 * corridors * SQUARE_SIDE, -1 * (v.Y - g.Start.Y) * 2 * corridors * SQUARE_SIDE), v); } } else { PutNormalRoom(new Vector3((v.X - g.Start.X) * 2 * corridors * SQUARE_SIDE, -1 * (v.Y - g.Start.Y) * 2 * corridors * SQUARE_SIDE), v); } } } }