// /\/\47R1X /\/U|<3
// By Peircing_Viper
datablock ShockwaveData(MatrixShockwave)
{
   width = 20.0;
   numSegments = 50;
   numVertSegments = 9;
   velocity = 40;
   acceleration = 30.0;
   lifetimeMS = 20000;
   height = 1.0;
   verticalCurve = 0.5;
   is2D = false;

   texture[0] = "special/shockwave5";
   texture[1] = "special/gradient";
   texture[2] = "special/shieldmap";
   texWrap = 6.0;

   times[0] = 0.0;
   times[1] = 0.5;
   times[2] = 1.0;

   colors[0] = "1 8 1 1";
   colors[1] = "1 1 9 .5";
   colors[2] = "10 1 1 1";

   mapToTerrain = false;
   orientToNormal = true;
   renderBottom = true;
};


datablock ExplosionData(Matriximplosion)
{
   soundProfile   = plasmaExplosionSound;

   shockwave = suctionShockwave;
   shockwaveOnTerrain = false;


   emitter[0] = Mortarbubbleemitter;

};
//projectile////
datablock LinearFlareProjectileData(Matrix)
{
   projectileShapeName = "plasmabolt.dts";
   scale               = "2.0 2.0 2.0";
   faceViewer          = true;
   directDamage        = 0.0;
   hasDamageRadius     = true;
   indirectDamage      = 0;
   damageRadius        = 16;
   kickbackstrength    = -6000.0;

   explosion           = "Matriximplosion";
   splash              = PlasmaSplash;

   dryVelocity       = 350;
   wetVelocity       = 350;
   velInheritFactor  = 0.3;
   fizzleTimeMS      = 0;
   lifetimeMS        = 90;
   explodeOnDeath    = true;
   reflectOnWaterImpactAngle = 0.0;
   explodeOnWaterImpact      = true;
   deflectionOnWaterImpact   = 0.0;
   fizzleUnderwaterMS        = -1;

   //activateDelayMS = 100;
   activateDelayMS = -1;

   size[0]           = 0.2;
   size[1]           = 0.5;
   size[2]           = 0.1;


   numFlares         = 35;
   flareColor        = "1 0.75 0.25";
   flareModTexture   = "flaremod";
   flareBaseTexture  = "flarebase";

	sound        = PlasmaProjectileSound;
   fireSound    = PlasmaFireSound;
   wetFireSound = PlasmaFireWetSound;

   hasLight    = true;
   lightRadius = 3.0;
   lightColor  = "1 9 0";
};


datablock ShapeBaseImageData(MatrixNukeImage)
{
   className = WeaponImage;
   shapeFile = "weapon_targeting.dts";
   item      = MatrixNuke;
   usesenergy = true;

   projectile = Matrix;
   projectileType = linearflareprojectile;

   emap = true;



   //--------------------------------------
   stateName[0]             = "Activate";
   stateSequence[0]         = "Activate";
   stateSound[0]            = ChaingunSwitchSound;
   stateAllowImageChange[0] = false;
   //
   stateTimeoutValue[0]        = 0.5;
   stateTransitionOnTimeout[0] = "Ready";
   stateTransitionOnNoAmmo[0]  = "NoAmmo";

   //--------------------------------------
   stateName[1]       = "Ready";
   //
   stateTransitionOnTriggerDown[1] = "Spinup";
   stateTransitionOnNoAmmo[1]      = "NoAmmo";

   //--------------------------------------
   stateName[2]               = "NoAmmo";
   stateTransitionOnAmmo[2]   = "Ready";
   stateTransitionOnTriggerDown[2] = "DryFire";

   //--------------------------------------
   stateName[3]         = "Spinup";
   stateSound[3]        = TargetingLaserPaintSound;
   //
   stateTimeoutValue[3]          = 0.5;
   stateWaitForTimeout[3]        = false;
   stateTransitionOnTimeout[3]   = "Fire";
   stateTransitionOnTriggerUp[3] = "Spindown";

   //--------------------------------------
   stateName[4]             = "Fire";
   stateSequence[4]            = "Fire";
   stateSequenceRandomFlash[4] = true;
   stateSound[4]            = PlasmaFireSound;
   //stateRecoil[4]           = LightRecoil;
   stateAllowImageChange[4] = false;
   stateScript[4]           = "onFire";
   stateFire[4]             = true;
   //
   stateTimeoutValue[4]          = 0.05;
   stateTransitionOnTimeout[4]   = "Fire";
   stateTransitionOnTriggerUp[4] = "Spindown";
   stateTransitionOnNoAmmo[4]    = "EmptySpindown";

   //--------------------------------------
   stateName[5]       = "Spindown";
   stateSound[5]      = ChaingunSpinDownSound;
   //
   stateTimeoutValue[5]            = 1.0;
   stateWaitForTimeout[5]          = true;
   stateTransitionOnTimeout[5]     = "Ready";
   stateTransitionOnTriggerDown[5] = "Spinup";

   //--------------------------------------
   stateName[6]       = "EmptySpindown";
   stateSound[6]      = ChaingunSpinDownSound;
   //
   stateTimeoutValue[6]        = 0.5;
   stateTransitionOnTimeout[6] = "NoAmmo";

   //--------------------------------------
   stateName[7]       = "DryFire";
   stateSound[7]      = ChaingunDryFireSound;
   stateTimeoutValue[7]        = 0.5;
   stateTransitionOnTimeout[7] = "NoAmmo";
};

//item//
datablock ItemData(MatrixNuke)
{
   className    = Weapon;
   catagory     = "Spawn Items";
   shapeFile    = "weapon_targeting.dts";
   image        = MatrixNukeImage;
   mass         = 1;
   elasticity   = 0.2;
   friction     = 0.6;
   pickupRadius = 2;
   pickUpName   = "a /\/\47R1X /\/U|<3 Cannon";

   computeCRC = true;
   emap = true;
};

MatrixNuke.kickbackstrength = 5;

function MatrixNukeimage::onMount(%this,%obj,%slot)
{
   Parent::onMount(%this, %obj, %slot);
   CommandToClient(%obj.client, 'BottomPrint', "<Color:0000FF><Font:Sui Generis:22>The /\/\47R1X /\/U|<3 Cannon", 4, 2 );
   %obj.mountImage(MatrixNukeimage, 0);

}


