game/prompt/58_refactor_item_creation.md

19 lines
1.4 KiB
Markdown

# 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` 확장 용이.