Support F-84G Thunderjet mod v2.5.7.01 (#8)

* Implemented support for the VSN F-84G Thunderjet version 2.5.7.01
This commit is contained in:
MetalStormGhost 2022-10-23 20:00:11 +03:00 committed by GitHub
parent 303ae3ac14
commit 515d28313d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 395 additions and 6 deletions

View File

@ -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.

View File

@ -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,

View File

@ -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:

View File

@ -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

View File

@ -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 <CLEAN>
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 <CLEAN>
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

View File

@ -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,

View File

@ -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
)

View File

@ -0,0 +1,134 @@
local unitPayloads = {
["name"] = "VSN_F84G",
["payloads"] = {
[1] = {
["displayName"] = "CAP",
["name"] = "CAP",
["pylons"] = {
[1] = {
["CLSID"] = "<CLEAN>",
["num"] = 3,
},
[2] = {
["CLSID"] = "{PTB_F84G}",
["num"] = 2,
},
[3] = {
["CLSID"] = "<CLEAN>",
["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

View File

@ -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",

View File

@ -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",

View File

@ -9,6 +9,7 @@
"aircrafts": [
"B-52H Stratofortress",
"C-130",
"F-84G Thunderjet",
"F-86F Sabre",
"F-100 Super Sabre",
"F-104C Starfighter",

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -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: {}