ACE3/addons/hellfire/CfgAmmo.hpp
2024-08-23 09:47:28 -05:00

146 lines
5.3 KiB
C++

class CfgAmmo {
class M_Scalpel_AT;
class ACE_Hellfire_AGM114K: M_Scalpel_AT {
displayName = "AGM-114K";
displayNameShort = "AGM-114K";
description = "AGM-114K";
descriptionShort = "AGM-114K";
model = "\A3\Weapons_F\Ammo\Missile_AT_03_fly_F";
proxyShape = "\A3\Weapons_F\Ammo\Missile_AT_03_F";
effectsMissile = "missile2";
irLock = 0;
laserLock = 0;
manualControl = 0;
maxSpeed = 450;
thrustTime = 2.5; // motor burn 2-3 sec
thrust = 250;
timeToLive = 40;
EGVAR(rearm,caliber) = 178;
class ace_missileguidance {
enabled = 1;
pitchRate = 30; // degrees per second
yawRate = 30;
canVanillaLock = 0; // Can this default vanilla lock? Only applicable to non-cadet mode
// Guidance type for munitions
defaultSeekerType = "SALH";
seekerTypes[] = { "SALH", "LIDAR", "SARH", "Optic", "Thermal", "GPS", "SACLOS", "MCLOS" };
defaultSeekerLockMode = "LOAL";
seekerLockModes[] = { "LOAL", "LOBL" };
defaultNavigationType = "Direct";
navigationTypes[] = { "Direct", "ZeroEffortMiss" };
seekLastTargetPos = 1; // seek last target position [if seeker loses LOS of target, continue to last known pos]
seekerAngle = 70; // Angle in front of the missile which can be searched
seekerAccuracy = 1; // seeker accuracy multiplier
seekerMinRange = 1;
seekerMaxRange = 8000; // Range from the missile which the seeker can visually search
// Attack profile type selection
defaultAttackProfile = "hellfire";
attackProfiles[] = {"hellfire", "hellfire_hi", "hellfire_lo"};
class navigationStates {
class initial {
transitionCondition = QFUNC(midCourseTransition);
navigationType = "Direct";
};
class terminal {
transitionCondition = "";
navigationType = "ZeroEffortMiss";
};
// transitions from initial -> termimal
states[] = {"initial", "terminal"};
};
};
};
class ACE_Hellfire_AGM114N: ACE_Hellfire_AGM114K {
displayName = "AGM-114N";
displayNameShort = "AGM-114N";
description = "AGM-114N";
descriptionShort = "AGM-114N";
hit = 200;
indirectHit = 200;
indirectHitRange = 12;
submunitionAmmo = "";
explosionEffects = "BombExplosion";
EGVAR(vehicle_damage,incendiary) = 0.3;
class ace_missileguidance: ace_missileguidance {
enabled = 1; // Missile Guidance must be explicitly enabled
};
};
class ACE_Hellfire_AGM114L: ACE_Hellfire_AGM114K {
displayName = "AGM-114L";
displayNameShort = "AGM-114L";
description = "AGM-114L";
descriptionShort = "AGM-114L";
class ace_missileguidance: ace_missileguidance {
canVanillaLock = 1;
enabled = 1; // Missile Guidance must be explicitly enabled
seekLastTargetPos = 0;
defaultSeekerType = "MillimeterWaveRadar";
seekerTypes[] = { "MillimeterWaveRadar" };
defaultSeekerLockMode = "LOBL";
seekerLockModes[] = { "LOBL" };
activeRadarEngageDistance = 1000;
seekerMaxRange = 2000; // distance that the hellfire internal radar can scan
};
// Vanilla lock system vars
weaponLockSystem = "8";
airLock = 1;
lockType = 0;
maneuvrability = 0; // no maneuvrability so that default guidance doesnt work
missileLockMaxDistance = 8000;
missileLockMinDistance = 250;
missileLockMaxSpeed = 600;
missileKeepLockedCone = 70;
flightProfiles[] = {};
class Components {
class SensorsManagerComponent {
class Components {
class MillimeterWaveRadar {
componentType = "ActiveRadarSensorComponent";
class AirTarget {
minRange = 0;
maxRange = 8000;
objectDistanceLimitCoef = -1;
viewDistanceLimitCoef = -1;
};
class GroundTarget {
minRange = 0;
maxRange = 8000;
objectDistanceLimitCoef = -1;
viewDistanceLimitCoef = -1;
};
typeRecognitionDistance = 4000;
angleRangeHorizontal = 70;
angleRangeVertical = 70;
groundNoiseDistanceCoef = 0; // relevant to AA missiles - not really for this
maxGroundNoiseDistance = 250;
minSpeedThreshold = 0;
maxSpeedThreshold = 600;
nightRangeCoef = 1;
maxFogSeeThrough = 0.8;
};
};
};
};
};
};