import { html, LitElement } from "lit"; import { customElement } from "lit/decorators.js"; import portIcon from "../../../../resources/images/AnchorIcon.png"; import cityIcon from "../../../../resources/images/CityIconWhite.svg"; import factoryIcon from "../../../../resources/images/FactoryIconWhite.svg"; import missileSiloIcon from "../../../../resources/images/MissileSiloUnit.png"; import defensePostIcon from "../../../../resources/images/ShieldIconWhite.svg"; import samLauncherIcon from "../../../../resources/non-commercial/svg/SamLauncherIconWhite.svg"; import { EventBus } from "../../../core/EventBus"; import { UnitType } from "../../../core/game/Game"; import { GameView } from "../../../core/game/GameView"; import { ToggleStructureEvent } from "../../InputHandler"; import { renderNumber } from "../../Utils"; import { Layer } from "./Layer"; @customElement("unit-display") export class UnitDisplay extends LitElement implements Layer { public game: GameView; public eventBus: EventBus; private _selectedStructure: UnitType | null = null; private _cities = 0; private _factories = 0; private _missileSilo = 0; private _port = 0; private _defensePost = 0; private _samLauncher = 0; private allDisabled = false; createRenderRoot() { return this; } init() { const config = this.game.config(); this.allDisabled = config.isUnitDisabled(UnitType.City) && config.isUnitDisabled(UnitType.Factory) && config.isUnitDisabled(UnitType.Port) && config.isUnitDisabled(UnitType.DefensePost) && config.isUnitDisabled(UnitType.MissileSilo) && config.isUnitDisabled(UnitType.SAMLauncher); this.requestUpdate(); } tick() { const player = this.game?.myPlayer(); if (!player) return; this._cities = player.totalUnitLevels(UnitType.City); this._missileSilo = player.totalUnitLevels(UnitType.MissileSilo); this._port = player.totalUnitLevels(UnitType.Port); this._defensePost = player.totalUnitLevels(UnitType.DefensePost); this._samLauncher = player.totalUnitLevels(UnitType.SAMLauncher); this._factories = player.totalUnitLevels(UnitType.Factory); this.requestUpdate(); } private renderUnitItem( icon: string, number: number, unitType: UnitType, altText: string, ) { if (this.game.config().isUnitDisabled(unitType)) { return html``; } return html`