Downloads containing j2vfbeers.j2as

Downloads
Name Author Game Mode Rating
JJ2+ Only: Cold Beers Beach Slaz Battle N/A Download file

File preview

  1. #pragma require "beer.j2a"
  2. #pragma require "Silence.wav"
  3.  
  4. /*** This script is based around earlier stuff by Naps and PurpleJazz ***/
  5.  
  6. int id;
  7. uint drunk = 0;
  8. uint elapsed = 0;
  9.  
  10. array<SOUND::Sample> BeerSounds = {SOUND::COMMON_PLOOP1,SOUND::COMMON_PLOOP1,SOUND::COMMON_ITEMTRE,SOUND::COMMON_BUBBLGN1};
  11. array<bool> drinking(4, false);
  12.  
  13. void BEEEEEER() {
  14.         jjAnimations[jjObjectPresets[OBJECT::TACO].curAnim] = jjAnimations[jjAnimSets[ANIM::CUSTOM[0]].load(0, "beer.j2a")];
  15.         jjObjectPresets[OBJECT::TACO].scriptedCollisions = true;
  16.         jjObjectPresets[OBJECT::TACO].behavior = CustomPickup();
  17. }
  18.  
  19. class CustomPickup : jjBEHAVIORINTERFACE {
  20.         void onBehave(jjOBJ@ obj) {
  21.         obj.behave(BEHAVIOR::PICKUP);
  22.                         if (obj.eventID == OBJECT::TACO) {
  23.                         anim2(obj,0,5,3);
  24.                         jjPARTICLE@ particle = jjAddParticle(PARTICLE::ICETRAIL);
  25.                                 if (particle !is null && (jjGameTicks % 5) == 0 ) {
  26.                                 particle.xPos = obj.direction >= 0? (obj.xPos - 6) : (obj.xPos + 6);
  27.                                 particle.yPos = (obj.yPos - 1) + obj.var[8];
  28.                                 particle.xSpeed = 0;
  29.                                 particle.ySpeed = 0 - 0.3;
  30.                                 particle.icetrail.color = (9*8) -9;
  31.                                 particle.icetrail.colorDelta = -1;
  32.                                 particle.icetrail.colorStop = 8*8;
  33.                         }
  34.                 }
  35.         }
  36.         bool onObjectHit(jjOBJ@ obj, jjOBJ@, jjPLAYER@ play, int) {
  37.         obj.behavior = BEHAVIOR::EXPLOSION2;
  38.         obj.scriptedCollisions = false;
  39.         obj.frameID = 0;
  40.                 if (obj.eventID == OBJECT::TACO && play.shieldType == 0) {
  41.                 jjSample(obj.xPos, obj.yPos, BeerSounds[int(jjRandom() & 3)], 63);
  42.                 play.stoned += 140;
  43.                 }
  44.         return true;
  45.         }
  46. }
  47.  
  48. void anim2(jjOBJ@ obj ,int min,int max,int ms) {
  49.         if (obj.var[9] == 0) {
  50.                 if (jjGameTicks % ms == 0) {
  51.                         obj.var[8] = obj.var[8] + 1;
  52.                         }
  53.                         if (obj.var[8] == max) {
  54.                         obj.var[9] = 1;
  55.                         }
  56.                 }
  57.         else if (obj.var[9] == 1) {
  58.                 if (jjGameTicks % ms == 0) {
  59.                 obj.var[8] = obj.var[8]- 1;
  60.                 }
  61.                 if (obj.var[8] == min) {
  62.                 obj.var[9] = 0;
  63.                 }
  64.         }
  65. }
  66.  
  67. void onLevelLoad() {
  68.         BEEEEEER();
  69.         jjSampleLoad(SOUND::RUSH_RUSH, "Silence.wav");
  70.         jjSugarRushAllowed = true;
  71.         jjDelayGeneratedCrateOrigins = true;
  72.         jjUseLayer8Speeds = true;
  73.         jjTexturedBGTexture = TEXTURE::XARGON;
  74.         jjTexturedBGFadePositionY = 0.60;
  75.         jjSetWaterGradient();
  76.         jjWaterChangeSpeed = 0;
  77.         jjLayers[5].rotationRadiusMultiplier = 0;
  78.         jjLayers[2].rotationRadiusMultiplier = 0;
  79. }
  80.  
  81. void onDrawLayer4(jjPLAYER@ play, jjCANVAS@ screen) {
  82.         jjSetWaterLevel(32*60, true);
  83.         jjWaterLighting = (WATERLIGHT::GLOBAL);
  84. }
  85.  
  86. bool onDrawHealth(jjPLAYER@ play, jjCANVAS@ canvas) {
  87.         if (drunk > 0 && drunk < 420) {
  88.         canvas.drawSprite(jjSubscreenWidth-12, jjSubscreenHeight-444, ANIM::AMMO, 8, 3, 0, SPRITE::SINGLEHUE, 41); canvas.drawSprite(jjSubscreenWidth-28, jjSubscreenHeight-444, ANIM::AMMO, 8, 3, 0, SPRITE::SINGLEHUE, 41); canvas.drawSprite(jjSubscreenWidth-44, jjSubscreenHeight-444, ANIM::AMMO, 8, 3, 0, SPRITE::SINGLEHUE, 41); canvas.drawSprite(jjSubscreenWidth-60, jjSubscreenHeight-444, ANIM::AMMO, 8, 3, 0, SPRITE::SINGLEHUE, 41);
  89.                 canvas.drawSprite(jjSubscreenWidth-76, jjSubscreenHeight-444, ANIM::AMMO, 8, 3, 0, SPRITE::SINGLEHUE, 41);
  90.         }
  91.                
  92.         if (drunk > 420 && drunk < 840) {
  93.                 canvas.drawSprite(jjSubscreenWidth-12, jjSubscreenHeight-444, ANIM::AMMO, 8, 3, 0, SPRITE::SINGLEHUE, 41); canvas.drawSprite(jjSubscreenWidth-28, jjSubscreenHeight-444, ANIM::AMMO, 8, 3, 0, SPRITE::SINGLEHUE, 41); canvas.drawSprite(jjSubscreenWidth-44, jjSubscreenHeight-444, ANIM::AMMO, 8, 3, 0, SPRITE::SINGLEHUE, 41); canvas.drawSprite(jjSubscreenWidth-60, jjSubscreenHeight-444, ANIM::AMMO, 8, 3, 0, SPRITE::SINGLEHUE, 41);
  94.                 }
  95.                
  96.         if (drunk > 840 && drunk < 1260) {
  97.                 canvas.drawSprite(jjSubscreenWidth-12, jjSubscreenHeight-444, ANIM::AMMO, 8, 3, 0, SPRITE::SINGLEHUE, 41); canvas.drawSprite(jjSubscreenWidth-28, jjSubscreenHeight-444, ANIM::AMMO, 8, 3, 0, SPRITE::SINGLEHUE, 41); canvas.drawSprite(jjSubscreenWidth-44, jjSubscreenHeight-444, ANIM::AMMO, 8, 3, 0, SPRITE::SINGLEHUE, 41);
  98.                 }
  99.                
  100.         if (drunk > 1260 && drunk < 1680) {
  101.                 canvas.drawSprite(jjSubscreenWidth-12, jjSubscreenHeight-444, ANIM::AMMO, 8, 3, 0, SPRITE::SINGLEHUE, 41); canvas.drawSprite(jjSubscreenWidth-28, jjSubscreenHeight-444, ANIM::AMMO, 8, 3, 0, SPRITE::SINGLEHUE, 41);
  102.                 }
  103.                
  104.         if (drunk > 1680 && drunk < 2100) {
  105.                 canvas.drawSprite(jjSubscreenWidth-12, jjSubscreenHeight-444, ANIM::AMMO, 8, 3, 0, SPRITE::SINGLEHUE, 41);
  106.                 }
  107.                
  108.         return false;
  109. }
  110.  
  111. void onMain() {
  112.         jjWeapons[WEAPON::GUN8].comesFromGunCrates = true;
  113.         jjWeapons[WEAPON::GUN9].comesFromGunCrates = true;
  114. }
  115.  
  116. void onPlayer(jjPLAYER@ play) {
  117.         if (play.stoned > 0) {
  118.                 play.fastfire = 6;
  119.                 jjWeapons[WEAPON::SEEKER].style = WEAPON::NORMAL;
  120.                 jjWeapons[WEAPON::RF].style = WEAPON::NORMAL;
  121.                 }
  122.                
  123.         if (play.stoned == 140 && play.shieldType == 0) {
  124.                 play.shieldTime = 0;
  125.                 play.fastfire = 35;
  126.                 play.startSugarRush(140);
  127.                 jjMusicResume();
  128.                 jjWeapons[WEAPON::SEEKER].style = WEAPON::NORMAL;
  129.                 jjWeapons[WEAPON::RF].style = WEAPON::NORMAL;
  130.                 }
  131.                
  132.         if (play.stoned == 0) {
  133.                 play.fastfire = 35;
  134.                 jjWeapons[WEAPON::SEEKER].style = WEAPON::MISSILE;
  135.                 jjWeapons[WEAPON::RF].style = WEAPON::MISSILE;
  136.                 }
  137.                
  138.         if (play.shieldType == SHIELD::WATER) {
  139.                 jjWeapons[WEAPON::SEEKER].style = WEAPON::MISSILE;
  140.                 jjWeapons[WEAPON::RF].style = WEAPON::MISSILE;
  141.                 }
  142.                
  143.         if (play.yPos > jjWaterLevel) {
  144.                 switch(play.shieldType) {
  145.                         case 0: drunk++; play.shieldTime = 0; play.shieldType = 0; break;
  146.                         case 1: drunk++; play.shieldTime = 0; play.shieldType = 0; break;
  147.                         case 2: drunk = 0; break;
  148.                         case 3: drunk++; play.shieldTime = 0; play.shieldType = 0; break;
  149.                         case 4: drunk++; play.shieldTime = 0; play.shieldType = 0; break;
  150.                         }
  151.                 }
  152.         else if (play.yPos < jjWaterLevel) {
  153.                 drunk = 0;
  154.                 drinking[play.localPlayerID] = false;
  155.                 elapsed = 0;
  156.                 }
  157.                
  158.         jjPARTICLE@ particle = jjAddParticle(PARTICLE::STRING);
  159.                 if (particle !is null) {
  160.                         switch(drunk) {
  161.                                 case 1750: particle.xPos = play.xPos; particle.yPos = play.yPos; particle.string.text = "||||5"; particle.ySpeed = -0.05; jjSample(play.xPos, play.yPos, SOUND::AMMO_BLUB1); break;
  162.                                 case 1820: particle.xPos = play.xPos; particle.yPos = play.yPos; particle.string.text = "||||4"; particle.ySpeed = -0.05; jjSample(play.xPos, play.yPos, SOUND::AMMO_BLUB1); break;
  163.                                 case 1890: particle.xPos = play.xPos; particle.yPos = play.yPos; particle.string.text = "||||3"; particle.ySpeed = -0.05; jjSample(play.xPos, play.yPos, SOUND::AMMO_BLUB1); break;
  164.                                 case 1960: particle.xPos = play.xPos; particle.yPos = play.yPos; particle.string.text = "||||2"; particle.ySpeed = -0.05; jjSample(play.xPos, play.yPos, SOUND::AMMO_BLUB1); break;
  165.                                 case 2030: particle.xPos = play.xPos; particle.yPos = play.yPos; particle.string.text = "||||1"; particle.ySpeed = -0.05; jjSample(play.xPos, play.yPos, SOUND::AMMO_BLUB1); break;
  166.                                 case 2100: particle.xPos = play.xPos; particle.yPos = play.yPos; particle.string.text = "||||0"; particle.ySpeed = -0.05; jjSample(play.xPos, play.yPos, SOUND::AMMO_BLUB1); break;
  167.                                 }
  168.                         }
  169.                        
  170.                 if (drunk >= 2100) drinking[play.localPlayerID] = true;
  171.                 else drinking[play.localPlayerID] = false;
  172.                
  173.                 if (drinking[play.localPlayerID] == true) elapsed++;
  174.                 else elapsed = 0;
  175.                
  176.                 if (elapsed % 70 == 0 && drinking[play.localPlayerID] == true) {
  177.                         play.stoned += 70;
  178.                         play.startSugarRush(70);
  179.                         jjMusicResume();
  180.                         jjWeapons[WEAPON::SEEKER].style = WEAPON::NORMAL;
  181.                         jjWeapons[WEAPON::RF].style = WEAPON::NORMAL;
  182.                         }
  183.                 else
  184.                
  185.                 if (drunk > 0 && jjEventGet(play.xPos/32, play.yPos/32) == OBJECT::BUBBLER || jjEventGet(play.xPos/32, (play.yPos + 32)/32) == OBJECT::BUBBLER || jjEventGet(play.xPos/32, (play.yPos + 64)/32) == OBJECT::BUBBLER || jjEventGet(play.xPos/32, (play.yPos + 96)/32) == OBJECT::BUBBLER) {
  186.                         drunk = 1;
  187.                         }
  188.                        
  189.                 if (play.health == 0) {
  190.                         drunk = 0;
  191.                         elapsed = 0;
  192.                         }
  193. }