diff --git a/game/dcs/aircrafttype.py b/game/dcs/aircrafttype.py index 78fc8cf0..87d6866b 100644 --- a/game/dcs/aircrafttype.py +++ b/game/dcs/aircrafttype.py @@ -21,6 +21,7 @@ from game.radio.channels import ( CommonRadioChannelAllocator, FarmerRadioChannelAllocator, HueyChannelNamer, + LegacyWarthogChannelNamer, MirageChannelNamer, MirageF1CEChannelNamer, NoOpChannelAllocator, @@ -32,6 +33,7 @@ from game.radio.channels import ( ViggenChannelNamer, ViggenRadioChannelAllocator, ViperChannelNamer, + WarthogChannelNamer, ) from game.utils import ( Distance, @@ -106,6 +108,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 3b6600ce..7d85fef9 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 @@ -358,3 +358,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 1721bcc5..dfb5082d 100644 --- a/resources/units/aircraft/A-10C.yaml +++ b/resources/units/aircraft/A-10C.yaml @@ -19,6 +19,7 @@ radios: inter_flight: AN/ARC-164 channels: type: common + namer: a10c-legacy intra_flight_radio_index: 1 inter_flight_radio_index: 2 tasks: diff --git a/resources/units/aircraft/A-10C_2.yaml b/resources/units/aircraft/A-10C_2.yaml index 37ed57ba..0f3d785c 100644 --- a/resources/units/aircraft/A-10C_2.yaml +++ b/resources/units/aircraft/A-10C_2.yaml @@ -25,7 +25,7 @@ radios: inter_flight: AN/ARC-210 channels: type: common - # namer: a10c-ii + namer: a10c-ii intra_flight_radio_index: 2 inter_flight_radio_index: 1 tasks: