mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
F4U-1D support except banner & payloads
This commit is contained in:
@@ -41,6 +41,8 @@ from game.radio.channels import (
|
||||
WarthogChannelNamer,
|
||||
PhantomChannelNamer,
|
||||
KiowaChannelNamer,
|
||||
ARC5RadioChannelAllocator,
|
||||
ARC5ChannelNamer,
|
||||
)
|
||||
from game.utils import (
|
||||
Distance,
|
||||
@@ -94,6 +96,7 @@ class RadioConfig:
|
||||
return None
|
||||
allocator_type: Type[RadioChannelAllocator] = {
|
||||
"SCR-522": SCR522RadioChannelAllocator,
|
||||
"ARC-5": ARC5RadioChannelAllocator,
|
||||
"common": CommonRadioChannelAllocator,
|
||||
"farmer": FarmerRadioChannelAllocator,
|
||||
"noop": NoOpChannelAllocator,
|
||||
@@ -105,6 +108,7 @@ class RadioConfig:
|
||||
def make_namer(cls, config: dict[str, Any]) -> Type[ChannelNamer]:
|
||||
return {
|
||||
"SCR-522": SCR522ChannelNamer,
|
||||
"ARC-5": ARC5ChannelNamer,
|
||||
"default": ChannelNamer,
|
||||
"huey": HueyChannelNamer,
|
||||
"mirage": MirageChannelNamer,
|
||||
|
||||
@@ -219,6 +219,27 @@ class SCR522RadioChannelAllocator(RadioChannelAllocator):
|
||||
return "SCR-522"
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class ARC5RadioChannelAllocator(RadioChannelAllocator):
|
||||
"""Preset channel allocator for the ARC-5 WW2 radios. (4 channels)"""
|
||||
|
||||
def assign_channels_for_flight(
|
||||
self, flight: FlightData, mission_data: MissionData
|
||||
) -> None:
|
||||
radio_id = 1
|
||||
flight.assign_channel(radio_id, 1, flight.intra_flight_channel)
|
||||
if flight.departure.atc is not None:
|
||||
flight.assign_channel(radio_id, 2, flight.departure.atc)
|
||||
if flight.arrival.atc is not None:
|
||||
flight.assign_channel(radio_id, 3, flight.arrival.atc)
|
||||
|
||||
# TODO : Some GCI on Channel 4 ?
|
||||
|
||||
@classmethod
|
||||
def name(cls) -> str:
|
||||
return "ARC-5"
|
||||
|
||||
|
||||
class ChannelNamer:
|
||||
"""Base class allowing channel name customization per-aircraft.
|
||||
|
||||
@@ -376,6 +397,23 @@ class SCR522ChannelNamer(ChannelNamer):
|
||||
return "SCR-522"
|
||||
|
||||
|
||||
class ARC5ChannelNamer(ChannelNamer):
|
||||
"""
|
||||
Channel namer for F4U-1D Corsair
|
||||
"""
|
||||
|
||||
@staticmethod
|
||||
def channel_name(radio_id: int, channel_id: int) -> str:
|
||||
if channel_id > 3:
|
||||
return "?"
|
||||
else:
|
||||
return f"Channel " + "1234"[channel_id - 1]
|
||||
|
||||
@classmethod
|
||||
def name(cls) -> str:
|
||||
return "ARC-5"
|
||||
|
||||
|
||||
class LegacyWarthogChannelNamer(ChannelNamer):
|
||||
"""Channel namer for the legacy A-10C."""
|
||||
|
||||
|
||||
@@ -231,6 +231,15 @@ RADIOS: List[Radio] = [
|
||||
# P-51 / P-47 Radio
|
||||
# 4 preset channels (A/B/C/D)
|
||||
Radio("SCR522", (RadioRange(MHz(100), MHz(156), kHz(25), Modulation.AM),)),
|
||||
# F4U-1D Radio
|
||||
# 4 preset channels (1/2/3/4)
|
||||
Radio(
|
||||
"ARC-5",
|
||||
(
|
||||
RadioRange(MHz(100), MHz(150), kHz(25), Modulation.AM),
|
||||
RadioRange(MHz(220), MHz(390), kHz(25), Modulation.AM),
|
||||
),
|
||||
),
|
||||
# JF-17 Radios should use AM
|
||||
Radio("R&S M3AR VHF", (RadioRange(MHz(120), MHz(174), kHz(25), Modulation.AM),)),
|
||||
Radio("R&S M3AR UHF", (RadioRange(MHz(225), MHz(400), kHz(25), Modulation.AM),)),
|
||||
|
||||
Reference in New Issue
Block a user