From 8c905f95e3f2c3123c0391d7843b1d158e6b45e0 Mon Sep 17 00:00:00 2001 From: MetalStormGhost Date: Fri, 14 Oct 2022 20:34:12 +0300 Subject: [PATCH] Implemented support for the F-100 Super Sabre mod versions v2.7.18.01 & 2.7.18.30765 and patches 30.09.22 & 09.10.22. --- changelog.md | 1 + game/ato/ai_flight_planner_db.py | 6 + game/factions/faction.py | 2 + game/theater/start_generator.py | 1 + pydcs_extensions/f100/f100.py | 408 ++++++++++++++++++ qt_ui/main.py | 1 + qt_ui/windows/newgame/QNewGameWizard.py | 19 +- resources/customized_payloads/VSN_F100.lua | 174 ++++++++ resources/factions/usa_1955.json | 1 + resources/factions/usa_1960.json | 1 + resources/factions/usa_1965.json | 1 + resources/factions/usa_1975.json | 1 + .../ui/units/aircrafts/icons/VSN_F100_24.jpg | Bin 0 -> 8419 bytes resources/units/aircraft/VSN_F100.yaml | 15 + 14 files changed, 628 insertions(+), 3 deletions(-) create mode 100644 pydcs_extensions/f100/f100.py create mode 100644 resources/customized_payloads/VSN_F100.lua create mode 100644 resources/ui/units/aircrafts/icons/VSN_F100_24.jpg create mode 100644 resources/units/aircraft/VSN_F100.yaml diff --git a/changelog.md b/changelog.md index d7a705bc..72b4663a 100644 --- a/changelog.md +++ b/changelog.md @@ -5,6 +5,7 @@ * **[Mission Generation]** Variable flight-size (2/3/4-ship) for BAI/ANTISHIP/DEAD/STRIKE (main) missions * **[Modding]** Support for F-15D 'Baz' mod version 1.0 * **[Modding]** Support for Su-30 mod version 2.01B +* **[Modding]** Support for F-100 Super Sabre mod versions v2.7.18.01 & 2.7.18.30765 and patches 30.09.22 & 09.10.22 * **[UI]** Add livery selector to Air Wing Configurator's squadrons. * **[Performance]** Added performance option: Maximum front-line unit supply per control point. * **[Performance]** Added performance option: Disable convoys. diff --git a/game/ato/ai_flight_planner_db.py b/game/ato/ai_flight_planner_db.py index 0685a388..8ef081fd 100644 --- a/game/ato/ai_flight_planner_db.py +++ b/game/ato/ai_flight_planner_db.py @@ -121,6 +121,7 @@ from dcs.unittype import FlyingType from game.dcs.aircrafttype import AircraftType from pydcs_extensions.a4ec.a4ec import A_4E_C +from pydcs_extensions.f100.f100 import VSN_F100 from pydcs_extensions.f104.f104 import VSN_F104G, VSN_F104S, VSN_F104S_AG from pydcs_extensions.f15d.f15d import F_15D from pydcs_extensions.f22a.f22a import F_22A @@ -182,6 +183,7 @@ CAP_CAPABLE = [ VSN_F104S, VSN_F104G, MiG_19P, + VSN_F100, A_4E_C, F_86F_Sabre, MiG_15bis, @@ -271,6 +273,7 @@ CAS_CAPABLE = [ UH_1H, VSN_F104S_AG, VSN_F104G, + VSN_F100, A_20G, Ju_88A4, P_47D_40, @@ -333,6 +336,7 @@ DEAD_CAPABLE = SEAD_CAPABLE + [ Ju_88A4, VSN_F104S_AG, VSN_F104G, + VSN_F100, P_47D_40, P_47D_30bl1, P_47D_30, @@ -411,6 +415,7 @@ STRIKE_CAPABLE = [ Ju_88A4, VSN_F104S_AG, VSN_F104G, + VSN_F100, P_47D_40, P_47D_30bl1, P_47D_30, @@ -518,6 +523,7 @@ RUNWAY_ATTACK_CAPABLE = [ Ju_88A4, VSN_F104S_AG, VSN_F104G, + VSN_F100, P_47D_40, P_47D_30bl1, P_47D_30, diff --git a/game/factions/faction.py b/game/factions/faction.py index 561d7446..0e52f3c2 100644 --- a/game/factions/faction.py +++ b/game/factions/faction.py @@ -307,6 +307,8 @@ class Faction: self.remove_aircraft("F-15D") if not mod_settings.f22_raptor: self.remove_aircraft("F-22A") + if not mod_settings.f100_supersabre: + self.remove_aircraft("VSN_F100") if not mod_settings.f104_starfighter: self.remove_aircraft("VSN_F104G") self.remove_aircraft("VSN_F104S") diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py index 5b35f0a7..8acdcb53 100644 --- a/game/theater/start_generator.py +++ b/game/theater/start_generator.py @@ -54,6 +54,7 @@ class ModSettings: a4_skyhawk: bool = False f15d_baz: bool = False f22_raptor: bool = False + f100_supersabre: bool = False f104_starfighter: bool = False hercules: bool = False uh_60l: bool = False diff --git a/pydcs_extensions/f100/f100.py b/pydcs_extensions/f100/f100.py new file mode 100644 index 00000000..77c37c79 --- /dev/null +++ b/pydcs_extensions/f100/f100.py @@ -0,0 +1,408 @@ +from typing import Set + +from dcs import task +from dcs.liveries_scanner import Liveries +from dcs.planes import PlaneType +from dcs.weapons_data import Weapons + +from game.modsupport import planemod +from pydcs_extensions.weapon_injector import inject_weapons + + +class WeaponsF100: + Fuel_tank_1000_Liter = { + "clsid": "{VSN_F1001000_ptb}", + "name": "Fuel tank 1000 Liter", + "weight": 934, + } + Fuel_tank_500_Liter = { + "clsid": "{VSN_F100500_ptb}", + "name": "Fuel tank 500 Liter", + "weight": 693, + } + TER_M117_F_105 = { + "clsid": "{SB_F105_TER9A_M117_3}", + "name": "TER M117 F-105", + "weight": 1500, + } + MER_6_M117_F_105 = { + "clsid": "{SB_F105_BRU_41A_M117_6}", + "name": "MER*6 M117 F-105", + "weight": 2100, + } + + +inject_weapons(WeaponsF100) + + +@planemod +class VSN_F100(PlaneType): + id = "VSN_F100" + flyable = True + height = 4.95 + width = 11.81 + length = 15 + fuel_max = 3397 + max_speed = 1702.8 + chaff = 30 + flare = 15 + charge_total = 60 + chaff_charge_size = 1 + flare_charge_size = 2 + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + + livery_name = "VSN_F100" # from type + Liveries = Liveries()[livery_name] + + class Pylon2: + L_081_Fantasmagoria_ELINT_pod = (2, Weapons.L_081_Fantasmagoria_ELINT_pod) + + class Pylon3: + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (3, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + AIM_9P_Sidewinder_IR_AAM = (3, Weapons.AIM_9P_Sidewinder_IR_AAM) + AIM_9L_Sidewinder_IR_AAM = (3, Weapons.AIM_9L_Sidewinder_IR_AAM) + AIM_9B_Sidewinder_IR_AAM = (3, Weapons.AIM_9B_Sidewinder_IR_AAM) + LAU_7_with_AIM_9B_Sidewinder_IR_AAM = ( + 3, + Weapons.LAU_7_with_AIM_9B_Sidewinder_IR_AAM, + ) + Mk_84___2000lb_GP_Bomb_LD = (3, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD = ( + 3, + Weapons.MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD, + ) + 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, + ) + Mk_82___500lb_GP_Bomb_LD = (3, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_83___1000lb_GP_Bomb_LD = (3, Weapons.Mk_83___1000lb_GP_Bomb_LD) + M117___750lb_GP_Bomb_LD = (3, Weapons.M117___750lb_GP_Bomb_LD) + AGM_45A_Shrike_ARM = (3, Weapons.AGM_45A_Shrike_ARM) + LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk1__HE = ( + 3, + Weapons.LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk1__HE, + ) + LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk5__HEAT = ( + 3, + Weapons.LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk5__HEAT, + ) + BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 3, + Weapons.BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 3, + Weapons.BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 3, + Weapons.BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + 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, + ) + + # ERRR + + class Pylon4: + AIM_9P_Sidewinder_IR_AAM = (4, Weapons.AIM_9P_Sidewinder_IR_AAM) + AIM_9L_Sidewinder_IR_AAM = (4, Weapons.AIM_9L_Sidewinder_IR_AAM) + AIM_9B_Sidewinder_IR_AAM = (4, Weapons.AIM_9B_Sidewinder_IR_AAM) + Mk_84___2000lb_GP_Bomb_LD = (4, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD = ( + 4, + Weapons.MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD, + ) + BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD = ( + 4, + Weapons.BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD, + ) + BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD = ( + 4, + Weapons.BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD, + ) + TER_9A_with_3_x_Mk_82___500lb_GP_Bomb_LD = ( + 4, + Weapons.TER_9A_with_3_x_Mk_82___500lb_GP_Bomb_LD, + ) + Mk_82___500lb_GP_Bomb_LD = (4, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_83___1000lb_GP_Bomb_LD = (4, Weapons.Mk_83___1000lb_GP_Bomb_LD) + M117___750lb_GP_Bomb_LD = (4, Weapons.M117___750lb_GP_Bomb_LD) + TER_M117_F_105 = (4, WeaponsF100.TER_M117_F_105) + AGM_45A_Shrike_ARM = (4, Weapons.AGM_45A_Shrike_ARM) + LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk1__HE = ( + 4, + Weapons.LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk1__HE, + ) + LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk5__HEAT = ( + 4, + Weapons.LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk5__HEAT, + ) + Fuel_tank_1000_Liter = (4, WeaponsF100.Fuel_tank_1000_Liter) + + # ERRR + + class Pylon5: + AIM_9P_Sidewinder_IR_AAM = (5, Weapons.AIM_9P_Sidewinder_IR_AAM) + AIM_9L_Sidewinder_IR_AAM = (5, Weapons.AIM_9L_Sidewinder_IR_AAM) + AIM_9B_Sidewinder_IR_AAM = (5, Weapons.AIM_9B_Sidewinder_IR_AAM) + LAU_105_with_2_x_AIM_9P_Sidewinder_IR_AAM = ( + 5, + Weapons.LAU_105_with_2_x_AIM_9P_Sidewinder_IR_AAM, + ) + LAU_105_with_2_x_AIM_9M_Sidewinder_IR_AAM = ( + 5, + Weapons.LAU_105_with_2_x_AIM_9M_Sidewinder_IR_AAM, + ) + LAU_7_with_2_x_AIM_9L_Sidewinder_IR_AAM = ( + 5, + Weapons.LAU_7_with_2_x_AIM_9L_Sidewinder_IR_AAM, + ) + LAU_7_with_2_x_AIM_9B_Sidewinder_IR_AAM = ( + 5, + Weapons.LAU_7_with_2_x_AIM_9B_Sidewinder_IR_AAM, + ) + LAU_7_with_2_x_AIM_9P5_Sidewinder_IR_AAM = ( + 5, + Weapons.LAU_7_with_2_x_AIM_9P5_Sidewinder_IR_AAM, + ) + Mk_84___2000lb_GP_Bomb_LD = (5, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD = ( + 5, + Weapons.MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD, + ) + 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, + ) + Mk_82___500lb_GP_Bomb_LD = (5, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_83___1000lb_GP_Bomb_LD = (5, Weapons.Mk_83___1000lb_GP_Bomb_LD) + TER_9A_with_3_x_Mk_82___500lb_GP_Bomb_LD = ( + 5, + Weapons.TER_9A_with_3_x_Mk_82___500lb_GP_Bomb_LD, + ) + MER_6_M117_F_105 = (5, WeaponsF100.MER_6_M117_F_105) + TER_M117_F_105 = (5, WeaponsF100.TER_M117_F_105) + _3_Mk_83 = (5, Weapons._3_Mk_83) + LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk1__HE = ( + 5, + Weapons.LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk1__HE, + ) + LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk5__HEAT = ( + 5, + Weapons.LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk5__HEAT, + ) + BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 5, + Weapons.BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_7_with_AIM_9P_Sidewinder_IR_AAM = ( + 5, + Weapons.LAU_7_with_AIM_9P_Sidewinder_IR_AAM, + ) + LAU_7_with_AIM_9B_Sidewinder_IR_AAM = ( + 5, + Weapons.LAU_7_with_AIM_9B_Sidewinder_IR_AAM, + ) + LAU_118a_with_AGM_45B_Shrike_ARM__Imp_ = ( + 5, + Weapons.LAU_118a_with_AGM_45B_Shrike_ARM__Imp_, + ) + + Fuel_tank_500_Liter = (5, WeaponsF100.Fuel_tank_500_Liter) + + # ERRR + + class Pylon6: + Smoke_Generator___red_ = (6, Weapons.Smoke_Generator___red_) + Smoke_Generator___green_ = (6, Weapons.Smoke_Generator___green_) + Smoke_Generator___blue_ = (6, Weapons.Smoke_Generator___blue_) + Smoke_Generator___white_ = (6, Weapons.Smoke_Generator___white_) + Smoke_Generator___yellow_ = (6, Weapons.Smoke_Generator___yellow_) + Smoke_Generator___orange_ = (6, Weapons.Smoke_Generator___orange_) + + class Pylon7: + AIM_9P_Sidewinder_IR_AAM = (7, Weapons.AIM_9P_Sidewinder_IR_AAM) + AIM_9L_Sidewinder_IR_AAM = (7, Weapons.AIM_9L_Sidewinder_IR_AAM) + AIM_9B_Sidewinder_IR_AAM = (7, Weapons.AIM_9B_Sidewinder_IR_AAM) + LAU_105_with_2_x_AIM_9P_Sidewinder_IR_AAM = ( + 7, + Weapons.LAU_105_with_2_x_AIM_9P_Sidewinder_IR_AAM, + ) + LAU_105_with_2_x_AIM_9M_Sidewinder_IR_AAM = ( + 7, + Weapons.LAU_105_with_2_x_AIM_9M_Sidewinder_IR_AAM, + ) + LAU_7_with_2_x_AIM_9L_Sidewinder_IR_AAM = ( + 7, + Weapons.LAU_7_with_2_x_AIM_9L_Sidewinder_IR_AAM, + ) + LAU_7_with_2_x_AIM_9B_Sidewinder_IR_AAM = ( + 7, + Weapons.LAU_7_with_2_x_AIM_9B_Sidewinder_IR_AAM, + ) + LAU_7_with_2_x_AIM_9P5_Sidewinder_IR_AAM = ( + 7, + Weapons.LAU_7_with_2_x_AIM_9P5_Sidewinder_IR_AAM, + ) + Mk_84___2000lb_GP_Bomb_LD = (7, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD = ( + 7, + Weapons.MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD, + ) + 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, + ) + Mk_82___500lb_GP_Bomb_LD = (7, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_83___1000lb_GP_Bomb_LD = (7, Weapons.Mk_83___1000lb_GP_Bomb_LD) + TER_9A_with_3_x_Mk_82___500lb_GP_Bomb_LD = ( + 7, + Weapons.TER_9A_with_3_x_Mk_82___500lb_GP_Bomb_LD, + ) + MER_6_M117_F_105 = (7, WeaponsF100.MER_6_M117_F_105) + TER_M117_F_105 = (7, WeaponsF100.TER_M117_F_105) + _3_Mk_83 = (7, Weapons._3_Mk_83) + LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk1__HE = ( + 7, + Weapons.LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk1__HE, + ) + LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk5__HEAT = ( + 7, + Weapons.LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk5__HEAT, + ) + BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 7, + Weapons.BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_7_with_AIM_9B_Sidewinder_IR_AAM = ( + 7, + Weapons.LAU_7_with_AIM_9B_Sidewinder_IR_AAM, + ) + LAU_7_with_AIM_9P_Sidewinder_IR_AAM = ( + 7, + Weapons.LAU_7_with_AIM_9P_Sidewinder_IR_AAM, + ) + Fuel_tank_500_Liter = (7, WeaponsF100.Fuel_tank_500_Liter) + + # ERRR + + class Pylon8: + AIM_9P_Sidewinder_IR_AAM = (8, Weapons.AIM_9P_Sidewinder_IR_AAM) + AIM_9L_Sidewinder_IR_AAM = (8, Weapons.AIM_9L_Sidewinder_IR_AAM) + AIM_9B_Sidewinder_IR_AAM = (8, Weapons.AIM_9B_Sidewinder_IR_AAM) + Mk_84___2000lb_GP_Bomb_LD = (8, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD = ( + 8, + Weapons.MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD, + ) + BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD = ( + 8, + Weapons.BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD, + ) + BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD = ( + 8, + Weapons.BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD, + ) + TER_9A_with_3_x_Mk_82___500lb_GP_Bomb_LD = ( + 8, + Weapons.TER_9A_with_3_x_Mk_82___500lb_GP_Bomb_LD, + ) + Mk_82___500lb_GP_Bomb_LD = (8, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_83___1000lb_GP_Bomb_LD = (8, Weapons.Mk_83___1000lb_GP_Bomb_LD) + M117___750lb_GP_Bomb_LD = (8, Weapons.M117___750lb_GP_Bomb_LD) + TER_M117_F_105 = (8, WeaponsF100.TER_M117_F_105) + AGM_45A_Shrike_ARM = (8, Weapons.AGM_45A_Shrike_ARM) + LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk1__HE = ( + 8, + Weapons.LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk1__HE, + ) + LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk5__HEAT = ( + 8, + Weapons.LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk5__HEAT, + ) + Fuel_tank_1000_Liter = (8, WeaponsF100.Fuel_tank_1000_Liter) + + # ERRR + + class Pylon9: + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (9, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + AIM_9P_Sidewinder_IR_AAM = (9, Weapons.AIM_9P_Sidewinder_IR_AAM) + AIM_9L_Sidewinder_IR_AAM = (9, Weapons.AIM_9L_Sidewinder_IR_AAM) + AIM_9B_Sidewinder_IR_AAM = (9, Weapons.AIM_9B_Sidewinder_IR_AAM) + Mk_84___2000lb_GP_Bomb_LD = (9, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD = ( + 9, + Weapons.MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD, + ) + LAU_7_with_AIM_9B_Sidewinder_IR_AAM = ( + 9, + Weapons.LAU_7_with_AIM_9B_Sidewinder_IR_AAM, + ) + BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD = ( + 9, + Weapons.BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD, + ) + BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD = ( + 9, + Weapons.BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD, + ) + Mk_82___500lb_GP_Bomb_LD = (9, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_83___1000lb_GP_Bomb_LD = (9, Weapons.Mk_83___1000lb_GP_Bomb_LD) + M117___750lb_GP_Bomb_LD = (9, Weapons.M117___750lb_GP_Bomb_LD) + AGM_45A_Shrike_ARM = (9, Weapons.AGM_45A_Shrike_ARM) + LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk1__HE = ( + 9, + Weapons.LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk1__HE, + ) + LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk5__HEAT = ( + 9, + Weapons.LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk5__HEAT, + ) + BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 9, + Weapons.BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 9, + Weapons.BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 9, + Weapons.BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_33_with_2_x_Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 9, + Weapons.BRU_33_with_2_x_Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + + # ERRR + + pylons: Set[int] = {2, 3, 4, 5, 6, 7, 8, 9} + + tasks = [ + task.CAP, + task.Escort, + task.FighterSweep, + task.Intercept, + task.Reconnaissance, + task.GroundAttack, + task.CAS, + task.RunwayAttack, + task.AntishipStrike, + ] + task_default = task.FighterSweep diff --git a/qt_ui/main.py b/qt_ui/main.py index 553534e1..873cbcad 100644 --- a/qt_ui/main.py +++ b/qt_ui/main.py @@ -295,6 +295,7 @@ def create_game( ModSettings( a4_skyhawk=False, f22_raptor=False, + f100_supersabre=False, f104_starfighter=False, hercules=False, jas39_gripen=False, diff --git a/qt_ui/windows/newgame/QNewGameWizard.py b/qt_ui/windows/newgame/QNewGameWizard.py index 5ad63f3b..91b910ff 100644 --- a/qt_ui/windows/newgame/QNewGameWizard.py +++ b/qt_ui/windows/newgame/QNewGameWizard.py @@ -161,6 +161,7 @@ class NewGameWizard(QtWidgets.QWizard): a4_skyhawk=self.field("a4_skyhawk"), f15d_baz=self.field("f15d_baz"), f22_raptor=self.field("f22_raptor"), + f100_supersabre=self.field("f100_supersabre"), f104_starfighter=self.field("f104_starfighter"), hercules=self.field("hercules"), uh_60l=self.field("uh_60l"), @@ -661,6 +662,8 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.registerField("f15d_baz", f15d_baz) f22_raptor = QtWidgets.QCheckBox() self.registerField("f22_raptor", f22_raptor) + f100_supersabre = QtWidgets.QCheckBox() + self.registerField("f100_supersabre", f100_supersabre) f104_starfighter = QtWidgets.QCheckBox() self.registerField("f104_starfighter", f104_starfighter) jas39_gripen = QtWidgets.QCheckBox() @@ -692,9 +695,19 @@ class GeneratorOptions(QtWidgets.QWizardPage): modLayout.addWidget(QtWidgets.QLabel("F-22A Raptor"), modLayout_row, 0) modLayout.addWidget(f22_raptor, modLayout_row, 1) modLayout_row += 1 + modLayout.addWidget( + QtWidgets.QLabel("F-100 Super Sabre (version 2.7.18.30765 patch 09.10.22)"), + modLayout_row, + 0, + ) + modLayout.addWidget(f100_supersabre, modLayout_row, 1) + modLayout_row += 1 modLayout.addWidget(QtWidgets.QLabel("F-104 Starfighter"), modLayout_row, 0) modLayout.addWidget(f104_starfighter, modLayout_row, 1) modLayout_row += 1 + # Section break here for readability + modLayout.addWidget(QtWidgets.QWidget(), modLayout_row, 0) + modLayout_row += 1 modLayout.addWidget( QtWidgets.QLabel("C-130J-30 Super Hercules"), modLayout_row, 0 ) @@ -705,9 +718,6 @@ class GeneratorOptions(QtWidgets.QWizardPage): ) modLayout.addWidget(uh_60l, modLayout_row, 1) modLayout_row += 1 - # Section break here for readability - modLayout.addWidget(QtWidgets.QWidget(), modLayout_row, 0) - modLayout_row += 1 modLayout.addWidget( QtWidgets.QLabel("JAS 39 Gripen (version v1.8.0-beta)"), modLayout_row, 0 ) @@ -721,6 +731,9 @@ class GeneratorOptions(QtWidgets.QWizardPage): modLayout.addWidget(QtWidgets.QLabel("Su-57 Felon"), modLayout_row, 0) modLayout.addWidget(su57_felon, modLayout_row, 1) modLayout_row += 1 + # Section break here for readability + modLayout.addWidget(QtWidgets.QWidget(), modLayout_row, 0) + modLayout_row += 1 modLayout.addWidget(QtWidgets.QLabel("Frenchpack"), modLayout_row, 0) modLayout.addWidget(frenchpack, modLayout_row, 1) modLayout_row += 1 diff --git a/resources/customized_payloads/VSN_F100.lua b/resources/customized_payloads/VSN_F100.lua new file mode 100644 index 00000000..7880c460 --- /dev/null +++ b/resources/customized_payloads/VSN_F100.lua @@ -0,0 +1,174 @@ +local unitPayloads = { + ["name"] = "VSN_F100", + ["payloads"] = { + [1] = { + ["displayName"] = "CAP", + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{F4-2-AIM9B}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{VSN_F1001000_ptb}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{GAR-8}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{VSN_F1001000_ptb}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{GAR-8}", + ["num"] = 9, + }, + [6] = { + ["CLSID"] = "{F4-2-AIM9B}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [2] = { + ["displayName"] = "DEAD", + ["name"] = "DEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{SB_F105_TER9A_M117_3}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{VSN_F1001000_ptb}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{BRU33_2X_MK-82}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{VSN_F1001000_ptb}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{BRU33_2X_MK-82}", + ["num"] = 9, + }, + [6] = { + ["CLSID"] = "{SB_F105_TER9A_M117_3}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 19, + }, + }, + [3] = { + ["displayName"] = "CAS", + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{SB_F105_TER9A_M117_3}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{VSN_F1001000_ptb}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{BRU33_2*LAU61}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{VSN_F1001000_ptb}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{BRU33_2*LAU61}", + ["num"] = 9, + }, + [6] = { + ["CLSID"] = "{SB_F105_TER9A_M117_3}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 19, + }, + }, + [4] = { + ["displayName"] = "STRIKE", + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{SB_F105_TER9A_M117_3}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{VSN_F1001000_ptb}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{7A44FF09-527C-4B7E-B42B-3F111CFE50FB}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{VSN_F1001000_ptb}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{7A44FF09-527C-4B7E-B42B-3F111CFE50FB}", + ["num"] = 9, + }, + [6] = { + ["CLSID"] = "{SB_F105_TER9A_M117_3}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 19, + }, + }, + [5] = { + ["displayName"] = "OCA", + ["name"] = "OCA", + ["pylons"] = { + [1] = { + ["CLSID"] = "{VSN_F100500_ptb}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{7A44FF09-527C-4B7E-B42B-3F111CFE50FB}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{7A44FF09-527C-4B7E-B42B-3F111CFE50FB}", + ["num"] = 9, + }, + [6] = { + ["CLSID"] = "{VSN_F100500_ptb}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 19, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "VSN_F100", +} +return unitPayloads diff --git a/resources/factions/usa_1955.json b/resources/factions/usa_1955.json index cb908ee6..88018012 100644 --- a/resources/factions/usa_1955.json +++ b/resources/factions/usa_1955.json @@ -10,6 +10,7 @@ "B-52H Stratofortress", "C-130", "F-86F Sabre", + "F-100 Super Sabre", "P-51D-25-NA Mustang", "P-51D-30-NA Mustang" ], diff --git a/resources/factions/usa_1960.json b/resources/factions/usa_1960.json index 33241cd1..1a1a8aa9 100644 --- a/resources/factions/usa_1960.json +++ b/resources/factions/usa_1960.json @@ -10,6 +10,7 @@ "B-52H Stratofortress", "C-130", "F-86F Sabre", + "F-100 Super Sabre", "P-51D-25-NA Mustang", "P-51D-30-NA Mustang", "UH-1H Iroquois" diff --git a/resources/factions/usa_1965.json b/resources/factions/usa_1965.json index d220b623..78b15b3b 100644 --- a/resources/factions/usa_1965.json +++ b/resources/factions/usa_1965.json @@ -12,6 +12,7 @@ "CH-47D", "F-4E Phantom II", "F-5E Tiger II", + "F-100 Super Sabre", "UH-1H Iroquois" ], "awacs": [ diff --git a/resources/factions/usa_1975.json b/resources/factions/usa_1975.json index 191d7c90..3307c56f 100644 --- a/resources/factions/usa_1975.json +++ b/resources/factions/usa_1975.json @@ -14,6 +14,7 @@ "F-14A Tomcat (Block 135-GR Late)", "F-4E Phantom II", "F-5E Tiger II", + "F-100 Super Sabre", "S-3B Viking", "UH-1H Iroquois" ], diff --git a/resources/ui/units/aircrafts/icons/VSN_F100_24.jpg b/resources/ui/units/aircrafts/icons/VSN_F100_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..176bbf5cb7b3e338e68575752a023d75b1952ed7 GIT binary patch literal 8419 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

dRFNoXWEge-U-AZ(%$&3u{w0PG#^K z-ha6r4gnWj4!>BJVDvd_u-PTBGR@+RSD{7<0*P z3eWa>S8*XgX|dlqKM}6l4x&HTNwYqa#XolTJs&<`f)yqSI(u5T*UYV=db@Bhh#du~ zo;wS?bnfXZMGG6RmVYysfnh&y&9(0X&tA3JIgIN3a#$sGt&ij6Cm*#As`YITou>1< zV^(tIF!9ifDc%&JC-&Eu24XYqNf|Mp993*5l{eO=;X0nK=b>Ty@~rzqpXOb;s!1rxW@cRSs4@$3*SR58AOy{pUj`)^ zz@#jLj4Cg68(y462*wWu{6a3t)*$q_6V$?j+zDX(n&Ly=g)Yo6k&mjY`j=!BGWAT{ z3GALdztU*pg~tWeH|ECy7~{XkHwV&5IO> z97%(x>PbWa*O4^e#?Q)6?8b`{cqL1C!O8w1oaAVZJ(uL{M4Xl6kR%ifd2uXak}yUj zbx3j~$(=hu85y=D5#=gz(T=1A@Qb@!tb|9jwy?IaqQC=00*wTHNVt3l<{XbP5Ae>B zG?r>&VxmPN-6B>JX-T!Wx3{#SS<+|}s6mk~7sauXC?cuhxQ97BDMum@#|dIZM8qSD z9UC9#NP_W46BCO4{JuN>M+}5QBwM+*G|oK%8viH6q#?`2JWD1|8XGU+@Z1x4qBz5G zb1vt*tvFs1BQJom${bTY-Xjq}c zoLEjg62yCsBMI^3z>VbyxDIlW!Q!)Q=u|3&$6_-m)^@gb6gHJ^N1<7BxEwy4X2;`l z$NhMVq;V_}hlluqo-G8>37^NcwWZqfDSR6mhhojA@hL1j9*aV^v$C^iTXWe~ESqur z0Eqx@BUa2`^FjP@p&u@T&!DmSb`*}iJs0L-V@t8;!nCMt8k@?ZQ|Syoi$vsd96Vwr zLKa*Hfshr+vs^0XMUsdJUJfpS-i{=ih1J+?U<@mc4|U;Y6^OX8iPEw05P^^v9LGYi zquScq*fQug*7j5ejbTR{)0oGTNa2n_oXJm=^7I|tBs^AJtRy5hHpY?k{lJOrv{8_~ z1X4J?d~ELq^OlWCF#@7|=Qyx9$Ubx=Nm&Uz2Ou`O%n29>c+8 zTr)9>hZG4<%M_{=g-Q<@JuTDhNtQ5oOXPtWEyMEf70T!S@^Fo-!zUIIzkdKY5r4Ly z2>e9gCjvha_=&(z1pfaa@Z$)<6TxpeiSU3R>qQ^&c5_=C$PDoCp6d=@x5HQEyJ9#( zDHguG7mDH}Oix!LeDh1hJq9X}4^RXQFqy@Xiv5B;LdM@e|7-uD19_DWKsyET^{?~) zaYUU9j|%X;H4$pf=7=S6P+kIM+r&6AB5#2*0e)HILirGs%_T5FDBnTG*`x9cM2?ip z2$=y0k`SgFtc?I=V&q?B_FrU9ltc)1tf7t(S15x1(F;apE+Vf)WMND^%uU{q3e|X` z&|ugb!AlQ#0&n040s#@QK|BzE7!U_2uouA*DPY2R*MDO_MQ$Gmt=P~?065TM4u}Op zz>?boWDTGWY(KD-^651B5K7Gz0EGuK+1u%m>d6COBwHr?x?3h2DS=c;7XW8PKkQ?7 z0l;_<$FqNo8SMl>GZlbi=YNc`ivT#j9?~s$#ViR+9tQ*eqWO?kdQ%R7`a%G-ZvdbY zK8hQhL*~Jr+W>?>tma+?VCyyjj3c4%h<{Tz!cBe0?LX>_;U}kOFlaRL3mX>xDkvdD zhk^LZ+qNb**qN=K{F#)fxp{1d!il2zr(kAHW=%{H<(w#`qoj}kb$mtmjw81JU zD<~)v)K%39|8urM<_LbKPuGdVGiIffKd?X0$nZD0<~w)MdfTkXt4TYuny6);4ZcP!3agIQ zrJt!Vx$YZcvEKFsf!A~Fv?9j!$m>IR(%gj2PODoJ!d4;73LY|Qa&BcjGQyr<6cn}a z6DMfH;7ahZM=79t?}&&baB)sq?`Y#M-btT*%uP?JuyN~?X!XPQu)9-=9Sg!&&nvs* zx?F>&K#TP~@YMjGSyGSO4y)*>Kk!+#lw0d&65Me$anqr=4(-W#ioz!_0}=!Xa#C3N z{uoUH1vwGCb`aKpM4dpek|zOEbVd>LLb&IL{)F#T4?r}rGCc?_e zVV)7e3$E8}h)f+R+MIVTXWxqIb9v3VJ$`{TV^LrbNOp}kNLymGw6S=|d<7|3xyYlS zkthY1_b4uO3#@HwzH#G4U+%prpE`H(^s_I<%;N{s%^eD~X)B8Avo^gC-tOS)Uh?!( z(%L^Zoc)rXW`Qhpfw=~s|_n_Fmz!_a(nPZ zBP%+Sv#hH1^%&ZU&ggw*8T>hpb6!0tn9|~eZ<1Wu>M|_kxBe#64 zvp!tKnJTo2H8BS(w3DLQb7x+1jyvn6p7w2|pw%ZgG2mdUb>b!WgJC+(0at?P&4%?? z(#$sHQqJPbci{C7JZ}Bm)}10+GW{S|y;tY;d(T;JIh9duwN?F@$Dg#r^o{V4oPwCa zO*qz2Knv1@Yw)a`-9f~vhSs6+{o!n|_RGy@>IdiMUh%sfT7A3?H+vvd?_KG@zGpil z8n=J3Ono@DhErRWdFEyL7LSsC+?CmXR=%=ZbF$u0WrFssmAETavH9joM4wc2`imKV z40~+k3PM!_Eb=1hRT=xPIYm$Dt9w_)D2($RWSOSRKnD*v5T8t+^Ev-2cILg4t6&~- zDoy?&gZEY37!-JRv3qir|DuyJ0825@LKsn4%->4E?`{oRlhZJYJhH{`Elm5((>(6- z3SF@HbsLS1s-l{o>#A2~rrQ}r^tx|U-Fkmd-80Vk3F@`gdz}{_8J_(nrn>0x(LBADwaxd3H)y86 z`aQ57HP*}W=y;nc=UWStO7{C)AGN7bAy)3P38BRe$6 z7oW~4wYmJ*KX<`weBc8gT#C(J`Uk7Br>==EsH%wmjgM@KgQfKvB2FN2;WD?YUz#?| m_FkN7*!8G-OT_sXHN%&m{?1mMji0-1DYc+7>fA!v-Twgrx$q?b literal 0 HcmV?d00001 diff --git a/resources/units/aircraft/VSN_F100.yaml b/resources/units/aircraft/VSN_F100.yaml new file mode 100644 index 00000000..3bb9b11b --- /dev/null +++ b/resources/units/aircraft/VSN_F100.yaml @@ -0,0 +1,15 @@ +description: + "The North American F-100 Super Sabre is an American supersonic jet fighter \ + \ aircraft that served with the United States Air Force (USAF) from 1954 to 1971 \ + \ and with the Air National Guard (ANG) until 1979. The first of the Century Series \ + \ of USAF jet fighters, it was the first USAF fighter capable of supersonic speed \ + \ in level flight." +introduced: 1954 +manufacturer: North American Aviation +origin: USA +price: 8 +role: Fighter-Bomber +max_range: 100 +gunfighter: true +variants: + F-100 Super Sabre: {}