Downloads containing weaponVMega9.asc

Downloads
Name Author Game Mode Rating
JJ2+ Only: violetclm DOM Episodes I... Violet CLM Custom / Concept N/A Download file
TSF with JJ2+ Only: Anniversary Bash 22 levels Jazz2Online Multiple N/A Download file
Custom Weapons...Featured Download Violet CLM Other 10 Download file

File preview

  1. #pragma require "weaponVMega9.asc"
  2. #include "MLLE-Weapons.asc"
  3. #pragma require "weaponVMega.j2a"
  4.  
  5. namespace WeaponVMega {
  6.         namespace Meteor {
  7.                 class Weapon : MLLEWeapons::WeaponInterface {
  8.                         Weapon() {
  9.                                 super(
  10.                                         regularObjectTemplate: MLLEWeapons::ObjectTemplate(
  11.                                                 xSpeed: 4,
  12.                                                 playerHandling: HANDLING::PARTICLE, //initially
  13.                                                 lightType: LIGHT::NORMAL,
  14.                                                 light: 10,
  15.                                                 var: array<int> = {0,0,0,0,0,6,2},
  16.                                                 animSpeed: 2
  17.                                         ),
  18.                                         powerupObjectTemplate: MLLEWeapons::ObjectTemplate(
  19.                                                 xSpeed: 5,
  20.                                                 playerHandling: HANDLING::PARTICLE,
  21.                                                 lightType: LIGHT::NORMAL,
  22.                                                 light: 10,
  23.                                                 curAnim: 1,
  24.                                                 var: array<int> = {0,0,0,0,0,7,2},
  25.                                                 animSpeed: 3
  26.                                         ),
  27.                                         animSetFilename: "weaponVMega.j2a",
  28.                                         animSetID: 8,
  29.                                         pickupAnimation: 4,
  30.                                         poweredUpPickupAnimation: 5,
  31.                                         pickupFrameIDToUseForAmmoCrate: -10,
  32.                                         traits: se::weapon_default_traits | se::weapon_goes_through_walls | se::weapon_melts_ice,
  33.                                         behavior: function(obj, powerup) { obj.behavior = Behavior; }
  34.                                 );
  35.                         }
  36.                 }
  37.                 void Behavior(jjOBJ@ obj) {
  38.                         if (obj.state == STATE::START) {
  39.                                 obj.state = STATE::DELAYEDSTART;
  40.                                 obj.xSpeed += obj.var[7] / 65536.f;
  41.                                 obj.yPos -= 120;
  42.                                 obj.ySpeed += obj.var[5];
  43.                                 jjObjects[jjAddObject(OBJECT::EXPLOSION, obj.xPos, obj.yPos + 60, obj.objectID)].curAnim = obj.curAnim + 2;
  44.                                 DefaultWeapons::DefaultSample(obj, WEAPON::GUN9);
  45.                         } else if (obj.state == STATE::DELAYEDSTART) {
  46.                                 if (++obj.counter > 12) {
  47.                                         obj.state = STATE::FLY;
  48.                                         obj.playerHandling = HANDLING::PLAYERBULLET;
  49.                                 }
  50.                         } else if (++obj.counter > 75 || obj.state == STATE::EXPLODE) {
  51.                                 obj.frameID = 4;
  52.                                 obj.curAnim = jjAnimSets[ANIM::AMMO] + 77; //TNT
  53.                                 obj.behavior = BEHAVIOR::EXPLOSION;
  54.                         } else {
  55.                                 obj.xPos += obj.xSpeed;
  56.                                 obj.yPos += obj.ySpeed += 0.1f;
  57.                                 obj.var[10] = obj.var[10] + 1; //ricochet
  58.                                 obj.frameID = obj.objectID + jjGameTicks / 4;
  59.                                 obj.determineCurFrame();
  60.                                 jjDrawSpriteFromCurFrame(obj.xPos, obj.yPos, obj.curFrame, obj.direction, SPRITE::NORMAL, 0, 1);
  61.                         }
  62.                 }
  63.         }
  64. }