From f6839ffe992206afc25d6dd0655a5886ecea8de5 Mon Sep 17 00:00:00 2001 From: Vivacious Box Date: Wed, 8 Oct 2025 22:49:54 +0200 Subject: [PATCH] Fix icons and add mirv to build bar (#2154) ## Description: Fix blurry icons and add mirv to build bar image 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 ## Please put your Discord username so you can be contacted if a bug or regression is found: DISCORD_USERNAME --- src/client/InputHandler.ts | 12 ++++++-- src/client/UserSettingModal.ts | 23 ++++++++++----- .../graphics/layers/PlayerInfoOverlay.ts | 16 +++++------ src/client/graphics/layers/UnitDisplay.ts | 28 +++++++++++++------ 4 files changed, 52 insertions(+), 27 deletions(-) diff --git a/src/client/InputHandler.ts b/src/client/InputHandler.ts index 69eb3b2e7..61f4f9635 100644 --- a/src/client/InputHandler.ts +++ b/src/client/InputHandler.ts @@ -188,9 +188,10 @@ export class InputHandler { buildDefensePost: "Digit4", buildMissileSilo: "Digit5", buildSamLauncher: "Digit6", - buildAtomBomb: "Digit7", - buildHydrogenBomb: "Digit8", - buildWarship: "Digit9", + buildWarship: "Digit7", + buildAtomBomb: "Digit8", + buildHydrogenBomb: "Digit9", + buildMIRV: "Digit0", ...saved, }; @@ -409,6 +410,11 @@ export class InputHandler { this.uiState.ghostStructure = UnitType.Warship; } + if (e.code === this.keybinds.buildMIRV) { + e.preventDefault(); + this.uiState.ghostStructure = UnitType.MIRV; + } + // Shift-D to toggle performance overlay console.log(e.code, e.shiftKey, e.ctrlKey, e.altKey, e.metaKey); if (e.code === "KeyD" && e.shiftKey) { diff --git a/src/client/UserSettingModal.ts b/src/client/UserSettingModal.ts index 06d989009..5cb6cc747 100644 --- a/src/client/UserSettingModal.ts +++ b/src/client/UserSettingModal.ts @@ -494,11 +494,20 @@ export class UserSettingModal extends LitElement { @change=${this.handleKeybindChange} > + + @@ -507,17 +516,17 @@ export class UserSettingModal extends LitElement { action="buildHydrogenBomb" label=${translateText("user_setting.build_hydrogen_bomb")} description=${translateText("user_setting.build_hydrogen_bomb_desc")} - defaultKey="Digit8" + defaultKey="Digit9" .value=${this.keybinds["buildHydrogenBomb"]?.key ?? ""} @change=${this.handleKeybindChange} > diff --git a/src/client/graphics/layers/PlayerInfoOverlay.ts b/src/client/graphics/layers/PlayerInfoOverlay.ts index 6936c9549..83505eb28 100644 --- a/src/client/graphics/layers/PlayerInfoOverlay.ts +++ b/src/client/graphics/layers/PlayerInfoOverlay.ts @@ -2,12 +2,12 @@ import { LitElement, TemplateResult, html } from "lit"; import { ref } from "lit-html/directives/ref.js"; import { customElement, property, state } from "lit/decorators.js"; import allianceIcon from "../../../../resources/images/AllianceIcon.svg"; -import portIcon from "../../../../resources/images/AnchorIcon.png"; import warshipIcon from "../../../../resources/images/BattleshipIconWhite.svg"; import cityIcon from "../../../../resources/images/CityIconWhite.svg"; import factoryIcon from "../../../../resources/images/FactoryIconWhite.svg"; import goldCoinIcon from "../../../../resources/images/GoldCoinIcon.svg"; -import missileSiloIcon from "../../../../resources/images/MissileSiloUnit.png"; +import missileSiloIcon from "../../../../resources/images/MissileSiloIconWhite.svg"; +import portIcon from "../../../../resources/images/PortIcon.svg"; import samLauncherIcon from "../../../../resources/images/SamLauncherIconWhite.svg"; import { renderPlayerFlag } from "../../../core/CustomFlag"; import { EventBus } from "../../../core/EventBus"; @@ -364,18 +364,18 @@ export class PlayerInfoOverlay extends LitElement implements Layer { cityIcon, "player_info_overlay.cities", )} - ${this.displayUnitCount( - player, - UnitType.Port, - portIcon, - "player_info_overlay.ports", - )} ${this.displayUnitCount( player, UnitType.Factory, factoryIcon, "player_info_overlay.factories", )} + ${this.displayUnitCount( + player, + UnitType.Port, + portIcon, + "player_info_overlay.ports", + )} ${this.displayUnitCount( player, UnitType.MissileSilo, diff --git a/src/client/graphics/layers/UnitDisplay.ts b/src/client/graphics/layers/UnitDisplay.ts index a78766616..7d383036a 100644 --- a/src/client/graphics/layers/UnitDisplay.ts +++ b/src/client/graphics/layers/UnitDisplay.ts @@ -3,7 +3,8 @@ import { customElement } from "lit/decorators.js"; import warshipIcon from "../../../../resources/images/BattleshipIconWhite.svg"; import cityIcon from "../../../../resources/images/CityIconWhite.svg"; import factoryIcon from "../../../../resources/images/FactoryIconWhite.svg"; -import missileSiloIcon from "../../../../resources/images/MissileSiloUnit.png"; +import mirvIcon from "../../../../resources/images/MIRVIcon.svg"; +import missileSiloIcon from "../../../../resources/images/MissileSiloIconWhite.svg"; import hydrogenBombIcon from "../../../../resources/images/MushroomCloudIconWhite.svg"; import atomBombIcon from "../../../../resources/images/NukeIconWhite.svg"; import portIcon from "../../../../resources/images/PortIcon.svg"; @@ -59,7 +60,8 @@ export class UnitDisplay extends LitElement implements Layer { config.isUnitDisabled(UnitType.SAMLauncher) && config.isUnitDisabled(UnitType.Warship) && config.isUnitDisabled(UnitType.AtomBomb) && - config.isUnitDisabled(UnitType.HydrogenBomb); + config.isUnitDisabled(UnitType.HydrogenBomb) && + config.isUnitDisabled(UnitType.MIRV); this.requestUpdate(); } @@ -78,6 +80,7 @@ export class UnitDisplay extends LitElement implements Layer { switch (item) { case UnitType.AtomBomb: case UnitType.HydrogenBomb: + case UnitType.MIRV: return ( this.cost(item) <= (player?.gold() ?? 0n) && (player?.units(UnitType.MissileSilo).length ?? 0) > 0 @@ -174,26 +177,33 @@ export class UnitDisplay extends LitElement implements Layer {
+ ${this.renderUnitItem( + warshipIcon, + this._warships, + UnitType.Warship, + "warship", + this.keybinds["buildWarship"]?.key ?? "7", + )} ${this.renderUnitItem( atomBombIcon, null, UnitType.AtomBomb, "atom_bomb", - this.keybinds["buildAtomBomb"]?.key ?? "7", + this.keybinds["buildAtomBomb"]?.key ?? "8", )} ${this.renderUnitItem( hydrogenBombIcon, null, UnitType.HydrogenBomb, "hydrogen_bomb", - this.keybinds["buildHydrogenBomb"]?.key ?? "8", + this.keybinds["buildHydrogenBomb"]?.key ?? "9", )} ${this.renderUnitItem( - warshipIcon, - this._warships, - UnitType.Warship, - "warship", - this.keybinds["buildWarship"]?.key ?? "9", + mirvIcon, + null, + UnitType.MIRV, + "mirv", + this.keybinds["buildMIRV"]?.key ?? "0", )}