Compare commits
1 Commits
11.0.0
...
update_rea
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ef8eeeb1f1 |
@@ -4,16 +4,10 @@ Saves from 10.x are not compatible with 11.0.0.
|
||||
|
||||
## Features/Improvements
|
||||
|
||||
* **[Engine]** Support for DCS 2.9.3.51704.
|
||||
* **[Campaign]** Improved tracking of parked aircraft deaths. Parked aircraft are now considered dead once sufficient damage is done, meaning guns, rockets and AGMs are viable weapons for OCA/Aircraft missions. Previously Liberation relied on DCS death tracking which required parked aircraft to be hit with more powerful weapons e.g. 2000lb bombs as they were uncontrolled.
|
||||
* **[Campaign]** Track damage to theater ground objects across turns. Damage can accumulate across turns leading to death of the unit. This behavior only applies to SAMs, ships and other units that appear on the Liberation map. Frontline units and buildings are not tracked (yet).
|
||||
* **[Mods]** F/A-18 E/F/G Super Hornet mod (v2.2.5) support added.
|
||||
* **[Engine]** Support for DCS 2.9.3.51704 Open Beta.
|
||||
|
||||
## Fixes
|
||||
|
||||
* **[Mission Generation]** When planning anti-ship missions against carriers or LHAs, target escorts (if present) if the carrier/LHA is sunk.
|
||||
* **[UI]** Identify that a carrier or LHA is sunk instead of "damaged".
|
||||
|
||||
# 10.0.0
|
||||
|
||||
Saves from 9.x are not compatible with 10.0.0.
|
||||
|
||||
24
client/package-lock.json
generated
@@ -9883,9 +9883,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/follow-redirects": {
|
||||
"version": "1.15.6",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
|
||||
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
|
||||
"version": "1.15.2",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
|
||||
"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "individual",
|
||||
@@ -11161,9 +11161,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/ip": {
|
||||
"version": "1.1.9",
|
||||
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz",
|
||||
"integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==",
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
|
||||
"integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/ipaddr.js": {
|
||||
@@ -28743,9 +28743,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"follow-redirects": {
|
||||
"version": "1.15.6",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
|
||||
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
|
||||
"version": "1.15.2",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
|
||||
"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
|
||||
},
|
||||
"for-each": {
|
||||
"version": "0.3.3",
|
||||
@@ -29680,9 +29680,9 @@
|
||||
}
|
||||
},
|
||||
"ip": {
|
||||
"version": "1.1.9",
|
||||
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz",
|
||||
"integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==",
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
|
||||
"integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
|
||||
"dev": true
|
||||
},
|
||||
"ipaddr.js": {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from __future__ import annotations
|
||||
from abc import ABC
|
||||
|
||||
import itertools
|
||||
import logging
|
||||
from collections import defaultdict
|
||||
@@ -9,9 +9,7 @@ from typing import (
|
||||
Dict,
|
||||
Iterator,
|
||||
List,
|
||||
Optional,
|
||||
TYPE_CHECKING,
|
||||
TypeVar,
|
||||
Union,
|
||||
)
|
||||
from uuid import UUID
|
||||
@@ -23,10 +21,8 @@ from game.theater import Airfield, ControlPoint
|
||||
if TYPE_CHECKING:
|
||||
from game import Game
|
||||
from game.ato.flight import Flight
|
||||
from game.dcs.unittype import UnitType
|
||||
from game.sim.simulationresults import SimulationResults
|
||||
from game.transfers import CargoShip
|
||||
from game.theater import TheaterUnit
|
||||
from game.unitmap import (
|
||||
AirliftUnits,
|
||||
ConvoyUnit,
|
||||
@@ -94,103 +90,6 @@ class BaseCaptureEvent:
|
||||
captured_by_player: bool
|
||||
|
||||
|
||||
@dataclass
|
||||
class UnitHitpointUpdate(ABC):
|
||||
unit: Any
|
||||
hit_points: int
|
||||
|
||||
@classmethod
|
||||
def from_json(
|
||||
cls, data: dict[str, Any], unit_map: UnitMap
|
||||
) -> Optional[UnitHitpointUpdate]:
|
||||
raise NotImplementedError()
|
||||
|
||||
def is_dead(self) -> bool:
|
||||
# Use hit_points > 1 to indicate unit is alive, rather than >=1 (DCS logic) to account for uncontrolled units which often have a
|
||||
# health floor of 1
|
||||
if self.hit_points > 1:
|
||||
return False
|
||||
return True
|
||||
|
||||
def is_friendly(self, to_player: bool) -> bool:
|
||||
raise NotImplementedError()
|
||||
|
||||
|
||||
@dataclass
|
||||
class FlyingUnitHitPointUpdate(UnitHitpointUpdate):
|
||||
unit: FlyingUnit
|
||||
|
||||
@classmethod
|
||||
def from_json(
|
||||
cls, data: dict[str, Any], unit_map: UnitMap
|
||||
) -> Optional[FlyingUnitHitPointUpdate]:
|
||||
unit = unit_map.flight(data["name"])
|
||||
if unit is None:
|
||||
return None
|
||||
return cls(unit, int(float(data["hit_points"])))
|
||||
|
||||
def is_friendly(self, to_player: bool) -> bool:
|
||||
if to_player:
|
||||
return self.unit.flight.departure.captured
|
||||
return not self.unit.flight.departure.captured
|
||||
|
||||
|
||||
@dataclass
|
||||
class TheaterUnitHitPointUpdate(UnitHitpointUpdate):
|
||||
unit: TheaterUnitMapping
|
||||
|
||||
@classmethod
|
||||
def from_json(
|
||||
cls, data: dict[str, Any], unit_map: UnitMap
|
||||
) -> Optional[TheaterUnitHitPointUpdate]:
|
||||
unit = unit_map.theater_units(data["name"])
|
||||
if unit is None:
|
||||
return None
|
||||
|
||||
if unit.theater_unit.unit_type is None:
|
||||
logging.debug(
|
||||
f"Ground unit {data['name']} does not have a valid unit type."
|
||||
)
|
||||
return None
|
||||
|
||||
if unit.theater_unit.hit_points is None:
|
||||
logging.debug(f"Ground unit {data['name']} does not have hit_points set.")
|
||||
return None
|
||||
|
||||
sim_hit_points = int(
|
||||
float(data["hit_points"])
|
||||
) # Hit points out of the sim i.e. new unit hit points - damage in this turn
|
||||
previous_turn_hit_points = (
|
||||
unit.theater_unit.hit_points
|
||||
) # Hit points at the end of the previous turn
|
||||
full_health_hit_points = (
|
||||
unit.theater_unit.unit_type.hit_points
|
||||
) # Hit points of a new unit
|
||||
|
||||
# Hit points left after damage this turn is subtracted from hit points at the end of the previous turn
|
||||
new_hit_points = previous_turn_hit_points - (
|
||||
full_health_hit_points - sim_hit_points
|
||||
)
|
||||
|
||||
return cls(unit, new_hit_points)
|
||||
|
||||
def is_dead(self) -> bool:
|
||||
# Some TheaterUnits can start with low health of around 1, make sure we don't always kill them off.
|
||||
if (
|
||||
self.unit.theater_unit.unit_type is not None
|
||||
and self.unit.theater_unit.unit_type.hit_points is not None
|
||||
and self.unit.theater_unit.unit_type.hit_points <= 1
|
||||
):
|
||||
return False
|
||||
return super().is_dead()
|
||||
|
||||
def is_friendly(self, to_player: bool) -> bool:
|
||||
return self.unit.theater_unit.ground_object.is_friendly(to_player)
|
||||
|
||||
def commit(self) -> None:
|
||||
self.unit.theater_unit.hit_points = self.hit_points
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class StateData:
|
||||
#: True if the mission ended. If False, the mission exited abnormally.
|
||||
@@ -209,10 +108,6 @@ class StateData:
|
||||
#: Mangled names of bases that were captured during the mission.
|
||||
base_capture_events: List[str]
|
||||
|
||||
# List of descriptions of damage done to units. Each list element is a dict like the following
|
||||
# {"name": "<damaged unit name>", "hit_points": <hit points as float>}
|
||||
unit_hit_point_updates: List[dict[str, Any]]
|
||||
|
||||
@classmethod
|
||||
def from_json(cls, data: Dict[str, Any], unit_map: UnitMap) -> StateData:
|
||||
def clean_unit_list(unit_list: List[Any]) -> List[str]:
|
||||
@@ -252,7 +147,6 @@ class StateData:
|
||||
killed_ground_units=killed_ground_units,
|
||||
destroyed_statics=data["destroyed_objects_positions"],
|
||||
base_capture_events=data["base_capture_events"],
|
||||
unit_hit_point_updates=data["unit_hit_point_updates"],
|
||||
)
|
||||
|
||||
|
||||
@@ -390,19 +284,6 @@ class Debriefing:
|
||||
player_losses.append(aircraft)
|
||||
else:
|
||||
enemy_losses.append(aircraft)
|
||||
|
||||
for unit_data in self.state_data.unit_hit_point_updates:
|
||||
damaged_unit = FlyingUnitHitPointUpdate.from_json(unit_data, self.unit_map)
|
||||
if damaged_unit is None:
|
||||
continue
|
||||
if damaged_unit.is_dead():
|
||||
# If unit already killed, nothing to do.
|
||||
if unit_data["name"] in self.state_data.killed_aircraft:
|
||||
continue
|
||||
if damaged_unit.is_friendly(to_player=True):
|
||||
player_losses.append(damaged_unit.unit)
|
||||
else:
|
||||
enemy_losses.append(damaged_unit.unit)
|
||||
return AirLosses(player_losses, enemy_losses)
|
||||
|
||||
def dead_ground_units(self) -> GroundLosses:
|
||||
@@ -475,29 +356,8 @@ class Debriefing:
|
||||
losses.enemy_airlifts.append(airlift_unit)
|
||||
continue
|
||||
|
||||
for unit_data in self.state_data.unit_hit_point_updates:
|
||||
damaged_unit = TheaterUnitHitPointUpdate.from_json(unit_data, self.unit_map)
|
||||
if damaged_unit is None:
|
||||
continue
|
||||
if damaged_unit.is_dead():
|
||||
if unit_data["name"] in self.state_data.killed_ground_units:
|
||||
continue
|
||||
if damaged_unit.is_friendly(to_player=True):
|
||||
losses.player_ground_objects.append(damaged_unit.unit)
|
||||
else:
|
||||
losses.enemy_ground_objects.append(damaged_unit.unit)
|
||||
|
||||
return losses
|
||||
|
||||
def unit_hit_point_update_events(self) -> List[TheaterUnitHitPointUpdate]:
|
||||
damaged_units = []
|
||||
for unit_data in self.state_data.unit_hit_point_updates:
|
||||
unit = TheaterUnitHitPointUpdate.from_json(unit_data, self.unit_map)
|
||||
if unit is None:
|
||||
continue
|
||||
damaged_units.append(unit)
|
||||
return damaged_units
|
||||
|
||||
def base_capture_events(self) -> List[BaseCaptureEvent]:
|
||||
"""Keeps only the last instance of a base capture event for each base ID."""
|
||||
blue_coalition_id = 2
|
||||
|
||||
@@ -300,11 +300,8 @@ class Faction:
|
||||
self.remove_aircraft("Su-57")
|
||||
if not mod_settings.ov10a_bronco:
|
||||
self.remove_aircraft("Bronco-OV-10A")
|
||||
if not mod_settings.fa18efg:
|
||||
self.remove_aircraft("FA_18E")
|
||||
self.remove_aircraft("FA_18F")
|
||||
self.remove_aircraft("EA_18G")
|
||||
|
||||
if not mod_settings.superhornet:
|
||||
self.remove_aircraft("Super-Hornet")
|
||||
# frenchpack
|
||||
if not mod_settings.frenchpack:
|
||||
self.remove_vehicle("AMX10RCR")
|
||||
|
||||
@@ -20,14 +20,8 @@ class AntiShipIngressBuilder(PydcsWaypointBuilder):
|
||||
group_names.append(target.name)
|
||||
elif isinstance(target, NavalControlPoint):
|
||||
carrier_name = target.get_carrier_group_name()
|
||||
if carrier_name and self.mission.find_group(
|
||||
carrier_name
|
||||
): # Found a carrier, target it.
|
||||
if carrier_name:
|
||||
group_names.append(carrier_name)
|
||||
else: # Could not find carrier/LHA, indicating it was sunk. Target other groups if present e.g. escorts.
|
||||
for ground_object in target.ground_objects:
|
||||
for group in ground_object.groups:
|
||||
group_names.append(group.group_name)
|
||||
else:
|
||||
logging.error(
|
||||
"Unexpected target type for anti-ship mission: %s",
|
||||
|
||||
@@ -34,7 +34,6 @@ class MissionResultsProcessor:
|
||||
self.commit_damaged_runways(debriefing)
|
||||
self.commit_captures(debriefing, events)
|
||||
self.commit_front_line_battle_impact(debriefing, events)
|
||||
self.commit_unit_damage(debriefing)
|
||||
self.record_carcasses(debriefing)
|
||||
|
||||
def commit_air_losses(self, debriefing: Debriefing) -> None:
|
||||
@@ -308,14 +307,6 @@ class MissionResultsProcessor:
|
||||
f"{enemy_cp.name}. {status_msg}",
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def commit_unit_damage(debriefing: Debriefing) -> None:
|
||||
for damaged_unit in debriefing.unit_hit_point_update_events():
|
||||
logging.info(
|
||||
f"{damaged_unit.unit.theater_unit.name} damaged, setting hit points to {damaged_unit.hit_points}"
|
||||
)
|
||||
damaged_unit.commit()
|
||||
|
||||
def redeploy_units(self, cp: ControlPoint) -> None:
|
||||
""" "
|
||||
Auto redeploy units to newly captured base
|
||||
|
||||
@@ -1283,10 +1283,7 @@ class NavalControlPoint(ControlPoint, ABC):
|
||||
return RunwayStatus(damaged=not self.runway_is_operational())
|
||||
|
||||
def describe_runway_status(self) -> str:
|
||||
if self.runway_is_operational():
|
||||
return f"Flight deck {self.runway_status.describe()}"
|
||||
# Special handling for not operational carriers/LHAs
|
||||
return f"Sunk"
|
||||
return f"Flight deck {self.runway_status.describe()}"
|
||||
|
||||
@property
|
||||
def runway_can_be_repaired(self) -> bool:
|
||||
|
||||
@@ -66,7 +66,7 @@ class ModSettings:
|
||||
frenchpack: bool = False
|
||||
high_digit_sams: bool = False
|
||||
ov10a_bronco: bool = False
|
||||
fa18efg: bool = False
|
||||
superhornet: bool = False
|
||||
|
||||
def save_player_settings(self) -> None:
|
||||
"""Saves the player's global settings to the user directory."""
|
||||
|
||||
@@ -35,8 +35,6 @@ class TheaterUnit:
|
||||
position: PointWithHeading
|
||||
# The parent ground object
|
||||
ground_object: TheaterGroundObject
|
||||
# Number of hit points the unit has
|
||||
hit_points: Optional[int] = None
|
||||
# State of the unit, dead or alive
|
||||
alive: bool = True
|
||||
|
||||
@@ -44,17 +42,13 @@ class TheaterUnit:
|
||||
def from_template(
|
||||
id: int, dcs_type: Type[DcsUnitType], t: LayoutUnit, go: TheaterGroundObject
|
||||
) -> TheaterUnit:
|
||||
unit = TheaterUnit(
|
||||
return TheaterUnit(
|
||||
id,
|
||||
t.name,
|
||||
dcs_type,
|
||||
PointWithHeading.from_point(t.position, Heading.from_degrees(t.heading)),
|
||||
go,
|
||||
)
|
||||
# if the TheaterUnit represents a GroundUnitType or ShipUnitType, initialize health to full hit points
|
||||
if unit.unit_type is not None:
|
||||
unit.hit_points = unit.unit_type.hit_points
|
||||
return unit
|
||||
|
||||
@property
|
||||
def unit_type(self) -> Optional[UnitType[Any]]:
|
||||
@@ -76,12 +70,14 @@ class TheaterUnit:
|
||||
|
||||
@property
|
||||
def display_name(self) -> str:
|
||||
dead_label = " [DEAD]" if not self.alive else ""
|
||||
unit_label = self.unit_type or self.type.name or self.name
|
||||
return f"{str(self.id).zfill(4)} | {unit_label}{self._status_label()}"
|
||||
return f"{str(self.id).zfill(4)} | {unit_label}{dead_label}"
|
||||
|
||||
@property
|
||||
def short_name(self) -> str:
|
||||
return f"<b>{self.type.id[0:18]}</b> {self._status_label()}"
|
||||
dead_label = " [DEAD]" if not self.alive else ""
|
||||
return f"<b>{self.type.id[0:18]}</b> {dead_label}"
|
||||
|
||||
@property
|
||||
def is_static(self) -> bool:
|
||||
@@ -121,18 +117,6 @@ class TheaterUnit:
|
||||
unit_range = getattr(self.type, "threat_range", None)
|
||||
return meters(unit_range if unit_range is not None and self.alive else 0)
|
||||
|
||||
def _status_label(self) -> str:
|
||||
if not self.alive:
|
||||
return " [DEAD]"
|
||||
if self.unit_type is None:
|
||||
return ""
|
||||
if self.hit_points is None:
|
||||
return ""
|
||||
if self.unit_type.hit_points == self.hit_points:
|
||||
return ""
|
||||
damage_percentage = 100 - int(100 * self.hit_points / self.unit_type.hit_points)
|
||||
return f" [DAMAGED {damage_percentage}%]"
|
||||
|
||||
|
||||
class SceneryUnit(TheaterUnit):
|
||||
"""Special TheaterUnit for handling scenery ground objects"""
|
||||
|
||||
@@ -9,7 +9,6 @@ from .jas39 import *
|
||||
from .ov10a import *
|
||||
from .su57 import *
|
||||
from .uh60l import *
|
||||
from .fa18efg import *
|
||||
|
||||
|
||||
def load_mods() -> None:
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
from .fa18efg import *
|
||||
@@ -493,7 +493,6 @@ class QLiberationWindow(QMainWindow):
|
||||
"ColonelAkirNakesh",
|
||||
"Nosajthedevil",
|
||||
"kivipe",
|
||||
"Chilli935",
|
||||
]
|
||||
text = (
|
||||
"<h3>DCS Liberation "
|
||||
|
||||
@@ -204,7 +204,7 @@ class NewGameWizard(QtWidgets.QWizard):
|
||||
ov10a_bronco=self.field("ov10a_bronco"),
|
||||
frenchpack=self.field("frenchpack"),
|
||||
high_digit_sams=self.field("high_digit_sams"),
|
||||
fa18efg=self.field("fa18efg"),
|
||||
superhornet=self.field("superhornet"),
|
||||
)
|
||||
mod_settings.save_player_settings()
|
||||
|
||||
@@ -827,9 +827,9 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
||||
high_digit_sams.setChecked(mod_settings.high_digit_sams)
|
||||
self.registerField("high_digit_sams", high_digit_sams)
|
||||
|
||||
fa18efg = QtWidgets.QCheckBox()
|
||||
fa18efg.setChecked(mod_settings.fa18efg)
|
||||
self.registerField("fa18efg", fa18efg)
|
||||
superhornet = QtWidgets.QCheckBox()
|
||||
superhornet.setChecked(mod_settings.superhornet)
|
||||
self.registerField("superhornet", superhornet)
|
||||
|
||||
modHelpText = QtWidgets.QLabel(
|
||||
"<p>Select the mods you have installed. If your chosen factions support them, you'll be able to use these mods in your campaign.</p>"
|
||||
@@ -883,10 +883,8 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
||||
modLayout.addWidget(high_digit_sams, modLayout_row, 1)
|
||||
modSettingsGroup.setLayout(modLayout)
|
||||
modLayout_row += 1
|
||||
modLayout.addWidget(
|
||||
QtWidgets.QLabel("F/A-18EFG Super Hornet (version 2.2.5)"), modLayout_row, 0
|
||||
)
|
||||
modLayout.addWidget(fa18efg, modLayout_row, 1)
|
||||
modLayout.addWidget(QtWidgets.QLabel("Super Hornet"), modLayout_row, 0)
|
||||
modLayout.addWidget(superhornet, modLayout_row, 1)
|
||||
modSettingsGroup.setLayout(modLayout)
|
||||
modLayout_row += 1
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ annotated-types==0.6.0
|
||||
anyio==3.7.1
|
||||
asgiref==3.7.2
|
||||
attrs==23.1.0
|
||||
black==24.3.0
|
||||
black==23.11.0
|
||||
certifi==2023.11.17
|
||||
cfgv==3.4.0
|
||||
click==8.1.7
|
||||
@@ -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.104.1
|
||||
filelock==3.13.1
|
||||
future==0.18.3
|
||||
h11==0.14.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/zhexu14/dcs@bb41fa849e718fee1b97d5d7a7c2e417f78de3d8
|
||||
pydcs @ git+https://github.com/pydcs/dcs@7eeec23ea428846ebbbd0ea4c746f8eafea04e0d
|
||||
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.27.0
|
||||
tabulate==0.9.0
|
||||
tomli==2.0.1
|
||||
types-Jinja2==2.11.9
|
||||
|
||||
@@ -6,29 +6,29 @@ recommended_player_faction: USA 2005
|
||||
recommended_enemy_faction: Private Military Company - Russian (Hard)
|
||||
description:
|
||||
<p><strong>Note:</strong> This campaign was designed for helicopters.</p><p>
|
||||
Set against the rugged and windswept backdrop of the Falkland Islands,
|
||||
this fictional campaign scenario unfolds with a dramatic dawn sneak attack
|
||||
on RAF Mount Pleasant Airbase. Orchestrated by a Russia-backed private
|
||||
military company, the deadly offensive with helicopter gunships and ground troops
|
||||
has left the airbase's runways in ruins and its defences obliterated. This brutal
|
||||
incursion resulted in significant casualties among the RAF personnel, with many
|
||||
killed or wounded in the unexpected onslaught. The carrier HMS Queen Elizabeth and
|
||||
its task force are on their way to evacuate the survivors and retake Mount Pleasant.
|
||||
Set against the rugged and windswept backdrop of the Falkland Islands,
|
||||
this fictional campaign scenario unfolds with a dramatic dawn sneak attack
|
||||
on RAF Mount Pleasant Airbase. Orchestrated by a Russia-backed private
|
||||
military company, the deadly offensive with helicopter gunships and ground troops
|
||||
has left the airbase's runways in ruins and its defences obliterated. This brutal
|
||||
incursion resulted in significant casualties among the RAF personnel, with many
|
||||
killed or wounded in the unexpected onslaught. The carrier HMS Queen Elizabeth and
|
||||
its task force are on their way to evacuate the survivors and retake Mount Pleasant.
|
||||
However, they are eight days away at full steam.</p><p>
|
||||
Amidst this chaos, a beacon of hope emerges in the heart of the Falklands. At Port
|
||||
Stanley, a small detachment of US military personnel, including helicopter pilots
|
||||
and armor units, find themselves inadvertently thrust into the fray. Originally at
|
||||
Port Stanley for some R&R following a training exercise, these soldiers now face
|
||||
an unexpected and urgent call to action. Their mission is daunting but clear - to
|
||||
prevent the capture of Port Stanley and liberate East Falkland from the clutches
|
||||
Amidst this chaos, a beacon of hope emerges in the heart of the Falklands. At Port
|
||||
Stanley, a small detachment of US military personnel, including helicopter pilots
|
||||
and armor units, find themselves inadvertently thrust into the fray. Originally at
|
||||
Port Stanley for some R&R following a training exercise, these soldiers now face
|
||||
an unexpected and urgent call to action. Their mission is daunting but clear - to
|
||||
prevent the capture of Port Stanley and liberate East Falkland from the clutches
|
||||
of the PMC forces.</p><p>
|
||||
This small group must strategically destroy the PMC forces deployed around the treacherous
|
||||
valley lying between Wickham Heights and the Onion Ranges, an area ominously known
|
||||
as No Man's Land. Their plan involves a daring assault to destroy the enemy's
|
||||
helicopter gunships stationed at San Carlos FOB. Following this, they aim to force
|
||||
the PMC ground forces into a strategic retreat southward, along the 1.6 mile wide
|
||||
isthmus into Lafonia. This offensive is designed to create a defensible position
|
||||
at Goose Green on the narrow isthmus, which can be held against a numerically
|
||||
This small group must strategically push the PMC forces back through the treacherous
|
||||
valley lying between Wickham Heights and the Onion Ranges, an area ominously known
|
||||
as No Man's Land. Their plan involves a daring assault to destroy the enemy's
|
||||
helicopter gunships stationed at San Carlos FOB. Following this, they aim to force
|
||||
the PMC ground forces into a strategic retreat southward, along the 1.6 mile wide
|
||||
isthmus into Lafonia. This calculated offensive is designed to create a defensible
|
||||
position at Goose Green on the narrow isthmus, which can be held against a numerically
|
||||
superior force until the arrival of Big Lizzie.</p>
|
||||
miz: battle_for_no_mans_land.miz
|
||||
performance: 1
|
||||
@@ -38,12 +38,12 @@ squadrons:
|
||||
#Port Stanley
|
||||
1:
|
||||
- primary: DEAD
|
||||
secondary: any
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- AH-64D Apache Longbow
|
||||
size: 6
|
||||
- primary: BAI
|
||||
secondary: any
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- AH-64D Apache Longbow
|
||||
size: 6
|
||||
@@ -56,15 +56,14 @@ squadrons:
|
||||
#San Carlos FOB
|
||||
3:
|
||||
- primary: BAI
|
||||
secondary: any
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 6
|
||||
#Goose Green
|
||||
24:
|
||||
- primary: DEAD
|
||||
secondary: any
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Ka-50 Hokum III
|
||||
- Ka-50 Hokum (Blackshark 3)
|
||||
size: 6
|
||||
size: 6
|
||||
|
||||
@@ -1,174 +1,155 @@
|
||||
---
|
||||
name: Sinai - Exercise Bright Star
|
||||
theater: Sinai
|
||||
authors: Starfire
|
||||
recommended_player_faction: Bluefor Modern
|
||||
recommended_enemy_faction: Egypt 2000
|
||||
description:
|
||||
<p>For over four decades, the United States and Egypt have conducted a series
|
||||
of biannual joint military exercises known as Bright Star. As the
|
||||
geopolitical landscape has transformed, so too has the scope and scale of
|
||||
Exercise Bright Star. The exercise has grown over the years to incorporate
|
||||
a wide array of international participants. The 2025 iteration of
|
||||
Exercise Bright Star features eight participating nations alongside
|
||||
fourteen observer nations.</p><p>
|
||||
For the 2025 exercises, the United States, along with a select contingent
|
||||
from the exercise coalition, will take on the role of a hypothetical
|
||||
adversarial nation, dubbed Orangeland. This scenario is designed to
|
||||
simulate a mock invasion against Cairo, and presents a valuable
|
||||
opportunity for participating nations to refine their joint operational
|
||||
capabilities and improve logistical and tactical interoperability</p><p>
|
||||
A historic addition to Exercise Bright Star 2025 is the participation of
|
||||
Israel as an observer nation. This marks a significant milestone, given
|
||||
the complex historical relations in the region, and symbolises a step
|
||||
forward in regional collaboration and military diplomacy. Israel's role,
|
||||
hosting the aggressor faction of the exercise coalition at its airfields,
|
||||
not only demonstrates the broadening scope of the exercise but also highlights
|
||||
the value of fostering an environment of mutual cooperation and shared
|
||||
security objectives.</p>
|
||||
miz: exercise_bright_star.miz
|
||||
performance: 1
|
||||
recommended_start_date: 2025-09-01
|
||||
version: "11.0"
|
||||
squadrons:
|
||||
Blue CV-1:
|
||||
- primary: SEAD
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F/A-18C Hornet (Lot 20)
|
||||
size: 24
|
||||
- primary: AEW&C
|
||||
aircraft:
|
||||
- E-2D Advanced Hawkeye
|
||||
size: 2
|
||||
- primary: Refueling
|
||||
aircraft:
|
||||
- S-3B Tanker
|
||||
size: 4
|
||||
Bombers from RAF Fairford:
|
||||
- primary: Anti-ship
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- B-52H Stratofortress
|
||||
size: 8
|
||||
- primary: Strike
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- B-1B Lancer
|
||||
size: 8
|
||||
# Hatzerim (141)
|
||||
7:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- A-10C Thunderbolt II (Suite 7)
|
||||
size: 6
|
||||
- primary: Escort
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-15C Eagle
|
||||
size: 20
|
||||
- primary: OCA/Runway
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-15E Strike Eagle (Suite 4+)
|
||||
size: 16
|
||||
- primary: DEAD
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-16CM Fighting Falcon (Block 50)
|
||||
size: 20
|
||||
- primary: BAI
|
||||
secondary: any
|
||||
aircraft:
|
||||
- JF-17 Thunder
|
||||
size: 16
|
||||
- primary: BARCAP
|
||||
secondary: any
|
||||
aircraft:
|
||||
- Mirage 2000C
|
||||
size: 12
|
||||
# Kedem
|
||||
12:
|
||||
- primary: Transport
|
||||
secondary: any
|
||||
aircraft:
|
||||
- CH-47D
|
||||
size: 20
|
||||
- primary: BAI
|
||||
secondary: any
|
||||
aircraft:
|
||||
- AH-64D Apache Longbow
|
||||
size: 8
|
||||
- primary: Air Assault
|
||||
secondary: any
|
||||
aircraft:
|
||||
- UH-60L
|
||||
- UH-60A
|
||||
size: 4
|
||||
# Nevatim (106)
|
||||
# Nevatim temporarilly disabled because airfield is borked
|
||||
# 8:
|
||||
# - primary: AEW&C
|
||||
# aircraft:
|
||||
# - E-3A
|
||||
# size: 2
|
||||
# - primary: Refueling
|
||||
# aircraft:
|
||||
# - KC-135 Stratotanker
|
||||
# size: 2
|
||||
# Melez (30)
|
||||
5:
|
||||
- primary: CAS
|
||||
secondary: any
|
||||
aircraft:
|
||||
- Ka-50 Hokum III
|
||||
- Ka-50 Hokum (Blackshark 3)
|
||||
size: 4
|
||||
- primary: BAI
|
||||
secondary: any
|
||||
aircraft:
|
||||
- Mirage 2000C
|
||||
size: 12
|
||||
- primary: Escort
|
||||
secondary: any
|
||||
aircraft:
|
||||
- MiG-21bis Fishbed-N
|
||||
size: 12
|
||||
# Wadi al Jandali (72)
|
||||
13:
|
||||
- primary: AEW&C
|
||||
aircraft:
|
||||
- E-2C Hawkeye
|
||||
size: 2
|
||||
- primary: SEAD
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-4E Phantom II
|
||||
size: 20
|
||||
- primary: DEAD
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-16CM Fighting Falcon (Block 50)
|
||||
size: 20
|
||||
- primary: Air Assault
|
||||
secondary: any
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 4
|
||||
- primary: OCA/Aircraft
|
||||
secondary: any
|
||||
aircraft:
|
||||
- SA 342L Gazelle
|
||||
size: 4
|
||||
# Cairo West (95)
|
||||
18:
|
||||
- primary: Transport
|
||||
aircraft:
|
||||
- C-130
|
||||
size: 8
|
||||
- primary: BARCAP
|
||||
secondary: air-to-air
|
||||
aircraft:
|
||||
- MiG-29S Fulcrum-C
|
||||
---
|
||||
name: Sinai - Exercise Bright Star
|
||||
theater: Sinai
|
||||
authors: Starfire
|
||||
recommended_player_faction: Bluefor Modern
|
||||
recommended_enemy_faction: Egypt 2000s
|
||||
description:
|
||||
<p>For over 4 decades, the United States and Egypt have run a series of
|
||||
biannual joint military exercises called Bright Star. Over the years, the
|
||||
number of participating countries has grown substantially. Exercise Bright
|
||||
Star 2025 boasts 8 participant nations and 14 observer nations. The United
|
||||
States and a portion of the exercise coalition will play the part of a
|
||||
fictional hostile nation dubbed Orangeland, staging a mock invasion against
|
||||
Cairo. Israel, having for the first time accepted the invitation to observe,
|
||||
is hosting the aggressor faction of the exercise coalition at its
|
||||
airfields.</p>
|
||||
miz: exercise_bright_star.miz
|
||||
performance: 1
|
||||
recommended_start_date: 2025-09-01
|
||||
version: "11.0"
|
||||
squadrons:
|
||||
Blue CV-1:
|
||||
- primary: SEAD
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F/A-18C Hornet (Lot 20)
|
||||
size: 24
|
||||
- primary: AEW&C
|
||||
aircraft:
|
||||
- E-2D Advanced Hawkeye
|
||||
size: 2
|
||||
- primary: Refueling
|
||||
aircraft:
|
||||
- S-3B Tanker
|
||||
size: 4
|
||||
Bombers from RAF Fairford:
|
||||
- primary: Anti-ship
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- B-52H Stratofortress
|
||||
size: 8
|
||||
- primary: Strike
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- B-1B Lancer
|
||||
size: 8
|
||||
# Hatzerim (141)
|
||||
7:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- A-10C Thunderbolt II (Suite 7)
|
||||
size: 6
|
||||
- primary: Escort
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-15C Eagle
|
||||
size: 20
|
||||
- primary: OCA/Runway
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-15E Strike Eagle (Suite 4+)
|
||||
size: 16
|
||||
- primary: DEAD
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-16CM Fighting Falcon (Block 50)
|
||||
size: 20
|
||||
- primary: BAI
|
||||
secondary: any
|
||||
aircraft:
|
||||
- JF-17 Thunder
|
||||
size: 16
|
||||
- primary: BARCAP
|
||||
secondary: any
|
||||
aircraft:
|
||||
- Mirage 2000C
|
||||
size: 12
|
||||
# Kedem
|
||||
12:
|
||||
- primary: Transport
|
||||
secondary: any
|
||||
aircraft:
|
||||
- CH-47D
|
||||
size: 20
|
||||
- primary: Air Assault
|
||||
secondary: any
|
||||
aircraft:
|
||||
- UH-60L
|
||||
- UH-60A
|
||||
size: 4
|
||||
# Nevatim (106)
|
||||
# 8:
|
||||
# - primary: AEW&C
|
||||
# aircraft:
|
||||
# - E-3A
|
||||
# size: 2
|
||||
# - primary: Refueling
|
||||
# aircraft:
|
||||
# - KC-135 Stratotanker
|
||||
# size: 2
|
||||
# Melez (30)
|
||||
5:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Ka-50 Hokum (Blackshark 3)
|
||||
size: 4
|
||||
- primary: BAI
|
||||
secondary: any
|
||||
aircraft:
|
||||
- Mirage 2000C
|
||||
size: 12
|
||||
- primary: Escort
|
||||
secondary: any
|
||||
aircraft:
|
||||
- MiG-21bis Fishbed-N
|
||||
size: 12
|
||||
# Wadi al Jandali (72)
|
||||
13:
|
||||
- primary: AEW&C
|
||||
aircraft:
|
||||
- E-2C Hawkeye
|
||||
size: 2
|
||||
- primary: SEAD
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-4E Phantom II
|
||||
size: 20
|
||||
- primary: DEAD
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-16CM Fighting Falcon (Block 50)
|
||||
size: 20
|
||||
- primary: Air Assault
|
||||
secondary: any
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 4
|
||||
- primary: OCA/Aircraft
|
||||
secondary: any
|
||||
aircraft:
|
||||
- SA 342L Gazelle
|
||||
size: 4
|
||||
# Cairo West (95)
|
||||
18:
|
||||
- primary: Transport
|
||||
aircraft:
|
||||
- C-130
|
||||
size: 8
|
||||
- primary: BARCAP
|
||||
secondary: air-to-air
|
||||
aircraft:
|
||||
- MiG-29S Fulcrum-C
|
||||
size: 20
|
||||
@@ -53,7 +53,7 @@ squadrons:
|
||||
- A-10C Thunderbolt II (Suite 7)
|
||||
size: 8
|
||||
- primary: CAS
|
||||
secondary: any
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- AH-64D Apache Longbow
|
||||
size: 10
|
||||
@@ -86,15 +86,14 @@ squadrons:
|
||||
- Su-25T Frogfoot
|
||||
size: 20
|
||||
# Creech
|
||||
1:
|
||||
Creech FARP:
|
||||
- primary: CAS
|
||||
secondary: any
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Ka-50 Hokum III
|
||||
- Ka-50 Hokum (Blackshark 3)
|
||||
size: 8
|
||||
- primary: Air Assault
|
||||
secondary: any
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 4
|
||||
|
||||
@@ -2,7 +2,65 @@
|
||||
name: Normandy - The Final Countdown II
|
||||
theater: Normandy
|
||||
authors: Starfire
|
||||
recommended_player_faction: D-Day Allied Forces 1944 and 1990
|
||||
recommended_player_faction:
|
||||
country: Combined Joint Task Forces Blue
|
||||
name: D-Day Allied Forces 1944 and 1990
|
||||
authors: Starfire
|
||||
description: <p>Faction for Final Countdown II</p>
|
||||
locales:
|
||||
- en_US
|
||||
aircrafts:
|
||||
- Boston Mk.III
|
||||
- Fortress Mk.III
|
||||
- Mustang Mk.IV (Late)
|
||||
- Spitfire LF Mk IX
|
||||
- Thunderbolt Mk.II (Late)
|
||||
- MosquitoFBMkVI
|
||||
- F-14B Tomcat
|
||||
- F/A-18C Hornet (Lot 20)
|
||||
- S-3B Viking
|
||||
- UH-60L
|
||||
- UH-60A
|
||||
awacs:
|
||||
- E-2C Hawkeye
|
||||
tankers:
|
||||
- S-3B Tanker
|
||||
frontline_units:
|
||||
- A17 Light Tank Mk VII Tetrarch
|
||||
- A22 Infantry Tank MK IV Churchill VII
|
||||
- A27L Cruiser Tank MK VIII Centaur IV
|
||||
- A27M Cruiser Tank MK VIII Cromwell IV
|
||||
- Daimler Armoured Car Mk I
|
||||
- M2A1 Half-Track
|
||||
- QF 40 mm Mark III
|
||||
- Sherman Firefly VC
|
||||
- Sherman III
|
||||
artillery_units:
|
||||
- M12 Gun Motor Carriage
|
||||
logistics_units:
|
||||
- Truck Bedford
|
||||
- Truck GMC "Jimmy" 6x6 Truck
|
||||
infantry_units:
|
||||
- Infantry M1 Garand
|
||||
naval_units:
|
||||
- DDG Arleigh Burke IIa
|
||||
- CG Ticonderoga
|
||||
- CVN-74 John C. Stennis
|
||||
missiles: []
|
||||
air_defense_units:
|
||||
- Bofors 40 mm Gun
|
||||
preset_groups:
|
||||
- Ally Flak
|
||||
requirements:
|
||||
WW2 Asset Pack: https://www.digitalcombatsimulator.com/en/products/other/wwii_assets_pack/
|
||||
carrier_names:
|
||||
- CVN-71 Theodore Roosevelt
|
||||
has_jtac: true
|
||||
jtac_unit: MQ-9 Reaper
|
||||
unrestricted_satnav: true
|
||||
doctrine: ww2
|
||||
building_set: ww2ally
|
||||
cargo_ship: LST Mk.II
|
||||
recommended_enemy_faction: Germany 1944
|
||||
description:
|
||||
<p>While enroute to the Persian Gulf for Operation Desert Shield, the USS
|
||||
@@ -133,4 +191,4 @@ squadrons:
|
||||
secondary: any
|
||||
aircraft:
|
||||
- Fw 190 A-8 Anton
|
||||
size: 20
|
||||
size: 20
|
||||
|
||||
@@ -8,10 +8,10 @@ description:
|
||||
<p>An Argentinean extremist group has contracted the Sons of Warvan (SoW), an
|
||||
unusually well-equipped PMC with close ties to the Russian government, to
|
||||
construct a beryllium bomb at the secret Omega 13 production facility in
|
||||
Ushuaia for use in its ongoing conflict with Chile. United States military
|
||||
Ushaia for use in its ongoing conflict with Chile. United States military
|
||||
forces have established a foothold at San Julian. While the SoW are distracted
|
||||
up north, it is up to the Marines to launch an assault upon Ushuaia from an LHA
|
||||
in order to disable the bomb production facility. Fortunately, Ushuaia is
|
||||
up north, it is up to the Marines to launch an assault upon Ushaia from an LHA
|
||||
in order to disable the bomb production facility. Fortunately, Ushaia is
|
||||
lightly defended as the SoW are trying to avoid unwanted attention.</p>
|
||||
miz: grabthars_hammer.miz
|
||||
performance: 2
|
||||
@@ -35,11 +35,6 @@ squadrons:
|
||||
aircraft:
|
||||
- F-15C Eagle
|
||||
size: 8
|
||||
- primary: CAS
|
||||
secondary: any
|
||||
aircraft:
|
||||
- AH-64D Apache Longbow
|
||||
size: 8
|
||||
- primary: Refueling
|
||||
aircraft:
|
||||
- KC-135 Stratotanker
|
||||
@@ -62,7 +57,7 @@ squadrons:
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F/A-18C Hornet (Lot 20)
|
||||
size: 40
|
||||
size: 20
|
||||
- primary: DEAD
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
@@ -147,15 +142,14 @@ squadrons:
|
||||
#Ushuaia
|
||||
7:
|
||||
- primary: CAS
|
||||
secondary: any
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Ka-50 Hokum III
|
||||
- Ka-50 Hokum (Blackshark 3)
|
||||
size: 8
|
||||
#Ushuaia Helo Port
|
||||
8:
|
||||
- primary: Air Assault
|
||||
secondary: any
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 8
|
||||
|
||||
@@ -48,7 +48,7 @@ squadrons:
|
||||
#Tarawa Class LHA
|
||||
Blue-LHA:
|
||||
- primary: DEAD
|
||||
secondary: any
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- AH-64D Apache Longbow
|
||||
size: 12
|
||||
@@ -72,7 +72,7 @@ squadrons:
|
||||
#Akrotiri
|
||||
44:
|
||||
- primary: BAI
|
||||
secondary: any
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- AH-1W SuperCobra
|
||||
size: 4
|
||||
@@ -81,8 +81,8 @@ squadrons:
|
||||
aircraft:
|
||||
- OH-58D Kiowa Warrior
|
||||
size: 4
|
||||
- primary: Transport
|
||||
secondary: any
|
||||
- primary: Air Assault
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- UH-60A
|
||||
size: 4
|
||||
@@ -95,7 +95,6 @@ squadrons:
|
||||
#Ercan
|
||||
49:
|
||||
- primary: Transport
|
||||
secondary: any
|
||||
aircraft:
|
||||
- CH-47D
|
||||
size: 6
|
||||
|
||||
@@ -100,7 +100,7 @@ squadrons:
|
||||
#Qeshm Island (12)
|
||||
13:
|
||||
- primary: Air Assault
|
||||
secondary: any
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 12
|
||||
|
||||
@@ -80,7 +80,7 @@ squadrons:
|
||||
- F-16CM Fighting Falcon (Block 50)
|
||||
size: 28
|
||||
- primary: CAS
|
||||
secondary: any
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- AH-64D Apache Longbow
|
||||
size: 4
|
||||
@@ -93,13 +93,13 @@ squadrons:
|
||||
- H-6J Badger
|
||||
size: 16
|
||||
- primary: BAI
|
||||
secondary: any
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- AH-1W SuperCobra
|
||||
- Su-25 Frogfoot
|
||||
size: 16
|
||||
- primary: CAS
|
||||
secondary: any
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- OH-58D Kiowa Warrior
|
||||
- Mi-24P Hind-F
|
||||
|
||||
@@ -1,156 +1,169 @@
|
||||
---
|
||||
name: Caucasus - Operation Vectron's Claw
|
||||
theater: Caucasus
|
||||
authors: Starfire
|
||||
recommended_player_faction: USA 2005
|
||||
recommended_enemy_faction: Russia 2010
|
||||
description:
|
||||
<p><strong>Background</strong> - The United Nations Observer Mission in Georgia (UNOMIG) has been actively monitoring the ceasefire agreement between Georgia and its breakaway region of Abkhazia. Recent developments have escalated tensions in the area, leading to a precarious situation for UN observers and affiliated personnel.
|
||||
</p><p><strong>Current Situation</strong> - UNOMIG observers, along with a contingent of international troops, have found themselves isolated due to the intervention of Russian forces supporting the separatist ambitions of Abkhazia. The UNOMIG headquarters located in Sukhumi has fallen into enemy hands. A smaller group based at the Zugdidi Sector Headquarters now faces the daunting task of navigating to safety with the aid of offshore naval air support.
|
||||
</p><p><strong>Objective</strong> - The immediate goal is to orchestrate a strategic withdrawal of UN forces to the coastline, leveraging support from US naval aircraft positioned offshore. The critical mission objective is the rapid recapture of Sukhumi. This action is essential to enable the landing of friendly ground forces and the ferrying in of land-based sqwuadrons from Incirlik.
|
||||
</p><p><strong>Operational Constraints</strong> - It is crucial to note that reinforcement of ground units will not be possible until Sukhumi is successfully recaptured. This recapture can either be performed using existing UN personnel and ground vehicles, or via heliborne assault troop insertion.
|
||||
</p><p><strong>Assets & Support</strong> - Available assets include two Huey helicopters for close air support. Commanders may opt to initiate the operation with light vehicles, such as Humvees, employing breakthrough tactics to avoid direct confrontations with enemy forces. Alternatively, the use of heavier ground units is an option for commanders seeking a more conventional combat engagement. Upon the recapture of Sukhumi, additional squadrons from Incirlik, Turkey, will become operational.
|
||||
</p><p><strong>Secondary Objective</strong> - Consider prioritising the capture of the Batumi airfield, located to the south, for its strategic value as a forward operating base. Commanders should be aware of the inherent risks, as the airfield is relatively small and lacks air defence systems, posing a significant threat to any stationed aircraft.</p>
|
||||
miz: operation_vectrons_claw.miz
|
||||
performance: 1
|
||||
recommended_start_date: 2008-08-08
|
||||
version: "11.0"
|
||||
control_points:
|
||||
Squadrons from Incirlik:
|
||||
ferry_only: true
|
||||
squadrons:
|
||||
Blue CV-1:
|
||||
- primary: BARCAP
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-14B Tomcat
|
||||
size: 16
|
||||
- primary: SEAD
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F/A-18C Hornet (Lot 20)
|
||||
size: 60
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- S-3B Viking
|
||||
size: 8
|
||||
- primary: AEW&C
|
||||
aircraft:
|
||||
- E-2C Hawkeye
|
||||
size: 2
|
||||
- primary: Refueling
|
||||
aircraft:
|
||||
- S-3B Tanker
|
||||
size: 2
|
||||
- primary: Air Assault
|
||||
secondary: any
|
||||
aircraft:
|
||||
- UH-60L
|
||||
- UH-60A
|
||||
size: 2
|
||||
Blue LHA:
|
||||
- primary: BAI
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- AV-8B Harrier II Night Attack
|
||||
size: 20
|
||||
Squadrons from Incirlik:
|
||||
- primary: CAS
|
||||
secondary: any
|
||||
aircraft:
|
||||
- AH-64D Apache Longbow
|
||||
size: 4
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- A-10C Thunderbolt II (Suite 7)
|
||||
size: 6
|
||||
- primary: DEAD
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-16CM Fighting Falcon (Block 50)
|
||||
size: 16
|
||||
- primary: BAI
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-15E Strike Eagle (Suite 4+)
|
||||
size: 8
|
||||
- primary: Refueling
|
||||
aircraft:
|
||||
- KC-135 Stratotanker
|
||||
size: 1
|
||||
Bombers from RAF Fairford:
|
||||
- primary: Anti-ship
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- B-52H Stratofortress
|
||||
size: 4
|
||||
Bombers from Base Aérea de Morón:
|
||||
- primary: OCA/Runway
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- B-1B Lancer
|
||||
size: 4
|
||||
#FARPs
|
||||
UNOMIG Sector HQ:
|
||||
- primary: Transport
|
||||
secondary: any
|
||||
aircraft:
|
||||
- UH-1H Iroquois
|
||||
size: 2
|
||||
Dzhugba:
|
||||
- primary: CAS
|
||||
secondary: any
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 4
|
||||
#Sukhumi-Babushara
|
||||
20:
|
||||
- primary: TARCAP
|
||||
secondary: air-to-air
|
||||
aircraft:
|
||||
- MiG-29S Fulcrum-C
|
||||
size: 8
|
||||
- primary: BAI
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Su-25T Frogfoot
|
||||
size: 12
|
||||
#Sochi-Adler
|
||||
18:
|
||||
- primary: Escort
|
||||
secondary: air-to-air
|
||||
aircraft:
|
||||
- Su-27 Flanker-B
|
||||
size: 8
|
||||
- primary: SEAD
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Su-24M Fencer-D
|
||||
size: 20
|
||||
- primary: DEAD
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Su-34 Fullback
|
||||
size: 20
|
||||
#Maykop-Khanskaya
|
||||
16:
|
||||
- primary: Strike
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Tu-22M3 Backfire-C
|
||||
size: 20
|
||||
#Anapa-Vityazevo
|
||||
12:
|
||||
- primary: Strike
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Tu-95MS Bear-H
|
||||
size: 16
|
||||
Red CV:
|
||||
- primary: BARCAP
|
||||
secondary: any
|
||||
aircraft:
|
||||
- SU-33 Flanker-D
|
||||
---
|
||||
name: Caucasus - Operation Vectron's Claw
|
||||
theater: Caucasus
|
||||
authors: Starfire
|
||||
recommended_player_faction: USA 2005
|
||||
recommended_enemy_faction: Russia 2010
|
||||
description:
|
||||
<p>United Nations Observer Mission in Georgia (UNOMIG) observers stationed in
|
||||
Georgia to monitor the ceasefire between Georgia and Abkhazia have been cut
|
||||
off from friendly forces by Russian troops backing the separatist state. The
|
||||
UNOMIG HQ at Sukhumi has been taken, and a small contingent of observers and
|
||||
troops at the Zugdidi Sector HQ will have to make a run for the coast,
|
||||
supported by offshore US naval aircraft. The contingent is aware that their
|
||||
best shot at survival is to swiftly retake Sukhumi before Russian forces have
|
||||
a chance to dig in, so that friendly ground forces can land and reinforce
|
||||
them.</p><p><strong>Note:</strong> Ground unit purchase will not be available
|
||||
past Turn 0 until Sukhumi is retaken, so it is imperative you reach Sukhumi
|
||||
with at least one surviving ground unit to capture it. Two Hueys are available
|
||||
at Zugdidi for some close air support. The player can either play the first
|
||||
leg of the scenario as an evacuation with a couple of light vehicles (e.g.
|
||||
Humvees) set on breakthrough (modifying waypoints in the mission editor so
|
||||
they are not charging head-on into enemy ground forces is suggested), or
|
||||
purchase heavier ground units if they wish to experience a more traditional
|
||||
frontline ground war. Once Sukhumi has been captured, squadrons based in
|
||||
Incirlik Turkey can be ferried in via the "From Incirlik" off-map spawn
|
||||
point.</p>
|
||||
miz: operation_vectrons_claw.miz
|
||||
performance: 1
|
||||
recommended_start_date: 2008-08-08
|
||||
version: "11.0"
|
||||
control_points:
|
||||
Squadrons from Incirlik:
|
||||
ferry_only: true
|
||||
squadrons:
|
||||
Blue CV-1:
|
||||
- primary: BARCAP
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-14B Tomcat
|
||||
size: 16
|
||||
- primary: SEAD
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F/A-18C Hornet (Lot 20)
|
||||
size: 60
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- S-3B Viking
|
||||
size: 8
|
||||
- primary: AEW&C
|
||||
aircraft:
|
||||
- E-2C Hawkeye
|
||||
size: 2
|
||||
- primary: Refueling
|
||||
aircraft:
|
||||
- S-3B Tanker
|
||||
size: 2
|
||||
- primary: Air Assault
|
||||
secondary: any
|
||||
aircraft:
|
||||
- UH-60L
|
||||
- UH-60A
|
||||
size: 2
|
||||
Blue LHA:
|
||||
- primary: BAI
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- AV-8B Harrier II Night Attack
|
||||
size: 20
|
||||
Squadrons from Incirlik:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- AH-64D Apache Longbow
|
||||
size: 4
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- A-10C Thunderbolt II (Suite 7)
|
||||
size: 6
|
||||
- primary: DEAD
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-16CM Fighting Falcon (Block 50)
|
||||
size: 16
|
||||
- primary: BAI
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-15E Strike Eagle (Suite 4+)
|
||||
size: 8
|
||||
- primary: Refueling
|
||||
aircraft:
|
||||
- KC-135 Stratotanker
|
||||
size: 1
|
||||
Bombers from RAF Fairford:
|
||||
- primary: Anti-ship
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- B-52H Stratofortress
|
||||
size: 4
|
||||
Bombers from Base Aérea de Morón:
|
||||
- primary: OCA/Runway
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- B-1B Lancer
|
||||
size: 4
|
||||
#FARPs
|
||||
UNOMIG Sector HQ:
|
||||
- primary: Transport
|
||||
secondary: any
|
||||
aircraft:
|
||||
- UH-1H Iroquois
|
||||
size: 2
|
||||
Dzhugba:
|
||||
- primary: CAS
|
||||
secondary: any
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 4
|
||||
#Sukhumi-Babushara
|
||||
20:
|
||||
- primary: TARCAP
|
||||
secondary: air-to-air
|
||||
aircraft:
|
||||
- MiG-29S Fulcrum-C
|
||||
size: 8
|
||||
- primary: BAI
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Su-25T Frogfoot
|
||||
size: 12
|
||||
#Sochi-Adler
|
||||
18:
|
||||
- primary: Escort
|
||||
secondary: air-to-air
|
||||
aircraft:
|
||||
- Su-27 Flanker-B
|
||||
size: 8
|
||||
- primary: SEAD
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Su-24M Fencer-D
|
||||
size: 20
|
||||
- primary: DEAD
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Su-34 Fullback
|
||||
size: 20
|
||||
#Maykop-Khanskaya
|
||||
16:
|
||||
- primary: Anti-ship
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Tu-22M3 Backfire-C
|
||||
size: 20
|
||||
#Anapa-Vityazevo
|
||||
12:
|
||||
- primary: Strike
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Tu-95MS Bear-H
|
||||
size: 16
|
||||
Red CV:
|
||||
- primary: BARCAP
|
||||
secondary: any
|
||||
aircraft:
|
||||
- SU-33 Flanker-D
|
||||
size: 16
|
||||
@@ -5,27 +5,23 @@ authors: Starfire
|
||||
recommended_player_faction: USA 1970
|
||||
recommended_enemy_faction: NVA 1970
|
||||
description:
|
||||
<p>Operation Velvet Thunder is a high-intensity training exercise designed to
|
||||
prepare fresh troops for the challenges they will face in Vietnam. The dense
|
||||
jungle and rugged terrain of the Mariana Islands will provide a realistic
|
||||
backdrop, allowing our forces to hone essential skills in jungle warfare,
|
||||
unconventional tactics, and counterinsurgency operations. There are multiple
|
||||
checkpoints scattered across the area of operations that will have to be
|
||||
captured by Air Assault. Due to the limited size and availability of LZs, it
|
||||
<p>Operation Velvet Thunder is a high-intensity training exercise designed to
|
||||
prepare fresh troops for the challenges they will face in Vietnam. The dense
|
||||
jungle and rugged terrain of the Mariana Islands will provide a realistic
|
||||
backdrop, allowing our forces to hone essential skills in jungle warfare,
|
||||
unconventional tactics, and counterinsurgency operations. There are multiple
|
||||
checkpoints scattered across the area of operations that will have to be
|
||||
captured by Air Assault. Due to the limited size and availability of LZs, it
|
||||
is vital to pay close attention to where you designate troop drop off zones.
|
||||
</p><p><strong>Note:</strong> This campaign is intended to be played with the
|
||||
A-4 Skyhawk and OV-10a aircraft mods active. The C-101CC has also been included
|
||||
as a stand-in for the Cessna A-37 Dragonfly in order to provide a CAS platform
|
||||
of roughly equivalent combat capability. This campaign will be updated to use
|
||||
</p><p><strong>Note:</strong> This campaign is intended to be played with the
|
||||
A-4 Skyhawk and OV-10a aircraft mods active. The C-101CC has also been included
|
||||
as a stand-in for the Cessna A-37 Dragonfly in order to provide a CAS platform
|
||||
of roughly equivalent combat capability. This campaign will be updated to use
|
||||
Heatblur's F-4 Phantom II once it is in early access.</p>
|
||||
miz: operation_velvet_thunder.miz
|
||||
performance: 1
|
||||
recommended_start_date: 1970-11-29
|
||||
version: "11.0"
|
||||
settings:
|
||||
a4_skyhawk: true
|
||||
f4bc_phantom: true
|
||||
ov10a_bronco: true
|
||||
squadrons:
|
||||
#Andersen AFB
|
||||
6:
|
||||
@@ -47,9 +43,8 @@ squadrons:
|
||||
- primary: SEAD
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-4C Phantom II
|
||||
- F-4E Phantom II
|
||||
size: 8
|
||||
size: 16
|
||||
- primary: Strike
|
||||
secondary: any
|
||||
aircraft:
|
||||
@@ -96,4 +91,4 @@ squadrons:
|
||||
secondary: any
|
||||
aircraft:
|
||||
- MiG-21bis Fishbed-N
|
||||
size: 8
|
||||
size: 8
|
||||
|
||||
@@ -90,13 +90,6 @@
|
||||
"hertz": 343000,
|
||||
"channel": null
|
||||
},
|
||||
"world_13": {
|
||||
"name": "GHI",
|
||||
"callsign": "GHI",
|
||||
"beacon_type": 5,
|
||||
"hertz": 113800000,
|
||||
"channel": 85
|
||||
},
|
||||
"airfield2_0": {
|
||||
"name": "",
|
||||
"callsign": "IADA",
|
||||
@@ -153,20 +146,6 @@
|
||||
"hertz": 365000,
|
||||
"channel": null
|
||||
},
|
||||
"airfield67_0": {
|
||||
"name": "",
|
||||
"callsign": "IAMN",
|
||||
"beacon_type": 13,
|
||||
"hertz": 109500000,
|
||||
"channel": null
|
||||
},
|
||||
"airfield67_1": {
|
||||
"name": "",
|
||||
"callsign": "IAMN",
|
||||
"beacon_type": 14,
|
||||
"hertz": 109500000,
|
||||
"channel": null
|
||||
},
|
||||
"airfield6_0": {
|
||||
"name": "KALDE",
|
||||
"callsign": "KAD",
|
||||
@@ -254,8 +233,8 @@
|
||||
"airfield7_4": {
|
||||
"name": "DAMASCUS",
|
||||
"callsign": "DAL",
|
||||
"beacon_type": 9,
|
||||
"hertz": 342000,
|
||||
"beacon_type": 10,
|
||||
"hertz": 342000000,
|
||||
"channel": null
|
||||
},
|
||||
"airfield7_5": {
|
||||
@@ -338,8 +317,8 @@
|
||||
"airfield41_1": {
|
||||
"name": "ALANYA/GAZIPASA",
|
||||
"callsign": "GZP",
|
||||
"beacon_type": 3,
|
||||
"hertz": 114200000,
|
||||
"beacon_type": 2,
|
||||
"hertz": 0,
|
||||
"channel": 89
|
||||
},
|
||||
"airfield41_2": {
|
||||
@@ -426,20 +405,6 @@
|
||||
"hertz": 111700000,
|
||||
"channel": null
|
||||
},
|
||||
"airfield65_0": {
|
||||
"name": "",
|
||||
"callsign": "",
|
||||
"beacon_type": 14,
|
||||
"hertz": 109100000,
|
||||
"channel": null
|
||||
},
|
||||
"airfield65_1": {
|
||||
"name": "",
|
||||
"callsign": "",
|
||||
"beacon_type": 13,
|
||||
"hertz": 109100000,
|
||||
"channel": null
|
||||
},
|
||||
"airfield47_0": {
|
||||
"name": "",
|
||||
"callsign": "ILC",
|
||||
@@ -503,34 +468,6 @@
|
||||
"hertz": 358000,
|
||||
"channel": null
|
||||
},
|
||||
"airfield68_0": {
|
||||
"name": "",
|
||||
"callsign": "",
|
||||
"beacon_type": 13,
|
||||
"hertz": 112910000,
|
||||
"channel": null
|
||||
},
|
||||
"airfield68_1": {
|
||||
"name": "",
|
||||
"callsign": "",
|
||||
"beacon_type": 13,
|
||||
"hertz": 112900000,
|
||||
"channel": null
|
||||
},
|
||||
"airfield68_2": {
|
||||
"name": "",
|
||||
"callsign": "",
|
||||
"beacon_type": 14,
|
||||
"hertz": 112910000,
|
||||
"channel": null
|
||||
},
|
||||
"airfield68_3": {
|
||||
"name": "",
|
||||
"callsign": "",
|
||||
"beacon_type": 14,
|
||||
"hertz": 112900000,
|
||||
"channel": null
|
||||
},
|
||||
"airfield27_0": {
|
||||
"name": "ALEPPO",
|
||||
"callsign": "ALE",
|
||||
@@ -608,27 +545,6 @@
|
||||
"hertz": null,
|
||||
"channel": 79
|
||||
},
|
||||
"airfield64_0": {
|
||||
"name": "PrinceHussein",
|
||||
"callsign": "ABC",
|
||||
"beacon_type": 4,
|
||||
"hertz": 0,
|
||||
"channel": 106
|
||||
},
|
||||
"airfield64_1": {
|
||||
"name": "",
|
||||
"callsign": "ABC",
|
||||
"beacon_type": 13,
|
||||
"hertz": 111400000,
|
||||
"channel": null
|
||||
},
|
||||
"airfield64_2": {
|
||||
"name": "",
|
||||
"callsign": "ABC",
|
||||
"beacon_type": 14,
|
||||
"hertz": 111400000,
|
||||
"channel": null
|
||||
},
|
||||
"airfield30_0": {
|
||||
"name": "RAMATDAVID",
|
||||
"callsign": "RMD",
|
||||
@@ -664,20 +580,6 @@
|
||||
"hertz": 115300000,
|
||||
"channel": null
|
||||
},
|
||||
"airfield58_0": {
|
||||
"name": "Sanliurfa",
|
||||
"callsign": "GAP",
|
||||
"beacon_type": 3,
|
||||
"hertz": 113200000,
|
||||
"channel": 79
|
||||
},
|
||||
"airfield58_1": {
|
||||
"name": "Sanliurfa",
|
||||
"callsign": "GAP",
|
||||
"beacon_type": 9,
|
||||
"hertz": 391000,
|
||||
"channel": null
|
||||
},
|
||||
"airfield40_0": {
|
||||
"name": "Cheka",
|
||||
"callsign": "CAK",
|
||||
|
||||
@@ -1,15 +1,19 @@
|
||||
---
|
||||
country: Australia
|
||||
name: Australia 2005
|
||||
authors: 'Khopa, SpaceEnthusiast'
|
||||
description: >-
|
||||
<p>The Australian army in 2005.</p><p>Some units might not be accurate, but
|
||||
were picked to represent at best this army.</p>
|
||||
authors: Khopa, SpaceEnthusiast
|
||||
description:
|
||||
<p>The Australian army in 2005.</p><p>Some units might not be accurate,
|
||||
but were picked to represent at best this army.</p>
|
||||
aircrafts:
|
||||
- AH-1W SuperCobra
|
||||
- C-130J-30 Super Hercules
|
||||
- F/A-18C Hornet (Lot 20)
|
||||
- SH-60B Seahawk
|
||||
- UH-1H Iroquois
|
||||
- F/A-18E Super Hornet
|
||||
- F/A-18F Super Hornet
|
||||
- EA-18G Growler
|
||||
awacs:
|
||||
- E-3A
|
||||
tankers:
|
||||
@@ -38,7 +42,7 @@ missiles: []
|
||||
air_defense_units:
|
||||
- SAM Hawk SR (AN/MPQ-50)
|
||||
requirements:
|
||||
C-130J-30 Super Hercules Mod by Anubis: 'https://forums.eagle.ru/topic/252075-dcs-super-hercules-mod-by-anubis/'
|
||||
C-130J-30 Super Hercules Mod by Anubis: https://forums.eagle.ru/topic/252075-dcs-super-hercules-mod-by-anubis/
|
||||
carrier_names: []
|
||||
helicopter_carrier_names:
|
||||
- HMAS Canberra
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
country: Australia
|
||||
name: Australia 2009
|
||||
authors: 'Khopa, SpaceEnthusiast, Chilli'
|
||||
description: >-
|
||||
<p>The Australian army in 2005.</p><p>Some units might not be accurate, but
|
||||
were picked to represent at best this army.</p>
|
||||
aircrafts:
|
||||
- AH-1W SuperCobra
|
||||
- C-130J-30 Super Hercules
|
||||
- F/A-18C Hornet (Lot 20)
|
||||
- F/A-18F Super Hornet
|
||||
- EA-18G Growler
|
||||
- SH-60B Seahawk
|
||||
- UH-1H Iroquois
|
||||
awacs:
|
||||
- E-3A
|
||||
tankers:
|
||||
- KC-130
|
||||
- KC-135 Stratotanker
|
||||
frontline_units:
|
||||
- FV510 Warrior
|
||||
- LAV-25
|
||||
- Leopard 1A3
|
||||
- M113
|
||||
- M1A2 Abrams
|
||||
artillery_units: []
|
||||
logistics_units:
|
||||
- Truck M818 6x6
|
||||
infantry_units:
|
||||
- Infantry M249
|
||||
- Infantry M4
|
||||
- MANPADS Stinger
|
||||
preset_groups:
|
||||
- Hawk
|
||||
- Rapier
|
||||
naval_units:
|
||||
- DDG Arleigh Burke IIa
|
||||
- LHA-1 Tarawa
|
||||
missiles: []
|
||||
air_defense_units:
|
||||
- SAM Hawk SR (AN/MPQ-50)
|
||||
requirements:
|
||||
C-130J-30 Super Hercules Mod by Anubis: 'https://forums.eagle.ru/topic/252075-dcs-super-hercules-mod-by-anubis/'
|
||||
carrier_names: []
|
||||
helicopter_carrier_names:
|
||||
- HMAS Canberra
|
||||
- HMAS Adelaide
|
||||
has_jtac: true
|
||||
jtac_unit: MQ-9 Reaper
|
||||
liveries_overrides:
|
||||
F/A-18C Hornet (Lot 20):
|
||||
- Australian 75th Squadron
|
||||
- Australian 77th Squadron
|
||||
unrestricted_satnav: true
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
country: Egypt
|
||||
name: Egypt 2000
|
||||
name: Egypt 2000s
|
||||
authors: Starfire
|
||||
description: <p>Egyptian military in the 21st century.</p>
|
||||
locales:
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
---
|
||||
country: USA
|
||||
name: US Navy 2005
|
||||
authors: Fuzzle
|
||||
@@ -7,13 +8,14 @@ locales:
|
||||
aircrafts:
|
||||
- F-14B Tomcat
|
||||
- F/A-18C Hornet (Lot 20)
|
||||
- F/A-18E Super Hornet
|
||||
- F/A-18F Super Hornet
|
||||
- AV-8B Harrier II Night Attack
|
||||
- AH-1W SuperCobra
|
||||
- S-3B Viking
|
||||
- SH-60B Seahawk
|
||||
- UH-1H Iroquois
|
||||
- F/A-18E Super Hornet
|
||||
- F/A-18F Super Hornet
|
||||
- EA-18G Growler
|
||||
awacs:
|
||||
- E-2C Hawkeye
|
||||
tankers:
|
||||
|
||||
@@ -1,76 +0,0 @@
|
||||
country: USA
|
||||
name: US Navy 2009
|
||||
authors: Fuzzle, Chili
|
||||
description: <p>A modern representation of the US Navy/Marine Corps.</p>
|
||||
locales:
|
||||
- en_US
|
||||
aircrafts:
|
||||
- F/A-18C Hornet (Lot 20)
|
||||
- F/A-18E Super Hornet
|
||||
- F/A-18F Super Hornet
|
||||
- EA-18G Growler
|
||||
- AV-8B Harrier II Night Attack
|
||||
- AH-1W SuperCobra
|
||||
- S-3B Viking
|
||||
- SH-60B Seahawk
|
||||
- UH-1H Iroquois
|
||||
awacs:
|
||||
- E-2C Hawkeye
|
||||
tankers:
|
||||
- S-3B Tanker
|
||||
frontline_units:
|
||||
- M113
|
||||
- M1043 HMMWV (M2 HMG)
|
||||
- M1045 HMMWV (BGM-71 TOW)
|
||||
- M1A2 Abrams
|
||||
- LAV-25
|
||||
- M163 Vulcan Air Defense System
|
||||
artillery_units:
|
||||
- M270 Multiple Launch Rocket System
|
||||
logistics_units:
|
||||
- Truck M818 6x6
|
||||
infantry_units:
|
||||
- Infantry M4
|
||||
- Infantry M249
|
||||
- MANPADS Stinger
|
||||
preset_groups:
|
||||
- Hawk
|
||||
- Patriot
|
||||
naval_units:
|
||||
- FFG Oliver Hazard Perry
|
||||
- DDG Arleigh Burke IIa
|
||||
- CG Ticonderoga
|
||||
- LHA-1 Tarawa
|
||||
- CVN-74 John C. Stennis
|
||||
missiles: []
|
||||
air_defense_units:
|
||||
- SAM Hawk SR (AN/MPQ-50)
|
||||
- M163 Vulcan Air Defense System
|
||||
- M48 Chaparral
|
||||
requirements: {}
|
||||
carrier_names:
|
||||
- CVN-71 Theodore Roosevelt
|
||||
- CVN-72 Abraham Lincoln
|
||||
- CVN-73 George Washington
|
||||
- CVN-74 John C. Stennis
|
||||
- CVN-75 Harry S. Truman
|
||||
helicopter_carrier_names:
|
||||
- LHA-1 Tarawa
|
||||
- LHA-2 Saipan
|
||||
- LHA-3 Belleau Wood
|
||||
- LHA-4 Nassau
|
||||
- LHA-5 Peleliu
|
||||
has_jtac: true
|
||||
jtac_unit: MQ-9 Reaper
|
||||
doctrine: modern
|
||||
liveries_overrides:
|
||||
F-14B Tomcat:
|
||||
- VF-142 Ghostriders
|
||||
F/A-18C Hornet (Lot 20):
|
||||
- VMFA-251 high visibility
|
||||
AV-8B Harrier II Night Attack:
|
||||
- VMAT-542
|
||||
AH-1W SuperCobra:
|
||||
- Marines
|
||||
UH-1H Iroquois:
|
||||
- US NAVY
|
||||
@@ -11,7 +11,6 @@ kill_events = {} -- killed units will be added via S_EVENT_KILL
|
||||
base_capture_events = {}
|
||||
destroyed_objects_positions = {} -- will be added via S_EVENT_DEAD event
|
||||
killed_ground_units = {} -- keep track of static ground object deaths
|
||||
unit_hit_point_updates = {} -- stores updates to unit hit points, triggered by S_EVENT_HIT
|
||||
mission_ended = false
|
||||
|
||||
local function ends_with(str, ending)
|
||||
@@ -42,7 +41,6 @@ function write_state()
|
||||
["mission_ended"] = mission_ended,
|
||||
["destroyed_objects_positions"] = destroyed_objects_positions,
|
||||
["killed_ground_units"] = killed_ground_units,
|
||||
["unit_hit_point_updates"] = unit_hit_point_updates,
|
||||
}
|
||||
if not json then
|
||||
local message = string.format("Unable to save DCS Liberation state to %s, JSON library is not loaded !", _debriefing_file_location)
|
||||
@@ -148,14 +146,6 @@ write_state_error_handling = function()
|
||||
mist.scheduleFunction(write_state_error_handling, {}, timer.getTime() + WRITESTATE_SCHEDULE_IN_SECONDS)
|
||||
end
|
||||
|
||||
function update_hit_points(event)
|
||||
local update = {}
|
||||
update.name = event.target:getName()
|
||||
update.hit_points = event.target:getLife()
|
||||
unit_hit_point_updates[#unit_hit_point_updates + 1] = update
|
||||
write_state()
|
||||
end
|
||||
|
||||
activeWeapons = {}
|
||||
local function onEvent(event)
|
||||
if event.id == world.event.S_EVENT_CRASH and event.initiator then
|
||||
@@ -185,15 +175,6 @@ local function onEvent(event)
|
||||
destroyed_objects_positions[#destroyed_objects_positions + 1] = destruction
|
||||
write_state()
|
||||
end
|
||||
|
||||
if event.id == world.event.S_EVENT_HIT then
|
||||
target_category = event.target:getCategory()
|
||||
if target_category == Object.Category.UNIT then
|
||||
-- check on the health of the target 1 second after as the life value is sometimes not updated
|
||||
-- at the time of the event
|
||||
timer.scheduleFunction(update_hit_points, event, timer.getTime() + 1)
|
||||
end
|
||||
end
|
||||
|
||||
if event.id == world.event.S_EVENT_MISSION_END then
|
||||
mission_ended = true
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
../../submodules/dcs/dcs
|
||||
1
resources/tools/dcs
Symbolic link
@@ -0,0 +1 @@
|
||||
../../submodules/dcs/dcs
|
||||
@@ -80,14 +80,6 @@ def beacons_from_terrain(dcs_path: Path, path: Path) -> Iterable[tuple[str, Beac
|
||||
)
|
||||
)
|
||||
|
||||
lua.execute(
|
||||
textwrap.dedent(
|
||||
"""
|
||||
function math.pow(x,y) return x^y end
|
||||
"""
|
||||
)
|
||||
)
|
||||
|
||||
bind_gettext = lua.eval(
|
||||
textwrap.dedent(
|
||||
"""\
|
||||
|
||||
BIN
resources/ui/units/aircrafts/banners/EA-18G.jpg
Normal file
|
After Width: | Height: | Size: 989 KiB |
|
Before Width: | Height: | Size: 89 KiB |
BIN
resources/ui/units/aircrafts/banners/FA-18E.jpeg
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
resources/ui/units/aircrafts/banners/FA-18F.jpeg
Normal file
|
After Width: | Height: | Size: 226 KiB |
|
Before Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
BIN
resources/ui/units/aircrafts/icons/EA-18G_24.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
BIN
resources/ui/units/aircrafts/icons/FA-18E_24.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
BIN
resources/ui/units/aircrafts/icons/FA-18F_24.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
@@ -1,42 +0,0 @@
|
||||
carrier_capable: true
|
||||
description:
|
||||
"The Boeing EA-18G Growler is an American carrier-based electronic warfare aircraft,
|
||||
a specialized version of the two-seat F/A-18F Super Hornet. The EA-18G replaced the
|
||||
Northrop Grumman EA-6B Prowlers in service with the United States Navy."
|
||||
introduced: 1999
|
||||
manufacturer: McDonnell Douglas
|
||||
origin: USA
|
||||
price: 25
|
||||
role: Carrier-based Multirole Fighter
|
||||
fuel:
|
||||
# Parking A1 to RWY 32 at Akrotiri.
|
||||
taxi: 170
|
||||
# AB takeoff to 350/0.85, reduce to MIL and maintain 350 to 25k ft.
|
||||
climb_ppm: 44.25
|
||||
# 0.85 mach for 100NM.
|
||||
cruise_ppm: 22.1
|
||||
# ~0.9 mach for 100NM. Occasional AB use.
|
||||
combat_ppm: 27.5
|
||||
min_safe: 2000
|
||||
variants:
|
||||
EA-18G Growler: {}
|
||||
radios:
|
||||
intra_flight: AN/ARC-210
|
||||
inter_flight: AN/ARC-210
|
||||
channels:
|
||||
type: common
|
||||
# DCS will clobber channel 1 of the first radio compatible with the flight's
|
||||
# assigned frequency. Since the F/A-18's two radios are both AN/ARC-210s,
|
||||
# radio 1 will be compatible regardless of which frequency is assigned, so
|
||||
# we must use radio 1 for the intra-flight radio.
|
||||
intra_flight_radio_index: 1
|
||||
inter_flight_radio_index: 2
|
||||
utc_kneeboard: true
|
||||
# default_overrides:
|
||||
# HelmetMountedDevice: 1
|
||||
# InnerBoard: 0
|
||||
# OuterBoard: 0
|
||||
tasks:
|
||||
DEAD: 500
|
||||
SEAD: 600
|
||||
hit_points: 20
|
||||
47
resources/units/aircraft/EA-18G_growler.yaml
Normal file
@@ -0,0 +1,47 @@
|
||||
carrier_capable: true
|
||||
description:
|
||||
'The EA-18G Growler is twin engine, supersonic Electronic Warfare Aircraft that is flown
|
||||
by a pilot and a WSO (Weapon Systems Officer) in a "glass cockpit". It combines extreme maneuverability , a
|
||||
deadly arsenal of weapons, and the ability to operate from an aircraft carrier.
|
||||
Operated by several nations, this multi-role fighter has been instrumental in conflicts
|
||||
from 2009 to today.
|
||||
|
||||
The flight capabilities of the Growler closely mirror those of the F/A-18E/F.
|
||||
This characteristic allows the Growler to excel in both escort jamming and the conventional standoff jamming mission,
|
||||
which involves radar jamming and deception. Growlers can seamlessly accompany F/A-18s throughout
|
||||
all stages of an attack mission. To enhance the Growler's stability during electronic warfare operations,
|
||||
Boeing made modifications to the leading edge fairings and wing fold hinge fairings, incorporating wing fences and
|
||||
aileron "tripper strips".'
|
||||
|
||||
introduced: 1999
|
||||
manufacturer: Boeing Defense, Space & Security
|
||||
origin: USA
|
||||
price: 32
|
||||
role: Carrier-based Electronic Warfare Aircraft
|
||||
|
||||
default_livery: "VAQ-139"
|
||||
fuel:
|
||||
|
||||
variants:
|
||||
|
||||
radios:
|
||||
intra_flight: AN/ARC-210
|
||||
inter_flight: AN/ARC-210
|
||||
channels:
|
||||
type: common
|
||||
# DCS will clobber channel 1 of the first radio compatible with the flight's
|
||||
# assigned frequency. Since the EA-18's two radios are both AN/ARC-210s,
|
||||
# radio 1 will be compatible regardless of which frequency is assigned, so
|
||||
# we must use radio 1 for the intra-flight radio.
|
||||
intra_flight_radio_index: 1
|
||||
inter_flight_radio_index: 2
|
||||
utc_kneeboard: true
|
||||
# default_overrides:
|
||||
# HelmetMountedDevice: 1
|
||||
# InnerBoard: 0
|
||||
# OuterBoard: 0
|
||||
tasks:
|
||||
DEAD: 600
|
||||
SEAD: 500
|
||||
EA: 750
|
||||
hit_points: 20
|
||||
@@ -1,78 +0,0 @@
|
||||
carrier_capable: true
|
||||
description:
|
||||
"The F/A-18E Super Hornet is a single-seat, twin engine, carrier-capable, multirole
|
||||
fighter aircraft. The Super Hornets are larger and more advanced derivatives of the
|
||||
McDonnell Douglas F/A-18C and D Hornets, also known as legacy Hornets.
|
||||
|
||||
|
||||
The Super Hornet is equipped with a large suite of sensors that includes a radar, targeting
|
||||
pod, and a helmet mounted sight. In addition to its internal 20mm cannon, the Super Hornet
|
||||
can be armed with a large assortment of unguided bombs and rockets, laser and GPS-guided
|
||||
bombs, air-to-surface missiles of all sorts, and both radar and infrared-guided
|
||||
air-to-air missiles.
|
||||
|
||||
|
||||
The Super Hornet is also known for its extreme, slow-speed maneuverability in a dogfight.
|
||||
Although incredibly deadly, the Super Hornet is also a very easy aircraft to fly."
|
||||
introduced: 1999
|
||||
manufacturer: McDonnell Douglas
|
||||
origin: USA
|
||||
price: 25
|
||||
role: Carrier-based Multirole Fighter
|
||||
fuel:
|
||||
# Parking A1 to RWY 32 at Akrotiri.
|
||||
taxi: 170
|
||||
# AB takeoff to 350/0.85, reduce to MIL and maintain 350 to 25k ft.
|
||||
climb_ppm: 44.25
|
||||
# 0.85 mach for 100NM.
|
||||
cruise_ppm: 22.1
|
||||
# ~0.9 mach for 100NM. Occasional AB use.
|
||||
combat_ppm: 27.5
|
||||
min_safe: 2000
|
||||
variants:
|
||||
F/A-18E Super Hornet: {}
|
||||
radios:
|
||||
intra_flight: AN/ARC-210
|
||||
inter_flight: AN/ARC-210
|
||||
channels:
|
||||
type: common
|
||||
# DCS will clobber channel 1 of the first radio compatible with the flight's
|
||||
# assigned frequency. Since the F/A-18's two radios are both AN/ARC-210s,
|
||||
# radio 1 will be compatible regardless of which frequency is assigned, so
|
||||
# we must use radio 1 for the intra-flight radio.
|
||||
intra_flight_radio_index: 1
|
||||
inter_flight_radio_index: 2
|
||||
utc_kneeboard: true
|
||||
# default_overrides:
|
||||
# HelmetMountedDevice: 1
|
||||
# InnerBoard: 0
|
||||
# OuterBoard: 0
|
||||
tasks:
|
||||
Anti-ship: 150
|
||||
BAI: 740
|
||||
BARCAP: 450
|
||||
CAS: 740
|
||||
DEAD: 440
|
||||
Escort: 450
|
||||
Fighter sweep: 450
|
||||
Intercept: 450
|
||||
OCA/Aircraft: 740
|
||||
OCA/Runway: 600
|
||||
SEAD: 430
|
||||
SEAD Escort: 430
|
||||
Strike: 600
|
||||
TARCAP: 450
|
||||
weapon_injections: # AGM-154B only works for AI
|
||||
2:
|
||||
- "{AGM-154B}"
|
||||
- "{BRU57_2*AGM-154B}"
|
||||
3:
|
||||
- "{AGM-154B}"
|
||||
- "{BRU57_2*AGM-154B}"
|
||||
7:
|
||||
- "{AGM-154B}"
|
||||
- "{BRU57_2*AGM-154B}"
|
||||
8:
|
||||
- "{AGM-154B}"
|
||||
- "{BRU57_2*AGM-154B}"
|
||||
hit_points: 20
|
||||
0
resources/units/aircraft/FA-18E_super-hornet.yaml
Normal file
@@ -1,78 +0,0 @@
|
||||
carrier_capable: true
|
||||
description:
|
||||
"The F/A-18F Super Hornet is a tandem-seat, twin engine, carrier-capable, multirole
|
||||
fighter aircraft. The Super Hornets are larger and more advanced derivatives of the
|
||||
McDonnell Douglas F/A-18C and D Hornets, also known as legacy Hornets.
|
||||
|
||||
|
||||
The Super Hornet is equipped with a large suite of sensors that includes a radar, targeting
|
||||
pod, and a helmet mounted sight. In addition to its internal 20mm cannon, the Super Hornet
|
||||
can be armed with a large assortment of unguided bombs and rockets, laser and GPS-guided
|
||||
bombs, air-to-surface missiles of all sorts, and both radar and infrared-guided
|
||||
air-to-air missiles.
|
||||
|
||||
|
||||
The Super Hornet is also known for its extreme, slow-speed maneuverability in a dogfight.
|
||||
Although incredibly deadly, the Super Hornet is also a very easy aircraft to fly."
|
||||
introduced: 2006
|
||||
manufacturer: Boeing
|
||||
origin: USA
|
||||
price: 25
|
||||
role: Carrier-based Multirole Fighter
|
||||
fuel:
|
||||
# Parking A1 to RWY 32 at Akrotiri.
|
||||
taxi: 170
|
||||
# AB takeoff to 350/0.85, reduce to MIL and maintain 350 to 25k ft.
|
||||
climb_ppm: 44.25
|
||||
# 0.85 mach for 100NM.
|
||||
cruise_ppm: 22.1
|
||||
# ~0.9 mach for 100NM. Occasional AB use.
|
||||
combat_ppm: 27.5
|
||||
min_safe: 2000
|
||||
variants:
|
||||
F/A-18F Super Hornet: {}
|
||||
radios:
|
||||
intra_flight: AN/ARC-210
|
||||
inter_flight: AN/ARC-210
|
||||
channels:
|
||||
type: common
|
||||
# DCS will clobber channel 1 of the first radio compatible with the flight's
|
||||
# assigned frequency. Since the F/A-18's two radios are both AN/ARC-210s,
|
||||
# radio 1 will be compatible regardless of which frequency is assigned, so
|
||||
# we must use radio 1 for the intra-flight radio.
|
||||
intra_flight_radio_index: 1
|
||||
inter_flight_radio_index: 2
|
||||
utc_kneeboard: true
|
||||
# default_overrides:
|
||||
# HelmetMountedDevice: 1
|
||||
# InnerBoard: 0
|
||||
# OuterBoard: 0
|
||||
tasks:
|
||||
Anti-ship: 150
|
||||
BAI: 740
|
||||
BARCAP: 450
|
||||
CAS: 740
|
||||
DEAD: 440
|
||||
Escort: 450
|
||||
Fighter sweep: 450
|
||||
Intercept: 450
|
||||
OCA/Aircraft: 740
|
||||
OCA/Runway: 600
|
||||
SEAD: 430
|
||||
SEAD Escort: 430
|
||||
Strike: 600
|
||||
TARCAP: 450
|
||||
weapon_injections: # AGM-154B only works for AI
|
||||
2:
|
||||
- "{AGM-154B}"
|
||||
- "{BRU57_2*AGM-154B}"
|
||||
3:
|
||||
- "{AGM-154B}"
|
||||
- "{BRU57_2*AGM-154B}"
|
||||
7:
|
||||
- "{AGM-154B}"
|
||||
- "{BRU57_2*AGM-154B}"
|
||||
8:
|
||||
- "{AGM-154B}"
|
||||
- "{BRU57_2*AGM-154B}"
|
||||
hit_points: 20
|
||||