feat: 프레스티지/업적 데이터, 캐릭터 비주얼, 게임 색상 시스템 추가 (JSA-47)

- src/data/achievements.json: 30개+ 업적 조건/보상 데이터
- src/data/prestige.json: 프레스티지 레벨별 배율 및 타이틀 테이블
- src/data/characterVisual.ts: 원소별 캐릭터 SVG 비주얼 파라미터
- src/styles/gameColors.ts: 게임 전용 색상 토큰 및 유틸 함수

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
2026-04-01 22:43:48 +09:00
parent 24c67f0c4c
commit eacc91b7da
6 changed files with 1432 additions and 0 deletions

227
src/data/achievements.json Normal file
View File

@@ -0,0 +1,227 @@
[
{
"id": "ACH-01",
"name": "원소의 시작",
"description": "첫 번째 합성에 성공하세요",
"category": "beginner",
"condition": { "type": "fuse_count", "value": 1 },
"reward": { "gold": 100 },
"isHidden": false
},
{
"id": "ACH-02",
"name": "불씨 수집가",
"description": "불(Fire) 원소를 50개 보유하세요",
"category": "beginner",
"condition": { "type": "element_count", "target": "fire", "value": 50 },
"reward": { "gold": 200 },
"isHidden": false
},
{
"id": "ACH-03",
"name": "첫 번째 발견",
"description": "Tier 2 원소를 처음으로 합성하세요",
"category": "beginner",
"condition": { "type": "tier_unlock", "value": 2 },
"reward": { "gold": 300, "boostType": "fusion_scroll", "boostDurationMin": 0 },
"isHidden": false
},
{
"id": "ACH-04",
"name": "강화의 시작",
"description": "원소를 처음으로 강화하세요",
"category": "beginner",
"condition": { "type": "enhance_count", "value": 1 },
"reward": { "gold": 200 },
"isHidden": false
},
{
"id": "ACH-05",
"name": "방치 수익가",
"description": "오프라인 보상을 처음으로 수령하세요",
"category": "beginner",
"condition": { "type": "offline_claim", "value": 1 },
"reward": { "gold": 500 },
"isHidden": false
},
{
"id": "ACH-06",
"name": "원소학자 지망생",
"description": "10종류의 원소를 발견하세요",
"category": "beginner",
"condition": { "type": "element_variety", "value": 10 },
"reward": { "gold": 500 },
"isHidden": false
},
{
"id": "ACH-07",
"name": "황금 손길",
"description": "골드를 처음으로 1,000G 보유하세요",
"category": "beginner",
"condition": { "type": "gold_amount", "value": 1000 },
"reward": { "gold": 0, "boostType": "gold_boost", "boostDurationMin": 60 },
"isHidden": false
},
{
"id": "ACH-08",
"name": "첫 강화 만렙",
"description": "원소 1개의 강화 레벨을 5로 달성하세요",
"category": "beginner",
"condition": { "type": "max_enhance_count", "value": 1 },
"reward": { "gold": 1000 },
"isHidden": false
},
{
"id": "ACH-09",
"name": "Tier 3 정복자",
"description": "Tier 3 원소를 처음으로 합성하세요",
"category": "intermediate",
"condition": { "type": "tier_unlock", "value": 3 },
"reward": { "gold": 1000, "boostType": "spawn_boost", "boostDurationMin": 30 },
"isHidden": false
},
{
"id": "ACH-10",
"name": "수집 마니아",
"description": "20종류의 원소를 발견하세요",
"category": "intermediate",
"condition": { "type": "element_variety", "value": 20 },
"reward": { "gold": 2000 },
"isHidden": false
},
{
"id": "ACH-11",
"name": "부의 축적",
"description": "골드 10,000G를 보유하세요",
"category": "intermediate",
"condition": { "type": "gold_amount", "value": 10000 },
"reward": { "gold": 3000 },
"isHidden": false
},
{
"id": "ACH-12",
"name": "연금술사",
"description": "총 합성을 100회 수행하세요",
"category": "intermediate",
"condition": { "type": "fuse_count", "value": 100 },
"reward": { "gold": 2000, "bonusScrolls": 3 },
"isHidden": false
},
{
"id": "ACH-13",
"name": "강화 전문가",
"description": "5종류의 원소를 강화 레벨 5로 달성하세요",
"category": "intermediate",
"condition": { "type": "max_enhance_count", "value": 5 },
"reward": { "gold": 3000 },
"isHidden": false
},
{
"id": "ACH-14",
"name": "부지런한 탐험가",
"description": "모든 원소 합산 1,000개 이상 보유하세요",
"category": "intermediate",
"condition": { "type": "total_elements", "value": 1000 },
"reward": { "gold": 2500 },
"isHidden": false
},
{
"id": "ACH-15",
"name": "장인의 손",
"description": "단일 원소를 100개 보유하세요",
"category": "intermediate",
"condition": { "type": "single_element_count", "value": 100 },
"reward": { "gold": 2000 },
"isHidden": false
},
{
"id": "ACH-16",
"name": "Tier 4 경험자",
"description": "Tier 4 원소를 처음으로 합성하세요",
"category": "intermediate",
"condition": { "type": "tier_unlock", "value": 4 },
"reward": { "gold": 5000, "boostType": "gold_pack", "boostDurationMin": 0 },
"isHidden": false
},
{
"id": "ACH-17",
"name": "전설을 향해",
"description": "모든 Tier 3 원소 13종을 발견하세요",
"category": "intermediate",
"condition": { "type": "tier_variety", "tier": 3, "value": 13 },
"reward": { "gold": 5000 },
"isHidden": false
},
{
"id": "ACH-18",
"name": "원소 마스터",
"description": "발견한 모든 원소를 강화 레벨 3 이상으로 올리세요",
"category": "intermediate",
"condition": { "type": "all_enhance_min_level", "value": 3 },
"reward": { "gold": 8000 },
"isHidden": false
},
{
"id": "ACH-19",
"name": "전설의 탄생",
"description": "Tier 5 원소 '창조(Creation)'를 처음으로 획득하세요",
"category": "advanced",
"condition": { "type": "element_unlock", "target": "creation", "value": 1 },
"reward": { "gold": 10000, "permanentGoldMultiplier": 0.05 },
"isHidden": false
},
{
"id": "ACH-20",
"name": "세계의 완성",
"description": "Tier 5 원소 '정령(Spirit)'을 처음으로 획득하세요",
"category": "advanced",
"condition": { "type": "element_unlock", "target": "spirit", "value": 1 },
"reward": { "gold": 10000, "permanentSpawnMultiplier": 0.05 },
"isHidden": false
},
{
"id": "ACH-21",
"name": "원소의 신",
"description": "모든 42종류의 원소를 발견하세요",
"category": "advanced",
"condition": { "type": "element_variety", "value": 42 },
"reward": { "gold": 20000, "title": "전지전능자" },
"isHidden": false
},
{
"id": "ACH-22",
"name": "최강 육성사",
"description": "발견한 모든 원소를 강화 레벨 5로 달성하세요",
"category": "advanced",
"condition": { "type": "all_enhance_min_level", "value": 5 },
"reward": { "gold": 30000, "permanentGoldMultiplier": 0.10 },
"isHidden": false
},
{
"id": "ACH-23",
"name": "황금 제국",
"description": "골드 100,000G를 처음으로 보유하세요",
"category": "advanced",
"condition": { "type": "gold_amount", "value": 100000 },
"reward": { "gold": 15000, "specialBackground": "golden_empire" },
"isHidden": false
},
{
"id": "ACH-24",
"name": "환생의 시작",
"description": "프레스티지(환생)를 1회 달성하세요",
"category": "prestige",
"condition": { "type": "prestige_count", "value": 1 },
"reward": { "permanentGoldMultiplier": 0.10 },
"isHidden": true
},
{
"id": "ACH-25",
"name": "영원한 순환",
"description": "프레스티지(환생)를 5회 달성하세요",
"category": "prestige",
"condition": { "type": "prestige_count", "value": 5 },
"reward": { "permanentSpawnMultiplier": 0.15, "title": "영원의 주인" },
"isHidden": true
}
]

378
src/data/characterVisual.ts Normal file
View File

@@ -0,0 +1,378 @@
/**
* 캐릭터 비주얼 설정
* docs/character-design-guide.md 기반으로 각 원소별 시각적 특성 정의
*/
export type ParticleType =
| 'flame'
| 'water'
| 'wind'
| 'earth'
| 'crystal'
| 'spark'
| 'star'
| 'smoke'
| 'rainbow'
| 'leaf';
export type PatternType = 'swirl' | 'wave' | 'crack' | 'spiral' | 'crystal' | 'none';
export type EyeStyle = 'energetic' | 'calm' | 'playful' | 'steady' | 'mysterious' | 'radiant';
export interface ElementVisualConfig {
particleType: ParticleType;
patternType: PatternType;
eyeStyle: EyeStyle;
glowColor: string;
particleColors: string[];
/** body 가로/세로 비율 [rx, ry] — 기본값 [33, 31] */
bodyShape?: [number, number];
}
/** 기본 비주얼 (매핑 없는 원소 폴백) */
export const DEFAULT_VISUAL: ElementVisualConfig = {
particleType: 'star',
patternType: 'none',
eyeStyle: 'steady',
glowColor: '#AAAAAA',
particleColors: ['#AAAAAA', '#CCCCCC'],
};
export const CHARACTER_VISUAL: Record<string, ElementVisualConfig> = {
// ───────────── Tier 1 — 기본 4원소 ─────────────
fire: {
particleType: 'flame',
patternType: 'swirl',
eyeStyle: 'energetic',
glowColor: '#FF6600',
particleColors: ['#FF4500', '#FFAA00', '#FF6600'],
bodyShape: [29, 36],
},
water: {
particleType: 'water',
patternType: 'wave',
eyeStyle: 'calm',
glowColor: '#87CEEB',
particleColors: ['#1E90FF', '#87CEEB', '#00BFFF'],
bodyShape: [33, 31],
},
wind: {
particleType: 'wind',
patternType: 'spiral',
eyeStyle: 'playful',
glowColor: '#FFFFFF',
particleColors: ['#FFFFFF', '#87CEEB', '#B0E2FF'],
bodyShape: [36, 28],
},
earth: {
particleType: 'earth',
patternType: 'crack',
eyeStyle: 'steady',
glowColor: '#D2691E',
particleColors: ['#8B4513', '#D2691E', '#A0522D'],
bodyShape: [35, 30],
},
// ───────────── Tier 2 — 2차 원소 ─────────────
steam: {
particleType: 'smoke',
patternType: 'none',
eyeStyle: 'calm',
glowColor: '#FFFFFF',
particleColors: ['#FFFFFF', '#C0C0C0', '#E0E0E0'],
},
firestorm: {
particleType: 'flame',
patternType: 'swirl',
eyeStyle: 'energetic',
glowColor: '#FF6347',
particleColors: ['#FF6347', '#FF4500', '#FFAA00'],
bodyShape: [32, 34],
},
lava: {
particleType: 'flame',
patternType: 'crack',
eyeStyle: 'steady',
glowColor: '#FF6600',
particleColors: ['#FF2200', '#FF6600', '#FFAA00'],
},
storm: {
particleType: 'wind',
patternType: 'wave',
eyeStyle: 'playful',
glowColor: '#6495ED',
particleColors: ['#4169E1', '#6495ED', '#87CEEB'],
bodyShape: [35, 30],
},
mud: {
particleType: 'earth',
patternType: 'crack',
eyeStyle: 'steady',
glowColor: '#A0522D',
particleColors: ['#8B6914', '#A0522D', '#D2691E'],
},
desert: {
particleType: 'earth',
patternType: 'wave',
eyeStyle: 'steady',
glowColor: '#F4A460',
particleColors: ['#DEB887', '#F4A460', '#D2B48C'],
bodyShape: [36, 29],
},
// ── 신규 Tier 2 ──
ice: {
particleType: 'crystal',
patternType: 'crystal',
eyeStyle: 'calm',
glowColor: '#FFFFFF',
particleColors: ['#87CEEB', '#FFFFFF', '#B0E0FF'],
bodyShape: [34, 28],
},
smoke: {
particleType: 'smoke',
patternType: 'swirl',
eyeStyle: 'calm',
glowColor: '#A9A9A9',
particleColors: ['#808080', '#A9A9A9', '#C0C0C0'],
},
// ───────────── Tier 3 — 희귀 원소 ─────────────
cloud: {
particleType: 'water',
patternType: 'none',
eyeStyle: 'playful',
glowColor: '#FFFFFF',
particleColors: ['#FFFFFF', '#E0E8F0', '#C8D8E8'],
bodyShape: [38, 28],
},
fog: {
particleType: 'smoke',
patternType: 'none',
eyeStyle: 'mysterious',
glowColor: '#D3D3D3',
particleColors: ['#DCDCDC', '#C8C8C8', '#B8B8B8'],
bodyShape: [36, 29],
},
volcano: {
particleType: 'flame',
patternType: 'crack',
eyeStyle: 'energetic',
glowColor: '#FF4500',
particleColors: ['#CC2200', '#FF4500', '#FF6600'],
bodyShape: [31, 35],
},
rainbow: {
particleType: 'star',
patternType: 'wave',
eyeStyle: 'playful',
glowColor: '#FF69B4',
particleColors: ['#FF0000', '#FF9900', '#FFD700', '#00CC00', '#0000FF', '#8B00FF'],
bodyShape: [36, 30],
},
obsidian: {
particleType: 'crystal',
patternType: 'crack',
eyeStyle: 'mysterious',
glowColor: '#4A4A8A',
particleColors: ['#1C1C1C', '#4A4A6A', '#2D2D4A'],
},
ash: {
particleType: 'smoke',
patternType: 'none',
eyeStyle: 'steady',
glowColor: '#808080',
particleColors: ['#696969', '#808080', '#A0A0A0'],
},
lightning: {
particleType: 'spark',
patternType: 'crystal',
eyeStyle: 'energetic',
glowColor: '#FFFFFF',
particleColors: ['#FFD700', '#FFFFFF', '#FFA500'],
bodyShape: [30, 35],
},
tsunami: {
particleType: 'water',
patternType: 'wave',
eyeStyle: 'steady',
glowColor: '#00BFFF',
particleColors: ['#006994', '#008CB4', '#00BFFF'],
bodyShape: [36, 30],
},
ceramic: {
particleType: 'earth',
patternType: 'crack',
eyeStyle: 'calm',
glowColor: '#CD853F',
particleColors: ['#D2691E', '#CD853F', '#DEB887'],
},
dust: {
particleType: 'earth',
patternType: 'none',
eyeStyle: 'calm',
glowColor: '#C8A870',
particleColors: ['#BC8F5F', '#C8A870', '#D2B48C'],
},
oasis: {
particleType: 'leaf',
patternType: 'wave',
eyeStyle: 'calm',
glowColor: '#32CD32',
particleColors: ['#228B22', '#32CD32', '#90EE90'],
},
glass: {
particleType: 'crystal',
patternType: 'none',
eyeStyle: 'mysterious',
glowColor: '#AFEEEE',
particleColors: ['#E0FFFF', '#AFEEEE', '#B0E0E0'],
},
// ───────────── Tier 4 — 에픽 원소 ─────────────
thunderstorm: {
particleType: 'spark',
patternType: 'crystal',
eyeStyle: 'energetic',
glowColor: '#6666FF',
particleColors: ['#191970', '#4169E1', '#FFD700'],
bodyShape: [33, 33],
},
island: {
particleType: 'leaf',
patternType: 'wave',
eyeStyle: 'calm',
glowColor: '#66CC66',
particleColors: ['#3CB371', '#228B22', '#87CEEB'],
bodyShape: [35, 32],
},
crystal: {
particleType: 'crystal',
patternType: 'crystal',
eyeStyle: 'mysterious',
glowColor: '#DA70D6',
particleColors: ['#9400D3', '#DA70D6', '#8B00FF'],
bodyShape: [30, 36],
},
life: {
particleType: 'star',
patternType: 'wave',
eyeStyle: 'radiant',
glowColor: '#66FF88',
particleColors: ['#00FF7F', '#7FFF00', '#32CD32'],
bodyShape: [34, 33],
},
magnet: {
particleType: 'spark',
patternType: 'spiral',
eyeStyle: 'mysterious',
glowColor: '#DCDCDC',
particleColors: ['#A9A9A9', '#C0C0C0', '#FFD700'],
},
aurora: {
particleType: 'rainbow',
patternType: 'wave',
eyeStyle: 'radiant',
glowColor: '#7DF9FF',
particleColors: ['#00FFAA', '#7DF9FF', '#9B59B6', '#FF69B4'],
bodyShape: [35, 33],
},
// ── 신규 Tier 4 ──
glacier: {
particleType: 'crystal',
patternType: 'crystal',
eyeStyle: 'calm',
glowColor: '#AADDFF',
particleColors: ['#B8D8E8', '#FFFFFF', '#87CEEB'],
bodyShape: [35, 29],
},
jungle: {
particleType: 'leaf',
patternType: 'wave',
eyeStyle: 'playful',
glowColor: '#44BB44',
particleColors: ['#1A6B1A', '#228B22', '#90EE90'],
bodyShape: [35, 32],
},
wasteland: {
particleType: 'earth',
patternType: 'crack',
eyeStyle: 'steady',
glowColor: '#A08060',
particleColors: ['#8B7355', '#A08060', '#C2A261'],
bodyShape: [36, 29],
},
maelstrom: {
particleType: 'wind',
patternType: 'spiral',
eyeStyle: 'energetic',
glowColor: '#4488FF',
particleColors: ['#1E3A8A', '#3B82F6', '#87CEEB'],
bodyShape: [34, 34],
},
gemstone: {
particleType: 'crystal',
patternType: 'crystal',
eyeStyle: 'mysterious',
glowColor: '#AA66FF',
particleColors: ['#6B21A8', '#9333EA', '#C084FC'],
bodyShape: [31, 35],
},
prism: {
particleType: 'rainbow',
patternType: 'wave',
eyeStyle: 'radiant',
glowColor: '#FF88CC',
particleColors: ['#FF0066', '#FF9900', '#00FF66', '#0066FF'],
bodyShape: [34, 32],
},
ruins: {
particleType: 'earth',
patternType: 'crack',
eyeStyle: 'steady',
glowColor: '#B8793A',
particleColors: ['#92400E', '#B8793A', '#D4A070'],
bodyShape: [34, 30],
},
cyclone: {
particleType: 'wind',
patternType: 'spiral',
eyeStyle: 'energetic',
glowColor: '#FFB84D',
particleColors: ['#D97706', '#F59E0B', '#FCD34D'],
bodyShape: [34, 31],
},
deepsea: {
particleType: 'water',
patternType: 'wave',
eyeStyle: 'mysterious',
glowColor: '#4488BB',
particleColors: ['#1E3A5F', '#2E5A9F', '#4A8AC4'],
bodyShape: [34, 32],
},
prairie: {
particleType: 'leaf',
patternType: 'wave',
eyeStyle: 'calm',
glowColor: '#AAFE44',
particleColors: ['#84CC16', '#A3E635', '#D9F99D'],
bodyShape: [36, 30],
},
// ───────────── Tier 5 — 전설 원소 ─────────────
creation: {
particleType: 'rainbow',
patternType: 'swirl',
eyeStyle: 'radiant',
glowColor: '#FFFFFF',
particleColors: ['#FF0000', '#FF9900', '#FFFF00', '#00FF00', '#0000FF', '#FF00FF'],
bodyShape: [35, 35],
},
spirit: {
particleType: 'star',
patternType: 'swirl',
eyeStyle: 'radiant',
glowColor: '#FFD700',
particleColors: ['#FFD700', '#FFF0A0', '#FFFFFF'],
bodyShape: [34, 34],
},
};

632
src/data/elements.json Normal file
View File

@@ -0,0 +1,632 @@
[
{
"id": "fire",
"name": "불",
"nameEn": "Fire",
"tier": 1,
"emoji": "🔥",
"color": "#FF4500",
"unlockCondition": "initial",
"baseSpawnSpeed": 5.0,
"idleIncomeRate": 1.0,
"evolutionMaxLevel": 5,
"rarity": "common",
"description": "모든 것의 시작, 원초의 불꽃",
"recipes": ["R-01", "R-02", "R-03", "R-28"]
},
{
"id": "water",
"name": "물",
"nameEn": "Water",
"tier": 1,
"emoji": "💧",
"color": "#1E90FF",
"unlockCondition": "initial",
"baseSpawnSpeed": 5.0,
"idleIncomeRate": 1.0,
"evolutionMaxLevel": 5,
"rarity": "common",
"description": "생명의 근원, 흐르는 물",
"recipes": ["R-01", "R-04", "R-05", "R-27"]
},
{
"id": "wind",
"name": "바람",
"nameEn": "Wind",
"tier": 1,
"emoji": "🌪️",
"color": "#87CEEB",
"unlockCondition": "initial",
"baseSpawnSpeed": 5.0,
"idleIncomeRate": 1.0,
"evolutionMaxLevel": 5,
"rarity": "common",
"description": "자유로운 영혼, 쉬지 않는 바람",
"recipes": ["R-02", "R-04", "R-06"]
},
{
"id": "earth",
"name": "흙",
"nameEn": "Earth",
"tier": 1,
"emoji": "🌱",
"color": "#8B4513",
"unlockCondition": "initial",
"baseSpawnSpeed": 5.0,
"idleIncomeRate": 1.0,
"evolutionMaxLevel": 5,
"rarity": "common",
"description": "모든 것을 품는 대지",
"recipes": ["R-03", "R-05", "R-06"]
},
{
"id": "steam",
"name": "수증기",
"nameEn": "Steam",
"tier": 2,
"emoji": "💨",
"color": "#C0C0C0",
"unlockCondition": "recipe:fire+water",
"baseSpawnSpeed": 3.0,
"idleIncomeRate": 2.0,
"evolutionMaxLevel": 5,
"rarity": "uncommon",
"description": "불과 물이 만나 생긴 뜨거운 증기",
"recipes": ["R-07", "R-08"]
},
{
"id": "firestorm",
"name": "불폭풍",
"nameEn": "Firestorm",
"tier": 2,
"emoji": "🌪️",
"color": "#FF6347",
"unlockCondition": "recipe:fire+wind",
"baseSpawnSpeed": 3.0,
"idleIncomeRate": 2.0,
"evolutionMaxLevel": 5,
"rarity": "uncommon",
"description": "불꽃과 바람이 뒤엉킨 거대한 화염",
"recipes": ["R-09", "R-10"]
},
{
"id": "lava",
"name": "용암",
"nameEn": "Lava",
"tier": 2,
"emoji": "🌋",
"color": "#FF2200",
"unlockCondition": "recipe:fire+earth",
"baseSpawnSpeed": 3.0,
"idleIncomeRate": 2.0,
"evolutionMaxLevel": 5,
"rarity": "uncommon",
"description": "땅을 녹여 흐르는 불의 강",
"recipes": ["R-11", "R-12"]
},
{
"id": "storm",
"name": "폭풍",
"nameEn": "Storm",
"tier": 2,
"emoji": "⛈️",
"color": "#4169E1",
"unlockCondition": "recipe:water+wind",
"baseSpawnSpeed": 3.0,
"idleIncomeRate": 2.0,
"evolutionMaxLevel": 5,
"rarity": "uncommon",
"description": "물과 바람이 격렬히 부딪히는 폭풍",
"recipes": ["R-13", "R-14", "R-36"]
},
{
"id": "mud",
"name": "진흙",
"nameEn": "Mud",
"tier": 2,
"emoji": "🟫",
"color": "#8B6914",
"unlockCondition": "recipe:water+earth",
"baseSpawnSpeed": 3.0,
"idleIncomeRate": 2.0,
"evolutionMaxLevel": 5,
"rarity": "uncommon",
"description": "물이 땅에 스며들어 만들어진 진흙",
"recipes": ["R-15", "R-16"]
},
{
"id": "desert",
"name": "사막",
"nameEn": "Desert",
"tier": 2,
"emoji": "🏜️",
"color": "#DEB887",
"unlockCondition": "recipe:wind+earth",
"baseSpawnSpeed": 3.0,
"idleIncomeRate": 2.0,
"evolutionMaxLevel": 5,
"rarity": "uncommon",
"description": "바람이 만들어낸 끝없는 모래밭",
"recipes": ["R-17", "R-18"]
},
{
"id": "ice",
"name": "얼음",
"nameEn": "Ice",
"tier": 2,
"emoji": "❄️",
"color": "#87CEEB",
"unlockCondition": "recipe:water+water",
"baseSpawnSpeed": 3.0,
"idleIncomeRate": 2.0,
"evolutionMaxLevel": 5,
"rarity": "uncommon",
"description": "물이 극한의 냉기로 굳어진 순수한 결정",
"recipes": []
},
{
"id": "smoke",
"name": "연기",
"nameEn": "Smoke",
"tier": 2,
"emoji": "🌫️",
"color": "#808080",
"unlockCondition": "recipe:fire+fire",
"baseSpawnSpeed": 3.0,
"idleIncomeRate": 2.0,
"evolutionMaxLevel": 5,
"rarity": "uncommon",
"description": "불꽃이 응집되어 피어오르는 짙은 연기",
"recipes": []
},
{
"id": "cloud",
"name": "구름",
"nameEn": "Cloud",
"tier": 3,
"emoji": "☁️",
"color": "#F0F8FF",
"unlockCondition": "recipe:steam+wind",
"baseSpawnSpeed": 2.0,
"idleIncomeRate": 5.0,
"evolutionMaxLevel": 5,
"rarity": "rare",
"description": "하늘 높이 떠오른 물의 결정체",
"recipes": ["R-19", "R-24", "R-29"]
},
{
"id": "fog",
"name": "안개",
"nameEn": "Fog",
"tier": 3,
"emoji": "🌫️",
"color": "#DCDCDC",
"unlockCondition": "recipe:steam+earth",
"baseSpawnSpeed": 2.0,
"idleIncomeRate": 5.0,
"evolutionMaxLevel": 5,
"rarity": "rare",
"description": "땅을 가득 덮은 신비로운 안개",
"recipes": ["R-29", "R-30"]
},
{
"id": "volcano",
"name": "화산",
"nameEn": "Volcano",
"tier": 3,
"emoji": "🌋",
"color": "#CC2200",
"unlockCondition": "recipe:firestorm+earth",
"baseSpawnSpeed": 2.0,
"idleIncomeRate": 5.0,
"evolutionMaxLevel": 5,
"rarity": "rare",
"description": "대지를 가르며 솟구치는 화염의 산",
"recipes": ["R-20", "R-35"]
},
{
"id": "rainbow",
"name": "무지개",
"nameEn": "Rainbow",
"tier": 3,
"emoji": "🌈",
"color": "#FF69B4",
"unlockCondition": "recipe:firestorm+water",
"baseSpawnSpeed": 2.0,
"idleIncomeRate": 5.0,
"evolutionMaxLevel": 5,
"rarity": "rare",
"description": "불과 물이 빛을 만나 피어난 색의 다리",
"recipes": ["R-24", "R-34"]
},
{
"id": "obsidian",
"name": "흑요석",
"nameEn": "Obsidian",
"tier": 3,
"emoji": "⬛",
"color": "#1C1C1C",
"unlockCondition": "recipe:lava+water",
"baseSpawnSpeed": 2.0,
"idleIncomeRate": 5.0,
"evolutionMaxLevel": 5,
"rarity": "rare",
"description": "용암이 냉각되어 만들어진 검은 유리",
"recipes": ["R-21", "R-33", "R-37"]
},
{
"id": "ash",
"name": "화산재",
"nameEn": "Ash",
"tier": 3,
"emoji": "💀",
"color": "#696969",
"unlockCondition": "recipe:lava+wind",
"baseSpawnSpeed": 2.0,
"idleIncomeRate": 5.0,
"evolutionMaxLevel": 5,
"rarity": "rare",
"description": "모든 것을 태운 뒤 남은 재",
"recipes": ["R-31"]
},
{
"id": "lightning",
"name": "번개",
"nameEn": "Lightning",
"tier": 3,
"emoji": "⚡",
"color": "#FFD700",
"unlockCondition": "recipe:storm+earth",
"baseSpawnSpeed": 2.0,
"idleIncomeRate": 5.0,
"evolutionMaxLevel": 5,
"rarity": "rare",
"description": "하늘과 땅을 잇는 강렬한 전류",
"recipes": ["R-19", "R-23", "R-32"]
},
{
"id": "tsunami",
"name": "쓰나미",
"nameEn": "Tsunami",
"tier": 3,
"emoji": "🌊",
"color": "#006994",
"unlockCondition": "recipe:storm+water",
"baseSpawnSpeed": 2.0,
"idleIncomeRate": 5.0,
"evolutionMaxLevel": 5,
"rarity": "rare",
"description": "거대한 물의 장벽",
"recipes": ["R-32", "R-37"]
},
{
"id": "ceramic",
"name": "도자기",
"nameEn": "Ceramic",
"tier": 3,
"emoji": "🏺",
"color": "#D2691E",
"unlockCondition": "recipe:mud+earth",
"baseSpawnSpeed": 2.0,
"idleIncomeRate": 5.0,
"evolutionMaxLevel": 5,
"rarity": "rare",
"description": "흙을 불로 구워낸 인류의 예술",
"recipes": ["R-35", "R-38"]
},
{
"id": "dust",
"name": "먼지",
"nameEn": "Dust",
"tier": 3,
"emoji": "💫",
"color": "#BC8F5F",
"unlockCondition": "recipe:mud+wind",
"baseSpawnSpeed": 2.0,
"idleIncomeRate": 5.0,
"evolutionMaxLevel": 5,
"rarity": "rare",
"description": "바람에 날리는 미세한 흙의 조각",
"recipes": ["R-31", "R-36"]
},
{
"id": "oasis",
"name": "오아시스",
"nameEn": "Oasis",
"tier": 3,
"emoji": "🌴",
"color": "#228B22",
"unlockCondition": "recipe:desert+water",
"baseSpawnSpeed": 2.0,
"idleIncomeRate": 5.0,
"evolutionMaxLevel": 5,
"rarity": "rare",
"description": "사막 한가운데 피어난 생명의 샘",
"recipes": ["R-22", "R-30", "R-38"]
},
{
"id": "glass",
"name": "유리",
"nameEn": "Glass",
"tier": 3,
"emoji": "🔮",
"color": "#E0FFFF",
"unlockCondition": "recipe:desert+earth",
"baseSpawnSpeed": 2.0,
"idleIncomeRate": 5.0,
"evolutionMaxLevel": 5,
"rarity": "rare",
"description": "모래가 열에 녹아 만들어진 투명한 물질",
"recipes": ["R-33", "R-34"]
},
{
"id": "thunderstorm",
"name": "뇌우",
"nameEn": "Thunderstorm",
"tier": 4,
"emoji": "🌩️",
"color": "#191970",
"unlockCondition": "recipe:cloud+lightning",
"baseSpawnSpeed": 1.5,
"idleIncomeRate": 15.0,
"evolutionMaxLevel": 5,
"rarity": "epic",
"description": "하늘을 뒤흔드는 폭풍과 번개의 교향곡",
"recipes": ["R-25"]
},
{
"id": "island",
"name": "섬",
"nameEn": "Island",
"tier": 4,
"emoji": "🏝️",
"color": "#3CB371",
"unlockCondition": "recipe:volcano+water",
"baseSpawnSpeed": 1.5,
"idleIncomeRate": 15.0,
"evolutionMaxLevel": 5,
"rarity": "epic",
"description": "바다 위에 솟아오른 새로운 대지",
"recipes": []
},
{
"id": "crystal",
"name": "수정",
"nameEn": "Crystal",
"tier": 4,
"emoji": "💎",
"color": "#9400D3",
"unlockCondition": "recipe:obsidian+water",
"baseSpawnSpeed": 1.5,
"idleIncomeRate": 15.0,
"evolutionMaxLevel": 5,
"rarity": "epic",
"description": "수백만 년의 시간이 빚어낸 순수한 결정",
"recipes": ["R-26"]
},
{
"id": "life",
"name": "생명",
"nameEn": "Life",
"tier": 4,
"emoji": "🌿",
"color": "#00FF7F",
"unlockCondition": "recipe:oasis+wind",
"baseSpawnSpeed": 1.5,
"idleIncomeRate": 15.0,
"evolutionMaxLevel": 5,
"rarity": "epic",
"description": "물, 바람, 대지가 만들어낸 생명의 탄생",
"recipes": ["R-25", "R-26"]
},
{
"id": "magnet",
"name": "자석",
"nameEn": "Magnet",
"tier": 4,
"emoji": "🧲",
"color": "#A9A9A9",
"unlockCondition": "recipe:lightning+earth",
"baseSpawnSpeed": 1.5,
"idleIncomeRate": 15.0,
"evolutionMaxLevel": 5,
"rarity": "epic",
"description": "번개가 대지에 새긴 자기력의 흔적",
"recipes": []
},
{
"id": "aurora",
"name": "오로라",
"nameEn": "Aurora",
"tier": 4,
"emoji": "🌌",
"color": "#7DF9FF",
"unlockCondition": "recipe:rainbow+cloud",
"baseSpawnSpeed": 1.5,
"idleIncomeRate": 15.0,
"evolutionMaxLevel": 5,
"rarity": "epic",
"description": "하늘을 물들이는 신비로운 빛의 커튼",
"recipes": []
},
{
"id": "glacier",
"name": "빙하",
"nameEn": "Glacier",
"tier": 4,
"emoji": "🏔️",
"color": "#B8D8E8",
"unlockCondition": "recipe:cloud+fog",
"baseSpawnSpeed": 1.5,
"idleIncomeRate": 15.0,
"evolutionMaxLevel": 5,
"rarity": "epic",
"description": "구름과 안개가 수천 년에 걸쳐 쌓인 거대한 얼음 산",
"recipes": []
},
{
"id": "jungle",
"name": "정글",
"nameEn": "Jungle",
"tier": 4,
"emoji": "🌴",
"color": "#1A6B1A",
"unlockCondition": "recipe:fog+oasis",
"baseSpawnSpeed": 1.5,
"idleIncomeRate": 15.0,
"evolutionMaxLevel": 5,
"rarity": "epic",
"description": "안개 속에 숨겨진 울창한 생명의 숲",
"recipes": []
},
{
"id": "wasteland",
"name": "황무지",
"nameEn": "Wasteland",
"tier": 4,
"emoji": "🏜️",
"color": "#8B7355",
"unlockCondition": "recipe:ash+dust",
"baseSpawnSpeed": 1.5,
"idleIncomeRate": 15.0,
"evolutionMaxLevel": 5,
"rarity": "epic",
"description": "재와 먼지만 남은 황폐한 대지",
"recipes": []
},
{
"id": "maelstrom",
"name": "대소용돌이",
"nameEn": "Maelstrom",
"tier": 4,
"emoji": "🌀",
"color": "#1E3A8A",
"unlockCondition": "recipe:lightning+tsunami",
"baseSpawnSpeed": 1.5,
"idleIncomeRate": 15.0,
"evolutionMaxLevel": 5,
"rarity": "epic",
"description": "번개와 해일이 만들어낸 거대한 소용돌이",
"recipes": []
},
{
"id": "gemstone",
"name": "원석",
"nameEn": "Gemstone",
"tier": 4,
"emoji": "💠",
"color": "#6B21A8",
"unlockCondition": "recipe:obsidian+glass",
"baseSpawnSpeed": 1.5,
"idleIncomeRate": 15.0,
"evolutionMaxLevel": 5,
"rarity": "epic",
"description": "흑요석과 유리가 융합된 영롱한 보석 원석",
"recipes": []
},
{
"id": "prism",
"name": "프리즘",
"nameEn": "Prism",
"tier": 4,
"emoji": "🔮",
"color": "#EC4899",
"unlockCondition": "recipe:rainbow+glass",
"baseSpawnSpeed": 1.5,
"idleIncomeRate": 15.0,
"evolutionMaxLevel": 5,
"rarity": "epic",
"description": "무지개빛을 굴절·분산시키는 마법의 수정체",
"recipes": []
},
{
"id": "ruins",
"name": "고대 유적",
"nameEn": "Ruins",
"tier": 4,
"emoji": "🏛️",
"color": "#92400E",
"unlockCondition": "recipe:volcano+ceramic",
"baseSpawnSpeed": 1.5,
"idleIncomeRate": 15.0,
"evolutionMaxLevel": 5,
"rarity": "epic",
"description": "화산재 속에 묻혀 있던 잃어버린 문명의 흔적",
"recipes": []
},
{
"id": "cyclone",
"name": "사이클론",
"nameEn": "Cyclone",
"tier": 4,
"emoji": "🌪️",
"color": "#D97706",
"unlockCondition": "recipe:dust+storm",
"baseSpawnSpeed": 1.5,
"idleIncomeRate": 15.0,
"evolutionMaxLevel": 5,
"rarity": "epic",
"description": "먼지와 폭풍이 뒤엉킨 거대한 모래바람",
"recipes": []
},
{
"id": "deepsea",
"name": "심해",
"nameEn": "Deep Sea",
"tier": 4,
"emoji": "🌊",
"color": "#1E3A5F",
"unlockCondition": "recipe:tsunami+obsidian",
"baseSpawnSpeed": 1.5,
"idleIncomeRate": 15.0,
"evolutionMaxLevel": 5,
"rarity": "epic",
"description": "쓰나미가 흑요석 해저를 뒤덮어 탄생한 어둠의 심연",
"recipes": []
},
{
"id": "prairie",
"name": "초원",
"nameEn": "Prairie",
"tier": 4,
"emoji": "🌾",
"color": "#84CC16",
"unlockCondition": "recipe:oasis+ceramic",
"baseSpawnSpeed": 1.5,
"idleIncomeRate": 15.0,
"evolutionMaxLevel": 5,
"rarity": "epic",
"description": "오아시스의 물기와 도자기 대지가 빚어낸 넓은 초원",
"recipes": []
},
{
"id": "creation",
"name": "창조",
"nameEn": "Creation",
"tier": 5,
"emoji": "✨",
"color": "#FFFFFF",
"unlockCondition": "recipe:thunderstorm+life",
"baseSpawnSpeed": 1.0,
"idleIncomeRate": 50.0,
"evolutionMaxLevel": 5,
"rarity": "legendary",
"description": "모든 원소의 조화, 세계의 창조",
"recipes": []
},
{
"id": "spirit",
"name": "정령",
"nameEn": "Spirit",
"tier": 5,
"emoji": "👻",
"color": "#FFD700",
"unlockCondition": "recipe:crystal+life",
"baseSpawnSpeed": 1.0,
"idleIncomeRate": 50.0,
"evolutionMaxLevel": 5,
"rarity": "legendary",
"description": "물질을 초월한 순수한 에너지의 정수",
"recipes": []
}
]

47
src/data/prestige.json Normal file
View File

@@ -0,0 +1,47 @@
[
{
"count": 1,
"goldMultiplier": 1.5,
"spawnMultiplier": 1.2,
"starterGold": 1000,
"title": "불꽃의 탐험자",
"titleEmoji": "🔴",
"titleColor": "#FF4500"
},
{
"count": 2,
"goldMultiplier": 2.0,
"spawnMultiplier": 1.4,
"starterGold": 2000,
"title": "물의 현자",
"titleEmoji": "🌊",
"titleColor": "#1E90FF"
},
{
"count": 3,
"goldMultiplier": 2.8,
"spawnMultiplier": 1.6,
"starterGold": 4000,
"title": "바람의 정령",
"titleEmoji": "🌪️",
"titleColor": "#87CEEB"
},
{
"count": 4,
"goldMultiplier": 3.5,
"spawnMultiplier": 1.8,
"starterGold": 7000,
"title": "대지의 수호자",
"titleEmoji": "⛰️",
"titleColor": "#8B4513"
},
{
"count": 5,
"goldMultiplier": 4.5,
"spawnMultiplier": 2.0,
"starterGold": 12000,
"title": "창조의 신",
"titleEmoji": "✨",
"titleColor": "#FFD700"
}
]

40
src/data/recipes.json Normal file
View File

@@ -0,0 +1,40 @@
[
{ "id": "R-01", "ingredients": ["fire", "water"], "result": "steam", "tier": 2 },
{ "id": "R-02", "ingredients": ["fire", "wind"], "result": "firestorm", "tier": 2 },
{ "id": "R-03", "ingredients": ["fire", "earth"], "result": "lava", "tier": 2 },
{ "id": "R-04", "ingredients": ["water", "wind"], "result": "storm", "tier": 2 },
{ "id": "R-05", "ingredients": ["water", "earth"], "result": "mud", "tier": 2 },
{ "id": "R-06", "ingredients": ["wind", "earth"], "result": "desert", "tier": 2 },
{ "id": "R-07", "ingredients": ["steam", "wind"], "result": "cloud", "tier": 3 },
{ "id": "R-08", "ingredients": ["steam", "earth"], "result": "fog", "tier": 3 },
{ "id": "R-09", "ingredients": ["firestorm", "earth"], "result": "volcano", "tier": 3 },
{ "id": "R-10", "ingredients": ["firestorm", "water"], "result": "rainbow", "tier": 3 },
{ "id": "R-11", "ingredients": ["lava", "water"], "result": "obsidian", "tier": 3 },
{ "id": "R-12", "ingredients": ["lava", "wind"], "result": "ash", "tier": 3 },
{ "id": "R-13", "ingredients": ["storm", "earth"], "result": "lightning", "tier": 3 },
{ "id": "R-14", "ingredients": ["storm", "water"], "result": "tsunami", "tier": 3 },
{ "id": "R-15", "ingredients": ["mud", "earth"], "result": "ceramic", "tier": 3 },
{ "id": "R-16", "ingredients": ["mud", "wind"], "result": "dust", "tier": 3 },
{ "id": "R-17", "ingredients": ["desert", "water"], "result": "oasis", "tier": 3 },
{ "id": "R-18", "ingredients": ["desert", "earth"], "result": "glass", "tier": 3 },
{ "id": "R-19", "ingredients": ["cloud", "lightning"], "result": "thunderstorm", "tier": 4 },
{ "id": "R-20", "ingredients": ["volcano", "water"], "result": "island", "tier": 4 },
{ "id": "R-21", "ingredients": ["obsidian", "water"], "result": "crystal", "tier": 4 },
{ "id": "R-22", "ingredients": ["oasis", "wind"], "result": "life", "tier": 4 },
{ "id": "R-23", "ingredients": ["lightning", "earth"], "result": "magnet", "tier": 4 },
{ "id": "R-24", "ingredients": ["rainbow", "cloud"], "result": "aurora", "tier": 4 },
{ "id": "R-25", "ingredients": ["thunderstorm", "life"],"result": "creation", "tier": 5 },
{ "id": "R-26", "ingredients": ["crystal", "life"], "result": "spirit", "tier": 5 },
{ "id": "R-27", "ingredients": ["water", "water"], "result": "ice", "tier": 2 },
{ "id": "R-28", "ingredients": ["fire", "fire"], "result": "smoke", "tier": 2 },
{ "id": "R-29", "ingredients": ["cloud", "fog"], "result": "glacier", "tier": 4 },
{ "id": "R-30", "ingredients": ["fog", "oasis"], "result": "jungle", "tier": 4 },
{ "id": "R-31", "ingredients": ["ash", "dust"], "result": "wasteland", "tier": 4 },
{ "id": "R-32", "ingredients": ["lightning", "tsunami"],"result": "maelstrom", "tier": 4 },
{ "id": "R-33", "ingredients": ["obsidian", "glass"], "result": "gemstone", "tier": 4 },
{ "id": "R-34", "ingredients": ["rainbow", "glass"], "result": "prism", "tier": 4 },
{ "id": "R-35", "ingredients": ["volcano", "ceramic"], "result": "ruins", "tier": 4 },
{ "id": "R-36", "ingredients": ["dust", "storm"], "result": "cyclone", "tier": 4 },
{ "id": "R-37", "ingredients": ["tsunami", "obsidian"], "result": "deepsea", "tier": 4 },
{ "id": "R-38", "ingredients": ["oasis", "ceramic"], "result": "prairie", "tier": 4 }
]