29 lines
1.6 KiB
Markdown
29 lines
1.6 KiB
Markdown
# 배틀 화면 위젯 리팩토링
|
|
|
|
## 목표
|
|
|
|
UI 컴포넌트를 별도의 위젯으로 추출하여 `BattleScreen`의 코드 유지보수성, 가독성 및 구조를 개선합니다.
|
|
|
|
## 변경 사항
|
|
|
|
1. **디렉토리 구조:**
|
|
|
|
- `lib/widgets/battle/` 디렉토리를 생성했습니다.
|
|
|
|
2. **추출된 위젯:**
|
|
|
|
- `CharacterStatusCard` (`lib/widgets/battle/character_status_card.dart`): 캐릭터 스탯(HP, 방어도, 공격력, 방어력), 체력 바, 상태 효과 및 의도를 표시합니다.
|
|
- `BattleLogOverlay` (`lib/widgets/battle/battle_log_overlay.dart`): 스크롤 가능한 배틀 로그 목록을 표시합니다.
|
|
- `FloatingBattleTexts` (`lib/widgets/battle/floating_battle_texts.dart`): 애니메이션 시각 효과를 위한 `FloatingDamageText`, `FloatingEffect`, `FloatingFeedbackText`를 포함합니다.
|
|
- `StageUI` (`lib/widgets/battle/stage_ui.dart`): 비전투 스테이지를 위한 `ShopUI`와 `RestUI`를 포함합니다.
|
|
|
|
3. **BattleScreen 업데이트:**
|
|
- 추출된 위젯을 임포트하고 사용하도록 `lib/screens/battle_screen.dart`를 리팩토링했습니다.
|
|
- 인라인 위젯 빌드 메서드(`_buildCharacterStatus`, `_buildShopUI`, `_buildRestUI` 등)와 내부 클래스(`_FloatingDamageText` 등)를 제거했습니다.
|
|
|
|
## 이점
|
|
|
|
- **복잡도 감소:** `BattleScreen`은 이제 레이아웃과 상태 관리에 집중합니다.
|
|
- **재사용성:** 위젯은 필요에 따라 앱의 다른 부분에서 재사용할 수 있습니다.
|
|
- **유지보수성:** 특정 UI 요소를 찾고 수정하기가 더 쉬워졌습니다.
|