public void ReloadLevel(int levelNum) { Maze maze = levels[levelNum]; maze.GenerateGrid(); if (maze.entranceSq.layout != null && maze.exitSq.layout != null) { Portal entranceP = maze.entranceSq.layout.GetComponentInChildren <Portal>(); Portal exitP = maze.exitSq.layout.GetComponentInChildren <Portal>(); if (levelNum == 0) { MazeGeneralLogic.LinkPortalPair(entranceP, entrance); MazeGeneralLogic.LinkPortalPair(exitP, levels[levelNum + 1].entranceSq.layout.GetComponentInChildren <Portal>()); } else if (levelNum == levels.Length - 1) { MazeGeneralLogic.LinkPortalPair(exitP, exit); MazeGeneralLogic.LinkPortalPair(entranceP, levels[levelNum - 1].exitSq.layout.GetComponentInChildren <Portal>()); } else { MazeGeneralLogic.LinkPortalPair(entranceP, levels[levelNum - 1].exitSq.layout.GetComponentInChildren <Portal>()); MazeGeneralLogic.LinkPortalPair(exitP, levels[levelNum + 1].entranceSq.layout.GetComponentInChildren <Portal>()); } LoadCams(levelNum); } }
public void GenerateGrid() { MazeGeneralLogic.ClearGrid(transform); squares = new MazeSquare[length, width, height]; PrefabDimensions dimensions = mazeSquare.GetComponent <PrefabDimensions>(); coordinates = MazeGeneralLogic.GenerateCoordinates(dimensions.width, dimensions.length, dimensions.height, squares); //[Layer][Column][Cluster][Square] List <List <List <MazeSquare[]> > > gridClusters; MazeClusterLogic.WriteClusters(gapFrequency, out gridClusters, squares); MazeGeneralLogic.GenerateSquares(transform, useColumns, levelPrefabs, mazeSquare, coordinates, squares); GenerateOutlets(); SpawnMonsters(spawns.monsters); }
public void LinkPortals() { Portal previousP; Portal nextP; if (levels.Length == 1) { MazeGeneralLogic.LinkPortalPair(entrance, levels[0].entranceSq.layout.GetComponentInChildren <Portal>()); MazeGeneralLogic.LinkPortalPair(exit, levels[0].exitSq.layout.GetComponentInChildren <Portal>()); } else { for (int i = 0; i < levels.Length; i++) { Portal entranceP = levels[i].entranceSq.layout.GetComponentInChildren <Portal>(); Portal exitP = levels[i].exitSq.layout.GetComponentInChildren <Portal>(); //Portal linking if (i == 0) { MazeGeneralLogic.LinkPortalPair(entranceP, entrance); continue; } else if (i == levels.Length - 1) { MazeGeneralLogic.LinkPortalPair(exitP, exit); break; } previousP = levels[i - 1].exitSq.layout.GetComponentInChildren <Portal>(); MazeGeneralLogic.LinkPortalPair(entranceP, previousP); nextP = levels[i + 1].entranceSq.layout.GetComponentInChildren <Portal>(); MazeGeneralLogic.LinkPortalPair(exitP, nextP); } } }
void GenerateOutlets() { MazeGeneralLogic.SetOutlet(useColumns, levelPrefabs, levelPrefabs.entrance, out entranceSq, squares); MazeGeneralLogic.SetOutlet(useColumns, levelPrefabs, levelPrefabs.exit, out exitSq, squares); }