game/prompt/11_item_table_and_rewards.md

45 lines
2.2 KiB
Markdown

# 아이템 테이블 구축 및 보상 시스템 개편
## 목표
하드코딩된 랜덤 아이템 생성 로직을 제거하고, 사전에 정의된 **아이템 드랍 테이블(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` (보상 생성 로직 수정)