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",
)}