Downloads containing rpop.j2as

Downloads
Name Author Game Mode Rating
TSF with JJ2+ Only: Re-Purposed Offshore...Featured Download FireSworD Capture the flag 8.9 Download file

File preview

  1. #include "MLLE-Include-1.4.asc"
  2. const bool MLLESetupSuccessful = MLLE::Setup();
  3. #pragma require "rpop.j2l"
  4. #pragma require "rain.wav"
  5. #pragma require "creak08.wav"
  6. #pragma require "metalhit07.wav"
  7.  
  8. jjPAL rusted;
  9. int hue, sat, light;
  10.  
  11. bool isYellow() {
  12.         return hue > 0 && hue < 20;
  13. }
  14.  
  15. void onLevelLoad() {
  16.         jjUseLayer8Speeds = true;
  17.        
  18.         jjWaterLighting = WATERLIGHT::GLOBAL;
  19.         jjSetWaterLevel(53*32, true);
  20.         jjSetWaterGradient(0,0,0, 204,119,34);
  21.        
  22.         rusted.load("pk2.j2t");
  23.        
  24.         for (int n = 96; n <= 254; n++) {
  25.                 hue = jjPalette.color[n].getHue();
  26.                 sat = jjPalette.color[n].getSat();
  27.                 light = jjPalette.color[n].getLight();
  28.                
  29.                 rusted.color[n].setHSL(hue + (isYellow()? -5:20), sat * 2 / (isYellow()? 5:3), light * 2 / 3);
  30.         }
  31.         rusted.apply();
  32.        
  33.         darkenLayer(jjLayers[6]);
  34.                        
  35.         for (int x = 0; x < jjLayerWidth[4]; x++) {
  36.                 for (int y = 0; y < jjLayerHeight[4]; y++) {
  37.                         uint16 tile = jjTileGet(4, x, y);                      
  38.                         if (jjEventGet(x, y) == 119) jjTileSet(4, x, y, tile ^ TILE::VFLIPPED);
  39.                 }
  40.         }
  41.  
  42.     for (int i = 1; i < 255; i++) {
  43.                 if (jjObjectPresets[i].behavior == BEHAVIOR::PICKUP) {
  44.                         jjObjectPresets[i].behavior = CannotBeShotDown;
  45.                 }
  46.         }
  47.  
  48.         jjSampleLoad(SOUND::INTRO_BLOW, "rain.wav");
  49.         jjSampleLoad(SOUND::INTRO_BRAKE, "creak08.wav");
  50.         jjSampleLoad(SOUND::INTRO_GRAB, "metalhit07.wav");
  51. }
  52.  
  53. void CannotBeShotDown(jjOBJ@ obj) {
  54.         obj.behave(BEHAVIOR::PICKUP);
  55.         if (obj.state == STATE::FLOATFALL) obj.state = STATE::FLOAT;
  56. }
  57.  
  58. void darkenLayer(jjLAYER@ layer) {
  59.         array<int> tileIDs, uniqueTileIDs;
  60.         for (int i = 0; i < layer.height; i++) {
  61.                 for (int j = 0; j < layer.width; j++) {
  62.                         int tileID = layer.tileGet(j, i);
  63.                         if (tileID != 0)
  64.                                 tileIDs.insertLast(tileID);
  65.                 }
  66.         }
  67.         int prev = 0;
  68.         tileIDs.sortAsc();
  69.         for (uint i = 0; i < tileIDs.length(); i++) {
  70.                 if (tileIDs[i] != prev)
  71.                         uniqueTileIDs.insertLast(prev = tileIDs[i]);
  72.         }
  73.         uint firstNewTile = jjTileCount;
  74.         jjTilesFromTileset(jjTilesetFileName, 1, uniqueTileIDs.length());
  75.         array<uint8> mapping(256);
  76.         for (uint i = 0; i < uniqueTileIDs.length(); i++) {
  77.                 jjPIXELMAP tile(uniqueTileIDs[i]);
  78.                 for (int j = 0; j < 32; j++) {
  79.                         for (int k = 0; k < 32; k++) {
  80.                                 uint8 pixel = tile[k, j];
  81.                                 if (pixel != 0) {
  82.                                         if (mapping[pixel] == 0) {
  83.                                                 jjPALCOLOR color = jjPalette.color[pixel];
  84.                                                 color.red = color.red / 2;
  85.                                                 color.green = color.green / 2;
  86.                                                 color.blue = color.blue / 2;
  87.                                                 mapping[pixel] = jjPalette.findNearestColor(color);
  88.                                         }
  89.                                         tile[k, j] = mapping[pixel];
  90.                                 }
  91.                         }
  92.                 }
  93.                 tile.save(firstNewTile + i);
  94.         }
  95.         layer.generateSettableTileArea();
  96.         for (int i = 0; i < layer.height; i++) {
  97.                 for (int j = 0; j < layer.widthReal; j++) {
  98.                         int tileID = layer.tileGet(j, i);
  99.                         if (tileID != 0)
  100.                                 layer.tileSet(j, i, firstNewTile + uniqueTileIDs.find(tileID));
  101.                 }
  102.         }
  103. }
  104.  
  105.  
  106. void onLevelBegin() {
  107.         jjMASKMAP blank;
  108.         for (int i = 0; i < 8; i++) {
  109.                 blank.save(340 + i);
  110.         }
  111.        
  112.         jjPIXELMAP stripes(196);
  113.         jjPIXELMAP tempStripeMap;      
  114.  
  115.         for (uint x = 0; x < tempStripeMap.width; ++x) {
  116.                 for (uint y = 0; y < tempStripeMap.height; ++y) {
  117.                         if (x > 16 && y > 16) tempStripeMap[x,y] = 0;
  118.                         else tempStripeMap[x,y] = stripes[x,y];
  119.                 }
  120.         }
  121.         tempStripeMap.save(340);
  122.                        
  123.         for (uint x = 0; x < tempStripeMap.width; ++x) {
  124.                 for (uint y = 0; y < tempStripeMap.height; ++y) {
  125.                         if (y > 16) tempStripeMap[x,y] = 0;
  126.                         else tempStripeMap[x,y] = stripes[x,y];
  127.                 }
  128.         }
  129.         tempStripeMap.save(341);
  130.  
  131.         for (uint x = 0; x < tempStripeMap.width; ++x) {
  132.                 for (uint y = 0; y < tempStripeMap.height; ++y) {
  133.                         if (x < 16 && y > 16) tempStripeMap[x,y] = 0;
  134.                         else tempStripeMap[x,y] = stripes[x,y];
  135.                 }
  136.         }
  137.         tempStripeMap.save(342);
  138.        
  139.         for (uint x = 0; x < tempStripeMap.width; ++x) {
  140.                 for (uint y = 0; y < tempStripeMap.height; ++y) {
  141.                        
  142.                         if (x > 16) tempStripeMap[x,y] = 0;
  143.                         else tempStripeMap[x,y] = stripes[x,y];
  144.                 }
  145.         }
  146.         tempStripeMap.save(343);
  147.        
  148.         for (uint x = 0; x < tempStripeMap.width; ++x) {
  149.                 for (uint y = 0; y < tempStripeMap.height; ++y) {
  150.                        
  151.                         if (x < 16) tempStripeMap[x,y] = 0;
  152.                         else tempStripeMap[x,y] = stripes[x,y];
  153.                 }
  154.         }
  155.         tempStripeMap.save(344);
  156.        
  157.         for (uint x = 0; x < tempStripeMap.width; ++x) {
  158.                 for (uint y = 0; y < tempStripeMap.height; ++y) {
  159.                         if (x > 16 && y < 16) tempStripeMap[x,y] = 0;
  160.                         else tempStripeMap[x,y] = stripes[x,y];
  161.                 }
  162.         }
  163.         tempStripeMap.save(345);
  164.                        
  165.         for (uint x = 0; x < tempStripeMap.width; ++x) {
  166.                 for (uint y = 0; y < tempStripeMap.height; ++y) {
  167.                         if (y < 16) tempStripeMap[x,y] = 0;
  168.                         else tempStripeMap[x,y] = stripes[x,y];
  169.                 }
  170.         }
  171.         tempStripeMap.save(346);
  172.  
  173.         for (uint x = 0; x < tempStripeMap.width; ++x) {
  174.                 for (uint y = 0; y < tempStripeMap.height; ++y) {
  175.                         if (x < 16 && y < 16) tempStripeMap[x,y] = 0;
  176.                         else tempStripeMap[x,y] = stripes[x,y];
  177.                 }
  178.         }
  179.         tempStripeMap.save(347);
  180. }
  181.  
  182. void onMain() {
  183.         jjIsSnowing = !jjLowDetail;
  184.        
  185.         if (!jjLowDetail) {
  186.                 if (jjGameTicks % 140 == 0) jjSample(jjLocalPlayers[0].xPos, jjLocalPlayers[0].yPos, SOUND::INTRO_BLOW, 48, 0);
  187.                 if (jjGameTicks % 1500 == 0) jjSample(jjLocalPlayers[0].xPos, jjLocalPlayers[0].yPos, SOUND::INTRO_BRAKE, 60, 0);
  188.                 if (jjGameTicks % 2400 == 0) jjSample(jjLocalPlayers[0].xPos, jjLocalPlayers[0].yPos, SOUND::INTRO_GRAB, 32, 0);
  189.         }
  190. }