diff --git a/client/src/index.ts b/client/src/index.ts index 10bd23a5..e1ec24af 100644 --- a/client/src/index.ts +++ b/client/src/index.ts @@ -45,7 +45,7 @@ function setup() { contextMenu = new ContextMenu("contextmenu"); - //unitInfoPanel = new UnitInfoPanel("unit-info-panel"); + unitInfoPanel = new UnitInfoPanel("unit-info-panel"); unitControlPanel = new UnitControlPanel("unit-control-panel"); connectionStatusPanel = new ConnectionStatusPanel("connection-status-panel"); mouseInfoPanel = new MouseInfoPanel("mouse-info-panel"); diff --git a/client/src/panels/unitinfopanel.ts b/client/src/panels/unitinfopanel.ts index 882b7ac8..0505ea7e 100644 --- a/client/src/panels/unitinfopanel.ts +++ b/client/src/panels/unitinfopanel.ts @@ -32,13 +32,14 @@ export class UnitInfoPanel extends Panel { document.addEventListener("unitsSelection", (e: CustomEvent) => this.#onUnitsSelection(e.detail)); document.addEventListener("unitsDeselection", (e: CustomEvent) => this.#onUnitsDeselection(e.detail)); + document.addEventListener("clearSelection", () => this.#onUnitsDeselection([])); document.addEventListener("unitUpdated", (e: CustomEvent) => this.#onUnitUpdate(e.detail)); this.hide(); } #onUnitUpdate(unit: Unit) { - if (this.getElement() != null && this.getVisible()) { + if (this.getElement() != null && this.getVisible() && unit.getSelected()) { /* Set the unit info */ this.#unitName.innerText = unit.getBaseData().unitName; this.#groupName.innerText = unit.getBaseData().groupName; @@ -46,9 +47,9 @@ export class UnitInfoPanel extends Panel { this.#heading.innerText = String(Math.floor(rad2deg(unit.getFlightData().heading)) + " °"); this.#altitude.innerText = String(Math.floor(unit.getFlightData().altitude / 0.3048) + " ft"); this.#groundSpeed.innerText = String(Math.floor(unit.getFlightData().speed * 1.94384) + " kts"); - this.#fuel.innerText = String(unit.getMissionData().fuel + "%"); - this.#latitude.innerText = ConvertDDToDMS(unit.getFlightData().latitude, false); - this.#longitude.innerText = ConvertDDToDMS(unit.getFlightData().longitude, true); + //this.#fuel.innerText = String(unit.getMissionData().fuel + "%"); + //this.#latitude.innerText = ConvertDDToDMS(unit.getFlightData().latitude, false); + //this.#longitude.innerText = ConvertDDToDMS(unit.getFlightData().longitude, true); this.#task.innerText = unit.getTaskData().currentTask !== ""? unit.getTaskData().currentTask: "No task"; /* Set the class of the task container */ diff --git a/client/src/units/unit.ts b/client/src/units/unit.ts index 41722f1b..0ce5bd90 100644 --- a/client/src/units/unit.ts +++ b/client/src/units/unit.ts @@ -365,6 +365,10 @@ export class Unit extends Marker { var element = this.getElement(); if (element != null) { element.querySelector(".unit-vvi")?.setAttribute("style", `height: ${15 + this.getFlightData().speed / 5}px; transform:rotate(${rad2deg(this.getFlightData().heading)}deg);`); + element.querySelector(".unit")?.setAttribute("data-pilot", this.getMissionData().flags.human? "human": "ai"); + + element.querySelector(".unit-fuel-level")?.setAttribute("style", `width: ${this.getMissionData().fuel}%`); + element.querySelector(".unit")?.toggleAttribute("data-has-low-fuel", this.getMissionData().fuel < 20); var unitHeadingDiv = element.querySelector(".unit-heading"); if (unitHeadingDiv != null) @@ -458,7 +462,7 @@ export class AirUnit extends Unit { export class Aircraft extends AirUnit { constructor(ID: number, data: UnitData) { super(ID, data, - `
+ `
@@ -499,7 +503,7 @@ export class GroundUnit extends Unit { var roleType = (role === "SAM") ? "sam" : "mi"; super(ID, data, ` -
+
${role?.substring(0, 1).toUpperCase()}
diff --git a/client/views/unitinfopanel.ejs b/client/views/unitinfopanel.ejs index fe53d23a..1f0bb900 100644 --- a/client/views/unitinfopanel.ejs +++ b/client/views/unitinfopanel.ejs @@ -19,9 +19,6 @@

Loadout

-
-
-