Beispiel #1
0
    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);
        }
    }
Beispiel #2
0
    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);
    }
Beispiel #3
0
    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);
            }
        }
    }
Beispiel #4
0
 void GenerateOutlets()
 {
     MazeGeneralLogic.SetOutlet(useColumns, levelPrefabs, levelPrefabs.entrance, out entranceSq, squares);
     MazeGeneralLogic.SetOutlet(useColumns, levelPrefabs, levelPrefabs.exit, out exitSq, squares);
 }