Introduce AttackShips compound task

This commit is contained in:
Raffson 2024-02-12 00:04:13 +01:00
parent 05163d41a0
commit 3f5b93a5c1
No known key found for this signature in database
GPG Key ID: B0402B2C9B764D99
2 changed files with 17 additions and 0 deletions

View File

@ -0,0 +1,15 @@
from collections.abc import Iterator
from game.commander.tasks.primitive.antiship import PlanAntiShip
from game.commander.theaterstate import TheaterState
from game.htn import CompoundTask, Method
class AttackShips(CompoundTask[TheaterState]):
def each_valid_method(self, state: TheaterState) -> Iterator[Method[TheaterState]]:
for ship in state.enemy_ships:
# Ammo depots are targeted based on the needs of the front line by
# ReduceEnemyFrontLineCapacity. No reason to target them before that front
# line is active.
if ship.has_live_radar_sam:
yield [PlanAntiShip(ship)]

View File

@ -6,6 +6,7 @@ from game.commander.tasks.compound.attackairinfrastructure import (
)
from game.commander.tasks.compound.attackbattlepositions import AttackBattlePositions
from game.commander.tasks.compound.attackbuildings import AttackBuildings
from game.commander.tasks.compound.attackships import AttackShips
from game.commander.tasks.compound.capturebases import CaptureBases
from game.commander.tasks.compound.defendbases import DefendBases
from game.commander.tasks.compound.degradeiads import DegradeIads
@ -32,3 +33,4 @@ class PlanNextAction(CompoundTask[TheaterState]):
yield [CaptureBases()]
yield [AttackAirInfrastructure(self.aircraft_cold_start)]
yield [AttackBuildings()]
yield [AttackShips()]