ShyyTAUI/src/lib/interfaces/match.interfaces.ts
2025-06-21 18:53:06 +02:00

61 lines
No EOL
1.4 KiB
TypeScript

// src/lib/types/match.ts
import type { Map, User, RealtimeScore, Push_SongFinished } from 'moons-ta-client';
import type { BeatSaverMap } from '$lib/services/beatsaver.js';
export interface CustomMap {
taData: Map;
beatsaverData: BeatSaverMap;
}
export interface RealTimeScoreForPlayers {
player: User;
recentScore: RealtimeScore;
}
export interface ScoreWithAccuracy extends Push_SongFinished {
accuracy: string;
}
export interface PreviousResults {
taData: Map;
beatsaverData: BeatSaverMap;
scores: ScoreWithAccuracy[];
completionType: 'Completed' | 'Still Awaiting Scores' | 'Exited To Menu';
}
export enum MapDifficulty {
"Easy" = 0,
"Normal" = 1,
"Hard" = 2,
"Expert" = 3,
"ExpertPlus" = 4,
}
export const colorPresets = {
primary: 'var(--accent-glow)',
secondary: 'var(--text-secondary)',
success: '#4CAF50',
warning: '#FFC107',
error: '#F44336',
info: '#2196F3',
default: 'var(--text-primary)'
} as const;
export type ColorPreset = keyof typeof colorPresets;
export type ButtonType = 'primary' | 'secondary' | 'text' | 'outlined';
export interface ButtonConfig {
text: string;
type: ButtonType;
href?: string;
color?: ColorPreset;
icon?: string;
action?: () => void;
}
export interface CustomTAMapPool {
guid: string;
name: string;
image: Uint8Array;
maps: CustomMap[];
}