# 33. 아이템 타입별 아이콘 및 색상 적용 (Item Type Icons & Colors)

## 1. 배경 (Background)

사용자는 아이템의 종류(무기, 방패, 갑옷, 장신구)를 직관적으로 구별할 수 있도록, 인벤토리와 아이템 획득 화면에서 특정 아이콘과 색상을 적용하기를 원합니다.

## 2. 목표 (Objective)

- **아이콘 및 색상 규칙 적용:**
  - **무기 (Weapon):** 빨간색 삼각형 (`Icons.change_history`, `Colors.red`)
  - **방패 (Shield):** 파란색 방패 (`Icons.shield`, `Colors.blue`)
  - **갑옷 (Armor):** 파란색 옷 (`Icons.checkroom`, `Colors.blue`)
  - **장신구 (Accessory):** 보라색 다이아몬드 (`Icons.diamond`, `Colors.purple`)
- **적용 범위:**
  - **InventoryScreen:** 장착 슬롯 및 가방(Bag) 아이템.
  - **BattleScreen:** 승리 후 보상 선택 팝업.

## 3. 작업 상세 (Implementation Details)

### A. `lib/utils/item_utils.dart` 생성 (또는 기존 유틸 활용)

- 아이템 아이콘과 색상을 반환하는 헬퍼 함수 작성.

```dart
import 'package:flutter/material.dart';
import '../game/enums.dart';
import '../game/model/item.dart';

class ItemUtils {
  static IconData getIcon(EquipmentSlot slot) {
    switch (slot) {
      case EquipmentSlot.weapon:
        return Icons.change_history; // Triangle
      case EquipmentSlot.shield:
        return Icons.shield;
      case EquipmentSlot.armor:
        return Icons.checkroom;
      case EquipmentSlot.accessory:
        return Icons.diamond;
    }
  }

  static Color getColor(EquipmentSlot slot) {
    switch (slot) {
      case EquipmentSlot.weapon:
        return Colors.red;
      case EquipmentSlot.shield:
      case EquipmentSlot.armor:
        return Colors.blue;
      case EquipmentSlot.accessory:
        return Colors.purple;
    }
  }
}
```

### B. `lib/screens/inventory_screen.dart` 수정

- `_getIconForSlot` 메서드 제거 또는 `ItemUtils` 사용으로 대체.
- 장착 슬롯(`Equipped Items`)의 아이콘/색상 변경.
- 가방(`Bag`) 그리드 아이템의 아이콘을 `Icons.backpack`에서 해당 아이템의 타입 아이콘으로 변경.

### C. `lib/screens/battle_screen.dart` 수정

- 보상 팝업(`SimpleDialogOption`)에 아이템 아이콘 추가 (텍스트 옆 또는 위).

## 4. 검증 (Verification)

- **Inventory Test:**
  - 인벤토리 진입 시 장착된 아이템과 가방의 아이템이 지정된 아이콘/색상으로 표시되는지 확인.
- **Battle Reward Test:**
  - 전투 승리 후 보상 목록에 아이템 아이콘이 올바르게 표시되는지 확인.
