From afc5709a1b5b0800d8ee8430b602e9b3acba7d94 Mon Sep 17 00:00:00 2001 From: DevelopingTom Date: Sat, 26 Jul 2025 01:47:54 +0200 Subject: [PATCH] Add missing factory in player info panel (#1507) ## Description: The player info panel is missing the factory count. Also only displays the units available in the current game. Every unit: image City only: image ## 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 aggreement (only required once). ## Please put your Discord username so you can be contacted if a bug or regression is found: IngloriousTom --- resources/lang/en.json | 1 + .../graphics/layers/PlayerInfoOverlay.ts | 62 +++++++++++++------ 2 files changed, 43 insertions(+), 20 deletions(-) diff --git a/resources/lang/en.json b/resources/lang/en.json index bfcb736d7..169882701 100644 --- a/resources/lang/en.json +++ b/resources/lang/en.json @@ -450,6 +450,7 @@ "gold": "Gold", "ports": "Ports", "cities": "Cities", + "factories": "Factories", "missile_launchers": "Missile launchers", "sams": "SAMs", "warships": "Warships", diff --git a/src/client/graphics/layers/PlayerInfoOverlay.ts b/src/client/graphics/layers/PlayerInfoOverlay.ts index 85e14b0fd..d456f04d2 100644 --- a/src/client/graphics/layers/PlayerInfoOverlay.ts +++ b/src/client/graphics/layers/PlayerInfoOverlay.ts @@ -170,6 +170,18 @@ export class PlayerInfoOverlay extends LitElement implements Layer { } } + private displayUnitCount( + player: PlayerView, + type: UnitType, + description: string, + ) { + return !this.game.config().isUnitDisabled(type) + ? html`
+ ${translateText(description)}: ${player.totalUnitLevels(type)} +
` + : ""; + } + private renderPlayerInfo(player: PlayerView) { const myPlayer = this.game.myPlayer(); const isFriendly = myPlayer?.isFriendly(player); @@ -255,26 +267,36 @@ export class PlayerInfoOverlay extends LitElement implements Layer { ${translateText("player_info_overlay.gold")}: ${renderNumber(player.gold())} -
- ${translateText("player_info_overlay.ports")}: - ${player.totalUnitLevels(UnitType.Port)} -
-
- ${translateText("player_info_overlay.cities")}: - ${player.totalUnitLevels(UnitType.City)} -
-
- ${translateText("player_info_overlay.missile_launchers")}: - ${player.totalUnitLevels(UnitType.MissileSilo)} -
-
- ${translateText("player_info_overlay.sams")}: - ${player.totalUnitLevels(UnitType.SAMLauncher)} -
-
- ${translateText("player_info_overlay.warships")}: - ${player.units(UnitType.Warship).length} -
+ ${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} `;