Downloads containing mo4a_2-2.j2as

Downloads
Name Author Game Mode Rating
TSF with JJ2+ Only: Mystery of the Four... chandie Single player 6.6 Download file

File preview

  1. const bool MLLESetupSuccessful = MLLE::Setup(array<MLLEWeaponApply@> = {null, null, DefaultWeapons::Blaster(), DefaultWeapons::Blaster(), WeaponVMega::Backfire::Weapon(), null, DefaultWeapons::Blaster(), null, ArcaneWeapons::MortarLauncher::Weapon()}); ///@MLLE-Generated
  2. #include "MLLE-Include-1.5w.asc" ///@MLLE-Generated
  3. #pragma require "mo4a_2-2-MLLE-Data-1.j2l" ///@MLLE-Generated
  4. #pragma require "mo4a_2-2.j2l" ///@MLLE-Generated
  5. #include "ArcaneWeapon4.asc" ///@MLLE-Generated
  6. #pragma require "ArcaneWeapon4.asc" ///@MLLE-Generated
  7. #include "WeaponVMega5.asc" ///@MLLE-Generated
  8. #pragma require "WeaponVMega5.asc" ///@MLLE-Generated
  9. #include "MLLE-DefaultWeapons.asc" ///@MLLE-Generated
  10. #pragma require "MLLE-DefaultWeapons.asc" ///@MLLE-Generated
  11. #include "Jazz1Enemies v05.asc"
  12. #include "Resize v11.asc"
  13. bool boss = false;
  14. #include "HH18savegems.asc"
  15.  
  16. void onLevelLoad()  {
  17.         gem::restorePlayerGems();
  18.         p.keyRight = false;
  19.         p.keyJump = false;
  20.         p.keyLeft = false;
  21.         p.xSpeed = 0;
  22.         p.jumpStrength = 0;
  23.         p.ySpeed = 0;
  24.         p.direction = 1;
  25.         jjLevelName = ("@@@@@@@@@Castle Road");
  26.         Jazz1::MakeEnemy(OBJECT::LIZARD, Jazz1::Enemies::Pezrox_GreenSnake).SetUsesJJ2StyleDeathAnimation(true);
  27.         Jazz1::MakeEnemy(OBJECT::RAVEN, Jazz1::Enemies::Sluggion_Dragoon).SetUsesJJ2StyleDeathAnimation(true);
  28.         Jazz1::MakeEnemy(OBJECT::HATTER, Jazz1::Enemies::Turtemple_JeTurtle, true).SetUsesJJ2StyleDeathAnimation(true).SetBulletFireSound(SOUND::INTRO_SHOT1).SetBulletExplosionSound(SOUND::COMMON_GUNSM1);
  29.  
  30.         jjObjectPresets[OBJECT::SONICPLATFORM].scriptedCollisions = true;
  31.         jjObjectPresets[OBJECT::SONICPLATFORM].behavior = Carpet;
  32.         jjObjectPresets[OBJECT::SONICPLATFORM].lightType = LIGHT::BRIGHT;
  33.  
  34.         jjObjectPresets[OBJECT::SILVERCOIN].behavior = PlatinCoin();
  35.         jjObjectPresets[OBJECT::SILVERCOIN].scriptedCollisions = true;
  36.  
  37.         jjANIMATION@ anim = jjAnimations[jjObjectPresets[OBJECT::BANANA].curAnim];
  38.         anim.frameCount = 1;
  39.         jjANIMFRAME@ frame = jjAnimFrames[anim.firstFrame];
  40.         jjPIXELMAP carpet(0, 11*32, 2*32, 3*32, 5);
  41.         carpet.save(frame);
  42.         frame.hotSpotX = -42;
  43.         jjAddObject(OBJECT::SONICPLATFORM, 9*32, 4*32);
  44.  
  45.  
  46. }
  47.  
  48.  
  49. class PlatinCoin : jjBEHAVIORINTERFACE {
  50.  
  51.         void onBehave(jjOBJ@ obj) {
  52.                 if(p.coins >= 2)
  53.                 {obj.delete();}
  54.                 obj.behave(BEHAVIOR::PICKUP, false);
  55.                 ++obj.counter;
  56.                 obj.yPos = jjSin(obj.counter*15 + 5)*4 + obj.yOrg;
  57.                 jjDrawSpriteFromCurFrame(obj.xPos, obj.yPos, obj.curFrame, obj.direction, SPRITE::PALSHIFT, -8);
  58. }
  59.         bool onObjectHit(jjOBJ@ obj, jjOBJ@ bullet, jjPLAYER@ player, int force) {
  60.                 p.coins += 1;
  61.                 obj.behavior = BEHAVIOR::EXPLOSION2;
  62.                 jjSample(obj.xPos, obj.yPos, SOUND::COMMON_COIN, 1000);
  63.  
  64.                 return true;
  65.         }
  66. }
  67.  
  68.  
  69. bool onDrawHealth(jjPLAYER@ player, jjCANVAS@ canvas) {
  70.     return true;
  71. }
  72.  
  73. bool onDrawLives(jjPLAYER@ player, jjCANVAS@ canvas) {return true;}
  74.  
  75. bool startrush = false;
  76. bool readytorush = false;
  77. bool control = false;
  78.  
  79. void onPlayer(jjPLAYER@ p) {
  80. if(p.xPos < 11*32)
  81. {p.currWeapon = WEAPON::BLASTER;}
  82.  
  83. p.idle = 100;
  84.  
  85.         if(control == false) {
  86.         p.keyJump = false;
  87.         p.keyRight = false;
  88.         p.keyLeft = false; }
  89.  
  90.  
  91.         p.lightType = LIGHT::NONE;
  92.         gem::trackPlayerGems(p);
  93.         gem::upgradeHealth(p);
  94.         if(p.xPos > 332*32 && p.coins ==2)
  95.                 {jjNxt("mo4a_2-3_save", false, true);
  96.                 gem::saveGemData();}
  97.         if(p.xPos > 332*32 && p.coins < 2)
  98.                 {p.testForCoins(2);}
  99.         if(p.coins == 0)
  100.                 {p.coins += 1;}
  101.  
  102.  
  103.         if(p.food == 100 && jjKey[0x52] == false && startrush == false)
  104.                 {p.showText("@@@@@@@@@@@@@@@@Press 'R' when you need to use Sugar Rush!", STRING::MEDIUM);
  105.                 p.startSugarRush(0);
  106.                 startrush = true;
  107.                 readytorush = true;}
  108.  
  109.         if(readytorush == true)
  110.                 {p.food = 100;}
  111.  
  112.         if(p.food == 100 && jjKey[0x52])
  113.                 {p.startSugarRush(1400);
  114.                 p.food = 0;
  115.                 readytorush = false;
  116.                 startrush = false;
  117.         }
  118.  
  119.         for (int i = 1; i < jjObjectCount; i++) {
  120.                 jjOBJ@ o = jjObjects[i];
  121.                 if (o.isActive && o.eventID == OBJECT::SEEKERAMMO3 && p.ammo[WEAPON::SEEKER] < 1) {
  122.                         o.state = STATE::KILL;}
  123.         }
  124.         for (int i = 1; i < jjObjectCount; i++) {
  125.                 jjOBJ@ o = jjObjects[i];
  126.                 if (o.isActive && o.eventID == OBJECT::RFAMMO3 && p.ammo[WEAPON::RF] < 1) {
  127.                         o.state = STATE::KILL;}
  128.         }
  129.         for (int i = 1; i < jjObjectCount; i++) {
  130.                 jjOBJ@ o = jjObjects[i];
  131.                 if (o.isActive && o.eventID == OBJECT::TNTAMMO3 && p.ammo[WEAPON::TNT] < 1) {
  132.                         o.state = STATE::KILL;}
  133.         }
  134.         for (int i = 1; i < jjObjectCount; i++) {
  135.                 jjOBJ@ o = jjObjects[i];
  136.                 if (o.isActive && o.eventID == OBJECT::GUN9AMMO3 && p.ammo[WEAPON::GUN9] < 1) {
  137.                         o.state = STATE::KILL;}
  138.         }
  139.         for (int i = 1; i < jjObjectCount; i++) {
  140.                 jjOBJ@ o = jjObjects[i];
  141.                 if (o.isActive && o.eventID == OBJECT::SEEKERPOWERUP && p.ammo[WEAPON::SEEKER] < 1) {
  142.                         o.state = STATE::KILL;}
  143.         }
  144.         for (int i = 1; i < jjObjectCount; i++) {
  145.                 jjOBJ@ o = jjObjects[i];
  146.                 if (o.isActive && o.eventID == OBJECT::RFPOWERUP && p.ammo[WEAPON::RF] < 1) {
  147.                         o.state = STATE::KILL;}
  148.         }
  149.         for (int i = 1; i < jjObjectCount; i++) {
  150.                 jjOBJ@ o = jjObjects[i];
  151.                 if (o.isActive && o.eventID == OBJECT::TNTPOWERUP && p.ammo[WEAPON::TNT] < 1) {
  152.                         o.state = STATE::KILL;}
  153.         }
  154.         for (int i = 1; i < jjObjectCount; i++) {
  155.                 jjOBJ@ o = jjObjects[i];
  156.                 if (o.isActive && o.eventID == OBJECT::GUN9POWERUP && p.ammo[WEAPON::GUN9] < 1) {
  157.                         o.state = STATE::KILL;}
  158.         }
  159.  
  160. }
  161.  
  162.  
  163.  
  164.  
  165. void Carpet (jjOBJ@ obj) {
  166.  
  167.  
  168.         switch (obj.state) {
  169.                 case STATE::START:
  170.                         obj.determineCurAnim(ANIM::PICKUPS, 2);  
  171.                         obj.determineCurFrame();
  172.                         obj.playerHandling = HANDLING::SPECIAL;
  173.                         obj.state = STATE::FLY;
  174.                         obj.beSolid();
  175.                 case STATE::FLY:
  176.  
  177.                         obj.beSolid();
  178.                                 if (p.keyDown) {
  179.                                         obj.ySpeed = 2;
  180.                                         p.ySpeed = 3;
  181.                                         obj.yPos = obj.yPos + obj.ySpeed;
  182.                                         }
  183.                                 if (p.keyUp) {
  184.                                         obj.ySpeed = -2;
  185.                                         p.ySpeed = 3;
  186.                                         obj.yPos = obj.yPos + obj.ySpeed;
  187.                                         }
  188.                                 else
  189.  
  190.                                                 obj.direction = obj.xSpeed = 2;
  191.                         obj.xPos = obj.xPos + obj.xSpeed;
  192.                         obj.deactivates = false;
  193.  
  194.  
  195.                         if (jjMaskedVLine(obj.xSpeed > 0 ? obj.xPos : obj.xPos-16, obj.yPos, 1)) {
  196.                                         obj.ySpeed = -2;
  197.                                         obj.yPos = obj.yPos + obj.ySpeed;}
  198.  
  199.                         if (jjMaskedVLine(obj.xSpeed > 0 ? obj.xPos-32 : obj.xPos, obj.yPos-35, 1)) {
  200.                                         obj.ySpeed = 2;
  201.                                         p.ySpeed = 15;
  202.                                         obj.yPos = obj.yPos + obj.ySpeed;}
  203.  
  204.  
  205.  
  206.  
  207.                         if((p.yPos>obj.yPos+2) || (obj.xPos>p.xPos + 128)){
  208.                         p.health = 0;}
  209.  
  210.                         //jjDrawTile(obj.xPos - 17, obj.yPos - 32, 926);
  211.         obj.draw();
  212.                         break;
  213.  
  214.         }
  215. }
  216.  
  217.  
  218. void onMain() {
  219.  
  220. gem::deleteCollectedGems();
  221. if(jjKey[9] && jjKey[0x51]) {
  222. p.morphTo(CHAR::JAZZ, false);
  223. }
  224. if(jjKey[9] && jjKey[0x57]) {
  225. p.morphTo(CHAR::SPAZ, false);
  226. }
  227. if(jjKey[9] && jjKey[0x45]) {
  228. p.morphTo(CHAR::LORI, false);
  229. }
  230.         jjANIMATION@ anim = jjAnimations[jjObjectPresets[OBJECT::COKE].curAnim];
  231.         anim.frameCount = 1;
  232.         jjANIMFRAME@ frame = jjAnimFrames[anim.firstFrame];
  233.         jjPIXELMAP water(0, 15*32, 1*32, 1*32, 5);
  234.         water.save(frame);
  235.         frame.hotSpotX = -frame.width/2;
  236. }
  237.  
  238.  
  239. void onLevelReload()  {
  240.         jjAddObject(OBJECT::SONICPLATFORM, 9*32, 4*32);
  241.         gem::restorePlayerGems();
  242.         jjLocalPlayers[0].lives++;
  243.         p.keyDown = false;
  244.         p.keyUp = false;
  245. }
  246. bool onDrawAmmo(jjPLAYER@ player, jjCANVAS@ canvas) {
  247.         return MLLE::WeaponHook.drawAmmo(player, canvas);
  248. }
  249.