mirror of
https://github.com/Ragora/T2-ACCM.git
synced 2026-01-20 03:14:44 +00:00
633 lines
14 KiB
C#
633 lines
14 KiB
C#
//--------------------------------------
|
|
// Missile launcher
|
|
//--------------------------------------
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Force-Feedback Effects
|
|
//--------------------------------------
|
|
datablock EffectProfile(MissileSwitchEffect)
|
|
{
|
|
effectname = "weapons/missile_launcher_activate";
|
|
minDistance = 2.5;
|
|
maxDistance = 2.5;
|
|
};
|
|
|
|
datablock EffectProfile(MissileFireEffect)
|
|
{
|
|
effectname = "weapons/missile_fire";
|
|
minDistance = 2.5;
|
|
maxDistance = 5.0;
|
|
};
|
|
|
|
datablock EffectProfile(MissileDryFireEffect)
|
|
{
|
|
effectname = "weapons/missile_launcher_dryfire";
|
|
minDistance = 2.5;
|
|
maxDistance = 2.5;
|
|
};
|
|
|
|
datablock EffectProfile(MissileExplosionEffect)
|
|
{
|
|
effectname = "explosions/explosion.xpl23";
|
|
minDistance = 10;
|
|
maxDistance = 30;
|
|
};
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Sounds
|
|
//--------------------------------------
|
|
datablock AudioProfile(MissileSwitchSound)
|
|
{
|
|
filename = "fx/weapons/missile_launcher_activate.wav";
|
|
description = AudioClosest3d;
|
|
preload = true;
|
|
effect = MissileSwitchEffect;
|
|
};
|
|
|
|
datablock AudioProfile(MissileFireSound)
|
|
{
|
|
filename = "fx/weapons/missile_fire.WAV";
|
|
description = AudioDefault3d;
|
|
preload = true;
|
|
effect = MissileFireEffect;
|
|
};
|
|
|
|
datablock AudioProfile(MissileProjectileSound)
|
|
{
|
|
filename = "fx/weapons/missile_projectile.wav";
|
|
description = ProjectileLooping3d;
|
|
preload = true;
|
|
};
|
|
|
|
datablock AudioProfile(MissileReloadSound)
|
|
{
|
|
filename = "fx/weapons/weapon.missilereload.wav";
|
|
description = AudioClosest3d;
|
|
preload = true;
|
|
};
|
|
|
|
datablock AudioProfile(MissileLockSound)
|
|
{
|
|
filename = "fx/weapons/missile_launcher_searching.WAV";
|
|
description = AudioClosest3d;
|
|
preload = true;
|
|
};
|
|
|
|
datablock AudioProfile(MissileExplosionSound)
|
|
{
|
|
filename = "fx/explosions/explosion.xpl23.wav";
|
|
description = AudioBIGExplosion3d;
|
|
preload = true;
|
|
effect = MissileExplosionEffect;
|
|
};
|
|
|
|
datablock AudioProfile(MissileDryFireSound)
|
|
{
|
|
filename = "fx/weapons/missile_launcher_dryfire.wav";
|
|
description = AudioClose3d;
|
|
preload = true;
|
|
effect = MissileDryFireEffect;
|
|
};
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
// Splash Debris
|
|
//----------------------------------------------------------------------------
|
|
datablock ParticleData( MDebrisSmokeParticle )
|
|
{
|
|
dragCoeffiecient = 1.0;
|
|
gravityCoefficient = 0.10;
|
|
inheritedVelFactor = 0.1;
|
|
|
|
lifetimeMS = 1000;
|
|
lifetimeVarianceMS = 100;
|
|
|
|
textureName = "particleTest";
|
|
|
|
// useInvAlpha = true;
|
|
|
|
spinRandomMin = -60.0;
|
|
spinRandomMax = 60.0;
|
|
|
|
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.0;
|
|
sizes[1] = 0.8;
|
|
sizes[2] = 0.8;
|
|
times[0] = 0.0;
|
|
times[1] = 0.5;
|
|
times[2] = 1.0;
|
|
};
|
|
|
|
datablock ParticleEmitterData( MDebrisSmokeEmitter )
|
|
{
|
|
ejectionPeriodMS = 10;
|
|
periodVarianceMS = 1;
|
|
|
|
ejectionVelocity = 1.0; // A little oomph at the back end
|
|
velocityVariance = 0.2;
|
|
|
|
thetaMin = 0.0;
|
|
thetaMax = 40.0;
|
|
|
|
particles = "MDebrisSmokeParticle";
|
|
};
|
|
|
|
|
|
datablock DebrisData( MissileSplashDebris )
|
|
{
|
|
emitters[0] = MDebrisSmokeEmitter;
|
|
|
|
explodeOnMaxBounce = true;
|
|
|
|
elasticity = 0.4;
|
|
friction = 0.2;
|
|
|
|
lifetime = 0.3;
|
|
lifetimeVariance = 0.1;
|
|
|
|
numBounces = 1;
|
|
};
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
// Missile smoke spike (for debris)
|
|
//----------------------------------------------------------------------------
|
|
datablock ParticleData( MissileSmokeSpike )
|
|
{
|
|
dragCoeffiecient = 1.0;
|
|
gravityCoefficient = 0.0;
|
|
inheritedVelFactor = 0.2;
|
|
|
|
lifetimeMS = 1500;
|
|
lifetimeVarianceMS = 250;
|
|
|
|
textureName = "particleTest";
|
|
|
|
useInvAlpha = true;
|
|
|
|
spinRandomMin = -60.0;
|
|
spinRandomMax = 60.0;
|
|
|
|
colors[0] = "0.6 0.6 0.6 1.0";
|
|
colors[1] = "0.4 0.4 0.4 0.5";
|
|
colors[2] = "0.4 0.4 0.4 0.0";
|
|
sizes[0] = 0.0;
|
|
sizes[1] = 1.0;
|
|
sizes[2] = 1.5;
|
|
times[0] = 0.0;
|
|
times[1] = 0.5;
|
|
times[2] = 1.0;
|
|
};
|
|
|
|
datablock ParticleEmitterData( MissileSmokeSpikeEmitter )
|
|
{
|
|
ejectionPeriodMS = 5;
|
|
periodVarianceMS = 1;
|
|
|
|
ejectionVelocity = 1.0; // A little oomph at the back end
|
|
velocityVariance = 0.2;
|
|
|
|
thetaMin = 0.0;
|
|
thetaMax = 40.0;
|
|
|
|
particles = "MissileSmokeSpike";
|
|
};
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
// Explosion smoke particles
|
|
//----------------------------------------------------------------------------
|
|
|
|
datablock ParticleData(MissileExplosionSmoke)
|
|
{
|
|
dragCoeffiecient = 0.3;
|
|
gravityCoefficient = -0.2;
|
|
inheritedVelFactor = 0.025;
|
|
|
|
lifetimeMS = 2250;
|
|
lifetimeVarianceMS = 0;
|
|
|
|
textureName = "particleTest";
|
|
|
|
useInvAlpha = true;
|
|
spinRandomMin = -100.0;
|
|
spinRandomMax = 100.0;
|
|
|
|
// textureName = "special/Smoke/bigSmoke";
|
|
|
|
colors[0] = "0.6 0.6 0.6 0.9";
|
|
colors[1] = "0.5 0.5 0.5 0.4";
|
|
colors[2] = "0.4 0.4 0.4 0.0";
|
|
sizes[0] = 1.0;
|
|
sizes[1] = 2.5;
|
|
sizes[2] = 3.0;
|
|
times[0] = 0.0;
|
|
times[1] = 0.5;
|
|
times[2] = 1.0;
|
|
|
|
};
|
|
|
|
datablock ParticleEmitterData(MissileExplosionSmokeEMitter)
|
|
{
|
|
ejectionOffset = 1.5;
|
|
ejectionPeriodMS = 1;
|
|
periodVarianceMS = 0;
|
|
|
|
ejectionVelocity = 2.5;
|
|
velocityVariance = 0.5;
|
|
|
|
thetaMin = 0.0;
|
|
thetaMax = 180.0;
|
|
|
|
lifetimeMS = 500;
|
|
|
|
particles = "MissileExplosionSmoke";
|
|
};
|
|
|
|
|
|
|
|
datablock DebrisData( MissileSpikeDebris )
|
|
{
|
|
emitters[0] = MissileSmokeSpikeEmitter;
|
|
explodeOnMaxBounce = true;
|
|
elasticity = 0.4;
|
|
friction = 0.2;
|
|
lifetime = 3.0;
|
|
lifetimeVariance = 0.5;
|
|
};
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
// Explosions
|
|
//---------------------------------------------------------------------------
|
|
datablock ExplosionData(MissileExplosion)
|
|
{
|
|
explosionShape = "effect_plasma_explosion.dts";
|
|
playSpeed = 0.8;
|
|
soundProfile = MissileExplosionSound;
|
|
faceViewer = true;
|
|
|
|
sizes[0] = "1.5 1.5 1.5";
|
|
sizes[1] = "1.5 1.5 1.5";
|
|
sizes[2] = "1.5 1.5 1.5";
|
|
|
|
emitter[0] = MissileExplosionSmokeEmitter;
|
|
|
|
debris = MissileSpikeDebris;
|
|
debrisThetaMin = 1;
|
|
debrisThetaMax = 179;
|
|
debrisNum = 9;
|
|
debrisNumVariance = 3;
|
|
debrisVelocity = 15.0;
|
|
debrisVelocityVariance = 2.0;
|
|
|
|
shakeCamera = true;
|
|
camShakeFreq = "6.0 7.0 7.0";
|
|
camShakeAmp = "70.0 70.0 70.0";
|
|
camShakeDuration = 1.0;
|
|
camShakeRadius = 13.0;
|
|
};
|
|
|
|
|
|
|
|
datablock ExplosionData(MissileSplashExplosion)
|
|
{
|
|
explosionShape = "disc_explosion.dts";
|
|
|
|
faceViewer = true;
|
|
explosionScale = "1.0 1.0 1.0";
|
|
|
|
debris = MissileSplashDebris;
|
|
debrisThetaMin = 10;
|
|
debrisThetaMax = 80;
|
|
debrisNum = 10;
|
|
debrisVelocity = 10.0;
|
|
debrisVelocityVariance = 4.0;
|
|
|
|
sizes[0] = "0.35 0.35 0.35";
|
|
sizes[1] = "0.15 0.15 0.15";
|
|
sizes[2] = "0.15 0.15 0.15";
|
|
sizes[3] = "0.15 0.15 0.15";
|
|
|
|
times[0] = 0.0;
|
|
times[1] = 0.333;
|
|
times[2] = 0.666;
|
|
times[3] = 1.0;
|
|
|
|
};
|
|
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Splash
|
|
//--------------------------------------------------------------------------
|
|
datablock ParticleData(MissileMist)
|
|
{
|
|
dragCoefficient = 2.0;
|
|
gravityCoefficient = -0.05;
|
|
inheritedVelFactor = 0.0;
|
|
constantAcceleration = 0.0;
|
|
lifetimeMS = 400;
|
|
lifetimeVarianceMS = 100;
|
|
useInvAlpha = false;
|
|
spinRandomMin = -90.0;
|
|
spinRandomMax = 500.0;
|
|
textureName = "particleTest";
|
|
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.5;
|
|
sizes[2] = 0.8;
|
|
times[0] = 0.0;
|
|
times[1] = 0.5;
|
|
times[2] = 1.0;
|
|
};
|
|
|
|
datablock ParticleEmitterData(MissileMistEmitter)
|
|
{
|
|
ejectionPeriodMS = 5;
|
|
periodVarianceMS = 0;
|
|
ejectionVelocity = 6.0;
|
|
velocityVariance = 4.0;
|
|
ejectionOffset = 0.0;
|
|
thetaMin = 85;
|
|
thetaMax = 85;
|
|
phiReferenceVel = 0;
|
|
phiVariance = 360;
|
|
overrideAdvances = false;
|
|
lifetimeMS = 250;
|
|
particles = "MissileMist";
|
|
};
|
|
|
|
|
|
|
|
datablock ParticleData( MissileSplashParticle )
|
|
{
|
|
dragCoefficient = 1;
|
|
gravityCoefficient = 0.2;
|
|
inheritedVelFactor = 0.2;
|
|
constantAcceleration = -0.0;
|
|
lifetimeMS = 600;
|
|
lifetimeVarianceMS = 0;
|
|
textureName = "special/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.5;
|
|
sizes[2] = 0.5;
|
|
times[0] = 0.0;
|
|
times[1] = 0.5;
|
|
times[2] = 1.0;
|
|
};
|
|
|
|
datablock ParticleEmitterData( MissileSplashEmitter )
|
|
{
|
|
ejectionPeriodMS = 1;
|
|
periodVarianceMS = 0;
|
|
ejectionVelocity = 6;
|
|
velocityVariance = 3.0;
|
|
ejectionOffset = 0.0;
|
|
thetaMin = 60;
|
|
thetaMax = 80;
|
|
phiReferenceVel = 0;
|
|
phiVariance = 360;
|
|
overrideAdvances = false;
|
|
orientParticles = true;
|
|
lifetimeMS = 100;
|
|
particles = "MissileSplashParticle";
|
|
};
|
|
|
|
|
|
datablock SplashData(MissileSplash)
|
|
{
|
|
numSegments = 15;
|
|
ejectionFreq = 0.0001;
|
|
ejectionAngle = 45;
|
|
ringLifetime = 0.5;
|
|
lifetimeMS = 400;
|
|
velocity = 5.0;
|
|
startRadius = 0.0;
|
|
acceleration = -3.0;
|
|
texWrap = 5.0;
|
|
|
|
explosion = MissileSplashExplosion;
|
|
|
|
texture = "special/water2";
|
|
|
|
emitter[0] = MissileSplashEmitter;
|
|
emitter[1] = MissileMistEmitter;
|
|
|
|
colors[0] = "0.7 0.8 1.0 0.0";
|
|
colors[1] = "0.7 0.8 1.0 1.0";
|
|
colors[2] = "0.7 0.8 1.0 0.0";
|
|
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;
|
|
};
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Particle effects
|
|
//--------------------------------------
|
|
datablock ParticleData(MissileSmokeParticle)
|
|
{
|
|
dragCoeffiecient = 0.0;
|
|
gravityCoefficient = -0.02;
|
|
inheritedVelFactor = 0.0;
|
|
|
|
lifetimeMS = 4000;
|
|
lifetimeVarianceMS = 500;
|
|
|
|
textureName = "special/Smoke/bigSmoke";
|
|
useInvAlpha = true;
|
|
spinRandomMin = -90.0;
|
|
spinRandomMax = 90.0;
|
|
|
|
colors[0] = "0.6 0.6 0.6 1.0";
|
|
colors[1] = "0.5 0.5 0.5 0.6";
|
|
colors[2] = "0.4 0.4 0.4 0.0";
|
|
sizes[0] = 1;
|
|
sizes[1] = 1.75;
|
|
sizes[2] = 3;
|
|
times[0] = 0.0;
|
|
times[1] = 0.1;
|
|
times[2] = 1.0;
|
|
|
|
};
|
|
|
|
datablock ParticleEmitterData(MissileSmokeEmitter)
|
|
{
|
|
ejectionPeriodMS = 1;
|
|
periodVarianceMS = 0;
|
|
|
|
ejectionVelocity = 0.5;
|
|
velocityVariance = 0.5;
|
|
|
|
thetaMin = 0.0;
|
|
thetaMax = 50.0;
|
|
|
|
particles = "MissileSmokeParticle";
|
|
};
|
|
|
|
|
|
datablock ParticleData(MissileFireParticle)
|
|
{
|
|
dragCoeffiecient = 0.0;
|
|
gravityCoefficient = 0.0;
|
|
inheritedVelFactor = 1.0;
|
|
|
|
lifetimeMS = 300;
|
|
lifetimeVarianceMS = 000;
|
|
|
|
textureName = "particleTest";
|
|
|
|
spinRandomMin = -135;
|
|
spinRandomMax = 135;
|
|
|
|
colors[0] = "1 0.18 0.03 0.4";
|
|
colors[1] = "1 0.18 0.03 0.3";
|
|
colors[2] = "1 0.18 0.03 0.0";
|
|
sizes[0] = 0;
|
|
sizes[1] = 1;
|
|
sizes[2] = 1.5;
|
|
times[0] = 0.0;
|
|
times[1] = 0.3;
|
|
times[2] = 1.0;
|
|
};
|
|
|
|
datablock ParticleEmitterData(MissileFireEmitter)
|
|
{
|
|
ejectionPeriodMS = 3;
|
|
periodVarianceMS = 0;
|
|
|
|
ejectionVelocity = 15.0;
|
|
velocityVariance = 0.0;
|
|
|
|
thetaMin = 0.0;
|
|
thetaMax = 0.0;
|
|
|
|
particles = "MissileFireParticle";
|
|
};
|
|
|
|
|
|
|
|
datablock ParticleData(MissilePuffParticle)
|
|
{
|
|
dragCoeffiecient = 0.0;
|
|
gravityCoefficient = 0.0;
|
|
inheritedVelFactor = 0.0;
|
|
|
|
useInvAlpha = true;
|
|
lifetimeMS = 4000;
|
|
lifetimeVarianceMS = 300;
|
|
|
|
textureName = "particleTest";
|
|
|
|
spinRandomMin = -135;
|
|
spinRandomMax = 135;
|
|
|
|
colors[0] = "0.6 0.6 0.6 0.15";
|
|
colors[1] = "0.4 0.4 0.4 0.0";
|
|
sizes[0] = 0.0;
|
|
sizes[1] = 0.5;
|
|
times[0] = 0.0;
|
|
times[1] = 1.0;
|
|
};
|
|
|
|
datablock ParticleEmitterData(MissilePuffEmitter)
|
|
{
|
|
ejectionPeriodMS = 2;
|
|
periodVarianceMS = 0;
|
|
|
|
ejectionVelocity = 0.5;
|
|
velocityVariance = 0.0;
|
|
|
|
thetaMin = 0.0;
|
|
thetaMax = 90.0;
|
|
|
|
particles = "MissilePuffParticle";
|
|
};
|
|
|
|
|
|
datablock ParticleData(MissileLauncherExhaustParticle)
|
|
{
|
|
dragCoeffiecient = 0.0;
|
|
gravityCoefficient = 0.01;
|
|
inheritedVelFactor = 1.0;
|
|
|
|
lifetimeMS = 500;
|
|
lifetimeVarianceMS = 300;
|
|
|
|
textureName = "particleTest";
|
|
|
|
useInvAlpha = true;
|
|
spinRandomMin = -135;
|
|
spinRandomMax = 135;
|
|
|
|
colors[0] = "1.0 1.0 1.0 0.5";
|
|
colors[1] = "0.7 0.7 0.7 0.0";
|
|
sizes[0] = 0.25;
|
|
sizes[1] = 1.0;
|
|
times[0] = 0.0;
|
|
times[1] = 1.0;
|
|
};
|
|
|
|
datablock ParticleEmitterData(MissileLauncherExhaustEmitter)
|
|
{
|
|
ejectionPeriodMS = 15;
|
|
periodVarianceMS = 0;
|
|
|
|
ejectionVelocity = 3.0;
|
|
velocityVariance = 0.0;
|
|
|
|
thetaMin = 0.0;
|
|
thetaMax = 20.0;
|
|
|
|
particles = "MissileLauncherExhaustParticle";
|
|
};
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Debris
|
|
//--------------------------------------
|
|
datablock DebrisData( FlechetteDebris )
|
|
{
|
|
shapeName = "weapon_missile_fleschette.dts";
|
|
|
|
lifetime = 5.0;
|
|
|
|
minSpinSpeed = -320.0;
|
|
maxSpinSpeed = 320.0;
|
|
|
|
elasticity = 0.2;
|
|
friction = 0.3;
|
|
|
|
numBounces = 3;
|
|
|
|
gravModifier = 0.40;
|
|
|
|
staticOnMaxBounce = true;
|
|
};
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Ammo
|
|
//--------------------------------------
|
|
|
|
datablock ItemData(MissileLauncherAmmo)
|
|
{
|
|
className = Ammo;
|
|
catagory = "Ammo";
|
|
shapeFile = "ammo_missile.dts";
|
|
mass = 1;
|
|
elasticity = 0.2;
|
|
friction = 0.6;
|
|
pickupRadius = 2;
|
|
pickUpName = "some missiles";
|
|
|
|
computeCRC = true;
|
|
|
|
};
|