From 3e01953a3aa717b0c94d20364fd574ecc9804522 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Thu, 13 May 2021 01:23:15 -0700 Subject: [PATCH] Supply route styling, line weight rebalancing. --- qt_ui/widgets/map/mapmodel.py | 35 ++++++++++++++++++++++++++++++++--- resources/ui/map/map.js | 20 ++++++++++++++++---- 2 files changed, 48 insertions(+), 7 deletions(-) diff --git a/qt_ui/widgets/map/mapmodel.py b/qt_ui/widgets/map/mapmodel.py index cf28284f..24e5e317 100644 --- a/qt_ui/widgets/map/mapmodel.py +++ b/qt_ui/widgets/map/mapmodel.py @@ -158,14 +158,37 @@ class GroundObjectJs(QObject): class SupplyRouteJs(QObject): - def __init__(self, points: List[LeafletLatLon]) -> None: + def __init__( + self, + a: ControlPoint, + b: ControlPoint, + points: List[LeafletLatLon], + sea_route: bool, + ) -> None: super().__init__() + self.control_point_a = a + self.control_point_b = b self._points = points + self.sea_route = sea_route @Property(list) def points(self) -> List[LeafletLatLon]: return self._points + @Property(bool) + def frontActive(self) -> bool: + if self.sea_route: + return False + return self.control_point_a.front_is_active(self.control_point_b) + + @Property(bool) + def isSea(self) -> bool: + return self.sea_route + + @Property(bool) + def blue(self) -> bool: + return self.control_point_a.captured + class WaypointJs(QObject): def __init__( @@ -400,10 +423,13 @@ class MapModel(QObject): continue self._supply_routes.append( SupplyRouteJs( + control_point, + destination, [ self.leaflet_coord_for(p, self.game.theater) for p in convoy_route - ] + ], + sea_route=False, ) ) for destination, shipping_lane in control_point.shipping_lanes.items(): @@ -412,10 +438,13 @@ class MapModel(QObject): if control_point.is_friendly(destination.captured): self._supply_routes.append( SupplyRouteJs( + control_point, + destination, [ self.leaflet_coord_for(p, self.game.theater) for p in shipping_lane - ] + ], + sea_route=True, ) ) self.supplyRoutesChanged.emit() diff --git a/resources/ui/map/map.js b/resources/ui/map/map.js index 9583d08b..bbc08a86 100644 --- a/resources/ui/map/map.js +++ b/resources/ui/map/map.js @@ -148,7 +148,7 @@ function drawSamThreatsAt(tgo) { radius: range, color: detectionColor, fill: false, - weight: 2, + weight: 1, }).addTo(detectionLayer); }); @@ -157,7 +157,7 @@ function drawSamThreatsAt(tgo) { radius: range, color: threatColor, fill: false, - weight: 2, + weight: 1, }).addTo(threatLayer); }); } @@ -185,7 +185,18 @@ function drawGroundObjects() { function drawSupplyRoutes() { supplyRoutesLayer.clearLayers(); game.supplyRoutes.forEach((route) => { - L.polyline(route.points).addTo(supplyRoutesLayer); + var color; + if (route.frontActive) { + color = Colors.Red; + } else if (route.blue) { + color = "#2d3e50"; + } else { + color = "#8c1414"; + } + L.polyline(route.points, { + color: color, + weight: route.isSea ? 4 : 6, + }).addTo(supplyRoutesLayer); }); } @@ -217,11 +228,12 @@ function drawFlightPlan(flight) { .addTo(selectedFlightPlansLayer); } }); + if (flight.selected) { L.polyline(points, { color: highlight }).addTo(selectedFlightPlansLayer); L.polyline(points, { color: highlight }).addTo(layer); } else { - L.polyline(points, { color: color }).addTo(layer); + L.polyline(points, { color: color, weight: 1 }).addTo(layer); } }