mirror of
https://github.com/dcs-liberation/dcs_liberation.git
synced 2025-11-10 14:22:26 +00:00
102 lines
2.7 KiB
Python
102 lines
2.7 KiB
Python
from dataclasses import dataclass
|
|
|
|
from game.utils import nm_to_meter, feet_to_meter
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class Doctrine:
|
|
cas: bool
|
|
cap: bool
|
|
sead: bool
|
|
strike: bool
|
|
antiship: bool
|
|
|
|
strike_max_range: int
|
|
sead_max_range: int
|
|
|
|
rendezvous_altitude: int
|
|
join_distance: int
|
|
split_distance: int
|
|
ingress_egress_distance: int
|
|
ingress_altitude: int
|
|
egress_altitude: int
|
|
|
|
min_patrol_altitude: int
|
|
max_patrol_altitude: int
|
|
pattern_altitude: int
|
|
|
|
cap_min_track_length: int
|
|
cap_max_track_length: int
|
|
cap_min_distance_from_cp: int
|
|
cap_max_distance_from_cp: int
|
|
|
|
|
|
MODERN_DOCTRINE = Doctrine(
|
|
cap=True,
|
|
cas=True,
|
|
sead=True,
|
|
strike=True,
|
|
antiship=True,
|
|
strike_max_range=1500000,
|
|
sead_max_range=1500000,
|
|
rendezvous_altitude=feet_to_meter(25000),
|
|
join_distance=nm_to_meter(20),
|
|
split_distance=nm_to_meter(20),
|
|
ingress_egress_distance=nm_to_meter(45),
|
|
ingress_altitude=feet_to_meter(20000),
|
|
egress_altitude=feet_to_meter(20000),
|
|
min_patrol_altitude=feet_to_meter(15000),
|
|
max_patrol_altitude=feet_to_meter(33000),
|
|
pattern_altitude=feet_to_meter(5000),
|
|
cap_min_track_length=nm_to_meter(15),
|
|
cap_max_track_length=nm_to_meter(40),
|
|
cap_min_distance_from_cp=nm_to_meter(10),
|
|
cap_max_distance_from_cp=nm_to_meter(40),
|
|
)
|
|
|
|
COLDWAR_DOCTRINE = Doctrine(
|
|
cap=True,
|
|
cas=True,
|
|
sead=True,
|
|
strike=True,
|
|
antiship=True,
|
|
strike_max_range=1500000,
|
|
sead_max_range=1500000,
|
|
rendezvous_altitude=feet_to_meter(22000),
|
|
join_distance=nm_to_meter(10),
|
|
split_distance=nm_to_meter(10),
|
|
ingress_egress_distance=nm_to_meter(30),
|
|
ingress_altitude=feet_to_meter(18000),
|
|
egress_altitude=feet_to_meter(18000),
|
|
min_patrol_altitude=feet_to_meter(10000),
|
|
max_patrol_altitude=feet_to_meter(24000),
|
|
pattern_altitude=feet_to_meter(5000),
|
|
cap_min_track_length=nm_to_meter(12),
|
|
cap_max_track_length=nm_to_meter(24),
|
|
cap_min_distance_from_cp=nm_to_meter(8),
|
|
cap_max_distance_from_cp=nm_to_meter(25),
|
|
)
|
|
|
|
WWII_DOCTRINE = Doctrine(
|
|
cap=True,
|
|
cas=True,
|
|
sead=False,
|
|
strike=True,
|
|
antiship=True,
|
|
strike_max_range=1500000,
|
|
sead_max_range=1500000,
|
|
join_distance=nm_to_meter(5),
|
|
split_distance=nm_to_meter(5),
|
|
rendezvous_altitude=feet_to_meter(10000),
|
|
ingress_egress_distance=nm_to_meter(7),
|
|
ingress_altitude=feet_to_meter(8000),
|
|
egress_altitude=feet_to_meter(8000),
|
|
min_patrol_altitude=feet_to_meter(4000),
|
|
max_patrol_altitude=feet_to_meter(15000),
|
|
pattern_altitude=feet_to_meter(5000),
|
|
cap_min_track_length=nm_to_meter(8),
|
|
cap_max_track_length=nm_to_meter(18),
|
|
cap_min_distance_from_cp=nm_to_meter(0),
|
|
cap_max_distance_from_cp=nm_to_meter(5),
|
|
)
|