diff --git a/game/dcs/aircrafttype.py b/game/dcs/aircrafttype.py index 085bc676..8c2764b4 100644 --- a/game/dcs/aircrafttype.py +++ b/game/dcs/aircrafttype.py @@ -20,6 +20,7 @@ from game.radio.channels import ( CommonRadioChannelAllocator, FarmerRadioChannelAllocator, HueyChannelNamer, + LegacyWarthogChannelNamer, MirageChannelNamer, MirageF1CEChannelNamer, NoOpChannelAllocator, @@ -31,6 +32,7 @@ from game.radio.channels import ( ViggenChannelNamer, ViggenRadioChannelAllocator, ViperChannelNamer, + WarthogChannelNamer, ) from game.utils import ( Distance, @@ -104,6 +106,8 @@ class RadioConfig: "viggen": ViggenChannelNamer, "viper": ViperChannelNamer, "apache": ApacheChannelNamer, + "a10c-legacy": LegacyWarthogChannelNamer, + "a10c-ii": WarthogChannelNamer, }[config.get("namer", "default")] diff --git a/game/radio/channels.py b/game/radio/channels.py index 8f18a14d..e859a5a8 100644 --- a/game/radio/channels.py +++ b/game/radio/channels.py @@ -1,7 +1,7 @@ from __future__ import annotations from dataclasses import dataclass -from typing import Optional, Any, TYPE_CHECKING +from typing import Any, Optional, TYPE_CHECKING if TYPE_CHECKING: from game.missiongenerator.aircraft.flightdata import FlightData @@ -355,3 +355,37 @@ class SCR522ChannelNamer(ChannelNamer): @classmethod def name(cls) -> str: return "SCR-522" + + +class LegacyWarthogChannelNamer(ChannelNamer): + """Channel namer for the legacy A-10C.""" + + @staticmethod + def channel_name(radio_id: int, channel_id: int) -> str: + radio_name = { + 1: "VHF AM", + 2: "UHF", + 3: "VHF FM", + }[radio_id] + return f"{radio_name} Ch {channel_id}" + + @classmethod + def name(cls) -> str: + return "a10c-legacy" + + +class WarthogChannelNamer(ChannelNamer): + """Channel namer for the legacy A-10C II""" + + @staticmethod + def channel_name(radio_id: int, channel_id: int) -> str: + radio_name = { + 1: "COM 1", + 2: "UHF", + 3: "VHF FM", + }[radio_id] + return f"{radio_name} Ch {channel_id}" + + @classmethod + def name(cls) -> str: + return "a10c-ii" diff --git a/resources/units/aircraft/A-10C.yaml b/resources/units/aircraft/A-10C.yaml index 5c7c27bb..4a292fd7 100644 --- a/resources/units/aircraft/A-10C.yaml +++ b/resources/units/aircraft/A-10C.yaml @@ -21,5 +21,6 @@ radios: inter_flight: AN/ARC-164 channels: type: common + namer: a10c-legacy intra_flight_radio_index: 2 inter_flight_radio_index: 2 diff --git a/resources/units/aircraft/A-10C_2.yaml b/resources/units/aircraft/A-10C_2.yaml index e4441939..95ec9352 100644 --- a/resources/units/aircraft/A-10C_2.yaml +++ b/resources/units/aircraft/A-10C_2.yaml @@ -25,5 +25,6 @@ radios: inter_flight: AN/ARC-210 channels: type: common + namer: a10c-ii intra_flight_radio_index: 2 inter_flight_radio_index: 1