Downloads containing lhoo.j2as

Downloads
Name Author Game Mode Rating
JJ2+ Only: Outrageously Orange V2.5Featured Download TreyLina Battle 8.8 Download file

File preview

  1. class vector2i {
  2.         int x, y;
  3. }
  4.  
  5. array<vector2i> oneWays;
  6.  
  7. void onLevelLoad() {
  8.         jjOBJ@ obj = jjObjectPresets[OBJECT::BOUNCERBULLETPU];
  9.         obj.behavior = OrangeGun;
  10.         obj.special = obj.determineCurAnim(ANIM::PICKUPS, 71);
  11.         obj.killAnim = jjObjectPresets[OBJECT::SEEKERBULLET].killAnim;
  12.         obj.var[6] = 0;
  13.         jjObjects[0].determineCurAnim(ANIM::WARP20, 0, false);
  14. }
  15.  
  16. void onDrawLayer4(jjPLAYER@ play, jjCANVAS@ layer) {
  17.         layer.drawSprite(26*32, 7*32, ANIM::WARP20, 0, jjGameTicks >> 3);
  18. }
  19.  
  20. void OrangeGun(jjOBJ@ obj) {
  21.         obj.behave(BEHAVIOR::BOUNCERBULLETPU, false);
  22.         jjDrawRotatedSpriteFromCurFrame(obj.xPos, obj.yPos, obj.curFrame, obj.direction * obj.counter << 4);
  23.         if (obj.state != STATE::EXPLODE
  24.                 && (jjMaskedPixel(int(obj.xPos) + int(obj.xSpeed), int(obj.yPos))
  25.                 || jjMaskedPixel(int(obj.xPos) - int(obj.xSpeed), int(obj.yPos))
  26.                 || jjMaskedPixel(int(obj.xPos), int(obj.yPos) + 8 + int(obj.ySpeed))
  27.                 || jjMaskedPixel(int(obj.xPos), int(obj.yPos) - int(obj.ySpeed)))
  28.                 && jjEventAtLastMaskedPixel != AREA::VINE) {
  29.                         if (jjSoundEnabled) jjSample(obj.xPos, obj.yPos, SOUND::MONKEY_SPLUT, 0, 0);
  30.                         obj.state = STATE::EXPLODE;
  31.         }
  32. }
  33.  
  34. void onPlayer(jjPLAYER@ play) {
  35.         play.powerup[WEAPON::BOUNCER] = true;
  36.         play.currWeapon = WEAPON::BOUNCER;
  37.         play.noFire = play.ammo[WEAPON::BOUNCER] == 0;
  38.         if (play.charCurr == CHAR::JAZZ) {
  39.                 if (play.specialMove > 0) {
  40.                         if (play.specialMove < 14) play.specialMove = 14;
  41.                         play.ySpeed = -8;
  42.                 }
  43.         }
  44.         for (uint i = 0; i < oneWays.length(); i++) {
  45.                 jjEventSet(oneWays[i].x, oneWays[i].y, AREA::ONEWAY);
  46.         }
  47.         oneWays.resize(0);
  48.         int px = int(play.xPos), py = int(play.yPos);
  49.         bool masked;
  50.         for (int i = -11 + int(play.ySpeed); i <= 14; i++) {
  51.                 if (masked = jjMaskedHLine(px - 14, 28, py + i))
  52.                         break;
  53.         }
  54.         if (!masked) {
  55.                 for (int i = 8; i <= 16; i += 8) {
  56.                         for (int j = 12; j <= 20; j += 8) {
  57.                                 int x = (px + play.direction * j) >>> 5, y = (py + i) >>> 5;
  58.                                 if (x >= 0 && y >= 0 && x < jjLayerWidth[4] && y < jjLayerHeight[4] && jjEventGet(x, y) == AREA::ONEWAY) {
  59.                                         vector2i point;
  60.                                         jjEventSet(point.x = x, point.y = y, 0);
  61.                                         oneWays.insertLast(point);
  62.                                 }
  63.                         }
  64.                 }
  65.         }
  66. }
  67.  
  68. void onFunction1(jjPLAYER@ play) {
  69.         if (play.testForCoins(20)) {
  70.                 play.ammo[WEAPON::BOUNCER] = play.ammo[WEAPON::BOUNCER] + 10;
  71.                 jjSamplePriority(SOUND::MENUSOUNDS_TYPEENTER);
  72.  
  73.         }
  74. }
  75.  
  76. bool onDrawAmmo(jjPLAYER@ play, jjCANVAS@ canvas) {
  77.         if (!play.noFire) {
  78.                 canvas.drawSprite(
  79.                         jjSubscreenWidth - 90,
  80.                         jjSubscreenHeight - 14,
  81.                         ANIM::PICKUPS, 71, 0,
  82.                         SPRITE::NORMAL
  83.                 );
  84.                 canvas.drawString(
  85.                         jjSubscreenWidth - 80,
  86.                         jjSubscreenHeight - 14,
  87.                         "x" + play.ammo[WEAPON::BOUNCER],
  88.                         STRING::MEDIUM,
  89.                         STRING::NORMAL
  90.                 );
  91.                 return true;
  92.         }
  93.         return false;
  94. }
  95.