diff --git a/changelog.md b/changelog.md index b7b5021d..3340798d 100644 --- a/changelog.md +++ b/changelog.md @@ -53,6 +53,9 @@ * **[Modding]** Updated support for CurrentHill's Swedish Asset Pack (v1.1.0) * **[Modding]** Support for CurrentHill's Russian Asset Pack (v1.2.0) * **[Modding]** Support for CurrentHill's USA Asset Pack (v1.1.5) +* **[Modding]** Update CJS Super Hornet to 2.4.2 +* **[Modding]** Support for Cowboy's E-7A Wedgetail mod (Supports EW Script Offensive Jamming) +* **[Plugins]** Added initial AI support for EW Script 2.0 ## Fixes * **[UI/UX]** A-10A flights can be edited again diff --git a/game/factions/faction.py b/game/factions/faction.py index 5de68fb6..07b1cda6 100644 --- a/game/factions/faction.py +++ b/game/factions/faction.py @@ -854,6 +854,9 @@ class Faction: self.remove_vehicle("CH_Alligator_Sniper") self.remove_vehicle("CH_Stugna_P") self.remove_vehicle("CH_KrAZ6322") + # CLP E7a Wedgetail Mod + if not mod_settings.e7a_wedgetail: + self.remove_aircraft("CLP_E7a") def remove_aircraft(self, name: str) -> None: for aircraft_set in [self.aircraft, self.awacs, self.tankers]: diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py index 5cbcaca0..e45dd9cf 100644 --- a/game/theater/start_generator.py +++ b/game/theater/start_generator.py @@ -69,6 +69,7 @@ class ModSettings: a6a_intruder: bool = False a7e_corsair2: bool = False ea6b_prowler: bool = False + e7a_wedgetail: bool = False f4bc_phantom: bool = False f9f_panther: bool = False f15d_baz: bool = False diff --git a/pydcs_extensions/__init__.py b/pydcs_extensions/__init__.py index 6c9e0d3c..ae0ac4d8 100644 --- a/pydcs_extensions/__init__.py +++ b/pydcs_extensions/__init__.py @@ -3,6 +3,7 @@ from .a4ec import * from .a7e import * from .a6a import * from .bandit_clouds import * +from .e7a import * from .ea6b import * from .f9f import * from .f100 import * diff --git a/pydcs_extensions/e7a/__init__.py b/pydcs_extensions/e7a/__init__.py new file mode 100644 index 00000000..84306852 --- /dev/null +++ b/pydcs_extensions/e7a/__init__.py @@ -0,0 +1 @@ +from .e7a import * diff --git a/pydcs_extensions/e7a/e7a.py b/pydcs_extensions/e7a/e7a.py new file mode 100644 index 00000000..1c807134 --- /dev/null +++ b/pydcs_extensions/e7a/e7a.py @@ -0,0 +1,33 @@ +from typing import Set + +from dcs import task +from dcs.planes import PlaneType +from dcs.weapons_data import Weapons + +from game.modsupport import planemod +from pydcs_extensions.weapon_injector import inject_weapons + + +@planemod +class CLP_E7A(PlaneType): + id = "CLP_E7A" + large_parking_slot = True + height = 12.5 + width = 34 + length = 35.5 + fuel_max = 90700 + max_speed = 1009.008 + chaff = 120 + flare = 60 + charge_total = 240 + chaff_charge_size = 1 + flare_charge_size = 2 + eplrs = True + radio_frequency = 243 + + livery_name = "CLP_E7A" # from type + + pylons: Set[int] = set() + + tasks = [task.AWACS] + task_default = task.AWACS diff --git a/qt_ui/main.py b/qt_ui/main.py index e81bbb4c..47b55633 100644 --- a/qt_ui/main.py +++ b/qt_ui/main.py @@ -325,6 +325,7 @@ def create_game( a6a_intruder=False, a7e_corsair2=False, ea6b_prowler=False, + e7a_wedgetail=False, fa_18efg=False, fa18ef_tanker=False, f4bc_phantom=False, diff --git a/qt_ui/windows/newgame/QNewGameWizard.py b/qt_ui/windows/newgame/QNewGameWizard.py index 91bb2c46..2c4f6228 100644 --- a/qt_ui/windows/newgame/QNewGameWizard.py +++ b/qt_ui/windows/newgame/QNewGameWizard.py @@ -93,6 +93,7 @@ class NewGameWizard(QtWidgets.QWizard): a6a_intruder=self.field("a6a_intruder"), a7e_corsair2=self.field("a7e_corsair2"), ea6b_prowler=self.field("ea6b_prowler"), + e7a_wedgetail=self.field("e7a_wedgetail"), f4bc_phantom=self.field("f4bc_phantom"), f15d_baz=self.field("f15d_baz"), f_15_idf=self.field("f_15_idf"), diff --git a/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py b/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py index 8c1a4a16..de88fc46 100644 --- a/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py +++ b/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py @@ -96,6 +96,8 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.registerField("a7e_corsair2", self.a7e_corsair2) self.ea6b_prowler = QtWidgets.QCheckBox() self.registerField("ea6b_prowler", self.ea6b_prowler) + self.e7a_wedgetail = QtWidgets.QCheckBox() + self.registerField("e7a_wedgetail", self.e7a_wedgetail) self.hercules = QtWidgets.QCheckBox() self.registerField("hercules", self.hercules) self.oh_6 = QtWidgets.QCheckBox() @@ -206,6 +208,7 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.ukrainemilitaryassetspack, ), ("EA-6B Prowler (v2.9.4.102)", self.ea6b_prowler), + ("E-7A Wedgetail (AI Only, EW Capable)", self.e7a_wedgetail), ("F-100 Super Sabre (v2.7.18.30765 patch 20.10.22)", self.f100_supersabre), ("F-104 Starfighter (v2.7.11.222.01)", self.f104_starfighter), ("F-105 Thunderchief (v2.7.12.23x)", self.f105_thunderchief), @@ -277,6 +280,7 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.a6a_intruder.setChecked(s.get("a6a_intruder", False)) self.a7e_corsair2.setChecked(s.get("a7e_corsair2", False)) self.ea6b_prowler.setChecked(s.get("ea6b_prowler", False)) + self.e7a_wedgetail.setChecked(s.get("e7a_wedgetail", False)) self.hercules.setChecked(s.get("hercules", False)) self.uh_60l.setChecked(s.get("uh_60l", False)) self.f4bc_phantom.setChecked(s.get("f4bc_phantom", False)) diff --git a/resources/ui/units/aircrafts/banners/CLP_E7A.jpg b/resources/ui/units/aircrafts/banners/CLP_E7A.jpg new file mode 100644 index 00000000..1588c454 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/CLP_E7A.jpg differ diff --git a/resources/ui/units/aircrafts/icons/CLP_E7A_24.jpg b/resources/ui/units/aircrafts/icons/CLP_E7A_24.jpg new file mode 100644 index 00000000..6e4f3192 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/CLP_E7A_24.jpg differ diff --git a/resources/units/aircraft/CLP_E7A.yaml b/resources/units/aircraft/CLP_E7A.yaml new file mode 100644 index 00000000..5a7a6d23 --- /dev/null +++ b/resources/units/aircraft/CLP_E7A.yaml @@ -0,0 +1,10 @@ +description: The Boeing E-7 Wedgetail, also marketed as the Boeing 737 AEW&C, is a twin-engine airborne early warning and control aircraft based on the Boeing 737 Next Generation design. It has a fixed, active electronically scanned array radar antenna instead of a rotating one as with the 707-based Boeing E-3 Sentry.[2][3] The E-7 was designed for the Royal Australian Air Force (RAAF) under "Project Wedgetail" and designated E-7A Wedgetail. +price: 50 +max_group_size: 1 +max_range: 2000 +patrol: + altitude: 35000 +variants: + E-7A Wedgetail: {} +tasks: + AEW&C: 30