From 4cfed08247e6bd7d57c9836d0de01e4da25d44e7 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 --- game/transfers.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/game/transfers.py b/game/transfers.py index c3d337da..fadbf3dc 100644 --- a/game/transfers.py +++ b/game/transfers.py @@ -158,15 +158,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( @@ -176,6 +178,9 @@ class TransferOrder: self.kill_all() return + if self.transport is None: + return + self.position = self.next_stop self.transport = None