From f9f0b429b668a458a7484bd64867bc2648006a1b Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Tue, 31 Aug 2021 22:11:59 -0700 Subject: [PATCH] Set the flight airfields based on the Squadron. --- game/commander/packagebuilder.py | 2 -- game/squadrons/squadron.py | 4 ++++ game/transfers.py | 2 -- gen/aircraft.py | 19 +++++++------------ gen/flights/flight.py | 6 ++---- .../windows/mission/flight/QFlightCreator.py | 2 -- 6 files changed, 13 insertions(+), 22 deletions(-) diff --git a/game/commander/packagebuilder.py b/game/commander/packagebuilder.py index c990056b..0f84b69a 100644 --- a/game/commander/packagebuilder.py +++ b/game/commander/packagebuilder.py @@ -54,8 +54,6 @@ class PackageBuilder: plan.num_aircraft, plan.task, start_type, - departure=airfield, - arrival=airfield, divert=self.find_divert_field(squadron.aircraft, airfield), ) self.package.add_flight(flight) diff --git a/game/squadrons/squadron.py b/game/squadrons/squadron.py index 85fc19fc..4cf43cbf 100644 --- a/game/squadrons/squadron.py +++ b/game/squadrons/squadron.py @@ -308,6 +308,10 @@ class Squadron: def expected_size_next_turn(self) -> int: return self.owned_aircraft + self.pending_deliveries + @property + def arrival(self) -> ControlPoint: + return self.location if self.destination is None else self.destination + def plan_relocation(self, destination: ControlPoint) -> None: if destination == self.location: logging.warning( diff --git a/game/transfers.py b/game/transfers.py index 862af050..0c8c6184 100644 --- a/game/transfers.py +++ b/game/transfers.py @@ -360,8 +360,6 @@ class AirliftPlanner: flight_size, FlightType.TRANSPORT, start_type, - departure=squadron.location, - arrival=squadron.location, divert=None, cargo=transfer, ) diff --git a/gen/aircraft.py b/gen/aircraft.py index 8c392040..2b0747b0 100644 --- a/gen/aircraft.py +++ b/gen/aircraft.py @@ -606,41 +606,36 @@ class AircraftConflictGenerator: for squadron in control_point.squadrons: try: - self._spawn_unused_at(control_point, country, faction, squadron) + self._spawn_unused_for(squadron, country, faction) except NoParkingSlotError: # If we run out of parking, stop spawning aircraft. return - def _spawn_unused_at( - self, - control_point: Airfield, - country: Country, - faction: Faction, - squadron: Squadron, + def _spawn_unused_for( + self, squadron: Squadron, country: Country, faction: Faction ) -> None: + assert isinstance(squadron.location, Airfield) for _ in range(squadron.untasked_aircraft): # Creating a flight even those this isn't a fragged mission lets us # reuse the existing debriefing code. # TODO: Special flight type? flight = Flight( - Package(control_point), + Package(squadron.location), faction.country, squadron, 1, FlightType.BARCAP, "Cold", - departure=control_point, - arrival=control_point, divert=None, ) group = self._generate_at_airport( - name=namegen.next_aircraft_name(country, control_point.id, flight), + name=namegen.next_aircraft_name(country, flight.departure.id, flight), side=country, unit_type=squadron.aircraft.dcs_unit_type, count=1, start_type="Cold", - airport=control_point.airport, + airport=squadron.location.airport, ) self._setup_livery(flight, group) diff --git a/gen/flights/flight.py b/gen/flights/flight.py index a4a2b427..b37a3d11 100644 --- a/gen/flights/flight.py +++ b/gen/flights/flight.py @@ -280,8 +280,6 @@ class Flight: count: int, flight_type: FlightType, start_type: str, - departure: ControlPoint, - arrival: ControlPoint, divert: Optional[ControlPoint], custom_name: Optional[str] = None, cargo: Optional[TransferOrder] = None, @@ -295,8 +293,8 @@ class Flight: self.roster = FlightRoster(self.squadron, initial_size=count) else: self.roster = roster - self.departure = departure - self.arrival = arrival + self.departure = self.squadron.location + self.arrival = self.squadron.arrival self.divert = divert self.flight_type = flight_type # TODO: Replace with FlightPlan. diff --git a/qt_ui/windows/mission/flight/QFlightCreator.py b/qt_ui/windows/mission/flight/QFlightCreator.py index 796ca5cd..fbbacab0 100644 --- a/qt_ui/windows/mission/flight/QFlightCreator.py +++ b/qt_ui/windows/mission/flight/QFlightCreator.py @@ -182,8 +182,6 @@ class QFlightCreator(QDialog): roster.max_size, task, self.start_type.currentText(), - squadron.location, - squadron.location, divert, custom_name=self.custom_name_text, roster=roster,