mirror of
https://github.com/dcs-liberation/dcs_liberation.git
synced 2025-11-10 14:22:26 +00:00
Merge branch 'develop' into dependabot/npm_and_yarn/client/multi-7d5e57b41f
This commit is contained in:
commit
6acd35d58e
2
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
2
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
@ -31,7 +31,7 @@ body:
|
|||||||
If the bug was found in a development build, select "Development build"
|
If the bug was found in a development build, select "Development build"
|
||||||
and provide a link to the build in the field below.
|
and provide a link to the build in the field below.
|
||||||
options:
|
options:
|
||||||
- 11.1.1
|
- 14.0.0
|
||||||
- Development build
|
- Development build
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
|
|||||||
2
.github/ISSUE_TEMPLATE/new-game-bug.yml
vendored
2
.github/ISSUE_TEMPLATE/new-game-bug.yml
vendored
@ -39,7 +39,7 @@ body:
|
|||||||
If the bug was found in a development build, select "Development build"
|
If the bug was found in a development build, select "Development build"
|
||||||
and provide a link to the build in the field below.
|
and provide a link to the build in the field below.
|
||||||
options:
|
options:
|
||||||
- 11.1.1
|
- 14.0.0
|
||||||
- Development build
|
- Development build
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
|
|||||||
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@ -33,7 +33,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
release: true
|
release: true
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v2
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: dcs_liberation
|
name: dcs_liberation
|
||||||
path: dist/
|
path: dist/
|
||||||
|
|||||||
29
changelog.md
29
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
|
# 12.0.0
|
||||||
|
|
||||||
Saves from 11.x are not compatible with 12.0.0.
|
Saves from 11.x are not compatible with 12.0.0.
|
||||||
|
|||||||
15
client/package-lock.json
generated
15
client/package-lock.json
generated
@ -18,7 +18,7 @@
|
|||||||
"@types/react": "^18.0.21",
|
"@types/react": "^18.0.21",
|
||||||
"@types/react-dom": "^18.0.6",
|
"@types/react-dom": "^18.0.6",
|
||||||
"@types/react-redux": "^7.1.24",
|
"@types/react-redux": "^7.1.24",
|
||||||
"axios": "^1.7.4",
|
"axios": "^1.8.3",
|
||||||
"electron-window-state": "^5.0.3",
|
"electron-window-state": "^5.0.3",
|
||||||
"esri-leaflet": "^3.0.8",
|
"esri-leaflet": "^3.0.8",
|
||||||
"leaflet": "^1.9.2",
|
"leaflet": "^1.9.2",
|
||||||
@ -6186,9 +6186,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/axios": {
|
"node_modules/axios": {
|
||||||
"version": "1.7.4",
|
"version": "1.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz",
|
"resolved": "https://registry.npmjs.org/axios/-/axios-1.8.3.tgz",
|
||||||
"integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==",
|
"integrity": "sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"follow-redirects": "^1.15.6",
|
"follow-redirects": "^1.15.6",
|
||||||
"form-data": "^4.0.0",
|
"form-data": "^4.0.0",
|
||||||
@ -25956,9 +25957,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"axios": {
|
"axios": {
|
||||||
"version": "1.7.4",
|
"version": "1.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz",
|
"resolved": "https://registry.npmjs.org/axios/-/axios-1.8.3.tgz",
|
||||||
"integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==",
|
"integrity": "sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"follow-redirects": "^1.15.6",
|
"follow-redirects": "^1.15.6",
|
||||||
"form-data": "^4.0.0",
|
"form-data": "^4.0.0",
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
"@types/react": "^18.0.21",
|
"@types/react": "^18.0.21",
|
||||||
"@types/react-dom": "^18.0.6",
|
"@types/react-dom": "^18.0.6",
|
||||||
"@types/react-redux": "^7.1.24",
|
"@types/react-redux": "^7.1.24",
|
||||||
"axios": "^1.7.4",
|
"axios": "^1.8.3",
|
||||||
"electron-window-state": "^5.0.3",
|
"electron-window-state": "^5.0.3",
|
||||||
"esri-leaflet": "^3.0.8",
|
"esri-leaflet": "^3.0.8",
|
||||||
"leaflet": "^1.9.2",
|
"leaflet": "^1.9.2",
|
||||||
|
|||||||
@ -7,9 +7,9 @@
|
|||||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
||||||
|
|
||||||
project = "DCS Liberation"
|
project = "DCS Liberation"
|
||||||
copyright = "2024, DCS Liberation Team"
|
copyright = "2025, DCS Liberation Team"
|
||||||
author = "DCS Liberation Team"
|
author = "DCS Liberation Team"
|
||||||
release = "12.0.0"
|
release = "14.0.0"
|
||||||
|
|
||||||
# -- General configuration ---------------------------------------------------
|
# -- General configuration ---------------------------------------------------
|
||||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
||||||
|
|||||||
@ -230,13 +230,18 @@ class EasternFlightCallsignGenerator:
|
|||||||
class FlightCallsignGenerator:
|
class FlightCallsignGenerator:
|
||||||
|
|
||||||
def __init__(self, country: str):
|
def __init__(self, country: str):
|
||||||
|
self._use_western_callsigns = countries_by_name[country]().use_western_callsigns
|
||||||
self._generators: dict[
|
self._generators: dict[
|
||||||
bool, WesternFlightCallsignGenerator | EasternFlightCallsignGenerator
|
bool, WesternFlightCallsignGenerator | EasternFlightCallsignGenerator
|
||||||
] = {
|
] = {}
|
||||||
True: WesternFlightCallsignGenerator(country),
|
if self._use_western_callsigns:
|
||||||
False: EasternFlightCallsignGenerator(),
|
self._generators[self._use_western_callsigns] = (
|
||||||
}
|
WesternFlightCallsignGenerator(country)
|
||||||
self._use_western_callsigns = countries_by_name[country]().use_western_callsigns
|
)
|
||||||
|
else:
|
||||||
|
self._generators[self._use_western_callsigns] = (
|
||||||
|
EasternFlightCallsignGenerator()
|
||||||
|
)
|
||||||
|
|
||||||
def reset(self) -> None:
|
def reset(self) -> None:
|
||||||
self._generators[self._use_western_callsigns].reset()
|
self._generators[self._use_western_callsigns].reset()
|
||||||
|
|||||||
@ -117,8 +117,6 @@ class Cap:
|
|||||||
|
|
||||||
@dataclass(frozen=True)
|
@dataclass(frozen=True)
|
||||||
class Tactics:
|
class Tactics:
|
||||||
#: Aircraft use countermeasures (chaff, flares)
|
|
||||||
use_countermeasures: bool
|
|
||||||
|
|
||||||
#: Air-to-air missile attack range options
|
#: Air-to-air missile attack range options
|
||||||
air_to_air_missile_attack_range: Optional[OptAAMissileAttackRange.Values]
|
air_to_air_missile_attack_range: Optional[OptAAMissileAttackRange.Values]
|
||||||
@ -129,7 +127,6 @@ class Tactics:
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def from_dict(data: dict[str, Any]) -> Tactics:
|
def from_dict(data: dict[str, Any]) -> Tactics:
|
||||||
return Tactics(
|
return Tactics(
|
||||||
use_countermeasures=data.get("use_countermeasures", True),
|
|
||||||
air_to_air_missile_attack_range=None,
|
air_to_air_missile_attack_range=None,
|
||||||
air_defence_evades_anti_radiation_missiles=data.get(
|
air_defence_evades_anti_radiation_missiles=data.get(
|
||||||
"air_defence_evades_anti_radiation_missiles", False
|
"air_defence_evades_anti_radiation_missiles", False
|
||||||
|
|||||||
@ -123,6 +123,9 @@ class Faction:
|
|||||||
#: weapons groups to their introduction years.
|
#: weapons groups to their introduction years.
|
||||||
weapons_introduction_year_overrides: Dict[str, int] = field(default_factory=dict)
|
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:
|
def has_access_to_dcs_type(self, unit_type: Type[DcsUnitType]) -> bool:
|
||||||
# Vehicle and Ship Units
|
# Vehicle and Ship Units
|
||||||
if any(unit_type == u.dcs_unit_type for u in self.accessible_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", {}
|
"weapons_introduction_year_overrides", {}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
faction.countermeasures_available = json.get("countermeasures_available", True)
|
||||||
|
|
||||||
return faction
|
return faction
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
MAJOR_VERSION = 12
|
MAJOR_VERSION = 14
|
||||||
MINOR_VERSION = 0
|
MINOR_VERSION = 0
|
||||||
MICRO_VERSION = 0
|
MICRO_VERSION = 0
|
||||||
VERSION_NUMBER = ".".join(str(v) for v in (MAJOR_VERSION, MINOR_VERSION, MICRO_VERSION))
|
VERSION_NUMBER = ".".join(str(v) for v in (MAJOR_VERSION, MINOR_VERSION, MICRO_VERSION))
|
||||||
|
|||||||
@ -242,6 +242,8 @@ class QLiberationWindow(QMainWindow):
|
|||||||
self.openSettingsAction.setVisible(enabled)
|
self.openSettingsAction.setVisible(enabled)
|
||||||
self.openStatsAction.setVisible(enabled)
|
self.openStatsAction.setVisible(enabled)
|
||||||
self.openNotesAction.setVisible(enabled)
|
self.openNotesAction.setVisible(enabled)
|
||||||
|
self.openAirWingAction.setVisible(enabled)
|
||||||
|
self.openTransfersAction.setVisible(enabled)
|
||||||
|
|
||||||
# Also Disable SaveAction to prevent Keyboard Shortcut
|
# Also Disable SaveAction to prevent Keyboard Shortcut
|
||||||
self.saveGameAction.setEnabled(enabled)
|
self.saveGameAction.setEnabled(enabled)
|
||||||
|
|||||||
@ -12,7 +12,7 @@ coverage==7.3.2
|
|||||||
distlib==0.3.7
|
distlib==0.3.7
|
||||||
exceptiongroup==1.2.0
|
exceptiongroup==1.2.0
|
||||||
Faker==20.1.0
|
Faker==20.1.0
|
||||||
fastapi==0.109.1
|
fastapi==0.115.8
|
||||||
filelock==3.13.1
|
filelock==3.13.1
|
||||||
future==0.18.3
|
future==0.18.3
|
||||||
h11==0.14.0
|
h11==0.14.0
|
||||||
@ -20,7 +20,7 @@ httptools==0.6.1
|
|||||||
identify==2.5.32
|
identify==2.5.32
|
||||||
idna==3.7
|
idna==3.7
|
||||||
iniconfig==2.0.0
|
iniconfig==2.0.0
|
||||||
Jinja2==3.1.4
|
Jinja2==3.1.6
|
||||||
MarkupSafe==2.1.3
|
MarkupSafe==2.1.3
|
||||||
mypy==1.7.1
|
mypy==1.7.1
|
||||||
mypy-extensions==1.0.0
|
mypy-extensions==1.0.0
|
||||||
@ -36,7 +36,7 @@ pre-commit==3.5.0
|
|||||||
pydantic==2.5.2
|
pydantic==2.5.2
|
||||||
pydantic-settings==2.1.0
|
pydantic-settings==2.1.0
|
||||||
pydantic_core==2.14.5
|
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==5.13.1
|
||||||
pyinstaller-hooks-contrib==2023.6
|
pyinstaller-hooks-contrib==2023.6
|
||||||
pyproj==3.6.1
|
pyproj==3.6.1
|
||||||
@ -54,7 +54,7 @@ shapely==2.0.2
|
|||||||
shiboken6==6.4.1
|
shiboken6==6.4.1
|
||||||
six==1.16.0
|
six==1.16.0
|
||||||
sniffio==1.3.0
|
sniffio==1.3.0
|
||||||
starlette==0.35.1
|
starlette==0.45.3
|
||||||
tabulate==0.9.0
|
tabulate==0.9.0
|
||||||
tomli==2.0.1
|
tomli==2.0.1
|
||||||
types-Jinja2==2.11.9
|
types-Jinja2==2.11.9
|
||||||
@ -64,6 +64,6 @@ types-PyYAML==6.0.12.12
|
|||||||
types-tabulate==0.9.0.3
|
types-tabulate==0.9.0.3
|
||||||
typing_extensions==4.8.0
|
typing_extensions==4.8.0
|
||||||
uvicorn==0.24.0.post1
|
uvicorn==0.24.0.post1
|
||||||
virtualenv==20.24.7
|
virtualenv==20.26.6
|
||||||
watchfiles==0.21.0
|
watchfiles==0.21.0
|
||||||
websockets==12.0
|
websockets==12.0
|
||||||
|
|||||||
25
resources/customized_payloads/CH-47Fbl1.lua
Normal file
25
resources/customized_payloads/CH-47Fbl1.lua
Normal file
@ -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
|
||||||
@ -97,7 +97,32 @@ local unitPayloads = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
["tasks"] = {
|
["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,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@ -129,7 +129,32 @@ local unitPayloads = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
["tasks"] = {
|
["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,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@ -32,6 +32,5 @@ helicopter:
|
|||||||
rendezvous_altitude_ft_agl: 1500
|
rendezvous_altitude_ft_agl: 1500
|
||||||
air_assault_nav_altitude_ft_agl: 1500
|
air_assault_nav_altitude_ft_agl: 1500
|
||||||
tactics:
|
tactics:
|
||||||
use_countermeasures: true
|
|
||||||
air_defence_evades_anti_radiation_missiles: false
|
air_defence_evades_anti_radiation_missiles: false
|
||||||
air_to_air_missile_attack_range: ~
|
air_to_air_missile_attack_range: ~
|
||||||
|
|||||||
@ -32,6 +32,5 @@ helicopter:
|
|||||||
rendezvous_altitude_ft_agl: 1500
|
rendezvous_altitude_ft_agl: 1500
|
||||||
air_assault_nav_altitude_ft_agl: 1500
|
air_assault_nav_altitude_ft_agl: 1500
|
||||||
tactics:
|
tactics:
|
||||||
use_countermeasures: true
|
|
||||||
air_defence_evades_anti_radiation_missiles: false
|
air_defence_evades_anti_radiation_missiles: false
|
||||||
air_to_air_missile_attack_range: ~
|
air_to_air_missile_attack_range: ~
|
||||||
@ -31,6 +31,5 @@ helicopter:
|
|||||||
rendezvous_altitude_ft_agl: 1500
|
rendezvous_altitude_ft_agl: 1500
|
||||||
air_assault_nav_altitude_ft_agl: 1500
|
air_assault_nav_altitude_ft_agl: 1500
|
||||||
tactics:
|
tactics:
|
||||||
use_countermeasures: true
|
|
||||||
air_defence_evades_anti_radiation_missiles: false
|
air_defence_evades_anti_radiation_missiles: false
|
||||||
air_to_air_missile_attack_range: ~
|
air_to_air_missile_attack_range: ~
|
||||||
@ -30,6 +30,7 @@ aircrafts:
|
|||||||
- SA 342M Gazelle
|
- SA 342M Gazelle
|
||||||
- SA 342M Gazelle Mistral
|
- SA 342M Gazelle Mistral
|
||||||
- Tornado IDS
|
- Tornado IDS
|
||||||
|
- Tornado GR4
|
||||||
- UH-1H Iroquois
|
- UH-1H Iroquois
|
||||||
awacs:
|
awacs:
|
||||||
- E-2C Hawkeye
|
- E-2C Hawkeye
|
||||||
|
|||||||
@ -19,6 +19,7 @@ aircrafts:
|
|||||||
- C-130J-30 Super Hercules
|
- C-130J-30 Super Hercules
|
||||||
- C-17A
|
- C-17A
|
||||||
- CH-47D
|
- CH-47D
|
||||||
|
- CH-47F Block I
|
||||||
- CH-53E
|
- CH-53E
|
||||||
- F-117A Nighthawk
|
- F-117A Nighthawk
|
||||||
- F-14B Tomcat
|
- F-14B Tomcat
|
||||||
|
|||||||
@ -17,6 +17,7 @@ aircrafts:
|
|||||||
- C-130J-30 Super Hercules
|
- C-130J-30 Super Hercules
|
||||||
- C-17A
|
- C-17A
|
||||||
- CH-47D
|
- CH-47D
|
||||||
|
- CH-47F Block I
|
||||||
- CH-53E
|
- CH-53E
|
||||||
- F-117A Nighthawk
|
- F-117A Nighthawk
|
||||||
- F-14B Tomcat
|
- F-14B Tomcat
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: Escuadrón Aéreo 412
|
name: Escuadrón Aéreo 412
|
||||||
nickname: Halcones
|
nickname: Halcones
|
||||||
|
female_pilot_percentage: 0
|
||||||
country: Peru
|
country: Peru
|
||||||
role: Fighter
|
role: Fighter
|
||||||
aircraft: Mirage 2000C
|
aircraft: Mirage 2000C
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
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 <strong>not</strong> adjust
|
mission generation settings. Note that this will <strong>not</strong> adjust
|
||||||
the timing of your mission; this option only allows you to wait in the
|
the timing of your mission; this option only allows you to wait in the
|
||||||
cockpit.
|
cockpit.
|
||||||
|
|||||||
BIN
resources/ui/units/aircrafts/banners/CH-47Fbl1.jpg
Normal file
BIN
resources/ui/units/aircrafts/banners/CH-47Fbl1.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 252 KiB |
BIN
resources/ui/units/aircrafts/icons/CH-47Fbl1_24.jpg
Normal file
BIN
resources/ui/units/aircrafts/icons/CH-47Fbl1_24.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.0 KiB |
32
resources/units/aircraft/CH-47Fbl1.yaml
Normal file
32
resources/units/aircraft/CH-47Fbl1.yaml
Normal file
@ -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
|
||||||
@ -28,5 +28,6 @@ tasks:
|
|||||||
BAI: 430
|
BAI: 430
|
||||||
CAS: 430
|
CAS: 430
|
||||||
DEAD: 113
|
DEAD: 113
|
||||||
|
Strike: 200
|
||||||
OCA/Aircraft: 430
|
OCA/Aircraft: 430
|
||||||
hit_points: 15
|
hit_points: 15
|
||||||
|
|||||||
@ -28,5 +28,6 @@ tasks:
|
|||||||
BAI: 440
|
BAI: 440
|
||||||
CAS: 440
|
CAS: 440
|
||||||
DEAD: 114
|
DEAD: 114
|
||||||
|
Strike: 200
|
||||||
OCA/Aircraft: 440
|
OCA/Aircraft: 440
|
||||||
hit_points: 15
|
hit_points: 15
|
||||||
|
|||||||
6
resources/weapons/bombs/CBU-52B-2X.yaml
Normal file
6
resources/weapons/bombs/CBU-52B-2X.yaml
Normal file
@ -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}"
|
||||||
6
resources/weapons/bombs/CBU-52B-3X.yaml
Normal file
6
resources/weapons/bombs/CBU-52B-3X.yaml
Normal file
@ -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}"
|
||||||
5
resources/weapons/bombs/CBU-52B-6X.yaml
Normal file
5
resources/weapons/bombs/CBU-52B-6X.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
name: 6xCBU-52B
|
||||||
|
year: 1972
|
||||||
|
fallback: 6xMk 20 Rockeye
|
||||||
|
clsids:
|
||||||
|
- "{HB_F4E_CBU-52B_MER_6x}"
|
||||||
6
resources/weapons/bombs/CBU-52B.yaml
Normal file
6
resources/weapons/bombs/CBU-52B.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
name: CBU-52B
|
||||||
|
year: 1972
|
||||||
|
fallback: Mk 20 Rockeye
|
||||||
|
clsids:
|
||||||
|
- "{CBU-52B}"
|
||||||
|
- "{HB_CBU-52B_SWA}"
|
||||||
@ -1,6 +1,8 @@
|
|||||||
name: 2xCBU-87
|
name: 2xCBU-87
|
||||||
year: 1986
|
year: 1986
|
||||||
fallback: 2xMk 82
|
fallback: 2xCBU-52B
|
||||||
clsids:
|
clsids:
|
||||||
- "{TER_9A_2L*CBU-87}"
|
- "{TER_9A_2L*CBU-87}"
|
||||||
- "{TER_9A_2R*CBU-87}"
|
- "{TER_9A_2R*CBU-87}"
|
||||||
|
- "{HB_F4E_CBU-87_2x}"
|
||||||
|
- "{HB_F4E_CBU-87_2x_SWA}"
|
||||||
@ -1,5 +1,9 @@
|
|||||||
name: 3xCBU-87
|
name: 3xCBU-87
|
||||||
year: 1986
|
year: 1986
|
||||||
fallback: 3xMk 82
|
fallback: 3xCBU-52B
|
||||||
clsids:
|
clsids:
|
||||||
- "{TER_9A_3*CBU-87}"
|
- "{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}"
|
||||||
7
resources/weapons/bombs/CBU-87-6X.yaml
Normal file
7
resources/weapons/bombs/CBU-87-6X.yaml
Normal file
@ -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}"
|
||||||
@ -1,5 +1,6 @@
|
|||||||
name: CBU-87
|
name: CBU-87
|
||||||
year: 1986
|
year: 1986
|
||||||
fallback: Mk 82
|
fallback: CBU-52B
|
||||||
clsids:
|
clsids:
|
||||||
- "{CBU-87}"
|
- "{CBU-87}"
|
||||||
|
- "{HB_CBU-87_SWA}"
|
||||||
10
resources/weapons/bombs/Mk-20-2X.yaml
Normal file
10
resources/weapons/bombs/Mk-20-2X.yaml
Normal file
@ -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}"
|
||||||
8
resources/weapons/bombs/Mk-20-3X.yaml
Normal file
8
resources/weapons/bombs/Mk-20-3X.yaml
Normal file
@ -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}"
|
||||||
9
resources/weapons/bombs/Mk-20-6X.yaml
Normal file
9
resources/weapons/bombs/Mk-20-6X.yaml
Normal file
@ -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}"
|
||||||
6
resources/weapons/bombs/Mk-20.yaml
Normal file
6
resources/weapons/bombs/Mk-20.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
name: Mk 20 Rockeye
|
||||||
|
year: 1968
|
||||||
|
fallback: Mk 82
|
||||||
|
clsids:
|
||||||
|
- "{HB_ROCKEYE_SWA}"
|
||||||
|
- "{ADD3FAE1-EBF6-4EF9-8EFC-B36B5DDF1E6B}"
|
||||||
@ -16,3 +16,5 @@ clsids:
|
|||||||
- "{BRU42_2*MK82 LS}"
|
- "{BRU42_2*MK82 LS}"
|
||||||
- "{BRU3242_2*MK82 LS}"
|
- "{BRU3242_2*MK82 LS}"
|
||||||
- "{PHXBRU3242_2*MK82 LS}"
|
- "{PHXBRU3242_2*MK82 LS}"
|
||||||
|
- "{HB_F4E_MK-82_2x_SWA}"
|
||||||
|
- "{HB_F4E_MK-82_2x}"
|
||||||
|
|||||||
@ -2,3 +2,4 @@ name: 3xMk 82
|
|||||||
fallback: 2xMk 82
|
fallback: 2xMk 82
|
||||||
clsids:
|
clsids:
|
||||||
- "{60CC734F-0AFA-4E2E-82B8-93B941AB11CF}"
|
- "{60CC734F-0AFA-4E2E-82B8-93B941AB11CF}"
|
||||||
|
- "{HB_F4E_MK-82_3x}"
|
||||||
|
|||||||
4
resources/weapons/bombs/Mk-82-6X.yaml
Normal file
4
resources/weapons/bombs/Mk-82-6X.yaml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
name: 6xMk 82
|
||||||
|
fallback: Mk 82
|
||||||
|
clsids:
|
||||||
|
- "{HB_F4E_MK-82_6x}"
|
||||||
@ -9,3 +9,4 @@ clsids:
|
|||||||
- "{Mk_82SP}"
|
- "{Mk_82SP}"
|
||||||
- "{Mk_82YT}"
|
- "{Mk_82YT}"
|
||||||
- "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}"
|
- "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}"
|
||||||
|
- "{HB_MK-82_SWA}"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user