import { classById, raceById } from "../app/characterCatalog"; import type { CharacterProfile } from "../app/types"; export interface PlayerFrameMeter { current: number; maximum: number; label: string; tone: string; } export interface PlayerFrameProps { character: CharacterProfile | null; health: PlayerFrameMeter; resource: PlayerFrameMeter; shield?: number; dead?: boolean; } function safePercent(current: number, maximum: number): number { if (!Number.isFinite(current) || !Number.isFinite(maximum) || maximum <= 0) return 0; return Math.max(0, Math.min(100, (current / maximum) * 100)); } function Meter({ current, maximum, label, tone }: PlayerFrameMeter) { const percent = safePercent(current, maximum); return (