mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Migrate support AEW&C away from find_unittype.
This commit is contained in:
parent
ef35ad90b8
commit
ea15421308
@ -16,6 +16,7 @@ from dcs.task import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
from game import db
|
from game import db
|
||||||
|
from .flights.ai_flight_planner_db import AEWC_CAPABLE
|
||||||
from .naming import namegen
|
from .naming import namegen
|
||||||
from .callsigns import callsign_for_support_unit
|
from .callsigns import callsign_for_support_unit
|
||||||
from .conflictgen import Conflict
|
from .conflictgen import Conflict
|
||||||
@ -178,41 +179,46 @@ class AirSupportConflictGenerator:
|
|||||||
)
|
)
|
||||||
|
|
||||||
if not self.game.settings.disable_legacy_aewc:
|
if not self.game.settings.disable_legacy_aewc:
|
||||||
possible_awacs = db.find_unittype(AWACS, self.conflict.attackers_side)
|
possible_awacs = [
|
||||||
|
a
|
||||||
|
for a in self.game.faction_for(player=True).aircrafts
|
||||||
|
if a in AEWC_CAPABLE
|
||||||
|
]
|
||||||
|
|
||||||
if len(possible_awacs) > 0:
|
if not possible_awacs:
|
||||||
awacs_unit = possible_awacs[0]
|
|
||||||
freq = self.radio_registry.alloc_uhf()
|
|
||||||
|
|
||||||
awacs_flight = self.mission.awacs_flight(
|
|
||||||
country=self.mission.country(self.game.player_country),
|
|
||||||
name=namegen.next_awacs_name(
|
|
||||||
self.mission.country(self.game.player_country)
|
|
||||||
),
|
|
||||||
plane_type=awacs_unit,
|
|
||||||
altitude=AWACS_ALT,
|
|
||||||
airport=None,
|
|
||||||
position=self.conflict.position.random_point_within(
|
|
||||||
AWACS_DISTANCE, AWACS_DISTANCE
|
|
||||||
),
|
|
||||||
frequency=freq.mhz,
|
|
||||||
start_type=StartType.Warm,
|
|
||||||
)
|
|
||||||
awacs_flight.set_frequency(freq.mhz)
|
|
||||||
|
|
||||||
awacs_flight.points[0].tasks.append(SetInvisibleCommand(True))
|
|
||||||
awacs_flight.points[0].tasks.append(SetImmortalCommand(True))
|
|
||||||
|
|
||||||
self.air_support.awacs.append(
|
|
||||||
AwacsInfo(
|
|
||||||
group_name=str(awacs_flight.name),
|
|
||||||
callsign=callsign_for_support_unit(awacs_flight),
|
|
||||||
freq=freq,
|
|
||||||
depature_location=None,
|
|
||||||
start_time=None,
|
|
||||||
end_time=None,
|
|
||||||
blue=True,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
logging.warning("No AWACS for faction")
|
logging.warning("No AWACS for faction")
|
||||||
|
return
|
||||||
|
|
||||||
|
awacs_unit = possible_awacs[0]
|
||||||
|
freq = self.radio_registry.alloc_uhf()
|
||||||
|
|
||||||
|
awacs_flight = self.mission.awacs_flight(
|
||||||
|
country=self.mission.country(self.game.player_country),
|
||||||
|
name=namegen.next_awacs_name(
|
||||||
|
self.mission.country(self.game.player_country)
|
||||||
|
),
|
||||||
|
plane_type=awacs_unit,
|
||||||
|
altitude=AWACS_ALT,
|
||||||
|
airport=None,
|
||||||
|
position=self.conflict.position.random_point_within(
|
||||||
|
AWACS_DISTANCE, AWACS_DISTANCE
|
||||||
|
),
|
||||||
|
frequency=freq.mhz,
|
||||||
|
start_type=StartType.Warm,
|
||||||
|
)
|
||||||
|
awacs_flight.set_frequency(freq.mhz)
|
||||||
|
|
||||||
|
awacs_flight.points[0].tasks.append(SetInvisibleCommand(True))
|
||||||
|
awacs_flight.points[0].tasks.append(SetImmortalCommand(True))
|
||||||
|
|
||||||
|
self.air_support.awacs.append(
|
||||||
|
AwacsInfo(
|
||||||
|
group_name=str(awacs_flight.name),
|
||||||
|
callsign=callsign_for_support_unit(awacs_flight),
|
||||||
|
freq=freq,
|
||||||
|
depature_location=None,
|
||||||
|
start_time=None,
|
||||||
|
end_time=None,
|
||||||
|
blue=True,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user