예제 #1
0
        //Connect 2 given rooms together
        public static void Connect2rooms(RogueRoom room1, RogueRoom room2, Level level, Game game, List<Coord> occupiedlist)
        {
            _occupiedList = occupiedlist;
            var colours = RandomColour.RoomColours();
            _colour = colours[0];
            _lightcolour = colours[1];
            _game = game;
            _level = level;
            halfwidth = MyRandom.Random.Next(1, 7);

            if (room1.Gridpos.X < room2.Gridpos.X)
            {
                connectHorz(room1, room2);
            }
            else if (room1.Gridpos.X > room2.Gridpos.X)
            {
                connectHorz(room2, room1);
            }
            else if (room1.Gridpos.Y < room2.Gridpos.Y)
            {
                connectVert(room1, room2);
            }
            else
            {
                connectVert(room2, room1);
            }
        }
        public static Level GenerateLvl01(Game game)
        {
            Level newLvl = new Level(game);

            newLvl.Roomlist.Add(new SmallRoom(game, new Vector2(0, 0)
               , new Color(MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255))
               , new Color(MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255))
               //, new List<Tuple<string, int>>() { new Tuple<string, int>("right", 8), new Tuple<string, int>("bottom", 16) }
               ));

            return newLvl;
        }
        public static Level GenerateBigRoomTest(Game game)
        {
            Level newLvl = new Level(game);

            var _room = new BigRoom(game, new Vector2(0, 0)
                                      ,
                                      new Color(MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255),
                                                MyRandom.Random.Next(0, 255))
                                      ,
                                      new Color(MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255),
                                                MyRandom.Random.Next(0, 255))
                                                ,new Vector2(2,3)
                );
            _room.DoorPositions.PositionsArray[0, 0] = new DoorPosition();
            _room.DoorPositions.PositionsArray[0, 0].left = 20;
            _room.DoorPositions.PositionsArray[0, 1] = new DoorPosition();
            _room.DoorPositions.PositionsArray[0, 1].left = 20;

            _room.DoorPositions.PositionsArray[1, 0] = new DoorPosition();
            _room.DoorPositions.PositionsArray[1, 0].top = 12;
            _room.DoorPositions.PositionsArray[0, 2] = new DoorPosition();

            _room.DoorPositions.PositionsArray[1, 2] = new DoorPosition();
            _room.DoorPositions.PositionsArray[1, 2].bottom = 5;
            _room.DoorPositions.PositionsArray[1, 2].right = 20;
            newLvl.Roomlist.Add(_room);
            newLvl.StartRoom = _room;

            var _sroom = new SmallRoom(game, new Vector2(-1, 0)
              , new Color(MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255))
              , new Color(MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255))
              );
            _sroom.DoorPositions.PositionsArray[0, 0] = new DoorPosition();
            _sroom.DoorPositions.PositionsArray[0, 0].right = 1;
            _sroom.DoorPositions.PositionsArray[0, 0].bottom = 28;
            _sroom.DoorPositions.PositionsArray[0, 0].top = 1;
            _sroom.DoorPositions.PositionsArray[0, 0].left = 20;
            newLvl.Roomlist.Add(_sroom);

            var _sroom1 = new SmallRoom(game, new Vector2(-1, 1)
              , new Color(MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255))
              , new Color(MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255))
              );
            _sroom1.DoorPositions.PositionsArray[0, 0] = new DoorPosition();
            _sroom1.DoorPositions.PositionsArray[0, 0].right = 12;
            _sroom1.DoorPositions.PositionsArray[0, 0].bottom = 28;
            _sroom1.DoorPositions.PositionsArray[0, 0].top = 28;
            _sroom1.DoorPositions.PositionsArray[0, 0].left = 20;
            newLvl.Roomlist.Add(_sroom1);

            return newLvl;
        }
예제 #4
0
        private int _ygrid; //size of possible room area in y axis

        #endregion Fields

        #region Constructors

        public ClassicRogueLvlGenerator(Game game, int size, int xdiv, int ydiv, int roomchance)
        {
            _xdiv = xdiv;
            _ydiv = ydiv;
            _rogueroomlist = new Dictionary<Tuple<int,int>,RogueRoom>();
            _game = game;
            _roomchance = roomchance;
            _size = size;
            _xgrid = _size / xdiv;
            _ygrid = _size / ydiv;
            unconnectedRooms = xdiv*ydiv;
            _newLvl = new Level(_game);
            _occupiedGrid = new bool[size,size];
        }
        public static Level GenerateLvl02(Game game)
        {
            Level newLvl = new Level(game);

            var _room = new SmallRoom(game, new Vector2(0, 0)
               , new Color(MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255))
               , new Color(MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255))
               );
            _room.DoorPositions.PositionsArray[0,0] = new DoorPosition();
            _room.DoorPositions.PositionsArray[0, 0].right = 1;
            _room.DoorPositions.PositionsArray[0, 0].bottom = 28;
            _room.DoorPositions.PositionsArray[0, 0].top = 1;
            _room.DoorPositions.PositionsArray[0, 0].left = 20;
            newLvl.Roomlist.Add(_room);

            var _room0 = new SmallRoom(game, new Vector2(-1, 0)
               , new Color(MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255))
               , new Color(MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255))
               );
            _room0.DoorPositions.PositionsArray[0, 0] = new DoorPosition();
            _room0.DoorPositions.PositionsArray[0, 0].right = 20;
            newLvl.Roomlist.Add(_room0);

            var _room1 = new SmallRoom(game, new Vector2(0, 1)
               , new Color(MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255))
               , new Color(MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255))
               );
            _room1.DoorPositions.PositionsArray[0, 0] = new DoorPosition();
            _room1.DoorPositions.PositionsArray[0, 0].right = 8;
            _room1.DoorPositions.PositionsArray[0, 0].bottom = 12;
            _room1.DoorPositions.PositionsArray[0, 0].top = 28;
            _room1.DoorPositions.PositionsArray[0, 0].left = 12;
            newLvl.Roomlist.Add(_room1);

            var _room2 = new SmallRoom(game, new Vector2(-1, 1)
               , new Color(MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255))
               , new Color(MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255))
               );
            _room2.DoorPositions.PositionsArray[0, 0] = new DoorPosition();
            _room2.DoorPositions.PositionsArray[0, 0].right = 12;
            newLvl.Roomlist.Add(_room2);

            return newLvl;
        }
        public static Level GenerateSmallRoomGrid(Game game)
        {
            Level newLvl = new Level(game);

            Room[,] _roomgrid = new Room[10,10];

            for (int x = 0; x < 10; x++)
            {
                for (int y = 0; y < 10; y++)
                {
                 var _room = new SmallRoom(game, new Vector2(x, y)
               , new Color(MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255))
               , new Color(MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255), MyRandom.Random.Next(0, 255))
               );
                _room.DoorPositions.PositionsArray[0, 0] = new DoorPosition();
                _room.DoorPositions.PositionsArray[0, 0].right = 10;
                _room.DoorPositions.PositionsArray[0, 0].bottom = 14;
                _room.DoorPositions.PositionsArray[0, 0].top = 14;
                _room.DoorPositions.PositionsArray[0, 0].left = 10;
                newLvl.Roomlist.Add(_room);
                }
            }
            return newLvl;
        }