mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Fix canceling transfers.
singledispatchmethod only overloads on the first argument.
This commit is contained in:
parent
136e776b03
commit
cb159e3341
@ -530,33 +530,35 @@ class PendingTransfers:
|
|||||||
return new_transfer
|
return new_transfer
|
||||||
|
|
||||||
@singledispatchmethod
|
@singledispatchmethod
|
||||||
def cancel_transport(self, transfer: TransferOrder, transport) -> None:
|
def cancel_transport(self, transport, transfer: TransferOrder) -> None:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@cancel_transport.register
|
@cancel_transport.register
|
||||||
def _cancel_transport_air(
|
def _cancel_transport_air(
|
||||||
self, _transfer: TransferOrder, transport: Airlift
|
self, transport: Airlift, _transfer: TransferOrder
|
||||||
) -> None:
|
) -> None:
|
||||||
flight = transport.flight
|
flight = transport.flight
|
||||||
flight.package.remove_flight(flight)
|
flight.package.remove_flight(flight)
|
||||||
|
if not flight.package.flights:
|
||||||
|
self.game.ato_for(transport.player_owned).remove_package(flight.package)
|
||||||
self.game.aircraft_inventory.return_from_flight(flight)
|
self.game.aircraft_inventory.return_from_flight(flight)
|
||||||
flight.clear_roster()
|
flight.clear_roster()
|
||||||
|
|
||||||
@cancel_transport.register
|
@cancel_transport.register
|
||||||
def _cancel_transport_convoy(
|
def _cancel_transport_convoy(
|
||||||
self, transfer: TransferOrder, transport: Convoy
|
self, transport: Convoy, transfer: TransferOrder
|
||||||
) -> None:
|
) -> None:
|
||||||
self.convoys.remove(transport, transfer)
|
self.convoys.remove(transport, transfer)
|
||||||
|
|
||||||
@cancel_transport.register
|
@cancel_transport.register
|
||||||
def _cancel_transport_cargo_ship(
|
def _cancel_transport_cargo_ship(
|
||||||
self, transfer: TransferOrder, transport: CargoShip
|
self, transport: CargoShip, transfer: TransferOrder
|
||||||
) -> None:
|
) -> None:
|
||||||
self.cargo_ships.remove(transport, transfer)
|
self.cargo_ships.remove(transport, transfer)
|
||||||
|
|
||||||
def cancel_transfer(self, transfer: TransferOrder) -> None:
|
def cancel_transfer(self, transfer: TransferOrder) -> None:
|
||||||
if transfer.transport is not None:
|
if transfer.transport is not None:
|
||||||
self.cancel_transport(transfer, transfer.transport)
|
self.cancel_transport(transfer.transport, transfer)
|
||||||
self.pending_transfers.remove(transfer)
|
self.pending_transfers.remove(transfer)
|
||||||
transfer.origin.base.commision_units(transfer.units)
|
transfer.origin.base.commision_units(transfer.units)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user