game/prompt/39_luck_system.md

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 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를 통해 자신의 행운 수치와 실제 적용되는 확률을 직관적으로 확인할 수 있습니다.