mirror of
https://github.com/dcs-liberation/dcs_liberation.git
synced 2025-11-10 14:22:26 +00:00
The doctrine/task limits were capturing a reasonable average for the era, but it did a bad job for cases like the Harrier vs the Hornet, which perform similar missions but have drastically different max ranges. It also forced us into limiting CAS missions (even those flown by long range aircraft like the A-10) to 50nm since helicopters could commonly be fragged to them. This should allow us to design campaigns without needing airfields to be a max of ~50-100nm apart.
28 lines
861 B
Python
28 lines
861 B
Python
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass
|
|
|
|
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
|
from game.commander.theaterstate import TheaterState
|
|
from game.theater import MissionTarget
|
|
from gen.flights.flight import FlightType
|
|
|
|
|
|
@dataclass
|
|
class PlanAewc(PackagePlanningTask[MissionTarget]):
|
|
def preconditions_met(self, state: TheaterState) -> bool:
|
|
if not super().preconditions_met(state):
|
|
return False
|
|
return self.target in state.aewc_targets
|
|
|
|
def apply_effects(self, state: TheaterState) -> None:
|
|
state.aewc_targets.remove(self.target)
|
|
|
|
def propose_flights(self) -> None:
|
|
self.propose_flight(FlightType.AEWC, 1)
|
|
|
|
@property
|
|
def asap(self) -> bool:
|
|
# Supports all the early CAP flights, so should be in the air ASAP.
|
|
return True
|