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