Brought up to date with the newest T2BoL I've located

This commit is contained in:
Robert MacGregor 2015-08-30 02:30:29 -04:00
parent 8c96cba3e1
commit accd31895e
287 changed files with 108557 additions and 107608 deletions

View file

@ -1,156 +1,156 @@
//--------------------------------------------------------------------------
// ELF Turret barrel
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
// Sounds
//--------------------------------------------------------------------------
datablock EffectProfile(EBLSwitchEffect)
{
effectname = "powered/turret_light_activate";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock EffectProfile(EBLFireEffect)
{
effectname = "weapons/ELF_fire";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock AudioProfile(EBLSwitchSound)
{
filename = "fx/powered/turret_light_activate.wav";
description = AudioClose3d;
preload = true;
effect = EBLSwitchEffect;
};
datablock AudioProfile(EBLFireSound)
{
filename = "fx/weapons/ELF_fire.wav";
description = AudioDefaultLooping3d;
preload = true;
effect = EBLFireEffect;
};
//--------------------------------------------------------------------------
// Projectile
//--------------------------------------
datablock ELFProjectileData(ELFTurretBolt)
{
beamRange = 75;
numControlPoints = 8;
restorativeFactor = 3.75;
dragFactor = 4.5;
endFactor = 2.25;
randForceFactor = 2;
randForceTime = 0.125;
drainEnergy = 1.0;
drainHealth = 0.0015;
directDamageType = $DamageType::ELFTurret;
mainBeamWidth = 0.1; // width of blue wave beam
mainBeamSpeed = 9.0; // speed that the beam travels forward
mainBeamRepeat = 0.25; // number of times the texture repeats
lightningWidth = 0.1;
lightningDist = 0.15; // distance of lightning from main beam
fireSound = EBLFireSound;
textures[0] = "special/ELFBeam";
textures[1] = "special/ELFLightning";
textures[2] = "special/BlueImpact";
// --------------------------------------------------------------------
// z0dd - ZOD, 4/04/02. Was missing this parameter, (console spam fix).
emitter = ELFSparksEmitter;
// ------------------------
};
//--------------------------------------------------------------------------
// ELF Turret Image
//--------------------------------------------------------------------------
datablock TurretImageData(ELFBarrelLarge)
{
shapeFile = "turret_elf_large.dts";
item = ELFBarrelPack; // z0dd - ZOD, 4/25/02. Was wrong: ELFBarrelLargePack
projectile = ELFTurretBolt;
projectileType = ELFProjectile;
deleteLastProjectile = true;
usesEnergy = true;
fireEnergy = 0.0;
minEnergy = 0.0;
// Turret parameters
activationMS = 350; // z0dd - ZOD, 3/27/02. Was 500. Amount of time it takes turret to unfold
deactivateDelayMS = 100;
thinkTimeMS = 70; // z0dd - ZOD, 3/27/02. Was 100. Amount of time before turret starts to unfold (activate)
degPerSecTheta = 580;
degPerSecPhi = 960;
attackRadius = 75;
yawVariance = 30.0; // these will smooth out the elf tracking code.
pitchVariance = 30.0; // more or less just tolerances
// State transiltions
stateName[0] = "Activate";
stateTransitionOnNotLoaded[0] = "Dead";
stateTransitionOnLoaded[0] = "ActivateReady";
stateName[1] = "ActivateReady";
stateSequence[1] = "Activate";
stateSound[1] = EBLSwitchSound;
stateTimeoutValue[1] = 1;
stateTransitionOnTimeout[1] = "Ready";
stateTransitionOnNotLoaded[1] = "Deactivate";
stateTransitionOnNoAmmo[1] = "NoAmmo";
stateName[2] = "Ready";
stateTransitionOnNotLoaded[2] = "Deactivate";
stateTransitionOnTriggerDown[2] = "Fire";
stateTransitionOnNoAmmo[2] = "NoAmmo";
stateName[3] = "Fire";
stateFire[3] = true;
stateRecoil[3] = LightRecoil;
stateAllowImageChange[3] = false;
stateSequence[3] = "Fire";
stateSound[3] = EBLFireSound;
stateScript[3] = "onFire";
stateTransitionOnTriggerUp[3] = "Deconstruction";
stateTransitionOnNoAmmo[3] = "Deconstruction";
stateName[4] = "Reload";
stateTimeoutValue[4] = 0.01;
stateAllowImageChange[4] = false;
stateSequence[4] = "Reload";
stateTransitionOnTimeout[4] = "Ready";
stateTransitionOnNotLoaded[4] = "Deactivate";
stateTransitionOnNoAmmo[4] = "NoAmmo";
stateName[5] = "Deactivate";
stateSequence[5] = "Activate";
stateDirection[5] = false;
stateTimeoutValue[5] = 1;
stateTransitionOnLoaded[5] = "ActivateReady";
stateTransitionOnTimeout[5] = "Dead";
stateName[6] = "Dead";
stateTransitionOnLoaded[6] = "ActivateReady";
stateName[7] = "NoAmmo";
stateTransitionOnAmmo[7] = "Reload";
stateSequence[7] = "NoAmmo";
stateName[8] = "Deconstruction";
stateScript[8] = "deconstruct";
stateTransitionOnNoAmmo[8] = "NoAmmo";
stateTransitionOnTimeout[8] = "Reload";
stateTimeoutValue[8] = 0.1;
};
//--------------------------------------------------------------------------
// ELF Turret barrel
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
// Sounds
//--------------------------------------------------------------------------
datablock EffectProfile(EBLSwitchEffect)
{
effectname = "powered/turret_light_activate";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock EffectProfile(EBLFireEffect)
{
effectname = "weapons/ELF_fire";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock AudioProfile(EBLSwitchSound)
{
filename = "fx/powered/turret_light_activate.wav";
description = AudioClose3d;
preload = true;
effect = EBLSwitchEffect;
};
datablock AudioProfile(EBLFireSound)
{
filename = "fx/weapons/ELF_fire.wav";
description = AudioDefaultLooping3d;
preload = true;
effect = EBLFireEffect;
};
//--------------------------------------------------------------------------
// Projectile
//--------------------------------------
datablock ELFProjectileData(ELFTurretBolt)
{
beamRange = 75;
numControlPoints = 8;
restorativeFactor = 3.75;
dragFactor = 4.5;
endFactor = 2.25;
randForceFactor = 2;
randForceTime = 0.125;
drainEnergy = 1.0;
drainHealth = 0.0015;
directDamageType = $DamageType::ELFTurret;
mainBeamWidth = 0.1; // width of blue wave beam
mainBeamSpeed = 9.0; // speed that the beam travels forward
mainBeamRepeat = 0.25; // number of times the texture repeats
lightningWidth = 0.1;
lightningDist = 0.15; // distance of lightning from main beam
fireSound = EBLFireSound;
textures[0] = "special/ELFBeam";
textures[1] = "special/ELFLightning";
textures[2] = "special/BlueImpact";
// --------------------------------------------------------------------
// z0dd - ZOD, 4/04/02. Was missing this parameter, (console spam fix).
emitter = ELFSparksEmitter;
// ------------------------
};
//--------------------------------------------------------------------------
// ELF Turret Image
//--------------------------------------------------------------------------
datablock TurretImageData(ELFBarrelLarge)
{
shapeFile = "turret_elf_large.dts";
item = ELFBarrelPack; // z0dd - ZOD, 4/25/02. Was wrong: ELFBarrelLargePack
projectile = ELFTurretBolt;
projectileType = ELFProjectile;
deleteLastProjectile = true;
usesEnergy = true;
fireEnergy = 0.0;
minEnergy = 0.0;
// Turret parameters
activationMS = 350; // z0dd - ZOD, 3/27/02. Was 500. Amount of time it takes turret to unfold
deactivateDelayMS = 100;
thinkTimeMS = 70; // z0dd - ZOD, 3/27/02. Was 100. Amount of time before turret starts to unfold (activate)
degPerSecTheta = 580;
degPerSecPhi = 960;
attackRadius = 75;
yawVariance = 30.0; // these will smooth out the elf tracking code.
pitchVariance = 30.0; // more or less just tolerances
// State transiltions
stateName[0] = "Activate";
stateTransitionOnNotLoaded[0] = "Dead";
stateTransitionOnLoaded[0] = "ActivateReady";
stateName[1] = "ActivateReady";
stateSequence[1] = "Activate";
stateSound[1] = EBLSwitchSound;
stateTimeoutValue[1] = 1;
stateTransitionOnTimeout[1] = "Ready";
stateTransitionOnNotLoaded[1] = "Deactivate";
stateTransitionOnNoAmmo[1] = "NoAmmo";
stateName[2] = "Ready";
stateTransitionOnNotLoaded[2] = "Deactivate";
stateTransitionOnTriggerDown[2] = "Fire";
stateTransitionOnNoAmmo[2] = "NoAmmo";
stateName[3] = "Fire";
stateFire[3] = true;
stateRecoil[3] = LightRecoil;
stateAllowImageChange[3] = false;
stateSequence[3] = "Fire";
stateSound[3] = EBLFireSound;
stateScript[3] = "onFire";
stateTransitionOnTriggerUp[3] = "Deconstruction";
stateTransitionOnNoAmmo[3] = "Deconstruction";
stateName[4] = "Reload";
stateTimeoutValue[4] = 0.01;
stateAllowImageChange[4] = false;
stateSequence[4] = "Reload";
stateTransitionOnTimeout[4] = "Ready";
stateTransitionOnNotLoaded[4] = "Deactivate";
stateTransitionOnNoAmmo[4] = "NoAmmo";
stateName[5] = "Deactivate";
stateSequence[5] = "Activate";
stateDirection[5] = false;
stateTimeoutValue[5] = 1;
stateTransitionOnLoaded[5] = "ActivateReady";
stateTransitionOnTimeout[5] = "Dead";
stateName[6] = "Dead";
stateTransitionOnLoaded[6] = "ActivateReady";
stateName[7] = "NoAmmo";
stateTransitionOnAmmo[7] = "Reload";
stateSequence[7] = "NoAmmo";
stateName[8] = "Deconstruction";
stateScript[8] = "deconstruct";
stateTransitionOnNoAmmo[8] = "NoAmmo";
stateTransitionOnTimeout[8] = "Reload";
stateTimeoutValue[8] = 0.1;
};

View file

@ -1,263 +1,263 @@
//--------------------------------------
// Default blaster
//--------------------------------------
//--------------------------------------------------------------------------
// Sounds and feedback effects
//--------------------------------------
datablock EffectProfile(AASwitchEffect)
{
effectname = "powered/turret_light_activate";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock EffectProfile(AAFireEffect)
{
effectname = "powered/turret_aa_fire";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock AudioProfile(AASwitchSound)
{
filename = "fx/powered/turret_aa_activate.wav";
description = AudioClose3d;
preload = true;
effect = AASwitchEffect;
};
datablock AudioProfile(AAFireSound)
{
filename = "fx/powered/turret_aa_fire.wav";
description = AudioDefault3d;
preload = true;
effect = AAFireEffect;
};
//--------------------------------------------------------------------------
// Particle effects
//--------------------------------------
//--------------------------------------------------------------------------
// Explosion
//--------------------------------------
datablock ParticleData(AABulletExplosionParticle1)
{
dragCoefficient = 2;
gravityCoefficient = 0.0;
inheritedVelFactor = 0.2;
constantAcceleration = -0.0;
lifetimeMS = 600;
lifetimeVarianceMS = 000;
textureName = "special/crescent4";
colors[0] = "0.57 0.41 1.0 1.0";
colors[1] = "0.57 0.41 1.0 1.0";
colors[2] = "0.57 0.41 0.0 0.0";
sizes[0] = 0.25;
sizes[1] = 0.5;
sizes[2] = 1.0;
times[0] = 0.0;
times[1] = 0.5;
times[2] = 1.0;
};
datablock ParticleEmitterData(AABulletExplosionEmitter)
{
ejectionPeriodMS = 7;
periodVarianceMS = 0;
ejectionVelocity = 2;
velocityVariance = 1.5;
ejectionOffset = 0.0;
thetaMin = 70;
thetaMax = 80;
phiReferenceVel = 0;
phiVariance = 360;
overrideAdvances = false;
orientParticles = true;
lifetimeMS = 200;
particles = "AABulletExplosionParticle1";
};
datablock ParticleData(AABulletExplosionParticle2)
{
dragCoefficient = 2;
gravityCoefficient = 0.0;
inheritedVelFactor = 0.2;
constantAcceleration = -0.0;
lifetimeMS = 600;
lifetimeVarianceMS = 000;
textureName = "special/blasterHit";
colors[0] = "0.57 0.41 1.0 0.6";
colors[1] = "0.57 0.41 1.0 0.6";
colors[2] = "0.57 0.41 0.0 0.0";
sizes[0] = 0.3;
sizes[1] = 0.90;
sizes[2] = 1.50;
times[0] = 0.0;
times[1] = 0.5;
times[2] = 1.0;
};
datablock ParticleEmitterData(AABulletExplosionEmitter2)
{
ejectionPeriodMS = 30;
periodVarianceMS = 0;
ejectionVelocity = 1;
velocityVariance = 0.0;
ejectionOffset = 0.0;
thetaMin = 0;
thetaMax = 80;
phiReferenceVel = 0;
phiVariance = 360;
overrideAdvances = false;
orientParticles = false;
lifetimeMS = 200;
particles = "AABulletExplosionParticle2";
};
datablock ExplosionData(AABulletExplosion)
{
soundProfile = blasterExpSound;
emitter[0] = AABulletExplosionEmitter;
emitter[1] = AABulletExplosionEmitter2;
};
//--------------------------------------------------------------------------
// Projectile
//--------------------------------------
datablock TracerProjectileData(AABullet)
{
doDynamicClientHits = true;
projectileShapeName = "energy_bolt.dts";
directDamage = 0.25;
directDamageType = $DamageType::AATurret;
explosion = "AABulletExplosion";
splash = ChaingunSplash;
dryVelocity = 150.0;
wetVelocity = 100.0;
velInheritFactor = 1.0;
fizzleTimeMS = 3000;
lifetimeMS = 3000;
explodeOnDeath = false;
reflectOnWaterImpactAngle = 0.0;
explodeOnWaterImpact = false;
deflectionOnWaterImpact = 0.0;
fizzleUnderwaterMS = 3000;
tracerLength = 20;
tracerAlpha = false;
tracerMinPixels = 3;
tracerColor = "1 1 1 1";
tracerTex[0] = "special/shrikeBolt";
tracerTex[1] = "special/shrikeBoltCross";
tracerWidth = 0.55;
crossSize = 0.99;
crossViewAng = 0.990;
renderCross = true;
emap = true;
};
//--------------------------------------------------------------------------
// Weapon
//--------------------------------------
datablock TurretImageData(AABarrelLarge)
{
shapeFile = "turret_aa_large.dts";
item = AABarrelPack; // z0dd - ZOD, 4/25/02. Was wrong: AABarrelLargePack
projectileType = TracerProjectile;
projectile = AABullet;
usesEnergy = true;
fireEnergy = 4.0;
minEnergy = 4.0;
emap = true;
isSeeker = true;
seekRadius = 200;
maxSeekAngle = 6;
seekTime = 1.0;
minSeekHeat = 0.6;
useTargetAudio = false;
// Turret parameters
activationMS = 175; // z0dd - ZOD, 3/27/02. Was 250. Amount of time it takes turret to unfold
deactivateDelayMS = 500;
thinkTimeMS = 140; // z0dd - ZOD, 3/27/02. Was 200. Amount of time before turret starts to unfold (activate)
degPerSecTheta = 600;
degPerSecPhi = 1080;
attackRadius = 200;
// State transitions
stateName[0] = "Activate";
stateTransitionOnNotLoaded[0] = "Dead";
stateTransitionOnLoaded[0] = "ActivateReady";
stateName[1] = "ActivateReady";
stateSequence[1] = "Activate";
stateSound[1] = AASwitchSound;
stateTimeoutValue[1] = 1.0;
stateTransitionOnTimeout[1] = "Ready";
stateTransitionOnNotLoaded[1] = "Deactivate";
stateTransitionOnNoAmmo[1] = "NoAmmo";
stateScript[1] = "AAActivateReady";
stateName[2] = "Ready";
stateTransitionOnNotLoaded[2] = "Deactivate";
stateTransitionOnTriggerDown[2] = "Fire1";
stateTransitionOnNoAmmo[2] = "NoAmmo";
stateScript[2] = "AAReady";
stateName[3] = "Fire1";
stateTransitionOnTimeout[3] = "Reload1";
stateTimeoutValue[3] = 0.15;
stateFire[3] = true;
stateRecoil[3] = LightRecoil;
stateAllowImageChange[3] = false;
stateSequence[3] = "Fire1";
stateSound[3] = AAFireSound;
stateScript[3] = "onFire";
stateName[4] = "Reload1";
stateTimeoutValue[4] = 0.2;
stateAllowImageChange[4] = false;
stateSequence[4] = "Reload";
stateTransitionOnTimeout[4] = "Fire2";
stateTransitionOnNotLoaded[4] = "Deactivate";
stateTransitionOnNoAmmo[4] = "NoAmmo";
stateName[5] = "Fire2";
stateTransitionOnTimeout[5] = "Reload2";
stateTimeoutValue[5] = 0.15;
stateFire[5] = true;
stateRecoil[5] = LightRecoil;
stateAllowImageChange[5] = false;
stateSequence[5] = "Fire2";
stateSound[5] = AAFireSound;
stateScript[5] = "onFire";
stateName[6] = "Reload2";
stateTimeoutValue[6] = 0.2;
stateAllowImageChange[6] = false;
stateSequence[6] = "Reload";
stateTransitionOnTimeout[6] = "Ready";
stateTransitionOnNotLoaded[6] = "Deactivate";
stateTransitionOnNoAmmo[6] = "NoAmmo";
stateName[7] = "Deactivate";
stateSequence[7] = "Activate";
stateDirection[7] = false;
stateTimeoutValue[7] = 1.0;
stateTransitionOnLoaded[7] = "ActivateReady";
stateTransitionOnTimeout[7] = "Dead";
stateName[8] = "Dead";
stateTransitionOnLoaded[8] = "ActivateReady";
stateName[9] = "NoAmmo";
stateTransitionOnAmmo[9] = "Reload2";
stateSequence[9] = "NoAmmo";
};
//--------------------------------------
// Default blaster
//--------------------------------------
//--------------------------------------------------------------------------
// Sounds and feedback effects
//--------------------------------------
datablock EffectProfile(AASwitchEffect)
{
effectname = "powered/turret_light_activate";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock EffectProfile(AAFireEffect)
{
effectname = "powered/turret_aa_fire";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock AudioProfile(AASwitchSound)
{
filename = "fx/powered/turret_aa_activate.wav";
description = AudioClose3d;
preload = true;
effect = AASwitchEffect;
};
datablock AudioProfile(AAFireSound)
{
filename = "fx/powered/turret_aa_fire.wav";
description = AudioDefault3d;
preload = true;
effect = AAFireEffect;
};
//--------------------------------------------------------------------------
// Particle effects
//--------------------------------------
//--------------------------------------------------------------------------
// Explosion
//--------------------------------------
datablock ParticleData(AABulletExplosionParticle1)
{
dragCoefficient = 2;
gravityCoefficient = 0.0;
inheritedVelFactor = 0.2;
constantAcceleration = -0.0;
lifetimeMS = 600;
lifetimeVarianceMS = 000;
textureName = "special/crescent4";
colors[0] = "0.57 0.41 1.0 1.0";
colors[1] = "0.57 0.41 1.0 1.0";
colors[2] = "0.57 0.41 0.0 0.0";
sizes[0] = 0.25;
sizes[1] = 0.5;
sizes[2] = 1.0;
times[0] = 0.0;
times[1] = 0.5;
times[2] = 1.0;
};
datablock ParticleEmitterData(AABulletExplosionEmitter)
{
ejectionPeriodMS = 7;
periodVarianceMS = 0;
ejectionVelocity = 2;
velocityVariance = 1.5;
ejectionOffset = 0.0;
thetaMin = 70;
thetaMax = 80;
phiReferenceVel = 0;
phiVariance = 360;
overrideAdvances = false;
orientParticles = true;
lifetimeMS = 200;
particles = "AABulletExplosionParticle1";
};
datablock ParticleData(AABulletExplosionParticle2)
{
dragCoefficient = 2;
gravityCoefficient = 0.0;
inheritedVelFactor = 0.2;
constantAcceleration = -0.0;
lifetimeMS = 600;
lifetimeVarianceMS = 000;
textureName = "special/blasterHit";
colors[0] = "0.57 0.41 1.0 0.6";
colors[1] = "0.57 0.41 1.0 0.6";
colors[2] = "0.57 0.41 0.0 0.0";
sizes[0] = 0.3;
sizes[1] = 0.90;
sizes[2] = 1.50;
times[0] = 0.0;
times[1] = 0.5;
times[2] = 1.0;
};
datablock ParticleEmitterData(AABulletExplosionEmitter2)
{
ejectionPeriodMS = 30;
periodVarianceMS = 0;
ejectionVelocity = 1;
velocityVariance = 0.0;
ejectionOffset = 0.0;
thetaMin = 0;
thetaMax = 80;
phiReferenceVel = 0;
phiVariance = 360;
overrideAdvances = false;
orientParticles = false;
lifetimeMS = 200;
particles = "AABulletExplosionParticle2";
};
datablock ExplosionData(AABulletExplosion)
{
soundProfile = blasterExpSound;
emitter[0] = AABulletExplosionEmitter;
emitter[1] = AABulletExplosionEmitter2;
};
//--------------------------------------------------------------------------
// Projectile
//--------------------------------------
datablock TracerProjectileData(AABullet)
{
doDynamicClientHits = true;
projectileShapeName = "energy_bolt.dts";
directDamage = 0.25;
directDamageType = $DamageType::AATurret;
explosion = "AABulletExplosion";
splash = ChaingunSplash;
dryVelocity = 150.0;
wetVelocity = 100.0;
velInheritFactor = 1.0;
fizzleTimeMS = 3000;
lifetimeMS = 3000;
explodeOnDeath = false;
reflectOnWaterImpactAngle = 0.0;
explodeOnWaterImpact = false;
deflectionOnWaterImpact = 0.0;
fizzleUnderwaterMS = 3000;
tracerLength = 20;
tracerAlpha = false;
tracerMinPixels = 3;
tracerColor = "1 1 1 1";
tracerTex[0] = "special/shrikeBolt";
tracerTex[1] = "special/shrikeBoltCross";
tracerWidth = 0.55;
crossSize = 0.99;
crossViewAng = 0.990;
renderCross = true;
emap = true;
};
//--------------------------------------------------------------------------
// Weapon
//--------------------------------------
datablock TurretImageData(AABarrelLarge)
{
shapeFile = "turret_aa_large.dts";
item = AABarrelPack; // z0dd - ZOD, 4/25/02. Was wrong: AABarrelLargePack
projectileType = TracerProjectile;
projectile = AABullet;
usesEnergy = true;
fireEnergy = 4.0;
minEnergy = 4.0;
emap = true;
isSeeker = true;
seekRadius = 200;
maxSeekAngle = 6;
seekTime = 1.0;
minSeekHeat = 0.6;
useTargetAudio = false;
// Turret parameters
activationMS = 175; // z0dd - ZOD, 3/27/02. Was 250. Amount of time it takes turret to unfold
deactivateDelayMS = 500;
thinkTimeMS = 140; // z0dd - ZOD, 3/27/02. Was 200. Amount of time before turret starts to unfold (activate)
degPerSecTheta = 600;
degPerSecPhi = 1080;
attackRadius = 200;
// State transitions
stateName[0] = "Activate";
stateTransitionOnNotLoaded[0] = "Dead";
stateTransitionOnLoaded[0] = "ActivateReady";
stateName[1] = "ActivateReady";
stateSequence[1] = "Activate";
stateSound[1] = AASwitchSound;
stateTimeoutValue[1] = 1.0;
stateTransitionOnTimeout[1] = "Ready";
stateTransitionOnNotLoaded[1] = "Deactivate";
stateTransitionOnNoAmmo[1] = "NoAmmo";
stateScript[1] = "AAActivateReady";
stateName[2] = "Ready";
stateTransitionOnNotLoaded[2] = "Deactivate";
stateTransitionOnTriggerDown[2] = "Fire1";
stateTransitionOnNoAmmo[2] = "NoAmmo";
stateScript[2] = "AAReady";
stateName[3] = "Fire1";
stateTransitionOnTimeout[3] = "Reload1";
stateTimeoutValue[3] = 0.15;
stateFire[3] = true;
stateRecoil[3] = LightRecoil;
stateAllowImageChange[3] = false;
stateSequence[3] = "Fire1";
stateSound[3] = AAFireSound;
stateScript[3] = "onFire";
stateName[4] = "Reload1";
stateTimeoutValue[4] = 0.2;
stateAllowImageChange[4] = false;
stateSequence[4] = "Reload";
stateTransitionOnTimeout[4] = "Fire2";
stateTransitionOnNotLoaded[4] = "Deactivate";
stateTransitionOnNoAmmo[4] = "NoAmmo";
stateName[5] = "Fire2";
stateTransitionOnTimeout[5] = "Reload2";
stateTimeoutValue[5] = 0.15;
stateFire[5] = true;
stateRecoil[5] = LightRecoil;
stateAllowImageChange[5] = false;
stateSequence[5] = "Fire2";
stateSound[5] = AAFireSound;
stateScript[5] = "onFire";
stateName[6] = "Reload2";
stateTimeoutValue[6] = 0.2;
stateAllowImageChange[6] = false;
stateSequence[6] = "Reload";
stateTransitionOnTimeout[6] = "Ready";
stateTransitionOnNotLoaded[6] = "Deactivate";
stateTransitionOnNoAmmo[6] = "NoAmmo";
stateName[7] = "Deactivate";
stateSequence[7] = "Activate";
stateDirection[7] = false;
stateTimeoutValue[7] = 1.0;
stateTransitionOnLoaded[7] = "ActivateReady";
stateTransitionOnTimeout[7] = "Dead";
stateName[8] = "Dead";
stateTransitionOnLoaded[8] = "ActivateReady";
stateName[9] = "NoAmmo";
stateTransitionOnAmmo[9] = "Reload2";
stateSequence[9] = "NoAmmo";
};

View file

@ -1,325 +1,325 @@
datablock EffectProfile(IBLSwitchEffect)
{
effectname = "powered/turret_light_activate";
minDistance = 5.0;
maxDistance = 5.0;
};
datablock EffectProfile(IBLFireEffect)
{
effectname = "powered/turret_indoor_fire";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock AudioProfile(IBLSwitchSound)
{
filename = "fx/powered/turret_light_activate.wav";
description = AudioClose3d;
preload = true;
effect = IBLSwitchEffect;
};
datablock AudioProfile(IBLFireSound)
{
filename = "fx/powered/turret_indoor_fire.wav";
description = AudioDefault3d;
preload = true;
effect = IBLFireEffect;
};
datablock SensorData(DeployedIndoorTurretSensor)
{
detects = true;
detectsUsingLOS = true;
detectsPassiveJammed = false;
detectsActiveJammed = false;
detectsCloaked = false;
detectionPings = true;
detectRadius = 40;
};
datablock ShockwaveData(IndoorTurretMuzzleFlash)
{
width = 0.5;
numSegments = 13;
numVertSegments = 1;
velocity = 2.0;
acceleration = -1.0;
lifetimeMS = 300;
height = 0.1;
verticalCurve = 0.5;
mapToTerrain = false;
renderBottom = false;
orientToNormal = true;
renderSquare = true;
texture[0] = "special/blasterHit";
texture[1] = "special/gradient";
texWrap = 3.0;
times[0] = 0.0;
times[1] = 0.5;
times[2] = 1.0;
colors[0] = "1.0 0.3 0.3 1.0";
colors[1] = "1.0 0.3 0.3 1.0";
colors[2] = "1.0 0.3 0.3 0.0";
};
datablock TurretData(TurretDeployedFloorIndoor) : TurretDamageProfile
{
className = DeployedTurret;
shapeFile = "turret_indoor_deployf.dts";
mass = 5.0;
maxDamage = 0.5;
destroyedLevel = 0.5;
disabledLevel = 0.21;
explosion = SmallTurretExplosion;
expDmgRadius = 5.0;
expDamage = 0.25;
expImpulse = 500.0;
repairRate = 0;
heatSignature = 0.0;
deployedObject = true;
thetaMin = 5;
thetaMax = 145;
thetaNull = 90;
primaryAxis = zaxis;
isShielded = true;
energyPerDamagePoint = 110;
maxEnergy = 30;
rechargeRate = 0.10;
barrel = DeployableIndoorBarrel;
canControl = true;
cmdCategory = "DTactical";
cmdIcon = CMDTurretIcon;
cmdMiniIconName = "commander/MiniIcons/com_turret_grey";
targetNameTag = 'Spider Clamp';
targetTypeTag = 'Turret';
sensorData = DeployedIndoorTurretSensor;
sensorRadius = DeployedIndoorTurretSensor.detectRadius;
sensorColor = "191 0 226";
firstPersonOnly = true;
renderWhenDestroyed = false;
debrisShapeName = "debris_generic_small.dts";
debris = TurretDebrisSmall;
};
datablock TurretData(TurretDeployedWallIndoor) : TurretDamageProfile
{
className = DeployedTurret;
shapeFile = "turret_indoor_deployw.dts";
mass = 5.0;
maxDamage = 0.5;
destroyedLevel = 0.5;
disabledLevel = 0.21;
explosion = SmallTurretExplosion;
expDmgRadius = 5.0;
expDamage = 0.25;
expImpulse = 500.0;
repairRate = 0;
heatSignature = 0.0;
thetaMin = 5;
thetaMax = 145;
thetaNull = 90;
deployedObject = true;
primaryAxis = yaxis;
isShielded = true;
energyPerDamagePoint = 110;
maxEnergy = 30;
rechargeRate = 0.10;
barrel = DeployableIndoorBarrel;
canControl = true;
cmdCategory = "DTactical";
cmdIcon = CMDTurretIcon;
cmdMiniIconName = "commander/MiniIcons/com_turret_grey";
targetNameTag = 'Spider Clamp';
targetTypeTag = 'Turret';
sensorData = DeployedIndoorTurretSensor;
sensorRadius = DeployedIndoorTurretSensor.detectRadius;
sensorColor = "191 0 226";
firstPersonOnly = true;
renderWhenDestroyed = false;
debrisShapeName = "debris_generic_small.dts";
debris = TurretDebrisSmall;
};
datablock TurretData(TurretDeployedCeilingIndoor) : TurretDamageProfile
{
className = DeployedTurret;
shapeFile = "turret_indoor_deployc.dts";
mass = 5.0;
maxDamage = 0.5;
destroyedLevel = 0.5;
disabledLevel = 0.21;
explosion = SmallTurretExplosion;
expDmgRadius = 5.0;
expDamage = 0.25;
expImpulse = 500.0;
repairRate = 0;
explosion = SmallTurretExplosion;
//thetaMin = 5;
//thetaMax = 145;
thetaMin = 35;
thetaMax = 175;
thetaNull = 90;
heatSignature = 0.0;
deployedObject = true;
primaryAxis = revzaxis;
isShielded = true;
energyPerDamagePoint = 110;
maxEnergy = 30;
rechargeRate = 0.10;
barrel = DeployableIndoorBarrel;
canControl = true;
cmdCategory = "DTactical";
cmdIcon = CMDTurretIcon;
cmdMiniIconName = "commander/MiniIcons/com_turret_grey";
targetNameTag = 'Spider Clamp';
targetTypeTag = 'Turret';
sensorData = DeployedIndoorTurretSensor;
sensorRadius = DeployedIndoorTurretSensor.detectRadius;
sensorColor = "191 0 226";
firstPersonOnly = true;
renderWhenDestroyed = false;
debrisShapeName = "debris_generic_small.dts";
debris = TurretDebrisSmall;
};
datablock LinearFlareProjectileData(IndoorTurretBolt)
{
directDamage = 0.14;
directDamageType = $DamageType::IndoorDepTurret;
explosion = "BlasterExplosion";
kickBackStrength = 0.0;
dryVelocity = 120.0;
wetVelocity = 40.0;
velInheritFactor = 0.5;
fizzleTimeMS = 2000;
lifetimeMS = 3000;
explodeOnDeath = false;
reflectOnWaterImpactAngle = 0.0;
explodeOnWaterImpact = false;
deflectionOnWaterImpact = 0.0;
fizzleUnderwaterMS = 3000;
numFlares = 20;
size = 0.45;
flareColor = "1 0.35 0.35";
flareModTexture = "flaremod";
flareBaseTexture = "flarebase";
sound = BlasterProjectileSound;
hasLight = true;
lightRadius = 3.0;
lightColor = "1 0.35 0.35";
};
datablock TurretImageData(DeployableIndoorBarrel)
{
shapeFile = "turret_muzzlepoint.dts";
item = TurretIndoorDeployable; // z0dd - ZOD, 4/25/02. Was wrong: IndoorTurretBarrel
projectile = IndoorTurretBolt;
projectileType = LinearFlareProjectile;
usesEnergy = true;
fireEnergy = 4.5;
minEnergy = 4.5;
lightType = "WeaponFireLight";
lightColor = "0.25 0.15 0.15 1.0";
lightTime = "1000";
lightRadius = "2";
muzzleFlash = IndoorTurretMuzzleFlash;
// Turret parameters
activationMS = 105; // z0dd - ZOD, 3/27/02. Was 150. Amount of time it takes turret to unfold
deactivateDelayMS = 300;
thinkTimeMS = 105; // z0dd - ZOD, 3/27/02. Was 150. Amount of time before turret starts to unfold (activate)
degPerSecTheta = 580;
degPerSecPhi = 960;
attackRadius = 60;
// State transitions
stateName[0] = "Activate";
stateTransitionOnNotLoaded[0] = "Dead";
stateTransitionOnLoaded[0] = "ActivateReady";
stateName[1] = "ActivateReady";
stateSequence[1] = "Activate";
stateSound[1] = IBLSwitchSound;
stateTimeoutValue[1] = 1;
stateTransitionOnTimeout[1] = "Ready";
stateTransitionOnNotLoaded[1] = "Deactivate";
stateTransitionOnNoAmmo[1] = "NoAmmo";
stateName[2] = "Ready";
stateTransitionOnNotLoaded[2] = "Deactivate";
stateTransitionOnTriggerDown[2] = "Fire";
stateTransitionOnNoAmmo[2] = "NoAmmo";
stateName[3] = "Fire";
stateTransitionOnTimeout[3] = "Reload";
stateTimeoutValue[3] = 0.3;
stateFire[3] = true;
stateShockwave[3] = true;
stateRecoil[3] = LightRecoil;
stateAllowImageChange[3] = false;
stateSequence[3] = "Fire";
stateSound[3] = IBLFireSound;
stateScript[3] = "onFire";
stateName[4] = "Reload";
stateTimeoutValue[4] = 0.8;
stateAllowImageChange[4] = false;
stateSequence[4] = "Reload";
stateTransitionOnTimeout[4] = "Ready";
stateTransitionOnNotLoaded[4] = "Deactivate";
stateTransitionOnNoAmmo[4] = "NoAmmo";
stateName[5] = "Deactivate";
stateSequence[5] = "Activate";
stateDirection[5] = false;
stateTimeoutValue[5] = 1;
stateTransitionOnLoaded[5] = "ActivateReady";
stateTransitionOnTimeout[5] = "Dead";
stateName[6] = "Dead";
stateTransitionOnLoaded[6] = "ActivateReady";
stateName[7] = "NoAmmo";
stateTransitionOnAmmo[7] = "Reload";
stateSequence[7] = "NoAmmo";
};
datablock EffectProfile(IBLSwitchEffect)
{
effectname = "powered/turret_light_activate";
minDistance = 5.0;
maxDistance = 5.0;
};
datablock EffectProfile(IBLFireEffect)
{
effectname = "powered/turret_indoor_fire";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock AudioProfile(IBLSwitchSound)
{
filename = "fx/powered/turret_light_activate.wav";
description = AudioClose3d;
preload = true;
effect = IBLSwitchEffect;
};
datablock AudioProfile(IBLFireSound)
{
filename = "fx/powered/turret_indoor_fire.wav";
description = AudioDefault3d;
preload = true;
effect = IBLFireEffect;
};
datablock SensorData(DeployedIndoorTurretSensor)
{
detects = true;
detectsUsingLOS = true;
detectsPassiveJammed = false;
detectsActiveJammed = false;
detectsCloaked = false;
detectionPings = true;
detectRadius = 40;
};
datablock ShockwaveData(IndoorTurretMuzzleFlash)
{
width = 0.5;
numSegments = 13;
numVertSegments = 1;
velocity = 2.0;
acceleration = -1.0;
lifetimeMS = 300;
height = 0.1;
verticalCurve = 0.5;
mapToTerrain = false;
renderBottom = false;
orientToNormal = true;
renderSquare = true;
texture[0] = "special/blasterHit";
texture[1] = "special/gradient";
texWrap = 3.0;
times[0] = 0.0;
times[1] = 0.5;
times[2] = 1.0;
colors[0] = "1.0 0.3 0.3 1.0";
colors[1] = "1.0 0.3 0.3 1.0";
colors[2] = "1.0 0.3 0.3 0.0";
};
datablock TurretData(TurretDeployedFloorIndoor) : TurretDamageProfile
{
className = DeployedTurret;
shapeFile = "turret_indoor_deployf.dts";
mass = 5.0;
maxDamage = 0.5;
destroyedLevel = 0.5;
disabledLevel = 0.21;
explosion = SmallTurretExplosion;
expDmgRadius = 5.0;
expDamage = 0.25;
expImpulse = 500.0;
repairRate = 0;
heatSignature = 0.0;
deployedObject = true;
thetaMin = 5;
thetaMax = 145;
thetaNull = 90;
primaryAxis = zaxis;
isShielded = true;
energyPerDamagePoint = 110;
maxEnergy = 30;
rechargeRate = 0.10;
barrel = DeployableIndoorBarrel;
canControl = true;
cmdCategory = "DTactical";
cmdIcon = CMDTurretIcon;
cmdMiniIconName = "commander/MiniIcons/com_turret_grey";
targetNameTag = 'Spider Clamp';
targetTypeTag = 'Turret';
sensorData = DeployedIndoorTurretSensor;
sensorRadius = DeployedIndoorTurretSensor.detectRadius;
sensorColor = "191 0 226";
firstPersonOnly = true;
renderWhenDestroyed = false;
debrisShapeName = "debris_generic_small.dts";
debris = TurretDebrisSmall;
};
datablock TurretData(TurretDeployedWallIndoor) : TurretDamageProfile
{
className = DeployedTurret;
shapeFile = "turret_indoor_deployw.dts";
mass = 5.0;
maxDamage = 0.5;
destroyedLevel = 0.5;
disabledLevel = 0.21;
explosion = SmallTurretExplosion;
expDmgRadius = 5.0;
expDamage = 0.25;
expImpulse = 500.0;
repairRate = 0;
heatSignature = 0.0;
thetaMin = 5;
thetaMax = 145;
thetaNull = 90;
deployedObject = true;
primaryAxis = yaxis;
isShielded = true;
energyPerDamagePoint = 110;
maxEnergy = 30;
rechargeRate = 0.10;
barrel = DeployableIndoorBarrel;
canControl = true;
cmdCategory = "DTactical";
cmdIcon = CMDTurretIcon;
cmdMiniIconName = "commander/MiniIcons/com_turret_grey";
targetNameTag = 'Spider Clamp';
targetTypeTag = 'Turret';
sensorData = DeployedIndoorTurretSensor;
sensorRadius = DeployedIndoorTurretSensor.detectRadius;
sensorColor = "191 0 226";
firstPersonOnly = true;
renderWhenDestroyed = false;
debrisShapeName = "debris_generic_small.dts";
debris = TurretDebrisSmall;
};
datablock TurretData(TurretDeployedCeilingIndoor) : TurretDamageProfile
{
className = DeployedTurret;
shapeFile = "turret_indoor_deployc.dts";
mass = 5.0;
maxDamage = 0.5;
destroyedLevel = 0.5;
disabledLevel = 0.21;
explosion = SmallTurretExplosion;
expDmgRadius = 5.0;
expDamage = 0.25;
expImpulse = 500.0;
repairRate = 0;
explosion = SmallTurretExplosion;
//thetaMin = 5;
//thetaMax = 145;
thetaMin = 35;
thetaMax = 175;
thetaNull = 90;
heatSignature = 0.0;
deployedObject = true;
primaryAxis = revzaxis;
isShielded = true;
energyPerDamagePoint = 110;
maxEnergy = 30;
rechargeRate = 0.10;
barrel = DeployableIndoorBarrel;
canControl = true;
cmdCategory = "DTactical";
cmdIcon = CMDTurretIcon;
cmdMiniIconName = "commander/MiniIcons/com_turret_grey";
targetNameTag = 'Spider Clamp';
targetTypeTag = 'Turret';
sensorData = DeployedIndoorTurretSensor;
sensorRadius = DeployedIndoorTurretSensor.detectRadius;
sensorColor = "191 0 226";
firstPersonOnly = true;
renderWhenDestroyed = false;
debrisShapeName = "debris_generic_small.dts";
debris = TurretDebrisSmall;
};
datablock LinearFlareProjectileData(IndoorTurretBolt)
{
directDamage = 0.14;
directDamageType = $DamageType::IndoorDepTurret;
explosion = "BlasterExplosion";
kickBackStrength = 0.0;
dryVelocity = 120.0;
wetVelocity = 40.0;
velInheritFactor = 0.5;
fizzleTimeMS = 2000;
lifetimeMS = 3000;
explodeOnDeath = false;
reflectOnWaterImpactAngle = 0.0;
explodeOnWaterImpact = false;
deflectionOnWaterImpact = 0.0;
fizzleUnderwaterMS = 3000;
numFlares = 20;
size = 0.45;
flareColor = "1 0.35 0.35";
flareModTexture = "flaremod";
flareBaseTexture = "flarebase";
sound = BlasterProjectileSound;
hasLight = true;
lightRadius = 3.0;
lightColor = "1 0.35 0.35";
};
datablock TurretImageData(DeployableIndoorBarrel)
{
shapeFile = "turret_muzzlepoint.dts";
item = TurretIndoorDeployable; // z0dd - ZOD, 4/25/02. Was wrong: IndoorTurretBarrel
projectile = IndoorTurretBolt;
projectileType = LinearFlareProjectile;
usesEnergy = true;
fireEnergy = 4.5;
minEnergy = 4.5;
lightType = "WeaponFireLight";
lightColor = "0.25 0.15 0.15 1.0";
lightTime = "1000";
lightRadius = "2";
muzzleFlash = IndoorTurretMuzzleFlash;
// Turret parameters
activationMS = 105; // z0dd - ZOD, 3/27/02. Was 150. Amount of time it takes turret to unfold
deactivateDelayMS = 300;
thinkTimeMS = 105; // z0dd - ZOD, 3/27/02. Was 150. Amount of time before turret starts to unfold (activate)
degPerSecTheta = 580;
degPerSecPhi = 960;
attackRadius = 60;
// State transitions
stateName[0] = "Activate";
stateTransitionOnNotLoaded[0] = "Dead";
stateTransitionOnLoaded[0] = "ActivateReady";
stateName[1] = "ActivateReady";
stateSequence[1] = "Activate";
stateSound[1] = IBLSwitchSound;
stateTimeoutValue[1] = 1;
stateTransitionOnTimeout[1] = "Ready";
stateTransitionOnNotLoaded[1] = "Deactivate";
stateTransitionOnNoAmmo[1] = "NoAmmo";
stateName[2] = "Ready";
stateTransitionOnNotLoaded[2] = "Deactivate";
stateTransitionOnTriggerDown[2] = "Fire";
stateTransitionOnNoAmmo[2] = "NoAmmo";
stateName[3] = "Fire";
stateTransitionOnTimeout[3] = "Reload";
stateTimeoutValue[3] = 0.3;
stateFire[3] = true;
stateShockwave[3] = true;
stateRecoil[3] = LightRecoil;
stateAllowImageChange[3] = false;
stateSequence[3] = "Fire";
stateSound[3] = IBLFireSound;
stateScript[3] = "onFire";
stateName[4] = "Reload";
stateTimeoutValue[4] = 0.8;
stateAllowImageChange[4] = false;
stateSequence[4] = "Reload";
stateTransitionOnTimeout[4] = "Ready";
stateTransitionOnNotLoaded[4] = "Deactivate";
stateTransitionOnNoAmmo[4] = "NoAmmo";
stateName[5] = "Deactivate";
stateSequence[5] = "Activate";
stateDirection[5] = false;
stateTimeoutValue[5] = 1;
stateTransitionOnLoaded[5] = "ActivateReady";
stateTransitionOnTimeout[5] = "Dead";
stateName[6] = "Dead";
stateTransitionOnLoaded[6] = "ActivateReady";
stateName[7] = "NoAmmo";
stateTransitionOnAmmo[7] = "Reload";
stateSequence[7] = "NoAmmo";
};

View file

@ -1,176 +1,176 @@
//--------------------------------------------------------------------------
// Large Missile Turret
//
// z0dd - ZOD, 4/25/02. Labels for sound datablocks were wrong.
//-------------------------------------------------------------
//--------------------------------------------------------------------------
// Sounds
//--------------------------------------
datablock EffectProfile(MILSwitchEffect)
{
effectname = "powered/turret_heavy_activate";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock EffectProfile(MILFireEffect)
{
effectname = "powered/turret_missile_fire";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock AudioProfile(MILSwitchSound)
{
filename = "fx/powered/turret_missile_activate.wav";
description = AudioClose3d;
preload = true;
effect = MILSwitchEffect;
};
datablock AudioProfile(MILFireSound)
{
filename = "fx/powered/turret_missile_fire.wav";
description = AudioDefault3d;
preload = true;
effect = MILFireEffect;
};
//--------------------------------------------------------------------------
// Particle effects: Note that we pull the below datablocks from
// scripts/weapons/missileLauncher.cs
//--------------------------------------
//datablock ParticleData(MissileSmokeParticle)
//datablock ParticleEmitterData(MissileSmokeEmitter)
//--------------------------------------------------------------------------
// Explosion: from scripts/weapons/disc.cs
//--------------------------------------
//dataBlock ExplosionData(DiscExplosion)
//--------------------------------------------------------------------------
// Projectile
//--------------------------------------
datablock SeekerProjectileData(TurretMissile)
{
casingShapeName = "weapon_missile_casement.dts";
projectileShapeName = "weapon_missile_projectile.dts";
hasDamageRadius = true;
indirectDamage = 1.0;
damageRadius = 4.0;
radiusDamageType = $DamageType::MissileTurret;
kickBackStrength = 2500;
flareDistance = 200;
flareAngle = 30;
minSeekHeat = 0.6;
explosion = "MissileExplosion";
velInheritFactor = 0.2;
splash = MissileSplash;
baseEmitter = MissileSmokeEmitter;
delayEmitter = MissileFireEmitter;
puffEmitter = MissilePuffEmitter;
lifetimeMS = 20000;
muzzleVelocity = 90.0; // z0dd - ZOD, 3/27/02. Was 80. Velocity of projectile
turningSpeed = 90.0;
proximityRadius = 4;
terrainAvoidanceSpeed = 180;
terrainScanAhead = 25;
terrainHeightFail = 12;
terrainAvoidanceRadius = 100;
useFlechette = true;
flechetteDelayMs = 550;
casingDeb = FlechetteDebris;
};
//--------------------------------------------------------------------------
//-------------------------------------- Fusion Turret Image
//
datablock TurretImageData(MissileBarrelLarge)
{
shapeFile = "turret_missile_large.dts";
item = MissileBarrelPack; // z0dd - ZOD, 4/25/02. Was wrong: MissileBarrelLargePack
projectile = TurretMissile;
projectileType = SeekerProjectile;
usesEnergy = true;
fireEnergy = 60.0;
minEnergy = 60.0;
isSeeker = true;
seekRadius = 300;
maxSeekAngle = 30;
seekTime = 1.0;
minSeekHeat = 0.6;
emap = true;
minTargetingDistance = 40;
// Turret parameters
activationMS = 175; // z0dd - ZOD, 3/27/02. Was 250. Amount of time it takes turret to unfold
deactivateDelayMS = 500;
thinkTimeMS = 140; // z0dd - ZOD, 3/27/02. Was 200. Amount of time before turret starts to unfold (activate)
degPerSecTheta = 580;
degPerSecPhi = 1080;
attackRadius = 250;
// State transitions
stateName[0] = "Activate";
stateTransitionOnNotLoaded[0] = "Dead";
stateTransitionOnLoaded[0] = "ActivateReady";
stateName[1] = "ActivateReady";
stateSequence[1] = "Activate";
stateSound[1] = MILSwitchSound; // z0dd - ZOD, 3/27/02. Was MBLSwitchSound, changed for sound fix.
stateTimeoutValue[1] = 2;
stateTransitionOnTimeout[1] = "Ready";
stateTransitionOnNotLoaded[1] = "Deactivate";
stateTransitionOnNoAmmo[1] = "NoAmmo";
stateName[2] = "Ready";
stateTransitionOnNotLoaded[2] = "Deactivate";
stateTransitionOnTriggerDown[2] = "Fire";
stateTransitionOnNoAmmo[2] = "NoAmmo";
stateName[3] = "Fire";
stateTransitionOnTimeout[3] = "Reload";
stateTimeoutValue[3] = 0.3;
stateFire[3] = true;
stateRecoil[3] = LightRecoil;
stateAllowImageChange[3] = false;
stateSequence[3] = "Fire";
stateSound[3] = MILFireSound; // z0dd - ZOD, 3/27/02. Was MBLFireSound, changed for sound fix.
stateScript[3] = "onFire";
stateName[4] = "Reload";
stateTimeoutValue[4] = 3.5;
stateAllowImageChange[4] = false;
stateSequence[4] = "Reload";
stateTransitionOnTimeout[4] = "Ready";
stateTransitionOnNotLoaded[4] = "Deactivate";
stateTransitionOnNoAmmo[4] = "NoAmmo";
stateName[5] = "Deactivate";
stateSequence[5] = "Activate";
stateDirection[5] = false;
stateTimeoutValue[5] = 2;
stateTransitionOnLoaded[5] = "ActivateReady";
stateTransitionOnTimeout[5] = "Dead";
stateName[6] = "Dead";
stateTransitionOnLoaded[6] = "ActivateReady";
stateName[7] = "NoAmmo";
stateTransitionOnAmmo[7] = "Reload";
stateSequence[7] = "NoAmmo";
};
//--------------------------------------------------------------------------
// Large Missile Turret
//
// z0dd - ZOD, 4/25/02. Labels for sound datablocks were wrong.
//-------------------------------------------------------------
//--------------------------------------------------------------------------
// Sounds
//--------------------------------------
datablock EffectProfile(MILSwitchEffect)
{
effectname = "powered/turret_heavy_activate";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock EffectProfile(MILFireEffect)
{
effectname = "powered/turret_missile_fire";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock AudioProfile(MILSwitchSound)
{
filename = "fx/powered/turret_missile_activate.wav";
description = AudioClose3d;
preload = true;
effect = MILSwitchEffect;
};
datablock AudioProfile(MILFireSound)
{
filename = "fx/powered/turret_missile_fire.wav";
description = AudioDefault3d;
preload = true;
effect = MILFireEffect;
};
//--------------------------------------------------------------------------
// Particle effects: Note that we pull the below datablocks from
// scripts/weapons/missileLauncher.cs
//--------------------------------------
//datablock ParticleData(MissileSmokeParticle)
//datablock ParticleEmitterData(MissileSmokeEmitter)
//--------------------------------------------------------------------------
// Explosion: from scripts/weapons/disc.cs
//--------------------------------------
//dataBlock ExplosionData(DiscExplosion)
//--------------------------------------------------------------------------
// Projectile
//--------------------------------------
datablock SeekerProjectileData(TurretMissile)
{
casingShapeName = "weapon_missile_casement.dts";
projectileShapeName = "weapon_missile_projectile.dts";
hasDamageRadius = true;
indirectDamage = 1.0;
damageRadius = 4.0;
radiusDamageType = $DamageType::MissileTurret;
kickBackStrength = 2500;
flareDistance = 200;
flareAngle = 30;
minSeekHeat = 0.6;
explosion = "MissileExplosion";
velInheritFactor = 0.2;
splash = MissileSplash;
baseEmitter = MissileSmokeEmitter;
delayEmitter = MissileFireEmitter;
puffEmitter = MissilePuffEmitter;
lifetimeMS = 20000;
muzzleVelocity = 90.0; // z0dd - ZOD, 3/27/02. Was 80. Velocity of projectile
turningSpeed = 90.0;
proximityRadius = 4;
terrainAvoidanceSpeed = 180;
terrainScanAhead = 25;
terrainHeightFail = 12;
terrainAvoidanceRadius = 100;
useFlechette = true;
flechetteDelayMs = 550;
casingDeb = FlechetteDebris;
};
//--------------------------------------------------------------------------
//-------------------------------------- Fusion Turret Image
//
datablock TurretImageData(MissileBarrelLarge)
{
shapeFile = "turret_missile_large.dts";
item = MissileBarrelPack; // z0dd - ZOD, 4/25/02. Was wrong: MissileBarrelLargePack
projectile = TurretMissile;
projectileType = SeekerProjectile;
usesEnergy = true;
fireEnergy = 60.0;
minEnergy = 60.0;
isSeeker = true;
seekRadius = 300;
maxSeekAngle = 30;
seekTime = 1.0;
minSeekHeat = 0.6;
emap = true;
minTargetingDistance = 40;
// Turret parameters
activationMS = 175; // z0dd - ZOD, 3/27/02. Was 250. Amount of time it takes turret to unfold
deactivateDelayMS = 500;
thinkTimeMS = 140; // z0dd - ZOD, 3/27/02. Was 200. Amount of time before turret starts to unfold (activate)
degPerSecTheta = 580;
degPerSecPhi = 1080;
attackRadius = 250;
// State transitions
stateName[0] = "Activate";
stateTransitionOnNotLoaded[0] = "Dead";
stateTransitionOnLoaded[0] = "ActivateReady";
stateName[1] = "ActivateReady";
stateSequence[1] = "Activate";
stateSound[1] = MILSwitchSound; // z0dd - ZOD, 3/27/02. Was MBLSwitchSound, changed for sound fix.
stateTimeoutValue[1] = 2;
stateTransitionOnTimeout[1] = "Ready";
stateTransitionOnNotLoaded[1] = "Deactivate";
stateTransitionOnNoAmmo[1] = "NoAmmo";
stateName[2] = "Ready";
stateTransitionOnNotLoaded[2] = "Deactivate";
stateTransitionOnTriggerDown[2] = "Fire";
stateTransitionOnNoAmmo[2] = "NoAmmo";
stateName[3] = "Fire";
stateTransitionOnTimeout[3] = "Reload";
stateTimeoutValue[3] = 0.3;
stateFire[3] = true;
stateRecoil[3] = LightRecoil;
stateAllowImageChange[3] = false;
stateSequence[3] = "Fire";
stateSound[3] = MILFireSound; // z0dd - ZOD, 3/27/02. Was MBLFireSound, changed for sound fix.
stateScript[3] = "onFire";
stateName[4] = "Reload";
stateTimeoutValue[4] = 3.5;
stateAllowImageChange[4] = false;
stateSequence[4] = "Reload";
stateTransitionOnTimeout[4] = "Ready";
stateTransitionOnNotLoaded[4] = "Deactivate";
stateTransitionOnNoAmmo[4] = "NoAmmo";
stateName[5] = "Deactivate";
stateSequence[5] = "Activate";
stateDirection[5] = false;
stateTimeoutValue[5] = 2;
stateTransitionOnLoaded[5] = "ActivateReady";
stateTransitionOnTimeout[5] = "Dead";
stateName[6] = "Dead";
stateTransitionOnLoaded[6] = "ActivateReady";
stateName[7] = "NoAmmo";
stateTransitionOnAmmo[7] = "Reload";
stateSequence[7] = "NoAmmo";
};

View file

@ -1,161 +1,161 @@
//--------------------------------------------------------------------------
// Large Mortar Turret
//
//
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
// Sounds
//--------------------------------------
datablock EffectProfile(MBLSwitchEffect)
{
effectname = "powered/turret_heavy_activate";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock EffectProfile(MBLFireEffect)
{
effectname = "powered/turret_mortar_fire";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock AudioProfile(MBLSwitchSound)
{
filename = "fx/powered/turret_heavy_activate.wav";
description = AudioClose3d;
preload = true;
effect = MBLSwitchEffect;
};
datablock AudioProfile(MBLFireSound)
{
filename = "fx/powered/turret_mortar_fire.wav";
description = AudioDefault3d;
preload = true;
effect = MBLFireEffect;
};
//--------------------------------------------------------------------------
// Projectile
//--------------------------------------
datablock AudioProfile(MortarTurretProjectileSound)
{
filename = "fx/weapons/mortar_projectile.wav";
description = ProjectileLooping3d;
preload = true;
};
datablock GrenadeProjectileData(MortarTurretShot)
{
projectileShapeName = "mortar_projectile.dts";
emitterDelay = -1;
directDamage = 0.0;
hasDamageRadius = true;
indirectDamage = 1.32;
damageRadius = 30.0;
radiusDamageType = $DamageType::MortarTurret;
kickBackStrength = 3000;
explosion = "MortarExplosion";
velInheritFactor = 0.5;
splash = MortarSplash;
baseEmitter = MortarSmokeEmitter;
bubbleEmitter = MortarBubbleEmitter;
grenadeElasticity = 0.25;
grenadeFriction = 0.4;
armingDelayMS = 1500; // z0dd - ZOD, 4/25/02. Was 2000
gravityMod = 1.2; // z0dd - ZOD, 5/18/02. Make mortar projectile heavier, less floaty
muzzleVelocity = 75.95; // z0dd - ZOD, 8/13/02. More speed to compensate for higher gravity. Was 63.7
drag = 0.1;
sound = MortarTurretProjectileSound;
hasLight = true;
lightRadius = 3;
lightColor = "0.05 0.2 0.05";
};
//--------------------------------------------------------------------------
//-------------------------------------- Fusion Turret Image
//
datablock TurretImageData(MortarBarrelLarge)
{
shapeFile = "turret_mortar_large.dts";
item = MortarBarrelPack; // z0dd - ZOD, 4/25/02. Was wrong: MortarBarrelLargePack
projectile = MortarTurretShot;
projectileType = GrenadeProjectile;
usesEnergy = true;
fireEnergy = 30;
minEnergy = 30;
emap = true;
// don't let a mortar turret blow itself up
dontFireInsideDamageRadius = true;
damageRadius = 40;
// Turret parameters
activationMS = 700; // z0dd - ZOD, 4/25/02. Was 1000. Amount of time it takes turret to unfold
deactivateDelayMS = 1500;
thinkTimeMS = 140; // z0dd - ZOD, 4/25/02. Was 200. Amount of time before turret starts to unfold (activate)
degPerSecTheta = 580;
degPerSecPhi = 960;
attackRadius = 400; // z0dd - ZOD, 4/25/02. Was 160
// State transitions
stateName[0] = "Activate";
stateTransitionOnNotLoaded[0] = "Dead";
stateTransitionOnLoaded[0] = "ActivateReady";
stateName[1] = "ActivateReady";
stateSequence[1] = "Activate";
stateSound[1] = MBLSwitchSound;
stateTimeoutValue[1] = 1;
stateTransitionOnTimeout[1] = "Ready";
stateTransitionOnNotLoaded[1] = "Deactivate";
stateTransitionOnNoAmmo[1] = "NoAmmo";
stateName[2] = "Ready";
stateTransitionOnNotLoaded[2] = "Deactivate";
stateTransitionOnTriggerDown[2] = "Fire";
stateTransitionOnNoAmmo[2] = "NoAmmo";
stateName[3] = "Fire";
stateTransitionOnTimeout[3] = "Reload";
stateTimeoutValue[3] = 0.3;
stateFire[3] = true;
stateRecoil[3] = LightRecoil;
stateAllowImageChange[3] = false;
stateSequence[3] = "Fire";
stateSound[3] = MBLFireSound;
stateScript[3] = "onFire";
stateName[4] = "Reload";
stateTimeoutValue[4] = 1.5;
stateAllowImageChange[4] = false;
stateSequence[4] = "Reload";
stateTransitionOnTimeout[4] = "Ready";
stateTransitionOnNotLoaded[4] = "Deactivate";
stateTransitionOnNoAmmo[4] = "NoAmmo";
stateName[5] = "Deactivate";
stateSequence[5] = "Activate";
stateDirection[5] = false;
stateTimeoutValue[5] = 1;
stateTransitionOnLoaded[5] = "ActivateReady";
stateTransitionOnTimeout[5] = "Dead";
stateName[6] = "Dead";
stateTransitionOnLoaded[6] = "ActivateReady";
stateName[7] = "NoAmmo";
stateTransitionOnAmmo[7] = "Reload";
stateSequence[7] = "NoAmmo";
};
//--------------------------------------------------------------------------
// Large Mortar Turret
//
//
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
// Sounds
//--------------------------------------
datablock EffectProfile(MBLSwitchEffect)
{
effectname = "powered/turret_heavy_activate";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock EffectProfile(MBLFireEffect)
{
effectname = "powered/turret_mortar_fire";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock AudioProfile(MBLSwitchSound)
{
filename = "fx/powered/turret_heavy_activate.wav";
description = AudioClose3d;
preload = true;
effect = MBLSwitchEffect;
};
datablock AudioProfile(MBLFireSound)
{
filename = "fx/powered/turret_mortar_fire.wav";
description = AudioDefault3d;
preload = true;
effect = MBLFireEffect;
};
//--------------------------------------------------------------------------
// Projectile
//--------------------------------------
datablock AudioProfile(MortarTurretProjectileSound)
{
filename = "fx/weapons/mortar_projectile.wav";
description = ProjectileLooping3d;
preload = true;
};
datablock GrenadeProjectileData(MortarTurretShot)
{
projectileShapeName = "mortar_projectile.dts";
emitterDelay = -1;
directDamage = 0.0;
hasDamageRadius = true;
indirectDamage = 1.32;
damageRadius = 30.0;
radiusDamageType = $DamageType::MortarTurret;
kickBackStrength = 3000;
explosion = "MortarExplosion";
velInheritFactor = 0.5;
splash = MortarSplash;
baseEmitter = MortarSmokeEmitter;
bubbleEmitter = MortarBubbleEmitter;
grenadeElasticity = 0.25;
grenadeFriction = 0.4;
armingDelayMS = 1500; // z0dd - ZOD, 4/25/02. Was 2000
gravityMod = 1.2; // z0dd - ZOD, 5/18/02. Make mortar projectile heavier, less floaty
muzzleVelocity = 75.95; // z0dd - ZOD, 8/13/02. More speed to compensate for higher gravity. Was 63.7
drag = 0.1;
sound = MortarTurretProjectileSound;
hasLight = true;
lightRadius = 3;
lightColor = "0.05 0.2 0.05";
};
//--------------------------------------------------------------------------
//-------------------------------------- Fusion Turret Image
//
datablock TurretImageData(MortarBarrelLarge)
{
shapeFile = "turret_mortar_large.dts";
item = MortarBarrelPack; // z0dd - ZOD, 4/25/02. Was wrong: MortarBarrelLargePack
projectile = MortarTurretShot;
projectileType = GrenadeProjectile;
usesEnergy = true;
fireEnergy = 30;
minEnergy = 30;
emap = true;
// don't let a mortar turret blow itself up
dontFireInsideDamageRadius = true;
damageRadius = 40;
// Turret parameters
activationMS = 700; // z0dd - ZOD, 4/25/02. Was 1000. Amount of time it takes turret to unfold
deactivateDelayMS = 1500;
thinkTimeMS = 140; // z0dd - ZOD, 4/25/02. Was 200. Amount of time before turret starts to unfold (activate)
degPerSecTheta = 580;
degPerSecPhi = 960;
attackRadius = 400; // z0dd - ZOD, 4/25/02. Was 160
// State transitions
stateName[0] = "Activate";
stateTransitionOnNotLoaded[0] = "Dead";
stateTransitionOnLoaded[0] = "ActivateReady";
stateName[1] = "ActivateReady";
stateSequence[1] = "Activate";
stateSound[1] = MBLSwitchSound;
stateTimeoutValue[1] = 1;
stateTransitionOnTimeout[1] = "Ready";
stateTransitionOnNotLoaded[1] = "Deactivate";
stateTransitionOnNoAmmo[1] = "NoAmmo";
stateName[2] = "Ready";
stateTransitionOnNotLoaded[2] = "Deactivate";
stateTransitionOnTriggerDown[2] = "Fire";
stateTransitionOnNoAmmo[2] = "NoAmmo";
stateName[3] = "Fire";
stateTransitionOnTimeout[3] = "Reload";
stateTimeoutValue[3] = 0.3;
stateFire[3] = true;
stateRecoil[3] = LightRecoil;
stateAllowImageChange[3] = false;
stateSequence[3] = "Fire";
stateSound[3] = MBLFireSound;
stateScript[3] = "onFire";
stateName[4] = "Reload";
stateTimeoutValue[4] = 1.5;
stateAllowImageChange[4] = false;
stateSequence[4] = "Reload";
stateTransitionOnTimeout[4] = "Ready";
stateTransitionOnNotLoaded[4] = "Deactivate";
stateTransitionOnNoAmmo[4] = "NoAmmo";
stateName[5] = "Deactivate";
stateSequence[5] = "Activate";
stateDirection[5] = false;
stateTimeoutValue[5] = 1;
stateTransitionOnLoaded[5] = "ActivateReady";
stateTransitionOnTimeout[5] = "Dead";
stateName[6] = "Dead";
stateTransitionOnLoaded[6] = "ActivateReady";
stateName[7] = "NoAmmo";
stateTransitionOnAmmo[7] = "Reload";
stateSequence[7] = "NoAmmo";
};

View file

@ -1,251 +1,251 @@
// --------------------------------------------------------------
// Outdoor Deployable Turret barrel
// --------------------------------------------------------------
// --------------------------------------------------------------
// Sound datablocks
// --------------------------------------------------------------
datablock EffectProfile(OBLSwitchEffect)
{
effectname = "powered/turret_light_activate";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock EffectProfile(OBLFireEffect)
{
effectname = "powered/turret_outdoor_fire";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock AudioProfile(OBLSwitchSound)
{
filename = "fx/powered/turret_light_activate.wav";
description = AudioClose3d;
preload = true;
effect = OBLSwitchEffect;
};
datablock AudioProfile(OBLFireSound)
{
filename = "fx/powered/turret_outdoor_fire.wav";
description = AudioDefault3d;
preload = true;
effect = OBLFireEffect;
};
// --------------------------------------------------------------
// Projectile data
// --------------------------------------------------------------
datablock TracerProjectileData(FusionBolt)
{
doDynamicClientHits = true;
projectileShapeName = "";
directDamage = 0.0;
directDamageType = $DamageType::OutdoorDepTurret;
hasDamageRadius = true;
indirectDamage = 0.24;
damageRadius = 4.0;
kickBackStrength = 0.0;
radiusDamageType = $DamageType::OutdoorDepTurret;
sound = BlasterProjectileSound;
explosion = PlasmaBoltExplosion;
dryVelocity = 60.0;
wetVelocity = 40.0;
velInheritFactor = 1.0;
fizzleTimeMS = 4000;
lifetimeMS = 6000;
explodeOnDeath = false;
reflectOnWaterImpactAngle = 0.0;
explodeOnWaterImpact = true;
deflectionOnWaterImpact = 0.0;
fizzleUnderwaterMS = -1;
activateDelayMS = 100;
tracerLength = 5;
tracerAlpha = false;
tracerMinPixels = 3;
tracerColor = "1 0 0 1";
tracerTex[0] = "special/landSpikeBolt";
tracerTex[1] = "special/landSpikeBoltCross";
tracerWidth = 0.35;
crossSize = 0.79;
crossViewAng = 0.990;
renderCross = true;
emap = true;
};
// --------------------------------------------------------------
datablock SensorData(DeployedOutdoorTurretSensor)
{
detects = true;
detectsUsingLOS = true;
detectsPassiveJammed = false;
detectsActiveJammed = false;
detectsCloaked = false;
detectionPings = true;
detectRadius = 60;
};
datablock ShockwaveData(OutdoorTurretMuzzleFlash)
{
width = 0.5;
numSegments = 13;
numVertSegments = 1;
velocity = 2.0;
acceleration = -1.0;
lifetimeMS = 300;
height = 0.1;
verticalCurve = 0.5;
mapToTerrain = false;
renderBottom = false;
orientToNormal = true;
renderSquare = true;
texture[0] = "special/blasterHit";
texture[1] = "special/gradient";
texWrap = 3.0;
times[0] = 0.0;
times[1] = 0.5;
times[2] = 1.0;
colors[0] = "1.0 0.8 0.5 1.0";
colors[1] = "1.0 0.8 0.5 1.0";
colors[2] = "1.0 0.8 0.5 0.0";
};
datablock TurretData(TurretDeployedOutdoor) : TurretDamageProfile
{
className = DeployedTurret;
shapeFile = "turret_outdoor_deploy.dts";
rechargeRate = 0.15;
mass = 5.0;
maxDamage = 0.80;
destroyedLevel = 0.80;
disabledLevel = 0.35;
explosion = HandGrenadeExplosion;
expDmgRadius = 5.0;
expDamage = 0.3;
expImpulse = 500.0;
repairRate = 0;
deployedObject = true;
thetaMin = 0;
thetaMax = 145;
thetaNull = 90;
yawVariance = 30.0; // these will smooth out the elf tracking code.
pitchVariance = 30.0; // more or less just tolerances
isShielded = true;
energyPerDamagePoint = 110;
maxEnergy = 60;
renderWhenDestroyed = false;
barrel = DeployableOutdoorBarrel;
heatSignature = 0;
canControl = true;
cmdCategory = "DTactical";
cmdIcon = CMDTurretIcon;
cmdMiniIconName = "commander/MiniIcons/com_turret_grey";
targetNameTag = 'Landspike';
targetTypeTag = 'Turret';
sensorData = DeployedOutdoorTurretSensor;
sensorRadius = DeployedOutdoorTurretSensor.detectRadius;
sensorColor = "191 0 226";
firstPersonOnly = true;
debrisShapeName = "debris_generic_small.dts";
debris = TurretDebrisSmall;
};
datablock TurretImageData(DeployableOutdoorBarrel)
{
shapeFile = "turret_muzzlepoint.dts";
item = TurretOutdoorDeployable; // z0dd - ZOD, 4/25/02. Was wrong: OutdoorTurretBarrel
projectileType = TracerProjectile;
projectile = FusionBolt;
usesEnergy = true;
fireEnergy = 11.0;
minEnergy = 11.0;
lightType = "WeaponFireLight";
lightColor = "0.25 0.25 0.15 0.2";
lightTime = "1000";
lightRadius = "2";
muzzleFlash = OutdoorTurretMuzzleFlash;
// Turret parameters
activationMS = 210; // z0dd - ZOD, 3/27/02. Was 300. Amount of time it takes turret to unfold
deactivateDelayMS = 600;
thinkTimeMS = 140; // z0dd - ZOD, 3/27/02. Was 200. Amount of time before turret starts to unfold (activate)
degPerSecTheta = 580;
degPerSecPhi = 960;
attackRadius = 100;
// State transitions
stateName[0] = "Activate";
stateTransitionOnNotLoaded[0] = "Dead";
stateTransitionOnLoaded[0] = "ActivateReady";
stateName[1] = "ActivateReady";
stateSequence[1] = "Activate";
stateSound[1] = OBLSwitchSound;
stateTimeoutValue[1] = 1;
stateTransitionOnTimeout[1] = "Ready";
stateTransitionOnNotLoaded[1] = "Deactivate";
stateTransitionOnNoAmmo[1] = "NoAmmo";
stateName[2] = "Ready";
stateTransitionOnNotLoaded[2] = "Deactivate";
stateTransitionOnTriggerDown[2] = "Fire";
stateTransitionOnNoAmmo[2] = "NoAmmo";
stateName[3] = "Fire";
stateTransitionOnTimeout[3] = "Reload";
stateTimeoutValue[3] = 0.3;
stateFire[3] = true;
stateShockwave[3] = true;
stateRecoil[3] = LightRecoil;
stateAllowImageChange[3] = false;
stateSequence[3] = "Fire";
stateSound[3] = OBLFireSound;
stateScript[3] = "onFire";
stateName[4] = "Reload";
stateTimeoutValue[4] = 1.2;
stateAllowImageChange[4] = false;
stateSequence[4] = "Reload";
stateTransitionOnTimeout[4] = "Ready";
stateTransitionOnNotLoaded[4] = "Deactivate";
stateTransitionOnNoAmmo[4] = "NoAmmo";
stateName[5] = "Deactivate";
stateSequence[5] = "Activate";
stateDirection[5] = false;
stateTimeoutValue[5] = 1;
stateTransitionOnLoaded[5] = "ActivateReady";
stateTransitionOnTimeout[5] = "Dead";
stateName[6] = "Dead";
stateTransitionOnLoaded[6] = "ActivateReady";
stateName[7] = "NoAmmo";
stateTransitionOnAmmo[7] = "Reload";
stateSequence[7] = "NoAmmo";
};
// --------------------------------------------------------------
// Outdoor Deployable Turret barrel
// --------------------------------------------------------------
// --------------------------------------------------------------
// Sound datablocks
// --------------------------------------------------------------
datablock EffectProfile(OBLSwitchEffect)
{
effectname = "powered/turret_light_activate";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock EffectProfile(OBLFireEffect)
{
effectname = "powered/turret_outdoor_fire";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock AudioProfile(OBLSwitchSound)
{
filename = "fx/powered/turret_light_activate.wav";
description = AudioClose3d;
preload = true;
effect = OBLSwitchEffect;
};
datablock AudioProfile(OBLFireSound)
{
filename = "fx/powered/turret_outdoor_fire.wav";
description = AudioDefault3d;
preload = true;
effect = OBLFireEffect;
};
// --------------------------------------------------------------
// Projectile data
// --------------------------------------------------------------
datablock TracerProjectileData(FusionBolt)
{
doDynamicClientHits = true;
projectileShapeName = "";
directDamage = 0.0;
directDamageType = $DamageType::OutdoorDepTurret;
hasDamageRadius = true;
indirectDamage = 0.24;
damageRadius = 4.0;
kickBackStrength = 0.0;
radiusDamageType = $DamageType::OutdoorDepTurret;
sound = BlasterProjectileSound;
explosion = PlasmaBoltExplosion;
dryVelocity = 60.0;
wetVelocity = 40.0;
velInheritFactor = 1.0;
fizzleTimeMS = 4000;
lifetimeMS = 6000;
explodeOnDeath = false;
reflectOnWaterImpactAngle = 0.0;
explodeOnWaterImpact = true;
deflectionOnWaterImpact = 0.0;
fizzleUnderwaterMS = -1;
activateDelayMS = 100;
tracerLength = 5;
tracerAlpha = false;
tracerMinPixels = 3;
tracerColor = "1 0 0 1";
tracerTex[0] = "special/landSpikeBolt";
tracerTex[1] = "special/landSpikeBoltCross";
tracerWidth = 0.35;
crossSize = 0.79;
crossViewAng = 0.990;
renderCross = true;
emap = true;
};
// --------------------------------------------------------------
datablock SensorData(DeployedOutdoorTurretSensor)
{
detects = true;
detectsUsingLOS = true;
detectsPassiveJammed = false;
detectsActiveJammed = false;
detectsCloaked = false;
detectionPings = true;
detectRadius = 60;
};
datablock ShockwaveData(OutdoorTurretMuzzleFlash)
{
width = 0.5;
numSegments = 13;
numVertSegments = 1;
velocity = 2.0;
acceleration = -1.0;
lifetimeMS = 300;
height = 0.1;
verticalCurve = 0.5;
mapToTerrain = false;
renderBottom = false;
orientToNormal = true;
renderSquare = true;
texture[0] = "special/blasterHit";
texture[1] = "special/gradient";
texWrap = 3.0;
times[0] = 0.0;
times[1] = 0.5;
times[2] = 1.0;
colors[0] = "1.0 0.8 0.5 1.0";
colors[1] = "1.0 0.8 0.5 1.0";
colors[2] = "1.0 0.8 0.5 0.0";
};
datablock TurretData(TurretDeployedOutdoor) : TurretDamageProfile
{
className = DeployedTurret;
shapeFile = "turret_outdoor_deploy.dts";
rechargeRate = 0.15;
mass = 5.0;
maxDamage = 0.80;
destroyedLevel = 0.80;
disabledLevel = 0.35;
explosion = HandGrenadeExplosion;
expDmgRadius = 5.0;
expDamage = 0.3;
expImpulse = 500.0;
repairRate = 0;
deployedObject = true;
thetaMin = 0;
thetaMax = 145;
thetaNull = 90;
yawVariance = 30.0; // these will smooth out the elf tracking code.
pitchVariance = 30.0; // more or less just tolerances
isShielded = true;
energyPerDamagePoint = 110;
maxEnergy = 60;
renderWhenDestroyed = false;
barrel = DeployableOutdoorBarrel;
heatSignature = 0;
canControl = true;
cmdCategory = "DTactical";
cmdIcon = CMDTurretIcon;
cmdMiniIconName = "commander/MiniIcons/com_turret_grey";
targetNameTag = 'Landspike';
targetTypeTag = 'Turret';
sensorData = DeployedOutdoorTurretSensor;
sensorRadius = DeployedOutdoorTurretSensor.detectRadius;
sensorColor = "191 0 226";
firstPersonOnly = true;
debrisShapeName = "debris_generic_small.dts";
debris = TurretDebrisSmall;
};
datablock TurretImageData(DeployableOutdoorBarrel)
{
shapeFile = "turret_muzzlepoint.dts";
item = TurretOutdoorDeployable; // z0dd - ZOD, 4/25/02. Was wrong: OutdoorTurretBarrel
projectileType = TracerProjectile;
projectile = FusionBolt;
usesEnergy = true;
fireEnergy = 11.0;
minEnergy = 11.0;
lightType = "WeaponFireLight";
lightColor = "0.25 0.25 0.15 0.2";
lightTime = "1000";
lightRadius = "2";
muzzleFlash = OutdoorTurretMuzzleFlash;
// Turret parameters
activationMS = 210; // z0dd - ZOD, 3/27/02. Was 300. Amount of time it takes turret to unfold
deactivateDelayMS = 600;
thinkTimeMS = 140; // z0dd - ZOD, 3/27/02. Was 200. Amount of time before turret starts to unfold (activate)
degPerSecTheta = 580;
degPerSecPhi = 960;
attackRadius = 100;
// State transitions
stateName[0] = "Activate";
stateTransitionOnNotLoaded[0] = "Dead";
stateTransitionOnLoaded[0] = "ActivateReady";
stateName[1] = "ActivateReady";
stateSequence[1] = "Activate";
stateSound[1] = OBLSwitchSound;
stateTimeoutValue[1] = 1;
stateTransitionOnTimeout[1] = "Ready";
stateTransitionOnNotLoaded[1] = "Deactivate";
stateTransitionOnNoAmmo[1] = "NoAmmo";
stateName[2] = "Ready";
stateTransitionOnNotLoaded[2] = "Deactivate";
stateTransitionOnTriggerDown[2] = "Fire";
stateTransitionOnNoAmmo[2] = "NoAmmo";
stateName[3] = "Fire";
stateTransitionOnTimeout[3] = "Reload";
stateTimeoutValue[3] = 0.3;
stateFire[3] = true;
stateShockwave[3] = true;
stateRecoil[3] = LightRecoil;
stateAllowImageChange[3] = false;
stateSequence[3] = "Fire";
stateSound[3] = OBLFireSound;
stateScript[3] = "onFire";
stateName[4] = "Reload";
stateTimeoutValue[4] = 1.2;
stateAllowImageChange[4] = false;
stateSequence[4] = "Reload";
stateTransitionOnTimeout[4] = "Ready";
stateTransitionOnNotLoaded[4] = "Deactivate";
stateTransitionOnNoAmmo[4] = "NoAmmo";
stateName[5] = "Deactivate";
stateSequence[5] = "Activate";
stateDirection[5] = false;
stateTimeoutValue[5] = 1;
stateTransitionOnLoaded[5] = "ActivateReady";
stateTransitionOnTimeout[5] = "Dead";
stateName[6] = "Dead";
stateTransitionOnLoaded[6] = "ActivateReady";
stateName[7] = "NoAmmo";
stateTransitionOnAmmo[7] = "Reload";
stateSequence[7] = "NoAmmo";
};

View file

@ -1,324 +1,324 @@
//--------------------------------------------------------------------------
// Plasma Turret
//
//
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
// Sounds
//--------------------------------------------------------------------------
datablock EffectProfile(PBLSwitchEffect)
{
effectname = "powered/turret_light_activate";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock EffectProfile(PBLFireEffect)
{
effectname = "powered/turret_plasma_fire";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock AudioProfile(PBLSwitchSound)
{
filename = "fx/powered/turret_light_activate.wav";
description = AudioClose3d;
preload = true;
effect = PBLSwitchEffect;
};
datablock AudioProfile(PBLFireSound)
{
filename = "fx/powered/turret_plasma_fire.wav";
description = AudioDefault3d;
preload = true;
effect = PBLFireEffect;
};
//--------------------------------------------------------------------------
// Explosion
//--------------------------------------------------------------------------
datablock AudioProfile(PlasmaBarrelExpSound)
{
filename = "fx/powered/turret_plasma_explode.wav";
description = "AudioExplosion3d";
preload = true;
};
datablock ParticleData( PlasmaBarrelCrescentParticle )
{
dragCoefficient = 2;
gravityCoefficient = 0.0;
inheritedVelFactor = 0.2;
constantAcceleration = -0.0;
lifetimeMS = 600;
lifetimeVarianceMS = 000;
textureName = "special/crescent3";
colors[0] = "0.3 0.4 1.0 1.0";
colors[1] = "0.3 0.4 1.0 0.5";
colors[2] = "0.3 0.4 1.0 0.0";
sizes[0] = 2.0;
sizes[1] = 4.0;
sizes[2] = 5.0;
times[0] = 0.0;
times[1] = 0.5;
times[2] = 1.0;
};
datablock ParticleEmitterData( PlasmaBarrelCrescentEmitter )
{
ejectionPeriodMS = 25;
periodVarianceMS = 0;
ejectionVelocity = 20;
velocityVariance = 5.0;
ejectionOffset = 0.0;
thetaMin = 0;
thetaMax = 80;
phiReferenceVel = 0;
phiVariance = 360;
overrideAdvances = false;
orientParticles = true;
lifetimeMS = 200;
particles = "PlasmaBarrelCrescentParticle";
};
datablock ParticleData(PlasmaBarrelExplosionParticle)
{
dragCoefficient = 2;
gravityCoefficient = 0.2;
inheritedVelFactor = 0.2;
constantAcceleration = 0.0;
lifetimeMS = 750;
lifetimeVarianceMS = 150;
textureName = "particleTest";
colors[0] = "0.3 0.4 1.0 1.0";
colors[1] = "0.3 0.4 1.0 0.0";
sizes[0] = 1;
sizes[1] = 2;
};
datablock ParticleEmitterData(PlasmaBarrelExplosionEmitter)
{
ejectionPeriodMS = 7;
periodVarianceMS = 0;
ejectionVelocity = 12;
velocityVariance = 1.75;
ejectionOffset = 0.0;
thetaMin = 0;
thetaMax = 60;
phiReferenceVel = 0;
phiVariance = 360;
overrideAdvances = false;
particles = "PlasmaBarrelExplosionParticle";
};
datablock ExplosionData(PlasmaBarrelSubExplosion1)
{
explosionShape = "disc_explosion.dts";
faceViewer = true;
delayMS = 50;
offset = 3.0;
playSpeed = 1.5;
sizes[0] = "0.25 0.25 0.25";
sizes[1] = "0.25 0.25 0.25";
times[0] = 0.0;
times[1] = 1.0;
};
datablock ExplosionData(PlasmaBarrelSubExplosion2)
{
explosionShape = "disc_explosion.dts";
faceViewer = true;
delayMS = 100;
offset = 3.5;
playSpeed = 1.0;
sizes[0] = "0.5 0.5 0.5";
sizes[1] = "0.5 0.5 0.5";
times[0] = 0.0;
times[1] = 1.0;
};
datablock ExplosionData(PlasmaBarrelSubExplosion3)
{
explosionShape = "disc_explosion.dts";
faceViewer = true;
delayMS = 0;
offset = 0.0;
playSpeed = 0.7;
sizes[0] = "0.5 0.5 0.5";
sizes[1] = "1.0 1.0 1.0";
times[0] = 0.0;
times[1] = 1.0;
};
datablock ExplosionData(PlasmaBarrelBoltExplosion)
{
soundProfile = PlasmaBarrelExpSound;
particleEmitter = PlasmaBarrelExplosionEmitter;
particleDensity = 250;
particleRadius = 1.25;
faceViewer = true;
emitter[0] = PlasmaBarrelCrescentEmitter;
subExplosion[0] = PlasmaBarrelSubExplosion1;
subExplosion[1] = PlasmaBarrelSubExplosion2;
subExplosion[2] = PlasmaBarrelSubExplosion3;
shakeCamera = true;
camShakeFreq = "10.0 9.0 9.0";
camShakeAmp = "10.0 10.0 10.0";
camShakeDuration = 0.5;
camShakeRadius = 15.0;
};
//--------------------------------------------------------------------------
// Projectile
//--------------------------------------
datablock LinearFlareProjectileData(PlasmaBarrelBolt)
{
doDynamicClientHits = true;
directDamage = 0;
directDamageType = $DamageType::PlasmaTurret;
hasDamageRadius = true;
indirectDamage = 1.2; // z0dd - ZOD, 4/25/02. Was 0.5
damageRadius = 10.0;
kickBackStrength = 500;
radiusDamageType = $DamageType::PlasmaTurret;
explosion = PlasmaBarrelBoltExplosion;
splash = PlasmaSplash;
dryVelocity = 75.0; // z0dd - ZOD, 4/25/02. Was 50. Velocity of projectile out of water
wetVelocity = -1;
velInheritFactor = 1.0;
fizzleTimeMS = 4000;
lifetimeMS = 4000; // z0dd - ZOD, 4/25/02. Was 6000
explodeOnDeath = false;
reflectOnWaterImpactAngle = 0.0;
explodeOnWaterImpact = true;
deflectionOnWaterImpact = 0.0;
fizzleUnderwaterMS = -1;
activateDelayMS = 100;
scale = "1.5 1.5 1.5";
numFlares = 30;
flareColor = "0.1 0.3 1.0";
flareModTexture = "flaremod";
flareBaseTexture = "flarebase";
};
//--------------------------------------------------------------------------
// Plasma Turret Image
//--------------------------------------------------------------------------
datablock TurretImageData(PlasmaBarrelLarge)
{
shapeFile = "turret_fusion_large.dts";
item = PlasmaBarrelPack; // z0dd - ZOD, 4/25/02. Was wrong: PlasmaBarrelLargePack
projectile = PlasmaBarrelBolt;
projectileType = LinearFlareProjectile;
usesEnergy = true;
fireEnergy = 10;
minEnergy = 10;
emap = true;
// Turret parameters
activationMS = 700; // z0dd - ZOD, 3/27/02. Was 1000. Amount of time it takes turret to unfold
deactivateDelayMS = 1500;
thinkTimeMS = 140; // z0dd - ZOD, 3/27/02. Was 200. Amount of time before turret starts to unfold (activate)
degPerSecTheta = 300;
degPerSecPhi = 500;
attackRadius = 150; // z0dd - ZOD, 3/27/02. Was 120
// State transitions
stateName[0] = "Activate";
stateTransitionOnNotLoaded[0] = "Dead";
stateTransitionOnLoaded[0] = "ActivateReady";
stateName[1] = "ActivateReady";
stateSequence[1] = "Activate";
stateSound[1] = PBLSwitchSound;
stateTimeoutValue[1] = 1;
stateTransitionOnTimeout[1] = "Ready";
stateTransitionOnNotLoaded[1] = "Deactivate";
stateTransitionOnNoAmmo[1] = "NoAmmo";
stateName[2] = "Ready";
stateTransitionOnNotLoaded[2] = "Deactivate";
stateTransitionOnTriggerDown[2] = "Fire";
stateTransitionOnNoAmmo[2] = "NoAmmo";
stateName[3] = "Fire";
stateTransitionOnTimeout[3] = "Reload";
stateTimeoutValue[3] = 0.3;
stateFire[3] = true;
stateRecoil[3] = LightRecoil;
stateAllowImageChange[3] = false;
stateSequence[3] = "Fire";
stateSound[3] = PBLFireSound;
stateScript[3] = "onFire";
stateName[4] = "Reload";
stateTimeoutValue[4] = 0.80;
stateAllowImageChange[4] = false;
stateSequence[4] = "Reload";
stateTransitionOnTimeout[4] = "Ready";
stateTransitionOnNotLoaded[4] = "Deactivate";
stateTransitionOnNoAmmo[4] = "NoAmmo";
stateName[5] = "Deactivate";
stateSequence[5] = "Activate";
stateDirection[5] = false;
stateTimeoutValue[5] = 1;
stateTransitionOnLoaded[5] = "ActivateReady";
stateTransitionOnTimeout[5] = "Dead";
stateName[6] = "Dead";
stateTransitionOnLoaded[6] = "ActivateReady";
stateName[7] = "NoAmmo";
stateTransitionOnAmmo[7] = "Reload";
stateSequence[7] = "NoAmmo";
};
//--------------------------------------------------------------------------
// Plasma Turret
//
//
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
// Sounds
//--------------------------------------------------------------------------
datablock EffectProfile(PBLSwitchEffect)
{
effectname = "powered/turret_light_activate";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock EffectProfile(PBLFireEffect)
{
effectname = "powered/turret_plasma_fire";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock AudioProfile(PBLSwitchSound)
{
filename = "fx/powered/turret_light_activate.wav";
description = AudioClose3d;
preload = true;
effect = PBLSwitchEffect;
};
datablock AudioProfile(PBLFireSound)
{
filename = "fx/powered/turret_plasma_fire.wav";
description = AudioDefault3d;
preload = true;
effect = PBLFireEffect;
};
//--------------------------------------------------------------------------
// Explosion
//--------------------------------------------------------------------------
datablock AudioProfile(PlasmaBarrelExpSound)
{
filename = "fx/powered/turret_plasma_explode.wav";
description = "AudioExplosion3d";
preload = true;
};
datablock ParticleData( PlasmaBarrelCrescentParticle )
{
dragCoefficient = 2;
gravityCoefficient = 0.0;
inheritedVelFactor = 0.2;
constantAcceleration = -0.0;
lifetimeMS = 600;
lifetimeVarianceMS = 000;
textureName = "special/crescent3";
colors[0] = "0.3 0.4 1.0 1.0";
colors[1] = "0.3 0.4 1.0 0.5";
colors[2] = "0.3 0.4 1.0 0.0";
sizes[0] = 2.0;
sizes[1] = 4.0;
sizes[2] = 5.0;
times[0] = 0.0;
times[1] = 0.5;
times[2] = 1.0;
};
datablock ParticleEmitterData( PlasmaBarrelCrescentEmitter )
{
ejectionPeriodMS = 25;
periodVarianceMS = 0;
ejectionVelocity = 20;
velocityVariance = 5.0;
ejectionOffset = 0.0;
thetaMin = 0;
thetaMax = 80;
phiReferenceVel = 0;
phiVariance = 360;
overrideAdvances = false;
orientParticles = true;
lifetimeMS = 200;
particles = "PlasmaBarrelCrescentParticle";
};
datablock ParticleData(PlasmaBarrelExplosionParticle)
{
dragCoefficient = 2;
gravityCoefficient = 0.2;
inheritedVelFactor = 0.2;
constantAcceleration = 0.0;
lifetimeMS = 750;
lifetimeVarianceMS = 150;
textureName = "particleTest";
colors[0] = "0.3 0.4 1.0 1.0";
colors[1] = "0.3 0.4 1.0 0.0";
sizes[0] = 1;
sizes[1] = 2;
};
datablock ParticleEmitterData(PlasmaBarrelExplosionEmitter)
{
ejectionPeriodMS = 7;
periodVarianceMS = 0;
ejectionVelocity = 12;
velocityVariance = 1.75;
ejectionOffset = 0.0;
thetaMin = 0;
thetaMax = 60;
phiReferenceVel = 0;
phiVariance = 360;
overrideAdvances = false;
particles = "PlasmaBarrelExplosionParticle";
};
datablock ExplosionData(PlasmaBarrelSubExplosion1)
{
explosionShape = "disc_explosion.dts";
faceViewer = true;
delayMS = 50;
offset = 3.0;
playSpeed = 1.5;
sizes[0] = "0.25 0.25 0.25";
sizes[1] = "0.25 0.25 0.25";
times[0] = 0.0;
times[1] = 1.0;
};
datablock ExplosionData(PlasmaBarrelSubExplosion2)
{
explosionShape = "disc_explosion.dts";
faceViewer = true;
delayMS = 100;
offset = 3.5;
playSpeed = 1.0;
sizes[0] = "0.5 0.5 0.5";
sizes[1] = "0.5 0.5 0.5";
times[0] = 0.0;
times[1] = 1.0;
};
datablock ExplosionData(PlasmaBarrelSubExplosion3)
{
explosionShape = "disc_explosion.dts";
faceViewer = true;
delayMS = 0;
offset = 0.0;
playSpeed = 0.7;
sizes[0] = "0.5 0.5 0.5";
sizes[1] = "1.0 1.0 1.0";
times[0] = 0.0;
times[1] = 1.0;
};
datablock ExplosionData(PlasmaBarrelBoltExplosion)
{
soundProfile = PlasmaBarrelExpSound;
particleEmitter = PlasmaBarrelExplosionEmitter;
particleDensity = 250;
particleRadius = 1.25;
faceViewer = true;
emitter[0] = PlasmaBarrelCrescentEmitter;
subExplosion[0] = PlasmaBarrelSubExplosion1;
subExplosion[1] = PlasmaBarrelSubExplosion2;
subExplosion[2] = PlasmaBarrelSubExplosion3;
shakeCamera = true;
camShakeFreq = "10.0 9.0 9.0";
camShakeAmp = "10.0 10.0 10.0";
camShakeDuration = 0.5;
camShakeRadius = 15.0;
};
//--------------------------------------------------------------------------
// Projectile
//--------------------------------------
datablock LinearFlareProjectileData(PlasmaBarrelBolt)
{
doDynamicClientHits = true;
directDamage = 0;
directDamageType = $DamageType::PlasmaTurret;
hasDamageRadius = true;
indirectDamage = 1.2; // z0dd - ZOD, 4/25/02. Was 0.5
damageRadius = 10.0;
kickBackStrength = 500;
radiusDamageType = $DamageType::PlasmaTurret;
explosion = PlasmaBarrelBoltExplosion;
splash = PlasmaSplash;
dryVelocity = 75.0; // z0dd - ZOD, 4/25/02. Was 50. Velocity of projectile out of water
wetVelocity = -1;
velInheritFactor = 1.0;
fizzleTimeMS = 4000;
lifetimeMS = 4000; // z0dd - ZOD, 4/25/02. Was 6000
explodeOnDeath = false;
reflectOnWaterImpactAngle = 0.0;
explodeOnWaterImpact = true;
deflectionOnWaterImpact = 0.0;
fizzleUnderwaterMS = -1;
activateDelayMS = 100;
scale = "1.5 1.5 1.5";
numFlares = 30;
flareColor = "0.1 0.3 1.0";
flareModTexture = "flaremod";
flareBaseTexture = "flarebase";
};
//--------------------------------------------------------------------------
// Plasma Turret Image
//--------------------------------------------------------------------------
datablock TurretImageData(PlasmaBarrelLarge)
{
shapeFile = "turret_fusion_large.dts";
item = PlasmaBarrelPack; // z0dd - ZOD, 4/25/02. Was wrong: PlasmaBarrelLargePack
projectile = PlasmaBarrelBolt;
projectileType = LinearFlareProjectile;
usesEnergy = true;
fireEnergy = 10;
minEnergy = 10;
emap = true;
// Turret parameters
activationMS = 700; // z0dd - ZOD, 3/27/02. Was 1000. Amount of time it takes turret to unfold
deactivateDelayMS = 1500;
thinkTimeMS = 140; // z0dd - ZOD, 3/27/02. Was 200. Amount of time before turret starts to unfold (activate)
degPerSecTheta = 300;
degPerSecPhi = 500;
attackRadius = 150; // z0dd - ZOD, 3/27/02. Was 120
// State transitions
stateName[0] = "Activate";
stateTransitionOnNotLoaded[0] = "Dead";
stateTransitionOnLoaded[0] = "ActivateReady";
stateName[1] = "ActivateReady";
stateSequence[1] = "Activate";
stateSound[1] = PBLSwitchSound;
stateTimeoutValue[1] = 1;
stateTransitionOnTimeout[1] = "Ready";
stateTransitionOnNotLoaded[1] = "Deactivate";
stateTransitionOnNoAmmo[1] = "NoAmmo";
stateName[2] = "Ready";
stateTransitionOnNotLoaded[2] = "Deactivate";
stateTransitionOnTriggerDown[2] = "Fire";
stateTransitionOnNoAmmo[2] = "NoAmmo";
stateName[3] = "Fire";
stateTransitionOnTimeout[3] = "Reload";
stateTimeoutValue[3] = 0.3;
stateFire[3] = true;
stateRecoil[3] = LightRecoil;
stateAllowImageChange[3] = false;
stateSequence[3] = "Fire";
stateSound[3] = PBLFireSound;
stateScript[3] = "onFire";
stateName[4] = "Reload";
stateTimeoutValue[4] = 0.80;
stateAllowImageChange[4] = false;
stateSequence[4] = "Reload";
stateTransitionOnTimeout[4] = "Ready";
stateTransitionOnNotLoaded[4] = "Deactivate";
stateTransitionOnNoAmmo[4] = "NoAmmo";
stateName[5] = "Deactivate";
stateSequence[5] = "Activate";
stateDirection[5] = false;
stateTimeoutValue[5] = 1;
stateTransitionOnLoaded[5] = "ActivateReady";
stateTransitionOnTimeout[5] = "Dead";
stateName[6] = "Dead";
stateTransitionOnLoaded[6] = "ActivateReady";
stateName[7] = "NoAmmo";
stateTransitionOnAmmo[7] = "Reload";
stateSequence[7] = "NoAmmo";
};