context: //Title: PGDie
  //Author: Bushido and Aloshi
  //unintrusive and ridiculous
  //edited to integrate 007 death yells and to remove explosion sound from deaths
  
  exec("./007deathyells/sounds.cs");
  
  datablock AudioProfile(injureHit1Sound)
  {
  	filename    = "./takehit2.wav";
  	description = AudioClose3d;
  	preload = true;
  };
  
  datablock AudioProfile(injureHit2Sound)
  {
  	filename    = "./die1.wav";
  	description = AudioClose3d;
  	preload = true;
  };
  
  datablock AudioProfile(injureGag0Sound)
  {
  	filename    = "./gag01.wav";
  	description = AudioDefault3d;
  	preload = true;
  };
  
  datablock AudioProfile(injureGag1Sound)
  {
  	filename    = "./gag12.wav";
  	description = AudioDefault3d;
  	preload = true;
  };
  
  datablock AudioProfile(injureGag2Sound)
  {
  	filename    = "./gag22.wav";
  	description = AudioDefault3d;
  	preload = true;
  };
  
  datablock AudioProfile(injureGag3Sound)
  {
  	filename    = "./gag32.wav";
  	description = AudioDefault3d;
  	preload = true;
  };
  
  datablock AudioProfile(injureGag4Sound)
  {
  	filename    = "./gag42.wav";
  	description = AudioDefault3d;
  	preload = true;
  };
  
  datablock AudioProfile(injureGag5Sound)
  {
  	filename    = "./gag52.wav";
  	description = AudioDefault3d;
  	preload = true;
  };
  
  datablock AudioProfile(injureGag6Sound)
  {
  	filename    = "./gag62.wav";
  	description = AudioDefault3d;
  	preload = true;
  };
  
  datablock AudioProfile(injureGag7Sound)
  {
  	filename    = "./gag72.wav";
  	description = AudioDefault3d;
  	preload = true;
  };
  
  datablock AudioProfile(injureNullSound)
  {
  	filename    = "./null.wav";
  	description = AudioClose3d;
  	preload = true;
  };
  
  //particle fx
  //////////////////////////////////////////
  
  //muzzle flash effects
  datablock ParticleData(injureFlashParticle)
  {
  	dragCoefficient      = 3;
  	gravityCoefficient   = -0.5;
  	inheritedVelFactor   = 0.2;
  	constantAcceleration = 0.0;
  	lifetimeMS           = 100;
  	lifetimeVarianceMS   = 15;
  	textureName          = "base/data/particles/star1";
  	spinSpeed		= 10.0;
  	spinRandomMin		= -500.0;
  	spinRandomMax		= 500.0;
  	colors[0]     = "0.6 0.6 0.3 0.9";
  	colors[1]     = "0.9 0.5 0.0 0.0";
  	sizes[0]      = 7.5;
  	sizes[1]      = 7.0;
  
  	useInvAlpha = false;
  };
  datablock ParticleEmitterData(injureFlashEmitter)
  {
     ejectionPeriodMS = 70;
     periodVarianceMS = 0;
     ejectionVelocity = 1.0;
     velocityVariance = 1.0;
     ejectionOffset   = 0.0;
     thetaMin         = 0;
     thetaMax         = 90;
     phiReferenceVel  = 0;
     phiVariance      = 360;
     overrideAdvance = false;
     particles = "injureFlashParticle";
  };
  
  datablock ParticleData(injureExplosionParticle)
  {
  	dragCoefficient      = 2;
  	gravityCoefficient   = 1;
  	inheritedVelFactor   = 0.2;
  	constantAcceleration = 0.0;
  	lifetimeMS           = 700;
  	lifetimeVarianceMS   = 100;
  	textureName          = "base/data/particles/cloud";
  	spinSpeed		= 1000.0;
  	spinRandomMin		= -5000.0;
  	spinRandomMax		= 5000.0;
  	colors[0]     = "0.9 0.9 0.9 0.1";
  	colors[1]     = "0.9 0.5 0.6 0.0";
  	sizes[0]      = 2.25;
  	sizes[1]      = 0;
  
  	useInvAlpha = true;
  };
  datablock ParticleEmitterData(injureExplosionEmitter)
  {
     ejectionPeriodMS = 4;
     periodVarianceMS = 0;
     ejectionVelocity = 10;
     velocityVariance = 10.0;
     ejectionOffset   = 1.0;
     thetaMin         = 0;
     thetaMax         = 180;
     phiReferenceVel  = 0;
     phiVariance      = 360;
     overrideAdvance = false;
     particles = "injureExplosionParticle";
  
     useEmitterColors = true;
  };
  
  datablock ParticleData(injureExplosionParticle2)
  {
  	dragCoefficient		= 0.1;
  	windCoefficient		= 0.0;
  	gravityCoefficient	= 1.0;
  	inheritedVelFactor	= 0.0;
  	constantAcceleration	= 0.0;
  	lifetimeMS		= 1000;
  	lifetimeVarianceMS	= 500;
  	spinSpeed		= 10.0;
  	spinRandomMin		= -50.0;
  	spinRandomMax		= 50.0;
  	useInvAlpha		= true;
  	animateTexture		= false;
  	//framesPerSec		= 1;
  
  	textureName		= "base/data/particles/chunk";
  	//animTexName		= "~/data/particles/cloud";
  
  	// Interpolation variables
  	colors[0]	= "0.0 0.0 0.0 0.6";
  	colors[1]	= "0.0 0.0 0.0 0.0";
  	sizes[0]	= 0.1;
  	sizes[1]	= 0.1;
  	times[0]	= 0.0;
  	times[1]	= 1.0;
  };
  
  datablock ParticleEmitterData(injureExplosionEmitter2)
  {
     ejectionPeriodMS = 1;
     periodVarianceMS = 0;
     lifetimeMS       = 7;
     ejectionVelocity = 9;
     velocityVariance = 6.0;
     ejectionOffset   = 0.0;
     thetaMin         = 0;
     thetaMax         = 90;
     phiReferenceVel  = 0;
     phiVariance      = 360;
     overrideAdvance = false;
     particles = "injureExplosionParticle2";
  
     useEmitterColors = true;
     emitterNode = HalfEmitterNode;
  };
  
  datablock ExplosionData(injureExplosion)
  {
     //explosionShape = "";
     lifeTimeMS = 150;
  
     emitter[0] = injureExplosionEmitter;
     emitter[1] = injureExplosionEmitter2;
     emitter[2] = injureFlashEmitter;
     //particleDensity = 30;
     //particleRadius = 1.0;
  
     faceViewer     = true;
     explosionScale = "1 1 1";
  
     shakeCamera = true;
     camShakeFreq = "7.0 8.0 7.0";
     camShakeAmp = "1.0 1.0 1.0";
     camShakeDuration = 0.5;
     camShakeRadius = 15.0;
  
     // Dynamic light
     lightStartRadius = 4;
     lightEndRadius = 3;
     lightStartColor = "0.45 0.3 0.1";
     lightEndColor = "0 0 0";
  };
  
  datablock ShapeBaseImageData(painHighImage)
  {
     // Basic Item properties
     shapeFile = "base/data/shapes/empty.dts";
     emap = true;
  
     // Specify mount point & offset for 3rd person, and eye offset
     // for first person rendering.
     mountPoint = 6;
     offset = "0 0 -0.8";
     eyeOffset = 0; //"0.7 1.2 -0.5";
     rotation = eulerToMatrix( "0 0 0" );
  
     // When firing from a point offset from the eye, muzzle correction
     // will adjust the muzzle vector to point to the eye LOS point.
     // Since this weapon doesn't actually fire from the muzzle point,
     // we need to turn this off.  
     correctMuzzleVector = true;
  
     // Add the WeaponImage namespace as a parent, WeaponImage namespace
     // provides some hooks into the inventory system.
     className = "WeaponImage";
  
     // Projectile && Ammo.
  //item = flamethrowerItem;
  //ammo = " ";
  //projectile = flamethrowerProjectile;
  //projectileType = Projectile;
  
     //melee particles shoot from eye node for consistancy
     melee = true;
     //raise your arm up or not
     armReady = true;
  
     doColorShift = false;
     colorShiftColor = flamethrowerItem.colorShiftColor;
  
     // Images have a state system which controls how the animations
     // are run, which sounds are played, script callbacks, etc. This
     // state system is downloaded to the client so that clients can
     // predict state changes and animate accordingly.  The following
     // system supports basic ready->fire->reload transitions as
     // well as a no-ammo->dryfire idle state.
  
     // Initial start up state
  
gt: 	stateName[0]					= "Ready";