game/prompt/57_refactor_battle_provider.md

21 lines
1.2 KiB
Markdown

# 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`만 수정하면 됨.