## 20. 메인 메뉴 및 캐릭터 선택 화면 구현 ### 목표 게임 실행 시 바로 전투 화면으로 진입하지 않고, 메인 타이틀 화면과 캐릭터 선택 과정을 거쳐 게임에 진입하도록 흐름을 변경한다. ### 구현 내용 1. **Main Menu Screen (lib/screens/main_menu_screen.dart)** * 게임 타이틀 ("Colosseum's Choice") 표시. * [START] 버튼: 누르면 캐릭터 선택 화면으로 이동. 2. **Character Selection Screen (lib/screens/character_selection_screen.dart)** * 플레이어블 캐릭터(직업) 목록을 보여준다. * 현재는 기본 "Warrior" (기존 initBattle 스탯) 하나만 제공한다. * 캐릭터 카드/버튼 클릭 시: * `BattleProvider.initializeBattle()`을 호출하여 게임 데이터를 초기화한다. * `MainWrapper`(게임 메인 화면)로 이동한다 (`Navigator.pushReplacement`). 3. **Main Entry Point 수정 (lib/main.dart)** * 앱의 `home`을 `MainWrapper`에서 `MainMenuScreen`으로 변경한다. 4. **BattleProvider 수정 (lib/providers/battle_provider.dart)** * 생성자에서 `initializeBattle()`을 호출하지 않도록 변경한다 (게임 시작 시 명시적으로 호출하기 위함). * `initializeBattle` 메서드가 호출될 때 기존 데이터가 확실히 초기화되도록 보장한다. ### 예상 결과 * 앱 실행 -> 메인 메뉴 -> Start -> 캐릭터 선택(Warrior) -> 게임 시작(1스테이지)