Files
ssessesse-ki-battle/constants/cosmetics.ts
T

41 lines
2.4 KiB
TypeScript

export interface CosmeticColor {
id: string;
name: string;
suit: string;
suitDark: string;
trim: string;
requirement?: { type: 'wins' | 'streak'; value: number };
}
export const EYEWEAR_IDS = ['glasses', 'sunglasses'] as const;
export const EQUIPMENT_IDS = ['shoes', 'wristbands', 'headband', ...EYEWEAR_IDS] as const;
export type EquipmentId = typeof EQUIPMENT_IDS[number];
export const COSMETIC_EQUIPMENT: readonly { id: EquipmentId; name: string; requirement: { type: 'wins' | 'streak'; value: number } }[] = [
{ id: 'shoes', name: '신발', requirement: { type: 'wins', value: 5 } },
{ id: 'wristbands', name: '아대', requirement: { type: 'streak', value: 3 } },
{ id: 'headband', name: '머리띠', requirement: { type: 'wins', value: 20 } },
{ id: 'glasses', name: '안경', requirement: { type: 'streak', value: 50 } },
{ id: 'sunglasses', name: '선글라스', requirement: { type: 'streak', value: 100 } },
];
export const HAIR_STYLES = [
{ id: 'black', name: '검정 뾰족머리' }, { id: 'white', name: '백발 뾰족머리' }, { id: 'bald', name: '빡빡이' },
] as const;
export type HairStyle = typeof HAIR_STYLES[number]['id'] | 'default';
export const SKIN_TONES = [
{ id: 'light', name: '밝은 피부', skin: '#efc8a5', shade: '#bd896b', light: '#ffe4c8' },
{ id: 'tan', name: '구릿빛 피부', skin: '#a96f49', shade: '#6e4938', light: '#d29a70' },
] as const;
export type SkinToneId = typeof SKIN_TONES[number]['id'];
// Confirmed unlock thresholds; shared by availability checks and previews.
export const COSMETIC_COLORS: readonly CosmeticColor[] = [
{ id: 'white', name: '흰색', suit: '#f0eee5', suitDark: '#abaea8', trim: '#535f68' },
{ id: 'orange', name: '주황', suit: '#aa5740', suitDark: '#613b33', trim: '#d3bf99', requirement: { type: 'wins', value: 5 } },
{ id: 'blue', name: '파랑', suit: '#455862', suitDark: '#293840', trim: '#d7d5bf', requirement: { type: 'wins', value: 20 } },
{ id: 'red', name: '빨강', suit: '#ad4148', suitDark: '#632c36', trim: '#ebc49c', requirement: { type: 'wins', value: 50 } },
{ id: 'green', name: '초록', suit: '#52765a', suitDark: '#304c3b', trim: '#d4ce9e', requirement: { type: 'streak', value: 3 } },
{ id: 'purple', name: '보라', suit: '#79608e', suitDark: '#493955', trim: '#ddc6aa', requirement: { type: 'streak', value: 5 } },
{ id: 'black', name: '검정', suit: '#34383e', suitDark: '#1c2027', trim: '#b8b6ae', requirement: { type: 'streak', value: 10 } },
];