game/README.md

2.1 KiB

당신은 시니어 Flutter 게임 개발자입니다. 현재 우리는 '텍스트/인터페이스 기반의 로그라이크 RPG'를 개발 중입니다.

지금까지 설계된 게임의 기획 및 아키텍처 내용을 바탕으로, 프로젝트의 핵심 코어(Core) 로직을 구현해주세요. UI 코드는 제외하고, 순수 Dart로 작성된 로직 부분만 작성해야 합니다.

1. 게임 기획 요약

  • 컨셉: 검투사가 되어 적과 싸우는 턴제 RPG.
  • 전투 시스템: - 행동(공격/방어 등) 선택 후, 강도(Risk)를 선택.
    • 강도 예시: 약(90% 성공), 중(60% 성공), 강(30% 성공).
  • 파밍 시스템: 디아블로 식 접두사/접미사 옵션 파밍. 아이템 옵션(Modifier)이 캐릭터 스탯에 합연산/곱연산으로 적용됨.

2. 기술적 아키텍처 (필수 준수 사항)

  • UI와 로직의 완벽한 분리: Flutter UI 없이 콘솔에서도 게임이 돌아가야 함.
  • GameInstance (Core): 앱 실행 시 가장 먼저 생성되는 싱글톤 진입점. initialize()에서 게임 데이터를 로드함.
  • GameManager: 게임의 상태(State)와 흐름을 관리하는 지휘자. ChangeNotifier를 상속받아 UI에 알림을 보냄.
  • Entity 시스템:
    • BaseEntity (ID, Name) -> LivingEntity (HP, Stats) -> Player, Enemy 상속 구조.
  • Stat 시스템:
    • 단순 int 변수가 아닌 Stat 객체 사용.
    • Stat 객체는 List<Modifier>를 가지고 있으며, BaseValueModifiers를 계산해 최종 Value를 도출함.

3. 요청 사항

위 아키텍처를 기반으로 다음 파일들의 Dart 코드를 작성해주세요.

  1. lib/game/game_instance.dart: 싱글톤 코어, 초기화 로직 포함.
  2. lib/game/game_manager.dart: 데이터 보유 및 상태 관리 뼈대.
  3. lib/game/model/stat.dart: Modifier 타입(Flat, Percent)과 Stat 계산 로직 구현.
  4. lib/game/model/entity.dart: LivingEntity 추상 클래스와 Player 클래스 기본 구조 (Stat 시스템 적용).

각 파일은 당장 실행 가능하도록 필요한 import 구문과 주석을 포함해주세요.