mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Initial support for Armed Recon flight plan
This commit is contained in:
@@ -241,9 +241,18 @@ class AircraftType(UnitType[Type[FlyingType]]):
|
||||
|
||||
def __post_init__(self) -> None:
|
||||
enrich = {}
|
||||
for t in self.task_priorities:
|
||||
if t == FlightType.SEAD:
|
||||
enrich[FlightType.SEAD_SWEEP] = self.task_priorities[t]
|
||||
if FlightType.SEAD_SWEEP not in self.task_priorities:
|
||||
if (value := self.task_priorities.get(FlightType.SEAD)) or (
|
||||
value := self.task_priorities.get(FlightType.SEAD_ESCORT)
|
||||
):
|
||||
enrich[FlightType.SEAD_SWEEP] = value
|
||||
|
||||
if FlightType.ARMED_RECON not in self.task_priorities:
|
||||
if (value := self.task_priorities.get(FlightType.CAS)) or (
|
||||
value := self.task_priorities.get(FlightType.BAI)
|
||||
):
|
||||
enrich[FlightType.ARMED_RECON] = value
|
||||
|
||||
self.task_priorities.update(enrich)
|
||||
|
||||
@classmethod
|
||||
@@ -526,17 +535,7 @@ class AircraftType(UnitType[Type[FlyingType]]):
|
||||
if prop_overrides is not None:
|
||||
cls._set_props_overrides(prop_overrides, aircraft)
|
||||
|
||||
from game.ato.flighttype import FlightType
|
||||
|
||||
task_priorities: dict[FlightType, int] = {}
|
||||
for task_name, priority in data.get("tasks", {}).items():
|
||||
task_priorities[FlightType(task_name)] = priority
|
||||
|
||||
if (
|
||||
FlightType.SEAD_SWEEP not in task_priorities
|
||||
and FlightType.SEAD in task_priorities
|
||||
):
|
||||
task_priorities[FlightType.SEAD_SWEEP] = task_priorities[FlightType.SEAD]
|
||||
task_priorities = cls.get_task_priorities(data)
|
||||
|
||||
cls._custom_weapon_injections(aircraft, data)
|
||||
cls._user_weapon_injections(aircraft)
|
||||
@@ -583,6 +582,27 @@ class AircraftType(UnitType[Type[FlyingType]]):
|
||||
use_f15e_waypoint_names=data.get("use_f15e_waypoint_names", False),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def get_task_priorities(cls, data: dict[str, Any]) -> dict[FlightType, int]:
|
||||
task_priorities: dict[FlightType, int] = {}
|
||||
for task_name, priority in data.get("tasks", {}).items():
|
||||
task_priorities[FlightType(task_name)] = priority
|
||||
if (
|
||||
FlightType.SEAD_SWEEP not in task_priorities
|
||||
and FlightType.SEAD in task_priorities
|
||||
):
|
||||
task_priorities[FlightType.SEAD_SWEEP] = task_priorities[FlightType.SEAD]
|
||||
if FlightType.ARMED_RECON not in task_priorities:
|
||||
if FlightType.CAS in task_priorities:
|
||||
task_priorities[FlightType.ARMED_RECON] = task_priorities[
|
||||
FlightType.CAS
|
||||
]
|
||||
elif FlightType.BAI in task_priorities:
|
||||
task_priorities[FlightType.ARMED_RECON] = task_priorities[
|
||||
FlightType.BAI
|
||||
]
|
||||
return task_priorities
|
||||
|
||||
@staticmethod
|
||||
def _custom_weapon_injections(
|
||||
aircraft: Type[FlyingType], data: Dict[str, Any]
|
||||
|
||||
Reference in New Issue
Block a user