Downloads containing nyanrush.mut

Downloads
Name Author Game Mode Rating
TSF with JJ2+ Only: Nyan Rush sAlAmAnDeR Mutator N/A Download file

File preview

  1. #include "Resize v10.asc"
  2. #pragma require "nyancat.bmp"
  3. #pragma offer "nyan.wav"
  4. #pragma name "Nyan Rush"
  5.  
  6. ANIM::Set NYANCAT;
  7.  
  8. void onLevelLoad() {
  9.         TrueColor::ProcessPalette();
  10.         TrueColor::EnableCaching();
  11.         TrueColor::Bitmap spriteSheet("nyancat.bmp");
  12.         jjPALCOLOR background = spriteSheet.pixels[0][0];
  13.         jjPALCOLOR transparent = jjPALCOLOR(0,0,0);
  14.         for(uint i = 0; i < spriteSheet.width; i++) {
  15.                 for(uint j = 0; j < spriteSheet.height; j++) {
  16.                         if(spriteSheet.pixels[i][j] == background) {
  17.                                 spriteSheet.pixels[i][j] = transparent;
  18.                         }
  19.                 }
  20.         }
  21.        
  22.         array<array<TrueColor::Coordinates>> coordArray2 = {
  23.                 {
  24.                         TrueColor::Coordinates(2,12,37,22,-15,-10),
  25.                         TrueColor::Coordinates(48,10,40,24,-15,-10),
  26.                         TrueColor::Coordinates(96,11,36,22,-15,-10),
  27.                         TrueColor::Coordinates(138,11,37,23,-15,-10),
  28.                         TrueColor::Coordinates(181,11,36,22,-15,-10),
  29.                         TrueColor::Coordinates(220,11,36,22,-15,-10)
  30.                 }
  31.         };
  32.        
  33.        
  34.         NYANCAT = TrueColor::FindCustomAnim();
  35.        
  36.         int NUM_ANIMS = 1;
  37.         int NUM_SPRITES = 6;
  38.         int WIDTH = 40;
  39.         array<array<TrueColor::Coordinates>> coordArray(NUM_ANIMS, array<TrueColor::Coordinates>(NUM_SPRITES));
  40.         for(int i = 0; i < NUM_ANIMS; i++) {
  41.                 for(int j = 0; j < NUM_SPRITES; j++) {
  42.                         coordArray[i][j] = TrueColor::Coordinates(j*WIDTH, 11, 45, 25);
  43.                 }
  44.         }
  45.                        
  46.         Resize::AllocateAndResizeTrueColorSpriteSheet(NYANCAT, spriteSheet, coordArray2, 2);
  47. }
  48.  
  49. void onLevelBegin() {
  50.         jjSampleLoad(SOUND::RUSH_RUSH, "nyan.wav");
  51. }
  52.  
  53. bool isCat = false;
  54.  
  55. array<bool> isRush(32);
  56.  
  57. bool isAnim(jjPLAYER@ play, RABBIT::Anim anim) {
  58.         return play.curAnim - jjAnimSets[play.setID].firstAnim == uint(anim);
  59. }
  60.  
  61. bool isStomp(jjPLAYER@ play) {
  62.         return isAnim(play, RABBIT::BUTTSTOMPLAND) || isAnim(play, RABBIT::FALLBUTTSTOMP) || isAnim(play, RABBIT::FALLLAND) || isAnim(play, RABBIT::FALL);
  63. }
  64.  
  65. void onMain() {
  66.         if(jjIsServer) {
  67.                 for(int i = 0; i < 32; i++) {
  68.                         if(jjPlayers[i].getObjectHitForce() == 1 && !isStomp(jjPlayers[i])) {
  69.                                 isRush[i] = true;
  70.                                 jjDebug("CASE1");
  71.                         } else if(isRush[i] && isStomp(jjPlayers[i])) {
  72.                                 isRush[i] = true;
  73.                                 jjDebug("CASE2");
  74.                         } else {
  75.                                 isRush[i] = false;
  76.                         }
  77.                 }
  78.                
  79.                 for(int i = 0; i < 32; i++) {
  80.                         if(isRush[i]) {
  81.                                 jjPlayers[i].invisibility = true;
  82.                         } else {
  83.                                 jjPlayers[i].invisibility = false;
  84.                         }
  85.                 }
  86.  
  87.         }
  88.         for(int i = 0; i < 32; i++) {
  89.                 if(jjPlayers[i].invisibility == true) {
  90.                         jjTEXTAPPEARANCE style(STRING::NORMAL);
  91.                         style.align = STRING::CENTER;
  92.                         jjDrawString(jjPlayers[i].xPos+2,jjPlayers[i].yPos-27,"1" + jjPlayers[i].name, STRING::SMALL, style, 0, SPRITE::NORMAL, 0, 1);
  93.                         TrueColor::DrawSprite(jjPlayers[i].xPos,jjPlayers[i].yPos,NYANCAT,0,(jjGameTicks >> 3) * TrueColor::NumberOfFramesPerImage, jjPlayers[i].direction);
  94.                         particle(jjPlayers[i], -18, 24);
  95.                         particle(jjPlayers[i], -11, 43);
  96.                         particle(jjPlayers[i], -4, 40);
  97.                         particle(jjPlayers[i], 4, 19);
  98.                         particle(jjPlayers[i], 11, 35);
  99.                         particle(jjPlayers[i], 18, 93);
  100.                 }
  101.         }
  102. }
  103.  
  104. void particle(jjPLAYER@ player, int yOffset, int color) {
  105.         jjPARTICLE@ part = jjAddParticle(PARTICLE::STAR);
  106.         int xOffset = 15;
  107.         int dir = (player.direction < 0 ? 1 : -1);
  108.         xOffset = xOffset * dir;
  109.         part.xPos = player.xPos + xOffset;
  110.         part.yPos = player.yPos + yOffset + (jjSin((jjGameTicks % 35) * (1024/35))-0.5)*5;
  111.         part.xSpeed = dir * 5;
  112.         part.star.size = 12;
  113.         part.star.color = color;
  114. }