Allow radio-presets to be defined in squadron files

This commit is contained in:
Raffson
2023-08-13 13:16:30 +02:00
parent 95f169bb58
commit 7baba78bca
7 changed files with 40 additions and 1 deletions

View File

@@ -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,

View File

@@ -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,

View File

@@ -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]]: