fix(ui): 사망 화면 장비 슬롯명 표시 및 기타 수정

- 사망 시 잃은 아이템에 슬롯명 표시 추가
- progress_service 마이너 수정
- 관련 테스트 업데이트
This commit is contained in:
JiWoong Sul
2026-01-15 23:23:38 +09:00
parent 9599a33a8f
commit 7e1936b34f
5 changed files with 39 additions and 4 deletions

View File

@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:asciineverdie/data/game_text_l10n.dart' as l10n;
import 'package:asciineverdie/src/core/l10n/game_data_l10n.dart';
import 'package:asciineverdie/src/core/model/combat_event.dart';
import 'package:asciineverdie/src/core/model/equipment_slot.dart';
import 'package:asciineverdie/src/core/model/game_state.dart';
import 'package:asciineverdie/src/shared/retro_colors.dart';
@@ -293,6 +294,11 @@ class DeathOverlay extends StatelessWidget {
final expColor = RetroColors.expOf(context);
final gold = RetroColors.goldOf(context);
// 슬롯명 + 아이템명 조합
final lostItemDisplay = hasLostItem
? '[${_getSlotName(deathInfo.lostItemSlot)}] ${deathInfo.lostItemName}'
: null;
return Column(
children: [
// 제물로 바친 아이템 표시
@@ -321,10 +327,10 @@ class DeathOverlay extends StatelessWidget {
),
const SizedBox(height: 4),
Text(
deathInfo.lostItemName!,
lostItemDisplay!,
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 14,
fontSize: 13,
color: hpColor,
),
),
@@ -671,4 +677,22 @@ class DeathOverlay extends StatelessWidget {
),
};
}
/// 장비 슬롯 이름 반환
String _getSlotName(EquipmentSlot? slot) {
if (slot == null) return '';
return switch (slot) {
EquipmentSlot.weapon => l10n.slotWeapon,
EquipmentSlot.shield => l10n.slotShield,
EquipmentSlot.helm => l10n.slotHelm,
EquipmentSlot.hauberk => l10n.slotHauberk,
EquipmentSlot.brassairts => l10n.slotBrassairts,
EquipmentSlot.vambraces => l10n.slotVambraces,
EquipmentSlot.gauntlets => l10n.slotGauntlets,
EquipmentSlot.gambeson => l10n.slotGambeson,
EquipmentSlot.cuisses => l10n.slotCuisses,
EquipmentSlot.greaves => l10n.slotGreaves,
EquipmentSlot.sollerets => l10n.slotSollerets,
};
}
}