From 8dd29d231938e93175290dd564abdaa7f85440b4 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Sat, 26 Jun 2021 10:50:32 -0700 Subject: [PATCH] Disband unfilled incompletable transfers. Fixes https://github.com/dcs-liberation/dcs_liberation/issues/1317 (cherry picked from commit 4cfed08247e6bd7d57c9836d0de01e4da25d44e7) --- game/transfers.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/game/transfers.py b/game/transfers.py index 5cd28a32..cdc35e85 100644 --- a/game/transfers.py +++ b/game/transfers.py @@ -127,15 +127,17 @@ class TransferOrder: ) return self.transport.destination - def proceed(self) -> None: - if self.transport is None: - return + def find_escape_route(self) -> Optional[ControlPoint]: + if self.transport is not None: + return self.transport.find_escape_route() + return None + def proceed(self) -> None: if not self.destination.is_friendly(self.player): logging.info(f"Transfer destination {self.destination} was captured.") if self.position.is_friendly(self.player): self.disband_at(self.position) - elif (escape_route := self.transport.find_escape_route()) is not None: + elif (escape_route := self.find_escape_route()) is not None: self.disband_at(escape_route) else: logging.info( @@ -145,6 +147,9 @@ class TransferOrder: self.kill_all() return + if self.transport is None: + return + self.position = self.next_stop self.transport = None