From efd2c40cfc9e79aec5888ee8ddea8f14d54da4d3 Mon Sep 17 00:00:00 2001 From: Raffson Date: Mon, 10 Apr 2023 14:38:06 +0200 Subject: [PATCH] Avoid generating/planning flights without an operational runway --- game/missiongenerator/aircraft/aircraftgenerator.py | 7 +++++++ qt_ui/windows/mission/flight/SquadronSelector.py | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/game/missiongenerator/aircraft/aircraftgenerator.py b/game/missiongenerator/aircraft/aircraftgenerator.py index 13fd568b..9cccbd7f 100644 --- a/game/missiongenerator/aircraft/aircraftgenerator.py +++ b/game/missiongenerator/aircraft/aircraftgenerator.py @@ -108,10 +108,17 @@ class AircraftGenerator: self._reserve_frequencies_and_tacan(ato) for package in reversed(sorted(ato.packages, key=lambda x: x.time_over_target)): + logging.info(f"Generating package for target: {package.target.name}") if not package.flights: continue for flight in package.flights: if flight.alive: + if not flight.squadron.location.runway_is_operational(): + logging.warning( + f"Runway not operational, skipping flight: {flight.flight_type}" + ) + flight.return_pilots_and_aircraft() + continue logging.info(f"Generating flight: {flight.unit_type}") group = self.create_and_configure_flight( flight, country, dynamic_runways diff --git a/qt_ui/windows/mission/flight/SquadronSelector.py b/qt_ui/windows/mission/flight/SquadronSelector.py index 459de9d7..64ef6d99 100644 --- a/qt_ui/windows/mission/flight/SquadronSelector.py +++ b/qt_ui/windows/mission/flight/SquadronSelector.py @@ -48,7 +48,9 @@ class SquadronSelector(QComboBox): return for squadron in self.air_wing.squadrons_for(aircraft): - if task in squadron.mission_types and squadron.untasked_aircraft: + valid_task = task in squadron.mission_types + runway_operational = squadron.location.runway_is_operational() + if valid_task and squadron.untasked_aircraft and runway_operational: self.addItem(f"{squadron.location}: {squadron}", squadron) if self.count() == 0: