# 전투 확장: 몬스터 AI/퀘스트/버프

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

---

## 1. 몬스터 AI/보스 패턴

### 1.1 일반 몬스터 AI

```dart
enum MonsterBehavior {
  aggressive,   // 공격 우선
  defensive,    // 방어 우선
  balanced,     // 균형
  berserker,    // HP 낮을수록 공격력 증가
  healer,       // 자가 회복
}

class MonsterAI {
  final MonsterBehavior behavior;
  final double skillUseChance;   // 스킬 사용 확률
  final List<MonsterSkill> skills;

  MonsterAction decideAction(BattleState state) {
    // AI 로직
  }
}
```

### 1.2 보스 몬스터 페이즈

```dart
class BossMonster {
  final String id;
  final String name;
  final List<BossPhase> phases;
  final int currentPhaseIndex;

  BossPhase get currentPhase => phases[currentPhaseIndex];
}

class BossPhase {
  final double hpThreshold;      // 이 HP% 이하일 때 다음 페이즈
  final String phaseName;        // "분노", "최후의 발악" 등
  final Map<StatType, double> statModifiers;  // 스탯 변화
  final List<BossSkill> availableSkills;
  final String? phaseStartMessage;  // "커널 패닉이 분노합니다!"
}
```

### 1.3 보스 패턴 예시

| 보스 | 페이즈 1 (100-70%) | 페이즈 2 (70-30%) | 페이즈 3 (30-0%) |
|------|-------------------|-------------------|------------------|
| **Syntax Error Dragon** | 일반 공격 | 문법 오류 브레스 (범위) | 무한 루프 (연속 공격) |
| **Memory Leak Hydra** | 단일 공격 | 메모리 침식 (DOT) | 머리 재생 (회복 + 분열) |
| **Buffer Overflow Titan** | 강타 | 오버플로우 (즉사 위험) | 시스템 붕괴 (전체 공격) |
| **Kernel Panic Archon** | 패닉 공격 | 블루스크린 (스턴) | 시스템 재부팅 (HP 회복) |
| **Glitch God** | 글리치 (랜덤 효과) | 차원 왜곡 (회피 불가) | 존재 삭제 (다중 페이즈) |

### 1.4 보스 스킬

```dart
class BossSkill {
  final String id;
  final String name;
  final SkillType type;
  final int cooldownTurns;      // 턴 기반 쿨타임
  final double damageMultiplier;
  final List<StatusEffect>? effects;
  final String? castMessage;    // "커널 패닉이 블루스크린을 시전합니다!"
  final int castTime;           // 시전 시간 (경고 표시용)
}
```

### 1.5 보스전 특수 메커니즘

| 메커니즘 | 설명 |
|----------|------|
| **시전 경고** | 강력한 스킬 사용 전 1-2턴 경고 표시 |
| **페이즈 전환 연출** | HP 임계점 도달 시 특별 애니메이션 |
| **분노 게이지** | 특정 보스는 분노 시 패턴 변화 |
| **약점 노출** | 특정 행동 후 약점 노출 (추가 데미지) |
| **환경 효과** | 보스에 따라 필드 효과 (독, 화염 등) |

---

## 2. 퀘스트 시스템 상세

### 2.1 퀘스트 구조

```dart
class Quest {
  final String id;
  final String name;
  final QuestType type;           // main, side, daily, event
  final String description;
  final List<QuestObjective> objectives;
  final QuestReward reward;
  final int requiredLevel;
  final String? prerequisiteQuestId;
}

class QuestObjective {
  final ObjectiveType type;       // kill, collect, reach, survive
  final String targetId;          // 대상 몬스터/아이템/지역
  final int targetCount;
  final int currentCount;
  final bool isCompleted;
}
```

### 2.2 퀘스트 타입

| 타입 | 설명 | 갱신 |
|------|------|------|
| **메인 퀘스트** | 스토리 진행 필수 | 일회성 |
| **서브 퀘스트** | 추가 보상 | 일회성 |
| **일일 퀘스트** | 매일 갱신 | 매일 자정 |
| **주간 퀘스트** | 매주 갱신 | 매주 월요일 |
| **이벤트 퀘스트** | 기간 한정 | 이벤트 기간 |
| **업적 퀘스트** | 장기 목표 | 영구 |

### 2.3 메인 퀘스트 흐름

```
Act I: 각성
├── [메인] 첫 번째 버그 처치
├── [메인] 버그 둥지 탐험
├── [메인] Syntax Error Dragon 처치
└── [보상] Act II 해금

Act II: 성장
├── [메인] 디버거 기사단 가입
├── [메인] 손상된 네트워크 조사
├── [메인] 배신자 추적
├── [메인] Memory Leak Hydra 처치
└── [보상] Act III 해금

... (Act III ~ V)
```

### 2.4 서브 퀘스트 예시

| 퀘스트명 | 목표 | 보상 |
|----------|------|------|
| 백전용사 | 몬스터 100마리 처치 | 골드 1000, 칭호 |
| 수집가 | 무기 10종 획득 | 희귀 무기 박스 |
| 생존자 | 사망 없이 Act I 클리어 | 칭호 "완벽주의자" |
| 속도전 | 30분 내 레벨 10 달성 | 경험치 물약 x3 |

### 2.5 퀘스트 UI

```
┌─ 퀘스트 ────────────────────────────┐
│                                     │
│ ★ 메인 퀘스트                       │
│   ▶ 버그 둥지 탐험                  │
│     목표: 버그 둥지 도달 [진행 중]  │
│     보상: 골드 500, 경험치 1000     │
│                                     │
│ ☆ 서브 퀘스트                       │
│   ○ 백전용사 [45/100]              │
│   ○ 수집가 [3/10]                  │
│                                     │
│ 📅 일일 퀘스트 (남은 시간: 4시간)   │
│   ☑ 몬스터 30마리 처치 [완료]      │
│   ☐ 크리티컬 10회 [7/10]           │
│   ☐ 레벨업 1회 [0/1]               │
│                                     │
└─────────────────────────────────────┘
```

---

## 3. 버프/디버프 시스템

### 3.1 버프/디버프 구조

```dart
class StatusEffect {
  final String id;
  final String name;
  final EffectType type;          // buff, debuff
  final EffectTarget target;      // self, enemy
  final Duration duration;        // 지속 시간
  final int stacks;               // 중첩 횟수
  final int maxStacks;            // 최대 중첩
  final Map<StatType, double> modifiers;
}
```

### 3.2 버프 목록

| 버프명 | 효과 | 지속 시간 | 획득 방법 |
|--------|------|----------|----------|
| **공격력 증가** | ATK +20% | 30초 | 스킬, 물약 |
| **방어력 증가** | DEF +20% | 30초 | 스킬, 물약 |
| **크리티컬 증가** | CRI +10% | 30초 | 스킬, 물약 |
| **회피 증가** | EVA +10% | 30초 | 스킬 |
| **재생** | 초당 HP 1% 회복 | 10초 | 스킬 |
| **경험치 부스트** | EXP +50% | 5분 | 물약, 이벤트 |
| **골드 부스트** | GOLD +50% | 5분 | 물약, 이벤트 |
| **무적** | 피해 면역 | 3초 | 스킬 |
| **분노** | ATK +50%, DEF -20% | 10초 | 스킬, 종족 특성 |

### 3.3 디버프 목록

| 디버프명 | 효과 | 지속 시간 | 발생 원인 |
|----------|------|----------|----------|
| **독** | 초당 HP 2% 손실 | 5초 | 몬스터 공격 |
| **출혈** | 초당 HP 1% 손실 | 10초 | 크리티컬 피격 |
| **화상** | 초당 HP 3% 손실 | 3초 | 화염 공격 |
| **둔화** | 공격 속도 -30% | 5초 | 몬스터 스킬 |
| **약화** | ATK -20% | 10초 | 보스 스킬 |
| **취약** | DEF -30% | 10초 | 보스 스킬 |
| **스턴** | 행동 불가 | 2초 | 보스 스킬 |
| **침묵** | 스킬 사용 불가 | 5초 | 보스 스킬 |
| **저주** | 회복량 -50% | 15초 | 언데드 공격 |

### 3.4 버프/디버프 UI

```
┌─ 상태 효과 ─────────────────────────┐
│                                     │
│ 버프:                               │
│ [⚔️+20%] [🛡️+15%] [💨재생]          │
│  25초     18초      5초             │
│                                     │
│ 디버프:                             │
│ [🩸출혈] [⚡스턴]                    │
│  3초      1초                       │
│                                     │
└─────────────────────────────────────┘
```

---
