mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
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:
parent
151cf17e35
commit
4fe0102b7b
@ -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:
|
||||
|
||||
@ -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
|
||||
|
||||
5160
pydcs_extensions/f16i_idf/f16i_idf.py
Normal file
5160
pydcs_extensions/f16i_idf/f16i_idf.py
Normal file
File diff suppressed because it is too large
Load Diff
17
pydcs_extensions/pylon_injector.py
Normal file
17
pydcs_extensions/pylon_injector.py
Normal 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)
|
||||
@ -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
|
||||
|
||||
BIN
resources/ui/units/aircrafts/banners/F-16I_24.jpg
Normal file
BIN
resources/ui/units/aircrafts/banners/F-16I_24.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 308 KiB |
BIN
resources/ui/units/aircrafts/icons/F-16I_24.jpg
Normal file
BIN
resources/ui/units/aircrafts/icons/F-16I_24.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.2 KiB |
38
resources/units/aircraft/F-16I.yaml
Normal file
38
resources/units/aircraft/F-16I.yaml
Normal 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
|
||||
Loading…
x
Reference in New Issue
Block a user