diff options
| author | Maks Jopek <maksymilian.jopek@prym-soft.pl> | 2021-04-24 00:34:07 +0200 |
|---|---|---|
| committer | Maks Jopek <maksymilian.jopek@prym-soft.pl> | 2021-04-24 00:34:07 +0200 |
| commit | 13dcc2c8fc1d11e3b94432fffc4c4f186bd94d29 (patch) | |
| tree | 077a963bae31729dffa6c7c678af112680bb6d38 /frontend/ts/timer.ts | |
| parent | 457ee1d7caa899bbe86bf7a1390f940b5b3176b7 (diff) | |
| download | fia-13dcc2c8fc1d11e3b94432fffc4c4f186bd94d29.tar.gz fia-13dcc2c8fc1d11e3b94432fffc4c4f186bd94d29.tar.zst fia-13dcc2c8fc1d11e3b94432fffc4c4f186bd94d29.zip | |
Playing almost working
Diffstat (limited to 'frontend/ts/timer.ts')
| -rw-r--r-- | frontend/ts/timer.ts | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/frontend/ts/timer.ts b/frontend/ts/timer.ts new file mode 100644 index 0000000..f8dab25 --- /dev/null +++ b/frontend/ts/timer.ts @@ -0,0 +1,30 @@ +export default class Timer { + divTimer!: HTMLElement; + + interval!: any; + async start(playerIndex: number, finishTime: number): Promise<void> { + return new Promise(resolve => { + let divTimer = document.getElementById(`${playerIndex}-player-time`); + if (divTimer === null) + throw new Error("divTimer doesn't Exist"); + else + this.divTimer = divTimer; + + this.interval = setInterval(() => { + this.updateDisplay(finishTime - Date.now(), resolve); + }, 1000); + }) + } + + updateDisplay(time: number, resolve: Function): void { + let secondsElapsed = Math.floor(time / 1000); + this.divTimer.innerHTML = secondsElapsed.toString(); + if (secondsElapsed === 0) { + resolve(); + clearInterval(this.interval); + } + } + stop(): void { + clearInterval(this.interval); + } +}
\ No newline at end of file |
