Fix unit type comparisons.

When comparing UnitType against a pydcs type, use .dcs_unit_type.
This commit is contained in:
Mike Jones 2021-06-21 15:03:18 +01:00 committed by Dan Albert
parent 814519248c
commit 30763b5401
2 changed files with 17 additions and 16 deletions

View File

@ -840,7 +840,7 @@ class AircraftConflictGenerator:
group.task = CAP.name group.task = CAP.name
self._setup_group(group, package, flight, dynamic_runways) 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 ammo_type = OptRTBOnOutOfAmmo.Values.AAM
else: else:
ammo_type = OptRTBOnOutOfAmmo.Values.Cannon ammo_type = OptRTBOnOutOfAmmo.Values.Cannon
@ -857,7 +857,7 @@ class AircraftConflictGenerator:
group.task = FighterSweep.name group.task = FighterSweep.name
self._setup_group(group, package, flight, dynamic_runways) 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 ammo_type = OptRTBOnOutOfAmmo.Values.AAM
else: else:
ammo_type = OptRTBOnOutOfAmmo.Values.Cannon ammo_type = OptRTBOnOutOfAmmo.Values.Cannon
@ -1182,7 +1182,7 @@ class AircraftConflictGenerator:
# under the current flight plans. # under the current flight plans.
# TODO: Make this smarter, it currently selects a random unit in the group for target, # 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. # 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 = [ viggen_target_points = [
(idx, point) (idx, point)
for idx, point in enumerate(filtered_points) 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. """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 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 ( if (
self.waypoint.waypoint_type not in TARGET_WAYPOINTS 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 return True
else: else:
return False return False
@ -1761,7 +1762,7 @@ class RaceTrackBuilder(PydcsWaypointBuilder):
def configure_refueling_actions(self, waypoint: MovingPoint) -> None: def configure_refueling_actions(self, waypoint: MovingPoint) -> None:
waypoint.add_task(Tanker()) 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] tanker_info = self.air_support.tankers[-1]
tacan = tanker_info.tacan tacan = tanker_info.tacan
tacan_callsign = { tacan_callsign = {

View File

@ -1093,13 +1093,13 @@ class FlightPlanBuilder:
orbit_location = self.aewc_orbit(location) orbit_location = self.aewc_orbit(location)
# As high as possible to maximize detection and on-station time. # 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) patrol_alt = feet(30000)
elif flight.unit_type == E_3A: elif flight.unit_type.dcs_unit_type == E_3A:
patrol_alt = feet(35000) patrol_alt = feet(35000)
elif flight.unit_type == A_50: elif flight.unit_type.dcs_unit_type == A_50:
patrol_alt = feet(33000) patrol_alt = feet(33000)
elif flight.unit_type == KJ_2000: elif flight.unit_type.dcs_unit_type == KJ_2000:
patrol_alt = feet(40000) patrol_alt = feet(40000)
else: else:
patrol_alt = feet(25000) patrol_alt = feet(25000)
@ -1680,23 +1680,23 @@ class FlightPlanBuilder:
builder = WaypointBuilder(flight, self.game, self.is_player) builder = WaypointBuilder(flight, self.game, self.is_player)
tanker_type = flight.unit_type tanker_type = flight.unit_type
if tanker_type is KC_135: if tanker_type.dcs_unit_type is KC_135:
# ~300 knots IAS. # ~300 knots IAS.
speed = knots(445) speed = knots(445)
altitude = feet(24000) altitude = feet(24000)
elif tanker_type is KC135MPRS: elif tanker_type.dcs_unit_type is KC135MPRS:
# ~300 knots IAS. # ~300 knots IAS.
speed = knots(440) speed = knots(440)
altitude = feet(23000) 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. # ~210 knots IAS, roughly the max for the KC-130 at altitude.
speed = knots(370) speed = knots(370)
altitude = feet(22000) altitude = feet(22000)
elif tanker_type is S_3B_Tanker: elif tanker_type.dcs_unit_type is S_3B_Tanker:
# ~265 knots IAS. # ~265 knots IAS.
speed = knots(320) speed = knots(320)
altitude = feet(12000) altitude = feet(12000)
elif tanker_type is IL_78M: elif tanker_type.dcs_unit_type is IL_78M:
# ~280 knots IAS. # ~280 knots IAS.
speed = knots(400) speed = knots(400)
altitude = feet(21000) altitude = feet(21000)