diff --git a/changelog.md b/changelog.md index 7e4eafe5..4adfc4c1 100644 --- a/changelog.md +++ b/changelog.md @@ -2,7 +2,7 @@ ## Features/Improvements * **[Mission Generation]** Given a CAS flight was planned, delay ground force attack until first CAS flight is on station -* **[Mission Generation]** Add option to switch ATFLIR to LITENING automatically for ground based F-18C flights +* **[Mission Generation]** Add option to switch ATFLIR to LITENING automatically for ground based F/A-18C flights * **[Mission Generation]** Add option to configure OPFOR autoplanner aggressiveness and have the AI take risks and plan missions against defended targets * **[Mission Generation]** Add option to configure the desired tanker on-station time in settings * **[Mission Generation]** Reserve GUARD frequency on VHF/UHF @@ -11,6 +11,7 @@ * **[Mission Generation]** Enable spectating & F11 free camera when the "Allow external views" option is selected * **[Cheat Menu]** Option to instantly transfer squadrons across bases. * **[Modding]** Support for IDF Mod Project F-16I Sufa & F-16D v3.2 mod +* **[Modding]** Support for F/A-18E/F/G mod version 2.1 * **[Modding]** Support for Swedish Military Assets for DCS by Currenthill Version 1.10 * **[UI]** Add selectable units in faction overview during campaign generation. * **[UI]** Add button to rename pilots in Air Wing's Squadron dialog. diff --git a/game/ato/ai_flight_planner_db.py b/game/ato/ai_flight_planner_db.py index 5cac3364..a5c6a455 100644 --- a/game/ato/ai_flight_planner_db.py +++ b/game/ato/ai_flight_planner_db.py @@ -142,6 +142,7 @@ from pydcs_extensions.f16i_idf.f16i_idf import ( from pydcs_extensions.f22a.f22a import F_22A from pydcs_extensions.f4b.f4b import VSN_F4B, VSN_F4C from pydcs_extensions.f84g.f84g import VSN_F84G +from pydcs_extensions.fa18efg.fa18efg import FA_18E, FA_18F, EA_18G from pydcs_extensions.hercules.hercules import Hercules from pydcs_extensions.jas39.jas39 import JAS39Gripen, JAS39Gripen_AG from pydcs_extensions.su30.su30 import Su_30MKA, Su_30MKI, Su_30MKM, Su_30SM @@ -182,6 +183,8 @@ ESCORT_CAPABLE = [ F_16D_50_NS, F_16D_52, F_16D_52_NS, + FA_18E, + FA_18F, FA_18C_hornet, JF_17, JAS39Gripen, @@ -258,6 +261,8 @@ CAS_CAPABLE = [ F_16D_50_NS, F_16D_52, F_16D_52_NS, + FA_18E, + FA_18F, FA_18C_hornet, Tornado_GR4, Tornado_IDS, @@ -359,6 +364,9 @@ SEAD_ESCORT_CAPABLE = [ F_16D_50_NS, F_16D_52, F_16D_52_NS, + EA_18G, + FA_18E, + FA_18F, FA_18C_hornet, Tornado_IDS, Su_25T, @@ -444,6 +452,8 @@ STRIKE_CAPABLE = [ F_16D_50_NS, F_16D_52, F_16D_52_NS, + FA_18E, + FA_18F, FA_18C_hornet, AV8BNA, JF_17, @@ -524,6 +534,8 @@ ANTISHIP_CAPABLE = [ Tu_142, Tu_22M3, H_6J, + FA_18E, + FA_18F, FA_18C_hornet, JAS39Gripen_AG, F_16A_MLU, @@ -579,6 +591,8 @@ RUNWAY_ATTACK_CAPABLE = [ F_16D_50_NS, F_16D_52, F_16D_52_NS, + FA_18E, + FA_18F, FA_18C_hornet, AV8BNA, JF_17, diff --git a/game/dcs/aircrafttype.py b/game/dcs/aircrafttype.py index 085bc676..3d6789fe 100644 --- a/game/dcs/aircrafttype.py +++ b/game/dcs/aircrafttype.py @@ -348,9 +348,11 @@ class AircraftType(UnitType[Type[FlyingType]]): @classmethod def _each_variant_of(cls, aircraft: Type[FlyingType]) -> Iterator[AircraftType]: - data_path = Path("resources/units/aircraft") / f"{aircraft.id}.yaml" + # Replace slashes with underscores because slashes are not allowed in filenames + aircraft_id = aircraft.id.replace("/", "_") + data_path = Path("resources/units/aircraft") / f"{aircraft_id}.yaml" if not data_path.exists(): - logging.warning(f"No data for {aircraft.id}; it will not be available") + logging.warning(f"No data for {aircraft_id}; it will not be available") return with data_path.open(encoding="utf-8") as data_file: @@ -371,7 +373,7 @@ class AircraftType(UnitType[Type[FlyingType]]): nautical_miles(50) if aircraft.helicopter else nautical_miles(150) ) logging.warning( - f"{aircraft.id} does not specify a max_range. Defaulting to " + f"{aircraft_id} does not specify a max_range. Defaulting to " f"{mission_range.nautical_miles}NM" ) diff --git a/game/factions/faction.py b/game/factions/faction.py index 5af19858..b4737103 100644 --- a/game/factions/faction.py +++ b/game/factions/faction.py @@ -431,6 +431,10 @@ class Faction: self.remove_vehicle("SAM SA-14 Strela-3 manpad") self.remove_vehicle("SAM SA-24 Igla-S manpad") self.remove_vehicle("Polyana-D4M1 C2 node") + if not mod_settings.fa_18efg: + self.remove_aircraft("FA-18E") + self.remove_aircraft("FA-18F") + self.remove_aircraft("EA-18G") # swedish military assets pack if not mod_settings.swedishmilitaryassetspack: self.remove_vehicle("BV410_RBS70") diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py index 9e6ef410..56446b64 100644 --- a/game/theater/start_generator.py +++ b/game/theater/start_generator.py @@ -58,6 +58,7 @@ class ModSettings: f4bc_phantom: bool = False f15d_baz: bool = False f_16_idf: bool = False + fa_18efg: bool = False f22_raptor: bool = False f84g_thunderjet: bool = False f100_supersabre: bool = False diff --git a/pydcs_extensions/fa18efg/fa18efg.py b/pydcs_extensions/fa18efg/fa18efg.py new file mode 100644 index 00000000..36ffa782 --- /dev/null +++ b/pydcs_extensions/fa18efg/fa18efg.py @@ -0,0 +1,2235 @@ +from typing import Dict, List, Set, Any + +from dcs import task +from dcs.planes import PlaneType +from dcs.weapons_data import Weapons +from dcs.liveries_scanner import Liveries + +from game.modsupport import planemod +from pydcs_extensions.weapon_injector import inject_weapons + + +class WeaponsFA18EFG: + AA42R_Buddy_Pod = {"clsid": "{AA42R}", "name": "AA42R Buddy Pod", "weight": 1520} + ALQ_99Center = {"clsid": "{ALQ-99Center}", "name": "ALQ-99Center", "weight": 0} + ALQ_99Wing = {"clsid": "{ALQ-99Wing}", "name": "ALQ-99Wing", "weight": 0} + FLIR = {"clsid": "{FLIR}", "name": "FLIR", "weight": 0} + FPU_12_Fuel_Tank_480_gallons = { + "clsid": "{FPU_12_FUEL_TANK}", + "name": "FPU-12 Fuel Tank 480 gallons", + "weight": 1550, + } + FPU_12_Fuel_Tank_480_gallons_High_Vis = { + "clsid": "{FPU_12_FUEL_TANKHighVis}", + "name": "FPU-12 Fuel Tank 480 gallons High Vis", + "weight": 1550, + } + TLAU_127 = {"clsid": "{TLAU_127}", "name": "TLAU_127", "weight": 0} + USAFlag = {"clsid": "{USAFlag}", "name": "USAFlag", "weight": 0} + + +inject_weapons(WeaponsFA18EFG) + + +@planemod +class FA_18E(PlaneType): + id = "FA-18E" + flyable = True + height = 4.66 + width = 11.43 + length = 17.07 + fuel_max = 4900 + max_speed = 1950.12 + chaff = 60 + flare = 60 + charge_total = 120 + chaff_charge_size = 1 + flare_charge_size = 1 + eplrs = True + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 305 + + panel_radio = { + 1: { + "channels": { + 1: 305, + 2: 264, + 4: 256, + 8: 257, + 16: 261, + 17: 267, + 9: 255, + 18: 251, + 5: 254, + 10: 262, + 20: 266, + 11: 259, + 3: 265, + 6: 250, + 12: 268, + 13: 269, + 7: 270, + 14: 260, + 19: 253, + 15: 263, + }, + }, + 2: { + "channels": { + 1: 305, + 2: 264, + 4: 256, + 8: 257, + 16: 261, + 17: 267, + 9: 255, + 18: 251, + 5: 254, + 10: 262, + 20: 266, + 11: 259, + 3: 265, + 6: 250, + 12: 268, + 13: 269, + 7: 270, + 14: 260, + 19: 253, + 15: 263, + }, + }, + } + + callnames: Dict[str, List[str]] = { + "USA": [ + "Hornet", + "Squid", + "Ragin", + "Roman", + "Sting", + "Jury", + "Joker", + "Ram", + "Hawk", + "Devil", + "Check", + "Snake", + ] + } + + property_defaults: Dict[str, Any] = { + "OuterBoard": 0, + "InnerBoard": 0, + "HelmetMountedDevice": 1, + } + + class Properties: + class OuterBoard: + id = "OuterBoard" + + class Values: + Single = 0 + Ripple = 1 + + class InnerBoard: + id = "InnerBoard" + + class Values: + Single = 0 + Ripple = 1 + + class HelmetMountedDevice: + id = "HelmetMountedDevice" + + class Values: + Not_installed = 0 + JHMCS = 1 + NVG = 2 + + livery_name = "FA-18E" # from type + Liveries = Liveries()[livery_name] + + class Pylon1: + AIM_9M_Sidewinder_IR_AAM = (1, Weapons.AIM_9M_Sidewinder_IR_AAM) + CATM_9M = (1, Weapons.CATM_9M) + # ERRR {CATM-9M} + # ERRR {CATM-9X} + AIM_9X_Sidewinder_IR_AAM = (1, Weapons.AIM_9X_Sidewinder_IR_AAM) + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (1, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + + class Pylon2: + TLAU_127 = (2, WeaponsFA18EFG.TLAU_127) + AIM_120B_AMRAAM___Active_Rdr_AAM = (2, Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 2, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + # ERRR {CATM-120C} + LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar = ( + 2, + Weapons.LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar = ( + 2, + Weapons.LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar = ( + 2, + Weapons.LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7P_Sparrow_Semi_Active_Radar = ( + 2, + Weapons.LAU_115C_with_AIM_7P_Sparrow_Semi_Active_Radar, + ) + # ERRR LAU_117_TGM_65E + # ERRR LAU_117_TGM_65F + 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) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 2, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + Mk_82___500lb_GP_Bomb_LD = (2, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_82_Snakeye___500lb_GP_Bomb_HD = (2, Weapons.Mk_82_Snakeye___500lb_GP_Bomb_HD) + Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 2, + Weapons.Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + Mk_83___1000lb_GP_Bomb_LD = (2, Weapons.Mk_83___1000lb_GP_Bomb_LD) + BDU_45___500lb_Practice_Bomb = (2, Weapons.BDU_45___500lb_Practice_Bomb) + BDU_45B___500lb_Practice_Bomb = (2, Weapons.BDU_45B___500lb_Practice_Bomb) + GBU_12___500lb_Laser_Guided_Bomb = (2, Weapons.GBU_12___500lb_Laser_Guided_Bomb) + GBU_16___1000lb_Laser_Guided_Bomb = ( + 2, + Weapons.GBU_16___1000lb_Laser_Guided_Bomb, + ) + CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 2, + Weapons.CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 2, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + # ERRR + GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb = ( + 2, + Weapons.GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb, + ) + GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 2, + Weapons.GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD = ( + 2, + Weapons.GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD, + ) + AGM_154A___JSOW_CEB__CBU_type_ = (2, Weapons.AGM_154A___JSOW_CEB__CBU_type_) + AGM_154C___JSOW_Unitary_BROACH = (2, Weapons.AGM_154C___JSOW_Unitary_BROACH) + BRU_42_with_2_x_ADM_141A_TALD = (2, Weapons.BRU_42_with_2_x_ADM_141A_TALD) + BRU_42_with_ADM_141A_TALD = (2, Weapons.BRU_42_with_ADM_141A_TALD) + + class Pylon3: + LAU_115_2_LAU_127_AIM_9M = (3, Weapons.LAU_115_2_LAU_127_AIM_9M) + LAU_115_2_LAU_127_CATM_9M = (3, Weapons.LAU_115_2_LAU_127_CATM_9M) + LAU_115_2_LAU_127_AIM_9L = (3, Weapons.LAU_115_2_LAU_127_AIM_9L) + LAU_115_2_LAU_127_AIM_9X = (3, Weapons.LAU_115_2_LAU_127_AIM_9X) + LAU_115_LAU_127_AIM_9X = (3, Weapons.LAU_115_LAU_127_AIM_9X) + LAU_115_LAU_127_CATM_9M = (3, Weapons.LAU_115_LAU_127_CATM_9M) + LAU_115_LAU_127_AIM_9L = (3, Weapons.LAU_115_LAU_127_AIM_9L) + LAU_115_LAU_127_AIM_9M = (3, Weapons.LAU_115_LAU_127_AIM_9M) + LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar = ( + 3, + Weapons.LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar = ( + 3, + Weapons.LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar = ( + 3, + Weapons.LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7P_Sparrow_Semi_Active_Radar = ( + 3, + Weapons.LAU_115C_with_AIM_7P_Sparrow_Semi_Active_Radar, + ) + FPU_12_Fuel_Tank_480_gallons = (3, WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons) + FPU_12_Fuel_Tank_480_gallons_High_Vis = ( + 3, + WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons_High_Vis, + ) + AIM_120B_AMRAAM___Active_Rdr_AAM = (3, Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 3, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + LAU_115_2_LAU_127_AIM_120B = (3, Weapons.LAU_115_2_LAU_127_AIM_120B) + LAU_115_2_LAU_127_AIM_120C = (3, Weapons.LAU_115_2_LAU_127_AIM_120C) + # ERRR LAU-115_2*LAU-127_CATM-120C + # ERRR LAU_117_TGM_65E + # ERRR LAU_117_TGM_65F + 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_CATM_65K = (3, Weapons.LAU_117_CATM_65K) + LAU_117_AGM_65F = (3, Weapons.LAU_117_AGM_65F) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 3, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + Mk_82___500lb_GP_Bomb_LD = (3, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_82_Snakeye___500lb_GP_Bomb_HD = (3, Weapons.Mk_82_Snakeye___500lb_GP_Bomb_HD) + Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 3, + Weapons.Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + Mk_83___1000lb_GP_Bomb_LD = (3, Weapons.Mk_83___1000lb_GP_Bomb_LD) + Mk_84___2000lb_GP_Bomb_LD = (3, Weapons.Mk_84___2000lb_GP_Bomb_LD) + BDU_45___500lb_Practice_Bomb = (3, Weapons.BDU_45___500lb_Practice_Bomb) + BDU_45B___500lb_Practice_Bomb = (3, Weapons.BDU_45B___500lb_Practice_Bomb) + AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_ = ( + 3, + Weapons.AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_, + ) + AGM_84H_SLAM_ER__Expanded_Response_ = ( + 3, + Weapons.AGM_84H_SLAM_ER__Expanded_Response_, + ) + BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD = ( + 3, + Weapons.BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD, + ) + BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD = ( + 3, + Weapons.BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD, + ) + BRU_33_with_2_x_Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 3, + Weapons.BRU_33_with_2_x_Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + BRU_33_with_2_x_BDU_45___500lb_Practice_Bomb = ( + 3, + Weapons.BRU_33_with_2_x_BDU_45___500lb_Practice_Bomb, + ) + BRU_33_with_2_x_BDU_45B___500lb_Practice_Bomb = ( + 3, + Weapons.BRU_33_with_2_x_BDU_45B___500lb_Practice_Bomb, + ) + BRU_33_with_2_x_Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 3, + Weapons.BRU_33_with_2_x_Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD = ( + 3, + Weapons.BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD, + ) + BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD = ( + 3, + Weapons.BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD, + ) + GBU_10___2000lb_Laser_Guided_Bomb = ( + 3, + Weapons.GBU_10___2000lb_Laser_Guided_Bomb, + ) + BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD = ( + 3, + Weapons.BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD, + ) + GBU_12___500lb_Laser_Guided_Bomb = (3, Weapons.GBU_12___500lb_Laser_Guided_Bomb) + GBU_24A_B_Paveway_III___2000lb_Laser_Guided_Bomb = ( + 3, + Weapons.GBU_24A_B_Paveway_III___2000lb_Laser_Guided_Bomb, + ) + GBU_16___1000lb_Laser_Guided_Bomb = ( + 3, + Weapons.GBU_16___1000lb_Laser_Guided_Bomb, + ) + CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 3, + Weapons.CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 3, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 3, + Weapons.BRU_33_with_2_x_CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb = ( + 3, + Weapons.BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb, + ) + # ERRR + AGM_154A___JSOW_CEB__CBU_type_ = (3, Weapons.AGM_154A___JSOW_CEB__CBU_type_) + BRU_55_with_2_x_AGM_154A___JSOW_CEB__CBU_type_ = ( + 3, + Weapons.BRU_55_with_2_x_AGM_154A___JSOW_CEB__CBU_type_, + ) + AGM_154C___JSOW_Unitary_BROACH = (3, Weapons.AGM_154C___JSOW_Unitary_BROACH) + BRU_55_with_2_x_AGM_154C___JSOW_Unitary_BROACH = ( + 3, + Weapons.BRU_55_with_2_x_AGM_154C___JSOW_Unitary_BROACH, + ) + GBU_31_V_2_B___JDAM__2000lb_GPS_Guided_Bomb = ( + 3, + Weapons.GBU_31_V_2_B___JDAM__2000lb_GPS_Guided_Bomb, + ) + GBU_31_V_4_B___JDAM__2000lb_GPS_Guided_Penetrator_Bomb = ( + 3, + Weapons.GBU_31_V_4_B___JDAM__2000lb_GPS_Guided_Penetrator_Bomb, + ) + GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb = ( + 3, + Weapons.GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb, + ) + GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 3, + Weapons.GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + BRU_55_with_2_x_GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 3, + Weapons.BRU_55_with_2_x_GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + AGM_84D_Harpoon_AShM = (3, Weapons.AGM_84D_Harpoon_AShM) + AWW_13_DATALINK_POD = (3, Weapons.AWW_13_DATALINK_POD) + GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD = ( + 3, + Weapons.GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD, + ) + BRU_42_with_3_x_ADM_141A_TALD = (3, Weapons.BRU_42_with_3_x_ADM_141A_TALD) + BRU_42_with_2_x_ADM_141A_TALD = (3, Weapons.BRU_42_with_2_x_ADM_141A_TALD) + BRU_42_with_ADM_141A_TALD = (3, Weapons.BRU_42_with_ADM_141A_TALD) + + class Pylon4: + AIM_120B_AMRAAM___Active_Rdr_AAM = (4, Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 4, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + AN_ASQ_228_ATFLIR___Targeting_Pod = ( + 4, + Weapons.AN_ASQ_228_ATFLIR___Targeting_Pod, + ) + + class Pylon5: + LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar = ( + 5, + Weapons.LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar = ( + 5, + Weapons.LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar = ( + 5, + Weapons.LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar, + ) + FPU_12_Fuel_Tank_480_gallons = (5, WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons) + FPU_12_Fuel_Tank_480_gallons_High_Vis = ( + 5, + WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons_High_Vis, + ) + LAU_115_with_1_x_LAU_127_AIM_120B_AMRAAM___Active_Radar_AAM = ( + 5, + Weapons.LAU_115_with_1_x_LAU_127_AIM_120B_AMRAAM___Active_Radar_AAM, + ) + LAU_115_with_1_x_LAU_127_AIM_120C_AMRAAM___Active_Radar_AAM = ( + 5, + Weapons.LAU_115_with_1_x_LAU_127_AIM_120C_AMRAAM___Active_Radar_AAM, + ) + LAU_115_2_LAU_127_AIM_120B = (5, Weapons.LAU_115_2_LAU_127_AIM_120B) + LAU_115_2_LAU_127_AIM_120C = (5, Weapons.LAU_115_2_LAU_127_AIM_120C) + LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_ = ( + 5, + Weapons.LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_, + ) + LAU_117_CATM_65K = (5, Weapons.LAU_117_CATM_65K) + LAU_117_AGM_65F = (5, Weapons.LAU_117_AGM_65F) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 5, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + Mk_82___500lb_GP_Bomb_LD = (5, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_82_Snakeye___500lb_GP_Bomb_HD = (5, Weapons.Mk_82_Snakeye___500lb_GP_Bomb_HD) + Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 5, + Weapons.Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + Mk_83___1000lb_GP_Bomb_LD = (5, Weapons.Mk_83___1000lb_GP_Bomb_LD) + Mk_84___2000lb_GP_Bomb_LD = (5, Weapons.Mk_84___2000lb_GP_Bomb_LD) + AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_ = ( + 5, + Weapons.AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_, + ) + AGM_84H_SLAM_ER__Expanded_Response_ = ( + 5, + Weapons.AGM_84H_SLAM_ER__Expanded_Response_, + ) + BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD = ( + 5, + Weapons.BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD, + ) + BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD = ( + 5, + Weapons.BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD, + ) + BRU_33_with_2_x_Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 5, + Weapons.BRU_33_with_2_x_Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + BRU_33_with_2_x_Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 5, + Weapons.BRU_33_with_2_x_Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD = ( + 5, + Weapons.BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD, + ) + BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD = ( + 5, + Weapons.BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD, + ) + GBU_10___2000lb_Laser_Guided_Bomb = ( + 5, + Weapons.GBU_10___2000lb_Laser_Guided_Bomb, + ) + GBU_24A_B_Paveway_III___2000lb_Laser_Guided_Bomb = ( + 5, + Weapons.GBU_24A_B_Paveway_III___2000lb_Laser_Guided_Bomb, + ) + BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD = ( + 5, + Weapons.BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD, + ) + GBU_12___500lb_Laser_Guided_Bomb = (5, Weapons.GBU_12___500lb_Laser_Guided_Bomb) + GBU_16___1000lb_Laser_Guided_Bomb = ( + 5, + Weapons.GBU_16___1000lb_Laser_Guided_Bomb, + ) + CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 5, + Weapons.CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 5, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 5, + Weapons.BRU_33_with_2_x_CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb = ( + 5, + Weapons.BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb, + ) + # ERRR + AGM_154A___JSOW_CEB__CBU_type_ = (5, Weapons.AGM_154A___JSOW_CEB__CBU_type_) + BRU_55_with_2_x_AGM_154A___JSOW_CEB__CBU_type_ = ( + 5, + Weapons.BRU_55_with_2_x_AGM_154A___JSOW_CEB__CBU_type_, + ) + AGM_154C___JSOW_Unitary_BROACH = (5, Weapons.AGM_154C___JSOW_Unitary_BROACH) + BRU_55_with_2_x_AGM_154C___JSOW_Unitary_BROACH = ( + 5, + Weapons.BRU_55_with_2_x_AGM_154C___JSOW_Unitary_BROACH, + ) + GBU_31_V_2_B___JDAM__2000lb_GPS_Guided_Bomb = ( + 5, + Weapons.GBU_31_V_2_B___JDAM__2000lb_GPS_Guided_Bomb, + ) + GBU_31_V_4_B___JDAM__2000lb_GPS_Guided_Penetrator_Bomb = ( + 5, + Weapons.GBU_31_V_4_B___JDAM__2000lb_GPS_Guided_Penetrator_Bomb, + ) + GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb = ( + 5, + Weapons.GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb, + ) + GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 5, + Weapons.GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + BRU_55_with_2_x_GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 5, + Weapons.BRU_55_with_2_x_GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + AGM_84D_Harpoon_AShM = (5, Weapons.AGM_84D_Harpoon_AShM) + AWW_13_DATALINK_POD = (5, Weapons.AWW_13_DATALINK_POD) + GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD = ( + 5, + Weapons.GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD, + ) + + class Pylon6: + LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar = ( + 6, + Weapons.LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar = ( + 6, + Weapons.LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar = ( + 6, + Weapons.LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar, + ) + FPU_12_Fuel_Tank_480_gallons = (6, WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons) + FPU_12_Fuel_Tank_480_gallons_High_Vis = ( + 6, + WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons_High_Vis, + ) + LAU_115_with_1_x_LAU_127_AIM_120B_AMRAAM___Active_Radar_AAM = ( + 6, + Weapons.LAU_115_with_1_x_LAU_127_AIM_120B_AMRAAM___Active_Radar_AAM, + ) + LAU_115_with_1_x_LAU_127_AIM_120C_AMRAAM___Active_Radar_AAM = ( + 6, + Weapons.LAU_115_with_1_x_LAU_127_AIM_120C_AMRAAM___Active_Radar_AAM, + ) + LAU_115_2_LAU_127_AIM_120B = (6, Weapons.LAU_115_2_LAU_127_AIM_120B) + LAU_115_2_LAU_127_AIM_120C = (6, Weapons.LAU_115_2_LAU_127_AIM_120C) + LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_ = ( + 6, + Weapons.LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_, + ) + LAU_117_CATM_65K = (6, Weapons.LAU_117_CATM_65K) + LAU_117_AGM_65F = (6, Weapons.LAU_117_AGM_65F) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 6, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + Mk_82___500lb_GP_Bomb_LD = (6, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_82_Snakeye___500lb_GP_Bomb_HD = (6, Weapons.Mk_82_Snakeye___500lb_GP_Bomb_HD) + Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 6, + Weapons.Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + Mk_83___1000lb_GP_Bomb_LD = (6, Weapons.Mk_83___1000lb_GP_Bomb_LD) + Mk_84___2000lb_GP_Bomb_LD = (6, Weapons.Mk_84___2000lb_GP_Bomb_LD) + BDU_45___500lb_Practice_Bomb = (6, Weapons.BDU_45___500lb_Practice_Bomb) + BDU_45B___500lb_Practice_Bomb = (6, Weapons.BDU_45B___500lb_Practice_Bomb) + AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_ = ( + 6, + Weapons.AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_, + ) + AGM_84H_SLAM_ER__Expanded_Response_ = ( + 6, + Weapons.AGM_84H_SLAM_ER__Expanded_Response_, + ) + BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD = ( + 6, + Weapons.BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD, + ) + BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD = ( + 6, + Weapons.BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD, + ) + BRU_33_with_2_x_Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 6, + Weapons.BRU_33_with_2_x_Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + BRU_33_with_2_x_BDU_45___500lb_Practice_Bomb = ( + 6, + Weapons.BRU_33_with_2_x_BDU_45___500lb_Practice_Bomb, + ) + BRU_33_with_2_x_BDU_45B___500lb_Practice_Bomb = ( + 6, + Weapons.BRU_33_with_2_x_BDU_45B___500lb_Practice_Bomb, + ) + BRU_33_with_2_x_Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 6, + Weapons.BRU_33_with_2_x_Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD = ( + 6, + Weapons.BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD, + ) + BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD = ( + 6, + Weapons.BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD, + ) + GBU_10___2000lb_Laser_Guided_Bomb = ( + 6, + Weapons.GBU_10___2000lb_Laser_Guided_Bomb, + ) + GBU_24A_B_Paveway_III___2000lb_Laser_Guided_Bomb = ( + 6, + Weapons.GBU_24A_B_Paveway_III___2000lb_Laser_Guided_Bomb, + ) + BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD = ( + 6, + Weapons.BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD, + ) + GBU_12___500lb_Laser_Guided_Bomb = (6, Weapons.GBU_12___500lb_Laser_Guided_Bomb) + GBU_16___1000lb_Laser_Guided_Bomb = ( + 6, + Weapons.GBU_16___1000lb_Laser_Guided_Bomb, + ) + CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 6, + Weapons.CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 6, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 6, + Weapons.BRU_33_with_2_x_CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb = ( + 6, + Weapons.BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb, + ) + # ERRR + AGM_154A___JSOW_CEB__CBU_type_ = (6, Weapons.AGM_154A___JSOW_CEB__CBU_type_) + BRU_55_with_2_x_AGM_154A___JSOW_CEB__CBU_type_ = ( + 6, + Weapons.BRU_55_with_2_x_AGM_154A___JSOW_CEB__CBU_type_, + ) + AGM_154C___JSOW_Unitary_BROACH = (6, Weapons.AGM_154C___JSOW_Unitary_BROACH) + BRU_55_with_2_x_AGM_154C___JSOW_Unitary_BROACH = ( + 6, + Weapons.BRU_55_with_2_x_AGM_154C___JSOW_Unitary_BROACH, + ) + GBU_31_V_2_B___JDAM__2000lb_GPS_Guided_Bomb = ( + 6, + Weapons.GBU_31_V_2_B___JDAM__2000lb_GPS_Guided_Bomb, + ) + GBU_31_V_4_B___JDAM__2000lb_GPS_Guided_Penetrator_Bomb = ( + 6, + Weapons.GBU_31_V_4_B___JDAM__2000lb_GPS_Guided_Penetrator_Bomb, + ) + GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb = ( + 6, + Weapons.GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb, + ) + GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 6, + Weapons.GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + BRU_55_with_2_x_GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 6, + Weapons.BRU_55_with_2_x_GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + AGM_84D_Harpoon_AShM = (6, Weapons.AGM_84D_Harpoon_AShM) + AWW_13_DATALINK_POD = (6, Weapons.AWW_13_DATALINK_POD) + GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD = ( + 6, + Weapons.GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD, + ) + + class Pylon7: + LAU_115_2_LAU_127_AIM_9M = (7, Weapons.LAU_115_2_LAU_127_AIM_9M) + LAU_115_2_LAU_127_CATM_9M = (7, Weapons.LAU_115_2_LAU_127_CATM_9M) + LAU_115_2_LAU_127_AIM_9L = (7, Weapons.LAU_115_2_LAU_127_AIM_9L) + LAU_115_2_LAU_127_AIM_9X = (7, Weapons.LAU_115_2_LAU_127_AIM_9X) + LAU_115_LAU_127_AIM_9X = (7, Weapons.LAU_115_LAU_127_AIM_9X) + LAU_115_LAU_127_CATM_9M = (7, Weapons.LAU_115_LAU_127_CATM_9M) + LAU_115_LAU_127_AIM_9L = (7, Weapons.LAU_115_LAU_127_AIM_9L) + LAU_115_LAU_127_AIM_9M = (7, Weapons.LAU_115_LAU_127_AIM_9M) + LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar = ( + 7, + Weapons.LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar = ( + 7, + Weapons.LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar = ( + 7, + Weapons.LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7P_Sparrow_Semi_Active_Radar = ( + 7, + Weapons.LAU_115C_with_AIM_7P_Sparrow_Semi_Active_Radar, + ) + FPU_12_Fuel_Tank_480_gallons = (7, WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons) + FPU_12_Fuel_Tank_480_gallons_High_Vis = ( + 7, + WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons_High_Vis, + ) + AIM_120B_AMRAAM___Active_Rdr_AAM = (7, Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 7, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + LAU_115_2_LAU_127_AIM_120B = (7, Weapons.LAU_115_2_LAU_127_AIM_120B) + LAU_115_2_LAU_127_AIM_120C = (7, Weapons.LAU_115_2_LAU_127_AIM_120C) + # ERRR LAU-115_2*LAU-127_CATM-120C + # ERRR LAU_117_TGM_65E + # ERRR LAU_117_TGM_65F + LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_ = ( + 7, + Weapons.LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_, + ) + LAU_117_CATM_65K = (7, Weapons.LAU_117_CATM_65K) + LAU_117_AGM_65F = (7, Weapons.LAU_117_AGM_65F) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 7, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + Mk_82___500lb_GP_Bomb_LD = (7, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_82_Snakeye___500lb_GP_Bomb_HD = (7, Weapons.Mk_82_Snakeye___500lb_GP_Bomb_HD) + Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 7, + Weapons.Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + Mk_83___1000lb_GP_Bomb_LD = (7, Weapons.Mk_83___1000lb_GP_Bomb_LD) + Mk_84___2000lb_GP_Bomb_LD = (7, Weapons.Mk_84___2000lb_GP_Bomb_LD) + BDU_45___500lb_Practice_Bomb = (7, Weapons.BDU_45___500lb_Practice_Bomb) + BDU_45B___500lb_Practice_Bomb = (7, Weapons.BDU_45B___500lb_Practice_Bomb) + AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_ = ( + 7, + Weapons.AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_, + ) + AGM_84H_SLAM_ER__Expanded_Response_ = ( + 7, + Weapons.AGM_84H_SLAM_ER__Expanded_Response_, + ) + BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD = ( + 7, + Weapons.BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD, + ) + BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD = ( + 7, + Weapons.BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD, + ) + BRU_33_with_2_x_Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 7, + Weapons.BRU_33_with_2_x_Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + BRU_33_with_2_x_BDU_45___500lb_Practice_Bomb = ( + 7, + Weapons.BRU_33_with_2_x_BDU_45___500lb_Practice_Bomb, + ) + BRU_33_with_2_x_BDU_45B___500lb_Practice_Bomb = ( + 7, + Weapons.BRU_33_with_2_x_BDU_45B___500lb_Practice_Bomb, + ) + BRU_33_with_2_x_Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 7, + Weapons.BRU_33_with_2_x_Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD = ( + 7, + Weapons.BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD, + ) + BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD = ( + 7, + Weapons.BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD, + ) + GBU_10___2000lb_Laser_Guided_Bomb = ( + 7, + Weapons.GBU_10___2000lb_Laser_Guided_Bomb, + ) + BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD = ( + 7, + Weapons.BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD, + ) + GBU_12___500lb_Laser_Guided_Bomb = (7, Weapons.GBU_12___500lb_Laser_Guided_Bomb) + GBU_24A_B_Paveway_III___2000lb_Laser_Guided_Bomb = ( + 7, + Weapons.GBU_24A_B_Paveway_III___2000lb_Laser_Guided_Bomb, + ) + GBU_16___1000lb_Laser_Guided_Bomb = ( + 7, + Weapons.GBU_16___1000lb_Laser_Guided_Bomb, + ) + CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 7, + Weapons.CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 7, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 7, + Weapons.BRU_33_with_2_x_CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb = ( + 7, + Weapons.BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb, + ) + # ERRR + AGM_154A___JSOW_CEB__CBU_type_ = (7, Weapons.AGM_154A___JSOW_CEB__CBU_type_) + BRU_55_with_2_x_AGM_154A___JSOW_CEB__CBU_type_ = ( + 7, + Weapons.BRU_55_with_2_x_AGM_154A___JSOW_CEB__CBU_type_, + ) + AGM_154C___JSOW_Unitary_BROACH = (7, Weapons.AGM_154C___JSOW_Unitary_BROACH) + BRU_55_with_2_x_AGM_154C___JSOW_Unitary_BROACH = ( + 7, + Weapons.BRU_55_with_2_x_AGM_154C___JSOW_Unitary_BROACH, + ) + GBU_31_V_2_B___JDAM__2000lb_GPS_Guided_Bomb = ( + 7, + Weapons.GBU_31_V_2_B___JDAM__2000lb_GPS_Guided_Bomb, + ) + GBU_31_V_4_B___JDAM__2000lb_GPS_Guided_Penetrator_Bomb = ( + 7, + Weapons.GBU_31_V_4_B___JDAM__2000lb_GPS_Guided_Penetrator_Bomb, + ) + GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb = ( + 7, + Weapons.GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb, + ) + GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 7, + Weapons.GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + BRU_55_with_2_x_GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 7, + Weapons.BRU_55_with_2_x_GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + AGM_84D_Harpoon_AShM = (7, Weapons.AGM_84D_Harpoon_AShM) + AWW_13_DATALINK_POD = (7, Weapons.AWW_13_DATALINK_POD) + GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD = ( + 7, + Weapons.GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD, + ) + BRU_42_with_3_x_ADM_141A_TALD = (7, Weapons.BRU_42_with_3_x_ADM_141A_TALD) + BRU_42_with_2_x_ADM_141A_TALD = (7, Weapons.BRU_42_with_2_x_ADM_141A_TALD) + BRU_42_with_ADM_141A_TALD = (7, Weapons.BRU_42_with_ADM_141A_TALD) + + class Pylon8: + TLAU_127 = (8, WeaponsFA18EFG.TLAU_127) + AIM_120B_AMRAAM___Active_Rdr_AAM = (8, Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 8, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + # ERRR {CATM-120C} + LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar = ( + 8, + Weapons.LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar = ( + 8, + Weapons.LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar = ( + 8, + Weapons.LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7P_Sparrow_Semi_Active_Radar = ( + 8, + Weapons.LAU_115C_with_AIM_7P_Sparrow_Semi_Active_Radar, + ) + # ERRR LAU_117_TGM_65E + # ERRR LAU_117_TGM_65F + LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_ = ( + 8, + Weapons.LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_, + ) + LAU_117_AGM_65F = (8, Weapons.LAU_117_AGM_65F) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 8, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + Mk_82___500lb_GP_Bomb_LD = (8, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_82_Snakeye___500lb_GP_Bomb_HD = (8, Weapons.Mk_82_Snakeye___500lb_GP_Bomb_HD) + Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 8, + Weapons.Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + Mk_83___1000lb_GP_Bomb_LD = (8, Weapons.Mk_83___1000lb_GP_Bomb_LD) + BDU_45___500lb_Practice_Bomb = (8, Weapons.BDU_45___500lb_Practice_Bomb) + BDU_45B___500lb_Practice_Bomb = (8, Weapons.BDU_45B___500lb_Practice_Bomb) + GBU_12___500lb_Laser_Guided_Bomb = (8, Weapons.GBU_12___500lb_Laser_Guided_Bomb) + GBU_16___1000lb_Laser_Guided_Bomb = ( + 8, + Weapons.GBU_16___1000lb_Laser_Guided_Bomb, + ) + CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 8, + Weapons.CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 8, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + # ERRR + GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb = ( + 8, + Weapons.GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb, + ) + GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 8, + Weapons.GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD = ( + 8, + Weapons.GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD, + ) + AGM_154A___JSOW_CEB__CBU_type_ = (8, Weapons.AGM_154A___JSOW_CEB__CBU_type_) + AGM_154C___JSOW_Unitary_BROACH = (8, Weapons.AGM_154C___JSOW_Unitary_BROACH) + BRU_42_with_2_x_ADM_141A_TALD = (8, Weapons.BRU_42_with_2_x_ADM_141A_TALD) + BRU_42_with_ADM_141A_TALD = (8, Weapons.BRU_42_with_ADM_141A_TALD) + + class Pylon9: + AIM_9M_Sidewinder_IR_AAM = (9, Weapons.AIM_9M_Sidewinder_IR_AAM) + CATM_9M = (9, Weapons.CATM_9M) + # ERRR {CATM-9M} + # ERRR {CATM-9X} + AIM_9X_Sidewinder_IR_AAM = (9, Weapons.AIM_9X_Sidewinder_IR_AAM) + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (9, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + + # ERRR + + class Pylon10: + AA42R_Buddy_Pod = (10, WeaponsFA18EFG.AA42R_Buddy_Pod) + FPU_12_Fuel_Tank_480_gallons = (10, WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons) + FPU_12_Fuel_Tank_480_gallons_High_Vis = ( + 10, + WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons_High_Vis, + ) + USAFlag = (10, WeaponsFA18EFG.USAFlag) + Smoke_Generator___red_ = (10, Weapons.Smoke_Generator___red_) + Smoke_Generator___green_ = (10, Weapons.Smoke_Generator___green_) + Smoke_Generator___blue_ = (10, Weapons.Smoke_Generator___blue_) + Smoke_Generator___white_ = (10, Weapons.Smoke_Generator___white_) + Smoke_Generator___yellow_ = (10, Weapons.Smoke_Generator___yellow_) + Smoke_Generator___orange_ = (10, Weapons.Smoke_Generator___orange_) + + pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} + + tasks = [ + task.CAP, + task.Escort, + task.FighterSweep, + task.Intercept, + task.PinpointStrike, + task.CAS, + task.GroundAttack, + task.RunwayAttack, + task.SEAD, + task.AFAC, + task.AntishipStrike, + task.Reconnaissance, + ] + task_default = task.CAP + + +@planemod +class FA_18F(PlaneType): + id = "FA-18F" + flyable = True + height = 4.66 + width = 11.43 + length = 17.07 + fuel_max = 4900 + max_speed = 1950.12 + chaff = 60 + flare = 60 + charge_total = 120 + chaff_charge_size = 1 + flare_charge_size = 1 + eplrs = True + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 305 + + panel_radio = { + 1: { + "channels": { + 1: 305, + 2: 264, + 4: 256, + 8: 257, + 16: 261, + 17: 267, + 9: 255, + 18: 251, + 5: 254, + 10: 262, + 20: 266, + 11: 259, + 3: 265, + 6: 250, + 12: 268, + 13: 269, + 7: 270, + 14: 260, + 19: 253, + 15: 263, + }, + }, + 2: { + "channels": { + 1: 305, + 2: 264, + 4: 256, + 8: 257, + 16: 261, + 17: 267, + 9: 255, + 18: 251, + 5: 254, + 10: 262, + 20: 266, + 11: 259, + 3: 265, + 6: 250, + 12: 268, + 13: 269, + 7: 270, + 14: 260, + 19: 253, + 15: 263, + }, + }, + } + + callnames: Dict[str, List[str]] = { + "USA": [ + "Hornet", + "Squid", + "Ragin", + "Roman", + "Sting", + "Jury", + "Joker", + "Ram", + "Hawk", + "Devil", + "Check", + "Snake", + ] + } + + property_defaults: Dict[str, Any] = { + "OuterBoard": 0, + "InnerBoard": 0, + "HelmetMountedDevice": 1, + } + + class Properties: + class OuterBoard: + id = "OuterBoard" + + class Values: + Single = 0 + Ripple = 1 + + class InnerBoard: + id = "InnerBoard" + + class Values: + Single = 0 + Ripple = 1 + + class HelmetMountedDevice: + id = "HelmetMountedDevice" + + class Values: + Not_installed = 0 + JHMCS = 1 + NVG = 2 + + livery_name = "FA-18F" # from type + Liveries = Liveries()[livery_name] + + class Pylon1: + AIM_9M_Sidewinder_IR_AAM = (1, Weapons.AIM_9M_Sidewinder_IR_AAM) + CATM_9M = (1, Weapons.CATM_9M) + # ERRR {CATM-9M} + # ERRR {CATM-9X} + AIM_9X_Sidewinder_IR_AAM = (1, Weapons.AIM_9X_Sidewinder_IR_AAM) + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (1, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + + class Pylon2: + TLAU_127 = (2, WeaponsFA18EFG.TLAU_127) + AIM_120B_AMRAAM___Active_Rdr_AAM = (2, Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 2, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + # ERRR {CATM-120C} + LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar = ( + 2, + Weapons.LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar = ( + 2, + Weapons.LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar = ( + 2, + Weapons.LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7P_Sparrow_Semi_Active_Radar = ( + 2, + Weapons.LAU_115C_with_AIM_7P_Sparrow_Semi_Active_Radar, + ) + # ERRR LAU_117_TGM_65E + # ERRR LAU_117_TGM_65F + 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) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 2, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + Mk_82___500lb_GP_Bomb_LD = (2, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_82_Snakeye___500lb_GP_Bomb_HD = (2, Weapons.Mk_82_Snakeye___500lb_GP_Bomb_HD) + Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 2, + Weapons.Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + Mk_83___1000lb_GP_Bomb_LD = (2, Weapons.Mk_83___1000lb_GP_Bomb_LD) + BDU_45___500lb_Practice_Bomb = (2, Weapons.BDU_45___500lb_Practice_Bomb) + BDU_45B___500lb_Practice_Bomb = (2, Weapons.BDU_45B___500lb_Practice_Bomb) + GBU_12___500lb_Laser_Guided_Bomb = (2, Weapons.GBU_12___500lb_Laser_Guided_Bomb) + GBU_16___1000lb_Laser_Guided_Bomb = ( + 2, + Weapons.GBU_16___1000lb_Laser_Guided_Bomb, + ) + CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 2, + Weapons.CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 2, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + # ERRR + GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb = ( + 2, + Weapons.GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb, + ) + GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 2, + Weapons.GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD = ( + 2, + Weapons.GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD, + ) + AGM_154A___JSOW_CEB__CBU_type_ = (2, Weapons.AGM_154A___JSOW_CEB__CBU_type_) + AGM_154C___JSOW_Unitary_BROACH = (2, Weapons.AGM_154C___JSOW_Unitary_BROACH) + BRU_42_with_2_x_ADM_141A_TALD = (2, Weapons.BRU_42_with_2_x_ADM_141A_TALD) + BRU_42_with_ADM_141A_TALD = (2, Weapons.BRU_42_with_ADM_141A_TALD) + + class Pylon3: + LAU_115_2_LAU_127_AIM_9M = (3, Weapons.LAU_115_2_LAU_127_AIM_9M) + LAU_115_2_LAU_127_CATM_9M = (3, Weapons.LAU_115_2_LAU_127_CATM_9M) + LAU_115_2_LAU_127_AIM_9L = (3, Weapons.LAU_115_2_LAU_127_AIM_9L) + LAU_115_2_LAU_127_AIM_9X = (3, Weapons.LAU_115_2_LAU_127_AIM_9X) + LAU_115_LAU_127_AIM_9X = (3, Weapons.LAU_115_LAU_127_AIM_9X) + LAU_115_LAU_127_CATM_9M = (3, Weapons.LAU_115_LAU_127_CATM_9M) + LAU_115_LAU_127_AIM_9L = (3, Weapons.LAU_115_LAU_127_AIM_9L) + LAU_115_LAU_127_AIM_9M = (3, Weapons.LAU_115_LAU_127_AIM_9M) + LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar = ( + 3, + Weapons.LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar = ( + 3, + Weapons.LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar = ( + 3, + Weapons.LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7P_Sparrow_Semi_Active_Radar = ( + 3, + Weapons.LAU_115C_with_AIM_7P_Sparrow_Semi_Active_Radar, + ) + FPU_12_Fuel_Tank_480_gallons = (3, WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons) + FPU_12_Fuel_Tank_480_gallons_High_Vis = ( + 3, + WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons_High_Vis, + ) + AIM_120B_AMRAAM___Active_Rdr_AAM = (3, Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 3, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + LAU_115_2_LAU_127_AIM_120B = (3, Weapons.LAU_115_2_LAU_127_AIM_120B) + LAU_115_2_LAU_127_AIM_120C = (3, Weapons.LAU_115_2_LAU_127_AIM_120C) + # ERRR LAU-115_2*LAU-127_CATM-120C + # ERRR LAU_117_TGM_65E + # ERRR LAU_117_TGM_65F + 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_CATM_65K = (3, Weapons.LAU_117_CATM_65K) + LAU_117_AGM_65F = (3, Weapons.LAU_117_AGM_65F) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 3, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + Mk_82___500lb_GP_Bomb_LD = (3, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_82_Snakeye___500lb_GP_Bomb_HD = (3, Weapons.Mk_82_Snakeye___500lb_GP_Bomb_HD) + Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 3, + Weapons.Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + Mk_83___1000lb_GP_Bomb_LD = (3, Weapons.Mk_83___1000lb_GP_Bomb_LD) + Mk_84___2000lb_GP_Bomb_LD = (3, Weapons.Mk_84___2000lb_GP_Bomb_LD) + BDU_45___500lb_Practice_Bomb = (3, Weapons.BDU_45___500lb_Practice_Bomb) + BDU_45B___500lb_Practice_Bomb = (3, Weapons.BDU_45B___500lb_Practice_Bomb) + AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_ = ( + 3, + Weapons.AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_, + ) + AGM_84H_SLAM_ER__Expanded_Response_ = ( + 3, + Weapons.AGM_84H_SLAM_ER__Expanded_Response_, + ) + BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD = ( + 3, + Weapons.BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD, + ) + BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD = ( + 3, + Weapons.BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD, + ) + BRU_33_with_2_x_Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 3, + Weapons.BRU_33_with_2_x_Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + BRU_33_with_2_x_BDU_45___500lb_Practice_Bomb = ( + 3, + Weapons.BRU_33_with_2_x_BDU_45___500lb_Practice_Bomb, + ) + BRU_33_with_2_x_BDU_45B___500lb_Practice_Bomb = ( + 3, + Weapons.BRU_33_with_2_x_BDU_45B___500lb_Practice_Bomb, + ) + BRU_33_with_2_x_Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 3, + Weapons.BRU_33_with_2_x_Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD = ( + 3, + Weapons.BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD, + ) + BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD = ( + 3, + Weapons.BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD, + ) + GBU_10___2000lb_Laser_Guided_Bomb = ( + 3, + Weapons.GBU_10___2000lb_Laser_Guided_Bomb, + ) + BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD = ( + 3, + Weapons.BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD, + ) + GBU_12___500lb_Laser_Guided_Bomb = (3, Weapons.GBU_12___500lb_Laser_Guided_Bomb) + GBU_24A_B_Paveway_III___2000lb_Laser_Guided_Bomb = ( + 3, + Weapons.GBU_24A_B_Paveway_III___2000lb_Laser_Guided_Bomb, + ) + GBU_16___1000lb_Laser_Guided_Bomb = ( + 3, + Weapons.GBU_16___1000lb_Laser_Guided_Bomb, + ) + CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 3, + Weapons.CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 3, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 3, + Weapons.BRU_33_with_2_x_CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb = ( + 3, + Weapons.BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb, + ) + # ERRR + AGM_154A___JSOW_CEB__CBU_type_ = (3, Weapons.AGM_154A___JSOW_CEB__CBU_type_) + BRU_55_with_2_x_AGM_154A___JSOW_CEB__CBU_type_ = ( + 3, + Weapons.BRU_55_with_2_x_AGM_154A___JSOW_CEB__CBU_type_, + ) + AGM_154C___JSOW_Unitary_BROACH = (3, Weapons.AGM_154C___JSOW_Unitary_BROACH) + BRU_55_with_2_x_AGM_154C___JSOW_Unitary_BROACH = ( + 3, + Weapons.BRU_55_with_2_x_AGM_154C___JSOW_Unitary_BROACH, + ) + GBU_31_V_2_B___JDAM__2000lb_GPS_Guided_Bomb = ( + 3, + Weapons.GBU_31_V_2_B___JDAM__2000lb_GPS_Guided_Bomb, + ) + GBU_31_V_4_B___JDAM__2000lb_GPS_Guided_Penetrator_Bomb = ( + 3, + Weapons.GBU_31_V_4_B___JDAM__2000lb_GPS_Guided_Penetrator_Bomb, + ) + GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb = ( + 3, + Weapons.GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb, + ) + GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 3, + Weapons.GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + BRU_55_with_2_x_GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 3, + Weapons.BRU_55_with_2_x_GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + AGM_84D_Harpoon_AShM = (3, Weapons.AGM_84D_Harpoon_AShM) + AWW_13_DATALINK_POD = (3, Weapons.AWW_13_DATALINK_POD) + GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD = ( + 3, + Weapons.GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD, + ) + BRU_42_with_3_x_ADM_141A_TALD = (3, Weapons.BRU_42_with_3_x_ADM_141A_TALD) + BRU_42_with_2_x_ADM_141A_TALD = (3, Weapons.BRU_42_with_2_x_ADM_141A_TALD) + BRU_42_with_ADM_141A_TALD = (3, Weapons.BRU_42_with_ADM_141A_TALD) + + class Pylon4: + AIM_120B_AMRAAM___Active_Rdr_AAM = (4, Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 4, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + AN_ASQ_228_ATFLIR___Targeting_Pod = ( + 4, + Weapons.AN_ASQ_228_ATFLIR___Targeting_Pod, + ) + + class Pylon5: + LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar = ( + 5, + Weapons.LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar = ( + 5, + Weapons.LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar = ( + 5, + Weapons.LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar, + ) + FPU_12_Fuel_Tank_480_gallons = (5, WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons) + FPU_12_Fuel_Tank_480_gallons_High_Vis = ( + 5, + WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons_High_Vis, + ) + LAU_115_with_1_x_LAU_127_AIM_120B_AMRAAM___Active_Radar_AAM = ( + 5, + Weapons.LAU_115_with_1_x_LAU_127_AIM_120B_AMRAAM___Active_Radar_AAM, + ) + LAU_115_with_1_x_LAU_127_AIM_120C_AMRAAM___Active_Radar_AAM = ( + 5, + Weapons.LAU_115_with_1_x_LAU_127_AIM_120C_AMRAAM___Active_Radar_AAM, + ) + LAU_115_2_LAU_127_AIM_120B = (5, Weapons.LAU_115_2_LAU_127_AIM_120B) + LAU_115_2_LAU_127_AIM_120C = (5, Weapons.LAU_115_2_LAU_127_AIM_120C) + LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_ = ( + 5, + Weapons.LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_, + ) + LAU_117_CATM_65K = (5, Weapons.LAU_117_CATM_65K) + LAU_117_AGM_65F = (5, Weapons.LAU_117_AGM_65F) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 5, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + Mk_82___500lb_GP_Bomb_LD = (5, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_82_Snakeye___500lb_GP_Bomb_HD = (5, Weapons.Mk_82_Snakeye___500lb_GP_Bomb_HD) + Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 5, + Weapons.Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + Mk_83___1000lb_GP_Bomb_LD = (5, Weapons.Mk_83___1000lb_GP_Bomb_LD) + Mk_84___2000lb_GP_Bomb_LD = (5, Weapons.Mk_84___2000lb_GP_Bomb_LD) + AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_ = ( + 5, + Weapons.AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_, + ) + AGM_84H_SLAM_ER__Expanded_Response_ = ( + 5, + Weapons.AGM_84H_SLAM_ER__Expanded_Response_, + ) + BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD = ( + 5, + Weapons.BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD, + ) + BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD = ( + 5, + Weapons.BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD, + ) + BRU_33_with_2_x_Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 5, + Weapons.BRU_33_with_2_x_Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + BRU_33_with_2_x_Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 5, + Weapons.BRU_33_with_2_x_Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD = ( + 5, + Weapons.BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD, + ) + BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD = ( + 5, + Weapons.BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD, + ) + GBU_10___2000lb_Laser_Guided_Bomb = ( + 5, + Weapons.GBU_10___2000lb_Laser_Guided_Bomb, + ) + GBU_24A_B_Paveway_III___2000lb_Laser_Guided_Bomb = ( + 5, + Weapons.GBU_24A_B_Paveway_III___2000lb_Laser_Guided_Bomb, + ) + BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD = ( + 5, + Weapons.BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD, + ) + GBU_12___500lb_Laser_Guided_Bomb = (5, Weapons.GBU_12___500lb_Laser_Guided_Bomb) + GBU_16___1000lb_Laser_Guided_Bomb = ( + 5, + Weapons.GBU_16___1000lb_Laser_Guided_Bomb, + ) + CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 5, + Weapons.CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 5, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 5, + Weapons.BRU_33_with_2_x_CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb = ( + 5, + Weapons.BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb, + ) + # ERRR + AGM_154A___JSOW_CEB__CBU_type_ = (5, Weapons.AGM_154A___JSOW_CEB__CBU_type_) + BRU_55_with_2_x_AGM_154A___JSOW_CEB__CBU_type_ = ( + 5, + Weapons.BRU_55_with_2_x_AGM_154A___JSOW_CEB__CBU_type_, + ) + AGM_154C___JSOW_Unitary_BROACH = (5, Weapons.AGM_154C___JSOW_Unitary_BROACH) + BRU_55_with_2_x_AGM_154C___JSOW_Unitary_BROACH = ( + 5, + Weapons.BRU_55_with_2_x_AGM_154C___JSOW_Unitary_BROACH, + ) + GBU_31_V_2_B___JDAM__2000lb_GPS_Guided_Bomb = ( + 5, + Weapons.GBU_31_V_2_B___JDAM__2000lb_GPS_Guided_Bomb, + ) + GBU_31_V_4_B___JDAM__2000lb_GPS_Guided_Penetrator_Bomb = ( + 5, + Weapons.GBU_31_V_4_B___JDAM__2000lb_GPS_Guided_Penetrator_Bomb, + ) + GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb = ( + 5, + Weapons.GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb, + ) + GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 5, + Weapons.GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + BRU_55_with_2_x_GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 5, + Weapons.BRU_55_with_2_x_GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + AGM_84D_Harpoon_AShM = (5, Weapons.AGM_84D_Harpoon_AShM) + AWW_13_DATALINK_POD = (5, Weapons.AWW_13_DATALINK_POD) + GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD = ( + 5, + Weapons.GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD, + ) + + class Pylon6: + LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar = ( + 6, + Weapons.LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar = ( + 6, + Weapons.LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar = ( + 6, + Weapons.LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar, + ) + FPU_12_Fuel_Tank_480_gallons = (6, WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons) + FPU_12_Fuel_Tank_480_gallons_High_Vis = ( + 6, + WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons_High_Vis, + ) + LAU_115_with_1_x_LAU_127_AIM_120B_AMRAAM___Active_Radar_AAM = ( + 6, + Weapons.LAU_115_with_1_x_LAU_127_AIM_120B_AMRAAM___Active_Radar_AAM, + ) + LAU_115_with_1_x_LAU_127_AIM_120C_AMRAAM___Active_Radar_AAM = ( + 6, + Weapons.LAU_115_with_1_x_LAU_127_AIM_120C_AMRAAM___Active_Radar_AAM, + ) + LAU_115_2_LAU_127_AIM_120B = (6, Weapons.LAU_115_2_LAU_127_AIM_120B) + LAU_115_2_LAU_127_AIM_120C = (6, Weapons.LAU_115_2_LAU_127_AIM_120C) + LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_ = ( + 6, + Weapons.LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_, + ) + LAU_117_CATM_65K = (6, Weapons.LAU_117_CATM_65K) + LAU_117_AGM_65F = (6, Weapons.LAU_117_AGM_65F) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 6, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + Mk_82___500lb_GP_Bomb_LD = (6, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_82_Snakeye___500lb_GP_Bomb_HD = (6, Weapons.Mk_82_Snakeye___500lb_GP_Bomb_HD) + Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 6, + Weapons.Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + Mk_83___1000lb_GP_Bomb_LD = (6, Weapons.Mk_83___1000lb_GP_Bomb_LD) + Mk_84___2000lb_GP_Bomb_LD = (6, Weapons.Mk_84___2000lb_GP_Bomb_LD) + BDU_45___500lb_Practice_Bomb = (6, Weapons.BDU_45___500lb_Practice_Bomb) + BDU_45B___500lb_Practice_Bomb = (6, Weapons.BDU_45B___500lb_Practice_Bomb) + AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_ = ( + 6, + Weapons.AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_, + ) + AGM_84H_SLAM_ER__Expanded_Response_ = ( + 6, + Weapons.AGM_84H_SLAM_ER__Expanded_Response_, + ) + BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD = ( + 6, + Weapons.BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD, + ) + BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD = ( + 6, + Weapons.BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD, + ) + BRU_33_with_2_x_Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 6, + Weapons.BRU_33_with_2_x_Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + BRU_33_with_2_x_BDU_45___500lb_Practice_Bomb = ( + 6, + Weapons.BRU_33_with_2_x_BDU_45___500lb_Practice_Bomb, + ) + BRU_33_with_2_x_BDU_45B___500lb_Practice_Bomb = ( + 6, + Weapons.BRU_33_with_2_x_BDU_45B___500lb_Practice_Bomb, + ) + BRU_33_with_2_x_Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 6, + Weapons.BRU_33_with_2_x_Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD = ( + 6, + Weapons.BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD, + ) + BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD = ( + 6, + Weapons.BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD, + ) + GBU_10___2000lb_Laser_Guided_Bomb = ( + 6, + Weapons.GBU_10___2000lb_Laser_Guided_Bomb, + ) + GBU_24A_B_Paveway_III___2000lb_Laser_Guided_Bomb = ( + 6, + Weapons.GBU_24A_B_Paveway_III___2000lb_Laser_Guided_Bomb, + ) + BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD = ( + 6, + Weapons.BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD, + ) + GBU_12___500lb_Laser_Guided_Bomb = (6, Weapons.GBU_12___500lb_Laser_Guided_Bomb) + GBU_16___1000lb_Laser_Guided_Bomb = ( + 6, + Weapons.GBU_16___1000lb_Laser_Guided_Bomb, + ) + CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 6, + Weapons.CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 6, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 6, + Weapons.BRU_33_with_2_x_CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb = ( + 6, + Weapons.BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb, + ) + # ERRR + AGM_154A___JSOW_CEB__CBU_type_ = (6, Weapons.AGM_154A___JSOW_CEB__CBU_type_) + BRU_55_with_2_x_AGM_154A___JSOW_CEB__CBU_type_ = ( + 6, + Weapons.BRU_55_with_2_x_AGM_154A___JSOW_CEB__CBU_type_, + ) + AGM_154C___JSOW_Unitary_BROACH = (6, Weapons.AGM_154C___JSOW_Unitary_BROACH) + BRU_55_with_2_x_AGM_154C___JSOW_Unitary_BROACH = ( + 6, + Weapons.BRU_55_with_2_x_AGM_154C___JSOW_Unitary_BROACH, + ) + GBU_31_V_2_B___JDAM__2000lb_GPS_Guided_Bomb = ( + 6, + Weapons.GBU_31_V_2_B___JDAM__2000lb_GPS_Guided_Bomb, + ) + GBU_31_V_4_B___JDAM__2000lb_GPS_Guided_Penetrator_Bomb = ( + 6, + Weapons.GBU_31_V_4_B___JDAM__2000lb_GPS_Guided_Penetrator_Bomb, + ) + GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb = ( + 6, + Weapons.GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb, + ) + GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 6, + Weapons.GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + BRU_55_with_2_x_GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 6, + Weapons.BRU_55_with_2_x_GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + AGM_84D_Harpoon_AShM = (6, Weapons.AGM_84D_Harpoon_AShM) + AWW_13_DATALINK_POD = (6, Weapons.AWW_13_DATALINK_POD) + GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD = ( + 6, + Weapons.GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD, + ) + + class Pylon7: + LAU_115_2_LAU_127_AIM_9M = (7, Weapons.LAU_115_2_LAU_127_AIM_9M) + LAU_115_2_LAU_127_CATM_9M = (7, Weapons.LAU_115_2_LAU_127_CATM_9M) + LAU_115_2_LAU_127_AIM_9L = (7, Weapons.LAU_115_2_LAU_127_AIM_9L) + LAU_115_2_LAU_127_AIM_9X = (7, Weapons.LAU_115_2_LAU_127_AIM_9X) + LAU_115_LAU_127_AIM_9X = (7, Weapons.LAU_115_LAU_127_AIM_9X) + LAU_115_LAU_127_CATM_9M = (7, Weapons.LAU_115_LAU_127_CATM_9M) + LAU_115_LAU_127_AIM_9L = (7, Weapons.LAU_115_LAU_127_AIM_9L) + LAU_115_LAU_127_AIM_9M = (7, Weapons.LAU_115_LAU_127_AIM_9M) + LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar = ( + 7, + Weapons.LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar = ( + 7, + Weapons.LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar = ( + 7, + Weapons.LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7P_Sparrow_Semi_Active_Radar = ( + 7, + Weapons.LAU_115C_with_AIM_7P_Sparrow_Semi_Active_Radar, + ) + FPU_12_Fuel_Tank_480_gallons = (7, WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons) + FPU_12_Fuel_Tank_480_gallons_High_Vis = ( + 7, + WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons_High_Vis, + ) + AIM_120B_AMRAAM___Active_Rdr_AAM = (7, Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 7, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + LAU_115_2_LAU_127_AIM_120B = (7, Weapons.LAU_115_2_LAU_127_AIM_120B) + LAU_115_2_LAU_127_AIM_120C = (7, Weapons.LAU_115_2_LAU_127_AIM_120C) + # ERRR LAU-115_2*LAU-127_CATM-120C + # ERRR LAU_117_TGM_65E + # ERRR LAU_117_TGM_65F + LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_ = ( + 7, + Weapons.LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_, + ) + LAU_117_CATM_65K = (7, Weapons.LAU_117_CATM_65K) + LAU_117_AGM_65F = (7, Weapons.LAU_117_AGM_65F) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 7, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + Mk_82___500lb_GP_Bomb_LD = (7, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_82_Snakeye___500lb_GP_Bomb_HD = (7, Weapons.Mk_82_Snakeye___500lb_GP_Bomb_HD) + Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 7, + Weapons.Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + Mk_83___1000lb_GP_Bomb_LD = (7, Weapons.Mk_83___1000lb_GP_Bomb_LD) + Mk_84___2000lb_GP_Bomb_LD = (7, Weapons.Mk_84___2000lb_GP_Bomb_LD) + BDU_45___500lb_Practice_Bomb = (7, Weapons.BDU_45___500lb_Practice_Bomb) + BDU_45B___500lb_Practice_Bomb = (7, Weapons.BDU_45B___500lb_Practice_Bomb) + AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_ = ( + 7, + Weapons.AGM_84E_Harpoon_SLAM__Stand_Off_Land_Attack_Missile_, + ) + AGM_84H_SLAM_ER__Expanded_Response_ = ( + 7, + Weapons.AGM_84H_SLAM_ER__Expanded_Response_, + ) + BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD = ( + 7, + Weapons.BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD, + ) + BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD = ( + 7, + Weapons.BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD, + ) + BRU_33_with_2_x_Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 7, + Weapons.BRU_33_with_2_x_Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + BRU_33_with_2_x_BDU_45___500lb_Practice_Bomb = ( + 7, + Weapons.BRU_33_with_2_x_BDU_45___500lb_Practice_Bomb, + ) + BRU_33_with_2_x_BDU_45B___500lb_Practice_Bomb = ( + 7, + Weapons.BRU_33_with_2_x_BDU_45B___500lb_Practice_Bomb, + ) + BRU_33_with_2_x_Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 7, + Weapons.BRU_33_with_2_x_Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD = ( + 7, + Weapons.BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD, + ) + BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD = ( + 7, + Weapons.BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD, + ) + GBU_10___2000lb_Laser_Guided_Bomb = ( + 7, + Weapons.GBU_10___2000lb_Laser_Guided_Bomb, + ) + BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD = ( + 7, + Weapons.BRU_41A_with_6_x_BDU_33___25lb_Practice_Bomb_LD, + ) + GBU_12___500lb_Laser_Guided_Bomb = (7, Weapons.GBU_12___500lb_Laser_Guided_Bomb) + GBU_24A_B_Paveway_III___2000lb_Laser_Guided_Bomb = ( + 7, + Weapons.GBU_24A_B_Paveway_III___2000lb_Laser_Guided_Bomb, + ) + GBU_16___1000lb_Laser_Guided_Bomb = ( + 7, + Weapons.GBU_16___1000lb_Laser_Guided_Bomb, + ) + CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 7, + Weapons.CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 7, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 7, + Weapons.BRU_33_with_2_x_CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb = ( + 7, + Weapons.BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb, + ) + # ERRR + AGM_154A___JSOW_CEB__CBU_type_ = (7, Weapons.AGM_154A___JSOW_CEB__CBU_type_) + BRU_55_with_2_x_AGM_154A___JSOW_CEB__CBU_type_ = ( + 7, + Weapons.BRU_55_with_2_x_AGM_154A___JSOW_CEB__CBU_type_, + ) + AGM_154C___JSOW_Unitary_BROACH = (7, Weapons.AGM_154C___JSOW_Unitary_BROACH) + BRU_55_with_2_x_AGM_154C___JSOW_Unitary_BROACH = ( + 7, + Weapons.BRU_55_with_2_x_AGM_154C___JSOW_Unitary_BROACH, + ) + GBU_31_V_2_B___JDAM__2000lb_GPS_Guided_Bomb = ( + 7, + Weapons.GBU_31_V_2_B___JDAM__2000lb_GPS_Guided_Bomb, + ) + GBU_31_V_4_B___JDAM__2000lb_GPS_Guided_Penetrator_Bomb = ( + 7, + Weapons.GBU_31_V_4_B___JDAM__2000lb_GPS_Guided_Penetrator_Bomb, + ) + GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb = ( + 7, + Weapons.GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb, + ) + GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 7, + Weapons.GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + BRU_55_with_2_x_GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 7, + Weapons.BRU_55_with_2_x_GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + AGM_84D_Harpoon_AShM = (7, Weapons.AGM_84D_Harpoon_AShM) + AWW_13_DATALINK_POD = (7, Weapons.AWW_13_DATALINK_POD) + GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD = ( + 7, + Weapons.GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD, + ) + BRU_42_with_3_x_ADM_141A_TALD = (7, Weapons.BRU_42_with_3_x_ADM_141A_TALD) + BRU_42_with_2_x_ADM_141A_TALD = (7, Weapons.BRU_42_with_2_x_ADM_141A_TALD) + BRU_42_with_ADM_141A_TALD = (7, Weapons.BRU_42_with_ADM_141A_TALD) + + class Pylon8: + TLAU_127 = (8, WeaponsFA18EFG.TLAU_127) + AIM_120B_AMRAAM___Active_Rdr_AAM = (8, Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 8, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + # ERRR {CATM-120C} + LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar = ( + 8, + Weapons.LAU_115C_with_AIM_7M_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar = ( + 8, + Weapons.LAU_115C_with_AIM_7F_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar = ( + 8, + Weapons.LAU_115C_with_AIM_7MH_Sparrow_Semi_Active_Radar, + ) + LAU_115C_with_AIM_7P_Sparrow_Semi_Active_Radar = ( + 8, + Weapons.LAU_115C_with_AIM_7P_Sparrow_Semi_Active_Radar, + ) + # ERRR LAU_117_TGM_65E + # ERRR LAU_117_TGM_65F + LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_ = ( + 8, + Weapons.LAU_117_with_AGM_65E___Maverick_E__Laser_ASM___Lg_Whd_, + ) + LAU_117_AGM_65F = (8, Weapons.LAU_117_AGM_65F) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 8, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + Mk_82___500lb_GP_Bomb_LD = (8, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_82_Snakeye___500lb_GP_Bomb_HD = (8, Weapons.Mk_82_Snakeye___500lb_GP_Bomb_HD) + Mk_82Y___500lb_GP_Chute_Retarded_HD = ( + 8, + Weapons.Mk_82Y___500lb_GP_Chute_Retarded_HD, + ) + Mk_83___1000lb_GP_Bomb_LD = (8, Weapons.Mk_83___1000lb_GP_Bomb_LD) + BDU_45___500lb_Practice_Bomb = (8, Weapons.BDU_45___500lb_Practice_Bomb) + BDU_45B___500lb_Practice_Bomb = (8, Weapons.BDU_45B___500lb_Practice_Bomb) + GBU_12___500lb_Laser_Guided_Bomb = (8, Weapons.GBU_12___500lb_Laser_Guided_Bomb) + GBU_16___1000lb_Laser_Guided_Bomb = ( + 8, + Weapons.GBU_16___1000lb_Laser_Guided_Bomb, + ) + CBU_99___490lbs__247_x_HEAT_Bomblets = ( + 8, + Weapons.CBU_99___490lbs__247_x_HEAT_Bomblets, + ) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 8, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + # ERRR + GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb = ( + 8, + Weapons.GBU_32_V_2_B___JDAM__1000lb_GPS_Guided_Bomb, + ) + GBU_38___JDAM__500lb_GPS_Guided_Bomb = ( + 8, + Weapons.GBU_38___JDAM__500lb_GPS_Guided_Bomb, + ) + GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD = ( + 8, + Weapons.GBU_54B___LJDAM__500lb_Laser__GPS_Guided_Bomb_LD, + ) + AGM_154A___JSOW_CEB__CBU_type_ = (8, Weapons.AGM_154A___JSOW_CEB__CBU_type_) + AGM_154C___JSOW_Unitary_BROACH = (8, Weapons.AGM_154C___JSOW_Unitary_BROACH) + BRU_42_with_2_x_ADM_141A_TALD = (8, Weapons.BRU_42_with_2_x_ADM_141A_TALD) + BRU_42_with_ADM_141A_TALD = (8, Weapons.BRU_42_with_ADM_141A_TALD) + + class Pylon9: + AIM_9M_Sidewinder_IR_AAM = (9, Weapons.AIM_9M_Sidewinder_IR_AAM) + CATM_9M = (9, Weapons.CATM_9M) + # ERRR {CATM-9M} + # ERRR {CATM-9X} + AIM_9X_Sidewinder_IR_AAM = (9, Weapons.AIM_9X_Sidewinder_IR_AAM) + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (9, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + + # ERRR + + class Pylon10: + AA42R_Buddy_Pod = (10, WeaponsFA18EFG.AA42R_Buddy_Pod) + FPU_12_Fuel_Tank_480_gallons = (10, WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons) + FPU_12_Fuel_Tank_480_gallons_High_Vis = ( + 10, + WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons_High_Vis, + ) + USAFlag = (10, WeaponsFA18EFG.USAFlag) + Smoke_Generator___red_ = (10, Weapons.Smoke_Generator___red_) + Smoke_Generator___green_ = (10, Weapons.Smoke_Generator___green_) + Smoke_Generator___blue_ = (10, Weapons.Smoke_Generator___blue_) + Smoke_Generator___white_ = (10, Weapons.Smoke_Generator___white_) + Smoke_Generator___yellow_ = (10, Weapons.Smoke_Generator___yellow_) + Smoke_Generator___orange_ = (10, Weapons.Smoke_Generator___orange_) + + pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} + + tasks = [ + task.CAP, + task.Escort, + task.FighterSweep, + task.Intercept, + task.PinpointStrike, + task.CAS, + task.GroundAttack, + task.RunwayAttack, + task.SEAD, + task.AFAC, + task.AntishipStrike, + task.Reconnaissance, + ] + task_default = task.CAP + + +@planemod +class EA_18G(PlaneType): + id = "EA-18G" + flyable = True + height = 4.66 + width = 11.43 + length = 17.07 + fuel_max = 4900 + max_speed = 1950.12 + chaff = 60 + flare = 60 + charge_total = 120 + chaff_charge_size = 1 + flare_charge_size = 1 + eplrs = True + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 305 + + panel_radio = { + 1: { + "channels": { + 1: 305, + 2: 264, + 4: 256, + 8: 257, + 16: 261, + 17: 267, + 9: 255, + 18: 251, + 5: 254, + 10: 262, + 20: 266, + 11: 259, + 3: 265, + 6: 250, + 12: 268, + 13: 269, + 7: 270, + 14: 260, + 19: 253, + 15: 263, + }, + }, + 2: { + "channels": { + 1: 305, + 2: 264, + 4: 256, + 8: 257, + 16: 261, + 17: 267, + 9: 255, + 18: 251, + 5: 254, + 10: 262, + 20: 266, + 11: 259, + 3: 265, + 6: 250, + 12: 268, + 13: 269, + 7: 270, + 14: 260, + 19: 253, + 15: 263, + }, + }, + } + + callnames: Dict[str, List[str]] = { + "USA": [ + "Hornet", + "Squid", + "Ragin", + "Roman", + "Sting", + "Jury", + "Joker", + "Ram", + "Hawk", + "Devil", + "Check", + "Snake", + ] + } + + property_defaults: Dict[str, Any] = { + "OuterBoard": 0, + "InnerBoard": 0, + "HelmetMountedDevice": 1, + } + + class Properties: + class OuterBoard: + id = "OuterBoard" + + class Values: + Single = 0 + Ripple = 1 + + class InnerBoard: + id = "InnerBoard" + + class Values: + Single = 0 + Ripple = 1 + + class HelmetMountedDevice: + id = "HelmetMountedDevice" + + class Values: + Not_installed = 0 + JHMCS = 1 + NVG = 2 + + livery_name = "EA-18G" # from type + Liveries = Liveries()[livery_name] + + class Pylon1: + FPU_12_Fuel_Tank_480_gallons = (1, WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons) + FPU_12_Fuel_Tank_480_gallons_High_Vis = ( + 1, + WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons_High_Vis, + ) + ALQ_99Wing = (1, WeaponsFA18EFG.ALQ_99Wing) + + # ERRR + + class Pylon2: + FPU_12_Fuel_Tank_480_gallons = (2, WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons) + FPU_12_Fuel_Tank_480_gallons_High_Vis = ( + 2, + WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons_High_Vis, + ) + ALQ_99Wing = (2, WeaponsFA18EFG.ALQ_99Wing) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 2, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + + # ERRR + + class Pylon3: + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (3, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 3, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + # ERRR + TLAU_127 = (3, WeaponsFA18EFG.TLAU_127) + + class Pylon4: + AIM_120B_AMRAAM___Active_Rdr_AAM = (4, Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 4, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + + class Pylon5: + FPU_12_Fuel_Tank_480_gallons = (5, WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons) + FPU_12_Fuel_Tank_480_gallons_High_Vis = ( + 5, + WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons_High_Vis, + ) + ALQ_99Center = (5, WeaponsFA18EFG.ALQ_99Center) + + # ERRR + + class Pylon6: + AIM_120B_AMRAAM___Active_Rdr_AAM = (6, Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 6, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + + class Pylon7: + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (7, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 7, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + # ERRR + TLAU_127 = (7, WeaponsFA18EFG.TLAU_127) + + class Pylon8: + FPU_12_Fuel_Tank_480_gallons = (8, WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons) + FPU_12_Fuel_Tank_480_gallons_High_Vis = ( + 8, + WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons_High_Vis, + ) + ALQ_99Wing = (8, WeaponsFA18EFG.ALQ_99Wing) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 8, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + + # ERRR + + class Pylon9: + FPU_12_Fuel_Tank_480_gallons = (9, WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons) + FPU_12_Fuel_Tank_480_gallons_High_Vis = ( + 9, + WeaponsFA18EFG.FPU_12_Fuel_Tank_480_gallons_High_Vis, + ) + ALQ_99Wing = (9, WeaponsFA18EFG.ALQ_99Wing) + + # ERRR + + class Pylon10: + USAFlag = (10, WeaponsFA18EFG.USAFlag) + + pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} + + tasks = [ + task.CAP, + task.Escort, + task.FighterSweep, + task.Intercept, + task.PinpointStrike, + task.CAS, + task.GroundAttack, + task.RunwayAttack, + task.SEAD, + task.AFAC, + task.AntishipStrike, + task.Reconnaissance, + ] + task_default = task.CAP diff --git a/qt_ui/main.py b/qt_ui/main.py index 27779508..34fd4ed2 100644 --- a/qt_ui/main.py +++ b/qt_ui/main.py @@ -323,6 +323,7 @@ def create_game( ModSettings( a4_skyhawk=False, a6a_intruder=False, + fa_18efg=False, f4bc_phantom=False, f22_raptor=False, f84g_thunderjet=False, diff --git a/qt_ui/models.py b/qt_ui/models.py index 302060ff..86a5d774 100644 --- a/qt_ui/models.py +++ b/qt_ui/models.py @@ -151,7 +151,8 @@ class PackageModel(QAbstractListModel): @staticmethod def icon_for_flight(flight: Flight) -> Optional[QIcon]: """Returns the icon that should be displayed for the flight.""" - name = flight.unit_type.dcs_id + """Replace slashes with underscores because slashes are not allowed in filenames""" + name = flight.unit_type.dcs_id.replace("/", "_") if name in AIRCRAFT_ICONS: return QIcon(AIRCRAFT_ICONS[name]) return None @@ -451,7 +452,8 @@ class AirWingModel(QAbstractListModel): @staticmethod def icon_for_squadron(squadron: Squadron) -> Optional[QIcon]: """Returns the icon that should be displayed for the squadron.""" - name = squadron.aircraft.dcs_id + """Replace slashes with underscores because slashes are not allowed in filenames""" + name = squadron.aircraft.dcs_id.replace("/", "_") if name in AIRCRAFT_ICONS: return QIcon(AIRCRAFT_ICONS[name]) return None diff --git a/qt_ui/windows/AirWingConfigurationDialog.py b/qt_ui/windows/AirWingConfigurationDialog.py index 6541f1ee..2ee19027 100644 --- a/qt_ui/windows/AirWingConfigurationDialog.py +++ b/qt_ui/windows/AirWingConfigurationDialog.py @@ -453,7 +453,8 @@ class AircraftTypeList(QListView): @staticmethod def icon_for(aircraft: AircraftType) -> Optional[QIcon]: - name = aircraft.dcs_id + # Replace slashes with underscores because slashes are not allowed in filenames + name = aircraft.dcs_id.replace("/", "_") if name in AIRCRAFT_ICONS: return QIcon(AIRCRAFT_ICONS[name]) return None diff --git a/qt_ui/windows/mission/QFlightItem.py b/qt_ui/windows/mission/QFlightItem.py index 2a5f9a5d..c43a2aac 100644 --- a/qt_ui/windows/mission/QFlightItem.py +++ b/qt_ui/windows/mission/QFlightItem.py @@ -13,7 +13,10 @@ class QFlightItem(QStandardItem): self.flight = flight if self.flight.unit_type.dcs_id in AIRCRAFT_ICONS: - icon = QIcon((AIRCRAFT_ICONS[self.flight.unit_type.dcs_id])) + # Replace slashes with underscores because slashes are not allowed in filenames + icon = QIcon( + (AIRCRAFT_ICONS[self.flight.unit_type.dcs_id.replace("/", "_")]) + ) self.setIcon(icon) self.setEditable(False) self.setText(f"{flight} in {flight.flight_plan.startup_time()}") diff --git a/qt_ui/windows/mission/flight/settings/QFlightTypeTaskInfo.py b/qt_ui/windows/mission/flight/settings/QFlightTypeTaskInfo.py index 32324676..658e51cc 100644 --- a/qt_ui/windows/mission/flight/settings/QFlightTypeTaskInfo.py +++ b/qt_ui/windows/mission/flight/settings/QFlightTypeTaskInfo.py @@ -11,8 +11,11 @@ class QFlightTypeTaskInfo(QGroupBox): layout = QGridLayout() self.aircraft_icon = QLabel() - if self.flight.unit_type.dcs_id in AIRCRAFT_ICONS: - self.aircraft_icon.setPixmap(AIRCRAFT_ICONS[self.flight.unit_type.dcs_id]) + # Replace slashes with underscores because slashes are not allowed in filenames + if self.flight.unit_type.dcs_id.replace("/", "_") in AIRCRAFT_ICONS: + self.aircraft_icon.setPixmap( + AIRCRAFT_ICONS[self.flight.unit_type.dcs_id.replace("/", "_")] + ) self.task = QLabel("Task:") self.task_type = QLabel(str(flight.flight_type)) diff --git a/qt_ui/windows/newgame/QNewGameWizard.py b/qt_ui/windows/newgame/QNewGameWizard.py index fb8a4d2c..f6633c61 100644 --- a/qt_ui/windows/newgame/QNewGameWizard.py +++ b/qt_ui/windows/newgame/QNewGameWizard.py @@ -181,6 +181,7 @@ class NewGameWizard(QtWidgets.QWizard): f4bc_phantom=self.field("f4bc_phantom"), f15d_baz=self.field("f15d_baz"), f_16_idf=self.field("f_16_idf"), + fa_18efg=self.field("fa_18efg"), f22_raptor=self.field("f22_raptor"), f84g_thunderjet=self.field("f84g_thunderjet"), f100_supersabre=self.field("f100_supersabre"), @@ -814,6 +815,8 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.registerField("f15d_baz", f15d_baz) f_16_idf = QtWidgets.QCheckBox() self.registerField("f_16_idf", f_16_idf) + fa_18efg = QtWidgets.QCheckBox() + self.registerField("fa_18efg", fa_18efg) f22_raptor = QtWidgets.QCheckBox() self.registerField("f22_raptor", f22_raptor) f84g_thunderjet = QtWidgets.QCheckBox() @@ -854,6 +857,7 @@ class GeneratorOptions(QtWidgets.QWizardPage): ("F-4B/C Phantom II (v2.8.1.01 Standalone + 29Jan23 Patch)", f4bc_phantom), ("F-15D Baz (v1.0)", f15d_baz), ("F-16I Sufa & F-16D (v3.2 by IDF Mods Project)", f_16_idf), + ("F/A-18E/F/G Super Hornet (version 2.1)", fa_18efg), ("F-22A Raptor", f22_raptor), ("F-84G Thunderjet (v2.5.7.01)", f84g_thunderjet), ("F-100 Super Sabre (v2.7.18.30765 patch 20.10.22)", f100_supersabre), diff --git a/resources/customized_payloads/EA-18G.lua b/resources/customized_payloads/EA-18G.lua new file mode 100644 index 00000000..78827384 --- /dev/null +++ b/resources/customized_payloads/EA-18G.lua @@ -0,0 +1,53 @@ +local unitPayloads = { + ["name"] = "EA-18G", + ["payloads"] = { + [1] = { + ["name"] = "Retribution SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FPU_12_FUEL_TANKHighVis}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{ALQ-99Wing}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{ALQ-99Center}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 4, + }, + [7] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 3, + }, + [8] = { + ["CLSID"] = "{ALQ-99Wing}", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{FPU_12_FUEL_TANKHighVis}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "EA-18G", +} +return unitPayloads diff --git a/resources/customized_payloads/FA-18C.lua b/resources/customized_payloads/FA-18C.lua new file mode 100644 index 00000000..388fceef --- /dev/null +++ b/resources/customized_payloads/FA-18C.lua @@ -0,0 +1,367 @@ +local unitPayloads = { + ["name"] = "FA-18C", + ["payloads"] = { + [1] = { + ["displayName"] = "Liberation SEAD", + ["name"] = "Liberation SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{EFEC8200-B922-11d7-9897-000476191836}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 29, + }, + }, + [2] = { + ["displayName"] = "Liberation BARCAP", + ["name"] = "Liberation BARCAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "LAU-115_2*LAU-127_AIM-9M", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{EFEC8201-B922-11d7-9897-000476191836}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "LAU-115_2*LAU-127_AIM-9M", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 19, + [2] = 11, + [3] = 18, + }, + }, + [3] = { + ["displayName"] = "Liberation Anti-ship", + ["name"] = "Liberation Anti-ship", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{8B7CADF9-4954-46B3-8CFB-93F2F5B90B03}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{8B7CADF9-4954-46B3-8CFB-93F2F5B90B03}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{EFEC8201-B922-11d7-9897-000476191836}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{8B7CADF9-4954-46B3-8CFB-93F2F5B90B03}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{8B7CADF9-4954-46B3-8CFB-93F2F5B90B03}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [4] = { + ["displayName"] = "Liberation Strike", + ["name"] = "Liberation Strike", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{51F9AAE5-964F-4D21-83FB-502E3BFE5F8A}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{51F9AAE5-964F-4D21-83FB-502E3BFE5F8A}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{EFEC8201-B922-11d7-9897-000476191836}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{51F9AAE5-964F-4D21-83FB-502E3BFE5F8A}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{51F9AAE5-964F-4D21-83FB-502E3BFE5F8A}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [5] = { + ["displayName"] = "Liberation SEAD Escort", + ["name"] = "Liberation SEAD Escort", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{F16A4DE0-116C-4A71-97F0-2CF85B0313EC}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{EFEC8200-B922-11d7-9897-000476191836}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{F16A4DE0-116C-4A71-97F0-2CF85B0313EC}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 29, + }, + }, + [6] = { + ["displayName"] = "Liberation OCA/Runway", + ["name"] = "Liberation OCA/Runway", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{EFEC8201-B922-11d7-9897-000476191836}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [7] = { + ["displayName"] = "Liberation CAS", + ["name"] = "Liberation CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{F16A4DE0-116C-4A71-97F0-2CF85B0313EC}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{AF42E6DF-9A60-46D8-A9A0-1708B241AADB}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{EFEC8201-B922-11d7-9897-000476191836}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{AF42E6DF-9A60-46D8-A9A0-1708B241AADB}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{F16A4DE0-116C-4A71-97F0-2CF85B0313EC}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 9, + }, + }, + ["tasks"] = { + }, + }, + [8] = { + ["displayName"] = "Liberation DEAD", + ["name"] = "Liberation DEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{9BCC2A2B-5708-4860-B1F1-053A18442067}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{AF42E6DF-9A60-46D8-A9A0-1708B241AADB}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{EFEC8201-B922-11d7-9897-000476191836}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{AF42E6DF-9A60-46D8-A9A0-1708B241AADB}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{9BCC2A2B-5708-4860-B1F1-053A18442067}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 9, + }, + }, + ["tasks"] = { + }, + }, + }, + ["unitType"] = "F/A-18C", +} +return unitPayloads diff --git a/resources/customized_payloads/FA-18E.lua b/resources/customized_payloads/FA-18E.lua new file mode 100644 index 00000000..123e6587 --- /dev/null +++ b/resources/customized_payloads/FA-18E.lua @@ -0,0 +1,463 @@ +local unitPayloads = { + ["name"] = "FA-18E", + ["payloads"] = { + [1] = { + ["displayName"] = "Retribution SEAD", + ["name"] = "Retribution SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [2] = { + ["displayName"] = "Retribution BARCAP", + ["name"] = "Retribution BARCAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "LAU-115_2*LAU-127_AIM-120C", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "LAU-115_2*LAU-127_AIM-120C", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + [10] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [3] = { + ["displayName"] = "Retribution TARCAP/Escort", + ["name"] = "Retribution TARCAP/Escort", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "LAU-115_2*LAU-127_AIM-120C", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "LAU-115_2*LAU-127_AIM-120C", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [4] = { + ["displayName"] = "Retribution Anti-ship", + ["name"] = "Retribution Anti-ship", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{AGM_84D}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{AGM_84D}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [5] = { + ["displayName"] = "Retribution BAI", + ["name"] = "Retribution BAI", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "LAU_117_AGM_65F", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "LAU_117_AGM_65F", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "LAU_117_AGM_65F", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "LAU_117_AGM_65F", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [6] = { + ["displayName"] = "Retribution CAS", + ["name"] = "Retribution CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "LAU_117_AGM_65F", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{GBU_32_V_2B}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{GBU_32_V_2B}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "LAU_117_AGM_65F", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [7] = { + ["displayName"] = "Retribution OCA/Runway", + ["name"] = "Retribution OCA/Runway", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{GBU_31_V_4B}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{GBU_31_V_4B}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [8] = { + ["displayName"] = "Retribution DEAD", + ["name"] = "Retribution DEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{AGM-154A}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{AGM-154A}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{AGM-154A}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{AGM-154A}", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [9] = { + ["displayName"] = "Retribution Strike", + ["name"] = "Retribution Strike", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{GBU_32_V_2B}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{GBU_32_V_2B}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{GBU_32_V_2B}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{GBU_32_V_2B}", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [10] = { + ["displayName"] = "Retribution OCA/aircraft", + ["name"] = "Retribution OCA/aircraft", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{BRU33_2X_CBU-99}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{BRU33_2X_CBU-99}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "FA-18E", +} +return unitPayloads diff --git a/resources/customized_payloads/FA-18F.lua b/resources/customized_payloads/FA-18F.lua new file mode 100644 index 00000000..35360807 --- /dev/null +++ b/resources/customized_payloads/FA-18F.lua @@ -0,0 +1,463 @@ +local unitPayloads = { + ["name"] = "FA-18F", + ["payloads"] = { + [1] = { + ["displayName"] = "Retribution SEAD", + ["name"] = "Retribution SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [2] = { + ["displayName"] = "Retribution BARCAP", + ["name"] = "Retribution BARCAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "LAU-115_2*LAU-127_AIM-120C", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "LAU-115_2*LAU-127_AIM-120C", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + [10] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [3] = { + ["displayName"] = "Retribution TARCAP/Escort", + ["name"] = "Retribution TARCAP/Escort", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "LAU-115_2*LAU-127_AIM-120C", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "LAU-115_2*LAU-127_AIM-120C", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [4] = { + ["displayName"] = "Retribution Anti-ship", + ["name"] = "Retribution Anti-ship", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{AGM_84D}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{AGM_84D}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [5] = { + ["displayName"] = "Retribution BAI", + ["name"] = "Retribution BAI", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "LAU_117_AGM_65F", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "LAU_117_AGM_65F", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "LAU_117_AGM_65F", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "LAU_117_AGM_65F", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [6] = { + ["displayName"] = "Retribution CAS", + ["name"] = "Retribution CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "LAU_117_AGM_65F", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{GBU_32_V_2B}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{GBU_32_V_2B}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "LAU_117_AGM_65F", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [7] = { + ["displayName"] = "Retribution OCA/Runway", + ["name"] = "Retribution OCA/Runway", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{GBU_31_V_4B}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{GBU_31_V_4B}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [8] = { + ["displayName"] = "Retribution DEAD", + ["name"] = "Retribution DEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{AGM-154A}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{AGM-154A}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{AGM-154A}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{AGM-154A}", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [9] = { + ["displayName"] = "Retribution Strike", + ["name"] = "Retribution Strike", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{GBU_32_V_2B}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{GBU_32_V_2B}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{GBU_32_V_2B}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{GBU_32_V_2B}", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [10] = { + ["displayName"] = "Retribution OCA/aircraft", + ["name"] = "Retribution OCA/aircraft", + ["pylons"] = { + [1] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{BRU33_2X_CBU-99}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AN_ASQ_228}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{BRU33_2X_CBU-99}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FPU_12_FUEL_TANK}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 2, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "FA-18F", +} +return unitPayloads diff --git a/resources/factions/Israel-USN_2005_Allied_Sword.json b/resources/factions/Israel-USN_2005_Allied_Sword.json index 7f2e8fac..5261d07c 100644 --- a/resources/factions/Israel-USN_2005_Allied_Sword.json +++ b/resources/factions/Israel-USN_2005_Allied_Sword.json @@ -17,6 +17,9 @@ "F-16I Sufa", "F-14B Tomcat", "F/A-18C Hornet (Lot 20)", + "F/A-18E Super Hornet", + "F/A-18F Super Hornet", + "EA-18G Growler", "AV-8B Harrier II Night Attack", "AH-1W SuperCobra", "AH-64D Apache Longbow", diff --git a/resources/factions/bluefor_modern.json b/resources/factions/bluefor_modern.json index 4d3f7fa2..73531120 100644 --- a/resources/factions/bluefor_modern.json +++ b/resources/factions/bluefor_modern.json @@ -28,6 +28,9 @@ "F-22A Raptor", "F-5E Tiger II", "F/A-18C Hornet (Lot 20)", + "F/A-18E Super Hornet", + "F/A-18F Super Hornet", + "EA-18G Growler", "JF-17 Thunder", "Ka-50 Hokum", "Ka-50 Hokum III", diff --git a/resources/factions/usa_2005.json b/resources/factions/usa_2005.json index db58b93b..c5b9c944 100644 --- a/resources/factions/usa_2005.json +++ b/resources/factions/usa_2005.json @@ -30,6 +30,9 @@ "F-16D Fighting Falcon (Block 50)", "F-22A Raptor", "F/A-18C Hornet (Lot 20)", + "F/A-18E Super Hornet", + "F/A-18F Super Hornet", + "EA-18G Growler", "S-3B Viking", "SH-60B Seahawk", "UH-1H Iroquois", diff --git a/resources/factions/usn_2005.json b/resources/factions/usn_2005.json index e13159ec..29a0417a 100644 --- a/resources/factions/usn_2005.json +++ b/resources/factions/usn_2005.json @@ -9,6 +9,9 @@ "aircrafts": [ "F-14B Tomcat", "F/A-18C Hornet (Lot 20)", + "F/A-18E Super Hornet", + "F/A-18F Super Hornet", + "EA-18G Growler", "AV-8B Harrier II Night Attack", "AH-1W SuperCobra", "S-3B Viking", diff --git a/resources/squadrons/EA-18G/G-VAQ-130.yaml b/resources/squadrons/EA-18G/G-VAQ-130.yaml new file mode 100644 index 00000000..06868de9 --- /dev/null +++ b/resources/squadrons/EA-18G/G-VAQ-130.yaml @@ -0,0 +1,11 @@ +--- +name: VAQ-130 (E/A-18G) +nickname: Zappers +female_pilot_percentage: 12 +country: USA +role: Strike Fighter +aircraft: EA-18G Growler +livery: "*VFA-31 NH206" +mission_types: + - SEAD + - SEAD Escort diff --git a/resources/squadrons/EA-18G/G-VAQ-139.yaml b/resources/squadrons/EA-18G/G-VAQ-139.yaml new file mode 100644 index 00000000..40dbedda --- /dev/null +++ b/resources/squadrons/EA-18G/G-VAQ-139.yaml @@ -0,0 +1,11 @@ +--- +name: VAQ-139 (E/A-18G) +nickname: Cougars +female_pilot_percentage: 12 +country: USA +role: Strike Fighter +aircraft: EA-18G Growler +livery: "*VAQ-139 NA501" +mission_types: + - SEAD + - SEAD Escort diff --git a/resources/squadrons/FA-18E/E-VFA-146.yaml b/resources/squadrons/FA-18E/E-VFA-146.yaml new file mode 100644 index 00000000..993396b8 --- /dev/null +++ b/resources/squadrons/FA-18E/E-VFA-146.yaml @@ -0,0 +1,23 @@ +--- +name: VFA-146 (F/A-18E) +nickname: Blue Diamonds +female_pilot_percentage: 12 +country: USA +role: Strike Fighter +aircraft: F/A-18E Super Hornet +livery: "*VFA-146 NH304" +mission_types: + - Anti-ship + - BAI + - BARCAP + - CAS + - DEAD + - Escort + - Intercept + - OCA/Aircraft + - OCA/Runway + - SEAD + - SEAD Escort + - Strike + - Fighter sweep + - TARCAP diff --git a/resources/squadrons/FA-18E/E-VFA-31.yaml b/resources/squadrons/FA-18E/E-VFA-31.yaml new file mode 100644 index 00000000..396c6e9f --- /dev/null +++ b/resources/squadrons/FA-18E/E-VFA-31.yaml @@ -0,0 +1,23 @@ +--- +name: VFA-211 (F/A-18E) +nickname: Fighting Checkmates +female_pilot_percentage: 12 +country: USA +role: Strike Fighter +aircraft: F/A-18E Super Hornet +livery: "*VFA-31 NH206" +mission_types: + - Anti-ship + - BAI + - BARCAP + - CAS + - DEAD + - Escort + - Intercept + - OCA/Aircraft + - OCA/Runway + - SEAD + - SEAD Escort + - Strike + - Fighter sweep + - TARCAP diff --git a/resources/squadrons/FA-18E/E-VFA-83.yaml b/resources/squadrons/FA-18E/E-VFA-83.yaml new file mode 100644 index 00000000..9d3f7cba --- /dev/null +++ b/resources/squadrons/FA-18E/E-VFA-83.yaml @@ -0,0 +1,23 @@ +--- +name: VFA-83 (F/A-18E) +nickname: Rampagers +female_pilot_percentage: 12 +country: USA +role: Strike Fighter +aircraft: F/A-18E Super Hornet +livery: "*VFA-83 AC203 (2022)" +mission_types: + - Anti-ship + - BAI + - BARCAP + - CAS + - DEAD + - Escort + - Intercept + - OCA/Aircraft + - OCA/Runway + - SEAD + - SEAD Escort + - Strike + - Fighter sweep + - TARCAP diff --git a/resources/squadrons/FA-18E/E-VFA-87.yaml b/resources/squadrons/FA-18E/E-VFA-87.yaml new file mode 100644 index 00000000..4b31c130 --- /dev/null +++ b/resources/squadrons/FA-18E/E-VFA-87.yaml @@ -0,0 +1,23 @@ +--- +name: VFA-87 (F/A-18E) +nickname: Golden Warriors +female_pilot_percentage: 12 +country: USA +role: Strike Fighter +aircraft: F/A-18E Super Hornet +livery: "*VFA-87 NH404" +mission_types: + - Anti-ship + - BAI + - BARCAP + - CAS + - DEAD + - Escort + - Intercept + - OCA/Aircraft + - OCA/Runway + - SEAD + - SEAD Escort + - Strike + - Fighter sweep + - TARCAP diff --git a/resources/squadrons/FA-18F/F-VFA-103.yaml b/resources/squadrons/FA-18F/F-VFA-103.yaml new file mode 100644 index 00000000..a4e862d7 --- /dev/null +++ b/resources/squadrons/FA-18F/F-VFA-103.yaml @@ -0,0 +1,23 @@ +--- +name: VFA-103 (F/A-18F) +nickname: Jolly Rogers +female_pilot_percentage: 12 +country: USA +role: Strike Fighter +aircraft: F/A-18F Super Hornet +livery: "*VFA-103 AG212 (2019)" +mission_types: + - Anti-ship + - BAI + - BARCAP + - CAS + - DEAD + - Escort + - Intercept + - OCA/Aircraft + - OCA/Runway + - SEAD + - SEAD Escort + - Strike + - Fighter sweep + - TARCAP diff --git a/resources/squadrons/FA-18F/F-VFA-211.yaml b/resources/squadrons/FA-18F/F-VFA-211.yaml new file mode 100644 index 00000000..855cfe3c --- /dev/null +++ b/resources/squadrons/FA-18F/F-VFA-211.yaml @@ -0,0 +1,23 @@ +--- +name: VFA-211 (F/A-18F) +nickname: Fighting Checkmates +female_pilot_percentage: 12 +country: USA +role: Strike Fighter +aircraft: F/A-18F Super Hornet +livery: VFA-211 AB202 (2017) +mission_types: + - Anti-ship + - BAI + - BARCAP + - CAS + - DEAD + - Escort + - Intercept + - OCA/Aircraft + - OCA/Runway + - SEAD + - SEAD Escort + - Strike + - Fighter sweep + - TARCAP diff --git a/resources/squadrons/FA-18F/F-VFA-41.yaml b/resources/squadrons/FA-18F/F-VFA-41.yaml new file mode 100644 index 00000000..5c4ed533 --- /dev/null +++ b/resources/squadrons/FA-18F/F-VFA-41.yaml @@ -0,0 +1,23 @@ +--- +name: VFA-41 (F/A-18F) +nickname: Black Aces +female_pilot_percentage: 12 +country: USA +role: Strike Fighter +aircraft: F/A-18F Super Hornet +livery: VFA-41 NG101 (2015) +mission_types: + - Anti-ship + - BAI + - BARCAP + - CAS + - DEAD + - Escort + - Intercept + - OCA/Aircraft + - OCA/Runway + - SEAD + - SEAD Escort + - Strike + - Fighter sweep + - TARCAP diff --git a/resources/squadrons/FA-18F/F-VFA-94.yaml b/resources/squadrons/FA-18F/F-VFA-94.yaml new file mode 100644 index 00000000..6bef6d47 --- /dev/null +++ b/resources/squadrons/FA-18F/F-VFA-94.yaml @@ -0,0 +1,23 @@ +--- +name: VFA-94 (F/A-18F) +nickname: Mighty Shrikes +female_pilot_percentage: 12 +country: USA +role: Strike Fighter +aircraft: F/A-18F Super Hornet +livery: VFA-94 NA204 (2020) +mission_types: + - Anti-ship + - BAI + - BARCAP + - CAS + - DEAD + - Escort + - Intercept + - OCA/Aircraft + - OCA/Runway + - SEAD + - SEAD Escort + - Strike + - Fighter sweep + - TARCAP diff --git a/resources/ui/units/aircrafts/banners/EA-18G_24.jpg b/resources/ui/units/aircrafts/banners/EA-18G_24.jpg new file mode 100644 index 00000000..97d9ce82 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/EA-18G_24.jpg differ diff --git a/resources/ui/units/aircrafts/banners/FA-18E_24.jpg b/resources/ui/units/aircrafts/banners/FA-18E_24.jpg new file mode 100644 index 00000000..feddae8c Binary files /dev/null and b/resources/ui/units/aircrafts/banners/FA-18E_24.jpg differ diff --git a/resources/ui/units/aircrafts/banners/FA-18F_24.jpg b/resources/ui/units/aircrafts/banners/FA-18F_24.jpg new file mode 100644 index 00000000..feddae8c Binary files /dev/null and b/resources/ui/units/aircrafts/banners/FA-18F_24.jpg differ diff --git a/resources/ui/units/aircrafts/banners/F_A-18C_24.jpg b/resources/ui/units/aircrafts/banners/F_A-18C_24.jpg new file mode 100644 index 00000000..68e758a3 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/F_A-18C_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/EA-18G_24.jpg b/resources/ui/units/aircrafts/icons/EA-18G_24.jpg new file mode 100644 index 00000000..0e78d9d2 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/EA-18G_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/FA-18E_24.jpg b/resources/ui/units/aircrafts/icons/FA-18E_24.jpg new file mode 100644 index 00000000..753ce91a Binary files /dev/null and b/resources/ui/units/aircrafts/icons/FA-18E_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/FA-18F_24.jpg b/resources/ui/units/aircrafts/icons/FA-18F_24.jpg new file mode 100644 index 00000000..25201536 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/FA-18F_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/F_A-18C_24.jpg b/resources/ui/units/aircrafts/icons/F_A-18C_24.jpg new file mode 100644 index 00000000..9914ed27 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/F_A-18C_24.jpg differ diff --git a/resources/units/aircraft/EA-18G.yaml b/resources/units/aircraft/EA-18G.yaml new file mode 100644 index 00000000..bd23bba7 --- /dev/null +++ b/resources/units/aircraft/EA-18G.yaml @@ -0,0 +1,38 @@ +carrier_capable: true +description: + 'The Boeing EA-18G Growler is an American carrier-based electronic warfare aircraft, + a specialized version of the two-seat F/A-18F Super Hornet. The EA-18G replaced the + Northrop Grumman EA-6B Prowlers in service with the United States Navy.' +introduced: 1999 +manufacturer: McDonnell Douglas +origin: USA +price: 25 +role: Carrier-based Multirole Fighter +fuel: + # Parking A1 to RWY 32 at Akrotiri. + taxi: 170 + # AB takeoff to 350/0.85, reduce to MIL and maintain 350 to 25k ft. + climb_ppm: 44.25 + # 0.85 mach for 100NM. + cruise_ppm: 22.1 + # ~0.9 mach for 100NM. Occasional AB use. + combat_ppm: 27.5 + min_safe: 2000 +variants: + EA-18G Growler: {} +radios: + intra_flight: AN/ARC-210 + inter_flight: AN/ARC-210 + channels: + type: common + # DCS will clobber channel 1 of the first radio compatible with the flight's + # assigned frequency. Since the F/A-18's two radios are both AN/ARC-210s, + # radio 1 will be compatible regardless of which frequency is assigned, so + # we must use radio 1 for the intra-flight radio. + intra_flight_radio_index: 1 + inter_flight_radio_index: 2 +utc_kneeboard: true +# default_overrides: +# HelmetMountedDevice: 1 +# InnerBoard: 0 +# OuterBoard: 0 diff --git a/resources/units/aircraft/FA-18E.yaml b/resources/units/aircraft/FA-18E.yaml new file mode 100644 index 00000000..56e713c2 --- /dev/null +++ b/resources/units/aircraft/FA-18E.yaml @@ -0,0 +1,49 @@ +carrier_capable: true +description: + 'The F/A-18E Super Hornet is a single-seat, twin engine, carrier-capable, multirole + fighter aircraft. The Super Hornets are larger and more advanced derivatives of the + McDonnell Douglas F/A-18C and D Hornets, also known as legacy Hornets. + + + The Super Hornet is equipped with a large suite of sensors that includes a radar, targeting + pod, and a helmet mounted sight. In addition to its internal 20mm cannon, the Super Hornet + can be armed with a large assortment of unguided bombs and rockets, laser and GPS-guided + bombs, air-to-surface missiles of all sorts, and both radar and infrared-guided + air-to-air missiles. + + + The Super Hornet is also known for its extreme, slow-speed maneuverability in a dogfight. + Although incredibly deadly, the Super Hornet is also a very easy aircraft to fly.' +introduced: 1999 +manufacturer: McDonnell Douglas +origin: USA +price: 25 +role: Carrier-based Multirole Fighter +fuel: + # Parking A1 to RWY 32 at Akrotiri. + taxi: 170 + # AB takeoff to 350/0.85, reduce to MIL and maintain 350 to 25k ft. + climb_ppm: 44.25 + # 0.85 mach for 100NM. + cruise_ppm: 22.1 + # ~0.9 mach for 100NM. Occasional AB use. + combat_ppm: 27.5 + min_safe: 2000 +variants: + F/A-18E Super Hornet: {} +radios: + intra_flight: AN/ARC-210 + inter_flight: AN/ARC-210 + channels: + type: common + # DCS will clobber channel 1 of the first radio compatible with the flight's + # assigned frequency. Since the F/A-18's two radios are both AN/ARC-210s, + # radio 1 will be compatible regardless of which frequency is assigned, so + # we must use radio 1 for the intra-flight radio. + intra_flight_radio_index: 1 + inter_flight_radio_index: 2 +utc_kneeboard: true +# default_overrides: +# HelmetMountedDevice: 1 +# InnerBoard: 0 +# OuterBoard: 0 diff --git a/resources/units/aircraft/FA-18F.yaml b/resources/units/aircraft/FA-18F.yaml new file mode 100644 index 00000000..e6468342 --- /dev/null +++ b/resources/units/aircraft/FA-18F.yaml @@ -0,0 +1,49 @@ +carrier_capable: true +description: + 'The F/A-18F Super Hornet is a tandem-seat, twin engine, carrier-capable, multirole + fighter aircraft. The Super Hornets are larger and more advanced derivatives of the + McDonnell Douglas F/A-18C and D Hornets, also known as legacy Hornets. + + + The Super Hornet is equipped with a large suite of sensors that includes a radar, targeting + pod, and a helmet mounted sight. In addition to its internal 20mm cannon, the Super Hornet + can be armed with a large assortment of unguided bombs and rockets, laser and GPS-guided + bombs, air-to-surface missiles of all sorts, and both radar and infrared-guided + air-to-air missiles. + + + The Super Hornet is also known for its extreme, slow-speed maneuverability in a dogfight. + Although incredibly deadly, the Super Hornet is also a very easy aircraft to fly.' +introduced: 2006 +manufacturer: Boeing +origin: USA +price: 25 +role: Carrier-based Multirole Fighter +fuel: + # Parking A1 to RWY 32 at Akrotiri. + taxi: 170 + # AB takeoff to 350/0.85, reduce to MIL and maintain 350 to 25k ft. + climb_ppm: 44.25 + # 0.85 mach for 100NM. + cruise_ppm: 22.1 + # ~0.9 mach for 100NM. Occasional AB use. + combat_ppm: 27.5 + min_safe: 2000 +variants: + F/A-18F Super Hornet: {} +radios: + intra_flight: AN/ARC-210 + inter_flight: AN/ARC-210 + channels: + type: common + # DCS will clobber channel 1 of the first radio compatible with the flight's + # assigned frequency. Since the F/A-18's two radios are both AN/ARC-210s, + # radio 1 will be compatible regardless of which frequency is assigned, so + # we must use radio 1 for the intra-flight radio. + intra_flight_radio_index: 1 + inter_flight_radio_index: 2 +utc_kneeboard: true +# default_overrides: +# HelmetMountedDevice: 1 +# InnerBoard: 0 +# OuterBoard: 0 diff --git a/resources/units/aircraft/F_A-18C.yaml b/resources/units/aircraft/F_A-18C.yaml new file mode 100644 index 00000000..9baaa2c5 --- /dev/null +++ b/resources/units/aircraft/F_A-18C.yaml @@ -0,0 +1,36 @@ +carrier_capable: true +description: + 'The F/A-18C Hornet is twin engine, supersonic fighter that is flown + by a single pilot in a "glass cockpit". It combines extreme maneuverability , a + deadly arsenal of weapons, and the ability to operate from an aircraft carrier. + Operated by several nations, this multi-role fighter has been instrumental in conflicts + from 1986 to today. + + + The Hornet is equipped with a large suite of sensors that includes a radar, targeting + pod, and a helmet mounted sight. In addition to its internal 20mm cannon, the Hornet + can be armed with a large assortment of unguided bombs and rockets, laser and GPS-guided + bombs, air-to-surface missiles of all sorts, and both radar and infrared-guided + air-to-air missiles. + + + The Hornet is also known for its extreme, slow-speed maneuverability in a dogfight. + Although incredibly deadly, the Hornet is also a very easy aircraft to fly.' +introduced: 1987 +manufacturer: McDonnell Douglas +origin: USA +price: 20 +role: Carrier-based Multirole Fighter +# DCS default livery for the Hornet is the Blue Angels. +fuel: + # Parking A1 to RWY 32 at Akrotiri. + taxi: 170 + # AB takeoff to 350/0.85, reduce to MIL and maintain 350 to 25k ft. + climb_ppm: 44.25 + # 0.85 mach for 100NM. + cruise_ppm: 22.1 + # ~0.9 mach for 100NM. Occasional AB use. + combat_ppm: 27.5 + min_safe: 2000 +variants: + F/A-18C Hornet (AI): {} \ No newline at end of file