docs: 게임 시스템 개편 계획 문서 분리
- 121KB 단일 문서를 22개 태스크 문서로 분리 - 메인 인덱스 문서 (game-system-overhaul-index.md) 생성 - Phase 1-10 태스크 문서 10개 분리 - 추가 시스템 태스크 문서 10개 분리 - 재미 요소 설계 문서 1개 분리 - 기존 문서는 archive/ 폴더로 이동
This commit is contained in:
122
doc/task-phase-04-death.md
Normal file
122
doc/task-phase-04-death.md
Normal file
@@ -0,0 +1,122 @@
|
||||
# Phase 4: 사망/부활 시스템
|
||||
|
||||
> 메인 문서: [game-system-overhaul-index.md](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회) |
|
||||
|
||||
## 샵 시스템
|
||||
|
||||
```dart
|
||||
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
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user