Downloads containing mo4a_3-1_revisited2.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, ArcaneWeapons::FusionCannon::Weapon(), WeaponVMega::Voranj::Weapon(), WeaponVMega::Backfire::Weapon(), null, ArcaneWeapons::FusionCannon::Weapon(), null, ArcaneWeapons::MortarLauncher::Weapon()}); ///@MLLE-Generated
  2. #include "MLLE-Include-1.5w.asc" ///@MLLE-Generated
  3. #pragma require "mo4a_3-1_revisited2-MLLE-Data-1.j2l" ///@MLLE-Generated
  4. #pragma require "mo4a_3-1_revisited2.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 "WeaponVMega8.asc" ///@MLLE-Generated
  10. #pragma require "WeaponVMega8.asc" ///@MLLE-Generated
  11. #include "ArcaneWeapon9.asc" ///@MLLE-Generated
  12. #pragma require "ArcaneWeapon9.asc" ///@MLLE-Generated
  13. #include "Jazz1Enemies v05.asc"
  14. #include "Resize v11.asc"
  15. #include "TrueColor v13.asc"
  16. #include "HH18savegems.asc"
  17.  
  18.  
  19. bool onDrawLives(jjPLAYER@ player, jjCANVAS@ canvas) {return true;}
  20.  
  21. bool onDrawAmmo(jjPLAYER@ player, jjCANVAS@ canvas) {
  22.         return MLLE::WeaponHook.drawAmmo(player, canvas);
  23. }
  24.  
  25. void onLevelLoad() {
  26.         gem::restorePlayerGems();
  27.         jjSetWaterLevel(16*32, true);
  28.         jjLevelName = ("@@@@@@@@@Central Area");
  29.         jjWaterLighting = WATERLIGHT::GLOBAL;
  30.         Jazz1::MakeEnemy(OBJECT::HATTER, Jazz1::Enemies::Marbelara_Schwarzenguard, true).SetUsesJJ2StyleDeathAnimation(true).SetBulletFireSound(SOUND::INTRO_SHOT1).SetBulletExplosionSound(SOUND::COMMON_GUNSM1);
  31.         Jazz1::MakeEnemy(OBJECT::DRAGONFLY, Jazz1::Enemies::Marbelara_Drageen).SetUsesJJ2StyleDeathAnimation(true);
  32.         Jazz1::MakeEnemy(OBJECT::FLOATSUCKER, Jazz1::Enemies::Marbelara_Firebomb).SetUsesJJ2StyleDeathAnimation(true);
  33.         Jazz1::MakeEnemy(OBJECT::NORMTURTLE, Jazz1::Enemies::Dreempipes_TerrapinSwimmer).SetUsesJJ2StyleDeathAnimation(true);
  34.  
  35.         jjObjectPresets[OBJECT::EVA].behavior = TimeMachine;
  36.         jjObjectPresets[OBJECT::EVA].determineCurAnim(ANIM::FLAG, 1);
  37.         jjObjectPresets[OBJECT::EVA].putOnGround(false);
  38.         jjObjectPresets[OBJECT::EVA].scriptedCollisions = true;
  39.         jjANIMATION@ tmAnim = jjAnimations[jjObjectPresets[OBJECT::EVA].curAnim];
  40.         for (uint i = 0; i < tmAnim.frameCount; ++i)
  41.                 jjAnimFrames[tmAnim.firstFrame + i].coldSpotY = -44;
  42.         for (uint i = 0; i < tmAnim.frameCount; ++i)
  43.                 jjAnimFrames[tmAnim.firstFrame + i].hotSpotY = -64;
  44.         for (uint i = 0; i < tmAnim.frameCount; ++i)
  45.                 jjAnimFrames[tmAnim.firstFrame + i].hotSpotX = -54;
  46.  
  47.         jjObjectPresets[OBJECT::ICEAMMO15].behavior = FCannon();
  48.         jjObjectPresets[OBJECT::ICEAMMO15].scriptedCollisions = true;
  49.         jjObjectPresets[OBJECT::ICEAMMO15].playerHandling = HANDLING::SPECIAL;
  50.  
  51.         jjObjectPresets[OBJECT::TNTAMMO3].deactivates = false;
  52.  
  53.         jjObjectPresets[OBJECT::FLYCARROT].determineCurAnim(ANIM::PLUS_WARP, 0);
  54.         jjObjectPresets[OBJECT::FLYCARROT].behavior = Bonus;
  55.         jjObjectPresets[OBJECT::FLYCARROT].scriptedCollisions = true;
  56.         jjANIMATION@ BAnim = jjAnimations[jjObjectPresets[OBJECT::FLYCARROT].curAnim];
  57.         for (uint i = 0; i < BAnim.frameCount; ++i)
  58.                 jjAnimFrames[BAnim.firstFrame + i].hotSpotY = -85;
  59.         for (uint i = 0; i < BAnim.frameCount; ++i)
  60.                 jjAnimFrames[BAnim.firstFrame + i].hotSpotX = 20;
  61.  
  62.         jjObjectPresets[OBJECT::INVINCIBILITY].determineCurAnim(ANIM::PLUS_WARP, 1);
  63.         jjObjectPresets[OBJECT::INVINCIBILITY].behavior = Bonuseye;
  64.         jjObjectPresets[OBJECT::INVINCIBILITY].scriptedCollisions = true;
  65.         jjObjectPresets[OBJECT::INVINCIBILITY].bulletHandling = HANDLING::IGNOREBULLET;
  66.         jjObjectPresets[OBJECT::INVINCIBILITY].playerHandling = HANDLING::PLAYERBULLET;
  67.         jjANIMATION@ BeAnim = jjAnimations[jjObjectPresets[OBJECT::INVINCIBILITY].curAnim];
  68.  
  69.         for (uint i = 0; i < BeAnim.frameCount; ++i)
  70.                 jjAnimFrames[BeAnim.firstFrame + i].hotSpotY = 16;
  71.         for (uint i = 0; i < BeAnim.frameCount; ++i)
  72.                 jjAnimFrames[BeAnim.firstFrame + i].hotSpotX = 26;
  73.  
  74. }
  75.  
  76. void Bonuseye(jjOBJ@ obj){
  77.         obj.direction = -1;
  78.         obj.behave(BEHAVIOR::PICKUP, false);
  79.         obj.draw();
  80. }
  81. void Bonus(jjOBJ@ obj){
  82.         obj.putOnGround();
  83.         obj.direction = -1;
  84.         obj.behave(BEHAVIOR::PICKUP, false);
  85.         obj.draw();
  86. }
  87.  
  88. void TimeMachine(jjOBJ@ obj){
  89.         obj.behave(BEHAVIOR::EVA, false);
  90.                         jjDrawResizedSpriteFromCurFrame(obj.xPos, obj.yPos, obj.curFrame, 1, 1, SPRITE::PALSHIFT, 8);
  91.  
  92. }
  93.  
  94. class FCannon : jjBEHAVIORINTERFACE {
  95.  
  96.         void onBehave(jjOBJ@ obj) {
  97.                 if(p.ammo[WEAPON::TNT] > 1)
  98.                 {obj.delete();}
  99.                 obj.behave(BEHAVIOR::MONITOR); 
  100.         }
  101.         bool onObjectHit(jjOBJ@ obj, jjOBJ@ bullet, jjPLAYER@ play, int force) {
  102.                 if(bullet !is null && play !is null)
  103.                         {obj.behave(BEHAVIOR::EXPLOSION2);
  104.                         jjAddObject(OBJECT::TNTAMMO3, 54*32, 13*32);
  105.                         jjAddObject(OBJECT::TNTAMMO3, 55*32, 13*32);
  106.                         jjAddObject(OBJECT::TNTAMMO3, 56*32, 13*32);
  107.                         jjAddObject(OBJECT::TNTAMMO3, 56*32, 12*32);                   
  108.                         jjAddObject(OBJECT::TNTAMMO3, 55*32, 12*32);
  109.                         jjAddObject(OBJECT::TNTAMMO3, 54*32, 12*32);
  110.                         jjSample(p.xPos, p.yPos, SOUND::COMMON_HARP1, 1000);}
  111.                 return true;
  112.         }
  113.        
  114. }
  115.  
  116. void onFunction0(jjPLAYER@ p){
  117.         jjNxt("mo4a_save6", false, true);
  118.         gem::saveGemData();}
  119.  
  120. bool buyammo = false;
  121.  
  122. void onPlayer(jjPLAYER@ p) {
  123.         gem::trackPlayerGems(p);
  124.         gem::upgradeHealth(p);
  125.         p.lightType = LIGHT::NONE;
  126.  
  127.         if(p.ammo[WEAPON::TNT] < 1 && p.xPos>36*32 && p.xPos<40*32 && p.yPos<16*32 && p.yPos>13*32 && jjKey[0x50] && p.gems[GEM::RED]<50 && buyammo == false)
  128.                 {p.testForGems(50, GEM::RED);}
  129.         if(p.ammo[WEAPON::TNT] < 1 && p.xPos>36*32 && p.xPos<40*32 && p.yPos<16*32 && p.yPos>13*32 && jjKey[0x50] && p.gems[GEM::RED]>=50 && buyammo == false)
  130.                 {p.testForGems(50, GEM::RED);
  131.                 jjTriggers[9]=true;
  132.                 buyammo = true;}
  133.         if(p.ammo[WEAPON::TNT] >= 1 && p.xPos>36*32 && p.xPos<40*32 && p.yPos<16*32 && p.yPos>13*32 && jjKey[0x50] && buyammo == false)
  134.                 {p.showText("@@You already have the weapon.");}
  135. }
  136.  
  137. void onLevelReload()  {
  138.         gem::restorePlayerGems();
  139.         jjLocalPlayers[0].lives++;
  140.         buyammo == false;
  141.         jjTriggers[9] = false;
  142.         jjWaterLighting = WATERLIGHT::GLOBAL;
  143.  
  144. }
  145.  
  146.  
  147. void onMain() {
  148. gem::deleteCollectedGems();
  149. if(jjKey[9] && jjKey[0x51]) {
  150. p.morphTo(CHAR::JAZZ, false);
  151. }
  152. if(jjKey[9] && jjKey[0x57]) {
  153. p.morphTo(CHAR::SPAZ, false);
  154. }
  155. if(jjKey[9] && jjKey[0x45]) {
  156. p.morphTo(CHAR::LORI, false);
  157. }
  158. }
  159.