77 lines
3.6 KiB
Markdown
77 lines
3.6 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(100%/50%), Normal(80%/100%), Risky(40%/200%) 선택.
|
|
- **적 인공지능 (Enemy AI & Intent):**
|
|
- **Intent UI:** 적의 다음 행동(공격/방어, 리스크)을 미리 표시.
|
|
- **선제 방어 (Pre-emptive Defense):** 적이 방어를 선택하면 턴 시작 전에 즉시 방어도가 적용됨.
|
|
- **시각 효과 (Visual Effects):**
|
|
- **Floating Text:** 데미지 발생 시 캐릭터 위에 데미지 수치가 떠오름 (일반: 빨강, 출혈: 보라, 취약: 주황).
|
|
- **Effect Icons:** 공격/방어 및 리스크 레벨에 따른 아이콘 애니메이션 출력.
|
|
- **상태이상:** `Stun`, `Bleed`, `Vulnerable`, `DefenseForbidden`.
|
|
|
|
### C. 데이터 주도 설계 (Data-Driven Design)
|
|
|
|
- **JSON 데이터:** `assets/data/items.json`, `assets/data/enemies.json`.
|
|
- **데이터 로더:** `ItemTable`, `EnemyTable`.
|
|
|
|
### D. 아이템 및 경제 (`Item`, `Inventory`)
|
|
|
|
- **장비:** 무기, 방어구, 방패, 장신구.
|
|
- **가격:** JSON 고정 가격 사용. 판매 시 60% (`GameMath.floor`) 획득.
|
|
- **이미지:** `items.json`, `enemies.json`에 이미지 경로 필드 포함.
|
|
|
|
### E. 스테이지 시스템 (`StageModel`)
|
|
|
|
- **타입:** Battle, Shop, Rest, Elite.
|
|
- **적 생성:** 스테이지 레벨에 따른 스탯 스케일링 적용.
|
|
|
|
## 3. 핵심 파일 및 아키텍처
|
|
|
|
- **`lib/providers/battle_provider.dart`:**
|
|
- **Core Logic:** 상태 관리, 전투 루프.
|
|
- **Streams:** `damageStream`, `effectStream`을 통해 UI(`BattleScreen`)에 비동기 이벤트 전달.
|
|
- **`lib/game/enums.dart`:** 프로젝트 전반의 Enum 통합 관리 (`ActionType`, `RiskLevel`, `StageType` 등).
|
|
- **`lib/game/model/`:**
|
|
- `damage_event.dart`, `effect_event.dart`: 이벤트 모델.
|
|
- `entity.dart`: `Character` (Player/Enemy).
|
|
- `item.dart`: `Item`.
|
|
- **`lib/screens/battle_screen.dart`:**
|
|
- `StreamSubscription`을 통해 이펙트 이벤트 수신 및 `Overlay` 애니메이션 렌더링.
|
|
|
|
## 4. 작업 컨벤션 (Working Conventions)
|
|
|
|
- **Prompt Driven Development:** `prompt/XX_description.md` 유지.
|
|
- **State Management:** `Provider` + `Stream` (이벤트성 데이터).
|
|
- **Data:** JSON 기반.
|
|
|
|
## 5. 다음 단계 작업 (Next Steps)
|
|
|
|
1. **상점 구매 기능:** `Shop` 스테이지 구매 UI 구현.
|
|
2. **이미지 리소스 적용:** JSON 경로에 맞는 실제 이미지 파일 추가 및 UI 표시.
|
|
3. **밸런싱 및 콘텐츠 확장:** 아이템/적 데이터 추가 및 밸런스 조정.
|
|
|
|
---
|
|
|
|
**이 프롬프트를 읽은 AI 에이전트는 위 내용을 바탕으로 즉시 개발을 이어가십시오.**
|