## 19. 상점 판매 기능 및 골드 시스템 구현 ### 목표 캐릭터에게 화폐(Gold) 개념을 도입하고, 상점 스테이지(`StageType.shop`)에 진입했을 때 인벤토리에서 아이템을 판매하여 골드를 획득하는 기능을 구현한다. ### 구현 내용 1. **Character 모델 수정 (lib/game/model/entity.dart)** * `int gold` 필드를 추가한다 (기본값: 0 또는 초기 자금). 2. **Item 모델 및 가격 책정 로직 (lib/game/model/item.dart, lib/game/data/item_table.dart)** * `Item` 클래스에 `int price` 필드를 추가한다. * 모든 아이템 데이터(`ItemTable`)에 일일이 가격을 적는 대신, `ItemTemplate.createItem()` 메서드 내부에서 스탯(ATK, HP, DEF)을 기반으로 가격을 자동 산출하는 공식을 적용하여 효율성을 높인다. * 공식 예시: `(atk * 10) + (hp * 2) + (armor * 5) + (effects.length * 20)`. 3. **BattleProvider 수정 (lib/providers/battle_provider.dart)** * `sellItem(Item item)` 메서드 구현: * 인벤토리에서 아이템 제거. * 아이템 가격만큼 플레이어 `gold` 증가. * 로그 기록 ("Sold [Item] for [Price] G"). 4. **InventoryScreen 수정 (lib/screens/inventory_screen.dart)** * 화면 상단(스탯 영역)에 현재 보유 `Gold` 표시. * 아이템 클릭 시 뜨는 `_showItemActionDialog` 수정: * 현재 스테이지가 `StageType.shop`일 경우에만 **[Sell]** 버튼을 활성화(또는 표시). * **판매 확인 다이얼로그:** "Sell [Item] for [Price] G?" 확인 창 구현. ### 예상 결과 * 상점 스테이지에서 인벤토리를 열면 아이템을 팔아 골드를 모을 수 있다. * 모은 골드는 추후 아이템 구매 기능에 사용된다.