Merge remote-tracking branch 'remotes/dcs-retribution/dcs-retribution/dev' into pretense-generator

This commit is contained in:
MetalStormGhost 2024-06-09 20:25:55 +03:00
commit 7eb2c59b86
91 changed files with 1369 additions and 187 deletions

View File

@ -17,6 +17,7 @@
* **[ATO]** Allow planning as OPFOR
* **[Campaign Design]** Support for Kola map by Orbx
* **[UI]** Zoom level retained when switching campaigns
* **[UX]** Allow changing squadrons in flight's edit dialog
## Fixes
* **[UI/UX]** A-10A flights can be edited again

View File

@ -1,8 +1,9 @@
from __future__ import annotations
from copy import deepcopy
from dataclasses import dataclass, field
from datetime import datetime
from typing import Literal, TYPE_CHECKING
from typing import Literal, TYPE_CHECKING, Any, Dict, Optional
from dcs import Point
@ -56,3 +57,17 @@ class FlightWaypoint:
def __hash__(self) -> int:
return hash(id(self))
def __deepcopy__(self, memo: Optional[Dict[int, Any]] = None) -> FlightWaypoint:
obj = FlightWaypoint(self.name, self.waypoint_type, self.position)
for attr in dir(self):
if attr == "control_point":
obj.control_point = self.control_point
elif attr == "targets":
obj.targets = self.targets
elif "__" in attr or attr not in obj.__dataclass_fields__:
continue
else:
attr_copy = deepcopy(getattr(self, attr))
setattr(obj, attr, attr_copy)
return obj

View File

@ -235,6 +235,7 @@ class Package(RadioFrequencyContainer):
clone.time_over_target = deepcopy(package.time_over_target)
for f in package.flights:
cf = Flight.clone_flight(f)
cf.flight_plan.layout = deepcopy(f.flight_plan.layout)
cf.package = clone
clone.add_flight(cf)
return clone

View File

@ -74,6 +74,8 @@ class MizCampaignLoader:
AirDefence.Hawk_ln.id,
AirDefence.S_75M_Volhov.id,
AirDefence.x_5p73_s_125_ln.id,
AirDefence.NASAMS_LN_B.id,
AirDefence.NASAMS_LN_C.id,
}
SHORT_RANGE_SAM_UNIT_TYPES = {

View File

@ -78,7 +78,11 @@ class PackageBuilder:
)
# If this is a client flight, set the start_type again to match the configured default
# https://github.com/dcs-liberation/dcs_liberation/issues/1567
if flight.roster is not None and flight.roster.player_count > 0:
if (
squadron.location.required_aircraft_start_type is None
and flight.roster is not None
and flight.roster.player_count > 0
):
flight.start_type = (
squadron.coalition.game.settings.default_start_type_client
)

View File

@ -133,6 +133,21 @@ class PackageFulfiller:
threats[EscortType.Sead] = True
return threats
def can_plan_escort(self, type: EscortType) -> bool:
if type == EscortType.AirToAir:
return self.air_wing_can_plan(FlightType.ESCORT)
elif type == EscortType.Sead:
for task in [
FlightType.SEAD,
FlightType.SEAD_ESCORT,
FlightType.SEAD_SWEEP,
]:
if self.air_wing_can_plan(task):
return True
elif type == EscortType.Refuel:
return self.air_wing_can_plan(FlightType.REFUELING)
return False
def plan_mission(
self,
mission: ProposedMission,
@ -207,7 +222,9 @@ class PackageFulfiller:
# This list was generated from the not None set, so this should be
# impossible.
assert escort.escort_type is not None
if needed_escorts[escort.escort_type]:
if needed_escorts[escort.escort_type] and self.can_plan_escort(
escort.escort_type
):
with tracer.trace("Flight planning"):
self.plan_flight(
mission, escort, builder, missing_types, purchase_multiplier

View File

@ -40,6 +40,7 @@ from game.radio.channels import (
ViperChannelNamer,
WarthogChannelNamer,
PhantomChannelNamer,
KiowaChannelNamer,
)
from game.utils import (
Distance,
@ -116,6 +117,7 @@ class RadioConfig:
"a10c-legacy": LegacyWarthogChannelNamer,
"a10c-ii": WarthogChannelNamer,
"phantom": PhantomChannelNamer,
"kiowa": KiowaChannelNamer,
}[config.get("namer", "default")]

View File

@ -119,7 +119,7 @@ class AircraftGenerator:
if not package.flights:
continue
for flight in package.flights:
if flight.alive:
if flight.alive and not isinstance(flight.state, Completed):
if not flight.squadron.location.runway_is_operational():
logging.warning(
f"Runway not operational, skipping flight: {flight.flight_type}"

View File

@ -93,7 +93,6 @@ class MigrationUnpickler(pickle.Unpickler):
except AttributeError:
alternate = name.split('.')[:-1] + [name.split('.')[-1][0].lower() + name.split('.')[-1][1:]]
name = '.'.join(alternate)
print(name)
return super().find_class(module, name)
# fmt: on

View File

@ -421,3 +421,16 @@ class PhantomChannelNamer(ChannelNamer):
@classmethod
def name(cls) -> str:
return "phantom"
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"

View File

@ -661,10 +661,16 @@ class PendingTransfers:
def _cancel_transport_air(
self, transport: Airlift, _transfer: TransferOrder
) -> None:
from game.sim import GameUpdateEvents
from game.server import EventStream
flight = transport.flight
flight.package.remove_flight(flight)
events = GameUpdateEvents().delete_flight(flight)
if not flight.package.flights:
self.game.ato_for(self.player).remove_package(flight.package)
events = events.delete_flights_in_package(flight.package)
EventStream().put_nowait(events)
@cancel_transport.register
def _cancel_transport_convoy(

View File

@ -1,5 +1,6 @@
"""Widgets for displaying air tasking orders."""
import logging
from copy import deepcopy
from typing import Optional
from PySide6.QtCore import (
@ -143,6 +144,7 @@ class QFlightList(QListView):
)
return
self.package_model.add_flight(clone)
clone.flight_plan.layout = deepcopy(flight.flight_plan.layout)
EventStream.put_nowait(GameUpdateEvents().new_flight(clone))
def cancel_or_abort_flight(self, index: QModelIndex) -> None:

View File

@ -121,6 +121,8 @@ class PendingTransfersDialog(QDialog):
) -> None:
"""Updates the state of the delete button."""
if selected.empty():
self.cancel_button.setEnabled(False)
self.cancel_button.setEnabled(
self.can_cancel(self.transfer_list.currentIndex())
)
return
self.cancel_button.setEnabled(self.can_cancel(selected.indexes()[0]))

View File

@ -26,6 +26,8 @@ class QEditFlightDialog(QDialog):
self.game_model = game_model
self.flight = flight
self.package_model = package_model
self.events = GameUpdateEvents()
self.setWindowTitle("Edit flight")
self.setWindowIcon(EVENT_ICONS["strike"])
@ -34,11 +36,24 @@ class QEditFlightDialog(QDialog):
layout = QVBoxLayout()
self.flight_planner = QFlightPlanner(package_model, flight, game_model)
self.flight_planner.squadron_changed.connect(self.on_squadron_change)
layout.addWidget(self.flight_planner)
self.setLayout(layout)
self.finished.connect(self.on_close)
def on_close(self, _result) -> None:
EventStream.put_nowait(GameUpdateEvents().update_flight(self.flight))
def on_squadron_change(self, flight: Flight):
self.events = GameUpdateEvents().delete_flight(self.flight)
self.events = self.events.new_flight(flight)
self.game_model.ato_model.client_slots_changed.emit()
self.flight = flight
self.reject()
new_dialog = QEditFlightDialog(
self.game_model, self.package_model, flight, self.parent()
)
new_dialog.show()
def on_close(self, _result) -> None:
self.events = self.events.update_flight(self.flight)
EventStream.put_nowait(self.events)
self.game_model.ato_model.client_slots_changed.emit()

View File

@ -1,3 +1,4 @@
from PySide6.QtCore import Signal
from PySide6.QtWidgets import QTabWidget
from game.ato.flight import Flight
@ -10,6 +11,8 @@ from qt_ui.windows.mission.flight.waypoints.QFlightWaypointTab import QFlightWay
class QFlightPlanner(QTabWidget):
squadron_changed = Signal(Flight)
def __init__(self, package_model: PackageModel, flight: Flight, gm: GameModel):
super().__init__()
@ -28,6 +31,7 @@ class QFlightPlanner(QTabWidget):
self.general_settings_tab.flight_size_changed.connect(
self.payload_tab.resize_for_flight
)
self.general_settings_tab.squadron_changed.connect(self.squadron_changed)
self.addTab(self.general_settings_tab, "General Flight settings")
self.addTab(self.payload_tab, "Payload")
self.addTab(self.waypoint_tab, "Waypoints")

View File

@ -11,14 +11,21 @@ from PySide6.QtWidgets import (
QHBoxLayout,
QCheckBox,
QVBoxLayout,
QPushButton,
QDialog,
QWidget,
)
from game import Game
from game.ato.closestairfields import ClosestAirfields
from game.ato.flight import Flight
from game.ato.flightroster import FlightRoster
from game.ato.iflightroster import IFlightRoster
from game.dcs.aircrafttype import AircraftType
from game.squadrons import Squadron
from game.squadrons.pilot import Pilot
from game.theater import ControlPoint, OffMapSpawn
from game.utils import nautical_miles
from qt_ui.models import PackageModel
@ -237,8 +244,49 @@ class FlightRosterEditor(QVBoxLayout):
controls.replace(squadron, new_roster)
class QSquadronSelector(QDialog):
def __init__(self, flight: Flight, parent: Optional[QWidget] = None):
super().__init__(parent)
self.flight = flight
self.parent = parent
self.init()
def init(self):
vbox = QVBoxLayout()
self.setLayout(vbox)
self.selector = QComboBox()
air_wing = self.flight.coalition.air_wing
for squadron in air_wing.best_squadrons_for(
self.flight.package.target,
self.flight.flight_type,
self.flight.roster.max_size,
self.flight.is_helo,
True,
ignore_range=True,
):
if squadron is self.flight.squadron:
continue
self.selector.addItem(
f"{squadron.name} - {squadron.aircraft.variant_id}", squadron
)
vbox.addWidget(self.selector)
hbox = QHBoxLayout()
accept = QPushButton("Accept")
accept.clicked.connect(self.accept)
hbox.addWidget(accept)
cancel = QPushButton("Cancel")
cancel.clicked.connect(self.reject)
hbox.addWidget(cancel)
vbox.addLayout(hbox)
class QFlightSlotEditor(QGroupBox):
flight_resized = Signal(int)
squadron_changed = Signal(Flight)
def __init__(
self,
@ -250,6 +298,10 @@ class QFlightSlotEditor(QGroupBox):
self.package_model = package_model
self.flight = flight
self.game = game
self.closest_airfields = ClosestAirfields(
flight.package.target,
list(game.theater.control_points_for(self.flight.coalition.player)),
)
available = self.flight.squadron.untasked_aircraft
max_count = self.flight.count + available
if max_count > 4:
@ -268,7 +320,12 @@ class QFlightSlotEditor(QGroupBox):
layout.addWidget(self.aircraft_count_spinner, 0, 1)
layout.addWidget(QLabel("Squadron:"), 1, 0)
layout.addWidget(QLabel(str(self.flight.squadron)), 1, 1)
hbox = QHBoxLayout()
hbox.addWidget(QLabel(str(self.flight.squadron)))
squadron_btn = QPushButton("Change Squadron")
squadron_btn.clicked.connect(self._change_squadron)
hbox.addWidget(squadron_btn)
layout.addLayout(hbox, 1, 1)
layout.addWidget(QLabel("Assigned pilots:"), 2, 0)
self.roster_editor = FlightRosterEditor(flight.squadron, flight.roster)
@ -276,6 +333,46 @@ class QFlightSlotEditor(QGroupBox):
self.setLayout(layout)
def _change_squadron(self):
dialog = QSquadronSelector(self.flight)
if dialog.exec():
squadron: Optional[Squadron] = dialog.selector.currentData()
if not squadron:
return
flight = Flight(
self.package_model.package,
squadron,
self.flight.count,
self.flight.flight_type,
self.flight.start_type,
self._find_divert_field(squadron.aircraft, squadron.location),
frequency=self.flight.frequency,
cargo=self.flight.cargo,
channel=self.flight.tacan,
callsign_tcn=self.flight.tcn_name,
)
self.package_model.add_flight(flight)
self.package_model.delete_flight(self.flight)
self.squadron_changed.emit(flight)
def _find_divert_field(
self, aircraft: AircraftType, arrival: ControlPoint
) -> Optional[ControlPoint]:
divert_limit = nautical_miles(150)
for airfield in self.closest_airfields.operational_airfields_within(
divert_limit
):
if airfield.captured != self.flight.coalition.player:
continue
if airfield == arrival:
continue
if not airfield.can_operate(aircraft):
continue
if isinstance(airfield, OffMapSpawn):
continue
return airfield
return None
def _changed_aircraft_count(self):
old_count = self.flight.count
new_count = int(self.aircraft_count_spinner.value())

View File

@ -49,7 +49,9 @@ class QFlightStartType(QGroupBox):
# Otherwise, set the start_type as configured for AI.
# https://github.com/dcs-liberation/dcs_liberation/issues/1567
if self.flight.roster.player_count > 0:
if isinstance(self.flight.departure, OffMapSpawn):
return
elif self.flight.roster.player_count > 0:
self.flight.start_type = (
self.flight.coalition.game.settings.default_start_type_client
)

View File

@ -21,6 +21,7 @@ from qt_ui.windows.mission.flight.waypoints.QFlightWaypointList import (
class QGeneralFlightSettingsTab(QFrame):
flight_size_changed = Signal()
squadron_changed = Signal(Flight)
def __init__(
self,
@ -36,6 +37,7 @@ class QGeneralFlightSettingsTab(QFrame):
self.flight_slot_editor = QFlightSlotEditor(package_model, flight, game.game)
self.flight_slot_editor.flight_resized.connect(self.flight_size_changed)
self.flight_slot_editor.squadron_changed.connect(self.squadron_changed)
for pc in self.flight_slot_editor.roster_editor.pilot_controls:
pc.player_toggled.connect(self.on_player_toggle)
pc.player_toggled.connect(

View File

@ -146,11 +146,6 @@ class QFactionUnits(QScrollArea):
self, cb: QComboBox, callback: Callable, predicate: Callable
):
for ac_dcs in sorted(AircraftType.each_dcs_type(), key=lambda x: x.id):
if (
ac_dcs not in self.faction.country.planes
and ac_dcs not in self.faction.country.helicopters
):
continue
for ac in AircraftType.for_dcs_type(ac_dcs):
if ac in self.faction.aircraft:
continue

View File

@ -32,7 +32,7 @@ pluggy==1.5.0
pre-commit==3.7.0
pydantic==2.7.1
pydantic-settings==2.2.1
pydcs @ git+https://github.com/dcs-retribution/pydcs@805088f20263025eda61398d10383e4d73945dc7
pydcs @ git+https://github.com/dcs-retribution/pydcs@4f4d3fd51dc14ad8e16e3bf6b130e8efc18dcabd
pyinstaller==5.13.2
pyinstaller-hooks-contrib==2024.0
pyparsing==3.1.2

View File

@ -34,6 +34,8 @@ miz: battle_for_no_mans_land.miz
performance: 1
recommended_start_date: 2001-11-10
version: "10.7"
settings:
squadron_start_full: true
squadrons:
#Port Stanley
1:
@ -45,12 +47,11 @@ squadrons:
- primary: BAI
secondary: any
aircraft:
- AH-64D Apache Longbow
- OH-58D(R) Kiowa Warrior
size: 6
- primary: Air Assault
secondary: any
aircraft:
- UH-60L
- UH-60A
size: 4
#San Carlos FOB

View File

@ -3,12 +3,12 @@ name: Caucasus - Black Sea
theater: Caucasus
authors: Colonel Panic
description:
<p>A medium sized theater with bases along the coast of the Black Sea.</p>
<p>A medium sized theater with bases along the coast of the Black Sea. Note that due to heavy SAM coverage, performance on this campaign can be noticeably worse than in many others.</p>
recommended_player_faction: USA 2005
recommended_enemy_faction: Russia 2010
recommended_start_date: 2004-01-07
miz: black_sea.miz
performance: 2
performance: 3
version: "10.7"
squadrons:
# Anapa-Vityazevo

View File

@ -29,8 +29,8 @@ performance: 1
recommended_start_date: 1983-11-09
version: "10.7"
settings:
restrict_weapons_by_date: true
hercules: true
squadron_start_full: true
squadrons:
#Bodo
7:
@ -43,17 +43,12 @@ squadrons:
secondary: any
aircraft:
- F-5E Tiger II
size: 12
size: 8
- primary: TARCAP
secondary: any
aircraft:
- F-15C Eagle
size: 12
- primary: BAI
secondary: any
aircraft:
- F-4E Phantom II
size: 12
size: 8
- primary: Refueling
aircraft:
- KC-135 Stratotanker
@ -70,12 +65,17 @@ squadrons:
secondary: any
aircraft:
- F-16CM Fighting Falcon (Block 50)
size: 16
size: 12
- primary: CAS
secondary: any
aircraft:
- OH-58D(R) Kiowa Warrior
size: 4
- primary: Refueling
aircraft:
- KC-130
size: 1
- primary: Air Assault
- primary: Transport
secondary: any
aircraft:
- C-130J-30 Super Hercules
@ -87,7 +87,7 @@ squadrons:
secondary: any
aircraft:
- MiG-21bis Fishbed-N
size: 12
size: 8
- primary: BAI
secondary: any
aircraft:
@ -97,7 +97,7 @@ squadrons:
secondary: any
aircraft:
- Mirage-F1CE
size: 12
size: 8
- primary: Air Assault
secondary: any
aircraft:
@ -116,7 +116,7 @@ squadrons:
secondary: air-to-ground
aircraft:
- AJS-37 Viggen
size: 10
size: 8
#Blue Carrier
Blue-CV:
- primary: TARCAP
@ -127,7 +127,7 @@ squadrons:
- primary: AEW&C
aircraft:
- E-2C Hawkeye
size: 4
size: 2
- primary: BAI
secondary: air-to-ground
aircraft:
@ -136,26 +136,15 @@ squadrons:
- primary: Air Assault
secondary: any
aircraft:
- UH-60L
- UH-60A
size: 4
size: 4
#Blue LHA
Blue-LHA:
- primary: DEAD
secondary: air-to-ground
aircraft:
- AV-8B Harrier II Night Attack
size: 16
- primary: Air Assault
secondary: any
aircraft:
- UH-1H Iroquois
size: 2
- primary: Escort
secondary: any
aircraft:
- AH-1J SeaCobra
size: 2
size: 20
#RAF Fairford
Bombers from RAF Fairford:
- primary: Strike
@ -174,7 +163,7 @@ squadrons:
secondary: air-to-ground
aircraft:
- Su-17M4 Fitter-K
size: 6
size: 4
#Severomorsk-1
8:
- primary: BARCAP
@ -191,7 +180,7 @@ squadrons:
secondary: any
aircraft:
- MiG-27K Flogger-J2
size: 16
size: 12
#Severomorsk-3
6:
- primary: Refueling
@ -202,7 +191,7 @@ squadrons:
secondary: any
aircraft:
- Su-24M Fencer-D
size: 20
size: 12
- primary: TARCAP
secondary: any
aircraft:
@ -212,19 +201,19 @@ squadrons:
secondary: any
aircraft:
- Mi-8MTV2 Hip
size: 4
size: 2
#Olenya
9:
- primary: Strike
secondary: any
aircraft:
- Tu-95MS Bear-H
size: 16
size: 8
- primary: Strike
secondary: any
aircraft:
- Tu-22M3 Backfire-C
size: 16
size: 8
- primary: Refueling
aircraft:
- IL-78M
@ -245,7 +234,7 @@ squadrons:
secondary: any
aircraft:
- MiG-21bis Fishbed-N
size: 16
size: 12
#Murmansk International
12:
- primary: AEW&C

View File

@ -11,31 +11,32 @@ description:
Exercise Bright Star. The exercise has grown over the years to incorporate
a wide array of international participants. The 2025 iteration of
Exercise Bright Star features eight participating nations alongside
fourteen observer nations.</p><p>
For the 2025 exercises, the United States, along with a select contingent
fourteen observer nations.</p>
<p>For the 2025 exercises, the United States, along with a select contingent
from the exercise coalition, will take on the role of a hypothetical
adversarial nation, dubbed Orangeland. This scenario is designed to
simulate a mock invasion against Cairo, and presents a valuable
opportunity for participating nations to refine their joint operational
capabilities and improve logistical and tactical interoperability.</p><p>
A historic addition to Exercise Bright Star 2025 is the participation of
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
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.
air during the exercise.</p>
miz: exercise_bright_star.miz
performance: 1
recommended_start_date: 2025-09-01
version: "10.7"
settings:
hercules: true
squadron_start_full: true
squadrons:
Blue CV-1:
- primary: SEAD
@ -56,12 +57,12 @@ squadrons:
secondary: air-to-ground
aircraft:
- B-52H Stratofortress
size: 8
size: 4
- primary: Strike
secondary: air-to-ground
aircraft:
- B-1B Lancer
size: 8
size: 4
# Ovda
10:
- primary: CAS
@ -73,7 +74,7 @@ squadrons:
secondary: any
aircraft:
- F-15C Eagle
size: 20
size: 16
- primary: OCA/Runway
secondary: any
aircraft:
@ -83,19 +84,14 @@ squadrons:
secondary: any
aircraft:
- JF-17 Thunder
size: 12
size: 16
# Ramon Airbase
9:
- primary: BARCAP
secondary: any
aircraft:
- Mirage 2000C
size: 12
- primary: DEAD
secondary: any
aircraft:
- F-16CM Fighting Falcon (Block 50)
size: 20
size: 16
- primary: BAI
secondary: any
aircraft:
@ -104,7 +100,6 @@ squadrons:
- primary: Air Assault
secondary: any
aircraft:
- UH-60L
- UH-60A
size: 4
# Ben-Gurion
@ -114,7 +109,7 @@ squadrons:
aircraft:
- C-130J-30 Super Hercules
- C-130
size: 8
size: 2
- primary: AEW&C
aircraft:
- E-3A
@ -184,7 +179,7 @@ squadrons:
aircraft:
- C-130J-30 Super Hercules
- C-130
size: 8
size: 2
- primary: BARCAP
secondary: air-to-air
aircraft:

View File

@ -16,6 +16,9 @@ miz: exercise_vegas_nerve.miz
performance: 1
recommended_start_date: 2011-02-24
version: "10.7"
settings:
hercules: true
squadron_start_full: true
squadrons:
Bombers from Minot AFB:
- primary: Strike
@ -35,16 +38,12 @@ squadrons:
secondary: any
aircraft:
- F-15C Eagle
size: 12
size: 16
- primary: Strike
secondary: air-to-ground
aircraft:
- F-15E Strike Eagle (Suite 4+)
size: 12
- primary: AEW&C
aircraft:
- E-3A
size: 1
size: 8
# Tonopah Test Range
18:
- primary: BAI
@ -56,7 +55,12 @@ squadrons:
secondary: any
aircraft:
- AH-64D Apache Longbow
size: 10
size: 2
- primary: CAS
secondary: any
aircraft:
- OH-58D(R) Kiowa Warrior
size: 2
- primary: DEAD
secondary: air-to-ground
aircraft:
@ -67,24 +71,28 @@ squadrons:
aircraft:
- F-16CM Fighting Falcon (Block 50)
size: 24
- primary: Air Assault
secondary: air-to-ground
- primary: AEW&C
aircraft:
- UH-60L
- UH-60A
size: 2
- E-3A
size: 1
- primary: Transport
secondary: any
aircraft:
- C-130J-30 Super Hercules
- CH-47D
size: 1
# Groom Lake
2:
- primary: Escort
secondary: air-to-air
aircraft:
- J-11A Flanker-L
size: 20
size: 16
- primary: BAI
secondary: air-to-ground
aircraft:
- Su-25T Frogfoot
size: 20
size: 12
# Creech
1:
- primary: CAS
@ -113,16 +121,16 @@ squadrons:
secondary: air-to-ground
aircraft:
- Su-24M Fencer-D
size: 20
size: 16
- primary: DEAD
secondary: air-to-ground
aircraft:
- Su-34 Fullback
size: 20
size: 16
# Boulder City Airport
6:
- primary: SEAD Escort
secondary: any
aircraft:
- FC-1 Fierce Dragon
size: 20
size: 16

View File

@ -21,6 +21,8 @@ miz: final_countdown_2.miz
performance: 2
recommended_start_date: 1944-06-06
version: "10.7"
settings:
squadron_start_full: true
squadrons:
#Blue CV (90)
Blue-CV:
@ -50,7 +52,6 @@ squadrons:
- primary: Air Assault
secondary: any
aircraft:
- UH-60L
- UH-60A
size: 6
#Stoney Cross (39)

View File

@ -7,7 +7,7 @@ recommended_enemy_faction: Russia 2010
description:
<p>An Argentinean extremist group has contracted the Sons of Warvan (SoW), an
unusually well-equipped PMC with close ties to the Russian government, to
construct a beryllium bomb at the secret Omega 13 production facility in
construct a beryllium bomb at the secret Omega-13 production facility in
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
up north, it is up to the Marines to launch an assault upon Ushuaia from an LHA
@ -19,6 +19,7 @@ recommended_start_date: 1999-12-25
version: "10.7"
settings:
hercules: true
squadron_start_full: true
squadrons:
#Mount Pleasant
2:
@ -41,12 +42,17 @@ squadrons:
secondary: any
aircraft:
- AH-64D Apache Longbow
size: 8
size: 4
- primary: CAS
secondary: any
aircraft:
- OH-58D(R) Kiowa Warrior
size: 4
- primary: Refueling
aircraft:
- KC-135 Stratotanker
size: 1
- primary: Air Assault
- primary: Transport
secondary: any
aircraft:
- C-130J-30 Super Hercules
@ -70,12 +76,12 @@ squadrons:
secondary: any
aircraft:
- F/A-18C Hornet (Lot 20)
size: 40
size: 32
- primary: DEAD
secondary: air-to-ground
aircraft:
- S-3B Viking
size: 20
size: 16
- primary: AEW&C
aircraft:
- E-2C Hawkeye
@ -87,7 +93,6 @@ squadrons:
- primary: Air Assault
secondary: any
aircraft:
- UH-60L
- UH-60A
size: 4
# Blue LHA
@ -107,18 +112,18 @@ squadrons:
secondary: air-to-ground
aircraft:
- B-52H Stratofortress
size: 12
size: 4
- primary: OCA/Runway
secondary: air-to-ground
aircraft:
- B-1B Lancer
size: 12
size: 4
#El Calafate
14:
- primary: Transport
aircraft:
- Mi-8MTV2 Hip
size: 10
size: 8
#Rio Gallegros
5:
- primary: Escort

View File

@ -38,12 +38,14 @@ description:
</p>
miz: operation_aegean_aegis.miz
performance: 1
recommended_start_date: 2017-04-20
recommended_start_date: 2013-04-20
recommended_player_money: 1000
recommended_enemy_money: 0
recommended_player_income_multiplier: 1.0
recommended_enemy_income_multiplier: 0.0
version: "10.7"
settings:
squadron_start_full: true
squadrons:
#Tarawa Class LHA
Blue-LHA:
@ -51,7 +53,12 @@ squadrons:
secondary: any
aircraft:
- AH-64D Apache Longbow
size: 12
size: 8
- primary: CAS
secondary: any
aircraft:
- OH-58D(R) Kiowa Warrior
size: 4
- primary: DEAD
secondary: air-to-ground
aircraft:
@ -79,7 +86,7 @@ squadrons:
- primary: CAS
secondary: air-to-ground
aircraft:
- OH-58D Kiowa Warrior
- OH-58D(R) Kiowa Warrior
size: 4
- primary: Transport
secondary: any

View File

@ -13,6 +13,7 @@ recommended_player_faction:
- en_US
aircrafts:
- F-4E Phantom II
- F-4E-45MC Phantom II
- F-15C Eagle
- F-15E Strike Eagle
- F-15E Strike Eagle (Suite 4+)
@ -261,7 +262,9 @@ squadrons:
- primary: SEAD
secondary: any
aircraft:
- F-4E-45MC Phantom II
- 201th Squadron
size: 16
- primary: Refueling
aircraft:
- VMGR-352
@ -327,6 +330,7 @@ squadrons:
- primary: BARCAP
secondary: air-to-air
aircraft:
- MiG-21bis Fishbed-N
- MiG-29A Fulcrum-A
size: 12
- primary: Strike
@ -383,6 +387,7 @@ squadrons:
- primary: BARCAP
secondary: air-to-air
aircraft:
- MiG-23MLD Flogger-K
- Su-30 Flanker-C
- primary: CAS
secondary: air-to-ground
@ -394,6 +399,7 @@ squadrons:
- primary: TARCAP
secondary: air-to-air
aircraft:
- MiG-25PD Foxbat-E
- MiG-23ML Flogger-G
- primary: BARCAP
secondary: any
@ -403,6 +409,7 @@ squadrons:
- primary: Strike
secondary: air-to-ground
aircraft:
- Su-24M Fencer-D
- Su-34 Fullback
- primary: Transport
secondary: air-to-ground

View File

@ -23,6 +23,7 @@ version: "10.7"
settings:
a4_skyhawk: true
hercules: true
squadron_start_full: true
squadrons:
# Ben-Gurion
24:

View File

@ -32,6 +32,7 @@ recommended_player_income_multiplier: 0.2
recommended_enemy_income_multiplier: 0.2
settings:
hercules: true
squadron_start_full: true
version: "10.7"
squadrons:
Blue CV-1:
@ -42,7 +43,7 @@ squadrons:
size: 40
- primary: AEW&C
aircraft:
- E-2D Advanced Hawkeye
- E-2C Hawkeye
size: 2
- primary: Refueling
aircraft:
@ -51,7 +52,6 @@ squadrons:
- primary: Air Assault
secondary: any
aircraft:
- UH-60L
- UH-60A
size: 4
#Al Minhad AFB (61)
@ -66,12 +66,12 @@ squadrons:
secondary: any
aircraft:
- F-16CM Fighting Falcon (Block 50)
size: 32
size: 20
- primary: Escort
secondary: air-to-air
aircraft:
- F-15C Eagle
size: 24
size: 20
#Al Dhafra AFB (251)
4:
- primary: Strike
@ -87,12 +87,12 @@ squadrons:
secondary: any
aircraft:
- F-15E Strike Eagle (Suite 4+)
size: 20
size: 16
- primary: DEAD
secondary: air-to-ground
aircraft:
- AV-8B Harrier II Night Attack
size: 20
size: 16
#Bandar Abbas Intl (51)
2:
- primary: SEAD
@ -114,7 +114,7 @@ squadrons:
size: 12
#Abu Musa Island (8)
1:
- primary: DEAD
- primary: SEAD Escort
secondary: air-to-ground
aircraft:
- Su-25T Frogfoot
@ -134,9 +134,10 @@ squadrons:
#Shiraz Intl (122)
19:
- primary: Transport
secondary: any
aircraft:
- IL-76MD
size: 5
size: 4
- primary: BARCAP
secondary: air-to-air
aircraft:

View File

@ -20,18 +20,14 @@ recommended_start_date: 2019-12-23
version: "10.7"
settings:
hercules: true
squadron_start_full: true
squadrons:
Blue CV-1:
- primary: SEAD
secondary: any
aircraft:
- F/A-18C Hornet (Lot 20)
size: 40
- primary: BAI
secondary: air-to-ground
aircraft:
- S-3B Viking
size: 20
size: 24
- primary: AEW&C
aircraft:
- E-2D Advanced Hawkeye
@ -67,12 +63,6 @@ squadrons:
aircraft:
- F-15C Eagle
size: 20
- primary: Air Assault
secondary: any
aircraft:
- UH-60L
- UH-60A
size: 4
# Ramat David
30:
- primary: BAI
@ -90,6 +80,16 @@ squadrons:
aircraft:
- AH-64D Apache Longbow
size: 4
- primary: CAS
secondary: any
aircraft:
- OH-58D(R) Kiowa Warrior
size: 4
- primary: Air Assault
secondary: any
aircraft:
- UH-60A
size: 4
# Damascus
7:
- primary: Strike
@ -107,7 +107,7 @@ squadrons:
- primary: CAS
secondary: any
aircraft:
- OH-58D Kiowa Warrior
- OH-58D(R) Kiowa Warrior
- Mi-24P Hind-F
size: 4
# Tiyas
@ -145,7 +145,7 @@ squadrons:
- primary: Strike
secondary: air-to-ground
aircraft:
- F-4E Phantom II
- F-4E-45MC Phantom II
- Tu-22M3 Backfire-C
size: 16
- primary: AEW&C
@ -161,6 +161,6 @@ squadrons:
- primary: Escort
secondary: any
aircraft:
- F-4E Phantom II
- F-4E-45MC Phantom II
- MiG-21bis Fishbed-N
size: 16

View File

@ -5,19 +5,30 @@ authors: Starfire
recommended_player_faction: USA 2005
recommended_enemy_faction: Russia 2010
description:
<p><strong>Background</strong> - The United Nations Observer Mission in Georgia (UNOMIG) has been actively monitoring the ceasefire agreement between Georgia and its breakaway region of Abkhazia. Recent developments have escalated tensions in the area, leading to a precarious situation for UN observers and affiliated personnel.
</p><p><strong>Current Situation</strong> - UNOMIG observers, along with a contingent of international troops, have found themselves isolated due to the intervention of Russian forces supporting the separatist ambitions of Abkhazia. The UNOMIG headquarters located in Sukhumi has fallen into enemy hands. A smaller group based at the Zugdidi Sector Headquarters now faces the daunting task of navigating to safety with the aid of offshore naval air support.
</p><p><strong>Objective</strong> - The immediate goal is to orchestrate a strategic withdrawal of UN forces to the coastline, leveraging support from US naval aircraft positioned offshore. The critical mission objective is the rapid recapture of Sukhumi. This action is essential to enable the landing of friendly ground forces and the ferrying in of land-based sqwuadrons from Incirlik.
</p><p><strong>Operational Constraints</strong> - It is crucial to note that reinforcement of ground units will not be possible until Sukhumi is successfully recaptured. This recapture can either be performed using existing UN personnel and ground vehicles, or via heliborne assault troop insertion.
</p><p><strong>Assets & Support</strong> - Available assets include two Huey helicopters for close air support. Commanders may opt to initiate the operation with light vehicles, such as Humvees, employing breakthrough tactics to avoid direct confrontations with enemy forces. Alternatively, the use of heavier ground units is an option for commanders seeking a more conventional combat engagement. Upon the recapture of Sukhumi, additional squadrons from Incirlik, Turkey, will become operational.
</p><p><strong>Secondary Objective</strong> - Consider prioritising the capture of the Batumi airfield, located to the south, for its strategic value as a forward operating base. Commanders should be aware of the inherent risks, as the airfield is relatively small and lacks air defence systems, posing a significant threat to any stationed aircraft.</p>
<p>The United Nations Observer Mission in Georgia (UNOMIG) has been actively
monitoring the ceasefire agreement between Georgia and its breakaway region
of Abkhazia. However, recent developments have escalated tensions, leading
to a precarious situation for the UN observers. Along with a small contingent
of international troops, they have found themselves isolated due to the
intervention of Russian forces supporting Abkhazia's separatist ambitions.
The UNOMIG headquarters in Sukhumi has fallen into enemy hands, leaving a
small group based at the Zugdidi Sector Headquarters facing the daunting
task of navigating to safety with the aid of close air support.</p>
<p>The immediate goal is to orchestrate a strategic withdrawal of UN forces to
the coastline, leveraging support from US naval aircraft positioned offshore
as well as US Air force squadrons newly arrived at Tbilisi. Commanders may opt
to begin the operation with light vehicles, employing breakthrough tactics to
avoid direct confrontations with enemy forces. Alternatively, the use of
heavier ground units is an option for commanders seeking a more conventional
combat engagement. C-17 Globemasters stand ready bring in additional ground
units from Incirlik to reinforce existing troops, upon recapture of Sukhumi.</p>
miz: operation_vectrons_claw.miz
performance: 1
recommended_start_date: 2008-08-08
version: "10.7"
control_points:
Squadrons from Incirlik:
ferry_only: true
settings:
hercules: true
squadron_start_full: true
squadrons:
Blue CV-1:
- primary: BARCAP
@ -29,12 +40,12 @@ squadrons:
secondary: any
aircraft:
- F/A-18C Hornet (Lot 20)
size: 60
- primary: CAS
size: 24
- primary: BAI
secondary: air-to-ground
aircraft:
- S-3B Viking
size: 8
size: 12
- primary: AEW&C
aircraft:
- E-2C Hawkeye
@ -42,30 +53,46 @@ squadrons:
- primary: Refueling
aircraft:
- S-3B Tanker
size: 2
size: 4
- primary: Air Assault
secondary: any
aircraft:
- UH-60L
- UH-60A
size: 2
size: 4
Blue LHA:
- primary: BAI
secondary: air-to-ground
aircraft:
- AV-8B Harrier II Night Attack
size: 20
Squadrons from Incirlik:
#Tbilisi-Lochini
29:
- primary: OCA/Runway
secondary: air-to-ground
aircraft:
- B-1B Lancer
size: 4
- primary: Refueling
aircraft:
- KC-135 Stratotanker
size: 2
- primary: CAS
secondary: air-to-ground
aircraft:
- A-10C Thunderbolt II (Suite 7)
size: 4
- primary: CAS
secondary: any
aircraft:
- AH-64D Apache Longbow
size: 4
- primary: CAS
secondary: air-to-ground
secondary: any
aircraft:
- A-10C Thunderbolt II (Suite 7)
size: 6
- OH-58D(R) Kiowa Warrior
size: 4
#Vaziani
31:
- primary: DEAD
secondary: any
aircraft:
@ -75,82 +102,109 @@ squadrons:
secondary: any
aircraft:
- F-15E Strike Eagle (Suite 4+)
size: 8
- primary: Refueling
size: 12
- primary: Escort
secondary: any
aircraft:
- KC-135 Stratotanker
size: 1
- F-15C Eagle
size: 12
- 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
Bombers from Base Aérea de Morón:
- primary: OCA/Runway
secondary: air-to-ground
aircraft:
- B-1B Lancer
size: 4
#FARPs
#OWNFOR FARP
UNOMIG Sector HQ:
- primary: Transport
secondary: any
aircraft:
- UH-1H Iroquois
size: 2
#OPFOR FARP
Dzhugba:
- primary: CAS
- primary: Air Assault
secondary: any
aircraft:
- Mi-24P Hind-F
size: 4
#Sukhumi-Babushara
20:
- primary: TARCAP
secondary: air-to-air
aircraft:
- MiG-29S Fulcrum-C
size: 8
- primary: BAI
- primary: SEAD Sweep
secondary: air-to-ground
aircraft:
- Su-25T Frogfoot
size: 12
size: 20
#Sochi-Adler
18:
- primary: Escort
- primary: TARCAP
secondary: air-to-air
aircraft:
- Su-27 Flanker-B
size: 8
- primary: SEAD
secondary: air-to-ground
- primary: SEAD Escort
secondary:
- BAI
- SEAD
- DEAD
- OCA/Runway
- SEAD Sweep
aircraft:
- Su-24M Fencer-D
size: 20
- primary: DEAD
secondary: air-to-ground
- primary: BAI
secondary:
- SEAD
- DEAD
- OCA/Runway
- SEAD Escort
- SEAD Sweep
aircraft:
- Su-34 Fullback
size: 20
#Mineralnye Vody
26:
- primary: Strike
secondary: air-to-ground
aircraft:
- Tu-95MS Bear-H
size: 12
- primary: Escort
secondary: air-to-air
aircraft:
- MiG-29S Fulcrum-C
size: 12
#Maykop-Khanskaya
16:
- primary: Strike
- primary: DEAD
secondary: air-to-ground
aircraft:
- Tu-22M3 Backfire-C
size: 20
#Anapa-Vityazevo
12:
- primary: Strike
secondary: air-to-ground
- primary: AEW&C
aircraft:
- Tu-95MS Bear-H
size: 16
- A-50
size: 2
- primary: Transport
secondary: any
aircraft:
- IL-76MD
size: 2
- primary: Refueling
aircraft:
- IL-78M
size: 2
Red CV:
- primary: BARCAP
secondary: any
aircraft:
- SU-33 Flanker-D
size: 16
size: 12

View File

@ -17,6 +17,7 @@ description:
A-4 Skyhawk, OV-10A, and C-130J aircraft mods active. The C-101CC has also
been included as a stand-in for the Cessna A-37 Dragonfly in order to provide
a CAS platform of roughly equivalent combat capability.</p>
<strong>Note:</strong> Airbase threat range should be set to 25 for this campaign.
miz: operation_velvet_thunder.miz
performance: 1
recommended_start_date: 1970-11-29
@ -27,6 +28,7 @@ settings:
a4_skyhawk: true
hercules: true
ov10a_bronco: true
squadron_start_full: true
squadrons:
#Andersen AFB
6:

Binary file not shown.

View File

@ -0,0 +1,377 @@
---
name: Syria - The Long Road to H3
theater: Syria
authors: tmz42 (original campaign by Plob)
description:
<p>From Incirlik to H-3, repel the alliance between Iraq and Syria.</p>
<p>This campaign is based on and meant as a lighter alternative to Syria - Full Map.</p>
recommended_player_faction: NATO OIF
recommended_enemy_faction:
country: Combined Joint Task Forces Red
name: Iraq-Syria 2000s
authors: tmz42
description: <p>Iraq - Syria fictional alliance in the 2000s.</p>
aircrafts:
- IL-76MD
- L-39ZA Albatros
- MiG-21bis Fishbed-N
- Mi-24V Hind-E
- Mi-24P Hind-F
- Mi-8MTV2 Hip
- MiG-19P Farmer-B
- MiG-23MLD Flogger-K
- MiG-25PD Foxbat-E
- MiG-29A Fulcrum-A
- SA 342L Gazelle
- Su-22M4 Fitter-K
- Su-24M Fencer-D
- Tu-22M3 Backfire-C
- Su-25 Frogfoot
- Mirage-F1EQ
- H-6J Badger
awacs:
- A-50
tankers:
- IL-78M
frontline_units:
- BMP-1
- BMP-2
- BTR-80
- BRDM-2
- Cobra
- MT-LB
- T-55A
- T-72B with Kontakt-1 ERA
- T-90A
- ZSU-57-2 'Sparka'
artillery_units:
- BM-21 Grad
- 2S1 Gvozdika
- 2S9 Nona-S
logistics_units:
- Truck Ural-375
- LUV UAZ-469 Jeep
infantry_units:
- Paratrooper AKS
- Infantry AK-74 Rus
- Paratrooper RPG-16
- MANPADS SA-18 Igla-S "Grouse"
preset_groups:
- SA-5/S-200
- SA-2/S-75
- SA-2/S-75 V-759/5V23
- SA-3/S-125
- SA-3/S-125 V-601P/5V27
- SA-6
- SA-11
- SA-10/S-300PS
- SA-12/S-300V
- Cold-War-Flak
- Silkworm
- KS-19/SON-9
naval_units:
- Corvette 1124.4 Grish
- Corvette 1241.1 Molniya
- FAC La Combattante IIa
- Frigate 1135M Rezky
air_defense_units:
- SAM P19 "Flat Face" SR (SA-2/3)
- EWR 1L13
- EWR 55G6
- SAM SA-8 Osa "Gecko" TEL
- SA-9 Strela
- SA-13 Gopher (9K35 Strela-10M3)
- SA-19 Grison (2K22 Tunguska)
- SA-15 Tor
- ZSU-57-2 'Sparka'
- AAA ZU-23 Closed Emplacement
- ZU-23 on Ural-375
- ZSU-23-4 Shilka
missiles:
- SSM SS-1C Scud-B
helicopter_carrier_names: []
requirements: {}
carrier_names: []
recommended_start_date: 2005-06-05
miz: syria_TheLongRoadToH3.miz
performance: 2
version: 10.7
advanced_iads: true
settings:
# Set mission duration to 45 minutes
desired_player_mission_duration: 45
# Set max frontline width to 30 km
max_frontline_width: 30
squadrons:
####################### BLUEFOR
Blue CV:
# Tomcat F-14B - Swordsmen
- primary: BARCAP
secondary: any
aircraft:
- VF-32
- F-14B Tomcat
size: 14
# Tomcat F-14A - Black Aces
- primary: BARCAP
secondary: any
aircraft:
- VF-41
- F-14A Tomcat (Block 135-GR Late)
size: 14
# Hornet - Golden Dragons
- primary: SEAD
secondary: any
aircraft:
- VFA-192
- F/A-18C Hornet (Lot 20)
# Hornet - Bulls
- primary: DEAD
secondary: any
aircraft:
- VFA-37
- F/A-18C Hornet (Lot 20)
- primary: Refueling
aircraft:
- S-3B Tanker
size: 4
- primary: BAI
secondary: air-to-ground
aircraft:
- S-3B Viking
size: 8
- primary: AEW&C
aircraft:
- E-2C Hawkeye
size: 2
Blue LHA:
- primary: BAI
secondary: air-to-ground
aircraft:
- AV-8B Harrier II Night Attack
size: 10
- primary: Air Assault
secondary: air-to-ground
aircraft:
- UH-1H Iroquois
size: 4
- primary: BAI
secondary: air-to-ground
aircraft:
- AH-1W SuperCobra
size: 6
# Incirlik
16:
- primary: Refueling
aircraft:
- KC-135 Stratotanker
size: 2
- primary: Refueling
aircraft:
- KC-135 Stratotanker
size: 2
- primary: AEW&C
aircraft:
- E-3A
size: 2
- primary: Transport
secondary: any
aircraft:
- C-130J-30 Super Hercules
- C-130
size: 8
# Viper Warhawks
- primary: SEAD
secondary: any
aircraft:
- 480th FS
- F-16CM Fighting Falcon (Block 50)
size: 12
- primary: Strike
secondary: air-to-ground
aircraft:
- B-1B Lancer
size: 4
- primary: Strike
secondary: any
aircraft:
- 494th Fighter Squadron
- F-15E Strike Eagle (Suite 4+)
size: 12
- primary: BAI
secondary: air-to-ground
aircraft:
- AV-8B Harrier II Night Attack
size: 12
# Hornet - Thunderbolts
- primary: DEAD
secondary: any
aircraft:
- VMFA-251
size: 12
# Gaziantep
11:
- primary: CAS
secondary: air-to-ground
aircraft:
- UH-1H Iroquois
size: 4
- primary: CAS
secondary: air-to-ground
aircraft:
- AH-64D Apache Longbow
size: 8
####################### REDFOR
Red CV:
- primary: BARCAP
secondary: any
aircraft:
- Su-33 Flanker-D
size: 12
# Aleppo - 29
27:
- primary: BARCAP
secondary: any
aircraft:
- MiG-19P Farmer-B
- MiG-23MLD Flogger-K
# Tabqa - 29
37:
- primary: CAS
secondary: air-to-ground
aircraft:
- L-39ZA Albatros
- Su-25 Frogfoot
size: 12
- primary: BAI
secondary: air-to-ground
aircraft:
- Su-22M4 Fitter-K
- Su-24M Fencer-D
size: 8
- primary: BARCAP
secondary: air-to-air
aircraft:
- MiG-23MLD Flogger-K
- MiG-29S Fulcrum-C
- primary: CAS
secondary: air-to-ground
aircraft:
- Mi-24P Hind-F
size: 2
# Al-Tanf - 2
63:
- primary: CAS
secondary: air-to-ground
aircraft:
- Mi-24P Hind-F
size: 2
# Al Quasyr - 34
3:
- primary: CAS
secondary: air-to-ground
aircraft:
- Mi-24P Hind-F
size: 2
- primary: BARCAP
secondary: air-to-air
aircraft:
- MiG-21bis Fishbed-N
- MiG-23MLD Flogger-K
size: 12
- primary: Strike
secondary: air-to-ground
aircraft:
- Su-22M4 Fitter-K
- Su-24M Fencer-D
size: 12
# Bassel Al-Assad - 53
21:
- primary: CAS
secondary: air-to-ground
aircraft:
- Mi-24P Hind-F
size: 4
- primary: BARCAP
secondary: air-to-air
aircraft:
- MiG-29A Fulcrum-A
- MiG-29S Fulcrum-C
size: 12
- primary: Refueling
aircraft:
- IL-78M
size: 2
- primary: Transport
aircraft:
- IL-76MD
size: 2
- primary: CAS
secondary: air-to-ground
aircraft:
- SA 342L Gazelle
size: 4
- primary: Strike
secondary: air-to-ground
aircraft:
- Su-24M Fencer-D
- Su-34 Fullback
size: 6
# Tiyas - 82
39:
- primary: TARCAP
secondary: air-to-air
aircraft:
- MiG-25PD Foxbat-E
size: 12
- primary: Strike
secondary: air-to-ground
aircraft:
- Su-24M Fencer-D
size: 12
- primary: AEW&C
aircraft:
- A-50
size: 2
# H3 - 68
53:
- primary: TARCAP
secondary: air-to-air
aircraft:
- MiG-25PD Foxbat-E
size: 12
- primary: BARCAP
secondary: any
aircraft:
- Mirage-F1EQ
size: 12
- primary: Strike
secondary: air-to-ground
aircraft:
- Su-24M Fencer-D
size: 8
- primary: Strike
secondary: air-to-ground
aircraft:
- H-6J Badger
size: 8
- primary: CAS
secondary: air-to-ground
aircraft:
- Mi-24P Hind-F
- primary: AEW&C
aircraft:
- A-50
size: 2
# Kharab - 11
59:
- primary: CAS
secondary: air-to-ground
aircraft:
- Mi-24P Hind-F
size: 4
- primary: CAS
secondary: air-to-ground
aircraft:
- Mi-8MTV2 Hip
size: 4

View File

@ -0,0 +1,101 @@
local unitPayloads = {
["name"] = "OH58D",
["payloads"] = {
[1] = {
["name"] = "Retribution CAS",
["pylons"] = {
[1] = {
["CLSID"] = "OH58D_AGM_114_R",
["num"] = 5,
},
[2] = {
["CLSID"] = "OH58D_M3P_L500",
["num"] = 1,
},
},
["tasks"] = {
[1] = 16,
},
},
[2] = {
["displayName"] = "Retribution DEAD",
["name"] = "Retribution DEAD",
["pylons"] = {
[1] = {
["CLSID"] = "OH58D_AGM_114_R",
["num"] = 5,
},
[2] = {
["CLSID"] = "OH58D_AGM_114_L",
["num"] = 1,
},
},
["tasks"] = {
[1] = 16,
},
},
[3] = {
["displayName"] = "Retribution BAI",
["name"] = "Retribution BAI",
["pylons"] = {
[1] = {
["CLSID"] = "OH58D_AGM_114_R",
["num"] = 5,
},
[2] = {
["CLSID"] = "{M260_APKWS_M151}",
["num"] = 1,
},
},
["tasks"] = {
[1] = 16,
},
},
[4] = {
["displayName"] = "Retribution OCA/Aircraft",
["name"] = "Retribution OCA/Aircraft",
["pylons"] = {
[1] = {
["CLSID"] = "{M260_APKWS_M151}",
["num"] = 5,
},
[2] = {
["CLSID"] = "{M260_APKWS_M151}",
["num"] = 1,
},
},
["tasks"] = {
[1] = 16,
},
},
[5] = {
["displayName"] = "Retribution Escort",
["name"] = "Retribution 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

View File

@ -29,6 +29,7 @@
"F/A-18C Hornet (Lot 20)",
"Mirage 2000C",
"OH-58D Kiowa Warrior",
"OH-58D(R) Kiowa Warrior",
"S-3B Viking",
"SA 342L Gazelle",
"SA 342M Gazelle",

View File

@ -31,6 +31,7 @@
"F/A-18C Hornet (Lot 20)",
"Mirage 2000C",
"OH-58D Kiowa Warrior",
"OH-58D(R) Kiowa Warrior",
"S-3B Viking",
"SA 342L Gazelle",
"SA 342M Gazelle",

View File

@ -49,6 +49,7 @@
"Mi-24P Hind-F",
"Mi-8MTV2 Hip",
"MiG-29S Fulcrum-C",
"OH-58D(R) Kiowa Warrior",
"SA 342L Gazelle",
"SA 342M Gazelle",
"Su-25T Frogfoot",

View File

@ -28,6 +28,7 @@
"F-4E Phantom II",
"F-4E-45MC Phantom II",
"F-5E Tiger II",
"OH-58D(R) Kiowa Warrior",
"Mi-8MTV2 Hip",
"MiG-21bis Fishbed-N",
"Mirage-F1B",

View File

@ -28,7 +28,11 @@
"Sturmgeschütz IV",
"Sturmpanzer IV Brummbär"
],
"artillery_units": [],
"artillery_units": [
"FH Pak 40 75mm",
"FH LeFH-18 105mm",
"SPH Sd.Kfz.124 Wespe 105mm"
],
"logistics_units": [
"LUV Kettenrad",
"LUV Kubelwagen 82",
@ -44,7 +48,8 @@
"Freya"
],
"naval_units": [
"Boat Schnellboot type S130"
"Boat Schnellboot type S130",
"U-boat VIIC U-flak"
],
"requirements": {
"WW2 Asset Pack": "https://www.digitalcombatsimulator.com/en/products/other/wwii_assets_pack/"
@ -58,4 +63,4 @@
"doctrine": "ww2",
"building_set": "ww2germany",
"cargo_ship": "LST Mk.II"
}
}

View File

@ -91,5 +91,5 @@
"Admiral Gorshkov"
],
"has_jtac": true,
"jtac_unit": "MQ-9 Reaper"
}
"jtac_unit": "Yak-52"
}

View File

@ -63,6 +63,7 @@
],
"missiles": [],
"preset_groups": [
"SA-6",
"SA-11",
"SA-10/S-300PS",
"SA-10B/S-300PS",
@ -99,5 +100,5 @@
"Admiral Kuznetsov"
],
"has_jtac": true,
"jtac_unit": "MQ-9 Reaper"
}
"jtac_unit": "Yak-52"
}

View File

@ -16,6 +16,7 @@
"F-4E Phantom II",
"F-4E-45MC Phantom II",
"OH-58D Kiowa Warrior",
"OH-58D(R) Kiowa Warrior",
"UH-1H Iroquois",
"UH-60A",
"UH-60L"

View File

@ -22,7 +22,7 @@
"C-130J-30 Super Hercules",
"UH-1H Iroquois",
"AH-1W SuperCobra",
"OH-58D Kiowa Warrior",
"OH-58D(R) Kiowa Warrior",
"CH-47D",
"CH-53E"
],

View File

@ -30,6 +30,7 @@
"F-16D Fighting Falcon (Block 50+)",
"F-16D Fighting Falcon (Block 50)",
"F/A-18C Hornet (Lot 20)",
"OH-58D(R) Kiowa Warrior",
"S-3B Viking",
"SH-60B Seahawk",
"UH-1H Iroquois",

View File

@ -35,6 +35,7 @@
"F/A-18E Super Hornet",
"F/A-18F Super Hornet",
"EA-18G Growler",
"OH-58D(R) Kiowa Warrior",
"S-3B Viking",
"SH-60B Seahawk",
"UH-1H Iroquois",

View File

@ -110,6 +110,7 @@ explTable = {
["HB_F4E_GBU_8_HOBOS"] = 874, -- Heatblur F-4E HOBOS
["GBU_10"] = 874, --
["GBU_12"] = 241, --
["HB_F4E_GBU15V1"] = 874, -- Heatblur F-4E GBU-15
["GBU_16"] = 447, --
["GBU_31"] = 874,
["GBU_31_V_3B"] = 874, --
@ -145,6 +146,7 @@ explTable = {
["AGM_12A"] = 113, -- Bullpup A
["AGM_12B"] = 113, -- Bullpup B
["AGM_12C"] = 454, -- Bullpup C
["HB_F4E_AGM_12C"] = 454, -- Bullpup C - Heatblur
["AGM_45A"] = 66, -- Shrike A
["AGM_45B"] = 66, -- Shrike B
["AGM_65A"] = 57,
@ -280,9 +282,6 @@ explTable = {
--["BLU-97/B"] = 10,
--["BLU-97B"] = 10,
--["MK118"] = 8,
["HB_F4E_AGM_12C"] = 440,
["HB_F4E_GBU_8_HOBOS"] = 429,
["HB_F4E_GBU15V1"] = 910,
}
clusterDamage = {

View File

@ -0,0 +1,13 @@
---
name: Australian Army
country: Australia
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery:
- AUS Army Fictional
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,13 @@
---
name: German Army
country: Germany
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery:
- DE Army Fictional
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,13 @@
---
name: Spanish Army
country: Spain
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery:
- ES Army Fictional
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,13 @@
---
name: French Army
country: France
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery:
- FR Army Fictional
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,13 @@
---
name: Greek Army
country: Greece
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery:
- GR Army Fictional
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,29 @@
---
name: Croatian Air Force 393rd Helicopter Squadron
nickname: Night Owls
country: Croatia
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery_set:
- HR 393EH 321
- HR 393EH 322
- HR 393EH 323
- HR 393EH 324
- HR 393EH 325
- HR 393EH 326
- HR 393EH 327
- HR 393EH 328
- HR 393EH 329
- HR 393EH 330
- HR 393EH 331
- HR 393EH 332
- HR 393EH 333
- HR 393EH 334
- HR 393EH 335
- HR 393EH 336
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,13 @@
---
name: Israeli Army
country: Israel
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery:
- ISR Army Fictional
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,13 @@
---
name: Japanese Army
country: Japan
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery:
- JPN Army Fictional
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,13 @@
---
name: Dutch Army
country: The Netherlands
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery:
- NL Army Fictional
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,13 @@
---
name: Polish Army
country: Poland
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery:
- PL Army Fictional
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,13 @@
---
name: Russian Army
country: Russia
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery:
- RU Army Fictional
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,16 @@
---
name: Tennessee National Guard 1-230th Air Cavalry Squadron
nickname: Pink Fuzzy Bunnies of Death
female_pilot_percentage: 10
country: USA
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery_set:
- US Tennessee ANG 1-230 113
- US Tennessee ANG 1-230 152
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,13 @@
---
name: Tunisian Army
country: Tunisia
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery:
- TUN Army
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,13 @@
---
name: Taiwanese Army
country: Combined Joint Task Forces Blue
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery:
- TWN Army Fictional
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,13 @@
---
name: British Army Air Corps Desert
country: UK
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery:
- UK Army Fictional Desert
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,13 @@
---
name: British Army Air Corps
country: UK
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery:
- UK Army Fictional
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,18 @@
---
name: US Army 17th Cavalry Regiment 1st Squadron Troop A
nickname: Roughnecks
female_pilot_percentage: 10
country: USA
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery_set:
- US 1-17 A 002
- US 1-17 A 079
- US 1-17 A 115
- US 1-17 A 344
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,16 @@
---
name: US Army 17th Cavalry Regiment 1st Squadron Troop B
nickname: Bootleg
female_pilot_percentage: 10
country: USA
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery_set:
- US 1-17 B 024
- US 1-17 B 381
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,16 @@
---
name: US Army 6th Cavalry Regiment 1st Squadron Troop A
nickname: Fighting Sixth
female_pilot_percentage: 10
country: USA
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery_set:
- US 1-6 A 161
- US 1-6 A 340
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,15 @@
---
name: US Army 17th Cavalry Regiment 3rd Squadron Troop B
nickname: Blackjack
female_pilot_percentage: 10
country: USA
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery:
- US 3-17 B 937 Iraq
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,18 @@
---
name: US Army 17th Cavalry Regiment 3rd Squadron Troop C
nickname: Crazy Horse
female_pilot_percentage: 10
country: USA
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery_set:
- US 3-17 C 001 Jasmine
- US 3-17 C 179 Presley Marie
- US 3-17 C 561 Ariel
- US 3-17 C 976 Jenny
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,17 @@
---
name: US Army 17th Cavalry Regiment 6th Squadron
female_pilot_percentage: 10
country: USA
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery_set:
- US 6-17 A 523 Iraq 2011
- US 6-17 A 571 Korea 2014
- US 6-17 B 366
- US 6-17 C 367
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,17 @@
---
name: US Army 6th Cavalry Regiment 6th Squadron
nickname: Fighting Sixth
female_pilot_percentage: 10
country: USA
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery_set:
- US 6-6 C 179
- US 6-6 C 587
- US 6-6 C 971
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,18 @@
---
name: US Army 17th Cavalry Regiment 7th Squadron Troop A
nickname: Shadow
female_pilot_percentage: 10
country: USA
role: Light Attack and Scout Helicopter
aircraft: OH-58D(R) Kiowa Warrior
livery_set:
- US 7-17 A 014 Bugs
- US 7-17 A 039 Lola
- US 7-17 A 964 Marvin
- US -17 A 604 Taz
mission_types:
- BAI
- CAS
- DEAD
- Escort
- OCA/Aircraft

View File

@ -0,0 +1,23 @@
---
name: VFA-87
nickname: Golden Warriors
female_pilot_percentage: 7
country: USA
role: Strike Fighter
aircraft: F/A-18C Hornet (Lot 20)
livery: VFA-87
mission_types:
- Anti-ship
- BAI
- BARCAP
- CAS
- DEAD
- Escort
- Intercept
- OCA/Aircraft
- OCA/Runway
- SEAD
- SEAD Escort
- Strike
- Fighter sweep
- TARCAP

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -0,0 +1,46 @@
class: Helicopter
cabin_size: 0 # Can not transport troops
can_carry_crates: false # Can not carry crates
carrier_capable: true
description:
The Bell OH-58 Kiowa is a family of single-engine, single-rotor, military
helicopters used for observation, utility, and direct fire support. Bell Helicopter
manufactured the OH-58 for the United States Army based on its Model 206A JetRanger
helicopter. The OH-58 was in continuous U.S. Army service from 1969 to 2017, when
it was replaced in these roles by the Boeing AH-64 Apache and Eurocopter UH-72 Lakota.
The latest model, the OH-58D Kiowa Warrior, is primarily operated in an armed reconnaissance
role in support of ground troops. The OH-58 has been exported to Austria, Canada,
Croatia, the Dominican Republic, Taiwan, Saudi Arabia, and Greece. It has also been
produced under license in Australia.
introduced: 1983
lha_capable: true
manufacturer: Bell
origin: USA
price: 6
role: Light Attack/Forward Air Control
radios:
inter_flight: AN/ARC-164
intra_flight: AN/ARC-186(V) AM
channels:
type: common
namer: kiowa
intra_flight_radio_index: 2
inter_flight_radio_index: 1
default_overrides:
#NetCrewControlPriority: 0,
#Remove_doors: true,
PDU: true,
#Rifles: true,
#MMS_removal: false,
#Rapid_Deployment_Gear: false,
#ALQ144: false,
#importDrawings: true,
#tacNet: 1,
variants:
OH-58D(R) Kiowa Warrior: {}
tasks:
BAI: 470
CAS: 470
OCA/Aircraft: 470
DEAD: 50
Escort: 10

View File

@ -0,0 +1,7 @@
price: 5
variants:
Yak-52: null
tasks:
BAI: 0
CAS: 0
OCA/Aircraft: 0

View File

@ -0,0 +1,4 @@
class: EarlyWarningRadar
price: 25
variants:
EWR FuSe-65 Würzburg-Riese: null