diff --git a/src/client/graphics/GameRenderer.ts b/src/client/graphics/GameRenderer.ts index b9f3d55c2..9b5b7eff2 100644 --- a/src/client/graphics/GameRenderer.ts +++ b/src/client/graphics/GameRenderer.ts @@ -22,7 +22,6 @@ import { NameLayer } from "./layers/NameLayer"; import { OptionsMenu } from "./layers/OptionsMenu"; import { PlayerInfoOverlay } from "./layers/PlayerInfoOverlay"; import { PlayerPanel } from "./layers/PlayerPanel"; -import { PlayerTeamLabel } from "./layers/PlayerTeamLabel"; import { ReplayPanel } from "./layers/ReplayPanel"; import { SpawnTimer } from "./layers/SpawnTimer"; import { StructureLayer } from "./layers/StructureLayer"; @@ -174,14 +173,6 @@ export function createRenderer( } multiTabModal.game = game; - const playerTeamLabel = document.querySelector( - "player-team-label", - ) as PlayerTeamLabel; - if (!(playerTeamLabel instanceof PlayerTeamLabel)) { - console.error("player team label not found"); - } - playerTeamLabel.game = game; - const headsUpMessage = document.querySelector( "heads-up-message", ) as HeadsUpMessage; @@ -246,7 +237,6 @@ export function createRenderer( teamStats, topBar, playerPanel, - playerTeamLabel, headsUpMessage, unitInfoModal, multiTabModal, diff --git a/src/client/graphics/layers/ControlPanel.ts b/src/client/graphics/layers/ControlPanel.ts index c01ae4bc9..512df847c 100644 --- a/src/client/graphics/layers/ControlPanel.ts +++ b/src/client/graphics/layers/ControlPanel.ts @@ -204,7 +204,7 @@ export class ControlPanel extends LitElement implements Layer {
e.preventDefault()} > diff --git a/src/client/graphics/layers/GameLeftSidebar.ts b/src/client/graphics/layers/GameLeftSidebar.ts index 0cce032a1..2f4bb2f6f 100644 --- a/src/client/graphics/layers/GameLeftSidebar.ts +++ b/src/client/graphics/layers/GameLeftSidebar.ts @@ -1,4 +1,5 @@ -import { LitElement, html } from "lit"; +import { Colord } from "colord"; +import { html, LitElement } from "lit"; import { customElement, state } from "lit/decorators.js"; import { GameMode } from "../../../core/game/Game"; import { GameView } from "../../../core/game/GameView"; @@ -15,6 +16,10 @@ export class GameLeftSidebar extends LitElement implements Layer { @state() private isTeamLeaderboardShow = false; private isVisible = false; + private isPlayerTeamLabelVisible = false; + private playerTeam: string | null = null; + + private playerColor: Colord = new Colord("#FFFFFF"); public game: GameView; createRenderRoot() { @@ -23,9 +28,32 @@ export class GameLeftSidebar extends LitElement implements Layer { init() { this.isVisible = true; + if (this.isTeamGame) { + this.isPlayerTeamLabelVisible = true; + } this.requestUpdate(); } + tick() { + if (!this.isPlayerTeamLabelVisible) return; + + if (!this.playerTeam && this.game.myPlayer()?.team()) { + this.playerTeam = this.game.myPlayer()!.team(); + if (this.playerTeam) { + this.playerColor = this.game + .config() + .theme() + .teamColor(this.playerTeam); + this.requestUpdate(); + } + } + + if (!this.game.inSpawnPhase()) { + this.isPlayerTeamLabelVisible = false; + this.requestUpdate(); + } + } + private toggleLeaderboard(): void { this.isLeaderboardShow = !this.isLeaderboardShow; } @@ -41,10 +69,23 @@ export class GameLeftSidebar extends LitElement implements Layer { render() { return html`