SHARE
TWEET

Untitled

a guest Aug 9th, 2019 77 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
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top