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

2.4 KiB

Phase 3: 스킬 시스템

메인 문서: game-system-overhaul-index.md


목표

MP를 소모하여 스킬을 사용하고, 쿨타임을 관리한다.

스킬 구조

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