diff --git a/changelog.md b/changelog.md index 901994cd..349e0bec 100644 --- a/changelog.md +++ b/changelog.md @@ -4,7 +4,9 @@ Saves from 13.x are not compatible with 14.0.0. ## Features/Improvements -* **[Engine]** Support for DCS 2.9.20 including MiG-29 Fulcrum (full fidelity version). +* **[Engine]** Support for DCS 2.9.21. +* **[Engine]** Support for MiG-29 Fulcrum (full fidelity version). +* **[Engine]** Support for F-14A-135-GR Early. * **[Mods]** A4EC mod version updated to 2.3. * **[UI]** Allow saving after fast forwarding manually with sim speed controls (--show-sim-speed-controls option). * **[UI]** Add new option to fast forward until player is at the IP. diff --git a/game/missiongenerator/aircraft/waypoints/pydcswaypointbuilder.py b/game/missiongenerator/aircraft/waypoints/pydcswaypointbuilder.py index e003284d..2b7a5755 100644 --- a/game/missiongenerator/aircraft/waypoints/pydcswaypointbuilder.py +++ b/game/missiongenerator/aircraft/waypoints/pydcswaypointbuilder.py @@ -4,7 +4,7 @@ from datetime import datetime from typing import Any, Iterable, Union from dcs import Mission -from dcs.planes import AJS37, F_14B, JF_17 +from dcs.planes import AJS37, F_14A_135_GR, F_14A_135_GR_Early, F_14B, JF_17 from dcs.point import MovingPoint, PointAction from dcs.unitgroup import FlyingGroup @@ -127,5 +127,9 @@ class PydcsWaypointBuilder: for i, t in enumerate(targets): if self.group.units[0].unit_type == JF_17 and i < 4: self.group.add_nav_target_point(t.position, "PP" + str(i + 1)) - if self.group.units[0].unit_type == F_14B and i == 0: + if ( + self.group.units[0].unit_type + in [F_14A_135_GR, F_14A_135_GR_Early, F_14B] + and i == 0 + ): self.group.add_nav_target_point(t.position, "ST") diff --git a/requirements.txt b/requirements.txt index 71446d6c..08787b36 100644 --- a/requirements.txt +++ b/requirements.txt @@ -36,7 +36,7 @@ pre-commit==3.5.0 pydantic==2.5.2 pydantic-settings==2.1.0 pydantic_core==2.14.5 -pydcs @ git+https://github.com/dcs-liberation/dcs@c1515358d8d1e8a5546bb2c9770e623df67a5144 +pydcs @ git+https://github.com/dcs-liberation/dcs@046ed928de5d4aae1652251b87e46517ab334f6e pyinstaller==6.0.0 pyinstaller-hooks-contrib==2023.6 pyproj==3.6.1 diff --git a/resources/customized_payloads/F-14A-135-GR-Early.lua b/resources/customized_payloads/F-14A-135-GR-Early.lua new file mode 100644 index 00000000..304ba756 --- /dev/null +++ b/resources/customized_payloads/F-14A-135-GR-Early.lua @@ -0,0 +1,344 @@ +local unitPayloads = { + ["name"] = "F-14A", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{SHOULDER AIM_54C_Mk47 L}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{SHOULDER AIM_54C_Mk47 R}", + ["num"] = 9, + }, + [5] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{AIM_54C_Mk47}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{AIM_54C_Mk47}", + ["num"] = 4, + }, + [9] = { + ["CLSID"] = "{AIM_54C_Mk47}", + ["num"] = 6, + }, + [10] = { + ["CLSID"] = "{AIM_54C_Mk47}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 10, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{F14-LANTIRN-TP}", + ["num"] = 9, + }, + [4] = { + ["CLSID"] = "{PHXBRU3242_2*LAU10 LS}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{BRU-32 MK-82}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{BRU-32 MK-82}", + ["num"] = 4, + }, + [9] = { + ["CLSID"] = "{BRU-32 MK-82}", + ["num"] = 6, + }, + [10] = { + ["CLSID"] = "{BRU-32 MK-82}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 10, + }, + }, + [3] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{F14-LANTIRN-TP}", + ["num"] = 9, + }, + [4] = { + ["CLSID"] = "{SHOULDER AIM-7MH}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{BRU-32 GBU-16}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{BRU-32 GBU-16}", + ["num"] = 4, + }, + [9] = { + ["CLSID"] = "{BRU-32 GBU-16}", + ["num"] = 6, + }, + [10] = { + ["CLSID"] = "{BRU-32 GBU-16}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 10, + }, + }, + [4] = { + ["name"] = "BAI", + ["pylons"] = { + [1] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{F14-LANTIRN-TP}", + ["num"] = 9, + }, + [4] = { + ["CLSID"] = "{PHXBRU3242_2*LAU10 LS}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{BRU-32 MK-82}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{BRU-32 MK-82}", + ["num"] = 4, + }, + [9] = { + ["CLSID"] = "{BRU-32 MK-20}", + ["num"] = 6, + }, + [10] = { + ["CLSID"] = "{BRU-32 MK-20}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 10, + }, + }, + [5] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{F14-LANTIRN-TP}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 10, + }, + [3] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 1, + }, + [4] = { + ["CLSID"] = "{PHXBRU3242_2*LAU10 LS}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{BRU-32 GBU-16}", + ["num"] = 7, + }, + [6] = { + ["CLSID"] = "{BRU-32 GBU-16}", + ["num"] = 4, + }, + [7] = { + ["CLSID"] = "{BRU3242_ADM141}", + ["num"] = 6, + }, + [8] = { + ["CLSID"] = "{BRU3242_ADM141}", + ["num"] = 5, + }, + [9] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 3, + }, + [10] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 8, + }, + }, + ["tasks"] = { + [1] = 10, + }, + }, + [6] = { + ["name"] = "Liberation DEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{SHOULDER AIM_54C_Mk47 L}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{SHOULDER AIM_54C_Mk47 R}", + ["num"] = 9, + }, + [5] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{MAK79_MK82 4}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{MAK79_MK82 3R}", + ["num"] = 6, + }, + [9] = { + ["CLSID"] = "{MAK79_MK82 3L}", + ["num"] = 5, + }, + [10] = { + ["CLSID"] = "{MAK79_MK82 4}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [7] = { + ["displayName"] = "Liberation SEAD", + ["name"] = "Liberation SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{SHOULDER AIM_54C_Mk47 L}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{SHOULDER AIM_54C_Mk47 R}", + ["num"] = 9, + }, + [5] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{BRU3242_ADM141}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{BRU3242_ADM141}", + ["num"] = 6, + }, + [9] = { + ["CLSID"] = "{BRU3242_ADM141}", + ["num"] = 5, + }, + [10] = { + ["CLSID"] = "{BRU3242_ADM141}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + }, + ["unitType"] = "F-14A-135-GR-Early", +} +return unitPayloads diff --git a/resources/factions/NATO_Desert_Storm.yaml b/resources/factions/NATO_Desert_Storm.yaml index a9d4de32..8939939a 100644 --- a/resources/factions/NATO_Desert_Storm.yaml +++ b/resources/factions/NATO_Desert_Storm.yaml @@ -14,6 +14,7 @@ aircrafts: - C-130 - C-130J-30 Super Hercules - F-117A Nighthawk + - F-14A Tomcat (Block 135-GR Early) - F-14A Tomcat (Block 135-GR Late) - F-14B Tomcat - F-15C Eagle diff --git a/resources/factions/NATO_OIF.yaml b/resources/factions/NATO_OIF.yaml index 851d3409..71b4d77e 100644 --- a/resources/factions/NATO_OIF.yaml +++ b/resources/factions/NATO_OIF.yaml @@ -15,6 +15,7 @@ aircrafts: - C-130 - C-130J-30 Super Hercules - F-117A Nighthawk + - F-14A Tomcat (Block 135-GR Early) - F-14A Tomcat (Block 135-GR Late) - F-14B Tomcat - F-15C Eagle diff --git a/resources/factions/bluefor_coldwar.yaml b/resources/factions/bluefor_coldwar.yaml index ac41b765..97eb6b6a 100644 --- a/resources/factions/bluefor_coldwar.yaml +++ b/resources/factions/bluefor_coldwar.yaml @@ -10,6 +10,7 @@ aircrafts: - B-52H Stratofortress - C-130 - C-130J-30 Super Hercules + - F-14A Tomcat (Block 135-GR Early) - F-14A Tomcat (Block 135-GR Late) - F-14B Tomcat - F-4E-45MC Phantom II diff --git a/resources/factions/blufor_late_coldwar.yaml b/resources/factions/blufor_late_coldwar.yaml index 4588266e..3b8b75b9 100644 --- a/resources/factions/blufor_late_coldwar.yaml +++ b/resources/factions/blufor_late_coldwar.yaml @@ -17,6 +17,7 @@ aircrafts: - C-47 Dakota - CH-47D - CH-53E + - F-14A Tomcat (Block 135-GR Early) - F-14A Tomcat (Block 135-GR Late) - F-14B Tomcat - F-15C Eagle diff --git a/resources/factions/iran_1988.yaml b/resources/factions/iran_1988.yaml index 29557397..c9382cb6 100644 --- a/resources/factions/iran_1988.yaml +++ b/resources/factions/iran_1988.yaml @@ -7,6 +7,7 @@ locales: - fa_IR aircrafts: - AH-1J SeaCobra + - F-14A Tomcat (Block 135-GR Early) - F-14A Tomcat (Block 135-GR Late) - F-4E-45MC Phantom II - F-5E Tiger II diff --git a/resources/factions/iran_2015.yaml b/resources/factions/iran_2015.yaml index eb1d4577..faf0c67f 100644 --- a/resources/factions/iran_2015.yaml +++ b/resources/factions/iran_2015.yaml @@ -6,6 +6,7 @@ description:

Iranian 2010s faction

locales: - fa_IR aircrafts: + - F-14A Tomcat (Block 135-GR Early) - F-14A Tomcat (Block 135-GR Late) - F-4E-45MC Phantom II - F-5E Tiger II diff --git a/resources/factions/usa_1970.yaml b/resources/factions/usa_1970.yaml index 57850bf8..4b969ef8 100644 --- a/resources/factions/usa_1970.yaml +++ b/resources/factions/usa_1970.yaml @@ -6,6 +6,7 @@ description:

US military during the Vietnam War from 1965 to 1975

locales: - en_US aircrafts: + - F-14A Tomcat (Block 135-GR Early) - F-14A Tomcat (Block 135-GR Late) - F-4C Phantom II - F-4B Phantom II diff --git a/resources/factions/usa_1975.yaml b/resources/factions/usa_1975.yaml index 601bdc31..7151d2a2 100644 --- a/resources/factions/usa_1975.yaml +++ b/resources/factions/usa_1975.yaml @@ -10,6 +10,7 @@ aircrafts: - C-130 - CH-47D - CH-53E + - F-14A Tomcat (Block 135-GR Early) - F-14A Tomcat (Block 135-GR Late) - F-4E-45MC Phantom II - F-4B Phantom II diff --git a/resources/factions/usa_1990.yaml b/resources/factions/usa_1990.yaml index 44ed46ab..19ab7c7e 100644 --- a/resources/factions/usa_1990.yaml +++ b/resources/factions/usa_1990.yaml @@ -16,6 +16,7 @@ aircrafts: - CH-47D - CH-53E - F-117A Nighthawk + - F-14A Tomcat (Block 135-GR Early) - F-14A Tomcat (Block 135-GR Late) - F-14B Tomcat - F-15C Eagle diff --git a/resources/factions/usn_1985.yaml b/resources/factions/usn_1985.yaml index cbb4a78a..f20548fd 100644 --- a/resources/factions/usn_1985.yaml +++ b/resources/factions/usn_1985.yaml @@ -8,6 +8,7 @@ locales: aircrafts: - AH-1W SuperCobra - A-4E Skyhawk + - F-14A Tomcat (Block 135-GR Early) - F-14A Tomcat (Block 135-GR Late) - F-14B Tomcat - F-4B Phantom II diff --git a/resources/ui/units/aircrafts/banners/F-14A-135-GR-Early.jpg b/resources/ui/units/aircrafts/banners/F-14A-135-GR-Early.jpg new file mode 100644 index 00000000..3dc949bb Binary files /dev/null and b/resources/ui/units/aircrafts/banners/F-14A-135-GR-Early.jpg differ diff --git a/resources/ui/units/aircrafts/icons/F-14A-135-GR-Early_24.jpg b/resources/ui/units/aircrafts/icons/F-14A-135-GR-Early_24.jpg new file mode 100644 index 00000000..6ff978cb Binary files /dev/null and b/resources/ui/units/aircrafts/icons/F-14A-135-GR-Early_24.jpg differ diff --git a/resources/units/aircraft/F-14A-135-GR-Early.yaml b/resources/units/aircraft/F-14A-135-GR-Early.yaml new file mode 100644 index 00000000..f37f9bdb --- /dev/null +++ b/resources/units/aircraft/F-14A-135-GR-Early.yaml @@ -0,0 +1,62 @@ +carrier_capable: true +description: + "The Grumman F-14 Tomcat is a two-crew, variable wing-geometry, maritime\ + \ air superiority fighter that served with the US Navy for 32 years and continues\ + \ to serve with the IRIAF in Iran. The F-14 was the US Navy's frontline fighter\ + \ from the 1970s to the mid-2000s. Over the course of its long service it also became\ + \ one of the US Navy\u2019s premier precision ground-attack platform and its lone\ + \ airborne reconnaissance asset.\n\nNoteworthy features of the Tomcat are its swing-wing\ + \ configuration, two-man crew, and the powerful AN/AWG-9 Weapons Control System\ + \ (WCS) and radar. The AWG-9 allows employment of the long-range AIM-54 Phoenix\ + \ air-to-air missile, and the LANTIRN targeting pod allows precision ground strikes\ + \ using laser-guided bombs. The F-14 Tomcat was present in several historic events\ + \ that include the two Gulf of Sidra incidents, Operations Desert Storm Iraqi Freedom,\ + \ the Yugoslavian conflict, and Operation Enduring Freedom over Afghanistan. It\ + \ was also immortalized in the iconic motion picture, Top Gun, and starred in several\ + \ other feature films including The Final Countdown, Executive Decision, and others.\n\ + \nThe Tomcat was also played a vital role in the Iran-Iraq war of the 1980s, where\ + \ is flew for the Islamic Republic of Iran Air Force." +introduced: 1984 +manufacturer: Grumman +origin: USA +price: 22 +role: Carrier-based Air-Superiority Fighter/Fighter Bomber +max_range: 350 +variants: + F-14A Tomcat (Block 135-GR Early): {} +radios: + intra_flight: AN/ARC-182 + inter_flight: AN/ARC-159 + channels: + type: common + namer: tomcat + intra_flight_radio_index: 2 + inter_flight_radio_index: 1 +default_overrides: + INSAlignmentStored: true +# ALE39Loadout: 0 +# IlsChannel: 1 +# KY28Key: 1 +# LGB1: 8 +# LGB10: 8 +# LGB100: 6 +# LGB1000: 1 +# M61BURST: 0 +# TacanBand: 0 +# TacanChannel: 0 +# UseLAU138: true +tasks: + BAI: 630 + BARCAP: 520 + CAS: 630 + DEAD: 240 + Escort: 520 + Fighter sweep: 520 + Intercept: 520 + OCA/Aircraft: 630 + OCA/Runway: 550 + SEAD: 90 + SEAD Escort: 90 + Strike: 550 + TARCAP: 520 +hit_points: 20