# 월드 시스템: 던전/지역/상점

> 메인 문서: [game-system-overhaul-index.md](game-system-overhaul-index.md)

---

## 1. 던전/지역 시스템

### 1.1 월드 구조

```
┌─ 코드 왕국 (세계) ─────────────────────────────────────┐
│                                                         │
│  Act I: 버그 평원                                       │
│  ├─ 시작 마을 (안전 지역)                              │
│  ├─ 버그 초원 (Lv.1-5)                                 │
│  ├─ 에러 숲 (Lv.6-10)                                  │
│  ├─ 버그 둥지 [던전] (Lv.8-12)                         │
│  └─ 문법 오류의 탑 [보스] (Lv.15)                      │
│                                                         │
│  Act II: 손상된 네트워크                                │
│  ├─ 디버거 요새 (안전 지역)                            │
│  ├─ 손상된 회로 (Lv.16-25)                             │
│  ├─ 메모리 늪 (Lv.21-30)                               │
│  ├─ 누수 동굴 [던전] (Lv.25-35)                        │
│  └─ 히드라의 서버실 [보스] (Lv.40)                     │
│                                                         │
│  Act III: 널 왕국                                       │
│  ├─ 바이너리 신전 (안전 지역)                          │
│  ├─ 널 사막 (Lv.41-50)                                 │
│  ├─ 포인터 미궁 (Lv.46-55)                             │
│  ├─ 버퍼의 심연 [던전] (Lv.50-60)                      │
│  └─ 타이탄의 성채 [보스] (Lv.60)                       │
│                                                         │
│  Act IV: 글리치 영역                                    │
│  ├─ 저항군 기지 (안전 지역)                            │
│  ├─ 커널 황무지 (Lv.61-70)                             │
│  ├─ 패닉 협곡 (Lv.66-80)                               │
│  ├─ 시스템 감옥 [던전] (Lv.70-85)                      │
│  └─ 아콘의 왕좌 [보스] (Lv.80)                         │
│                                                         │
│  Act V: 최종 결전                                       │
│  ├─ 최후의 캐시 (안전 지역)                            │
│  ├─ 글리치 회랑 (Lv.81-90)                             │
│  ├─ 차원의 틈 (Lv.86-95)                               │
│  ├─ 신의 코어 [던전] (Lv.90-100)                       │
│  └─ 글리치 신의 영역 [최종 보스] (Lv.100)              │
│                                                         │
└─────────────────────────────────────────────────────────┘
```

### 1.2 지역 타입

| 타입 | 설명 | 특징 |
|------|------|------|
| **안전 지역** | 마을, 요새 | 전투 없음, 상점, NPC, 회복 |
| **필드** | 일반 사냥터 | 일반 몬스터, 퀘스트 |
| **던전** | 인스턴스 지역 | 강화 몬스터, 미니보스, 보상 증가 |
| **보스 지역** | Act 보스 | 보스 몬스터, 스토리 진행 |

### 1.3 지역 이동 (Idle 방식)

```dart
class AreaProgress {
  final String currentAreaId;
  final double explorationProgress;  // 0.0 ~ 1.0
  final bool isBossUnlocked;

  /// 탐험 진행 (자동)
  void progressExploration(Duration elapsed) {
    // 시간 경과에 따라 탐험도 증가
    // 탐험도 100% 달성 시 다음 지역/보스 해금
  }
}
```

### 1.4 던전 시스템

| 요소 | 설명 |
|------|------|
| **입장 조건** | 최소 레벨, 이전 던전 클리어 |
| **층 구조** | 3-5층, 층별 강화 몬스터 |
| **보스 층** | 마지막 층에 미니보스 |
| **보상** | 일반 필드 대비 2-3배 |
| **재입장** | 클리어 후 24시간 대기 (일일 1회) |

### 1.5 지역 UI

```
┌─ 현재 위치 ─────────────────────────┐
│                                     │
│ 📍 Act II: 손상된 회로              │
│    Lv.16-25                         │
│                                     │
│ 탐험 진행도: ████████░░ 78%         │
│ 다음 지역까지: 22%                  │
│                                     │
│ ─────────────────────────────────── │
│                                     │
│ 🏰 디버거 요새 [방문하기]           │
│ 🌲 손상된 회로 [현재]               │
│ 🌊 메모리 늪 [해금 필요: 탐험 100%] │
│ 🏔 누수 동굴 [해금 필요: Lv.25]     │
│ 👹 히드라 서버실 [해금 필요]        │
│                                     │
└─────────────────────────────────────┘
```

---

## 2. 상점 시스템 상세

### 2.1 상점 종류

| 상점 | 위치 | 판매 품목 |
|------|------|----------|
| **일반 상점** | 모든 마을 | 물약, 기본 장비, 소모품 |
| **대장간** | 모든 마을 | 무기, 방어구 (레벨 기반) |
| **마법 상점** | Act II 이후 | 스킬서, 마법 장비 |
| **비밀 상점** | 랜덤 등장 | 희귀 아이템, 한정품 |
| **길드 상점** | 요새 | 길드 포인트 교환 |

### 2.2 상점 갱신 시스템

```dart
class Shop {
  final ShopType type;
  final List<ShopItem> items;
  final DateTime lastRefresh;
  final Duration refreshInterval;

  /// 상점 아이템 갱신
  void refresh(int playerLevel) {
    items.clear();
    items.addAll(_generateItems(playerLevel));
    lastRefresh = DateTime.now();
  }
}
```

| 상점 | 갱신 주기 | 갱신 조건 |
|------|----------|----------|
| 일반 상점 | 매일 자정 | 자동 |
| 대장간 | 레벨업 시 | 레벨업 |
| 마법 상점 | 매주 월요일 | 자동 |
| 비밀 상점 | 랜덤 | 5% 확률로 등장 |

### 2.3 가격 계산 공식

```dart
/// 구매 가격 계산
int calculateBuyPrice(Equipment item) {
  final basePrice = item.level * 50;
  final rarityMultiplier = {
    ItemRarity.common: 1.0,
    ItemRarity.uncommon: 2.0,
    ItemRarity.rare: 5.0,
    ItemRarity.epic: 15.0,
    ItemRarity.legendary: 50.0,
  }[item.rarity]!;

  return (basePrice * rarityMultiplier).round();
}

/// 판매 가격 계산
int calculateSellPrice(Equipment item) {
  return (calculateBuyPrice(item) * 0.3).round();
}

/// CHA 보너스 적용
int applyCharismaDiscount(int price, int cha) {
  // CHA 10당 1% 할인, 최대 20% 할인
  final discount = min(0.20, (cha - 10) * 0.01);
  return (price * (1 - discount)).round();
}
```

### 2.4 상점 UI

```
┌─ 대장간 ────────────────────────────┐
│                                     │
│ 👤 레벨: 25  💰 골드: 15,420        │
│ 📦 인벤토리: 42/50                  │
│                                     │
│ ─────────────────────────────────── │
│ 판매 중인 아이템 (갱신까지: 2시간)  │
│                                     │
│ ┌─────────────────────────────────┐ │
│ │ ⚔️ 디버거의 검 (Lv.25)          │ │
│ │    ATK +35, CRI +3%             │ │
│ │    💰 1,250 골드    [구매]      │ │
│ └─────────────────────────────────┘ │
│                                     │
│ ┌─────────────────────────────────┐ │
│ │ 🛡️ 강철 갑옷 (Lv.24)            │ │
│ │    DEF +42, HP +50              │ │
│ │    💰 1,100 골드    [구매]      │ │
│ └─────────────────────────────────┘ │
│                                     │
│ [판매하기] [강화하기] [수리하기]    │
│                                     │
└─────────────────────────────────────┘
```

### 2.5 특별 거래

| 기능 | 설명 |
|------|------|
| **일괄 구매** | 물약 10개/50개 묶음 구매 (5% 할인) |
| **일괄 판매** | 선택한 아이템 일괄 판매 |
| **자동 구매** | 물약 부족 시 자동 구매 설정 |
| **예약 구매** | 비밀 상점 아이템 등장 시 알림 |

---
