fix: timer now in sync with backend
This commit is contained in:
@@ -13,6 +13,7 @@ import { GameStreamService } from '../../services/game-stream.service';
|
||||
export class GameFacade implements OnDestroy {
|
||||
gameId = '';
|
||||
game: GameFull | null = null;
|
||||
clockSyncedAt = 0;
|
||||
errorMessage = '';
|
||||
moveInput = '';
|
||||
fenInput = '';
|
||||
@@ -119,6 +120,7 @@ export class GameFacade implements OnDestroy {
|
||||
next: (state) => {
|
||||
if (this.game) {
|
||||
this.game = { ...this.game, state };
|
||||
this.clockSyncedAt = Date.now();
|
||||
this.updateGameCompletion();
|
||||
}
|
||||
this.moveInput = '';
|
||||
@@ -207,6 +209,7 @@ export class GameFacade implements OnDestroy {
|
||||
.subscribe({
|
||||
next: (game) => {
|
||||
this.game = game;
|
||||
this.clockSyncedAt = Date.now();
|
||||
this.loading = false;
|
||||
this.updateGameCompletion();
|
||||
this.startStreaming();
|
||||
@@ -232,6 +235,7 @@ export class GameFacade implements OnDestroy {
|
||||
private applyStreamEvent(event: GameStreamEvent): void {
|
||||
if (event.type === 'gameFull') {
|
||||
this.game = event.game;
|
||||
this.clockSyncedAt = Date.now();
|
||||
this.boardSelection = this.boardSelectionService.clearSelection();
|
||||
this.updateGameCompletion();
|
||||
this.tryMakeBotMove();
|
||||
@@ -241,6 +245,7 @@ export class GameFacade implements OnDestroy {
|
||||
if (event.type === 'gameState' && this.game) {
|
||||
const moveCountBefore = this.game.state.moves.length;
|
||||
this.game = { ...this.game, state: event.state };
|
||||
this.clockSyncedAt = Date.now();
|
||||
this.updateGameCompletion();
|
||||
if (event.state.moves.length !== moveCountBefore) {
|
||||
this.boardSelection = this.boardSelectionService.clearSelection();
|
||||
|
||||
Reference in New Issue
Block a user