# 58. Refactor Item Creation Logic ## 1. 목표 (Goal) - `ItemTemplate` 클래스 내부에 강하게 결합된 아이템 생성 및 접두사(Prefix) 적용 로직을 분리합니다. - `LootGenerator` 클래스를 생성하여 전리품 생성 및 옵션 부여 로직을 중앙화합니다. ## 2. 구현 계획 (Implementation Plan) 1. **`LootGenerator` 생성 (`lib/game/logic/loot_generator.dart`):** - `ItemTemplate`을 입력받아 실제 `Item` 객체를 생성하는 static 메서드 `generate`를 구현합니다. - 기존 `createItem`에 있던 Rarity별 접두사 처리, 스탯 보정, 이름 변경 로직을 이곳으로 이동합니다. 2. **`ItemTemplate` 수정 (`lib/game/data/item_table.dart`):** - `createItem` 메서드가 `LootGenerator`를 호출하도록 변경하거나, 해당 메서드를 제거하고 호출부(`BattleProvider`, `EnemyTemplate`)에서 `LootGenerator`를 직접 사용하도록 수정합니다. - (호환성을 위해 `createItem`은 `LootGenerator`를 호출하는 래퍼로 남겨두는 것을 권장) ## 3. 기대 효과 (Expected Outcome) - `ItemTemplate`은 순수한 데이터 정의(DTO) 역할에 집중. - 아이템 생성 알고리즘(접두사, 랜덤 스탯 등)이 변경되더라도 데이터 클래스에는 영향 없음. - 추후 '제작(Crafting)' 시스템이나 '상점 전용 생성' 등 다양한 생성 규칙 추가 시 `LootGenerator` 확장 용이.