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: