game/prompt/41_refactoring_presets.md

41 lines
2.3 KiB
Markdown

# 41. Refactoring: Presets & Configs (리팩토링: 설정 중앙화)
## 개요 (Overview)
프로젝트 전반에 산재되어 있던 하드코딩된 값들(색상, 아이콘, 애니메이션 시간 등)을 중앙 집중식 설정 파일(`Config`)로 분리하여 유지보수성과 일관성을 향상시켰습니다.
## 변경 사항 (Changes)
### 1. 설정 파일 생성 (New Config Files)
`lib/game/config/` 디렉토리에 다음 파일들을 생성했습니다.
- **`battle_config.dart`**: 전투 관련 아이콘, 색상, 크기 정의 (공격/방어, 리스크 레벨별).
- **`theme_config.dart`**: UI 전반의 색상 테마 정의.
- **Stat Colors**: HP(Player/Enemy), ATK, DEF, LUCK, Gold 등.
- **UI Colors**: 카드 배경, 텍스트(White/Grey), 등급별 색상 등.
- **Feedback Colors**: 데미지, 회복, 미스 텍스트 색상 및 그림자.
- **Effect Colors**: 상태이상 배지 배경 및 텍스트.
- **`animation_config.dart`**: 애니메이션 관련 상수 정의.
- **Durations**: Floating Text(1000ms), Fade(200ms), Attack(Risk Level별 상이).
- **Curves**: `easeOut`, `elasticOut`, `elasticIn` 등 애니메이션 커브.
### 2. 코드 리팩토링 (Refactoring)
기존 하드코딩된 값을 `Config` 클래스의 상수로 대체했습니다.
- **`lib/screens/battle_screen.dart`**:
- `BattleConfig`를 사용하여 공격/방어 아이콘 및 이펙트 색상 결정.
- **`lib/widgets/battle/character_status_card.dart`**:
- `ThemeConfig`를 사용하여 HP/Armor/Stat 텍스트 및 게이지 색상 적용.
- `AnimationConfig`를 사용하여 스탯 숨김/표시 Fade 애니메이션 시간 적용.
- **`lib/widgets/battle/floating_battle_texts.dart`**:
- `ThemeConfig`를 사용하여 데미지 텍스트 그림자 색상 적용.
- `AnimationConfig`를 사용하여 텍스트 부양 및 아이콘 스케일 애니메이션의 시간과 커브 적용.
## 기대 효과 (Benefits)
- **유지보수 용이성**: 색상이나 애니메이션 속도를 변경할 때 단일 파일만 수정하면 프로젝트 전체에 일괄 적용됩니다.
- **일관성 유지**: UI 요소 간의 색상 및 동작 통일성을 보장합니다.
- **확장성**: 추후 '다크 모드'나 '테마 변경', '게임 속도 조절' 등의 기능을 구현하기 위한 기반이 마련되었습니다.