Downloads containing invisibilitycarrot.asc

Downloads
Name Author Game Mode Rating
TSF with JJ2+ Only: Anniversary Bash 22 levels Jazz2Online Multiple N/A Download file
TSF with JJ2+ Only: The AbyssFeatured Download PurpleJazz Battle 9.8 Download file

File preview

  1. #pragma require "invisibilitycarrot.asc"
  2.  
  3. namespace InvisibilityCarrot {
  4.         int invisibilityTime;
  5.  
  6.         void loadPresets(OBJECT::Object eventID) {
  7.                 jjObjectPresets[eventID].scriptedCollisions = true;
  8.                 jjObjectPresets[eventID].determineCurAnim(ANIM::PICKUPS, 72);
  9.                 jjObjectPresets[eventID].determineCurFrame();
  10.                 jjObjectPresets[eventID].behavior = InvisibilityCarrot();
  11.         }
  12.        
  13.         class InvisibilityCarrot : jjBEHAVIORINTERFACE {
  14.                 void onBehave(jjOBJ@ obj) {
  15.                         obj.behave(BEHAVIOR::PICKUP);
  16.                 }
  17.                 bool onObjectHit(jjOBJ@ obj, jjOBJ@ bull, jjPLAYER@ play, int force) {
  18.                         play.invisibility = true;
  19.                         play.timerTime = invisibilityTime;
  20.                         jjSample(obj.xPos, obj.yPos, SOUND::INTRO_END);
  21.                         obj.behavior = BEHAVIOR::EXPLOSION2;
  22.                         obj.scriptedCollisions = false;
  23.                         obj.frameID = 0;
  24.                        
  25.                         return true;
  26.                 }
  27.         }
  28.        
  29.         void playerSettings(jjPLAYER@ play) {
  30.                 if (play.invisibility) jjDrawSpriteFromCurFrame(play.xPos, play.yPos, play.curFrame, play.direction, SPRITE::BLEND_LUMINANCE, 100, 4, 4);
  31.                
  32.                 if (play.invisibility && play.timerState == TIMER::STOPPED) play.timerStart(invisibilityTime);
  33.                 if (!play.invisibility) play.timerStop();
  34.                 if (play.timerState == TIMER::STARTED && play.timerTime <= 3*70 && play.timerTime > 0 && play.timerTime % 70 == 0) jjSamplePriority(SOUND::COMMON_NOCOIN);
  35.                 if (play.timerTime == 1) {
  36.                         play.invisibility = false;
  37.                         jjSamplePriority(SOUND::COMMON_SHLDOF3);
  38.                 }
  39.         }
  40.        
  41.         void drawPlayers() {
  42.                 for (int i = 0; i < 32; i++) {
  43.                         jjPLAYER@ invisiblePlayer = jjPlayers[i];
  44.                         if (invisiblePlayer.invisibility && !invisiblePlayer.isLocal) jjDrawSpriteFromCurFrame(invisiblePlayer.xPos, invisiblePlayer.yPos, invisiblePlayer.curFrame, invisiblePlayer.direction, SPRITE::BLEND_LUMINANCE, invisiblePlayer.keyFire? 100:15, 4, 4);
  45.                 }
  46.         }
  47.        
  48.         void drawTimer(jjPLAYER@ play, jjCANVAS@ canvas) {
  49.             if (play.invisibility == true) {
  50.                 canvas.drawString(
  51.                                 jjSubscreenWidth - 73,
  52.                         jjSubscreenHeight - 284,
  53.                         "" + (play.timerTime + 70) / 70,
  54.                         STRING::LARGE,
  55.                         STRING::PALSHIFT,
  56.                         play.timerTime > 3*70?
  57.                                 0 :
  58.                                 jjGameTicks % 28 > 14?
  59.                                         -40 :
  60.                                         -24
  61.                         );
  62.                
  63.                         canvas.drawSprite(
  64.                                 jjSubscreenWidth - 90,
  65.                                 jjSubscreenHeight - 270,
  66.                                 ANIM::PICKUPS,
  67.                                 72,
  68.                                 jjGameTicks >> 2
  69.                         );
  70.                 }
  71.         }
  72. }
  73.  
  74.