2.3 KiB
2.3 KiB
방패 아이템 추가 및 방어 메커니즘 개편
목표
게임에 '방패(Shield)' 장비 슬롯을 추가하고, 전투 중 '방어(Defend)' 행동의 효율 계산 방식을 공격력(ATK) 기반에서 방어력(Armor) 기반으로 변경합니다.
요청 사항
1. 장비 슬롯 및 아이템 속성 확장
- EquipmentSlot 추가:
shield슬롯을 추가합니다. (기존: weapon, armor, accessory) - Item 속성 추가: 아이템에 물리적 방어력을 나타내는
armorBonus속성을 추가합니다.- 방패(Shield)와 갑옷(Armor) 아이템은 주로
armorBonus를 제공해야 합니다. - 기존 갑옷(Armor) 아이템이 MaxHP를 올려주던 컨셉을 유지할지, 방어력으로 변경할지 결정이 필요하나, 요청에 따라 방패는 Armor 포인트를 올려주는 역할을 합니다.
- 방패(Shield)와 갑옷(Armor) 아이템은 주로
2. 캐릭터 스탯 로직 변경
- Total Armor 계산: 캐릭터의 총 방어력(
totalArmor)은기본 방어력 + 장착 아이템의 armorBonus 합계로 계산됩니다. - 기본 스탯: 캐릭터 생성 시 적절한 기본 방어력(Base Armor)을 부여하거나 0으로 시작합니다.
3. 전투 시스템 (방어 행동) 변경
- Defend 메커니즘 수정:
- 기존:
Armor Gained = Total ATK * Efficiency - 변경:
Armor Gained = Total Armor * Efficiency - 즉, 방어력이 높을수록 방어 행동(Defend) 시 더 단단한 일시적 보호막(Temporary Armor)을 얻게 됩니다.
- 주의:
totalArmor가 0이면 방어 행동의 효과가 0이 되므로, 최소한의 기본 방어력을 보장하거나 로직을 조정해야 합니다.
- 기존:
4. UI 및 아이템 생성 로직 업데이트
- 인벤토리 화면: 방패 슬롯을 UI에 표시하고, 아이콘을 지정합니다.
- 보상 시스템: 전투 승리 보상 목록에 '방패'가 등장하도록 추가합니다.
- 스탯 프리뷰: 장비 교체 팝업 등에서
Armor스탯의 변화도 보여주어야 합니다.
관련 파일
lib/game/model/item.dart:EquipmentSlot,Item필드 수정lib/game/model/entity.dart:totalArmorgetter 추가 및 관련 로직lib/providers/battle_provider.dart:defend로직 수정, 방패 드랍 로직 추가lib/screens/inventory_screen.dart: UI 업데이트