Exemple #1
0
    public static void GenerateMazeHelper(int size, int[] sections, int loops, int floors, Difficulty difficulty, int seed)
    {
        System.Random msgRand = new System.Random(seed);
        MazeNode[,] roots = new MazeNode[5, 8];
        for (int i = 0; i < floors; i++)
        {
            int             section = 0;
            MazeNode        root    = DFSMazeGenerator.GenerateMaze(seed, size, size, i);
            List <MazeNode> sectionroots;

            sectionroots = GenerateSections(root, sections[i], size, size);

            foreach (MazeNode r in sectionroots)
            {
                roots[i, section] = r;
                foreach (MazeNode n in nodesInSection(r))
                {
                    n.sectionNumber = section;
                }
                r.isRoot = true;
                GenerateLoops(r, loops, size);
                GenerateLadders(i, section, r, floors, sections[i]);
                GenerateMessages(r, msgRand);
                ActorGenerator.GenerateActorsHelper(difficulty, r, seed);
                SetIntersectionNodes(r);
                section++;
                seed++;
            }
        }
        DifferentSections = roots;
        connectLadderNodes(difficulty, roots);
    }