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 00000000..176bbf5c Binary files /dev/null and b/resources/ui/units/aircrafts/icons/VSN_F100_24.jpg differ 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: {}