import { LitElement, html } from "lit"; import { customElement, property } from "lit/decorators.js"; import { PlayerStats, boatUnits, bombUnits, otherUnits, } from "engine-public/StatsSchemas"; import { renderNumber, translateText } from "../../../Utils"; @customElement("player-stats-table") export class PlayerStatsTable extends LitElement { createRenderRoot() { return this; } @property({ type: Object }) stats: PlayerStats; render() { return html`
${translateText("player_stats_table.building_stats")}
${otherUnits.map((key) => { const built = this.stats?.units?.[key]?.[0] ?? 0n; const destroyed = this.stats?.units?.[key]?.[1] ?? 0n; const captured = this.stats?.units?.[key]?.[2] ?? 0n; const lost = this.stats?.units?.[key]?.[3] ?? 0n; return html` `; })}
${translateText("player_stats_table.building")} ${translateText("player_stats_table.built")} ${translateText("player_stats_table.destroyed")} ${translateText("player_stats_table.captured")} ${translateText("player_stats_table.lost")}
${translateText(`player_stats_table.unit.${key}`)} ${renderNumber(built)} ${renderNumber(destroyed)} ${renderNumber(captured)} ${renderNumber(lost)}
${translateText("player_stats_table.ship_arrivals")}
${boatUnits.map((key) => { const sent = this.stats?.boats?.[key]?.[0] ?? 0n; const arrived = this.stats?.boats?.[key]?.[1] ?? 0n; const destroyed = this.stats?.boats?.[key]?.[3] ?? 0n; return html` `; })}
${translateText("player_stats_table.ship_type")} ${translateText("player_stats_table.sent")} ${translateText("player_stats_table.destroyed")} ${translateText("player_stats_table.arrived")}
${translateText(`player_stats_table.unit.${key}`)} ${renderNumber(sent)} ${renderNumber(destroyed)} ${renderNumber(arrived)}
${translateText("player_stats_table.nuke_stats")}
${bombUnits.map((bomb) => { const launched = this.stats?.bombs?.[bomb]?.[0] ?? 0n; const landed = this.stats?.bombs?.[bomb]?.[1] ?? 0n; const intercepted = this.stats?.bombs?.[bomb]?.[2] ?? 0n; return html` `; })}
${translateText("player_stats_table.weapon")} ${translateText("player_stats_table.launched")} ${translateText("player_stats_table.landed")} ${translateText("player_stats_table.hits")}
${translateText(`player_stats_table.unit.${bomb}`)} ${renderNumber(launched)} ${renderNumber(landed)} ${renderNumber(intercepted)}
${translateText("player_stats_table.player_metrics")}
${translateText("player_stats_table.attack")} ${translateText("player_stats_table.sent")} ${translateText("player_stats_table.received")} ${translateText("player_stats_table.cancelled")}
${translateText("player_stats_table.count")} ${renderNumber(this.stats?.attacks?.[0] ?? 0n)} ${renderNumber(this.stats?.attacks?.[1] ?? 0n)} ${renderNumber(this.stats?.attacks?.[2] ?? 0n)}
${translateText("player_stats_table.gold")} ${translateText("player_stats_table.workers")} ${translateText("player_stats_table.war")} ${translateText("player_stats_table.trade")} ${translateText("player_stats_table.steal")}
${renderNumber(this.stats?.gold?.[0] ?? 0n)} ${renderNumber(this.stats?.gold?.[1] ?? 0n)} ${renderNumber(this.stats?.gold?.[2] ?? 0n)} ${renderNumber(this.stats?.gold?.[3] ?? 0n)} ${renderNumber(this.stats?.gold?.[4] ?? 0n)}
`; } }