fix(death): 사망 시 희생 아이템 선택 디버그 로그 추가

- 장비 슬롯 상태 콘솔 로그 추가
- resurrection_service에 lostItemSlot 설정 누락 수정
- resetBattleUsage 존재하지 않는 메서드 호출 제거
This commit is contained in:
JiWoong Sul
2026-01-15 23:33:31 +09:00
parent 7e1936b34f
commit b8a4d73461
6 changed files with 117 additions and 101 deletions

View File

@@ -60,39 +60,30 @@ class Potion {
/// 물약 인벤토리 상태
///
/// 보유 물약 수량 및 전투 중 사용 기록 관리
/// 보유 물약 수량 관리 (쿨타임은 CombatState에서 관리)
class PotionInventory {
const PotionInventory({
this.potions = const {},
this.usedInBattle = const {},
});
/// 보유 물약 (물약 ID → 수량)
final Map<String, int> potions;
/// 현재 전투에서 사용한 물약 종류
final Set<PotionType> usedInBattle;
/// 물약 보유 여부
bool hasPotion(String potionId) => (potions[potionId] ?? 0) > 0;
/// 물약 수량 조회
int getQuantity(String potionId) => potions[potionId] ?? 0;
/// 특정 종류 물약 사용 가능 여부
///
/// 전투당 종류별 1회 제한 체크
bool canUseType(PotionType type) => !usedInBattle.contains(type);
/// 물약 추가
PotionInventory addPotion(String potionId, [int count = 1]) {
final newPotions = Map<String, int>.from(potions);
newPotions[potionId] = (newPotions[potionId] ?? 0) + count;
return PotionInventory(potions: newPotions, usedInBattle: usedInBattle);
return PotionInventory(potions: newPotions);
}
/// 물약 사용 (수량 감소)
PotionInventory usePotion(String potionId, PotionType type) {
PotionInventory usePotion(String potionId) {
final currentQty = potions[potionId] ?? 0;
if (currentQty <= 0) return this;
@@ -102,14 +93,7 @@ class PotionInventory {
newPotions.remove(potionId);
}
final newUsed = Set<PotionType>.from(usedInBattle)..add(type);
return PotionInventory(potions: newPotions, usedInBattle: newUsed);
}
/// 전투 종료 시 사용 기록 초기화
PotionInventory resetBattleUsage() {
return PotionInventory(potions: potions, usedInBattle: const {});
return PotionInventory(potions: newPotions);
}
/// 빈 인벤토리
@@ -117,11 +101,9 @@ class PotionInventory {
PotionInventory copyWith({
Map<String, int>? potions,
Set<PotionType>? usedInBattle,
}) {
return PotionInventory(
potions: potions ?? this.potions,
usedInBattle: usedInBattle ?? this.usedInBattle,
);
}
}