mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Custom weapons injection logic + A-4E AIM-9J injection
This commit is contained in:
parent
6072b0181d
commit
1a52154b5a
@ -1,5 +1,6 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import inspect
|
||||
import logging
|
||||
from collections import defaultdict
|
||||
from dataclasses import dataclass
|
||||
@ -11,6 +12,7 @@ import yaml
|
||||
from dcs.helicopters import helicopter_map
|
||||
from dcs.planes import plane_map
|
||||
from dcs.unittype import FlyingType
|
||||
from dcs.weapons_data import weapon_ids
|
||||
|
||||
from game.data.units import UnitClass
|
||||
from game.dcs.unitproperty import UnitProperty
|
||||
@ -462,6 +464,8 @@ class AircraftType(UnitType[Type[FlyingType]]):
|
||||
if FlightType.SEAD in task_priorities:
|
||||
task_priorities[FlightType.SEAD_SWEEP] = task_priorities[FlightType.SEAD]
|
||||
|
||||
cls._custom_weapon_injections(aircraft, data)
|
||||
|
||||
for variant in data.get("variants", [aircraft.id]):
|
||||
yield AircraftType(
|
||||
dcs_unit_type=aircraft,
|
||||
@ -497,5 +501,21 @@ class AircraftType(UnitType[Type[FlyingType]]):
|
||||
task_priorities=task_priorities,
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def _custom_weapon_injections(
|
||||
aircraft: Type[FlyingType], data: Dict[str, Any]
|
||||
) -> None:
|
||||
if (wpn_injection := data.get("weapon_injections")) is not None:
|
||||
pylons = [
|
||||
v
|
||||
for v in aircraft.__dict__.values()
|
||||
if inspect.isclass(v) and v.__name__.startswith(f"Pylon")
|
||||
]
|
||||
pylons.sort(key=lambda x: int(x.__name__.replace("Pylon", "")))
|
||||
for pylon_number, weapons in wpn_injection.items():
|
||||
for w in weapons:
|
||||
weapon = weapon_ids[w]
|
||||
setattr(pylons[pylon_number - 1], w, (pylon_number, weapon))
|
||||
|
||||
def __hash__(self) -> int:
|
||||
return hash(self.name)
|
||||
|
||||
@ -29,3 +29,12 @@ tasks:
|
||||
SEAD Escort: 110
|
||||
Strike: 360
|
||||
TARCAP: 160
|
||||
weapon_injections:
|
||||
1:
|
||||
- "{AIM-9J-ON-ADAPTER}"
|
||||
2:
|
||||
- "{AIM-9J-ON-ADAPTER}"
|
||||
4:
|
||||
- "{AIM-9J-ON-ADAPTER}"
|
||||
5:
|
||||
- "{AIM-9J-ON-ADAPTER}"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user