refactor(ui): 기타 화면 정리

- FrontScreen, HallOfFameScreen 개선
- NewCharacterScreen, SettingsScreen 정리
- App 초기화 로직 정리
This commit is contained in:
JiWoong Sul
2026-01-12 16:17:25 +09:00
parent cbbbbba1a5
commit 448f500ca0
7 changed files with 287 additions and 131 deletions

View File

@@ -107,8 +107,8 @@ class FrontScreen extends StatelessWidget {
onHallOfFame: onHallOfFame != null
? () => onHallOfFame!(context)
: null,
onLocalArena: onLocalArena != null &&
hallOfFameCount >= 2
onLocalArena:
onLocalArena != null && hallOfFameCount >= 2
? () => onLocalArena!(context)
: null,
savedGamePreview: savedGamePreview,
@@ -153,10 +153,7 @@ class _RetroHeader extends StatelessWidget {
fontSize: 14,
color: RetroColors.gold,
shadows: [
Shadow(
color: RetroColors.goldDark,
offset: Offset(2, 2),
),
Shadow(color: RetroColors.goldDark, offset: Offset(2, 2)),
],
),
),
@@ -169,7 +166,10 @@ class _RetroHeader extends StatelessWidget {
spacing: 8,
runSpacing: 8,
children: [
_RetroTag(icon: Icons.cloud_off_outlined, label: l10n.tagNoNetwork),
_RetroTag(
icon: Icons.cloud_off_outlined,
label: l10n.tagNoNetwork,
),
_RetroTag(icon: Icons.timer_outlined, label: l10n.tagIdleRpg),
_RetroTag(icon: Icons.storage_rounded, label: l10n.tagLocalSaves),
],

View File

@@ -159,9 +159,7 @@ class _HeroVsBossAnimationState extends State<HeroVsBossAnimation> {
@override
Widget build(BuildContext context) {
final frame = _applyGlitchEffect(
frontScreenAnimationFrames[_currentFrame],
);
final frame = _applyGlitchEffect(frontScreenAnimationFrames[_currentFrame]);
// 현재 종족 이름 (UI 표시용)
final raceName = RaceData.findById(_currentRaceId)?.name ?? 'Hero';
@@ -172,10 +170,7 @@ class _HeroVsBossAnimationState extends State<HeroVsBossAnimation> {
// 항상 검은 배경
color: Colors.black,
borderRadius: BorderRadius.circular(12),
border: Border.all(
color: Colors.white24,
width: 1,
),
border: Border.all(color: Colors.white24, width: 1),
// 은은한 글로우 효과
boxShadow: [
BoxShadow(
@@ -192,9 +187,7 @@ class _HeroVsBossAnimationState extends State<HeroVsBossAnimation> {
Flexible(
child: FittedBox(
fit: BoxFit.scaleDown,
child: RichText(
text: _buildColoredTextSpan(frame),
),
child: RichText(text: _buildColoredTextSpan(frame)),
),
),
const SizedBox(height: 8),