1.8 KiB
1.8 KiB
행운(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 totalLuckgetter 추가.- 장착된 모든 아이템의
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를 통해 자신의 행운 수치와 실제 적용되는 확률을 직관적으로 확인할 수 있습니다.