Disband unfilled incompletable transfers.

Fixes https://github.com/dcs-liberation/dcs_liberation/issues/1317
This commit is contained in:
Dan Albert 2021-06-26 10:50:32 -07:00
parent 01e6a87968
commit 4cfed08247

View File

@ -158,15 +158,17 @@ class TransferOrder:
) )
return self.transport.destination return self.transport.destination
def proceed(self) -> None: def find_escape_route(self) -> Optional[ControlPoint]:
if self.transport is None: if self.transport is not None:
return return self.transport.find_escape_route()
return None
def proceed(self) -> None:
if not self.destination.is_friendly(self.player): if not self.destination.is_friendly(self.player):
logging.info(f"Transfer destination {self.destination} was captured.") logging.info(f"Transfer destination {self.destination} was captured.")
if self.position.is_friendly(self.player): if self.position.is_friendly(self.player):
self.disband_at(self.position) 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) self.disband_at(escape_route)
else: else:
logging.info( logging.info(
@ -176,6 +178,9 @@ class TransferOrder:
self.kill_all() self.kill_all()
return return
if self.transport is None:
return
self.position = self.next_stop self.position = self.next_stop
self.transport = None self.transport = None