mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Garrison groups should be preferred with the following priority: 1. Groups blocking base capture 2. Groups at bases connected to an active front line 3. Rear guard units Previously they were being prioritized based on the distance to the closest friendy control point, which is similar to this but an aggressively placed carrier could throw it off.
25 lines
921 B
Python
25 lines
921 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.data.doctrine import Doctrine
|
|
from game.theater.theatergroundobject import VehicleGroupGroundObject
|
|
from gen.flights.flight import FlightType
|
|
|
|
|
|
@dataclass
|
|
class PlanBai(PackagePlanningTask[VehicleGroupGroundObject]):
|
|
def preconditions_met(self, state: TheaterState) -> bool:
|
|
if self.target not in state.enemy_garrisons:
|
|
return False
|
|
return self.target_area_preconditions_met(state)
|
|
|
|
def apply_effects(self, state: TheaterState) -> None:
|
|
state.enemy_garrisons.eliminate(self.target)
|
|
|
|
def propose_flights(self, doctrine: Doctrine) -> None:
|
|
self.propose_flight(FlightType.BAI, 2, doctrine.mission_ranges.offensive)
|
|
self.propose_common_escorts(doctrine)
|