game/prompt/47_inventory_full_handling.md

22 lines
1.2 KiB
Markdown

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