From d5276c9d4a70fb0434b2ba8c870c6ef6320b070c Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Sat, 12 Dec 2020 13:41:51 -0800 Subject: [PATCH] Show player waypoint timing in the briefing. Fixes https://github.com/Khopa/dcs_liberation/issues/536 --- gen/briefinggen.py | 13 +++++++++++++ resources/briefing/templates/briefingtemplate_CN.j2 | 5 +++-- resources/briefing/templates/briefingtemplate_EN.j2 | 5 +++-- resources/briefing/templates/briefingtemplate_FR.j2 | 5 +++-- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/gen/briefinggen.py b/gen/briefinggen.py index 55028635..14cef8de 100644 --- a/gen/briefinggen.py +++ b/gen/briefinggen.py @@ -5,6 +5,7 @@ from __future__ import annotations import os from dataclasses import dataclass +from datetime import timedelta from typing import Dict, List, TYPE_CHECKING from dcs.mission import Mission @@ -14,6 +15,7 @@ from game.theater import ControlPoint, FrontLine from .aircraft import FlightData from .airsupportgen import AwacsInfo, TankerInfo from .armor import JtacInfo +from .flights.flight import FlightWaypoint from .ground_forces.combat_stance import CombatStance from .radios import RadioFrequency from .runways import RunwayData @@ -118,6 +120,16 @@ class MissionInfoGenerator: raise NotImplementedError +def format_waypoint_time(waypoint: FlightWaypoint, depart_prefix: str) -> str: + if waypoint.tot is not None: + time = timedelta(seconds=int(waypoint.tot.total_seconds())) + return f"T+{time} " + elif waypoint.departure_time is not None: + time = timedelta(seconds=int(waypoint.departure_time.total_seconds())) + return f"{depart_prefix} T+{time} " + return "" + + class BriefingGenerator(MissionInfoGenerator): def __init__(self, mission: Mission, game: Game): @@ -133,6 +145,7 @@ class BriefingGenerator(MissionInfoGenerator): trim_blocks=True, lstrip_blocks=True, ) + env.filters["waypoint_timing"] = format_waypoint_time self.template = env.get_template("briefingtemplate_EN.j2") def generate(self) -> None: diff --git a/resources/briefing/templates/briefingtemplate_CN.j2 b/resources/briefing/templates/briefingtemplate_CN.j2 index 8bf4e4c6..505d7122 100644 --- a/resources/briefing/templates/briefingtemplate_CN.j2 +++ b/resources/briefing/templates/briefingtemplate_CN.j2 @@ -66,8 +66,9 @@ DCS Liberation 第 {{ game.turn }} 回合 ==================== {% for flight in flights if flight.client_units %} -------------------------------------------------- -{{ flight.flight_type }} {{ flight.units[0].type }} x {{ flight.size }}, {{ flight.package.target.name}} -{% for waypoint in flight.waypoints %}{{ loop.index0 }} -- {{waypoint.name}} : {{ waypoint.description}} +{{ flight.flight_type }} {{ flight.units[0].type }} x {{flight.size}}, departing in {{ flight.departure_delay }}, {{ flight.package.target.name}} +{% for waypoint in flight.waypoints %} +{{ loop.index0 }} {{waypoint|waypoint_timing("Depart ")}}-- {{waypoint.name}} : {{ waypoint.description}} {% endfor %} --------------------------------------------------{% endfor %} diff --git a/resources/briefing/templates/briefingtemplate_EN.j2 b/resources/briefing/templates/briefingtemplate_EN.j2 index b4bef0d1..7ec4341d 100644 --- a/resources/briefing/templates/briefingtemplate_EN.j2 +++ b/resources/briefing/templates/briefingtemplate_EN.j2 @@ -66,8 +66,9 @@ Your flights: ==================== {% for flight in flights if flight.client_units %} -------------------------------------------------- -{{ flight.flight_type }} {{ flight.units[0].type }} x {{ flight.size }}, {{ flight.package.target.name}} -{% for waypoint in flight.waypoints %}{{ loop.index0 }} -- {{waypoint.name}} : {{ waypoint.description}} +{{ flight.flight_type }} {{ flight.units[0].type }} x {{ flight.size }}, departing in {{ flight.departure_delay }}, {{ flight.package.target.name}} +{% for waypoint in flight.waypoints %} +{{ loop.index0 }} {{waypoint|waypoint_timing("Depart ")}}-- {{waypoint.name}} : {{ waypoint.description}} {% endfor %} --------------------------------------------------{% endfor %} diff --git a/resources/briefing/templates/briefingtemplate_FR.j2 b/resources/briefing/templates/briefingtemplate_FR.j2 index 53241a33..993d417c 100644 --- a/resources/briefing/templates/briefingtemplate_FR.j2 +++ b/resources/briefing/templates/briefingtemplate_FR.j2 @@ -66,8 +66,9 @@ Vols : ========== {% for flight in flights if flight.client_units %} -------------------------------------------------- -{{ flight.flight_type }} {{ flight.units[0].type }} x {{ flight.size }}, {{ flight.package.target.name}} -{% for waypoint in flight.waypoints %}{{ loop.index0 }} -- {{waypoint.name}} : {{ waypoint.description}} +{{ flight.flight_type }} {{ flight.units[0].type }} x {{flight.size}}, départ dans {{ flight.departure_delay }}, {{ flight.package.target.name}} +{% for waypoint in flight.waypoints %} +{{ loop.index0 }} {{waypoint|waypoint_timing("Départ dans ")}}-- {{waypoint.name}} : {{ waypoint.description}} {% endfor %} --------------------------------------------------{% endfor %}