# Phase 3: 스킬 시스템 > 메인 문서: [game-system-overhaul-index.md](game-system-overhaul-index.md) --- ## 목표 MP를 소모하여 스킬을 사용하고, 쿨타임을 관리한다. ## 스킬 구조 ```dart class Skill { final String id; final String name; final SkillType type; // attack, heal, buff, debuff final int mpCost; final int cooldownMs; // 쿨타임 (밀리초) final int power; // 스킬 위력 // 효과 final double damageMultiplier; // 공격 스킬: 데미지 배율 final int healAmount; // 회복 스킬: 회복량 final BuffEffect? buff; // 버프 효과 } class SkillState { final String skillId; final int lastUsedMs; // 마지막 사용 시간 final int rank; // 스킬 레벨 bool isReady(int currentMs) => currentMs - lastUsedMs >= skill.cooldownMs; } ``` ## MP 시스템 ``` MP 회복: - 비전투 시: 50ms당 1 회복 - 전투 중: 회복 없음 (또는 WIS에 비례하여 느리게 회복) - 전투 종료: 즉시 전체 회복 MP 소모: - 스킬 사용 시 즉시 차감 - MP 부족 시 스킬 사용 불가 (일반 공격으로 대체) ``` ## 스킬 사용 로직 ``` 자동 스킬 사용 우선순위: 1. HP < 30% → 회복 스킬 (있으면) 2. 보스전 → 가장 강력한 공격 스킬 3. 일반 전투 → MP 효율이 좋은 스킬 4. MP < 20% → 일반 공격만 수동 개입: - 현재 버전에서는 자동만 지원 - 향후 수동 스킬 사용 UI 추가 가능 ``` ## 스킬 목록 예시 | 스킬명 | 타입 | MP | 쿨타임 | 효과 | |--------|------|-----|--------|------| | Debug Strike | attack | 10 | 3s | 데미지 150% | | Memory Leak | attack | 25 | 8s | 데미지 250%, 적 방어력 -20% | | Hot Reload | heal | 20 | 10s | HP 30% 회복 | | Safe Mode | buff | 30 | 30s | 방어력 +50%, 10초 지속 | | Core Dump | attack | 50 | 20s | 데미지 400% | | Kernel Panic | attack | 100 | 60s | 데미지 800%, 자신 HP -10% | ## 수정 대상 파일 | 파일 | 변경 내용 | |------|----------| | `core/model/game_state.dart` | SkillState 추가 | | `core/model/skill.dart` | **신규** - 스킬 정의 | | `core/engine/skill_service.dart` | **신규** - 스킬 사용 로직 | | `core/engine/progress_service.dart` | MP 회복 로직, 스킬 자동 사용 | | `data/skill_data.dart` | **신규** - 스킬 데이터 | ## 예상 작업량 - 예상 파일 수: 5-6개 - 신규 코드: ~600 LOC - 수정 코드: ~200 LOC ---