Pre-allocate laser codes for FLOTs and flights.

This commit is contained in:
Dan Albert
2023-07-22 14:31:38 -07:00
committed by Raffson
parent 723e191f10
commit 177f357492
13 changed files with 89 additions and 34 deletions

View File

@@ -10,9 +10,10 @@ from ..ato.starttype import StartType
from ..db.database import Database
if TYPE_CHECKING:
from game.dcs.aircrafttype import AircraftType
from game.squadrons.airwing import AirWing
from game.ato.closestairfields import ClosestAirfields
from game.dcs.aircrafttype import AircraftType
from game.lasercodes import LaserCodeRegistry
from game.squadrons.airwing import AirWing
from .missionproposals import ProposedFlight
@@ -24,6 +25,7 @@ class PackageBuilder:
location: MissionTarget,
closest_airfields: ClosestAirfields,
air_wing: AirWing,
laser_code_registry: LaserCodeRegistry,
flight_db: Database[Flight],
is_player: bool,
start_type: StartType,
@@ -33,6 +35,7 @@ class PackageBuilder:
self.is_player = is_player
self.package = Package(location, flight_db, auto_asap=asap)
self.air_wing = air_wing
self.laser_code_registry = laser_code_registry
self.start_type = start_type
def plan_flight(self, plan: ProposedFlight) -> bool:
@@ -62,6 +65,11 @@ class PackageBuilder:
start_type,
divert=self.find_divert_field(squadron.aircraft, squadron.location),
)
for member in flight.iter_members():
if member.is_player:
member.assign_tgp_laser_code(
self.laser_code_registry.alloc_laser_code()
)
self.package.add_flight(flight)
return True

View File

@@ -142,6 +142,7 @@ class PackageFulfiller:
mission.location,
ObjectiveDistanceCache.get_closest_airfields(mission.location),
self.air_wing,
self.coalition.laser_code_registry,
self.flight_db,
self.is_player,
self.default_start_type,