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); }