game/prompt/47_inventory_full_handling.md

1.2 KiB

47. 인벤토리 가득 참 처리 (Inventory Full Handling)

1. 목표 (Goal)

  • 인벤토리가 가득 찬 상태(maxInventorySize)에서 보상 아이템 획득을 시도할 경우, 게임이 진행되지 않고 에러 메시지를 표시합니다.
  • 보상 팝업이 닫히지 않도록 하여 사용자가 다른 행동(스킵 또는 인벤토리 관리)을 할 수 있게 합니다.

2. 구현 상세 (Implementation Details)

BattleProvider 수정

  • selectReward 메서드 반환값 변경: void -> bool.
    • 성공 (아이템 획득 또는 스킵): true 반환. 스테이지 클리어 로직 진행.
    • 실패 (인벤토리 가득 참): false 반환. 스테이지 클리어 로직 중단. 로그만 남김.

BattleScreen 수정

  • 보상 선택 로직:
    • battleProvider.selectReward(item)의 반환값을 확인.
    • false일 경우 ScaffoldMessenger를 사용하여 "Inventory is full! Cannot take item." 스낵바 출력.

3. 결과 (Result)

  • 인벤토리가 가득 찼을 때 실수로 아이템이 버려지거나 다음 스테이지로 강제 진행되는 문제를 방지했습니다.
  • 사용자에게 명확한 피드백(에러 메시지)을 제공합니다.