86 lines
4.3 KiB
Markdown
86 lines
4.3 KiB
Markdown
# 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 에이전트는 위 내용을 바탕으로 즉시 개발을 이어가십시오.**
|