game/prompt/11_item_table_and_rewards.md

2.2 KiB

아이템 테이블 구축 및 보상 시스템 개편

목표

하드코딩된 랜덤 아이템 생성 로직을 제거하고, 사전에 정의된 **아이템 드랍 테이블(Item Drop Table)**을 기반으로 보상을 생성하도록 시스템을 개편합니다. 또한, 게임 시작 시 기본 장비 지급 로직을 공식화합니다.

요청 사항

1. 아이템 데이터 테이블 생성

부위별로 다양한 아이템의 이름과 스탯 옵션을 정의하는 데이터 구조(List 또는 Map)를 만들어주세요. 각 아이템은 고정된 이름과 기본 스탯 범위를 가지거나, 티어별로 구분될 수 있습니다.

예시 데이터 구조 (개념):

  • Weapons:
    • "Rusty Sword" (ATK +3)
    • "Iron Sword" (ATK +8)
    • "Steel Claymore" (ATK +15)
  • Armors:
    • "Tattered Shirt" (HP +10)
    • "Leather Vest" (HP +30)
    • "Chainmail" (HP +60)
  • Shields:
    • "Wooden Lid" (DEF +2)
    • "Round Shield" (DEF +5)
    • "Tower Shield" (DEF +10)
  • Accessories:
    • "Old Ring" (ATK +1, HP +5)
    • "Ruby Ring" (ATK +5, HP +10)

2. 스테이지 보상 로직 변경

  • 기존: Random으로 이름과 수치를 즉석에서 생성.
  • 변경:
    1. 정의된 아이템 테이블에서 3개의 아이템을 무작위로 선택합니다. (중복 방지 권장)
    2. 스테이지가 높아질수록 더 좋은 아이템이 나올 확률을 높이거나, 테이블 자체가 스테이지별로 나뉘어 있다면 해당 스테이지 그룹에서 선택합니다. (단순하게는 전체 풀에서 랜덤 선택하되, 스탯에 stage 변수를 약간 반영하여 강화된 상태로 드랍되게 할 수도 있습니다.)

3. 초기 장비 지급 (이미 적용됨, 확인 차원)

  • 게임 시작(initializeBattle) 시, 플레이어에게 다음 기본 장비 세트를 지급하고 자동 장착시킵니다.
    • Weapon: Wooden Sword (ATK+5)
    • Armor: Leather Armor (HP+20)
    • Shield: Wooden Shield (DEF+3)
    • Accessory: Copper Ring (ATK+1, HP+5)

관련 파일

  • lib/game/data/item_table.dart (새로 생성 필요: 아이템 데이터 관리)
  • lib/providers/battle_provider.dart (보상 생성 로직 수정)