game/prompt/57_refactor_battle_provider.md

1.2 KiB

57. BattleProvider Refactoring

1. 목표 (Goal)

  • 비대해진 BattleProvider 클래스(약 900라인)를 역할별로 분리하여 유지보수성을 높이고 가독성을 개선합니다.
  • CombatCalculator(전투 계산)와 BattleLogManager(로그 관리) 클래스를 도입합니다.

2. 구현 계획 (Implementation Plan)

  1. 디렉토리 생성: lib/game/logic 폴더를 생성하여 로직 클래스들을 모아둡니다.
  2. BattleLogManager 분리:
    • 전투 로그 리스트(_battleLogs)와 로그 추가 메서드(logBattleInfo)를 전담하는 클래스를 생성합니다.
  3. CombatCalculator 분리:
    • 공격/방어 성공 확률, 데미지 산출 로직, 상태이상 적용 확률 등 순수 계산 로직을 분리합니다.
  4. BattleProvider 수정:
    • 위 클래스들을 인스턴스로 포함하고, 해당 로직을 위임(delegation) 처리합니다.
    • ChangeNotifier로서의 UI 상태 관리 책임은 유지합니다.

3. 기대 효과 (Expected Outcome)

  • BattleProvider의 코드 라인 수 감소.
  • 전투 공식 수정 시 CombatCalculator만 수정하면 되므로 안전성 확보.
  • 로그 포맷이나 저장 방식 변경 시 BattleLogManager만 수정하면 됨.