feat(hall-of-fame): 명예의 전당 상세 UI 및 전투 스탯 저장 추가

- CombatStats에 toJson/fromJson 직렬화 메서드 추가
- HallOfFameEntry에 finalStats(CombatStats) 필드 추가
- 명예의 전당 상세 다이얼로그에서 전투 스탯, 장비, 스펠 표시
- GameState에 combatStats 접근자 추가
- game_text_l10n에 명예의 전당 관련 텍스트 추가
This commit is contained in:
JiWoong Sul
2025-12-24 17:20:52 +09:00
parent c1db1fd5d3
commit df5fdbaac2
8 changed files with 296 additions and 35 deletions

View File

@@ -10,6 +10,7 @@ import 'package:askiineverdie/src/core/animation/ascii_animation_type.dart';
import 'package:askiineverdie/src/core/engine/story_service.dart';
import 'package:askiineverdie/src/core/model/combat_event.dart';
import 'package:askiineverdie/src/core/l10n/game_data_l10n.dart';
import 'package:askiineverdie/src/core/model/combat_stats.dart';
import 'package:askiineverdie/src/core/model/game_state.dart';
import 'package:askiineverdie/src/core/model/hall_of_fame.dart';
import 'package:askiineverdie/src/core/model/skill.dart';
@@ -291,11 +292,19 @@ class _GamePlayScreenState extends State<GamePlayScreen>
// 게임 일시 정지
await widget.controller.pause(saveOnStop: true);
// 최종 전투 스탯 계산
final combatStats = CombatStats.fromStats(
stats: state.stats,
equipment: state.equipment,
level: state.traits.level,
);
// 명예의 전당 엔트리 생성
final entry = HallOfFameEntry.fromGameState(
state: state,
totalDeaths: 0, // TODO: 사망 횟수 추적 구현 시 연결
monstersKilled: 0, // TODO: 처치 수 추적 구현 시 연결
totalDeaths: state.progress.deathCount,
monstersKilled: state.progress.monstersKilled,
combatStats: combatStats,
);
// 명예의 전당에 저장