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

View File

@ -1,8 +1,9 @@
from __future__ import annotations from __future__ import annotations
from copy import deepcopy
from dataclasses import dataclass, field from dataclasses import dataclass, field
from datetime import datetime from datetime import datetime
from typing import Literal, TYPE_CHECKING from typing import Literal, TYPE_CHECKING, Any, Dict, Optional
from dcs import Point from dcs import Point
@ -56,3 +57,17 @@ class FlightWaypoint:
def __hash__(self) -> int: def __hash__(self) -> int:
return hash(id(self)) 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) clone.time_over_target = deepcopy(package.time_over_target)
for f in package.flights: for f in package.flights:
cf = Flight.clone_flight(f) cf = Flight.clone_flight(f)
cf.flight_plan.layout = deepcopy(f.flight_plan.layout)
cf.package = clone cf.package = clone
clone.add_flight(cf) clone.add_flight(cf)
return clone return clone

View File

@ -74,6 +74,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 = {

View File

@ -78,7 +78,11 @@ class PackageBuilder:
) )
# If this is a client flight, set the start_type again to match the configured default # 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 # 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 = ( flight.start_type = (
squadron.coalition.game.settings.default_start_type_client squadron.coalition.game.settings.default_start_type_client
) )

View File

@ -133,6 +133,21 @@ class PackageFulfiller:
threats[EscortType.Sead] = True threats[EscortType.Sead] = True
return threats 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( def plan_mission(
self, self,
mission: ProposedMission, mission: ProposedMission,
@ -207,7 +222,9 @@ class PackageFulfiller:
# This list was generated from the not None set, so this should be # This list was generated from the not None set, so this should be
# impossible. # impossible.
assert escort.escort_type is not None 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"): with tracer.trace("Flight planning"):
self.plan_flight( self.plan_flight(
mission, escort, builder, missing_types, purchase_multiplier mission, escort, builder, missing_types, purchase_multiplier

View File

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

View File

@ -119,7 +119,7 @@ class AircraftGenerator:
if not package.flights: if not package.flights:
continue continue
for flight in package.flights: 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(): if not flight.squadron.location.runway_is_operational():
logging.warning( logging.warning(
f"Runway not operational, skipping flight: {flight.flight_type}" f"Runway not operational, skipping flight: {flight.flight_type}"

View File

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

View File

@ -421,3 +421,16 @@ class PhantomChannelNamer(ChannelNamer):
@classmethod @classmethod
def name(cls) -> str: def name(cls) -> str:
return "phantom" 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( def _cancel_transport_air(
self, transport: Airlift, _transfer: TransferOrder self, transport: Airlift, _transfer: TransferOrder
) -> None: ) -> None:
from game.sim import GameUpdateEvents
from game.server import EventStream
flight = transport.flight flight = transport.flight
flight.package.remove_flight(flight) flight.package.remove_flight(flight)
events = GameUpdateEvents().delete_flight(flight)
if not flight.package.flights: if not flight.package.flights:
self.game.ato_for(self.player).remove_package(flight.package) 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 @cancel_transport.register
def _cancel_transport_convoy( def _cancel_transport_convoy(

View File

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

View File

@ -121,6 +121,8 @@ class PendingTransfersDialog(QDialog):
) -> None: ) -> None:
"""Updates the state of the delete button.""" """Updates the state of the delete button."""
if selected.empty(): if selected.empty():
self.cancel_button.setEnabled(False) self.cancel_button.setEnabled(
self.can_cancel(self.transfer_list.currentIndex())
)
return return
self.cancel_button.setEnabled(self.can_cancel(selected.indexes()[0])) 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.game_model = game_model
self.flight = flight self.flight = flight
self.package_model = package_model
self.events = GameUpdateEvents()
self.setWindowTitle("Edit flight") self.setWindowTitle("Edit flight")
self.setWindowIcon(EVENT_ICONS["strike"]) self.setWindowIcon(EVENT_ICONS["strike"])
@ -34,11 +36,24 @@ class QEditFlightDialog(QDialog):
layout = QVBoxLayout() layout = QVBoxLayout()
self.flight_planner = QFlightPlanner(package_model, flight, game_model) self.flight_planner = QFlightPlanner(package_model, flight, game_model)
self.flight_planner.squadron_changed.connect(self.on_squadron_change)
layout.addWidget(self.flight_planner) layout.addWidget(self.flight_planner)
self.setLayout(layout) self.setLayout(layout)
self.finished.connect(self.on_close) self.finished.connect(self.on_close)
def on_close(self, _result) -> None: def on_squadron_change(self, flight: Flight):
EventStream.put_nowait(GameUpdateEvents().update_flight(self.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() 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 PySide6.QtWidgets import QTabWidget
from game.ato.flight import Flight from game.ato.flight import Flight
@ -10,6 +11,8 @@ from qt_ui.windows.mission.flight.waypoints.QFlightWaypointTab import QFlightWay
class QFlightPlanner(QTabWidget): class QFlightPlanner(QTabWidget):
squadron_changed = Signal(Flight)
def __init__(self, package_model: PackageModel, flight: Flight, gm: GameModel): def __init__(self, package_model: PackageModel, flight: Flight, gm: GameModel):
super().__init__() super().__init__()
@ -28,6 +31,7 @@ class QFlightPlanner(QTabWidget):
self.general_settings_tab.flight_size_changed.connect( self.general_settings_tab.flight_size_changed.connect(
self.payload_tab.resize_for_flight 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.general_settings_tab, "General Flight settings")
self.addTab(self.payload_tab, "Payload") self.addTab(self.payload_tab, "Payload")
self.addTab(self.waypoint_tab, "Waypoints") self.addTab(self.waypoint_tab, "Waypoints")

View File

@ -11,14 +11,21 @@ from PySide6.QtWidgets import (
QHBoxLayout, QHBoxLayout,
QCheckBox, QCheckBox,
QVBoxLayout, QVBoxLayout,
QPushButton,
QDialog,
QWidget,
) )
from game import Game from game import Game
from game.ato.closestairfields import ClosestAirfields
from game.ato.flight import Flight from game.ato.flight import Flight
from game.ato.flightroster import FlightRoster from game.ato.flightroster import FlightRoster
from game.ato.iflightroster import IFlightRoster from game.ato.iflightroster import IFlightRoster
from game.dcs.aircrafttype import AircraftType
from game.squadrons import Squadron from game.squadrons import Squadron
from game.squadrons.pilot import Pilot from game.squadrons.pilot import Pilot
from game.theater import ControlPoint, OffMapSpawn
from game.utils import nautical_miles
from qt_ui.models import PackageModel from qt_ui.models import PackageModel
@ -237,8 +244,49 @@ class FlightRosterEditor(QVBoxLayout):
controls.replace(squadron, new_roster) 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): class QFlightSlotEditor(QGroupBox):
flight_resized = Signal(int) flight_resized = Signal(int)
squadron_changed = Signal(Flight)
def __init__( def __init__(
self, self,
@ -250,6 +298,10 @@ class QFlightSlotEditor(QGroupBox):
self.package_model = package_model self.package_model = package_model
self.flight = flight self.flight = flight
self.game = game 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 available = self.flight.squadron.untasked_aircraft
max_count = self.flight.count + available max_count = self.flight.count + available
if max_count > 4: if max_count > 4:
@ -268,7 +320,12 @@ class QFlightSlotEditor(QGroupBox):
layout.addWidget(self.aircraft_count_spinner, 0, 1) layout.addWidget(self.aircraft_count_spinner, 0, 1)
layout.addWidget(QLabel("Squadron:"), 1, 0) 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) layout.addWidget(QLabel("Assigned pilots:"), 2, 0)
self.roster_editor = FlightRosterEditor(flight.squadron, flight.roster) self.roster_editor = FlightRosterEditor(flight.squadron, flight.roster)
@ -276,6 +333,46 @@ class QFlightSlotEditor(QGroupBox):
self.setLayout(layout) 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): def _changed_aircraft_count(self):
old_count = self.flight.count old_count = self.flight.count
new_count = int(self.aircraft_count_spinner.value()) 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. # Otherwise, set the start_type as configured for AI.
# https://github.com/dcs-liberation/dcs_liberation/issues/1567 # 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.start_type = (
self.flight.coalition.game.settings.default_start_type_client 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): class QGeneralFlightSettingsTab(QFrame):
flight_size_changed = Signal() flight_size_changed = Signal()
squadron_changed = Signal(Flight)
def __init__( def __init__(
self, self,
@ -36,6 +37,7 @@ class QGeneralFlightSettingsTab(QFrame):
self.flight_slot_editor = QFlightSlotEditor(package_model, flight, game.game) 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.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: for pc in self.flight_slot_editor.roster_editor.pilot_controls:
pc.player_toggled.connect(self.on_player_toggle) pc.player_toggled.connect(self.on_player_toggle)
pc.player_toggled.connect( pc.player_toggled.connect(

View File

@ -146,11 +146,6 @@ class QFactionUnits(QScrollArea):
self, cb: QComboBox, callback: Callable, predicate: Callable self, cb: QComboBox, callback: Callable, predicate: Callable
): ):
for ac_dcs in sorted(AircraftType.each_dcs_type(), key=lambda x: x.id): 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): for ac in AircraftType.for_dcs_type(ac_dcs):
if ac in self.faction.aircraft: if ac in self.faction.aircraft:
continue continue

View File

@ -32,7 +32,7 @@ pluggy==1.5.0
pre-commit==3.7.0 pre-commit==3.7.0
pydantic==2.7.1 pydantic==2.7.1
pydantic-settings==2.2.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==5.13.2
pyinstaller-hooks-contrib==2024.0 pyinstaller-hooks-contrib==2024.0
pyparsing==3.1.2 pyparsing==3.1.2

View File

@ -34,6 +34,8 @@ miz: battle_for_no_mans_land.miz
performance: 1 performance: 1
recommended_start_date: 2001-11-10 recommended_start_date: 2001-11-10
version: "10.7" version: "10.7"
settings:
squadron_start_full: true
squadrons: squadrons:
#Port Stanley #Port Stanley
1: 1:
@ -45,12 +47,11 @@ squadrons:
- primary: BAI - primary: BAI
secondary: any 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

View File

@ -3,12 +3,12 @@ name: Caucasus - Black Sea
theater: Caucasus theater: Caucasus
authors: Colonel Panic authors: Colonel Panic
description: 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_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: "10.7" version: "10.7"
squadrons: squadrons:
# Anapa-Vityazevo # Anapa-Vityazevo

View File

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

View File

@ -11,31 +11,32 @@ description:
Exercise Bright Star. The exercise has grown over the years to incorporate Exercise Bright Star. The exercise has grown over the years to incorporate
a wide array of international participants. The 2025 iteration of a wide array of international participants. The 2025 iteration of
Exercise Bright Star features eight participating nations alongside Exercise Bright Star features eight participating nations alongside
fourteen observer nations.</p><p> fourteen observer nations.</p>
For the 2025 exercises, the United States, along with a select contingent <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 from the exercise coalition, will take on the role of a hypothetical
adversarial nation, dubbed Orangeland. This scenario is designed to adversarial nation, dubbed Orangeland. This scenario is designed to
simulate a mock invasion against Cairo, and presents a valuable simulate a mock invasion against Cairo, and presents a valuable
opportunity for participating nations to refine their joint operational opportunity for participating nations to refine their joint operational
capabilities and improve logistical and tactical interoperability.</p><p> capabilities and improve logistical and tactical interoperability.</p>
A historic addition to Exercise Bright Star 2025 is the participation of <p>A historic addition to Exercise Bright Star 2025 is the participation of
Israel as an observer nation. This marks a significant milestone, given Israel as an observer nation. This marks a significant milestone, given
the complex historical relations in the region, and symbolises a step the complex historical relations in the region, and symbolises a step
forward in regional collaboration and military diplomacy. Israel's role, forward in regional collaboration and military diplomacy. Israel's role,
hosting the aggressor faction of the exercise coalition at its airfields, hosting the aggressor faction of the exercise coalition at its airfields,
not only demonstrates the broadening scope of the exercise but also highlights not only demonstrates the broadening scope of the exercise but also highlights
the value of fostering an environment of mutual cooperation and shared the value of fostering an environment of mutual cooperation and shared
security objectives.</p><p> security objectives.</p>
<strong>Note:</strong> There is no overland supply route between Melez and <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 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 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 miz: exercise_bright_star.miz
performance: 1 performance: 1
recommended_start_date: 2025-09-01 recommended_start_date: 2025-09-01
version: "10.7" version: "10.7"
settings: settings:
hercules: true hercules: true
squadron_start_full: true
squadrons: squadrons:
Blue CV-1: Blue CV-1:
- primary: SEAD - primary: SEAD
@ -56,12 +57,12 @@ squadrons:
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: 8 size: 4
# Ovda # Ovda
10: 10:
- primary: CAS - primary: CAS
@ -73,7 +74,7 @@ squadrons:
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:
@ -83,19 +84,14 @@ squadrons:
secondary: any secondary: any
aircraft: aircraft:
- JF-17 Thunder - JF-17 Thunder
size: 12 size: 16
# Ramon Airbase # Ramon Airbase
9: 9:
- primary: BARCAP
secondary: any
aircraft:
- Mirage 2000C
size: 12
- primary: DEAD - primary: DEAD
secondary: any secondary: any
aircraft: aircraft:
- F-16CM Fighting Falcon (Block 50) - F-16CM Fighting Falcon (Block 50)
size: 20 size: 16
- primary: BAI - primary: BAI
secondary: any secondary: any
aircraft: aircraft:
@ -104,7 +100,6 @@ squadrons:
- primary: Air Assault - primary: Air Assault
secondary: any secondary: any
aircraft: aircraft:
- UH-60L
- UH-60A - UH-60A
size: 4 size: 4
# Ben-Gurion # Ben-Gurion
@ -114,7 +109,7 @@ squadrons:
aircraft: aircraft:
- C-130J-30 Super Hercules - C-130J-30 Super Hercules
- C-130 - C-130
size: 8 size: 2
- primary: AEW&C - primary: AEW&C
aircraft: aircraft:
- E-3A - E-3A
@ -184,7 +179,7 @@ squadrons:
aircraft: aircraft:
- C-130J-30 Super Hercules - 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:

View File

@ -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: "10.7" version: "10.7"
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
@ -56,7 +55,12 @@ squadrons:
secondary: any 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,24 +71,28 @@ 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
1: 1:
- primary: CAS - primary: CAS
@ -113,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

View File

@ -21,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: "10.7" version: "10.7"
settings:
squadron_start_full: true
squadrons: squadrons:
#Blue CV (90) #Blue CV (90)
Blue-CV: Blue-CV:
@ -50,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)

View File

@ -7,7 +7,7 @@ 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
Ushuaia 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 Ushuaia from an LHA 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" version: "10.7"
settings: settings:
hercules: true hercules: true
squadron_start_full: true
squadrons: squadrons:
#Mount Pleasant #Mount Pleasant
2: 2:
@ -41,12 +42,17 @@ squadrons:
secondary: any secondary: any
aircraft: aircraft:
- AH-64D Apache Longbow - AH-64D Apache Longbow
size: 8 size: 4
- primary: CAS
secondary: any
aircraft:
- OH-58D(R) Kiowa Warrior
size: 4
- primary: Refueling - primary: Refueling
aircraft: aircraft:
- KC-135 Stratotanker - KC-135 Stratotanker
size: 1 size: 1
- primary: Air Assault - primary: Transport
secondary: any secondary: any
aircraft: aircraft:
- C-130J-30 Super Hercules - C-130J-30 Super Hercules
@ -70,12 +76,12 @@ squadrons:
secondary: any secondary: any
aircraft: aircraft:
- F/A-18C Hornet (Lot 20) - F/A-18C Hornet (Lot 20)
size: 40 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
@ -87,7 +93,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
@ -107,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

View File

@ -38,12 +38,14 @@ 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: "10.7" version: "10.7"
settings:
squadron_start_full: true
squadrons: squadrons:
#Tarawa Class LHA #Tarawa Class LHA
Blue-LHA: Blue-LHA:
@ -51,7 +53,12 @@ squadrons:
secondary: any 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:
@ -79,7 +86,7 @@ squadrons:
- 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: Transport - primary: Transport
secondary: any secondary: any

View File

@ -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+)
@ -261,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
@ -327,6 +330,7 @@ squadrons:
- 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
@ -383,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
@ -394,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
@ -403,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

View File

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

View File

@ -32,6 +32,7 @@ recommended_player_income_multiplier: 0.2
recommended_enemy_income_multiplier: 0.2 recommended_enemy_income_multiplier: 0.2
settings: settings:
hercules: true hercules: true
squadron_start_full: true
version: "10.7" version: "10.7"
squadrons: squadrons:
Blue CV-1: Blue CV-1:
@ -42,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:
@ -51,7 +52,6 @@ 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)
@ -66,12 +66,12 @@ squadrons:
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
@ -87,12 +87,12 @@ 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
@ -114,7 +114,7 @@ squadrons:
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
@ -134,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:

View File

@ -20,18 +20,14 @@ recommended_start_date: 2019-12-23
version: "10.7" version: "10.7"
settings: settings:
hercules: true 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
@ -67,12 +63,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
@ -90,6 +80,16 @@ squadrons:
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
- primary: Air Assault
secondary: any
aircraft:
- UH-60A
size: 4
# Damascus # Damascus
7: 7:
- primary: Strike - primary: Strike
@ -107,7 +107,7 @@ squadrons:
- primary: CAS - primary: CAS
secondary: any 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
@ -145,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
@ -161,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

View File

@ -5,19 +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><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>The United Nations Observer Mission in Georgia (UNOMIG) has been actively
</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. monitoring the ceasefire agreement between Georgia and its breakaway region
</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. of Abkhazia. However, recent developments have escalated tensions, leading
</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. to a precarious situation for the UN observers. Along with a small contingent
</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. of international troops, they have found themselves isolated due to the
</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> 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 miz: operation_vectrons_claw.miz
performance: 1 performance: 1
recommended_start_date: 2008-08-08 recommended_start_date: 2008-08-08
version: "10.7" version: "10.7"
control_points: settings:
Squadrons from Incirlik: hercules: true
ferry_only: true squadron_start_full: true
squadrons: squadrons:
Blue CV-1: Blue CV-1:
- primary: BARCAP - primary: BARCAP
@ -29,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
@ -42,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
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 - primary: CAS
secondary: any secondary: any
aircraft: aircraft:
- AH-64D Apache Longbow - AH-64D Apache Longbow
size: 4 size: 4
- primary: CAS - primary: CAS
secondary: air-to-ground secondary: any
aircraft: aircraft:
- A-10C Thunderbolt II (Suite 7) - OH-58D(R) Kiowa Warrior
size: 6 size: 4
#Vaziani
31:
- primary: DEAD - primary: DEAD
secondary: any secondary: any
aircraft: aircraft:
@ -75,82 +102,109 @@ 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
- primary: Transport
secondary: any
aircraft:
- C-130J-30 Super Hercules
- C-130
size: 2
Bombers from RAF Fairford: Bombers from RAF Fairford:
- primary: Anti-ship - primary: Anti-ship
secondary: air-to-ground secondary: air-to-ground
aircraft: aircraft:
- B-52H Stratofortress - B-52H Stratofortress
size: 4 size: 4
Bombers from Base Aérea de Morón: #OWNFOR FARP
- primary: OCA/Runway
secondary: air-to-ground
aircraft:
- B-1B Lancer
size: 4
#FARPs
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: 4 size: 4
#Sukhumi-Babushara #Sukhumi-Babushara
20: 20:
- primary: TARCAP - primary: SEAD Sweep
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
size: 8 size: 8
- primary: SEAD - primary: SEAD Escort
secondary: air-to-ground secondary:
- BAI
- SEAD
- DEAD
- OCA/Runway
- SEAD Sweep
aircraft: aircraft:
- Su-24M Fencer-D - Su-24M Fencer-D
size: 20 size: 20
- primary: DEAD - primary: BAI
secondary: air-to-ground secondary:
- SEAD
- DEAD
- OCA/Runway
- SEAD Escort
- SEAD Sweep
aircraft: aircraft:
- Su-34 Fullback - Su-34 Fullback
size: 20 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 #Maykop-Khanskaya
16: 16:
- primary: Strike - primary: DEAD
secondary: air-to-ground secondary: air-to-ground
aircraft: aircraft:
- Tu-22M3 Backfire-C - Tu-22M3 Backfire-C
size: 20 size: 20
#Anapa-Vityazevo #Anapa-Vityazevo
12: 12:
- primary: Strike - primary: AEW&C
secondary: air-to-ground
aircraft: aircraft:
- Tu-95MS Bear-H - A-50
size: 16 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: 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 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 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> 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 miz: operation_velvet_thunder.miz
performance: 1 performance: 1
recommended_start_date: 1970-11-29 recommended_start_date: 1970-11-29
@ -27,6 +28,7 @@ settings:
a4_skyhawk: true a4_skyhawk: true
hercules: true hercules: true
ov10a_bronco: true ov10a_bronco: true
squadron_start_full: true
squadrons: squadrons:
#Andersen AFB #Andersen AFB
6: 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)", "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",

View File

@ -31,6 +31,7 @@
"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",

View File

@ -49,6 +49,7 @@
"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",

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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