diff --git a/changelog.md b/changelog.md index ff71e946..3471ec0b 100644 --- a/changelog.md +++ b/changelog.md @@ -9,6 +9,7 @@ ## Features/Improvements * **[Modding]** Support for IDF Mod Project F-16I Sufa & F-16D v3.6 mod +* **[Modding]** Support for JAS-39 Gripen v1.8.5-beta mod ## Fixes * **[Plugins]** Fix bug where changes to plugin options doesn't do anything. diff --git a/game/ato/ai_flight_planner_db.py b/game/ato/ai_flight_planner_db.py index a5c6a455..ff5d26d2 100644 --- a/game/ato/ai_flight_planner_db.py +++ b/game/ato/ai_flight_planner_db.py @@ -144,7 +144,7 @@ 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.jas39.jas39 import JAS39Gripen, JAS39Gripen_BVR, JAS39Gripen_AG from pydcs_extensions.su30.su30 import Su_30MKA, Su_30MKI, Su_30MKM, Su_30SM from pydcs_extensions.su57.su57 import Su_57 from pydcs_extensions.ov10a.ov10a import Bronco_OV_10A @@ -187,6 +187,7 @@ ESCORT_CAPABLE = [ FA_18F, FA_18C_hornet, JF_17, + JAS39Gripen_BVR, JAS39Gripen, F_16A_MLU, F_16A, diff --git a/game/factions/faction.py b/game/factions/faction.py index b4737103..4551322e 100644 --- a/game/factions/faction.py +++ b/game/factions/faction.py @@ -368,6 +368,7 @@ class Faction: self.remove_aircraft("VSN_A6A") if not mod_settings.jas39_gripen: self.remove_aircraft("JAS39Gripen") + self.remove_aircraft("JAS39Gripen_BVR") self.remove_aircraft("JAS39Gripen_AG") if not mod_settings.su30_flanker_h: self.remove_aircraft("Su-30MKA") diff --git a/pydcs_extensions/jas39/jas39.py b/pydcs_extensions/jas39/jas39.py index 69532ca6..4325e71e 100644 --- a/pydcs_extensions/jas39/jas39.py +++ b/pydcs_extensions/jas39/jas39.py @@ -136,6 +136,11 @@ class JAS39GripenWeapons: "name": "M70B HE Unguided rocket", "weight": 372.2, } + _4_x_M_71_120_kg_GP_Bomb_High_drag = { + "clsid": "{JAS39_M71HD}", + "name": "4 x M/71 120 kg GP Bomb High-drag", + "weight": 605, + } _4_x_M_71_120_kg_GP_Bomb_Low_drag_ = { "clsid": "{JAS39_M71LD}", "name": "4 x M/71 120 kg GP Bomb Low-drag ", @@ -251,6 +256,26 @@ class JAS39GripenWeapons: "name": "KEPD 350 Long Range Anti-Radiation Cruise-missile", "weight": 1400, } + RBS_15_Mk4_AShM = { + "clsid": "{JAS39_RBS15}", + "name": "RBS-15 Mk4 AShM", + "weight": 650, + } + RBS_15_Mk4_AShM_for_AI = { + "clsid": "{JAS39_RBS15AI}", + "name": "RBS-15 Mk4 AShM for AI", + "weight": 650, + } + AGM_65H_TV_Guided_Missile = { + "clsid": "{JAS39_AGM_65H}", + "name": "AGM-65H TV Guided Missile", + "weight": 260, + } + AGM_65K_TV_Guided_Missile = { + "clsid": "{JAS39_AGM_65K}", + "name": "AGM-65K TV Guided Missile", + "weight": 349, + } inject_weapons(JAS39GripenWeapons) @@ -328,6 +353,10 @@ class JAS39Gripen(PlaneType): 2, JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_Low_drag_, ) + _4_x_M_71_120_kg_GP_Bomb_High_drag = ( + 2, + JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_High_drag, + ) M70B_HE_Unguided_rocket = (2, JAS39GripenWeapons.M70B_HE_Unguided_rocket) M70B_AP_Unguided_rocket = (2, JAS39GripenWeapons.M70B_AP_Unguided_rocket) @@ -368,6 +397,10 @@ class JAS39Gripen(PlaneType): 3, JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_Low_drag_, ) + _4_x_M_71_120_kg_GP_Bomb_High_drag = ( + 3, + JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_High_drag, + ) M70B_HE_Unguided_rocket = (3, JAS39GripenWeapons.M70B_HE_Unguided_rocket) M70B_AP_Unguided_rocket = (3, JAS39GripenWeapons.M70B_AP_Unguided_rocket) Drop_tank_1100_litre = (3, JAS39GripenWeapons.Drop_tank_1100_litre) @@ -415,6 +448,10 @@ class JAS39Gripen(PlaneType): 6, JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_Low_drag_, ) + _4_x_M_71_120_kg_GP_Bomb_High_drag = ( + 6, + JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_High_drag, + ) M70B_HE_Unguided_rocket = (6, JAS39GripenWeapons.M70B_HE_Unguided_rocket) M70B_AP_Unguided_rocket = (6, JAS39GripenWeapons.M70B_AP_Unguided_rocket) Drop_tank_1100_litre = (6, JAS39GripenWeapons.Drop_tank_1100_litre) @@ -454,6 +491,267 @@ class JAS39Gripen(PlaneType): 7, JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_Low_drag_, ) + _4_x_M_71_120_kg_GP_Bomb_High_drag = ( + 7, + JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_High_drag, + ) + M70B_HE_Unguided_rocket = (7, JAS39GripenWeapons.M70B_HE_Unguided_rocket) + M70B_AP_Unguided_rocket = (7, JAS39GripenWeapons.M70B_AP_Unguided_rocket) + + class Pylon8: + IRIS_T_IR_AAM = (8, JAS39GripenWeapons.IRIS_T_IR_AAM) + AIM_9L_Sidewinder_IR_AAM_ = (8, JAS39GripenWeapons.AIM_9L_Sidewinder_IR_AAM_) + A_Darter_IR_AAM = (8, JAS39GripenWeapons.A_Darter_IR_AAM) + AIM_9M_Sidewinder_IR_AAM_ = (8, JAS39GripenWeapons.AIM_9M_Sidewinder_IR_AAM_) + AIM_9X_Sidewinder_IR_AAM_ = (8, JAS39GripenWeapons.AIM_9X_Sidewinder_IR_AAM_) + Python_5_IR_AAM = (8, JAS39GripenWeapons.Python_5_IR_AAM) + AIM_132_ASRAAM_IR_AAM = (8, JAS39GripenWeapons.AIM_132_ASRAAM_IR_AAM) + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (8, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + Smokewinder___red = (8, Weapons.Smokewinder___red) + Smokewinder___green = (8, Weapons.Smokewinder___green) + Smokewinder___blue = (8, Weapons.Smokewinder___blue) + Smokewinder___white = (8, Weapons.Smokewinder___white) + Smokewinder___yellow = (8, Weapons.Smokewinder___yellow) + Smokewinder___orange = (8, Weapons.Smokewinder___orange) + + class Pylon9: + Litening_III_Targeting_Pod_FLIR = ( + 9, + JAS39GripenWeapons.Litening_III_Targeting_Pod_FLIR, + ) + + class Pylon10: + Integrated_ELINT = (10, JAS39GripenWeapons.Integrated_ELINT) + + class Pylon11: + EWS_39_Integrated_ECM = (11, JAS39GripenWeapons.EWS_39_Integrated_ECM) + + pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} + + tasks = [ + task.Intercept, + task.CAP, + task.Reconnaissance, + task.Escort, + task.FighterSweep, + ] + task_default = task.FighterSweep + + +@planemod +class JAS39Gripen_BVR(PlaneType): + id = "JAS39Gripen_BVR" + flyable = True + height = 4.5 + width = 8.4 + length = 14.1 + fuel_max = 2550 + max_speed = 2649.996 + chaff = 80 + flare = 40 + charge_total = 120 + chaff_charge_size = 1 + flare_charge_size = 1 + eplrs = True + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 127.5 + + livery_name = "JAS39GRIPEN_BVR" # from type + Liveries = Liveries()[livery_name] + + class Pylon1: + IRIS_T_IR_AAM = (1, JAS39GripenWeapons.IRIS_T_IR_AAM) + AIM_9L_Sidewinder_IR_AAM_ = (1, JAS39GripenWeapons.AIM_9L_Sidewinder_IR_AAM_) + A_Darter_IR_AAM = (1, JAS39GripenWeapons.A_Darter_IR_AAM) + AIM_9M_Sidewinder_IR_AAM_ = (1, JAS39GripenWeapons.AIM_9M_Sidewinder_IR_AAM_) + AIM_9X_Sidewinder_IR_AAM_ = (1, JAS39GripenWeapons.AIM_9X_Sidewinder_IR_AAM_) + Python_5_IR_AAM = (1, JAS39GripenWeapons.Python_5_IR_AAM) + AIM_132_ASRAAM_IR_AAM = (1, JAS39GripenWeapons.AIM_132_ASRAAM_IR_AAM) + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (1, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + Smokewinder___red = (1, Weapons.Smokewinder___red) + Smokewinder___green = (1, Weapons.Smokewinder___green) + Smokewinder___blue = (1, Weapons.Smokewinder___blue) + Smokewinder___white = (1, Weapons.Smokewinder___white) + Smokewinder___yellow = (1, Weapons.Smokewinder___yellow) + Smokewinder___orange = (1, Weapons.Smokewinder___orange) + + class Pylon2: + IRIS_T_IR_AAM = (2, JAS39GripenWeapons.IRIS_T_IR_AAM) + AIM_9L_Sidewinder_IR_AAM_ = (2, JAS39GripenWeapons.AIM_9L_Sidewinder_IR_AAM_) + A_Darter_IR_AAM = (2, JAS39GripenWeapons.A_Darter_IR_AAM) + AIM_9M_Sidewinder_IR_AAM_ = (2, JAS39GripenWeapons.AIM_9M_Sidewinder_IR_AAM_) + AIM_9X_Sidewinder_IR_AAM_ = (2, JAS39GripenWeapons.AIM_9X_Sidewinder_IR_AAM_) + Python_5_IR_AAM = (2, JAS39GripenWeapons.Python_5_IR_AAM) + AIM_132_ASRAAM_IR_AAM = (2, JAS39GripenWeapons.AIM_132_ASRAAM_IR_AAM) + Meteor_BVRAAM_Active_Rdr_AAM = ( + 2, + JAS39GripenWeapons.Meteor_BVRAAM_Active_Rdr_AAM, + ) + AIM_120B_AMRAAM_Active_Rdr_AAM = ( + 2, + JAS39GripenWeapons.AIM_120B_AMRAAM_Active_Rdr_AAM, + ) + AIM_120C_5_AMRAAM_Active_Rdr_AAM = ( + 2, + JAS39GripenWeapons.AIM_120C_5_AMRAAM_Active_Rdr_AAM, + ) + AIM_120C_7_AMRAAM_Active_Rdr_AAM = ( + 2, + JAS39GripenWeapons.AIM_120C_7_AMRAAM_Active_Rdr_AAM, + ) + I_Derby_ER_BVRAAM_Active_Rdr_AAM = ( + 2, + JAS39GripenWeapons.I_Derby_ER_BVRAAM_Active_Rdr_AAM, + ) + Mk_82_500_lb_GP_Bomb = (2, JAS39GripenWeapons.Mk_82_500_lb_GP_Bomb) + Mk_83_1000_lb_GP_Bomb = (2, JAS39GripenWeapons.Mk_83_1000_lb_GP_Bomb) + _2_x_Mk_82_500_lb_GP_Bomb = (2, JAS39GripenWeapons._2_x_Mk_82_500_lb_GP_Bomb) + _4_x_M_71_120_kg_GP_Bomb_Low_drag_ = ( + 2, + JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_Low_drag_, + ) + _4_x_M_71_120_kg_GP_Bomb_High_drag = ( + 2, + JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_High_drag, + ) + M70B_HE_Unguided_rocket = (2, JAS39GripenWeapons.M70B_HE_Unguided_rocket) + M70B_AP_Unguided_rocket = (2, JAS39GripenWeapons.M70B_AP_Unguided_rocket) + + class Pylon3: + AIM_9L_Sidewinder_IR_AAM_ = (3, JAS39GripenWeapons.AIM_9L_Sidewinder_IR_AAM_) + IRIS_T_IR_AAM = (3, JAS39GripenWeapons.IRIS_T_IR_AAM) + A_Darter_IR_AAM = (3, JAS39GripenWeapons.A_Darter_IR_AAM) + AIM_9M_Sidewinder_IR_AAM_ = (3, JAS39GripenWeapons.AIM_9M_Sidewinder_IR_AAM_) + AIM_9X_Sidewinder_IR_AAM_ = (3, JAS39GripenWeapons.AIM_9X_Sidewinder_IR_AAM_) + Python_5_IR_AAM = (3, JAS39GripenWeapons.Python_5_IR_AAM) + AIM_132_ASRAAM_IR_AAM = (3, JAS39GripenWeapons.AIM_132_ASRAAM_IR_AAM) + Meteor_BVRAAM_Active_Rdr_AAM = ( + 3, + JAS39GripenWeapons.Meteor_BVRAAM_Active_Rdr_AAM, + ) + AIM_120B_AMRAAM_Active_Rdr_AAM = ( + 3, + JAS39GripenWeapons.AIM_120B_AMRAAM_Active_Rdr_AAM, + ) + AIM_120C_5_AMRAAM_Active_Rdr_AAM = ( + 3, + JAS39GripenWeapons.AIM_120C_5_AMRAAM_Active_Rdr_AAM, + ) + AIM_120C_7_AMRAAM_Active_Rdr_AAM = ( + 3, + JAS39GripenWeapons.AIM_120C_7_AMRAAM_Active_Rdr_AAM, + ) + I_Derby_ER_BVRAAM_Active_Rdr_AAM = ( + 3, + JAS39GripenWeapons.I_Derby_ER_BVRAAM_Active_Rdr_AAM, + ) + Mk_82_500_lb_GP_Bomb = (3, JAS39GripenWeapons.Mk_82_500_lb_GP_Bomb) + Mk_83_1000_lb_GP_Bomb = (3, JAS39GripenWeapons.Mk_83_1000_lb_GP_Bomb) + Mk_84_2000_lb_GP_Bomb = (3, JAS39GripenWeapons.Mk_84_2000_lb_GP_Bomb) + _2_x_Mk_82_500_lb_GP_Bomb = (3, JAS39GripenWeapons._2_x_Mk_82_500_lb_GP_Bomb) + _2_x_Mk_83_1000_lb_GP_Bomb = (3, JAS39GripenWeapons._2_x_Mk_83_1000_lb_GP_Bomb) + _4_x_M_71_120_kg_GP_Bomb_Low_drag_ = ( + 3, + JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_Low_drag_, + ) + _4_x_M_71_120_kg_GP_Bomb_High_drag = ( + 3, + JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_High_drag, + ) + M70B_HE_Unguided_rocket = (3, JAS39GripenWeapons.M70B_HE_Unguided_rocket) + M70B_AP_Unguided_rocket = (3, JAS39GripenWeapons.M70B_AP_Unguided_rocket) + Drop_tank_1100_litre = (3, JAS39GripenWeapons.Drop_tank_1100_litre) + + class Pylon4: + Drop_tank_1100_litre = (4, JAS39GripenWeapons.Drop_tank_1100_litre) + + class Pylon5: + Litening_III_Targeting_Pod = (5, JAS39GripenWeapons.Litening_III_Targeting_Pod) + + class Pylon6: + AIM_9L_Sidewinder_IR_AAM_ = (6, JAS39GripenWeapons.AIM_9L_Sidewinder_IR_AAM_) + IRIS_T_IR_AAM = (6, JAS39GripenWeapons.IRIS_T_IR_AAM) + A_Darter_IR_AAM = (6, JAS39GripenWeapons.A_Darter_IR_AAM) + AIM_9M_Sidewinder_IR_AAM_ = (6, JAS39GripenWeapons.AIM_9M_Sidewinder_IR_AAM_) + AIM_9X_Sidewinder_IR_AAM_ = (6, JAS39GripenWeapons.AIM_9X_Sidewinder_IR_AAM_) + Python_5_IR_AAM = (6, JAS39GripenWeapons.Python_5_IR_AAM) + AIM_132_ASRAAM_IR_AAM = (6, JAS39GripenWeapons.AIM_132_ASRAAM_IR_AAM) + Meteor_BVRAAM_Active_Rdr_AAM = ( + 6, + JAS39GripenWeapons.Meteor_BVRAAM_Active_Rdr_AAM, + ) + AIM_120B_AMRAAM_Active_Rdr_AAM = ( + 6, + JAS39GripenWeapons.AIM_120B_AMRAAM_Active_Rdr_AAM, + ) + AIM_120C_5_AMRAAM_Active_Rdr_AAM = ( + 6, + JAS39GripenWeapons.AIM_120C_5_AMRAAM_Active_Rdr_AAM, + ) + AIM_120C_7_AMRAAM_Active_Rdr_AAM = ( + 6, + JAS39GripenWeapons.AIM_120C_7_AMRAAM_Active_Rdr_AAM, + ) + I_Derby_ER_BVRAAM_Active_Rdr_AAM = ( + 6, + JAS39GripenWeapons.I_Derby_ER_BVRAAM_Active_Rdr_AAM, + ) + Mk_82_500_lb_GP_Bomb = (6, JAS39GripenWeapons.Mk_82_500_lb_GP_Bomb) + Mk_83_1000_lb_GP_Bomb = (6, JAS39GripenWeapons.Mk_83_1000_lb_GP_Bomb) + Mk_84_2000_lb_GP_Bomb = (6, JAS39GripenWeapons.Mk_84_2000_lb_GP_Bomb) + _2_x_Mk_82_500_lb_GP_Bomb = (6, JAS39GripenWeapons._2_x_Mk_82_500_lb_GP_Bomb) + _2_x_Mk_83_1000_lb_GP_Bomb = (6, JAS39GripenWeapons._2_x_Mk_83_1000_lb_GP_Bomb) + _4_x_M_71_120_kg_GP_Bomb_Low_drag_ = ( + 6, + JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_Low_drag_, + ) + _4_x_M_71_120_kg_GP_Bomb_High_drag = ( + 6, + JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_High_drag, + ) + M70B_HE_Unguided_rocket = (6, JAS39GripenWeapons.M70B_HE_Unguided_rocket) + M70B_AP_Unguided_rocket = (6, JAS39GripenWeapons.M70B_AP_Unguided_rocket) + Drop_tank_1100_litre = (6, JAS39GripenWeapons.Drop_tank_1100_litre) + + class Pylon7: + IRIS_T_IR_AAM = (7, JAS39GripenWeapons.IRIS_T_IR_AAM) + AIM_9L_Sidewinder_IR_AAM_ = (7, JAS39GripenWeapons.AIM_9L_Sidewinder_IR_AAM_) + A_Darter_IR_AAM = (7, JAS39GripenWeapons.A_Darter_IR_AAM) + AIM_9M_Sidewinder_IR_AAM_ = (7, JAS39GripenWeapons.AIM_9M_Sidewinder_IR_AAM_) + AIM_9X_Sidewinder_IR_AAM_ = (7, JAS39GripenWeapons.AIM_9X_Sidewinder_IR_AAM_) + Python_5_IR_AAM = (7, JAS39GripenWeapons.Python_5_IR_AAM) + AIM_132_ASRAAM_IR_AAM = (7, JAS39GripenWeapons.AIM_132_ASRAAM_IR_AAM) + Meteor_BVRAAM_Active_Rdr_AAM = ( + 7, + JAS39GripenWeapons.Meteor_BVRAAM_Active_Rdr_AAM, + ) + AIM_120B_AMRAAM_Active_Rdr_AAM = ( + 7, + JAS39GripenWeapons.AIM_120B_AMRAAM_Active_Rdr_AAM, + ) + AIM_120C_5_AMRAAM_Active_Rdr_AAM = ( + 7, + JAS39GripenWeapons.AIM_120C_5_AMRAAM_Active_Rdr_AAM, + ) + AIM_120C_7_AMRAAM_Active_Rdr_AAM = ( + 7, + JAS39GripenWeapons.AIM_120C_7_AMRAAM_Active_Rdr_AAM, + ) + I_Derby_ER_BVRAAM_Active_Rdr_AAM = ( + 7, + JAS39GripenWeapons.I_Derby_ER_BVRAAM_Active_Rdr_AAM, + ) + Mk_82_500_lb_GP_Bomb = (7, JAS39GripenWeapons.Mk_82_500_lb_GP_Bomb) + Mk_83_1000_lb_GP_Bomb = (7, JAS39GripenWeapons.Mk_83_1000_lb_GP_Bomb) + _2_x_Mk_82_500_lb_GP_Bomb = (7, JAS39GripenWeapons._2_x_Mk_82_500_lb_GP_Bomb) + _4_x_M_71_120_kg_GP_Bomb_Low_drag_ = ( + 7, + JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_Low_drag_, + ) + _4_x_M_71_120_kg_GP_Bomb_High_drag = ( + 7, + JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_High_drag, + ) M70B_HE_Unguided_rocket = (7, JAS39GripenWeapons.M70B_HE_Unguided_rocket) M70B_AP_Unguided_rocket = (7, JAS39GripenWeapons.M70B_AP_Unguided_rocket) @@ -542,14 +840,8 @@ class JAS39Gripen_AG(PlaneType): AIM_9X_Sidewinder_IR_AAM_ = (2, JAS39GripenWeapons.AIM_9X_Sidewinder_IR_AAM_) Python_5_IR_AAM = (2, JAS39GripenWeapons.Python_5_IR_AAM) AIM_132_ASRAAM_IR_AAM = (2, JAS39GripenWeapons.AIM_132_ASRAAM_IR_AAM) - RBS_15_Mk4_Gungnir_Anti_ship_Missile = ( - 2, - JAS39GripenWeapons.RBS_15_Mk4_Gungnir_Anti_ship_Missile, - ) - RBS_15_Mk4_Gungnir_Anti_ship_Missile__AI_ = ( - 2, - JAS39GripenWeapons.RBS_15_Mk4_Gungnir_Anti_ship_Missile__AI_, - ) + RBS_15_Mk4_AShM = (2, JAS39GripenWeapons.RBS_15_Mk4_AShM) + RBS_15_Mk4_AShM_for_AI = (2, JAS39GripenWeapons.RBS_15_Mk4_AShM_for_AI) MAR_1_High_Speed_Anti_Radiation_Missile = ( 2, JAS39GripenWeapons.MAR_1_High_Speed_Anti_Radiation_Missile, @@ -605,17 +897,18 @@ class JAS39Gripen_AG(PlaneType): 2, JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_Low_drag_, ) + _4_x_M_71_120_kg_GP_Bomb_High_drag = ( + 2, + JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_High_drag, + ) M70B_HE_Unguided_rocket = (2, JAS39GripenWeapons.M70B_HE_Unguided_rocket) M70B_AP_Unguided_rocket = (2, JAS39GripenWeapons.M70B_AP_Unguided_rocket) _3_x_Brimstone_Laser_Guided_Missile = ( 2, JAS39GripenWeapons._3_x_Brimstone_Laser_Guided_Missile, ) - LAU_117_with_AGM_65K___Maverick_K__CCD_Imp_ASM_ = ( - 2, - Weapons.LAU_117_with_AGM_65K___Maverick_K__CCD_Imp_ASM_, - ) - LAU_117_AGM_65H = (2, Weapons.LAU_117_AGM_65H) + AGM_65K_TV_Guided_Missile = (2, JAS39GripenWeapons.AGM_65K_TV_Guided_Missile) + AGM_65H_TV_Guided_Missile = (2, JAS39GripenWeapons.AGM_65H_TV_Guided_Missile) _3_x_SPEAR_3_Anti_Radiation_Missile = ( 2, JAS39GripenWeapons._3_x_SPEAR_3_Anti_Radiation_Missile, @@ -630,11 +923,8 @@ class JAS39Gripen_AG(PlaneType): AIM_9X_Sidewinder_IR_AAM_ = (3, JAS39GripenWeapons.AIM_9X_Sidewinder_IR_AAM_) Python_5_IR_AAM = (3, JAS39GripenWeapons.Python_5_IR_AAM) AIM_132_ASRAAM_IR_AAM = (3, JAS39GripenWeapons.AIM_132_ASRAAM_IR_AAM) - LAU_117_with_AGM_65K___Maverick_K__CCD_Imp_ASM_ = ( - 3, - Weapons.LAU_117_with_AGM_65K___Maverick_K__CCD_Imp_ASM_, - ) - LAU_117_AGM_65H = (3, Weapons.LAU_117_AGM_65H) + AGM_65K_TV_Guided_Missile = (3, JAS39GripenWeapons.AGM_65K_TV_Guided_Missile) + AGM_65H_TV_Guided_Missile = (3, JAS39GripenWeapons.AGM_65H_TV_Guided_Missile) _3_x_Brimstone_Laser_Guided_Missile = ( 3, JAS39GripenWeapons._3_x_Brimstone_Laser_Guided_Missile, @@ -644,14 +934,8 @@ class JAS39Gripen_AG(PlaneType): JAS39GripenWeapons._3_x_SPEAR_3_Anti_Radiation_Missile, ) _3_x_SPEAR_EW_Decoy = (3, JAS39GripenWeapons._3_x_SPEAR_EW_Decoy) - RBS_15_Mk4_Gungnir_Anti_ship_Missile = ( - 3, - JAS39GripenWeapons.RBS_15_Mk4_Gungnir_Anti_ship_Missile, - ) - RBS_15_Mk4_Gungnir_Anti_ship_Missile__AI_ = ( - 3, - JAS39GripenWeapons.RBS_15_Mk4_Gungnir_Anti_ship_Missile__AI_, - ) + RBS_15_Mk4_AShM = (3, JAS39GripenWeapons.RBS_15_Mk4_AShM) + RBS_15_Mk4_AShM_for_AI = (3, JAS39GripenWeapons.RBS_15_Mk4_AShM_for_AI) MAR_1_High_Speed_Anti_Radiation_Missile = ( 3, JAS39GripenWeapons.MAR_1_High_Speed_Anti_Radiation_Missile, @@ -729,6 +1013,10 @@ class JAS39Gripen_AG(PlaneType): 3, JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_Low_drag_, ) + _4_x_M_71_120_kg_GP_Bomb_High_drag = ( + 3, + JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_High_drag, + ) Drop_tank_1100_litre = (3, JAS39GripenWeapons.Drop_tank_1100_litre) M70B_HE_Unguided_rocket = (3, JAS39GripenWeapons.M70B_HE_Unguided_rocket) M70B_AP_Unguided_rocket = (3, JAS39GripenWeapons.M70B_AP_Unguided_rocket) @@ -742,6 +1030,7 @@ class JAS39Gripen_AG(PlaneType): ) class Pylon4: + DIS_LS_6_100_DUAL_L = (4, Weapons.DIS_LS_6_100_DUAL_L) Drop_tank_1100_litre = (4, JAS39GripenWeapons.Drop_tank_1100_litre) # ERRR {INV-SMOKE-RED} @@ -762,11 +1051,8 @@ class JAS39Gripen_AG(PlaneType): AIM_9X_Sidewinder_IR_AAM_ = (6, JAS39GripenWeapons.AIM_9X_Sidewinder_IR_AAM_) Python_5_IR_AAM = (6, JAS39GripenWeapons.Python_5_IR_AAM) AIM_132_ASRAAM_IR_AAM = (6, JAS39GripenWeapons.AIM_132_ASRAAM_IR_AAM) - LAU_117_with_AGM_65K___Maverick_K__CCD_Imp_ASM_ = ( - 6, - Weapons.LAU_117_with_AGM_65K___Maverick_K__CCD_Imp_ASM_, - ) - LAU_117_AGM_65H = (6, Weapons.LAU_117_AGM_65H) + AGM_65K_TV_Guided_Missile = (6, JAS39GripenWeapons.AGM_65K_TV_Guided_Missile) + AGM_65H_TV_Guided_Missile = (6, JAS39GripenWeapons.AGM_65H_TV_Guided_Missile) _3_x_Brimstone_Laser_Guided_Missile = ( 6, JAS39GripenWeapons._3_x_Brimstone_Laser_Guided_Missile, @@ -776,14 +1062,8 @@ class JAS39Gripen_AG(PlaneType): JAS39GripenWeapons._3_x_SPEAR_3_Anti_Radiation_Missile, ) _3_x_SPEAR_EW_Decoy = (6, JAS39GripenWeapons._3_x_SPEAR_EW_Decoy) - RBS_15_Mk4_Gungnir_Anti_ship_Missile = ( - 6, - JAS39GripenWeapons.RBS_15_Mk4_Gungnir_Anti_ship_Missile, - ) - RBS_15_Mk4_Gungnir_Anti_ship_Missile__AI_ = ( - 6, - JAS39GripenWeapons.RBS_15_Mk4_Gungnir_Anti_ship_Missile__AI_, - ) + RBS_15_Mk4_AShM = (6, JAS39GripenWeapons.RBS_15_Mk4_AShM) + RBS_15_Mk4_AShM_for_AI = (6, JAS39GripenWeapons.RBS_15_Mk4_AShM_for_AI) MAR_1_High_Speed_Anti_Radiation_Missile = ( 6, JAS39GripenWeapons.MAR_1_High_Speed_Anti_Radiation_Missile, @@ -861,6 +1141,10 @@ class JAS39Gripen_AG(PlaneType): 6, JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_Low_drag_, ) + _4_x_M_71_120_kg_GP_Bomb_High_drag = ( + 6, + JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_High_drag, + ) Drop_tank_1100_litre = (6, JAS39GripenWeapons.Drop_tank_1100_litre) M70B_HE_Unguided_rocket = (6, JAS39GripenWeapons.M70B_HE_Unguided_rocket) M70B_AP_Unguided_rocket = (6, JAS39GripenWeapons.M70B_AP_Unguided_rocket) @@ -881,14 +1165,8 @@ class JAS39Gripen_AG(PlaneType): AIM_9X_Sidewinder_IR_AAM_ = (7, JAS39GripenWeapons.AIM_9X_Sidewinder_IR_AAM_) Python_5_IR_AAM = (7, JAS39GripenWeapons.Python_5_IR_AAM) AIM_132_ASRAAM_IR_AAM = (7, JAS39GripenWeapons.AIM_132_ASRAAM_IR_AAM) - RBS_15_Mk4_Gungnir_Anti_ship_Missile = ( - 7, - JAS39GripenWeapons.RBS_15_Mk4_Gungnir_Anti_ship_Missile, - ) - RBS_15_Mk4_Gungnir_Anti_ship_Missile__AI_ = ( - 7, - JAS39GripenWeapons.RBS_15_Mk4_Gungnir_Anti_ship_Missile__AI_, - ) + RBS_15_Mk4_AShM = (7, JAS39GripenWeapons.RBS_15_Mk4_AShM) + RBS_15_Mk4_AShM_for_AI = (7, JAS39GripenWeapons.RBS_15_Mk4_AShM_for_AI) MAR_1_High_Speed_Anti_Radiation_Missile = ( 7, JAS39GripenWeapons.MAR_1_High_Speed_Anti_Radiation_Missile, @@ -944,17 +1222,18 @@ class JAS39Gripen_AG(PlaneType): 7, JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_Low_drag_, ) + _4_x_M_71_120_kg_GP_Bomb_High_drag = ( + 7, + JAS39GripenWeapons._4_x_M_71_120_kg_GP_Bomb_High_drag, + ) M70B_HE_Unguided_rocket = (7, JAS39GripenWeapons.M70B_HE_Unguided_rocket) M70B_AP_Unguided_rocket = (7, JAS39GripenWeapons.M70B_AP_Unguided_rocket) _3_x_Brimstone_Laser_Guided_Missile = ( 7, JAS39GripenWeapons._3_x_Brimstone_Laser_Guided_Missile, ) - LAU_117_with_AGM_65K___Maverick_K__CCD_Imp_ASM_ = ( - 7, - Weapons.LAU_117_with_AGM_65K___Maverick_K__CCD_Imp_ASM_, - ) - LAU_117_AGM_65H = (7, Weapons.LAU_117_AGM_65H) + AGM_65K_TV_Guided_Missile = (7, JAS39GripenWeapons.AGM_65K_TV_Guided_Missile) + AGM_65H_TV_Guided_Missile = (7, JAS39GripenWeapons.AGM_65H_TV_Guided_Missile) _3_x_SPEAR_3_Anti_Radiation_Missile = ( 7, JAS39GripenWeapons._3_x_SPEAR_3_Anti_Radiation_Missile, diff --git a/qt_ui/windows/newgame/QNewGameWizard.py b/qt_ui/windows/newgame/QNewGameWizard.py index abe20fed..caaa1a17 100644 --- a/qt_ui/windows/newgame/QNewGameWizard.py +++ b/qt_ui/windows/newgame/QNewGameWizard.py @@ -865,7 +865,7 @@ class GeneratorOptions(QtWidgets.QWizardPage): ("Frenchpack", frenchpack), ("High Digit SAMs", high_digit_sams), ("Swedish Military Assets pack (1.10)", swedishmilitaryassetspack), - ("JAS 39 Gripen (v1.8.0-beta)", jas39_gripen), + ("JAS 39 Gripen (v1.8.5-beta)", jas39_gripen), ("OV-10A Bronco", ov10a_bronco), ("Su-30 Flanker-H (V2.01B)", su30_flanker_h), ("Su-57 Felon", su57_felon), diff --git a/resources/customized_payloads/JAS39Gripen_BVR.lua b/resources/customized_payloads/JAS39Gripen_BVR.lua new file mode 100644 index 00000000..3291ad18 --- /dev/null +++ b/resources/customized_payloads/JAS39Gripen_BVR.lua @@ -0,0 +1,65 @@ +local unitPayloads = { + ["name"] = "JAS39Gripen_BVR", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{JAS39_ASRAAM}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{JAS39_Meteor}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{JAS39_Meteor}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{JAS39_TANK1100}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{JAS39_Meteor}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{JAS39_Meteor}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{JAS39_ASRAAM}", + ["num"] = 8, + }, + [8] = { + ["CLSID"] = "{JAS39_ELINT}", + ["num"] = 10, + }, + [9] = { + ["CLSID"] = "{JAS39_EWS39}", + ["num"] = 11, + }, + [10] = { + ["CLSID"] = "{JAS39_FLIR}", + ["num"] = 9, + }, + [11] = { + ["CLSID"] = "{JAS39_Litening}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 15, + [2] = 11, + [3] = 18, + [4] = 19, + [5] = 10, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "JAS39Gripen_BVR", +} +return unitPayloads diff --git a/resources/ui/units/aircrafts/banners/JAS39Gripen_BVR_24.jpg b/resources/ui/units/aircrafts/banners/JAS39Gripen_BVR_24.jpg new file mode 100644 index 00000000..3d58c569 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/JAS39Gripen_BVR_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/JAS39Gripen_BVR_24.jpg b/resources/ui/units/aircrafts/icons/JAS39Gripen_BVR_24.jpg new file mode 100644 index 00000000..0a531578 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/JAS39Gripen_BVR_24.jpg differ diff --git a/resources/units/aircraft/JAS39Gripen_BVR.yaml b/resources/units/aircraft/JAS39Gripen_BVR.yaml new file mode 100644 index 00000000..0944a59a --- /dev/null +++ b/resources/units/aircraft/JAS39Gripen_BVR.yaml @@ -0,0 +1,16 @@ +description: + The Saab JAS 39 Gripen is a light single-engine multirole fighter aircraft + manufactured by the Swedish aerospace company Saab AB. The Gripen has a delta wing + and canard configuration with relaxed stability design and fly-by-wire flight controls. + Various versions have been built, grouped as A-, C- and E-series. This is the AA + Version, since the Mod for this aircraft splitted it in an AA and AG Version. +introduced: 2002 +manufacturer: Saab AB +origin: Sweden +price: 21 +role: Fighter +variants: + JAS 39 Gripen BVR: {} +radios: + intra_flight: R&S Series 6000 + inter_flight: R&S Series 6000