# 00. 프로젝트 컨텍스트 및 복구 (Project Context & Restore Point) 이 파일은 다른 개발 환경이나 새로운 AI 세션에서 프로젝트의 현재 상태를 빠르게 파악하고 작업을 이어가기 위해 작성되었습니다. ## 1. 프로젝트 개요 - **프로젝트명:** Colosseum's Choice - **플랫폼:** Flutter (Android/iOS/Web/Desktop) - **장르:** 텍스트 기반의 턴제 RPG + GUI (로그라이크 요소 포함) - **상태:** 프로토타입 단계 (핵심 전투, 아이템, 적 시스템 데이터화 완료) ## 2. 현재 구현된 핵심 기능 (Feature Status) ### A. 게임 흐름 (Game Flow) 1. **메인 메뉴 (`MainMenuScreen`):** 게임 시작 버튼. 2. **캐릭터 선택 (`CharacterSelectionScreen`):** 현재 'Warrior' 직업만 구현됨. 선택 시 게임 초기화. 3. **메인 게임 (`MainWrapper`):** 하단 탭 네비게이션 (Battle / Inventory). ### B. 전투 시스템 (`BattleProvider`) - **턴제 전투:** 플레이어 턴 -> 적 턴. - **행동 선택:** 공격(Attack) / 방어(Defend). - **리스크 시스템 (Risk System):** - 플레이어와 적 모두 **Safe / Normal / Risky** 중 하나를 선택하여 행동. - Safe: 100% 성공, 50% 효율. - Normal: 80% 성공, 100% 효율. - Risky: 40% 성공, 200% 효율. - **적 인공지능 (Enemy AI & Intent):** - 적은 턴 시작 시 행동(공격/방어)과 리스크 레벨을 무작위로 결정. - **Intent UI:** 플레이어는 적의 다음 행동(아이콘, 설명)을 미리 볼 수 있음. - _규칙:_ 적의 `baseDefense`가 0이면 방어 행동을 하지 않음. - **상태이상 (Status Effects):** - `Stun`, `Bleed`, `Vulnerable`, `DefenseForbidden` 구현됨. ### C. 데이터 주도 설계 (Data-Driven Design) - **JSON 데이터 관리:** `assets/data/` 폴더 내 JSON 파일로 게임 데이터 관리. - `items.json`: 아이템 정의 (이름, 스탯, 효과, **가격**, **이미지 경로**). - `enemies.json`: 적 정의 (Normal/Elite, 스탯, **이미지 경로**). - **데이터 로더:** - `ItemTable`: `items.json` 로드 및 `ItemTemplate` 관리. - `EnemyTable`: `enemies.json` 로드 및 `EnemyTemplate` 관리. ### D. 아이템 및 경제 (`Item`, `Inventory`) - **장비:** 무기, 방어구, 방패, 장신구 슬롯. - **가격 정책:** - `items.json`에 정의된 고정 `price` 사용. - **판매(Sell):** 상점 등에서 판매 시 원가의 **60%** (소수점 버림, `GameMath.floor`) 획득. - **이미지 필드:** 향후 UI 사용을 위해 `Item` 및 `Enemy` 모델에 `image` 필드 추가됨. ### E. 스테이지 시스템 (`StageModel`, `StageType`) - **진행:** `currentStage` 객체로 관리. - **타입:** Battle, Shop (5단위), Rest (8단위), Elite (10단위). - **적 생성:** `EnemyTable`에서 현재 스테이지 타입(Normal/Elite)에 맞는 적을 무작위로 스폰하며, 스테이지에 따라 스탯 스케일링 적용. ## 3. 핵심 파일 및 아키텍처 - **`lib/providers/battle_provider.dart`:** 게임의 **Core Logic**. 상태 관리, 전투 루프, 적 AI(Intent) 생성, 스테이지 전환 담당. - **`lib/game/data/`:** - `item_table.dart`: 아이템 JSON 로더. - `enemy_table.dart`: 적 JSON 로더. - **`lib/game/model/`:** - `entity.dart`: `Character` 클래스 (Player/Enemy 공용). `image` 필드 포함. - `item.dart`: `Item` 클래스. `price`, `image` 필드 포함. - **`assets/data/`:** `items.json`, `enemies.json`. ## 4. 작업 컨벤션 (Working Conventions) - **Prompt Driven Development:** `prompt/XX_description.md` 형식을 유지하며 작업. - **State Management:** `Provider` 사용. - **Data:** JSON 파일 기반의 데이터 관리. ## 5. 다음 단계 작업 (Next Steps) 1. **상점 구매 기능:** `Shop` 스테이지에서 아이템 목록을 보여주고 구매하는 UI 구현. 2. **이미지 리소스 적용:** JSON에 정의된 경로에 실제 이미지 파일(`assets/images/...`)을 추가하고 UI(`BattleScreen`, `InventoryScreen`)에 표시. 3. **UI 개선:** 텍스트 로그 외에 시각적 피드백(데미지 플로팅, 효과 이펙트) 추가. 4. **밸런싱 및 콘텐츠 확장:** 더 많은 아이템과 적 데이터 추가. --- **이 프롬프트를 읽은 AI 에이전트는 위 내용을 바탕으로 즉시 개발을 이어가십시오.**