mirror of
https://github.com/Ragora/T2-ACCM.git
synced 2026-01-20 03:14:44 +00:00
655 lines
19 KiB
C#
655 lines
19 KiB
C#
|
|
//==============================================================================
|
||
|
|
// Sentinel Data - Made by Blnukem
|
||
|
|
//==============================================================================
|
||
|
|
// Sentinel Sounds
|
||
|
|
//------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
datablock EffectProfile(SentinelTurretSwitchEffect)
|
||
|
|
{
|
||
|
|
effectname = "powered/turret_light_activate";
|
||
|
|
minDistance = 2.5;
|
||
|
|
maxDistance = 5.0;
|
||
|
|
};
|
||
|
|
|
||
|
|
datablock EffectProfile(SentinelTurretFireEffect)
|
||
|
|
{
|
||
|
|
filename = "fx/vehicles/tank_chaingun.wav";
|
||
|
|
minDistance = 2.5;
|
||
|
|
maxDistance = 8.0;
|
||
|
|
};
|
||
|
|
|
||
|
|
datablock EffectProfile(SentinelDeactivateEffect)
|
||
|
|
{
|
||
|
|
effectname = "powered/turret_heavy_reload";
|
||
|
|
minDistance = 2.5;
|
||
|
|
maxDistance = 5.0;
|
||
|
|
};
|
||
|
|
|
||
|
|
datablock EffectProfile(SentinelActivateEffect)
|
||
|
|
{
|
||
|
|
effectname = "powered/turret_light_reload";
|
||
|
|
minDistance = 2.5;
|
||
|
|
maxDistance = 5.0;
|
||
|
|
};
|
||
|
|
|
||
|
|
datablock EffectProfile(SentinelIdleEffect)
|
||
|
|
{
|
||
|
|
effectname = "powered/turret_light_idle";
|
||
|
|
minDistance = 1;
|
||
|
|
maxDistance = 2;
|
||
|
|
};
|
||
|
|
|
||
|
|
datablock AudioProfile(SentinelTurretSwitchSound)
|
||
|
|
{
|
||
|
|
filename = "fx/powered/turret_light_activate.wav";
|
||
|
|
description = AudioClose3d;
|
||
|
|
preload = true;
|
||
|
|
effect = SentinelTurretSwitchEffect;
|
||
|
|
};
|
||
|
|
|
||
|
|
datablock AudioProfile(SentinelTurretFireSound)
|
||
|
|
{
|
||
|
|
filename = "fx/vehicles/tank_chaingun.wav";
|
||
|
|
description = AudioDefaultLooping3d;
|
||
|
|
preload = true;
|
||
|
|
effect = SentinelTurretFireEffect;
|
||
|
|
};
|
||
|
|
|
||
|
|
datablock AudioProfile(SentinelIdleSound)
|
||
|
|
{
|
||
|
|
filename = "fx/powered/turret_light_idle.wav";
|
||
|
|
description = AudioDefaultLooping3d;
|
||
|
|
preload = true;
|
||
|
|
effect = SentinelIdleEffect;
|
||
|
|
};
|
||
|
|
|
||
|
|
datablock AudioProfile(SentinelActivateSound)
|
||
|
|
{
|
||
|
|
filename = "fx/powered/turret_light_reload.wav";
|
||
|
|
description = AudioClose3d;
|
||
|
|
preload = true;
|
||
|
|
effect = SentinelActivateEffect;
|
||
|
|
};
|
||
|
|
|
||
|
|
datablock AudioProfile(SentinelDeactivateSound)
|
||
|
|
{
|
||
|
|
filename = "fx/powered/turret_heavy_reload.wav";
|
||
|
|
description = AudioClose3d;
|
||
|
|
preload = true;
|
||
|
|
effect = SentinelDeactivateEffect;
|
||
|
|
};
|
||
|
|
|
||
|
|
//==============================================================================
|
||
|
|
// Vehicle Data
|
||
|
|
//==============================================================================
|
||
|
|
// Standard Sentinel
|
||
|
|
//------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
datablock FlyingVehicleData(SentinelVehicle) : SentinelDamageProfile
|
||
|
|
{
|
||
|
|
spawnOffset = "0.0 0.0 0.1";
|
||
|
|
|
||
|
|
catagory = "Sentinels";
|
||
|
|
shapeFile = "stackable2s.dts";
|
||
|
|
multipassenger = false;
|
||
|
|
computeCRC = true;
|
||
|
|
|
||
|
|
debrisShapeName = "debris_generic.dts";
|
||
|
|
debris = TurretDebris;
|
||
|
|
renderWhenDestroyed = false;
|
||
|
|
|
||
|
|
drag = 0.15;
|
||
|
|
density = 1.0;
|
||
|
|
|
||
|
|
numMountPoints = 0;
|
||
|
|
|
||
|
|
cameraMaxDist = 15;
|
||
|
|
cameraOffset = 2.5;
|
||
|
|
cameraLag = 0.9;
|
||
|
|
explosion = TurretExplosion;
|
||
|
|
explosionDamage = 0.5;
|
||
|
|
explosionRadius = 5.0;
|
||
|
|
|
||
|
|
maxDamage = 0.5;
|
||
|
|
destroyedLevel = 0.5;
|
||
|
|
|
||
|
|
isShielded = true;
|
||
|
|
energyPerDamagePoint = 160;
|
||
|
|
maxEnergy = 280;
|
||
|
|
rechargeRate = 0.8;
|
||
|
|
|
||
|
|
minDrag = 30;
|
||
|
|
rotationalDrag = 2000;
|
||
|
|
|
||
|
|
maxAutoSpeed = 15;
|
||
|
|
autoAngularForce = 400;
|
||
|
|
autoLinearForce = 300;
|
||
|
|
autoInputDamping = 0.95;
|
||
|
|
|
||
|
|
maxSteeringAngle = 5;
|
||
|
|
horizontalSurfaceForce = 6;
|
||
|
|
verticalSurfaceForce = 4;
|
||
|
|
maneuveringForce = 5000;
|
||
|
|
steeringForce = 3000;
|
||
|
|
steeringRollForce = 0;
|
||
|
|
rollForce = 10;
|
||
|
|
hoverHeight = 10;
|
||
|
|
createHoverHeight = 2;
|
||
|
|
maxForwardSpeed = 15;
|
||
|
|
|
||
|
|
jetForce = 4500;
|
||
|
|
minJetEnergy = 0;
|
||
|
|
jetEnergyDrain = 0; // Auto stabilize speed
|
||
|
|
vertThrustMultiple = 0;
|
||
|
|
|
||
|
|
mass = 100;
|
||
|
|
bodyFriction = 0;
|
||
|
|
bodyRestitution = 0.5;
|
||
|
|
minRollSpeed = 0;
|
||
|
|
softImpactSpeed = 14;
|
||
|
|
hardImpactSpeed = 25;
|
||
|
|
|
||
|
|
minImpactSpeed = 10;
|
||
|
|
speedDamageScale = 0.06;
|
||
|
|
|
||
|
|
collDamageThresholdVel = 23.0;
|
||
|
|
collDamageMultiplier = 0.02;
|
||
|
|
|
||
|
|
jetSound = "";
|
||
|
|
engineSound = SentinelIdleSound;
|
||
|
|
softImpactSound = SoftImpactSound;
|
||
|
|
hardImpactSound = HardImpactSound;
|
||
|
|
|
||
|
|
softSplashSoundVelocity = 10.0;
|
||
|
|
mediumSplashSoundVelocity = 15.0;
|
||
|
|
hardSplashSoundVelocity = 20.0;
|
||
|
|
exitSplashSoundVelocity = 10.0;
|
||
|
|
|
||
|
|
exitingWater = VehicleExitWaterMediumSound;
|
||
|
|
impactWaterEasy = VehicleImpactWaterSoftSound;
|
||
|
|
impactWaterMedium = VehicleImpactWaterMediumSound;
|
||
|
|
impactWaterHard = VehicleImpactWaterMediumSound;
|
||
|
|
waterWakeSound = VehicleWakeMediumSplashSound;
|
||
|
|
|
||
|
|
dustEmitter = LiftoffDustEmitter;
|
||
|
|
triggerDustHeight = 1.0;
|
||
|
|
dustHeight = 0.1;
|
||
|
|
canControl = false;
|
||
|
|
|
||
|
|
minMountDist = 4;
|
||
|
|
|
||
|
|
splashEmitter[0] = VehicleFoamDropletsEmitter;
|
||
|
|
splashEmitter[1] = VehicleFoamEmitter;
|
||
|
|
|
||
|
|
shieldImpact = VehicleShieldImpact;
|
||
|
|
|
||
|
|
cmdCategory = "Tactical";
|
||
|
|
cmdIcon = CMDFlyingScoutIcon;
|
||
|
|
cmdMiniIconName = "commander/MiniIcons/com_scout_grey";
|
||
|
|
targetNameTag = 'Standard';
|
||
|
|
targetTypeTag = 'Sentinel';
|
||
|
|
sensorData = combatSensor;
|
||
|
|
sensorRadius = combatSensor.detectRadius;
|
||
|
|
sensorColor = "9 9 255";
|
||
|
|
|
||
|
|
checkRadius = 5.5;
|
||
|
|
observeParameters = "1 5 5";
|
||
|
|
canObserve = true;
|
||
|
|
|
||
|
|
runningLight[0] = ShrikeLight1;
|
||
|
|
|
||
|
|
shieldEffectScale = "2.0 2.0 2.0";
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
//==============================================================================
|
||
|
|
// Sentinel Monitor Vehicle Data
|
||
|
|
//==============================================================================
|
||
|
|
|
||
|
|
datablock FlyingVehicleData(SentinelMonitor) : SentinelDamageProfile
|
||
|
|
{
|
||
|
|
spawnOffset = "0.0 0.0 0.0";
|
||
|
|
|
||
|
|
catagory = "Sentinels";
|
||
|
|
shapeFile = "beacon.dts";
|
||
|
|
multipassenger = false;
|
||
|
|
computeCRC = true;
|
||
|
|
|
||
|
|
debrisShapeName = "debris_generic.dts";
|
||
|
|
debris = TurretDebris;
|
||
|
|
renderWhenDestroyed = false;
|
||
|
|
|
||
|
|
drag = 4.15;
|
||
|
|
density = 1.0;
|
||
|
|
|
||
|
|
numMountPoints = 0;
|
||
|
|
|
||
|
|
cameraMaxDist = 15;
|
||
|
|
cameraOffset = 2.5;
|
||
|
|
cameraLag = 0.9;
|
||
|
|
explosion = TurretExplosion;
|
||
|
|
explosionDamage = 0.5;
|
||
|
|
explosionRadius = 5.0;
|
||
|
|
|
||
|
|
maxDamage = 50.00;
|
||
|
|
destroyedLevel = 50.00;
|
||
|
|
|
||
|
|
isShielded = true;
|
||
|
|
rechargeRate = 2.5;
|
||
|
|
energyPerDamagePoint = 1;
|
||
|
|
maxEnergy = 500;
|
||
|
|
rechargeRate = 50.0;
|
||
|
|
|
||
|
|
minDrag = 30;
|
||
|
|
rotationalDrag = 2000;
|
||
|
|
|
||
|
|
maxAutoSpeed = 15;
|
||
|
|
autoAngularForce = 400;
|
||
|
|
autoLinearForce = 300;
|
||
|
|
autoInputDamping = 0.95;
|
||
|
|
|
||
|
|
maxSteeringAngle = 5;
|
||
|
|
horizontalSurfaceForce = 6;
|
||
|
|
verticalSurfaceForce = 4;
|
||
|
|
maneuveringForce = 5000;
|
||
|
|
steeringForce = 1000;
|
||
|
|
steeringRollForce = 0;
|
||
|
|
rollForce = 100;
|
||
|
|
hoverHeight = 15;
|
||
|
|
createHoverHeight = 2;
|
||
|
|
maxForwardSpeed = 15;
|
||
|
|
|
||
|
|
jetForce = 1500;
|
||
|
|
minJetEnergy = 0;
|
||
|
|
jetEnergyDrain = 0; // Auto stabilize speed
|
||
|
|
vertThrustMultiple = 0;
|
||
|
|
|
||
|
|
mass = 100;
|
||
|
|
bodyFriction = 0;
|
||
|
|
bodyRestitution = 0.5;
|
||
|
|
minRollSpeed = 0;
|
||
|
|
softImpactSpeed = 14;
|
||
|
|
hardImpactSpeed = 25;
|
||
|
|
|
||
|
|
minImpactSpeed = 25;
|
||
|
|
speedDamageScale = 0.06;
|
||
|
|
|
||
|
|
collDamageThresholdVel = 23.0;
|
||
|
|
collDamageMultiplier = 0.02;
|
||
|
|
|
||
|
|
minTrailSpeed = 0.1;
|
||
|
|
trailEmitter = ContrailEmitter;
|
||
|
|
|
||
|
|
jetSound = "";
|
||
|
|
engineSound = SentinelIdleSound;
|
||
|
|
softImpactSound = SoftImpactSound;
|
||
|
|
hardImpactSound = HardImpactSound;
|
||
|
|
|
||
|
|
softSplashSoundVelocity = 10.0;
|
||
|
|
mediumSplashSoundVelocity = 15.0;
|
||
|
|
hardSplashSoundVelocity = 20.0;
|
||
|
|
exitSplashSoundVelocity = 10.0;
|
||
|
|
|
||
|
|
exitingWater = VehicleExitWaterMediumSound;
|
||
|
|
impactWaterEasy = VehicleImpactWaterSoftSound;
|
||
|
|
impactWaterMedium = VehicleImpactWaterMediumSound;
|
||
|
|
impactWaterHard = VehicleImpactWaterMediumSound;
|
||
|
|
waterWakeSound = VehicleWakeMediumSplashSound;
|
||
|
|
|
||
|
|
dustEmitter = LiftoffDustEmitter;
|
||
|
|
triggerDustHeight = 2.0;
|
||
|
|
dustHeight = 0.0;
|
||
|
|
canControl = false;
|
||
|
|
|
||
|
|
damageEmitter[0] = LightDamageSmoke;
|
||
|
|
damageEmitter[1] = LightDamageSmoke;
|
||
|
|
damageEmitter[2] = DamageBubbles;
|
||
|
|
damageEmitterOffset[0] = "0.0 0.0 0.0 ";
|
||
|
|
damageLevelTolerance[0] = 0.3;
|
||
|
|
damageLevelTolerance[1] = 0.7;
|
||
|
|
numDmgEmitterAreas = 1;
|
||
|
|
|
||
|
|
minMountDist = 4;
|
||
|
|
|
||
|
|
splashEmitter[0] = VehicleFoamDropletsEmitter;
|
||
|
|
splashEmitter[1] = VehicleFoamEmitter;
|
||
|
|
|
||
|
|
shieldImpact = VehicleShieldImpact;
|
||
|
|
|
||
|
|
cmdCategory = "Tactical";
|
||
|
|
cmdIcon = CMDCameraIcon;
|
||
|
|
cmdMiniIconName = "commander/MiniIcons/com_camera_grey";
|
||
|
|
targetNameTag = '';
|
||
|
|
targetTypeTag = 'Monitor';
|
||
|
|
sensorData = combatSensor;
|
||
|
|
sensorRadius = combatSensor.detectRadius;
|
||
|
|
sensorColor = "9 9 255";
|
||
|
|
|
||
|
|
checkRadius = 10.5;
|
||
|
|
observeParameters = "1 5 5";
|
||
|
|
canObserve = true;
|
||
|
|
|
||
|
|
runningLight[0] = ShrikeLight1;
|
||
|
|
|
||
|
|
shieldEffectScale = "2.0 2.0 2.0";
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
//==============================================================================
|
||
|
|
// Image Data
|
||
|
|
//==============================================================================
|
||
|
|
// Standard Sentinel Image Data:
|
||
|
|
//------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
datablock ShapeBaseImageData(BodyImage) : SentinelVehicle
|
||
|
|
{
|
||
|
|
offset = "0.0 -0.2 0.3";
|
||
|
|
rotation = "0 0 1 0";
|
||
|
|
shapeFile = "turret_mortar_large.dts";
|
||
|
|
};
|
||
|
|
|
||
|
|
datablock ShapeBaseImageData(RightWing) : SentinelVehicle
|
||
|
|
{
|
||
|
|
offset = "0.2 0.0 0.4";
|
||
|
|
rotation = "0 0 -1 90";
|
||
|
|
shapeFile = "pack_deploy_sensor_pulse.dts";
|
||
|
|
};
|
||
|
|
|
||
|
|
datablock ShapeBaseImageData(LeftWing) : SentinelVehicle
|
||
|
|
{
|
||
|
|
offset = "-0.2 0.0 0.4";
|
||
|
|
rotation = "0 0 1 90";
|
||
|
|
shapeFile = "pack_deploy_sensor_pulse.dts";
|
||
|
|
};
|
||
|
|
|
||
|
|
datablock ShapeBaseImageData(Eye) : SentinelVehicle
|
||
|
|
{
|
||
|
|
offset = "0.0 1.1 0.22";
|
||
|
|
rotation = "1 0 0 90";
|
||
|
|
shapeFile = "beacon.dts";
|
||
|
|
};
|
||
|
|
|
||
|
|
//==============================================================================
|
||
|
|
// Sentinel Monitor Image Data:
|
||
|
|
//==============================================================================
|
||
|
|
|
||
|
|
datablock ShapeBaseImageData(Front) : SentinelMonitor
|
||
|
|
{
|
||
|
|
offset = "0.0 -0.02 0.0";
|
||
|
|
rotation = "1.0 0.0 0.0 90.0";
|
||
|
|
shapeFile = "camera.dts";
|
||
|
|
};
|
||
|
|
|
||
|
|
datablock ShapeBaseImageData(Rear) : SentinelMonitor
|
||
|
|
{
|
||
|
|
offset = "0.0 0.02 0.0";
|
||
|
|
rotation = "-1.0 0.0 0.0 90.0";
|
||
|
|
shapeFile = "camera.dts";
|
||
|
|
};
|
||
|
|
|
||
|
|
//==============================================================================
|
||
|
|
// Decals and Projectiles
|
||
|
|
//==============================================================================
|
||
|
|
// Default Sentinel bullet Decal image:
|
||
|
|
//------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
datablock DecalData(SentinelDecal1)
|
||
|
|
{
|
||
|
|
sizeX = 0.15;
|
||
|
|
sizeY = 0.15;
|
||
|
|
textureName = "special/bullethole3";
|
||
|
|
};
|
||
|
|
|
||
|
|
//==============================================================================
|
||
|
|
// Standard Sentinel Bullet:
|
||
|
|
//==============================================================================
|
||
|
|
|
||
|
|
datablock TracerProjectileData(SentinelBullet)
|
||
|
|
{
|
||
|
|
doDynamicClientHits = true;
|
||
|
|
|
||
|
|
directDamage = 0.15;
|
||
|
|
directDamageType = $DamageType::Sentinel;
|
||
|
|
explosion = "ChaingunExplosion";
|
||
|
|
splash = ChaingunSplash;
|
||
|
|
HeadMultiplier = 1.5;
|
||
|
|
LegsMultiplier = 0.5;
|
||
|
|
|
||
|
|
kickBackStrength = 50.0;
|
||
|
|
sound = ChaingunProjectile;
|
||
|
|
|
||
|
|
dryVelocity = 800.0;
|
||
|
|
wetVelocity = 100.0;
|
||
|
|
velInheritFactor = 1.0;
|
||
|
|
fizzleTimeMS = 3000;
|
||
|
|
lifetimeMS = 3000;
|
||
|
|
explodeOnDeath = false;
|
||
|
|
reflectOnWaterImpactAngle = 0.0;
|
||
|
|
explodeOnWaterImpact = false;
|
||
|
|
deflectionOnWaterImpact = 0.0;
|
||
|
|
fizzleUnderwaterMS = 3000;
|
||
|
|
|
||
|
|
tracerLength = 10.0;
|
||
|
|
tracerAlpha = false;
|
||
|
|
tracerMinPixels = 6;
|
||
|
|
tracerColor = 10.0/255.0 @ " " @ 30.0/255.0 @ " " @ 240.0/255.0 @ " 0.75";
|
||
|
|
tracerTex[0] = "special/tracer00";
|
||
|
|
tracerTex[1] = "special/tracercross";
|
||
|
|
tracerWidth = 0.15;
|
||
|
|
crossSize = 0.20;
|
||
|
|
crossViewAng = 0.990;
|
||
|
|
renderCross = true;
|
||
|
|
|
||
|
|
decalData[0] = SentinelDecal1;
|
||
|
|
|
||
|
|
hasLight = true;
|
||
|
|
lightRadius = 8.0;
|
||
|
|
lightColor = "0.5 0.5 0.175";
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
//==============================================================================
|
||
|
|
// Turret Data
|
||
|
|
//==============================================================================
|
||
|
|
// Standard Sentinel Turret:
|
||
|
|
//------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
datablock TurretData(SentinelTurret) : TurretDamageProfile
|
||
|
|
{
|
||
|
|
className = VehicleTurret;
|
||
|
|
catagory = "Turrets";
|
||
|
|
shapeFile = "turret_belly_base.dts";
|
||
|
|
preload = true;
|
||
|
|
|
||
|
|
mass = 1.0;
|
||
|
|
maxDamage = 1.0;
|
||
|
|
destroyedLevel = 1.0;
|
||
|
|
repairRate = 0;
|
||
|
|
maxDamage = SentinelVehicle.maxDamage;
|
||
|
|
destroyedLevel = SentinelVehicle.destroyedLevel;
|
||
|
|
rechargeRate = 0.15;
|
||
|
|
|
||
|
|
thetaMin = 90;
|
||
|
|
thetaMax = 180;
|
||
|
|
thetaNull = 90;
|
||
|
|
|
||
|
|
rechargeRate = 0.15;
|
||
|
|
|
||
|
|
isShielded = false;
|
||
|
|
energyPerDamagePoint = 110;
|
||
|
|
maxEnergy = 60;
|
||
|
|
renderWhenDestroyed = true;
|
||
|
|
barrel = SentinelTurretBarrel;
|
||
|
|
heatSignature = 0;
|
||
|
|
|
||
|
|
canControl = false;
|
||
|
|
cmdCategory = "DTactical";
|
||
|
|
cmdIcon = CMDTurretIcon;
|
||
|
|
cmdMiniIconName = "commander/MiniIcons/com_turret_grey";
|
||
|
|
targetNameTag = 'Sentinel';
|
||
|
|
targetTypeTag = 'Turret';
|
||
|
|
|
||
|
|
firstPersonOnly = true;
|
||
|
|
|
||
|
|
debrisShapeName = "debris_generic_small.dts";
|
||
|
|
debris = TurretDebrisSmall;
|
||
|
|
};
|
||
|
|
|
||
|
|
datablock TurretImageData(SentinelTurretBarrel)
|
||
|
|
{
|
||
|
|
shapeFile = "turret_muzzlepoint.dts";
|
||
|
|
mountPoint = 0;
|
||
|
|
|
||
|
|
projectile = SentinelBullet;
|
||
|
|
projectileType = TracerProjectile;
|
||
|
|
|
||
|
|
usesEnergy = true;
|
||
|
|
fireEnergy = 0.0;
|
||
|
|
minEnergy = 10.0;
|
||
|
|
emap = true;
|
||
|
|
|
||
|
|
activationMS = 700;
|
||
|
|
deactivateDelayMS = 1500;
|
||
|
|
thinkTimeMS = 120;
|
||
|
|
degPerSecTheta = 2000;
|
||
|
|
degPerSecPhi = 2000;
|
||
|
|
attackRadius = 100;
|
||
|
|
|
||
|
|
casing = ShellDebris;
|
||
|
|
shellExitDir = "0.0 -0.5 -0.5";
|
||
|
|
shellExitOffset = "0.0 0.0 0.0";
|
||
|
|
shellExitVariance = 20.0;
|
||
|
|
shellVelocity = 5.0;
|
||
|
|
|
||
|
|
projectileSpread = 2.0 / 1000.0;
|
||
|
|
|
||
|
|
stateName[0] = "Activate";
|
||
|
|
stateTransitionOnNotLoaded[0] = "Dead";
|
||
|
|
stateTransitionOnLoaded[0] = "ActivateReady";
|
||
|
|
|
||
|
|
stateName[1] = "ActivateReady";
|
||
|
|
stateSequence[1] = "Activate";
|
||
|
|
stateSound[1] = SentinelActivateSound;
|
||
|
|
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";
|
||
|
|
stateSequence[3] = "Fire";
|
||
|
|
stateSequenceRandomFlash[3] = true;
|
||
|
|
stateSound[3] = ChaingunFireSound;
|
||
|
|
stateAllowImageChange[3] = false;
|
||
|
|
stateEmitter[3] = "GunFireEffectEmitter";
|
||
|
|
stateEmitterNode[3] = "muzzlepoint1";
|
||
|
|
stateEmitterTime[3] = 0.1;
|
||
|
|
stateScript[3] = "onFire";
|
||
|
|
stateFire[3] = true;
|
||
|
|
stateEjectShell[3] = true;
|
||
|
|
stateTimeoutValue[3] = 0.1;
|
||
|
|
stateTransitionOnTimeout[3] = "Fire";
|
||
|
|
stateTransitionOnTriggerUp[3] = "Reload";
|
||
|
|
stateTransitionOnNoAmmo[3] = "noAmmo";
|
||
|
|
|
||
|
|
stateName[4] = "Reload";
|
||
|
|
stateTimeoutValue[4] = 0.01;
|
||
|
|
stateAllowImageChange[4] = false;
|
||
|
|
stateWaitForTimeout[4] = true;
|
||
|
|
stateSequence[4] = "Reload";
|
||
|
|
stateTransitionOnTimeout[4] = "Ready";
|
||
|
|
stateTransitionOnNotLoaded[4] = "Deactivate";
|
||
|
|
stateTransitionOnNoAmmo[4] = "NoAmmo";
|
||
|
|
|
||
|
|
stateName[5] = "Deactivate";
|
||
|
|
stateSequence[5] = "Activate";
|
||
|
|
stateSound[5] = SentinelDeactivateSound;
|
||
|
|
stateEmitter[5] = "GunFireEffectEmitter";
|
||
|
|
stateEmitterNode[5] = "muzzlepoint1";
|
||
|
|
stateEmitterTime[5] = 0.2;
|
||
|
|
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";
|
||
|
|
};
|
||
|
|
|
||
|
|
//==============================================================================
|
||
|
|
// Vehicle Functions
|
||
|
|
//==============================================================================
|
||
|
|
// Sentinel Functions:
|
||
|
|
//------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
function SentinelVehicle::deleteAllMounted(%data, %obj) {
|
||
|
|
$HostGamePlayerCount = ClientGroup.GetCount();
|
||
|
|
%turret = %obj.getMountNodeObject(10);
|
||
|
|
if (!%turret)
|
||
|
|
return;
|
||
|
|
|
||
|
|
%turret.altTrigger = 0;
|
||
|
|
%turret.fireTrigger = 0;
|
||
|
|
|
||
|
|
if (%client = %turret.getControllingClient()) {
|
||
|
|
%client.player.setControlObject(%client.player);
|
||
|
|
%client.player.mountImage(%client.player.lastWeapon, $WeaponSlot);
|
||
|
|
%client.player.mountVehicle = false;
|
||
|
|
|
||
|
|
%client.player.bomber = false;
|
||
|
|
%client.player.isBomber = false;
|
||
|
|
}
|
||
|
|
%turret.schedule(0, delete);
|
||
|
|
}
|
||
|
|
|
||
|
|
function SentinelVehicle::onAdd(%this, %obj)
|
||
|
|
{
|
||
|
|
Parent::onAdd(%this, %obj);
|
||
|
|
if (%obj.clientControl)
|
||
|
|
serverCmdResetControlObject(%obj.clientControl);
|
||
|
|
|
||
|
|
%obj.mountImage(BodyImage, 1);
|
||
|
|
%obj.mountImage(RightWing, 2);
|
||
|
|
%obj.mountImage(LeftWing, 3);
|
||
|
|
%obj.mountImage(Eye, 4);
|
||
|
|
|
||
|
|
%turret = TurretData::create(SentinelTurret);
|
||
|
|
%turret.scale = "0.45 0.45 0.45";
|
||
|
|
MissionCleanup.add(%turret);
|
||
|
|
%turret.team = 1;
|
||
|
|
%turret.selectedWeapon = 1;
|
||
|
|
%turret.setSelfPowered();
|
||
|
|
%obj.mountObject(%turret, 10);
|
||
|
|
%turret.mountImage(SentinelTurretBarrel, 0);
|
||
|
|
%obj.turretObject = %turret;
|
||
|
|
%turret.setCapacitorRechargeRate( %turret.getDataBlock().capacitorRechargeRate );
|
||
|
|
%turret.vehicleMounted = %obj;
|
||
|
|
%turret.setAutoFire(true);
|
||
|
|
%turret.mountImage(AIAimingTurretBarrel, 1);
|
||
|
|
|
||
|
|
setTargetSensorGroup(%turret.getTarget(), %turret.team);
|
||
|
|
setTargetNeverVisMask(%turret.getTarget(), 0xffffffff);
|
||
|
|
}
|
||
|
|
|
||
|
|
//==============================================================================
|
||
|
|
// Monitor Functions:
|
||
|
|
//==============================================================================
|
||
|
|
|
||
|
|
function SentinelMonitor::onAdd(%this, %obj)
|
||
|
|
{
|
||
|
|
Parent::onAdd(%this, %obj);
|
||
|
|
if (%obj.clientControl)
|
||
|
|
serverCmdResetControlObject(%obj.clientControl);
|
||
|
|
|
||
|
|
%obj.mountImage(Front, 1);
|
||
|
|
%obj.mountImage(Rear, 2);
|
||
|
|
}
|