import { LitElement, html, css } from "lit"; import { gameStateManager } from "../core/GameStateManager.js"; import { RosterManager } from "../managers/RosterManager.js"; import { GameLoop } from "../core/GameLoop.js"; import "./deployment-hud.js"; export class GameViewport extends LitElement { static styles = css` :host { display: block; width: 100%; height: 100%; overflow: hidden; } #canvas-container { width: 100%; height: 100%; } `; static get properties() { return { squad: { type: Array }, }; } constructor() { super(); this.squad = []; } #handleUnitSelected(event) { const index = event.detail.index; gameStateManager.gameLoop.selectDeploymentUnit(index); } async firstUpdated() { const container = this.shadowRoot.getElementById("canvas-container"); const loop = new GameLoop(); loop.init(container); gameStateManager.setGameLoop(loop); } render() { return html`
`; } } customElements.define("game-viewport", GameViewport);