45 lines
2.2 KiB
Markdown
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` (보상 생성 로직 수정)
|