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