'Connected' messaged is now a clock/timer

This commit is contained in:
PeekabooSteam
2023-10-05 15:12:07 +01:00
parent ace0908d84
commit 2435072b07
5 changed files with 78 additions and 12 deletions

View File

@@ -87,6 +87,7 @@ export class MissionManager {
/* Set the date and time data */
this.#dateAndTime = data.mission.dateAndTime;
data.mission.dateAndTime.time.s -= 1; // ED has seconds 1-60 and not 0-59?!
/* Set the coalition countries */
this.#coalitions = data.mission.coalitions;

View File

@@ -2,10 +2,31 @@ import { Panel } from "./panel";
export class ConnectionStatusPanel extends Panel {
#elapsedTimeElement:HTMLElement;
#missionTimeElement:HTMLElement;
constructor(ID: string) {
super( ID );
this.#elapsedTimeElement = <HTMLElement>this.getElement().querySelector( ".mission-elapsed-time" );
this.#missionTimeElement = <HTMLElement>this.getElement().querySelector( ".mission-time" );
this.#elapsedTimeElement.addEventListener( "click", () => {
this.#toggleTime();
});
this.#missionTimeElement.addEventListener( "click", () => {
this.#toggleTime();
});
}
setElapsedTime( time:string ) {
this.#elapsedTimeElement.innerText = `ET: ${time}`;
}
setMissionTime( time:string ) {
this.#missionTimeElement.innerText = `MT: ${time} L`;
}
showDisconnected() {
this.getElement().toggleAttribute( "data-is-connected", false );
@@ -24,4 +45,7 @@ export class ConnectionStatusPanel extends Panel {
this.getElement().toggleAttribute( "data-is-paused", true );
}
#toggleTime() {
this.getElement().toggleAttribute( "data-mission-time" );
}
}

View File

@@ -6,6 +6,7 @@ import { LogPanel } from '../panels/logpanel';
import { Popup } from '../popups/popup';
import { ConnectionStatusPanel } from '../panels/connectionstatuspanel';
import { AirbasesData, BullseyesData, GeneralSettings, MissionData, Radio, ServerRequestOptions, TACAN } from '../interfaces';
import { zeroAppend } from '../other/utils';
export class ServerManager {
#connected: boolean = false;
@@ -467,6 +468,23 @@ export class ServerManager {
}
}, ( this.getServerIsPaused() ? 500 : 5000 ));
// Mission clock and elapsed time
window.setInterval( () => {
if ( !this.getConnected() || this.#serverIsPaused ) {
return;
}
const elapsedMissionTime = getApp().getMissionManager().getDateAndTime().elapsedTime;
const csp = (getApp().getPanelsManager().get("connectionStatus") as ConnectionStatusPanel);
const mt = getApp().getMissionManager().getDateAndTime().time;
csp.setMissionTime( [ mt.h, mt.m, mt.s ].map( n => zeroAppend( n, 2 )).join( ":" ) );
csp.setElapsedTime( new Date( elapsedMissionTime * 1000 ).toISOString().substring( 11, 19 ) );
}, 1000 );
window.setInterval(() => {
if (!this.getPaused() && getApp().getMissionManager().getCommandModeOptions().commandMode != NONE) {
this.getWeapons((buffer: ArrayBuffer) => {