1.8 KiB
1.8 KiB
17. 인벤토리 아이템 버리기 기능 (상점 기능 확장 대비)
목표
인벤토리(Bag)에 있는 아이템을 선택하여 삭제(버리기)할 수 있는 기능을 추가한다. 이 과정에서 실수로 버리는 것을 방지하기 위한 확인 다이얼로그를 구현하며, 향후 상점(판매) 기능 추가 시 UI 및 로직을 재활용할 수 있는 구조를 고려한다.
구현 내용
-
BattleProvider 수정 (lib/providers/battle_provider.dart)
discardItem(Item item)메서드 추가: 인벤토리 리스트에서 해당 아이템을 제거하고 로그를 남긴다.- 이 메서드는 추후
sellItem등과 유사한 구조를 가지게 된다.
-
InventoryScreen 수정 (lib/screens/inventory_screen.dart)
- 인터랙션 변경: 가방(Bag)의 아이템 클릭 시, 기존에는 바로 '장착 확인창'이 떴으나, 이제는 **'아이템 옵션 메뉴(SimpleDialog)'**가 먼저 뜨도록 변경한다.
- 아이템 옵션 메뉴:
- 옵션 1: Equip (기존 장착 로직 연결)
- 옵션 2: Discard (버리기 확인창 연결)
- (추후 Sell 옵션이 이곳에 추가될 수 있음)
- 버리기 확인 다이얼로그 (
_showDiscardConfirmationDialog):- "정말 버리시겠습니까?" 메시지와 아이템 정보를 보여준다.
- 확인 시
provider.discardItem(item)을 호출한다. - 이 다이얼로그 구조는 제목과 콜백 함수만 바꾸면 '판매 확인창'으로도 쉽게 재활용 가능하다.
예상 결과
- 인벤토리 아이템 클릭 -> [Equip, Discard] 메뉴 팝업.
- Discard 선택 -> "Discard [Item Name]?" 확인 팝업.
- Confirm -> 아이템 삭제 및 로그 출력.