From 563ae3f90a785e7eee11b09ce58320b40e9f60cd Mon Sep 17 00:00:00 2001 From: Martin I <33766476+martinIvovIv@users.noreply.github.com> Date: Fri, 6 Feb 2026 18:42:10 +0100 Subject: [PATCH 1/8] fix; improvement proposal for the leaderboard buttons (#3107) ## Description: Changes the leaderboard buttons to look more like other buttons per suggestion by @FloPinguin ## 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 *** Screenshots: Before change: image After change: image After change hover: image Mobile: image ##Discord username: martoi *** Signed-off-by: MartinIvovIv --- src/client/graphics/layers/GameLeftSidebar.ts | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/client/graphics/layers/GameLeftSidebar.ts b/src/client/graphics/layers/GameLeftSidebar.ts index 9b3aa2f65..81a42421c 100644 --- a/src/client/graphics/layers/GameLeftSidebar.ts +++ b/src/client/graphics/layers/GameLeftSidebar.ts @@ -112,7 +112,17 @@ export class GameLeftSidebar extends LitElement implements Layer { this.isLeaderboardShow || this.isTeamLeaderboardShow ? "mb-2" : "" }`} > -
+
{ + if (e.key === "Enter" || e.key === " " || e.code === "Space") { + this.toggleLeaderboard(); + } + }} + > { + if ( + e.key === "Enter" || + e.key === " " || + e.code === "Space" + ) { + this.toggleTeamLeaderboard(); + } + }} > Date: Fri, 6 Feb 2026 18:42:41 +0100 Subject: [PATCH 2/8] fix: spacing between team leaderboard buttons (#3101) ## Description: In team games, the UI buttons for the leaderboard and the team leaderboard look out of place. A bit of tailwind css fixes the look and a making the gap window specific makes the accessibility better. ## 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 *** Screenshots: Before change: image After change: image Befre change with open leaderboard: image After change with open leaderboard: image Mobile before change: image Mobile after change: image Mobile before change with open leaderboard: image Mobile after change with open leaderboard: image Discord username: martoi *** Signed-off-by: MartinIvovIv --- src/client/graphics/layers/GameLeftSidebar.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/graphics/layers/GameLeftSidebar.ts b/src/client/graphics/layers/GameLeftSidebar.ts index 81a42421c..351d839a2 100644 --- a/src/client/graphics/layers/GameLeftSidebar.ts +++ b/src/client/graphics/layers/GameLeftSidebar.ts @@ -108,7 +108,7 @@ export class GameLeftSidebar extends LitElement implements Layer { ` : null}
From 920ae190fd1bf85a0fe4f46cb9bb76124b34b778 Mon Sep 17 00:00:00 2001 From: ghadi saab Date: Fri, 6 Feb 2026 18:43:33 +0100 Subject: [PATCH 3/8] fix: show Spectate instead of Keep Playing on win modal when dead Closes #3058 (#3062) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description: This PR resolves issue #3058 where the "win modal" incorrectly displayed a **"Keep Playing"** button instead of **"Spectate"** when a player's team won but the player themselves was already dead. ### The Problem In WinModal.ts, the button text logic only checked `this.isWin` (whether the team won) but didn't verify if the player was still alive. This caused dead players on winning teams to see "Keep Playing" instead of "Spectate". ### The Solution Updated the button rendering logic in `src/client/graphics/layers/WinModal.ts:82` to check both the win condition AND the player's alive status: ```typescript // Before ${this.isWin ? translateText("win_modal.keep") : translateText("win_modal.spectate")} // After ${this.isWin && this.game.myPlayer()?.isAlive() ? translateText("win_modal.keep") : translateText("win_modal.spectate")} ``` This approach maintains clean separation of concerns: - this.isWin continues to represent whether the player's team won (true/false) - The button text logic now checks both team victory and player alive status - This ensures the correct button appears based on the player's actual state Behavior After Fix - Alive players on the winning team → "Keep Playing" - Dead players on the winning team → "Spectate" - Any player on the losing team → "Spectate" Testing Performed 1. Code Audit: Verified myPlayer().isAlive() correctly reflects the eliminated state in Teams mode. 2. Build Verification: Ran npm run build and npm run build-prod to ensure no regressions in the UI layer. 3. Type Safety: Ran tsc --noEmit to confirm the fix is fully compliant with the project's TypeScript strictness. --- Closes #3058 ## 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 ## Please put your Discord username so you can be contacted if a bug or regression is found: ghadi8097 --------- Co-authored-by: iamlewis --- src/client/graphics/layers/WinModal.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/graphics/layers/WinModal.ts b/src/client/graphics/layers/WinModal.ts index 3a1942ed6..a6334379b 100644 --- a/src/client/graphics/layers/WinModal.ts +++ b/src/client/graphics/layers/WinModal.ts @@ -79,7 +79,7 @@ export class WinModal extends LitElement implements Layer { @click=${this.hide} class="flex-1 px-3 py-3 text-base cursor-pointer bg-blue-500/60 text-white border-0 rounded-sm transition-all duration-200 hover:bg-blue-500/80 hover:-translate-y-px active:translate-y-px" > - ${this.isWin + ${this.game.myPlayer()?.isAlive() ? translateText("win_modal.keep") : translateText("win_modal.spectate")} From d16fca16e23a2e92b5bdd5882589ef69d52eedf0 Mon Sep 17 00:00:00 2001 From: Martin I <33766476+martinIvovIv@users.noreply.github.com> Date: Fri, 6 Feb 2026 18:56:30 +0100 Subject: [PATCH 4/8] fix: adjust style for plus and minor leaderboard button to match other buttons (#3132) ## Description: Changes the leaderboard + / - buttons to follow the styling of other buttons. Suggested by @FloPinguin ## 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 *** Screenshots: Example with previous (above) and new style (below): image Example with previous (above) and new style (below) with onhover effect: image ##Discord username: martoi *** Signed-off-by: MartinIvovIv --- src/client/graphics/layers/Leaderboard.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/client/graphics/layers/Leaderboard.ts b/src/client/graphics/layers/Leaderboard.ts index 19aec6643..3e0a302c6 100644 --- a/src/client/graphics/layers/Leaderboard.ts +++ b/src/client/graphics/layers/Leaderboard.ts @@ -265,7 +265,9 @@ export class Leaderboard extends LitElement implements Layer {
+ ${this.isRankedGame + ? html` + + ` + : null}