From 6e0af7c1449636ce5d84e6b9ce88a0ee5c0afc97 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Mon, 23 Nov 2020 17:15:42 -0800 Subject: [PATCH] Fix names of tasks to not use the enum name. --- game/operation/operation.py | 2 +- gen/aircraft.py | 6 +-- gen/ato.py | 11 +---- gen/flights/ai_flight_planner.py | 2 +- gen/flights/flight.py | 40 ++++++++----------- gen/flights/flightplan.py | 10 +---- qt_ui/models.py | 5 +-- qt_ui/widgets/QTopPanel.py | 2 +- qt_ui/widgets/ato.py | 2 +- qt_ui/widgets/combos/QFlightTypeComboBox.py | 2 +- qt_ui/windows/mission/QFlightItem.py | 6 +-- .../flight/settings/QFlightTypeTaskInfo.py | 4 +- .../flight/waypoints/QFlightWaypointTab.py | 2 +- .../briefing/templates/briefingtemplate_CN.j2 | 4 +- .../briefing/templates/briefingtemplate_EN.j2 | 4 +- .../briefing/templates/briefingtemplate_FR.j2 | 4 +- 16 files changed, 39 insertions(+), 67 deletions(-) diff --git a/game/operation/operation.py b/game/operation/operation.py index 671d060b..dd53e0e8 100644 --- a/game/operation/operation.py +++ b/game/operation/operation.py @@ -433,7 +433,7 @@ class Operation: FlightType.DEAD, FlightType.SEAD, FlightType.STRIKE]: - flightType = flight.flight_type.name + flightType = str(flight.flight_type) flightTarget = flight.package.target if flightTarget: flightTargetName = None diff --git a/gen/aircraft.py b/gen/aircraft.py index 8459d5c2..a4c60623 100644 --- a/gen/aircraft.py +++ b/gen/aircraft.py @@ -954,8 +954,8 @@ class AircraftConflictGenerator: # Creating a flight even those this isn't a fragged mission lets us # reuse the existing debriefing code. # TODO: Special flight type? - flight = Flight(Package(control_point), aircraft, 1, FlightType.CAP, - "Cold", departure=control_point, + flight = Flight(Package(control_point), aircraft, 1, + FlightType.BARCAP, "Cold", departure=control_point, arrival=control_point, divert=None) group = self._generate_at_airport( name=namegen.next_unit_name(country, control_point.id, @@ -1196,7 +1196,7 @@ class AircraftConflictGenerator: def configure_unknown_task(self, group: FlyingGroup, flight: Flight) -> None: - logging.error(f"Unhandled flight type: {flight.flight_type.name}") + logging.error(f"Unhandled flight type: {flight.flight_type}") self.configure_behavior(group) def setup_flight_group(self, group: FlyingGroup, package: Package, diff --git a/gen/ato.py b/gen/ato.py index 7927423b..d5a658c8 100644 --- a/gen/ato.py +++ b/gen/ato.py @@ -147,20 +147,13 @@ class Package: FlightType.CAS, FlightType.STRIKE, FlightType.ANTISHIP, + FlightType.RUNWAY_ATTACK, FlightType.BAI, - FlightType.EVAC, - FlightType.TROOP_TRANSPORT, - FlightType.RECON, - FlightType.ELINT, FlightType.DEAD, FlightType.SEAD, - FlightType.LOGISTICS, - FlightType.INTERCEPTION, FlightType.TARCAP, - FlightType.CAP, FlightType.BARCAP, FlightType.SWEEP, - FlightType.EWAR, FlightType.ESCORT, ] for task in task_priorities: @@ -179,7 +172,7 @@ class Package: task = self.primary_task if task is None: return "No mission" - return task.name + return str(task) def __hash__(self) -> int: # TODO: Far from perfect. Number packages? diff --git a/gen/flights/ai_flight_planner.py b/gen/flights/ai_flight_planner.py index c21ca65d..bdc3b487 100644 --- a/gen/flights/ai_flight_planner.py +++ b/gen/flights/ai_flight_planner.py @@ -86,7 +86,7 @@ class ProposedFlight: max_distance: int def __str__(self) -> str: - return f"{self.task.name} {self.num_aircraft} ship" + return f"{self.task} {self.num_aircraft} ship" @dataclass(frozen=True) diff --git a/gen/flights/flight.py b/gen/flights/flight.py index 99bc7f64..f01632b5 100644 --- a/gen/flights/flight.py +++ b/gen/flights/flight.py @@ -17,29 +17,21 @@ if TYPE_CHECKING: class FlightType(Enum): - CAP = 0 # Do not use. Use BARCAP or TARCAP. - TARCAP = 1 - BARCAP = 2 - CAS = 3 - INTERCEPTION = 4 - STRIKE = 5 - ANTISHIP = 6 - SEAD = 7 - DEAD = 8 - ESCORT = 9 - BAI = 10 + TARCAP = "TARCAP" + BARCAP = "BARCAP" + CAS = "CAS" + INTERCEPTION = "Intercept" + STRIKE = "Strike" + ANTISHIP = "Anti-ship" + SEAD = "SEAD" + DEAD = "DEAD" + ESCORT = "Escort" + BAI = "BAI" + SWEEP = "Fighter sweep" + RUNWAY_ATTACK = "Runway attack" - # Helos - TROOP_TRANSPORT = 11 - LOGISTICS = 12 - EVAC = 13 - - ELINT = 14 - RECON = 15 - EWAR = 16 - - SWEEP = 17 - RUNWAY_ATTACK = 18 + def __str__(self) -> str: + return self.value class FlightWaypointType(Enum): @@ -172,5 +164,5 @@ class Flight: return self.flight_plan.waypoints[1:] def __repr__(self): - return self.flight_type.name + " | " + str(self.count) + "x" + db.unit_type_name(self.unit_type) \ - + " (" + str(len(self.points)) + " wpt)" + name = db.unit_type_name(self.unit_type) + return f"[{self.flight_type}] {self.count} x {name}" diff --git a/gen/flights/flightplan.py b/gen/flights/flightplan.py index 1b88e040..ce906b43 100644 --- a/gen/flights/flightplan.py +++ b/gen/flights/flightplan.py @@ -56,9 +56,7 @@ class PlanningError(RuntimeError): class InvalidObjectiveLocation(PlanningError): """Raised when the objective location is invalid for the mission type.""" def __init__(self, task: FlightType, location: MissionTarget) -> None: - super().__init__( - f"{location.name} is not valid for {task.name} missions." - ) + super().__init__(f"{location.name} is not valid for {task} missions.") @dataclass(frozen=True) @@ -661,12 +659,8 @@ class FlightPlanBuilder: return self.generate_sweep(flight) elif task == FlightType.TARCAP: return self.generate_tarcap(flight) - elif task == FlightType.TROOP_TRANSPORT: - logging.error( - "Troop transport flight plan generation not implemented" - ) raise PlanningError( - f"{task.name} flight plan generation not implemented") + f"{task} flight plan generation not implemented") def regenerate_package_waypoints(self) -> None: ingress_point = self._ingress_point() diff --git a/qt_ui/models.py b/qt_ui/models.py index 45a25f50..bd0d6397 100644 --- a/qt_ui/models.py +++ b/qt_ui/models.py @@ -121,14 +121,11 @@ class PackageModel(QAbstractListModel): def text_for_flight(self, flight: Flight) -> str: """Returns the text that should be displayed for the flight.""" - task = flight.flight_type.name - count = flight.count - name = db.unit_type_name(flight.unit_type) estimator = TotEstimator(self.package) delay = datetime.timedelta( seconds=int(estimator.mission_start_time(flight).total_seconds())) origin = flight.from_cp.name - return f"[{task}] {count} x {name} from {origin} in {delay}" + return f"{flight} from {origin} in {delay}" @staticmethod def icon_for_flight(flight: Flight) -> Optional[QIcon]: diff --git a/qt_ui/widgets/QTopPanel.py b/qt_ui/widgets/QTopPanel.py index 38fdc3ab..a96e2c6f 100644 --- a/qt_ui/widgets/QTopPanel.py +++ b/qt_ui/widgets/QTopPanel.py @@ -171,7 +171,7 @@ class QTopPanel(QFrame): def confirm_negative_start_time(self, negative_starts: List[Package]) -> bool: formatted = '
'.join( - [f"{p.primary_task.name} {p.target.name}" for p in negative_starts] + [f"{p.primary_task} {p.target.name}" for p in negative_starts] ) mbox = QMessageBox( QMessageBox.Question, diff --git a/qt_ui/widgets/ato.py b/qt_ui/widgets/ato.py index 295c4ee9..c4c38e22 100644 --- a/qt_ui/widgets/ato.py +++ b/qt_ui/widgets/ato.py @@ -60,7 +60,7 @@ class FlightDelegate(QStyledItemDelegate): def first_row_text(self, index: QModelIndex) -> str: flight = self.flight(index) - task = flight.flight_type.name + task = flight.flight_type count = flight.count name = db.unit_type_name(flight.unit_type) estimator = TotEstimator(self.package) diff --git a/qt_ui/widgets/combos/QFlightTypeComboBox.py b/qt_ui/widgets/combos/QFlightTypeComboBox.py index 1918dd4d..df47f56d 100644 --- a/qt_ui/widgets/combos/QFlightTypeComboBox.py +++ b/qt_ui/widgets/combos/QFlightTypeComboBox.py @@ -13,4 +13,4 @@ class QFlightTypeComboBox(QComboBox): self.theater = theater self.target = target for mission_type in self.target.mission_types(for_player=True): - self.addItem(mission_type.name, userData=mission_type) + self.addItem(str(mission_type), userData=mission_type) diff --git a/qt_ui/windows/mission/QFlightItem.py b/qt_ui/windows/mission/QFlightItem.py index 78966dbf..3ba73a64 100644 --- a/qt_ui/windows/mission/QFlightItem.py +++ b/qt_ui/windows/mission/QFlightItem.py @@ -1,5 +1,3 @@ -import datetime - from PySide2.QtGui import QStandardItem, QIcon from game import db @@ -23,6 +21,4 @@ class QFlightItem(QStandardItem): self.setEditable(False) estimator = TotEstimator(self.package) delay = estimator.mission_start_time(flight) - self.setText("["+str(self.flight.flight_type.name[:6])+"] " - + str(self.flight.count) + " x " + db.unit_type_name(self.flight.unit_type) - + " in " + str(delay)) + self.setText(f"{flight} in {delay}") diff --git a/qt_ui/windows/mission/flight/settings/QFlightTypeTaskInfo.py b/qt_ui/windows/mission/flight/settings/QFlightTypeTaskInfo.py index c1e82ef3..76e7f815 100644 --- a/qt_ui/windows/mission/flight/settings/QFlightTypeTaskInfo.py +++ b/qt_ui/windows/mission/flight/settings/QFlightTypeTaskInfo.py @@ -16,8 +16,8 @@ class QFlightTypeTaskInfo(QGroupBox): if db.unit_type_name(self.flight.unit_type) in AIRCRAFT_ICONS: self.aircraft_icon.setPixmap(AIRCRAFT_ICONS[db.unit_type_name(self.flight.unit_type)]) - self.task = QLabel("Task :") - self.task_type = QLabel(flight.flight_type.name) + self.task = QLabel("Task:") + self.task_type = QLabel(str(flight.flight_type)) self.task_type.setProperty("style", flight.flight_type.name) layout.addWidget(self.aircraft_icon, 0, 0) diff --git a/qt_ui/windows/mission/flight/waypoints/QFlightWaypointTab.py b/qt_ui/windows/mission/flight/waypoints/QFlightWaypointTab.py index eeb0eaca..c7302588 100644 --- a/qt_ui/windows/mission/flight/waypoints/QFlightWaypointTab.py +++ b/qt_ui/windows/mission/flight/waypoints/QFlightWaypointTab.py @@ -64,7 +64,7 @@ class QFlightWaypointTab(QFrame): def closure(): return self.confirm_recreate(arg) return closure - button = QPushButton(f"Recreate as {task.name}") + button = QPushButton(f"Recreate as {task}") button.clicked.connect(make_closure(task)) rlayout.addWidget(button) self.recreate_buttons.append(button) diff --git a/resources/briefing/templates/briefingtemplate_CN.j2 b/resources/briefing/templates/briefingtemplate_CN.j2 index 36f1522d..64289e56 100644 --- a/resources/briefing/templates/briefingtemplate_CN.j2 +++ b/resources/briefing/templates/briefingtemplate_CN.j2 @@ -66,7 +66,7 @@ DCS Liberation 第 {{ game.turn }} 回合 ==================== {% for flight in flights if flight.client_units %} -------------------------------------------------- -{{ flight.flight_type.name }} {{ flight.units[0].type }} x {{ flight.size }}, {{ flight.package.target.name}} +{{ flight.flight_type }} {{ flight.units[0].type }} x {{ flight.size }}, {{ flight.package.target.name}} {% for waypoint in flight.waypoints %}{{ loop.index }} -- {{waypoint.name}} : {{ waypoint.description}} {% endfor %} --------------------------------------------------{% endfor %} @@ -78,7 +78,7 @@ DCS Liberation 第 {{ game.turn }} 回合 {{ dep }} --------------------------------------------------- {% for flight in allied_flights_by_departure[dep] %} -{{ flight.flight_type.name }} {{ flight.units[0].type }} x {{flight.size}}, departing in {{ flight.departure_delay }}, {{ flight.package.target.name}} +{{ flight.flight_type }} {{ flight.units[0].type }} x {{flight.size}}, departing in {{ flight.departure_delay }}, {{ flight.package.target.name}} {% endfor %} {% endfor %} diff --git a/resources/briefing/templates/briefingtemplate_EN.j2 b/resources/briefing/templates/briefingtemplate_EN.j2 index 864fbabc..b9881215 100644 --- a/resources/briefing/templates/briefingtemplate_EN.j2 +++ b/resources/briefing/templates/briefingtemplate_EN.j2 @@ -66,7 +66,7 @@ Your flights: ==================== {% for flight in flights if flight.client_units %} -------------------------------------------------- -{{ flight.flight_type.name }} {{ flight.units[0].type }} x {{ flight.size }}, {{ flight.package.target.name}} +{{ flight.flight_type }} {{ flight.units[0].type }} x {{ flight.size }}, {{ flight.package.target.name}} {% for waypoint in flight.waypoints %}{{ loop.index }} -- {{waypoint.name}} : {{ waypoint.description}} {% endfor %} --------------------------------------------------{% endfor %} @@ -78,7 +78,7 @@ Planned ally flights: {{ dep }} --------------------------------------------------- {% for flight in allied_flights_by_departure[dep] %} -{{ flight.flight_type.name }} {{ flight.units[0].type }} x {{flight.size}}, departing in {{ flight.departure_delay }}, {{ flight.package.target.name}} +{{ flight.flight_type }} {{ flight.units[0].type }} x {{flight.size}}, departing in {{ flight.departure_delay }}, {{ flight.package.target.name}} {% endfor %} {% endfor %} diff --git a/resources/briefing/templates/briefingtemplate_FR.j2 b/resources/briefing/templates/briefingtemplate_FR.j2 index 256417d0..8f8c696d 100644 --- a/resources/briefing/templates/briefingtemplate_FR.j2 +++ b/resources/briefing/templates/briefingtemplate_FR.j2 @@ -66,7 +66,7 @@ Vols : ========== {% for flight in flights if flight.client_units %} -------------------------------------------------- -{{ flight.flight_type.name }} {{ flight.units[0].type }} x {{ flight.size }}, {{ flight.package.target.name}} +{{ flight.flight_type }} {{ flight.units[0].type }} x {{ flight.size }}, {{ flight.package.target.name}} {% for waypoint in flight.waypoints %}{{ loop.index }} -- {{waypoint.name}} : {{ waypoint.description}} {% endfor %} --------------------------------------------------{% endfor %} @@ -78,7 +78,7 @@ Vols alliés prévus : {{ dep }} --------------------------------------------------- {% for flight in allied_flights_by_departure[dep] %} -{{ flight.flight_type.name }} {{ flight.units[0].type }} x {{flight.size}}, départ dans {{ flight.departure_delay }}, {{ flight.package.target.name}} +{{ flight.flight_type }} {{ flight.units[0].type }} x {{flight.size}}, départ dans {{ flight.departure_delay }}, {{ flight.package.target.name}} {% endfor %} {% endfor %}