diff --git a/changelog.md b/changelog.md index f553aa6c..32500391 100644 --- a/changelog.md +++ b/changelog.md @@ -8,6 +8,7 @@ Saves from 6.x are not compatible with 7.0. * **[Engine]** Saved games are now a zip file of save assets for easier bug reporting. The new extension is .liberation.zip. Drag and drop that file into bug reports. * **[Mission Generation]** Units on the front line are now hidden on MFDs. * **[Modding]** Updated Community A-4E-C mod version support to 2.1.0 release. +* **[Modding]** Add support for VSN F-4B and F-4C mod. ## Fixes diff --git a/game/ato/ai_flight_planner_db.py b/game/ato/ai_flight_planner_db.py index 0c70f6b5..c83d8682 100644 --- a/game/ato/ai_flight_planner_db.py +++ b/game/ato/ai_flight_planner_db.py @@ -123,6 +123,7 @@ from dcs.unittype import FlyingType from game.dcs.aircrafttype import AircraftType from pydcs_extensions.a4ec.a4ec import A_4E_C from pydcs_extensions.f104.f104 import VSN_F104G, VSN_F104S, VSN_F104S_AG +from pydcs_extensions.f4.f4 import VSN_F4B, VSN_F4C from pydcs_extensions.f22a.f22a import F_22A from pydcs_extensions.hercules.hercules import Hercules from pydcs_extensions.jas39.jas39 import JAS39Gripen, JAS39Gripen_AG @@ -173,6 +174,8 @@ CAP_CAPABLE = [ Mirage_F1CT, F_15E, M_2000C, + VSN_F4B, + VSN_F4C, F_5E_3, VSN_F104S, VSN_F104G, @@ -264,6 +267,8 @@ CAS_CAPABLE = [ UH_1H, VSN_F104S_AG, VSN_F104G, + VSN_F4B, + VSN_F4C, A_20G, Ju_88A4, P_47D_40, @@ -321,6 +326,8 @@ DEAD_CAPABLE = SEAD_CAPABLE + [ H_6J, A_20G, Ju_88A4, + VSN_F4B, + VSN_F4C, VSN_F104S_AG, VSN_F104G, P_47D_40, @@ -376,6 +383,8 @@ STRIKE_CAPABLE = [ A_10C, S_3B, A_4E_C, + VSN_F4B, + VSN_F4C, Bronco_OV_10A, M_2000C, Mirage_F1B, @@ -479,6 +488,8 @@ RUNWAY_ATTACK_CAPABLE = [ A_10C, S_3B, A_4E_C, + VSN_F4B, + VSN_F4C, Bronco_OV_10A, M_2000C, Mirage_F1B, diff --git a/game/factions/faction.py b/game/factions/faction.py index fbe7fc64..26eb3529 100644 --- a/game/factions/faction.py +++ b/game/factions/faction.py @@ -297,6 +297,9 @@ class Faction: self.remove_aircraft("VSN_F104G") self.remove_aircraft("VSN_F104S") self.remove_aircraft("VSN_F104S_AG") + if not mod_settings.f4_phantom: + self.remove_aircraft("VSN_F4B") + self.remove_aircraft("VSN_F4C") if not mod_settings.jas39_gripen: self.remove_aircraft("JAS39Gripen") self.remove_aircraft("JAS39Gripen_AG") diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py index 52978792..e70e79c6 100644 --- a/game/theater/start_generator.py +++ b/game/theater/start_generator.py @@ -54,6 +54,7 @@ class ModSettings: a4_skyhawk: bool = False f22_raptor: bool = False f104_starfighter: bool = False + f4_phantom: bool = False hercules: bool = False uh_60l: bool = False jas39_gripen: bool = False diff --git a/pydcs_extensions/__init__.py b/pydcs_extensions/__init__.py index acf2d7f5..06f20e88 100644 --- a/pydcs_extensions/__init__.py +++ b/pydcs_extensions/__init__.py @@ -1,6 +1,7 @@ from .a4ec import * from .f104 import * from .f22a import * +from .f4 import * from .frenchpack import * from .hercules import * from .highdigitsams import * diff --git a/pydcs_extensions/f4/f4.py b/pydcs_extensions/f4/f4.py new file mode 100644 index 00000000..c203ee0c --- /dev/null +++ b/pydcs_extensions/f4/f4.py @@ -0,0 +1,671 @@ +from typing import Any, Dict, 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 WeaponsF4: + F4B_Gunpod_w_SAPHEI_T = { + "clsid": "{VSN_F4B_Equalizer}", + "name": "F4B Gunpod w/SAPHEI-T", + "weight": 244.46, + } + F4B_SUU_23_Gun_Pod = { + "clsid": "{VSN_F4B_Gunpod}", + "name": "F4B SUU-23 Gun Pod", + "weight": 112.35, + } + LAU_105_2_AIM_9J = { + "clsid": "{VSN_F4B_LAU105_AIM9J}", + "name": "LAU-105 2*AIM-9J", + "weight": 332, + } + LAU_105_2_AIM_9JULI = { + "clsid": "{VSN_F4B_LAU105_AIM9JULI}", + "name": "LAU-105 2*AIM-9JULI", + "weight": 332, + } + VSN_F4B_C2_PTB = { + "clsid": "VSN_F4B_C2_PTB", + "name": "Fuel tank Center 370 Gal", + "weight": 1240, + } + VSN_F4EC_PTB = { + "clsid": "VSN_F4EC_PTB", + "name": "Fuel tank Center 600 Gal", + "weight": 1980, + } + VSN_F4EL_PTB = { + "clsid": "VSN_F4EL_PTB", + "name": "Fuel tank Wing L 370 Gal", + "weight": 1240, + } + VSN_F4ER_PTB = { + "clsid": "VSN_F4ER_PTB", + "name": "Fuel tank Wing R 370 Gal", + "weight": 1240, + } + + +inject_weapons(WeaponsF4) + + +@planemod +class VSN_F4B(PlaneType): + id = "VSN_F4B" + flyable = True + height = 5.02 + width = 11.71 + length = 19.2 + fuel_max = 6416 + max_speed = 2545.2 + chaff = 48 + flare = 48 + charge_total = 96 + chaff_charge_size = 1 + flare_charge_size = 1 + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 127.5 + + livery_name = "VSN_F4B" # from type + Liveries = Liveries()[livery_name] + + class Pylon1: + Smoke_Generator___red_ = (1, Weapons.Smoke_Generator___red_) + Smoke_Generator___green_ = (1, Weapons.Smoke_Generator___green_) + Smoke_Generator___blue_ = (1, Weapons.Smoke_Generator___blue_) + Smoke_Generator___white_ = (1, Weapons.Smoke_Generator___white_) + Smoke_Generator___yellow_ = (1, Weapons.Smoke_Generator___yellow_) + Smoke_Generator___orange_ = (1, Weapons.Smoke_Generator___orange_) + + class Pylon2: + GBU_10___2000lb_Laser_Guided_Bomb = ( + 2, + Weapons.GBU_10___2000lb_Laser_Guided_Bomb, + ) + GBU_12___500lb_Laser_Guided_Bomb = (2, Weapons.GBU_12___500lb_Laser_Guided_Bomb) + BRU_42_with_3_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets = ( + 2, + Weapons.BRU_42_with_3_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets, + ) + Mk_84___2000lb_GP_Bomb_LD = (2, Weapons.Mk_84___2000lb_GP_Bomb_LD) + LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 2, + Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 2, + Weapons.LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + _3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 2, + Weapons._3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 2, + Weapons.LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + Smokewinder___red = (2, Weapons.Smokewinder___red) + Smokewinder___green = (2, Weapons.Smokewinder___green) + Smokewinder___blue = (2, Weapons.Smokewinder___blue) + Smokewinder___white = (2, Weapons.Smokewinder___white) + Smokewinder___yellow = (2, Weapons.Smokewinder___yellow) + BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 2, + Weapons.BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 2, + Weapons.BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_41A_with_6_x_Mk_82___500lb_GP_Bomb_LD = ( + 2, + Weapons.BRU_41A_with_6_x_Mk_82___500lb_GP_Bomb_LD, + ) + BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb = ( + 2, + Weapons.BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb, + ) + BIN_200 = (2, Weapons.BIN_200) + VSN_F4EL_PTB = (2, Weapons.VSN_F4EL_PTB) + + class Pylon3: + GBU_10___2000lb_Laser_Guided_Bomb = ( + 3, + Weapons.GBU_10___2000lb_Laser_Guided_Bomb, + ) + GBU_12___500lb_Laser_Guided_Bomb = (3, Weapons.GBU_12___500lb_Laser_Guided_Bomb) + BRU_42_with_3_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets = ( + 3, + Weapons.BRU_42_with_3_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets, + ) + BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD = ( + 3, + Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD, + ) + Mk_84___2000lb_GP_Bomb_LD = (3, Weapons.Mk_84___2000lb_GP_Bomb_LD) + LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 3, + Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + _3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 3, + Weapons._3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 3, + Weapons.BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + 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, + ) + LAU_105_2_AIM_9L = (3, Weapons.LAU_105_2_AIM_9L) + LAU_105_with_2_x_AIM_9P_Sidewinder_IR_AAM = ( + 3, + Weapons.LAU_105_with_2_x_AIM_9P_Sidewinder_IR_AAM, + ) + LAU_105_2_AIM_9P5 = (3, Weapons.LAU_105_2_AIM_9P5) + LAU_7_with_2_x_AIM_9B_Sidewinder_IR_AAM = ( + 3, + Weapons.LAU_7_with_2_x_AIM_9B_Sidewinder_IR_AAM, + ) + LAU_105_2_AIM_9J = (3, Weapons.LAU_105_2_AIM_9J) + LAU_105_2_AIM_9JULI = (3, Weapons.LAU_105_2_AIM_9JULI) + AIM_7F_Sparrow_Semi_Active_Radar = (3, Weapons.AIM_7F_Sparrow_Semi_Active_Radar) + AIM_7E_Sparrow_Semi_Active_Radar = (3, Weapons.AIM_7E_Sparrow_Semi_Active_Radar) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 3, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + Mk_82___500lb_GP_Bomb_LD = (3, Weapons.Mk_82___500lb_GP_Bomb_LD) + TER_9A_with_3_x_Mk_82_Snakeye___500lb_GP_Bomb_HD = ( + 3, + Weapons.TER_9A_with_3_x_Mk_82_Snakeye___500lb_GP_Bomb_HD, + ) + BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD = ( + 3, + Weapons.BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD, + ) + BIN_200 = (3, Weapons.BIN_200) + + class Pylon4: + AIM_7F_Sparrow_Semi_Active_Radar = (4, Weapons.AIM_7F_Sparrow_Semi_Active_Radar) + AIM_7E_Sparrow_Semi_Active_Radar = (4, Weapons.AIM_7E_Sparrow_Semi_Active_Radar) + + class Pylon5: + AIM_7F_Sparrow_Semi_Active_Radar = (5, Weapons.AIM_7F_Sparrow_Semi_Active_Radar) + AIM_7E_Sparrow_Semi_Active_Radar = (5, Weapons.AIM_7E_Sparrow_Semi_Active_Radar) + + class Pylon6: + Smokewinder___red = (6, Weapons.Smokewinder___red) + Smokewinder___green = (6, Weapons.Smokewinder___green) + Smokewinder___blue = (6, Weapons.Smokewinder___blue) + Smokewinder___white = (6, Weapons.Smokewinder___white) + Smokewinder___yellow = (6, Weapons.Smokewinder___yellow) + BRU_41A_with_6_x_Mk_82___500lb_GP_Bomb_LD = ( + 6, + Weapons.BRU_41A_with_6_x_Mk_82___500lb_GP_Bomb_LD, + ) + _3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 6, + Weapons._3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD = ( + 6, + Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD, + ) + ALQ_131___ECM_Pod = (6, Weapons.ALQ_131___ECM_Pod) + F4B_Gunpod_w_SAPHEI_T = (6, Weapons.F4B_Gunpod_w_SAPHEI_T) + VSN_F4EC_PTB = (6, Weapons.VSN_F4EC_PTB) + VSN_F4ER_PTB = (6, Weapons.VSN_F4ER_PTB) + + class Pylon7: + AIM_7F_Sparrow_Semi_Active_Radar = (7, Weapons.AIM_7F_Sparrow_Semi_Active_Radar) + AIM_7E_Sparrow_Semi_Active_Radar = (7, Weapons.AIM_7E_Sparrow_Semi_Active_Radar) + + class Pylon8: + AIM_7F_Sparrow_Semi_Active_Radar = (8, Weapons.AIM_7F_Sparrow_Semi_Active_Radar) + AIM_7E_Sparrow_Semi_Active_Radar = (8, Weapons.AIM_7E_Sparrow_Semi_Active_Radar) + + class Pylon9: + GBU_10___2000lb_Laser_Guided_Bomb = ( + 9, + Weapons.GBU_10___2000lb_Laser_Guided_Bomb, + ) + GBU_12___500lb_Laser_Guided_Bomb = (9, Weapons.GBU_12___500lb_Laser_Guided_Bomb) + BRU_42_with_3_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets = ( + 9, + Weapons.BRU_42_with_3_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets, + ) + BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD = ( + 9, + Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD, + ) + Mk_84___2000lb_GP_Bomb_LD = (9, Weapons.Mk_84___2000lb_GP_Bomb_LD) + LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 9, + Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + _3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 9, + Weapons._3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 9, + Weapons.BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + 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, + ) + LAU_105_2_AIM_9L = (9, Weapons.LAU_105_2_AIM_9L) + LAU_105_with_2_x_AIM_9P_Sidewinder_IR_AAM = ( + 9, + Weapons.LAU_105_with_2_x_AIM_9P_Sidewinder_IR_AAM, + ) + LAU_105_2_AIM_9P5 = (9, Weapons.LAU_105_2_AIM_9P5) + LAU_7_with_2_x_AIM_9B_Sidewinder_IR_AAM = ( + 9, + Weapons.LAU_7_with_2_x_AIM_9B_Sidewinder_IR_AAM, + ) + LAU_105_2_AIM_9J = (9, Weapons.LAU_105_2_AIM_9J) + LAU_105_2_AIM_9JULI = (9, Weapons.LAU_105_2_AIM_9JULI) + AIM_7F_Sparrow_Semi_Active_Radar = (9, Weapons.AIM_7F_Sparrow_Semi_Active_Radar) + AIM_7E_Sparrow_Semi_Active_Radar = (9, Weapons.AIM_7E_Sparrow_Semi_Active_Radar) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 9, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + Mk_82___500lb_GP_Bomb_LD = (9, Weapons.Mk_82___500lb_GP_Bomb_LD) + TER_9A_with_3_x_Mk_82_Snakeye___500lb_GP_Bomb_HD = ( + 9, + Weapons.TER_9A_with_3_x_Mk_82_Snakeye___500lb_GP_Bomb_HD, + ) + BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD = ( + 9, + Weapons.BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD, + ) + BIN_200 = (9, Weapons.BIN_200) + + class Pylon10: + GBU_10___2000lb_Laser_Guided_Bomb = ( + 10, + Weapons.GBU_10___2000lb_Laser_Guided_Bomb, + ) + GBU_12___500lb_Laser_Guided_Bomb = ( + 10, + Weapons.GBU_12___500lb_Laser_Guided_Bomb, + ) + BRU_42_with_3_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets = ( + 10, + Weapons.BRU_42_with_3_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets, + ) + Mk_84___2000lb_GP_Bomb_LD = (10, Weapons.Mk_84___2000lb_GP_Bomb_LD) + LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 10, + Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 10, + Weapons.LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + _3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 10, + Weapons._3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 10, + Weapons.LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + Smokewinder___red = (10, Weapons.Smokewinder___red) + Smokewinder___green = (10, Weapons.Smokewinder___green) + Smokewinder___blue = (10, Weapons.Smokewinder___blue) + Smokewinder___white = (10, Weapons.Smokewinder___white) + Smokewinder___yellow = (10, Weapons.Smokewinder___yellow) + BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 10, + Weapons.BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 10, + Weapons.BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_41A_with_6_x_Mk_82___500lb_GP_Bomb_LD = ( + 10, + Weapons.BRU_41A_with_6_x_Mk_82___500lb_GP_Bomb_LD, + ) + BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb = ( + 10, + Weapons.BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb, + ) + BIN_200 = (10, Weapons.BIN_200) + VSN_F4ER_PTB = (10, Weapons.VSN_F4ER_PTB) + + pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} + + tasks = [ + task.CAP, + task.Escort, + task.FighterSweep, + task.Intercept, + task.Reconnaissance, + task.GroundAttack, + task.CAS, + task.AFAC, + task.RunwayAttack, + ] + task_default = task.CAP + + +@planemod +class VSN_F4C(PlaneType): + id = "VSN_F4C" + flyable = True + height = 5.02 + width = 11.71 + length = 19.2 + fuel_max = 6416 + max_speed = 2545.2 + chaff = 48 + flare = 48 + charge_total = 96 + chaff_charge_size = 1 + flare_charge_size = 1 + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 127.5 + + livery_name = "VSN_F4C" # from type + Liveries = Liveries()[livery_name] + + class Pylon1: + Smoke_Generator___red_ = (1, Weapons.Smoke_Generator___red_) + Smoke_Generator___green_ = (1, Weapons.Smoke_Generator___green_) + Smoke_Generator___blue_ = (1, Weapons.Smoke_Generator___blue_) + Smoke_Generator___white_ = (1, Weapons.Smoke_Generator___white_) + Smoke_Generator___yellow_ = (1, Weapons.Smoke_Generator___yellow_) + Smoke_Generator___orange_ = (1, Weapons.Smoke_Generator___orange_) + + class Pylon2: + GBU_10___2000lb_Laser_Guided_Bomb = ( + 2, + Weapons.GBU_10___2000lb_Laser_Guided_Bomb, + ) + GBU_12___500lb_Laser_Guided_Bomb = (2, Weapons.GBU_12___500lb_Laser_Guided_Bomb) + BRU_42_with_3_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets = ( + 2, + Weapons.BRU_42_with_3_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets, + ) + Mk_84___2000lb_GP_Bomb_LD = (2, Weapons.Mk_84___2000lb_GP_Bomb_LD) + LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 2, + Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 2, + Weapons.LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + _3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 2, + Weapons._3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 2, + Weapons.LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + Smokewinder___red = (2, Weapons.Smokewinder___red) + Smokewinder___green = (2, Weapons.Smokewinder___green) + Smokewinder___blue = (2, Weapons.Smokewinder___blue) + Smokewinder___white = (2, Weapons.Smokewinder___white) + Smokewinder___yellow = (2, Weapons.Smokewinder___yellow) + BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 2, + Weapons.BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 2, + Weapons.BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_41A_with_6_x_Mk_82___500lb_GP_Bomb_LD = ( + 2, + Weapons.BRU_41A_with_6_x_Mk_82___500lb_GP_Bomb_LD, + ) + BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb = ( + 2, + Weapons.BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb, + ) + BIN_200 = (2, Weapons.BIN_200) + VSN_F4EL_PTB = (2, Weapons.VSN_F4EL_PTB) + + class Pylon3: + GBU_10___2000lb_Laser_Guided_Bomb = ( + 3, + Weapons.GBU_10___2000lb_Laser_Guided_Bomb, + ) + GBU_12___500lb_Laser_Guided_Bomb = (3, Weapons.GBU_12___500lb_Laser_Guided_Bomb) + BRU_42_with_3_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets = ( + 3, + Weapons.BRU_42_with_3_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets, + ) + BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD = ( + 3, + Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD, + ) + Mk_84___2000lb_GP_Bomb_LD = (3, Weapons.Mk_84___2000lb_GP_Bomb_LD) + LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 3, + Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + _3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 3, + Weapons._3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 3, + Weapons.BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + 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, + ) + LAU_105_2_AIM_9L = (3, Weapons.LAU_105_2_AIM_9L) + LAU_105_with_2_x_AIM_9P_Sidewinder_IR_AAM = ( + 3, + Weapons.LAU_105_with_2_x_AIM_9P_Sidewinder_IR_AAM, + ) + LAU_105_2_AIM_9P5 = (3, Weapons.LAU_105_2_AIM_9P5) + LAU_7_with_2_x_AIM_9B_Sidewinder_IR_AAM = ( + 3, + Weapons.LAU_7_with_2_x_AIM_9B_Sidewinder_IR_AAM, + ) + LAU_105_2_AIM_9J = (3, Weapons.LAU_105_2_AIM_9J) + LAU_105_2_AIM_9JULI = (3, Weapons.LAU_105_2_AIM_9JULI) + AIM_7F_Sparrow_Semi_Active_Radar = (3, Weapons.AIM_7F_Sparrow_Semi_Active_Radar) + AIM_7E_Sparrow_Semi_Active_Radar = (3, Weapons.AIM_7E_Sparrow_Semi_Active_Radar) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 3, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + Mk_82___500lb_GP_Bomb_LD = (3, Weapons.Mk_82___500lb_GP_Bomb_LD) + TER_9A_with_3_x_Mk_82_Snakeye___500lb_GP_Bomb_HD = ( + 3, + Weapons.TER_9A_with_3_x_Mk_82_Snakeye___500lb_GP_Bomb_HD, + ) + BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD = ( + 3, + Weapons.BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD, + ) + BIN_200 = (3, Weapons.BIN_200) + + class Pylon4: + AIM_7F_Sparrow_Semi_Active_Radar = (4, Weapons.AIM_7F_Sparrow_Semi_Active_Radar) + AIM_7E_Sparrow_Semi_Active_Radar = (4, Weapons.AIM_7E_Sparrow_Semi_Active_Radar) + + class Pylon5: + AIM_7F_Sparrow_Semi_Active_Radar = (5, Weapons.AIM_7F_Sparrow_Semi_Active_Radar) + AIM_7E_Sparrow_Semi_Active_Radar = (5, Weapons.AIM_7E_Sparrow_Semi_Active_Radar) + + class Pylon6: + Smokewinder___red = (6, Weapons.Smokewinder___red) + Smokewinder___green = (6, Weapons.Smokewinder___green) + Smokewinder___blue = (6, Weapons.Smokewinder___blue) + Smokewinder___white = (6, Weapons.Smokewinder___white) + Smokewinder___yellow = (6, Weapons.Smokewinder___yellow) + BRU_41A_with_6_x_Mk_82___500lb_GP_Bomb_LD = ( + 6, + Weapons.BRU_41A_with_6_x_Mk_82___500lb_GP_Bomb_LD, + ) + _3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 6, + Weapons._3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD = ( + 6, + Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD, + ) + ALQ_131___ECM_Pod = (6, Weapons.ALQ_131___ECM_Pod) + F4B_Gunpod_w_SAPHEI_T = (6, Weapons.F4B_Gunpod_w_SAPHEI_T) + VSN_F4EC_PTB = (6, Weapons.VSN_F4EC_PTB) + VSN_F4ER_PTB = (6, Weapons.VSN_F4ER_PTB) + + class Pylon7: + AIM_7F_Sparrow_Semi_Active_Radar = (7, Weapons.AIM_7F_Sparrow_Semi_Active_Radar) + AIM_7E_Sparrow_Semi_Active_Radar = (7, Weapons.AIM_7E_Sparrow_Semi_Active_Radar) + + class Pylon8: + AIM_7F_Sparrow_Semi_Active_Radar = (8, Weapons.AIM_7F_Sparrow_Semi_Active_Radar) + AIM_7E_Sparrow_Semi_Active_Radar = (8, Weapons.AIM_7E_Sparrow_Semi_Active_Radar) + + class Pylon9: + GBU_10___2000lb_Laser_Guided_Bomb = ( + 9, + Weapons.GBU_10___2000lb_Laser_Guided_Bomb, + ) + GBU_12___500lb_Laser_Guided_Bomb = (9, Weapons.GBU_12___500lb_Laser_Guided_Bomb) + BRU_42_with_3_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets = ( + 9, + Weapons.BRU_42_with_3_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets, + ) + BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD = ( + 9, + Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD, + ) + Mk_84___2000lb_GP_Bomb_LD = (9, Weapons.Mk_84___2000lb_GP_Bomb_LD) + LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 9, + Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + _3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 9, + Weapons._3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 9, + Weapons.BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + 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, + ) + LAU_105_2_AIM_9L = (9, Weapons.LAU_105_2_AIM_9L) + LAU_105_with_2_x_AIM_9P_Sidewinder_IR_AAM = ( + 9, + Weapons.LAU_105_with_2_x_AIM_9P_Sidewinder_IR_AAM, + ) + LAU_105_2_AIM_9P5 = (9, Weapons.LAU_105_2_AIM_9P5) + LAU_7_with_2_x_AIM_9B_Sidewinder_IR_AAM = ( + 9, + Weapons.LAU_7_with_2_x_AIM_9B_Sidewinder_IR_AAM, + ) + LAU_105_2_AIM_9J = (9, Weapons.LAU_105_2_AIM_9J) + LAU_105_2_AIM_9JULI = (9, Weapons.LAU_105_2_AIM_9JULI) + AIM_7F_Sparrow_Semi_Active_Radar = (9, Weapons.AIM_7F_Sparrow_Semi_Active_Radar) + AIM_7E_Sparrow_Semi_Active_Radar = (9, Weapons.AIM_7E_Sparrow_Semi_Active_Radar) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 9, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + Mk_82___500lb_GP_Bomb_LD = (9, Weapons.Mk_82___500lb_GP_Bomb_LD) + TER_9A_with_3_x_Mk_82_Snakeye___500lb_GP_Bomb_HD = ( + 9, + Weapons.TER_9A_with_3_x_Mk_82_Snakeye___500lb_GP_Bomb_HD, + ) + BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD = ( + 9, + Weapons.BRU_33_with_2_x_Mk_83___1000lb_GP_Bomb_LD, + ) + BIN_200 = (9, Weapons.BIN_200) + + class Pylon10: + GBU_10___2000lb_Laser_Guided_Bomb = ( + 10, + Weapons.GBU_10___2000lb_Laser_Guided_Bomb, + ) + GBU_12___500lb_Laser_Guided_Bomb = ( + 10, + Weapons.GBU_12___500lb_Laser_Guided_Bomb, + ) + BRU_42_with_3_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets = ( + 10, + Weapons.BRU_42_with_3_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets, + ) + Mk_84___2000lb_GP_Bomb_LD = (10, Weapons.Mk_84___2000lb_GP_Bomb_LD) + LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 10, + Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 10, + Weapons.LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + _3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 10, + Weapons._3_x_LAU_61_pods___57_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 10, + Weapons.LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + Smokewinder___red = (10, Weapons.Smokewinder___red) + Smokewinder___green = (10, Weapons.Smokewinder___green) + Smokewinder___blue = (10, Weapons.Smokewinder___blue) + Smokewinder___white = (10, Weapons.Smokewinder___white) + Smokewinder___yellow = (10, Weapons.Smokewinder___yellow) + BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 10, + Weapons.BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 10, + Weapons.BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_41A_with_6_x_Mk_82___500lb_GP_Bomb_LD = ( + 10, + Weapons.BRU_41A_with_6_x_Mk_82___500lb_GP_Bomb_LD, + ) + BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb = ( + 10, + Weapons.BRU_33_with_2_x_GBU_12___500lb_Laser_Guided_Bomb, + ) + BIN_200 = (10, Weapons.BIN_200) + VSN_F4ER_PTB = (10, Weapons.VSN_F4ER_PTB) + + pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} + + tasks = [ + task.CAP, + task.Escort, + task.FighterSweep, + task.Intercept, + task.Reconnaissance, + task.GroundAttack, + task.CAS, + task.AFAC, + task.RunwayAttack, + ] + task_default = task.CAP diff --git a/qt_ui/windows/newgame/QNewGameWizard.py b/qt_ui/windows/newgame/QNewGameWizard.py index a14a1c36..531a7a08 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"), f22_raptor=self.field("f22_raptor"), f104_starfighter=self.field("f104_starfighter"), + f4_phantom=self.field("f4_phantom"), hercules=self.field("hercules"), uh_60l=self.field("uh_60l"), jas39_gripen=self.field("jas39_gripen"), @@ -660,6 +661,8 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.registerField("f22_raptor", f22_raptor) f104_starfighter = QtWidgets.QCheckBox() self.registerField("f104_starfighter", f104_starfighter) + f4_phantom = QtWidgets.QCheckBox() + self.registerField("f4_phantom", f4_phantom) jas39_gripen = QtWidgets.QCheckBox() self.registerField("jas39_gripen", jas39_gripen) su57_felon = QtWidgets.QCheckBox() @@ -689,6 +692,9 @@ class GeneratorOptions(QtWidgets.QWizardPage): modLayout.addWidget(QtWidgets.QLabel("F-104 Starfighter"), modLayout_row, 0) modLayout.addWidget(f104_starfighter, modLayout_row, 1) modLayout_row += 1 + modLayout.addWidget(QtWidgets.QLabel("F-4B&C Phantom"), modLayout_row, 0) + modLayout.addWidget(f4_phantom, modLayout_row, 1) + modLayout_row += 1 modLayout.addWidget( QtWidgets.QLabel("C-130J-30 Super Hercules"), modLayout_row, 0 ) diff --git a/resources/customized_payloads/VSN_F4B.lua b/resources/customized_payloads/VSN_F4B.lua new file mode 100644 index 00000000..68360e4b --- /dev/null +++ b/resources/customized_payloads/VSN_F4B.lua @@ -0,0 +1,224 @@ +local unitPayloads = { + ["name"] = "VSN_F4C", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "VSN_F4EL_PTB", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "LAU-105_2*AIM-9L", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 7, + }, + [6] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 8, + }, + [7] = { + ["CLSID"] = "LAU-105_2*AIM-9L", + ["num"] = 9, + }, + [8] = { + ["CLSID"] = "VSN_F4ER_PTB", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 18, + [2] = 19, + [3] = 11, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{60CC734F-0AFA-4E2E-82B8-93B941AB11CF}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{60CC734F-0AFA-4E2E-82B8-93B941AB11CF}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}", + ["num"] = 10, + }, + [7] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "VSN_F4EC_PTB", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [3] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{60CC734F-0AFA-4E2E-82B8-93B941AB11CF}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{60CC734F-0AFA-4E2E-82B8-93B941AB11CF}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}", + ["num"] = 10, + }, + [7] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "VSN_F4EC_PTB", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [4] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 10, + }, + [7] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "VSN_F4EC_PTB", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [5] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{60CC734F-0AFA-4E2E-82B8-93B941AB11CF}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{60CC734F-0AFA-4E2E-82B8-93B941AB11CF}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}", + ["num"] = 10, + }, + [7] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "VSN_F4EC_PTB", + ["num"] = 6, + }, + }, ["tasks"] = { + [1] = 11, + }, + }, + }, + ["unitType"] = "VSN_F4C", +} +return unitPayloads diff --git a/resources/customized_payloads/VSN_F4C.lua b/resources/customized_payloads/VSN_F4C.lua new file mode 100644 index 00000000..9cef9803 --- /dev/null +++ b/resources/customized_payloads/VSN_F4C.lua @@ -0,0 +1,224 @@ +local unitPayloads = { + ["name"] = "VSN_F4B", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "VSN_F4EL_PTB", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "LAU-105_2*AIM-9L", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 7, + }, + [6] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 8, + }, + [7] = { + ["CLSID"] = "LAU-105_2*AIM-9L", + ["num"] = 9, + }, + [8] = { + ["CLSID"] = "VSN_F4ER_PTB", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 18, + [2] = 19, + [3] = 11, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{60CC734F-0AFA-4E2E-82B8-93B941AB11CF}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{60CC734F-0AFA-4E2E-82B8-93B941AB11CF}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}", + ["num"] = 10, + }, + [7] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "VSN_F4EC_PTB", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [3] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{60CC734F-0AFA-4E2E-82B8-93B941AB11CF}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{60CC734F-0AFA-4E2E-82B8-93B941AB11CF}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}", + ["num"] = 10, + }, + [7] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "VSN_F4EC_PTB", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [4] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 10, + }, + [7] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "VSN_F4EC_PTB", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [5] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{60CC734F-0AFA-4E2E-82B8-93B941AB11CF}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{60CC734F-0AFA-4E2E-82B8-93B941AB11CF}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}", + ["num"] = 10, + }, + [7] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{AIM-7F}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "VSN_F4EC_PTB", + ["num"] = 6, + }, + }, ["tasks"] = { + [1] = 11, + }, + }, + }, + ["unitType"] = "VSN_F4B", +} +return unitPayloads diff --git a/resources/factions/usa_1965.json b/resources/factions/usa_1965.json index d220b623..f8dbb715 100644 --- a/resources/factions/usa_1965.json +++ b/resources/factions/usa_1965.json @@ -11,6 +11,8 @@ "C-130", "CH-47D", "F-4E Phantom II", + "F-4B Phantom II", + "F-4C Phantom II", "F-5E Tiger II", "UH-1H Iroquois" ], diff --git a/resources/factions/usa_1975.json b/resources/factions/usa_1975.json index 275226e9..22fdf767 100644 --- a/resources/factions/usa_1975.json +++ b/resources/factions/usa_1975.json @@ -13,6 +13,8 @@ "CH-53E", "F-14A Tomcat (Block 135-GR Late)", "F-4E Phantom II", + "F-4B Phantom II", + "F-4C Phantom II", "F-5E Tiger II", "S-3B Viking", "OV-10A Bronco", diff --git a/resources/factions/usn_1985.json b/resources/factions/usn_1985.json index df4f13ce..26b54b5e 100644 --- a/resources/factions/usn_1985.json +++ b/resources/factions/usn_1985.json @@ -11,6 +11,7 @@ "A-4E Skyhawk", "F-14A Tomcat (Block 135-GR Late)", "F-14B Tomcat", + "F-4B Phantom II", "F-4E Phantom II", "S-3B Viking", "SH-60B Seahawk", diff --git a/resources/ui/units/aircrafts/banners/VSN_F4B_24.jpg b/resources/ui/units/aircrafts/banners/VSN_F4B_24.jpg new file mode 100644 index 00000000..d091d96d Binary files /dev/null and b/resources/ui/units/aircrafts/banners/VSN_F4B_24.jpg differ diff --git a/resources/ui/units/aircrafts/banners/VSN_F4C_24.jpg b/resources/ui/units/aircrafts/banners/VSN_F4C_24.jpg new file mode 100644 index 00000000..2ab7473d Binary files /dev/null and b/resources/ui/units/aircrafts/banners/VSN_F4C_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/VSN_F4B_24.jpg b/resources/ui/units/aircrafts/icons/VSN_F4B_24.jpg new file mode 100644 index 00000000..6db8e71d Binary files /dev/null and b/resources/ui/units/aircrafts/icons/VSN_F4B_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/VSN_F4C_24.jpg b/resources/ui/units/aircrafts/icons/VSN_F4C_24.jpg new file mode 100644 index 00000000..37e20dd5 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/VSN_F4C_24.jpg differ diff --git a/resources/units/aircraft/VSN_F4B.yaml b/resources/units/aircraft/VSN_F4B.yaml new file mode 100644 index 00000000..b586ef58 --- /dev/null +++ b/resources/units/aircraft/VSN_F4B.yaml @@ -0,0 +1,19 @@ +carrier_capable: true +description: + Proving highly adaptable, the F-4 entered service with the Navy in 1961 + before it was adopted by the United States Marine Corps and the United States Air + Force, and by the mid-1960s it had become a major part of their air arms. Phantom + production ran from 1958 to 1981 with a total of 5,195 aircraft built, making it + the most produced American supersonic military aircraft in history, and cementing + its position as an iconic combat aircraft of the Cold War. The F-4 was used extensively + during the Vietnam War. It served as the principal air superiority fighter for the + U.S. Air Force, Navy, and Marine Corps and became important in the ground-attack + and aerial reconnaissance roles late in the war. The F-4B is an early US Navy variant. +introduced: 1961 +manufacturer: McDonnell Douglas +origin: USA +price: 9 +role: Fighter-Bomber +max_range: 200 +variants: + F-4B Phantom II: {} diff --git a/resources/units/aircraft/VSN_F4C.yaml b/resources/units/aircraft/VSN_F4C.yaml new file mode 100644 index 00000000..7f44e460 --- /dev/null +++ b/resources/units/aircraft/VSN_F4C.yaml @@ -0,0 +1,19 @@ +description: + Proving highly adaptable, the F-4 entered service with the Navy in 1961 + before it was adopted by the United States Marine Corps and the United States Air + Force, and by the mid-1960s it had become a major part of their air arms. Phantom + production ran from 1958 to 1981 with a total of 5,195 aircraft built, making it + the most produced American supersonic military aircraft in history, and cementing + its position as an iconic combat aircraft of the Cold War. The F-4 was used extensively + during the Vietnam War. It served as the principal air superiority fighter for the + U.S. Air Force, Navy, and Marine Corps and became important in the ground-attack + and aerial reconnaissance roles late in the war. The F-4C is an early USAF variant. +introduced: 1963 +manufacturer: McDonnell Douglas +origin: USA +price: 9 +role: Fighter-Bomber +max_range: 200 +variants: + F-4C Phantom II: {} +