Files
asciinevrdie/doc/task-phase-04-death.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

3.6 KiB

Phase 4: 사망/부활 시스템

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


목표

사망 개념을 도입하고, 페널티 및 부활 메커니즘을 구현한다.

사망 조건

사망 = HP <= 0

사망 시 처리:
1. 게임 루프 일시 정지
2. 장착 중인 모든 장비 제거 (인벤토리로 이동하지 않음 - 상실)
3. 인벤토리 아이템 유지
4. 골드 유지
5. 경험치 유지 (레벨 다운 없음)
6. 사망 UI 표시 (부활 버튼)

부활 프로세스

부활 버튼 클릭 시:
1. HP/MP 전체 회복
2. 부활 위치로 이동 (안전 지역: 마을)
3. 자동으로 샵 이동
4. 골드로 구매 가능한 최고 장비 자동 구매
5. 각 슬롯에 장비 자동 장착
6. 게임 루프 재개 (퀘스트 진행도 유지)

부활 위치

상황 부활 위치 설명
일반 사망 마을 (시작 지점) 안전 지역, 샵 접근 가능
보스전 사망 보스 던전 입구 보스방 직전
퀘스트 중 사망 퀘스트 시작 지점 퀘스트 진행도 유지

부활 페널티 완화 (선택적)

아이템/스킬 효과
부활의 부적 (소모품) 사망 시 장비 1개 보존
영혼 보호 (패시브) 사망 시 50% 확률로 장비 1개 보존
불사 버프 사망 시 HP 1로 생존 (1회)

샵 시스템

class Shop {
  /// 현재 레벨에서 구매 가능한 장비 목록
  List<Equipment> getAvailableItems(int playerLevel, int gold);

  /// 최적의 장비 세트 자동 구매
  PurchaseResult autoBuy(int playerLevel, int gold, List<EquipmentSlot> emptySlots);
}

class PurchaseResult {
  final List<Equipment> purchased;
  final int totalCost;
  final int remainingGold;
}

장비 가격 공식

기본 가격 = 아이템 레벨 * 50 * 희귀도 배율

희귀도 배율:
- Common: 1.0
- Uncommon: 2.0
- Rare: 5.0
- Epic: 15.0
- Legendary: 50.0

판매 가격 = 구매 가격 * 0.3

사망 UI

┌─────────────────────────────────────┐
│                                     │
│           YOU DIED                  │
│                                     │
│   Level 45 버그 헌터                │
│                                     │
│   사망 원인: 커널 패닉              │
│                                     │
│   ─────────────────────────         │
│   장비 상실: 7개                    │
│   보유 골드: 15,420                 │
│   ─────────────────────────         │
│                                     │
│        [ 부활하기 ]                 │
│                                     │
└─────────────────────────────────────┘

수정 대상 파일

파일 변경 내용
core/model/game_state.dart isDead 플래그, deathInfo 추가
core/engine/progress_service.dart 사망 판정 로직
core/engine/resurrection_service.dart 신규 - 부활 처리
core/engine/shop_service.dart 신규 - 샵 로직
features/game/widgets/death_overlay.dart 신규 - 사망 UI
features/game/game_session_controller.dart 사망/부활 상태 관리

예상 작업량

  • 예상 파일 수: 6-7개
  • 신규 코드: ~500 LOC
  • 수정 코드: ~200 LOC