From 4d68986b8d96c112d2792c78559dec2ac35aae59 Mon Sep 17 00:00:00 2001 From: frederikja Date: Thu, 7 May 2026 00:59:15 +0200 Subject: [PATCH 1/4] Make setting for go to player on spawn (default on) --- resources/lang/en.json | 2 ++ src/client/ClientGameRunner.ts | 4 +++- src/client/UserSettingModal.ts | 9 +++++++++ src/core/game/UserSettings.ts | 8 ++++++++ 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/resources/lang/en.json b/resources/lang/en.json index 812cd07334..967766ddbd 100644 --- a/resources/lang/en.json +++ b/resources/lang/en.json @@ -704,6 +704,8 @@ "coordinate_grid_desc": "Toggle the alphanumeric grid overlay", "attacking_troops_overlay_label": "Attacking Troops Overlay", "attacking_troops_overlay_desc": "Show attacker vs defender troop counts on active front lines.", + "go_to_player_label": "Go to player on start", + "go_to_player_desc": "Toggle zooming in on the player in the beginning of a game.", "performance_overlay_label": "Performance Overlay", "performance_overlay_desc": "Toggle the performance overlay. When enabled, the performance overlay will be displayed. Press shift-D during game to toggle.", "easter_writing_speed_label": "Writing Speed Multiplier", diff --git a/src/client/ClientGameRunner.ts b/src/client/ClientGameRunner.ts index 51f29e6fd5..3e48bd9d31 100644 --- a/src/client/ClientGameRunner.ts +++ b/src/client/ClientGameRunner.ts @@ -291,6 +291,7 @@ async function createClientGame( worker, gameView, soundManager, + userSettings, ); } catch (err) { soundManager.dispose(); @@ -322,6 +323,7 @@ export class ClientGameRunner { private worker: WorkerClient, private gameView: GameView, private soundManager: SoundManager, + private userSettings: UserSettings, ) { this.lastMessageTime = Date.now(); } @@ -452,7 +454,7 @@ export class ClientGameRunner { this.transport.rejoinGame(this.turnsSeen); }; - let hasGoneToPlayer = false; + let hasGoneToPlayer = this.userSettings.goToPlayer(); const onmessage = (message: ServerMessage) => { this.lastMessageTime = Date.now(); if (message.type === "start") { diff --git a/src/client/UserSettingModal.ts b/src/client/UserSettingModal.ts index 5bc6f04323..c93289bb82 100644 --- a/src/client/UserSettingModal.ts +++ b/src/client/UserSettingModal.ts @@ -842,6 +842,15 @@ export class UserSettingModal extends BaseModal { @change=${this.toggleTerritoryPatterns} > + + + Date: Thu, 7 May 2026 01:11:11 +0200 Subject: [PATCH 2/4] Update coderabbit suggestions --- src/client/ClientGameRunner.ts | 2 +- src/client/UserSettingModal.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/client/ClientGameRunner.ts b/src/client/ClientGameRunner.ts index 3e48bd9d31..31d338347d 100644 --- a/src/client/ClientGameRunner.ts +++ b/src/client/ClientGameRunner.ts @@ -454,7 +454,7 @@ export class ClientGameRunner { this.transport.rejoinGame(this.turnsSeen); }; - let hasGoneToPlayer = this.userSettings.goToPlayer(); + let hasGoneToPlayer = !this.userSettings.goToPlayer(); const onmessage = (message: ServerMessage) => { this.lastMessageTime = Date.now(); if (message.type === "start") { diff --git a/src/client/UserSettingModal.ts b/src/client/UserSettingModal.ts index c93289bb82..166134557f 100644 --- a/src/client/UserSettingModal.ts +++ b/src/client/UserSettingModal.ts @@ -846,9 +846,9 @@ export class UserSettingModal extends BaseModal { From 365a018fa551a6b1b9a1960a366d8597d6238023 Mon Sep 17 00:00:00 2001 From: frederikja Date: Thu, 7 May 2026 01:18:30 +0200 Subject: [PATCH 3/4] Make code more standard with other settings in the modal --- src/client/UserSettingModal.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/client/UserSettingModal.ts b/src/client/UserSettingModal.ts index 166134557f..6e11e3db03 100644 --- a/src/client/UserSettingModal.ts +++ b/src/client/UserSettingModal.ts @@ -309,6 +309,15 @@ export class UserSettingModal extends BaseModal { ); } + private toggleGoToPlayer() { + this.userSettings.toggleGoToPlayer(); + + console.log( + "🔍 Go to player:", + this.userSettings.goToPlayer() ? "ON" : "OFF", + ); + } + private togglePerformanceOverlay() { this.userSettings.togglePerformanceOverlay(); } @@ -848,7 +857,7 @@ export class UserSettingModal extends BaseModal { description="${translateText("user_setting.go_to_player_desc")}" id="go-to-player-toggle" .checked=${this.userSettings.goToPlayer()} - @change=${this.userSettings.toggleGoToPlayer} + @change=${this.toggleGoToPlayer} > From 5235b30db121c18d1fc1cdf56086a8d50bb482e3 Mon Sep 17 00:00:00 2001 From: frederikja Date: Sat, 9 May 2026 00:27:45 +0200 Subject: [PATCH 4/4] Move logic for turning gotoplayer off to event call --- src/client/ClientGameRunner.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/client/ClientGameRunner.ts b/src/client/ClientGameRunner.ts index 31d338347d..401a5c2ee7 100644 --- a/src/client/ClientGameRunner.ts +++ b/src/client/ClientGameRunner.ts @@ -454,7 +454,7 @@ export class ClientGameRunner { this.transport.rejoinGame(this.turnsSeen); }; - let hasGoneToPlayer = !this.userSettings.goToPlayer(); + let hasGoneToPlayer = false; const onmessage = (message: ServerMessage) => { this.lastMessageTime = Date.now(); if (message.type === "start") { @@ -536,7 +536,8 @@ export class ClientGameRunner { if ( !this.gameView.inSpawnPhase() && !hasGoneToPlayer && - this.gameView.myPlayer() + this.gameView.myPlayer() && + this.userSettings.goToPlayer() ) { hasGoneToPlayer = true; this.eventBus.emit(new GoToPlayerEvent(this.gameView.myPlayer()!, 8));