mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Add F-15I support
Co-Authored-By: M Chimiste <37678080+M-Chimiste@users.noreply.github.com>
This commit is contained in:
parent
06d98db55b
commit
d6e7451f8a
@ -53,6 +53,7 @@
|
||||
* **[Flight Plans]** Added "SEAD Sweep" flight plan, which basically reintroduces the legacy "SEAD Escort" flight plan where the flight will engage whatever it can find without actually escorting the primary flight.
|
||||
* **[Flight Plans]** Added SEAD capability to F-16A MLU and SEAD Escort & SEAD to F-16A.
|
||||
* **[Mission Generation]** Spawn unused helicopters or LHA-capable aircraft at helipads at FOBs
|
||||
* **[Modding]** Support for F-15I Ra'am v1.0 by IDF Mods Project
|
||||
|
||||
## Fixes
|
||||
* **[New Game Wizard]** Settings would not persist when going back to a previous page (obsolete due to overhaul).
|
||||
|
||||
@ -70,6 +70,10 @@ class Flight(SidcDescribable, RadioFrequencyContainer, TacanContainer):
|
||||
self.divert = divert
|
||||
self.flight_type = flight_type
|
||||
self.loadout = Loadout.default_for(self)
|
||||
if self.squadron.aircraft.name == "F-15I Ra'am":
|
||||
self.loadout.pylons[16] = Weapon.with_clsid(
|
||||
"{IDF_MODS_PROJECT_F-15I_Raam_Dome}"
|
||||
)
|
||||
self.start_type = start_type
|
||||
self.use_custom_loadout = False
|
||||
self.custom_name = custom_name
|
||||
|
||||
@ -32,6 +32,7 @@ from game.dcs.countries import country_with_name
|
||||
from game.dcs.groundunittype import GroundUnitType
|
||||
from game.dcs.shipunittype import ShipUnitType
|
||||
from game.dcs.unittype import UnitType
|
||||
from pydcs_extensions import inject_F15I, eject_F15I
|
||||
from pydcs_extensions.f16i_idf.f16i_idf import inject_F16I, eject_F16I
|
||||
|
||||
if TYPE_CHECKING:
|
||||
@ -328,6 +329,14 @@ class Faction:
|
||||
self.remove_aircraft("VSN_F4C")
|
||||
if not mod_settings.f15d_baz:
|
||||
self.remove_aircraft("F-15D")
|
||||
if not mod_settings.f_15_idf:
|
||||
eject_F15I()
|
||||
if AircraftType.named("F-15I Ra'am") in self.aircraft:
|
||||
self.aircraft.remove(AircraftType.named("F-15I Ra'am"))
|
||||
else:
|
||||
inject_F15I()
|
||||
if AircraftType.named("F-15E Strike Eagle (Suite 4+)") in self.aircraft:
|
||||
self.aircraft.add(AircraftType.named("F-15I Ra'am"))
|
||||
if not mod_settings.f_16_idf:
|
||||
self.remove_aircraft("F-16I")
|
||||
self.remove_aircraft("F-16D_52")
|
||||
|
||||
@ -59,6 +59,7 @@ class ModSettings:
|
||||
a7e_corsair2: bool = False
|
||||
f4bc_phantom: bool = False
|
||||
f15d_baz: bool = False
|
||||
f_15_idf: bool = False
|
||||
f_16_idf: bool = False
|
||||
fa_18efg: bool = False
|
||||
f22_raptor: bool = False
|
||||
|
||||
@ -6,6 +6,7 @@ from .f100 import *
|
||||
from .f104 import *
|
||||
from .f105 import *
|
||||
from .f15d import *
|
||||
from .f15i_idf import *
|
||||
from .f16i_idf import *
|
||||
from .f22a import *
|
||||
from .f4b import *
|
||||
|
||||
1
pydcs_extensions/f15i_idf/__init__.py
Normal file
1
pydcs_extensions/f15i_idf/__init__.py
Normal file
@ -0,0 +1 @@
|
||||
from .f15i_idf import *
|
||||
71
pydcs_extensions/f15i_idf/f15i_idf.py
Normal file
71
pydcs_extensions/f15i_idf/f15i_idf.py
Normal file
@ -0,0 +1,71 @@
|
||||
from dcs.planes import F_15ESE
|
||||
|
||||
from pydcs_extensions.pylon_injector import inject_pylon, eject_pylon
|
||||
from pydcs_extensions.weapon_injector import inject_weapons
|
||||
|
||||
|
||||
class WeaponsF15I:
|
||||
Python_4_ = {
|
||||
"clsid": "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||
"name": "Python-4 ",
|
||||
"weight": 103.6,
|
||||
}
|
||||
F_15I_Ra_am_Dome = {
|
||||
"clsid": "{IDF_MODS_PROJECT_F-15I_Raam_Dome}",
|
||||
"name": "F-15I Ra'am Dome",
|
||||
"weight": 0,
|
||||
}
|
||||
|
||||
|
||||
inject_weapons(WeaponsF15I)
|
||||
|
||||
|
||||
class F15IPylon1:
|
||||
Python_4_ = (1, WeaponsF15I.Python_4_)
|
||||
# ERRR {Python-4 Training}
|
||||
|
||||
|
||||
class F15IPylon3:
|
||||
Python_4_ = (3, WeaponsF15I.Python_4_)
|
||||
# ERRR {Python-4 Training}
|
||||
|
||||
|
||||
class F15IPylon13:
|
||||
Python_4_ = (13, WeaponsF15I.Python_4_)
|
||||
# ERRR {Python-4 Training}
|
||||
|
||||
|
||||
class F15IPylon15:
|
||||
Python_4_ = (15, WeaponsF15I.Python_4_)
|
||||
# ERRR {Python-4 Training}
|
||||
|
||||
|
||||
class Pylon16:
|
||||
F_15I_Ra_am_Dome = (16, WeaponsF15I.F_15I_Ra_am_Dome)
|
||||
|
||||
|
||||
def inject_F15I() -> None:
|
||||
F_15ESE.pylons = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}
|
||||
|
||||
# Injects modified weapons from the IDF Mods Project F-16I Sufa
|
||||
# into pydcs databases via introspection.
|
||||
inject_pylon(F_15ESE.Pylon1, F15IPylon1)
|
||||
inject_pylon(F_15ESE.Pylon3, F15IPylon3)
|
||||
inject_pylon(F_15ESE.Pylon13, F15IPylon13)
|
||||
inject_pylon(F_15ESE.Pylon15, F15IPylon15)
|
||||
|
||||
F_15ESE.Pylon16 = Pylon16
|
||||
|
||||
|
||||
def eject_F15I() -> None:
|
||||
F_15ESE.pylons = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
|
||||
|
||||
# Injects modified weapons from the IDF Mods Project F-16I Sufa
|
||||
# into pydcs databases via introspection.
|
||||
eject_pylon(F_15ESE.Pylon1, F15IPylon1)
|
||||
eject_pylon(F_15ESE.Pylon3, F15IPylon3)
|
||||
eject_pylon(F_15ESE.Pylon13, F15IPylon13)
|
||||
eject_pylon(F_15ESE.Pylon15, F15IPylon15)
|
||||
|
||||
if hasattr(F_15ESE, "Pylon16"):
|
||||
delattr(F_15ESE, "Pylon16")
|
||||
@ -92,6 +92,7 @@ class NewGameWizard(QtWidgets.QWizard):
|
||||
a7e_corsair2=self.field("a7e_corsair2"),
|
||||
f4bc_phantom=self.field("f4bc_phantom"),
|
||||
f15d_baz=self.field("f15d_baz"),
|
||||
f_15_idf=self.field("f_15_idf"),
|
||||
f_16_idf=self.field("f_16_idf"),
|
||||
fa_18efg=self.field("fa_18efg"),
|
||||
f22_raptor=self.field("f22_raptor"),
|
||||
|
||||
@ -102,6 +102,8 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
||||
self.registerField("f4bc_phantom", self.f4bc_phantom)
|
||||
self.f15d_baz = QtWidgets.QCheckBox()
|
||||
self.registerField("f15d_baz", self.f15d_baz)
|
||||
self.f_15_idf = QtWidgets.QCheckBox()
|
||||
self.registerField("f_15_idf", self.f_15_idf)
|
||||
self.f_16_idf = QtWidgets.QCheckBox()
|
||||
self.registerField("f_16_idf", self.f_16_idf)
|
||||
self.fa_18efg = QtWidgets.QCheckBox()
|
||||
@ -155,6 +157,7 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
||||
self.f4bc_phantom,
|
||||
),
|
||||
("F-15D Baz (v1.0)", self.f15d_baz),
|
||||
("F-15I Ra'am (v1.0 by IDF Mods Project)", self.f_15_idf),
|
||||
("F-16I Sufa & F-16D (v3.6 by IDF Mods Project)", self.f_16_idf),
|
||||
("F/A-18E/F/G Super Hornet (version 2.1)", self.fa_18efg),
|
||||
("F-22A Raptor", self.f22_raptor),
|
||||
@ -216,6 +219,7 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
||||
self.uh_60l.setChecked(s.get("uh_60l", False))
|
||||
self.f4bc_phantom.setChecked(s.get("f4bc_phantom", False))
|
||||
self.f15d_baz.setChecked(s.get("f15d_baz", False))
|
||||
self.f_15_idf.setChecked(s.get("f_15_idf", False))
|
||||
self.f_16_idf.setChecked(s.get("f_16_idf", False))
|
||||
self.fa_18efg.setChecked(s.get("fa_18efg", False))
|
||||
self.f22_raptor.setChecked(s.get("f22_raptor", False))
|
||||
|
||||
@ -11,6 +11,7 @@ role: Multirole Strike Fighter
|
||||
max_range: 300
|
||||
variants:
|
||||
F-15E Strike Eagle (Suite 4+): {}
|
||||
F-15I Ra'am: {}
|
||||
radios:
|
||||
intra_flight: AN/ARC-210
|
||||
inter_flight: AN/ARC-164
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user