game/prompt/51_refactor_prefix_table.md

1.3 KiB

54. 접두사 테이블 리팩토링 (Prefix Table Refactoring)

1. 목표 (Goal)

  • ItemTable에 하드코딩되어 있던 Normal 등급 접두사 로직(이름, 배율, 확률)을 ItemPrefixTable로 이동하여 데이터 기반으로 관리합니다.
  • ItemModifier 클래스를 확장하여 스탯 배율(multiplier)과 가중치(weight)를 지원하도록 개선합니다.

2. 구현 상세 (Implementation Details)

ItemPrefixTable 개선

  • ItemModifier 구조 변경:
    • multiplier: 퍼센트 기반 스탯 변경을 위한 필드 추가 (기본값 1.0).
    • weight: 랜덤 선택 가중치를 위한 필드 추가 (기본값 1).
  • normalPrefixes 데이터 추가:
    • Crude (0.9, weight 25)
    • Old (0.95, weight 25)
    • Standard (1.0, weight 25, empty prefix)
    • High-quality (1.1, weight 25)

ItemTable 로직 수정

  • createItem 메서드:
    • 하드코딩된 if-else 확률 로직을 제거.
    • ItemPrefixTable.normalPrefixes를 사용하여 가중치 기반 랜덤 선택(Weighted Random Selection) 알고리즘 구현.
    • 선택된 Modifier의 multiplier를 적용하여 스탯 계산.

3. 결과 (Result)

  • 접두사 데이터 추가 및 밸런스 조정이 ItemPrefixTable 수정만으로 가능해졌습니다.
  • 코드 중복이 줄어들고 확장성이 향상되었습니다.