diff --git a/changelog.md b/changelog.md index ed1e8abd..0d8d8f1e 100644 --- a/changelog.md +++ b/changelog.md @@ -15,6 +15,7 @@ * **[Modding]** Updated support for F-4B/C Phantom mod to 2.8.7.204 * **[Modding]** Updated Community A-4E-C mod version support to 2.2.0 release. * **[Modding]** Added F/A-18E/F Super Hornet AI Tanker mod support (Chiller Juice Studios SuperBug Tanker AI version 1.4) +* **[Modding]** Added F9F Panther mod support (version v2.8.7.101) * **[Modding]** Updated Irondome support to IDF Assets Pack V1.1, adding support for the David's Sling * **[Radios]** Added HF-FM band for AN/ARC-222 * **[Radios]** Ability to define preset channels for radios on squadron level (for human pilots only) diff --git a/game/factions/faction.py b/game/factions/faction.py index 2dc4bd0e..0edd38d9 100644 --- a/game/factions/faction.py +++ b/game/factions/faction.py @@ -340,6 +340,8 @@ class Faction: if not mod_settings.f4bc_phantom: self.remove_aircraft("VSN_F4B") self.remove_aircraft("VSN_F4C") + if not mod_settings.f9f_panther: + self.remove_aircraft("VSN_F9F") if not mod_settings.f15d_baz: self.remove_aircraft("F-15D") if not mod_settings.f_15_idf: diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py index a1dac653..4974398c 100644 --- a/game/theater/start_generator.py +++ b/game/theater/start_generator.py @@ -58,6 +58,7 @@ class ModSettings: a6a_intruder: bool = False a7e_corsair2: bool = False f4bc_phantom: bool = False + f9f_panther: bool = False f15d_baz: bool = False f_15_idf: bool = False f_16_idf: bool = False diff --git a/pydcs_extensions/__init__.py b/pydcs_extensions/__init__.py index 692f872f..e3abdf18 100644 --- a/pydcs_extensions/__init__.py +++ b/pydcs_extensions/__init__.py @@ -2,6 +2,7 @@ from .SWPack import * from .a4ec import * from .a7e import * from .a6a import * +from .f9f import * from .f100 import * from .f104 import * from .f105 import * diff --git a/pydcs_extensions/f9f/__init__.py b/pydcs_extensions/f9f/__init__.py new file mode 100644 index 00000000..a61ae6ea --- /dev/null +++ b/pydcs_extensions/f9f/__init__.py @@ -0,0 +1 @@ +from .f9f import * diff --git a/pydcs_extensions/f9f/f9f.py b/pydcs_extensions/f9f/f9f.py new file mode 100644 index 00000000..61f30f9d --- /dev/null +++ b/pydcs_extensions/f9f/f9f.py @@ -0,0 +1,699 @@ +from typing import Set + +from dcs import task +from dcs.planes import PlaneType +from dcs.weapons_data import Weapons + +from game.modsupport import planemod + + +@planemod +class VSN_F9F(PlaneType): + id = "VSN_F9F" + flyable = True + height = 3.73 + width = 11.58 + length = 11.84 + fuel_max = 2310 + max_speed = 961.2 + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 127.5 + + livery_name = "VSN_F9F" # from type + + 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: + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = ( + 2, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 2, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = ( + 2, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 2, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 2, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = ( + 2, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = ( + 2, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = ( + 2, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = ( + 2, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 2, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = ( + 2, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 2, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 2, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = ( + 2, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = ( + 2, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = ( + 2, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk, + ) + AN_M64___500lb_GP_Bomb_LD_ = (2, Weapons.AN_M64___500lb_GP_Bomb_LD_) + Mk_82___500lb_GP_Bomb_LD = (2, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_81___250lb_GP_Bomb_LD = (2, Weapons.Mk_81___250lb_GP_Bomb_LD) + HVAR__UnGd_Rkt = (2, Weapons.HVAR__UnGd_Rkt) + LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk1__HE = ( + 2, + 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 = ( + 2, + Weapons.LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk5__HEAT, + ) + + # ERRR + + class Pylon3: + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = ( + 3, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 3, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = ( + 3, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 3, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 3, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = ( + 3, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = ( + 3, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = ( + 3, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = ( + 3, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 3, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = ( + 3, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 3, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 3, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = ( + 3, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = ( + 3, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = ( + 3, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk, + ) + AN_M64___500lb_GP_Bomb_LD_ = (3, Weapons.AN_M64___500lb_GP_Bomb_LD_) + Mk_82___500lb_GP_Bomb_LD = (3, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_81___250lb_GP_Bomb_LD = (3, Weapons.Mk_81___250lb_GP_Bomb_LD) + HVAR__UnGd_Rkt = (3, Weapons.HVAR__UnGd_Rkt) + 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, + ) + + # ERRR + + class Pylon4: + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = ( + 4, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 4, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = ( + 4, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 4, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 4, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = ( + 4, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = ( + 4, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = ( + 4, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = ( + 4, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 4, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = ( + 4, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 4, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 4, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = ( + 4, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = ( + 4, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = ( + 4, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk, + ) + AN_M64___500lb_GP_Bomb_LD_ = (4, Weapons.AN_M64___500lb_GP_Bomb_LD_) + Mk_82___500lb_GP_Bomb_LD = (4, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_81___250lb_GP_Bomb_LD = (4, Weapons.Mk_81___250lb_GP_Bomb_LD) + HVAR__UnGd_Rkt = (4, Weapons.HVAR__UnGd_Rkt) + 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, + ) + + # ERRR + + class Pylon5: + AIM_9B_Sidewinder_IR_AAM = (5, Weapons.AIM_9B_Sidewinder_IR_AAM) + Mk_83___1000lb_GP_Bomb_LD = (5, Weapons.Mk_83___1000lb_GP_Bomb_LD) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = ( + 5, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 5, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = ( + 5, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 5, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 5, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = ( + 5, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = ( + 5, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = ( + 5, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = ( + 5, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 5, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = ( + 5, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 5, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 5, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = ( + 5, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = ( + 5, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = ( + 5, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk, + ) + M117___750lb_GP_Bomb_LD = (5, Weapons.M117___750lb_GP_Bomb_LD) + AN_M64___500lb_GP_Bomb_LD_ = (5, Weapons.AN_M64___500lb_GP_Bomb_LD_) + Mk_82___500lb_GP_Bomb_LD = (5, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_81___250lb_GP_Bomb_LD = (5, Weapons.Mk_81___250lb_GP_Bomb_LD) + HVAR__UnGd_Rkt = (5, Weapons.HVAR__UnGd_Rkt) + # ERRR + Smoke_Generator___red_ = (5, Weapons.Smoke_Generator___red_) + Smoke_Generator___green_ = (5, Weapons.Smoke_Generator___green_) + Smoke_Generator___blue_ = (5, Weapons.Smoke_Generator___blue_) + Smoke_Generator___white_ = (5, Weapons.Smoke_Generator___white_) + Smoke_Generator___yellow_ = (5, Weapons.Smoke_Generator___yellow_) + Smoke_Generator___orange_ = (5, Weapons.Smoke_Generator___orange_) + + 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_9B_Sidewinder_IR_AAM = (7, Weapons.AIM_9B_Sidewinder_IR_AAM) + Mk_83___1000lb_GP_Bomb_LD = (7, Weapons.Mk_83___1000lb_GP_Bomb_LD) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = ( + 7, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 7, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = ( + 7, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 7, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 7, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = ( + 7, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = ( + 7, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = ( + 7, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = ( + 7, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 7, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = ( + 7, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 7, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 7, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = ( + 7, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = ( + 7, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = ( + 7, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk, + ) + M117___750lb_GP_Bomb_LD = (7, Weapons.M117___750lb_GP_Bomb_LD) + AN_M64___500lb_GP_Bomb_LD_ = (7, Weapons.AN_M64___500lb_GP_Bomb_LD_) + Mk_82___500lb_GP_Bomb_LD = (7, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_81___250lb_GP_Bomb_LD = (7, Weapons.Mk_81___250lb_GP_Bomb_LD) + HVAR__UnGd_Rkt = (7, Weapons.HVAR__UnGd_Rkt) + # ERRR + Smoke_Generator___red_ = (7, Weapons.Smoke_Generator___red_) + Smoke_Generator___green_ = (7, Weapons.Smoke_Generator___green_) + Smoke_Generator___blue_ = (7, Weapons.Smoke_Generator___blue_) + Smoke_Generator___white_ = (7, Weapons.Smoke_Generator___white_) + Smoke_Generator___yellow_ = (7, Weapons.Smoke_Generator___yellow_) + Smoke_Generator___orange_ = (7, Weapons.Smoke_Generator___orange_) + + class Pylon8: + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = ( + 8, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 8, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = ( + 8, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 8, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 8, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = ( + 8, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = ( + 8, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = ( + 8, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = ( + 8, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 8, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = ( + 8, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 8, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 8, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = ( + 8, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = ( + 8, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = ( + 8, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk, + ) + AN_M64___500lb_GP_Bomb_LD_ = (8, Weapons.AN_M64___500lb_GP_Bomb_LD_) + Mk_82___500lb_GP_Bomb_LD = (8, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_81___250lb_GP_Bomb_LD = (8, Weapons.Mk_81___250lb_GP_Bomb_LD) + HVAR__UnGd_Rkt = (8, Weapons.HVAR__UnGd_Rkt) + 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, + ) + + # ERRR + + class Pylon9: + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = ( + 9, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 9, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = ( + 9, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 9, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 9, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = ( + 9, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = ( + 9, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = ( + 9, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = ( + 9, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 9, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = ( + 9, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 9, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 9, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = ( + 9, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = ( + 9, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = ( + 9, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk, + ) + AN_M64___500lb_GP_Bomb_LD_ = (9, Weapons.AN_M64___500lb_GP_Bomb_LD_) + Mk_82___500lb_GP_Bomb_LD = (9, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_81___250lb_GP_Bomb_LD = (9, Weapons.Mk_81___250lb_GP_Bomb_LD) + HVAR__UnGd_Rkt = (9, Weapons.HVAR__UnGd_Rkt) + 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, + ) + + # ERRR + + class Pylon10: + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = ( + 10, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 10, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = ( + 10, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 10, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 10, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = ( + 10, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = ( + 10, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = ( + 10, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = ( + 10, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 10, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = ( + 10, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 10, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = ( + 10, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = ( + 10, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = ( + 10, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum, + ) + LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = ( + 10, + Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk, + ) + AN_M64___500lb_GP_Bomb_LD_ = (10, Weapons.AN_M64___500lb_GP_Bomb_LD_) + Mk_82___500lb_GP_Bomb_LD = (10, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_81___250lb_GP_Bomb_LD = (10, Weapons.Mk_81___250lb_GP_Bomb_LD) + HVAR__UnGd_Rkt = (10, Weapons.HVAR__UnGd_Rkt) + LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk1__HE = ( + 10, + 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 = ( + 10, + Weapons.LAU_3_pod___19_x_2_75_FFAR__UnGd_Rkts_Mk5__HEAT, + ) + + # ERRR + + class Pylon11: + Smoke_Generator___red_ = (11, Weapons.Smoke_Generator___red_) + Smoke_Generator___green_ = (11, Weapons.Smoke_Generator___green_) + Smoke_Generator___blue_ = (11, Weapons.Smoke_Generator___blue_) + Smoke_Generator___white_ = (11, Weapons.Smoke_Generator___white_) + Smoke_Generator___yellow_ = (11, Weapons.Smoke_Generator___yellow_) + Smoke_Generator___orange_ = (11, Weapons.Smoke_Generator___orange_) + + pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} + + tasks = [ + task.CAP, + task.CAS, + task.Escort, + task.FighterSweep, + task.GroundAttack, + task.Intercept, + task.AntishipStrike, + ] + task_default = task.GroundAttack diff --git a/qt_ui/main.py b/qt_ui/main.py index 1e4757ee..a5b3b859 100644 --- a/qt_ui/main.py +++ b/qt_ui/main.py @@ -325,6 +325,7 @@ def create_game( fa_18efg=False, fa18ef_tanker=False, f4bc_phantom=False, + f9f_panther=False, f22_raptor=False, f84g_thunderjet=False, f100_supersabre=False, diff --git a/qt_ui/windows/newgame/QNewGameWizard.py b/qt_ui/windows/newgame/QNewGameWizard.py index 9cfcd033..1a0b0028 100644 --- a/qt_ui/windows/newgame/QNewGameWizard.py +++ b/qt_ui/windows/newgame/QNewGameWizard.py @@ -87,6 +87,7 @@ class NewGameWizard(QtWidgets.QWizard): squadrons_start_full=self.field("squadrons_start_full"), ) mod_settings = ModSettings( + f9f_panther=self.field("f9f_panther"), a4_skyhawk=self.field("a4_skyhawk"), a6a_intruder=self.field("a6a_intruder"), a7e_corsair2=self.field("a7e_corsair2"), diff --git a/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py b/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py index d5ae847b..363984ef 100644 --- a/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py +++ b/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py @@ -100,6 +100,8 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.registerField("uh_60l", self.uh_60l) self.f4bc_phantom = QtWidgets.QCheckBox() self.registerField("f4bc_phantom", self.f4bc_phantom) + self.f9f_panther = QtWidgets.QCheckBox() + self.registerField("f9f_panther", self.f9f_panther) self.f15d_baz = QtWidgets.QCheckBox() self.registerField("f15d_baz", self.f15d_baz) self.f_15_idf = QtWidgets.QCheckBox() @@ -150,6 +152,7 @@ class GeneratorOptions(QtWidgets.QWizardPage): modLayout_row = 1 mod_pairs = [ + ("F9F Panther (v2.8.7.101)", self.f9f_panther), ("A-4E Skyhawk (v2.2.0)", self.a4_skyhawk), ("A-6A Intruder (v2.7.5.01)", self.a6a_intruder), ("A-7E Corsair II", self.a7e_corsair2), @@ -212,6 +215,7 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.no_enemy_navy.setChecked(s.get("no_enemy_navy", False)) self.squadrons_start_full.setChecked(s.get("squadron_start_full", False)) + self.f9f_panther.setChecked(s.get("f9f_panther", False)) self.a4_skyhawk.setChecked(s.get("a4_skyhawk", False)) self.a6a_intruder.setChecked(s.get("a6a_intruder", False)) self.a7e_corsair2.setChecked(s.get("a7e_corsair2", False)) diff --git a/resources/customized_payloads/VSN_F9F.lua b/resources/customized_payloads/VSN_F9F.lua new file mode 100644 index 00000000..3f1982aa --- /dev/null +++ b/resources/customized_payloads/VSN_F9F.lua @@ -0,0 +1,227 @@ +local unitPayloads = { + ["name"] = "VSN_F9F", + ["payloads"] = { + [1] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{7A44FF09-527C-4B7E-B42B-3F111CFE50FB}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{7A44FF09-527C-4B7E-B42B-3F111CFE50FB}", + ["num"] = 7, + }, + [6] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 8, + }, + [7] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 9, + }, + [8] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [2] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{AIM-9B}", + ["num"] = 5, + }, + [2] = { + ["CLSID"] = "{AIM-9B}", + ["num"] = 7, + }, + + }, + ["tasks"] = { + [1] = 31, + }, + }, + [3] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{319293F2-392C-4617-8315-7C88C22AF7C4}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{319293F2-392C-4617-8315-7C88C22AF7C4}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{LAU3_FFAR_MK5HEAT}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{319293F2-392C-4617-8315-7C88C22AF7C4}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{319293F2-392C-4617-8315-7C88C22AF7C4}", + ["num"] = 7, + }, + [6] = { + ["CLSID"] = "{LAU3_FFAR_MK5HEAT}", + ["num"] = 8, + }, + [7] = { + ["CLSID"] = "{319293F2-392C-4617-8315-7C88C22AF7C4}", + ["num"] = 9, + }, + [8] = { + ["CLSID"] = "{319293F2-392C-4617-8315-7C88C22AF7C4}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [4] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{HVAR}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{HVAR}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{HVAR}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{HVAR}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{HVAR}", + ["num"] = 7, + }, + [6] = { + ["CLSID"] = "{HVAR}", + ["num"] = 8, + }, + [7] = { + ["CLSID"] = "{HVAR}", + ["num"] = 9, + }, + [8] = { + ["CLSID"] = "{HVAR}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [5] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{HVAR}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{HVAR}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{HVAR}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{HVAR}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{HVAR}", + ["num"] = 7, + }, + [6] = { + ["CLSID"] = "{HVAR}", + ["num"] = 8, + }, + [7] = { + ["CLSID"] = "{HVAR}", + ["num"] = 9, + }, + [8] = { + ["CLSID"] = "{HVAR}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [6] = { + ["displayName"] = "BAI", + ["name"] = "BAI", + ["pylons"] = { + [1] = { + ["CLSID"] = "{HVAR}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{HVAR}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{HVAR}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{HVAR}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{HVAR}", + ["num"] = 7, + }, + [6] = { + ["CLSID"] = "{HVAR}", + ["num"] = 8, + }, + [7] = { + ["CLSID"] = "{HVAR}", + ["num"] = 9, + }, + [8] = { + ["CLSID"] = "{HVAR}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "VSN_F9F", +} +return unitPayloads diff --git a/resources/factions/usa_1955.json b/resources/factions/usa_1955.json index 45ec4579..2fde5123 100644 --- a/resources/factions/usa_1955.json +++ b/resources/factions/usa_1955.json @@ -2,7 +2,7 @@ "country": "USA", "name": "USA 1955", "authors": "Khopa", - "description": "

US army in the 50s, circa Korean War.

", + "description": "

US armed forces in the 50s, circa Korean War.

", "locales": [ "en_US" ], @@ -13,7 +13,8 @@ "F-86F Sabre", "F-100 Super Sabre", "P-51D-25-NA Mustang", - "P-51D-30-NA Mustang" + "P-51D-30-NA Mustang", + "F9F Panther" ], "frontline_units": [ "Bofors 40 mm Gun", diff --git a/resources/ui/units/aircrafts/banners/VSN_F9F.jpg b/resources/ui/units/aircrafts/banners/VSN_F9F.jpg new file mode 100644 index 00000000..bb4e4c79 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/VSN_F9F.jpg differ diff --git a/resources/ui/units/aircrafts/icons/VSN_F9F_24.jpg b/resources/ui/units/aircrafts/icons/VSN_F9F_24.jpg new file mode 100644 index 00000000..20a9c378 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/VSN_F9F_24.jpg differ diff --git a/resources/units/aircraft/VSN_F9F.yaml b/resources/units/aircraft/VSN_F9F.yaml new file mode 100644 index 00000000..211d92d7 --- /dev/null +++ b/resources/units/aircraft/VSN_F9F.yaml @@ -0,0 +1,28 @@ +carrier_capable: true +description: + The Grumman F9F Panther is an early carrier-based jet fighter designed and produced + by the American aircraft manufacturer Grumman. It was the first jet-powered fighter + aircraft operated by the United States Navy as well as being Grumman’s first jet fighter. + The F9F is a single-engined, straight-winged day fighter, armed with four 20 mm (0.79 in) + cannons and could also carry a wide assortment of air-to-ground munitions. + The Panther was used extensively by the U.S. Navy and Marine Corps in the Korean War. +introduced: 1947 +manufacturer: Grumman +origin: USA +price: 6 +role: Carrier-based Attack/Light Fighter +gunfighter: true +variants: + F9F Panther: {} +tasks: + BAI: 650 + BARCAP: 150 + CAS: 650 + DEAD: 370 + Escort: 150 + Fighter sweep: 150 + Intercept: 150 + OCA/Aircraft: 650 + OCA/Runway: 350 + Strike: 350 + TARCAP: 150