From 5c3bb75786fe2c417a9043a8733cd966d0e7541f Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Fri, 18 Jun 2021 16:48:59 -0700 Subject: [PATCH] Fix EPLRS for aircraft. Fixes https://github.com/dcs-liberation/dcs_liberation/issues/1237 --- game/dcs/unittype.py | 5 +++++ gen/aircraft.py | 5 ++--- gen/armor.py | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/game/dcs/unittype.py b/game/dcs/unittype.py index 5b7144e5..25181a66 100644 --- a/game/dcs/unittype.py +++ b/game/dcs/unittype.py @@ -1,4 +1,5 @@ from dataclasses import dataclass +from functools import cached_property from typing import TypeVar, Generic, Type from dcs.unittype import UnitType as DcsUnitType @@ -19,3 +20,7 @@ class UnitType(Generic[DcsUnitTypeT]): def __str__(self) -> str: return self.name + + @cached_property + def eplrs_capable(self) -> bool: + return getattr(self.dcs_unit_type, "eplrs", False) diff --git a/gen/aircraft.py b/gen/aircraft.py index e20d0f89..7d4115d0 100644 --- a/gen/aircraft.py +++ b/gen/aircraft.py @@ -824,9 +824,8 @@ class AircraftConflictGenerator: @staticmethod def configure_eplrs(group: FlyingGroup, flight: Flight) -> None: - if hasattr(flight.unit_type, "eplrs"): - if flight.unit_type.dcs_unit_type.eplrs: - group.points[0].tasks.append(EPLRS(group.id)) + if flight.unit_type.eplrs_capable: + group.points[0].tasks.append(EPLRS(group.id)) def configure_cap( self, diff --git a/gen/armor.py b/gen/armor.py index 6fc49382..ee5b8357 100644 --- a/gen/armor.py +++ b/gen/armor.py @@ -508,7 +508,7 @@ class GroundConflictGenerator: return for dcs_group, group in ally_groups: - if getattr(group.unit_type.dcs_unit_type, "eplrs", False): + if group.unit_type.eplrs_capable: dcs_group.points[0].tasks.append(EPLRS(dcs_group.id)) if group.role == CombatGroupRole.ARTILLERY: