# 45. Config & UI 전면 리팩토링 (Config & UI Refactoring) ## 1. 목표 (Goal) - 프로젝트 전반에 산재된 하드코딩된 값(정적 상수, 색상, 폰트)을 설정 파일(`GameConfig`, `ThemeConfig`)로 통합 관리합니다. - 모든 화면(`MainMenu`, `Battle`, `Inventory`, `Settings`, `CharacterSelection`)의 UI 스타일을 통일합니다. ## 2. 구현 상세 (Implementation Details) ### A. 게임 밸런스 설정 (`GameConfig`) - **파일:** `lib/game/config/game_config.dart` - **내용:** - **인벤토리/경제:** 최대 크기, 시작 골드, 상점 비용 및 리롤 등. - **스테이지:** 구간별 설정, 티어 분포. - **전투:** 회복율, 데미지 배율, 방어도 감소, 애니메이션 딜레이 등. - **시스템:** 저장 키 (`saveKey`). - **적용:** `BattleProvider`, `Entity`, `SaveManager`의 매직 넘버 제거. ### B. 테마 및 스타일 설정 (`ThemeConfig`) - **파일:** `lib/game/config/theme_config.dart` - **색상 (Colors):** - 메인 메뉴(배경, 버튼), 전투 화면(배경, UI, 리스크), 상점/휴식 화면, 아이템 등급 등 모든 색상 정의. - **폰트 (Fonts):** - **Size:** `Tiny`(8.0) ~ `Huge`(48.0) 등 10단계 정의. - **Weight:** `Normal`, `Bold` 정의. ### C. 화면별 리팩토링 (Screen Refactoring) - **`lib/screens/` 및 `lib/widgets/` 전체:** - **`BattleScreen` & Widgets:** 로그, 리스크 다이얼로그, 캐릭터 카드, 게임 오버, 보상 팝업 등. - **`MainMenuScreen`:** 타이틀, 버튼, 배경. - **`InventoryScreen`:** 슬롯, 스탯 텍스트, 팝업. - **`CharacterSelectionScreen`:** 카드, 텍스트 스타일. - **`SettingsScreen`:** 텍스트, 버튼. - **`MainWrapper`:** 공통 배경색 적용. ## 3. 결과 (Result) - **중앙 관리:** 게임의 수치 밸런스와 디자인 테마를 각각 `GameConfig`와 `ThemeConfig`에서 손쉽게 수정 가능해졌습니다. - **일관성:** 모든 화면에서 통일된 색상 팔레트와 폰트 스케일을 사용하여 UI 완성도가 향상되었습니다. - **유지보수:** 하드코딩된 값들이 제거되어 코드 가독성 및 유지보수성이 대폭 개선되었습니다.