feat(ui): 도움말 다이얼로그 및 UI 개선

- HelpDialog 추가
- 게임 화면에 통계/도움말 버튼 추가
- CombatLog에 디버프 이벤트 표시
- AudioService mp3 확장자 지원
- 설정 텍스트 l10n 추가
This commit is contained in:
JiWoong Sul
2025-12-30 15:58:40 +09:00
parent d64b9654a3
commit 18af93824b
10 changed files with 1028 additions and 32 deletions

View File

@@ -161,10 +161,12 @@ class _AskiiNeverDieAppState extends State<AskiiNeverDieApp> {
},
currentThemeMode: _themeMode,
onThemeModeChange: _changeThemeMode,
audioService: _audioService,
);
}
// 세이브 파일이 없으면 기존 프론트 화면
// 세이브 파일이 없으면 기존 프론트 화면 (타이틀 BGM 재생)
_audioService.playBgm('title');
return FrontScreen(
onNewCharacter: _navigateToNewCharacter,
onLoadSave: _loadSave,
@@ -238,6 +240,7 @@ class _AskiiNeverDieAppState extends State<AskiiNeverDieApp> {
MaterialPageRoute<void>(
builder: (context) => GamePlayScreen(
controller: _controller,
audioService: _audioService,
forceCarouselLayout: testMode,
currentThemeMode: _themeMode,
onThemeModeChange: _changeThemeMode,
@@ -252,6 +255,7 @@ class _AskiiNeverDieAppState extends State<AskiiNeverDieApp> {
MaterialPageRoute<void>(
builder: (context) => GamePlayScreen(
controller: _controller,
audioService: _audioService,
currentThemeMode: _themeMode,
onThemeModeChange: _changeThemeMode,
),
@@ -298,12 +302,14 @@ class _AutoLoadScreen extends StatefulWidget {
required this.onLoadFailed,
required this.currentThemeMode,
required this.onThemeModeChange,
this.audioService,
});
final GameSessionController controller;
final VoidCallback onLoadFailed;
final ThemeMode currentThemeMode;
final void Function(ThemeMode mode) onThemeModeChange;
final AudioService? audioService;
@override
State<_AutoLoadScreen> createState() => _AutoLoadScreenState();
@@ -313,6 +319,8 @@ class _AutoLoadScreenState extends State<_AutoLoadScreen> {
@override
void initState() {
super.initState();
// 로딩 중에도 타이틀 BGM 재생
widget.audioService?.playBgm('title');
_autoLoad();
}
@@ -327,6 +335,7 @@ class _AutoLoadScreenState extends State<_AutoLoadScreen> {
MaterialPageRoute<void>(
builder: (context) => GamePlayScreen(
controller: widget.controller,
audioService: widget.audioService,
currentThemeMode: widget.currentThemeMode,
onThemeModeChange: widget.onThemeModeChange,
),