From bb2bf78e8a05f06fc0a20a4a4dd1ee4ccd0666b8 Mon Sep 17 00:00:00 2001 From: Mike Date: Sun, 20 Jun 2021 21:56:00 +0100 Subject: [PATCH] Fix current_airlift_capacity always returning 0. Squadron.aircraft is of type AircraftType, while TRANSPORT_CAPABLE is a list of pydcs DcsUnitTypes. As a result, the intersection was always empty causing the function to always return 0. --- game/squadrons.py | 4 ++-- game/transfers.py | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/game/squadrons.py b/game/squadrons.py index 0f6097a2..c60d94de 100644 --- a/game/squadrons.py +++ b/game/squadrons.py @@ -368,9 +368,9 @@ class AirWing: def squadrons_for(self, aircraft: AircraftType) -> Sequence[Squadron]: return self.squadrons[aircraft] - def squadrons_for_task(self, task: FlightType) -> Iterator[Squadron]: + def auto_assignable_for_task(self, task: FlightType) -> Iterator[Squadron]: for squadron in self.iter_squadrons(): - if task in squadron.mission_types: + if squadron.can_auto_assign(task): yield squadron def auto_assignable_for_task_with_type( diff --git a/game/transfers.py b/game/transfers.py index 5543d572..be0baaa8 100644 --- a/game/transfers.py +++ b/game/transfers.py @@ -600,10 +600,10 @@ class PendingTransfers: def current_airlift_capacity(self, control_point: ControlPoint) -> int: inventory = self.game.aircraft_inventory.for_control_point(control_point) - squadrons = self.game.air_wing_for(control_point.captured).squadrons_for_task( - FlightType.TRANSPORT - ) - unit_types = {s.aircraft for s in squadrons}.intersection(TRANSPORT_CAPABLE) + squadrons = self.game.air_wing_for( + control_point.captured + ).auto_assignable_for_task(FlightType.TRANSPORT) + unit_types = {s.aircraft for s in squadrons} return sum( count for unit_type, count in inventory.all_aircraft