Downloads containing PhoenixGun.asc

Downloads
Name Author Game Mode Rating
JJ2+ Only: violetclm DOM Episodes I... Violet CLM Custom / Concept N/A Download file
Custom Weapons...Featured Download Violet CLM Other 10 Download file

File preview

  1. #pragma require "PhoenixGun.asc"
  2. #include "MLLE-Weapons.asc"
  3. #pragma require "SmokeWopens.j2a"
  4.  
  5. namespace SmokeWopens {
  6.         namespace PhoenixGun {
  7.                 class Wopen : MLLEWeapons::WeaponInterface {
  8.                         Wopen() {
  9.                                 super(
  10.                                         regularObjectTemplate: MLLEWeapons::ObjectTemplate(
  11.                                                 xSpeed: 8,
  12.                                                 animSpeed: 2,
  13.                                                 killAnim: jjAnimSets[ANIM::AMMO].firstAnim + 82,
  14.                                                 curAnim: 1,
  15.                                                 lightType: LIGHT::POINT2,
  16.                                                 counterEnd: 85
  17.                                         ),
  18.                                         powerupObjectTemplate: MLLEWeapons::ObjectTemplate(
  19.                                                 xSpeed: 13,
  20.                                                 animSpeed: 2,
  21.                                                 killAnim: jjAnimSets[ANIM::AMMO].firstAnim + 82,
  22.                                                 curAnim: 1,
  23.                                                 lightType: LIGHT::POINT2,
  24.                                                 counterEnd: 175
  25.                                         ),
  26.                                         animSetFilename: "SmokeWopens.j2a",
  27.                                         animSetID: 2,
  28.                                         poweredUpPickupAnimation: 0,
  29.                                         roundsPerPickup: 1,
  30.                                         traits: se::weapon_default_traits | se::weapon_is_super_weapon | se::weapon_melts_ice,
  31.                                         behavior: function(obj, powerup) {
  32.                                                 jjSample(obj.xPos, obj.yPos, SOUND::COMMON_BIRDFLY);
  33.                                                 obj.var[6] = 8;
  34.                                                 obj.var[7] = 0;
  35.                                                 obj.special = 1;
  36.                                                 if (obj.eventID == OBJECT::ICEBULLET) obj.eventID = OBJECT::BLASTERBULLET;
  37.                                                 obj.behavior = Behavior;
  38.                                         }
  39.                                 );
  40.                         }
  41.                 }
  42.                
  43.                 void Behavior(jjOBJ@ obj) {
  44.                         const bool powerup = (obj.counterEnd / 100) != 0;
  45.                         const bool nativeDraw = obj.state == STATE::EXPLODE || powerup;
  46.                         obj.behave(BEHAVIOR::BULLET, nativeDraw);
  47.                         if (!nativeDraw) jjDrawRotatedSpriteFromCurFrame(obj.xPos, obj.yPos, obj.curFrame, MLLEWeapons::HelpfulBulletFunctions::GetAngle(obj), MLLEWeapons::HelpfulBulletFunctions::GetDirection(obj), 1, SPRITE::SINGLEHUE, 16);
  48.                
  49.                         if (obj.state == STATE::FLY && (obj.counter % 6) == 0) {
  50.                                 const int nextAngle = MLLEWeapons::HelpfulBulletFunctions::GetAngle(obj);
  51.                                 const int var6 = powerup ? 10 : 2;
  52.                                 for (int i = -9; i <= 9; i += 18) {
  53.                                         jjOBJ@ o = jjObjects[jjAddObject(OBJECT::FIRESHIELDBULLET, obj.xPos, obj.yPos, obj.creatorID, obj.creatorType, BEHAVIOR::BULLET)];
  54.                                         o.xSpeed = jjSin(nextAngle) * i;
  55.                                         o.ySpeed = jjCos(nextAngle) * i;
  56.                                         o.xAcc = o.yAcc = 0;
  57.                                         o.playerHandling = obj.playerHandling;
  58.                                         o.counter = 0;
  59.                                         o.counterEnd = 200;
  60.                                         o.animSpeed = 3;
  61.                                         o.determineCurAnim(ANIM::AMMO, 14);
  62.                                         o.var[3] = 6;
  63.                                         o.var[6] = var6;
  64.                                         o.lightType = LIGHT::POINT2;
  65.                                 }
  66.                         }
  67.                 }
  68.         }
  69. }