Advertisement
Guest User

Untitled

a guest
Aug 9th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #region generate room structure
  2. switch(_type)
  3.     {
  4.     #region Plains of Existence
  5.    
  6.     #region -1 Plains of Existence - Starting Room
  7.     case -1: //Starting room
  8.         {
  9.         var _roomx1 = 5;
  10.         var _roomy1 = 3;
  11.         var _roomx2 = roomWidth-6;
  12.         var _roomy2 = roomHeight-4;
  13.        
  14.         ds_grid_set_region(_grid,_roomx1,_roomy1,_roomx2,_roomy2,FREE);
  15.         _grid[# _roomx1,_roomy1] = BLOCKED;
  16.         _grid[# _roomx2,_roomy1] = BLOCKED;
  17.         _grid[# _roomx1,_roomy2] = BLOCKED;
  18.         _grid[# _roomx2,_roomy2] = BLOCKED;
  19.        
  20.         _listDecals = ds_list_create();
  21.         ds_list_add(_listDecals,Spr_Entity_Starting_Altar_Shadow,0,roomWidth*8,roomHeight*8);
  22.         ds_list_add(_listDecals,Spr_Entity_Starting_Altar,0,roomWidth*8,roomHeight*8);
  23.        
  24.         var _spriteWall = Spr_Wall_Stone;
  25.         var _spriteFloor = Spr_Floor_Stone_Tile;
  26.         }break;
  27.     #endregion
  28.    
  29.    
  30.     #region 0 Plains of Existence - Ash Rooom
  31.     case 0: //Ash room
  32.         {
  33.         var _roomx1 = 2;
  34.         var _roomy1 = 3;
  35.         var _roomx2 = roomWidth-3;
  36.         var _roomy2 = roomHeight-3;
  37.         var _firstLoop = true;
  38.         repeat(4)
  39.             {
  40.             var _xx = roomWidth div 2;
  41.             var _yy = roomHeight div 2;
  42.             var _dir = irandom(3);
  43.             var _break = irandom_range(60,120)+100*(!_firstLoop);
  44.        
  45.             while(_break > 0)
  46.                 {
  47.                 _break--;
  48.                 if(_firstLoop)
  49.                     {
  50.                     _grid[# _xx-1, _yy] = FREE;
  51.                     _grid[# _xx, _yy-1] = FREE;
  52.                     _grid[# _xx+1, _yy] = FREE;
  53.                     _grid[# _xx, _yy+1] = FREE;
  54.                     }
  55.                 _grid[# _xx, _yy] = FREE;
  56.                 _xx += lengthdir_x(1,_dir*90);
  57.                 _yy += lengthdir_y(1,_dir*90);
  58.            
  59.                 _dir = irandom(3);
  60.                
  61.                 if(_xx <= _roomx1) _dir = 0;
  62.                 if(_xx >= _roomx2) _dir = 2;
  63.                 if(_yy <= _roomy1) _dir = 3;
  64.                 if(_yy >= _roomy2) _dir = 1;
  65.                 }
  66.             _firstLoop = false;
  67.             }
  68.        
  69.        
  70.        
  71.         var _spriteWall = Spr_Wall_Ash;
  72.         var _spriteFloor = Spr_Floor_Ash;
  73.         }break;
  74.     #endregion
  75.    
  76.    
  77.     #region 1 Plains of Existence - Stone Room
  78.     case 1: //Stone room
  79.         {
  80.         var _roomx1 = 1;
  81.         var _roomy1 = 2;
  82.         var _roomx2 = roomWidth-2;
  83.         var _roomy2 = roomHeight-2;
  84.        
  85.         repeat(2)
  86.             {
  87.             var _firstLoop = true;
  88.        
  89.             repeat(2)
  90.                 {
  91.                 var _xx = roomWidth div 2;
  92.                 var _yy = roomHeight div 2;
  93.                 var _break = 250;
  94.                 var _rooms = irandom_range(4,6);
  95.                 var _roomscurrent = 0;
  96.        
  97.                 while(_break > 0 && _roomscurrent < _rooms)
  98.                     {
  99.                     _break--;
  100.                
  101.                     if(/*(*/_grid[# _xx, _yy] == FREE /*&& ((_grid[# _xx-1, _yy] == BLOCKED
  102.                         or _grid[# _xx, _yy-1] == BLOCKED or _grid[# _xx+1, _yy] == BLOCKED
  103.                         or _grid[# _xx, _yy+1] == BLOCKED) or !_firstLoop))*/ or (_roomscurrent == 0 && _firstLoop))
  104.                         {
  105.                         _roomscurrent++;
  106.                         if(!_firstLoop)
  107.                             {
  108.                             var x1 = max(_xx - irandom_range(0,1),3);
  109.                             var x2 = min(_xx + irandom_range(0,1),roomWidth-4);
  110.                             var y1 = max(_yy - irandom_range(0,1),4);
  111.                             var y2 = min(_yy + irandom_range(0,1),roomHeight-4);
  112.                             ds_grid_set_region(_grid,x1-2,y1-2,x2+2,y2+2,FREE);
  113.                             ds_grid_set_region(_grid,x1,y1,x2,y2,BLOCKED); 
  114.                             }
  115.                         else
  116.                             {
  117.                             var x1 = max(_xx - irandom_range(4,7),1);
  118.                             var x2 = min(_xx + irandom_range(4,7),roomWidth-2);
  119.                             var y1 = max(_yy - irandom_range(2,5),2);
  120.                             var y2 = min(_yy + irandom_range(2,5),roomHeight-2);
  121.                             ds_grid_set_region(_grid,x1,y1,x2,y2,FREE);
  122.                             }
  123.                         }
  124.                     _xx = irandom_range(_roomx1+1, _roomx2-1);
  125.                     _yy = irandom_range(_roomy1+1, _roomy2-1);
  126.                     }
  127.                 _firstLoop = false;
  128.                 }
  129.             }
  130.        
  131.         var _spriteWall = Spr_Wall_Stone;
  132.         var _spriteFloor = Spr_Floor_Stone_Tile;
  133.         }break;
  134.     #endregion
  135.    
  136.    
  137.     #region 5/6 Plains of Existence - Treasure Room/Store
  138.     case 5: case 6:
  139.         {
  140.         var _roomx1 = 5;
  141.         var _roomy1 = 3;
  142.         var _roomx2 = roomWidth-6;
  143.         var _roomy2 = roomHeight-4;
  144.        
  145.         ds_grid_set_region(_grid,_roomx1,_roomy1,_roomx2,_roomy2,FREE);
  146.         _grid[# _roomx1,_roomy1] = BLOCKED;
  147.         _grid[# _roomx2,_roomy1] = BLOCKED;
  148.         _grid[# _roomx1,_roomy2] = BLOCKED;
  149.         _grid[# _roomx2,_roomy2] = BLOCKED;
  150.        
  151.         if(_type == 5)
  152.             {
  153.             _listDecals = ds_list_create();
  154.             ds_list_add(_listDecals,Spr_Treasure_Altar,0,(roomWidth div 2 - 2) * 16,(roomHeight div 2 - 2) * 16);
  155.        
  156.             ds_list_add(_listDecals,Spr_Prop_Shadows,1,(roomWidth div 2 - 1) * 16,(roomHeight div 2 - 1) * 16);
  157.             }
  158.         var _spriteWall = Spr_Wall_Stone;
  159.         var _spriteFloor = Spr_Floor_Stone_Tile;
  160.         }break;
  161.     #endregion
  162.    
  163.     #endregion Plains of Existence
  164.     }
  165. #endregion generate room structure
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement