mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Allow radio-presets to be defined in squadron files
This commit is contained in:
@@ -15,6 +15,7 @@ from game.settings import AutoAtoBehavior, Settings
|
||||
from game.theater import ParkingType
|
||||
from .pilot import Pilot, PilotStatus
|
||||
from ..db.database import Database
|
||||
from ..radio.radios import RadioFrequency
|
||||
from ..utils import meters
|
||||
|
||||
if TYPE_CHECKING:
|
||||
@@ -39,6 +40,7 @@ class Squadron:
|
||||
livery: Optional[str]
|
||||
primary_task: FlightType
|
||||
auto_assignable_mission_types: set[FlightType]
|
||||
radio_presets: dict[str, list[RadioFrequency]]
|
||||
operating_bases: OperatingBases
|
||||
female_pilot_percentage: int
|
||||
|
||||
@@ -473,6 +475,7 @@ class Squadron:
|
||||
squadron_def.livery,
|
||||
primary_task,
|
||||
squadron_def.auto_assignable_mission_types,
|
||||
squadron_def.radio_presets,
|
||||
squadron_def.operating_bases,
|
||||
squadron_def.female_pilot_percentage,
|
||||
squadron_def.pilot_pool,
|
||||
|
||||
@@ -9,6 +9,7 @@ from dcs.country import Country
|
||||
|
||||
from game.dcs.aircrafttype import AircraftType
|
||||
from game.dcs.countries import country_with_name
|
||||
from game.radio.radios import RadioFrequency
|
||||
from game.squadrons.operatingbases import OperatingBases
|
||||
from game.squadrons.pilot import Pilot
|
||||
|
||||
@@ -26,6 +27,7 @@ class SquadronDef:
|
||||
aircraft: AircraftType
|
||||
livery: Optional[str]
|
||||
auto_assignable_mission_types: set[FlightType]
|
||||
radio_presets: dict[str, list[RadioFrequency]]
|
||||
operating_bases: OperatingBases
|
||||
female_pilot_percentage: int
|
||||
pilot_pool: list[Pilot]
|
||||
@@ -75,6 +77,20 @@ class SquadronDef:
|
||||
pilots.extend([Pilot(n, player=True) for n in data.get("players", [])])
|
||||
female_pilot_percentage = data.get("female_pilot_percentage", 6)
|
||||
|
||||
radio_presets = data.get("radio_presets", {})
|
||||
for radio in radio_presets:
|
||||
freq_list: list[RadioFrequency] = []
|
||||
for freq in radio_presets[radio]:
|
||||
# TODO: set up modulation for UI manipulations (issue#89)
|
||||
freq_list.append(RadioFrequency(int(freq * 1000000)))
|
||||
radio_presets[radio] = freq_list
|
||||
|
||||
for radio in radio_presets:
|
||||
print(radio, ":")
|
||||
for freq in radio_presets[radio]:
|
||||
print(freq)
|
||||
print()
|
||||
|
||||
return SquadronDef(
|
||||
name=data["name"],
|
||||
nickname=data.get("nickname"),
|
||||
@@ -83,6 +99,7 @@ class SquadronDef:
|
||||
aircraft=unit_type,
|
||||
livery=data.get("livery"),
|
||||
auto_assignable_mission_types=set(unit_type.iter_task_capabilities()),
|
||||
radio_presets=radio_presets,
|
||||
operating_bases=OperatingBases.from_yaml(unit_type, data.get("bases", {})),
|
||||
female_pilot_percentage=female_pilot_percentage,
|
||||
pilot_pool=pilots,
|
||||
|
||||
@@ -22,7 +22,7 @@ class SquadronDefLoader:
|
||||
def squadron_directories() -> Iterator[Path]:
|
||||
from game import persistency
|
||||
|
||||
yield persistency.base_path() / "Retribution/Squadrons"
|
||||
yield persistency.base_path() / "Retribution" / "Squadrons"
|
||||
yield Path("resources/squadrons")
|
||||
|
||||
def load(self) -> dict[AircraftType, list[SquadronDef]]:
|
||||
|
||||
Reference in New Issue
Block a user