UH-60L mod support

Resolves #1964 but adding CTLD will require the use of Liberation plugins and thus are not included in this pull request.

- Implemented support for the UH-60L mod by =X51= Kinkkujuustovoileipa, Cubeboy, Jonas, JinxxDCS, Dorian, =X51= Parzival & =X51= Lawson.
- Because the standard DCS tankers will not fly below 160ish knots, the UH-60L mod team have included a modified version of the KC-130 tanker designed for refueling at speeds of 120-130kts.
This commit is contained in:
MetalStormGhost 2022-02-13 16:56:51 +02:00 committed by GitHub
parent 8a66bf2e09
commit 33ed127cba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 1433 additions and 24 deletions

View File

@ -14,6 +14,7 @@ Saves from 5.x are not compatible with 6.0.
* **[Flight Planning]** Air to Ground flights now have ECM enabled on lock at the join point, and SEAD/DEAD also have ECM enabled on detection and lock at ingress.
* **[Flight Planning]** AWACS flightplan changed from orbit to a racetrack to reduce data link disconnects which were caused by blind spots as a result of the bank angle.
* **[Modding]** Add F-104 mod support
* **[Modding]** Add UH-60L mod support
* **[Modding]** Updated Community A-4E-C mod version support to 2.0.0 release. Version 1.4.2 is no longer compatible, unless the mod default loadouts are deleted/modified.
* **[UI]** Added options to the loadout editor for setting properties such as HMD choice.

View File

@ -48,17 +48,21 @@ from pydcs_extensions.f22a.f22a import F_22A
from pydcs_extensions.hercules.hercules import Hercules
from pydcs_extensions.jas39.jas39 import JAS39Gripen, JAS39Gripen_AG
from pydcs_extensions.su57.su57 import Su_57
from pydcs_extensions.uh60l.uh60l import UH_60L, KC130J
plane_map["A-4E-C"] = A_4E_C
plane_map["F-22A"] = F_22A
plane_map["Su-57"] = Su_57
plane_map["Hercules"] = Hercules
plane_map["KC130J"] = KC130J
plane_map["JAS39Gripen"] = JAS39Gripen
plane_map["JAS39Gripen_AG"] = JAS39Gripen_AG
plane_map["VSN_F104G"] = VSN_F104G
plane_map["VSN_F104S"] = VSN_F104S
plane_map["VSN_F104S_AG"] = VSN_F104S_AG
helicopter_map["UH-60L"] = UH_60L
vehicle_map["FieldHL"] = frenchpack._FIELD_HIDE
vehicle_map["HARRIERH"] = frenchpack._FIELD_HIDE_SMALL
vehicle_map["SMOKESAM"] = frenchpack.SMOKE_SAM_IR

View File

@ -266,6 +266,9 @@ class Faction:
self.remove_aircraft("A-4E-C")
if not mod_settings.hercules:
self.remove_aircraft("Hercules")
if not mod_settings.uh_60l:
self.remove_aircraft("UH-60L")
self.remove_aircraft("KC130J")
if not mod_settings.f22_raptor:
self.remove_aircraft("F-22A")
if not mod_settings.f104_starfighter:

View File

@ -72,6 +72,7 @@ class ModSettings:
f22_raptor: bool = False
f104_starfighter: bool = False
hercules: bool = False
uh_60l: bool = False
jas39_gripen: bool = False
su57_felon: bool = False
frenchpack: bool = False

View File

@ -126,6 +126,8 @@ from pydcs_extensions.su57.su57 import Su_57
# factions that also have F-4s should not.
# Used for CAP, Escort, and intercept if there is not a specialised aircraft available
from pydcs_extensions.uh60l.uh60l import UH_60L, KC130J
CAP_CAPABLE = [
Su_57,
F_22A,
@ -472,6 +474,7 @@ TRANSPORT_CAPABLE = [
Yak_40,
CH_53E,
CH_47D,
UH_60L,
SH_60B,
UH_60A,
UH_1H,
@ -494,6 +497,7 @@ REFUELING_CAPABALE = [
KC_135,
KC135MPRS,
IL_78M,
KC130J,
KC130,
S_3B_Tanker,
]

View File

@ -6,6 +6,7 @@ from pydcs_extensions.highdigitsams import highdigitsams
from pydcs_extensions.jas39.jas39 import JAS39Gripen, JAS39Gripen_AG
from pydcs_extensions.su57.su57 import Su_57
import pydcs_extensions.frenchpack.frenchpack as frenchpack
from pydcs_extensions.uh60l.uh60l import UH_60L, KC130J
MODDED_AIRPLANES = [
A_4E_C,
@ -15,9 +16,13 @@ MODDED_AIRPLANES = [
VSN_F104S,
VSN_F104S_AG,
Hercules,
KC130J,
JAS39Gripen,
JAS39Gripen_AG,
]
MODDED_HELICOPTERS = [
UH_60L,
]
MODDED_VEHICLES = [
frenchpack._FIELD_HIDE,
frenchpack._FIELD_HIDE_SMALL,

File diff suppressed because it is too large Load Diff

View File

@ -107,6 +107,7 @@ class NewGameWizard(QtWidgets.QWizard):
f22_raptor=self.field("f22_raptor"),
f104_starfighter=self.field("f104_starfighter"),
hercules=self.field("hercules"),
uh_60l=self.field("uh_60l"),
jas39_gripen=self.field("jas39_gripen"),
su57_felon=self.field("su57_felon"),
frenchpack=self.field("frenchpack"),
@ -563,6 +564,8 @@ class GeneratorOptions(QtWidgets.QWizardPage):
self.registerField("a4_skyhawk", a4_skyhawk)
hercules = QtWidgets.QCheckBox()
self.registerField("hercules", hercules)
uh_60l = QtWidgets.QCheckBox()
self.registerField("uh_60l", uh_60l)
f22_raptor = QtWidgets.QCheckBox()
self.registerField("f22_raptor", f22_raptor)
f104_starfighter = QtWidgets.QCheckBox()
@ -582,22 +585,38 @@ class GeneratorOptions(QtWidgets.QWizardPage):
modHelpText.setAlignment(Qt.AlignCenter)
modLayout = QtWidgets.QGridLayout()
modLayout.addWidget(QtWidgets.QLabel("A-4E Skyhawk"), 1, 0)
modLayout.addWidget(a4_skyhawk, 1, 1)
modLayout.addWidget(QtWidgets.QLabel("F-22A Raptor"), 2, 0)
modLayout.addWidget(f22_raptor, 2, 1)
modLayout.addWidget(QtWidgets.QLabel("F-104 Starfighter"), 3, 0)
modLayout.addWidget(f104_starfighter, 3, 1)
modLayout.addWidget(QtWidgets.QLabel("C-130J-30 Super Hercules"), 4, 0)
modLayout.addWidget(hercules, 4, 1)
modLayout.addWidget(QtWidgets.QLabel("JAS 39 Gripen"), 5, 0)
modLayout.addWidget(jas39_gripen, 5, 1)
modLayout.addWidget(QtWidgets.QLabel("Su-57 Felon"), 6, 0)
modLayout.addWidget(su57_felon, 6, 1)
modLayout.addWidget(QtWidgets.QLabel("Frenchpack"), 7, 0)
modLayout.addWidget(frenchpack, 7, 1)
modLayout.addWidget(QtWidgets.QLabel("High Digit SAMs"), 8, 0)
modLayout.addWidget(high_digit_sams, 8, 1)
modLayout_row = 1
modLayout.addWidget(QtWidgets.QLabel("A-4E Skyhawk"), modLayout_row, 0)
modLayout.addWidget(a4_skyhawk, modLayout_row, 1)
modLayout_row += 1
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-104 Starfighter"), modLayout_row, 0)
modLayout.addWidget(f104_starfighter, modLayout_row, 1)
modLayout_row += 1
modLayout.addWidget(
QtWidgets.QLabel("C-130J-30 Super Hercules"), modLayout_row, 0
)
modLayout.addWidget(hercules, modLayout_row, 1)
modLayout_row += 1
modLayout.addWidget(QtWidgets.QLabel("UH-60L Black Hawk"), modLayout_row, 0)
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"), modLayout_row, 0)
modLayout.addWidget(jas39_gripen, modLayout_row, 1)
modLayout_row += 1
modLayout.addWidget(QtWidgets.QLabel("Su-57 Felon"), modLayout_row, 0)
modLayout.addWidget(su57_felon, modLayout_row, 1)
modLayout_row += 1
modLayout.addWidget(QtWidgets.QLabel("Frenchpack"), modLayout_row, 0)
modLayout.addWidget(frenchpack, modLayout_row, 1)
modLayout_row += 1
modLayout.addWidget(QtWidgets.QLabel("High Digit SAMs"), modLayout_row, 0)
modLayout.addWidget(high_digit_sams, modLayout_row, 1)
modSettingsGroup.setLayout(modLayout)
mlayout = QVBoxLayout()

View File

@ -0,0 +1,42 @@
local unitPayloads =
{
["name"] = "UH-60L",
["payloads"] =
{
[1] =
{
["name"] = "Liberation Ferry",
["pylons"] =
{
[1] =
{
["CLSID"] = "{UH60_FUEL_TANK_230}",
["num"] = 1,
},
[2] =
{
["CLSID"] = "{UH60_FUEL_TANK_230}",
["num"] = 2,
},
[3] =
{
["CLSID"] = "{UH60_FUEL_TANK_230}",
["num"] = 3,
},
[4] =
{
["CLSID"] = "{UH60_FUEL_TANK_230}",
["num"] = 4,
},
},
["tasks"] =
{
[1] = 35,
[2] = 17,
},
},
},
["tasks"] = {},
["unitType"] = "UH-60L",
}
return unitPayloads

View File

@ -18,7 +18,7 @@
"F-15C Eagle",
"F-15E Strike Eagle",
"F-16CM Fighting Falcon (Block 50)",
"F-22A Raptor",
"F-22A Raptor",
"F/A-18C Hornet (Lot 20)",
"Mirage 2000C",
"OH-58D Kiowa Warrior",
@ -28,7 +28,8 @@
"SA 342M Gazelle Mistral",
"Tornado GR4",
"UH-1H Iroquois",
"UH-60A"
"UH-60A",
"UH-60L"
],
"awacs": [
"E-2C Hawkeye",
@ -36,6 +37,7 @@
],
"tankers": [
"KC-130",
"KC-130J",
"KC-135 Stratotanker",
"S-3B Tanker"
],
@ -49,7 +51,7 @@
"M1134 Stryker ATGM (BGM-71 TOW)",
"M1A2 Abrams",
"M2A2 Bradley",
"M6 Linebacker",
"M6 Linebacker",
"Marder 1A3",
"VAB Mephisto"
],
@ -99,7 +101,7 @@
],
"navy_generators": [
"ArleighBurkeGroupGenerator",
"OliverHazardPerryGroupGenerator"
"OliverHazardPerryGroupGenerator"
],
"has_jtac": true,
"jtac_unit": "MQ-9 Reaper"

View File

@ -14,7 +14,8 @@
"F-4E Phantom II",
"OH-58D Kiowa Warrior",
"UH-1H Iroquois",
"UH-60A"
"UH-60A",
"UH-60L"
],
"awacs": [
"E-3A"

View File

@ -12,7 +12,8 @@
"F-16CM Fighting Falcon (Block 50)",
"Mirage 2000-5",
"Mirage 2000C",
"UH-60A"
"UH-60A",
"UH-60L"
],
"awacs": [
"E-3A"

View File

@ -27,7 +27,8 @@
"S-3B Viking",
"SH-60B Seahawk",
"UH-1H Iroquois",
"UH-60A"
"UH-60A",
"UH-60L"
],
"awacs": [
"E-2C Hawkeye",
@ -35,6 +36,7 @@
],
"tankers": [
"KC-130",
"KC-130J",
"KC-135 Stratotanker",
"S-3B Tanker"
],

View File

@ -28,7 +28,8 @@
"S-3B Viking",
"SH-60B Seahawk",
"UH-1H Iroquois",
"UH-60A"
"UH-60A",
"UH-60L"
],
"awacs": [
"E-2C Hawkeye",
@ -36,6 +37,7 @@
],
"tankers": [
"KC-130",
"KC-130J",
"KC-135 Stratotanker",
"KC-135 Stratotanker MPRS",
"S-3B Tanker"

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1,17 @@
description:
The Lockheed Martin (previously Lockheed) KC-130 is a family of the extended-range
tanker version of the C-130 Hercules transport aircraft modified for aerial refueling.
This version of the KC-130 tanker is designed for refueling at speeds of 120-130kts,
enabling refueling of helicopters such as the UH-60L.
introduced: 2004
manufacturer: Lockheed Martin
origin: USA
price: 25
role: Tanker
max_range: 1000
patrol:
# ~125 knots IAS
speed: 180
altitude: 22000
variants:
KC-130J: {}

View File

@ -0,0 +1,13 @@
description:
The Sikorsky UH-60 Black Hawk is a four-blade, twin-engine, medium-lift utility helicopter manufactured by Sikorsky Aircraft.
The UH-60A entered service with the U.S. Army in 1979, to replace the Bell UH-1 Iroquois as the Army's tactical transport helicopter.
The UH-60L is an improved utility variant.
introduced: 1989
carrier_capable: true
lha_capable: true
manufacturer: Sikorsky
origin: USA
price: 4
role: Transport
variants:
UH-60L: {}