Downloads containing blghoney.j2as

Downloads
Name Author Game Mode Rating
TSF with JJ2+ Only: Honey CataCombs Rysice Battle N/A Download file

File preview

  1. const bool MLLESetupSuccessful = MLLE::Setup(array<MLLEWeaponApply@> = {null, null, null, NapsWeapons::HornetGun(), null, null, null, null, null}); ///@MLLE-Generated
  2. #include "MLLE-Include-1.5w.asc" ///@MLLE-Generated
  3. #pragma require "blghoney-MLLE-Data-1.j2l" ///@MLLE-Generated
  4. #pragma require "blghoney.j2l" ///@MLLE-Generated
  5. #include "hornetgun.asc" ///@MLLE-Generated
  6. #pragma require "hornetgun.asc" ///@MLLE-Generated
  7.  
  8. #pragma require "NapsMEV0-3-29.asc"
  9. #include "NapsMEV0-3-29.asc"
  10.  
  11. bool corruption = false;
  12. bool unlockCorruption = false;
  13. bool BEEr = false;
  14. bool unlockBEEr = false;
  15.  
  16. jjPAL corruptedPal;
  17. uint beeSprite = jjObjectPresets[OBJECT::SEEKERBULLET].curFrame;
  18. uint corruptBeeSprite = jjObjectPresets[OBJECT::SEEKERBULLETPU].curFrame;
  19. uint BEErSprite = jjObjectPresets[OBJECT::COKE].curFrame;
  20. int BEErTile = 1339;
  21. array<WaspWorkers@> Wasps();
  22. array<array<Waypoint@>> Waypoints();
  23.  
  24. void onPlayer(jjPLAYER@ play) {
  25.     NapModifier::onPlayerModifierHook(play);
  26.        
  27.         overSeer(play);
  28. }
  29. bool onDrawAmmo(jjPLAYER@ player, jjCANVAS@ canvas) {
  30.         return MLLE::WeaponHook.drawAmmo(player, canvas);
  31. }
  32.  
  33. /////////////////////////////////////////////////////////
  34.  
  35. const bool seeWaypoints = false;
  36. bool seeWasps = true;
  37. bool waspsSpawn = false;
  38.  
  39. void spawnWaypoints() {
  40.         Waypoint(70*32,16*32,0,0);
  41.         Waypoint(18*32,12*32,0,1);
  42.         Waypoint(34*32,11*32,0,2);
  43.         Waypoint(98*32,20*32,0,3,70*3);
  44.         Waypoint(84*32,29*32,0,4);
  45.         Waypoint(95*32,30*32,0,5);
  46.         Waypoint(100*32,40*32,0,6);    
  47.        
  48.         Waypoint(50*32,10*32,1,0);
  49.         Waypoint(45*32,25*32,1,1);
  50.         Waypoint(40*32,30*32,1,2);
  51.         Waypoint(42*32,31*32,1,3);
  52.         Waypoint(24*32,28*32,1,4);
  53.        
  54.         Waypoint(10*32,31*32,2,0);
  55.         Waypoint(16*32,28*32,2,1);
  56.         Waypoint(55*32,38*32,2,2);
  57.         Waypoint(11*32,11*32,2,3);
  58.        
  59.         Waypoint(88*32,40*32,3,0);
  60.         Waypoint(110*32,18*32,3,1);
  61.         Waypoint(100*32,18*32,3,2);
  62.         Waypoint(112*32,7*32,3,3);
  63.        
  64.         Waypoint(60*32,10*32,4,0);
  65.         Waypoint(74*32,2*32,4,1);
  66.         Waypoint(75*32,25*32,4,2);
  67.        
  68.         Waypoint(55*32,47*32,5,0);
  69.         Waypoint(50*32,35*32,5,1);
  70.         Waypoint(75*32,35*32,5,2);
  71.         Waypoint(78*32,50*32,5,3);
  72.  
  73.        
  74.        
  75. }
  76. void spawnWasps() {
  77.         WaspWorkers(16*32,16*32,0,3,0.1);
  78.         WaspWorkers(20*32,25*32,0,3,0.1);
  79.         WaspWorkers(0*32,40*32,0,3,0.1);
  80.         WaspWorkers(21*32,25*32,0,1,0.1);
  81.        
  82.         WaspWorkers(16*32,10*32,1,3,0.1);
  83.         WaspWorkers(20*32,25*32,1,3,0.1);
  84.        
  85.         WaspWorkers(16*32,10*32,2,3,0.5);
  86.         WaspWorkers(20*32,25*32,2,3,0.1);
  87.        
  88.         WaspWorkers(20*32,25*32,3,3,0.3);
  89.        
  90.         WaspWorkers(75*32,25*32,4,2,0.6);
  91.        
  92.         WaspWorkers(10*32,25*32,5,3,0.1);
  93.         WaspWorkers(22*32,25*32,5,3,0.3);
  94.         WaspWorkers(76*32,25*32,5,2,0.2);
  95. }
  96. ////////////////////////////////////////////////////////
  97.  
  98. void BEErApply() {
  99.         jjANIMATION@ anim = jjAnimations[jjObjectPresets[OBJECT::COKE].curAnim];
  100.         jjANIMFRAME@ frame = jjAnimFrames[anim.firstFrame];
  101.         jjPIXELMAP BEErAnim((BEErTile));
  102.         BEErAnim.save(frame);
  103. }
  104. void applyCorruptedPalette() {
  105.         for (int i = 128;i < 159;i++) {
  106.                         uint8 blue = corruptedPal.color[i].blue;
  107.                 corruptedPal.color[i].red -= 50;
  108.                 corruptedPal.color[i].blue = corruptedPal.color[i].red + 20;
  109.                 if (corruptedPal.color[i].red > 70) {
  110.                         corruptedPal.color[i].green = corruptedPal.color[i].red - 70;
  111.                 } else corruptedPal.color[i].green = 0;
  112.         }
  113.         for (int i = 192;i < 207;i++) {
  114.                 corruptedPal.color[i].red -= 20;
  115.                 corruptedPal.color[i].blue = corruptedPal.color[i].red + 20;
  116.                 if (corruptedPal.color[i].red > 70) {
  117.                         corruptedPal.color[i].green = corruptedPal.color[i].red - 70;
  118.                 } else corruptedPal.color[i].green = 0;
  119.         }
  120.         corruptedPal.apply();
  121. }
  122.  
  123. void resetPalette() {
  124.         corruptedPal.load("honey comb.j2t");
  125.         corruptedPal.apply();
  126. }
  127.  
  128. void onLevelLoad() {
  129.         init();
  130.         BEErApply();
  131.         corruptedPal.load("honey comb.j2t");
  132.         if (seeWasps) {
  133.                 spawnWaypoints();
  134.                 spawnWasps();
  135.                 waspsSpawn = true;
  136.         }
  137. }
  138.  
  139. class Waypoint {
  140.         int ID,position,timer;
  141.         float xPos,yPos;
  142.         Waypoint(){}
  143.         Waypoint(float xPixel, float yPixel,int waypointID,int pos, int wait = 0) {
  144.                 this.xPos = xPixel;
  145.                 this.yPos = yPixel;
  146.                 this.ID = waypointID;
  147.                 this.position = pos;
  148.                 this.timer = wait;
  149.                 if (Waypoints.length() <= uint(waypointID)) {
  150.                         Waypoints.resize(waypointID + 1);
  151.                 }
  152.                 if (Waypoints[waypointID].length() < uint(pos)) {
  153.                         Waypoints[waypointID].resize(pos + 1);
  154.                 }      
  155.                 Waypoints[waypointID].insertAt(pos,@this);
  156.         }
  157. }
  158.  
  159. void onDrawLayer7(jjPLAYER@ player, jjCANVAS@ canvas) {
  160.         if (seeWasps) {
  161.                 for (int i = 0;i < int(Wasps.length());i++) {
  162.                         WaspWorkers@ Wasp = Wasps[i];
  163.                         Wasp.draw(canvas);
  164.                         if (player.localPlayerID == 0) {
  165.                                 Wasp.running();
  166.                         }
  167.                 }
  168.         }
  169.         if (seeWaypoints) {
  170.                 for (int i = 0;i < int(Waypoints.length());i++) {
  171.                         for (int j = 0;j < int(Waypoints[i].length());j++) {
  172.                                 Waypoint@ WP = Waypoints[i][j];
  173.                                 jjDrawString(WP.xPos,WP.yPos,"| " + i + "| " + j,STRING::SMALL,STRING::NORMAL,0,0,8);
  174.                         }
  175.                 }
  176.         }
  177. }
  178.  
  179. class WaspWorkers {
  180.         float xPos,yPos,xSpeed,ySpeed,maxSpeed,acc,timerWait;
  181.         int waypointLine;
  182.         int waypoint = -1;
  183.         WaspWorkers(){}
  184.         WaspWorkers(float xPixel,float yPixel,int waypointID,float maxspeed,float speed = 4) {
  185.                 this.xPos = xPixel;
  186.                 this.yPos = yPixel;
  187.                 this.maxSpeed = maxspeed;
  188.                 this.waypointLine = waypointID;
  189.                 this.acc = speed;
  190.                 Wasps.insertLast(@this);
  191.         }
  192.         void running() {
  193.                 float targetXPos = 0;
  194.                 float targetYPos = 0;
  195.                 if (this.waypoint < int(Waypoints[waypointLine].length() - 1)) {
  196.                         targetXPos = Waypoints[waypointLine][waypoint + 1].xPos;
  197.                         targetYPos = Waypoints[waypointLine][waypoint + 1].yPos;
  198.                 } else {
  199.                         targetXPos = Waypoints[waypointLine][0].xPos;
  200.                         targetYPos = Waypoints[waypointLine][0].yPos;
  201.                 }
  202.                        
  203.                 if (this.xPos > targetXPos - 32*2 && this.xPos < targetXPos + 32*2 && this.yPos > targetYPos - 32*2 && this.yPos < targetYPos + 32*2 && (jjRandom() % 10 == 0)) {
  204.                         if (timerWait > 0) {
  205.                                 timerWait--;
  206.                         } else {
  207.                                 if (this.waypoint < int(Waypoints[waypointLine].length()) - 2) {
  208.                                         this.waypoint += 1;
  209.                                         this.timerWait = Waypoints[waypointLine][waypoint + 1].timer;
  210.                                 } else {
  211.                                         this.waypoint = -1;
  212.                                         this.timerWait = Waypoints[waypointLine][0].timer;
  213.                                 }
  214.                         }
  215.                 }
  216.                 const float PI = 3.1415927f;
  217.                 int destination = int(atan2(targetYPos - this.yPos , targetXPos - this.xPos)  * (512 / PI));
  218.                 this.xSpeed += acc * jjCos(destination);
  219.                 this.ySpeed += acc * jjSin(destination);
  220.                 if (this.xSpeed > this.maxSpeed) {
  221.                         this.xSpeed = this.maxSpeed;
  222.                 }
  223.                 if (this.xSpeed < -this.maxSpeed) {
  224.                         this.xSpeed = -this.maxSpeed;
  225.                 }
  226.                 if (this.ySpeed > this.maxSpeed) {
  227.                         this.ySpeed = this.maxSpeed;
  228.                 }
  229.                 if (this.ySpeed < -this.maxSpeed) {
  230.                         this.ySpeed = -this.maxSpeed;
  231.                 }
  232.                 this.xPos += this.xSpeed;
  233.                 this.yPos += this.ySpeed;
  234.         }
  235.         void draw(jjCANVAS@ canvas) {
  236.                 uint curFrame = (!corruption || BEEr? beeSprite : corruptBeeSprite) + ((jjGameTicks % 63)/7);
  237.                 canvas.drawSpriteFromCurFrame(int(xPos),int(yPos),curFrame,xSpeed >= 0? 1 : -1,SPRITE::TINTED);
  238.                 if (BEEr && unlockBEEr)
  239.                         canvas.drawResizedSpriteFromCurFrame(int(xPos) + (xSpeed >= 0? 24 : -24 ),int(yPos),BEErSprite,xSpeed >= 0? -0.8 : 0.8,0.5,SPRITE::TINTED);
  240.         }
  241. }
  242.  
  243. int gamesWithPowerup = 0;
  244. int powerupGained = 0;
  245.  
  246. void overSeer(jjPLAYER@ play) {
  247.         if (powerupGained == gamesWithPowerup) {
  248.                 if (play.powerup[4]) {
  249.                         powerupGained++;
  250.                         jjSTREAM interestingBehavior;
  251.                         interestingBehavior.push(powerupGained);
  252.                         interestingBehavior.save("blghoneyData");
  253.                 }
  254.         }
  255. }
  256. bool onLocalChat(string &in text, CHAT::Type type) {
  257.         if (jjRegexMatch(text, "!wasp", true)) {
  258.                 if (seeWasps == true) {
  259.                         seeWasps = false;
  260.                         jjConsole("|||You have ||||||disabled|| wasps");
  261.                 }
  262.                 else {
  263.                         seeWasps = true;
  264.                         jjConsole("|||You have |||||enabled||| wasps");
  265.                         if (waspsSpawn == false) {
  266.                                 spawnWaypoints();
  267.                                 spawnWasps();
  268.                                 waspsSpawn = true;
  269.                         }
  270.                 }
  271.                 saveSettings();
  272.                 return true;
  273.         }
  274.         if (jjRegexMatch(text, "!corrupt", true) && unlockCorruption == true) {
  275.                 if (corruption == true) {
  276.                         corruption = false;
  277.                         resetPalette();
  278.                         jjConsole("|||Corruption ||||||disabled");
  279.                 }
  280.                 else {
  281.                         corruption = true;
  282.                         applyCorruptedPalette();
  283.                         jjConsole("|||Corruption |||||enabled");
  284.                 }
  285.                 saveSettings();
  286.                 return true;
  287.         }
  288.         if (jjRegexMatch(text, "!beer", true) && unlockBEEr == true) {
  289.                 if (BEEr == true) {
  290.                         BEEr = false;
  291.                         jjConsole("|Back to work :(");
  292.                 }
  293.                 else {
  294.                         BEEr = true;
  295.                         jjConsole("Let's party! :)");
  296.                 }
  297.                 saveSettings();
  298.                 return true;
  299.         }
  300.         return false;
  301. }
  302.  
  303. void saveSettings() {
  304.         jjSTREAM wasp;
  305.         wasp.push(seeWasps);
  306.         wasp.push(corruption);
  307.         wasp.push(BEEr);
  308.         wasp.save("blghoney.asdat");
  309. }
  310. void init() {
  311.         jjSTREAM settings("blghoney.asdat");
  312.         if (settings.isEmpty() == false) {
  313.                 settings.pop(seeWasps);
  314.                 settings.pop(corruption);
  315.                 settings.pop(BEEr);
  316.         }
  317.         if (unlockCorruption && corruption) {
  318.                 applyCorruptedPalette();
  319.         }
  320.         jjSTREAM unlockable("blgBeehive.asdat");
  321.         if (unlockable.isEmpty() == false) {
  322.                 unlockable.pop(unlockCorruption);
  323.                 unlockable.pop(unlockBEEr);
  324.                 if (unlockCorruption || unlockBEEr) {
  325.                         jjConsole("0You have unlocked " + (unlockCorruption? "|||!Corrupt" : "") + (unlockCorruption && unlockBEEr? "||||| and" : "") + (unlockBEEr? "|||!Beer" : ""));
  326.                 }
  327.                
  328.         }
  329.         jjConsole("|||Wasps are currently " + (seeWasps? "|||||Enabled|||" : "||||||Disabled||") + ", type |||||||!wasp| to " + (seeWasps? "disable" : "enable") + " them");
  330.         jjSTREAM interesting("blghoneyData.asdat");
  331.         if (interesting.isEmpty() == false) {
  332.                 interesting.pop(gamesWithPowerup);
  333.                 powerupGained = gamesWithPowerup;
  334.         }
  335. }