mirror of
https://github.com/dcs-liberation/dcs_liberation.git
synced 2025-11-10 14:22:26 +00:00
Compare commits
16 Commits
develop-10
...
update_rea
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ef8eeeb1f1 | ||
|
|
e42a7b9a59 | ||
|
|
24c9ca5d12 | ||
|
|
678dd58e7d | ||
|
|
d6879040ad | ||
|
|
d0be4b6a29 | ||
|
|
0d71372377 | ||
|
|
86de5df21e | ||
|
|
d1daa0521c | ||
|
|
ffa88688dc | ||
|
|
5ecaeca910 | ||
|
|
e1d443b697 | ||
|
|
5af4e56f30 | ||
|
|
5b858886c0 | ||
|
|
c695e7724a | ||
|
|
2fb22e4e17 |
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"
|
||||
and provide a link to the build in the field below.
|
||||
options:
|
||||
- 9.0.0
|
||||
- 10.0.0
|
||||
- Development build
|
||||
- type: textarea
|
||||
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"
|
||||
and provide a link to the build in the field below.
|
||||
options:
|
||||
- 9.0.0
|
||||
- 10.0.0
|
||||
- Development build
|
||||
- type: textarea
|
||||
attributes:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
(Github Readme Banner and Splash screen Artwork by Andriy Dankovych, CC BY-SA 4.0)
|
||||
|
||||
[](https://patreon.com/khopa)
|
||||
[](https://patreon.com/dcsliberation)
|
||||
|
||||
[](https://github.com/dcs-liberation/dcs_liberation/releases)
|
||||
|
||||
|
||||
10
changelog.md
10
changelog.md
@@ -1,3 +1,13 @@
|
||||
# 11.0.0
|
||||
|
||||
Saves from 10.x are not compatible with 11.0.0.
|
||||
|
||||
## Features/Improvements
|
||||
|
||||
* **[Engine]** Support for DCS 2.9.3.51704 Open Beta.
|
||||
|
||||
## Fixes
|
||||
|
||||
# 10.0.0
|
||||
|
||||
Saves from 9.x are not compatible with 10.0.0.
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
project = "DCS Liberation"
|
||||
copyright = "2023, DCS Liberation Team"
|
||||
author = "DCS Liberation Team"
|
||||
release = "10.0.0"
|
||||
release = "11.0.0"
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
||||
|
||||
@@ -88,7 +88,7 @@ class Builder(IBuilder[AirAssaultFlightPlan, AirAssaultLayout]):
|
||||
raise PlanningError("Air assault is only usable by helicopters")
|
||||
assert self.package.waypoints is not None
|
||||
|
||||
altitude = feet(1500) if self.flight.is_helo else self.doctrine.ingress_altitude
|
||||
altitude = self.doctrine.helicopter.air_assault_nav_altitude
|
||||
altitude_is_agl = self.flight.is_helo
|
||||
|
||||
builder = WaypointBuilder(self.flight, self.coalition)
|
||||
|
||||
@@ -19,7 +19,7 @@ class BarCapFlightPlan(PatrollingFlightPlan[PatrollingLayout]):
|
||||
|
||||
@property
|
||||
def patrol_duration(self) -> timedelta:
|
||||
return self.flight.coalition.doctrine.cap_duration
|
||||
return self.flight.coalition.doctrine.cap.duration
|
||||
|
||||
@property
|
||||
def patrol_speed(self) -> Speed:
|
||||
@@ -29,7 +29,7 @@ class BarCapFlightPlan(PatrollingFlightPlan[PatrollingLayout]):
|
||||
|
||||
@property
|
||||
def engagement_distance(self) -> Distance:
|
||||
return self.flight.coalition.doctrine.cap_engagement_range
|
||||
return self.flight.coalition.doctrine.cap.engagement_range
|
||||
|
||||
|
||||
class Builder(CapBuilder[BarCapFlightPlan, PatrollingLayout]):
|
||||
@@ -44,8 +44,8 @@ class Builder(CapBuilder[BarCapFlightPlan, PatrollingLayout]):
|
||||
preferred_alt = self.flight.unit_type.preferred_patrol_altitude
|
||||
randomized_alt = preferred_alt + feet(random.randint(-2, 1) * 1000)
|
||||
patrol_alt = max(
|
||||
self.doctrine.min_patrol_altitude,
|
||||
min(self.doctrine.max_patrol_altitude, randomized_alt),
|
||||
self.doctrine.cap.min_patrol_altitude,
|
||||
min(self.doctrine.cap.max_patrol_altitude, randomized_alt),
|
||||
)
|
||||
|
||||
builder = WaypointBuilder(self.flight, self.coalition)
|
||||
|
||||
@@ -90,10 +90,10 @@ class CapBuilder(IBuilder[FlightPlanT, LayoutT], ABC):
|
||||
# buffer.
|
||||
distance_to_no_fly = (
|
||||
meters(position.distance(self.threat_zones.all))
|
||||
- self.doctrine.cap_engagement_range
|
||||
- self.doctrine.cap.engagement_range
|
||||
- nautical_miles(5)
|
||||
)
|
||||
max_track_length = self.doctrine.cap_max_track_length
|
||||
max_track_length = self.doctrine.cap.max_track_length
|
||||
else:
|
||||
# Other race tracks (TARCAPs, currently) just try to keep some
|
||||
# distance from the nearest enemy airbase, but since they are by
|
||||
@@ -108,15 +108,15 @@ class CapBuilder(IBuilder[FlightPlanT, LayoutT], ABC):
|
||||
distance_to_no_fly = distance_to_airfield - min_distance_from_enemy
|
||||
|
||||
# TARCAPs fly short racetracks because they need to react faster.
|
||||
max_track_length = self.doctrine.cap_min_track_length + 0.3 * (
|
||||
self.doctrine.cap_max_track_length - self.doctrine.cap_min_track_length
|
||||
max_track_length = self.doctrine.cap.min_track_length + 0.3 * (
|
||||
self.doctrine.cap.max_track_length - self.doctrine.cap.min_track_length
|
||||
)
|
||||
|
||||
min_cap_distance = min(
|
||||
self.doctrine.cap_min_distance_from_cp, distance_to_no_fly
|
||||
self.doctrine.cap.min_distance_from_cp, distance_to_no_fly
|
||||
)
|
||||
max_cap_distance = min(
|
||||
self.doctrine.cap_max_distance_from_cp, distance_to_no_fly
|
||||
self.doctrine.cap.max_distance_from_cp, distance_to_no_fly
|
||||
)
|
||||
|
||||
end = location.position.point_from_heading(
|
||||
@@ -125,7 +125,7 @@ class CapBuilder(IBuilder[FlightPlanT, LayoutT], ABC):
|
||||
)
|
||||
|
||||
track_length = random.randint(
|
||||
int(self.doctrine.cap_min_track_length.meters),
|
||||
int(self.doctrine.cap.min_track_length.meters),
|
||||
int(max_track_length.meters),
|
||||
)
|
||||
start = end.point_from_heading(heading.opposite.degrees, track_length)
|
||||
|
||||
@@ -44,7 +44,7 @@ class CasFlightPlan(PatrollingFlightPlan[CasLayout], UiZoneDisplay):
|
||||
|
||||
@property
|
||||
def patrol_duration(self) -> timedelta:
|
||||
return self.flight.coalition.doctrine.cas_duration
|
||||
return self.flight.coalition.doctrine.cas.duration
|
||||
|
||||
@property
|
||||
def patrol_speed(self) -> Speed:
|
||||
@@ -96,7 +96,7 @@ class Builder(IBuilder[CasFlightPlan, CasLayout]):
|
||||
builder = WaypointBuilder(self.flight, self.coalition)
|
||||
|
||||
is_helo = self.flight.unit_type.dcs_unit_type.helicopter
|
||||
patrol_altitude = self.doctrine.ingress_altitude if not is_helo else meters(50)
|
||||
patrol_altitude = self.doctrine.resolve_combat_altitude(is_helo)
|
||||
use_agl_patrol_altitude = is_helo
|
||||
|
||||
ip_solver = IpSolver(
|
||||
|
||||
@@ -33,7 +33,7 @@ class Builder(FormationAttackBuilder[EscortFlightPlan, FormationAttackLayout]):
|
||||
departure=builder.takeoff(self.flight.departure),
|
||||
hold=hold,
|
||||
nav_to=builder.nav_path(
|
||||
hold.position, join.position, self.doctrine.ingress_altitude
|
||||
hold.position, join.position, self.doctrine.combat_altitude
|
||||
),
|
||||
join=join,
|
||||
ingress=ingress,
|
||||
@@ -43,7 +43,7 @@ class Builder(FormationAttackBuilder[EscortFlightPlan, FormationAttackLayout]):
|
||||
nav_from=builder.nav_path(
|
||||
refuel.position,
|
||||
self.flight.arrival.position,
|
||||
self.doctrine.ingress_altitude,
|
||||
self.doctrine.combat_altitude,
|
||||
),
|
||||
arrival=builder.land(self.flight.arrival),
|
||||
divert=builder.divert(self.flight.divert),
|
||||
|
||||
@@ -163,7 +163,7 @@ class FormationAttackBuilder(IBuilder[FlightPlanT, LayoutT], ABC):
|
||||
departure=builder.takeoff(self.flight.departure),
|
||||
hold=hold,
|
||||
nav_to=builder.nav_path(
|
||||
hold.position, join.position, self.doctrine.ingress_altitude
|
||||
hold.position, join.position, self.doctrine.combat_altitude
|
||||
),
|
||||
join=join,
|
||||
ingress=ingress,
|
||||
@@ -173,7 +173,7 @@ class FormationAttackBuilder(IBuilder[FlightPlanT, LayoutT], ABC):
|
||||
nav_from=builder.nav_path(
|
||||
refuel.position,
|
||||
self.flight.arrival.position,
|
||||
self.doctrine.ingress_altitude,
|
||||
self.doctrine.combat_altitude,
|
||||
),
|
||||
arrival=builder.land(self.flight.arrival),
|
||||
divert=builder.divert(self.flight.divert),
|
||||
|
||||
@@ -114,11 +114,11 @@ class Builder(IBuilder[SweepFlightPlan, SweepLayout]):
|
||||
self.package.waypoints.join.heading_between_point(target)
|
||||
)
|
||||
start_pos = target.point_from_heading(
|
||||
heading.degrees, -self.doctrine.sweep_distance.meters
|
||||
heading.degrees, -self.doctrine.sweep.distance.meters
|
||||
)
|
||||
|
||||
builder = WaypointBuilder(self.flight, self.coalition)
|
||||
start, end = builder.sweep(start_pos, target, self.doctrine.ingress_altitude)
|
||||
start, end = builder.sweep(start_pos, target, self.doctrine.combat_altitude)
|
||||
|
||||
hold = builder.hold(self._hold_point())
|
||||
|
||||
@@ -126,12 +126,12 @@ class Builder(IBuilder[SweepFlightPlan, SweepLayout]):
|
||||
departure=builder.takeoff(self.flight.departure),
|
||||
hold=hold,
|
||||
nav_to=builder.nav_path(
|
||||
hold.position, start.position, self.doctrine.ingress_altitude
|
||||
hold.position, start.position, self.doctrine.combat_altitude
|
||||
),
|
||||
nav_from=builder.nav_path(
|
||||
end.position,
|
||||
self.flight.arrival.position,
|
||||
self.doctrine.ingress_altitude,
|
||||
self.doctrine.combat_altitude,
|
||||
),
|
||||
sweep_start=start,
|
||||
sweep_end=end,
|
||||
|
||||
@@ -40,7 +40,7 @@ class TarCapFlightPlan(PatrollingFlightPlan[TarCapLayout]):
|
||||
# flights in the package that have requested escort. If the package
|
||||
# requests an escort the CAP self.flight will remain on station for the
|
||||
# duration of the escorted mission, or until it is winchester/bingo.
|
||||
return self.flight.coalition.doctrine.cap_duration
|
||||
return self.flight.coalition.doctrine.cap.duration
|
||||
|
||||
@property
|
||||
def patrol_speed(self) -> Speed:
|
||||
@@ -50,7 +50,7 @@ class TarCapFlightPlan(PatrollingFlightPlan[TarCapLayout]):
|
||||
|
||||
@property
|
||||
def engagement_distance(self) -> Distance:
|
||||
return self.flight.coalition.doctrine.cap_engagement_range
|
||||
return self.flight.coalition.doctrine.cap.engagement_range
|
||||
|
||||
@staticmethod
|
||||
def builder_type() -> Type[Builder]:
|
||||
@@ -90,8 +90,8 @@ class Builder(CapBuilder[TarCapFlightPlan, TarCapLayout]):
|
||||
preferred_alt = self.flight.unit_type.preferred_patrol_altitude
|
||||
randomized_alt = preferred_alt + feet(random.randint(-2, 1) * 1000)
|
||||
patrol_alt = max(
|
||||
self.doctrine.min_patrol_altitude,
|
||||
min(self.doctrine.max_patrol_altitude, randomized_alt),
|
||||
self.doctrine.cap.min_patrol_altitude,
|
||||
min(self.doctrine.cap.max_patrol_altitude, randomized_alt),
|
||||
)
|
||||
|
||||
builder = WaypointBuilder(self.flight, self.coalition)
|
||||
|
||||
@@ -72,7 +72,7 @@ class WaypointBuilder:
|
||||
"NAV",
|
||||
FlightWaypointType.NAV,
|
||||
position,
|
||||
meters(500) if self.is_helo else self.doctrine.rendezvous_altitude,
|
||||
self.doctrine.resolve_rendezvous_altitude(self.is_helo),
|
||||
description="Enter theater",
|
||||
pretty_name="Enter theater",
|
||||
)
|
||||
@@ -99,7 +99,7 @@ class WaypointBuilder:
|
||||
"NAV",
|
||||
FlightWaypointType.NAV,
|
||||
position,
|
||||
meters(500) if self.is_helo else self.doctrine.rendezvous_altitude,
|
||||
self.doctrine.resolve_rendezvous_altitude(self.is_helo),
|
||||
description="Exit theater",
|
||||
pretty_name="Exit theater",
|
||||
)
|
||||
@@ -127,10 +127,7 @@ class WaypointBuilder:
|
||||
position = divert.position
|
||||
altitude_type: AltitudeReference
|
||||
if isinstance(divert, OffMapSpawn):
|
||||
if self.is_helo:
|
||||
altitude = meters(500)
|
||||
else:
|
||||
altitude = self.doctrine.rendezvous_altitude
|
||||
altitude = self.doctrine.resolve_rendezvous_altitude(self.is_helo)
|
||||
altitude_type = "BARO"
|
||||
else:
|
||||
altitude = meters(0)
|
||||
@@ -168,10 +165,7 @@ class WaypointBuilder:
|
||||
"HOLD",
|
||||
FlightWaypointType.LOITER,
|
||||
position,
|
||||
# Bug: DCS only accepts MSL altitudes for the orbit task and 500 meters is
|
||||
# below the ground for most if not all of NTTR (and lots of places in other
|
||||
# maps).
|
||||
meters(500) if self.is_helo else self.doctrine.rendezvous_altitude,
|
||||
self.doctrine.resolve_rendezvous_altitude(self.is_helo),
|
||||
alt_type,
|
||||
description="Wait until push time",
|
||||
pretty_name="Hold",
|
||||
@@ -186,7 +180,7 @@ class WaypointBuilder:
|
||||
"JOIN",
|
||||
FlightWaypointType.JOIN,
|
||||
position,
|
||||
meters(80) if self.is_helo else self.doctrine.ingress_altitude,
|
||||
self.doctrine.resolve_combat_altitude(self.is_helo),
|
||||
alt_type,
|
||||
description="Rendezvous with package",
|
||||
pretty_name="Join",
|
||||
@@ -201,7 +195,7 @@ class WaypointBuilder:
|
||||
"REFUEL",
|
||||
FlightWaypointType.REFUEL,
|
||||
position,
|
||||
meters(80) if self.is_helo else self.doctrine.ingress_altitude,
|
||||
self.doctrine.resolve_combat_altitude(self.is_helo),
|
||||
alt_type,
|
||||
description="Refuel from tanker",
|
||||
pretty_name="Refuel",
|
||||
@@ -229,7 +223,7 @@ class WaypointBuilder:
|
||||
"SPLIT",
|
||||
FlightWaypointType.SPLIT,
|
||||
position,
|
||||
meters(80) if self.is_helo else self.doctrine.ingress_altitude,
|
||||
self.doctrine.resolve_combat_altitude(self.is_helo),
|
||||
alt_type,
|
||||
description="Depart from package",
|
||||
pretty_name="Split",
|
||||
@@ -249,7 +243,7 @@ class WaypointBuilder:
|
||||
"INGRESS",
|
||||
ingress_type,
|
||||
position,
|
||||
meters(60) if self.is_helo else self.doctrine.ingress_altitude,
|
||||
self.doctrine.resolve_combat_altitude(self.is_helo),
|
||||
alt_type,
|
||||
description=f"INGRESS on {objective.name}",
|
||||
pretty_name=f"INGRESS on {objective.name}",
|
||||
@@ -294,7 +288,7 @@ class WaypointBuilder:
|
||||
f"SEAD on {target.name}",
|
||||
target,
|
||||
flyover=True,
|
||||
altitude=self.doctrine.ingress_altitude,
|
||||
altitude=self.doctrine.combat_altitude,
|
||||
alt_type="BARO",
|
||||
)
|
||||
|
||||
@@ -484,7 +478,7 @@ class WaypointBuilder:
|
||||
"TARGET",
|
||||
FlightWaypointType.TARGET_GROUP_LOC,
|
||||
target.position,
|
||||
meters(60) if self.is_helo else self.doctrine.ingress_altitude,
|
||||
self.doctrine.resolve_combat_altitude(self.is_helo),
|
||||
alt_type,
|
||||
description="Escort the package",
|
||||
pretty_name="Target area",
|
||||
|
||||
@@ -158,7 +158,7 @@ class TheaterState(WorldState["TheaterState"]):
|
||||
# Plan enough rounds of CAP that the target has coverage over the expected
|
||||
# mission duration.
|
||||
mission_duration = game.settings.desired_player_mission_duration.total_seconds()
|
||||
barcap_duration = coalition.doctrine.cap_duration.total_seconds()
|
||||
barcap_duration = coalition.doctrine.cap.duration.total_seconds()
|
||||
barcap_rounds = math.ceil(mission_duration / barcap_duration)
|
||||
|
||||
refueling_targets: list[MissionTarget] = []
|
||||
|
||||
@@ -2,7 +2,7 @@ from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
import yaml
|
||||
from typing import ClassVar
|
||||
from typing import Any, ClassVar
|
||||
|
||||
from dataclasses import dataclass
|
||||
from datetime import timedelta
|
||||
@@ -32,18 +32,94 @@ class GroundUnitProcurementRatios:
|
||||
return GroundUnitProcurementRatios(r)
|
||||
|
||||
|
||||
@dataclass
|
||||
class Helicopter:
|
||||
#: The altitude used for combat section of a flight, overrides the base combat_altitude parameter for helos
|
||||
combat_altitude: Distance
|
||||
|
||||
#: The altitude used for forming up a pacakge. Overrides the base rendezvous_altitude parameter for helos
|
||||
rendezvous_altitude: Distance
|
||||
|
||||
#: Altitude of the nav points (cruise section) of air assault missions.
|
||||
air_assault_nav_altitude: Distance
|
||||
|
||||
@staticmethod
|
||||
def from_dict(data: dict[str, Any]) -> Helicopter:
|
||||
return Helicopter(
|
||||
combat_altitude=feet(data["combat_altitude_ft_agl"]),
|
||||
rendezvous_altitude=feet(data["rendezvous_altitude_ft_agl"]),
|
||||
air_assault_nav_altitude=feet(data["air_assault_nav_altitude_ft_agl"]),
|
||||
)
|
||||
|
||||
|
||||
@dataclass
|
||||
class Cas:
|
||||
#: The duration that CAP flights will remain on-station.
|
||||
duration: timedelta
|
||||
|
||||
@staticmethod
|
||||
def from_dict(data: dict[str, Any]) -> Cas:
|
||||
return Cas(duration=timedelta(minutes=data["duration_minutes"]))
|
||||
|
||||
|
||||
@dataclass
|
||||
class Sweep:
|
||||
#: Length of the sweep / patrol leg
|
||||
distance: Distance
|
||||
|
||||
@staticmethod
|
||||
def from_dict(data: dict[str, Any]) -> Sweep:
|
||||
return Sweep(
|
||||
distance=nautical_miles(data["distance_nm"]),
|
||||
)
|
||||
|
||||
|
||||
@dataclass
|
||||
class Cap:
|
||||
#: The duration that CAP flights will remain on-station.
|
||||
duration: timedelta
|
||||
|
||||
#: The minimum length of the CAP race track.
|
||||
min_track_length: Distance
|
||||
|
||||
#: The maximum length of the CAP race track.
|
||||
max_track_length: Distance
|
||||
|
||||
#: The minimum distance between the defended position and the *end* of the
|
||||
#: CAP race track.
|
||||
min_distance_from_cp: Distance
|
||||
|
||||
#: The maximum distance between the defended position and the *end* of the
|
||||
#: CAP race track.
|
||||
max_distance_from_cp: Distance
|
||||
|
||||
#: The engagement range of CAP flights. Any enemy aircraft within this range
|
||||
#: of the CAP's current position will be engaged by the CAP.
|
||||
engagement_range: Distance
|
||||
|
||||
#: Defines the range of altitudes CAP racetracks are planned at.
|
||||
min_patrol_altitude: Distance
|
||||
max_patrol_altitude: Distance
|
||||
|
||||
@staticmethod
|
||||
def from_dict(data: dict[str, Any]) -> Cap:
|
||||
return Cap(
|
||||
duration=timedelta(minutes=data["duration_minutes"]),
|
||||
min_track_length=nautical_miles(data["min_track_length_nm"]),
|
||||
max_track_length=nautical_miles(data["max_track_length_nm"]),
|
||||
min_distance_from_cp=nautical_miles(data["min_distance_from_cp_nm"]),
|
||||
max_distance_from_cp=nautical_miles(data["max_distance_from_cp_nm"]),
|
||||
engagement_range=nautical_miles(data["engagement_range_nm"]),
|
||||
min_patrol_altitude=feet(data["min_patrol_altitude_ft_msl"]),
|
||||
max_patrol_altitude=feet(data["max_patrol_altitude_ft_msl"]),
|
||||
)
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class Doctrine:
|
||||
#: Name of the doctrine, used to assign a doctrine in a faction.
|
||||
name: str
|
||||
|
||||
cas: bool
|
||||
cap: bool
|
||||
sead: bool
|
||||
strike: bool
|
||||
antiship: bool
|
||||
|
||||
rendezvous_altitude: Distance
|
||||
|
||||
#: The minimum distance between the departure airfield and the hold point.
|
||||
hold_distance: Distance
|
||||
|
||||
@@ -62,42 +138,40 @@ class Doctrine:
|
||||
#: target.
|
||||
min_ingress_distance: Distance
|
||||
|
||||
ingress_altitude: Distance
|
||||
#: The altitude used for combat section of a flight.
|
||||
combat_altitude: Distance
|
||||
|
||||
min_patrol_altitude: Distance
|
||||
max_patrol_altitude: Distance
|
||||
pattern_altitude: Distance
|
||||
|
||||
#: The duration that CAP flights will remain on-station.
|
||||
cap_duration: timedelta
|
||||
|
||||
#: The minimum length of the CAP race track.
|
||||
cap_min_track_length: Distance
|
||||
|
||||
#: The maximum length of the CAP race track.
|
||||
cap_max_track_length: Distance
|
||||
|
||||
#: The minimum distance between the defended position and the *end* of the
|
||||
#: CAP race track.
|
||||
cap_min_distance_from_cp: Distance
|
||||
|
||||
#: The maximum distance between the defended position and the *end* of the
|
||||
#: CAP race track.
|
||||
cap_max_distance_from_cp: Distance
|
||||
|
||||
#: The engagement range of CAP flights. Any enemy aircraft within this range
|
||||
#: of the CAP's current position will be engaged by the CAP.
|
||||
cap_engagement_range: Distance
|
||||
|
||||
cas_duration: timedelta
|
||||
|
||||
sweep_distance: Distance
|
||||
#: The altitude used for forming up a pacakge.
|
||||
rendezvous_altitude: Distance
|
||||
|
||||
#: Defines prioritization of ground unit purchases.
|
||||
ground_unit_procurement_ratios: GroundUnitProcurementRatios
|
||||
|
||||
#: Helicopter specific doctrines.
|
||||
helicopter: Helicopter
|
||||
|
||||
#: Doctrine for CAS missions.
|
||||
cas: Cas
|
||||
|
||||
#: Doctrine for CAP missions.
|
||||
cap: Cap
|
||||
|
||||
#: Doctrine for Fighter Sweep missions.
|
||||
sweep: Sweep
|
||||
|
||||
_by_name: ClassVar[dict[str, Doctrine]] = {}
|
||||
_loaded: ClassVar[bool] = False
|
||||
|
||||
def resolve_combat_altitude(self, is_helo: bool = False) -> Distance:
|
||||
if is_helo:
|
||||
return self.helicopter.combat_altitude
|
||||
return self.combat_altitude
|
||||
|
||||
def resolve_rendezvous_altitude(self, is_helo: bool = False) -> Distance:
|
||||
if is_helo:
|
||||
return self.helicopter.rendezvous_altitude
|
||||
return self.rendezvous_altitude
|
||||
|
||||
@classmethod
|
||||
def register(cls, doctrine: Doctrine) -> None:
|
||||
if doctrine.name in cls._by_name:
|
||||
@@ -127,11 +201,6 @@ class Doctrine:
|
||||
cls.register(
|
||||
Doctrine(
|
||||
name=data["name"],
|
||||
cap=data["cap"],
|
||||
cas=data["cas"],
|
||||
sead=data["sead"],
|
||||
strike=data["strike"],
|
||||
antiship=data["antiship"],
|
||||
rendezvous_altitude=feet(data["rendezvous_altitude_ft_msl"]),
|
||||
hold_distance=nautical_miles(data["hold_distance_nm"]),
|
||||
push_distance=nautical_miles(data["push_distance_nm"]),
|
||||
@@ -142,31 +211,14 @@ class Doctrine:
|
||||
min_ingress_distance=nautical_miles(
|
||||
data["min_ingress_distance_nm"]
|
||||
),
|
||||
ingress_altitude=feet(data["ingress_altitude_ft_msl"]),
|
||||
min_patrol_altitude=feet(data["min_patrol_altitude_ft_msl"]),
|
||||
max_patrol_altitude=feet(data["max_patrol_altitude_ft_msl"]),
|
||||
pattern_altitude=feet(data["pattern_altitude_ft_msl"]),
|
||||
cap_duration=timedelta(minutes=data["cap_duration_minutes"]),
|
||||
cap_min_track_length=nautical_miles(
|
||||
data["cap_min_track_length_nm"]
|
||||
),
|
||||
cap_max_track_length=nautical_miles(
|
||||
data["cap_max_track_length_nm"]
|
||||
),
|
||||
cap_min_distance_from_cp=nautical_miles(
|
||||
data["cap_min_distance_from_cp_nm"]
|
||||
),
|
||||
cap_max_distance_from_cp=nautical_miles(
|
||||
data["cap_max_distance_from_cp_nm"]
|
||||
),
|
||||
cap_engagement_range=nautical_miles(
|
||||
data["cap_engagement_range_nm"]
|
||||
),
|
||||
cas_duration=timedelta(minutes=data["cas_duration_minutes"]),
|
||||
sweep_distance=nautical_miles(data["sweep_distance_nm"]),
|
||||
combat_altitude=feet(data["combat_altitude_ft_msl"]),
|
||||
ground_unit_procurement_ratios=GroundUnitProcurementRatios.from_dict(
|
||||
data["ground_unit_procurement_ratios"]
|
||||
),
|
||||
helicopter=Helicopter.from_dict(data["helicopter"]),
|
||||
cas=Cas.from_dict(data["cas"]),
|
||||
cap=Cap.from_dict(data["cap"]),
|
||||
sweep=Sweep.from_dict(data["sweep"]),
|
||||
)
|
||||
)
|
||||
cls._loaded = True
|
||||
|
||||
@@ -517,6 +517,7 @@ class AircraftType(UnitType[Type[FlyingType]]):
|
||||
LaserCodeConfig.from_yaml(d) for d in data.get("laser_codes", [])
|
||||
],
|
||||
use_f15e_waypoint_names=data.get("use_f15e_waypoint_names", False),
|
||||
hit_points=data.get("hit_points", 1),
|
||||
)
|
||||
|
||||
def __hash__(self) -> int:
|
||||
|
||||
@@ -133,4 +133,5 @@ class GroundUnitType(UnitType[Type[VehicleType]]):
|
||||
data.get("skynet_properties", {})
|
||||
),
|
||||
reversed_heading=data.get("reversed_heading", False),
|
||||
hit_points=data.get("hit_points", 1),
|
||||
)
|
||||
|
||||
@@ -79,4 +79,5 @@ class ShipUnitType(UnitType[Type[ShipType]]):
|
||||
manufacturer=data.get("manufacturer", "No data."),
|
||||
role=data.get("role", "No data."),
|
||||
price=data["price"],
|
||||
hit_points=data.get("hit_points", 1),
|
||||
)
|
||||
|
||||
@@ -27,6 +27,7 @@ class UnitType(ABC, Generic[DcsUnitTypeT]):
|
||||
role: str
|
||||
price: int
|
||||
unit_class: UnitClass
|
||||
hit_points: int
|
||||
|
||||
_loaded: ClassVar[bool] = False
|
||||
|
||||
|
||||
@@ -300,6 +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.superhornet:
|
||||
self.remove_aircraft("Super-Hornet")
|
||||
# frenchpack
|
||||
if not mod_settings.frenchpack:
|
||||
self.remove_vehicle("AMX10RCR")
|
||||
|
||||
@@ -66,6 +66,7 @@ class ModSettings:
|
||||
frenchpack: bool = False
|
||||
high_digit_sams: bool = False
|
||||
ov10a_bronco: bool = False
|
||||
superhornet: bool = False
|
||||
|
||||
def save_player_settings(self) -> None:
|
||||
"""Saves the player's global settings to the user directory."""
|
||||
|
||||
@@ -165,7 +165,7 @@ class ThreatZones:
|
||||
cls, doctrine: Doctrine, control_point: ControlPoint
|
||||
) -> Distance:
|
||||
cap_threat_range = (
|
||||
doctrine.cap_max_distance_from_cp + doctrine.cap_engagement_range
|
||||
doctrine.cap.max_distance_from_cp + doctrine.cap.engagement_range
|
||||
)
|
||||
opposing_airfield = cls.closest_enemy_airbase(
|
||||
control_point, cap_threat_range * 2
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
MAJOR_VERSION = 10
|
||||
MAJOR_VERSION = 11
|
||||
MINOR_VERSION = 0
|
||||
MICRO_VERSION = 0
|
||||
VERSION_NUMBER = ".".join(str(v) for v in (MAJOR_VERSION, MINOR_VERSION, MICRO_VERSION))
|
||||
|
||||
@@ -204,6 +204,7 @@ class NewGameWizard(QtWidgets.QWizard):
|
||||
ov10a_bronco=self.field("ov10a_bronco"),
|
||||
frenchpack=self.field("frenchpack"),
|
||||
high_digit_sams=self.field("high_digit_sams"),
|
||||
superhornet=self.field("superhornet"),
|
||||
)
|
||||
mod_settings.save_player_settings()
|
||||
|
||||
@@ -826,6 +827,10 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
||||
high_digit_sams.setChecked(mod_settings.high_digit_sams)
|
||||
self.registerField("high_digit_sams", high_digit_sams)
|
||||
|
||||
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>"
|
||||
)
|
||||
@@ -877,6 +882,11 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
||||
modLayout.addWidget(QtWidgets.QLabel("High Digit SAMs"), modLayout_row, 0)
|
||||
modLayout.addWidget(high_digit_sams, modLayout_row, 1)
|
||||
modSettingsGroup.setLayout(modLayout)
|
||||
modLayout_row += 1
|
||||
modLayout.addWidget(QtWidgets.QLabel("Super Hornet"), modLayout_row, 0)
|
||||
modLayout.addWidget(superhornet, modLayout_row, 1)
|
||||
modSettingsGroup.setLayout(modLayout)
|
||||
modLayout_row += 1
|
||||
|
||||
mlayout = QVBoxLayout()
|
||||
mlayout.addWidget(generatorSettingsGroup)
|
||||
|
||||
@@ -20,7 +20,7 @@ httptools==0.6.1
|
||||
identify==2.5.32
|
||||
idna==3.6
|
||||
iniconfig==2.0.0
|
||||
Jinja2==3.1.2
|
||||
Jinja2==3.1.3
|
||||
MarkupSafe==2.1.3
|
||||
mypy==1.7.1
|
||||
mypy-extensions==1.0.0
|
||||
@@ -29,14 +29,14 @@ numpy==1.26.2
|
||||
packaging==23.2
|
||||
pathspec==0.11.2
|
||||
pefile==2023.2.7
|
||||
Pillow==10.0.1
|
||||
Pillow==10.2.0
|
||||
platformdirs==4.0.0
|
||||
pluggy==1.3.0
|
||||
pre-commit==3.5.0
|
||||
pydantic==2.5.2
|
||||
pydantic-settings==2.1.0
|
||||
pydantic_core==2.14.5
|
||||
pydcs @ git+https://github.com/pydcs/dcs@1092fc419d3f879e8e7951b25e15d8b7c9938627
|
||||
pydcs @ git+https://github.com/pydcs/dcs@7eeec23ea428846ebbbd0ea4c746f8eafea04e0d
|
||||
pyinstaller==5.13.1
|
||||
pyinstaller-hooks-contrib==2023.6
|
||||
pyproj==3.6.1
|
||||
|
||||
@@ -1,155 +1,155 @@
|
||||
---
|
||||
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: 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
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- A-10C Thunderbolt II (Suite 7)
|
||||
size: 8
|
||||
# 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
|
||||
---
|
||||
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
|
||||
Binary file not shown.
@@ -1,155 +1,169 @@
|
||||
---
|
||||
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:
|
||||
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
|
||||
From Incirlik:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- AH-64D Apache Longbow
|
||||
size: 8
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- A-10C Thunderbolt II (Suite 7)
|
||||
size: 8
|
||||
- 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
|
||||
#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: 8
|
||||
#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
|
||||
#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: 18
|
||||
#I am aware there is no Russian LHA. This is just for campaign inversion.
|
||||
Red LHA:
|
||||
- primary: BAI
|
||||
secondary: air-to-ground
|
||||
size: 20
|
||||
---
|
||||
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
|
||||
@@ -49,7 +49,7 @@ squadrons:
|
||||
- primary: BAI
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- 81st FS
|
||||
- A-10C Thunderbolt II (Suite 7)
|
||||
size: 10
|
||||
#USAF A-10CI
|
||||
#BLUFOR CVN
|
||||
|
||||
BIN
resources/campaigns/scenic_merge.miz
Normal file
BIN
resources/campaigns/scenic_merge.miz
Normal file
Binary file not shown.
387
resources/campaigns/scenic_merge.yaml
Normal file
387
resources/campaigns/scenic_merge.yaml
Normal file
@@ -0,0 +1,387 @@
|
||||
---
|
||||
name: Persian Gulf - Scenic Route Merged
|
||||
theater: Persian Gulf
|
||||
authors: Fuzzle, merged by tmz42
|
||||
description: <p>A merge of the two Scenic Route campaigns. <p><strong>Backstory:</strong> Iran has declared war on all US forces in the Gulf resulting in all local allies withdrawing their support for American troops. A carrier group, aided by USAF units stationed on the south bank must pacify Iran's coastal defences and push inland. Iran has assembled the full might of its air and ground divisions to defend their heartland.</p>
|
||||
version: "11.0"
|
||||
advanced_iads: true
|
||||
recommended_player_faction: USA 2005
|
||||
recommended_enemy_faction: Iran 2015
|
||||
miz: scenic_merge.miz
|
||||
performance: 3
|
||||
recommended_start_date: 2005-06-29
|
||||
recommended_player_money: 2000
|
||||
recommended_enemy_money: 1000
|
||||
recommended_player_income_multiplier: 1.5
|
||||
recommended_enemy_income_multiplier: 0.7
|
||||
squadrons:
|
||||
#BLUFOR CVN
|
||||
Naval-3:
|
||||
# Pukin' Dogs F-14
|
||||
- primary: BARCAP
|
||||
secondary: air-to-air
|
||||
aircraft:
|
||||
- VF-143
|
||||
size: 14
|
||||
# Golden Dragons F/A-18
|
||||
- primary: SEAD
|
||||
secondary: any
|
||||
aircraft:
|
||||
- VFA-192
|
||||
size: 12
|
||||
# Thunderbolts F/A-18C
|
||||
- primary: DEAD
|
||||
secondary: any
|
||||
aircraft:
|
||||
- VMFA-251
|
||||
size: 12
|
||||
# Hawkeye
|
||||
- primary: AEW&C
|
||||
aircraft:
|
||||
- VAW-125
|
||||
size: 2
|
||||
# S-3 Tankers
|
||||
- primary: Refueling
|
||||
aircraft:
|
||||
- VS-35 (Tanker)
|
||||
size: 4
|
||||
# BLUFOR LHA
|
||||
Naval-4:
|
||||
- primary: BAI
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- VMA-223
|
||||
size: 12
|
||||
- primary: Transport
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- HMLA-169 (UH-1H)
|
||||
size: 8
|
||||
# Al-Dhafra AFB
|
||||
4:
|
||||
#USAF F-16C Gamblers
|
||||
- primary: SEAD
|
||||
secondary: any
|
||||
aircraft:
|
||||
- 77th FS
|
||||
size: 12
|
||||
- primary: Strike
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- B-1B Lancer
|
||||
size: 6
|
||||
- primary: Refueling
|
||||
size: 2
|
||||
aircraft:
|
||||
- 18th Air Refueling Squadron
|
||||
- primary: Transport
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- HMLA-169 (UH-1H)
|
||||
size: 4
|
||||
- primary: AEW&C
|
||||
aircraft:
|
||||
- E-3
|
||||
size: 2
|
||||
- primary: BARCAP
|
||||
secondary: any
|
||||
aircraft:
|
||||
- 493rd FS
|
||||
#USAF F-15C
|
||||
# Al-Minhab AFB
|
||||
12:
|
||||
- primary: Transport
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- 101st Combat Aviation Brigade
|
||||
#US Army UH-60
|
||||
size: 6
|
||||
- primary: SEAD
|
||||
secondary: any
|
||||
aircraft:
|
||||
- 480th FS
|
||||
#USAF F-16C
|
||||
- primary: Strike
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- F-15E Strike Eagle (Suite 4+)
|
||||
# Strike Eagle (Chiefs?)
|
||||
- primary: BAI
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- A-10C Thunderbolt II (Suite 7)
|
||||
#USAF A-10CII
|
||||
- primary: Transport
|
||||
aircraft:
|
||||
- C-130
|
||||
size: 8
|
||||
# Kish Intl
|
||||
24:
|
||||
- primary: AEW&C
|
||||
aircraft:
|
||||
- A-50
|
||||
size: 1
|
||||
- primary: BARCAP
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-14A Tomcat (Block 135-GR Late)
|
||||
size: 12
|
||||
- primary: Strike
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Su-24MK Fencer-D
|
||||
size: 12
|
||||
# Havadarya
|
||||
9:
|
||||
- primary: BARCAP
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-4E Phantom II
|
||||
size: 6
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Su-25 Frogfoot
|
||||
size: 6
|
||||
# Bandar Abbas Intl
|
||||
2:
|
||||
- primary: TARCAP
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-5E Tiger II
|
||||
size: 6
|
||||
- primary: BARCAP
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- MiG-29A Fulcrum-A
|
||||
size: 6
|
||||
- primary: Strike
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Su-24MK
|
||||
size: 6
|
||||
# OPFOR First FOB
|
||||
FOB Seerik:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24V Hind-E
|
||||
size: 2
|
||||
# OPFOR Second FOB
|
||||
FOB Kohnehshahr:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24V Hind-F
|
||||
size: 2
|
||||
# OPFOR Third FOB
|
||||
FOB Khvosh:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-28N Havoc
|
||||
size: 2
|
||||
# OPFOR Last FOB
|
||||
FOB Charak:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-28N Havoc
|
||||
size: 2
|
||||
# BLUFOR Start FOB
|
||||
FOB Anguran:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24V Hind-F
|
||||
size: 2
|
||||
# OPFOR L1F1
|
||||
FOB Tang-e Dalan:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 2
|
||||
# OPFOR L1F2
|
||||
FOB Fars Border:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 2
|
||||
# OPFOR L1F2 split
|
||||
FOB Bikuyeh:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-28N Havoc
|
||||
size: 2
|
||||
# Lar
|
||||
11:
|
||||
- primary: BARCAP
|
||||
secondary: air-to-air
|
||||
aircraft:
|
||||
- MiG-21bis Fishbed-N
|
||||
size: 4
|
||||
# OPFOR L2F1
|
||||
FOB Mansurabad:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 2
|
||||
# OPFOR L2F2
|
||||
FOB Jahrom:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 2
|
||||
# OPFOR L2F3
|
||||
FOB Tower:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 2
|
||||
# OPFOR L2F3 split
|
||||
FOB Nouderan:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-28N Havoc
|
||||
size: 2
|
||||
# Shiraz Intl
|
||||
19:
|
||||
- primary: AEW&C
|
||||
aircraft:
|
||||
- A-50
|
||||
size: 2
|
||||
- primary: Refueling
|
||||
aircraft:
|
||||
- IL-78M
|
||||
size: 2
|
||||
- primary: TARCAP
|
||||
secondary: air-to-air
|
||||
aircraft:
|
||||
- MiG-29A Fulcrum-A
|
||||
size: 12
|
||||
- primary: Strike
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Su-22M4 Fitter-K
|
||||
size: 6
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 4
|
||||
- primary: SEAD
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Su-25T Frogfoot
|
||||
size: 6
|
||||
# OPFOR L3F1
|
||||
FOB Kherameh:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 2
|
||||
# OPFOR L3F2
|
||||
FOB Tashk:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 2
|
||||
# OPFOR L3F3
|
||||
FOB Chahak:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 2
|
||||
# OPFOR L3F4
|
||||
FOB Plainhold:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 2
|
||||
# OPFOR L3F4 split
|
||||
FOB Robat:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 2
|
||||
# OPFOR L3F5
|
||||
FOB Plainguard:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 2
|
||||
# OPFOR L3F6
|
||||
FOB Hasanabad:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 2
|
||||
# OPFOR L3F6 split
|
||||
FOB Najafabad:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-28N Havoc
|
||||
size: 2
|
||||
# OPFOR L3F7
|
||||
FOB Kabutarkhan:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 2
|
||||
# OPFOR L3F8
|
||||
FOB Sa'di:
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 2
|
||||
# Kerman
|
||||
18:
|
||||
- primary: AEW&C
|
||||
aircraft:
|
||||
- A-50
|
||||
size: 2
|
||||
- primary: Refueling
|
||||
aircraft:
|
||||
- IL-78M
|
||||
size: 2
|
||||
- primary: Transport
|
||||
aircraft:
|
||||
- IL-78MD
|
||||
size: 2
|
||||
- primary: BARCAP
|
||||
secondary: any
|
||||
aircraft:
|
||||
- F-14A Tomcat (Block 135-GR Late)
|
||||
size: 12
|
||||
- primary: TARCAP
|
||||
secondary: air-to-air
|
||||
aircraft:
|
||||
- MiG-29A Fulcrum-A
|
||||
size: 12
|
||||
- primary: Strike
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Su-24MK Fencer-D
|
||||
size: 6
|
||||
- primary: CAS
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- Mi-24P Hind-F
|
||||
size: 2
|
||||
Binary file not shown.
@@ -13,9 +13,6 @@ recommended_player_money: 900
|
||||
recommended_enemy_money: 1200
|
||||
recommended_player_income_multiplier: 1.0
|
||||
recommended_enemy_income_multiplier: 0.6
|
||||
control_points:
|
||||
From Turkey:
|
||||
ferry_only: true
|
||||
squadrons:
|
||||
#BLUFOR CVN
|
||||
Naval-1:
|
||||
@@ -62,8 +59,8 @@ squadrons:
|
||||
aircraft:
|
||||
- HMLA-169 (AH-1W)
|
||||
size: 6
|
||||
# Off-theatre forces
|
||||
From Turkey:
|
||||
# Incirlik
|
||||
16:
|
||||
- primary: Strike
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
@@ -73,8 +70,25 @@ squadrons:
|
||||
- 960th AAC Squadron
|
||||
#USAF E-3A
|
||||
size: 2
|
||||
- primary: Strike
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- F-15E Strike Eagle (Suite 4+)
|
||||
size: 12
|
||||
- primary: SEAD
|
||||
secondary: any
|
||||
aircraft:
|
||||
- 77th FS
|
||||
#USAF F-16C
|
||||
size: 12
|
||||
# King Hussein Air College, BLUFOR start
|
||||
19:
|
||||
- primary: BAI
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- A-10C Thunderbolt II (Suite 7)
|
||||
#USAF A-10CII
|
||||
size: 8
|
||||
- primary: BARCAP
|
||||
secondary: air-to-air
|
||||
aircraft:
|
||||
@@ -85,11 +99,6 @@ squadrons:
|
||||
aircraft:
|
||||
- 23rd FS
|
||||
#USAF F-16C
|
||||
- primary: BAI
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
- 81st FS
|
||||
#USAF A-10CII
|
||||
- primary: Transport
|
||||
secondary: air-to-ground
|
||||
aircraft:
|
||||
|
||||
@@ -2,30 +2,6 @@ local unitPayloads = {
|
||||
["name"] = "AH-64D_BLK_II",
|
||||
["payloads"] = {
|
||||
[1] = {
|
||||
["name"] = "Liberation CAS",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{88D18A5E-99C8-4B04-B40B-1C02F2018B6E}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{M299_4xAGM_114L}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{88D18A5E-99C8-4B04-B40B-1C02F2018B6E}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{M299_4xAGM_114L}",
|
||||
["num"] = 1,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 31,
|
||||
},
|
||||
},
|
||||
[2] = {
|
||||
["displayName"] = "Liberation BAI",
|
||||
["name"] = "Liberation BAI",
|
||||
["pylons"] = {
|
||||
@@ -45,12 +21,72 @@ local unitPayloads = {
|
||||
["CLSID"] = "{M299_4xAGM_114L}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{AN_APG_78}",
|
||||
["num"] = 6,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 31,
|
||||
},
|
||||
},
|
||||
[2] = {
|
||||
["name"] = "Liberation OCA/Aircraft",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{88D18A5E-99C8-4B04-B40B-1C02F2018B6E}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{88D18A5E-99C8-4B04-B40B-1C02F2018B6E}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{M261_M229}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{M261_M229}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{AN_APG_78}",
|
||||
["num"] = 6,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 31,
|
||||
},
|
||||
},
|
||||
[3] = {
|
||||
["name"] = "Liberation CAS",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{88D18A5E-99C8-4B04-B40B-1C02F2018B6E}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{M299_4xAGM_114L}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{88D18A5E-99C8-4B04-B40B-1C02F2018B6E}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{M299_4xAGM_114L}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{AN_APG_78}",
|
||||
["num"] = 6,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 31,
|
||||
},
|
||||
},
|
||||
[4] = {
|
||||
["displayName"] = "Liberation DEAD",
|
||||
["name"] = "Liberation DEAD",
|
||||
["pylons"] = {
|
||||
@@ -70,30 +106,39 @@ local unitPayloads = {
|
||||
["CLSID"] = "{M299_4xAGM_114L}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{AN_APG_78}",
|
||||
["num"] = 6,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 31,
|
||||
},
|
||||
},
|
||||
[4] = {
|
||||
["name"] = "Liberation OCA/Aircraft",
|
||||
[5] = {
|
||||
["displayName"] = "Liberation Escort",
|
||||
["name"] = "Liberation Escort",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{88D18A5E-99C8-4B04-B40B-1C02F2018B6E}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{M299_4xAGM_114L}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{88D18A5E-99C8-4B04-B40B-1C02F2018B6E}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{M261_M229}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{M261_M229}",
|
||||
["CLSID"] = "{M299_4xAGM_114L}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{AN_APG_78}",
|
||||
["num"] = 6,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 31,
|
||||
|
||||
@@ -10,11 +10,11 @@ local unitPayloads = {
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{IR_Deflector}",
|
||||
["num"] = 6,
|
||||
["num"] = 4,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{FAS}",
|
||||
["num"] = 5,
|
||||
["num"] = 3,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
@@ -30,11 +30,11 @@ local unitPayloads = {
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{IR_Deflector}",
|
||||
["num"] = 6,
|
||||
["num"] = 4,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{FAS}",
|
||||
["num"] = 5,
|
||||
["num"] = 3,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
@@ -50,11 +50,11 @@ local unitPayloads = {
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{IR_Deflector}",
|
||||
["num"] = 6,
|
||||
["num"] = 4,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{FAS}",
|
||||
["num"] = 5,
|
||||
["num"] = 3,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
@@ -70,11 +70,11 @@ local unitPayloads = {
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{IR_Deflector}",
|
||||
["num"] = 6,
|
||||
["num"] = 4,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{FAS}",
|
||||
["num"] = 5,
|
||||
["num"] = 3,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
@@ -90,11 +90,11 @@ local unitPayloads = {
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{IR_Deflector}",
|
||||
["num"] = 6,
|
||||
["num"] = 4,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{FAS}",
|
||||
["num"] = 5,
|
||||
["num"] = 3,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
|
||||
@@ -5,28 +5,20 @@ local unitPayloads = {
|
||||
["name"] = "CAS",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{HOT3D}",
|
||||
["CLSID"] = "{HOT3_R2_M}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{HOT3G}",
|
||||
["CLSID"] = "{HOT3_L2_M}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{HOT3D}",
|
||||
["CLSID"] = "{FAS}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{HOT3G}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{FAS}",
|
||||
["num"] = 5,
|
||||
},
|
||||
[6] = {
|
||||
["CLSID"] = "{IR_Deflector}",
|
||||
["num"] = 6,
|
||||
["num"] = 4,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
@@ -37,28 +29,20 @@ local unitPayloads = {
|
||||
["name"] = "CAP",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{HOT3D}",
|
||||
["CLSID"] = "{HOT3_R2_M}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{HOT3G}",
|
||||
["CLSID"] = "{HOT3_L2_M}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{HOT3D}",
|
||||
["CLSID"] = "{FAS}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{HOT3G}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{FAS}",
|
||||
["num"] = 5,
|
||||
},
|
||||
[6] = {
|
||||
["CLSID"] = "{IR_Deflector}",
|
||||
["num"] = 6,
|
||||
["num"] = 4,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
@@ -69,28 +53,20 @@ local unitPayloads = {
|
||||
["name"] = "STRIKE",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{HOT3D}",
|
||||
["CLSID"] = "{HOT3_R2_M}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{HOT3G}",
|
||||
["CLSID"] = "{HOT3_L2_M}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{HOT3D}",
|
||||
["CLSID"] = "{FAS}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{HOT3G}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{FAS}",
|
||||
["num"] = 5,
|
||||
},
|
||||
[6] = {
|
||||
["CLSID"] = "{IR_Deflector}",
|
||||
["num"] = 6,
|
||||
["num"] = 4,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
@@ -101,28 +77,20 @@ local unitPayloads = {
|
||||
["name"] = "SEAD",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{HOT3D}",
|
||||
["CLSID"] = "{HOT3_R2_M}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{HOT3G}",
|
||||
["CLSID"] = "{HOT3_L2_M}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{HOT3D}",
|
||||
["CLSID"] = "{FAS}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{HOT3G}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{FAS}",
|
||||
["num"] = 5,
|
||||
},
|
||||
[6] = {
|
||||
["CLSID"] = "{IR_Deflector}",
|
||||
["num"] = 6,
|
||||
["num"] = 4,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
@@ -133,28 +101,20 @@ local unitPayloads = {
|
||||
["name"] = "ANTISHIP",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{HOT3D}",
|
||||
["CLSID"] = "{HOT3_R2_M}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{HOT3G}",
|
||||
["CLSID"] = "{HOT3_L2_M}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{HOT3D}",
|
||||
["CLSID"] = "{FAS}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{HOT3G}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{FAS}",
|
||||
["num"] = 5,
|
||||
},
|
||||
[6] = {
|
||||
["CLSID"] = "{IR_Deflector}",
|
||||
["num"] = 6,
|
||||
["num"] = 4,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
|
||||
@@ -6,7 +6,7 @@ local unitPayloads = {
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{IR_Deflector}",
|
||||
["num"] = 6,
|
||||
["num"] = 4,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
@@ -19,7 +19,7 @@ local unitPayloads = {
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{IR_Deflector}",
|
||||
["num"] = 6,
|
||||
["num"] = 4,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
|
||||
@@ -1,27 +1,24 @@
|
||||
name: coldwar
|
||||
cap: true
|
||||
cas: true
|
||||
sead: true
|
||||
strike: true
|
||||
antiship: true
|
||||
rendezvous_altitude_ft_msl: 22000
|
||||
hold_distance_nm: 15
|
||||
push_distance_nm: 10
|
||||
join_distance_nm: 10
|
||||
max_ingress_distance_nm: 30
|
||||
min_ingress_distance_nm: 10
|
||||
ingress_altitude_ft_msl: 18000
|
||||
min_patrol_altitude_ft_msl: 10000
|
||||
max_patrol_altitude_ft_msl: 24000
|
||||
pattern_altitude_ft_msl: 5000
|
||||
cap_duration_minutes: 30
|
||||
cap_min_track_length_nm: 12
|
||||
cap_max_track_length_nm: 24
|
||||
cap_min_distance_from_cp_nm: 8
|
||||
cap_max_distance_from_cp_nm: 25
|
||||
cap_engagement_range_nm: 35
|
||||
cas_duration_minutes: 30
|
||||
sweep_distance_nm: 40
|
||||
rendezvous_altitude_ft_msl: 22000
|
||||
combat_altitude_ft_msl: 18000
|
||||
cap:
|
||||
duration_minutes: 30
|
||||
min_track_length_nm: 12
|
||||
max_track_length_nm: 24
|
||||
min_distance_from_cp_nm: 8
|
||||
max_distance_from_cp_nm: 25
|
||||
engagement_range_nm: 35
|
||||
min_patrol_altitude_ft_msl: 10000
|
||||
max_patrol_altitude_ft_msl: 24000
|
||||
cas:
|
||||
duration_minutes: 30
|
||||
sweep:
|
||||
distance_nm: 40
|
||||
ground_unit_procurement_ratios:
|
||||
Tank: 4
|
||||
ATGM: 2
|
||||
@@ -30,3 +27,8 @@ ground_unit_procurement_ratios:
|
||||
Artillery: 1
|
||||
SHORAD: 2
|
||||
Recon: 1
|
||||
helicopter:
|
||||
combat_altitude_ft_agl: 200
|
||||
rendezvous_altitude_ft_agl: 1500
|
||||
air_assault_nav_altitude_ft_agl: 1500
|
||||
|
||||
|
||||
@@ -1,27 +1,24 @@
|
||||
name: modern
|
||||
cap: true
|
||||
cas: true
|
||||
sead: true
|
||||
strike: true
|
||||
antiship: true
|
||||
rendezvous_altitude_ft_msl: 25000
|
||||
hold_distance_nm: 25
|
||||
push_distance_nm: 20
|
||||
join_distance_nm: 20
|
||||
max_ingress_distance_nm: 45
|
||||
min_ingress_distance_nm: 10
|
||||
ingress_altitude_ft_msl: 20000
|
||||
min_patrol_altitude_ft_msl: 15000
|
||||
max_patrol_altitude_ft_msl: 33000
|
||||
pattern_altitude_ft_msl: 5000
|
||||
cap_duration_minutes: 30
|
||||
cap_min_track_length_nm: 15
|
||||
cap_max_track_length_nm: 40
|
||||
cap_min_distance_from_cp_nm: 10
|
||||
cap_max_distance_from_cp_nm: 40
|
||||
cap_engagement_range_nm: 50
|
||||
cas_duration_minutes: 30
|
||||
sweep_distance_nm: 60
|
||||
rendezvous_altitude_ft_msl: 25000
|
||||
combat_altitude_ft_msl: 20000
|
||||
cap:
|
||||
duration_minutes: 30
|
||||
min_track_length_nm: 15
|
||||
max_track_length_nm: 40
|
||||
min_distance_from_cp_nm: 10
|
||||
max_distance_from_cp_nm: 40
|
||||
engagement_range_nm: 50
|
||||
min_patrol_altitude_ft_msl: 15000
|
||||
max_patrol_altitude_ft_msl: 33000
|
||||
cas:
|
||||
duration_minutes: 30
|
||||
sweep:
|
||||
distance_nm: 60
|
||||
ground_unit_procurement_ratios:
|
||||
Tank: 3
|
||||
ATGM: 2
|
||||
@@ -30,3 +27,7 @@ ground_unit_procurement_ratios:
|
||||
Artillery: 1
|
||||
SHORAD: 2
|
||||
Recon: 1
|
||||
helicopter:
|
||||
combat_altitude_ft_agl: 200
|
||||
rendezvous_altitude_ft_agl: 1500
|
||||
air_assault_nav_altitude_ft_agl: 1500
|
||||
|
||||
@@ -1,27 +1,24 @@
|
||||
name: ww2
|
||||
cap: true
|
||||
cas: true
|
||||
sead: false
|
||||
strike: true
|
||||
antiship: true
|
||||
hold_distance_nm: 10
|
||||
push_distance_nm: 5
|
||||
join_distance_nm: 5
|
||||
rendezvous_altitude_ft_msl: 10000
|
||||
max_ingress_distance_nm: 7
|
||||
min_ingress_distance_nm: 5
|
||||
ingress_altitude_ft_msl: 8000
|
||||
min_patrol_altitude_ft_msl: 4000
|
||||
max_patrol_altitude_ft_msl: 15000
|
||||
pattern_altitude_ft_msl: 5000
|
||||
cap_duration_minutes: 30
|
||||
cap_min_track_length_nm: 8
|
||||
cap_max_track_length_nm: 18
|
||||
cap_min_distance_from_cp_nm: 0
|
||||
cap_max_distance_from_cp_nm: 5
|
||||
cap_engagement_range_nm: 20
|
||||
cas_duration_minutes: 30
|
||||
sweep_distance_nm: 10
|
||||
rendezvous_altitude_ft_msl: 10000
|
||||
combat_altitude_ft_msl: 8000
|
||||
cap:
|
||||
duration_minutes: 30
|
||||
min_track_length_nm: 8
|
||||
max_track_length_nm: 18
|
||||
min_distance_from_cp_nm: 0
|
||||
max_distance_from_cp_nm: 5
|
||||
engagement_range_nm: 20
|
||||
min_patrol_altitude_ft_msl: 4000
|
||||
max_patrol_altitude_ft_msl: 15000
|
||||
cas:
|
||||
duration_minutes: 30
|
||||
sweep:
|
||||
distance_nm: 10
|
||||
ground_unit_procurement_ratios:
|
||||
Tank: 3
|
||||
ATGM: 3
|
||||
@@ -29,3 +26,7 @@ ground_unit_procurement_ratios:
|
||||
Artillery: 1
|
||||
SHORAD: 3
|
||||
Recon: 1
|
||||
helicopter:
|
||||
combat_altitude_ft_agl: 200
|
||||
rendezvous_altitude_ft_agl: 1500
|
||||
air_assault_nav_altitude_ft_agl: 1500
|
||||
|
||||
@@ -11,6 +11,9 @@ aircrafts:
|
||||
- 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:
|
||||
|
||||
@@ -13,6 +13,9 @@ aircrafts:
|
||||
- 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:
|
||||
|
||||
BIN
resources/ui/units/aircrafts/banners/EA-18G.jpg
Normal file
BIN
resources/ui/units/aircrafts/banners/EA-18G.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 989 KiB |
BIN
resources/ui/units/aircrafts/banners/FA-18E.jpeg
Normal file
BIN
resources/ui/units/aircrafts/banners/FA-18E.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 46 KiB |
BIN
resources/ui/units/aircrafts/banners/FA-18F.jpeg
Normal file
BIN
resources/ui/units/aircrafts/banners/FA-18F.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 226 KiB |
BIN
resources/ui/units/aircrafts/icons/EA-18G_24.png
Normal file
BIN
resources/ui/units/aircrafts/icons/EA-18G_24.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.3 KiB |
BIN
resources/ui/units/aircrafts/icons/FA-18E_24.png
Normal file
BIN
resources/ui/units/aircrafts/icons/FA-18E_24.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.5 KiB |
BIN
resources/ui/units/aircrafts/icons/FA-18F_24.png
Normal file
BIN
resources/ui/units/aircrafts/icons/FA-18F_24.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.8 KiB |
@@ -20,3 +20,4 @@ tasks:
|
||||
BAI: 680
|
||||
CAS: 680
|
||||
OCA/Aircraft: 680
|
||||
hit_points: 32
|
||||
|
||||
@@ -30,3 +30,4 @@ tasks:
|
||||
OCA/Aircraft: 820
|
||||
OCA/Runway: 380
|
||||
Strike: 380
|
||||
hit_points: 32
|
||||
|
||||
@@ -34,3 +34,4 @@ tasks:
|
||||
OCA/Aircraft: 830
|
||||
OCA/Runway: 390
|
||||
Strike: 390
|
||||
hit_points: 32
|
||||
|
||||
@@ -24,3 +24,4 @@ tasks:
|
||||
OCA/Aircraft: 160
|
||||
OCA/Runway: 140
|
||||
Strike: 140
|
||||
hit_points: 18
|
||||
|
||||
@@ -8,3 +8,4 @@ variants:
|
||||
A-50: null
|
||||
tasks:
|
||||
AEW&C: 10
|
||||
hit_points: 60
|
||||
|
||||
@@ -23,3 +23,4 @@ tasks:
|
||||
BAI: 480
|
||||
CAS: 480
|
||||
OCA/Aircraft: 480
|
||||
hit_points: 14
|
||||
|
||||
@@ -24,3 +24,4 @@ tasks:
|
||||
BAI: 490
|
||||
CAS: 490
|
||||
OCA/Aircraft: 490
|
||||
hit_points: 14
|
||||
|
||||
@@ -25,3 +25,4 @@ tasks:
|
||||
BAI: 500
|
||||
CAS: 500
|
||||
OCA/Aircraft: 500
|
||||
hit_points: 14
|
||||
|
||||
@@ -40,5 +40,4 @@ tasks:
|
||||
CAS: 510
|
||||
DEAD: 115
|
||||
OCA/Aircraft: 510
|
||||
default_overrides:
|
||||
FCR_RFI_removed: false
|
||||
hit_points: 20
|
||||
|
||||
@@ -43,3 +43,4 @@ tasks:
|
||||
OCA/Aircraft: 620
|
||||
OCA/Runway: 620
|
||||
Strike: 630
|
||||
hit_points: 18
|
||||
|
||||
@@ -63,3 +63,4 @@ tasks:
|
||||
SEAD: 70
|
||||
SEAD Escort: 70
|
||||
Strike: 590
|
||||
hit_points: 18
|
||||
|
||||
@@ -5,3 +5,4 @@ variants:
|
||||
An-26B: null
|
||||
tasks:
|
||||
Transport: 110
|
||||
hit_points: 45
|
||||
|
||||
@@ -3,3 +3,4 @@ price: 15
|
||||
variants:
|
||||
An-30M: null
|
||||
tasks: {}
|
||||
hit_points: 45
|
||||
|
||||
@@ -23,3 +23,4 @@ variants:
|
||||
tasks:
|
||||
OCA/Runway: 150
|
||||
Strike: 150
|
||||
hit_points: 18
|
||||
|
||||
@@ -23,3 +23,4 @@ tasks:
|
||||
OCA/Aircraft: 670
|
||||
OCA/Runway: 670
|
||||
Strike: 700
|
||||
hit_points: 60
|
||||
|
||||
@@ -17,3 +17,4 @@ tasks:
|
||||
DEAD: 210
|
||||
OCA/Runway: 660
|
||||
Strike: 690
|
||||
hit_points: 60
|
||||
|
||||
@@ -34,3 +34,4 @@ tasks:
|
||||
OCA/Runway: 20
|
||||
Strike: 20
|
||||
TARCAP: 60
|
||||
hit_points: 18
|
||||
|
||||
@@ -30,3 +30,4 @@ tasks:
|
||||
OCA/Runway: 170
|
||||
Strike: 170
|
||||
TARCAP: 130
|
||||
hit_points: 18
|
||||
|
||||
@@ -5,3 +5,4 @@ variants:
|
||||
C-130: null
|
||||
tasks:
|
||||
Transport: 130
|
||||
hit_points: 45
|
||||
|
||||
@@ -5,3 +5,4 @@ variants:
|
||||
C-17A: null
|
||||
tasks:
|
||||
Transport: 150
|
||||
hit_points: 45
|
||||
|
||||
@@ -13,3 +13,4 @@ variants:
|
||||
C-47 Dakota: null
|
||||
tasks:
|
||||
Transport: 90
|
||||
hit_points: 18
|
||||
|
||||
@@ -10,3 +10,4 @@ variants:
|
||||
tasks:
|
||||
Air Assault: 90
|
||||
Transport: 70
|
||||
hit_points: 20
|
||||
|
||||
@@ -10,3 +10,4 @@ variants:
|
||||
tasks:
|
||||
Air Assault: 100
|
||||
Transport: 80
|
||||
hit_points: 20
|
||||
|
||||
@@ -16,3 +16,4 @@ variants:
|
||||
E-2D Advanced Hawkeye: {}
|
||||
tasks:
|
||||
AEW&C: 20
|
||||
hit_points: 25
|
||||
|
||||
@@ -8,3 +8,4 @@ variants:
|
||||
E-3A: null
|
||||
tasks:
|
||||
AEW&C: 30
|
||||
hit_points: 60
|
||||
|
||||
47
resources/units/aircraft/EA-18G_growler.yaml
Normal file
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
|
||||
@@ -20,3 +20,4 @@ variants:
|
||||
tasks:
|
||||
Strike: 710
|
||||
has_built_in_target_pod: true
|
||||
hit_points: 20
|
||||
|
||||
@@ -59,3 +59,4 @@ tasks:
|
||||
SEAD Escort: 90
|
||||
Strike: 550
|
||||
TARCAP: 520
|
||||
hit_points: 20
|
||||
|
||||
@@ -59,3 +59,4 @@ tasks:
|
||||
SEAD Escort: 100
|
||||
Strike: 560
|
||||
TARCAP: 530
|
||||
hit_points: 20
|
||||
|
||||
@@ -18,3 +18,4 @@ tasks:
|
||||
Fighter sweep: 540
|
||||
Intercept: 540
|
||||
TARCAP: 540
|
||||
hit_points: 20
|
||||
|
||||
@@ -25,3 +25,4 @@ tasks:
|
||||
Strike: 640
|
||||
TARCAP: 240
|
||||
has_built_in_target_pod: true
|
||||
hit_points: 20
|
||||
|
||||
@@ -51,3 +51,4 @@ laser_codes:
|
||||
- property:
|
||||
id: Sta8LaserCode
|
||||
digits: 3
|
||||
hit_points: 18
|
||||
|
||||
@@ -16,3 +16,4 @@ tasks:
|
||||
OCA/Runway: 570
|
||||
Strike: 570
|
||||
TARCAP: 420
|
||||
hit_points: 14
|
||||
|
||||
@@ -78,3 +78,4 @@ laser_codes:
|
||||
digit: 1
|
||||
- id: LaserCode1
|
||||
digit: 0
|
||||
hit_points: 20
|
||||
|
||||
@@ -33,3 +33,4 @@ tasks:
|
||||
SEAD Escort: 120
|
||||
Strike: 400
|
||||
TARCAP: 410
|
||||
hit_points: 20
|
||||
|
||||
@@ -48,3 +48,4 @@ tasks:
|
||||
OCA/Runway: 190
|
||||
Strike: 200
|
||||
TARCAP: 200
|
||||
hit_points: 16
|
||||
|
||||
@@ -26,3 +26,4 @@ tasks:
|
||||
OCA/Runway: 180
|
||||
Strike: 190
|
||||
TARCAP: 150
|
||||
hit_points: 15
|
||||
|
||||
@@ -68,3 +68,4 @@ tasks:
|
||||
SEAD Escort: 160
|
||||
Strike: 600
|
||||
TARCAP: 450
|
||||
hit_points: 20
|
||||
|
||||
0
resources/units/aircraft/FA-18E_super-hornet.yaml
Normal file
0
resources/units/aircraft/FA-18E_super-hornet.yaml
Normal file
0
resources/units/aircraft/FA-18F_super-hornet.yaml
Normal file
0
resources/units/aircraft/FA-18F_super-hornet.yaml
Normal file
@@ -44,3 +44,4 @@ tasks:
|
||||
OCA/Runway: 0
|
||||
Strike: 0
|
||||
TARCAP: 40
|
||||
hit_points: 18
|
||||
|
||||
@@ -33,3 +33,4 @@ tasks:
|
||||
OCA/Runway: 10
|
||||
Strike: 10
|
||||
TARCAP: 50
|
||||
hit_points: 18
|
||||
|
||||
@@ -24,3 +24,4 @@ tasks:
|
||||
OCA/Aircraft: 380
|
||||
OCA/Runway: 640
|
||||
Strike: 650
|
||||
hit_points: 18
|
||||
|
||||
@@ -28,3 +28,4 @@ tasks:
|
||||
Intercept: 0
|
||||
OCA/Aircraft: 60
|
||||
TARCAP: 0
|
||||
hit_points: 15
|
||||
|
||||
@@ -4,3 +4,4 @@ variants:
|
||||
IL-76MD: null
|
||||
tasks:
|
||||
Transport: 120
|
||||
hit_points: 60
|
||||
|
||||
@@ -9,3 +9,4 @@ variants:
|
||||
IL-78M: null
|
||||
tasks:
|
||||
Refueling: 30
|
||||
hit_points: 60
|
||||
|
||||
@@ -18,3 +18,4 @@ tasks:
|
||||
Fighter sweep: 500
|
||||
Intercept: 500
|
||||
TARCAP: 500
|
||||
hit_points: 18
|
||||
|
||||
@@ -53,3 +53,4 @@ tasks:
|
||||
SEAD Escort: 180
|
||||
Strike: 580
|
||||
TARCAP: 440
|
||||
hit_points: 18
|
||||
|
||||
@@ -27,3 +27,4 @@ tasks:
|
||||
OCA/Aircraft: 150
|
||||
OCA/Runway: 130
|
||||
Strike: 130
|
||||
hit_points: 18
|
||||
|
||||
@@ -17,3 +17,4 @@ variants:
|
||||
KC-135 Stratotanker: {}
|
||||
tasks:
|
||||
Refueling: 50
|
||||
hit_points: 60
|
||||
|
||||
@@ -15,3 +15,4 @@ variants:
|
||||
KC-130: {}
|
||||
tasks:
|
||||
Refueling: 10
|
||||
hit_points: 18
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user