mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
157 lines
4.8 KiB
JavaScript
157 lines
4.8 KiB
JavaScript
class UnitInfoPanel
|
|
{
|
|
constructor(id)
|
|
{
|
|
this._panel = document.getElementById(id);
|
|
}
|
|
|
|
update(selectedUnits)
|
|
{
|
|
if (selectedUnits.length > 0)
|
|
{
|
|
this._panel.style.bottom = "15px";
|
|
if (selectedUnits.length == 1)
|
|
{
|
|
this._showUnitData(selectedUnits[0]);
|
|
}
|
|
else
|
|
{
|
|
this._showUnitData();
|
|
this._panel.style.bottom = "-80px";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this._showUnitData();
|
|
this._panel.style.bottom = "-80px";
|
|
}
|
|
}
|
|
|
|
_showUnitData(selectedUnit)
|
|
{
|
|
if (selectedUnit !== undefined)
|
|
{
|
|
var loadout = "";
|
|
for (let index in selectedUnit.missionData.ammo)
|
|
{
|
|
if (selectedUnit.missionData != undefined)
|
|
{
|
|
var ammo = selectedUnit.missionData.ammo[index];
|
|
var displayName = ammo.desc.displayName;
|
|
var amount = ammo.count;
|
|
loadout += amount + "x" + displayName;
|
|
if (parseInt(index) < Object.keys(selectedUnit.missionData.ammo).length - 1)
|
|
{
|
|
loadout += ", ";
|
|
}
|
|
}
|
|
}
|
|
|
|
this._panel.innerHTML = `
|
|
<div style="display: flex">
|
|
<table class="panel-table" id="unit-info-table">
|
|
<tr>
|
|
<td colspan="4" class="panel-title">
|
|
UNIT INFO
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="panel-label">
|
|
Name:
|
|
</td>
|
|
<td class="panel-content">
|
|
${selectedUnit.unitName}
|
|
</td>
|
|
<td class="panel-label">
|
|
Group:
|
|
</td>
|
|
<td class="panel-content">
|
|
${selectedUnit.groupName}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="panel-label">
|
|
Heading:
|
|
</td>
|
|
<td class="panel-content">
|
|
${Math.floor(rad2deg(selectedUnit.heading)) + "°"}
|
|
</td>
|
|
<td class="panel-label">
|
|
Altitude:
|
|
</td>
|
|
<td class="panel-content">
|
|
${Math.floor(selectedUnit.altitude / 0.3048) + "ft"}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="panel-label">
|
|
Ground speed:
|
|
</td>
|
|
<td class="panel-content">
|
|
${Math.floor(selectedUnit.speed * 1.94384) + "kts"}
|
|
</td>
|
|
<td class="panel-label">
|
|
Fuel:
|
|
</td>
|
|
<td class="panel-content">
|
|
${Math.floor(selectedUnit.missionData.fuel * 100) + "%"}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="panel-label">
|
|
Position:
|
|
</td>
|
|
<td class="panel-content" colspan="3">
|
|
${ConvertDDToDMS(selectedUnit.latitude, false) + " " + ConvertDDToDMS(selectedUnit.longitude, true)}
|
|
</td>
|
|
<td>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table class="panel-table" id="tactical-info-table">
|
|
<tr>
|
|
<td colspan="4" class="panel-title">
|
|
TACTICAL INFO
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="panel-label">
|
|
Current task:
|
|
</td>
|
|
<td class="panel-content" colspan="3">
|
|
${selectedUnit.currentTask}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="panel-label">
|
|
Weapons:
|
|
</td>
|
|
<td class="panel-content" colspan="3">
|
|
${loadout}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
|
|
</tr>
|
|
<tr>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
`;
|
|
}
|
|
else
|
|
{
|
|
this._panel.innerHTML = `
|
|
<table class="panel-table">
|
|
<tr>
|
|
<td class="panel-title">
|
|
UNIT INFO
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
`;
|
|
}
|
|
}
|
|
} |