diff --git a/game/factions/faction.py b/game/factions/faction.py index 9faee69e..1675abf3 100644 --- a/game/factions/faction.py +++ b/game/factions/faction.py @@ -402,6 +402,8 @@ class Faction: self.remove_aircraft("VSN_F106B") if not mod_settings.a6a_intruder: self.remove_aircraft("VSN_A6A") + if not mod_settings.ea6b_prowler: + self.remove_aircraft("EA_6B") if not mod_settings.jas39_gripen: self.remove_aircraft("JAS39Gripen") self.remove_aircraft("JAS39Gripen_BVR") diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py index 8e722d78..66bcb295 100644 --- a/game/theater/start_generator.py +++ b/game/theater/start_generator.py @@ -68,6 +68,7 @@ class ModSettings: a4_skyhawk: bool = False a6a_intruder: bool = False a7e_corsair2: bool = False + ea6b_prowler: 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 ccdd9e01..b1f5b193 100644 --- a/pydcs_extensions/__init__.py +++ b/pydcs_extensions/__init__.py @@ -2,6 +2,7 @@ from .SWPack import * from .a4ec import * from .a7e import * from .a6a import * +from .ea6b import * from .f9f import * from .f100 import * from .f104 import * diff --git a/pydcs_extensions/ea6b/__init__.py b/pydcs_extensions/ea6b/__init__.py new file mode 100644 index 00000000..46638b52 --- /dev/null +++ b/pydcs_extensions/ea6b/__init__.py @@ -0,0 +1 @@ +from .ea6b import * diff --git a/pydcs_extensions/ea6b/ea6b.py b/pydcs_extensions/ea6b/ea6b.py new file mode 100644 index 00000000..9c028ec6 --- /dev/null +++ b/pydcs_extensions/ea6b/ea6b.py @@ -0,0 +1,105 @@ +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 + + +class WeaponsEA6B: + EA6B_AN_ALQ_99 = { + "clsid": "{EA6B_ANALQ991}", + "name": "EA6B AN-ALQ-99", + "weight": 435, + } + EA6B_AN_ALQ_99_ = { + "clsid": "{EA6B_ANALQ992}", + "name": "EA6B AN-ALQ-99", + "weight": 435, + } + + +inject_weapons(WeaponsEA6B) + + +@planemod +class EA_6B(PlaneType): + id = "EA_6B" + height = 4.57 + width = 10.15 + length = 17.98 + fuel_max = 6994 + max_speed = 1047.96 + chaff = 30 + flare = 30 + charge_total = 60 + chaff_charge_size = 1 + flare_charge_size = 1 + eplrs = True + radio_frequency = 250.5 + + livery_name = "EA_6B" # from type + + class Pylon1: + LAU_118A___AGM_45B_Shrike_ARM = (1, Weapons.LAU_118A___AGM_45B_Shrike_ARM) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 1, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + F_5_275Gal_Fuel_tank = (1, Weapons.F_5_275Gal_Fuel_tank) + EA6B_AN_ALQ_99 = (1, Weapons.EA6B_AN_ALQ_99) + + # ERRR + + class Pylon2: + LAU_118A___AGM_45B_Shrike_ARM = (2, Weapons.LAU_118A___AGM_45B_Shrike_ARM) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 2, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + F_5_275Gal_Fuel_tank = (2, Weapons.F_5_275Gal_Fuel_tank) + EA6B_AN_ALQ_99 = (2, Weapons.EA6B_AN_ALQ_99) + + # ERRR + + class Pylon3: + F_5_275Gal_Fuel_tank = (3, Weapons.F_5_275Gal_Fuel_tank) + EA6B_AN_ALQ_99_ = (3, Weapons.EA6B_AN_ALQ_99_) + + # ERRR + + class Pylon4: + LAU_118A___AGM_45B_Shrike_ARM = (4, Weapons.LAU_118A___AGM_45B_Shrike_ARM) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 4, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + F_5_275Gal_Fuel_tank = (4, Weapons.F_5_275Gal_Fuel_tank) + EA6B_AN_ALQ_99 = (4, Weapons.EA6B_AN_ALQ_99) + + # ERRR + + class Pylon5: + LAU_118A___AGM_45B_Shrike_ARM = (5, Weapons.LAU_118A___AGM_45B_Shrike_ARM) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 5, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + F_5_275Gal_Fuel_tank = (5, Weapons.F_5_275Gal_Fuel_tank) + EA6B_AN_ALQ_99 = (5, Weapons.EA6B_AN_ALQ_99) + + # ERRR + + pylons = {1, 2, 3, 4, 5} + + tasks = [ + task.Escort, + task.Reconnaissance, + task.GroundAttack, + task.CAS, + task.AFAC, + task.RunwayAttack, + task.AntishipStrike, + task.SEAD, + ] + task_default = task.GroundAttack diff --git a/qt_ui/main.py b/qt_ui/main.py index fb24e21f..7f4b6e78 100644 --- a/qt_ui/main.py +++ b/qt_ui/main.py @@ -324,6 +324,7 @@ def create_game( a4_skyhawk=False, a6a_intruder=False, a7e_corsair2=False, + ea6b_prowler=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 696463bf..0ecccbf1 100644 --- a/qt_ui/windows/newgame/QNewGameWizard.py +++ b/qt_ui/windows/newgame/QNewGameWizard.py @@ -92,6 +92,7 @@ class NewGameWizard(QtWidgets.QWizard): a4_skyhawk=self.field("a4_skyhawk"), a6a_intruder=self.field("a6a_intruder"), a7e_corsair2=self.field("a7e_corsair2"), + ea6b_prowler=self.field("ea6b_prowler"), 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 8184b6bd..926bb923 100644 --- a/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py +++ b/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py @@ -94,6 +94,8 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.registerField("a6a_intruder", self.a6a_intruder) self.a7e_corsair2 = QtWidgets.QCheckBox() self.registerField("a7e_corsair2", self.a7e_corsair2) + self.ea6b_prowler = QtWidgets.QCheckBox() + self.registerField("ea6b_prowler", self.ea6b_prowler) self.hercules = QtWidgets.QCheckBox() self.registerField("hercules", self.hercules) self.uh_60l = QtWidgets.QCheckBox() @@ -160,6 +162,7 @@ class GeneratorOptions(QtWidgets.QWizardPage): ("A-6A Intruder (v2.7.5.01)", self.a6a_intruder), ("A-7E Corsair II", self.a7e_corsair2), ("C-130J-30 Super Hercules (v6.8.2)", self.hercules), + ("EA-6B Prowler (v2.9.4.102)", self.ea6b_prowler), ("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), @@ -225,6 +228,7 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.a4_skyhawk.setChecked(s.get("a4_skyhawk", False)) 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.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/customized_payloads/EA_6B.lua b/resources/customized_payloads/EA_6B.lua new file mode 100644 index 00000000..ba87fc1e --- /dev/null +++ b/resources/customized_payloads/EA_6B.lua @@ -0,0 +1,36 @@ +local unitPayloads = { + ["name"] = "EA_6B", + ["payloads"] = { + [1] = { + ["displayName"] = "Liberation SEAD", + ["name"] = "Liberation SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{0395076D-2F77-4420-9D33-087A4398130B}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{EA6B_ANALQ992}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{0395076D-2F77-4420-9D33-087A4398130B}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + }, + ["unitType"] = "EA_6B", +} +return unitPayloads diff --git a/resources/factions/usa_1975.json b/resources/factions/usa_1975.json index ef601ae8..d60fb74a 100644 --- a/resources/factions/usa_1975.json +++ b/resources/factions/usa_1975.json @@ -13,6 +13,7 @@ "CH-53E", "A-4E Skyhawk", "A-7E Corsair II", + "EA-6B Prowler", "F-14A Tomcat (AI)", "F-14A Tomcat (Block 135-GR Late)", "F-4B Phantom II", diff --git a/resources/factions/usa_1990.json b/resources/factions/usa_1990.json index e23ab278..c0cddf0c 100644 --- a/resources/factions/usa_1990.json +++ b/resources/factions/usa_1990.json @@ -16,6 +16,7 @@ "C-130J-30 Super Hercules", "CH-47D", "CH-53E", + "EA-6B Prowler", "F-117A Nighthawk", "F-14A Tomcat (AI)", "F-14A Tomcat (Block 135-GR Late)", diff --git a/resources/factions/usa_2005.json b/resources/factions/usa_2005.json index b678f3ec..cd0a3a19 100644 --- a/resources/factions/usa_2005.json +++ b/resources/factions/usa_2005.json @@ -26,21 +26,22 @@ "F-15E Strike Eagle (AI)", "F-15E Strike Eagle (Suite 4+)", "F-16CM Fighting Falcon (Block 50)", - "F-16D Fighting Falcon (Block 52+)", - "F-16D Fighting Falcon (Block 52)", - "F-16D Fighting Falcon (Block 50+)", - "F-16D Fighting Falcon (Block 50)", + "F-16D Fighting Falcon (Block 52+)", + "F-16D Fighting Falcon (Block 52)", + "F-16D Fighting Falcon (Block 50+)", + "F-16D Fighting Falcon (Block 50)", "F-22A Raptor", "F/A-18C Hornet (Lot 20)", - "F/A-18E Super Hornet", - "F/A-18F Super Hornet", - "EA-18G Growler", + "F/A-18E Super Hornet", + "F/A-18F Super Hornet", + "EA-6B Prowler", + "EA-18G Growler", "OH-58D(R) Kiowa Warrior", "S-3B Viking", "SH-60B Seahawk", "UH-1H Iroquois", - "UH-60A", - "UH-60L" + "UH-60A", + "UH-60L" ], "awacs": [ "E-2C Hawkeye", diff --git a/resources/factions/usn_1985.json b/resources/factions/usn_1985.json index 7b53c2c0..e0610384 100644 --- a/resources/factions/usn_1985.json +++ b/resources/factions/usn_1985.json @@ -10,6 +10,7 @@ "AH-1W SuperCobra", "A-4E Skyhawk", "A-6A Intruder", + "EA-6B Prowler", "A-7E Corsair II", "F-14A Tomcat (AI)", "F-14A Tomcat (Block 135-GR Late)", diff --git a/resources/factions/usn_2005.json b/resources/factions/usn_2005.json index 1f463129..8fca7220 100644 --- a/resources/factions/usn_2005.json +++ b/resources/factions/usn_2005.json @@ -8,6 +8,7 @@ ], "aircrafts": [ "F-14B Tomcat", + "EA-6B Prowler", "F/A-18C Hornet (Lot 20)", "F/A-18E Super Hornet", "F/A-18F Super Hornet", diff --git a/resources/factions/usn_2009.json b/resources/factions/usn_2009.json index 9d35841a..004fb9d8 100644 --- a/resources/factions/usn_2009.json +++ b/resources/factions/usn_2009.json @@ -11,7 +11,8 @@ "F/A-18C Hornet (Lot 20)", "F/A-18E Super Hornet", "F/A-18F Super Hornet", - "EA-18G Growler", + "EA-18G Growler", + "EA-6B Prowler", "AV-8B Harrier II Night Attack", "AH-1W SuperCobra", "S-3B Viking", diff --git a/resources/ui/units/aircrafts/banners/EA_6B.jpg b/resources/ui/units/aircrafts/banners/EA_6B.jpg new file mode 100644 index 00000000..bbd5c992 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/EA_6B.jpg differ diff --git a/resources/ui/units/aircrafts/icons/EA_6B_24.jpg b/resources/ui/units/aircrafts/icons/EA_6B_24.jpg new file mode 100644 index 00000000..1b4f7347 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/EA_6B_24.jpg differ diff --git a/resources/units/aircraft/EA_6B.yaml b/resources/units/aircraft/EA_6B.yaml new file mode 100644 index 00000000..ddf3ad31 --- /dev/null +++ b/resources/units/aircraft/EA_6B.yaml @@ -0,0 +1,17 @@ +carrier_capable: true +description: + "The Northrop Grumman EA-6B Prowler is a twin-engine, four-seat, mid-wing electronic-warfare \ + \ aircraft derived from the A-6 Intruder airframe. The EA-6A was the initial electronic warfare \ + \ version of the A-6 used by the United States Marine Corps and United States Navy. \ + \ It was capable of carrying and firing anti-radiation missiles (ARMs), such as the AGM-88 HARM." +introduced: 1971 +manufacturer: Northrop Grumman +origin: USA +price: 11 +role: Carrier-based Electronic-warfare Aircraft +gunfighter: false +variants: + EA-6B Prowler: {} +tasks: + SEAD: 460 + SEAD Escort: 460