diff --git a/changelog.md b/changelog.md index 22e35fd8..493d73ec 100644 --- a/changelog.md +++ b/changelog.md @@ -9,6 +9,7 @@ BAI/ANTISHIP/DEAD/STRIKE/BARCAP/CAS/OCA/AIR-ASSAULT (main) missions * **[Modding]** Support for F-4B Phantom II mod version v2.7.10.02, patch 2022.10.02 * **[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 * **[Modding]** Support for F-105 mod version 2.7.12.23x +* **[Modding]** Support for F-84G mod version 2.5.7.01 * **[Modding]** Updated F-104 mod version support to 2.7.11.222.01 * **[UI]** Add livery selector to Air Wing Configurator's squadrons. * **[Performance]** Added performance option: Maximum front-line unit supply per control point. diff --git a/game/ato/ai_flight_planner_db.py b/game/ato/ai_flight_planner_db.py index ae82f447..f1dbd001 100644 --- a/game/ato/ai_flight_planner_db.py +++ b/game/ato/ai_flight_planner_db.py @@ -127,6 +127,7 @@ from pydcs_extensions.f105.f105 import VSN_F105D, VSN_F105G from pydcs_extensions.f15d.f15d import F_15D from pydcs_extensions.f22a.f22a import F_22A from pydcs_extensions.f4b.f4b import VSN_F4B +from pydcs_extensions.f84g.f84g import VSN_F84G from pydcs_extensions.hercules.hercules import Hercules from pydcs_extensions.jas39.jas39 import JAS39Gripen, JAS39Gripen_AG from pydcs_extensions.su30.su30 import Su_30MKA, Su_30MKI, Su_30MKM, Su_30SM @@ -193,6 +194,7 @@ CAP_CAPABLE = [ MiG_15bis, C_101CC, L_39ZA, + VSN_F84G, P_51D_30_NA, P_51D, SpitfireLFMkIXCW, @@ -284,6 +286,7 @@ CAS_CAPABLE = [ VSN_F100, A_20G, Ju_88A4, + VSN_F84G, P_47D_40, P_47D_30bl1, P_47D_30, @@ -348,6 +351,7 @@ DEAD_CAPABLE = SEAD_CAPABLE + [ VSN_F104G, VSN_F104C, VSN_F100, + VSN_F84G, P_47D_40, P_47D_30bl1, P_47D_30, @@ -431,6 +435,7 @@ STRIKE_CAPABLE = [ VSN_F104G, VSN_F104C, VSN_F100, + VSN_F84G, P_47D_40, P_47D_30bl1, P_47D_30, diff --git a/game/factions/faction.py b/game/factions/faction.py index ca861de6..f5b7c7a5 100644 --- a/game/factions/faction.py +++ b/game/factions/faction.py @@ -309,6 +309,8 @@ class Faction: self.remove_aircraft("F-15D") if not mod_settings.f22_raptor: self.remove_aircraft("F-22A") + if not mod_settings.f84g_thunderjet: + self.remove_aircraft("VSN_F84G") if not mod_settings.f100_supersabre: self.remove_aircraft("VSN_F100") if not mod_settings.f104_starfighter: diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py index e083d7f5..3c0b5bc8 100644 --- a/game/theater/start_generator.py +++ b/game/theater/start_generator.py @@ -55,6 +55,7 @@ class ModSettings: f4b_phantom: bool = False f15d_baz: bool = False f22_raptor: bool = False + f84g_thunderjet: bool = False f100_supersabre: bool = False f104_starfighter: bool = False f105_thunderchief: bool = False diff --git a/pydcs_extensions/f84g/f84g.py b/pydcs_extensions/f84g/f84g.py new file mode 100644 index 00000000..e0e8bb32 --- /dev/null +++ b/pydcs_extensions/f84g/f84g.py @@ -0,0 +1,217 @@ +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 WeaponsF84G: + Tank = {"clsid": "{PTB_F84G}", "name": "Tank", "weight": 910} + + +inject_weapons(WeaponsF84G) + + +@planemod +class VSN_F84G(PlaneType): + id = "VSN_F84G" + flyable = True + height = 4.496 + width = 11.9 + length = 11.43 + fuel_max = 1282 + max_speed = 964.8 + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 127.5 + + livery_name = "VSN_F84G" # from type + Liveries = Liveries()[livery_name] + + class Pylon2: + Tank = (2, WeaponsF84G.Tank) + + class Pylon3: + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (3, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + AIM_9B_Sidewinder_IR_AAM = (3, Weapons.AIM_9B_Sidewinder_IR_AAM) + Mk_83___1000lb_GP_Bomb_LD = (3, Weapons.Mk_83___1000lb_GP_Bomb_LD) + 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, + ) + M117___750lb_GP_Bomb_LD = (3, Weapons.M117___750lb_GP_Bomb_LD) + AN_M64___500lb_GP_Bomb_LD_ = (3, Weapons.AN_M64___500lb_GP_Bomb_LD_) + _2_x_HVAR__UnGd_Rkts = (3, Weapons._2_x_HVAR__UnGd_Rkts) + # ERRR + Smoke_Generator___red_ = (3, Weapons.Smoke_Generator___red_) + Smoke_Generator___green_ = (3, Weapons.Smoke_Generator___green_) + Smoke_Generator___blue_ = (3, Weapons.Smoke_Generator___blue_) + Smoke_Generator___white_ = (3, Weapons.Smoke_Generator___white_) + Smoke_Generator___yellow_ = (3, Weapons.Smoke_Generator___yellow_) + Smoke_Generator___orange_ = (3, 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 Pylon9: + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (9, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + AIM_9B_Sidewinder_IR_AAM = (9, Weapons.AIM_9B_Sidewinder_IR_AAM) + Mk_83___1000lb_GP_Bomb_LD = (9, Weapons.Mk_83___1000lb_GP_Bomb_LD) + 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, + ) + M117___750lb_GP_Bomb_LD = (9, Weapons.M117___750lb_GP_Bomb_LD) + AN_M64___500lb_GP_Bomb_LD_ = (9, Weapons.AN_M64___500lb_GP_Bomb_LD_) + _2_x_HVAR__UnGd_Rkts = (9, Weapons._2_x_HVAR__UnGd_Rkts) + # ERRR + Smoke_Generator___red_ = (9, Weapons.Smoke_Generator___red_) + Smoke_Generator___green_ = (9, Weapons.Smoke_Generator___green_) + Smoke_Generator___blue_ = (9, Weapons.Smoke_Generator___blue_) + Smoke_Generator___white_ = (9, Weapons.Smoke_Generator___white_) + Smoke_Generator___yellow_ = (9, Weapons.Smoke_Generator___yellow_) + Smoke_Generator___orange_ = (9, Weapons.Smoke_Generator___orange_) + + class Pylon10: + Tank = (10, WeaponsF84G.Tank) + + pylons: Set[int] = {2, 3, 6, 9, 10} + + 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 d7be6b0f..6d5a2372 100644 --- a/qt_ui/main.py +++ b/qt_ui/main.py @@ -296,6 +296,7 @@ def create_game( a4_skyhawk=False, f4b_phantom=False, f22_raptor=False, + f84g_thunderjet=False, f100_supersabre=False, f104_starfighter=False, f105_thunderchief=False, diff --git a/qt_ui/windows/newgame/QNewGameWizard.py b/qt_ui/windows/newgame/QNewGameWizard.py index cb82a22f..abeb7674 100644 --- a/qt_ui/windows/newgame/QNewGameWizard.py +++ b/qt_ui/windows/newgame/QNewGameWizard.py @@ -162,6 +162,7 @@ class NewGameWizard(QtWidgets.QWizard): f4b_phantom=self.field("f4b_phantom"), f15d_baz=self.field("f15d_baz"), f22_raptor=self.field("f22_raptor"), + f84g_thunderjet=self.field("f84g_thunderjet"), f100_supersabre=self.field("f100_supersabre"), f104_starfighter=self.field("f104_starfighter"), f105_thunderchief=self.field("f105_thunderchief"), @@ -666,6 +667,8 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.registerField("f15d_baz", f15d_baz) f22_raptor = QtWidgets.QCheckBox() self.registerField("f22_raptor", f22_raptor) + f84g_thunderjet = QtWidgets.QCheckBox() + self.registerField("f84g_thunderjet", f84g_thunderjet) f100_supersabre = QtWidgets.QCheckBox() self.registerField("f100_supersabre", f100_supersabre) f104_starfighter = QtWidgets.QCheckBox() @@ -708,6 +711,16 @@ 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-84G Thunderjet (version 2.5.7.01)"), + modLayout_row, + 0, + ) + modLayout.addWidget(f84g_thunderjet, 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("F-100 Super Sabre (version 2.7.18.30765 patch 09.10.22)"), modLayout_row, @@ -715,9 +728,6 @@ class GeneratorOptions(QtWidgets.QWizardPage): ) modLayout.addWidget(f100_supersabre, 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("F-104 Starfighter (version 2.7.11.222.01)"), modLayout_row, @@ -742,14 +752,14 @@ 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 ) modLayout.addWidget(jas39_gripen, 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("Su-30 Flanker-H (V2.01B)"), modLayout_row, 0 ) diff --git a/resources/customized_payloads/VSN_F84G.lua b/resources/customized_payloads/VSN_F84G.lua new file mode 100644 index 00000000..dfc3e21c --- /dev/null +++ b/resources/customized_payloads/VSN_F84G.lua @@ -0,0 +1,134 @@ +local unitPayloads = { + ["name"] = "VSN_F84G", + ["payloads"] = { + [1] = { + ["displayName"] = "CAP", + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "", + ["num"] = 3, + }, + [2] = { + ["CLSID"] = "{PTB_F84G}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "", + ["num"] = 9, + }, + [4] = { + ["CLSID"] = "{PTB_F84G}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [2] = { + ["displayName"] = "DEAD", + ["name"] = "DEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{69926055-0DA8-4530-9F2F-C86B157EA9F6}", + ["num"] = 3, + }, + [2] = { + ["CLSID"] = "{PTB_F84G}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{69926055-0DA8-4530-9F2F-C86B157EA9F6}", + ["num"] = 9, + }, + [4] = { + ["CLSID"] = "{PTB_F84G}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 19, + }, + }, + [3] = { + ["displayName"] = "CAS", + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{319293F2-392C-4617-8315-7C88C22AF7C4}", + ["num"] = 3, + }, + [2] = { + ["CLSID"] = "{PTB_F84G}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{319293F2-392C-4617-8315-7C88C22AF7C4}", + ["num"] = 9, + }, + [4] = { + ["CLSID"] = "{PTB_F84G}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 19, + }, + }, + [4] = { + ["displayName"] = "STRIKE", + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{7A44FF09-527C-4B7E-B42B-3F111CFE50FB}", + ["num"] = 3, + }, + [2] = { + ["CLSID"] = "{PTB_F84G}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{7A44FF09-527C-4B7E-B42B-3F111CFE50FB}", + ["num"] = 9, + }, + [4] = { + ["CLSID"] = "{PTB_F84G}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 19, + }, + }, + [5] = { + ["displayName"] = "OCA", + ["name"] = "OCA", + ["pylons"] = { + [1] = { + ["CLSID"] = "{7A44FF09-527C-4B7E-B42B-3F111CFE50FB}", + ["num"] = 3, + }, + [2] = { + ["CLSID"] = "{PTB_F84G}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{7A44FF09-527C-4B7E-B42B-3F111CFE50FB}", + ["num"] = 9, + }, + [4] = { + ["CLSID"] = "{PTB_F84G}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 19, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "VSN_F84G", +} +return unitPayloads diff --git a/resources/factions/unc_1950_fictional.json b/resources/factions/unc_1950_fictional.json index e3fd6313..a809aa30 100644 --- a/resources/factions/unc_1950_fictional.json +++ b/resources/factions/unc_1950_fictional.json @@ -6,6 +6,7 @@ "aircrafts": [ "A-20G Havoc", "B-17G Flying Fortress", + "F-84G Thunderjet", "F-86F Sabre", "P-47D-40 Thunderbolt", "P-51D-25-NA Mustang", diff --git a/resources/factions/usa_1955.json b/resources/factions/usa_1955.json index 88018012..a047d771 100644 --- a/resources/factions/usa_1955.json +++ b/resources/factions/usa_1955.json @@ -9,6 +9,7 @@ "aircrafts": [ "B-52H Stratofortress", "C-130", + "F-84G Thunderjet", "F-86F Sabre", "F-100 Super Sabre", "P-51D-25-NA Mustang", diff --git a/resources/factions/usa_1960.json b/resources/factions/usa_1960.json index f2e3656b..5904938c 100644 --- a/resources/factions/usa_1960.json +++ b/resources/factions/usa_1960.json @@ -9,6 +9,7 @@ "aircrafts": [ "B-52H Stratofortress", "C-130", + "F-84G Thunderjet", "F-86F Sabre", "F-100 Super Sabre", "F-104C Starfighter", diff --git a/resources/ui/units/aircrafts/banners/VSN_F84G_24.jpg b/resources/ui/units/aircrafts/banners/VSN_F84G_24.jpg new file mode 100644 index 00000000..9f34bdc3 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/VSN_F84G_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/VSN_F84G_24.jpg b/resources/ui/units/aircrafts/icons/VSN_F84G_24.jpg new file mode 100644 index 00000000..c1be3720 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/VSN_F84G_24.jpg differ diff --git a/resources/units/aircraft/VSN_F84G.yaml b/resources/units/aircraft/VSN_F84G.yaml new file mode 100644 index 00000000..d40f9586 --- /dev/null +++ b/resources/units/aircraft/VSN_F84G.yaml @@ -0,0 +1,15 @@ +description: + "The Republic F-84 Thunderjet is an American turbojet fighter-bomber aircraft. \ + \ The Thunderjet became the USAF's primary strike aircraft during the Korean War, \ + \ flying 86,408 sorties and destroying 60% of all ground targets in the war as \ + \ well as eight Soviet-built MiG fighters. The F-84G is the definitive variant, \ + \ introduced in 1951." +introduced: 1951 +manufacturer: Republic Aviation +origin: USA +price: 6 +role: Fighter-Bomber +max_range: 100 +gunfighter: true +variants: + F-84G Thunderjet: {}