Ver Fonte

Merge pull request #312 from thecelloman/cleanwpndir

Cleanup of weapon fx and assets.
SilentMike há 12 anos atrás
pai
commit
5ae7483af6
39 ficheiros alterados com 723 adições e 2014 exclusões
  1. 3 2
      Templates/Full/game/art/datablocks/vehicles/cheetahCar.cs
  2. 1 1
      Templates/Full/game/art/datablocks/weapons/Lurker.cs
  3. 0 363
      Templates/Full/game/art/datablocks/weapons/grenade.cs
  4. 157 193
      Templates/Full/game/art/datablocks/weapons/grenadefx.cs
  5. 0 1251
      Templates/Full/game/art/datablocks/weapons/rocketLauncher.cs
  6. 504 0
      Templates/Full/game/art/datablocks/weapons/rocketfx.cs
  7. BIN
      Templates/Full/game/art/shapes/Cheetah/Cheetah_MuzzleFlash_D.dds
  8. 0 32
      Templates/Full/game/art/shapes/weapons/GrenadeLauncher/materials.cs
  9. BIN
      Templates/Full/game/art/shapes/weapons/GrenadeLauncher/w_swarmgun_bump.jpg
  10. 0 61
      Templates/Full/game/art/shapes/weapons/RifleShell/materials.cs
  11. BIN
      Templates/Full/game/art/shapes/weapons/SwarmGun/clip.jpg
  12. BIN
      Templates/Full/game/art/shapes/weapons/SwarmGun/debris.dts
  13. BIN
      Templates/Full/game/art/shapes/weapons/SwarmGun/energy.png
  14. BIN
      Templates/Full/game/art/shapes/weapons/SwarmGun/guide.png
  15. 0 52
      Templates/Full/game/art/shapes/weapons/SwarmGun/materials.cs
  16. BIN
      Templates/Full/game/art/shapes/weapons/SwarmGun/rocket.dts
  17. BIN
      Templates/Full/game/art/shapes/weapons/SwarmGun/swarmgun.dts
  18. BIN
      Templates/Full/game/art/shapes/weapons/SwarmGun/swarmgun.max
  19. BIN
      Templates/Full/game/art/shapes/weapons/SwarmGun/swarmgunRocket.max
  20. BIN
      Templates/Full/game/art/shapes/weapons/SwarmGun/w_swarmgun.png
  21. BIN
      Templates/Full/game/art/shapes/weapons/SwarmGun/w_swarmgun_bump.jpg
  22. 0 18
      Templates/Full/game/art/shapes/weapons/SwarmGun/weapon.cfg
  23. BIN
      Templates/Full/game/art/shapes/weapons/misc/rocket.dts
  24. BIN
      Templates/Full/game/art/shapes/weapons/misc/w_swarmgun.png
  25. BIN
      Templates/Full/game/art/shapes/weapons/ramrifle/base.dts
  26. BIN
      Templates/Full/game/art/shapes/weapons/ramrifle/clip.jpg
  27. BIN
      Templates/Full/game/art/shapes/weapons/ramrifle/debris.dts
  28. BIN
      Templates/Full/game/art/shapes/weapons/ramrifle/debris.ms3d
  29. 0 41
      Templates/Full/game/art/shapes/weapons/ramrifle/materials.cs
  30. BIN
      Templates/Full/game/art/shapes/weapons/ramrifle/ramrifle_diff.png
  31. BIN
      Templates/Full/game/art/shapes/weapons/ramrifle/ramrifle_norm.png
  32. 0 0
      Templates/Full/game/art/shapes/weapons/shared/RifleShell.DAE
  33. 0 0
      Templates/Full/game/art/shapes/weapons/shared/RifleShell_diff.dds
  34. 0 0
      Templates/Full/game/art/shapes/weapons/shared/clip.jpg
  35. 0 0
      Templates/Full/game/art/shapes/weapons/shared/debris.dts
  36. 0 0
      Templates/Full/game/art/shapes/weapons/shared/debris.ms3d
  37. 58 0
      Templates/Full/game/art/shapes/weapons/shared/materials.cs
  38. 0 0
      Templates/Full/game/art/shapes/weapons/shared/rocket.dts
  39. 0 0
      Templates/Full/game/art/shapes/weapons/shared/w_swarmgun.png

+ 3 - 2
Templates/Full/game/art/datablocks/vehicles/cheetahCar.cs

@@ -57,7 +57,8 @@ datablock SFXProfile(DirtKickup)
 
 
 datablock SFXProfile(CheetahTurretFireSound)
 datablock SFXProfile(CheetahTurretFireSound)
 {
 {
-   filename = "art/sound/cheetah/turret_firing.wav";
+   //filename = "art/sound/cheetah/turret_firing.wav";
+   filename = "art/sound/turret/wpn_turret_fire.wav";
    description = BulletFireDesc;
    description = BulletFireDesc;
    preload = true;
    preload = true;
 };
 };
@@ -101,7 +102,7 @@ datablock ParticleEmitterData(CheetahTireEmitter)
 
 
 datablock ProjectileData(TurretProjectile)
 datablock ProjectileData(TurretProjectile)
 {
 {
-   projectileShapeName = "art/shapes/weapons/SwarmGun/rocket.dts";
+   projectileShapeName = "art/shapes/weapons/shared/rocket.dts";
    directDamage = 10;
    directDamage = 10;
    radiusDamage = 15;
    radiusDamage = 15;
    damageRadius = 3;
    damageRadius = 3;

+ 1 - 1
Templates/Full/game/art/datablocks/weapons/Lurker.cs

@@ -186,7 +186,7 @@ datablock ExplosionData(BulletDirtExplosion)
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 datablock DebrisData(BulletShell)
 datablock DebrisData(BulletShell)
 {
 {
-   shapeFile = "art/shapes/weapons/RifleShell/RifleShell.DAE";
+   shapeFile = "art/shapes/weapons/shared/RifleShell.DAE";
    lifetime = 6.0;
    lifetime = 6.0;
    minSpinSpeed = 300.0;
    minSpinSpeed = 300.0;
    maxSpinSpeed = 400.0;
    maxSpinSpeed = 400.0;

+ 0 - 363
Templates/Full/game/art/datablocks/weapons/grenade.cs

@@ -1,363 +0,0 @@
-//-----------------------------------------------------------------------------
-// Copyright (c) 2012 GarageGames, LLC
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to
-// deal in the Software without restriction, including without limitation the
-// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-// sell copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-// IN THE SOFTWARE.
-//-----------------------------------------------------------------------------
-
-$GrenadeUpVectorOffset = "0 0 1";
-
-
-
-//----------------------------------------------------------------------------
-// Sounds
-//----------------------------------------------------------------------------
-
-datablock SFXProfile(GrenadeExplosionSound)
-{
-   filename = "art/sound/CT_fx/weapons/GRENADELAND.wav";
-   description = AudioDefault3d;
-   preload = true;
-};
-
-//----------------------------------------------------------------------------
-// Debris
-//----------------------------------------------------------------------------
-
-datablock ParticleData(GrenadeDebrisFireParticle)
-{
-   textureName = "art/particles/impact";
-   dragCoeffiecient = 0;
-   gravityCoefficient = -1.00366;
-   inheritedVelFactor = 0.0;
-   constantAcceleration = 0.0;
-   lifetimeMS = 300;
-   lifetimeVarianceMS = 100;
-   useInvAlpha = false;
-   spinSpeed = 1;
-   spinRandomMin = -280.0;
-   spinRandomMax = 280.0;
-   colors[0] = "1 0.590551 0.188976 0.0944882";
-   colors[1] = "0.677165 0.590551 0.511811 0.496063";
-   colors[2] = "0.645669 0.645669 0.645669 0";
-   sizes[0] = 0.2;
-   sizes[1] = 0.5;
-   sizes[2] = 0.2;
-   times[0] = 0.0;
-   times[1] = 0.494118;
-   times[2] = 1.0;
-   animTexName = "art/particles/impact";
-   colors[3] = "1 1 1 0.407";
-   sizes[3] = "0.5";
-};
-
-datablock ParticleEmitterData(GrenadeDebrisFireEmitter)
-{
-   ejectionPeriodMS = 10;
-   periodVarianceMS = 0;
-   ejectionVelocity = 0;
-   velocityVariance = 0;
-   thetaMin = 0.0;
-   thetaMax = 25;
-   phiReferenceVel = 0;
-   phiVariance = 360;
-   ejectionoffset = 0.3;
-   particles = "GrenadeDebrisFireParticle";
-   orientParticles = "1";
-   blendStyle = "NORMAL";
-};
-
-datablock DebrisData(GrenadeDebris)
-{
-   shapeFile = "art/shapes/weapons/Grenade/grenadeDebris.dae";
-   emitters[0] = GrenadeDebrisFireEmitter;
-   elasticity = 0.4;
-   friction = 0.25;
-   numBounces = 3;
-   bounceVariance = 1;
-   explodeOnMaxBounce = false;
-   staticOnMaxBounce = false;
-   snapOnMaxBounce = false;
-   minSpinSpeed = 200;
-   maxSpinSpeed = 600;
-   render2D = false;
-   lifetime = 4;
-   lifetimeVariance = 1.5;
-   velocity = 15;
-   velocityVariance = 5;
-   fade = true;
-   useRadiusMass = true;
-   baseRadius = 0.3;
-   gravModifier = 1.0;
-   terminalVelocity = 20;
-   ignoreWater = false;
-};
-
-
-
-// ----------------------------------------------------------------------------
-// Explosion Particle effects
-// ----------------------------------------------------------------------------
-
-datablock ParticleData(GrenadeExpFire)
-{
-   textureName = "art/particles/fireball.png";
-   dragCoeffiecient = 0;
-   windCoeffiecient = 0.5;
-   gravityCoefficient = -1;
-   inheritedVelFactor = 0;
-   constantAcceleration = 0;
-   lifetimeMS = 1200;//3000;
-   lifetimeVarianceMS = 100;//200;
-   useInvAlpha = false;
-   spinRandomMin = 0;
-   spinRandomMax = 1;
-   spinSpeed = 1;
-   colors[0] = "0.886275 0.854902 0.733333 0.795276";
-   colors[1] = "0.356863 0.34902 0.321569 0.266";
-   colors[2] = "0.0235294 0.0235294 0.0235294 0.207";
-   sizes[0] = 1;//2;
-   sizes[1] = 5;
-   sizes[2] = 7;//0.5;
-   times[0] = 0.0;
-   times[1] = 0.25;
-   times[2] = 0.5;
-   animTexName = "art/particles/fireball.png";
-   times[3] = "1";
-   dragCoefficient = "1.99902";
-   sizes[3] = "10";
-   colors[3] = "0 0 0 0";
-};
-
-datablock ParticleEmitterData(GrenadeExpFireEmitter)
-{
-   ejectionPeriodMS = 10;
-   periodVarianceMS = 5;//0;
-   ejectionVelocity = 1;//1.0;
-   velocityVariance = 0;//0.5;
-   thetaMin = 0.0;
-   thetaMax = 45;
-   lifetimeMS = 250;
-   particles = "GrenadeExpFire";
-   blendStyle = "ADDITIVE";
-};
-
-datablock ParticleData(GrenadeExpDust)
-{
-   textureName = "art/particles/smoke.png";
-   dragCoefficient = 0.498534;
-   gravityCoefficient = 0;
-   inheritedVelFactor = 1;
-   constantAcceleration = 0.0;
-   lifetimeMS = 2000;
-   lifetimeVarianceMS = 250;
-   useInvAlpha = 0;
-   spinSpeed = 1;
-   spinRandomMin = -90.0;
-   spinRandomMax = 90.0;
-   colors[0] = "0.992126 0.992126 0.992126 0.96063";
-   colors[1] = "0.11811 0.11811 0.11811 0.929134";
-   colors[2] = "0.00392157 0.00392157 0.00392157 0.362205";
-   sizes[0] = 1.59922;
-   sizes[1] = 4.99603;
-   sizes[2] = 9.99817;
-   times[0] = 0.0;
-   times[1] = 0.494118;
-   times[2] = 1.0;
-   animTexName = "art/particles/smoke.png";
-   colors[3] = "0.996078 0.996078 0.996078 0";
-   sizes[3] = "15";
-};
-
-datablock ParticleEmitterData(GrenadeExpDustEmitter)
-{
-   ejectionPeriodMS = 5;
-   periodVarianceMS = 0;
-   ejectionVelocity = 8;
-   velocityVariance = 0.0;
-   ejectionOffset = 0.0;
-   thetaMin = 85;
-   thetaMax = 85;
-   phiReferenceVel = 0;
-   phiVariance = 360;
-   overrideAdvances = 0;
-   lifetimeMS = 2000;
-   particles = "GrenadeExpDust";
-   blendStyle = "NORMAL";
-};
-
-datablock ParticleData(GrenadeExpSpark)
-{
-   textureName = "art/particles/Sparkparticle";
-   dragCoefficient = 1;
-   gravityCoefficient = 0.0;
-   inheritedVelFactor = 0.2;
-   constantAcceleration = 0.0;
-   lifetimeMS = 500;
-   lifetimeVarianceMS = 250;
-   colors[0] = "0.6 0.4 0.3 1";
-   colors[1] = "0.6 0.4 0.3 1";
-   colors[2] = "1.0 0.4 0.3 0";
-   sizes[0] = 0.5;
-   sizes[1] = 0.75;
-   sizes[2] = 1;
-   times[0] = 0;
-   times[1] = 0.5;
-   times[2] = 1;
-};
-
-datablock ParticleEmitterData(GrenadeExpSparkEmitter)
-{
-   ejectionPeriodMS = 2;
-   periodVarianceMS = 0;
-   ejectionVelocity = 20;
-   velocityVariance = 10;
-   ejectionOffset = 0.0;
-   thetaMin = 0;
-   thetaMax = 120;
-   phiReferenceVel = 0;
-   phiVariance = 360;
-   overrideAdvances = false;
-   orientParticles = true;
-   lifetimeMS = 100;
-   particles = "GrenadeExpSpark";
-};
-
-datablock ParticleData(GrenadeExpSparks)
-{
-   textureName = "art/particles/droplet";
-   dragCoefficient = 1;
-   gravityCoefficient = 0.0;
-   inheritedVelFactor = 0.2;
-   constantAcceleration = 0.0;
-   lifetimeMS = 500;
-   lifetimeVarianceMS = 350;
-
-   colors[0] = "0.6 0.4 0.3 1.0";
-   colors[1] = "0.6 0.4 0.3 0.6";
-   colors[2] = "1.0 0.4 0.3 0.0";
-
-   sizes[0] = 0.5;
-   sizes[1] = 0.5;
-   sizes[2] = 0.75;
-
-   times[0] = 0.0;
-   times[1] = 0.5;
-   times[2] = 1.0;
-};
-
-datablock ParticleEmitterData(GrenadeExpSparksEmitter)
-{
-   ejectionPeriodMS = 2;
-   periodVarianceMS = 0;
-   ejectionVelocity = 12;
-   velocityVariance = 6.75;
-   ejectionOffset = 0.0;
-   thetaMin = 0;
-   thetaMax = 60;
-   phiReferenceVel = 0;
-   phiVariance = 360;
-   overrideAdvances = false;
-   orientParticles = true;
-   lifetimeMS = 100;
-   particles = "GrenadeExpSparks";
-};
-
-datablock ParticleData(GrenadeExpSmoke)
-{
-   textureName = "art/particles/smoke";
-   dragCoeffiecient = 0;
-   gravityCoefficient = -0.40293;
-   inheritedVelFactor = 0.0;
-   constantAcceleration = 0.0;
-   lifetimeMS = 800;
-   lifetimeVarianceMS = 299;
-   useInvAlpha = true;
-   spinSpeed = 1;
-   spinRandomMin = -80.0;
-   spinRandomMax = 0;
-   colors[0] = "0.8 0.8 0.8 0.4";
-   colors[1] = "0.5 0.5 0.5 0.5";
-   colors[2] = "0.75 0.75 0.75 0";
-   sizes[0] = 4.49857;
-   sizes[1] = 7.49863;
-   sizes[2] = 11.2495;
-   times[0] = 0;
-   times[1] = 0.498039;
-   times[2] = 1;
-   animTexName = "art/particles/smoke";
-   times[3] = "1";
-};
-
-datablock ParticleEmitterData(GrenadeExpSmokeEmitter)
-{
-   ejectionPeriodMS = 15;
-   periodVarianceMS = 5;
-   ejectionVelocity = 2.4;
-   velocityVariance = 1.2;
-   thetaMin = 0.0;
-   thetaMax = 180.0;
-   ejectionOffset = 1;
-   particles = "GrenadeExpSmoke";
-   blendStyle = "NORMAL";
-};
-
-
-// ----------------------------------------------------------------------------
-// Dry/Air Explosion Objects
-// ----------------------------------------------------------------------------
-
-datablock ExplosionData(GrenadeExplosion)
-{
-   soundProfile = GrenadeExplosionSound;
-   lifeTimeMS = 400; // Quick flash, short burn, and moderate dispersal
-
-   // Volume particles
-   particleEmitter = GrenadeExpFireEmitter;
-   particleDensity = 75;
-   particleRadius = 2.25;
-
-   // Point emission
-   emitter[0] = GrenadeExpDustEmitter;
-   emitter[1] = GrenadeExpSparksEmitter;
-   emitter[2] = GrenadeExpSmokeEmitter;
-
-   // Camera Shaking
-   shakeCamera = true;
-   camShakeFreq = "10.0 11.0 9.0";
-   camShakeAmp = "15.0 15.0 15.0";
-   camShakeDuration = 1.5;
-   camShakeRadius = 20;
-
-   // Exploding debris
-   debris = GrenadeDebris;
-   debrisThetaMin = 10;
-   debrisThetaMax = 60;
-   debrisNum = 4;
-   debrisNumVariance = 2;
-   debrisVelocity = 25;
-   debrisVelocityVariance = 5;
-
-   lightStartRadius = 4.0;
-   lightEndRadius = 0.0;
-   lightStartColor = "1.0 1.0 1.0";
-   lightEndColor = "1.0 1.0 1.0";
-   lightStartBrightness = 4.0;
-   lightEndBrightness = 0.0;
-   lightNormalOffset = 2.0;
-};

+ 157 - 193
Templates/Full/game/art/datablocks/weapons/grenadeLauncher.cs → Templates/Full/game/art/datablocks/weapons/grenadefx.cs

@@ -1,58 +1,29 @@
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
-// Copyright (c) 2012 GarageGames, LLC
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to
-// deal in the Software without restriction, including without limitation the
-// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-// sell copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-// IN THE SOFTWARE.
+// Torque
+// Copyright GarageGames, LLC 2011
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 
 
-// GrenadeLauncher weapon.
-// This script file contains all of the necessary datablocks needed for the
-// GrenadeLauncher.  These datablocks include sound profiles, light descriptions,
-// particle effects, explosions, projectiles, items (weapon and ammo), shell
-// casings (if any), and finally the weapon image which contains the state
-// machine that determines how the weapon operates.
-
-// The various "fire" methods/modes are handled in weapons.cs through a "weapon"
-// namespace function.  This reduces duplicated code, although a unique fire
-// method could still be implemented for this weapon.
-
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
-// Sound profiles
+// Placeholder projectile and explosion with required sounds, debris, and 
+// particle datablocks. These datablocks existed in now removed scripts, but
+// were used within some that remain: see Lurker.cs, Ryder.cs, ProxMine.cs
+// 
+// These effects should be made more generic or new fx created for unique usage.
+//
+// I've removed all effects that are not required for the current weapons.  On
+// reflection I really went overboard when originally making these effects!
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 
 
-datablock SFXProfile(GrenadeLauncherReloadSound)
-{
-   filename = "art/sound/weapons/Crossbow_reload";
-   description = AudioClose3d;
-   preload = true;
-};
+$GrenadeUpVectorOffset = "0 0 1";
 
 
-datablock SFXProfile(GrenadeLauncherFireSound)
-{
-   filename = "art/sound/weapons/relbow_mono_01";
-   description = AudioClose3d;
-   preload = true;
-};
+// ---------------------------------------------------------------------------
+// Sounds
+// ---------------------------------------------------------------------------
 
 
-datablock SFXProfile(GrenadeLauncherFireEmptySound)
+datablock SFXProfile(GrenadeExplosionSound)
 {
 {
-   filename = "art/sound/weapons/Crossbow_firing_empty";
-   description = AudioClose3d;
+   filename = "art/sound/CT_fx/weapons/GRENADELAND.wav";
+   description = AudioDefault3d;
    preload = true;
    preload = true;
 };
 };
 
 
@@ -77,25 +48,15 @@ datablock LightDescription(GrenadeLauncherLightDesc)
    //flareType = SimpleLightFlare0;
    //flareType = SimpleLightFlare0;
 };
 };
 
 
-datablock LightDescription(GrenadeLauncherWaterLightDesc)
-{
-   radius = 2.0;
-   color = "1 1 1";
-   brightness = 2.0;
-   animationType = PulseLightAnim;
-   animationPeriod = 0.25;
-   //flareType = SimpleLightFlare0;
-};
-
-//----------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 // Debris
 // Debris
-//----------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 
 
 datablock ParticleData(GrenadeDebrisFireParticle)
 datablock ParticleData(GrenadeDebrisFireParticle)
 {
 {
    textureName = "art/particles/impact";
    textureName = "art/particles/impact";
-   dragCoeffiecient = 0.0;
-   gravityCoefficient = -1;
+   dragCoeffiecient = 0;
+   gravityCoefficient = -1.00366;
    inheritedVelFactor = 0.0;
    inheritedVelFactor = 0.0;
    constantAcceleration = 0.0;
    constantAcceleration = 0.0;
    lifetimeMS = 300;
    lifetimeMS = 300;
@@ -104,34 +65,39 @@ datablock ParticleData(GrenadeDebrisFireParticle)
    spinSpeed = 1;
    spinSpeed = 1;
    spinRandomMin = -280.0;
    spinRandomMin = -280.0;
    spinRandomMax = 280.0;
    spinRandomMax = 280.0;
-   colors[0] = "1.0 0.6 0.2 0.1";
-   colors[1] = "1.0 0.5 0 0.5";
-   colors[2] = "0.1 0.1 0.1 0.0";
-   sizes[0] = 1.0;
-   sizes[1] = 2.0;
-   sizes[2] = 1.0;
+   colors[0] = "1 0.590551 0.188976 0.0944882";
+   colors[1] = "0.677165 0.590551 0.511811 0.496063";
+   colors[2] = "0.645669 0.645669 0.645669 0";
+   sizes[0] = 0.2;
+   sizes[1] = 0.5;
+   sizes[2] = 0.2;
    times[0] = 0.0;
    times[0] = 0.0;
-   times[1] = 0.5;
+   times[1] = 0.494118;
    times[2] = 1.0;
    times[2] = 1.0;
+   animTexName = "art/particles/impact";
+   colors[3] = "1 1 1 0.407";
+   sizes[3] = "0.5";
 };
 };
 
 
 datablock ParticleEmitterData(GrenadeDebrisFireEmitter)
 datablock ParticleEmitterData(GrenadeDebrisFireEmitter)
 {
 {
-   ejectionPeriodMS = 8;
-   periodVarianceMS = 4;
-   ejectionVelocity = 5.0;
-   velocityVariance = 3.0;
+   ejectionPeriodMS = 10;
+   periodVarianceMS = 0;
+   ejectionVelocity = 0;
+   velocityVariance = 0;
    thetaMin = 0.0;
    thetaMin = 0.0;
-   thetaMax = 180.0;
+   thetaMax = 25;
    phiReferenceVel = 0;
    phiReferenceVel = 0;
    phiVariance = 360;
    phiVariance = 360;
    ejectionoffset = 0.3;
    ejectionoffset = 0.3;
    particles = "GrenadeDebrisFireParticle";
    particles = "GrenadeDebrisFireParticle";
+   orientParticles = "1";
+   blendStyle = "NORMAL";
 };
 };
 
 
 datablock DebrisData(GrenadeDebris)
 datablock DebrisData(GrenadeDebris)
 {
 {
-   shapeFile = "art/shapes/weapons/GrenadeLauncher/debris.dts";
+   shapeFile = "art/shapes/weapons/Grenade/grenadeDebris.dae";
    emitters[0] = GrenadeDebrisFireEmitter;
    emitters[0] = GrenadeDebrisFireEmitter;
    elasticity = 0.4;
    elasticity = 0.4;
    friction = 0.25;
    friction = 0.25;
@@ -297,30 +263,32 @@ datablock ParticleEmitterData(GrenadeSplashRingEmitter)
 
 
 datablock SplashData(GrenadeSplash)
 datablock SplashData(GrenadeSplash)
 {
 {
-//    numSegments = 15;
-//    ejectionFreq = 15;
-//    ejectionAngle = 40;
-//    ringLifetime = 0.5;
-//    lifetimeMS = 300;
-//    velocity = 4.0;
-//    startRadius = 0.0;
-//    acceleration = -3.0;
-//    texWrap = 5.0;
-//    texture = "art/particles/splash";
-
+   // SplashData doesn't have a render function in the source, 
+   // so everything but the emitter array is useless here.
    emitter[0] = GrenadeSplashEmitter;
    emitter[0] = GrenadeSplashEmitter;
    emitter[1] = GrenadeSplashMistEmitter;
    emitter[1] = GrenadeSplashMistEmitter;
    emitter[2] = GrenadeSplashRingEmitter;
    emitter[2] = GrenadeSplashRingEmitter;
-
-//    colors[0] = "0.7 0.8 1.0 0.0";
-//    colors[1] = "0.7 0.8 1.0 0.3";
-//    colors[2] = "0.7 0.8 1.0 0.7";
-//    colors[3] = "0.7 0.8 1.0 0.0";
-//
-//    times[0] = 0.0;
-//    times[1] = 0.4;
-//    times[2] = 0.8;
-//    times[3] = 1.0;
+   
+    //numSegments = 15;
+    //ejectionFreq = 15;
+    //ejectionAngle = 40;
+    //ringLifetime = 0.5;
+    //lifetimeMS = 300;
+    //velocity = 4.0;
+    //startRadius = 0.0;
+    //acceleration = -3.0;
+    //texWrap = 5.0;
+    //texture = "art/images/particles//splash";
+
+    //colors[0] = "0.7 0.8 1.0 0.0";
+    //colors[1] = "0.7 0.8 1.0 0.3";
+    //colors[2] = "0.7 0.8 1.0 0.7";
+    //colors[3] = "0.7 0.8 1.0 0.0";
+
+    //times[0] = 0.0;
+    //times[1] = 0.4;
+    //times[2] = 0.8;
+    //times[3] = 1.0;
 };
 };
 
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
@@ -329,86 +297,94 @@ datablock SplashData(GrenadeSplash)
 
 
 datablock ParticleData(GrenadeExpFire)
 datablock ParticleData(GrenadeExpFire)
 {
 {
-   textureName = "art/particles/fireball";
+   textureName = "art/particles/fireball.png";
    dragCoeffiecient = 0;
    dragCoeffiecient = 0;
    windCoeffiecient = 0.5;
    windCoeffiecient = 0.5;
-   gravityCoefficient = -0.300366;
-   inheritedVelFactor = 0.299413;
-   constantAcceleration = 0.2;
-   lifetimeMS = 2000;//3000;
-   lifetimeVarianceMS = 299;//200;
+   gravityCoefficient = -1;
+   inheritedVelFactor = 0;
+   constantAcceleration = 0;
+   lifetimeMS = 1200;//3000;
+   lifetimeVarianceMS = 100;//200;
    useInvAlpha = false;
    useInvAlpha = false;
-   spinRandomMin = -80.0;
-   spinRandomMax = 0;
+   spinRandomMin = 0;
+   spinRandomMax = 1;
    spinSpeed = 1;
    spinSpeed = 1;
-   colors[0] = "0.795276 0.393701 0 0.795276";
-   colors[1] = "0.19685 0.0944882 0 0.393701";
-   colors[2] = "0 0 0 0";
-   sizes[0] = 0.75;//2;
-   sizes[1] = 1.5;
-   sizes[2] = 3;//0.5;
+   colors[0] = "0.886275 0.854902 0.733333 0.795276";
+   colors[1] = "0.356863 0.34902 0.321569 0.266";
+   colors[2] = "0.0235294 0.0235294 0.0235294 0.207";
+   sizes[0] = 1;//2;
+   sizes[1] = 5;
+   sizes[2] = 7;//0.5;
    times[0] = 0.0;
    times[0] = 0.0;
-   times[1] = 0.498039;
-   times[2] = 1.0;
-   animTexName = "art/particles/Fireball";
+   times[1] = 0.25;
+   times[2] = 0.5;
+   animTexName = "art/particles/fireball.png";
    times[3] = "1";
    times[3] = "1";
+   dragCoefficient = "1.99902";
+   sizes[3] = "10";
+   colors[3] = "0 0 0 0";
 };
 };
 
 
 datablock ParticleEmitterData(GrenadeExpFireEmitter)
 datablock ParticleEmitterData(GrenadeExpFireEmitter)
 {
 {
    ejectionPeriodMS = 10;
    ejectionPeriodMS = 10;
    periodVarianceMS = 5;//0;
    periodVarianceMS = 5;//0;
-   ejectionVelocity = 4;//1.0;
-   velocityVariance = 1;//0.5;
+   ejectionVelocity = 1;//1.0;
+   velocityVariance = 0;//0.5;
    thetaMin = 0.0;
    thetaMin = 0.0;
-   thetaMax = 180.0;
+   thetaMax = 45;
    lifetimeMS = 250;
    lifetimeMS = 250;
    particles = "GrenadeExpFire";
    particles = "GrenadeExpFire";
+   blendStyle = "ADDITIVE";
 };
 };
 
 
 datablock ParticleData(GrenadeExpDust)
 datablock ParticleData(GrenadeExpDust)
 {
 {
-   textureName = "art/particles/smoke";
-   dragCoefficient = 1.0;
-   gravityCoefficient = -0.01;
-   inheritedVelFactor = 0.0;
+   textureName = "art/particles/smoke.png";
+   dragCoefficient = 0.498534;
+   gravityCoefficient = 0;
+   inheritedVelFactor = 1;
    constantAcceleration = 0.0;
    constantAcceleration = 0.0;
-   lifetimeMS = 2500;
-   lifetimeVarianceMS = 500;
-   useInvAlpha = true;
+   lifetimeMS = 2000;
+   lifetimeVarianceMS = 250;
+   useInvAlpha = 0;
    spinSpeed = 1;
    spinSpeed = 1;
    spinRandomMin = -90.0;
    spinRandomMin = -90.0;
    spinRandomMax = 90.0;
    spinRandomMax = 90.0;
-   colors[0] = "0.6 0.6 0.6 0.3";
-   colors[1] = "0.6 0.6 0.6 0.3";
-   colors[2] = "0.6 0.6 0.6 0.0";
-   sizes[0] = 1.6;
-   sizes[1] = 2.0;
-   sizes[2] = 2.4;
+   colors[0] = "0.992126 0.992126 0.992126 0.96063";
+   colors[1] = "0.11811 0.11811 0.11811 0.929134";
+   colors[2] = "0.00392157 0.00392157 0.00392157 0.362205";
+   sizes[0] = 1.59922;
+   sizes[1] = 4.99603;
+   sizes[2] = 9.99817;
    times[0] = 0.0;
    times[0] = 0.0;
-   times[1] = 0.7;
+   times[1] = 0.494118;
    times[2] = 1.0;
    times[2] = 1.0;
+   animTexName = "art/particles/smoke.png";
+   colors[3] = "0.996078 0.996078 0.996078 0";
+   sizes[3] = "15";
 };
 };
 
 
 datablock ParticleEmitterData(GrenadeExpDustEmitter)
 datablock ParticleEmitterData(GrenadeExpDustEmitter)
 {
 {
-   ejectionPeriodMS = 1;
+   ejectionPeriodMS = 5;
    periodVarianceMS = 0;
    periodVarianceMS = 0;
-   ejectionVelocity = 15;
+   ejectionVelocity = 8;
    velocityVariance = 0.0;
    velocityVariance = 0.0;
    ejectionOffset = 0.0;
    ejectionOffset = 0.0;
    thetaMin = 85;
    thetaMin = 85;
    thetaMax = 85;
    thetaMax = 85;
    phiReferenceVel = 0;
    phiReferenceVel = 0;
    phiVariance = 360;
    phiVariance = 360;
-   overrideAdvances = false;
-   lifetimeMS = 200;
+   overrideAdvances = 0;
+   lifetimeMS = 2000;
    particles = "GrenadeExpDust";
    particles = "GrenadeExpDust";
+   blendStyle = "NORMAL";
 };
 };
 
 
 datablock ParticleData(GrenadeExpSpark)
 datablock ParticleData(GrenadeExpSpark)
 {
 {
-   textureName = "art/particles/ricochet";
+   textureName = "art/particles/Sparkparticle";
    dragCoefficient = 1;
    dragCoefficient = 1;
    gravityCoefficient = 0.0;
    gravityCoefficient = 0.0;
    inheritedVelFactor = 0.2;
    inheritedVelFactor = 0.2;
@@ -519,6 +495,52 @@ datablock ParticleEmitterData(GrenadeExpSmokeEmitter)
    thetaMax = 180.0;
    thetaMax = 180.0;
    ejectionOffset = 1;
    ejectionOffset = 1;
    particles = "GrenadeExpSmoke";
    particles = "GrenadeExpSmoke";
+   blendStyle = "NORMAL";
+};
+
+
+// ----------------------------------------------------------------------------
+// Dry/Air Explosion Objects
+// ----------------------------------------------------------------------------
+
+datablock ExplosionData(GrenadeExplosion)
+{
+   soundProfile = GrenadeExplosionSound;
+   lifeTimeMS = 400; // Quick flash, short burn, and moderate dispersal
+
+   // Volume particles
+   particleEmitter = GrenadeExpFireEmitter;
+   particleDensity = 75;
+   particleRadius = 2.25;
+
+   // Point emission
+   emitter[0] = GrenadeExpDustEmitter;
+   emitter[1] = GrenadeExpSparksEmitter;
+   emitter[2] = GrenadeExpSmokeEmitter;
+
+   // Camera Shaking
+   shakeCamera = true;
+   camShakeFreq = "10.0 11.0 9.0";
+   camShakeAmp = "15.0 15.0 15.0";
+   camShakeDuration = 1.5;
+   camShakeRadius = 20;
+
+   // Exploding debris
+   debris = GrenadeDebris;
+   debrisThetaMin = 10;
+   debrisThetaMax = 60;
+   debrisNum = 4;
+   debrisNumVariance = 2;
+   debrisVelocity = 25;
+   debrisVelocityVariance = 5;
+
+   lightStartRadius = 4.0;
+   lightEndRadius = 0.0;
+   lightStartColor = "1.0 1.0 1.0";
+   lightEndColor = "1.0 1.0 1.0";
+   lightStartBrightness = 4.0;
+   lightEndBrightness = 0.0;
+   lightNormalOffset = 2.0;
 };
 };
 
 
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
@@ -862,7 +884,7 @@ datablock ParticleEmitterData(GrenadeProjSmokeTrailEmitter)
 
 
 datablock ProjectileData(GrenadeLauncherProjectile)
 datablock ProjectileData(GrenadeLauncherProjectile)
 {
 {
-   projectileShapeName = "art/shapes/weapons/GrenadeLauncher/rocket.dts";
+   projectileShapeName = "art/shapes/weapons/shared/rocket.dts";
    directDamage = 30;
    directDamage = 30;
    radiusDamage = 30;
    radiusDamage = 30;
    damageRadius = 5;
    damageRadius = 5;
@@ -871,7 +893,7 @@ datablock ProjectileData(GrenadeLauncherProjectile)
    explosion = GrenadeLauncherExplosion;
    explosion = GrenadeLauncherExplosion;
    waterExplosion = GrenadeLauncherWaterExplosion;
    waterExplosion = GrenadeLauncherWaterExplosion;
 
 
-   decal = ScorchRXDecal;
+   decal = ExpBlastDecal;
    splash = GrenadeSplash;
    splash = GrenadeSplash;
 
 
    particleEmitter = GrenadeProjSmokeTrailEmitter;
    particleEmitter = GrenadeProjSmokeTrailEmitter;
@@ -893,61 +915,3 @@ datablock ProjectileData(GrenadeLauncherProjectile)
 
 
    damageType = "GrenadeDamage";
    damageType = "GrenadeDamage";
 };
 };
-
-// ----------------------------------------------------------------------------
-// Underwater Projectile
-// ----------------------------------------------------------------------------
-
-datablock ProjectileData(GrenadeWetProjectile)
-{
-   projectileShapeName = "art/shapes/weapons/GrenadeLauncher/rocket.dts";
-   directDamage = 20;
-   radiusDamage = 10;
-   damageRadius = 10;
-   areaImpulse = 2000;
-
-   explosion = GrenadeLauncherWaterExplosion;
-
-   particleEmitter = GrenadeProjSmokeTrailEmitter;
-   particleWaterEmitter = GrenadeTrailWaterEmitter;
-
-   muzzleVelocity = 10;
-   velInheritFactor = 0.3;
-
-   armingDelay = 2000;
-   lifetime = 10000;
-   fadeDelay = 4500;
-
-   bounceElasticity = 0.2;
-   bounceFriction = 0.4;
-   isBallistic = true;
-   gravityMod = 0.80;
-
-   lightDesc = GrenadeLauncherWaterLightDesc;
-
-   damageType = "GrenadeDamage";
-};
-
-// ----------------------------------------------------------------------------
-// Ammo Item
-// ----------------------------------------------------------------------------
-
-datablock ItemData(GrenadeLauncherAmmo)
-{
-   // Mission editor category
-   category = "Ammo";
-
-   // Add the Ammo namespace as a parent. The ammo namespace provides
-   // common ammo related functions and hooks into the inventory system.
-   className = "Ammo";
-
-   // Basic Item properties
-   shapeFile = "art/shapes/weapons/GrenadeLauncher/debris.dts";
-   mass = 2;
-   elasticity = 0.2;
-   friction = 0.6;
-
-   // Dynamic properties defined by the scripts
-   pickUpName = "Grenades";
-   maxInventory = 20;
-};

+ 0 - 1251
Templates/Full/game/art/datablocks/weapons/rocketLauncher.cs

@@ -1,1251 +0,0 @@
-//-----------------------------------------------------------------------------
-// Copyright (c) 2012 GarageGames, LLC
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to
-// deal in the Software without restriction, including without limitation the
-// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-// sell copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-// IN THE SOFTWARE.
-//-----------------------------------------------------------------------------
-
-// RocketLauncher weapon.
-// This script file contains all of the necessary datablocks needed for the
-// RocketLauncher.  These datablocks include sound profiles, light descriptions,
-// particle effects, explosions, projectiles, items (weapon and ammo), shell
-// casings (if any), and finally the weapon image which contains the state
-// machine that determines how the weapon operates.
-
-// The main "fire" method/mode is handled in "../scripts/server/weapons.cs"
-// through a "WeaponImage" namespace function.  This reduces duplicated code,
-// although a unique fire method could still be implemented for this weapon.
-
-// The "alt-fire" method/mode is handled in "../scripts/server/rocketlaucner.cs".
-// Alt-fire for the Rocketlauncher allows you to "charge up" the number of
-// projectiles, up to 3, that get fired.  Hold to increase the number of shots
-// and release to fire.  After three shots are loaded and in the pipe, the
-// weapon will automatically discharge on it's own.
-
-// ----------------------------------------------------------------------------
-// Sound profiles
-// ----------------------------------------------------------------------------
-
-datablock SFXProfile(RocketLauncherReloadSound)
-{
-   filename = "art/sound/weapons/Crossbow_reload";
-   description = AudioClose3d;
-   preload = true;
-};
-
-datablock SFXProfile(RocketLauncherFireSound)
-{
-   filename = "art/sound/weapons/explosion_mono_01";
-   description = AudioClose3d;
-   preload = true;
-};
-
-datablock SFXProfile(RocketLauncherIncLoadSound)
-{
-   filename = "art/sound/weapons/relbow_mono_01";
-   description = AudioClose3d;
-   preload = true;
-};
-
-datablock SFXProfile(RocketLauncherFireEmptySound)
-{
-   filename = "art/sound/weapons/Crossbow_firing_empty";
-   description = AudioClose3d;
-   preload = true;
-};
-
-datablock SFXProfile(RocketLauncherExplosionSound)
-{
-   filename = "art/sound/weapons/Crossbow_explosion";
-   description = AudioDefault3d;
-   preload = true;
-};
-
-// ----------------------------------------------------------------------------
-// Lights for the projectile(s)
-// ----------------------------------------------------------------------------
-
-datablock LightDescription(RocketLauncherLightDesc)
-{
-   range = 4.0;
-   color = "1 1 0";
-   brightness = 5.0;
-   animationType = PulseLightAnim;
-   animationPeriod = 0.25;
-   //flareType = SimpleLightFlare0;
-};
-
-datablock LightDescription(RocketLauncherWaterLightDesc)
-{
-   radius = 2.0;
-   color = "1 1 1";
-   brightness = 5.0;
-   animationType = PulseLightAnim;
-   animationPeriod = 0.25;
-   //flareType = SimpleLightFlare0;
-};
-
-//----------------------------------------------------------------------------
-// Debris
-//----------------------------------------------------------------------------
-
-datablock ParticleData(RocketDebrisTrailParticle)
-{
-   textureName = "art/particles/impact";
-   dragCoeffiecient = 0;
-   inheritedVelFactor = 0.0;
-   constantAcceleration = 0.0;
-   lifetimeMS = 1200;//1000;
-   lifetimeVarianceMS = 299;//500;
-   useInvAlpha = true;//false;
-   spinSpeed = 1;
-   spinRandomMin = -300.0;
-   spinRandomMax = 0;
-   colors[0] = "1 0.897638 0.795276 0.4";
-   colors[1] = "0.795276 0.795276 0.795276 0.6";
-   colors[2] = "0 0 0 0";
-   sizes[0] = 0.5;//1.0;
-   sizes[1] = 2;
-   sizes[2] = 1;//1.0;
-   times[0] = 0.0;
-   times[1] = 0.498039;
-   times[2] = 1.0;
-   animTexName = "art/particles/impact";
-   times[3] = "1";
-};
-
-datablock ParticleEmitterData(RocketDebrisTrailEmitter)
-{
-   ejectionPeriodMS = 6;//8;
-   periodVarianceMS = 2;//4;
-   ejectionVelocity = 1.0;
-   velocityVariance = 0.5;
-   thetaMin = 0.0;
-   thetaMax = 180.0;
-   phiReferenceVel = 0;
-   phiVariance = 360;
-   ejectionoffset = 0.0;//0.3;
-   particles = "RocketDebrisTrailParticle";
-};
-
-datablock DebrisData(RocketDebris)
-{
-   shapeFile = "art/shapes/weapons/SwarmGun/rocket.dts";
-   emitters[0] = RocketDebrisTrailEmitter;
-   elasticity = 0.5;
-   friction = 0.5;
-   numBounces = 1;//2;
-   bounceVariance = 1;
-   explodeOnMaxBounce = true;
-   staticOnMaxBounce = false;
-   snapOnMaxBounce = false;
-   minSpinSpeed = 400;
-   maxSpinSpeed = 800;
-   render2D = false;
-   lifetime = 0.25;//0.5;//1;//2;
-   lifetimeVariance = 0.0;//0.25;//0.5;
-   velocity = 35;//30;//15;
-   velocityVariance = 10;//5;
-   fade = true;
-   useRadiusMass = true;
-   baseRadius = 0.3;
-   gravModifier = 1.0;
-   terminalVelocity = 45;
-   ignoreWater = false;
-};
-
-// ----------------------------------------------------------------------------
-// Splash effects
-// ----------------------------------------------------------------------------
-
-datablock ParticleData(RocketSplashMist)
-{
-   dragCoefficient = 1.0;
-   windCoefficient = 2.0;
-   gravityCoefficient = 0.3;
-   inheritedVelFactor = 0.0;
-   constantAcceleration = 0.0;
-   lifetimeMS = 600;
-   lifetimeVarianceMS = 100;
-   useInvAlpha = false;
-   spinRandomMin = -90.0;
-   spinRandomMax = 500.0;
-   spinSpeed = 1;
-   textureName = "art/particles/smoke";
-   colors[0] = "0.7 0.8 1.0 1.0";
-   colors[1] = "0.7 0.8 1.0 0.5";
-   colors[2] = "0.7 0.8 1.0 0.0";
-   sizes[0] = 0.2;//0.5;
-   sizes[1] = 0.4;//0.5;
-   sizes[2] = 0.8;
-   times[0] = 0.0;
-   times[1] = 0.5;
-   times[2] = 1.0;
-};
-
-datablock ParticleEmitterData(RocketSplashMistEmitter)
-{
-   ejectionPeriodMS = 5;
-   periodVarianceMS = 0;
-   ejectionVelocity = 3.0;
-   velocityVariance = 2.0;
-   ejectionOffset = 0.15;
-   thetaMin = 85;
-   thetaMax = 85;
-   phiReferenceVel = 0;
-   phiVariance = 360;
-   overrideAdvance = false;
-   lifetimeMS = 250;
-   particles = "RocketSplashMist";
-};
-
-datablock ParticleData(RocketSplashParticle)
-{
-   dragCoefficient = 1;
-   windCoefficient = 0.9;
-   gravityCoefficient = 0.3;
-   inheritedVelFactor = 0.2;
-   constantAcceleration = -1.4;
-   lifetimeMS = 600;
-   lifetimeVarianceMS = 200;
-   textureName = "art/particles/droplet";
-   colors[0] = "0.7 0.8 1.0 1.0";
-   colors[1] = "0.7 0.8 1.0 0.5";
-   colors[2] = "0.7 0.8 1.0 0.0";
-   sizes[0] = 0.5;
-   sizes[1] = 0.25;
-   sizes[2] = 0.25;
-   times[0] = 0.0;
-   times[1] = 0.5;
-   times[2] = 1.0;
-};
-
-datablock ParticleEmitterData(RocketSplashEmitter)
-{
-   ejectionPeriodMS = 4;
-   periodVarianceMS = 0;
-   ejectionVelocity = 7.3;
-   velocityVariance = 2.0;
-   ejectionOffset = 0.0;
-   thetaMin = 30;
-   thetaMax = 80;
-   phiReferenceVel = 00;
-   phiVariance = 360;
-   overrideAdvance = false;
-   orientParticles = true;
-   orientOnVelocity = true;
-   lifetimeMS = 100;
-   particles = "RocketSplashParticle";
-};
-
-datablock ParticleData(RocketSplashRingParticle)
-{
-   textureName = "art/particles/wake";
-   dragCoefficient = 0.0;
-   gravityCoefficient = 0.0;
-   inheritedVelFactor = 0.0;
-   lifetimeMS = 2500;
-   lifetimeVarianceMS = 200;
-   windCoefficient = 0.0;
-   useInvAlpha = 1;
-   spinRandomMin = 30.0;
-   spinRandomMax = 30.0;
-   spinSpeed = 1;
-   animateTexture = true;
-   framesPerSec = 1;
-   animTexTiling = "2 1";
-   animTexFrames = "0 1";
-   colors[0] = "0.7 0.8 1.0 1.0";
-   colors[1] = "0.7 0.8 1.0 0.5";
-   colors[2] = "0.7 0.8 1.0 0.0";
-   sizes[0] = 2.0;
-   sizes[1] = 4.0;
-   sizes[2] = 8.0;
-   times[0] = 0.0;
-   times[1] = 0.5;
-   times[2] = 1.0;
-};
-
-datablock ParticleEmitterData(RocketSplashRingEmitter)
-{
-   lifetimeMS = "100";
-   ejectionPeriodMS = 200;
-   periodVarianceMS = 10;
-   ejectionVelocity = 0;
-   velocityVariance = 0;
-   ejectionOffset = 0;
-   thetaMin = 89;
-   thetaMax = 90;
-   phiReferenceVel = 0;
-   phiVariance = 1;
-   alignParticles = 1;
-   alignDirection = "0 0 1";
-   particles = "RocketSplashRingParticle";
-};
-
-datablock SplashData(RocketSplash)
-{
-//    numSegments = 15;
-//    ejectionFreq = 15;
-//    ejectionAngle = 40;
-//    ringLifetime = 0.5;
-//    lifetimeMS = 300;
-//    velocity = 4.0;
-//    startRadius = 0.0;
-//    acceleration = -3.0;
-//    texWrap = 5.0;
-//    texture = "art/particles/splash";
-
-   emitter[0] = RocketSplashEmitter;
-   emitter[1] = RocketSplashMistEmitter;
-   emitter[2] = RocketSplashRingEmitter;
-
-//    colors[0] = "0.7 0.8 1.0 0.0";
-//    colors[1] = "0.7 0.8 1.0 0.3";
-//    colors[2] = "0.7 0.8 1.0 0.7";
-//    colors[3] = "0.7 0.8 1.0 0.0";
-//
-//    times[0] = 0.0;
-//    times[1] = 0.4;
-//    times[2] = 0.8;
-//    times[3] = 1.0;
-};
-
-// ----------------------------------------------------------------------------
-// Explosion Particle effects
-// ----------------------------------------------------------------------------
-
-datablock ParticleData(RocketExpFire)
-{
-   gravityCoefficient = "-0.50061";
-   lifetimeMS = "400";
-   lifetimeVarianceMS = "299";
-   spinSpeed = "1";
-   spinRandomMin = "-200";
-   spinRandomMax = "0";
-   textureName = "art/particles/smoke";
-   animTexName = "art/particles/smoke";
-   colors[0] = "1 0.897638 0.795276 1";
-   colors[1] = "0.795276 0.393701 0 0.6";
-   colors[2] = "0 0 0 0";
-   sizes[0] = "1.99902";
-   sizes[1] = "7.99915";
-   sizes[2] = "3.99805";
-   times[1] = "0.392157";
-   times[2] = "1";
-   times[3] = "1";
-};
-
-datablock ParticleEmitterData(RocketExpFireEmitter)
-{
-   ejectionPeriodMS = "10";
-   periodVarianceMS = "5";
-   ejectionVelocity = "3";
-   velocityVariance = "2";
-   particles = "RocketExpFire";
-   blendStyle = "NORMAL";
-};
-
-datablock ParticleData(RocketExpFireball)
-{
-   textureName = "art/particles/fireball.png";
-   lifetimeMS = "300";
-   lifetimeVarianceMS = "299";
-   spinSpeed = "1";
-   spinRandomMin = "-400";
-   spinRandomMax = "0";
-   animTexName = "art/particles/fireball.png";
-   colors[0] = "1 0.897638 0.795276 0.2";
-   colors[1] = "1 0.496063 0 0.6";
-   colors[2] = "0.0944882 0.0944882 0.0944882 0";
-   sizes[0] = "0.997986";
-   sizes[1] = "1.99902";
-   sizes[2] = "2.99701";
-   times[1] = "0.498039";
-   times[2] = "1";
-   times[3] = "1";
-   gravityCoefficient = "-1";
-};
-
-datablock ParticleEmitterData(RocketExpFireballEmitter)
-{
-   particles = "RocketExpFireball";
-   blendStyle = "ADDITIVE";
-   ejectionPeriodMS = "10";
-   periodVarianceMS = "5";
-   ejectionVelocity = "4";
-   velocityVariance = "2";
-   ejectionOffset = "2";
-   thetaMax = "120";
-};
-
-datablock ParticleData(RocketExpSmoke)
-{
-   lifetimeMS = 1200;//"1250";
-   lifetimeVarianceMS = 299;//200;//"250";
-   textureName = "art/particles/smoke";
-   animTexName = "art/particles/smoke";
-   useInvAlpha = "1";
-   gravityCoefficient = "-0.100122";
-   spinSpeed = "1";
-   spinRandomMin = "-100";
-   spinRandomMax = "0";
-   colors[0] = "0.897638 0.795276 0.692913 0.4";//"0.192157 0.192157 0.192157 0.0944882";
-   colors[1] = "0.897638 0.897638 0.897638 0.8";//"0.454902 0.454902 0.454902 0.897638";
-   colors[2] = "0.4 0.4 0.4 0";//"1 1 1 0";
-   sizes[0] = "1.99597";
-   sizes[1] = "3.99805";
-   sizes[2] = "7.99915";
-   times[1] = "0.494118";
-   times[2] = "1";
-   times[3] = "1";
-};
-
-datablock ParticleEmitterData(RocketExpSmokeEmitter)
-{
-   ejectionPeriodMS = "15";
-   periodVarianceMS = "5";
-   //ejectionOffset = "1";
-   thetaMax = "180";
-   particles = "RocketExpSmoke";
-   blendStyle = "NORMAL";
-};
-
-datablock ParticleData(RocketExpSparks)
-{
-   textureName = "art/particles/droplet.png";
-   lifetimeMS = "100";
-   lifetimeVarianceMS = "50";
-   animTexName = "art/particles/droplet.png";
-   inheritedVelFactor = "0.391389";
-   sizes[0] = "1.99902";
-   sizes[1] = "2.49954";
-   sizes[2] = "0.997986";
-   colors[0] = "1.0 0.9 0.8 0.2";
-   colors[1] = "1.0 0.9 0.8 0.8";
-   colors[2] = "0.8 0.4 0.0 0.0";
-   times[0] = "0";
-   times[1] = "0.34902";
-   times[2] = "1";
-   times[3] = "1";
-};
-
-datablock ParticleEmitterData(RocketExpSparksEmitter)
-{
-   particles = "RocketExpSparks";
-   blendStyle = "NORMAL";
-   ejectionPeriodMS = "10";
-   periodVarianceMS = "5";
-   ejectionVelocity = "60";
-   velocityVariance = "10";
-   thetaMax = "120";
-   phiReferenceVel = 0;
-   phiVariance = "360";
-   ejectionOffset = "0";
-   orientParticles = true;
-   orientOnVelocity = true;
-};
-
-datablock ParticleData(RocketExpSubFireParticles)
-{
-   textureName = "art/particles/fireball.png";
-   gravityCoefficient = "-0.202686";
-   lifetimeMS = "400";
-   lifetimeVarianceMS = "299";
-   spinSpeed = "1";
-   spinRandomMin = "-200";
-   spinRandomMax = "0";
-   animTexName = "art/particles/fireball.png";
-   colors[0] = "1 0.897638 0.795276 0.2";
-   colors[1] = "1 0.496063 0 1";
-   colors[2] = "0.0944882 0.0944882 0.0944882 0";
-   sizes[0] = "0.997986";
-   sizes[1] = "1.99902";
-   sizes[2] = "2.99701";
-   times[1] = "0.498039";
-   times[2] = "1";
-   times[3] = "1";
-};
-
-datablock ParticleEmitterData(RocketExpSubFireEmitter)
-{
-   particles = "RocketExpSubFireParticles";
-   blendStyle = "ADDITIVE";
-   ejectionPeriodMS = "10";
-   periodVarianceMS = "5";
-   ejectionVelocity = "4";
-   velocityVariance = "2";
-   thetaMax = "120";
-};
-
-datablock ParticleData(RocketExpSubSmoke)
-{
-   textureName = "art/particles/smoke";
-   gravityCoefficient = "-0.40293";
-   lifetimeMS = "800";
-   lifetimeVarianceMS = "299";
-   spinSpeed = "1";
-   spinRandomMin = "-200";
-   spinRandomMax = "0";
-   animTexName = "art/particles/smoke";
-   colors[0] = "0.4 0.35 0.3 0.393701";
-   colors[1] = "0.45 0.45 0.45 0.795276";
-   colors[2] = "0.4 0.4 0.4 0";
-   sizes[0] = "1.99902";
-   sizes[1] = "3.99805";
-   sizes[2] = "7.99915";
-   times[1] = "0.4";
-   times[2] = "1";
-   times[3] = "1";
-};
-
-datablock ParticleEmitterData(RocketExpSubSmokeEmitter)
-{
-   particles = "RocketExpSubSmoke";
-   ejectionPeriodMS = "30";
-   periodVarianceMS = "10";
-   ejectionVelocity = "2";
-   velocityVariance = "1";
-   ejectionOffset = 1;//"2";
-   blendStyle = "NORMAL";
-};
-
-// ----------------------------------------------------------------------------
-// Water Explosion
-// ----------------------------------------------------------------------------
-
-datablock ParticleData(RLWaterExpDust)
-{
-   textureName = "art/particles/steam";
-   dragCoefficient = 1.0;
-   gravityCoefficient = -0.01;
-   inheritedVelFactor = 0.0;
-   constantAcceleration = 0.0;
-   lifetimeMS = 2500;
-   lifetimeVarianceMS = 250;
-   useInvAlpha = false;
-   spinSpeed = 1;
-   spinRandomMin = -90.0;
-   spinRandomMax = 500.0;
-   colors[0] = "0.6 0.6 1.0 0.5";
-   colors[1] = "0.6 0.6 1.0 0.3";
-   sizes[0] = 0.25;
-   sizes[1] = 1.5;
-   times[0] = 0.0;
-   times[1] = 1.0;
-   times[2] = 1.0;
-};
-
-datablock ParticleEmitterData(RLWaterExpDustEmitter)
-{
-   ejectionPeriodMS = 1;
-   periodVarianceMS = 0;
-   ejectionVelocity = 10;
-   velocityVariance = 0.0;
-   ejectionOffset = 0.0;
-   thetaMin = 85;
-   thetaMax = 85;
-   phiReferenceVel = 0;
-   phiVariance = 360;
-   overrideAdvances = false;
-   lifetimeMS = 75;
-   particles = "RLWaterExpDust";
-};
-
-datablock ParticleData(RLWaterExpSparks)
-{
-   textureName = "art/particles/spark_wet";
-   dragCoefficient = 1;
-   gravityCoefficient = 0.0;
-   inheritedVelFactor = 0.2;
-   constantAcceleration = 0.0;
-   lifetimeMS = 500;
-   lifetimeVarianceMS = 250;
-   colors[0] = "0.6 0.6 1.0 1.0";
-   colors[1] = "0.6 0.6 1.0 1.0";
-   colors[2] = "0.6 0.6 1.0 0.0";
-   sizes[0] = 0.5;
-   sizes[1] = 0.5;
-   sizes[2] = 0.75;
-   times[0] = 0.0;
-   times[1] = 0.5;
-   times[2] = 1.0;
-};
-
-datablock ParticleEmitterData(RLWaterExpSparkEmitter)
-{
-   ejectionPeriodMS = 2;
-   periodVarianceMS = 0;
-   ejectionVelocity = 12;
-   velocityVariance = 6.75;
-   ejectionOffset = 0.0;
-   thetaMin = 0;
-   thetaMax = 60;
-   phiReferenceVel = 0;
-   phiVariance = 360;
-   overrideAdvances = false;
-   orientParticles = true;
-   lifetimeMS = 100;
-   particles = "RLWaterExpSparks";
-};
-
-datablock ParticleData(RLWaterExpSmoke)
-{
-   textureName = "art/particles/smoke";
-   dragCoeffiecient = 0.4;
-   gravityCoefficient = -0.25;
-   inheritedVelFactor = 0.025;
-   constantAcceleration = -1.1;
-   lifetimeMS = 1250;
-   lifetimeVarianceMS = 0;
-   useInvAlpha = false;
-   spinSpeed = 1;
-   spinRandomMin = -200.0;
-   spinRandomMax = 200.0;
-   colors[0] = "0.1 0.1 1.0 1.0";
-   colors[1] = "0.4 0.4 1.0 1.0";
-   colors[2] = "0.4 0.4 1.0 0.0";
-   sizes[0] = 2.0;
-   sizes[1] = 6.0;
-   sizes[2] = 2.0;
-   times[0] = 0.0;
-   times[1] = 0.5;
-   times[2] = 1.0;
-};
-
-datablock ParticleEmitterData(RLWaterExpSmokeEmitter)
-{
-   ejectionPeriodMS = 15;
-   periodVarianceMS = 0;
-   ejectionVelocity = 6.25;
-   velocityVariance = 0.25;
-   thetaMin = 0.0;
-   thetaMax = 90.0;
-   lifetimeMS = 250;
-   particles = "RLWaterExpSmoke";
-};
-
-datablock ParticleData(RLWaterExpBubbles)
-{
-   textureName = "art/particles/millsplash01";
-   dragCoefficient = 0.0;
-   gravityCoefficient = -0.05;
-   inheritedVelFactor = 0.0;
-   constantAcceleration = 0.0;
-   lifetimeMS = 1500;
-   lifetimeVarianceMS = 250;
-   useInvAlpha = false;
-   spinRandomMin = -100.0;
-   spinRandomMax = 100.0;
-   spinSpeed = 1;
-   colors[0] = "0.7 0.8 1.0 0.0";
-   colors[1] = "0.7 0.8 1.0 0.4";
-   colors[2] = "0.7 0.8 1.0 0.0";
-   sizes[0] = 0.2;
-   sizes[1] = 0.4;
-   sizes[2] = 0.8;
-   times[0] = 0.0;
-   times[1] = 0.5;
-   times[2] = 1.0;
-};
-
-datablock ParticleEmitterData(RLWaterExpBubbleEmitter)
-{
-   ejectionPeriodMS = 5;
-   periodVarianceMS = 0;
-   ejectionVelocity = 1.0;
-   ejectionOffset = 3.0;
-   velocityVariance = 0.5;
-   thetaMin = 0;
-   thetaMax = 80;
-   phiReferenceVel = 0;
-   phiVariance = 360;
-   overrideAdvances = false;
-   particles = "RLWaterExpBubbles";
-};
-
-datablock ExplosionData(RocketLauncherWaterExplosion)
-{
-   //soundProfile = RLWaterExplosionSound;
-
-   emitter[0] = RLWaterExpDustEmitter;
-   emitter[1] = RLWaterExpSparkEmitter;
-   emitter[2] = RLWaterExpSmokeEmitter;
-   emitter[3] = RLWaterExpBubbleEmitter;
-
-   shakeCamera = true;
-   camShakeFreq = "10.0 11.0 9.0";
-   camShakeAmp = "20.0 20.0 20.0";
-   camShakeDuration = 1.5;
-   camShakeRadius = 20.0;
-
-   lightStartRadius = 20.0;
-   lightEndRadius = 0.0;
-   lightStartColor = "0.9 0.9 0.8";
-   lightEndColor = "0.6 0.6 1.0";
-   lightStartBrightness = 2.0;
-   lightEndBrightness = 0.0;
-};
-
-// ----------------------------------------------------------------------------
-// Dry/Air Explosion Objects
-// ----------------------------------------------------------------------------
-
-datablock ExplosionData(RocketSubExplosion)
-{
-   lifeTimeMS = 100;
-   offset = 0.4;
-   emitter[0] = RocketExpSubFireEmitter;
-   emitter[1] = RocketExpSubSmokeEmitter;
-};
-
-
-datablock ExplosionData(RocketLauncherExplosion)
-{
-   soundProfile = RocketLauncherExplosionSound;
-   lifeTimeMS = 200; // I want a quick bang and dissipation, not a slow burn-out
-
-   // Volume particles
-   particleEmitter = RocketExpSmokeEmitter;
-   particleDensity = 10;//20;
-   particleRadius = 1;//2;
-
-   // Point emission
-   emitter[0] = RocketExpFireEmitter;
-   emitter[1] = RocketExpSparksEmitter;
-   emitter[2] = RocketExpSparksEmitter;
-   emitter[3] = RocketExpFireballEmitter;
-
-   // Sub explosion objects
-   subExplosion[0] = RocketSubExplosion;
-
-   // Camera Shaking
-   shakeCamera = true;
-   camShakeFreq = "10.0 11.0 9.0";
-   camShakeAmp = "15.0 15.0 15.0";
-   camShakeDuration = 1.5;
-   camShakeRadius = 20;
-
-   // Exploding debris
-   debris = RocketDebris;
-   debrisThetaMin = 0;//10;
-   debrisThetaMax = 90;//80;
-   debrisNum = 5;
-   debrisNumVariance = 2;
-   debrisVelocity = 1;//2;
-   debrisVelocityVariance = 0.2;//0.5;
-
-   lightStartRadius = 6.0;
-   lightEndRadius = 0.0;
-   lightStartColor = "1.0 0.7 0.2";
-   lightEndColor = "0.9 0.7 0.0";
-   lightStartBrightness = 2.5;
-   lightEndBrightness = 0.0;
-   lightNormalOffset = 3.0;
-};
-
-// ----------------------------------------------------------------------------
-// Underwater Rocket projectile trail
-// ----------------------------------------------------------------------------
-
-datablock ParticleData(RocketTrailWaterParticle)
-{
-   textureName = "art/particles/bubble";
-   dragCoefficient = 0.0;
-   gravityCoefficient = 0.1;
-   inheritedVelFactor = 0.0;
-   constantAcceleration = 0.0;
-   lifetimeMS = 1500;
-   lifetimeVarianceMS = 600;
-   useInvAlpha = false;
-   spinRandomMin = -100.0;
-   spinRandomMax = 100.0;
-   spinSpeed = 1;
-
-   colors[0] = "0.7 0.8 1.0 1.0";
-   colors[1] = "0.7 0.8 1.0 0.4";
-   colors[2] = "0.7 0.8 1.0 0.0";
-
-   sizes[0] = 0.05;
-   sizes[1] = 0.05;
-   sizes[2] = 0.05;
-
-   times[0] = 0.0;
-   times[1] = 0.5;
-   times[2] = 1.0;
-};
-
-datablock ParticleEmitterData(RocketTrailWaterEmitter)
-{
-   ejectionPeriodMS = 5;
-   periodVarianceMS = 0;
-   ejectionVelocity = 1.0;
-   ejectionOffset = 0.1;
-   velocityVariance = 0.5;
-   thetaMin = 0.0;
-   thetaMax = 80.0;
-   phiReferenceVel = 0;
-   phiVariance = 360;
-   overrideAdvances = false;
-   particles = RocketTrailWaterParticle;
-};
-
-// ----------------------------------------------------------------------------
-// Normal-fire Projectile Object
-// ----------------------------------------------------------------------------
-
-datablock ParticleData(RocketProjSmokeTrail)
-{
-   textureName = "art/particles/smoke";
-   dragCoeffiecient = 0;
-   gravityCoefficient = -0.202686;
-   inheritedVelFactor = 0.0;
-   constantAcceleration = 0.0;
-   lifetimeMS = 750;
-   lifetimeVarianceMS = 749;
-   useInvAlpha = true;
-   spinRandomMin = -60;
-   spinRandomMax = 0;
-   spinSpeed = 1;
-
-   colors[0] = "0.3 0.3 0.3 0.598425";
-   colors[1] = "0.9 0.9 0.9 0.897638";
-   colors[2] = "0.9 0.9 0.9 0";
-
-   sizes[0] = 0.247207;
-   sizes[1] = 0.497467;
-   sizes[2] = 0.747726;
-
-   times[0] = 0.0;
-   times[1] = 0.4;
-   times[2] = 1.0;
-   animTexName = "art/particles/smoke";
-   times[3] = "1";
-};
-
-datablock ParticleEmitterData(RocketProjSmokeTrailEmitter)
-{
-   ejectionPeriodMS = 1;
-   periodVarianceMS = 0;
-   ejectionVelocity = 0.75;
-   velocityVariance = 0;
-   thetaMin = 0.0;
-   thetaMax = 0.0;
-   phiReferenceVel = 90;
-   phiVariance = 0;
-   particles = "RocketProjSmokeTrail";
-};
-
-datablock ProjectileData(RocketLauncherProjectile)
-{
-   projectileShapeName = "art/shapes/weapons/SwarmGun/rocket.dts";
-   directDamage = 30;
-   radiusDamage = 30;
-   damageRadius = 5;
-   areaImpulse = 2500;
-
-   explosion = RocketLauncherExplosion;
-   waterExplosion = RocketLauncherWaterExplosion;
-
-   decal = ScorchRXDecal;
-   splash = RocketSplash;
-
-   particleEmitter = RocketProjSmokeTrailEmitter;
-   particleWaterEmitter = RocketTrailWaterEmitter;
-
-   muzzleVelocity = 100;
-   velInheritFactor = 0.3;
-
-   armingDelay = 0;
-   lifetime = 5000; //(500m / 100m/s = 5000ms)
-   fadeDelay = 4500;
-
-   bounceElasticity = 0;
-   bounceFriction = 0;
-   isBallistic = false;
-   gravityMod = 0.80;
-
-   lightDesc = RocketLauncherLightDesc;
-
-   damageType = "RocketDamage";
-};
-
-// ----------------------------------------------------------------------------
-// Underwater Projectile
-// ----------------------------------------------------------------------------
-
-datablock ProjectileData(RocketWetProjectile)
-{
-   projectileShapeName = "art/shapes/weapons/SwarmGun/rocket.dts";
-   directDamage = 20;
-   radiusDamage = 10;
-   damageRadius = 10;
-   areaImpulse = 2000;
-
-   explosion = RocketLauncherWaterExplosion;
-
-   particleEmitter = RocketProjSmokeTrailEmitter;
-   particleWaterEmitter = RocketTrailWaterEmitter;
-
-   muzzleVelocity = 20;
-   velInheritFactor = 0.3;
-
-   armingDelay = 0;
-   lifetime = 5000; //(500m / 100m/s = 5000ms)
-   fadeDelay = 4500;
-
-   bounceElasticity = 0.2;
-   bounceFriction = 0.4;
-   isBallistic = true;
-   gravityMod = 0.80;
-
-   lightDesc = RocketLauncherWaterLightDesc;
-
-   damageType = "RocketDamage";
-};
-
-// ----------------------------------------------------------------------------
-// Shell that's ejected during reload.
-// ----------------------------------------------------------------------------
-
-datablock DebrisData(RocketlauncherShellCasing)
-{
-   shapeFile = "art/shapes/weapons/SwarmGun/rocket.dts";
-   lifetime = 6.0;
-   minSpinSpeed = 300.0;
-   maxSpinSpeed = 400.0;
-   elasticity = 0.65;
-   friction = 0.05;
-   numBounces = 5;
-   staticOnMaxBounce = true;
-   snapOnMaxBounce = false;
-   fade = true;
-};
-
-// ----------------------------------------------------------------------------
-// Particle Emitter played when firing.
-// ----------------------------------------------------------------------------
-
-datablock ParticleData(RocketLauncherfiring1Particle)
-{
-   textureName = "art/particles/Fireball";
-   dragCoefficient = 100.0;
-   gravityCoefficient = -0.25;//-0.5;//0.0;
-   inheritedVelFactor = 0.25;//1.0;
-   constantAcceleration = 0.1;
-   lifetimeMS = 400;
-   lifetimeVarianceMS = 100;
-   useInvAlpha = false;
-   spinSpeed = 1;
-   spinRandomMin = -200;
-   spinRandomMax = 200;
-   colors[0] = "1 0.9 0.8 0.1";
-   colors[1] = "1 0.5 0 0.3";
-   colors[2] = "0.1 0.1 0.1 0";
-   sizes[0] = 0.2;//1;
-   sizes[1] = 0.25;//0.15;//0.75;
-   sizes[2] = 0.3;//0.1;//0.5;
-   times[0] = 0.0;
-   times[1] = 0.5;//0.294118;
-   times[2] = 1.0;
-};
-
-datablock ParticleEmitterData(RocketLauncherfiring1Emitter)
-{
-   ejectionPeriodMS = 15;//75;
-   periodVarianceMS = 5;
-   ejectionVelocity = 1;
-   ejectionOffset = 0.0;
-   velocityVariance = 0;
-   thetaMin = 0.0;
-   thetaMax = 180;//10.0;
-   particles = "RocketLauncherfiring1Particle";
-   blendStyle = "ADDITIVE";
-};
-
-datablock ParticleData(RocketLauncherfiring2Particle)
-{
-   textureName = "art/particles/impact";
-   dragCoefficient = 100.0;
-   gravityCoefficient = -0.5;//0.0;
-   inheritedVelFactor = 0.25;//1.0;
-   constantAcceleration = 0.1;
-   lifetimeMS = 1600;//400;
-   lifetimeVarianceMS = 400;//100;
-   useInvAlpha = false;
-   spinSpeed = 1;
-   spinRandomMin = -200;
-   spinRandomMax = 200;
-   colors[0] = "0.4 0.4 0.4 0.2";
-   colors[1] = "0.4 0.4 0.4 0.1";
-   colors[2] = "0.0 0.0 0.0 0.0";
-   sizes[0] = 0.2;//1;
-   sizes[1] = 0.15;//0.75;
-   sizes[2] = 0.1;//0.5;
-   times[0] = 0.0;
-   times[1] = 0.5;//0.294118;
-   times[2] = 1.0;
-};
-
-datablock ParticleEmitterData(RocketLauncherfiring2Emitter)
-{
-   ejectionPeriodMS = 15;//75;
-   periodVarianceMS = 5;
-   ejectionVelocity = 1;
-   ejectionOffset = 0.0;
-   velocityVariance = 0;
-   thetaMin = 0.0;
-   thetaMax = 180;//10.0;
-   particles = "RocketLauncherfiring2Particle";
-   blendStyle = "NORMAL";
-};
-
-// ----------------------------------------------------------------------------
-// Ammo Item
-// ----------------------------------------------------------------------------
-
-datablock ItemData(RocketLauncherAmmo)
-{
-   // Mission editor category
-   category = "Ammo";
-
-   // Add the Ammo namespace as a parent. The ammo namespace provides
-   // common ammo related functions and hooks into the inventory system.
-   className = "Ammo";
-
-   // Basic Item properties
-   shapeFile = "art/shapes/weapons/SwarmGun/rocket.dts";
-   mass = 2;
-   elasticity = 0.2;
-   friction = 0.6;
-
-   // Dynamic properties defined by the scripts
-   pickUpName = "Rockets";
-   maxInventory = 20;
-};
-
-// ----------------------------------------------------------------------------
-// Weapon Item. This is the item that exists in the world,
-// i.e. when it's been dropped, thrown or is acting as re-spawnable item.
-// When the weapon is mounted onto a shape, the Image is used.
-// ----------------------------------------------------------------------------
-
-datablock ItemData(RocketLauncher)
-{
-   // Mission editor category
-   category = "Weapon";
-
-   // Hook into Item Weapon class hierarchy. The weapon namespace
-   // provides common weapon handling functions in addition to hooks
-   // into the inventory system.
-   className = "Weapon";
-
-   // Basic Item properties
-   shapefile = "art/shapes/weapons/SwarmGun/swarmgun.dts";
-   mass = 5;
-   elasticity = 0.2;
-   friction = 0.6;
-   emap = true;
-
-   // Dynamic properties defined by the scripts
-   pickUpName = "SwarmGun";
-   description = "RocketLauncher";
-   image = RocketLauncherImage;
-
-   // weaponHUD
-   previewImage = 'swarmer.png';
-   reticle = 'reticle_rocketlauncher';
-   zoomReticle = 'bino';
-};
-
-// ----------------------------------------------------------------------------
-// Image which does all the work. Images do not normally exist in
-// the world, they can only be mounted on ShapeBase objects.
-// ----------------------------------------------------------------------------
-
-datablock ShapeBaseImageData(RocketLauncherImage)
-{
-   // Basic Item properties
-   shapefile = "art/shapes/weapons/SwarmGun/swarmgun.dts";
-   emap = true;
-
-   // Specify mount point & offset for 3rd person, and eye offset
-   // for first person rendering.
-   mountPoint = 0;
-   offset = "0.0 0.15 0.025";
-   eyeOffset = "0.25 0.6 -0.4"; // 0.25=right/left 0.5=forward/backward, -0.5=up/down
-
-   // 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 = false;
-
-   // Add the WeaponImage namespace as a parent, WeaponImage namespace
-   // provides some hooks into the inventory system.
-   className = "WeaponImage";
-
-   // Projectile && Ammo.
-   item = RocketLauncher;
-   ammo = RocketLauncherAmmo;
-   projectile = RocketLauncherProjectile;
-   wetProjectile = RocketWetProjectile;
-   projectileType = Projectile;
-
-   // shell casings
-   casing = RocketlauncherShellCasing;
-   shellExitDir = "1.0 0.3 1.0";
-   shellExitOffset = "0.15 -0.56 -0.1";
-   shellExitVariance = 15.0;
-   shellVelocity = 3.0;
-
-   // Let there be light - NoLight, ConstantLight, PulsingLight, WeaponFireLight.
-   lightType = "WeaponFireLight";
-   lightColor = "1.0 1.0 0.9";
-   lightDuration = 200;
-   lightRadius = 10;
-
-   // 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
-   stateName[0] = "Preactivate";
-   stateTransitionOnLoaded[0] = "Activate";
-   stateTransitionOnNoAmmo[0] = "NoAmmo";
-
-   // Activating the gun.
-   // Called when the weapon is first mounted and there is ammo.
-   stateName[1] = "Activate";
-   stateTransitionOnTimeout[1] = "Ready";
-   stateTimeoutValue[1] = 0.6;
-   stateSequence[1] = "Activate";
-
-   // Ready to fire, just waiting for the trigger
-   stateName[2] = "Ready";
-   stateTransitionOnNoAmmo[2] = "NoAmmo";
-   stateTransitionOnTriggerDown[2] = "CheckWet";
-   stateTransitionOnAltTriggerDown[2] = "CheckWetAlt";
-   stateSequence[2] = "Ready";
-
-   // Fire the weapon. Calls the fire script which does the actual work.
-   stateName[3] = "Fire";
-   stateTransitionOnTimeout[3] = "PostFire";
-   stateTimeoutValue[3] = 0.9;
-   stateFire[3] = true;
-   stateRecoil[3] = LightRecoil;
-   stateAllowImageChange[3] = false;
-   stateSequence[3] = "Fire";
-   stateScript[3] = "onFire";
-   stateSound[3] = RocketLauncherFireSound;
-   stateEmitter[3] = RocketLauncherfiring1Emitter;
-   stateEmitterTime[3] = 0.6;
-
-   // Check ammo
-   stateName[4] = "PostFire";
-   stateTransitionOnAmmo[4] = "Reload";
-   stateTransitionOnNoAmmo[4] = "NoAmmo";
-
-   // Play the reload animation, and transition into
-   stateName[5] = "Reload";
-   stateTransitionOnTimeout[5] = "Ready";
-   stateTimeoutValue[5] = 0.9;
-   stateAllowImageChange[5] = false;
-   stateSequence[5] = "Reload";
-   stateEjectShell[5] = false; // set to true to enable shell casing eject
-   stateSound[5] = RocketLauncherReloadSound;
-   stateEmitter[5] = RocketLauncherfiring2Emitter;
-   stateEmitterTime[5] = 2.4;
-
-   // No ammo in the weapon, just idle until something shows up.
-   // Play the dry fire sound if the trigger iS pulled.
-   stateName[6] = "NoAmmo";
-   stateTransitionOnAmmo[6] = "Reload";
-   stateSequence[6] = "NoAmmo";
-   stateTransitionOnTriggerDown[6] = "DryFire";
-
-   // No ammo dry fire
-   stateName[7] = "DryFire";
-   stateTimeoutValue[7] = 1.0;
-   stateTransitionOnTimeout[7] = "NoAmmo";
-   stateSound[7] = RocketLauncherFireEmptySound;
-
-   // Check if wet
-   stateName[8] = "CheckWet";
-   stateTransitionOnWet[8] = "WetFire";
-   stateTransitionOnNotWet[8] = "Fire";
-
-   // Check if alt wet
-   stateName[9] = "CheckWetAlt";
-   stateTransitionOnWet[9] = "WetFire";
-   stateTransitionOnNotWet[9] = "ChargeUp1";
-
-   // Wet fire
-   stateName[10] = "WetFire";
-   stateTransitionOnTimeout[10] = "PostFire";
-   stateTimeoutValue[10] = 0.9;
-   stateFire[10] = true;
-   stateRecoil[10] = LightRecoil;
-   stateAllowImageChange[10] = false;
-   stateSequence[10] = "Fire";
-   stateScript[10] = "onWetFire";
-   stateSound[10] = RocketLauncherFireSound;
-
-   // Begin "charge up", 1 in the pipe
-   stateName[11] = "ChargeUp1";
-   stateScript[11] = "readyLoad";
-   stateSound[11] = RocketLauncherIncLoadSound;
-   stateTransitionOnAltTriggerUp[11] = "AltFire";
-   stateTransitionOnTimeout[11] = "ChargeUp2";
-   stateTimeoutValue[11] = 0.8;
-   stateWaitForTimeout[11] = false;
-
-   // Charge up, 2 in the pipe
-   stateName[12] = "ChargeUp2";
-   stateScript[12] = "incLoad";
-   stateSound[12] = RocketLauncherIncLoadSound;
-   stateTransitionOnAltTriggerUp[12] = "AltFire";
-   stateTransitionOnTimeout[12] = "ChargeUp3";
-   stateTimeoutValue[12] = 0.8;
-   stateWaitForTimeout[12] = false;
-
-   // Charge up, 3 in the pipe
-   stateName[13] = "ChargeUp3";
-   stateScript[13] = "incLoad";
-   stateSound[13] = RocketLauncherIncLoadSound;
-   stateTransitionOnAltTriggerUp[13] = "AltFire";
-   stateTransitionOnTimeout[13] = "Altfire";  // lets force them to fire
-   stateTimeOutValue[13] = 1.2;
-   stateWaitForTimeout[13] = false;
-
-   // Alt-fire
-   stateName[14] = "AltFire";
-   stateTransitionOnTimeout[14] = "PostFire";
-   stateTimeoutValue[14] = 1.2;
-   stateFire[14] = true;
-   stateRecoil[14] = LightRecoil;
-   stateAllowImageChange[14] = false;
-   stateSequence[14] = "Fire";
-   stateScript[14] = "onAltFire";
-   stateSound[14] = RocketLauncherFireSound;
-   stateEmitter[14] = RocketLauncherfiring1Emitter;
-   stateEmitterTime[14] = 1.2;
-};

+ 504 - 0
Templates/Full/game/art/datablocks/weapons/rocketfx.cs

@@ -0,0 +1,504 @@
+// ----------------------------------------------------------------------------
+// Placeholder explosion with required sounds, debris, and particle datablocks.
+// These datablocks existed in now removed scripts, but were used within some
+// that remain: see cheetahCar.cs
+//
+// These should be made more generic or new fx created for the cheetah turret's
+// projectile explosion effects.
+//
+// I've removed all effects that are not required for the current weapons.  On
+// reflection I really went overboard when originally designing these effects!
+// ----------------------------------------------------------------------------
+
+// ----------------------------------------------------------------------------
+// Sound
+// ----------------------------------------------------------------------------
+
+datablock SFXProfile(RocketLauncherExplosionSound)
+{
+   filename = "art/sound/weapons/Crossbow_explosion";
+   description = AudioDefault3d;
+   preload = true;
+};
+
+//----------------------------------------------------------------------------
+// Debris
+//----------------------------------------------------------------------------
+
+datablock ParticleData(RocketDebrisTrailParticle)
+{
+   textureName = "art/particles/impact";
+   dragCoeffiecient = 0;
+   inheritedVelFactor = 0.0;
+   constantAcceleration = 0.0;
+   lifetimeMS = 1200;//1000;
+   lifetimeVarianceMS = 299;//500;
+   useInvAlpha = true;//false;
+   spinSpeed = 1;
+   spinRandomMin = -300.0;
+   spinRandomMax = 0;
+   colors[0] = "1 0.897638 0.795276 0.4";
+   colors[1] = "0.795276 0.795276 0.795276 0.6";
+   colors[2] = "0 0 0 0";
+   sizes[0] = 0.5;//1.0;
+   sizes[1] = 2;
+   sizes[2] = 1;//1.0;
+   times[0] = 0.0;
+   times[1] = 0.498039;
+   times[2] = 1.0;
+   animTexName = "art/particles/impact";
+   times[3] = "1";
+};
+
+datablock ParticleEmitterData(RocketDebrisTrailEmitter)
+{
+   ejectionPeriodMS = 6;//8;
+   periodVarianceMS = 2;//4;
+   ejectionVelocity = 1.0;
+   velocityVariance = 0.5;
+   thetaMin = 0.0;
+   thetaMax = 180.0;
+   phiReferenceVel = 0;
+   phiVariance = 360;
+   ejectionoffset = 0.0;//0.3;
+   particles = "RocketDebrisTrailParticle";
+};
+
+datablock DebrisData(RocketDebris)
+{
+   shapeFile = "art/shapes/weapons/shared/rocket.dts";
+   emitters[0] = RocketDebrisTrailEmitter;
+   elasticity = 0.5;
+   friction = 0.5;
+   numBounces = 1;//2;
+   bounceVariance = 1;
+   explodeOnMaxBounce = true;
+   staticOnMaxBounce = false;
+   snapOnMaxBounce = false;
+   minSpinSpeed = 400;
+   maxSpinSpeed = 800;
+   render2D = false;
+   lifetime = 0.25;//0.5;//1;//2;
+   lifetimeVariance = 0.0;//0.25;//0.5;
+   velocity = 35;//30;//15;
+   velocityVariance = 10;//5;
+   fade = true;
+   useRadiusMass = true;
+   baseRadius = 0.3;
+   gravModifier = 1.0;
+   terminalVelocity = 45;
+   ignoreWater = false;
+};
+
+// ----------------------------------------------------------------------------
+// Splash effects
+// ----------------------------------------------------------------------------
+
+datablock ParticleData(RocketSplashMist)
+{
+   dragCoefficient = 1.0;
+   windCoefficient = 2.0;
+   gravityCoefficient = 0.3;
+   inheritedVelFactor = 0.0;
+   constantAcceleration = 0.0;
+   lifetimeMS = 600;
+   lifetimeVarianceMS = 100;
+   useInvAlpha = false;
+   spinRandomMin = -90.0;
+   spinRandomMax = 500.0;
+   spinSpeed = 1;
+   textureName = "art/particles/smoke";
+   colors[0] = "0.7 0.8 1.0 1.0";
+   colors[1] = "0.7 0.8 1.0 0.5";
+   colors[2] = "0.7 0.8 1.0 0.0";
+   sizes[0] = 0.2;//0.5;
+   sizes[1] = 0.4;//0.5;
+   sizes[2] = 0.8;
+   times[0] = 0.0;
+   times[1] = 0.5;
+   times[2] = 1.0;
+};
+
+datablock ParticleEmitterData(RocketSplashMistEmitter)
+{
+   ejectionPeriodMS = 5;
+   periodVarianceMS = 0;
+   ejectionVelocity = 3.0;
+   velocityVariance = 2.0;
+   ejectionOffset = 0.15;
+   thetaMin = 85;
+   thetaMax = 85;
+   phiReferenceVel = 0;
+   phiVariance = 360;
+   overrideAdvance = false;
+   lifetimeMS = 250;
+   particles = "RocketSplashMist";
+};
+
+datablock ParticleData(RocketSplashParticle)
+{
+   dragCoefficient = 1;
+   windCoefficient = 0.9;
+   gravityCoefficient = 0.3;
+   inheritedVelFactor = 0.2;
+   constantAcceleration = -1.4;
+   lifetimeMS = 600;
+   lifetimeVarianceMS = 200;
+   textureName = "art/particles/droplet";
+   colors[0] = "0.7 0.8 1.0 1.0";
+   colors[1] = "0.7 0.8 1.0 0.5";
+   colors[2] = "0.7 0.8 1.0 0.0";
+   sizes[0] = 0.5;
+   sizes[1] = 0.25;
+   sizes[2] = 0.25;
+   times[0] = 0.0;
+   times[1] = 0.5;
+   times[2] = 1.0;
+};
+
+datablock ParticleEmitterData(RocketSplashEmitter)
+{
+   ejectionPeriodMS = 4;
+   periodVarianceMS = 0;
+   ejectionVelocity = 7.3;
+   velocityVariance = 2.0;
+   ejectionOffset = 0.0;
+   thetaMin = 30;
+   thetaMax = 80;
+   phiReferenceVel = 00;
+   phiVariance = 360;
+   overrideAdvance = false;
+   orientParticles = true;
+   orientOnVelocity = true;
+   lifetimeMS = 100;
+   particles = "RocketSplashParticle";
+};
+
+datablock ParticleData(RocketSplashRingParticle)
+{
+   textureName = "art/particles/wake";
+   dragCoefficient = 0.0;
+   gravityCoefficient = 0.0;
+   inheritedVelFactor = 0.0;
+   lifetimeMS = 2500;
+   lifetimeVarianceMS = 200;
+   windCoefficient = 0.0;
+   useInvAlpha = 1;
+   spinRandomMin = 30.0;
+   spinRandomMax = 30.0;
+   spinSpeed = 1;
+   animateTexture = true;
+   framesPerSec = 1;
+   animTexTiling = "2 1";
+   animTexFrames = "0 1";
+   colors[0] = "0.7 0.8 1.0 1.0";
+   colors[1] = "0.7 0.8 1.0 0.5";
+   colors[2] = "0.7 0.8 1.0 0.0";
+   sizes[0] = 2.0;
+   sizes[1] = 4.0;
+   sizes[2] = 8.0;
+   times[0] = 0.0;
+   times[1] = 0.5;
+   times[2] = 1.0;
+};
+
+datablock ParticleEmitterData(RocketSplashRingEmitter)
+{
+   lifetimeMS = "100";
+   ejectionPeriodMS = 200;
+   periodVarianceMS = 10;
+   ejectionVelocity = 0;
+   velocityVariance = 0;
+   ejectionOffset = 0;
+   thetaMin = 89;
+   thetaMax = 90;
+   phiReferenceVel = 0;
+   phiVariance = 1;
+   alignParticles = 1;
+   alignDirection = "0 0 1";
+   particles = "RocketSplashRingParticle";
+};
+
+datablock SplashData(RocketSplash)
+{
+//    numSegments = 15;
+//    ejectionFreq = 15;
+//    ejectionAngle = 40;
+//    ringLifetime = 0.5;
+//    lifetimeMS = 300;
+//    velocity = 4.0;
+//    startRadius = 0.0;
+//    acceleration = -3.0;
+//    texWrap = 5.0;
+//    texture = "art/images/particles/splash";
+
+   emitter[0] = RocketSplashEmitter;
+   emitter[1] = RocketSplashMistEmitter;
+   emitter[2] = RocketSplashRingEmitter;
+
+//    colors[0] = "0.7 0.8 1.0 0.0";
+//    colors[1] = "0.7 0.8 1.0 0.3";
+//    colors[2] = "0.7 0.8 1.0 0.7";
+//    colors[3] = "0.7 0.8 1.0 0.0";
+//
+//    times[0] = 0.0;
+//    times[1] = 0.4;
+//    times[2] = 0.8;
+//    times[3] = 1.0;
+};
+
+// ----------------------------------------------------------------------------
+// Explosion Particle effects
+// ----------------------------------------------------------------------------
+
+datablock ParticleData(RocketExpFire)
+{
+   gravityCoefficient = "-0.50061";
+   lifetimeMS = "400";
+   lifetimeVarianceMS = "299";
+   spinSpeed = "1";
+   spinRandomMin = "-200";
+   spinRandomMax = "0";
+   textureName = "art/particles/smoke";
+   animTexName = "art/particles/smoke";
+   colors[0] = "1 0.897638 0.795276 1";
+   colors[1] = "0.795276 0.393701 0 0.6";
+   colors[2] = "0 0 0 0";
+   sizes[0] = "1.99902";
+   sizes[1] = "7.99915";
+   sizes[2] = "3.99805";
+   times[1] = "0.392157";
+   times[2] = "1";
+   times[3] = "1";
+};
+
+datablock ParticleEmitterData(RocketExpFireEmitter)
+{
+   ejectionPeriodMS = "10";
+   periodVarianceMS = "5";
+   ejectionVelocity = "3";
+   velocityVariance = "2";
+   particles = "RocketExpFire";
+   blendStyle = "NORMAL";
+};
+
+datablock ParticleData(RocketExpFireball)
+{
+   textureName = "art/particles/fireball.png";
+   lifetimeMS = "300";
+   lifetimeVarianceMS = "299";
+   spinSpeed = "1";
+   spinRandomMin = "-400";
+   spinRandomMax = "0";
+   animTexName = "art/particles/fireball.png";
+   colors[0] = "1 0.897638 0.795276 0.2";
+   colors[1] = "1 0.496063 0 0.6";
+   colors[2] = "0.0944882 0.0944882 0.0944882 0";
+   sizes[0] = "0.997986";
+   sizes[1] = "1.99902";
+   sizes[2] = "2.99701";
+   times[1] = "0.498039";
+   times[2] = "1";
+   times[3] = "1";
+   gravityCoefficient = "-1";
+};
+
+datablock ParticleEmitterData(RocketExpFireballEmitter)
+{
+   particles = "RocketExpFireball";
+   blendStyle = "ADDITIVE";
+   ejectionPeriodMS = "10";
+   periodVarianceMS = "5";
+   ejectionVelocity = "4";
+   velocityVariance = "2";
+   ejectionOffset = "2";
+   thetaMax = "120";
+};
+
+datablock ParticleData(RocketExpSmoke)
+{
+   lifetimeMS = 1200;//"1250";
+   lifetimeVarianceMS = 299;//200;//"250";
+   textureName = "art/particles/smoke";
+   animTexName = "art/particles/smoke";
+   useInvAlpha = "1";
+   gravityCoefficient = "-0.100122";
+   spinSpeed = "1";
+   spinRandomMin = "-100";
+   spinRandomMax = "0";
+   colors[0] = "0.897638 0.795276 0.692913 0.4";//"0.192157 0.192157 0.192157 0.0944882";
+   colors[1] = "0.897638 0.897638 0.897638 0.8";//"0.454902 0.454902 0.454902 0.897638";
+   colors[2] = "0.4 0.4 0.4 0";//"1 1 1 0";
+   sizes[0] = "1.99597";
+   sizes[1] = "3.99805";
+   sizes[2] = "7.99915";
+   times[1] = "0.494118";
+   times[2] = "1";
+   times[3] = "1";
+};
+
+datablock ParticleEmitterData(RocketExpSmokeEmitter)
+{
+   ejectionPeriodMS = "15";
+   periodVarianceMS = "5";
+   //ejectionOffset = "1";
+   thetaMax = "180";
+   particles = "RocketExpSmoke";
+   blendStyle = "NORMAL";
+};
+
+datablock ParticleData(RocketExpSparks)
+{
+   textureName = "art/particles/droplet.png";
+   lifetimeMS = "100";
+   lifetimeVarianceMS = "50";
+   animTexName = "art/particles/droplet.png";
+   inheritedVelFactor = "0.391389";
+   sizes[0] = "1.99902";
+   sizes[1] = "2.49954";
+   sizes[2] = "0.997986";
+   colors[0] = "1.0 0.9 0.8 0.2";
+   colors[1] = "1.0 0.9 0.8 0.8";
+   colors[2] = "0.8 0.4 0.0 0.0";
+   times[0] = "0";
+   times[1] = "0.34902";
+   times[2] = "1";
+   times[3] = "1";
+};
+
+datablock ParticleEmitterData(RocketExpSparksEmitter)
+{
+   particles = "RocketExpSparks";
+   blendStyle = "NORMAL";
+   ejectionPeriodMS = "10";
+   periodVarianceMS = "5";
+   ejectionVelocity = "60";
+   velocityVariance = "10";
+   thetaMax = "120";
+   phiReferenceVel = 0;
+   phiVariance = "360";
+   ejectionOffset = "0";
+   orientParticles = true;
+   orientOnVelocity = true;
+};
+
+datablock ParticleData(RocketExpSubFireParticles)
+{
+   textureName = "art/particles/fireball.png";
+   gravityCoefficient = "-0.202686";
+   lifetimeMS = "400";
+   lifetimeVarianceMS = "299";
+   spinSpeed = "1";
+   spinRandomMin = "-200";
+   spinRandomMax = "0";
+   animTexName = "art/particles/fireball.png";
+   colors[0] = "1 0.897638 0.795276 0.2";
+   colors[1] = "1 0.496063 0 1";
+   colors[2] = "0.0944882 0.0944882 0.0944882 0";
+   sizes[0] = "0.997986";
+   sizes[1] = "1.99902";
+   sizes[2] = "2.99701";
+   times[1] = "0.498039";
+   times[2] = "1";
+   times[3] = "1";
+};
+
+datablock ParticleEmitterData(RocketExpSubFireEmitter)
+{
+   particles = "RocketExpSubFireParticles";
+   blendStyle = "ADDITIVE";
+   ejectionPeriodMS = "10";
+   periodVarianceMS = "5";
+   ejectionVelocity = "4";
+   velocityVariance = "2";
+   thetaMax = "120";
+};
+
+datablock ParticleData(RocketExpSubSmoke)
+{
+   textureName = "art/particles/smoke";
+   gravityCoefficient = "-0.40293";
+   lifetimeMS = "800";
+   lifetimeVarianceMS = "299";
+   spinSpeed = "1";
+   spinRandomMin = "-200";
+   spinRandomMax = "0";
+   animTexName = "art/particles/smoke";
+   colors[0] = "0.4 0.35 0.3 0.393701";
+   colors[1] = "0.45 0.45 0.45 0.795276";
+   colors[2] = "0.4 0.4 0.4 0";
+   sizes[0] = "1.99902";
+   sizes[1] = "3.99805";
+   sizes[2] = "7.99915";
+   times[1] = "0.4";
+   times[2] = "1";
+   times[3] = "1";
+};
+
+datablock ParticleEmitterData(RocketExpSubSmokeEmitter)
+{
+   particles = "RocketExpSubSmoke";
+   ejectionPeriodMS = "30";
+   periodVarianceMS = "10";
+   ejectionVelocity = "2";
+   velocityVariance = "1";
+   ejectionOffset = 1;//"2";
+   blendStyle = "NORMAL";
+};
+
+// ----------------------------------------------------------------------------
+// Dry/Air Explosion Objects
+// ----------------------------------------------------------------------------
+
+datablock ExplosionData(RocketSubExplosion)
+{
+   lifeTimeMS = 100;
+   offset = 0.4;
+   emitter[0] = RocketExpSubFireEmitter;
+   emitter[1] = RocketExpSubSmokeEmitter;
+};
+
+
+datablock ExplosionData(RocketLauncherExplosion)
+{
+   soundProfile = RocketLauncherExplosionSound;
+   lifeTimeMS = 200; // I want a quick bang and dissipation, not a slow burn-out
+
+   // Volume particles
+   particleEmitter = RocketExpSmokeEmitter;
+   particleDensity = 10;//20;
+   particleRadius = 1;//2;
+
+   // Point emission
+   emitter[0] = RocketExpFireEmitter;
+   emitter[1] = RocketExpSparksEmitter;
+   emitter[2] = RocketExpSparksEmitter;
+   emitter[3] = RocketExpFireballEmitter;
+
+   // Sub explosion objects
+   subExplosion[0] = RocketSubExplosion;
+
+   // Camera Shaking
+   shakeCamera = true;
+   camShakeFreq = "10.0 11.0 9.0";
+   camShakeAmp = "15.0 15.0 15.0";
+   camShakeDuration = 1.5;
+   camShakeRadius = 20;
+
+   // Exploding debris
+   debris = RocketDebris;
+   debrisThetaMin = 0;//10;
+   debrisThetaMax = 90;//80;
+   debrisNum = 5;
+   debrisNumVariance = 2;
+   debrisVelocity = 1;//2;
+   debrisVelocityVariance = 0.2;//0.5;
+
+   lightStartRadius = 6.0;
+   lightEndRadius = 0.0;
+   lightStartColor = "1.0 0.7 0.2";
+   lightEndColor = "0.9 0.7 0.0";
+   lightStartBrightness = 2.5;
+   lightEndBrightness = 0.0;
+   lightNormalOffset = 3.0;
+};

BIN
Templates/Full/game/art/shapes/Cheetah/Cheetah_MuzzleFlash_D.dds


+ 0 - 32
Templates/Full/game/art/shapes/weapons/GrenadeLauncher/materials.cs

@@ -1,32 +0,0 @@
-//-----------------------------------------------------------------------------
-// Copyright (c) 2012 GarageGames, LLC
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to
-// deal in the Software without restriction, including without limitation the
-// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-// sell copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-// IN THE SOFTWARE.
-//-----------------------------------------------------------------------------
-
-new Material(w_swarmgun)
-{
-   mapTo = "w_swarmgun";
-   diffuseMap[0] = "w_swarmgun";
-   normalMap[0] = "w_swarmgun_bump";
-   pixelSpecular[0] = true;
-   specular[0] = "1.0 1.0 1.0 1.0";
-   specularPower[0] = 32.0;
-   materialTag0 = "Weapon";
-};

BIN
Templates/Full/game/art/shapes/weapons/GrenadeLauncher/w_swarmgun_bump.jpg


+ 0 - 61
Templates/Full/game/art/shapes/weapons/RifleShell/materials.cs

@@ -1,61 +0,0 @@
-//-----------------------------------------------------------------------------
-// Copyright (c) 2012 GarageGames, LLC
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to
-// deal in the Software without restriction, including without limitation the
-// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-// sell copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-// IN THE SOFTWARE.
-//-----------------------------------------------------------------------------
-
-//--- RifleShell.DAE MATERIALS BEGIN ---
-singleton Material(RifleShell_RifleShell)
-{
-	mapTo = "RifleShell";
-
-	diffuseMap[0] = "art/shapes/weapons/RifleShell/RifleShell_diff";
-	normalMap[0] = "";
-	specularMap[0] = "";
-
-	diffuseColor[0] = "1 1 1 1";
-	specular[0] = "0.996078 0.988235 0.921569 0.954";
-	specularPower[0] = "19";
-
-	doubleSided = false;
-	translucent = false;
-	translucentBlendOp = "None";
-   pixelSpecular[0] = "1";
-   materialTag0 = "Weapon";
-};
-
-singleton Material(RifleShell_ColorEffectR88G88B225_material)
-{
-	mapTo = "ColorEffectR88G88B225-material";
-
-	diffuseMap[0] = "";
-	normalMap[0] = "";
-	specularMap[0] = "";
-
-	diffuseColor[0] = "0.345098 0.345098 0.882353 1";
-	specular[0] = "1 1 1 1";
-	specularPower[0] = 10;
-
-	doubleSided = false;
-	translucent = false;
-	translucentBlendOp = "None";
-	materialTag0 = "Weapon";
-};
-
-//--- RifleShell.DAE MATERIALS END ---

BIN
Templates/Full/game/art/shapes/weapons/SwarmGun/clip.jpg


BIN
Templates/Full/game/art/shapes/weapons/SwarmGun/debris.dts


BIN
Templates/Full/game/art/shapes/weapons/SwarmGun/energy.png


BIN
Templates/Full/game/art/shapes/weapons/SwarmGun/guide.png


+ 0 - 52
Templates/Full/game/art/shapes/weapons/SwarmGun/materials.cs

@@ -1,52 +0,0 @@
-//-----------------------------------------------------------------------------
-// Copyright (c) 2012 GarageGames, LLC
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to
-// deal in the Software without restriction, including without limitation the
-// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-// sell copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-// IN THE SOFTWARE.
-//-----------------------------------------------------------------------------
-
-new Material(w_swarmgun)
-{
-   mapTo = "w_swarmgun";
-   diffuseMap[0] = "w_swarmgun";
-   normalMap[0] = "w_swarmgun_bump";
-   pixelSpecular[0] = true;
-   specular[0] = "1.0 1.0 1.0 1.0";
-   specularPower[0] = 32.0;
-   materialTag0 = "Weapon";
-};
-
-new Material(guide)
-{
-   mapTo = "guide";
-   diffuseMap[0] = "art/shapes/weapons/SwarmGun/guide";
-   emissive[0] = true;
-   glow[0] = true;
-   materialTag0 = "Weapon";
-   materialTag1 = "FX";
-};
-
-new Material(energy)
-{
-   mapTo = "energy";
-   diffuseMap[0] = "art/shapes/weapons/SwarmGun/energy.png";
-   emissive[0] = true;
-   glow[0] = true;
-   materialTag0 = "Weapon";
-   materialTag1 = "FX";
-};

BIN
Templates/Full/game/art/shapes/weapons/SwarmGun/rocket.dts


BIN
Templates/Full/game/art/shapes/weapons/SwarmGun/swarmgun.dts


BIN
Templates/Full/game/art/shapes/weapons/SwarmGun/swarmgun.max


BIN
Templates/Full/game/art/shapes/weapons/SwarmGun/swarmgunRocket.max


BIN
Templates/Full/game/art/shapes/weapons/SwarmGun/w_swarmgun.png


BIN
Templates/Full/game/art/shapes/weapons/SwarmGun/w_swarmgun_bump.jpg


+ 0 - 18
Templates/Full/game/art/shapes/weapons/SwarmGun/weapon.cfg

@@ -1,18 +0,0 @@
-AlwaysExport:
-MountPoint
-MuzzlePoint
-EjectPoint
-RetractionPoint
-
-NeverExport:
-Dummy*
-DELETE*
-Light0
-Light1
-
-+Error::AllowEmptySubtrees
-+Error::AllowCrossedDetails
-+Error::AllowUnusedMeshes
--Error::AllowOldSequences
--Error::RequireViconNode
-+Param::CollapseTransforms

BIN
Templates/Full/game/art/shapes/weapons/misc/rocket.dts


BIN
Templates/Full/game/art/shapes/weapons/misc/w_swarmgun.png


BIN
Templates/Full/game/art/shapes/weapons/ramrifle/base.dts


BIN
Templates/Full/game/art/shapes/weapons/ramrifle/clip.jpg


BIN
Templates/Full/game/art/shapes/weapons/ramrifle/debris.dts


BIN
Templates/Full/game/art/shapes/weapons/ramrifle/debris.ms3d


+ 0 - 41
Templates/Full/game/art/shapes/weapons/ramrifle/materials.cs

@@ -1,41 +0,0 @@
-//-----------------------------------------------------------------------------
-// Copyright (c) 2012 GarageGames, LLC
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to
-// deal in the Software without restriction, including without limitation the
-// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-// sell copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-// IN THE SOFTWARE.
-//-----------------------------------------------------------------------------
-
-// steampunk materials
-
-
-singleton Material(weapon_ramrifle_material)
-{
-   mapTo = "ramrifle_diff";
-   diffuseMap[0] = "ramrifle_diff";
-   normalMap[0] = "ramrifle_norm";
-   //specularTex[0] = "ramrifle_spec";
-   pixelSpecular[0] = true;
-   specular[0] = "0.99 0.91 0.81";
-   specularPower[0] = 32.0;
-};
-
-singleton Material(clip)
-{
-   mapTo = "clip";
-   diffuseMap[0] = "clip";
-};

BIN
Templates/Full/game/art/shapes/weapons/ramrifle/ramrifle_diff.png


BIN
Templates/Full/game/art/shapes/weapons/ramrifle/ramrifle_norm.png


+ 0 - 0
Templates/Full/game/art/shapes/weapons/RifleShell/RifleShell.DAE → Templates/Full/game/art/shapes/weapons/shared/RifleShell.DAE


+ 0 - 0
Templates/Full/game/art/shapes/weapons/RifleShell/RifleShell_diff.dds → Templates/Full/game/art/shapes/weapons/shared/RifleShell_diff.dds


+ 0 - 0
Templates/Full/game/art/shapes/weapons/GrenadeLauncher/clip.jpg → Templates/Full/game/art/shapes/weapons/shared/clip.jpg


+ 0 - 0
Templates/Full/game/art/shapes/weapons/GrenadeLauncher/debris.dts → Templates/Full/game/art/shapes/weapons/shared/debris.dts


+ 0 - 0
Templates/Full/game/art/shapes/weapons/SwarmGun/debris.ms3d → Templates/Full/game/art/shapes/weapons/shared/debris.ms3d


+ 58 - 0
Templates/Full/game/art/shapes/weapons/shared/materials.cs

@@ -0,0 +1,58 @@
+singleton Material(w_swarmgun)
+{
+	mapTo = "w_swarmgun";
+
+	diffuseMap[0] = "art/shapes/weapons/shared/w_swarmgun";
+	normalMap[0] = "";
+	specularMap[0] = "";
+
+	diffuseColor[0] = "1 1 1 1";
+	specular[0] = "0.996078 0.988235 0.921569 0.954";
+	specularPower[0] = "19";
+
+	doubleSided = false;
+	translucent = false;
+	translucentBlendOp = "None";
+   pixelSpecular[0] = "1";
+   materialTag0 = "Weapon";
+};
+
+//--- RifleShell.DAE MATERIALS BEGIN ---
+singleton Material(RifleShell_RifleShell)
+{
+	mapTo = "RifleShell";
+
+	diffuseMap[0] = "art/shapes/weapons/shared/RifleShell_diff";
+	normalMap[0] = "";
+	specularMap[0] = "";
+
+	diffuseColor[0] = "1 1 1 1";
+	specular[0] = "0.996078 0.988235 0.921569 0.954";
+	specularPower[0] = "19";
+
+	doubleSided = false;
+	translucent = false;
+	translucentBlendOp = "None";
+   pixelSpecular[0] = "1";
+   materialTag0 = "Weapon";
+};
+
+singleton Material(RifleShell_ColorEffectR88G88B225_material)
+{
+	mapTo = "ColorEffectR88G88B225-material";
+
+	diffuseMap[0] = "";
+	normalMap[0] = "";
+	specularMap[0] = "";
+
+	diffuseColor[0] = "0.345098 0.345098 0.882353 1";
+	specular[0] = "1 1 1 1";
+	specularPower[0] = 10;
+
+	doubleSided = false;
+	translucent = false;
+	translucentBlendOp = "None";
+	materialTag0 = "Weapon";
+};
+
+//--- RifleShell.DAE MATERIALS END ---

+ 0 - 0
Templates/Full/game/art/shapes/weapons/GrenadeLauncher/rocket.dts → Templates/Full/game/art/shapes/weapons/shared/rocket.dts


+ 0 - 0
Templates/Full/game/art/shapes/weapons/GrenadeLauncher/w_swarmgun.png → Templates/Full/game/art/shapes/weapons/shared/w_swarmgun.png