private void PlaceMimicsInRoom(bool isFirst, int numberOfMimics)
        {
            Rectangle room;

            if (isFirst)
            {
                room = _map.Rooms[0];
            }
            else
            {
                room = _map.Rooms.Last();
            }

            for (int i = 0; i < numberOfMimics; i++)
            {
                if (_map.DoesRoomHaveWalkableSpace(room))
                {
                    Point randomRoomLocation = _map.GetRandomLocationInFirstRoom(room);
                    if (randomRoomLocation != null)
                    {
                        _map.AddMonster(ActorGenerator.CreateMimic(_level, _map.GetRandomLocationInFirstRoom(room)));
                    }
                }
            }
        }
        private void PlaceExplorerInRoom(bool isFirst)
        {
            Rectangle room;

            if (isFirst)
            {
                room = _map.Rooms[0];
            }
            else
            {
                room = _map.Rooms.Last();
            }

            _map.AddExplorer(ActorGenerator.CreateNPC(_level, _map.GetRandomLocationInFirstRoom(room)));
        }
        private void PlaceMonsters()
        {
            int roomNumber = 0;

            foreach (var room in _map.Rooms)
            {
                if (Dice.Roll("1D10") < 6 + (_level / 3))
                {
                    var numberOfMonsters = Dice.Roll("1D2") + (_level / 2);
                    for (int i = 0; i < numberOfMonsters; i++)
                    {
                        if (_map.DoesRoomHaveWalkableSpace(room) && roomNumber != 0)
                        {
                            Point randomRoomLocation = _map.GetRandomLocationInRoom(room);
                            if (randomRoomLocation != null)
                            {
                                _map.AddMonster(ActorGenerator.CreateMonster(_level, _map.GetRandomLocationInRoom(room)));
                            }
                        }
                    }
                }
                roomNumber++;
            }
        }
 private void PlaceBoss()
 {
     _map.AddMonster(ActorGenerator.CreateBoss(_level, _map.Rooms.Last().Center));
 }