diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index 6daedce3..80b3fd60 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -31,7 +31,7 @@ body: If the bug was found in a development build, select "Development build" and provide a link to the build in the field below. options: - - 11.1.1 + - 14.0.0 - Development build - type: textarea attributes: diff --git a/.github/ISSUE_TEMPLATE/new-game-bug.yml b/.github/ISSUE_TEMPLATE/new-game-bug.yml index 5d146870..3aeab4a6 100644 --- a/.github/ISSUE_TEMPLATE/new-game-bug.yml +++ b/.github/ISSUE_TEMPLATE/new-game-bug.yml @@ -39,7 +39,7 @@ body: If the bug was found in a development build, select "Development build" and provide a link to the build in the field below. options: - - 11.1.1 + - 14.0.0 - Development build - type: textarea attributes: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c3bbddad..c99946c5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,7 +33,7 @@ jobs: with: release: true - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@v4 with: name: dcs_liberation path: dist/ diff --git a/changelog.md b/changelog.md index 4cb28fb9..129e8c0a 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,32 @@ +# 14.0.0 + +Saves from 13.x are not compatible with 14.0.0. + +## Features/Improvements + +* **[Engine]** Support for DCS 2.9.13.6818. + +## Fixes + +* **[UI]** Air Wing and Transfers buttons disabled when no game is loaded as pressing them without a game loaded resulted in a crash. + +# 13.0.0 + +Saves from 12.x are not compatible with 13.0.0. + +## Features/Improvements + +* **[Engine]** Support for DCS 2.9.12.5536. +* **[Data]** Support for CH-47 Chinook. + +## Fixes + +* **[Data]** Added/updated CBU weapons data. +* **[Data]** Added Strike mission type for KA-50 (all playable variants). +* **[Mission Generation]** Fixed crash when using factions that have Eastern callsign conventions. +* **[Mission Generation]** Fixed issues when spawning on carriers and FARPs in multiplayer sessions. + + # 12.0.0 Saves from 11.x are not compatible with 12.0.0. diff --git a/client/package-lock.json b/client/package-lock.json index 34747736..3f39c7f9 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -18,7 +18,7 @@ "@types/react": "^18.0.21", "@types/react-dom": "^18.0.6", "@types/react-redux": "^7.1.24", - "axios": "^1.7.4", + "axios": "^1.8.3", "electron-window-state": "^5.0.3", "esri-leaflet": "^3.0.8", "leaflet": "^1.9.2", @@ -6186,9 +6186,10 @@ } }, "node_modules/axios": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", - "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.3.tgz", + "integrity": "sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A==", + "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -25956,9 +25957,9 @@ "dev": true }, "axios": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", - "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.3.tgz", + "integrity": "sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A==", "requires": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", diff --git a/client/package.json b/client/package.json index 05cb9bdc..355a3aa4 100644 --- a/client/package.json +++ b/client/package.json @@ -15,7 +15,7 @@ "@types/react": "^18.0.21", "@types/react-dom": "^18.0.6", "@types/react-redux": "^7.1.24", - "axios": "^1.7.4", + "axios": "^1.8.3", "electron-window-state": "^5.0.3", "esri-leaflet": "^3.0.8", "leaflet": "^1.9.2", diff --git a/docs/conf.py b/docs/conf.py index 8c3175e0..0ac951e8 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -7,9 +7,9 @@ # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information project = "DCS Liberation" -copyright = "2024, DCS Liberation Team" +copyright = "2025, DCS Liberation Team" author = "DCS Liberation Team" -release = "12.0.0" +release = "14.0.0" # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration diff --git a/game/callsigns/callsigngenerator.py b/game/callsigns/callsigngenerator.py index caa2fac9..4429bdae 100644 --- a/game/callsigns/callsigngenerator.py +++ b/game/callsigns/callsigngenerator.py @@ -230,13 +230,18 @@ class EasternFlightCallsignGenerator: class FlightCallsignGenerator: def __init__(self, country: str): + self._use_western_callsigns = countries_by_name[country]().use_western_callsigns self._generators: dict[ bool, WesternFlightCallsignGenerator | EasternFlightCallsignGenerator - ] = { - True: WesternFlightCallsignGenerator(country), - False: EasternFlightCallsignGenerator(), - } - self._use_western_callsigns = countries_by_name[country]().use_western_callsigns + ] = {} + if self._use_western_callsigns: + self._generators[self._use_western_callsigns] = ( + WesternFlightCallsignGenerator(country) + ) + else: + self._generators[self._use_western_callsigns] = ( + EasternFlightCallsignGenerator() + ) def reset(self) -> None: self._generators[self._use_western_callsigns].reset() diff --git a/game/data/doctrine.py b/game/data/doctrine.py index ba063d12..cfa95cbb 100644 --- a/game/data/doctrine.py +++ b/game/data/doctrine.py @@ -117,8 +117,6 @@ class Cap: @dataclass(frozen=True) class Tactics: - #: Aircraft use countermeasures (chaff, flares) - use_countermeasures: bool #: Air-to-air missile attack range options air_to_air_missile_attack_range: Optional[OptAAMissileAttackRange.Values] @@ -129,7 +127,6 @@ class Tactics: @staticmethod def from_dict(data: dict[str, Any]) -> Tactics: return Tactics( - use_countermeasures=data.get("use_countermeasures", True), air_to_air_missile_attack_range=None, air_defence_evades_anti_radiation_missiles=data.get( "air_defence_evades_anti_radiation_missiles", False diff --git a/game/factions/faction.py b/game/factions/faction.py index 49a44dc3..95baeb23 100644 --- a/game/factions/faction.py +++ b/game/factions/faction.py @@ -123,6 +123,9 @@ class Faction: #: weapons groups to their introduction years. weapons_introduction_year_overrides: Dict[str, int] = field(default_factory=dict) + #: Set to True if the faction has access to countermeasures (chaff and flares). + countermeasures_available: bool = True + def has_access_to_dcs_type(self, unit_type: Type[DcsUnitType]) -> bool: # Vehicle and Ship Units if any(unit_type == u.dcs_unit_type for u in self.accessible_units): @@ -271,6 +274,8 @@ class Faction: "weapons_introduction_year_overrides", {} ) + faction.countermeasures_available = json.get("countermeasures_available", True) + return faction @property diff --git a/game/version.py b/game/version.py index c100d9bb..67de4612 100644 --- a/game/version.py +++ b/game/version.py @@ -1,7 +1,7 @@ from pathlib import Path -MAJOR_VERSION = 12 +MAJOR_VERSION = 14 MINOR_VERSION = 0 MICRO_VERSION = 0 VERSION_NUMBER = ".".join(str(v) for v in (MAJOR_VERSION, MINOR_VERSION, MICRO_VERSION)) diff --git a/qt_ui/windows/QLiberationWindow.py b/qt_ui/windows/QLiberationWindow.py index d6b16744..de57dcd8 100644 --- a/qt_ui/windows/QLiberationWindow.py +++ b/qt_ui/windows/QLiberationWindow.py @@ -242,6 +242,8 @@ class QLiberationWindow(QMainWindow): self.openSettingsAction.setVisible(enabled) self.openStatsAction.setVisible(enabled) self.openNotesAction.setVisible(enabled) + self.openAirWingAction.setVisible(enabled) + self.openTransfersAction.setVisible(enabled) # Also Disable SaveAction to prevent Keyboard Shortcut self.saveGameAction.setEnabled(enabled) diff --git a/requirements.txt b/requirements.txt index 5b0bf6ce..81d6717e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,7 +12,7 @@ coverage==7.3.2 distlib==0.3.7 exceptiongroup==1.2.0 Faker==20.1.0 -fastapi==0.109.1 +fastapi==0.115.8 filelock==3.13.1 future==0.18.3 h11==0.14.0 @@ -20,7 +20,7 @@ httptools==0.6.1 identify==2.5.32 idna==3.7 iniconfig==2.0.0 -Jinja2==3.1.4 +Jinja2==3.1.6 MarkupSafe==2.1.3 mypy==1.7.1 mypy-extensions==1.0.0 @@ -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@2eddd456dd23effc9f8c254b967b82a8e8c3c790 +pydcs @ git+https://github.com/dcs-liberation/dcs@d1c8e9557aa1113908f9705fbe084e7cf08d6000 pyinstaller==5.13.1 pyinstaller-hooks-contrib==2023.6 pyproj==3.6.1 @@ -54,7 +54,7 @@ shapely==2.0.2 shiboken6==6.4.1 six==1.16.0 sniffio==1.3.0 -starlette==0.35.1 +starlette==0.45.3 tabulate==0.9.0 tomli==2.0.1 types-Jinja2==2.11.9 @@ -64,6 +64,6 @@ types-PyYAML==6.0.12.12 types-tabulate==0.9.0.3 typing_extensions==4.8.0 uvicorn==0.24.0.post1 -virtualenv==20.24.7 +virtualenv==20.26.6 watchfiles==0.21.0 websockets==12.0 diff --git a/resources/customized_payloads/CH-47Fbl1.lua b/resources/customized_payloads/CH-47Fbl1.lua new file mode 100644 index 00000000..6bfa3f1d --- /dev/null +++ b/resources/customized_payloads/CH-47Fbl1.lua @@ -0,0 +1,25 @@ +local unitPayloads = { + ["name"] = "CH-47Fbl1", + ["payloads"] = { + [1] = { + ["name"] = "Liberation Air Assault", + ["pylons"] = { + [1] = { + ["CLSID"] = "{CH47_STBD_M60D}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{CH47_PORT_M60D}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 35, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "CH-47Fbl1", +} +return unitPayloads diff --git a/resources/customized_payloads/Ka-50.lua b/resources/customized_payloads/Ka-50.lua index 69c3a192..5930215d 100644 --- a/resources/customized_payloads/Ka-50.lua +++ b/resources/customized_payloads/Ka-50.lua @@ -97,7 +97,32 @@ local unitPayloads = { }, }, ["tasks"] = { - [1] = 31, + [1] = 29, + }, + }, + [5] = { + ["displayName"] = "Liberation Strike", + ["name"] = "Liberation Strike", + ["pylons"] = { + [1] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 32, }, }, }, diff --git a/resources/customized_payloads/Ka-50_3.lua b/resources/customized_payloads/Ka-50_3.lua index 90ea4104..ff2bf3e9 100644 --- a/resources/customized_payloads/Ka-50_3.lua +++ b/resources/customized_payloads/Ka-50_3.lua @@ -129,7 +129,32 @@ local unitPayloads = { }, }, ["tasks"] = { - [1] = 31, + [1] = 29, + }, + }, + [5] = { + ["displayName"] = "Liberation Strike", + ["name"] = "Liberation Strike", + ["pylons"] = { + [1] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 32, }, }, }, diff --git a/resources/doctrines/coldwar.yaml b/resources/doctrines/coldwar.yaml index 4f072a9e..aa0f6b6a 100644 --- a/resources/doctrines/coldwar.yaml +++ b/resources/doctrines/coldwar.yaml @@ -32,6 +32,5 @@ helicopter: rendezvous_altitude_ft_agl: 1500 air_assault_nav_altitude_ft_agl: 1500 tactics: - use_countermeasures: true air_defence_evades_anti_radiation_missiles: false air_to_air_missile_attack_range: ~ diff --git a/resources/doctrines/modern.yaml b/resources/doctrines/modern.yaml index aca5233c..0772601f 100644 --- a/resources/doctrines/modern.yaml +++ b/resources/doctrines/modern.yaml @@ -32,6 +32,5 @@ helicopter: rendezvous_altitude_ft_agl: 1500 air_assault_nav_altitude_ft_agl: 1500 tactics: - use_countermeasures: true air_defence_evades_anti_radiation_missiles: false air_to_air_missile_attack_range: ~ \ No newline at end of file diff --git a/resources/doctrines/ww2.yaml b/resources/doctrines/ww2.yaml index de145064..a6075e61 100644 --- a/resources/doctrines/ww2.yaml +++ b/resources/doctrines/ww2.yaml @@ -31,6 +31,5 @@ helicopter: rendezvous_altitude_ft_agl: 1500 air_assault_nav_altitude_ft_agl: 1500 tactics: - use_countermeasures: true air_defence_evades_anti_radiation_missiles: false air_to_air_missile_attack_range: ~ \ No newline at end of file diff --git a/resources/factions/NATO_Desert_Storm.yaml b/resources/factions/NATO_Desert_Storm.yaml index 2059b1f7..a9d4de32 100644 --- a/resources/factions/NATO_Desert_Storm.yaml +++ b/resources/factions/NATO_Desert_Storm.yaml @@ -30,6 +30,7 @@ aircrafts: - SA 342M Gazelle - SA 342M Gazelle Mistral - Tornado IDS + - Tornado GR4 - UH-1H Iroquois awacs: - E-2C Hawkeye diff --git a/resources/factions/bluefor_modern.yaml b/resources/factions/bluefor_modern.yaml index 067a50a1..d46e4857 100644 --- a/resources/factions/bluefor_modern.yaml +++ b/resources/factions/bluefor_modern.yaml @@ -19,6 +19,7 @@ aircrafts: - C-130J-30 Super Hercules - C-17A - CH-47D + - CH-47F Block I - CH-53E - F-117A Nighthawk - F-14B Tomcat diff --git a/resources/factions/usa_2005.yaml b/resources/factions/usa_2005.yaml index d8184167..7d853819 100644 --- a/resources/factions/usa_2005.yaml +++ b/resources/factions/usa_2005.yaml @@ -17,6 +17,7 @@ aircrafts: - C-130J-30 Super Hercules - C-17A - CH-47D + - CH-47F Block I - CH-53E - F-117A Nighthawk - F-14B Tomcat diff --git a/resources/squadrons/m2000c/FAP_EscuadronAereo_412_Halcones.yaml b/resources/squadrons/m2000c/FAP_EscuadronAereo_412_Halcones.yaml index 15bc8c7e..216b5db6 100644 --- a/resources/squadrons/m2000c/FAP_EscuadronAereo_412_Halcones.yaml +++ b/resources/squadrons/m2000c/FAP_EscuadronAereo_412_Halcones.yaml @@ -1,6 +1,7 @@ --- name: Escuadrón Aéreo 412 nickname: Halcones +female_pilot_percentage: 0 country: Peru role: Fighter aircraft: Mirage 2000C diff --git a/resources/ui/templates/mission_start_EN.j2 b/resources/ui/templates/mission_start_EN.j2 index 61e05fab..136d3291 100644 --- a/resources/ui/templates/mission_start_EN.j2 +++ b/resources/ui/templates/mission_start_EN.j2 @@ -13,7 +13,7 @@
- To avoid delays entirely, use the "Never delay player flights" option in the + To avoid delays entirely, use the "Player flights ignore TOT and spawn immediately" option in the mission generation settings. Note that this will not adjust the timing of your mission; this option only allows you to wait in the cockpit. diff --git a/resources/ui/units/aircrafts/banners/CH-47Fbl1.jpg b/resources/ui/units/aircrafts/banners/CH-47Fbl1.jpg new file mode 100644 index 00000000..bb82bef7 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/CH-47Fbl1.jpg differ diff --git a/resources/ui/units/aircrafts/icons/CH-47Fbl1_24.jpg b/resources/ui/units/aircrafts/icons/CH-47Fbl1_24.jpg new file mode 100644 index 00000000..b520b511 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/CH-47Fbl1_24.jpg differ diff --git a/resources/units/aircraft/CH-47Fbl1.yaml b/resources/units/aircraft/CH-47Fbl1.yaml new file mode 100644 index 00000000..a3ab4548 --- /dev/null +++ b/resources/units/aircraft/CH-47Fbl1.yaml @@ -0,0 +1,32 @@ +class: Helicopter +carrier_capable: true +description: # from https://en.wikipedia.org/wiki/Boeing_CH-47_Chinook + In 2001, the CH-47F, an upgraded CH-47D, made its maiden flight. The first production model rolled out at Boeing's + facility in Ridley Park, Pennsylvania, and first flew on 23 October 2006. Upgrades included 4,868-shaft-horsepower + (3,630 kW) Honeywell engines and airframe with better integrated construction for lower maintenance requirements. + The milled construction reduces vibration, as well as inspection and repair needs, and eliminates flexing points to + increase service life. The CH-47F can fly at speeds of over 175 mph (282 km/h) with a payload of more than + 21,000 lb (9,500 kg). New avionics include a Rockwell Collins Common Avionics Architecture System (CAAS) cockpit, + and BAE Systems' Digital Advanced Flight Control System (DAFCS). AgustaWestland assembles the CH-47F under license, + known as the Chinook ICH-47F, for several customers. Boeing delivered 48 CH-47Fs to the U.S. Army through August 2008; + at that time Boeing announced a $4.8 billion (~$6.67 billion in 2023) contract with the Army for 191 Chinooks. +lha_capable: true +introduced: 2006 +cabin_size: 24 # It should have 33 but we do not want so much for CTLD to be possible +can_carry_crates: true +manufacturer: Boeing +origin: USA +price: 8 +role: Transport +variants: + CH-47F Block I: {} +radios: + intra_flight: AN/ARC-186(V) FM + inter_flight: AN/ARC-186(V) FM + channels: + type: common + intra_flight_radio_index: 1 + inter_flight_radio_index: 1 +tasks: + Air Assault: 120 + Transport: 110 diff --git a/resources/units/aircraft/Ka-50.yaml b/resources/units/aircraft/Ka-50.yaml index 25fd993a..be78356c 100644 --- a/resources/units/aircraft/Ka-50.yaml +++ b/resources/units/aircraft/Ka-50.yaml @@ -28,5 +28,6 @@ tasks: BAI: 430 CAS: 430 DEAD: 113 + Strike: 200 OCA/Aircraft: 430 hit_points: 15 diff --git a/resources/units/aircraft/Ka-50_3.yaml b/resources/units/aircraft/Ka-50_3.yaml index 433ea6c3..d9508f3b 100644 --- a/resources/units/aircraft/Ka-50_3.yaml +++ b/resources/units/aircraft/Ka-50_3.yaml @@ -28,5 +28,6 @@ tasks: BAI: 440 CAS: 440 DEAD: 114 + Strike: 200 OCA/Aircraft: 440 hit_points: 15 diff --git a/resources/weapons/bombs/CBU-52B-2X.yaml b/resources/weapons/bombs/CBU-52B-2X.yaml new file mode 100644 index 00000000..fc5e9027 --- /dev/null +++ b/resources/weapons/bombs/CBU-52B-2X.yaml @@ -0,0 +1,6 @@ +name: 2xCBU-52B +year: 1972 +fallback: 2xMk 20 Rockeye +clsids: + - "{HB_F4E_CBU-52B_2x}" + - "{HB_F4E_CBU-52B_2x_SWA}" diff --git a/resources/weapons/bombs/CBU-52B-3X.yaml b/resources/weapons/bombs/CBU-52B-3X.yaml new file mode 100644 index 00000000..65ef2d0b --- /dev/null +++ b/resources/weapons/bombs/CBU-52B-3X.yaml @@ -0,0 +1,6 @@ +name: 3xCBU-52B +year: 1972 +fallback: 3xMk 20 Rockeye +clsids: + - "{HB_F4E_CBU-52B_MER_3x_Left}" + - "{HB_F4E_CBU-52B_MER_3x_Right}" diff --git a/resources/weapons/bombs/CBU-52B-6X.yaml b/resources/weapons/bombs/CBU-52B-6X.yaml new file mode 100644 index 00000000..073906c7 --- /dev/null +++ b/resources/weapons/bombs/CBU-52B-6X.yaml @@ -0,0 +1,5 @@ +name: 6xCBU-52B +year: 1972 +fallback: 6xMk 20 Rockeye +clsids: + - "{HB_F4E_CBU-52B_MER_6x}" \ No newline at end of file diff --git a/resources/weapons/bombs/CBU-52B.yaml b/resources/weapons/bombs/CBU-52B.yaml new file mode 100644 index 00000000..7ac302de --- /dev/null +++ b/resources/weapons/bombs/CBU-52B.yaml @@ -0,0 +1,6 @@ +name: CBU-52B +year: 1972 +fallback: Mk 20 Rockeye +clsids: + - "{CBU-52B}" + - "{HB_CBU-52B_SWA}" diff --git a/resources/weapons/bombs/CBU-87-2X.yaml b/resources/weapons/bombs/CBU-87-2X.yaml index 7bfc2840..74bae48e 100644 --- a/resources/weapons/bombs/CBU-87-2X.yaml +++ b/resources/weapons/bombs/CBU-87-2X.yaml @@ -1,6 +1,8 @@ name: 2xCBU-87 year: 1986 -fallback: 2xMk 82 +fallback: 2xCBU-52B clsids: - "{TER_9A_2L*CBU-87}" - "{TER_9A_2R*CBU-87}" + - "{HB_F4E_CBU-87_2x}" + - "{HB_F4E_CBU-87_2x_SWA}" \ No newline at end of file diff --git a/resources/weapons/bombs/CBU-87-3X.yaml b/resources/weapons/bombs/CBU-87-3X.yaml index 34fab5c3..65a79804 100644 --- a/resources/weapons/bombs/CBU-87-3X.yaml +++ b/resources/weapons/bombs/CBU-87-3X.yaml @@ -1,5 +1,9 @@ name: 3xCBU-87 year: 1986 -fallback: 3xMk 82 +fallback: 3xCBU-52B clsids: - "{TER_9A_3*CBU-87}" + - "{CFT_L_CBU_87_x_3}" + - "{CFT_R_CBU_87_x_3}" + - "{HB_F4E_CBU-87_MER_3x_Left}" + - "{HB_F4E_CBU-87_MER_3x_Right}" \ No newline at end of file diff --git a/resources/weapons/bombs/CBU-87-6X.yaml b/resources/weapons/bombs/CBU-87-6X.yaml new file mode 100644 index 00000000..13af2435 --- /dev/null +++ b/resources/weapons/bombs/CBU-87-6X.yaml @@ -0,0 +1,7 @@ +name: 6xCBU-87 +year: 1986 +fallback: 6xCBU-52B +clsids: + - "{CFT_L_CBU_87_x_6}" + - "{CFT_R_CBU_87_x_6}" + - "{HB_F4E_CBU-87_MER_4x}" \ No newline at end of file diff --git a/resources/weapons/bombs/CBU-87.yaml b/resources/weapons/bombs/CBU-87.yaml index 1f7257dc..a425fbd8 100644 --- a/resources/weapons/bombs/CBU-87.yaml +++ b/resources/weapons/bombs/CBU-87.yaml @@ -1,5 +1,6 @@ name: CBU-87 year: 1986 -fallback: Mk 82 +fallback: CBU-52B clsids: - "{CBU-87}" + - "{HB_CBU-87_SWA}" \ No newline at end of file diff --git a/resources/weapons/bombs/Mk-20-2X.yaml b/resources/weapons/bombs/Mk-20-2X.yaml new file mode 100644 index 00000000..e4c0694f --- /dev/null +++ b/resources/weapons/bombs/Mk-20-2X.yaml @@ -0,0 +1,10 @@ +name: 2xMk 20 Rockeye +year: 1968 +fallback: 2xMk 82 +clsids: + - "{BRU33_2X_ROCKEYE}" + - "{0B9ABA77-93B8-45FC-9C63-82AFB2CB50A4}" + - "{HB_F4E_ROCKEYE_2x}" + - "{BRU-42_2*MK-20_LEFT}" + - "{BRU-42_2*MK-20_RIGHT}" + - "{HB_F4E_ROCKEYE_2x_SWA}" \ No newline at end of file diff --git a/resources/weapons/bombs/Mk-20-3X.yaml b/resources/weapons/bombs/Mk-20-3X.yaml new file mode 100644 index 00000000..02e65664 --- /dev/null +++ b/resources/weapons/bombs/Mk-20-3X.yaml @@ -0,0 +1,8 @@ +name: 3xMk 20 Rockeye +year: 1968 +fallback: 3xMk 82 +clsids: + - "{B83CB620-5BBE-4BEA-910C-EB605A327EF9}" + - "{CFT_L_CBU_100_x_3}" + - "{CFT_R_CBU_100_x_3}" + - "{HB_F4E_ROCKEYE_3x}" \ No newline at end of file diff --git a/resources/weapons/bombs/Mk-20-6X.yaml b/resources/weapons/bombs/Mk-20-6X.yaml new file mode 100644 index 00000000..3ef018ac --- /dev/null +++ b/resources/weapons/bombs/Mk-20-6X.yaml @@ -0,0 +1,9 @@ +name: 6xMk 20 Rockeye +year: 1968 +fallback: 6xMk 82 +clsids: + - "{3C7CD675-7D39-41C5-8735-0F4F537818A8}" + - "{CFT_L_CBU_100_x_6}" + - "{CFT_R_CBU_100_x_6}" + - "{HB_F4E_ROCKEYE_6x}" + - "{E79759F7-C622-4AA4-B1EF-37639A34D924}" \ No newline at end of file diff --git a/resources/weapons/bombs/Mk-20.yaml b/resources/weapons/bombs/Mk-20.yaml new file mode 100644 index 00000000..40eea452 --- /dev/null +++ b/resources/weapons/bombs/Mk-20.yaml @@ -0,0 +1,6 @@ +name: Mk 20 Rockeye +year: 1968 +fallback: Mk 82 +clsids: + - "{HB_ROCKEYE_SWA}" + - "{ADD3FAE1-EBF6-4EF9-8EFC-B36B5DDF1E6B}" diff --git a/resources/weapons/bombs/Mk-82-2X.yaml b/resources/weapons/bombs/Mk-82-2X.yaml index 3a3d7ea7..3cf808db 100644 --- a/resources/weapons/bombs/Mk-82-2X.yaml +++ b/resources/weapons/bombs/Mk-82-2X.yaml @@ -16,3 +16,5 @@ clsids: - "{BRU42_2*MK82 LS}" - "{BRU3242_2*MK82 LS}" - "{PHXBRU3242_2*MK82 LS}" + - "{HB_F4E_MK-82_2x_SWA}" + - "{HB_F4E_MK-82_2x}" diff --git a/resources/weapons/bombs/Mk-82-3X.yaml b/resources/weapons/bombs/Mk-82-3X.yaml index f9e691ba..4be44f1a 100644 --- a/resources/weapons/bombs/Mk-82-3X.yaml +++ b/resources/weapons/bombs/Mk-82-3X.yaml @@ -2,3 +2,4 @@ name: 3xMk 82 fallback: 2xMk 82 clsids: - "{60CC734F-0AFA-4E2E-82B8-93B941AB11CF}" + - "{HB_F4E_MK-82_3x}" diff --git a/resources/weapons/bombs/Mk-82-6X.yaml b/resources/weapons/bombs/Mk-82-6X.yaml new file mode 100644 index 00000000..bc5a3f52 --- /dev/null +++ b/resources/weapons/bombs/Mk-82-6X.yaml @@ -0,0 +1,4 @@ +name: 6xMk 82 +fallback: Mk 82 +clsids: + - "{HB_F4E_MK-82_6x}" \ No newline at end of file diff --git a/resources/weapons/bombs/Mk-82.yaml b/resources/weapons/bombs/Mk-82.yaml index 70733a5b..6ab10dc4 100644 --- a/resources/weapons/bombs/Mk-82.yaml +++ b/resources/weapons/bombs/Mk-82.yaml @@ -9,3 +9,4 @@ clsids: - "{Mk_82SP}" - "{Mk_82YT}" - "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}" + - "{HB_MK-82_SWA}"