From 7a0ccd00760b9d21d64aa25e0a85b1020414dd01 Mon Sep 17 00:00:00 2001 From: Raffson Date: Sat, 1 Apr 2023 22:28:51 +0200 Subject: [PATCH] Update JAS-39 --- changelog.md | 1 + game/ato/ai_flight_planner_db.py | 3 +- game/factions/faction.py | 1 + pydcs_extensions/jas39/jas39.py | 383 +++++++++++++++--- qt_ui/windows/newgame/QNewGameWizard.py | 2 +- .../customized_payloads/JAS39Gripen_BVR.lua | 65 +++ .../aircrafts/banners/JAS39Gripen_BVR_24.jpg | Bin 0 -> 41818 bytes .../aircrafts/icons/JAS39Gripen_BVR_24.jpg | Bin 0 -> 1817 bytes resources/units/aircraft/JAS39Gripen_BVR.yaml | 16 + 9 files changed, 417 insertions(+), 54 deletions(-) create mode 100644 resources/customized_payloads/JAS39Gripen_BVR.lua create mode 100644 resources/ui/units/aircrafts/banners/JAS39Gripen_BVR_24.jpg create mode 100644 resources/ui/units/aircrafts/icons/JAS39Gripen_BVR_24.jpg create mode 100644 resources/units/aircraft/JAS39Gripen_BVR.yaml 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 0000000000000000000000000000000000000000..3d58c569e4ac90a1049e4fc440e4d10e1ab3c7a1 GIT binary patch literal 41818 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

JN{*y9$->+4cnKI$55vw?5g+GGI8; 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 E0K1+CFaQ7m literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0a531578312cb0d909030fc1728ebd7df6ce6154 GIT binary patch literal 1817 zcmbW0dow~ecp54bDrmU-|y$V?+f)p13-H# z*^>+q2n6^M9sm*p6OZ`ty#RQ50TKWJ3+HqI3SJ@L@lntV;0}-ogfcz}rGipQ6^%xz zU{o;}<;3FDa9AuJi^1SE@OU+KSQwn9mWH~fa;@A%*{))RoD_<4KAqAhV7$JNZ70j8Vy$;f%5=OP|-2A zaZ}aZ7KSm2*0W`u%g35-Dyv!I^K8=0?k9RO4zF)OG+esUe3iv&(mHzwN2m49?%#Tl zH*fLWy4`n&pMSv4KMyL%WdGnIz+6c94$v4S7XldvPZR;IVr-+T8nHw=4k{YKy@t8WzH(;$hgIm6h=g%e1of%_#N#e zJKVDHLwK1)V6IRr+%NBO)MuPge@El6Cp=tH-90E<;9)d$=V0QSXVM7ikp} z-cc)WOmK-}nP&8wUa~98@O|+_;%4d|2pDM;PE73XBm~Ht24YI+i)N*shn-uSVvZ!y z{K9L?Eh(a~=ch;SCq7^X#ZGoAbnP4aj=B0^WJOHj+)&h94yW7KsQVFbQ8&U&oEejw z-4zvQ9XY_f=+it{TvX1bgqXBV*0LWKM`>?)Mc-)6Zo|+q_HUX~#w&**fS#h(+^&2y z3xVpdZJDgw?q{A(k38+Pp4?U?$sX~quvV;wz*`82`}WJcx&>dxAN1&4H_PoG?f2X% z>h^WnT$}k zC!EBY>ZWB7C}~eH7X%Uo1Rhx+%k)0lqkEHjhwCvNaQcUrccvxtir}QLxbk)lj~i~b zqEQaz;c#UuEuNZ5uV)S0vTIY<#vvIJL#GwYc}re-kky$eQ>zqWR8zIQh9CT0e=ADt zki~~UXu^~)4_%l#|I~KDFBby%JynuZ5D**~6>eA&#G9oViMgD`C7njHRwhXpZQQNzB?Y|ep|8RgN>8QNtTG})pk?Z%h*RCa zR_a=_@JqZwV;<>PgU#=E!Wj(dKIdS6of~|toG>D7;iq22o!0^D2L%xwiE1Aa+Fnvi5|v7jBYw^TG)YR>|_%L7HK>toAC3 zULl&_uAoka&NM7sdiYpC>{WQzM^~MVY4xwYpU#f8ct)MwVIA@IHF;x;Q+%W;$uRzB zCyQIFK9Dj*K7FwpSdty3Eki3FFl+3Yd$oj?Vp?6Fs=+gXUZBFYeraOf*3rtqimZEP z#a}gl?db1d)2jKsTgbU1-OC)#g>DXg<19Hz)eTlWamp+p?Tn1b&53DCYGb;yJeCk! z){yLmQ@6_wRn?bhlJ1&+@tl63X@GofYn;xsx62Bgr(%ZJ{uEE+mr!f_|sYEKgO0p~8?{cV0X04T$ uL1NA1URWNPKq;I1H6y98!@Dt;1%dP|`1KSQJn%zurt+d@(o9RzA>p4f(k7Y! literal 0 HcmV?d00001 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