game/prompt/39_luck_system.md

40 lines
1.8 KiB
Markdown

# 행운(Luck) 시스템 구현 (Luck System)
## 목표
아이템 옵션을 통해 플레이어의 행동(공격/방어) 성공 확률을 높여주는 '행운(Luck)' 스탯을 구현합니다.
## 구현 계획
### 1. 데이터 모델 변경
- **`lib/game/model/item.dart`**: `Item` 클래스에 `final int luck` 필드 추가 (기본값 0).
- **`lib/game/data/item_table.dart`**: `ItemTemplate` 클래스에 `luck` 필드 추가 및 JSON 파싱 로직 업데이트.
- **`assets/data/items.json`**: 아이템 데이터에 `"luck"` 필드 지원 (기존 아이템은 0 또는 생략 가능).
### 2. 캐릭터 모델 변경 (`lib/game/model/entity.dart`)
- `Character` 클래스에 `int get totalLuck` getter 추가.
- 장착된 모든 아이템의 `luck` 합계를 반환.
### 3. 전투 로직 변경 (`lib/providers/battle_provider.dart`)
- `playerAction` 메서드에서 성공 여부 계산 시 `totalLuck` 반영.
- 기본 성공률 + (totalLuck / 100.0).
- 예: Luck 5 = +5% 성공률.
### 4. UI 구현 (UI Implementation)
- **인벤토리 화면 (`lib/screens/inventory_screen.dart`):**
- 플레이어 스탯 정보 상단에 `Luck` 수치 표시 (초록색).
- 아이템 정보에 `luck` 보너스가 있는 경우 `+N Luck` 표시.
- **전투 화면 (`lib/screens/battle_screen.dart`):**
- 행동 선택(Risk Selection) 다이얼로그에서 표시되는 성공 확률에 행운 수치 반영.
- **확률 제한 (Cap):** 표시되는 확률과 실제 적용되는 확률 모두 **100% (1.0)를 초과하지 않도록 제한**.
## 기대 효과
- 플레이어가 "행운의 부적" 같은 아이템을 장착하여 Risky 행동의 성공률을 높일 수 있습니다.
- 전략적 선택지(깡스탯 vs 확률 보정)가 늘어납니다.
- UI를 통해 자신의 행운 수치와 실제 적용되는 확률을 직관적으로 확인할 수 있습니다.