mirror of
https://github.com/dcs-liberation/dcs_liberation.git
synced 2025-11-10 14:22:26 +00:00
Since the theater commander runs once per campaign action, missions that do not have aircraft available may be checked more than once a turn. Without deduping requests this can lead to cases where the AI buys dozens of tankers on turn 0. Fixes https://github.com/dcs-liberation/dcs_liberation/issues/1470
13 lines
461 B
Python
13 lines
461 B
Python
from collections import Iterator
|
|
|
|
from game.commander.tasks.primitive.barcap import PlanBarcap
|
|
from game.commander.theaterstate import TheaterState
|
|
from game.htn import CompoundTask, Method
|
|
|
|
|
|
class ProtectAirSpace(CompoundTask[TheaterState]):
|
|
def each_valid_method(self, state: TheaterState) -> Iterator[Method[TheaterState]]:
|
|
for cp, needed in state.barcaps_needed.items():
|
|
if needed > 0:
|
|
yield [PlanBarcap(cp, needed)]
|