game/prompt/00_project_context_restore.md

4.3 KiB

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 사용을 위해 ItemEnemy 모델에 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 에이전트는 위 내용을 바탕으로 즉시 개발을 이어가십시오.