From 18b6f7b84ce82985460b5f6b8a8a41a3e618a429 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Fri, 20 Nov 2020 01:58:55 -0800 Subject: [PATCH] Add off-map spawn locations. The AI isn't making use of these yet, but it's not smart enough to do so anyway. Would benefit from an icon to differentiate it on the map. I'm stretching the definition of "control point" quite a bit. We might want to put a class above `ControlPoint` for `AirSpawnLocation` to represent types of spawn locations that can't be captured and don't have ground objectives. Fixes https://github.com/Khopa/dcs_liberation/issues/274 --- game/game.py | 5 +- game/theater/conflicttheater.py | 24 +++++- game/theater/controlpoint.py | 15 ++++ game/theater/start_generator.py | 16 +++- game/utils.py | 4 + gen/aircraft.py | 44 ++++++---- gen/flights/ai_flight_planner.py | 11 ++- gen/flights/waypointbuilder.py | 80 ++++++++++++------ qt_ui/widgets/map/QMapControlPoint.py | 5 +- qt_ui/widgets/map/QMapObject.py | 9 +- qt_ui/windows/basemenu/QBaseMenu2.py | 1 - qt_ui/windows/basemenu/QBaseMenuTabs.py | 47 +++++----- .../windows/mission/flight/QFlightCreator.py | 6 +- .../flight/waypoints/QFlightWaypointList.py | 10 +-- resources/campaigns/inherent_resolve.miz | Bin 43422 -> 45228 bytes 15 files changed, 178 insertions(+), 99 deletions(-) diff --git a/game/game.py b/game/game.py index d69f9cc8..20d3ddb1 100644 --- a/game/game.py +++ b/game/game.py @@ -26,7 +26,7 @@ from .event.frontlineattack import FrontlineAttackEvent from .factions.faction import Faction from .infos.information import Information from .settings import Settings -from .theater import ConflictTheater, ControlPoint +from .theater import ConflictTheater, ControlPoint, OffMapSpawn from .weather import Conditions, TimeOfDay COMMISION_UNIT_VARIETY = 4 @@ -289,6 +289,9 @@ class Game: if len(potential_cp_armor) == 0: potential_cp_armor = self.theater.enemy_points() + potential_cp_armor = [p for p in potential_cp_armor if + not isinstance(p, OffMapSpawn)] + i = 0 potential_units = db.FACTIONS[self.enemy_name].frontline_units diff --git a/game/theater/conflicttheater.py b/game/theater/conflicttheater.py index 566118f9..7766c90e 100644 --- a/game/theater/conflicttheater.py +++ b/game/theater/conflicttheater.py @@ -16,6 +16,7 @@ from dcs.countries import ( ) from dcs.country import Country from dcs.mapping import Point +from dcs.planes import F_15C from dcs.ships import ( CVN_74_John_C__Stennis, LHA_1_Tarawa, @@ -31,11 +32,17 @@ from dcs.terrain import ( thechannel, ) from dcs.terrain.terrain import Airport, Terrain -from dcs.unitgroup import Group, ShipGroup, StaticGroup, VehicleGroup +from dcs.unitgroup import ( + FlyingGroup, + Group, + ShipGroup, + StaticGroup, + VehicleGroup, +) from dcs.vehicles import AirDefence, Armor from gen.flights.flight import FlightType -from .controlpoint import ControlPoint, MissionTarget +from .controlpoint import ControlPoint, MissionTarget, OffMapSpawn from .landmap import Landmap, load_landmap, poly_contains from ..utils import nm_to_meter @@ -94,6 +101,8 @@ class MizCampaignLoader: BLUE_COUNTRY = CombinedJointTaskForcesBlue() RED_COUNTRY = CombinedJointTaskForcesRed() + OFF_MAP_UNIT_TYPE = F_15C.id + CV_UNIT_TYPE = CVN_74_John_C__Stennis.id LHA_UNIT_TYPE = LHA_1_Tarawa.id FRONT_LINE_UNIT_TYPE = Armor.APC_M113.id @@ -175,6 +184,11 @@ class MizCampaignLoader: def red(self) -> Country: return self.country(blue=False) + def off_map_spawns(self, blue: bool) -> Iterator[FlyingGroup]: + for group in self.country(blue).plane_group: + if group.units[0].type == self.OFF_MAP_UNIT_TYPE: + yield group + def carriers(self, blue: bool) -> Iterator[ShipGroup]: for group in self.country(blue).ship_group: if group.units[0].type == self.CV_UNIT_TYPE: @@ -236,6 +250,12 @@ class MizCampaignLoader: control_points[control_point.id] = control_point for blue in (False, True): + for group in self.off_map_spawns(blue): + control_point = OffMapSpawn(next(self.control_point_id), + str(group.name), group.position) + control_point.captured = blue + control_point.captured_invert = group.late_activation + control_points[control_point.id] = control_point for group in self.carriers(blue): # TODO: Name the carrier. control_point = ControlPoint.carrier( diff --git a/game/theater/controlpoint.py b/game/theater/controlpoint.py index 4e61cfa5..88d622a6 100644 --- a/game/theater/controlpoint.py +++ b/game/theater/controlpoint.py @@ -40,6 +40,7 @@ class ControlPointType(Enum): LHA_GROUP = 2 # A group with a Tarawa carrier (Helicopters & Harrier) FARP = 4 # A FARP, with slots for helicopters FOB = 5 # A FOB (ground units only) + OFF_MAP = 6 class LocationType(Enum): @@ -364,3 +365,17 @@ class ControlPoint(MissionTarget): yield from [ # TODO: FlightType.STRIKE ] + + +class OffMapSpawn(ControlPoint): + def __init__(self, id: int, name: str, position: Point): + from . import IMPORTANCE_MEDIUM, SIZE_REGULAR + super().__init__(id, name, position, at=position, radials=[], + size=SIZE_REGULAR, importance=IMPORTANCE_MEDIUM, + has_frontline=False, cptype=ControlPointType.OFF_MAP) + + def capture(self, game: Game, for_player: bool) -> None: + raise RuntimeError("Off map control points cannot be captured") + + def mission_types(self, for_player: bool) -> Iterator[FlightType]: + yield from [] diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py index 2eee490a..ed30750b 100644 --- a/game/theater/start_generator.py +++ b/game/theater/start_generator.py @@ -42,8 +42,7 @@ from gen.sam.sam_group_generator import ( from theater import ( ConflictTheater, ControlPoint, - ControlPointType, - TheaterGroundObject, + ControlPointType, OffMapSpawn, ) GroundObjectTemplates = Dict[str, Dict[str, Any]] @@ -139,7 +138,13 @@ class GameGenerator: control_point.base.commision_points = {} control_point.base.strength = 1 + # The tasks here are confusing. PinpointStrike for some reason means + # ground units. for task in [PinpointStrike, CAP, CAS, AirDefence]: + if isinstance(control_point, OffMapSpawn): + # Off-map spawn locations start with no aircraft. + continue + if IMPORTANCE_HIGH <= control_point.importance <= IMPORTANCE_LOW: raise ValueError( f"CP importance must be between {IMPORTANCE_LOW} and " @@ -366,6 +371,11 @@ class ControlPointGroundObjectGenerator: self.control_point.connected_objectives.append(g) +class NoOpGroundObjectGenerator(ControlPointGroundObjectGenerator): + def generate(self) -> bool: + return True + + class CarrierGroundObjectGenerator(ControlPointGroundObjectGenerator): def generate(self) -> bool: if not super().generate(): @@ -660,6 +670,8 @@ class GroundObjectGenerator: generator = CarrierGroundObjectGenerator(self.game, control_point) elif control_point.cptype == ControlPointType.LHA_GROUP: generator = LhaGroundObjectGenerator(self.game, control_point) + elif isinstance(control_point, OffMapSpawn): + generator = NoOpGroundObjectGenerator(self.game, control_point) else: generator = AirbaseGroundObjectGenerator(self.game, control_point, self.templates) diff --git a/game/utils.py b/game/utils.py index 44652472..58bc5018 100644 --- a/game/utils.py +++ b/game/utils.py @@ -12,3 +12,7 @@ def meter_to_nm(value_in_meter: float) -> int: def nm_to_meter(value_in_nm: float) -> int: return int(value_in_nm * 1852) + + +def knots_to_kph(knots: float) -> int: + return int(knots * 1.852) diff --git a/gen/aircraft.py b/gen/aircraft.py index 9eccfb17..9edc52f4 100644 --- a/gen/aircraft.py +++ b/gen/aircraft.py @@ -70,7 +70,7 @@ from dcs.unittype import FlyingType, UnitType from game import db from game.data.cap_capabilities_db import GUNFIGHTERS from game.settings import Settings -from game.utils import nm_to_meter +from game.utils import knots_to_kph, nm_to_meter from gen.airsupportgen import AirSupport from gen.ato import AirTaskingOrder, Package from gen.callsigns import create_group_callsign_from_unit @@ -84,7 +84,11 @@ from gen.flights.flight import ( from gen.radios import MHz, Radio, RadioFrequency, RadioRegistry, get_radio from gen.runways import RunwayData from theater import TheaterGroundObject -from game.theater.controlpoint import ControlPoint, ControlPointType +from game.theater.controlpoint import ( + ControlPoint, + ControlPointType, + OffMapSpawn, +) from .conflictgen import Conflict from .flights.flightplan import ( CasFlightPlan, @@ -92,7 +96,7 @@ from .flights.flightplan import ( PatrollingFlightPlan, SweepFlightPlan, ) -from .flights.traveltime import TotEstimator +from .flights.traveltime import GroundSpeed, TotEstimator from .naming import namegen from .runways import RunwayAssigner @@ -804,31 +808,37 @@ class AircraftConflictGenerator: group_size=count, parking_slots=None) - def _generate_inflight(self, name: str, side: Country, unit_type: FlyingType, count: int, at: Point) -> FlyingGroup: - assert count > 0 + def _generate_inflight(self, name: str, side: Country, flight: Flight, + origin: ControlPoint) -> FlyingGroup: + assert flight.count > 0 + at = origin.position - if unit_type in helicopters.helicopter_map.values(): + alt_type = "RADIO" + if isinstance(origin, OffMapSpawn): + alt = flight.flight_plan.waypoints[0].alt + alt_type = flight.flight_plan.waypoints[0].alt_type + elif flight.unit_type in helicopters.helicopter_map.values(): alt = WARM_START_HELI_ALT - speed = WARM_START_HELI_AIRSPEED else: alt = WARM_START_ALTITUDE - speed = WARM_START_AIRSPEED + + speed = knots_to_kph(GroundSpeed.for_flight(flight, alt)) pos = Point(at.x + random.randint(100, 1000), at.y + random.randint(100, 1000)) - logging.info("airgen: {} for {} at {} at {}".format(unit_type, side.id, alt, speed)) + logging.info("airgen: {} for {} at {} at {}".format(flight.unit_type, side.id, alt, speed)) group = self.m.flight_group( country=side, name=name, - aircraft_type=unit_type, + aircraft_type=flight.unit_type, airport=None, position=pos, altitude=alt, speed=speed, maintask=None, - group_size=count) + group_size=flight.count) - group.points[0].alt_type = "RADIO" + group.points[0].alt_type = alt_type return group def _generate_at_group(self, name: str, side: Country, @@ -974,9 +984,8 @@ class AircraftConflictGenerator: group = self._generate_inflight( name=namegen.next_unit_name(country, cp.id, flight.unit_type), side=country, - unit_type=flight.unit_type, - count=flight.count, - at=cp.position) + flight=flight, + origin=cp) elif cp.is_fleet: group_name = cp.get_carrier_group_name() group = self._generate_at_group( @@ -1002,9 +1011,8 @@ class AircraftConflictGenerator: group = self._generate_inflight( name=namegen.next_unit_name(country, cp.id, flight.unit_type), side=country, - unit_type=flight.unit_type, - count=flight.count, - at=cp.position) + flight=flight, + origin=cp) group.points[0].alt = 1500 return group diff --git a/gen/flights/ai_flight_planner.py b/gen/flights/ai_flight_planner.py index ee458908..7d152efa 100644 --- a/gen/flights/ai_flight_planner.py +++ b/gen/flights/ai_flight_planner.py @@ -50,7 +50,7 @@ from theater import ( ControlPoint, FrontLine, MissionTarget, - TheaterGroundObject, + OffMapSpawn, TheaterGroundObject, SamGroundObject, ) @@ -232,8 +232,12 @@ class PackageBuilder: if assignment is None: return False airfield, aircraft = assignment + if isinstance(airfield, OffMapSpawn): + start_type = "In Flight" + else: + start_type = self.start_type flight = Flight(self.package, aircraft, plan.num_aircraft, airfield, - plan.task, self.start_type) + plan.task, start_type) self.package.add_flight(flight) return True @@ -406,6 +410,9 @@ class ObjectiveFinder: CP. """ for cp in self.friendly_control_points(): + if isinstance(cp, OffMapSpawn): + # Off-map spawn locations don't need protection. + continue airfields_in_proximity = self.closest_airfields_to(cp) airfields_in_threat_range = airfields_in_proximity.airfields_within( self.AIRFIELD_THREAT_RANGE diff --git a/gen/flights/waypointbuilder.py b/gen/flights/waypointbuilder.py index f220ebb4..346a4498 100644 --- a/gen/flights/waypointbuilder.py +++ b/gen/flights/waypointbuilder.py @@ -8,11 +8,15 @@ from dcs.unit import Unit from dcs.unitgroup import VehicleGroup from game.data.doctrine import Doctrine -from game.utils import nm_to_meter +from game.utils import feet_to_meter from game.weather import Conditions -from theater import ControlPoint, MissionTarget, TheaterGroundObject +from theater import ( + ControlPoint, + MissionTarget, + OffMapSpawn, + TheaterGroundObject, +) from .flight import Flight, FlightWaypoint, FlightWaypointType -from ..runways import RunwayAssigner @dataclass(frozen=True) @@ -34,8 +38,7 @@ class WaypointBuilder: def is_helo(self) -> bool: return getattr(self.flight.unit_type, "helicopter", False) - @staticmethod - def takeoff(departure: ControlPoint) -> FlightWaypoint: + def takeoff(self, departure: ControlPoint) -> FlightWaypoint: """Create takeoff waypoint for the given arrival airfield or carrier. Note that the takeoff waypoint will automatically be created by pydcs @@ -46,36 +49,59 @@ class WaypointBuilder: departure: Departure airfield or carrier. """ position = departure.position - waypoint = FlightWaypoint( - FlightWaypointType.TAKEOFF, - position.x, - position.y, - 0 - ) - waypoint.name = "TAKEOFF" - waypoint.alt_type = "RADIO" - waypoint.description = "Takeoff" - waypoint.pretty_name = "Takeoff" + if isinstance(departure, OffMapSpawn): + waypoint = FlightWaypoint( + FlightWaypointType.NAV, + position.x, + position.y, + 500 if self.is_helo else self.doctrine.rendezvous_altitude + ) + waypoint.name = "NAV" + waypoint.alt_type = "BARO" + waypoint.description = "Enter theater" + waypoint.pretty_name = "Enter theater" + else: + waypoint = FlightWaypoint( + FlightWaypointType.TAKEOFF, + position.x, + position.y, + 0 + ) + waypoint.name = "TAKEOFF" + waypoint.alt_type = "RADIO" + waypoint.description = "Takeoff" + waypoint.pretty_name = "Takeoff" return waypoint - @staticmethod - def land(arrival: ControlPoint) -> FlightWaypoint: + def land(self, arrival: ControlPoint) -> FlightWaypoint: """Create descent waypoint for the given arrival airfield or carrier. Args: arrival: Arrival airfield or carrier. """ position = arrival.position - waypoint = FlightWaypoint( - FlightWaypointType.LANDING_POINT, - position.x, - position.y, - 0 - ) - waypoint.name = "LANDING" - waypoint.alt_type = "RADIO" - waypoint.description = "Land" - waypoint.pretty_name = "Land" + if isinstance(arrival, OffMapSpawn): + waypoint = FlightWaypoint( + FlightWaypointType.NAV, + position.x, + position.y, + 500 if self.is_helo else self.doctrine.rendezvous_altitude + ) + waypoint.name = "NAV" + waypoint.alt_type = "BARO" + waypoint.description = "Exit theater" + waypoint.pretty_name = "Exit theater" + else: + waypoint = FlightWaypoint( + FlightWaypointType.LANDING_POINT, + position.x, + position.y, + 0 + ) + waypoint.name = "LANDING" + waypoint.alt_type = "RADIO" + waypoint.description = "Land" + waypoint.pretty_name = "Land" return waypoint def hold(self, position: Point) -> FlightWaypoint: diff --git a/qt_ui/widgets/map/QMapControlPoint.py b/qt_ui/widgets/map/QMapControlPoint.py index e59cdbfb..7ef55952 100644 --- a/qt_ui/widgets/map/QMapControlPoint.py +++ b/qt_ui/widgets/map/QMapControlPoint.py @@ -79,11 +79,8 @@ class QMapControlPoint(QMapObject): for connected in self.control_point.connected_points: if connected.captured: + menu.addAction(self.capture_action) break - else: - return - - menu.addAction(self.capture_action) def cheat_capture(self) -> None: self.control_point.capture(self.game_model.game, for_player=True) diff --git a/qt_ui/widgets/map/QMapObject.py b/qt_ui/widgets/map/QMapObject.py index a3c57c19..16f07061 100644 --- a/qt_ui/widgets/map/QMapObject.py +++ b/qt_ui/widgets/map/QMapObject.py @@ -47,9 +47,12 @@ class QMapObject(QGraphicsRectItem): object_details_action.triggered.connect(self.on_click) menu.addAction(object_details_action) - new_package_action = QAction(f"New package") - new_package_action.triggered.connect(self.open_new_package_dialog) - menu.addAction(new_package_action) + # Not all locations have valid objetives. Off-map spawns, for example, + # have no mission types. + if list(self.mission_target.mission_types(for_player=True)): + new_package_action = QAction(f"New package") + new_package_action.triggered.connect(self.open_new_package_dialog) + menu.addAction(new_package_action) self.add_context_menu_actions(menu) diff --git a/qt_ui/windows/basemenu/QBaseMenu2.py b/qt_ui/windows/basemenu/QBaseMenu2.py index cf5e1a34..cfdb8128 100644 --- a/qt_ui/windows/basemenu/QBaseMenu2.py +++ b/qt_ui/windows/basemenu/QBaseMenu2.py @@ -18,7 +18,6 @@ class QBaseMenu2(QDialog): # Attrs self.cp = cp self.game_model = game_model - self.is_carrier = self.cp.cptype in [ControlPointType.AIRCRAFT_CARRIER_GROUP, ControlPointType.LHA_GROUP] self.objectName = "menuDialogue" # Widgets diff --git a/qt_ui/windows/basemenu/QBaseMenuTabs.py b/qt_ui/windows/basemenu/QBaseMenuTabs.py index 0c82c86e..fd2f7ae7 100644 --- a/qt_ui/windows/basemenu/QBaseMenuTabs.py +++ b/qt_ui/windows/basemenu/QBaseMenuTabs.py @@ -5,39 +5,30 @@ from qt_ui.windows.basemenu.airfield.QAirfieldCommand import QAirfieldCommand from qt_ui.windows.basemenu.base_defenses.QBaseDefensesHQ import QBaseDefensesHQ from qt_ui.windows.basemenu.ground_forces.QGroundForcesHQ import QGroundForcesHQ from qt_ui.windows.basemenu.intel.QIntelInfo import QIntelInfo -from theater import ControlPoint +from theater import ControlPoint, OffMapSpawn class QBaseMenuTabs(QTabWidget): def __init__(self, cp: ControlPoint, game_model: GameModel): super(QBaseMenuTabs, self).__init__() - self.cp = cp - if cp: - - if not cp.captured: - if not cp.is_carrier: - self.base_defenses_hq = QBaseDefensesHQ(cp, game_model.game) - self.addTab(self.base_defenses_hq, "Base Defenses") - self.intel = QIntelInfo(cp, game_model.game) - self.addTab(self.intel, "Intel") - else: - if cp.has_runway(): - self.airfield_command = QAirfieldCommand(cp, game_model) - self.addTab(self.airfield_command, "Airfield Command") - - if not cp.is_carrier: - self.ground_forces_hq = QGroundForcesHQ(cp, game_model) - self.addTab(self.ground_forces_hq, "Ground Forces HQ") - self.base_defenses_hq = QBaseDefensesHQ(cp, game_model.game) - self.addTab(self.base_defenses_hq, "Base Defenses") - else: - self.base_defenses_hq = QBaseDefensesHQ(cp, game_model.game) - self.addTab(self.base_defenses_hq, "Fleet") + if not cp.captured: + if not cp.is_carrier and not isinstance(cp, OffMapSpawn): + self.base_defenses_hq = QBaseDefensesHQ(cp, game_model.game) + self.addTab(self.base_defenses_hq, "Base Defenses") + self.intel = QIntelInfo(cp, game_model.game) + self.addTab(self.intel, "Intel") else: - tabError = QFrame() - l = QGridLayout() - l.addWidget(QLabel("No Control Point")) - tabError.setLayout(l) - self.addTab(tabError, "No Control Point") \ No newline at end of file + if cp.has_runway(): + self.airfield_command = QAirfieldCommand(cp, game_model) + self.addTab(self.airfield_command, "Airfield Command") + + if cp.is_carrier: + self.base_defenses_hq = QBaseDefensesHQ(cp, game_model.game) + self.addTab(self.base_defenses_hq, "Fleet") + elif not isinstance(cp, OffMapSpawn): + self.ground_forces_hq = QGroundForcesHQ(cp, game_model) + self.addTab(self.ground_forces_hq, "Ground Forces HQ") + self.base_defenses_hq = QBaseDefensesHQ(cp, game_model.game) + self.addTab(self.base_defenses_hq, "Base Defenses") \ No newline at end of file diff --git a/qt_ui/windows/mission/flight/QFlightCreator.py b/qt_ui/windows/mission/flight/QFlightCreator.py index f4fe6041..80fbf219 100644 --- a/qt_ui/windows/mission/flight/QFlightCreator.py +++ b/qt_ui/windows/mission/flight/QFlightCreator.py @@ -18,7 +18,7 @@ from qt_ui.widgets.QLabeledWidget import QLabeledWidget from qt_ui.widgets.combos.QAircraftTypeSelector import QAircraftTypeSelector from qt_ui.widgets.combos.QFlightTypeComboBox import QFlightTypeComboBox from qt_ui.widgets.combos.QOriginAirfieldSelector import QOriginAirfieldSelector -from theater import ControlPoint +from theater import ControlPoint, OffMapSpawn class QFlightCreator(QDialog): @@ -107,7 +107,9 @@ class QFlightCreator(QDialog): origin = self.airfield_selector.currentData() size = self.flight_size_spinner.value() - if self.game.settings.perf_ai_parking_start: + if isinstance(origin, OffMapSpawn): + start_type = "In Flight" + elif self.game.settings.perf_ai_parking_start: start_type = "Cold" else: start_type = "Warm" diff --git a/qt_ui/windows/mission/flight/waypoints/QFlightWaypointList.py b/qt_ui/windows/mission/flight/waypoints/QFlightWaypointList.py index 381d8e39..c8d4562f 100644 --- a/qt_ui/windows/mission/flight/waypoints/QFlightWaypointList.py +++ b/qt_ui/windows/mission/flight/waypoints/QFlightWaypointList.py @@ -42,15 +42,7 @@ class QFlightWaypointList(QTableView): self.model.setHorizontalHeaderLabels(["Name", "Alt", "TOT/DEPART"]) - # The first waypoint is set up by pydcs at mission generation time, so - # we need to add that waypoint manually. - takeoff = FlightWaypoint(self.flight.from_cp.position.x, - self.flight.from_cp.position.y, 0) - takeoff.description = "Take Off" - takeoff.name = takeoff.pretty_name = "Take Off from " + self.flight.from_cp.name - takeoff.alt_type = "RADIO" - - waypoints = itertools.chain([takeoff], self.flight.points) + waypoints = self.flight.flight_plan.waypoints for row, waypoint in enumerate(waypoints): self.add_waypoint_row(row, self.flight, waypoint) self.selectionModel().setCurrentIndex(self.indexAt(QPoint(1, 1)), diff --git a/resources/campaigns/inherent_resolve.miz b/resources/campaigns/inherent_resolve.miz index 12dbaed8ec60fbf467659916adcc3234b55fe0ea..6b1e4be3d6e13481feb6c6b6596d63b240dcec9d 100644 GIT binary patch delta 29410 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