# 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 요소 간의 색상 및 동작 통일성을 보장합니다. - **확장성**: 추후 '다크 모드'나 '테마 변경', '게임 속도 조절' 등의 기능을 구현하기 위한 기반이 마련되었습니다.