import { calculateWN8, emblemURL, getClanAccountInfo, idToRegion, tankIcon, TIER_ROMAN_NUMERALS, } from '@blitzkit/core'; import { Locale } from 'discord.js'; import { clamp } from 'lodash-es'; import { CommandWrapper } from '../components/CommandWrapper'; import { TitleBar } from '../components/TitleBar'; import { iconPng } from '../core/blitzkit/iconPng'; import { mapDefinitions, tankDefinitions, } from '../core/blitzkit/nonBlockingPromises'; import { RenderConfiguration } from '../core/blitzkit/renderConfiguration'; import { blitzStarsTankAverages } from '../core/blitzstars/tankAverages'; import { buttonLink } from '../core/discord/buttonLink'; import { createLocalizedCommand } from '../core/discord/createLocalizedCommand'; import { translator } from '../core/localization/translator'; import { CommandRegistry } from '../events/interactionCreate'; import { theme } from '../stitches.config'; type WotInspectorReplaySubmission = | { status: 'error'; data: unknown; error: { message: string } } | { status: 'ok'; data: { download_url: string; view_url: string; summary: { battle_start_time: string; map_name: string; battle_start_timestamp: number; battle_duration: number; title: string; arena_unique_id: string; allies: number[]; enemies: number[]; protagonist: number; player_name: string; vehicle: string; exp_base: number; exp_total: number; credits_base: number; credits_total: number; room_type: number; battle_type: number; mastery_badge: number; battle_result: number; vehicle_tier: number; vehicle_type: number; protagonist_team: number; winner_team: number; details: { achievements: unknown[]; base_capture_points: number; base_defend_points: number; chassis_id: unknown | null; clan_tag: string; clanid: number; credits: number; damage_assisted: number; damage_assisted_track: number; damage_blocked: unknown | null; damage_made: number; damage_received: number; dbid: number; death_reason: number; distance_travelled: number; enemies_damaged: number; enemies_destroyed: number; enemies_spotted: number; entity_id: number; exp: number; exp_for_assist: number; exp_for_damage: number; exp_team_bonus: number; gun_id: unknown | null; hero_bonus_credits: number; hero_bonus_exp: number; hitpoints_left: number; hits_bounced: number; hits_pen: number; hits_received: number; hits_splash: number; killed_by: number; name: string; shots_hit: number; shots_made: number; shots_pen: number; shots_splash: number; squad_index: number; team: number; time_alive: number; turret_id: unknown | null; vehicle_descr: number; wp_points_earned: number; wp_points_stolen: number; }; }; }; error: {}; }; interface WotInspectorReplay { id: string; map_id: number; battle_duration: number; title: unknown | null; player_name: string; protagonist: number; vehicle_descr: number; mastery_badge: number; exp_base: number; enemies_spotted: number; enemies_destroyed: number; damage_assisted: number; damage_made: number; details_url: string; download_url: string; game_version: { name: string; package: string; }; arena_unique_id: string; download_count: number; data_version: number; private: boolean; private_clan: boolean; battle_start_time: Date; upload_time: Date; allies: number[]; enemies: number[]; protagonist_clan: number; protagonist_team: number; battle_result: number; credits_base: number; tags: number[]; battle_type: number; room_type: number; last_accessed_time: Date; winner_team: number; finish_reason: number; players_data: WotInspectorReplayPlayerData[]; exp_total: number; credits_total: number; repair_cost: number; exp_free: number; exp_free_base: number; exp_penalty: number; credits_penalty: number; credits_contribution_in: number; credits_contribution_out: number; camouflage_id: number; } export interface WotInspectorReplayPlayerData { team: number; name: string; entity_id: number; dbid: number; clanid: number | null; clan_tag: null | string; hitpoints_left: number; credits: number; exp: number; shots_made: number; shots_hit: number; shots_splash: number; shots_pen: number; damage_made: number; damage_received: number; damage_assisted: number; damage_assisted_track: number; hits_received: number; hits_bounced: number; hits_splash: number; hits_pen: number; enemies_spotted: number; enemies_damaged: number; enemies_destroyed: number; time_alive: number; distance_travelled: number; killed_by: number; base_capture_points: number; base_defend_points: number; exp_for_damage: number; exp_for_assist: number; exp_team_bonus: number; wp_points_earned: number; wp_points_stolen: number; hero_bonus_credits: number; hero_bonus_exp: number; death_reason: number; achievements: any[]; vehicle_descr: number; turret_id: number; gun_id: number; chassis_id: number; squad_index: number; damage_blocked: number; } function stat(value: string | number, flex = 2) { return (