Refactor use_countermeasures to faction (#3459)

This commit is contained in:
zhexu14 2024-11-11 20:47:24 +11:00 committed by GitHub
parent fa41b00ef0
commit e47e95f89f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 5 additions and 6 deletions

View File

@ -117,8 +117,6 @@ class Cap:
@dataclass(frozen=True)
class Tactics:
#: Aircraft use countermeasures (chaff, flares)
use_countermeasures: bool
#: Air-to-air missile attack range options
air_to_air_missile_attack_range: Optional[OptAAMissileAttackRange.Values]
@ -129,7 +127,6 @@ class Tactics:
@staticmethod
def from_dict(data: dict[str, Any]) -> Tactics:
return Tactics(
use_countermeasures=data.get("use_countermeasures", True),
air_to_air_missile_attack_range=None,
air_defence_evades_anti_radiation_missiles=data.get(
"air_defence_evades_anti_radiation_missiles", False

View File

@ -123,6 +123,9 @@ class Faction:
#: weapons groups to their introduction years.
weapons_introduction_year_overrides: Dict[str, int] = field(default_factory=dict)
#: Set to True if the faction has access to countermeasures (chaff and flares).
countermeasures_available: bool = True
def has_access_to_dcs_type(self, unit_type: Type[DcsUnitType]) -> bool:
# Vehicle and Ship Units
if any(unit_type == u.dcs_unit_type for u in self.accessible_units):
@ -271,6 +274,8 @@ class Faction:
"weapons_introduction_year_overrides", {}
)
faction.countermeasures_available = json.get("countermeasures_available", True)
return faction
@property

View File

@ -32,6 +32,5 @@ helicopter:
rendezvous_altitude_ft_agl: 1500
air_assault_nav_altitude_ft_agl: 1500
tactics:
use_countermeasures: true
air_defence_evades_anti_radiation_missiles: false
air_to_air_missile_attack_range: ~

View File

@ -32,6 +32,5 @@ helicopter:
rendezvous_altitude_ft_agl: 1500
air_assault_nav_altitude_ft_agl: 1500
tactics:
use_countermeasures: true
air_defence_evades_anti_radiation_missiles: false
air_to_air_missile_attack_range: ~

View File

@ -31,6 +31,5 @@ helicopter:
rendezvous_altitude_ft_agl: 1500
air_assault_nav_altitude_ft_agl: 1500
tactics:
use_countermeasures: true
air_defence_evades_anti_radiation_missiles: false
air_to_air_missile_attack_range: ~