feat(ui): 게임 화면 및 UI 컴포넌트 개선

- front_screen: 프론트 화면 UI 업데이트
- game_play_screen: 게임 플레이 화면 수정
- game_session_controller: 세션 관리 로직 개선
- mobile_carousel_layout: 모바일 캐러셀 레이아웃 개선
- enhanced_animation_panel: 애니메이션 패널 업데이트
- help_dialog: 도움말 다이얼로그 수정
- return_rewards_dialog: 복귀 보상 다이얼로그 개선
- new_character_screen: 새 캐릭터 화면 수정
- settings_screen: 설정 화면 업데이트
This commit is contained in:
JiWoong Sul
2026-01-19 15:50:35 +09:00
parent ffc19c7ca6
commit 19faa9ea39
9 changed files with 2495 additions and 1355 deletions

View File

@@ -196,14 +196,20 @@ class _NewCharacterScreenState extends State<NewCharacterScreen> {
final random = math.Random();
_currentSeed = random.nextInt(0x7FFFFFFF);
// 종족/클래스 랜덤 선택
// 종족/클래스 랜덤 선택 및 스탯 굴림
setState(() {
_selectedRaceIndex = random.nextInt(_races.length);
_selectedKlassIndex = random.nextInt(_klasses.length);
// 스탯 굴림 (setState 내에서 실행하여 UI 갱신 보장)
final rng = DeterministicRandom(_currentSeed);
_str = rollStat(rng);
_con = rollStat(rng);
_dex = rollStat(rng);
_int = rollStat(rng);
_wis = rollStat(rng);
_cha = rollStat(rng);
});
_rollStats();
// 선택된 종족/직업으로 스크롤
_scrollToSelectedItems();
@@ -296,7 +302,10 @@ class _NewCharacterScreenState extends State<NewCharacterScreen> {
snapshot = await _rollService.undoFreeUser();
}
if (snapshot != null && mounted) {
// UI 상태 갱신 (성공/실패 여부와 관계없이 버튼 상태 업데이트)
if (!mounted) return;
if (snapshot != null) {
setState(() {
_str = snapshot!.stats.str;
_con = snapshot.stats.con;
@@ -309,6 +318,9 @@ class _NewCharacterScreenState extends State<NewCharacterScreen> {
_currentSeed = snapshot.seed;
});
_scrollToSelectedItems();
} else {
// 광고 취소/실패 시에도 버튼 상태 갱신
setState(() {});
}
}
@@ -495,14 +507,17 @@ class _NewCharacterScreenState extends State<NewCharacterScreen> {
: RetroColors.textDisabled,
),
const SizedBox(width: 8),
Text(
'DEBUG: TURBO MODE (20x)',
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 13,
color: _cheatsEnabled
? RetroColors.hpRed
: RetroColors.textDisabled,
Flexible(
child: Text(
'DEBUG: TURBO (20x)',
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 11,
color: _cheatsEnabled
? RetroColors.hpRed
: RetroColors.textDisabled,
),
),
),
],