From 80cf8f484df3e2ff5a28bfe681ea68c6d9abfd95 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Fri, 25 Jun 2021 16:46:49 -0700 Subject: [PATCH] Fix targeting of carrier groups with TGOs. The assumption that the first group is the carrier group is wrong. Fixes https://github.com/dcs-liberation/dcs_liberation/issues/1346 --- gen/flights/flightplan.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/gen/flights/flightplan.py b/gen/flights/flightplan.py index af33411f..80a7f6e1 100644 --- a/gen/flights/flightplan.py +++ b/gen/flights/flightplan.py @@ -27,8 +27,9 @@ from game.theater import ( MissionTarget, SamGroundObject, TheaterGroundObject, + NavalControlPoint, ) -from game.theater.theatergroundobject import EwrGroundObject +from game.theater.theatergroundobject import EwrGroundObject, NavalGroundObject from game.utils import Distance, Speed, feet, meters, nautical_miles, knots from .closestairfields import ObjectiveDistanceCache from .flight import Flight, FlightType, FlightWaypoint, FlightWaypointType @@ -1146,12 +1147,9 @@ class FlightPlanBuilder: from game.transfers import CargoShip - if isinstance(location, ControlPoint): - if not location.is_fleet: - raise InvalidObjectiveLocation(flight.flight_type, location) - # The first group generated will be the carrier group itself. - targets = self.anti_ship_targets_for_tgo(location.ground_objects[0]) - elif isinstance(location, TheaterGroundObject): + if isinstance(location, NavalControlPoint): + targets = self.anti_ship_targets_for_tgo(location.find_main_tgo()) + elif isinstance(location, NavalGroundObject): targets = self.anti_ship_targets_for_tgo(location) elif isinstance(location, CargoShip): targets = [StrikeTarget(location.name, location)]