Files
asciinevrdie/doc/task-phase-03-skills.md
JiWoong Sul b110b2dc53 docs: 게임 시스템 개편 계획 문서 분리
- 121KB 단일 문서를 22개 태스크 문서로 분리
- 메인 인덱스 문서 (game-system-overhaul-index.md) 생성
- Phase 1-10 태스크 문서 10개 분리
- 추가 시스템 태스크 문서 10개 분리
- 재미 요소 설계 문서 1개 분리
- 기존 문서는 archive/ 폴더로 이동
2025-12-16 19:33:57 +09:00

91 lines
2.4 KiB
Markdown

# 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
---