Adjust tanker speed and altitudes #444

This commit is contained in:
walterroach 2020-12-12 16:08:25 -06:00
parent f608cd5aef
commit 4c0fc5a407

View File

@ -1,9 +1,10 @@
import logging import logging
from dataclasses import dataclass, field from dataclasses import dataclass, field
from typing import List, Type from typing import List, Type, Tuple
from dcs.mission import Mission, StartType from dcs.mission import Mission, StartType
from dcs.planes import IL_78M from dcs.planes import IL_78M, KC130, KC135MPRS, KC_135
from dcs.unittype import UnitType
from dcs.task import ( from dcs.task import (
AWACS, AWACS,
ActivateBeaconCommand, ActivateBeaconCommand,
@ -68,12 +69,23 @@ class AirSupportConflictGenerator:
def support_tasks(cls) -> List[Type[MainTask]]: def support_tasks(cls) -> List[Type[MainTask]]:
return [Refueling, AWACS] return [Refueling, AWACS]
@staticmethod
def _get_tanker_params(unit_type: Type[UnitType]) -> Tuple[int, int]:
if unit_type is KC130:
return (TANKER_ALT - 500, 596)
elif unit_type is KC_135:
return (TANKER_ALT, 770)
elif unit_type is KC135MPRS:
return (TANKER_ALT + 500, 596)
return (TANKER_ALT, 574)
def generate(self): def generate(self):
player_cp = self.conflict.from_cp if self.conflict.from_cp.captured else self.conflict.to_cp player_cp = self.conflict.from_cp if self.conflict.from_cp.captured else self.conflict.to_cp
fallback_tanker_number = 0 fallback_tanker_number = 0
for i, tanker_unit_type in enumerate(db.find_unittype(Refueling, self.conflict.attackers_side)): for i, tanker_unit_type in enumerate(db.find_unittype(Refueling, self.conflict.attackers_side)):
alt, airspeed = self._get_tanker_params(tanker_unit_type)
variant = db.unit_type_name(tanker_unit_type) variant = db.unit_type_name(tanker_unit_type)
freq = self.radio_registry.alloc_uhf() freq = self.radio_registry.alloc_uhf()
tacan = self.tacan_registry.alloc_for_band(TacanBand.Y) tacan = self.tacan_registry.alloc_for_band(TacanBand.Y)
@ -85,11 +97,11 @@ class AirSupportConflictGenerator:
airport=None, airport=None,
plane_type=tanker_unit_type, plane_type=tanker_unit_type,
position=tanker_position, position=tanker_position,
altitude=TANKER_ALT, altitude=alt,
race_distance=58000, race_distance=58000,
frequency=freq.mhz, frequency=freq.mhz,
start_type=StartType.Warm, start_type=StartType.Warm,
speed=574, speed=airspeed,
tacanchannel=str(tacan), tacanchannel=str(tacan),
) )
tanker_group.set_frequency(freq.mhz) tanker_group.set_frequency(freq.mhz)