diff --git a/changelog.md b/changelog.md index 5992abd5..293c3f49 100644 --- a/changelog.md +++ b/changelog.md @@ -8,6 +8,7 @@ * **[Campaign Design]** Added support for Germany Cold War terrain by Ugra Media * **[Options]** New option to control EPLRS-task injection in mission generator * **[Modding]** Add Tornado F3 ADV (v1.0, requires FC3 fix) +* **[Modding]** Add Military Aircraft Mod 1.7.2 (See VSN Discord) ## Fixes * **[Flight Plans]** Fixed a bug when a package was created with only escort flights diff --git a/game/factions/faction.py b/game/factions/faction.py index a86925a5..be5adb4e 100644 --- a/game/factions/faction.py +++ b/game/factions/faction.py @@ -865,6 +865,16 @@ class Faction: # MiG-31BM if not mod_settings.mig31bm_foxhound: self.remove_aircraft("MiG-31BM") + # Mlitary Aircraft Mod 1.7.1 + if not mod_settings.mam: + self.remove_aircraft("A400M_Atlas") + self.remove_aircraft("B2_Spirit") + self.remove_aircraft("C2A_Greyhound") + self.remove_aircraft("C5_Galaxy") + self.remove_aircraft("KC_10_Extender") + self.remove_aircraft("KC_10_Extender_D") + self.remove_aircraft("P3C_Orion") + self.remove_aircraft("V22_Osprey") # Tornado f.3 ADV (1.0) if not mod_settings.tornado_adv: self.remove_aircraft("Tornado_ADV") diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py index f37948f9..d7525a9e 100644 --- a/game/theater/start_generator.py +++ b/game/theater/start_generator.py @@ -95,6 +95,7 @@ class ModSettings: uh_60l: bool = False jas39_gripen: bool = False sk_60: bool = False + mam: bool = False mirage_3: bool = False super_etendard: bool = False su15_flagon: bool = False diff --git a/pydcs_extensions/__init__.py b/pydcs_extensions/__init__.py index 62dae4da..e5a668cb 100644 --- a/pydcs_extensions/__init__.py +++ b/pydcs_extensions/__init__.py @@ -22,6 +22,7 @@ from .hercules import * from .highdigitsams import * from .irondome import * from .jas39 import * +from .mam import * from .mig31bm import * from .mirage3 import * from .oh6 import * diff --git a/pydcs_extensions/mam/__init__.py b/pydcs_extensions/mam/__init__.py new file mode 100644 index 00000000..c3d2c43b --- /dev/null +++ b/pydcs_extensions/mam/__init__.py @@ -0,0 +1 @@ +from .mam import * diff --git a/pydcs_extensions/mam/mam.py b/pydcs_extensions/mam/mam.py new file mode 100644 index 00000000..efcce595 --- /dev/null +++ b/pydcs_extensions/mam/mam.py @@ -0,0 +1,468 @@ +from typing import Any, Dict, Set + +from dcs import task +from dcs.planes import PlaneType +from dcs.weapons_data import Weapons + +from game.modsupport import planemod +from pydcs_extensions.weapon_injector import inject_weapons + + +class WeaponsB2: + + B2_AGM_154C_8 = { + "clsid": "{B2_AGM-154C*8}", + "name": "B2 AGM-154C*8", + "weight": 3872, + } + B2_CBU87_18 = {"clsid": "{B2_CBU87*18}", "name": "B2 CBU87*18", "weight": 7740} + B2_CBU_97_18 = {"clsid": "{B2_CBU97*18}", "name": "B2 CBU-97*18", "weight": 7506} + B2_GBU_27_4 = {"clsid": "{B2_GBU-27*4}", "name": "B2 GBU-27*4", "weight": 4800} + B2_GBU_28_4 = {"clsid": "{B2_GBU-28*4}", "name": "B2 GBU-28*4", "weight": 8520} + B2_GBU_38_40 = {"clsid": "{B2_GBU-38*40}", "name": "B2 GBU-38*40", "weight": 9640} + B2_Mk_82_40 = {"clsid": "{B2_Mk82*40}", "name": "B2 Mk-82*40", "weight": 9640} + + +inject_weapons(WeaponsB2) + + +@planemod +class A400M_Atlas(PlaneType): + id = "A400M_Atlas" + height = 11.66 + width = 40.4 + length = 29.79 + fuel_max = 20830 + max_speed = 621 + chaff = 120 + flare = 60 + charge_total = 240 + chaff_charge_size = 1 + flare_charge_size = 2 + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 127.5 + + livery_name = "A400M_ATLAS" # from type + + pylons: Set[int] = set() + + tasks = [task.Transport] + task_default = task.Transport + + +@planemod +class B2_Spirit(PlaneType): + id = "B2_Spirit" + group_size_max = 1 + height = 10.36 + width = 41.67 + length = 44.81 + fuel_max = 88450 + max_speed = 1329.84 + chaff = 60 + flare = 30 + charge_total = 120 + chaff_charge_size = 1 + flare_charge_size = 2 + eplrs = True + radio_frequency = 127.5 + + livery_name = "B2_SPIRIT" # from type + + class Pylon1: + B2_Mk_82_40 = (1, WeaponsB2.B2_Mk_82_40) + B2_CBU87_18 = (1, WeaponsB2.B2_CBU87_18) + B2_CBU_97_18 = (1, WeaponsB2.B2_CBU_97_18) + B2_GBU_38_40 = (1, WeaponsB2.B2_GBU_38_40) + B2_GBU_28_4 = (1, WeaponsB2.B2_GBU_28_4) + B2_GBU_27_4 = (1, WeaponsB2.B2_GBU_27_4) + B2_AGM_154C_8 = (1, WeaponsB2.B2_AGM_154C_8) + B_1B_Mk_84_8 = (1, Weapons.B_1B_Mk_84_8) + + class Pylon2: + B2_Mk_82_40 = (2, WeaponsB2.B2_Mk_82_40) + B2_CBU87_18 = (2, WeaponsB2.B2_CBU87_18) + B2_CBU_97_18 = (2, WeaponsB2.B2_CBU_97_18) + B2_GBU_38_40 = (2, WeaponsB2.B2_GBU_38_40) + B2_GBU_28_4 = (2, WeaponsB2.B2_GBU_28_4) + B2_GBU_27_4 = (2, WeaponsB2.B2_GBU_27_4) + B2_AGM_154C_8 = (2, WeaponsB2.B2_AGM_154C_8) + B_1B_Mk_84_8 = (2, Weapons.B_1B_Mk_84_8) + + pylons: Set[int] = {1, 2} + + tasks = [task.GroundAttack, task.RunwayAttack, task.PinpointStrike, task.CAS] + task_default = task.GroundAttack + + +@planemod +class C2A_Greyhound(PlaneType): + id = "C2A_Greyhound" + group_size_max = 1 + height = 4.85 + width = 24.6 + length = 17.3 + fuel_max = 5624 + max_speed = 625.68 + chaff = 120 + flare = 60 + charge_total = 240 + chaff_charge_size = 1 + flare_charge_size = 2 + eplrs = True + radio_frequency = 127.5 + + livery_name = "C2A_GREYHOUND" # from type + + pylons: Set[int] = set() + + tasks = [task.Transport] + task_default = task.Transport + + +@planemod +class C5_Galaxy(PlaneType): + id = "C5_Galaxy" + group_size_max = 1 + height = 16.79 + width = 60.89 + length = 53.04 + fuel_max = 157768 + max_speed = 856.008 + chaff = 120 + flare = 60 + charge_total = 240 + chaff_charge_size = 1 + flare_charge_size = 2 + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 127.5 + + livery_name = "C5_GALAXY" # from type + + pylons: Set[int] = set() + + tasks = [task.Transport] + task_default = task.Transport + + +@planemod +class KC_10_Extender(PlaneType): + id = "KC_10_Extender" + group_size_max = 1 + height = 17.7 + width = 50.41 + length = 55.35 + fuel_max = 160200 + max_speed = 996.012 + chaff = 120 + flare = 60 + charge_total = 240 + chaff_charge_size = 1 + flare_charge_size = 2 + tacan = True + category = "Tankers" # {8A302789-A55D-4897-B647-66493FA6826F} + + livery_name = "KC_10_EXTENDER" # from type + + pylons: Set[int] = set() + + tasks = [task.Transport, task.Refueling] + task_default = task.Refueling + + +@planemod +class KC_10_Extender_D(PlaneType): + id = "KC_10_Extender_D" + group_size_max = 1 + height = 17.7 + width = 50.41 + length = 55.35 + fuel_max = 154000 + max_speed = 804.996 + chaff = 120 + flare = 60 + charge_total = 240 + chaff_charge_size = 1 + flare_charge_size = 2 + tacan = True + category = "Tankers" # {8A302789-A55D-4897-B647-66493FA6826F} + + livery_name = "KC_10_EXTENDER_D" # from type + + pylons: Set[int] = set() + + tasks = [task.Transport, task.Refueling] + task_default = task.Refueling + + +@planemod +class P3C_Orion(PlaneType): + id = "P3C_Orion" + group_size_max = 1 + height = 10.27 + width = 30.37 + length = 35.61 + fuel_max = 28350 + max_speed = 1479.6 + chaff = 120 + flare = 60 + charge_total = 240 + chaff_charge_size = 1 + flare_charge_size = 2 + eplrs = True + radio_frequency = 127.5 + + livery_name = "P3C_ORION" # from type + + class Pylon1: + Smokewinder___red = (1, Weapons.Smokewinder___red) + Smokewinder___green = (1, Weapons.Smokewinder___green) + Smokewinder___blue = (1, Weapons.Smokewinder___blue) + Smokewinder___white = (1, Weapons.Smokewinder___white) + Smokewinder___yellow = (1, Weapons.Smokewinder___yellow) + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (1, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + LAU_115_LAU_127_AIM_9L = (1, Weapons.LAU_115_LAU_127_AIM_9L) + Mk_82___500lb_GP_Bomb_LD = (1, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 1, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + AGM_84D_Harpoon_AShM = (1, Weapons.AGM_84D_Harpoon_AShM) + LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE = ( + 1, + Weapons.LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE, + ) + + class Pylon2: + LAU_115_LAU_127_AIM_9L = (2, Weapons.LAU_115_LAU_127_AIM_9L) + Mk_82___500lb_GP_Bomb_LD = (2, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 2, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + MER2_with_2_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets = ( + 2, + Weapons.MER2_with_2_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets, + ) + AGM_84D_Harpoon_AShM = (2, Weapons.AGM_84D_Harpoon_AShM) + AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_ = ( + 2, + Weapons.AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_, + ) + LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_ = ( + 2, + Weapons.LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_, + ) + LAU_117_AGM_65F = (2, Weapons.LAU_117_AGM_65F) + LAU_117_AGM_65G = (2, Weapons.LAU_117_AGM_65G) + LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE = ( + 2, + Weapons.LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE, + ) + LTF_5b_Aerial_Torpedo = (2, Weapons.LTF_5b_Aerial_Torpedo) + + class Pylon3: + Mk_82___500lb_GP_Bomb_LD = (3, Weapons.Mk_82___500lb_GP_Bomb_LD) + BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD = ( + 3, + Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD, + ) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 3, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + MER2_with_2_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets = ( + 3, + Weapons.MER2_with_2_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets, + ) + AGM_84D_Harpoon_AShM = (3, Weapons.AGM_84D_Harpoon_AShM) + AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_ = ( + 3, + Weapons.AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_, + ) + LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_ = ( + 3, + Weapons.LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_, + ) + LAU_117_AGM_65F = (3, Weapons.LAU_117_AGM_65F) + LAU_117_AGM_65G = (3, Weapons.LAU_117_AGM_65G) + LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE = ( + 3, + Weapons.LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE, + ) + LTF_5b_Aerial_Torpedo = (3, Weapons.LTF_5b_Aerial_Torpedo) + + class Pylon4: + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 4, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + Mk_82___500lb_GP_Bomb_LD = (4, Weapons.Mk_82___500lb_GP_Bomb_LD) + + class Pylon5: + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 5, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + Mk_82___500lb_GP_Bomb_LD = (5, Weapons.Mk_82___500lb_GP_Bomb_LD) + LTF_5b_Aerial_Torpedo = (5, Weapons.LTF_5b_Aerial_Torpedo) + + class Pylon6: + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 6, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + Mk_82___500lb_GP_Bomb_LD = (6, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_83___1000lb_GP_Bomb_LD = (6, Weapons.Mk_83___1000lb_GP_Bomb_LD) + LTF_5b_Aerial_Torpedo = (6, Weapons.LTF_5b_Aerial_Torpedo) + + class Pylon7: + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 7, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + Mk_82___500lb_GP_Bomb_LD = (7, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_83___1000lb_GP_Bomb_LD = (7, Weapons.Mk_83___1000lb_GP_Bomb_LD) + LTF_5b_Aerial_Torpedo = (7, Weapons.LTF_5b_Aerial_Torpedo) + + class Pylon8: + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 8, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + Mk_82___500lb_GP_Bomb_LD = (8, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_83___1000lb_GP_Bomb_LD = (8, Weapons.Mk_83___1000lb_GP_Bomb_LD) + + class Pylon9: + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 9, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + Mk_82___500lb_GP_Bomb_LD = (9, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_83___1000lb_GP_Bomb_LD = (9, Weapons.Mk_83___1000lb_GP_Bomb_LD) + + class Pylon10: + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 10, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + Mk_82___500lb_GP_Bomb_LD = (10, Weapons.Mk_82___500lb_GP_Bomb_LD) + + class Pylon11: + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 11, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + Mk_82___500lb_GP_Bomb_LD = (11, Weapons.Mk_82___500lb_GP_Bomb_LD) + + class Pylon12: + Mk_82___500lb_GP_Bomb_LD = (12, Weapons.Mk_82___500lb_GP_Bomb_LD) + BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD = ( + 12, + Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD, + ) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 12, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + MER2_with_2_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets = ( + 12, + Weapons.MER2_with_2_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets, + ) + AGM_84D_Harpoon_AShM = (12, Weapons.AGM_84D_Harpoon_AShM) + AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_ = ( + 12, + Weapons.AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_, + ) + LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_ = ( + 12, + Weapons.LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_, + ) + LAU_117_AGM_65F = (12, Weapons.LAU_117_AGM_65F) + LAU_117_AGM_65G = (12, Weapons.LAU_117_AGM_65G) + LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE = ( + 12, + Weapons.LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE, + ) + LTF_5b_Aerial_Torpedo = (12, Weapons.LTF_5b_Aerial_Torpedo) + + class Pylon13: + LAU_115_LAU_127_AIM_9L = (13, Weapons.LAU_115_LAU_127_AIM_9L) + Mk_82___500lb_GP_Bomb_LD = (13, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 13, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + MER2_with_2_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets = ( + 13, + Weapons.MER2_with_2_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets, + ) + AGM_84D_Harpoon_AShM = (13, Weapons.AGM_84D_Harpoon_AShM) + AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_ = ( + 13, + Weapons.AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_, + ) + LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_ = ( + 13, + Weapons.LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_, + ) + LAU_117_AGM_65F = (13, Weapons.LAU_117_AGM_65F) + LAU_117_AGM_65G = (13, Weapons.LAU_117_AGM_65G) + LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE = ( + 13, + Weapons.LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE, + ) + + class Pylon14: + Smokewinder___red = (14, Weapons.Smokewinder___red) + Smokewinder___green = (14, Weapons.Smokewinder___green) + Smokewinder___blue = (14, Weapons.Smokewinder___blue) + Smokewinder___white = (14, Weapons.Smokewinder___white) + Smokewinder___yellow = (14, Weapons.Smokewinder___yellow) + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (14, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + LAU_115_LAU_127_AIM_9L = (14, Weapons.LAU_115_LAU_127_AIM_9L) + Mk_82___500lb_GP_Bomb_LD = (14, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 14, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + AGM_84D_Harpoon_AShM = (14, Weapons.AGM_84D_Harpoon_AShM) + LTF_5b_Aerial_Torpedo = (14, Weapons.LTF_5b_Aerial_Torpedo) + + pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14} + + tasks = [ + task.Transport, + task.Reconnaissance, + task.GroundAttack, + task.CAS, + task.AFAC, + task.RunwayAttack, + task.AntishipStrike, + ] + task_default = task.AntishipStrike + + +@planemod +class V22_Osprey(PlaneType): + id = "V22_Osprey" + group_size_max = 1 + height = 6.63 + width = 25.78 + length = 17.48 + fuel_max = 3519.423 + max_speed = 990 + chaff = 120 + flare = 60 + charge_total = 240 + chaff_charge_size = 1 + flare_charge_size = 2 + eplrs = True + category = "Air" # {C168A850-3C0B-436a-95B5-C4A015552560} + + livery_name = "V22_OSPREY" # from type + + pylons: Set[int] = set() + + tasks = [task.Transport] + task_default = task.Transport diff --git a/qt_ui/windows/newgame/QNewGameWizard.py b/qt_ui/windows/newgame/QNewGameWizard.py index 2f9485f7..da45ea65 100644 --- a/qt_ui/windows/newgame/QNewGameWizard.py +++ b/qt_ui/windows/newgame/QNewGameWizard.py @@ -131,6 +131,7 @@ class NewGameWizard(QtWidgets.QWizard): usamilitaryassetspack=self.field("usamilitaryassetspack"), ukrainemilitaryassetspack=self.field("ukrainemilitaryassetspack"), mig31bm_foxhound=self.field("mig31bm_foxhound"), + mam=self.field("mam"), tornado_adv=self.field("tornado_adv"), ) diff --git a/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py b/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py index a6f03b0c..04a79149 100644 --- a/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py +++ b/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py @@ -174,6 +174,8 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.registerField("ukrainemilitaryassetspack", self.ukrainemilitaryassetspack) self.mig31bm_foxhound = QtWidgets.QCheckBox() self.registerField("mig31bm_foxhound", self.mig31bm_foxhound) + self.mam = QtWidgets.QCheckBox() + self.registerField("mam", self.mam) self.tornado_adv = QtWidgets.QCheckBox() self.registerField("tornado_adv", self.tornado_adv) @@ -231,6 +233,7 @@ class GeneratorOptions(QtWidgets.QWizardPage): ("IDF Assets Pack (v1.1 by IDF Mods Project)", self.irondome), ("JAS 39 Gripen (v1.8.5-beta)", self.jas39_gripen), ("MiG-31BM (v2.62)", self.mig31bm_foxhound), + ("Military Aircraft Mod (v1.7.2 - AI Only)", self.mam), ("Mirage III (v2.5.7.01)", self.mirage_3), ("OH-6 Cayuse (v1.2)", self.oh_6), ("OH-6 Vietnam Asset Pack (v1.0)", self.oh_6_vietnamassetpack), diff --git a/resources/customized_payloads/B2_Spirit.lua b/resources/customized_payloads/B2_Spirit.lua new file mode 100644 index 00000000..7c526120 --- /dev/null +++ b/resources/customized_payloads/B2_Spirit.lua @@ -0,0 +1,206 @@ +local unitPayloads = { + ["name"]="B2_Spirit", + ["payloads"]= + { + [1]= + { + ["displayName"]="Retribution CAS", + ["name"]="Retribution CAS", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{B2_GBU-38*40}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{B2_CBU87*18}", + ["num"]=2 + } + }, + ["tasks"]= + { + [1]=31 + } + }, + [2]= + { + ["displayName"]="Retribution Strike", + ["name"]="Retribution Strike", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{B2_AGM-154C*8}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{B2_GBU-38*40}", + ["num"]=2 + } + }, + ["tasks"]= + { + [1]=31 + } + }, + [3]= + { + ["displayName"]="Retribution SEAD", + ["name"]="Retribution SEAD", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{B2_AGM-154C*8}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{B2_CBU97*18}", + ["num"]=2 + } + }, + ["tasks"]= + { + [1]=31 + } + }, + [4]= + { + ["displayName"]="Retribution DEAD", + ["name"]="Retribution DEAD", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{B2_CBU97*18}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{B2_GBU-27*4}", + ["num"]=2 + } + }, + ["tasks"]= + { + [1]=31 + } + }, + [5]= + { + ["displayName"]="Retribution BAI", + ["name"]="Retribution BAI", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{B2_GBU-38*40}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{B2_Mk82*40}", + ["num"]=2 + } + }, + ["tasks"]= + { + [1]=31 + } + }, + [6]= + { + ["displayName"]="Retribution OCA/Runway", + ["name"]="Retribution OCA/Runway", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{B2_CBU87*18}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="B-1B_Mk-84*8", + ["num"]=2 + } + }, + ["tasks"]= + { + [1]=31 + } + }, + [7]= + { + ["displayName"]="Retribution OCA/Aircraft", + ["name"]="Retribution OCA/Aircraft", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{B2_CBU97*18}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{B2_GBU-38*40}", + ["num"]=2 + } + }, + ["tasks"]= + { + [1]=31 + } + }, + [8]= + { + ["displayName"]="Retribution SEAD Sweep", + ["name"]="Retribution SEAD Sweep", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{B2_AGM-154C*8}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{B2_GBU-27*4}", + ["num"]=2 + } + }, + ["tasks"]= + { + [1]=31 + } + }, + [9]= + { + ["displayName"]="Retribution Armed Recon", + ["name"]="Retribution Armed Recon", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{B2_GBU-38*40}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{B2_Mk82*40}", + ["num"]=2 + } + }, + ["tasks"]= + { + [1]=31 + } + } + }, + ["unitType"]="B2_Spirit" +} +return unitPayloads \ No newline at end of file diff --git a/resources/customized_payloads/P3C_Orion.lua b/resources/customized_payloads/P3C_Orion.lua new file mode 100644 index 00000000..f4742d2b --- /dev/null +++ b/resources/customized_payloads/P3C_Orion.lua @@ -0,0 +1,90 @@ +local unitPayloads = { + ["name"]="P3C_Orion", + ["payloads"]= + { + [1]= + { + ["displayName"]="Retribution Antiship", + ["name"]="Retribution Antiship", + ["pylons"]= + { + [1]= + { + ["CLSID"]="LAU-115_LAU-127_AIM-9L", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="LAU-115_LAU-127_AIM-9L", + ["num"]=14 + }, + [3]= + { + ["CLSID"]="{AF42E6DF-9A60-46D8-A9A0-1708B241AADB}", + ["num"]=13 + }, + [4]= + { + ["CLSID"]="{AF42E6DF-9A60-46D8-A9A0-1708B241AADB}", + ["num"]=12 + }, + [5]= + { + ["CLSID"]="{AF42E6DF-9A60-46D8-A9A0-1708B241AADB}", + ["num"]=2 + }, + [6]= + { + ["CLSID"]="{AF42E6DF-9A60-46D8-A9A0-1708B241AADB}", + ["num"]=3 + }, + [7]= + { + ["CLSID"]="{ADD3FAE1-EBF6-4EF9-8EFC-B36B5DDF1E6B}", + ["num"]=4 + }, + [8]= + { + ["CLSID"]="{LTF_5B}", + ["num"]=5 + }, + [9]= + { + ["CLSID"]="{LTF_5B}", + ["num"]=6 + }, + [10]= + { + ["CLSID"]="{LTF_5B}", + ["num"]=7 + }, + [11]= + { + ["CLSID"]="{7A44FF09-527C-4B7E-B42B-3F111CFE50FB}", + ["num"]=8 + }, + [12]= + { + ["CLSID"]="{7A44FF09-527C-4B7E-B42B-3F111CFE50FB}", + ["num"]=9 + }, + [13]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=10 + }, + [14]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=11 + } + }, + ["tasks"]= + { + [1]=31 + } + } + }, + ["unitType"]="P3C_Orion" +} +return unitPayloads \ No newline at end of file diff --git a/resources/ui/units/aircrafts/banners/A400M_Atlas.jpg b/resources/ui/units/aircrafts/banners/A400M_Atlas.jpg new file mode 100644 index 00000000..b10b5e9f Binary files /dev/null and b/resources/ui/units/aircrafts/banners/A400M_Atlas.jpg differ diff --git a/resources/ui/units/aircrafts/banners/B2_Spirit.jpg b/resources/ui/units/aircrafts/banners/B2_Spirit.jpg new file mode 100644 index 00000000..c2916b84 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/B2_Spirit.jpg differ diff --git a/resources/ui/units/aircrafts/banners/C2A_Greyhound.jpg b/resources/ui/units/aircrafts/banners/C2A_Greyhound.jpg new file mode 100644 index 00000000..1993a084 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/C2A_Greyhound.jpg differ diff --git a/resources/ui/units/aircrafts/banners/C5_Galaxy.jpg b/resources/ui/units/aircrafts/banners/C5_Galaxy.jpg new file mode 100644 index 00000000..e02c7d85 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/C5_Galaxy.jpg differ diff --git a/resources/ui/units/aircrafts/banners/KC_10_Extender.jpg b/resources/ui/units/aircrafts/banners/KC_10_Extender.jpg new file mode 100644 index 00000000..cbbe0728 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/KC_10_Extender.jpg differ diff --git a/resources/ui/units/aircrafts/banners/KC_10_Extender_D.jpg b/resources/ui/units/aircrafts/banners/KC_10_Extender_D.jpg new file mode 100644 index 00000000..cbbe0728 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/KC_10_Extender_D.jpg differ diff --git a/resources/ui/units/aircrafts/banners/P3C_Orion.jpg b/resources/ui/units/aircrafts/banners/P3C_Orion.jpg new file mode 100644 index 00000000..422a90ef Binary files /dev/null and b/resources/ui/units/aircrafts/banners/P3C_Orion.jpg differ diff --git a/resources/ui/units/aircrafts/banners/V22_Osprey.jpg b/resources/ui/units/aircrafts/banners/V22_Osprey.jpg new file mode 100644 index 00000000..f9eef60b Binary files /dev/null and b/resources/ui/units/aircrafts/banners/V22_Osprey.jpg differ diff --git a/resources/ui/units/aircrafts/icons/A400M_Atlas_24.jpg b/resources/ui/units/aircrafts/icons/A400M_Atlas_24.jpg new file mode 100644 index 00000000..79ddc72a Binary files /dev/null and b/resources/ui/units/aircrafts/icons/A400M_Atlas_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/B2_Spirit_24.jpg b/resources/ui/units/aircrafts/icons/B2_Spirit_24.jpg new file mode 100644 index 00000000..a265ddab Binary files /dev/null and b/resources/ui/units/aircrafts/icons/B2_Spirit_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/C2A_Greyhound_24.jpg b/resources/ui/units/aircrafts/icons/C2A_Greyhound_24.jpg new file mode 100644 index 00000000..c359b7de Binary files /dev/null and b/resources/ui/units/aircrafts/icons/C2A_Greyhound_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/C5_Galaxy_24.jpg b/resources/ui/units/aircrafts/icons/C5_Galaxy_24.jpg new file mode 100644 index 00000000..9cd93e44 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/C5_Galaxy_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/KC_10_Extender_24.jpg b/resources/ui/units/aircrafts/icons/KC_10_Extender_24.jpg new file mode 100644 index 00000000..e5b0ecb7 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/KC_10_Extender_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/KC_10_Extender_D_24.jpg b/resources/ui/units/aircrafts/icons/KC_10_Extender_D_24.jpg new file mode 100644 index 00000000..e5b0ecb7 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/KC_10_Extender_D_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/P3C_Orion_24.jpg b/resources/ui/units/aircrafts/icons/P3C_Orion_24.jpg new file mode 100644 index 00000000..d8901aca Binary files /dev/null and b/resources/ui/units/aircrafts/icons/P3C_Orion_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/V22_Osprey_24.jpg b/resources/ui/units/aircrafts/icons/V22_Osprey_24.jpg new file mode 100644 index 00000000..b587ff8a Binary files /dev/null and b/resources/ui/units/aircrafts/icons/V22_Osprey_24.jpg differ diff --git a/resources/units/aircraft/A400M_Atlas.yaml b/resources/units/aircraft/A400M_Atlas.yaml new file mode 100644 index 00000000..23ad770d --- /dev/null +++ b/resources/units/aircraft/A400M_Atlas.yaml @@ -0,0 +1,17 @@ +description: "The Airbus A400M Atlas is a European four-engine turboprop military transport aircraft. It was designed by Airbus Military, + now Airbus Defence and Space, as a tactical airlifter with strategic capabilities to replace older transport aircraft such as + the Transall C-160 and the Lockheed C-130 Hercules. + + The A400M is sized between the C-130 and the Boeing C-17 Globemaster III. It can carry heavier loads than the C-130 and can use + rough landing strips." + +introduced: 2013 +manufacturer: Airbus Defence and Space +origin: Europe +price: 25 +role: Transport +max_range: 1000 +variants: + A400M Atlas: {} +tasks: + Transport: 130 diff --git a/resources/units/aircraft/B2_Spirit.yaml b/resources/units/aircraft/B2_Spirit.yaml new file mode 100644 index 00000000..2f79f076 --- /dev/null +++ b/resources/units/aircraft/B2_Spirit.yaml @@ -0,0 +1,25 @@ +description: "The Northrop B-2 Spirit is an American heavy strategic bomber that uses low-observable stealth technology to + penetrate sophisticated anti-aircraft defenses. It is often referred to as a stealth bomber. + + A subsonic flying wing with a crew of two, the B-2 was designed by Northrop (later Northrop Grumman) as the prime + contractor, with Boeing, Hughes, and Vought as principal subcontractors. It was produced from 1988 to 2000. The + bomber can drop conventional and thermonuclear weapons, such as up to eighty 500-pound class (230 kg) Mk 82 JDAM + GPS-guided bombs, or sixteen 2,400-pound (1,100 kg) B83 nuclear bombs. The B-2 is the only acknowledged in-service + aircraft that can carry large air-to-surface standoff weapons in a stealth configuration." + +introduced: 1988 +manufacturer: Northrop Grumman +origin: USA +price: 45 +role: Strategic Bomber +max_range: 1000 +variants: + "B-2 Spirit": {} +tasks: + BAI: 370 + CAS: 750 + SEAD: 210 + DEAD: 210 + OCA/Runway: 660 + OCA/Aircraft: 770 + Strike: 690 diff --git a/resources/units/aircraft/C2A_Greyhound.yaml b/resources/units/aircraft/C2A_Greyhound.yaml new file mode 100644 index 00000000..cea56235 --- /dev/null +++ b/resources/units/aircraft/C2A_Greyhound.yaml @@ -0,0 +1,19 @@ +carrier_capable: true +description: "The Grumman C-2 Greyhound is a twin-engine, high-wing cargo aircraft designed to carry supplies, mail, and passengers to and from aircraft carriers of the United States Navy. + Its primary mission is carrier onboard delivery (COD). The aircraft provides critical logistics support to carrier strike groups. The aircraft is mainly used to transport high-priority + cargo such as jet engines and special stores, mail, and passengers between carriers and shore bases. + + Prototype C-2s first flew in 1964, and production followed the next year. The initial Greyhound aircraft were overhauled in 1973. In 1984, more C-2As were ordered under + designation Reprocured C-2A or C-2A(R). In 2010, all C-2A(R) aircraft received updated propellers (from four to eight blades) and navigational updates (glass cockpit). + The U.S. Navy is to start replacing the remaining 27 C-2As with 38 Bell Boeing CMV-22Bs Osprey tiltrotors in 2020, with full fielding in 2028." + +introduced: 1966 +manufacturer: Northrop Grumman +origin: USA +price: 15 +role: Transport +max_range: 1000 +variants: + C2A Greyhound: {} +tasks: + Transport: 130 diff --git a/resources/units/aircraft/C5_Galaxy.yaml b/resources/units/aircraft/C5_Galaxy.yaml new file mode 100644 index 00000000..ca73e8a2 --- /dev/null +++ b/resources/units/aircraft/C5_Galaxy.yaml @@ -0,0 +1,16 @@ +description: "The Lockheed C-5 Galaxy is a large military transport aircraft designed and built by Lockheed, and now maintained and upgraded by its successor, Lockheed Martin. + It provides the United States Air Force (USAF) with a heavy intercontinental-range strategic airlift capability, one that can carry outsized and oversized loads, including + all air-certifiable cargo. The Galaxy has many similarities to the smaller Lockheed C-141 Starlifter and the later Boeing C-17 Globemaster III. + The C-5 is among the largest military aircraft in the world. All 52 in-service aircraft have been upgraded to the C-5M Super Galaxy with new engines and modernized + avionics designed to extend its service life to 2040 and beyond." + +introduced: 1970 +manufacturer: Lockheed Martin +origin: USA +price: 20 +role: Transport +max_range: 1000 +variants: + C5 Galaxy: {} +tasks: + Transport: 130 diff --git a/resources/units/aircraft/KC_10_Extender.yaml b/resources/units/aircraft/KC_10_Extender.yaml new file mode 100644 index 00000000..b19ac84d --- /dev/null +++ b/resources/units/aircraft/KC_10_Extender.yaml @@ -0,0 +1,22 @@ +description: + The McDonnell Douglas KC-10 Extender is an American tanker and cargo aircraft that was operated by the United States Air Force (USAF) + from 1981 to 2024. A military version of the three-engine DC-10 airliner, the KC-10 was developed from the Advanced Tanker Cargo Aircraft Program. + It incorporates military-specific equipment for its primary roles of aerial refueling and transport. It was developed to supplement the + KC-135 Stratotanker following experiences in Southeast Asia and the Middle East. The KC-10 was the second McDonnell Douglas transport aircraft + to be selected by the Air Force following the C-9. A total of 60 KC-10s were produced for the USAF. + The Royal Netherlands Air Force operated two similar tankers from 1995 to 2021 designated KDC-10 that were converted from used civilian DC-10, instead of purpose built aircraft. + +introduced: 1981 +manufacturer: McDonnell Douglas +origin: USA +max_group_size: 1 +price: 20 +role: Refueling +patrol: + # ~300 knots IAS. + speed: 405 + altitude: 24000 +variants: + KC-10 Extender (Boom): {} +tasks: + Refueling: 50 diff --git a/resources/units/aircraft/KC_10_Extender_D.yaml b/resources/units/aircraft/KC_10_Extender_D.yaml new file mode 100644 index 00000000..9c57e51a --- /dev/null +++ b/resources/units/aircraft/KC_10_Extender_D.yaml @@ -0,0 +1,22 @@ +description: + The McDonnell Douglas KC-10 Extender is an American tanker and cargo aircraft that was operated by the United States Air Force (USAF) + from 1981 to 2024. A military version of the three-engine DC-10 airliner, the KC-10 was developed from the Advanced Tanker Cargo Aircraft Program. + It incorporates military-specific equipment for its primary roles of aerial refueling and transport. It was developed to supplement the + KC-135 Stratotanker following experiences in Southeast Asia and the Middle East. The KC-10 was the second McDonnell Douglas transport aircraft + to be selected by the Air Force following the C-9. A total of 60 KC-10s were produced for the USAF. + The Royal Netherlands Air Force operated two similar tankers from 1995 to 2021 designated KDC-10 that were converted from used civilian DC-10, instead of purpose built aircraft. + +introduced: 1981 +manufacturer: McDonnell Douglas +origin: USA +max_group_size: 1 +price: 20 +role: Refueling +patrol: + # ~300 knots IAS. + speed: 405 + altitude: 24000 +variants: + KC-10 Extender (Drogue): {} +tasks: + Refueling: 50 diff --git a/resources/units/aircraft/P3C_Orion.yaml b/resources/units/aircraft/P3C_Orion.yaml new file mode 100644 index 00000000..5340cbbf --- /dev/null +++ b/resources/units/aircraft/P3C_Orion.yaml @@ -0,0 +1,21 @@ +description: + "The Lockheed P-3 Orion is a four-engined, turboprop anti-submarine and maritime surveillance aircraft developed for the United States Navy + and introduced in the 1960s. It is based on the L-188 Electra commercial airliner by Lockheed; it is easily distinguished from the Electra + by its distinctive tail stinger or \"MAD\" boom, used for the magnetic anomaly detection (MAD) of submarines. + + Over the years, the P-3 has seen numerous design developments, most notably in its electronics packages. Numerous navies and air forces around + the world continue to use the type primarily for maritime patrol, reconnaissance, anti-surface warfare and anti-submarine warfare. + A total of 757 P-3s have been built. In 2012, it joined the handful of military aircraft including the Boeing B-52 Stratofortress, + Boeing KC-135 Stratotanker, and Lockheed C-130 Hercules that the United States military has been using for more than 50 years. + + In the twenty-first century, the turbofan-powered Boeing P-8 Poseidon began to supplement, and will eventually replace, the U.S. Navy's P-3s." + +introduced: 1972 +manufacturer: Lockheed +origin: USA +price: 35 +role: Maritime Patrol/Anti-Ship +variants: + P-3C Orion: {} +tasks: + Anti-ship: 180 diff --git a/resources/units/aircraft/V22_Osprey.yaml b/resources/units/aircraft/V22_Osprey.yaml new file mode 100644 index 00000000..dd9c952b --- /dev/null +++ b/resources/units/aircraft/V22_Osprey.yaml @@ -0,0 +1,16 @@ +description: "The Bell Boeing V-22 Osprey is an American multi-use, tiltrotor military transport and cargo aircraft with both vertical takeoff and landing (VTOL) + and short takeoff and landing (STOL) capabilities. It is designed to combine the functionality of a conventional helicopter with the long-range, high-speed cruise + performance of a turboprop aircraft. The V-22 is operated by the United States and Japan, and is not only a new aircraft design, but a new type of aircraft that + entered service in the 2000s, a tiltrotor compared to fixed wing and helicopter designs. The V-22 first flew in 1989 and after a long development was fielded in 2007. + The design combines the vertical takeoff ability of a helicopter with the speed and range of a fixed-wing airplane." + +introduced: 2007 +manufacturer: Bell Boeing +origin: USA +price: 15 +role: Transport +max_range: 1000 +variants: + V22 Osprey: {} +tasks: + Transport: 130