mirror of
https://github.com/dcs-liberation/dcs_liberation.git
synced 2025-11-10 14:22:26 +00:00
Stub new parameters in doctrines. These new parameters are not used a… (#3454)
…t the moment but are intended for a future point release
This commit is contained in:
parent
562d9cb6cf
commit
9ab5d0e892
@ -2,11 +2,11 @@ from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
import yaml
|
||||
from typing import Any, ClassVar
|
||||
from typing import Any, ClassVar, Optional
|
||||
|
||||
from dataclasses import dataclass
|
||||
from datetime import timedelta
|
||||
|
||||
from dcs.task import OptAAMissileAttackRange
|
||||
from game.data.units import UnitClass
|
||||
from game.utils import Distance, feet, nautical_miles
|
||||
|
||||
@ -115,6 +115,28 @@ 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]
|
||||
|
||||
#: Air defence units evade ARMs
|
||||
air_defence_evades_anti_radiation_missiles: bool
|
||||
|
||||
@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
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class Doctrine:
|
||||
#: Name of the doctrine, used to assign a doctrine in a faction.
|
||||
@ -159,6 +181,9 @@ class Doctrine:
|
||||
#: Doctrine for Fighter Sweep missions.
|
||||
sweep: Sweep
|
||||
|
||||
#: Tactics options
|
||||
tactics: Tactics
|
||||
|
||||
_by_name: ClassVar[dict[str, Doctrine]] = {}
|
||||
_loaded: ClassVar[bool] = False
|
||||
|
||||
@ -219,6 +244,7 @@ class Doctrine:
|
||||
cas=Cas.from_dict(data["cas"]),
|
||||
cap=Cap.from_dict(data["cap"]),
|
||||
sweep=Sweep.from_dict(data["sweep"]),
|
||||
tactics=Tactics.from_dict(data.get("tactics", {})),
|
||||
)
|
||||
)
|
||||
cls._loaded = True
|
||||
|
||||
@ -31,4 +31,7 @@ helicopter:
|
||||
combat_altitude_ft_agl: 200
|
||||
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: ~
|
||||
|
||||
@ -31,3 +31,7 @@ helicopter:
|
||||
combat_altitude_ft_agl: 200
|
||||
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: ~
|
||||
@ -30,3 +30,7 @@ helicopter:
|
||||
combat_altitude_ft_agl: 200
|
||||
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: ~
|
||||
Loading…
x
Reference in New Issue
Block a user