game/prompt/58_refactor_item_creation.md

1.4 KiB

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를 직접 사용하도록 수정합니다.
    • (호환성을 위해 createItemLootGenerator를 호출하는 래퍼로 남겨두는 것을 권장)

3. 기대 효과 (Expected Outcome)

  • ItemTemplate은 순수한 데이터 정의(DTO) 역할에 집중.
  • 아이템 생성 알고리즘(접두사, 랜덤 스탯 등)이 변경되더라도 데이터 클래스에는 영향 없음.
  • 추후 '제작(Crafting)' 시스템이나 '상점 전용 생성' 등 다양한 생성 규칙 추가 시 LootGenerator 확장 용이.