From da8aeedd8bcccd999aaf20c672d9ec65f7524160 Mon Sep 17 00:00:00 2001 From: evanpelle Date: Sun, 13 Jul 2025 17:48:04 -0700 Subject: [PATCH] Leaderboard improvements (#1424) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description: 1. Made leaderboard smaller 2. replaced show top 5/show all with a +/- to save space 3. show leaderboard by default on larger screens Screenshot 2025-07-13 at 5 27 10 PM ## Please complete the following: - [x] I have added screenshots for all UI updates - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [x] I have added relevant tests to the test directory - [x] I confirm I have thoroughly tested these changes and take full responsibility for any bugs introduced - [x] I understand that submitting code with bugs that could have been caught through manual testing blocks releases and new features for all contributors ## Please put your Discord username so you can be contacted if a bug or regression is found: evan --- resources/lang/en.json | 4 +- src/client/graphics/layers/GameLeftSidebar.ts | 12 ++++ src/client/graphics/layers/Leaderboard.ts | 61 +++++++------------ 3 files changed, 36 insertions(+), 41 deletions(-) diff --git a/resources/lang/en.json b/resources/lang/en.json index fbf709405..cbe8d2537 100644 --- a/resources/lang/en.json +++ b/resources/lang/en.json @@ -432,9 +432,7 @@ "team": "Team", "owned": "Owned", "gold": "Gold", - "troops": "Troops", - "show_top_5": "Show Top 5", - "show_all": "Show All" + "troops": "Troops" }, "player_info_overlay": { "type": "Type", diff --git a/src/client/graphics/layers/GameLeftSidebar.ts b/src/client/graphics/layers/GameLeftSidebar.ts index f0dfae3bb..15a3f8706 100644 --- a/src/client/graphics/layers/GameLeftSidebar.ts +++ b/src/client/graphics/layers/GameLeftSidebar.ts @@ -22,6 +22,7 @@ export class GameLeftSidebar extends LitElement implements Layer { private playerColor: Colord = new Colord("#FFFFFF"); public game: GameView; + private _shownOnInit = false; createRenderRoot() { return this; @@ -32,6 +33,11 @@ export class GameLeftSidebar extends LitElement implements Layer { if (this.isTeamGame) { this.isPlayerTeamLabelVisible = true; } + // Make it visible by default on large screens + if (window.innerWidth >= 1024) { + // lg breakpoint + this._shownOnInit = true; + } this.requestUpdate(); } @@ -49,6 +55,12 @@ export class GameLeftSidebar extends LitElement implements Layer { } } + if (this._shownOnInit && !this.game.inSpawnPhase()) { + this._shownOnInit = false; + this.isLeaderboardShow = true; + this.requestUpdate(); + } + if (!this.game.inSpawnPhase()) { this.isPlayerTeamLabelVisible = false; this.requestUpdate(); diff --git a/src/client/graphics/layers/Leaderboard.ts b/src/client/graphics/layers/Leaderboard.ts index 33f025994..1a1fe641b 100644 --- a/src/client/graphics/layers/Leaderboard.ts +++ b/src/client/graphics/layers/Leaderboard.ts @@ -40,7 +40,6 @@ export class Leaderboard extends LitElement implements Layer { players: Entry[] = []; @property({ type: Boolean }) visible = false; - private _shownOnInit = false; private showTopFive = true; @state() @@ -57,10 +56,6 @@ export class Leaderboard extends LitElement implements Layer { tick() { if (this.game === null) throw new Error("Not initialized"); - if (!this._shownOnInit && !this.game.inSpawnPhase()) { - this._shownOnInit = true; - this.updateLeaderboard(); - } if (!this.visible) return; if (this.game.ticks() % 10 === 0) { this.updateLeaderboard(); @@ -174,37 +169,25 @@ export class Leaderboard extends LitElement implements Layer { } return html`
e.preventDefault()} > - -
-
+
#
-
+
${translateText("leaderboard.player")}
this.setSort("tiles")} > ${translateText("leaderboard.owned")} @@ -215,7 +198,7 @@ export class Leaderboard extends LitElement implements Layer { : ""}
this.setSort("gold")} > ${translateText("leaderboard.gold")} @@ -226,7 +209,7 @@ export class Leaderboard extends LitElement implements Layer { : ""}
this.setSort("troops")} > ${translateText("leaderboard.troops")} @@ -248,29 +231,21 @@ export class Leaderboard extends LitElement implements Layer { : ""} cursor-pointer" @click=${() => this.handleRowClickPlayer(player.player)} > -
+
${player.position}
${player.name}
-
+
${player.score}
-
+
${player.gold}
-
+
${player.troops}
@@ -278,6 +253,16 @@ export class Leaderboard extends LitElement implements Layer { )}
+ + `; } }