From 2bcff5a5c2d41044e8d91bbf813c0f216e6f1412 Mon Sep 17 00:00:00 2001 From: Mike Jones Date: Mon, 21 Jun 2021 15:03:18 +0100 Subject: [PATCH] Fix unit type comparisons. When comparing UnitType against a pydcs type, use .dcs_unit_type. (cherry picked from commit 30763b5401228d87207993ca38bc20064581f262) --- gen/aircraft.py | 15 ++++++++------- gen/flights/flightplan.py | 18 +++++++++--------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/gen/aircraft.py b/gen/aircraft.py index fc590af1..3d871ab0 100644 --- a/gen/aircraft.py +++ b/gen/aircraft.py @@ -840,7 +840,7 @@ class AircraftConflictGenerator: group.task = CAP.name self._setup_group(group, package, flight, dynamic_runways) - if flight.unit_type not in GUNFIGHTERS: + if flight.unit_type.dcs_unit_type not in GUNFIGHTERS: ammo_type = OptRTBOnOutOfAmmo.Values.AAM else: ammo_type = OptRTBOnOutOfAmmo.Values.Cannon @@ -857,7 +857,7 @@ class AircraftConflictGenerator: group.task = FighterSweep.name self._setup_group(group, package, flight, dynamic_runways) - if flight.unit_type not in GUNFIGHTERS: + if flight.unit_type.dcs_unit_type not in GUNFIGHTERS: ammo_type = OptRTBOnOutOfAmmo.Values.AAM else: ammo_type = OptRTBOnOutOfAmmo.Values.Cannon @@ -1182,7 +1182,7 @@ class AircraftConflictGenerator: # under the current flight plans. # TODO: Make this smarter, it currently selects a random unit in the group for target, # this could be updated to make it pick the "best" two targets in the group. - if flight.unit_type is AJS37 and flight.client_count: + if flight.unit_type.dcs_unit_type is AJS37 and flight.client_count: viggen_target_points = [ (idx, point) for idx, point in enumerate(filtered_points) @@ -1346,9 +1346,10 @@ class PydcsWaypointBuilder: """Viggen player aircraft consider any waypoint with a TOT set to be a target ("M") waypoint. If the flight is a player controlled Viggen flight, no TOT should be set on any waypoint except actual target waypoints. """ - if (self.flight.client_count > 0 and self.flight.unit_type == AJS37) and ( - self.waypoint.waypoint_type not in TARGET_WAYPOINTS - ): + if ( + self.flight.client_count > 0 + and self.flight.unit_type.dcs_unit_type == AJS37 + ) and (self.waypoint.waypoint_type not in TARGET_WAYPOINTS): return True else: return False @@ -1761,7 +1762,7 @@ class RaceTrackBuilder(PydcsWaypointBuilder): def configure_refueling_actions(self, waypoint: MovingPoint) -> None: waypoint.add_task(Tanker()) - if self.flight.unit_type != IL_78M: + if self.flight.unit_type.dcs_unit_type != IL_78M: tanker_info = self.air_support.tankers[-1] tacan = tanker_info.tacan tacan_callsign = { diff --git a/gen/flights/flightplan.py b/gen/flights/flightplan.py index f64e6ac5..66fd4022 100644 --- a/gen/flights/flightplan.py +++ b/gen/flights/flightplan.py @@ -1093,13 +1093,13 @@ class FlightPlanBuilder: orbit_location = self.aewc_orbit(location) # As high as possible to maximize detection and on-station time. - if flight.unit_type == E_2C: + if flight.unit_type.dcs_unit_type == E_2C: patrol_alt = feet(30000) - elif flight.unit_type == E_3A: + elif flight.unit_type.dcs_unit_type == E_3A: patrol_alt = feet(35000) - elif flight.unit_type == A_50: + elif flight.unit_type.dcs_unit_type == A_50: patrol_alt = feet(33000) - elif flight.unit_type == KJ_2000: + elif flight.unit_type.dcs_unit_type == KJ_2000: patrol_alt = feet(40000) else: patrol_alt = feet(25000) @@ -1680,23 +1680,23 @@ class FlightPlanBuilder: builder = WaypointBuilder(flight, self.game, self.is_player) tanker_type = flight.unit_type - if tanker_type is KC_135: + if tanker_type.dcs_unit_type is KC_135: # ~300 knots IAS. speed = knots(445) altitude = feet(24000) - elif tanker_type is KC135MPRS: + elif tanker_type.dcs_unit_type is KC135MPRS: # ~300 knots IAS. speed = knots(440) altitude = feet(23000) - elif tanker_type is KC130: + elif tanker_type.dcs_unit_type is KC130: # ~210 knots IAS, roughly the max for the KC-130 at altitude. speed = knots(370) altitude = feet(22000) - elif tanker_type is S_3B_Tanker: + elif tanker_type.dcs_unit_type is S_3B_Tanker: # ~265 knots IAS. speed = knots(320) altitude = feet(12000) - elif tanker_type is IL_78M: + elif tanker_type.dcs_unit_type is IL_78M: # ~280 knots IAS. speed = knots(400) altitude = feet(21000)