diff --git a/game/coalition.py b/game/coalition.py index 8b0ff812..1922f3ce 100644 --- a/game/coalition.py +++ b/game/coalition.py @@ -206,9 +206,9 @@ class Coalition: manage_front_line = self.game.settings.automate_front_line_reinforcements manage_aircraft = self.game.settings.automate_aircraft_reinforcements else: - manage_runways = False - manage_front_line = False - manage_aircraft = False + manage_runways = True + manage_front_line = True + manage_aircraft = True self.budget = ProcurementAi( self.game, diff --git a/game/commander/tasks/compound/reduceenemyfrontlinecapacity.py b/game/commander/tasks/compound/reduceenemyfrontlinecapacity.py new file mode 100644 index 00000000..327acecd --- /dev/null +++ b/game/commander/tasks/compound/reduceenemyfrontlinecapacity.py @@ -0,0 +1,19 @@ +from collections import Iterator +from dataclasses import dataclass + +from game.commander.tasks.primitive.aggressiveattack import AggressiveAttack +from game.commander.tasks.primitive.cas import PlanCas +from game.commander.tasks.primitive.eliminationattack import EliminationAttack +from game.commander.theaterstate import TheaterState +from game.htn import CompoundTask, Method +from game.theater import FrontLine + + +@dataclass(frozen=True) +class DestroyEnemyGroundUnits(CompoundTask[TheaterState]): + front_line: FrontLine + + def each_valid_method(self, state: TheaterState) -> Iterator[Method[TheaterState]]: + yield [EliminationAttack(self.front_line, state.context.coalition.player)] + yield [AggressiveAttack(self.front_line, state.context.coalition.player)] + yield [PlanCas(self.front_line)]