From debcadf34bbb33b887946b684cf27d907898084b Mon Sep 17 00:00:00 2001
From: Tamer Suliman <84022203+TLS15@users.noreply.github.com>
Date: Tue, 12 Aug 2025 02:58:56 +0200
Subject: [PATCH] Make the player info overlay collapsible (#1768)
## Description:
Describe the PR.
This PR makes the playerInfoOverlay collapsible by clicking on the
player name.
This overlay was covering a decent chunk of the mobile screen.

Now the details can be toggled by just clicking on the name freeing a
lot of the screen on mobile.

## 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 have read and accepted the CLA agreement (only required once).
## Please put your Discord username so you can be contacted if a bug or
regression is found:
DISCORD_USERNAME
tls_15
Co-authored-by: Drills Kibo <59177241+drillskibo@users.noreply.github.com>
---
.../graphics/layers/PlayerInfoOverlay.ts | 125 ++++++++++--------
1 file changed, 69 insertions(+), 56 deletions(-)
diff --git a/src/client/graphics/layers/PlayerInfoOverlay.ts b/src/client/graphics/layers/PlayerInfoOverlay.ts
index f78b1cb6a..dab035023 100644
--- a/src/client/graphics/layers/PlayerInfoOverlay.ts
+++ b/src/client/graphics/layers/PlayerInfoOverlay.ts
@@ -66,6 +66,8 @@ export class PlayerInfoOverlay extends LitElement implements Layer {
private lastMouseUpdate = 0;
+ private showDetails = true;
+
init() {
this.eventBus.on(MouseMoveEvent, (e: MouseMoveEvent) =>
this.onMouseEvent(e),
@@ -219,10 +221,14 @@ export class PlayerInfoOverlay extends LitElement implements Layer {
return html`
-
{
+ this.showDetails = !this.showDetails;
+ this.requestUpdate?.();
+ }}
>
${player.cosmetics.flag
? player.cosmetics.flag!.startsWith("!")
@@ -242,62 +248,69 @@ export class PlayerInfoOverlay extends LitElement implements Layer {
/>`
: html``}
${player.name()}
-
- ${player.team() !== null
- ? html`
- ${translateText("player_info_overlay.team")}: ${player.team()}
-
`
+
+
+
+ ${this.showDetails
+ ? html`
+ ${player.team() !== null
+ ? html`
+ ${translateText("player_info_overlay.team")}:
+ ${player.team()}
+
`
+ : ""}
+
+ ${translateText("player_info_overlay.type")}: ${playerType}
+
+ ${player.troops() >= 1
+ ? html`
+ ${translateText("player_info_overlay.d_troops")}:
+ ${renderTroops(player.troops())}
+
`
+ : ""}
+ ${attackingTroops >= 1
+ ? html`
+ ${translateText("player_info_overlay.a_troops")}:
+ ${renderTroops(attackingTroops)}
+
`
+ : ""}
+
+ ${translateText("player_info_overlay.gold")}:
+ ${renderNumber(player.gold())}
+
+ ${this.displayUnitCount(
+ player,
+ UnitType.Port,
+ "player_info_overlay.ports",
+ )}
+ ${this.displayUnitCount(
+ player,
+ UnitType.City,
+ "player_info_overlay.cities",
+ )}
+ ${this.displayUnitCount(
+ player,
+ UnitType.Factory,
+ "player_info_overlay.factories",
+ )}
+ ${this.displayUnitCount(
+ player,
+ UnitType.MissileSilo,
+ "player_info_overlay.missile_launchers",
+ )}
+ ${this.displayUnitCount(
+ player,
+ UnitType.SAMLauncher,
+ "player_info_overlay.sams",
+ )}
+ ${this.displayUnitCount(
+ player,
+ UnitType.Warship,
+ "player_info_overlay.warships",
+ )}
+ ${relationHtml}
+ `
: ""}
-
- ${translateText("player_info_overlay.type")}: ${playerType}
-
- ${player.troops() >= 1
- ? html`
- ${translateText("player_info_overlay.d_troops")}:
- ${renderTroops(player.troops())}
-
`
- : ""}
- ${attackingTroops >= 1
- ? html`
- ${translateText("player_info_overlay.a_troops")}:
- ${renderTroops(attackingTroops)}
-
`
- : ""}
-
- ${translateText("player_info_overlay.gold")}:
- ${renderNumber(player.gold())}
-
- ${this.displayUnitCount(
- player,
- UnitType.Port,
- "player_info_overlay.ports",
- )}
- ${this.displayUnitCount(
- player,
- UnitType.City,
- "player_info_overlay.cities",
- )}
- ${this.displayUnitCount(
- player,
- UnitType.Factory,
- "player_info_overlay.factories",
- )}
- ${this.displayUnitCount(
- player,
- UnitType.MissileSilo,
- "player_info_overlay.missile_launchers",
- )}
- ${this.displayUnitCount(
- player,
- UnitType.SAMLauncher,
- "player_info_overlay.sams",
- )}
- ${this.displayUnitCount(
- player,
- UnitType.Warship,
- "player_info_overlay.warships",
- )}
- ${relationHtml}
`;
}