feat(ui): 화면 및 공통 위젯 개선

- FrontScreen 개선
- GamePlayScreen, GameSessionController 업데이트
- ArenaBattleScreen, NewCharacterScreen 정리
- AsciiDisintegrateWidget 추가
This commit is contained in:
JiWoong Sul
2026-01-14 00:18:16 +09:00
parent f65bab6312
commit 1da377c127
7 changed files with 302 additions and 30 deletions

View File

@@ -50,6 +50,8 @@ class _AskiiNeverDieAppState extends State<AskiiNeverDieApp> {
late final SettingsRepository _settingsRepository;
late final AudioService _audioService;
late final HallOfFameStorage _hallOfFameStorage;
final RouteObserver<ModalRoute<void>> _routeObserver =
RouteObserver<ModalRoute<void>>();
bool _isCheckingSave = true;
bool _hasSave = false;
SavedGamePreview? _savedGamePreview;
@@ -437,6 +439,7 @@ class _AskiiNeverDieAppState extends State<AskiiNeverDieApp> {
theme: _lightTheme,
darkTheme: _darkTheme,
themeMode: _themeMode,
navigatorObservers: [_routeObserver],
builder: (context, child) {
// 현재 로케일을 게임 텍스트 l10n 시스템에 동기화
final locale = Localizations.localeOf(context);
@@ -465,6 +468,11 @@ class _AskiiNeverDieAppState extends State<AskiiNeverDieApp> {
hasSaveFile: _hasSave,
savedGamePreview: _savedGamePreview,
hallOfFameCount: _hallOfFame.count,
routeObserver: _routeObserver,
onRefresh: () {
_checkForExistingSave();
_loadHallOfFame();
},
);
}
@@ -480,8 +488,9 @@ class _AskiiNeverDieAppState extends State<AskiiNeverDieApp> {
),
)
.then((_) {
// 새 게임 후 돌아오면 세이브 정보 갱신 (BGM은 _checkForExistingSave에서 재생)
// 새 게임 후 돌아오면 세이브 정보 및 명예의 전당 갱신
_checkForExistingSave();
_loadHallOfFame();
});
}
@@ -560,8 +569,9 @@ class _AskiiNeverDieAppState extends State<AskiiNeverDieApp> {
),
)
.then((_) {
// 게임에서 돌아오면 세이브 정보 갱신 (BGM은 _checkForExistingSave에서 재생)
// 게임에서 돌아오면 세이브 정보 및 명예의 전당 갱신
_checkForExistingSave();
_loadHallOfFame();
});
}
@@ -574,7 +584,8 @@ class _AskiiNeverDieAppState extends State<AskiiNeverDieApp> {
),
)
.then((_) {
// 명예의 전당에서 돌아오면 타이틀 BGM 재생
// 명예의 전당에서 돌아오면 명예의 전당 갱신 및 타이틀 BGM 재생
_loadHallOfFame();
_audioService.playBgm('title');
});
}