Added a pydcs extension for the IDF Mod Project F-16I mod version 1.4, utilizing the pylon_injector written for the CJS Superbug mod support. Includes banner by Schmokedpancake.

This commit is contained in:
MetalStormGhost 2022-04-18 16:44:12 +03:00
parent 151cf17e35
commit 4fe0102b7b
8 changed files with 5229 additions and 0 deletions

View File

@ -32,6 +32,7 @@ from game.dcs.groundunittype import GroundUnitType
from game.dcs.shipunittype import ShipUnitType
from game.armedforces.forcegroup import ForceGroup
from game.dcs.unittype import UnitType
from pydcs_extensions.f16i_idf.f16i_idf import inject_F16I
if TYPE_CHECKING:
from game.theater.start_generator import ModSettings
@ -355,6 +356,8 @@ class Faction:
self.remove_vehicle("SAM SA-14 Strela-3 manpad")
self.remove_vehicle("SAM SA-24 Igla-S manpad")
self.remove_vehicle("Polyana-D4M1 C2 node")
if mod_settings.f_16_idf:
inject_F16I()
def remove_aircraft(self, name: str) -> None:
for i in self.aircrafts:

View File

@ -55,6 +55,7 @@ class GeneratorSettings:
@dataclass
class ModSettings:
a4_skyhawk: bool = False
f_16_idf: bool = False
f22_raptor: bool = False
f104_starfighter: bool = False
hercules: bool = False

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,17 @@
from typing import Tuple, Any
def inject_pylons(to_pylon: Any, from_pylon: Any) -> None:
"""
Inject weapons/ordnance added by mods into the pylons of existing aircraft.
This is done to support mods such as the CJS Super Hornet, which modify aircraft
that exist in stock DCS. Ornance is injected pydcs aircraft classes via introspection
:param to_pylon: The pydcs pylon class of the target aircraft
:param from_pylon: The custom pylon class containing tuples with added weapon info
:return: None
"""
for key, value in from_pylon.__dict__.items():
if key.startswith("__"):
continue
if isinstance(value, Tuple):
setattr(to_pylon, key, value)

View File

@ -158,6 +158,7 @@ class NewGameWizard(QtWidgets.QWizard):
)
mod_settings = ModSettings(
a4_skyhawk=self.field("a4_skyhawk"),
f_16_idf=self.field("f_16_idf"),
f22_raptor=self.field("f22_raptor"),
f104_starfighter=self.field("f104_starfighter"),
hercules=self.field("hercules"),
@ -657,6 +658,8 @@ class GeneratorOptions(QtWidgets.QWizardPage):
self.registerField("hercules", hercules)
uh_60l = QtWidgets.QCheckBox()
self.registerField("uh_60l", uh_60l)
f_16_idf = QtWidgets.QCheckBox()
self.registerField("f_16_idf", f_16_idf)
f22_raptor = QtWidgets.QCheckBox()
self.registerField("f22_raptor", f22_raptor)
f104_starfighter = QtWidgets.QCheckBox()
@ -682,6 +685,13 @@ class GeneratorOptions(QtWidgets.QWizardPage):
)
modLayout.addWidget(a4_skyhawk, modLayout_row, 1)
modLayout_row += 1
modLayout.addWidget(
QtWidgets.QLabel("F-16I Sufa (version 1.4 by IDF Mods Project)"),
modLayout_row,
0,
)
modLayout.addWidget(f_16_idf, 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

View File

@ -0,0 +1,38 @@
description:
"The F-16I is a two-seat variant of the Block 52 developed for the Israeli
Defense Force Air Force (IDF/AF). Israel issued a requirement in September
1997 and selected the F-16 in preference to the F-15I in July 1999."
introduced: 2003
manufacturer: General Dynamics
origin: USA
price: 24
role: Multirole Fighter
max_range: 350
fuel:
# Parking 44 to RWY 06L at Anderson AFB.
taxi: 200
# AB takeoff to 350/0.75, reduce to MIL and maintain 350/0.75 to 25k ft.
climb_ppm: 28.33
# 0.85 mach for 100NM.
cruise_ppm: 12
# MIL for 100NM. Occasional AB use.
combat_ppm: 26
min_safe: 1000
variants:
F-16I Sufa: {}
radios:
intra_flight: AN/ARC-222
inter_flight: AN/ARC-164
channels:
type: common
namer: viper
# COM2 is the AN/ARC-222, which is the VHF radio we want to use for
# intra-flight communication to leave COM1 open for UHF inter-flight.
intra_flight_radio_index: 2
inter_flight_radio_index: 1
# default_overrides:
# HelmetMountedDevice: 1
# LAU3ROF: 0
# LaserCode1: 8
# LaserCode10: 8
# LaserCode100: 6