mirror of
https://github.com/dcs-liberation/dcs_liberation.git
synced 2025-11-10 14:22:26 +00:00
Compare commits
64 Commits
develop-10
...
develop-11
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7543b5f79f | ||
|
|
708402b955 | ||
|
|
6a9cebe9b1 | ||
|
|
36b687f7ef | ||
|
|
524125b455 | ||
|
|
1be87ec16b | ||
|
|
9066fafcb1 | ||
|
|
fd8632a71d | ||
|
|
352216bb5e | ||
|
|
271ddf4503 | ||
|
|
cef81c16c3 | ||
|
|
4e2c3dbc51 | ||
|
|
d905f0cf7f | ||
|
|
99bbdc3e77 | ||
|
|
4040f50d8a | ||
|
|
11304542bd | ||
|
|
cbf5f5ed90 | ||
|
|
6433d3159e | ||
|
|
b376ab135f | ||
|
|
99089cc3d0 | ||
|
|
13ff69c4df | ||
|
|
55c77ed7c3 | ||
|
|
4c5d968dd7 | ||
|
|
dc3d1b0b5b | ||
|
|
75f904275c | ||
|
|
f59051c9f8 | ||
|
|
c8c78d0b2a | ||
|
|
0ade5b9861 | ||
|
|
9611c01b93 | ||
|
|
3234a2b28a | ||
|
|
8aa38a83ff | ||
|
|
7d5bb0356f | ||
|
|
143b775639 | ||
|
|
f296925c22 | ||
|
|
dfe0c0b315 | ||
|
|
bd5087b3c7 | ||
|
|
88ebb8b612 | ||
|
|
63702f859d | ||
|
|
cc5e2ba26c | ||
|
|
b0a8d53fa6 | ||
|
|
77b7f777f6 | ||
|
|
e59da610e9 | ||
|
|
b61310d229 | ||
|
|
6550400604 | ||
|
|
1ee1113e48 | ||
|
|
01f22d6da7 | ||
|
|
8e6893d550 | ||
|
|
fa9d5525c0 | ||
|
|
5127022910 | ||
|
|
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"
|
If the bug was found in a development build, select "Development build"
|
||||||
and provide a link to the build in the field below.
|
and provide a link to the build in the field below.
|
||||||
options:
|
options:
|
||||||
- 9.0.0
|
- 11.1.1
|
||||||
- Development build
|
- Development build
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
|
|||||||
2
.github/ISSUE_TEMPLATE/new-game-bug.yml
vendored
2
.github/ISSUE_TEMPLATE/new-game-bug.yml
vendored
@@ -39,7 +39,7 @@ body:
|
|||||||
If the bug was found in a development build, select "Development build"
|
If the bug was found in a development build, select "Development build"
|
||||||
and provide a link to the build in the field below.
|
and provide a link to the build in the field below.
|
||||||
options:
|
options:
|
||||||
- 9.0.0
|
- 11.1.1
|
||||||
- Development build
|
- Development build
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ runs:
|
|||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v2
|
uses: actions/setup-python@v2
|
||||||
with:
|
with:
|
||||||
python-version: "3.11"
|
python-version: "3.11.4"
|
||||||
cache: pip
|
cache: pip
|
||||||
|
|
||||||
- name: Install environment
|
- name: Install environment
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
(Github Readme Banner and Splash screen Artwork by Andriy Dankovych, CC BY-SA 4.0)
|
(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)
|
[](https://github.com/dcs-liberation/dcs_liberation/releases)
|
||||||
|
|
||||||
@@ -17,11 +17,6 @@
|
|||||||
DCS Liberation is a [DCS World](https://www.digitalcombatsimulator.com/en/products/world/) turn based single-player or co-op dynamic campaign.
|
DCS Liberation is a [DCS World](https://www.digitalcombatsimulator.com/en/products/world/) turn based single-player or co-op dynamic campaign.
|
||||||
It is an external program that generates full and complex DCS missions and manage a persistent combat environment.
|
It is an external program that generates full and complex DCS missions and manage a persistent combat environment.
|
||||||
|
|
||||||
**Note that DCS Liberation does not support the stable release of DCS. We can
|
|
||||||
only guarantee compatibility with either the open beta or the stable release,
|
|
||||||
and more people play the open beta. DCS stable _might_ work sometimes, but it's
|
|
||||||
untested, and we will be unable to fix any bugs unique to stable DCS.**
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Downloads
|
## Downloads
|
||||||
|
|||||||
40
changelog.md
40
changelog.md
@@ -1,3 +1,43 @@
|
|||||||
|
# 11.1.1
|
||||||
|
|
||||||
|
Saves from 11.0.0 are compatible with 11.1.1. See Known Issues section for exceptions.
|
||||||
|
|
||||||
|
## Features/Improvements
|
||||||
|
|
||||||
|
* **[Engine]** Support for DCS 2.9.5.55918 including Heatblur F-4E and Polychop OH-58D Kiowa Warrior support.
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
|
||||||
|
* **[Campaign]** Fixed double counting of parked aircraft kills when DCS reports multiple kill events.
|
||||||
|
* **[Campaign]** Fixed error where frontline units are not re-deployed when multiple control points were captured in one turn or when control points are captured "out of order" using air-assault missions.
|
||||||
|
* **[Cheat Menu]** Re-deploy frontline units when using cheats to capture control points, so that cheats behave the same way as capturing a control point in-mission.
|
||||||
|
* **[Data]** Added FuSe-65 Early Warning Radar.
|
||||||
|
* **[Data]** Updated Peru 1995 and Germany 1944 factions.
|
||||||
|
* **[Flight Planning]** Theater refuelling flight plans (those not tied to a particular package) will remain on station for a longer period, specifically the desired mission duration + 30 minutes. By default, this increases the on-station time from 1 hour to 1.5 hours.
|
||||||
|
* **[Mission Generation]** Patched bug where Liberation crashed when aborting a turn when Fighter Sweep missions were planned.
|
||||||
|
* **[Radios]** Added radio setup for F-5E, F-86, Mi-8 and Mi-24.
|
||||||
|
* **[UI]** Naval control points (carriers, LHAs) can no longer be moved onto land.
|
||||||
|
|
||||||
|
## Known Issues
|
||||||
|
|
||||||
|
* When loading saves from 11.0, loadouts with AGM-45B (Imp), typically on A-4E-C mod, will have the AGM-45B replaced with an empty pylon due to changes in DCS for this weapon. The AGM-45A is not affected by this issue.
|
||||||
|
|
||||||
|
# 11.0.0
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
## 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
|
# 10.0.0
|
||||||
|
|
||||||
Saves from 9.x are not compatible with 10.0.0.
|
Saves from 9.x are not compatible with 10.0.0.
|
||||||
|
|||||||
562
client/package-lock.json
generated
562
client/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -7,9 +7,9 @@
|
|||||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
||||||
|
|
||||||
project = "DCS Liberation"
|
project = "DCS Liberation"
|
||||||
copyright = "2023, DCS Liberation Team"
|
copyright = "2024, DCS Liberation Team"
|
||||||
author = "DCS Liberation Team"
|
author = "DCS Liberation Team"
|
||||||
release = "10.0.0"
|
release = "11.1.1"
|
||||||
|
|
||||||
# -- General configuration ---------------------------------------------------
|
# -- General configuration ---------------------------------------------------
|
||||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ class Builder(IBuilder[AirAssaultFlightPlan, AirAssaultLayout]):
|
|||||||
raise PlanningError("Air assault is only usable by helicopters")
|
raise PlanningError("Air assault is only usable by helicopters")
|
||||||
assert self.package.waypoints is not None
|
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
|
altitude_is_agl = self.flight.is_helo
|
||||||
|
|
||||||
builder = WaypointBuilder(self.flight, self.coalition)
|
builder = WaypointBuilder(self.flight, self.coalition)
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ class BarCapFlightPlan(PatrollingFlightPlan[PatrollingLayout]):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def patrol_duration(self) -> timedelta:
|
def patrol_duration(self) -> timedelta:
|
||||||
return self.flight.coalition.doctrine.cap_duration
|
return self.flight.coalition.doctrine.cap.duration
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def patrol_speed(self) -> Speed:
|
def patrol_speed(self) -> Speed:
|
||||||
@@ -29,7 +29,7 @@ class BarCapFlightPlan(PatrollingFlightPlan[PatrollingLayout]):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def engagement_distance(self) -> Distance:
|
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]):
|
class Builder(CapBuilder[BarCapFlightPlan, PatrollingLayout]):
|
||||||
@@ -44,8 +44,8 @@ class Builder(CapBuilder[BarCapFlightPlan, PatrollingLayout]):
|
|||||||
preferred_alt = self.flight.unit_type.preferred_patrol_altitude
|
preferred_alt = self.flight.unit_type.preferred_patrol_altitude
|
||||||
randomized_alt = preferred_alt + feet(random.randint(-2, 1) * 1000)
|
randomized_alt = preferred_alt + feet(random.randint(-2, 1) * 1000)
|
||||||
patrol_alt = max(
|
patrol_alt = max(
|
||||||
self.doctrine.min_patrol_altitude,
|
self.doctrine.cap.min_patrol_altitude,
|
||||||
min(self.doctrine.max_patrol_altitude, randomized_alt),
|
min(self.doctrine.cap.max_patrol_altitude, randomized_alt),
|
||||||
)
|
)
|
||||||
|
|
||||||
builder = WaypointBuilder(self.flight, self.coalition)
|
builder = WaypointBuilder(self.flight, self.coalition)
|
||||||
|
|||||||
@@ -90,10 +90,10 @@ class CapBuilder(IBuilder[FlightPlanT, LayoutT], ABC):
|
|||||||
# buffer.
|
# buffer.
|
||||||
distance_to_no_fly = (
|
distance_to_no_fly = (
|
||||||
meters(position.distance(self.threat_zones.all))
|
meters(position.distance(self.threat_zones.all))
|
||||||
- self.doctrine.cap_engagement_range
|
- self.doctrine.cap.engagement_range
|
||||||
- nautical_miles(5)
|
- nautical_miles(5)
|
||||||
)
|
)
|
||||||
max_track_length = self.doctrine.cap_max_track_length
|
max_track_length = self.doctrine.cap.max_track_length
|
||||||
else:
|
else:
|
||||||
# Other race tracks (TARCAPs, currently) just try to keep some
|
# Other race tracks (TARCAPs, currently) just try to keep some
|
||||||
# distance from the nearest enemy airbase, but since they are by
|
# 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
|
distance_to_no_fly = distance_to_airfield - min_distance_from_enemy
|
||||||
|
|
||||||
# TARCAPs fly short racetracks because they need to react faster.
|
# TARCAPs fly short racetracks because they need to react faster.
|
||||||
max_track_length = self.doctrine.cap_min_track_length + 0.3 * (
|
max_track_length = self.doctrine.cap.min_track_length + 0.3 * (
|
||||||
self.doctrine.cap_max_track_length - self.doctrine.cap_min_track_length
|
self.doctrine.cap.max_track_length - self.doctrine.cap.min_track_length
|
||||||
)
|
)
|
||||||
|
|
||||||
min_cap_distance = min(
|
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(
|
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(
|
end = location.position.point_from_heading(
|
||||||
@@ -125,7 +125,7 @@ class CapBuilder(IBuilder[FlightPlanT, LayoutT], ABC):
|
|||||||
)
|
)
|
||||||
|
|
||||||
track_length = random.randint(
|
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),
|
int(max_track_length.meters),
|
||||||
)
|
)
|
||||||
start = end.point_from_heading(heading.opposite.degrees, track_length)
|
start = end.point_from_heading(heading.opposite.degrees, track_length)
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ class CasFlightPlan(PatrollingFlightPlan[CasLayout], UiZoneDisplay):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def patrol_duration(self) -> timedelta:
|
def patrol_duration(self) -> timedelta:
|
||||||
return self.flight.coalition.doctrine.cas_duration
|
return self.flight.coalition.doctrine.cas.duration
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def patrol_speed(self) -> Speed:
|
def patrol_speed(self) -> Speed:
|
||||||
@@ -96,7 +96,7 @@ class Builder(IBuilder[CasFlightPlan, CasLayout]):
|
|||||||
builder = WaypointBuilder(self.flight, self.coalition)
|
builder = WaypointBuilder(self.flight, self.coalition)
|
||||||
|
|
||||||
is_helo = self.flight.unit_type.dcs_unit_type.helicopter
|
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
|
use_agl_patrol_altitude = is_helo
|
||||||
|
|
||||||
ip_solver = IpSolver(
|
ip_solver = IpSolver(
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ class Builder(FormationAttackBuilder[EscortFlightPlan, FormationAttackLayout]):
|
|||||||
departure=builder.takeoff(self.flight.departure),
|
departure=builder.takeoff(self.flight.departure),
|
||||||
hold=hold,
|
hold=hold,
|
||||||
nav_to=builder.nav_path(
|
nav_to=builder.nav_path(
|
||||||
hold.position, join.position, self.doctrine.ingress_altitude
|
hold.position, join.position, self.doctrine.combat_altitude
|
||||||
),
|
),
|
||||||
join=join,
|
join=join,
|
||||||
ingress=ingress,
|
ingress=ingress,
|
||||||
@@ -43,7 +43,7 @@ class Builder(FormationAttackBuilder[EscortFlightPlan, FormationAttackLayout]):
|
|||||||
nav_from=builder.nav_path(
|
nav_from=builder.nav_path(
|
||||||
refuel.position,
|
refuel.position,
|
||||||
self.flight.arrival.position,
|
self.flight.arrival.position,
|
||||||
self.doctrine.ingress_altitude,
|
self.doctrine.combat_altitude,
|
||||||
),
|
),
|
||||||
arrival=builder.land(self.flight.arrival),
|
arrival=builder.land(self.flight.arrival),
|
||||||
divert=builder.divert(self.flight.divert),
|
divert=builder.divert(self.flight.divert),
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ class FormationAttackBuilder(IBuilder[FlightPlanT, LayoutT], ABC):
|
|||||||
departure=builder.takeoff(self.flight.departure),
|
departure=builder.takeoff(self.flight.departure),
|
||||||
hold=hold,
|
hold=hold,
|
||||||
nav_to=builder.nav_path(
|
nav_to=builder.nav_path(
|
||||||
hold.position, join.position, self.doctrine.ingress_altitude
|
hold.position, join.position, self.doctrine.combat_altitude
|
||||||
),
|
),
|
||||||
join=join,
|
join=join,
|
||||||
ingress=ingress,
|
ingress=ingress,
|
||||||
@@ -173,7 +173,7 @@ class FormationAttackBuilder(IBuilder[FlightPlanT, LayoutT], ABC):
|
|||||||
nav_from=builder.nav_path(
|
nav_from=builder.nav_path(
|
||||||
refuel.position,
|
refuel.position,
|
||||||
self.flight.arrival.position,
|
self.flight.arrival.position,
|
||||||
self.doctrine.ingress_altitude,
|
self.doctrine.combat_altitude,
|
||||||
),
|
),
|
||||||
arrival=builder.land(self.flight.arrival),
|
arrival=builder.land(self.flight.arrival),
|
||||||
divert=builder.divert(self.flight.divert),
|
divert=builder.divert(self.flight.divert),
|
||||||
|
|||||||
@@ -114,11 +114,11 @@ class Builder(IBuilder[SweepFlightPlan, SweepLayout]):
|
|||||||
self.package.waypoints.join.heading_between_point(target)
|
self.package.waypoints.join.heading_between_point(target)
|
||||||
)
|
)
|
||||||
start_pos = target.point_from_heading(
|
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)
|
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())
|
hold = builder.hold(self._hold_point())
|
||||||
|
|
||||||
@@ -126,12 +126,12 @@ class Builder(IBuilder[SweepFlightPlan, SweepLayout]):
|
|||||||
departure=builder.takeoff(self.flight.departure),
|
departure=builder.takeoff(self.flight.departure),
|
||||||
hold=hold,
|
hold=hold,
|
||||||
nav_to=builder.nav_path(
|
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(
|
nav_from=builder.nav_path(
|
||||||
end.position,
|
end.position,
|
||||||
self.flight.arrival.position,
|
self.flight.arrival.position,
|
||||||
self.doctrine.ingress_altitude,
|
self.doctrine.combat_altitude,
|
||||||
),
|
),
|
||||||
sweep_start=start,
|
sweep_start=start,
|
||||||
sweep_end=end,
|
sweep_end=end,
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ class TarCapFlightPlan(PatrollingFlightPlan[TarCapLayout]):
|
|||||||
# flights in the package that have requested escort. If the package
|
# flights in the package that have requested escort. If the package
|
||||||
# requests an escort the CAP self.flight will remain on station for the
|
# requests an escort the CAP self.flight will remain on station for the
|
||||||
# duration of the escorted mission, or until it is winchester/bingo.
|
# 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
|
@property
|
||||||
def patrol_speed(self) -> Speed:
|
def patrol_speed(self) -> Speed:
|
||||||
@@ -50,7 +50,7 @@ class TarCapFlightPlan(PatrollingFlightPlan[TarCapLayout]):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def engagement_distance(self) -> Distance:
|
def engagement_distance(self) -> Distance:
|
||||||
return self.flight.coalition.doctrine.cap_engagement_range
|
return self.flight.coalition.doctrine.cap.engagement_range
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def builder_type() -> Type[Builder]:
|
def builder_type() -> Type[Builder]:
|
||||||
@@ -90,8 +90,8 @@ class Builder(CapBuilder[TarCapFlightPlan, TarCapLayout]):
|
|||||||
preferred_alt = self.flight.unit_type.preferred_patrol_altitude
|
preferred_alt = self.flight.unit_type.preferred_patrol_altitude
|
||||||
randomized_alt = preferred_alt + feet(random.randint(-2, 1) * 1000)
|
randomized_alt = preferred_alt + feet(random.randint(-2, 1) * 1000)
|
||||||
patrol_alt = max(
|
patrol_alt = max(
|
||||||
self.doctrine.min_patrol_altitude,
|
self.doctrine.cap.min_patrol_altitude,
|
||||||
min(self.doctrine.max_patrol_altitude, randomized_alt),
|
min(self.doctrine.cap.max_patrol_altitude, randomized_alt),
|
||||||
)
|
)
|
||||||
|
|
||||||
builder = WaypointBuilder(self.flight, self.coalition)
|
builder = WaypointBuilder(self.flight, self.coalition)
|
||||||
|
|||||||
@@ -17,7 +17,13 @@ class TheaterRefuelingFlightPlan(RefuelingFlightPlan):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def patrol_duration(self) -> timedelta:
|
def patrol_duration(self) -> timedelta:
|
||||||
return timedelta(hours=1)
|
# Add 30 minutes to desired_player_mission_duration as TOTs for flights
|
||||||
|
# can sit up to this time. This extension means the tanker remains on
|
||||||
|
# station for the flights' return.
|
||||||
|
return (
|
||||||
|
self.flight.coalition.game.settings.desired_player_mission_duration
|
||||||
|
+ timedelta(minutes=30)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class Builder(IBuilder[TheaterRefuelingFlightPlan, PatrollingLayout]):
|
class Builder(IBuilder[TheaterRefuelingFlightPlan, PatrollingLayout]):
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ class WaypointBuilder:
|
|||||||
"NAV",
|
"NAV",
|
||||||
FlightWaypointType.NAV,
|
FlightWaypointType.NAV,
|
||||||
position,
|
position,
|
||||||
meters(500) if self.is_helo else self.doctrine.rendezvous_altitude,
|
self.doctrine.resolve_rendezvous_altitude(self.is_helo),
|
||||||
description="Enter theater",
|
description="Enter theater",
|
||||||
pretty_name="Enter theater",
|
pretty_name="Enter theater",
|
||||||
)
|
)
|
||||||
@@ -99,7 +99,7 @@ class WaypointBuilder:
|
|||||||
"NAV",
|
"NAV",
|
||||||
FlightWaypointType.NAV,
|
FlightWaypointType.NAV,
|
||||||
position,
|
position,
|
||||||
meters(500) if self.is_helo else self.doctrine.rendezvous_altitude,
|
self.doctrine.resolve_rendezvous_altitude(self.is_helo),
|
||||||
description="Exit theater",
|
description="Exit theater",
|
||||||
pretty_name="Exit theater",
|
pretty_name="Exit theater",
|
||||||
)
|
)
|
||||||
@@ -127,10 +127,7 @@ class WaypointBuilder:
|
|||||||
position = divert.position
|
position = divert.position
|
||||||
altitude_type: AltitudeReference
|
altitude_type: AltitudeReference
|
||||||
if isinstance(divert, OffMapSpawn):
|
if isinstance(divert, OffMapSpawn):
|
||||||
if self.is_helo:
|
altitude = self.doctrine.resolve_rendezvous_altitude(self.is_helo)
|
||||||
altitude = meters(500)
|
|
||||||
else:
|
|
||||||
altitude = self.doctrine.rendezvous_altitude
|
|
||||||
altitude_type = "BARO"
|
altitude_type = "BARO"
|
||||||
else:
|
else:
|
||||||
altitude = meters(0)
|
altitude = meters(0)
|
||||||
@@ -168,10 +165,7 @@ class WaypointBuilder:
|
|||||||
"HOLD",
|
"HOLD",
|
||||||
FlightWaypointType.LOITER,
|
FlightWaypointType.LOITER,
|
||||||
position,
|
position,
|
||||||
# Bug: DCS only accepts MSL altitudes for the orbit task and 500 meters is
|
self.doctrine.resolve_rendezvous_altitude(self.is_helo),
|
||||||
# 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,
|
|
||||||
alt_type,
|
alt_type,
|
||||||
description="Wait until push time",
|
description="Wait until push time",
|
||||||
pretty_name="Hold",
|
pretty_name="Hold",
|
||||||
@@ -186,7 +180,7 @@ class WaypointBuilder:
|
|||||||
"JOIN",
|
"JOIN",
|
||||||
FlightWaypointType.JOIN,
|
FlightWaypointType.JOIN,
|
||||||
position,
|
position,
|
||||||
meters(80) if self.is_helo else self.doctrine.ingress_altitude,
|
self.doctrine.resolve_combat_altitude(self.is_helo),
|
||||||
alt_type,
|
alt_type,
|
||||||
description="Rendezvous with package",
|
description="Rendezvous with package",
|
||||||
pretty_name="Join",
|
pretty_name="Join",
|
||||||
@@ -201,7 +195,7 @@ class WaypointBuilder:
|
|||||||
"REFUEL",
|
"REFUEL",
|
||||||
FlightWaypointType.REFUEL,
|
FlightWaypointType.REFUEL,
|
||||||
position,
|
position,
|
||||||
meters(80) if self.is_helo else self.doctrine.ingress_altitude,
|
self.doctrine.resolve_combat_altitude(self.is_helo),
|
||||||
alt_type,
|
alt_type,
|
||||||
description="Refuel from tanker",
|
description="Refuel from tanker",
|
||||||
pretty_name="Refuel",
|
pretty_name="Refuel",
|
||||||
@@ -229,7 +223,7 @@ class WaypointBuilder:
|
|||||||
"SPLIT",
|
"SPLIT",
|
||||||
FlightWaypointType.SPLIT,
|
FlightWaypointType.SPLIT,
|
||||||
position,
|
position,
|
||||||
meters(80) if self.is_helo else self.doctrine.ingress_altitude,
|
self.doctrine.resolve_combat_altitude(self.is_helo),
|
||||||
alt_type,
|
alt_type,
|
||||||
description="Depart from package",
|
description="Depart from package",
|
||||||
pretty_name="Split",
|
pretty_name="Split",
|
||||||
@@ -249,7 +243,7 @@ class WaypointBuilder:
|
|||||||
"INGRESS",
|
"INGRESS",
|
||||||
ingress_type,
|
ingress_type,
|
||||||
position,
|
position,
|
||||||
meters(60) if self.is_helo else self.doctrine.ingress_altitude,
|
self.doctrine.resolve_combat_altitude(self.is_helo),
|
||||||
alt_type,
|
alt_type,
|
||||||
description=f"INGRESS on {objective.name}",
|
description=f"INGRESS on {objective.name}",
|
||||||
pretty_name=f"INGRESS on {objective.name}",
|
pretty_name=f"INGRESS on {objective.name}",
|
||||||
@@ -294,7 +288,7 @@ class WaypointBuilder:
|
|||||||
f"SEAD on {target.name}",
|
f"SEAD on {target.name}",
|
||||||
target,
|
target,
|
||||||
flyover=True,
|
flyover=True,
|
||||||
altitude=self.doctrine.ingress_altitude,
|
altitude=self.doctrine.combat_altitude,
|
||||||
alt_type="BARO",
|
alt_type="BARO",
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -484,7 +478,7 @@ class WaypointBuilder:
|
|||||||
"TARGET",
|
"TARGET",
|
||||||
FlightWaypointType.TARGET_GROUP_LOC,
|
FlightWaypointType.TARGET_GROUP_LOC,
|
||||||
target.position,
|
target.position,
|
||||||
meters(60) if self.is_helo else self.doctrine.ingress_altitude,
|
self.doctrine.resolve_combat_altitude(self.is_helo),
|
||||||
alt_type,
|
alt_type,
|
||||||
description="Escort the package",
|
description="Escort the package",
|
||||||
pretty_name="Target area",
|
pretty_name="Target area",
|
||||||
|
|||||||
@@ -61,6 +61,8 @@ class MizCampaignLoader:
|
|||||||
AirDefence.Hawk_ln.id,
|
AirDefence.Hawk_ln.id,
|
||||||
AirDefence.S_75M_Volhov.id,
|
AirDefence.S_75M_Volhov.id,
|
||||||
AirDefence.X_5p73_s_125_ln.id,
|
AirDefence.X_5p73_s_125_ln.id,
|
||||||
|
AirDefence.NASAMS_LN_B.id,
|
||||||
|
AirDefence.NASAMS_LN_C.id,
|
||||||
}
|
}
|
||||||
|
|
||||||
SHORT_RANGE_SAM_UNIT_TYPES = {
|
SHORT_RANGE_SAM_UNIT_TYPES = {
|
||||||
|
|||||||
@@ -158,7 +158,7 @@ class TheaterState(WorldState["TheaterState"]):
|
|||||||
# Plan enough rounds of CAP that the target has coverage over the expected
|
# Plan enough rounds of CAP that the target has coverage over the expected
|
||||||
# mission duration.
|
# mission duration.
|
||||||
mission_duration = game.settings.desired_player_mission_duration.total_seconds()
|
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)
|
barcap_rounds = math.ceil(mission_duration / barcap_duration)
|
||||||
|
|
||||||
refueling_targets: list[MissionTarget] = []
|
refueling_targets: list[MissionTarget] = []
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import yaml
|
import yaml
|
||||||
from typing import ClassVar
|
from typing import Any, ClassVar
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
@@ -32,18 +32,94 @@ class GroundUnitProcurementRatios:
|
|||||||
return GroundUnitProcurementRatios(r)
|
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)
|
@dataclass(frozen=True)
|
||||||
class Doctrine:
|
class Doctrine:
|
||||||
|
#: Name of the doctrine, used to assign a doctrine in a faction.
|
||||||
name: str
|
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.
|
#: The minimum distance between the departure airfield and the hold point.
|
||||||
hold_distance: Distance
|
hold_distance: Distance
|
||||||
|
|
||||||
@@ -62,42 +138,40 @@ class Doctrine:
|
|||||||
#: target.
|
#: target.
|
||||||
min_ingress_distance: Distance
|
min_ingress_distance: Distance
|
||||||
|
|
||||||
ingress_altitude: Distance
|
#: The altitude used for combat section of a flight.
|
||||||
|
combat_altitude: Distance
|
||||||
|
|
||||||
min_patrol_altitude: Distance
|
#: The altitude used for forming up a pacakge.
|
||||||
max_patrol_altitude: Distance
|
rendezvous_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
|
|
||||||
|
|
||||||
|
#: Defines prioritization of ground unit purchases.
|
||||||
ground_unit_procurement_ratios: GroundUnitProcurementRatios
|
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]] = {}
|
_by_name: ClassVar[dict[str, Doctrine]] = {}
|
||||||
_loaded: ClassVar[bool] = False
|
_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
|
@classmethod
|
||||||
def register(cls, doctrine: Doctrine) -> None:
|
def register(cls, doctrine: Doctrine) -> None:
|
||||||
if doctrine.name in cls._by_name:
|
if doctrine.name in cls._by_name:
|
||||||
@@ -127,11 +201,6 @@ class Doctrine:
|
|||||||
cls.register(
|
cls.register(
|
||||||
Doctrine(
|
Doctrine(
|
||||||
name=data["name"],
|
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"]),
|
rendezvous_altitude=feet(data["rendezvous_altitude_ft_msl"]),
|
||||||
hold_distance=nautical_miles(data["hold_distance_nm"]),
|
hold_distance=nautical_miles(data["hold_distance_nm"]),
|
||||||
push_distance=nautical_miles(data["push_distance_nm"]),
|
push_distance=nautical_miles(data["push_distance_nm"]),
|
||||||
@@ -142,31 +211,14 @@ class Doctrine:
|
|||||||
min_ingress_distance=nautical_miles(
|
min_ingress_distance=nautical_miles(
|
||||||
data["min_ingress_distance_nm"]
|
data["min_ingress_distance_nm"]
|
||||||
),
|
),
|
||||||
ingress_altitude=feet(data["ingress_altitude_ft_msl"]),
|
combat_altitude=feet(data["combat_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"]),
|
|
||||||
ground_unit_procurement_ratios=GroundUnitProcurementRatios.from_dict(
|
ground_unit_procurement_ratios=GroundUnitProcurementRatios.from_dict(
|
||||||
data["ground_unit_procurement_ratios"]
|
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
|
cls._loaded = True
|
||||||
|
|||||||
@@ -34,6 +34,10 @@ from game.radio.channels import (
|
|||||||
ViggenRadioChannelAllocator,
|
ViggenRadioChannelAllocator,
|
||||||
ViperChannelNamer,
|
ViperChannelNamer,
|
||||||
WarthogChannelNamer,
|
WarthogChannelNamer,
|
||||||
|
PhantomChannelNamer,
|
||||||
|
HindChannelNamer,
|
||||||
|
HipChannelNamer,
|
||||||
|
KiowaChannelNamer,
|
||||||
)
|
)
|
||||||
from game.utils import (
|
from game.utils import (
|
||||||
Distance,
|
Distance,
|
||||||
@@ -110,6 +114,10 @@ class RadioConfig:
|
|||||||
"apache": ApacheChannelNamer,
|
"apache": ApacheChannelNamer,
|
||||||
"a10c-legacy": LegacyWarthogChannelNamer,
|
"a10c-legacy": LegacyWarthogChannelNamer,
|
||||||
"a10c-ii": WarthogChannelNamer,
|
"a10c-ii": WarthogChannelNamer,
|
||||||
|
"phantom": PhantomChannelNamer,
|
||||||
|
"hind": HindChannelNamer,
|
||||||
|
"hip": HipChannelNamer,
|
||||||
|
"kiowa": KiowaChannelNamer,
|
||||||
}[config.get("namer", "default")]
|
}[config.get("namer", "default")]
|
||||||
|
|
||||||
|
|
||||||
@@ -498,9 +506,11 @@ class AircraftType(UnitType[Type[FlyingType]]):
|
|||||||
patrol_altitude=patrol_config.altitude,
|
patrol_altitude=patrol_config.altitude,
|
||||||
patrol_speed=patrol_config.speed,
|
patrol_speed=patrol_config.speed,
|
||||||
max_mission_range=mission_range,
|
max_mission_range=mission_range,
|
||||||
cruise_speed=knots(data["cruise_speed_kt_indicated"])
|
cruise_speed=(
|
||||||
if "cruise_speed_kt_indicated" in data
|
knots(data["cruise_speed_kt_indicated"])
|
||||||
else None,
|
if "cruise_speed_kt_indicated" in data
|
||||||
|
else None
|
||||||
|
),
|
||||||
fuel_consumption=fuel_consumption,
|
fuel_consumption=fuel_consumption,
|
||||||
default_livery=data.get("default_livery"),
|
default_livery=data.get("default_livery"),
|
||||||
intra_flight_radio=radio_config.intra_flight,
|
intra_flight_radio=radio_config.intra_flight,
|
||||||
@@ -517,6 +527,7 @@ class AircraftType(UnitType[Type[FlyingType]]):
|
|||||||
LaserCodeConfig.from_yaml(d) for d in data.get("laser_codes", [])
|
LaserCodeConfig.from_yaml(d) for d in data.get("laser_codes", [])
|
||||||
],
|
],
|
||||||
use_f15e_waypoint_names=data.get("use_f15e_waypoint_names", False),
|
use_f15e_waypoint_names=data.get("use_f15e_waypoint_names", False),
|
||||||
|
hit_points=data.get("hit_points", 1),
|
||||||
)
|
)
|
||||||
|
|
||||||
def __hash__(self) -> int:
|
def __hash__(self) -> int:
|
||||||
|
|||||||
@@ -133,4 +133,5 @@ class GroundUnitType(UnitType[Type[VehicleType]]):
|
|||||||
data.get("skynet_properties", {})
|
data.get("skynet_properties", {})
|
||||||
),
|
),
|
||||||
reversed_heading=data.get("reversed_heading", False),
|
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."),
|
manufacturer=data.get("manufacturer", "No data."),
|
||||||
role=data.get("role", "No data."),
|
role=data.get("role", "No data."),
|
||||||
price=data["price"],
|
price=data["price"],
|
||||||
|
hit_points=data.get("hit_points", 1),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ class UnitType(ABC, Generic[DcsUnitTypeT]):
|
|||||||
role: str
|
role: str
|
||||||
price: int
|
price: int
|
||||||
unit_class: UnitClass
|
unit_class: UnitClass
|
||||||
|
hit_points: int
|
||||||
|
|
||||||
_loaded: ClassVar[bool] = False
|
_loaded: ClassVar[bool] = False
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
from abc import ABC
|
||||||
import itertools
|
import itertools
|
||||||
import logging
|
import logging
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
@@ -9,7 +9,9 @@ from typing import (
|
|||||||
Dict,
|
Dict,
|
||||||
Iterator,
|
Iterator,
|
||||||
List,
|
List,
|
||||||
|
Optional,
|
||||||
TYPE_CHECKING,
|
TYPE_CHECKING,
|
||||||
|
TypeVar,
|
||||||
Union,
|
Union,
|
||||||
)
|
)
|
||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
@@ -21,8 +23,10 @@ from game.theater import Airfield, ControlPoint
|
|||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from game import Game
|
from game import Game
|
||||||
from game.ato.flight import Flight
|
from game.ato.flight import Flight
|
||||||
|
from game.dcs.unittype import UnitType
|
||||||
from game.sim.simulationresults import SimulationResults
|
from game.sim.simulationresults import SimulationResults
|
||||||
from game.transfers import CargoShip
|
from game.transfers import CargoShip
|
||||||
|
from game.theater import TheaterUnit
|
||||||
from game.unitmap import (
|
from game.unitmap import (
|
||||||
AirliftUnits,
|
AirliftUnits,
|
||||||
ConvoyUnit,
|
ConvoyUnit,
|
||||||
@@ -90,6 +94,103 @@ class BaseCaptureEvent:
|
|||||||
captured_by_player: bool
|
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)
|
@dataclass(frozen=True)
|
||||||
class StateData:
|
class StateData:
|
||||||
#: True if the mission ended. If False, the mission exited abnormally.
|
#: True if the mission ended. If False, the mission exited abnormally.
|
||||||
@@ -108,6 +209,10 @@ class StateData:
|
|||||||
#: Mangled names of bases that were captured during the mission.
|
#: Mangled names of bases that were captured during the mission.
|
||||||
base_capture_events: List[str]
|
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
|
@classmethod
|
||||||
def from_json(cls, data: Dict[str, Any], unit_map: UnitMap) -> StateData:
|
def from_json(cls, data: Dict[str, Any], unit_map: UnitMap) -> StateData:
|
||||||
def clean_unit_list(unit_list: List[Any]) -> List[str]:
|
def clean_unit_list(unit_list: List[Any]) -> List[str]:
|
||||||
@@ -147,6 +252,7 @@ class StateData:
|
|||||||
killed_ground_units=killed_ground_units,
|
killed_ground_units=killed_ground_units,
|
||||||
destroyed_statics=data["destroyed_objects_positions"],
|
destroyed_statics=data["destroyed_objects_positions"],
|
||||||
base_capture_events=data["base_capture_events"],
|
base_capture_events=data["base_capture_events"],
|
||||||
|
unit_hit_point_updates=data["unit_hit_point_updates"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -284,6 +390,25 @@ class Debriefing:
|
|||||||
player_losses.append(aircraft)
|
player_losses.append(aircraft)
|
||||||
else:
|
else:
|
||||||
enemy_losses.append(aircraft)
|
enemy_losses.append(aircraft)
|
||||||
|
|
||||||
|
# Keep track of damaged units that are counted as killed so we don't double count
|
||||||
|
# when DCS reports damage multiple times.
|
||||||
|
units_killed_by_damage = set()
|
||||||
|
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 unit_data["name"] in units_killed_by_damage:
|
||||||
|
continue
|
||||||
|
units_killed_by_damage.add(unit_data["name"])
|
||||||
|
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)
|
return AirLosses(player_losses, enemy_losses)
|
||||||
|
|
||||||
def dead_ground_units(self) -> GroundLosses:
|
def dead_ground_units(self) -> GroundLosses:
|
||||||
@@ -356,8 +481,29 @@ class Debriefing:
|
|||||||
losses.enemy_airlifts.append(airlift_unit)
|
losses.enemy_airlifts.append(airlift_unit)
|
||||||
continue
|
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
|
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]:
|
def base_capture_events(self) -> List[BaseCaptureEvent]:
|
||||||
"""Keeps only the last instance of a base capture event for each base ID."""
|
"""Keeps only the last instance of a base capture event for each base ID."""
|
||||||
blue_coalition_id = 2
|
blue_coalition_id = 2
|
||||||
|
|||||||
@@ -300,6 +300,11 @@ class Faction:
|
|||||||
self.remove_aircraft("Su-57")
|
self.remove_aircraft("Su-57")
|
||||||
if not mod_settings.ov10a_bronco:
|
if not mod_settings.ov10a_bronco:
|
||||||
self.remove_aircraft("Bronco-OV-10A")
|
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")
|
||||||
|
|
||||||
# frenchpack
|
# frenchpack
|
||||||
if not mod_settings.frenchpack:
|
if not mod_settings.frenchpack:
|
||||||
self.remove_vehicle("AMX10RCR")
|
self.remove_vehicle("AMX10RCR")
|
||||||
|
|||||||
@@ -20,8 +20,14 @@ class AntiShipIngressBuilder(PydcsWaypointBuilder):
|
|||||||
group_names.append(target.name)
|
group_names.append(target.name)
|
||||||
elif isinstance(target, NavalControlPoint):
|
elif isinstance(target, NavalControlPoint):
|
||||||
carrier_name = target.get_carrier_group_name()
|
carrier_name = target.get_carrier_group_name()
|
||||||
if carrier_name:
|
if carrier_name and self.mission.find_group(
|
||||||
|
carrier_name
|
||||||
|
): # Found a carrier, target it.
|
||||||
group_names.append(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:
|
else:
|
||||||
logging.error(
|
logging.error(
|
||||||
"Unexpected target type for anti-ship mission: %s",
|
"Unexpected target type for anti-ship mission: %s",
|
||||||
|
|||||||
@@ -389,3 +389,64 @@ class WarthogChannelNamer(ChannelNamer):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def name(cls) -> str:
|
def name(cls) -> str:
|
||||||
return "a10c-ii"
|
return "a10c-ii"
|
||||||
|
|
||||||
|
|
||||||
|
class PhantomChannelNamer(ChannelNamer):
|
||||||
|
"""Channel namer for the F4-E."""
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def channel_name(radio_id: int, channel_id: int) -> str:
|
||||||
|
radio_name = [
|
||||||
|
"COMM", # AN/ARC-164 COMM
|
||||||
|
"AUX", # AN/ARC-164 AUX
|
||||||
|
][radio_id - 1]
|
||||||
|
return f"{radio_name} Ch {channel_id}"
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def name(cls) -> str:
|
||||||
|
return "phantom"
|
||||||
|
|
||||||
|
|
||||||
|
class HindChannelNamer(ChannelNamer):
|
||||||
|
"""Channel namer for Mi-24 Hind"""
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def channel_name(radio_id: int, channel_id: int) -> str:
|
||||||
|
radio_name = [
|
||||||
|
"R863",
|
||||||
|
"R828",
|
||||||
|
][radio_id - 1]
|
||||||
|
return f"{radio_name} Ch {channel_id-1}"
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def name(cls) -> str:
|
||||||
|
return "hind"
|
||||||
|
|
||||||
|
|
||||||
|
class HipChannelNamer(ChannelNamer):
|
||||||
|
"""Channel namer for Mi-8 Hip"""
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def channel_name(radio_id: int, channel_id: int) -> str:
|
||||||
|
radio_name = [
|
||||||
|
"R863",
|
||||||
|
"R828",
|
||||||
|
][radio_id - 1]
|
||||||
|
return f"{radio_name} Ch {channel_id}"
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def name(cls) -> str:
|
||||||
|
return "hip"
|
||||||
|
|
||||||
|
|
||||||
|
class KiowaChannelNamer(ChannelNamer):
|
||||||
|
"""Channel namer for OH58D Kiowa Warrior"""
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def channel_name(radio_id: int, channel_id: int) -> str:
|
||||||
|
radio_name = ["UHF AM", "VHF AM", "VHF FM1", "VHF FM2"][radio_id - 1]
|
||||||
|
return f"{radio_name} Ch {channel_id}"
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def name(cls) -> str:
|
||||||
|
return "kiowa"
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
"""Radio frequency types and allocators."""
|
"""Radio frequency types and allocators."""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import itertools
|
import itertools
|
||||||
@@ -159,6 +160,7 @@ RADIOS: List[Radio] = [
|
|||||||
Radio("AN/ARC-164", (RadioRange(MHz(225), MHz(400), MHz(1), Modulation.AM),)),
|
Radio("AN/ARC-164", (RadioRange(MHz(225), MHz(400), MHz(1), Modulation.AM),)),
|
||||||
Radio("AN/ARC-186(V) AM", (RadioRange(MHz(116), MHz(152), MHz(1), Modulation.AM),)),
|
Radio("AN/ARC-186(V) AM", (RadioRange(MHz(116), MHz(152), MHz(1), Modulation.AM),)),
|
||||||
Radio("AN/ARC-186(V) FM", (RadioRange(MHz(30), MHz(76), MHz(1), Modulation.FM),)),
|
Radio("AN/ARC-186(V) FM", (RadioRange(MHz(30), MHz(76), MHz(1), Modulation.FM),)),
|
||||||
|
Radio("AN/ARC-201", (RadioRange(MHz(30), MHz(88), kHz(25), Modulation.FM),)),
|
||||||
Radio(
|
Radio(
|
||||||
"AN/ARC-210",
|
"AN/ARC-210",
|
||||||
(
|
(
|
||||||
@@ -185,6 +187,7 @@ RADIOS: List[Radio] = [
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
Radio("AN/ARC-222", (RadioRange(MHz(116), MHz(152), MHz(1), Modulation.AM),)),
|
Radio("AN/ARC-222", (RadioRange(MHz(116), MHz(152), MHz(1), Modulation.AM),)),
|
||||||
|
Radio("AN/ARC-27", (RadioRange(MHz(225), MHz(400), kHz(100), Modulation.AM),)),
|
||||||
Radio("SCR-522", (RadioRange(MHz(100), MHz(156), MHz(1), Modulation.AM),)),
|
Radio("SCR-522", (RadioRange(MHz(100), MHz(156), MHz(1), Modulation.AM),)),
|
||||||
Radio("A.R.I. 1063", (RadioRange(MHz(100), MHz(156), MHz(1), Modulation.AM),)),
|
Radio("A.R.I. 1063", (RadioRange(MHz(100), MHz(156), MHz(1), Modulation.AM),)),
|
||||||
Radio("BC-1206", (RadioRange(kHz(200), kHz(400), kHz(10), Modulation.AM),)),
|
Radio("BC-1206", (RadioRange(kHz(200), kHz(400), kHz(10), Modulation.AM),)),
|
||||||
@@ -292,6 +295,9 @@ RADIOS: List[Radio] = [
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
# Mi-8/Mi-24
|
||||||
|
Radio("R863", (RadioRange(MHz(220), MHz(400), kHz(25), Modulation.AM),)),
|
||||||
|
Radio("R828", (RadioRange(MHz(20), MHz(60), kHz(25), Modulation.FM),)),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -89,6 +89,11 @@ def set_destination(
|
|||||||
detail=f"Cannot move {cp} more than "
|
detail=f"Cannot move {cp} more than "
|
||||||
f"{cp.max_move_distance.nautical_miles}nm.",
|
f"{cp.max_move_distance.nautical_miles}nm.",
|
||||||
)
|
)
|
||||||
|
if cp.is_fleet and not game.theater.is_in_sea(point):
|
||||||
|
raise HTTPException(
|
||||||
|
status.HTTP_400_BAD_REQUEST,
|
||||||
|
detail=f"Cannot move naval control point {cp} onto land.",
|
||||||
|
)
|
||||||
cp.target_position = point
|
cp.target_position = point
|
||||||
from .. import EventStream
|
from .. import EventStream
|
||||||
|
|
||||||
|
|||||||
@@ -467,6 +467,12 @@ class Settings:
|
|||||||
default=timedelta(minutes=60),
|
default=timedelta(minutes=60),
|
||||||
min=30,
|
min=30,
|
||||||
max=150,
|
max=150,
|
||||||
|
detail=(
|
||||||
|
"Period of time after the start of a turn where "
|
||||||
|
"there is coverage by one or more CAP flight(s), "
|
||||||
|
"refuelling flights not tied to a specific package are on station, "
|
||||||
|
"and other flights have their TOTs."
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
# Performance
|
# Performance
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ class MissionResultsProcessor:
|
|||||||
self.commit_damaged_runways(debriefing)
|
self.commit_damaged_runways(debriefing)
|
||||||
self.commit_captures(debriefing, events)
|
self.commit_captures(debriefing, events)
|
||||||
self.commit_front_line_battle_impact(debriefing, events)
|
self.commit_front_line_battle_impact(debriefing, events)
|
||||||
|
self.commit_unit_damage(debriefing)
|
||||||
self.record_carcasses(debriefing)
|
self.record_carcasses(debriefing)
|
||||||
|
|
||||||
def commit_air_losses(self, debriefing: Debriefing) -> None:
|
def commit_air_losses(self, debriefing: Debriefing) -> None:
|
||||||
@@ -307,42 +308,52 @@ class MissionResultsProcessor:
|
|||||||
f"{enemy_cp.name}. {status_msg}",
|
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:
|
def redeploy_units(self, cp: ControlPoint) -> None:
|
||||||
""" "
|
""" "
|
||||||
Auto redeploy units to newly captured base
|
Auto redeploy units to newly captured base
|
||||||
"""
|
"""
|
||||||
|
# Find the set of friendly CPs that can either contribute or receive frontline units
|
||||||
|
all_ally_connected_cps = cp.transitive_connected_friendly_points() + [cp]
|
||||||
|
|
||||||
ally_connected_cps = [
|
# Split into frontline CPs that are connected to enemy CPs and should receive units
|
||||||
ocp for ocp in cp.connected_points if cp.captured == ocp.captured
|
# vs. non-frontline CPs that are not connected to enemy CPs and should send units.
|
||||||
]
|
frontline_cps = []
|
||||||
enemy_connected_cps = [
|
non_frontline_cps = []
|
||||||
ocp for ocp in cp.connected_points if cp.captured != ocp.captured
|
for cp in all_ally_connected_cps:
|
||||||
]
|
is_frontline = False
|
||||||
|
for ocp in cp.connected_points:
|
||||||
|
if not ocp.captured:
|
||||||
|
is_frontline = True
|
||||||
|
break
|
||||||
|
if is_frontline:
|
||||||
|
frontline_cps.append(cp)
|
||||||
|
else:
|
||||||
|
non_frontline_cps.append(cp)
|
||||||
|
|
||||||
# If the newly captured cp does not have enemy connected cp,
|
# If there are no frontline CPs, then nothing to do.
|
||||||
# then it is not necessary to redeploy frontline units there.
|
if len(frontline_cps) == 0:
|
||||||
if len(enemy_connected_cps) == 0:
|
|
||||||
return
|
return
|
||||||
|
|
||||||
# From each ally cp, send reinforcements
|
# Equally split between all frontline CPs
|
||||||
for ally_cp in ally_connected_cps:
|
move_factor = 1.0 / len(frontline_cps)
|
||||||
self.redeploy_between(cp, ally_cp)
|
for non_frontline_cp in non_frontline_cps:
|
||||||
|
for frontline_cp in frontline_cps:
|
||||||
|
self.redeploy_between(frontline_cp, non_frontline_cp, move_factor)
|
||||||
|
|
||||||
def redeploy_between(self, destination: ControlPoint, source: ControlPoint) -> None:
|
def redeploy_between(
|
||||||
|
self, destination: ControlPoint, source: ControlPoint, move_factor: float
|
||||||
|
) -> None:
|
||||||
total_units_redeployed = 0
|
total_units_redeployed = 0
|
||||||
moved_units = {}
|
moved_units = {}
|
||||||
|
|
||||||
if source.has_active_frontline or not destination.captured:
|
|
||||||
# If there are still active front lines to defend at the
|
|
||||||
# transferring CP we should not transfer all units.
|
|
||||||
#
|
|
||||||
# Opfor also does not transfer all of their units.
|
|
||||||
# TODO: Balance the CPs rather than moving half from everywhere.
|
|
||||||
move_factor = 0.5
|
|
||||||
else:
|
|
||||||
# Otherwise we can move everything.
|
|
||||||
move_factor = 1
|
|
||||||
|
|
||||||
for frontline_unit, count in source.base.armor.items():
|
for frontline_unit, count in source.base.armor.items():
|
||||||
moved_units[frontline_unit] = int(count * move_factor)
|
moved_units[frontline_unit] = int(count * move_factor)
|
||||||
total_units_redeployed = total_units_redeployed + int(count * move_factor)
|
total_units_redeployed = total_units_redeployed + int(count * move_factor)
|
||||||
|
|||||||
@@ -1283,7 +1283,10 @@ class NavalControlPoint(ControlPoint, ABC):
|
|||||||
return RunwayStatus(damaged=not self.runway_is_operational())
|
return RunwayStatus(damaged=not self.runway_is_operational())
|
||||||
|
|
||||||
def describe_runway_status(self) -> str:
|
def describe_runway_status(self) -> str:
|
||||||
return f"Flight deck {self.runway_status.describe()}"
|
if self.runway_is_operational():
|
||||||
|
return f"Flight deck {self.runway_status.describe()}"
|
||||||
|
# Special handling for not operational carriers/LHAs
|
||||||
|
return f"Sunk"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def runway_can_be_repaired(self) -> bool:
|
def runway_can_be_repaired(self) -> bool:
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ class ModSettings:
|
|||||||
frenchpack: bool = False
|
frenchpack: bool = False
|
||||||
high_digit_sams: bool = False
|
high_digit_sams: bool = False
|
||||||
ov10a_bronco: bool = False
|
ov10a_bronco: bool = False
|
||||||
|
fa18efg: bool = False
|
||||||
|
|
||||||
def save_player_settings(self) -> None:
|
def save_player_settings(self) -> None:
|
||||||
"""Saves the player's global settings to the user directory."""
|
"""Saves the player's global settings to the user directory."""
|
||||||
|
|||||||
@@ -35,6 +35,8 @@ class TheaterUnit:
|
|||||||
position: PointWithHeading
|
position: PointWithHeading
|
||||||
# The parent ground object
|
# The parent ground object
|
||||||
ground_object: TheaterGroundObject
|
ground_object: TheaterGroundObject
|
||||||
|
# Number of hit points the unit has
|
||||||
|
hit_points: Optional[int] = None
|
||||||
# State of the unit, dead or alive
|
# State of the unit, dead or alive
|
||||||
alive: bool = True
|
alive: bool = True
|
||||||
|
|
||||||
@@ -42,13 +44,17 @@ class TheaterUnit:
|
|||||||
def from_template(
|
def from_template(
|
||||||
id: int, dcs_type: Type[DcsUnitType], t: LayoutUnit, go: TheaterGroundObject
|
id: int, dcs_type: Type[DcsUnitType], t: LayoutUnit, go: TheaterGroundObject
|
||||||
) -> TheaterUnit:
|
) -> TheaterUnit:
|
||||||
return TheaterUnit(
|
unit = TheaterUnit(
|
||||||
id,
|
id,
|
||||||
t.name,
|
t.name,
|
||||||
dcs_type,
|
dcs_type,
|
||||||
PointWithHeading.from_point(t.position, Heading.from_degrees(t.heading)),
|
PointWithHeading.from_point(t.position, Heading.from_degrees(t.heading)),
|
||||||
go,
|
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
|
@property
|
||||||
def unit_type(self) -> Optional[UnitType[Any]]:
|
def unit_type(self) -> Optional[UnitType[Any]]:
|
||||||
@@ -70,14 +76,12 @@ class TheaterUnit:
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def display_name(self) -> str:
|
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
|
unit_label = self.unit_type or self.type.name or self.name
|
||||||
return f"{str(self.id).zfill(4)} | {unit_label}{dead_label}"
|
return f"{str(self.id).zfill(4)} | {unit_label}{self._status_label()}"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def short_name(self) -> str:
|
def short_name(self) -> str:
|
||||||
dead_label = " [DEAD]" if not self.alive else ""
|
return f"<b>{self.type.id[0:18]}</b> {self._status_label()}"
|
||||||
return f"<b>{self.type.id[0:18]}</b> {dead_label}"
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_static(self) -> bool:
|
def is_static(self) -> bool:
|
||||||
@@ -117,6 +121,18 @@ class TheaterUnit:
|
|||||||
unit_range = getattr(self.type, "threat_range", None)
|
unit_range = getattr(self.type, "threat_range", None)
|
||||||
return meters(unit_range if unit_range is not None and self.alive else 0)
|
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):
|
class SceneryUnit(TheaterUnit):
|
||||||
"""Special TheaterUnit for handling scenery ground objects"""
|
"""Special TheaterUnit for handling scenery ground objects"""
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ class ThreatZones:
|
|||||||
cls, doctrine: Doctrine, control_point: ControlPoint
|
cls, doctrine: Doctrine, control_point: ControlPoint
|
||||||
) -> Distance:
|
) -> Distance:
|
||||||
cap_threat_range = (
|
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(
|
opposing_airfield = cls.closest_enemy_airbase(
|
||||||
control_point, cap_threat_range * 2
|
control_point, cap_threat_range * 2
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
MAJOR_VERSION = 10
|
MAJOR_VERSION = 11
|
||||||
MINOR_VERSION = 0
|
MINOR_VERSION = 1
|
||||||
MICRO_VERSION = 0
|
MICRO_VERSION = 1
|
||||||
VERSION_NUMBER = ".".join(str(v) for v in (MAJOR_VERSION, MINOR_VERSION, MICRO_VERSION))
|
VERSION_NUMBER = ".".join(str(v) for v in (MAJOR_VERSION, MINOR_VERSION, MICRO_VERSION))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ from .jas39 import *
|
|||||||
from .ov10a import *
|
from .ov10a import *
|
||||||
from .su57 import *
|
from .su57 import *
|
||||||
from .uh60l import *
|
from .uh60l import *
|
||||||
|
from .fa18efg import *
|
||||||
|
|
||||||
|
|
||||||
def load_mods() -> None:
|
def load_mods() -> None:
|
||||||
|
|||||||
@@ -1004,7 +1004,7 @@ class A_4E_C(PlaneType):
|
|||||||
LAU3_WP156 = (1, Weapons.LAU3_WP156)
|
LAU3_WP156 = (1, Weapons.LAU3_WP156)
|
||||||
LAU3_HE151 = (1, Weapons.LAU3_HE151)
|
LAU3_HE151 = (1, Weapons.LAU3_HE151)
|
||||||
AGM_45A_Shrike_ARM = (1, Weapons.AGM_45A_Shrike_ARM)
|
AGM_45A_Shrike_ARM = (1, Weapons.AGM_45A_Shrike_ARM)
|
||||||
AGM_45B_Shrike_ARM__Imp_ = (1, Weapons.AGM_45B_Shrike_ARM__Imp_)
|
AGM_45B_Shrike_ARM = (1, Weapons.AGM_45B_Shrike_ARM)
|
||||||
Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = (
|
Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = (
|
||||||
1,
|
1,
|
||||||
Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets,
|
Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets,
|
||||||
@@ -1213,7 +1213,7 @@ class A_4E_C(PlaneType):
|
|||||||
WeaponsA4EC._2_x_LAU_3_pod___19_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice__TER__,
|
WeaponsA4EC._2_x_LAU_3_pod___19_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice__TER__,
|
||||||
)
|
)
|
||||||
AGM_45A_Shrike_ARM = (2, Weapons.AGM_45A_Shrike_ARM)
|
AGM_45A_Shrike_ARM = (2, Weapons.AGM_45A_Shrike_ARM)
|
||||||
AGM_45B_Shrike_ARM__Imp_ = (2, Weapons.AGM_45B_Shrike_ARM__Imp_)
|
AGM_45B_Shrike_ARM = (2, Weapons.AGM_45B_Shrike_ARM)
|
||||||
Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = (
|
Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = (
|
||||||
2,
|
2,
|
||||||
Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets,
|
Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets,
|
||||||
@@ -1850,7 +1850,7 @@ class A_4E_C(PlaneType):
|
|||||||
WeaponsA4EC._2_x_LAU_3_pod___19_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice__TER___,
|
WeaponsA4EC._2_x_LAU_3_pod___19_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice__TER___,
|
||||||
)
|
)
|
||||||
AGM_45A_Shrike_ARM = (4, Weapons.AGM_45A_Shrike_ARM)
|
AGM_45A_Shrike_ARM = (4, Weapons.AGM_45A_Shrike_ARM)
|
||||||
AGM_45B_Shrike_ARM__Imp_ = (4, Weapons.AGM_45B_Shrike_ARM__Imp_)
|
AGM_45B_Shrike_ARM = (4, Weapons.AGM_45B_Shrike_ARM)
|
||||||
Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = (
|
Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = (
|
||||||
4,
|
4,
|
||||||
Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets,
|
Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets,
|
||||||
@@ -2048,7 +2048,7 @@ class A_4E_C(PlaneType):
|
|||||||
LAU3_WP156 = (5, Weapons.LAU3_WP156)
|
LAU3_WP156 = (5, Weapons.LAU3_WP156)
|
||||||
LAU3_HE151 = (5, Weapons.LAU3_HE151)
|
LAU3_HE151 = (5, Weapons.LAU3_HE151)
|
||||||
AGM_45A_Shrike_ARM = (5, Weapons.AGM_45A_Shrike_ARM)
|
AGM_45A_Shrike_ARM = (5, Weapons.AGM_45A_Shrike_ARM)
|
||||||
AGM_45B_Shrike_ARM__Imp_ = (5, Weapons.AGM_45B_Shrike_ARM__Imp_)
|
AGM_45B_Shrike_ARM = (5, Weapons.AGM_45B_Shrike_ARM)
|
||||||
Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = (
|
Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = (
|
||||||
5,
|
5,
|
||||||
Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets,
|
Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets,
|
||||||
|
|||||||
@@ -542,7 +542,7 @@ class VSN_F4C(PlaneType):
|
|||||||
Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD,
|
Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD,
|
||||||
)
|
)
|
||||||
Mk_84___2000lb_GP_Bomb_LD = (3, Weapons.Mk_84___2000lb_GP_Bomb_LD)
|
Mk_84___2000lb_GP_Bomb_LD = (3, Weapons.Mk_84___2000lb_GP_Bomb_LD)
|
||||||
AGM_45B_Shrike_ARM__Imp_ = (3, Weapons.AGM_45B_Shrike_ARM__Imp_)
|
AGM_45B_Shrike_ARM = (3, Weapons.AGM_45B_Shrike_ARM)
|
||||||
AGM_45A_Shrike_ARM = (3, Weapons.AGM_45A_Shrike_ARM)
|
AGM_45A_Shrike_ARM = (3, Weapons.AGM_45A_Shrike_ARM)
|
||||||
LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
||||||
3,
|
3,
|
||||||
@@ -653,7 +653,7 @@ class VSN_F4C(PlaneType):
|
|||||||
Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD,
|
Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD,
|
||||||
)
|
)
|
||||||
Mk_84___2000lb_GP_Bomb_LD = (9, Weapons.Mk_84___2000lb_GP_Bomb_LD)
|
Mk_84___2000lb_GP_Bomb_LD = (9, Weapons.Mk_84___2000lb_GP_Bomb_LD)
|
||||||
AGM_45B_Shrike_ARM__Imp_ = (9, Weapons.AGM_45B_Shrike_ARM__Imp_)
|
AGM_45B_Shrike_ARM = (9, Weapons.AGM_45B_Shrike_ARM)
|
||||||
AGM_45A_Shrike_ARM = (9, Weapons.AGM_45A_Shrike_ARM)
|
AGM_45A_Shrike_ARM = (9, Weapons.AGM_45A_Shrike_ARM)
|
||||||
LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
||||||
9,
|
9,
|
||||||
|
|||||||
1
pydcs_extensions/fa18efg/__init__.py
Normal file
1
pydcs_extensions/fa18efg/__init__.py
Normal file
@@ -0,0 +1 @@
|
|||||||
|
from .fa18efg import *
|
||||||
2499
pydcs_extensions/fa18efg/fa18efg.py
Normal file
2499
pydcs_extensions/fa18efg/fa18efg.py
Normal file
File diff suppressed because it is too large
Load Diff
@@ -285,6 +285,7 @@ class SquadronConfigurationBox(QGroupBox):
|
|||||||
)
|
)
|
||||||
self.player_list.setAcceptRichText(False)
|
self.player_list.setAcceptRichText(False)
|
||||||
self.player_list.setEnabled(squadron.player and squadron.aircraft.flyable)
|
self.player_list.setEnabled(squadron.player and squadron.aircraft.flyable)
|
||||||
|
self.player_list.setMaximumHeight(125)
|
||||||
left_column.addWidget(self.player_list)
|
left_column.addWidget(self.player_list)
|
||||||
|
|
||||||
button_row = QHBoxLayout()
|
button_row = QHBoxLayout()
|
||||||
@@ -664,7 +665,7 @@ class OverfullAirbasesDisplay(QGroupBox):
|
|||||||
parent: QWidget | None = None,
|
parent: QWidget | None = None,
|
||||||
) -> None:
|
) -> None:
|
||||||
super().__init__("Overfull airbases", parent)
|
super().__init__("Overfull airbases", parent)
|
||||||
self.setMaximumHeight(200)
|
self.setMaximumHeight(125)
|
||||||
|
|
||||||
self.parking_tracker = parking_tracker
|
self.parking_tracker = parking_tracker
|
||||||
self.parking_tracker.allocation_changed.connect(self.on_allocation_changed)
|
self.parking_tracker.allocation_changed.connect(self.on_allocation_changed)
|
||||||
@@ -790,7 +791,7 @@ class AirWingConfigurationDialog(QDialog):
|
|||||||
self.game = game
|
self.game = game
|
||||||
self.parking_tracker = AirWingConfigParkingTracker(game)
|
self.parking_tracker = AirWingConfigParkingTracker(game)
|
||||||
|
|
||||||
self.setMinimumSize(1024, 768)
|
self.resize(1024, 900)
|
||||||
self.setWindowTitle(f"Air Wing Configuration")
|
self.setWindowTitle(f"Air Wing Configuration")
|
||||||
# TODO: self.setWindowIcon()
|
# TODO: self.setWindowIcon()
|
||||||
|
|
||||||
|
|||||||
@@ -493,6 +493,8 @@ class QLiberationWindow(QMainWindow):
|
|||||||
"ColonelAkirNakesh",
|
"ColonelAkirNakesh",
|
||||||
"Nosajthedevil",
|
"Nosajthedevil",
|
||||||
"kivipe",
|
"kivipe",
|
||||||
|
"Chilli935",
|
||||||
|
"DillieKoe",
|
||||||
]
|
]
|
||||||
text = (
|
text = (
|
||||||
"<h3>DCS Liberation "
|
"<h3>DCS Liberation "
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ from game import Game
|
|||||||
from game.ato.flighttype import FlightType
|
from game.ato.flighttype import FlightType
|
||||||
from game.config import RUNWAY_REPAIR_COST
|
from game.config import RUNWAY_REPAIR_COST
|
||||||
from game.server import EventStream
|
from game.server import EventStream
|
||||||
|
from game.sim.missionresultsprocessor import MissionResultsProcessor
|
||||||
from game.theater import (
|
from game.theater import (
|
||||||
AMMO_DEPOT_FRONTLINE_UNIT_CONTRIBUTION,
|
AMMO_DEPOT_FRONTLINE_UNIT_CONTRIBUTION,
|
||||||
ControlPoint,
|
ControlPoint,
|
||||||
@@ -156,6 +157,9 @@ class QBaseMenu2(QDialog):
|
|||||||
self.cp.capture(
|
self.cp.capture(
|
||||||
self.game_model.game, events, for_player=not self.cp.captured
|
self.game_model.game, events, for_player=not self.cp.captured
|
||||||
)
|
)
|
||||||
|
# Redeploy frontline units, as if the CP capture was done in mission.
|
||||||
|
results_processor = MissionResultsProcessor(self.game_model.game)
|
||||||
|
results_processor.redeploy_units(self.cp)
|
||||||
self.close()
|
self.close()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|||||||
@@ -127,6 +127,12 @@ class QFlightPayloadTab(QFrame):
|
|||||||
scrolling_layout.addWidget(docsText)
|
scrolling_layout.addWidget(docsText)
|
||||||
|
|
||||||
self.setLayout(layout)
|
self.setLayout(layout)
|
||||||
|
# Increase width of tab when there are long loadout names. Add 50px to loadout selector
|
||||||
|
# to account for padding around the selector.
|
||||||
|
width = max(
|
||||||
|
self.sizeHint().width(), self.loadout_selector.sizeHint().width() + 50
|
||||||
|
)
|
||||||
|
self.setMinimumWidth(width)
|
||||||
|
|
||||||
def resize_for_flight(self) -> None:
|
def resize_for_flight(self) -> None:
|
||||||
self.member_selector.setMaximum(self.flight.count - 1)
|
self.member_selector.setMaximum(self.flight.count - 1)
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ class QFlightWaypointList(QTableView):
|
|||||||
self.model.index(current_index, 0), QItemSelectionModel.Select
|
self.model.index(current_index, 0), QItemSelectionModel.Select
|
||||||
)
|
)
|
||||||
self.resizeColumnsToContents()
|
self.resizeColumnsToContents()
|
||||||
total_column_width = self.verticalHeader().width() + self.lineWidth()
|
total_column_width = self.verticalHeader().sizeHint().width() + self.lineWidth()
|
||||||
for i in range(0, self.model.columnCount()):
|
for i in range(0, self.model.columnCount()):
|
||||||
total_column_width += self.columnWidth(i) + self.lineWidth()
|
total_column_width += self.columnWidth(i) + self.lineWidth()
|
||||||
self.setFixedWidth(total_column_width)
|
self.setFixedWidth(total_column_width)
|
||||||
|
|||||||
@@ -142,6 +142,10 @@ class NewGameWizard(QtWidgets.QWizard):
|
|||||||
|
|
||||||
self.setWindowTitle("New Game")
|
self.setWindowTitle("New Game")
|
||||||
|
|
||||||
|
# Resize wizard to the size of the largest page to keep size and position
|
||||||
|
# consistent.
|
||||||
|
self.resize(self.theater_page.sizeHint())
|
||||||
|
|
||||||
def accept(self):
|
def accept(self):
|
||||||
logging.info("New Game Wizard accept")
|
logging.info("New Game Wizard accept")
|
||||||
logging.info("======================")
|
logging.info("======================")
|
||||||
@@ -204,6 +208,7 @@ class NewGameWizard(QtWidgets.QWizard):
|
|||||||
ov10a_bronco=self.field("ov10a_bronco"),
|
ov10a_bronco=self.field("ov10a_bronco"),
|
||||||
frenchpack=self.field("frenchpack"),
|
frenchpack=self.field("frenchpack"),
|
||||||
high_digit_sams=self.field("high_digit_sams"),
|
high_digit_sams=self.field("high_digit_sams"),
|
||||||
|
fa18efg=self.field("fa18efg"),
|
||||||
)
|
)
|
||||||
mod_settings.save_player_settings()
|
mod_settings.save_player_settings()
|
||||||
|
|
||||||
@@ -826,6 +831,10 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
|||||||
high_digit_sams.setChecked(mod_settings.high_digit_sams)
|
high_digit_sams.setChecked(mod_settings.high_digit_sams)
|
||||||
self.registerField("high_digit_sams", high_digit_sams)
|
self.registerField("high_digit_sams", high_digit_sams)
|
||||||
|
|
||||||
|
fa18efg = QtWidgets.QCheckBox()
|
||||||
|
fa18efg.setChecked(mod_settings.fa18efg)
|
||||||
|
self.registerField("fa18efg", fa18efg)
|
||||||
|
|
||||||
modHelpText = QtWidgets.QLabel(
|
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>"
|
"<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 +886,13 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
|||||||
modLayout.addWidget(QtWidgets.QLabel("High Digit SAMs"), modLayout_row, 0)
|
modLayout.addWidget(QtWidgets.QLabel("High Digit SAMs"), modLayout_row, 0)
|
||||||
modLayout.addWidget(high_digit_sams, modLayout_row, 1)
|
modLayout.addWidget(high_digit_sams, modLayout_row, 1)
|
||||||
modSettingsGroup.setLayout(modLayout)
|
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)
|
||||||
|
modSettingsGroup.setLayout(modLayout)
|
||||||
|
modLayout_row += 1
|
||||||
|
|
||||||
mlayout = QVBoxLayout()
|
mlayout = QVBoxLayout()
|
||||||
mlayout.addWidget(generatorSettingsGroup)
|
mlayout.addWidget(generatorSettingsGroup)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ annotated-types==0.6.0
|
|||||||
anyio==3.7.1
|
anyio==3.7.1
|
||||||
asgiref==3.7.2
|
asgiref==3.7.2
|
||||||
attrs==23.1.0
|
attrs==23.1.0
|
||||||
black==23.11.0
|
black==24.3.0
|
||||||
certifi==2023.11.17
|
certifi==2023.11.17
|
||||||
cfgv==3.4.0
|
cfgv==3.4.0
|
||||||
click==8.1.7
|
click==8.1.7
|
||||||
@@ -12,15 +12,15 @@ coverage==7.3.2
|
|||||||
distlib==0.3.7
|
distlib==0.3.7
|
||||||
exceptiongroup==1.2.0
|
exceptiongroup==1.2.0
|
||||||
Faker==20.1.0
|
Faker==20.1.0
|
||||||
fastapi==0.104.1
|
fastapi==0.109.1
|
||||||
filelock==3.13.1
|
filelock==3.13.1
|
||||||
future==0.18.3
|
future==0.18.3
|
||||||
h11==0.14.0
|
h11==0.14.0
|
||||||
httptools==0.6.1
|
httptools==0.6.1
|
||||||
identify==2.5.32
|
identify==2.5.32
|
||||||
idna==3.6
|
idna==3.7
|
||||||
iniconfig==2.0.0
|
iniconfig==2.0.0
|
||||||
Jinja2==3.1.2
|
Jinja2==3.1.4
|
||||||
MarkupSafe==2.1.3
|
MarkupSafe==2.1.3
|
||||||
mypy==1.7.1
|
mypy==1.7.1
|
||||||
mypy-extensions==1.0.0
|
mypy-extensions==1.0.0
|
||||||
@@ -29,14 +29,14 @@ numpy==1.26.2
|
|||||||
packaging==23.2
|
packaging==23.2
|
||||||
pathspec==0.11.2
|
pathspec==0.11.2
|
||||||
pefile==2023.2.7
|
pefile==2023.2.7
|
||||||
Pillow==10.0.1
|
Pillow==10.3.0
|
||||||
platformdirs==4.0.0
|
platformdirs==4.0.0
|
||||||
pluggy==1.3.0
|
pluggy==1.3.0
|
||||||
pre-commit==3.5.0
|
pre-commit==3.5.0
|
||||||
pydantic==2.5.2
|
pydantic==2.5.2
|
||||||
pydantic-settings==2.1.0
|
pydantic-settings==2.1.0
|
||||||
pydantic_core==2.14.5
|
pydantic_core==2.14.5
|
||||||
pydcs @ git+https://github.com/pydcs/dcs@1092fc419d3f879e8e7951b25e15d8b7c9938627
|
pydcs @ git+https://github.com/dcs-liberation/dcs@58b4cc91bfb068e094f684e4747190d1dcd57232
|
||||||
pyinstaller==5.13.1
|
pyinstaller==5.13.1
|
||||||
pyinstaller-hooks-contrib==2023.6
|
pyinstaller-hooks-contrib==2023.6
|
||||||
pyproj==3.6.1
|
pyproj==3.6.1
|
||||||
@@ -54,7 +54,7 @@ shapely==2.0.2
|
|||||||
shiboken6==6.4.1
|
shiboken6==6.4.1
|
||||||
six==1.16.0
|
six==1.16.0
|
||||||
sniffio==1.3.0
|
sniffio==1.3.0
|
||||||
starlette==0.27.0
|
starlette==0.35.1
|
||||||
tabulate==0.9.0
|
tabulate==0.9.0
|
||||||
tomli==2.0.1
|
tomli==2.0.1
|
||||||
types-Jinja2==2.11.9
|
types-Jinja2==2.11.9
|
||||||
|
|||||||
Binary file not shown.
@@ -22,48 +22,50 @@ description:
|
|||||||
an unexpected and urgent call to action. Their mission is daunting but clear - to
|
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
|
prevent the capture of Port Stanley and liberate East Falkland from the clutches
|
||||||
of the PMC forces.</p><p>
|
of the PMC forces.</p><p>
|
||||||
This small group must strategically push the PMC forces back through the treacherous
|
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
|
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
|
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
|
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
|
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
|
isthmus into Lafonia. This offensive is designed to create a defensible position
|
||||||
position at Goose Green on the narrow isthmus, which can be held against a numerically
|
at Goose Green on the narrow isthmus, which can be held against a numerically
|
||||||
superior force until the arrival of Big Lizzie.</p>
|
superior force until the arrival of Big Lizzie.</p>
|
||||||
miz: battle_for_no_mans_land.miz
|
miz: battle_for_no_mans_land.miz
|
||||||
performance: 1
|
performance: 1
|
||||||
recommended_start_date: 2001-11-10
|
recommended_start_date: 2001-11-10
|
||||||
version: "11.0"
|
version: "11.0"
|
||||||
|
settings:
|
||||||
|
squadron_start_full: true
|
||||||
squadrons:
|
squadrons:
|
||||||
#Port Stanley
|
#Port Stanley
|
||||||
1:
|
1:
|
||||||
- primary: DEAD
|
- primary: DEAD
|
||||||
secondary: air-to-ground
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- AH-64D Apache Longbow
|
- AH-64D Apache Longbow
|
||||||
size: 6
|
size: 6
|
||||||
- primary: BAI
|
- primary: BAI
|
||||||
secondary: air-to-ground
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- AH-64D Apache Longbow
|
- OH-58D(R) Kiowa Warrior
|
||||||
size: 6
|
size: 6
|
||||||
- primary: Air Assault
|
- primary: Air Assault
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- UH-60L
|
|
||||||
- UH-60A
|
- UH-60A
|
||||||
size: 4
|
size: 4
|
||||||
#San Carlos FOB
|
#San Carlos FOB
|
||||||
3:
|
3:
|
||||||
- primary: BAI
|
- primary: BAI
|
||||||
secondary: air-to-ground
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- Mi-24P Hind-F
|
- Mi-24P Hind-F
|
||||||
size: 6
|
size: 6
|
||||||
#Goose Green
|
#Goose Green
|
||||||
24:
|
24:
|
||||||
- primary: DEAD
|
- primary: DEAD
|
||||||
secondary: air-to-ground
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
|
- Ka-50 Hokum III
|
||||||
- Ka-50 Hokum (Blackshark 3)
|
- Ka-50 Hokum (Blackshark 3)
|
||||||
size: 6
|
size: 6
|
||||||
@@ -8,7 +8,7 @@ recommended_player_faction: USA 2005
|
|||||||
recommended_enemy_faction: Russia 2010
|
recommended_enemy_faction: Russia 2010
|
||||||
recommended_start_date: 2004-01-07
|
recommended_start_date: 2004-01-07
|
||||||
miz: black_sea.miz
|
miz: black_sea.miz
|
||||||
performance: 2
|
performance: 3
|
||||||
version: "11.0"
|
version: "11.0"
|
||||||
squadrons:
|
squadrons:
|
||||||
# Anapa-Vityazevo
|
# Anapa-Vityazevo
|
||||||
|
|||||||
Binary file not shown.
@@ -3,21 +3,40 @@ name: Sinai - Exercise Bright Star
|
|||||||
theater: Sinai
|
theater: Sinai
|
||||||
authors: Starfire
|
authors: Starfire
|
||||||
recommended_player_faction: Bluefor Modern
|
recommended_player_faction: Bluefor Modern
|
||||||
recommended_enemy_faction: Egypt 2000s
|
recommended_enemy_faction: Egypt 2000
|
||||||
description:
|
description:
|
||||||
<p>For over 4 decades, the United States and Egypt have run a series of
|
<p>For over four decades, the United States and Egypt have conducted a series
|
||||||
biannual joint military exercises called Bright Star. Over the years, the
|
of biannual joint military exercises known as Bright Star. As the
|
||||||
number of participating countries has grown substantially. Exercise Bright
|
geopolitical landscape has transformed, so too has the scope and scale of
|
||||||
Star 2025 boasts 8 participant nations and 14 observer nations. The United
|
Exercise Bright Star. The exercise has grown over the years to incorporate
|
||||||
States and a portion of the exercise coalition will play the part of a
|
a wide array of international participants. The 2025 iteration of
|
||||||
fictional hostile nation dubbed Orangeland, staging a mock invasion against
|
Exercise Bright Star features eight participating nations alongside
|
||||||
Cairo. Israel, having for the first time accepted the invitation to observe,
|
fourteen observer nations.</p>
|
||||||
is hosting the aggressor faction of the exercise coalition at its
|
<p>For the 2025 exercises, the United States, along with a select contingent
|
||||||
airfields.</p>
|
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>
|
||||||
|
<p><strong>Note:</strong> There is no overland supply route between Melez and
|
||||||
|
Wadi al Jandali due to the simulated destruction of the Al Salam Bridge spanning
|
||||||
|
the Suez Canal. Consequently, ground units will have to be ferried across by
|
||||||
|
air during the exercise.</p>
|
||||||
miz: exercise_bright_star.miz
|
miz: exercise_bright_star.miz
|
||||||
performance: 1
|
performance: 1
|
||||||
recommended_start_date: 2025-09-01
|
recommended_start_date: 2025-09-01
|
||||||
version: "11.0"
|
version: "11.0"
|
||||||
|
settings:
|
||||||
|
hercules: true
|
||||||
|
squadron_start_full: true
|
||||||
squadrons:
|
squadrons:
|
||||||
Blue CV-1:
|
Blue CV-1:
|
||||||
- primary: SEAD
|
- primary: SEAD
|
||||||
@@ -33,59 +52,64 @@ squadrons:
|
|||||||
aircraft:
|
aircraft:
|
||||||
- S-3B Tanker
|
- S-3B Tanker
|
||||||
size: 4
|
size: 4
|
||||||
Bombers from RAF Fairford:
|
Bombers from Al Udeid Air Base:
|
||||||
- primary: Anti-ship
|
- primary: Anti-ship
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- B-52H Stratofortress
|
- B-52H Stratofortress
|
||||||
size: 8
|
size: 4
|
||||||
- primary: Strike
|
- primary: Strike
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- B-1B Lancer
|
- B-1B Lancer
|
||||||
|
size: 4
|
||||||
|
# Ovda
|
||||||
|
10:
|
||||||
|
- primary: CAS
|
||||||
|
secondary: air-to-ground
|
||||||
|
aircraft:
|
||||||
|
- A-10C Thunderbolt II (Suite 7)
|
||||||
size: 8
|
size: 8
|
||||||
# Hatzerim (141)
|
|
||||||
7:
|
|
||||||
- primary: Escort
|
- primary: Escort
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-15C Eagle
|
- F-15C Eagle
|
||||||
size: 20
|
size: 16
|
||||||
- primary: OCA/Runway
|
- primary: OCA/Runway
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-15E Strike Eagle (Suite 4+)
|
- F-15E Strike Eagle (Suite 4+)
|
||||||
size: 16
|
size: 16
|
||||||
- primary: DEAD
|
|
||||||
secondary: any
|
|
||||||
aircraft:
|
|
||||||
- F-16CM Fighting Falcon (Block 50)
|
|
||||||
size: 20
|
|
||||||
- primary: BAI
|
- primary: BAI
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- JF-17 Thunder
|
- JF-17 Thunder
|
||||||
size: 16
|
size: 16
|
||||||
- primary: BARCAP
|
# Ramon Airbase
|
||||||
|
9:
|
||||||
|
- primary: DEAD
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- Mirage 2000C
|
- F-16CM Fighting Falcon (Block 50)
|
||||||
size: 12
|
size: 16
|
||||||
# Kedem
|
- primary: BAI
|
||||||
12:
|
|
||||||
- primary: Transport
|
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- CH-47D
|
- AH-64D Apache Longbow
|
||||||
size: 20
|
size: 8
|
||||||
- primary: Air Assault
|
- primary: Air Assault
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- UH-60L
|
|
||||||
- UH-60A
|
- UH-60A
|
||||||
size: 4
|
size: 4
|
||||||
# Nevatim (106)
|
# Ben-Gurion
|
||||||
8:
|
24:
|
||||||
|
- primary: Transport
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- C-130J-30 Super Hercules
|
||||||
|
- C-130
|
||||||
|
size: 2
|
||||||
- primary: AEW&C
|
- primary: AEW&C
|
||||||
aircraft:
|
aircraft:
|
||||||
- E-3A
|
- E-3A
|
||||||
@@ -94,16 +118,12 @@ squadrons:
|
|||||||
aircraft:
|
aircraft:
|
||||||
- KC-135 Stratotanker
|
- KC-135 Stratotanker
|
||||||
size: 2
|
size: 2
|
||||||
- primary: CAS
|
|
||||||
secondary: air-to-ground
|
|
||||||
aircraft:
|
|
||||||
- A-10C Thunderbolt II (Suite 7)
|
|
||||||
size: 8
|
|
||||||
# Melez (30)
|
# Melez (30)
|
||||||
5:
|
5:
|
||||||
- primary: CAS
|
- primary: CAS
|
||||||
secondary: air-to-ground
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
|
- Ka-50 Hokum III
|
||||||
- Ka-50 Hokum (Blackshark 3)
|
- Ka-50 Hokum (Blackshark 3)
|
||||||
size: 4
|
size: 4
|
||||||
- primary: BAI
|
- primary: BAI
|
||||||
@@ -125,10 +145,20 @@ squadrons:
|
|||||||
- primary: SEAD
|
- primary: SEAD
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-4E Phantom II
|
- F-4E-45MC Phantom II
|
||||||
size: 20
|
size: 20
|
||||||
- primary: DEAD
|
- primary: DEAD
|
||||||
secondary: any
|
secondary:
|
||||||
|
- BAI
|
||||||
|
- BARCAP
|
||||||
|
- CAS
|
||||||
|
- Escort
|
||||||
|
- Fighter sweep
|
||||||
|
- Intercept
|
||||||
|
- OCA/Aircraft
|
||||||
|
- OCA/Runway
|
||||||
|
- Strike
|
||||||
|
- TARCAP
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-16CM Fighting Falcon (Block 50)
|
- F-16CM Fighting Falcon (Block 50)
|
||||||
size: 20
|
size: 20
|
||||||
@@ -145,9 +175,11 @@ squadrons:
|
|||||||
# Cairo West (95)
|
# Cairo West (95)
|
||||||
18:
|
18:
|
||||||
- primary: Transport
|
- primary: Transport
|
||||||
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
|
- C-130J-30 Super Hercules
|
||||||
- C-130
|
- C-130
|
||||||
size: 8
|
size: 2
|
||||||
- primary: BARCAP
|
- primary: BARCAP
|
||||||
secondary: air-to-air
|
secondary: air-to-air
|
||||||
aircraft:
|
aircraft:
|
||||||
|
|||||||
Binary file not shown.
@@ -16,6 +16,9 @@ miz: exercise_vegas_nerve.miz
|
|||||||
performance: 1
|
performance: 1
|
||||||
recommended_start_date: 2011-02-24
|
recommended_start_date: 2011-02-24
|
||||||
version: "11.0"
|
version: "11.0"
|
||||||
|
settings:
|
||||||
|
hercules: true
|
||||||
|
squadron_start_full: true
|
||||||
squadrons:
|
squadrons:
|
||||||
Bombers from Minot AFB:
|
Bombers from Minot AFB:
|
||||||
- primary: Strike
|
- primary: Strike
|
||||||
@@ -35,16 +38,12 @@ squadrons:
|
|||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-15C Eagle
|
- F-15C Eagle
|
||||||
size: 12
|
size: 16
|
||||||
- primary: Strike
|
- primary: Strike
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-15E Strike Eagle (Suite 4+)
|
- F-15E Strike Eagle (Suite 4+)
|
||||||
size: 12
|
size: 8
|
||||||
- primary: AEW&C
|
|
||||||
aircraft:
|
|
||||||
- E-3A
|
|
||||||
size: 1
|
|
||||||
# Tonopah Test Range
|
# Tonopah Test Range
|
||||||
18:
|
18:
|
||||||
- primary: BAI
|
- primary: BAI
|
||||||
@@ -53,10 +52,15 @@ squadrons:
|
|||||||
- A-10C Thunderbolt II (Suite 7)
|
- A-10C Thunderbolt II (Suite 7)
|
||||||
size: 8
|
size: 8
|
||||||
- primary: CAS
|
- primary: CAS
|
||||||
secondary: air-to-ground
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- AH-64D Apache Longbow
|
- AH-64D Apache Longbow
|
||||||
size: 10
|
size: 2
|
||||||
|
- primary: CAS
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- OH-58D(R) Kiowa Warrior
|
||||||
|
size: 2
|
||||||
- primary: DEAD
|
- primary: DEAD
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
@@ -67,33 +71,38 @@ squadrons:
|
|||||||
aircraft:
|
aircraft:
|
||||||
- F-16CM Fighting Falcon (Block 50)
|
- F-16CM Fighting Falcon (Block 50)
|
||||||
size: 24
|
size: 24
|
||||||
- primary: Air Assault
|
- primary: AEW&C
|
||||||
secondary: air-to-ground
|
|
||||||
aircraft:
|
aircraft:
|
||||||
- UH-60L
|
- E-3A
|
||||||
- UH-60A
|
size: 1
|
||||||
size: 2
|
- primary: Transport
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- C-130J-30 Super Hercules
|
||||||
|
- CH-47D
|
||||||
|
size: 1
|
||||||
# Groom Lake
|
# Groom Lake
|
||||||
2:
|
2:
|
||||||
- primary: Escort
|
- primary: Escort
|
||||||
secondary: air-to-air
|
secondary: air-to-air
|
||||||
aircraft:
|
aircraft:
|
||||||
- J-11A Flanker-L
|
- J-11A Flanker-L
|
||||||
size: 20
|
size: 16
|
||||||
- primary: BAI
|
- primary: BAI
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- Su-25T Frogfoot
|
- Su-25T Frogfoot
|
||||||
size: 20
|
size: 12
|
||||||
# Creech
|
# Creech
|
||||||
Creech FARP:
|
1:
|
||||||
- primary: CAS
|
- primary: CAS
|
||||||
secondary: air-to-ground
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
|
- Ka-50 Hokum III
|
||||||
- Ka-50 Hokum (Blackshark 3)
|
- Ka-50 Hokum (Blackshark 3)
|
||||||
size: 8
|
size: 8
|
||||||
- primary: Air Assault
|
- primary: Air Assault
|
||||||
secondary: air-to-ground
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- Mi-24P Hind-F
|
- Mi-24P Hind-F
|
||||||
size: 4
|
size: 4
|
||||||
@@ -112,16 +121,16 @@ squadrons:
|
|||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- Su-24M Fencer-D
|
- Su-24M Fencer-D
|
||||||
size: 20
|
size: 16
|
||||||
- primary: DEAD
|
- primary: DEAD
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- Su-34 Fullback
|
- Su-34 Fullback
|
||||||
size: 20
|
size: 16
|
||||||
# Boulder City Airport
|
# Boulder City Airport
|
||||||
6:
|
6:
|
||||||
- primary: SEAD Escort
|
- primary: SEAD Escort
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- FC-1 Fierce Dragon
|
- FC-1 Fierce Dragon
|
||||||
size: 20
|
size: 16
|
||||||
|
|||||||
Binary file not shown.
@@ -2,65 +2,7 @@
|
|||||||
name: Normandy - The Final Countdown II
|
name: Normandy - The Final Countdown II
|
||||||
theater: Normandy
|
theater: Normandy
|
||||||
authors: Starfire
|
authors: Starfire
|
||||||
recommended_player_faction:
|
recommended_player_faction: D-Day Allied Forces 1944 and 1990
|
||||||
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
|
recommended_enemy_faction: Germany 1944
|
||||||
description:
|
description:
|
||||||
<p>While enroute to the Persian Gulf for Operation Desert Shield, the USS
|
<p>While enroute to the Persian Gulf for Operation Desert Shield, the USS
|
||||||
@@ -79,6 +21,8 @@ miz: final_countdown_2.miz
|
|||||||
performance: 2
|
performance: 2
|
||||||
recommended_start_date: 1944-06-06
|
recommended_start_date: 1944-06-06
|
||||||
version: "11.0"
|
version: "11.0"
|
||||||
|
settings:
|
||||||
|
squadron_start_full: true
|
||||||
squadrons:
|
squadrons:
|
||||||
#Blue CV (90)
|
#Blue CV (90)
|
||||||
Blue-CV:
|
Blue-CV:
|
||||||
@@ -108,7 +52,6 @@ squadrons:
|
|||||||
- primary: Air Assault
|
- primary: Air Assault
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- UH-60L
|
|
||||||
- UH-60A
|
- UH-60A
|
||||||
size: 6
|
size: 6
|
||||||
#Stoney Cross (39)
|
#Stoney Cross (39)
|
||||||
|
|||||||
Binary file not shown.
@@ -7,23 +7,26 @@ recommended_enemy_faction: Russia 2010
|
|||||||
description:
|
description:
|
||||||
<p>An Argentinean extremist group has contracted the Sons of Warvan (SoW), an
|
<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
|
unusually well-equipped PMC with close ties to the Russian government, to
|
||||||
construct a beryllium bomb at the secret Omega 13 production facility in
|
construct a beryllium bomb at the secret Omega-13 production facility in
|
||||||
Ushaia for use in its ongoing conflict with Chile. United States military
|
Ushuaia for use in its ongoing conflict with Chile. United States military
|
||||||
forces have established a foothold at San Julian. While the SoW are distracted
|
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 Ushaia from an LHA
|
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, Ushaia is
|
in order to disable the bomb production facility. Fortunately, Ushuaia is
|
||||||
lightly defended as the SoW are trying to avoid unwanted attention.</p>
|
lightly defended as the SoW are trying to avoid unwanted attention.</p>
|
||||||
miz: grabthars_hammer.miz
|
miz: grabthars_hammer.miz
|
||||||
performance: 2
|
performance: 2
|
||||||
recommended_start_date: 1999-12-25
|
recommended_start_date: 1999-12-25
|
||||||
version: "11.0"
|
version: "11.0"
|
||||||
|
settings:
|
||||||
|
hercules: true
|
||||||
|
squadron_start_full: true
|
||||||
squadrons:
|
squadrons:
|
||||||
#Mount Pleasant
|
#Mount Pleasant
|
||||||
2:
|
2:
|
||||||
- primary: DEAD
|
- primary: BAI
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-16CM Fighting Falcon (Block 50)
|
- F-15E Strike Eagle (Suite 4+)
|
||||||
size: 8
|
size: 8
|
||||||
- primary: CAS
|
- primary: CAS
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
@@ -35,16 +38,27 @@ squadrons:
|
|||||||
aircraft:
|
aircraft:
|
||||||
- F-15C Eagle
|
- F-15C Eagle
|
||||||
size: 8
|
size: 8
|
||||||
|
- primary: CAS
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- AH-64D Apache Longbow
|
||||||
|
size: 4
|
||||||
- primary: Refueling
|
- primary: Refueling
|
||||||
aircraft:
|
aircraft:
|
||||||
- KC-135 Stratotanker
|
- KC-135 Stratotanker
|
||||||
size: 2
|
size: 1
|
||||||
#San Julian
|
- primary: Transport
|
||||||
11:
|
|
||||||
- primary: BAI
|
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-15E Strike Eagle (Suite 4+)
|
- C-130J-30 Super Hercules
|
||||||
|
- C-130
|
||||||
|
size: 1
|
||||||
|
#San Julian
|
||||||
|
11:
|
||||||
|
- primary: DEAD
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- F-16CM Fighting Falcon (Block 50)
|
||||||
size: 8
|
size: 8
|
||||||
#Blue CV
|
#Blue CV
|
||||||
Blue-CV:
|
Blue-CV:
|
||||||
@@ -57,12 +71,12 @@ squadrons:
|
|||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- F/A-18C Hornet (Lot 20)
|
- F/A-18C Hornet (Lot 20)
|
||||||
size: 20
|
size: 32
|
||||||
- primary: DEAD
|
- primary: DEAD
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- S-3B Viking
|
- S-3B Viking
|
||||||
size: 20
|
size: 16
|
||||||
- primary: AEW&C
|
- primary: AEW&C
|
||||||
aircraft:
|
aircraft:
|
||||||
- E-2C Hawkeye
|
- E-2C Hawkeye
|
||||||
@@ -74,7 +88,6 @@ squadrons:
|
|||||||
- primary: Air Assault
|
- primary: Air Assault
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- UH-60L
|
|
||||||
- UH-60A
|
- UH-60A
|
||||||
size: 4
|
size: 4
|
||||||
# Blue LHA
|
# Blue LHA
|
||||||
@@ -83,7 +96,12 @@ squadrons:
|
|||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- AV-8B Harrier II Night Attack
|
- AV-8B Harrier II Night Attack
|
||||||
size: 18
|
size: 10
|
||||||
|
- primary: CAS
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- OH-58D(R) Kiowa Warrior
|
||||||
|
size: 8
|
||||||
- primary: Air Assault
|
- primary: Air Assault
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
@@ -94,18 +112,18 @@ squadrons:
|
|||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- B-52H Stratofortress
|
- B-52H Stratofortress
|
||||||
size: 12
|
size: 4
|
||||||
- primary: OCA/Runway
|
- primary: OCA/Runway
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- B-1B Lancer
|
- B-1B Lancer
|
||||||
size: 12
|
size: 4
|
||||||
#El Calafate
|
#El Calafate
|
||||||
14:
|
14:
|
||||||
- primary: Transport
|
- primary: Transport
|
||||||
aircraft:
|
aircraft:
|
||||||
- Mi-8MTV2 Hip
|
- Mi-8MTV2 Hip
|
||||||
size: 10
|
size: 8
|
||||||
#Rio Gallegros
|
#Rio Gallegros
|
||||||
5:
|
5:
|
||||||
- primary: Escort
|
- primary: Escort
|
||||||
@@ -142,14 +160,15 @@ squadrons:
|
|||||||
#Ushuaia
|
#Ushuaia
|
||||||
7:
|
7:
|
||||||
- primary: CAS
|
- primary: CAS
|
||||||
secondary: air-to-ground
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
|
- Ka-50 Hokum III
|
||||||
- Ka-50 Hokum (Blackshark 3)
|
- Ka-50 Hokum (Blackshark 3)
|
||||||
size: 8
|
size: 8
|
||||||
#Ushuaia Helo Port
|
#Ushuaia Helo Port
|
||||||
8:
|
8:
|
||||||
- primary: Air Assault
|
- primary: Air Assault
|
||||||
secondary: air-to-ground
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- Mi-24P Hind-F
|
- Mi-24P Hind-F
|
||||||
size: 8
|
size: 8
|
||||||
|
|||||||
Binary file not shown.
@@ -38,20 +38,27 @@ description:
|
|||||||
</p>
|
</p>
|
||||||
miz: operation_aegean_aegis.miz
|
miz: operation_aegean_aegis.miz
|
||||||
performance: 1
|
performance: 1
|
||||||
recommended_start_date: 2017-04-20
|
recommended_start_date: 2013-04-20
|
||||||
recommended_player_money: 1000
|
recommended_player_money: 1000
|
||||||
recommended_enemy_money: 0
|
recommended_enemy_money: 0
|
||||||
recommended_player_income_multiplier: 1.0
|
recommended_player_income_multiplier: 1.0
|
||||||
recommended_enemy_income_multiplier: 0.0
|
recommended_enemy_income_multiplier: 0.0
|
||||||
version: "11.0"
|
version: "11.0"
|
||||||
|
settings:
|
||||||
|
squadron_start_full: true
|
||||||
squadrons:
|
squadrons:
|
||||||
#Tarawa Class LHA
|
#Tarawa Class LHA
|
||||||
Blue-LHA:
|
Blue-LHA:
|
||||||
- primary: DEAD
|
- primary: DEAD
|
||||||
secondary: air-to-ground
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- AH-64D Apache Longbow
|
- AH-64D Apache Longbow
|
||||||
size: 12
|
size: 8
|
||||||
|
- primary: CAS
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- OH-58D(R) Kiowa Warrior
|
||||||
|
size: 4
|
||||||
- primary: DEAD
|
- primary: DEAD
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
@@ -67,22 +74,22 @@ squadrons:
|
|||||||
- primary: DEAD
|
- primary: DEAD
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-4E Phantom II
|
- F-4E-45MC Phantom II
|
||||||
size: 12
|
size: 12
|
||||||
#Akrotiri
|
#Akrotiri
|
||||||
44:
|
44:
|
||||||
- primary: BAI
|
- primary: BAI
|
||||||
secondary: air-to-ground
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- AH-1W SuperCobra
|
- AH-1W SuperCobra
|
||||||
size: 4
|
size: 4
|
||||||
- primary: CAS
|
- primary: CAS
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- OH-58D Kiowa Warrior
|
- OH-58D(R) Kiowa Warrior
|
||||||
size: 4
|
size: 4
|
||||||
- primary: Air Assault
|
- primary: Transport
|
||||||
secondary: air-to-ground
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- UH-60A
|
- UH-60A
|
||||||
size: 4
|
size: 4
|
||||||
@@ -95,6 +102,7 @@ squadrons:
|
|||||||
#Ercan
|
#Ercan
|
||||||
49:
|
49:
|
||||||
- primary: Transport
|
- primary: Transport
|
||||||
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- CH-47D
|
- CH-47D
|
||||||
size: 6
|
size: 6
|
||||||
|
|||||||
Binary file not shown.
@@ -13,6 +13,7 @@ recommended_player_faction:
|
|||||||
- en_US
|
- en_US
|
||||||
aircrafts:
|
aircrafts:
|
||||||
- F-4E Phantom II
|
- F-4E Phantom II
|
||||||
|
- F-4E-45MC Phantom II
|
||||||
- F-15C Eagle
|
- F-15C Eagle
|
||||||
- F-15E Strike Eagle
|
- F-15E Strike Eagle
|
||||||
- F-15E Strike Eagle (Suite 4+)
|
- F-15E Strike Eagle (Suite 4+)
|
||||||
@@ -100,7 +101,6 @@ recommended_enemy_faction:
|
|||||||
assets. Designed for use with the Allied Sword scenario.</p>
|
assets. Designed for use with the Allied Sword scenario.</p>
|
||||||
aircrafts:
|
aircrafts:
|
||||||
- MiG-23ML Flogger-G
|
- MiG-23ML Flogger-G
|
||||||
- MiG-25RBT Foxbat-B
|
|
||||||
- MiG-29A Fulcrum-A
|
- MiG-29A Fulcrum-A
|
||||||
- Su-17M4 Fitter-K
|
- Su-17M4 Fitter-K
|
||||||
- Su-24M Fencer-D
|
- Su-24M Fencer-D
|
||||||
@@ -110,7 +110,6 @@ recommended_enemy_faction:
|
|||||||
- Tu-22M3 Backfire-C
|
- Tu-22M3 Backfire-C
|
||||||
- Mi-24V Hind-E
|
- Mi-24V Hind-E
|
||||||
- Mi-8MTV2 Hip
|
- Mi-8MTV2 Hip
|
||||||
- SA 342M Gazelle
|
|
||||||
- SA 342L Gazelle
|
- SA 342L Gazelle
|
||||||
- IL-76MD
|
- IL-76MD
|
||||||
awacs:
|
awacs:
|
||||||
@@ -263,7 +262,9 @@ squadrons:
|
|||||||
- primary: SEAD
|
- primary: SEAD
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
|
- F-4E-45MC Phantom II
|
||||||
- 201th Squadron
|
- 201th Squadron
|
||||||
|
size: 16
|
||||||
- primary: Refueling
|
- primary: Refueling
|
||||||
aircraft:
|
aircraft:
|
||||||
- VMGR-352
|
- VMGR-352
|
||||||
@@ -272,12 +273,12 @@ squadrons:
|
|||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- 69th Squadron
|
- 69th Squadron
|
||||||
size: 8
|
size: 12
|
||||||
- primary: BAI
|
- primary: BAI
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- 110th Squadron
|
- 110th Squadron
|
||||||
size: 8
|
size: 16
|
||||||
# Damascus
|
# Damascus
|
||||||
7:
|
7:
|
||||||
- primary: TARCAP
|
- primary: TARCAP
|
||||||
@@ -315,20 +316,21 @@ squadrons:
|
|||||||
- primary: CAS
|
- primary: CAS
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- SA 342M Gazelle
|
- SA 342L Gazelle
|
||||||
size: 6
|
size: 6
|
||||||
# OPFOR Second inland FOB
|
# OPFOR Second inland FOB
|
||||||
FOB Homs:
|
FOB Homs:
|
||||||
- primary: CAS
|
- primary: CAS
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- SA 342M Gazelle
|
- SA 342L Gazelle
|
||||||
size: 6
|
size: 6
|
||||||
# Palmyra
|
# Palmyra
|
||||||
28:
|
28:
|
||||||
- primary: BARCAP
|
- primary: BARCAP
|
||||||
secondary: air-to-air
|
secondary: air-to-air
|
||||||
aircraft:
|
aircraft:
|
||||||
|
- MiG-21bis Fishbed-N
|
||||||
- MiG-29A Fulcrum-A
|
- MiG-29A Fulcrum-A
|
||||||
size: 12
|
size: 12
|
||||||
- primary: Strike
|
- primary: Strike
|
||||||
@@ -365,7 +367,7 @@ squadrons:
|
|||||||
- primary: CAS
|
- primary: CAS
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- SA 342M Gazelle
|
- SA 342L Gazelle
|
||||||
# OPFOR Second inland FOB
|
# OPFOR Second inland FOB
|
||||||
FOB Ithriyah:
|
FOB Ithriyah:
|
||||||
- primary: CAS
|
- primary: CAS
|
||||||
@@ -385,6 +387,7 @@ squadrons:
|
|||||||
- primary: BARCAP
|
- primary: BARCAP
|
||||||
secondary: air-to-air
|
secondary: air-to-air
|
||||||
aircraft:
|
aircraft:
|
||||||
|
- MiG-23MLD Flogger-K
|
||||||
- Su-30 Flanker-C
|
- Su-30 Flanker-C
|
||||||
- primary: CAS
|
- primary: CAS
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
@@ -396,6 +399,7 @@ squadrons:
|
|||||||
- primary: TARCAP
|
- primary: TARCAP
|
||||||
secondary: air-to-air
|
secondary: air-to-air
|
||||||
aircraft:
|
aircraft:
|
||||||
|
- MiG-25PD Foxbat-E
|
||||||
- MiG-23ML Flogger-G
|
- MiG-23ML Flogger-G
|
||||||
- primary: BARCAP
|
- primary: BARCAP
|
||||||
secondary: any
|
secondary: any
|
||||||
@@ -405,6 +409,7 @@ squadrons:
|
|||||||
- primary: Strike
|
- primary: Strike
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
|
- Su-24M Fencer-D
|
||||||
- Su-34 Fullback
|
- Su-34 Fullback
|
||||||
- primary: Transport
|
- primary: Transport
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
|
|||||||
BIN
resources/campaigns/operation_gazelle.miz
Normal file
BIN
resources/campaigns/operation_gazelle.miz
Normal file
Binary file not shown.
122
resources/campaigns/operation_gazelle.yaml
Normal file
122
resources/campaigns/operation_gazelle.yaml
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
---
|
||||||
|
name: Sinai - Operation Gazelle (Yom Kippur War)
|
||||||
|
theater: Sinai
|
||||||
|
authors: Starfire
|
||||||
|
recommended_player_faction: Israel 1973
|
||||||
|
recommended_enemy_faction: Egypt 1973
|
||||||
|
description:
|
||||||
|
<p>In this semi-historical scenario set during the early stages of the
|
||||||
|
Yom Kippur War, Egypt has successfully captured extensive territory
|
||||||
|
across the Sinai Peninsula during the initial surprise attack.
|
||||||
|
Operation Gazelle represents a critical Israeli counter-offensive to
|
||||||
|
reclaim these areas. Supported by armoured brigades, paratrooper units,
|
||||||
|
and air cover, Israeli forces are tasked with driving the Egyptian Third
|
||||||
|
Army back across the Al Salam Bridge. Their mission also involves encircling
|
||||||
|
and cutting off the Egyptian forces that are advancing eastward from the
|
||||||
|
Port Tewfik Pontoon Bridge through the Mitla and Gidi mountain passes. This
|
||||||
|
operation aims to decisively shift the war's momentum, re-establishing
|
||||||
|
Israeli dominance in the crucial Sinai region.</p>
|
||||||
|
miz: operation_gazelle.miz
|
||||||
|
performance: 1
|
||||||
|
recommended_start_date: 1973-10-15
|
||||||
|
version: "11.0"
|
||||||
|
settings:
|
||||||
|
a4_skyhawk: true
|
||||||
|
hercules: true
|
||||||
|
squadron_start_full: true
|
||||||
|
squadrons:
|
||||||
|
# Ben-Gurion
|
||||||
|
24:
|
||||||
|
- primary: Transport
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- C-130J-30 Super Hercules
|
||||||
|
- C-130
|
||||||
|
size: 4
|
||||||
|
# Tel Nof
|
||||||
|
23:
|
||||||
|
- primary: SEAD
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- F-4E-45MC Phantom II
|
||||||
|
size: 20
|
||||||
|
- primary: Escort
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- F-4E-45MC Phantom II
|
||||||
|
size: 20
|
||||||
|
- primary: AEW&C
|
||||||
|
aircraft:
|
||||||
|
- E-2C Hawkeye
|
||||||
|
size: 2
|
||||||
|
- primary: Air Assault
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- UH-1H Iroquois
|
||||||
|
size: 4
|
||||||
|
# Hatzor
|
||||||
|
20:
|
||||||
|
- primary: BAI
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- A-4E Skyhawk
|
||||||
|
- F-4E-45MC Phantom II
|
||||||
|
size: 20
|
||||||
|
- primary: Strike
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- A-4E Skyhawk
|
||||||
|
- F-4E-45MC Phantom II
|
||||||
|
size: 20
|
||||||
|
# El Arish
|
||||||
|
29:
|
||||||
|
- primary: CAS
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- MiG-19P Farmer-B
|
||||||
|
size: 12
|
||||||
|
# Baluza
|
||||||
|
#27:
|
||||||
|
# Melez
|
||||||
|
5:
|
||||||
|
- primary: BAI
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- MiG-15bis Fagot
|
||||||
|
size: 16
|
||||||
|
- primary: Air Assault
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- Mi-8MTV2 Hip
|
||||||
|
size: 4
|
||||||
|
# Al Mansurah
|
||||||
|
14:
|
||||||
|
- primary: BARCAP
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- MiG-21bis Fishbed-N
|
||||||
|
size: 16
|
||||||
|
- primary: BAI
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- MiG-19P Farmer-B
|
||||||
|
size: 16
|
||||||
|
# Cairo West
|
||||||
|
18:
|
||||||
|
- primary: Strike
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- Tu-16 Badger
|
||||||
|
size: 14
|
||||||
|
- primary: Escort
|
||||||
|
secondary: air-to-air
|
||||||
|
aircraft:
|
||||||
|
- MiG-21bis Fishbed-N
|
||||||
|
size: 16
|
||||||
|
# FARP
|
||||||
|
Port Tewfik Staging Area:
|
||||||
|
- primary: Transport
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- Mi-8MTV2 Hip
|
||||||
|
size: 8
|
||||||
Binary file not shown.
@@ -30,6 +30,9 @@ recommended_player_money: 0
|
|||||||
recommended_enemy_money: 0
|
recommended_enemy_money: 0
|
||||||
recommended_player_income_multiplier: 0.2
|
recommended_player_income_multiplier: 0.2
|
||||||
recommended_enemy_income_multiplier: 0.2
|
recommended_enemy_income_multiplier: 0.2
|
||||||
|
settings:
|
||||||
|
hercules: true
|
||||||
|
squadron_start_full: true
|
||||||
version: "11.0"
|
version: "11.0"
|
||||||
squadrons:
|
squadrons:
|
||||||
Blue CV-1:
|
Blue CV-1:
|
||||||
@@ -40,7 +43,7 @@ squadrons:
|
|||||||
size: 40
|
size: 40
|
||||||
- primary: AEW&C
|
- primary: AEW&C
|
||||||
aircraft:
|
aircraft:
|
||||||
- E-2D Advanced Hawkeye
|
- E-2C Hawkeye
|
||||||
size: 2
|
size: 2
|
||||||
- primary: Refueling
|
- primary: Refueling
|
||||||
aircraft:
|
aircraft:
|
||||||
@@ -49,21 +52,26 @@ squadrons:
|
|||||||
- primary: Air Assault
|
- primary: Air Assault
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- UH-60L
|
|
||||||
- UH-60A
|
- UH-60A
|
||||||
size: 4
|
size: 4
|
||||||
#Al Minhad AFB (61)
|
#Al Minhad AFB (61)
|
||||||
12:
|
12:
|
||||||
|
- primary: Transport
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- C-130J-30 Super Hercules
|
||||||
|
- C-130
|
||||||
|
size: 2
|
||||||
- primary: DEAD
|
- primary: DEAD
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-16CM Fighting Falcon (Block 50)
|
- F-16CM Fighting Falcon (Block 50)
|
||||||
size: 32
|
size: 20
|
||||||
- primary: Escort
|
- primary: Escort
|
||||||
secondary: air-to-air
|
secondary: air-to-air
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-15C Eagle
|
- F-15C Eagle
|
||||||
size: 24
|
size: 20
|
||||||
#Al Dhafra AFB (251)
|
#Al Dhafra AFB (251)
|
||||||
4:
|
4:
|
||||||
- primary: Strike
|
- primary: Strike
|
||||||
@@ -79,18 +87,18 @@ squadrons:
|
|||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-15E Strike Eagle (Suite 4+)
|
- F-15E Strike Eagle (Suite 4+)
|
||||||
size: 20
|
size: 16
|
||||||
- primary: DEAD
|
- primary: DEAD
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- AV-8B Harrier II Night Attack
|
- AV-8B Harrier II Night Attack
|
||||||
size: 20
|
size: 16
|
||||||
#Bandar Abbas Intl (51)
|
#Bandar Abbas Intl (51)
|
||||||
2:
|
2:
|
||||||
- primary: SEAD
|
- primary: SEAD
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-4E Phantom II
|
- F-4E-45MC Phantom II
|
||||||
size: 20
|
size: 20
|
||||||
- primary: TARCAP
|
- primary: TARCAP
|
||||||
secondary: air-to-air
|
secondary: air-to-air
|
||||||
@@ -100,13 +108,13 @@ squadrons:
|
|||||||
#Qeshm Island (12)
|
#Qeshm Island (12)
|
||||||
13:
|
13:
|
||||||
- primary: Air Assault
|
- primary: Air Assault
|
||||||
secondary: air-to-ground
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- Mi-24P Hind-F
|
- Mi-24P Hind-F
|
||||||
size: 12
|
size: 12
|
||||||
#Abu Musa Island (8)
|
#Abu Musa Island (8)
|
||||||
1:
|
1:
|
||||||
- primary: DEAD
|
- primary: SEAD Escort
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- Su-25T Frogfoot
|
- Su-25T Frogfoot
|
||||||
@@ -126,9 +134,10 @@ squadrons:
|
|||||||
#Shiraz Intl (122)
|
#Shiraz Intl (122)
|
||||||
19:
|
19:
|
||||||
- primary: Transport
|
- primary: Transport
|
||||||
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- IL-76MD
|
- IL-76MD
|
||||||
size: 5
|
size: 4
|
||||||
- primary: BARCAP
|
- primary: BARCAP
|
||||||
secondary: air-to-air
|
secondary: air-to-air
|
||||||
aircraft:
|
aircraft:
|
||||||
|
|||||||
Binary file not shown.
@@ -18,18 +18,16 @@ miz: operation_peace_spring.miz
|
|||||||
performance: 2
|
performance: 2
|
||||||
recommended_start_date: 2019-12-23
|
recommended_start_date: 2019-12-23
|
||||||
version: "11.0"
|
version: "11.0"
|
||||||
|
settings:
|
||||||
|
hercules: true
|
||||||
|
squadron_start_full: true
|
||||||
squadrons:
|
squadrons:
|
||||||
Blue CV-1:
|
Blue CV-1:
|
||||||
- primary: SEAD
|
- primary: SEAD
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- F/A-18C Hornet (Lot 20)
|
- F/A-18C Hornet (Lot 20)
|
||||||
size: 40
|
size: 24
|
||||||
- primary: BAI
|
|
||||||
secondary: air-to-ground
|
|
||||||
aircraft:
|
|
||||||
- S-3B Viking
|
|
||||||
size: 20
|
|
||||||
- primary: AEW&C
|
- primary: AEW&C
|
||||||
aircraft:
|
aircraft:
|
||||||
- E-2D Advanced Hawkeye
|
- E-2D Advanced Hawkeye
|
||||||
@@ -38,19 +36,28 @@ squadrons:
|
|||||||
aircraft:
|
aircraft:
|
||||||
- S-3B Tanker
|
- S-3B Tanker
|
||||||
size: 4
|
size: 4
|
||||||
Bombers from RAF Fairford:
|
- primary: Air Assault
|
||||||
- primary: DEAD
|
secondary: any
|
||||||
secondary: air-to-ground
|
|
||||||
aircraft:
|
aircraft:
|
||||||
- B-52H Stratofortress
|
- UH-60A
|
||||||
size: 8
|
size: 4
|
||||||
# Akrotiri
|
# Akrotiri
|
||||||
44:
|
44:
|
||||||
- primary: Strike
|
- primary: Strike
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- B-1B Lancer
|
- B-1B Lancer
|
||||||
size: 8
|
size: 4
|
||||||
|
- primary: Refueling
|
||||||
|
aircraft:
|
||||||
|
- KC-135 Stratotanker
|
||||||
|
size: 2
|
||||||
|
- primary: Transport
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- C-130J-30 Super Hercules
|
||||||
|
- C-130
|
||||||
|
size: 2
|
||||||
- primary: OCA/Runway
|
- primary: OCA/Runway
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
@@ -61,12 +68,6 @@ squadrons:
|
|||||||
aircraft:
|
aircraft:
|
||||||
- F-15C Eagle
|
- F-15C Eagle
|
||||||
size: 20
|
size: 20
|
||||||
- primary: Air Assault
|
|
||||||
secondary: any
|
|
||||||
aircraft:
|
|
||||||
- UH-60L
|
|
||||||
- UH-60A
|
|
||||||
size: 4
|
|
||||||
# Ramat David
|
# Ramat David
|
||||||
30:
|
30:
|
||||||
- primary: BAI
|
- primary: BAI
|
||||||
@@ -80,28 +81,33 @@ squadrons:
|
|||||||
- F-16CM Fighting Falcon (Block 50)
|
- F-16CM Fighting Falcon (Block 50)
|
||||||
size: 28
|
size: 28
|
||||||
- primary: CAS
|
- primary: CAS
|
||||||
secondary: air-to-ground
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- AH-64D Apache Longbow
|
- AH-64D Apache Longbow
|
||||||
size: 4
|
size: 4
|
||||||
|
- primary: CAS
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- OH-58D(R) Kiowa Warrior
|
||||||
|
size: 4
|
||||||
# Damascus
|
# Damascus
|
||||||
7:
|
7:
|
||||||
- primary: Strike
|
- primary: Strike
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-4E Phantom II
|
- F-4E-45MC Phantom II
|
||||||
- H-6J Badger
|
- H-6J Badger
|
||||||
size: 16
|
size: 16
|
||||||
- primary: BAI
|
- primary: BAI
|
||||||
secondary: air-to-ground
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- AH-1W SuperCobra
|
- AH-1W SuperCobra
|
||||||
- Su-25 Frogfoot
|
- Su-25 Frogfoot
|
||||||
size: 16
|
size: 16
|
||||||
- primary: CAS
|
- primary: CAS
|
||||||
secondary: air-to-ground
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- OH-58D Kiowa Warrior
|
- OH-58D(R) Kiowa Warrior
|
||||||
- Mi-24P Hind-F
|
- Mi-24P Hind-F
|
||||||
size: 4
|
size: 4
|
||||||
# Tiyas
|
# Tiyas
|
||||||
@@ -115,7 +121,7 @@ squadrons:
|
|||||||
- primary: Escort
|
- primary: Escort
|
||||||
secondary: air-to-air
|
secondary: air-to-air
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-4E Phantom II
|
- F-4E-45MC Phantom II
|
||||||
- Mirage-F1EQ
|
- Mirage-F1EQ
|
||||||
size: 16
|
size: 16
|
||||||
# Abu Al Duhur
|
# Abu Al Duhur
|
||||||
@@ -123,7 +129,7 @@ squadrons:
|
|||||||
- primary: Fighter sweep
|
- primary: Fighter sweep
|
||||||
secondary: air-to-air
|
secondary: air-to-air
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-4E Phantom II
|
- F-4E-45MC Phantom II
|
||||||
- MiG-23ML Flogger-G
|
- MiG-23ML Flogger-G
|
||||||
size: 8
|
size: 8
|
||||||
# Gaziantep
|
# Gaziantep
|
||||||
@@ -139,7 +145,7 @@ squadrons:
|
|||||||
- primary: Strike
|
- primary: Strike
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-4E Phantom II
|
- F-4E-45MC Phantom II
|
||||||
- Tu-22M3 Backfire-C
|
- Tu-22M3 Backfire-C
|
||||||
size: 16
|
size: 16
|
||||||
- primary: AEW&C
|
- primary: AEW&C
|
||||||
@@ -155,6 +161,6 @@ squadrons:
|
|||||||
- primary: Escort
|
- primary: Escort
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-4E Phantom II
|
- F-4E-45MC Phantom II
|
||||||
- MiG-21bis Fishbed-N
|
- MiG-21bis Fishbed-N
|
||||||
size: 16
|
size: 16
|
||||||
Binary file not shown.
@@ -5,32 +5,30 @@ authors: Starfire
|
|||||||
recommended_player_faction: USA 2005
|
recommended_player_faction: USA 2005
|
||||||
recommended_enemy_faction: Russia 2010
|
recommended_enemy_faction: Russia 2010
|
||||||
description:
|
description:
|
||||||
<p>United Nations Observer Mission in Georgia (UNOMIG) observers stationed in
|
<p>The United Nations Observer Mission in Georgia (UNOMIG) has been actively
|
||||||
Georgia to monitor the ceasefire between Georgia and Abkhazia have been cut
|
monitoring the ceasefire agreement between Georgia and its breakaway region
|
||||||
off from friendly forces by Russian troops backing the separatist state. The
|
of Abkhazia. However, recent developments have escalated tensions, leading
|
||||||
UNOMIG HQ at Sukhumi has been taken, and a small contingent of observers and
|
to a precarious situation for the UN observers. Along with a small contingent
|
||||||
troops at the Zugdidi Sector HQ will have to make a run for the coast,
|
of international troops, they have found themselves isolated due to the
|
||||||
supported by offshore US naval aircraft. The contingent is aware that their
|
intervention of Russian forces supporting Abkhazia's separatist ambitions.
|
||||||
best shot at survival is to swiftly retake Sukhumi before Russian forces have
|
The UNOMIG headquarters in Sukhumi has fallen into enemy hands, leaving a
|
||||||
a chance to dig in, so that friendly ground forces can land and reinforce
|
small group based at the Zugdidi Sector Headquarters facing the daunting
|
||||||
them.</p><p><strong>Note:</strong> Ground unit purchase will not be available
|
task of navigating to safety with the aid of close air support.</p>
|
||||||
past Turn 0 until Sukhumi is retaken, so it is imperative you reach Sukhumi
|
<p>The immediate goal is to orchestrate a strategic withdrawal of UN forces to
|
||||||
with at least one surviving ground unit to capture it. Two Hueys are available
|
the coastline, leveraging support from US naval aircraft positioned offshore
|
||||||
at Zugdidi for some close air support. The player can either play the first
|
as well as US Air force squadrons newly arrived at Tbilisi. Commanders may opt
|
||||||
leg of the scenario as an evacuation with a couple of light vehicles (e.g.
|
to begin the operation with light vehicles, employing breakthrough tactics to
|
||||||
Humvees) set on breakthrough (modifying waypoints in the mission editor so
|
avoid direct confrontations with enemy forces. Alternatively, the use of
|
||||||
they are not charging head-on into enemy ground forces is suggested), or
|
heavier ground units is an option for commanders seeking a more conventional
|
||||||
purchase heavier ground units if they wish to experience a more traditional
|
combat engagement. C-17 Globemasters stand ready bring in additional ground
|
||||||
frontline ground war. Once Sukhumi has been captured, squadrons based in
|
units from Incirlik to reinforce existing troops, upon recapture of Sukhumi.</p>
|
||||||
Incirlik Turkey can be ferried in via the "From Incirlik" off-map spawn
|
|
||||||
point.</p>
|
|
||||||
miz: operation_vectrons_claw.miz
|
miz: operation_vectrons_claw.miz
|
||||||
performance: 1
|
performance: 1
|
||||||
recommended_start_date: 2008-08-08
|
recommended_start_date: 2008-08-08
|
||||||
version: "11.0"
|
version: "11.0"
|
||||||
control_points:
|
settings:
|
||||||
From Incirlik:
|
hercules: true
|
||||||
ferry_only: true
|
squadron_start_full: true
|
||||||
squadrons:
|
squadrons:
|
||||||
Blue CV-1:
|
Blue CV-1:
|
||||||
- primary: BARCAP
|
- primary: BARCAP
|
||||||
@@ -42,12 +40,12 @@ squadrons:
|
|||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- F/A-18C Hornet (Lot 20)
|
- F/A-18C Hornet (Lot 20)
|
||||||
size: 60
|
size: 24
|
||||||
- primary: CAS
|
- primary: BAI
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- S-3B Viking
|
- S-3B Viking
|
||||||
size: 8
|
size: 12
|
||||||
- primary: AEW&C
|
- primary: AEW&C
|
||||||
aircraft:
|
aircraft:
|
||||||
- E-2C Hawkeye
|
- E-2C Hawkeye
|
||||||
@@ -55,30 +53,46 @@ squadrons:
|
|||||||
- primary: Refueling
|
- primary: Refueling
|
||||||
aircraft:
|
aircraft:
|
||||||
- S-3B Tanker
|
- S-3B Tanker
|
||||||
size: 2
|
size: 4
|
||||||
- primary: Air Assault
|
- primary: Air Assault
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- UH-60L
|
|
||||||
- UH-60A
|
- UH-60A
|
||||||
size: 2
|
size: 4
|
||||||
Blue LHA:
|
Blue LHA:
|
||||||
- primary: BAI
|
- primary: BAI
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- AV-8B Harrier II Night Attack
|
- AV-8B Harrier II Night Attack
|
||||||
size: 20
|
size: 20
|
||||||
From Incirlik:
|
#Tbilisi-Lochini
|
||||||
- primary: CAS
|
29:
|
||||||
|
- primary: OCA/Runway
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- AH-64D Apache Longbow
|
- B-1B Lancer
|
||||||
size: 8
|
size: 4
|
||||||
|
- primary: Refueling
|
||||||
|
aircraft:
|
||||||
|
- KC-135 Stratotanker
|
||||||
|
size: 2
|
||||||
- primary: CAS
|
- primary: CAS
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- A-10C Thunderbolt II (Suite 7)
|
- A-10C Thunderbolt II (Suite 7)
|
||||||
size: 8
|
size: 4
|
||||||
|
- primary: CAS
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- AH-64D Apache Longbow
|
||||||
|
size: 4
|
||||||
|
- primary: CAS
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- OH-58D(R) Kiowa Warrior
|
||||||
|
size: 4
|
||||||
|
#Vaziani
|
||||||
|
31:
|
||||||
- primary: DEAD
|
- primary: DEAD
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
@@ -88,39 +102,48 @@ squadrons:
|
|||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-15E Strike Eagle (Suite 4+)
|
- F-15E Strike Eagle (Suite 4+)
|
||||||
size: 8
|
size: 12
|
||||||
- primary: Refueling
|
- primary: Escort
|
||||||
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- KC-135 Stratotanker
|
- F-15C Eagle
|
||||||
size: 1
|
size: 12
|
||||||
#FARPs
|
- primary: Transport
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- C-130J-30 Super Hercules
|
||||||
|
- C-130
|
||||||
|
size: 2
|
||||||
|
Bombers from RAF Fairford:
|
||||||
|
- primary: Anti-ship
|
||||||
|
secondary: air-to-ground
|
||||||
|
aircraft:
|
||||||
|
- B-52H Stratofortress
|
||||||
|
size: 4
|
||||||
|
#OWNFOR FARP
|
||||||
UNOMIG Sector HQ:
|
UNOMIG Sector HQ:
|
||||||
- primary: Transport
|
- primary: Transport
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- UH-1H Iroquois
|
- UH-1H Iroquois
|
||||||
size: 2
|
size: 2
|
||||||
|
#OPFOR FARP
|
||||||
Dzhugba:
|
Dzhugba:
|
||||||
- primary: CAS
|
- primary: Air Assault
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- Mi-24P Hind-F
|
- Mi-24P Hind-F
|
||||||
size: 8
|
size: 4
|
||||||
#Sukhumi-Babushara
|
#Sukhumi-Babushara
|
||||||
20:
|
20:
|
||||||
- primary: TARCAP
|
- primary: SEAD Escort
|
||||||
secondary: air-to-air
|
|
||||||
aircraft:
|
|
||||||
- MiG-29S Fulcrum-C
|
|
||||||
size: 8
|
|
||||||
- primary: BAI
|
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- Su-25T Frogfoot
|
- Su-25T Frogfoot
|
||||||
size: 12
|
size: 20
|
||||||
#Sochi-Adler
|
#Sochi-Adler
|
||||||
18:
|
18:
|
||||||
- primary: Escort
|
- primary: TARCAP
|
||||||
secondary: air-to-air
|
secondary: air-to-air
|
||||||
aircraft:
|
aircraft:
|
||||||
- Su-27 Flanker-B
|
- Su-27 Flanker-B
|
||||||
@@ -130,26 +153,48 @@ squadrons:
|
|||||||
aircraft:
|
aircraft:
|
||||||
- Su-24M Fencer-D
|
- Su-24M Fencer-D
|
||||||
size: 20
|
size: 20
|
||||||
- primary: DEAD
|
- primary: BAI
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- Su-34 Fullback
|
- Su-34 Fullback
|
||||||
size: 20
|
size: 20
|
||||||
#Anapa-Vityazevo
|
#Mineralnye Vody
|
||||||
12:
|
26:
|
||||||
- primary: Strike
|
- primary: Strike
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- Tu-95MS Bear-H
|
- Tu-95MS Bear-H
|
||||||
size: 16
|
size: 12
|
||||||
|
- primary: Escort
|
||||||
|
secondary: air-to-air
|
||||||
|
aircraft:
|
||||||
|
- MiG-29S Fulcrum-C
|
||||||
|
size: 12
|
||||||
|
#Maykop-Khanskaya
|
||||||
|
16:
|
||||||
|
- primary: DEAD
|
||||||
|
secondary: air-to-ground
|
||||||
|
aircraft:
|
||||||
|
- Tu-22M3 Backfire-C
|
||||||
|
size: 20
|
||||||
|
#Anapa-Vityazevo
|
||||||
|
12:
|
||||||
|
- primary: AEW&C
|
||||||
|
aircraft:
|
||||||
|
- A-50
|
||||||
|
size: 2
|
||||||
|
- primary: Transport
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- IL-76MD
|
||||||
|
size: 2
|
||||||
|
- primary: Refueling
|
||||||
|
aircraft:
|
||||||
|
- IL-78M
|
||||||
|
size: 2
|
||||||
Red CV:
|
Red CV:
|
||||||
- primary: BARCAP
|
- primary: BARCAP
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- SU-33 Flanker-D
|
- SU-33 Flanker-D
|
||||||
size: 18
|
size: 12
|
||||||
#I am aware there is no Russian LHA. This is just for campaign inversion.
|
|
||||||
Red LHA:
|
|
||||||
- primary: BAI
|
|
||||||
secondary: air-to-ground
|
|
||||||
size: 20
|
|
||||||
Binary file not shown.
@@ -14,14 +14,21 @@ description:
|
|||||||
captured by Air Assault. Due to the limited size and availability of LZs, it
|
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.
|
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
|
</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
|
A-4 Skyhawk, OV-10A, and C-130J aircraft mods active. The C-101CC has also
|
||||||
as a stand-in for the Cessna A-37 Dragonfly in order to provide a CAS platform
|
been included as a stand-in for the Cessna A-37 Dragonfly in order to provide
|
||||||
of roughly equivalent combat capability. This campaign will be updated to use
|
a CAS platform of roughly equivalent combat capability.</p>
|
||||||
Heatblur's F-4 Phantom II once it is in early access.</p>
|
<strong>Note:</strong> Airbase threat range should be set to 25 for this campaign.
|
||||||
miz: operation_velvet_thunder.miz
|
miz: operation_velvet_thunder.miz
|
||||||
performance: 1
|
performance: 1
|
||||||
recommended_start_date: 1970-11-29
|
recommended_start_date: 1970-11-29
|
||||||
version: "11.0"
|
version: "11.0"
|
||||||
|
settings:
|
||||||
|
airbase_threat_range: 25
|
||||||
|
restrict_weapons_by_date: true
|
||||||
|
a4_skyhawk: true
|
||||||
|
hercules: true
|
||||||
|
ov10a_bronco: true
|
||||||
|
squadron_start_full: true
|
||||||
squadrons:
|
squadrons:
|
||||||
#Andersen AFB
|
#Andersen AFB
|
||||||
6:
|
6:
|
||||||
@@ -30,21 +37,21 @@ squadrons:
|
|||||||
aircraft:
|
aircraft:
|
||||||
- F-5E Tiger II
|
- F-5E Tiger II
|
||||||
size: 8
|
size: 8
|
||||||
- primary: BAI
|
|
||||||
secondary: any
|
|
||||||
aircraft:
|
|
||||||
- C-101CC Aviojet
|
|
||||||
size: 8
|
|
||||||
- primary: CAS
|
- primary: CAS
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- OV-10A Bronco
|
- OV-10A Bronco
|
||||||
size: 8
|
size: 8
|
||||||
- primary: SEAD
|
- primary: SEAD
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- F-4E-45MC Phantom II
|
||||||
|
size: 8
|
||||||
|
- primary: DEAD
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
- F-4E Phantom II
|
- F-4E Phantom II
|
||||||
size: 16
|
size: 8
|
||||||
- primary: Strike
|
- primary: Strike
|
||||||
secondary: any
|
secondary: any
|
||||||
aircraft:
|
aircraft:
|
||||||
@@ -60,6 +67,19 @@ squadrons:
|
|||||||
aircraft:
|
aircraft:
|
||||||
- CH-47D
|
- CH-47D
|
||||||
size: 4
|
size: 4
|
||||||
|
#Antonio B. Won Pat Intl
|
||||||
|
4:
|
||||||
|
- primary: Air Assault
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- C-130J-30 Super Hercules
|
||||||
|
- C-130
|
||||||
|
size: 8
|
||||||
|
- primary: BAI
|
||||||
|
secondary: any
|
||||||
|
aircraft:
|
||||||
|
- C-101CC Aviojet
|
||||||
|
size: 8
|
||||||
#Blue CV
|
#Blue CV
|
||||||
Blue-CV:
|
Blue-CV:
|
||||||
- primary: DEAD
|
- primary: DEAD
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ squadrons:
|
|||||||
- primary: BAI
|
- primary: BAI
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
- 81st FS
|
- A-10C Thunderbolt II (Suite 7)
|
||||||
size: 10
|
size: 10
|
||||||
#USAF A-10CI
|
#USAF A-10CI
|
||||||
#BLUFOR CVN
|
#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_enemy_money: 1200
|
||||||
recommended_player_income_multiplier: 1.0
|
recommended_player_income_multiplier: 1.0
|
||||||
recommended_enemy_income_multiplier: 0.6
|
recommended_enemy_income_multiplier: 0.6
|
||||||
control_points:
|
|
||||||
From Turkey:
|
|
||||||
ferry_only: true
|
|
||||||
squadrons:
|
squadrons:
|
||||||
#BLUFOR CVN
|
#BLUFOR CVN
|
||||||
Naval-1:
|
Naval-1:
|
||||||
@@ -62,8 +59,8 @@ squadrons:
|
|||||||
aircraft:
|
aircraft:
|
||||||
- HMLA-169 (AH-1W)
|
- HMLA-169 (AH-1W)
|
||||||
size: 6
|
size: 6
|
||||||
# Off-theatre forces
|
# Incirlik
|
||||||
From Turkey:
|
16:
|
||||||
- primary: Strike
|
- primary: Strike
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
@@ -73,8 +70,25 @@ squadrons:
|
|||||||
- 960th AAC Squadron
|
- 960th AAC Squadron
|
||||||
#USAF E-3A
|
#USAF E-3A
|
||||||
size: 2
|
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
|
# King Hussein Air College, BLUFOR start
|
||||||
19:
|
19:
|
||||||
|
- primary: BAI
|
||||||
|
secondary: air-to-ground
|
||||||
|
aircraft:
|
||||||
|
- A-10C Thunderbolt II (Suite 7)
|
||||||
|
#USAF A-10CII
|
||||||
|
size: 8
|
||||||
- primary: BARCAP
|
- primary: BARCAP
|
||||||
secondary: air-to-air
|
secondary: air-to-air
|
||||||
aircraft:
|
aircraft:
|
||||||
@@ -85,11 +99,6 @@ squadrons:
|
|||||||
aircraft:
|
aircraft:
|
||||||
- 23rd FS
|
- 23rd FS
|
||||||
#USAF F-16C
|
#USAF F-16C
|
||||||
- primary: BAI
|
|
||||||
secondary: air-to-ground
|
|
||||||
aircraft:
|
|
||||||
- 81st FS
|
|
||||||
#USAF A-10CII
|
|
||||||
- primary: Transport
|
- primary: Transport
|
||||||
secondary: air-to-ground
|
secondary: air-to-ground
|
||||||
aircraft:
|
aircraft:
|
||||||
|
|||||||
@@ -178,15 +178,15 @@ local unitPayloads = {
|
|||||||
["name"] = "Liberation SEAD",
|
["name"] = "Liberation SEAD",
|
||||||
["pylons"] = {
|
["pylons"] = {
|
||||||
[1] = {
|
[1] = {
|
||||||
["CLSID"] = "{3E6B632D-65EB-44D2-9501-1C2D04515404}",
|
["CLSID"] = "{AGM_45A}",
|
||||||
["num"] = 5,
|
["num"] = 5,
|
||||||
},
|
},
|
||||||
[2] = {
|
[2] = {
|
||||||
["CLSID"] = "{3E6B632D-65EB-44D2-9501-1C2D04515404}",
|
["CLSID"] = "{AGM_45A}",
|
||||||
["num"] = 1,
|
["num"] = 1,
|
||||||
},
|
},
|
||||||
[3] = {
|
[3] = {
|
||||||
["CLSID"] = "{3E6B632D-65EB-44D2-9501-1C2D04515404}",
|
["CLSID"] = "{AGM_45A}",
|
||||||
["num"] = 4,
|
["num"] = 4,
|
||||||
},
|
},
|
||||||
[4] = {
|
[4] = {
|
||||||
@@ -194,7 +194,7 @@ local unitPayloads = {
|
|||||||
["num"] = 3,
|
["num"] = 3,
|
||||||
},
|
},
|
||||||
[5] = {
|
[5] = {
|
||||||
["CLSID"] = "{3E6B632D-65EB-44D2-9501-1C2D04515404}",
|
["CLSID"] = "{AGM_45A}",
|
||||||
["num"] = 2,
|
["num"] = 2,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -265,15 +265,15 @@ local unitPayloads = {
|
|||||||
["name"] = "Liberation SEAD Escort",
|
["name"] = "Liberation SEAD Escort",
|
||||||
["pylons"] = {
|
["pylons"] = {
|
||||||
[1] = {
|
[1] = {
|
||||||
["CLSID"] = "{3E6B632D-65EB-44D2-9501-1C2D04515404}",
|
["CLSID"] = "{AGM_45A}",
|
||||||
["num"] = 5,
|
["num"] = 5,
|
||||||
},
|
},
|
||||||
[2] = {
|
[2] = {
|
||||||
["CLSID"] = "{3E6B632D-65EB-44D2-9501-1C2D04515404}",
|
["CLSID"] = "{AGM_45A}",
|
||||||
["num"] = 1,
|
["num"] = 1,
|
||||||
},
|
},
|
||||||
[3] = {
|
[3] = {
|
||||||
["CLSID"] = "{3E6B632D-65EB-44D2-9501-1C2D04515404}",
|
["CLSID"] = "{AGM_45A}",
|
||||||
["num"] = 4,
|
["num"] = 4,
|
||||||
},
|
},
|
||||||
[4] = {
|
[4] = {
|
||||||
@@ -281,7 +281,7 @@ local unitPayloads = {
|
|||||||
["num"] = 3,
|
["num"] = 3,
|
||||||
},
|
},
|
||||||
[5] = {
|
[5] = {
|
||||||
["CLSID"] = "{3E6B632D-65EB-44D2-9501-1C2D04515404}",
|
["CLSID"] = "{AGM_45A}",
|
||||||
["num"] = 2,
|
["num"] = 2,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -352,11 +352,11 @@ local unitPayloads = {
|
|||||||
["name"] = "Liberation DEAD",
|
["name"] = "Liberation DEAD",
|
||||||
["pylons"] = {
|
["pylons"] = {
|
||||||
[1] = {
|
[1] = {
|
||||||
["CLSID"] = "{3E6B632D-65EB-44D2-9501-1C2D04515404}",
|
["CLSID"] = "{AGM_45A}",
|
||||||
["num"] = 5,
|
["num"] = 5,
|
||||||
},
|
},
|
||||||
[2] = {
|
[2] = {
|
||||||
["CLSID"] = "{3E6B632D-65EB-44D2-9501-1C2D04515404}",
|
["CLSID"] = "{AGM_45A}",
|
||||||
["num"] = 1,
|
["num"] = 1,
|
||||||
},
|
},
|
||||||
[3] = {
|
[3] = {
|
||||||
|
|||||||
@@ -2,30 +2,6 @@ local unitPayloads = {
|
|||||||
["name"] = "AH-64D_BLK_II",
|
["name"] = "AH-64D_BLK_II",
|
||||||
["payloads"] = {
|
["payloads"] = {
|
||||||
[1] = {
|
[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",
|
["displayName"] = "Liberation BAI",
|
||||||
["name"] = "Liberation BAI",
|
["name"] = "Liberation BAI",
|
||||||
["pylons"] = {
|
["pylons"] = {
|
||||||
@@ -45,12 +21,72 @@ local unitPayloads = {
|
|||||||
["CLSID"] = "{M299_4xAGM_114L}",
|
["CLSID"] = "{M299_4xAGM_114L}",
|
||||||
["num"] = 1,
|
["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"] = {
|
["tasks"] = {
|
||||||
[1] = 31,
|
[1] = 31,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
[3] = {
|
[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",
|
["displayName"] = "Liberation DEAD",
|
||||||
["name"] = "Liberation DEAD",
|
["name"] = "Liberation DEAD",
|
||||||
["pylons"] = {
|
["pylons"] = {
|
||||||
@@ -70,30 +106,39 @@ local unitPayloads = {
|
|||||||
["CLSID"] = "{M299_4xAGM_114L}",
|
["CLSID"] = "{M299_4xAGM_114L}",
|
||||||
["num"] = 1,
|
["num"] = 1,
|
||||||
},
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_APG_78}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
["tasks"] = {
|
["tasks"] = {
|
||||||
[1] = 31,
|
[1] = 31,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
[4] = {
|
[5] = {
|
||||||
["name"] = "Liberation OCA/Aircraft",
|
["displayName"] = "Liberation Escort",
|
||||||
|
["name"] = "Liberation Escort",
|
||||||
["pylons"] = {
|
["pylons"] = {
|
||||||
[1] = {
|
[1] = {
|
||||||
["CLSID"] = "{88D18A5E-99C8-4B04-B40B-1C02F2018B6E}",
|
["CLSID"] = "{88D18A5E-99C8-4B04-B40B-1C02F2018B6E}",
|
||||||
["num"] = 3,
|
["num"] = 3,
|
||||||
},
|
},
|
||||||
[2] = {
|
[2] = {
|
||||||
|
["CLSID"] = "{M299_4xAGM_114L}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
["CLSID"] = "{88D18A5E-99C8-4B04-B40B-1C02F2018B6E}",
|
["CLSID"] = "{88D18A5E-99C8-4B04-B40B-1C02F2018B6E}",
|
||||||
["num"] = 2,
|
["num"] = 2,
|
||||||
},
|
},
|
||||||
[3] = {
|
|
||||||
["CLSID"] = "{M261_M229}",
|
|
||||||
["num"] = 4,
|
|
||||||
},
|
|
||||||
[4] = {
|
[4] = {
|
||||||
["CLSID"] = "{M261_M229}",
|
["CLSID"] = "{M299_4xAGM_114L}",
|
||||||
["num"] = 1,
|
["num"] = 1,
|
||||||
},
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_APG_78}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
["tasks"] = {
|
["tasks"] = {
|
||||||
[1] = 31,
|
[1] = 31,
|
||||||
|
|||||||
53
resources/customized_payloads/EA-18G.lua
Normal file
53
resources/customized_payloads/EA-18G.lua
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
local unitPayloads = {
|
||||||
|
["name"] = "EA-18G",
|
||||||
|
["payloads"] = {
|
||||||
|
[1] = {
|
||||||
|
["name"] = "Retribution SEAD",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANKHighVis}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{ALQ-99Wing}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{ALQ-99Center}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{ALQ-99Wing}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANKHighVis}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
},
|
||||||
|
["unitType"] = "EA-18G",
|
||||||
|
}
|
||||||
|
return unitPayloads
|
||||||
973
resources/customized_payloads/F-4E-45MC.lua
Normal file
973
resources/customized_payloads/F-4E-45MC.lua
Normal file
@@ -0,0 +1,973 @@
|
|||||||
|
local unitPayloads = {
|
||||||
|
["name"] = "F-4E-45MC",
|
||||||
|
["payloads"] = {
|
||||||
|
[1] = {
|
||||||
|
["displayName"] = "Liberation SEAD Escort",
|
||||||
|
["name"] = "Liberation SEAD Escort",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{HB_ALE_40_30_60}",
|
||||||
|
["num"] = 14,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{AGM_12B}",
|
||||||
|
["num"] = 13,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 12,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 10,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{HB_ALQ-131_ON_ADAPTER_IN_AERO7}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 2,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 4,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{AGM_12B}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[10] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[11] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[12] = {
|
||||||
|
["CLSID"] = "{F4_SARGENT_TANK_600_GAL}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[13] = {
|
||||||
|
["CLSID"] = "{AGM_12B}",
|
||||||
|
["num"] = 11,
|
||||||
|
},
|
||||||
|
[14] = {
|
||||||
|
["CLSID"] = "{AGM_12B}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["name"] = "Liberation Anti-ship",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{HB_ALE_40_30_60}",
|
||||||
|
["num"] = 14,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{F4_SARGENT_TANK_370_GAL_R}",
|
||||||
|
["num"] = 13,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{C40A1E3A-DD05-40D9-85A4-217729E37FAE}",
|
||||||
|
["num"] = 11,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 10,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 12,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{HB_ALQ-131_ON_ADAPTER_IN_AERO7}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[10] = {
|
||||||
|
["CLSID"] = "{C40A1E3A-DD05-40D9-85A4-217729E37FAE}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[11] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[12] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[13] = {
|
||||||
|
["CLSID"] = "{F4_SARGENT_TANK_370_GAL}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["name"] = "Liberation BARCAP",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{HB_ALE_40_30_60}",
|
||||||
|
["num"] = 14,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{F4_SARGENT_TANK_370_GAL_R}",
|
||||||
|
["num"] = 13,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{AIM-9M}",
|
||||||
|
["num"] = 12,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{AIM-9M}",
|
||||||
|
["num"] = 10,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{AIM-9M}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{AIM-9M}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{F4_SARGENT_TANK_370_GAL}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[10] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[11] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["displayName"] = "Liberation Escort",
|
||||||
|
["name"] = "Liberation Escort",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{HB_ALE_40_30_60}",
|
||||||
|
["num"] = 14,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{F4_SARGENT_TANK_370_GAL_R}",
|
||||||
|
["num"] = 13,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{AIM-9M}",
|
||||||
|
["num"] = 12,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{AIM-9M}",
|
||||||
|
["num"] = 10,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{AIM-9M}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{AIM-9M}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{F4_SARGENT_TANK_370_GAL}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[10] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[11] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["displayName"] = "Liberation BAI",
|
||||||
|
["name"] = "Liberation BAI",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{HB_ALE_40_30_60}",
|
||||||
|
["num"] = 14,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{AGM_62_I}",
|
||||||
|
["num"] = 13,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 12,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 10,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{HB_ALQ-131_ON_ADAPTER_IN_AERO7}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 2,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 4,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{AGM_62_I}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[10] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[11] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[12] = {
|
||||||
|
["CLSID"] = "{F4_SARGENT_TANK_600_GAL}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[13] = {
|
||||||
|
["CLSID"] = "{AGM_62_I}",
|
||||||
|
["num"] = 11,
|
||||||
|
},
|
||||||
|
[14] = {
|
||||||
|
["CLSID"] = "{AGM_62_I}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["displayName"] = "Liberation CAS",
|
||||||
|
["name"] = "Liberation CAS",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{HB_ALE_40_30_60}",
|
||||||
|
["num"] = 14,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{AGM_62_I}",
|
||||||
|
["num"] = 13,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 12,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 10,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{HB_ALQ-131_ON_ADAPTER_IN_AERO7}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 2,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 4,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{AGM_62_I}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[10] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[11] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[12] = {
|
||||||
|
["CLSID"] = "{F4_SARGENT_TANK_600_GAL}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[13] = {
|
||||||
|
["CLSID"] = "{AGM_62_I}",
|
||||||
|
["num"] = 11,
|
||||||
|
},
|
||||||
|
[14] = {
|
||||||
|
["CLSID"] = "{AGM_62_I}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["displayName"] = "Liberation SEAD",
|
||||||
|
["name"] = "Liberation SEAD",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{HB_ALE_40_30_60}",
|
||||||
|
["num"] = 14,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{LAU_34_AGM_45A}",
|
||||||
|
["num"] = 13,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 12,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 10,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{HB_ALQ-131_ON_ADAPTER_IN_AERO7}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 2,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 4,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{LAU_34_AGM_45A}",
|
||||||
|
["num"] = 1,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[10] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[11] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[12] = {
|
||||||
|
["CLSID"] = "{F4_SARGENT_TANK_600_GAL}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[13] = {
|
||||||
|
["CLSID"] = "{LAU_34_AGM_45A}",
|
||||||
|
["num"] = 11,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[14] = {
|
||||||
|
["CLSID"] = "{LAU_34_AGM_45A}",
|
||||||
|
["num"] = 3,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["displayName"] = "Liberation Strike",
|
||||||
|
["name"] = "Liberation Strike",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{HB_ALE_40_30_60}",
|
||||||
|
["num"] = 14,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}",
|
||||||
|
["num"] = 13,
|
||||||
|
["settings"] = {
|
||||||
|
["NFP_VIS_DrawArgNo_57"] = 0,
|
||||||
|
["NFP_fuze_type_nose"] = "M904E4",
|
||||||
|
["NFP_fuze_type_tail"] = "M905",
|
||||||
|
["arm_delay_ctrl_M904E4"] = 2,
|
||||||
|
["arm_delay_ctrl_M905"] = 4,
|
||||||
|
["function_delay_ctrl_M904E4"] = 0,
|
||||||
|
["function_delay_ctrl_M905"] = 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{AIM-9M}",
|
||||||
|
["num"] = 12,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{AIM-9M}",
|
||||||
|
["num"] = 10,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{HB_ALQ-131_ON_ADAPTER_IN_AERO7}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{AIM-9M}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{AIM-9M}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}",
|
||||||
|
["num"] = 1,
|
||||||
|
["settings"] = {
|
||||||
|
["NFP_VIS_DrawArgNo_57"] = 0,
|
||||||
|
["NFP_fuze_type_nose"] = "M904E4",
|
||||||
|
["NFP_fuze_type_tail"] = "M905",
|
||||||
|
["arm_delay_ctrl_M904E4"] = 2,
|
||||||
|
["arm_delay_ctrl_M905"] = 4,
|
||||||
|
["function_delay_ctrl_M904E4"] = 0,
|
||||||
|
["function_delay_ctrl_M905"] = 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[10] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[11] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[12] = {
|
||||||
|
["CLSID"] = "{F4_SARGENT_TANK_600_GAL}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["displayName"] = "Liberation TARCAP",
|
||||||
|
["name"] = "Liberation TARCAP",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{HB_ALE_40_30_60}",
|
||||||
|
["num"] = 14,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{F4_SARGENT_TANK_370_GAL_R}",
|
||||||
|
["num"] = 13,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{AIM-9M}",
|
||||||
|
["num"] = 12,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{AIM-9M}",
|
||||||
|
["num"] = 10,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{AIM-9M}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{AIM-9M}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{F4_SARGENT_TANK_370_GAL}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[10] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[11] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[10] = {
|
||||||
|
["displayName"] = "Liberation DEAD",
|
||||||
|
["name"] = "Liberation DEAD",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{HB_ALE_40_30_60}",
|
||||||
|
["num"] = 14,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{AGM_12B}",
|
||||||
|
["num"] = 13,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 12,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 10,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{HB_ALQ-131_ON_ADAPTER_IN_AERO7}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 2,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 4,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{AGM_12B}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[10] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[11] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[12] = {
|
||||||
|
["CLSID"] = "{F4_SARGENT_TANK_600_GAL}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[13] = {
|
||||||
|
["CLSID"] = "{AGM_12B}",
|
||||||
|
["num"] = 11,
|
||||||
|
},
|
||||||
|
[14] = {
|
||||||
|
["CLSID"] = "{AGM_12B}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[11] = {
|
||||||
|
["displayName"] = "Liberation OCA/Runway",
|
||||||
|
["name"] = "Liberation OCA/Runway",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{HB_ALE_40_30_60}",
|
||||||
|
["num"] = 14,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{F4_SARGENT_TANK_370_GAL_R}",
|
||||||
|
["num"] = 13,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 12,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 10,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{HB_ALQ-131_ON_ADAPTER_IN_AERO7}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 2,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 4,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{F4_SARGENT_TANK_370_GAL}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[10] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[11] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[12] = {
|
||||||
|
["CLSID"] = "{HB_F4E_BLU-107B_6x}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[13] = {
|
||||||
|
["CLSID"] = "{HB_F4E_BLU-107B_3x}",
|
||||||
|
["num"] = 11,
|
||||||
|
},
|
||||||
|
[14] = {
|
||||||
|
["CLSID"] = "{HB_F4E_BLU-107B_3x}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[12] = {
|
||||||
|
["displayName"] = "Liberation OCA/Aircraft",
|
||||||
|
["name"] = "Liberation OCA/Aircraft",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{HB_ALE_40_30_60}",
|
||||||
|
["num"] = 14,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{HB_F4E_MK-82_Snakeye_6x}",
|
||||||
|
["num"] = 13,
|
||||||
|
["settings"] = {
|
||||||
|
["NFP_VIS_DrawArgNo_57"] = 0,
|
||||||
|
["NFP_fuze_type_nose"] = "M904E4",
|
||||||
|
["NFP_fuze_type_tail"] = "M905",
|
||||||
|
["arm_delay_ctrl_M904E4"] = 2,
|
||||||
|
["arm_delay_ctrl_M905"] = 4,
|
||||||
|
["function_delay_ctrl_M904E4"] = 0,
|
||||||
|
["function_delay_ctrl_M905"] = 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 12,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 10,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{HB_ALQ-131_ON_ADAPTER_IN_AERO7}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 2,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 4,
|
||||||
|
["settings"] = {
|
||||||
|
["EAS_bypass_ctrl"] = 1,
|
||||||
|
["NFP_rfgu_type"] = 1,
|
||||||
|
["rf_lower_limit_ctrl_Mk22Mod2"] = 4800000000,
|
||||||
|
["rf_upper_limit_ctrl_Mk22Mod2"] = 5200000000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{HB_F4E_MK-82_Snakeye_6x}",
|
||||||
|
["num"] = 1,
|
||||||
|
["settings"] = {
|
||||||
|
["NFP_VIS_DrawArgNo_57"] = 0,
|
||||||
|
["NFP_fuze_type_nose"] = "M904E4",
|
||||||
|
["NFP_fuze_type_tail"] = "M905",
|
||||||
|
["arm_delay_ctrl_M904E4"] = 2,
|
||||||
|
["arm_delay_ctrl_M905"] = 4,
|
||||||
|
["function_delay_ctrl_M904E4"] = 0,
|
||||||
|
["function_delay_ctrl_M905"] = 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[10] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[11] = {
|
||||||
|
["CLSID"] = "{HB_F4E_AIM-7M}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[12] = {
|
||||||
|
["CLSID"] = "{F4_SARGENT_TANK_600_GAL}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[13] = {
|
||||||
|
["CLSID"] = "{HB_F4E_MK-82_Snakeye_3x}",
|
||||||
|
["num"] = 11,
|
||||||
|
["settings"] = {
|
||||||
|
["NFP_VIS_DrawArgNo_57"] = 0,
|
||||||
|
["NFP_fuze_type_nose"] = "M904E4",
|
||||||
|
["NFP_fuze_type_tail"] = "M905",
|
||||||
|
["arm_delay_ctrl_M904E4"] = 2,
|
||||||
|
["arm_delay_ctrl_M905"] = 4,
|
||||||
|
["function_delay_ctrl_M904E4"] = 0,
|
||||||
|
["function_delay_ctrl_M905"] = 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[14] = {
|
||||||
|
["CLSID"] = "{HB_F4E_MK-82_Snakeye_3x}",
|
||||||
|
["num"] = 3,
|
||||||
|
["settings"] = {
|
||||||
|
["NFP_VIS_DrawArgNo_57"] = 0,
|
||||||
|
["NFP_fuze_type_nose"] = "M904E4",
|
||||||
|
["NFP_fuze_type_tail"] = "M905",
|
||||||
|
["arm_delay_ctrl_M904E4"] = 2,
|
||||||
|
["arm_delay_ctrl_M905"] = 4,
|
||||||
|
["function_delay_ctrl_M904E4"] = 0,
|
||||||
|
["function_delay_ctrl_M905"] = 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
},
|
||||||
|
["unitType"] = "F-4E-45MC",
|
||||||
|
}
|
||||||
|
return unitPayloads
|
||||||
463
resources/customized_payloads/FA-18E.lua
Normal file
463
resources/customized_payloads/FA-18E.lua
Normal file
@@ -0,0 +1,463 @@
|
|||||||
|
local unitPayloads = {
|
||||||
|
["name"] = "FA-18E",
|
||||||
|
["payloads"] = {
|
||||||
|
[1] = {
|
||||||
|
["displayName"] = "Retribution SEAD",
|
||||||
|
["name"] = "Retribution SEAD",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["displayName"] = "Retribution BARCAP",
|
||||||
|
["name"] = "Retribution BARCAP",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "LAU-115_2*LAU-127_AIM-120C",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "LAU-115_2*LAU-127_AIM-120C",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
[10] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 10,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["displayName"] = "Retribution TARCAP/Escort",
|
||||||
|
["name"] = "Retribution TARCAP/Escort",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "LAU-115_2*LAU-127_AIM-120C",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "LAU-115_2*LAU-127_AIM-120C",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["displayName"] = "Retribution Anti-ship",
|
||||||
|
["name"] = "Retribution Anti-ship",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{AGM_84D}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{AGM_84D}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["displayName"] = "Retribution BAI",
|
||||||
|
["name"] = "Retribution BAI",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "LAU_117_AGM_65F",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "LAU_117_AGM_65F",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "LAU_117_AGM_65F",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "LAU_117_AGM_65F",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["displayName"] = "Retribution CAS",
|
||||||
|
["name"] = "Retribution CAS",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "LAU_117_AGM_65F",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{GBU_32_V_2B}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{GBU_32_V_2B}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "LAU_117_AGM_65F",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["displayName"] = "Retribution OCA/Runway",
|
||||||
|
["name"] = "Retribution OCA/Runway",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{GBU_31_V_4B}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{GBU_31_V_4B}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["displayName"] = "Retribution DEAD",
|
||||||
|
["name"] = "Retribution DEAD",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{AGM-154A}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{AGM-154A}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{AGM-154A}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{AGM-154A}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["displayName"] = "Retribution Strike",
|
||||||
|
["name"] = "Retribution Strike",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{GBU_32_V_2B}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{GBU_32_V_2B}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{GBU_32_V_2B}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{GBU_32_V_2B}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[10] = {
|
||||||
|
["displayName"] = "Retribution OCA/aircraft",
|
||||||
|
["name"] = "Retribution OCA/aircraft",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{BRU33_2X_CBU-99}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{BRU33_2X_CBU-99}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
},
|
||||||
|
["unitType"] = "FA-18E",
|
||||||
|
}
|
||||||
|
return unitPayloads
|
||||||
463
resources/customized_payloads/FA-18F.lua
Normal file
463
resources/customized_payloads/FA-18F.lua
Normal file
@@ -0,0 +1,463 @@
|
|||||||
|
local unitPayloads = {
|
||||||
|
["name"] = "FA-18F",
|
||||||
|
["payloads"] = {
|
||||||
|
[1] = {
|
||||||
|
["displayName"] = "Retribution SEAD",
|
||||||
|
["name"] = "Retribution SEAD",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["displayName"] = "Retribution BARCAP",
|
||||||
|
["name"] = "Retribution BARCAP",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "LAU-115_2*LAU-127_AIM-120C",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "LAU-115_2*LAU-127_AIM-120C",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "<CLEAN>",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
[10] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 10,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["displayName"] = "Retribution TARCAP/Escort",
|
||||||
|
["name"] = "Retribution TARCAP/Escort",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "LAU-115_2*LAU-127_AIM-120C",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "LAU-115_2*LAU-127_AIM-120C",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["displayName"] = "Retribution Anti-ship",
|
||||||
|
["name"] = "Retribution Anti-ship",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{AGM_84D}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{AGM_84D}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["displayName"] = "Retribution BAI",
|
||||||
|
["name"] = "Retribution BAI",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "LAU_117_AGM_65F",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "LAU_117_AGM_65F",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "LAU_117_AGM_65F",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "LAU_117_AGM_65F",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["displayName"] = "Retribution CAS",
|
||||||
|
["name"] = "Retribution CAS",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "LAU_117_AGM_65F",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{GBU_32_V_2B}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{GBU_32_V_2B}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "LAU_117_AGM_65F",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["displayName"] = "Retribution OCA/Runway",
|
||||||
|
["name"] = "Retribution OCA/Runway",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{GBU_31_V_4B}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{GBU_31_V_4B}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["displayName"] = "Retribution DEAD",
|
||||||
|
["name"] = "Retribution DEAD",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{AGM-154A}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{AGM-154A}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{AGM-154A}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{AGM-154A}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["displayName"] = "Retribution Strike",
|
||||||
|
["name"] = "Retribution Strike",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{GBU_32_V_2B}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{GBU_32_V_2B}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{GBU_32_V_2B}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{GBU_32_V_2B}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[10] = {
|
||||||
|
["displayName"] = "Retribution OCA/aircraft",
|
||||||
|
["name"] = "Retribution OCA/aircraft",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 9,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 8,
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["CLSID"] = "{BRU33_2X_CBU-99}",
|
||||||
|
["num"] = 7,
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 6,
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["CLSID"] = "{AN_ASQ_228}",
|
||||||
|
["num"] = 4,
|
||||||
|
},
|
||||||
|
[6] = {
|
||||||
|
["CLSID"] = "{BRU33_2X_CBU-99}",
|
||||||
|
["num"] = 3,
|
||||||
|
},
|
||||||
|
[7] = {
|
||||||
|
["CLSID"] = "{FPU_12_FUEL_TANK}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[8] = {
|
||||||
|
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||||
|
["num"] = 2,
|
||||||
|
},
|
||||||
|
[9] = {
|
||||||
|
["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
},
|
||||||
|
["unitType"] = "FA-18F",
|
||||||
|
}
|
||||||
|
return unitPayloads
|
||||||
101
resources/customized_payloads/OH58D.lua
Normal file
101
resources/customized_payloads/OH58D.lua
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
local unitPayloads = {
|
||||||
|
["name"] = "OH58D",
|
||||||
|
["payloads"] = {
|
||||||
|
[1] = {
|
||||||
|
["name"] = "Liberation CAS",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "OH58D_AGM_114_R",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "OH58D_M3P_L500",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 16,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["displayName"] = "Liberation DEAD",
|
||||||
|
["name"] = "Liberation DEAD",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "OH58D_AGM_114_R",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "OH58D_AGM_114_L",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 16,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[3] = {
|
||||||
|
["displayName"] = "Liberation BAI",
|
||||||
|
["name"] = "Liberation BAI",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "OH58D_AGM_114_R",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{M260_APKWS_M151}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 16,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[4] = {
|
||||||
|
["displayName"] = "Liberation OCA/Aircraft",
|
||||||
|
["name"] = "Liberation OCA/Aircraft",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "{M260_APKWS_M151}",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "{M260_APKWS_M151}",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 16,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[5] = {
|
||||||
|
["displayName"] = "Liberation Escort",
|
||||||
|
["name"] = "Liberation Escort",
|
||||||
|
["pylons"] = {
|
||||||
|
[1] = {
|
||||||
|
["CLSID"] = "OH58D_AGM_114_R",
|
||||||
|
["num"] = 5,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
["CLSID"] = "OH58D_FIM_92_L",
|
||||||
|
["num"] = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 16,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["tasks"] = {
|
||||||
|
[1] = 11,
|
||||||
|
[2] = 31,
|
||||||
|
[3] = 32,
|
||||||
|
[4] = 16,
|
||||||
|
[5] = 18,
|
||||||
|
[6] = 35,
|
||||||
|
[7] = 30,
|
||||||
|
[8] = 17,
|
||||||
|
},
|
||||||
|
["unitType"] = "OH58D",
|
||||||
|
}
|
||||||
|
return unitPayloads
|
||||||
@@ -10,11 +10,11 @@ local unitPayloads = {
|
|||||||
},
|
},
|
||||||
[2] = {
|
[2] = {
|
||||||
["CLSID"] = "{IR_Deflector}",
|
["CLSID"] = "{IR_Deflector}",
|
||||||
["num"] = 6,
|
["num"] = 4,
|
||||||
},
|
},
|
||||||
[3] = {
|
[3] = {
|
||||||
["CLSID"] = "{FAS}",
|
["CLSID"] = "{FAS}",
|
||||||
["num"] = 5,
|
["num"] = 3,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
["tasks"] = {
|
["tasks"] = {
|
||||||
@@ -30,11 +30,11 @@ local unitPayloads = {
|
|||||||
},
|
},
|
||||||
[2] = {
|
[2] = {
|
||||||
["CLSID"] = "{IR_Deflector}",
|
["CLSID"] = "{IR_Deflector}",
|
||||||
["num"] = 6,
|
["num"] = 4,
|
||||||
},
|
},
|
||||||
[3] = {
|
[3] = {
|
||||||
["CLSID"] = "{FAS}",
|
["CLSID"] = "{FAS}",
|
||||||
["num"] = 5,
|
["num"] = 3,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
["tasks"] = {
|
["tasks"] = {
|
||||||
@@ -50,11 +50,11 @@ local unitPayloads = {
|
|||||||
},
|
},
|
||||||
[2] = {
|
[2] = {
|
||||||
["CLSID"] = "{IR_Deflector}",
|
["CLSID"] = "{IR_Deflector}",
|
||||||
["num"] = 6,
|
["num"] = 4,
|
||||||
},
|
},
|
||||||
[3] = {
|
[3] = {
|
||||||
["CLSID"] = "{FAS}",
|
["CLSID"] = "{FAS}",
|
||||||
["num"] = 5,
|
["num"] = 3,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
["tasks"] = {
|
["tasks"] = {
|
||||||
@@ -70,11 +70,11 @@ local unitPayloads = {
|
|||||||
},
|
},
|
||||||
[2] = {
|
[2] = {
|
||||||
["CLSID"] = "{IR_Deflector}",
|
["CLSID"] = "{IR_Deflector}",
|
||||||
["num"] = 6,
|
["num"] = 4,
|
||||||
},
|
},
|
||||||
[3] = {
|
[3] = {
|
||||||
["CLSID"] = "{FAS}",
|
["CLSID"] = "{FAS}",
|
||||||
["num"] = 5,
|
["num"] = 3,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
["tasks"] = {
|
["tasks"] = {
|
||||||
@@ -90,11 +90,11 @@ local unitPayloads = {
|
|||||||
},
|
},
|
||||||
[2] = {
|
[2] = {
|
||||||
["CLSID"] = "{IR_Deflector}",
|
["CLSID"] = "{IR_Deflector}",
|
||||||
["num"] = 6,
|
["num"] = 4,
|
||||||
},
|
},
|
||||||
[3] = {
|
[3] = {
|
||||||
["CLSID"] = "{FAS}",
|
["CLSID"] = "{FAS}",
|
||||||
["num"] = 5,
|
["num"] = 3,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
["tasks"] = {
|
["tasks"] = {
|
||||||
|
|||||||
@@ -5,28 +5,20 @@ local unitPayloads = {
|
|||||||
["name"] = "CAS",
|
["name"] = "CAS",
|
||||||
["pylons"] = {
|
["pylons"] = {
|
||||||
[1] = {
|
[1] = {
|
||||||
["CLSID"] = "{HOT3D}",
|
["CLSID"] = "{HOT3_R2_M}",
|
||||||
["num"] = 1,
|
["num"] = 1,
|
||||||
},
|
},
|
||||||
[2] = {
|
[2] = {
|
||||||
["CLSID"] = "{HOT3G}",
|
["CLSID"] = "{HOT3_L2_M}",
|
||||||
["num"] = 2,
|
["num"] = 2,
|
||||||
},
|
},
|
||||||
[3] = {
|
[3] = {
|
||||||
["CLSID"] = "{HOT3D}",
|
["CLSID"] = "{FAS}",
|
||||||
["num"] = 3,
|
["num"] = 3,
|
||||||
},
|
},
|
||||||
[4] = {
|
[4] = {
|
||||||
["CLSID"] = "{HOT3G}",
|
|
||||||
["num"] = 4,
|
|
||||||
},
|
|
||||||
[5] = {
|
|
||||||
["CLSID"] = "{FAS}",
|
|
||||||
["num"] = 5,
|
|
||||||
},
|
|
||||||
[6] = {
|
|
||||||
["CLSID"] = "{IR_Deflector}",
|
["CLSID"] = "{IR_Deflector}",
|
||||||
["num"] = 6,
|
["num"] = 4,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
["tasks"] = {
|
["tasks"] = {
|
||||||
@@ -37,28 +29,20 @@ local unitPayloads = {
|
|||||||
["name"] = "CAP",
|
["name"] = "CAP",
|
||||||
["pylons"] = {
|
["pylons"] = {
|
||||||
[1] = {
|
[1] = {
|
||||||
["CLSID"] = "{HOT3D}",
|
["CLSID"] = "{HOT3_R2_M}",
|
||||||
["num"] = 1,
|
["num"] = 1,
|
||||||
},
|
},
|
||||||
[2] = {
|
[2] = {
|
||||||
["CLSID"] = "{HOT3G}",
|
["CLSID"] = "{HOT3_L2_M}",
|
||||||
["num"] = 2,
|
["num"] = 2,
|
||||||
},
|
},
|
||||||
[3] = {
|
[3] = {
|
||||||
["CLSID"] = "{HOT3D}",
|
["CLSID"] = "{FAS}",
|
||||||
["num"] = 3,
|
["num"] = 3,
|
||||||
},
|
},
|
||||||
[4] = {
|
[4] = {
|
||||||
["CLSID"] = "{HOT3G}",
|
|
||||||
["num"] = 4,
|
|
||||||
},
|
|
||||||
[5] = {
|
|
||||||
["CLSID"] = "{FAS}",
|
|
||||||
["num"] = 5,
|
|
||||||
},
|
|
||||||
[6] = {
|
|
||||||
["CLSID"] = "{IR_Deflector}",
|
["CLSID"] = "{IR_Deflector}",
|
||||||
["num"] = 6,
|
["num"] = 4,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
["tasks"] = {
|
["tasks"] = {
|
||||||
@@ -69,28 +53,20 @@ local unitPayloads = {
|
|||||||
["name"] = "STRIKE",
|
["name"] = "STRIKE",
|
||||||
["pylons"] = {
|
["pylons"] = {
|
||||||
[1] = {
|
[1] = {
|
||||||
["CLSID"] = "{HOT3D}",
|
["CLSID"] = "{HOT3_R2_M}",
|
||||||
["num"] = 1,
|
["num"] = 1,
|
||||||
},
|
},
|
||||||
[2] = {
|
[2] = {
|
||||||
["CLSID"] = "{HOT3G}",
|
["CLSID"] = "{HOT3_L2_M}",
|
||||||
["num"] = 2,
|
["num"] = 2,
|
||||||
},
|
},
|
||||||
[3] = {
|
[3] = {
|
||||||
["CLSID"] = "{HOT3D}",
|
["CLSID"] = "{FAS}",
|
||||||
["num"] = 3,
|
["num"] = 3,
|
||||||
},
|
},
|
||||||
[4] = {
|
[4] = {
|
||||||
["CLSID"] = "{HOT3G}",
|
|
||||||
["num"] = 4,
|
|
||||||
},
|
|
||||||
[5] = {
|
|
||||||
["CLSID"] = "{FAS}",
|
|
||||||
["num"] = 5,
|
|
||||||
},
|
|
||||||
[6] = {
|
|
||||||
["CLSID"] = "{IR_Deflector}",
|
["CLSID"] = "{IR_Deflector}",
|
||||||
["num"] = 6,
|
["num"] = 4,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
["tasks"] = {
|
["tasks"] = {
|
||||||
@@ -101,28 +77,20 @@ local unitPayloads = {
|
|||||||
["name"] = "SEAD",
|
["name"] = "SEAD",
|
||||||
["pylons"] = {
|
["pylons"] = {
|
||||||
[1] = {
|
[1] = {
|
||||||
["CLSID"] = "{HOT3D}",
|
["CLSID"] = "{HOT3_R2_M}",
|
||||||
["num"] = 1,
|
["num"] = 1,
|
||||||
},
|
},
|
||||||
[2] = {
|
[2] = {
|
||||||
["CLSID"] = "{HOT3G}",
|
["CLSID"] = "{HOT3_L2_M}",
|
||||||
["num"] = 2,
|
["num"] = 2,
|
||||||
},
|
},
|
||||||
[3] = {
|
[3] = {
|
||||||
["CLSID"] = "{HOT3D}",
|
["CLSID"] = "{FAS}",
|
||||||
["num"] = 3,
|
["num"] = 3,
|
||||||
},
|
},
|
||||||
[4] = {
|
[4] = {
|
||||||
["CLSID"] = "{HOT3G}",
|
|
||||||
["num"] = 4,
|
|
||||||
},
|
|
||||||
[5] = {
|
|
||||||
["CLSID"] = "{FAS}",
|
|
||||||
["num"] = 5,
|
|
||||||
},
|
|
||||||
[6] = {
|
|
||||||
["CLSID"] = "{IR_Deflector}",
|
["CLSID"] = "{IR_Deflector}",
|
||||||
["num"] = 6,
|
["num"] = 4,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
["tasks"] = {
|
["tasks"] = {
|
||||||
@@ -133,28 +101,20 @@ local unitPayloads = {
|
|||||||
["name"] = "ANTISHIP",
|
["name"] = "ANTISHIP",
|
||||||
["pylons"] = {
|
["pylons"] = {
|
||||||
[1] = {
|
[1] = {
|
||||||
["CLSID"] = "{HOT3D}",
|
["CLSID"] = "{HOT3_R2_M}",
|
||||||
["num"] = 1,
|
["num"] = 1,
|
||||||
},
|
},
|
||||||
[2] = {
|
[2] = {
|
||||||
["CLSID"] = "{HOT3G}",
|
["CLSID"] = "{HOT3_L2_M}",
|
||||||
["num"] = 2,
|
["num"] = 2,
|
||||||
},
|
},
|
||||||
[3] = {
|
[3] = {
|
||||||
["CLSID"] = "{HOT3D}",
|
["CLSID"] = "{FAS}",
|
||||||
["num"] = 3,
|
["num"] = 3,
|
||||||
},
|
},
|
||||||
[4] = {
|
[4] = {
|
||||||
["CLSID"] = "{HOT3G}",
|
|
||||||
["num"] = 4,
|
|
||||||
},
|
|
||||||
[5] = {
|
|
||||||
["CLSID"] = "{FAS}",
|
|
||||||
["num"] = 5,
|
|
||||||
},
|
|
||||||
[6] = {
|
|
||||||
["CLSID"] = "{IR_Deflector}",
|
["CLSID"] = "{IR_Deflector}",
|
||||||
["num"] = 6,
|
["num"] = 4,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
["tasks"] = {
|
["tasks"] = {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ local unitPayloads = {
|
|||||||
["pylons"] = {
|
["pylons"] = {
|
||||||
[1] = {
|
[1] = {
|
||||||
["CLSID"] = "{IR_Deflector}",
|
["CLSID"] = "{IR_Deflector}",
|
||||||
["num"] = 6,
|
["num"] = 4,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
["tasks"] = {
|
["tasks"] = {
|
||||||
@@ -19,7 +19,7 @@ local unitPayloads = {
|
|||||||
["pylons"] = {
|
["pylons"] = {
|
||||||
[1] = {
|
[1] = {
|
||||||
["CLSID"] = "{IR_Deflector}",
|
["CLSID"] = "{IR_Deflector}",
|
||||||
["num"] = 6,
|
["num"] = 4,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
["tasks"] = {
|
["tasks"] = {
|
||||||
|
|||||||
@@ -91,11 +91,11 @@ local unitPayloads = {
|
|||||||
["name"] = "SEAD",
|
["name"] = "SEAD",
|
||||||
["pylons"] = {
|
["pylons"] = {
|
||||||
[1] = {
|
[1] = {
|
||||||
["CLSID"] = "{3E6B632D-65EB-44D2-9501-1C2D04515404}",
|
["CLSID"] = "{AGM_45A}",
|
||||||
["num"] = 9,
|
["num"] = 9,
|
||||||
},
|
},
|
||||||
[2] = {
|
[2] = {
|
||||||
["CLSID"] = "{3E6B632D-65EB-44D2-9501-1C2D04515404}",
|
["CLSID"] = "{AGM_45A}",
|
||||||
["num"] = 3,
|
["num"] = 3,
|
||||||
},
|
},
|
||||||
[3] = {
|
[3] = {
|
||||||
|
|||||||
@@ -90,6 +90,13 @@
|
|||||||
"hertz": 343000,
|
"hertz": 343000,
|
||||||
"channel": null
|
"channel": null
|
||||||
},
|
},
|
||||||
|
"world_13": {
|
||||||
|
"name": "GHI",
|
||||||
|
"callsign": "GHI",
|
||||||
|
"beacon_type": 5,
|
||||||
|
"hertz": 113800000,
|
||||||
|
"channel": 85
|
||||||
|
},
|
||||||
"airfield2_0": {
|
"airfield2_0": {
|
||||||
"name": "",
|
"name": "",
|
||||||
"callsign": "IADA",
|
"callsign": "IADA",
|
||||||
@@ -146,6 +153,20 @@
|
|||||||
"hertz": 365000,
|
"hertz": 365000,
|
||||||
"channel": null
|
"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": {
|
"airfield6_0": {
|
||||||
"name": "KALDE",
|
"name": "KALDE",
|
||||||
"callsign": "KAD",
|
"callsign": "KAD",
|
||||||
@@ -233,8 +254,8 @@
|
|||||||
"airfield7_4": {
|
"airfield7_4": {
|
||||||
"name": "DAMASCUS",
|
"name": "DAMASCUS",
|
||||||
"callsign": "DAL",
|
"callsign": "DAL",
|
||||||
"beacon_type": 10,
|
"beacon_type": 9,
|
||||||
"hertz": 342000000,
|
"hertz": 342000,
|
||||||
"channel": null
|
"channel": null
|
||||||
},
|
},
|
||||||
"airfield7_5": {
|
"airfield7_5": {
|
||||||
@@ -317,8 +338,8 @@
|
|||||||
"airfield41_1": {
|
"airfield41_1": {
|
||||||
"name": "ALANYA/GAZIPASA",
|
"name": "ALANYA/GAZIPASA",
|
||||||
"callsign": "GZP",
|
"callsign": "GZP",
|
||||||
"beacon_type": 2,
|
"beacon_type": 3,
|
||||||
"hertz": 0,
|
"hertz": 114200000,
|
||||||
"channel": 89
|
"channel": 89
|
||||||
},
|
},
|
||||||
"airfield41_2": {
|
"airfield41_2": {
|
||||||
@@ -405,6 +426,20 @@
|
|||||||
"hertz": 111700000,
|
"hertz": 111700000,
|
||||||
"channel": null
|
"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": {
|
"airfield47_0": {
|
||||||
"name": "",
|
"name": "",
|
||||||
"callsign": "ILC",
|
"callsign": "ILC",
|
||||||
@@ -468,6 +503,34 @@
|
|||||||
"hertz": 358000,
|
"hertz": 358000,
|
||||||
"channel": null
|
"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": {
|
"airfield27_0": {
|
||||||
"name": "ALEPPO",
|
"name": "ALEPPO",
|
||||||
"callsign": "ALE",
|
"callsign": "ALE",
|
||||||
@@ -545,6 +608,27 @@
|
|||||||
"hertz": null,
|
"hertz": null,
|
||||||
"channel": 79
|
"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": {
|
"airfield30_0": {
|
||||||
"name": "RAMATDAVID",
|
"name": "RAMATDAVID",
|
||||||
"callsign": "RMD",
|
"callsign": "RMD",
|
||||||
@@ -580,6 +664,20 @@
|
|||||||
"hertz": 115300000,
|
"hertz": 115300000,
|
||||||
"channel": null
|
"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": {
|
"airfield40_0": {
|
||||||
"name": "Cheka",
|
"name": "Cheka",
|
||||||
"callsign": "CAK",
|
"callsign": "CAK",
|
||||||
|
|||||||
@@ -1,27 +1,24 @@
|
|||||||
name: coldwar
|
name: coldwar
|
||||||
cap: true
|
|
||||||
cas: true
|
|
||||||
sead: true
|
|
||||||
strike: true
|
|
||||||
antiship: true
|
|
||||||
rendezvous_altitude_ft_msl: 22000
|
|
||||||
hold_distance_nm: 15
|
hold_distance_nm: 15
|
||||||
push_distance_nm: 10
|
push_distance_nm: 10
|
||||||
join_distance_nm: 10
|
join_distance_nm: 10
|
||||||
max_ingress_distance_nm: 30
|
max_ingress_distance_nm: 30
|
||||||
min_ingress_distance_nm: 10
|
min_ingress_distance_nm: 10
|
||||||
ingress_altitude_ft_msl: 18000
|
rendezvous_altitude_ft_msl: 22000
|
||||||
min_patrol_altitude_ft_msl: 10000
|
combat_altitude_ft_msl: 18000
|
||||||
max_patrol_altitude_ft_msl: 24000
|
cap:
|
||||||
pattern_altitude_ft_msl: 5000
|
duration_minutes: 30
|
||||||
cap_duration_minutes: 30
|
min_track_length_nm: 12
|
||||||
cap_min_track_length_nm: 12
|
max_track_length_nm: 24
|
||||||
cap_max_track_length_nm: 24
|
min_distance_from_cp_nm: 8
|
||||||
cap_min_distance_from_cp_nm: 8
|
max_distance_from_cp_nm: 25
|
||||||
cap_max_distance_from_cp_nm: 25
|
engagement_range_nm: 35
|
||||||
cap_engagement_range_nm: 35
|
min_patrol_altitude_ft_msl: 10000
|
||||||
cas_duration_minutes: 30
|
max_patrol_altitude_ft_msl: 24000
|
||||||
sweep_distance_nm: 40
|
cas:
|
||||||
|
duration_minutes: 30
|
||||||
|
sweep:
|
||||||
|
distance_nm: 40
|
||||||
ground_unit_procurement_ratios:
|
ground_unit_procurement_ratios:
|
||||||
Tank: 4
|
Tank: 4
|
||||||
ATGM: 2
|
ATGM: 2
|
||||||
@@ -30,3 +27,8 @@ ground_unit_procurement_ratios:
|
|||||||
Artillery: 1
|
Artillery: 1
|
||||||
SHORAD: 2
|
SHORAD: 2
|
||||||
Recon: 1
|
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
|
name: modern
|
||||||
cap: true
|
|
||||||
cas: true
|
|
||||||
sead: true
|
|
||||||
strike: true
|
|
||||||
antiship: true
|
|
||||||
rendezvous_altitude_ft_msl: 25000
|
|
||||||
hold_distance_nm: 25
|
hold_distance_nm: 25
|
||||||
push_distance_nm: 20
|
push_distance_nm: 20
|
||||||
join_distance_nm: 20
|
join_distance_nm: 20
|
||||||
max_ingress_distance_nm: 45
|
max_ingress_distance_nm: 45
|
||||||
min_ingress_distance_nm: 10
|
min_ingress_distance_nm: 10
|
||||||
ingress_altitude_ft_msl: 20000
|
rendezvous_altitude_ft_msl: 25000
|
||||||
min_patrol_altitude_ft_msl: 15000
|
combat_altitude_ft_msl: 20000
|
||||||
max_patrol_altitude_ft_msl: 33000
|
cap:
|
||||||
pattern_altitude_ft_msl: 5000
|
duration_minutes: 30
|
||||||
cap_duration_minutes: 30
|
min_track_length_nm: 15
|
||||||
cap_min_track_length_nm: 15
|
max_track_length_nm: 40
|
||||||
cap_max_track_length_nm: 40
|
min_distance_from_cp_nm: 10
|
||||||
cap_min_distance_from_cp_nm: 10
|
max_distance_from_cp_nm: 40
|
||||||
cap_max_distance_from_cp_nm: 40
|
engagement_range_nm: 50
|
||||||
cap_engagement_range_nm: 50
|
min_patrol_altitude_ft_msl: 15000
|
||||||
cas_duration_minutes: 30
|
max_patrol_altitude_ft_msl: 33000
|
||||||
sweep_distance_nm: 60
|
cas:
|
||||||
|
duration_minutes: 30
|
||||||
|
sweep:
|
||||||
|
distance_nm: 60
|
||||||
ground_unit_procurement_ratios:
|
ground_unit_procurement_ratios:
|
||||||
Tank: 3
|
Tank: 3
|
||||||
ATGM: 2
|
ATGM: 2
|
||||||
@@ -30,3 +27,7 @@ ground_unit_procurement_ratios:
|
|||||||
Artillery: 1
|
Artillery: 1
|
||||||
SHORAD: 2
|
SHORAD: 2
|
||||||
Recon: 1
|
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
|
name: ww2
|
||||||
cap: true
|
|
||||||
cas: true
|
|
||||||
sead: false
|
|
||||||
strike: true
|
|
||||||
antiship: true
|
|
||||||
hold_distance_nm: 10
|
hold_distance_nm: 10
|
||||||
push_distance_nm: 5
|
push_distance_nm: 5
|
||||||
join_distance_nm: 5
|
join_distance_nm: 5
|
||||||
rendezvous_altitude_ft_msl: 10000
|
|
||||||
max_ingress_distance_nm: 7
|
max_ingress_distance_nm: 7
|
||||||
min_ingress_distance_nm: 5
|
min_ingress_distance_nm: 5
|
||||||
ingress_altitude_ft_msl: 8000
|
rendezvous_altitude_ft_msl: 10000
|
||||||
min_patrol_altitude_ft_msl: 4000
|
combat_altitude_ft_msl: 8000
|
||||||
max_patrol_altitude_ft_msl: 15000
|
cap:
|
||||||
pattern_altitude_ft_msl: 5000
|
duration_minutes: 30
|
||||||
cap_duration_minutes: 30
|
min_track_length_nm: 8
|
||||||
cap_min_track_length_nm: 8
|
max_track_length_nm: 18
|
||||||
cap_max_track_length_nm: 18
|
min_distance_from_cp_nm: 0
|
||||||
cap_min_distance_from_cp_nm: 0
|
max_distance_from_cp_nm: 5
|
||||||
cap_max_distance_from_cp_nm: 5
|
engagement_range_nm: 20
|
||||||
cap_engagement_range_nm: 20
|
min_patrol_altitude_ft_msl: 4000
|
||||||
cas_duration_minutes: 30
|
max_patrol_altitude_ft_msl: 15000
|
||||||
sweep_distance_nm: 10
|
cas:
|
||||||
|
duration_minutes: 30
|
||||||
|
sweep:
|
||||||
|
distance_nm: 10
|
||||||
ground_unit_procurement_ratios:
|
ground_unit_procurement_ratios:
|
||||||
Tank: 3
|
Tank: 3
|
||||||
ATGM: 3
|
ATGM: 3
|
||||||
@@ -29,3 +26,7 @@ ground_unit_procurement_ratios:
|
|||||||
Artillery: 1
|
Artillery: 1
|
||||||
SHORAD: 3
|
SHORAD: 3
|
||||||
Recon: 1
|
Recon: 1
|
||||||
|
helicopter:
|
||||||
|
combat_altitude_ft_agl: 200
|
||||||
|
rendezvous_altitude_ft_agl: 1500
|
||||||
|
air_assault_nav_altitude_ft_agl: 1500
|
||||||
|
|||||||
@@ -21,9 +21,11 @@ aircrafts:
|
|||||||
- F-15E Strike Eagle (Suite 4+)
|
- F-15E Strike Eagle (Suite 4+)
|
||||||
- F-16CM Fighting Falcon (Block 50)
|
- F-16CM Fighting Falcon (Block 50)
|
||||||
- F-4E Phantom II
|
- F-4E Phantom II
|
||||||
|
- F-4E-45MC Phantom II
|
||||||
- F/A-18C Hornet (Lot 20)
|
- F/A-18C Hornet (Lot 20)
|
||||||
- Mirage 2000C
|
- Mirage 2000C
|
||||||
- OH-58D Kiowa Warrior
|
- OH-58D Kiowa Warrior
|
||||||
|
- OH-58D(R) Kiowa Warrior
|
||||||
- S-3B Viking
|
- S-3B Viking
|
||||||
- SA 342L Gazelle
|
- SA 342L Gazelle
|
||||||
- SA 342M Gazelle
|
- SA 342M Gazelle
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ aircrafts:
|
|||||||
- F/A-18C Hornet (Lot 20)
|
- F/A-18C Hornet (Lot 20)
|
||||||
- Mirage 2000C
|
- Mirage 2000C
|
||||||
- OH-58D Kiowa Warrior
|
- OH-58D Kiowa Warrior
|
||||||
|
- OH-58D(R) Kiowa Warrior
|
||||||
- S-3B Viking
|
- S-3B Viking
|
||||||
- SA 342L Gazelle
|
- SA 342L Gazelle
|
||||||
- SA 342M Gazelle
|
- SA 342M Gazelle
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
---
|
|
||||||
country: Australia
|
country: Australia
|
||||||
name: Australia 2005
|
name: Australia 2005
|
||||||
authors: Khopa, SpaceEnthusiast
|
authors: 'Khopa, SpaceEnthusiast'
|
||||||
description:
|
description: >-
|
||||||
<p>The Australian army in 2005.</p><p>Some units might not be accurate,
|
<p>The Australian army in 2005.</p><p>Some units might not be accurate, but
|
||||||
but were picked to represent at best this army.</p>
|
were picked to represent at best this army.</p>
|
||||||
aircrafts:
|
aircrafts:
|
||||||
- AH-1W SuperCobra
|
- AH-1W SuperCobra
|
||||||
- C-130J-30 Super Hercules
|
- C-130J-30 Super Hercules
|
||||||
@@ -39,7 +38,7 @@ missiles: []
|
|||||||
air_defense_units:
|
air_defense_units:
|
||||||
- SAM Hawk SR (AN/MPQ-50)
|
- SAM Hawk SR (AN/MPQ-50)
|
||||||
requirements:
|
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: []
|
carrier_names: []
|
||||||
helicopter_carrier_names:
|
helicopter_carrier_names:
|
||||||
- HMAS Canberra
|
- HMAS Canberra
|
||||||
|
|||||||
54
resources/factions/australia_2009.yaml
Normal file
54
resources/factions/australia_2009.yaml
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
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
|
||||||
@@ -13,6 +13,7 @@ aircrafts:
|
|||||||
- F-14A Tomcat (Block 135-GR Late)
|
- F-14A Tomcat (Block 135-GR Late)
|
||||||
- F-14B Tomcat
|
- F-14B Tomcat
|
||||||
- F-4E Phantom II
|
- F-4E Phantom II
|
||||||
|
- F-4E-45MC Phantom II
|
||||||
- F-5E Tiger II
|
- F-5E Tiger II
|
||||||
- Mirage-F1B
|
- Mirage-F1B
|
||||||
- Mirage-F1BE
|
- Mirage-F1BE
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ aircrafts:
|
|||||||
- Mi-24P Hind-F
|
- Mi-24P Hind-F
|
||||||
- Mi-8MTV2 Hip
|
- Mi-8MTV2 Hip
|
||||||
- MiG-29S Fulcrum-C
|
- MiG-29S Fulcrum-C
|
||||||
|
- OH-58D(R) Kiowa Warrior
|
||||||
- SA 342L Gazelle
|
- SA 342L Gazelle
|
||||||
- SA 342M Gazelle
|
- SA 342M Gazelle
|
||||||
- Su-25T Frogfoot
|
- Su-25T Frogfoot
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user