diff --git a/addons/aim9/CfgAmmo.hpp b/addons/aim9/CfgAmmo.hpp index 139a1cbefb..a0d711c41d 100644 --- a/addons/aim9/CfgAmmo.hpp +++ b/addons/aim9/CfgAmmo.hpp @@ -131,5 +131,94 @@ class CfgAmmo { attackProfiles[] = {"DIR"}; }; }; + + // R-73 + class ammo_Missile_AA_R73; + class GVAR(r73): ammo_Missile_AA_R73 { + missileLockCone = 40; + missileKeepLockedCone = 40; + missileLockMaxDistance = 5000; + missileLockMinDistance = 250; + + author = "Brandon (TCVM)"; + maneuvrability = 0; + + class ace_missileguidance { + enabled = 1; + + pitchRate = 25; // Minium flap deflection for guidance + yawRate = 25; // Maximum flap deflection for guidance + + canVanillaLock = 1; // Can this default vanilla lock? Only applicable to non-cadet mode + + // Guidance type for munitions + defaultSeekerType = "IR"; + seekerTypes[] = { "IR" }; + + flareDistanceFilter = 50; + flareAngleFilter = 0.8; // can filter out flares that are >= flareAngleFilter to known target velocity + + defaultSeekerLockMode = "LOBL"; + seekerLockModes[] = { "LOBL" }; + + defaultNavigationType = "AugmentedProportionalNavigation"; + navigationTypes[] = { "AugmentedProportionalNavigation" }; + + seekLastTargetPos = 0; // seek last target position [if seeker loses LOS of target, continue to last known pos] + seekerAngle = 40; // Angle from the shooter's view that can track the missile + seekerAccuracy = 0.85; // seeker accuracy multiplier + + seekerMinRange = 75; + seekerMaxRange = 5000; // Range from the missile which the seeker can visually search + + // Attack profile type selection + defaultAttackProfile = "DIR"; + attackProfiles[] = {"DIR"}; + }; + }; + + class Missile_AA_03_F; + class GVAR(r74): Missile_AA_03_F { + missileLockCone = 75; + missileKeepLockedCone = 75; + missileLockMaxDistance = 8000; + missileLockMinDistance = 250; + + author = "Brandon (TCVM)"; + maneuvrability = 0; + + class ace_missileguidance { + enabled = 1; + + pitchRate = 40; // Minium flap deflection for guidance + yawRate = 40; // Maximum flap deflection for guidance + + canVanillaLock = 1; // Can this default vanilla lock? Only applicable to non-cadet mode + + // Guidance type for munitions + defaultSeekerType = "IR"; + seekerTypes[] = { "IR" }; + + flareDistanceFilter = 50; + flareAngleFilter = 0.8; // can filter out flares that are >= flareAngleFilter to known target velocity + + defaultSeekerLockMode = "LOBL"; + seekerLockModes[] = { "LOBL" }; + + defaultNavigationType = "AugmentedProportionalNavigation"; + navigationTypes[] = { "AugmentedProportionalNavigation" }; + + seekLastTargetPos = 0; // seek last target position [if seeker loses LOS of target, continue to last known pos] + seekerAngle = 75; // Angle from the shooter's view that can track the missile + seekerAccuracy = 0.95; // seeker accuracy multiplier + + seekerMinRange = 75; + seekerMaxRange = 8000; // Range from the missile which the seeker can visually search + + // Attack profile type selection + defaultAttackProfile = "DIR"; + attackProfiles[] = {"DIR"}; + }; + }; }; diff --git a/addons/aim9/CfgMagazines.hpp b/addons/aim9/CfgMagazines.hpp index c63a0a51c4..8efb36213b 100644 --- a/addons/aim9/CfgMagazines.hpp +++ b/addons/aim9/CfgMagazines.hpp @@ -108,5 +108,46 @@ class CfgMagazines { ammo = QGVAR(aim132); pylonWeapon = QGVAR(aim132); }; + + // R-73 + class PylonMissile_Missile_AA_R73_x1; + class magazine_Missile_AA_R73_x1; + class 2Rnd_Missile_AA_03_F; + class PylonRack_1Rnd_Missile_AA_03_F; + class PylonMissile_1Rnd_Missile_AA_03_F; + + class GVAR(r73): magazine_Missile_AA_R73_x1 { + author = "Brandon (TCVM)"; + displayName = "1x R-73 [ACE]"; + ammo = QGVAR(r73); + }; + + class GVAR(PylonMissile_Missile_R73_x1): PylonMissile_Missile_AA_R73_x1 { + author = "Brandon (TCVM)"; + displayName = "1x R-73 [ACE]"; + ammo = QGVAR(r73); + pylonWeapon = QGVAR(r73); + }; + + class GVAR(2Rnd_Missile_R74): 2Rnd_Missile_AA_03_F { + author = "Brandon (TCVM)"; + displayName = "2x R-74 [ACE]"; + ammo = QGVAR(r74); + }; + + // R-74 -- improved R-73, same missile in the way that an AIM-9X is the same as an AIM-9M + class GVAR(PylonRack_1Rnd_Missile_R74): PylonRack_1Rnd_Missile_AA_03_F { + author = "Brandon (TCVM)"; + displayName = "1x R-74 [ACE]"; + ammo = QGVAR(r74); + pylonWeapon = QGVAR(r74); + }; + + class GVAR(PylonMissile_1Rnd_Missile_R74): PylonMissile_1Rnd_Missile_AA_03_F { + author = "Brandon (TCVM)"; + displayName = "1x R-74 [ACE]"; + ammo = QGVAR(r74); + pylonWeapon = QGVAR(r74); + }; }; diff --git a/addons/aim9/CfgWeapons.hpp b/addons/aim9/CfgWeapons.hpp index 166539d2a2..e344049247 100644 --- a/addons/aim9/CfgWeapons.hpp +++ b/addons/aim9/CfgWeapons.hpp @@ -38,5 +38,35 @@ class CfgWeapons { QGVAR(PylonMissile_1Rnd_aim132) }; }; + + // R-73 + class weapon_R73Launcher; + class GVAR(r73): weapon_R73Launcher { + lockAcquire = 1; // auto lock + + author = "Brandon (TCVM)"; + displayName = "R-73 [ACE]"; + weaponLockDelay = 0.5; + + magazines[] = { + QGVAR(r73), + QGVAR(PylonMissile_Missile_R73_x1) + }; + }; + + class Missile_AA_03_Plane_CAS_02_F; + class GVAR(r74): Missile_AA_03_Plane_CAS_02_F { + lockAcquire = 1; // auto lock + + author = "Brandon (TCVM)"; + displayName = "R-74 [ACE]"; + weaponLockDelay = 0.5; + + magazines[] = { + QGVAR(2Rnd_Missile_R74), + QGVAR(PylonRack_1Rnd_Missile_R74), + QGVAR(PylonMissile_1Rnd_Missile_R74) + }; + }; }; diff --git a/addons/missileguidance/todo.txt b/addons/missileguidance/todo.txt index 4143c15cd4..9cc2c5f620 100644 --- a/addons/missileguidance/todo.txt +++ b/addons/missileguidance/todo.txt @@ -15,13 +15,13 @@ Weapon Configs: R-73 - Infrared X AIM-9 - Infrared - AIM-132 - Infrared + X AIM-132 - Infrared - R-77 - AHR + X R-77 - AHR X AIM-120 - AHR KH-25 - Optical - AGM-65 - Optical + X AGM-65 - Optical GBU-SDB - GPS/INS @@ -54,9 +54,9 @@ Navigation Types: X Javelin - ZEM X Hellfire - ZEM - R-77 - ZEM - AIM-120 - ZEM - AIM-132 - ZEM + X R-77 - ZEM + X AIM-120 - ZEM + X AIM-132 - ZEM GBU-SDB - ZEM Navigation State Machine: