mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Fix convoy bug mentioned by Adecarcer
This commit is contained in:
parent
e682176040
commit
f3241c286c
@ -415,6 +415,7 @@ class MultiGroupTransport(MissionTarget, Transport):
|
|||||||
units: dict[GroundUnitType, int] = defaultdict(int)
|
units: dict[GroundUnitType, int] = defaultdict(int)
|
||||||
for transfer in self.transfers:
|
for transfer in self.transfers:
|
||||||
for unit_type, count in transfer.units.items():
|
for unit_type, count in transfer.units.items():
|
||||||
|
if count > 0:
|
||||||
units[unit_type] += count
|
units[unit_type] += count
|
||||||
return units
|
return units
|
||||||
|
|
||||||
@ -620,13 +621,18 @@ class PendingTransfers:
|
|||||||
raise ValueError
|
raise ValueError
|
||||||
|
|
||||||
units = {}
|
units = {}
|
||||||
|
to_delete = []
|
||||||
for unit_type, remaining in transfer.units.items():
|
for unit_type, remaining in transfer.units.items():
|
||||||
take = min(remaining, size)
|
take = min(remaining, size)
|
||||||
|
if not take:
|
||||||
|
if not remaining:
|
||||||
|
to_delete.append(unit_type)
|
||||||
|
continue
|
||||||
size -= take
|
size -= take
|
||||||
transfer.units[unit_type] -= take
|
transfer.units[unit_type] -= take
|
||||||
units[unit_type] = take
|
units[unit_type] = take
|
||||||
if not size:
|
for td in to_delete:
|
||||||
break
|
del transfer.units[td]
|
||||||
new_transfer = TransferOrder(transfer.origin, transfer.destination, units)
|
new_transfer = TransferOrder(transfer.origin, transfer.destination, units)
|
||||||
self.pending_transfers.append(new_transfer)
|
self.pending_transfers.append(new_transfer)
|
||||||
return new_transfer
|
return new_transfer
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user