Пример #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);
    }
    private void PlacePlayer()
    {
        Player player = ActorGenerator.CreatePlayer();

        player.X = _map.Rooms[0].Center.X;
        player.Y = _map.Rooms[0].Center.Y;

        _map.AddPlayer(player);
    }
Пример #3
0
    void PlacePlayer()
    {
        Player player = ActorGenerator.CreatePlayer();

        player.X = _map.Rooms[0].Center.X;
        player.Y = _map.Rooms[0].Center.Y;
        player.go.transform.position = new Vector2(player.X, player.Y);

        _map.AddPlayer(player);
    }
 private void PlaceMonsters()
 {
     foreach (var room in _map.Rooms)
     {
         if (Dice.Roll("1D10") < 7)
         {
             var numberOfMonsters = Dice.Roll("1D4");
             for (int i = 0; i < numberOfMonsters; i++)
             {
                 if (_map.DoesRoomHaveWalkableSpace(room))
                 {
                     Point randomRoomLocation = _map.GetRandomLocationInRoom(room);
                     if (randomRoomLocation != null)
                     {
                         _map.AddMonster(ActorGenerator.CreateMonster(_level, _map.GetRandomLocationInRoom(room)));
                     }
                 }
             }
         }
     }
 }