style(ui): 전체 화면 폰트 크기 증가
- arena: 전투/결과/랭크 화면 폰트 조정 - front: 메인 화면 폰트 조정 - game: 게임플레이 위젯 전반 폰트 조정 (스킬, 장비, 인벤토리 등) - hall_of_fame: 명예의 전당 폰트 조정 - new_character: 캐릭터 생성 화면 폰트 조정 - settings: 설정 화면 폰트 조정 - 전반적인 가독성 향상
This commit is contained in:
@@ -439,7 +439,7 @@ class _ArenaBattleScreenState extends State<ArenaBattleScreen>
|
||||
appBar: AppBar(
|
||||
title: Text(
|
||||
_battleTitle,
|
||||
style: const TextStyle(fontFamily: 'PressStart2P', fontSize: 12),
|
||||
style: const TextStyle(fontFamily: 'PressStart2P', fontSize: 15),
|
||||
),
|
||||
centerTitle: true,
|
||||
backgroundColor: RetroColors.panelBgOf(context),
|
||||
@@ -549,7 +549,7 @@ class _ArenaBattleScreenState extends State<ArenaBattleScreen>
|
||||
'VS',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 14,
|
||||
color: RetroColors.goldOf(context).withValues(alpha: 0.5),
|
||||
),
|
||||
),
|
||||
@@ -578,7 +578,7 @@ class _ArenaBattleScreenState extends State<ArenaBattleScreen>
|
||||
line,
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 10,
|
||||
fontSize: 15,
|
||||
color: textColor,
|
||||
height: 1.2,
|
||||
),
|
||||
@@ -640,7 +640,7 @@ class _ArenaBattleScreenState extends State<ArenaBattleScreen>
|
||||
elapsedTime,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 14,
|
||||
color: RetroColors.goldOf(context),
|
||||
),
|
||||
),
|
||||
@@ -681,7 +681,7 @@ class _ArenaBattleScreenState extends State<ArenaBattleScreen>
|
||||
'VS',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: RetroColors.goldOf(context),
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
@@ -752,7 +752,7 @@ class _ArenaBattleScreenState extends State<ArenaBattleScreen>
|
||||
name,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textPrimaryOf(context),
|
||||
),
|
||||
maxLines: 1,
|
||||
@@ -777,7 +777,7 @@ class _ArenaBattleScreenState extends State<ArenaBattleScreen>
|
||||
_hpLabel,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 5,
|
||||
fontSize: 12,
|
||||
color: accentColor.withValues(alpha: 0.8),
|
||||
),
|
||||
),
|
||||
@@ -786,7 +786,7 @@ class _ArenaBattleScreenState extends State<ArenaBattleScreen>
|
||||
'$hp/$hpMax',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 12,
|
||||
color: isLow ? RetroColors.hpRed : fillColor,
|
||||
),
|
||||
),
|
||||
@@ -809,7 +809,7 @@ class _ArenaBattleScreenState extends State<ArenaBattleScreen>
|
||||
hpChange > 0 ? '+$hpChange' : '$hpChange',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: isDamage
|
||||
? RetroColors.hpRed
|
||||
@@ -942,7 +942,7 @@ class _ArenaBattleScreenState extends State<ArenaBattleScreen>
|
||||
_currentSkillName!,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 12,
|
||||
color: color,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -73,7 +73,7 @@ class _ArenaScreenState extends State<ArenaScreen> {
|
||||
appBar: AppBar(
|
||||
title: Text(
|
||||
_arenaTitle,
|
||||
style: const TextStyle(fontFamily: 'PressStart2P', fontSize: 12),
|
||||
style: const TextStyle(fontFamily: 'PressStart2P', fontSize: 15),
|
||||
),
|
||||
centerTitle: true,
|
||||
backgroundColor: RetroColors.panelBgOf(context),
|
||||
@@ -117,7 +117,7 @@ class _ArenaScreenState extends State<ArenaScreen> {
|
||||
_arenaEmpty,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 14,
|
||||
color: RetroColors.textSecondaryOf(context),
|
||||
),
|
||||
),
|
||||
@@ -126,7 +126,7 @@ class _ArenaScreenState extends State<ArenaScreen> {
|
||||
_arenaEmptyHint,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 7,
|
||||
fontSize: 12,
|
||||
color: RetroColors.textMutedOf(context),
|
||||
),
|
||||
textAlign: TextAlign.center,
|
||||
|
||||
@@ -133,7 +133,7 @@ class _ArenaSetupScreenState extends State<ArenaSetupScreen> {
|
||||
appBar: AppBar(
|
||||
title: Text(
|
||||
_setupTitle,
|
||||
style: const TextStyle(fontFamily: 'PressStart2P', fontSize: 12),
|
||||
style: const TextStyle(fontFamily: 'PressStart2P', fontSize: 15),
|
||||
),
|
||||
centerTitle: true,
|
||||
backgroundColor: RetroColors.panelBgOf(context),
|
||||
@@ -156,7 +156,7 @@ class _ArenaSetupScreenState extends State<ArenaSetupScreen> {
|
||||
_selectCharacter,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 14,
|
||||
color: RetroColors.goldOf(context),
|
||||
),
|
||||
),
|
||||
@@ -302,7 +302,7 @@ class _ArenaSetupScreenState extends State<ArenaSetupScreen> {
|
||||
'$rank',
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 14,
|
||||
color: Colors.blue,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
@@ -319,7 +319,7 @@ class _ArenaSetupScreenState extends State<ArenaSetupScreen> {
|
||||
_challenger!.characterName,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 7,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textPrimaryOf(context),
|
||||
),
|
||||
maxLines: 1,
|
||||
@@ -330,7 +330,7 @@ class _ArenaSetupScreenState extends State<ArenaSetupScreen> {
|
||||
'Lv.${_challenger!.level} • $score pt',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 5,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textSecondaryOf(context),
|
||||
),
|
||||
),
|
||||
@@ -374,7 +374,7 @@ class _ArenaSetupScreenState extends State<ArenaSetupScreen> {
|
||||
_startBattleLabel,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 14,
|
||||
color: _selectedSlot != null
|
||||
? RetroColors.backgroundOf(context)
|
||||
: RetroColors.textMutedOf(context),
|
||||
@@ -417,7 +417,7 @@ class _ArenaSetupScreenState extends State<ArenaSetupScreen> {
|
||||
'$rank',
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 14,
|
||||
color: Colors.red,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
@@ -434,7 +434,7 @@ class _ArenaSetupScreenState extends State<ArenaSetupScreen> {
|
||||
_opponent!.characterName,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 7,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textPrimaryOf(context),
|
||||
),
|
||||
maxLines: 1,
|
||||
@@ -445,7 +445,7 @@ class _ArenaSetupScreenState extends State<ArenaSetupScreen> {
|
||||
'Lv.${_opponent!.level} • $score pt',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 5,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textSecondaryOf(context),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -136,7 +136,7 @@ class _ArenaLogEntryTile extends StatelessWidget {
|
||||
Text(
|
||||
_formatTime(entry.timestamp),
|
||||
style: TextStyle(
|
||||
fontSize: 10,
|
||||
fontSize: 15,
|
||||
color: Theme.of(context).colorScheme.outline,
|
||||
fontFamily: 'JetBrainsMono',
|
||||
),
|
||||
@@ -153,7 +153,7 @@ class _ArenaLogEntryTile extends StatelessWidget {
|
||||
child: Text(
|
||||
entry.message,
|
||||
style: TextStyle(
|
||||
fontSize: 11,
|
||||
fontSize: 16,
|
||||
color: color ?? Theme.of(context).colorScheme.onSurface,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -128,7 +128,7 @@ class _ArenaEquipmentCompareListState extends State<ArenaEquipmentCompareList> {
|
||||
_myEquipmentTitle,
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 11,
|
||||
color: Colors.blue,
|
||||
),
|
||||
textAlign: TextAlign.center,
|
||||
@@ -149,7 +149,7 @@ class _ArenaEquipmentCompareListState extends State<ArenaEquipmentCompareList> {
|
||||
_enemyEquipmentTitle,
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 11,
|
||||
color: Colors.red,
|
||||
),
|
||||
textAlign: TextAlign.center,
|
||||
@@ -317,7 +317,7 @@ class _ArenaEquipmentCompareListState extends State<ArenaEquipmentCompareList> {
|
||||
hasItem ? item.name : '-',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 11,
|
||||
color: textColor,
|
||||
),
|
||||
maxLines: 1,
|
||||
@@ -329,7 +329,7 @@ class _ArenaEquipmentCompareListState extends State<ArenaEquipmentCompareList> {
|
||||
'$score',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 11,
|
||||
color: isLocked
|
||||
? RetroColors.textMutedOf(context)
|
||||
: hasItem
|
||||
@@ -405,7 +405,7 @@ class _ArenaEquipmentCompareListState extends State<ArenaEquipmentCompareList> {
|
||||
_weaponLockedLabel,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 4,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textMutedOf(context),
|
||||
),
|
||||
)
|
||||
@@ -444,7 +444,7 @@ class _ArenaEquipmentCompareListState extends State<ArenaEquipmentCompareList> {
|
||||
_recommendedLabel,
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 4,
|
||||
fontSize: 11,
|
||||
color: Colors.green,
|
||||
),
|
||||
),
|
||||
@@ -454,7 +454,7 @@ class _ArenaEquipmentCompareListState extends State<ArenaEquipmentCompareList> {
|
||||
diffText,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 5,
|
||||
fontSize: 11,
|
||||
color: diffColor,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
@@ -536,7 +536,7 @@ class _ArenaEquipmentCompareListState extends State<ArenaEquipmentCompareList> {
|
||||
resultText,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 11,
|
||||
color: resultColor,
|
||||
),
|
||||
),
|
||||
@@ -566,7 +566,7 @@ class _ArenaEquipmentCompareListState extends State<ArenaEquipmentCompareList> {
|
||||
_selectedLabel,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 7,
|
||||
fontSize: 12,
|
||||
color: RetroColors.goldOf(context),
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
@@ -597,7 +597,7 @@ class _ArenaEquipmentCompareListState extends State<ArenaEquipmentCompareList> {
|
||||
hasItem ? item.name : '(Empty)',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 11,
|
||||
color: hasItem ? rarityColor : RetroColors.textMutedOf(context),
|
||||
),
|
||||
maxLines: 2,
|
||||
@@ -609,7 +609,7 @@ class _ArenaEquipmentCompareListState extends State<ArenaEquipmentCompareList> {
|
||||
'Score: $score',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 5,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textSecondaryOf(context),
|
||||
),
|
||||
),
|
||||
@@ -654,7 +654,11 @@ class _ArenaEquipmentCompareListState extends State<ArenaEquipmentCompareList> {
|
||||
),
|
||||
child: Text(
|
||||
'$label +$value',
|
||||
style: TextStyle(fontFamily: 'PressStart2P', fontSize: 4, color: color),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 11,
|
||||
color: color,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -163,7 +163,7 @@ class ArenaRankCard extends StatelessWidget {
|
||||
'$score',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 14,
|
||||
color: RetroColors.goldOf(context),
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
@@ -172,7 +172,7 @@ class ArenaRankCard extends StatelessWidget {
|
||||
'SCORE',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textMutedOf(context),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -66,7 +66,7 @@ class ArenaResultDialog extends StatelessWidget {
|
||||
style: FilledButton.styleFrom(backgroundColor: resultColor),
|
||||
child: Text(
|
||||
l10n.buttonConfirm,
|
||||
style: const TextStyle(fontFamily: 'PressStart2P', fontSize: 8),
|
||||
style: const TextStyle(fontFamily: 'PressStart2P', fontSize: 13),
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -87,7 +87,7 @@ class ArenaResultDialog extends StatelessWidget {
|
||||
isVictory ? _arenaVictory : _arenaDefeat,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 12,
|
||||
fontSize: 15,
|
||||
color: color,
|
||||
),
|
||||
),
|
||||
@@ -116,7 +116,7 @@ class ArenaResultDialog extends StatelessWidget {
|
||||
'VS',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 13,
|
||||
color: RetroColors.textMutedOf(context),
|
||||
),
|
||||
),
|
||||
@@ -143,7 +143,7 @@ class ArenaResultDialog extends StatelessWidget {
|
||||
name,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 7,
|
||||
fontSize: 11,
|
||||
color: isWinner
|
||||
? RetroColors.goldOf(context)
|
||||
: RetroColors.textMutedOf(context),
|
||||
@@ -155,7 +155,7 @@ class ArenaResultDialog extends StatelessWidget {
|
||||
isWinner ? 'WINNER' : 'LOSER',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 11,
|
||||
color: isWinner ? Colors.amber : Colors.grey,
|
||||
),
|
||||
),
|
||||
@@ -199,7 +199,7 @@ class ArenaResultDialog extends StatelessWidget {
|
||||
_arenaExchange,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 14,
|
||||
color: RetroColors.goldOf(context),
|
||||
),
|
||||
),
|
||||
@@ -211,7 +211,7 @@ class ArenaResultDialog extends StatelessWidget {
|
||||
_getSlotLabel(slot),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 7,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textSecondaryOf(context),
|
||||
),
|
||||
),
|
||||
@@ -274,7 +274,7 @@ class ArenaResultDialog extends StatelessWidget {
|
||||
name,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 7,
|
||||
fontSize: 13,
|
||||
color: RetroColors.textPrimaryOf(context),
|
||||
),
|
||||
),
|
||||
@@ -308,7 +308,7 @@ class ArenaResultDialog extends StatelessWidget {
|
||||
'${isGain ? '+' : ''}$scoreDiff pt',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 7,
|
||||
fontSize: 13,
|
||||
color: isGain ? Colors.green : Colors.red,
|
||||
),
|
||||
),
|
||||
@@ -329,7 +329,7 @@ class ArenaResultDialog extends StatelessWidget {
|
||||
'(empty)',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 12,
|
||||
color: RetroColors.textMutedOf(context),
|
||||
),
|
||||
);
|
||||
@@ -351,7 +351,7 @@ class ArenaResultDialog extends StatelessWidget {
|
||||
item.name,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 5,
|
||||
fontSize: 12,
|
||||
color: rarityColor,
|
||||
),
|
||||
maxLines: 1,
|
||||
@@ -361,7 +361,7 @@ class ArenaResultDialog extends StatelessWidget {
|
||||
'$score pt',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 5,
|
||||
fontSize: 12,
|
||||
color: RetroColors.textMutedOf(context),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -133,7 +133,7 @@ class _ArenaResultPanelState extends State<ArenaResultPanel>
|
||||
SnackBar(
|
||||
content: Text(
|
||||
'${l10n.uiSaved}: $fileName',
|
||||
style: const TextStyle(fontFamily: 'PressStart2P', fontSize: 6),
|
||||
style: const TextStyle(fontFamily: 'PressStart2P', fontSize: 11),
|
||||
),
|
||||
backgroundColor: RetroColors.mpOf(context),
|
||||
duration: const Duration(seconds: 3),
|
||||
@@ -146,7 +146,7 @@ class _ArenaResultPanelState extends State<ArenaResultPanel>
|
||||
SnackBar(
|
||||
content: Text(
|
||||
'${l10n.uiError}: $e',
|
||||
style: const TextStyle(fontFamily: 'PressStart2P', fontSize: 6),
|
||||
style: const TextStyle(fontFamily: 'PressStart2P', fontSize: 11),
|
||||
),
|
||||
backgroundColor: RetroColors.hpOf(context),
|
||||
duration: const Duration(seconds: 3),
|
||||
@@ -366,7 +366,7 @@ class _ArenaResultPanelState extends State<ArenaResultPanel>
|
||||
isVictory ? _victory : _defeat,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 14,
|
||||
color: color,
|
||||
),
|
||||
),
|
||||
@@ -396,7 +396,7 @@ class _ArenaResultPanelState extends State<ArenaResultPanel>
|
||||
winner,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 7,
|
||||
fontSize: 11,
|
||||
color: RetroColors.goldOf(context),
|
||||
),
|
||||
),
|
||||
@@ -404,7 +404,7 @@ class _ArenaResultPanelState extends State<ArenaResultPanel>
|
||||
' defeated ',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textMutedOf(context),
|
||||
),
|
||||
),
|
||||
@@ -413,7 +413,7 @@ class _ArenaResultPanelState extends State<ArenaResultPanel>
|
||||
loser,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 7,
|
||||
fontSize: 12,
|
||||
color: RetroColors.textSecondaryOf(context),
|
||||
),
|
||||
),
|
||||
@@ -421,7 +421,7 @@ class _ArenaResultPanelState extends State<ArenaResultPanel>
|
||||
' in ',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textMutedOf(context),
|
||||
),
|
||||
),
|
||||
@@ -436,7 +436,7 @@ class _ArenaResultPanelState extends State<ArenaResultPanel>
|
||||
'${widget.turnCount} $_turns',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 12,
|
||||
color: RetroColors.goldOf(context),
|
||||
),
|
||||
),
|
||||
@@ -502,7 +502,7 @@ class _ArenaResultPanelState extends State<ArenaResultPanel>
|
||||
_exchange,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 12,
|
||||
color: RetroColors.goldOf(context),
|
||||
),
|
||||
),
|
||||
@@ -514,7 +514,7 @@ class _ArenaResultPanelState extends State<ArenaResultPanel>
|
||||
_getSlotLabel(slot),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 12,
|
||||
color: RetroColors.textMutedOf(context),
|
||||
),
|
||||
),
|
||||
@@ -559,7 +559,7 @@ class _ArenaResultPanelState extends State<ArenaResultPanel>
|
||||
'${scoreDiff >= 0 ? '+' : ''}$scoreDiff',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 11,
|
||||
color: scoreDiff >= 0 ? Colors.green : Colors.red,
|
||||
),
|
||||
),
|
||||
@@ -586,7 +586,7 @@ class _ArenaResultPanelState extends State<ArenaResultPanel>
|
||||
'(empty)',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 5,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textMutedOf(context),
|
||||
),
|
||||
),
|
||||
@@ -609,7 +609,7 @@ class _ArenaResultPanelState extends State<ArenaResultPanel>
|
||||
item.name,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 5,
|
||||
fontSize: 12,
|
||||
color: rarityColor,
|
||||
),
|
||||
maxLines: 1,
|
||||
@@ -619,7 +619,7 @@ class _ArenaResultPanelState extends State<ArenaResultPanel>
|
||||
'$score pt',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 5,
|
||||
fontSize: 12,
|
||||
color: RetroColors.textMutedOf(context),
|
||||
),
|
||||
),
|
||||
@@ -642,7 +642,7 @@ class _ArenaResultPanelState extends State<ArenaResultPanel>
|
||||
l10n.buttonConfirm,
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: Colors.black,
|
||||
),
|
||||
),
|
||||
@@ -659,7 +659,7 @@ class _ArenaResultPanelState extends State<ArenaResultPanel>
|
||||
icon: const Icon(Icons.save_alt, size: 14),
|
||||
label: Text(
|
||||
l10n.uiSaveBattleLog,
|
||||
style: const TextStyle(fontFamily: 'PressStart2P', fontSize: 6),
|
||||
style: const TextStyle(fontFamily: 'PressStart2P', fontSize: 11),
|
||||
),
|
||||
style: OutlinedButton.styleFrom(
|
||||
foregroundColor: RetroColors.mpOf(context),
|
||||
|
||||
@@ -186,7 +186,7 @@ class _RetroHeader extends StatelessWidget {
|
||||
l10n.appTitle,
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 14,
|
||||
fontSize: 13,
|
||||
color: RetroColors.gold,
|
||||
shadows: [
|
||||
Shadow(color: RetroColors.goldDark, offset: Offset(2, 2)),
|
||||
@@ -335,7 +335,7 @@ class _SavedGameInfo extends StatelessWidget {
|
||||
'${preview.characterName} Lv.${preview.level} ${preview.actName}',
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 9,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textDisabled,
|
||||
),
|
||||
),
|
||||
@@ -358,7 +358,7 @@ class _CopyrightFooter extends StatelessWidget {
|
||||
textAlign: TextAlign.center,
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 7,
|
||||
color: RetroColors.textDisabled,
|
||||
),
|
||||
),
|
||||
@@ -390,7 +390,7 @@ class _RetroTag extends StatelessWidget {
|
||||
label,
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 9,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textLight,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -145,7 +145,7 @@ class _HeroVsBossAnimationState extends State<HeroVsBossAnimation> {
|
||||
text: char,
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 10,
|
||||
fontSize: 15,
|
||||
height: 1.1,
|
||||
color: color,
|
||||
letterSpacing: 0,
|
||||
@@ -199,7 +199,7 @@ class _HeroVsBossAnimationState extends State<HeroVsBossAnimation> {
|
||||
'♦ $raceName',
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 9,
|
||||
fontSize: 15,
|
||||
color: Colors.cyan.withValues(alpha: 0.7),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -12,9 +12,7 @@ import 'package:asciineverdie/src/features/game/widgets/combat_log.dart';
|
||||
/// - 전투 이벤트 → 로그 메시지 변환
|
||||
/// - 태스크 변경 시 로그 추가
|
||||
class CombatLogController extends ChangeNotifier {
|
||||
CombatLogController({
|
||||
this.onCombatEvent,
|
||||
});
|
||||
CombatLogController({this.onCombatEvent});
|
||||
|
||||
/// 전투 이벤트 발생 시 호출되는 콜백 (SFX 재생 등에 사용)
|
||||
final void Function(CombatEvent event)? onCombatEvent;
|
||||
@@ -82,10 +80,7 @@ class CombatLogController extends ChangeNotifier {
|
||||
|
||||
/// 레벨업 로그 추가
|
||||
void addLevelUpLog(int level) {
|
||||
addLog(
|
||||
'${game_l10n.uiLevelUp} Lv.$level',
|
||||
CombatLogType.levelUp,
|
||||
);
|
||||
addLog('${game_l10n.uiLevelUp} Lv.$level', CombatLogType.levelUp);
|
||||
}
|
||||
|
||||
/// 퀘스트 완료 로그 추가
|
||||
|
||||
@@ -13,10 +13,7 @@ import 'package:asciineverdie/src/core/model/monster_grade.dart';
|
||||
/// - 전투 이벤트 SFX 재생
|
||||
/// - 볼륨 관리
|
||||
class GameAudioController extends ChangeNotifier {
|
||||
GameAudioController({
|
||||
required this.audioService,
|
||||
this.getSpeedMultiplier,
|
||||
});
|
||||
GameAudioController({required this.audioService, this.getSpeedMultiplier});
|
||||
|
||||
final AudioService? audioService;
|
||||
|
||||
|
||||
@@ -660,7 +660,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
L10n.of(context).progressQuestTitle(state.traits.name),
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 12,
|
||||
fontSize: 15,
|
||||
color: RetroColors.gold,
|
||||
),
|
||||
),
|
||||
@@ -950,7 +950,10 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
|
||||
// Phase 8: 전투 로그 (Combat Log)
|
||||
_buildPanelHeader(l10n.combatLog),
|
||||
Expanded(flex: 2, child: CombatLog(entries: _combatLogController.entries)),
|
||||
Expanded(
|
||||
flex: 2,
|
||||
child: CombatLog(entries: _combatLogController.entries),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
@@ -1018,7 +1021,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
title.toUpperCase(),
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: RetroColors.gold,
|
||||
),
|
||||
@@ -1033,7 +1036,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
title.toUpperCase(),
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: RetroColors.textDisabled,
|
||||
),
|
||||
),
|
||||
@@ -1113,7 +1116,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
t.$1.toUpperCase(),
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: RetroColors.textDisabled,
|
||||
),
|
||||
),
|
||||
@@ -1123,7 +1126,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
t.$2,
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 9,
|
||||
fontSize: 14,
|
||||
color: RetroColors.textLight,
|
||||
),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
@@ -1147,7 +1150,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
L10n.of(context).noSpellsYet,
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 9,
|
||||
fontSize: 14,
|
||||
color: RetroColors.textDisabled,
|
||||
),
|
||||
),
|
||||
@@ -1188,7 +1191,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
l10n.goldAmount(state.inventory.gold),
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 9,
|
||||
fontSize: 14,
|
||||
color: RetroColors.gold,
|
||||
),
|
||||
),
|
||||
@@ -1215,7 +1218,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
l10n.gold.toUpperCase(),
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: RetroColors.gold,
|
||||
),
|
||||
),
|
||||
@@ -1224,7 +1227,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
'${state.inventory.gold}',
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 9,
|
||||
fontSize: 14,
|
||||
color: RetroColors.gold,
|
||||
),
|
||||
),
|
||||
@@ -1247,7 +1250,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
translatedName,
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: RetroColors.textLight,
|
||||
),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
@@ -1257,7 +1260,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
'${item.count}',
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: RetroColors.cream,
|
||||
),
|
||||
),
|
||||
@@ -1278,7 +1281,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
l10n.prologue.toUpperCase(),
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 9,
|
||||
fontSize: 14,
|
||||
color: RetroColors.textDisabled,
|
||||
),
|
||||
),
|
||||
@@ -1312,7 +1315,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
index == 0 ? l10n.prologue : l10n.actNumber(_toRoman(index)),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: isCompleted
|
||||
? RetroColors.textDisabled
|
||||
: (isCurrent
|
||||
@@ -1341,7 +1344,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
l10n.noActiveQuests.toUpperCase(),
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 9,
|
||||
fontSize: 14,
|
||||
color: RetroColors.textDisabled,
|
||||
),
|
||||
),
|
||||
@@ -1381,7 +1384,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
quest.caption,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: isCurrentQuest
|
||||
? RetroColors.gold
|
||||
: (quest.isComplete
|
||||
@@ -1461,7 +1464,7 @@ class _SkillRow extends StatelessWidget {
|
||||
child: Text(
|
||||
skillName,
|
||||
style: TextStyle(
|
||||
fontSize: 11,
|
||||
fontSize: 16,
|
||||
color: isOnCooldown ? Colors.grey : null,
|
||||
),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
@@ -1474,7 +1477,7 @@ class _SkillRow extends StatelessWidget {
|
||||
// 랭크
|
||||
Text(
|
||||
rank,
|
||||
style: const TextStyle(fontSize: 11, fontWeight: FontWeight.bold),
|
||||
style: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -433,7 +433,7 @@ class _MobileCarouselLayoutState extends State<MobileCarouselLayout> {
|
||||
'OPTIONS',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 12,
|
||||
fontSize: 15,
|
||||
color: gold,
|
||||
),
|
||||
),
|
||||
@@ -581,7 +581,7 @@ class _MobileCarouselLayoutState extends State<MobileCarouselLayout> {
|
||||
subtitle: Text(
|
||||
l10n.menuDeleteSave,
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
fontSize: 17,
|
||||
color: Theme.of(context).colorScheme.outline,
|
||||
),
|
||||
),
|
||||
@@ -613,7 +613,7 @@ class _MobileCarouselLayoutState extends State<MobileCarouselLayout> {
|
||||
'DEBUG CHEATS',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: Colors.red.shade300,
|
||||
),
|
||||
),
|
||||
@@ -659,7 +659,7 @@ class _MobileCarouselLayoutState extends State<MobileCarouselLayout> {
|
||||
'DEBUG TOOLS',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: Colors.orange.shade300,
|
||||
),
|
||||
),
|
||||
@@ -698,7 +698,7 @@ class _MobileCarouselLayoutState extends State<MobileCarouselLayout> {
|
||||
L10n.of(context).progressQuestTitle(state.traits.name),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 14,
|
||||
color: gold,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -52,7 +52,7 @@ class CharacterSheetPage extends StatelessWidget {
|
||||
title,
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 13,
|
||||
fontSize: 18,
|
||||
color: Theme.of(context).colorScheme.onPrimaryContainer,
|
||||
),
|
||||
),
|
||||
@@ -83,14 +83,14 @@ class CharacterSheetPage extends StatelessWidget {
|
||||
width: 60,
|
||||
child: Text(
|
||||
t.$1,
|
||||
style: TextStyle(fontSize: 12, color: Colors.grey.shade600),
|
||||
style: TextStyle(fontSize: 17, color: Colors.grey.shade600),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: Text(
|
||||
t.$2,
|
||||
style: const TextStyle(
|
||||
fontSize: 13,
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
@@ -122,7 +122,7 @@ class CharacterSheetPage extends StatelessWidget {
|
||||
const SizedBox(height: 4),
|
||||
Text(
|
||||
'${exp.position} / ${exp.max}',
|
||||
style: TextStyle(fontSize: 10, color: Colors.grey.shade600),
|
||||
style: TextStyle(fontSize: 15, color: Colors.grey.shade600),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -35,7 +35,7 @@ class CombatLogPage extends StatelessWidget {
|
||||
title,
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 13,
|
||||
fontSize: 18,
|
||||
color: Theme.of(context).colorScheme.onPrimaryContainer,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -53,7 +53,7 @@ class EquipmentPage extends StatelessWidget {
|
||||
title,
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 13,
|
||||
fontSize: 18,
|
||||
color: gold,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -60,7 +60,7 @@ class InventoryPage extends StatelessWidget {
|
||||
title,
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 13,
|
||||
fontSize: 18,
|
||||
color: Theme.of(context).colorScheme.onPrimaryContainer,
|
||||
),
|
||||
),
|
||||
@@ -89,13 +89,13 @@ class InventoryPage extends StatelessWidget {
|
||||
Expanded(
|
||||
child: Text(
|
||||
localizations.gold,
|
||||
style: const TextStyle(fontSize: 13),
|
||||
style: const TextStyle(fontSize: 18),
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'${inventory.gold}',
|
||||
style: const TextStyle(
|
||||
fontSize: 13,
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.amber,
|
||||
),
|
||||
@@ -120,14 +120,14 @@ class InventoryPage extends StatelessWidget {
|
||||
Expanded(
|
||||
child: Text(
|
||||
translatedName,
|
||||
style: const TextStyle(fontSize: 13),
|
||||
style: const TextStyle(fontSize: 18),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'${item.count}',
|
||||
style: const TextStyle(
|
||||
fontSize: 12,
|
||||
fontSize: 17,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
@@ -157,7 +157,7 @@ class InventoryPage extends StatelessWidget {
|
||||
const SizedBox(height: 4),
|
||||
Text(
|
||||
'$percentage%',
|
||||
style: TextStyle(fontSize: 10, color: Colors.grey.shade600),
|
||||
style: TextStyle(fontSize: 15, color: Colors.grey.shade600),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -39,7 +39,7 @@ class QuestPage extends StatelessWidget {
|
||||
title,
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 13,
|
||||
fontSize: 18,
|
||||
color: Theme.of(context).colorScheme.onPrimaryContainer,
|
||||
),
|
||||
),
|
||||
@@ -53,7 +53,7 @@ class QuestPage extends StatelessWidget {
|
||||
return Center(
|
||||
child: Text(
|
||||
localizations.noActiveQuests,
|
||||
style: const TextStyle(fontSize: 13, color: Colors.grey),
|
||||
style: const TextStyle(fontSize: 18, color: Colors.grey),
|
||||
),
|
||||
);
|
||||
}
|
||||
@@ -85,7 +85,7 @@ class QuestPage extends StatelessWidget {
|
||||
child: Text(
|
||||
entry.caption,
|
||||
style: TextStyle(
|
||||
fontSize: 13,
|
||||
fontSize: 18,
|
||||
decoration: entry.isComplete
|
||||
? TextDecoration.lineThrough
|
||||
: null,
|
||||
@@ -126,7 +126,7 @@ class QuestPage extends StatelessWidget {
|
||||
const SizedBox(height: 4),
|
||||
Text(
|
||||
localizations.percentComplete(percentage),
|
||||
style: TextStyle(fontSize: 10, color: Colors.grey.shade600),
|
||||
style: TextStyle(fontSize: 15, color: Colors.grey.shade600),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -53,7 +53,7 @@ class SkillsPage extends StatelessWidget {
|
||||
title,
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 13,
|
||||
fontSize: 18,
|
||||
color: Theme.of(context).colorScheme.onPrimaryContainer,
|
||||
),
|
||||
),
|
||||
@@ -65,7 +65,7 @@ class SkillsPage extends StatelessWidget {
|
||||
return Center(
|
||||
child: Text(
|
||||
L10n.of(context).noSpellsYet,
|
||||
style: const TextStyle(fontSize: 12, color: Colors.grey),
|
||||
style: const TextStyle(fontSize: 17, color: Colors.grey),
|
||||
),
|
||||
);
|
||||
}
|
||||
@@ -125,7 +125,7 @@ class _SkillRow extends StatelessWidget {
|
||||
child: Text(
|
||||
skillName,
|
||||
style: TextStyle(
|
||||
fontSize: 13,
|
||||
fontSize: 18,
|
||||
color: isOnCooldown ? Colors.grey : null,
|
||||
),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
@@ -138,7 +138,7 @@ class _SkillRow extends StatelessWidget {
|
||||
// 랭크
|
||||
Text(
|
||||
rank,
|
||||
style: const TextStyle(fontSize: 12, fontWeight: FontWeight.bold),
|
||||
style: const TextStyle(fontSize: 17, fontWeight: FontWeight.bold),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -43,7 +43,7 @@ class StoryPage extends StatelessWidget {
|
||||
title,
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 13,
|
||||
fontSize: 18,
|
||||
color: Theme.of(context).colorScheme.onPrimaryContainer,
|
||||
),
|
||||
),
|
||||
@@ -57,7 +57,7 @@ class StoryPage extends StatelessWidget {
|
||||
return Center(
|
||||
child: Text(
|
||||
localizations.prologue,
|
||||
style: const TextStyle(fontSize: 13, color: Colors.grey),
|
||||
style: const TextStyle(fontSize: 18, color: Colors.grey),
|
||||
),
|
||||
);
|
||||
}
|
||||
@@ -85,7 +85,7 @@ class StoryPage extends StatelessWidget {
|
||||
child: Text(
|
||||
label,
|
||||
style: TextStyle(
|
||||
fontSize: 13,
|
||||
fontSize: 18,
|
||||
decoration: isCompleted ? TextDecoration.lineThrough : null,
|
||||
color: isCompleted ? Colors.grey : null,
|
||||
),
|
||||
|
||||
@@ -23,7 +23,7 @@ class ActiveBuffPanel extends StatelessWidget {
|
||||
child: Text(
|
||||
l10n.uiNoActiveBuffs,
|
||||
style: const TextStyle(
|
||||
fontSize: 11,
|
||||
fontSize: 16,
|
||||
color: Colors.grey,
|
||||
fontStyle: FontStyle.italic,
|
||||
),
|
||||
@@ -72,7 +72,7 @@ class _BuffRow extends StatelessWidget {
|
||||
child: Text(
|
||||
buff.effect.name,
|
||||
style: const TextStyle(
|
||||
fontSize: 11,
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w500,
|
||||
color: Colors.lightBlue,
|
||||
),
|
||||
@@ -84,7 +84,7 @@ class _BuffRow extends StatelessWidget {
|
||||
Text(
|
||||
'${remainingSec}s',
|
||||
style: TextStyle(
|
||||
fontSize: 10,
|
||||
fontSize: 15,
|
||||
color: remainingMs < 3000 ? Colors.orange : Colors.grey,
|
||||
fontWeight: remainingMs < 3000
|
||||
? FontWeight.bold
|
||||
@@ -195,7 +195,7 @@ class _ModifierChip extends StatelessWidget {
|
||||
child: Text(
|
||||
'$label: $sign$percent%',
|
||||
style: TextStyle(
|
||||
fontSize: 8,
|
||||
fontSize: 14,
|
||||
color: color,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
|
||||
@@ -628,7 +628,8 @@ class _AsciiAnimationCardState extends State<AsciiAnimationCard> {
|
||||
|
||||
final monsterCategory = getMonsterCategory(monsterName);
|
||||
// 캐시된 사이즈 사용 (사망 시점에 widget.monsterSize가 null일 수 있음)
|
||||
final monsterSize = _lastMonsterSize ??
|
||||
final monsterSize =
|
||||
_lastMonsterSize ??
|
||||
widget.monsterSize ??
|
||||
getMonsterSize(_lastMonsterLevel ?? widget.monsterLevel);
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ class _NavButton extends StatelessWidget {
|
||||
label,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
fontWeight: isSelected ? FontWeight.bold : FontWeight.normal,
|
||||
color: color,
|
||||
),
|
||||
|
||||
@@ -133,7 +133,7 @@ class _CinematicViewState extends State<CinematicView>
|
||||
l10n.translateCinematic(step.text),
|
||||
style: const TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 18,
|
||||
fontSize: 22,
|
||||
fontFamily: 'JetBrainsMono',
|
||||
height: 1.5,
|
||||
),
|
||||
@@ -167,7 +167,7 @@ class _CinematicViewState extends State<CinematicView>
|
||||
l10n.uiSkip,
|
||||
style: const TextStyle(
|
||||
color: Colors.white54,
|
||||
fontSize: 14,
|
||||
fontSize: 18,
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -182,7 +182,7 @@ class _CinematicViewState extends State<CinematicView>
|
||||
l10n.uiTapToContinue,
|
||||
style: TextStyle(
|
||||
color: Colors.white.withValues(alpha: 0.3),
|
||||
fontSize: 12,
|
||||
fontSize: 17,
|
||||
),
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
@@ -213,7 +213,7 @@ class _AsciiArtDisplay extends StatelessWidget {
|
||||
asciiArt,
|
||||
style: const TextStyle(
|
||||
color: Colors.cyan,
|
||||
fontSize: 14,
|
||||
fontSize: 18,
|
||||
fontFamily: 'JetBrainsMono',
|
||||
height: 1.2,
|
||||
),
|
||||
|
||||
@@ -122,7 +122,7 @@ class _LogEntryTile extends StatelessWidget {
|
||||
Text(
|
||||
_formatTime(entry.timestamp),
|
||||
style: TextStyle(
|
||||
fontSize: 10,
|
||||
fontSize: 15,
|
||||
color: Theme.of(context).colorScheme.outline,
|
||||
fontFamily: 'JetBrainsMono',
|
||||
),
|
||||
@@ -139,7 +139,7 @@ class _LogEntryTile extends StatelessWidget {
|
||||
child: Text(
|
||||
entry.message,
|
||||
style: TextStyle(
|
||||
fontSize: 11,
|
||||
fontSize: 16,
|
||||
color: color ?? Theme.of(context).colorScheme.onSurface,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -81,19 +81,19 @@ class DeathOverlay extends StatelessWidget {
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Text('☠', style: TextStyle(fontSize: 16, color: hpColor)),
|
||||
Text('☠', style: TextStyle(fontSize: 20, color: hpColor)),
|
||||
const SizedBox(width: 8),
|
||||
Text(
|
||||
'GAME OVER',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 12,
|
||||
fontSize: 15,
|
||||
color: hpColor,
|
||||
letterSpacing: 2,
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
Text('☠', style: TextStyle(fontSize: 16, color: hpColor)),
|
||||
Text('☠', style: TextStyle(fontSize: 20, color: hpColor)),
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -185,7 +185,7 @@ class DeathOverlay extends StatelessWidget {
|
||||
' ||||| ',
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 12,
|
||||
fontSize: 17,
|
||||
color: hpColor,
|
||||
height: 1.0,
|
||||
),
|
||||
@@ -196,7 +196,7 @@ class DeathOverlay extends StatelessWidget {
|
||||
l10n.deathYouDied.toUpperCase(),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 14,
|
||||
fontSize: 16,
|
||||
color: hpColor,
|
||||
letterSpacing: 2,
|
||||
shadows: [
|
||||
@@ -227,7 +227,7 @@ class DeathOverlay extends StatelessWidget {
|
||||
traits.name,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 11,
|
||||
fontSize: 14,
|
||||
color: gold,
|
||||
),
|
||||
),
|
||||
@@ -236,7 +236,7 @@ class DeathOverlay extends StatelessWidget {
|
||||
'Lv.${deathInfo.levelAtDeath} ${GameDataL10n.getKlassName(context, traits.klass)}',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: textPrimary,
|
||||
),
|
||||
),
|
||||
@@ -259,14 +259,14 @@ class DeathOverlay extends StatelessWidget {
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Text('⚔', style: TextStyle(fontSize: 14, color: hpColor)),
|
||||
Text('⚔', style: TextStyle(fontSize: 18, color: hpColor)),
|
||||
const SizedBox(width: 8),
|
||||
Flexible(
|
||||
child: Text(
|
||||
causeText,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 9,
|
||||
fontSize: 14,
|
||||
color: hpColor,
|
||||
),
|
||||
textAlign: TextAlign.center,
|
||||
@@ -305,7 +305,7 @@ class DeathOverlay extends StatelessWidget {
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
const Text('🔥', style: TextStyle(fontSize: 16)),
|
||||
const Text('🔥', style: TextStyle(fontSize: 20)),
|
||||
const SizedBox(width: 8),
|
||||
Expanded(
|
||||
child: Column(
|
||||
@@ -315,7 +315,7 @@ class DeathOverlay extends StatelessWidget {
|
||||
l10n.deathSacrificedToResurrect.toUpperCase(),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: muted,
|
||||
),
|
||||
),
|
||||
@@ -324,7 +324,7 @@ class DeathOverlay extends StatelessWidget {
|
||||
deathInfo.lostItemName!,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 9,
|
||||
fontSize: 14,
|
||||
color: hpColor,
|
||||
),
|
||||
),
|
||||
@@ -370,13 +370,13 @@ class DeathOverlay extends StatelessWidget {
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
Text(asciiIcon, style: TextStyle(fontSize: 14, color: valueColor)),
|
||||
Text(asciiIcon, style: TextStyle(fontSize: 18, color: valueColor)),
|
||||
const SizedBox(width: 8),
|
||||
Text(
|
||||
label,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: muted,
|
||||
),
|
||||
),
|
||||
@@ -386,7 +386,7 @@ class DeathOverlay extends StatelessWidget {
|
||||
value,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 9,
|
||||
fontSize: 14,
|
||||
color: valueColor,
|
||||
),
|
||||
),
|
||||
@@ -427,7 +427,7 @@ class DeathOverlay extends StatelessWidget {
|
||||
Text(
|
||||
'↺',
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
fontSize: 20,
|
||||
color: expColor,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
@@ -437,7 +437,7 @@ class DeathOverlay extends StatelessWidget {
|
||||
l10n.deathResurrect.toUpperCase(),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 14,
|
||||
color: expColor,
|
||||
letterSpacing: 1,
|
||||
),
|
||||
@@ -486,7 +486,7 @@ class DeathOverlay extends StatelessWidget {
|
||||
Text(
|
||||
isAutoResurrectEnabled ? '◉' : '○',
|
||||
style: TextStyle(
|
||||
fontSize: 14,
|
||||
fontSize: 18,
|
||||
color: buttonColor,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
@@ -496,7 +496,7 @@ class DeathOverlay extends StatelessWidget {
|
||||
l10n.deathAutoResurrect.toUpperCase(),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: buttonColor,
|
||||
letterSpacing: 1,
|
||||
),
|
||||
@@ -507,7 +507,7 @@ class DeathOverlay extends StatelessWidget {
|
||||
'ON',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: mpColor,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
@@ -531,13 +531,13 @@ class DeathOverlay extends StatelessWidget {
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
const Text('📜', style: TextStyle(fontSize: 12)),
|
||||
const Text('📜', style: TextStyle(fontSize: 17)),
|
||||
const SizedBox(width: 6),
|
||||
Text(
|
||||
l10n.deathCombatLog.toUpperCase(),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 9,
|
||||
fontSize: 14,
|
||||
color: gold,
|
||||
),
|
||||
),
|
||||
@@ -572,14 +572,14 @@ class DeathOverlay extends StatelessWidget {
|
||||
padding: const EdgeInsets.symmetric(vertical: 1),
|
||||
child: Row(
|
||||
children: [
|
||||
Text(asciiIcon, style: TextStyle(fontSize: 10, color: color)),
|
||||
Text(asciiIcon, style: TextStyle(fontSize: 15, color: color)),
|
||||
const SizedBox(width: 4),
|
||||
Expanded(
|
||||
child: Text(
|
||||
message,
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 8,
|
||||
fontSize: 14,
|
||||
color: color,
|
||||
),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
|
||||
@@ -298,7 +298,7 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
|
||||
children: [
|
||||
// HP 바
|
||||
Container(
|
||||
height: 14,
|
||||
height: 20,
|
||||
decoration: BoxDecoration(
|
||||
color: isLow
|
||||
? Colors.red.withValues(alpha: 0.2)
|
||||
@@ -309,12 +309,12 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
|
||||
children: [
|
||||
// 라벨
|
||||
Container(
|
||||
width: 28,
|
||||
width: 32,
|
||||
alignment: Alignment.center,
|
||||
child: Text(
|
||||
l10n.statHp,
|
||||
style: const TextStyle(
|
||||
fontSize: 9,
|
||||
fontSize: 11,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.white70,
|
||||
),
|
||||
@@ -332,17 +332,17 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
|
||||
valueColor: AlwaysStoppedAnimation(
|
||||
isLow ? Colors.red : Colors.red.shade600,
|
||||
),
|
||||
minHeight: 14,
|
||||
minHeight: 20,
|
||||
),
|
||||
),
|
||||
),
|
||||
// 수치
|
||||
Container(
|
||||
width: 48,
|
||||
width: 56,
|
||||
alignment: Alignment.center,
|
||||
child: Text(
|
||||
'$_currentHp/$_currentHpMax',
|
||||
style: const TextStyle(fontSize: 8, color: Colors.white),
|
||||
style: const TextStyle(fontSize: 11, color: Colors.white),
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -361,7 +361,7 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
|
||||
child: Text(
|
||||
_hpChange > 0 ? '+$_hpChange' : '$_hpChange',
|
||||
style: TextStyle(
|
||||
fontSize: 11,
|
||||
fontSize: 13,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: _hpChange < 0 ? Colors.red : Colors.green,
|
||||
shadows: const [
|
||||
@@ -389,7 +389,7 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Container(
|
||||
height: 14,
|
||||
height: 20,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.grey.shade800,
|
||||
borderRadius: BorderRadius.circular(3),
|
||||
@@ -397,12 +397,12 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
|
||||
child: Row(
|
||||
children: [
|
||||
Container(
|
||||
width: 28,
|
||||
width: 32,
|
||||
alignment: Alignment.center,
|
||||
child: Text(
|
||||
l10n.statMp,
|
||||
style: const TextStyle(
|
||||
fontSize: 9,
|
||||
fontSize: 11,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.white70,
|
||||
),
|
||||
@@ -419,16 +419,16 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
|
||||
valueColor: AlwaysStoppedAnimation(
|
||||
Colors.blue.shade600,
|
||||
),
|
||||
minHeight: 14,
|
||||
minHeight: 20,
|
||||
),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
width: 48,
|
||||
width: 56,
|
||||
alignment: Alignment.center,
|
||||
child: Text(
|
||||
'$_currentMp/$_currentMpMax',
|
||||
style: const TextStyle(fontSize: 8, color: Colors.white),
|
||||
style: const TextStyle(fontSize: 11, color: Colors.white),
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -446,7 +446,7 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
|
||||
child: Text(
|
||||
_mpChange > 0 ? '+$_mpChange' : '$_mpChange',
|
||||
style: TextStyle(
|
||||
fontSize: 11,
|
||||
fontSize: 13,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: _mpChange < 0 ? Colors.orange : Colors.cyan,
|
||||
shadows: const [
|
||||
@@ -534,7 +534,7 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Container(
|
||||
height: 36,
|
||||
height: 52,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.orange.withValues(alpha: 0.1),
|
||||
borderRadius: BorderRadius.circular(4),
|
||||
@@ -560,14 +560,14 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
|
||||
valueColor: const AlwaysStoppedAnimation(
|
||||
Colors.orange,
|
||||
),
|
||||
minHeight: 12,
|
||||
minHeight: 16,
|
||||
),
|
||||
),
|
||||
// HP% 중앙 오버레이
|
||||
Text(
|
||||
'${(ratio * 100).toInt()}%',
|
||||
style: TextStyle(
|
||||
fontSize: 9,
|
||||
fontSize: 12,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.white,
|
||||
shadows: [
|
||||
@@ -589,7 +589,7 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
|
||||
child: Text(
|
||||
'Lv.$monsterLevel $monsterName',
|
||||
style: const TextStyle(
|
||||
fontSize: 9,
|
||||
fontSize: 12,
|
||||
color: Colors.orange,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
@@ -615,7 +615,7 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
|
||||
? '+$_monsterHpChange'
|
||||
: '$_monsterHpChange',
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
fontSize: 17,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: _monsterHpChange < 0
|
||||
? Colors.yellow
|
||||
@@ -637,14 +637,14 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
|
||||
/// 컨트롤 버튼 (비전투 시)
|
||||
Widget _buildControlButtons() {
|
||||
return SizedBox(
|
||||
height: 32,
|
||||
height: 40,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
// 일시정지 버튼
|
||||
SizedBox(
|
||||
width: 36,
|
||||
height: 28,
|
||||
width: 40,
|
||||
height: 36,
|
||||
child: OutlinedButton(
|
||||
onPressed: widget.onPauseToggle,
|
||||
style: OutlinedButton.styleFrom(
|
||||
@@ -660,7 +660,7 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
|
||||
),
|
||||
child: Icon(
|
||||
widget.isPaused ? Icons.play_arrow : Icons.pause,
|
||||
size: 14,
|
||||
size: 18,
|
||||
color: widget.isPaused ? Colors.orange : null,
|
||||
),
|
||||
),
|
||||
@@ -668,8 +668,8 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
|
||||
const SizedBox(width: 4),
|
||||
// 속도 버튼
|
||||
SizedBox(
|
||||
width: 36,
|
||||
height: 28,
|
||||
width: 44,
|
||||
height: 36,
|
||||
child: OutlinedButton(
|
||||
onPressed: widget.onSpeedCycle,
|
||||
style: OutlinedButton.styleFrom(
|
||||
@@ -679,7 +679,7 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
|
||||
child: Text(
|
||||
'${widget.speedMultiplier}x',
|
||||
style: TextStyle(
|
||||
fontSize: 10,
|
||||
fontSize: 12,
|
||||
fontWeight: widget.speedMultiplier > 1
|
||||
? FontWeight.bold
|
||||
: FontWeight.normal,
|
||||
|
||||
@@ -102,7 +102,7 @@ class _EquipmentSlotTile extends StatelessWidget {
|
||||
child: Text(
|
||||
translatedName,
|
||||
style: TextStyle(
|
||||
fontSize: 11,
|
||||
fontSize: 16,
|
||||
color: rarityColor,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
@@ -148,7 +148,7 @@ class _EmptySlotTile extends StatelessWidget {
|
||||
title: Text(
|
||||
'[${_getSlotName(slot)}] ${l10n.uiEmpty}',
|
||||
style: TextStyle(
|
||||
fontSize: 11,
|
||||
fontSize: 16,
|
||||
color: textMuted,
|
||||
fontStyle: FontStyle.italic,
|
||||
),
|
||||
@@ -209,7 +209,7 @@ class _ScoreBadge extends StatelessWidget {
|
||||
child: Text(
|
||||
'$score',
|
||||
style: TextStyle(
|
||||
fontSize: 10,
|
||||
fontSize: 15,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: gold,
|
||||
),
|
||||
@@ -264,12 +264,12 @@ class _TotalScoreHeader extends StatelessWidget {
|
||||
children: [
|
||||
Text(
|
||||
l10n.uiEquipmentScore,
|
||||
style: TextStyle(fontSize: 10, color: textSecondary),
|
||||
style: TextStyle(fontSize: 15, color: textSecondary),
|
||||
),
|
||||
Text(
|
||||
'$totalScore',
|
||||
style: TextStyle(
|
||||
fontSize: 18,
|
||||
fontSize: 22,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: gold,
|
||||
),
|
||||
@@ -288,7 +288,7 @@ class _TotalScoreHeader extends StatelessWidget {
|
||||
child: Text(
|
||||
'$equippedCount / $totalSlots',
|
||||
style: TextStyle(
|
||||
fontSize: 11,
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w500,
|
||||
color: textPrimary,
|
||||
),
|
||||
@@ -391,7 +391,7 @@ class _StatsGrid extends StatelessWidget {
|
||||
if (entries.isEmpty) {
|
||||
return Text(
|
||||
l10n.uiNoBonusStats,
|
||||
style: TextStyle(fontSize: 10, color: RetroColors.textMutedOf(context)),
|
||||
style: TextStyle(fontSize: 15, color: RetroColors.textMutedOf(context)),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -435,12 +435,12 @@ class _StatChip extends StatelessWidget {
|
||||
children: [
|
||||
Text(
|
||||
'${entry.label}: ',
|
||||
style: TextStyle(fontSize: 9, color: textMuted),
|
||||
style: TextStyle(fontSize: 15, color: textMuted),
|
||||
),
|
||||
Text(
|
||||
entry.value,
|
||||
style: TextStyle(
|
||||
fontSize: 9,
|
||||
fontSize: 15,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: textPrimary,
|
||||
),
|
||||
@@ -466,13 +466,13 @@ class _ItemMetaRow extends StatelessWidget {
|
||||
children: [
|
||||
Text(
|
||||
l10n.uiLevel(item.level),
|
||||
style: TextStyle(fontSize: 9, color: textMuted),
|
||||
style: TextStyle(fontSize: 15, color: textMuted),
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
Text(
|
||||
rarityName,
|
||||
style: TextStyle(
|
||||
fontSize: 9,
|
||||
fontSize: 15,
|
||||
color: _getRarityColor(item.rarity),
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
@@ -480,7 +480,7 @@ class _ItemMetaRow extends StatelessWidget {
|
||||
const SizedBox(width: 8),
|
||||
Text(
|
||||
l10n.uiWeight(item.weight),
|
||||
style: TextStyle(fontSize: 9, color: textMuted),
|
||||
style: TextStyle(fontSize: 15, color: textMuted),
|
||||
),
|
||||
],
|
||||
);
|
||||
|
||||
@@ -267,7 +267,7 @@ class _HpMpBarState extends State<HpMpBar> with TickerProviderStateMixin {
|
||||
change > 0 ? '+$change' : '$change',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: isDamage
|
||||
? RetroColors.hpRed
|
||||
@@ -310,7 +310,7 @@ class _HpMpBarState extends State<HpMpBar> with TickerProviderStateMixin {
|
||||
label,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 9,
|
||||
fontSize: 14,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: RetroColors.gold.withValues(alpha: blinkOpacity),
|
||||
),
|
||||
@@ -358,7 +358,7 @@ class _HpMpBarState extends State<HpMpBar> with TickerProviderStateMixin {
|
||||
'$current/$max',
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: RetroColors.textLight,
|
||||
),
|
||||
textAlign: TextAlign.right,
|
||||
@@ -452,7 +452,7 @@ class _HpMpBarState extends State<HpMpBar> with TickerProviderStateMixin {
|
||||
'${(ratio * 100).toInt()}%',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: RetroColors.textLight,
|
||||
shadows: [
|
||||
Shadow(
|
||||
@@ -471,7 +471,7 @@ class _HpMpBarState extends State<HpMpBar> with TickerProviderStateMixin {
|
||||
'$levelPrefix$monsterName',
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 7,
|
||||
fontSize: 12,
|
||||
color: RetroColors.gold,
|
||||
),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
@@ -495,7 +495,7 @@ class _HpMpBarState extends State<HpMpBar> with TickerProviderStateMixin {
|
||||
: '$_monsterHpChange',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 9,
|
||||
fontSize: 14,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: _monsterHpChange < 0
|
||||
? RetroColors.gold
|
||||
|
||||
@@ -163,7 +163,7 @@ class _NotificationCard extends StatelessWidget {
|
||||
asciiIcon,
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 12,
|
||||
fontSize: 17,
|
||||
color: accentColor,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
@@ -175,7 +175,7 @@ class _NotificationCard extends StatelessWidget {
|
||||
_getTypeLabel(notification.type),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 9,
|
||||
fontSize: 14,
|
||||
color: accentColor,
|
||||
letterSpacing: 1,
|
||||
),
|
||||
@@ -188,7 +188,7 @@ class _NotificationCard extends StatelessWidget {
|
||||
'[X]',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 9,
|
||||
fontSize: 14,
|
||||
color: textMuted,
|
||||
),
|
||||
),
|
||||
@@ -222,7 +222,7 @@ class _NotificationCard extends StatelessWidget {
|
||||
notification.title,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 9,
|
||||
fontSize: 14,
|
||||
color: textPrimary,
|
||||
),
|
||||
),
|
||||
@@ -232,7 +232,7 @@ class _NotificationCard extends StatelessWidget {
|
||||
notification.subtitle!,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 9,
|
||||
fontSize: 14,
|
||||
color: textMuted,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -27,7 +27,7 @@ class PotionInventoryPanel extends StatelessWidget {
|
||||
child: Text(
|
||||
l10n.uiNoPotions,
|
||||
style: const TextStyle(
|
||||
fontSize: 11,
|
||||
fontSize: 16,
|
||||
color: Colors.grey,
|
||||
fontStyle: FontStyle.italic,
|
||||
),
|
||||
@@ -115,7 +115,7 @@ class _PotionRow extends StatelessWidget {
|
||||
child: Text(
|
||||
l10n.translateSpell(potion.name),
|
||||
style: TextStyle(
|
||||
fontSize: 11,
|
||||
fontSize: 16,
|
||||
color: color,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
@@ -137,7 +137,7 @@ class _PotionRow extends StatelessWidget {
|
||||
child: Text(
|
||||
'x$quantity',
|
||||
style: TextStyle(
|
||||
fontSize: 10,
|
||||
fontSize: 15,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: color,
|
||||
),
|
||||
@@ -210,7 +210,7 @@ class _HealBadge extends StatelessWidget {
|
||||
),
|
||||
child: Text(
|
||||
healText,
|
||||
style: TextStyle(fontSize: 9, color: Colors.grey.shade700),
|
||||
style: TextStyle(fontSize: 15, color: Colors.grey.shade700),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -92,7 +92,7 @@ class _SkillPanelState extends State<SkillPanel>
|
||||
|
||||
if (skillStates.isEmpty) {
|
||||
return Center(
|
||||
child: Text(l10n.uiNoSkills, style: const TextStyle(fontSize: 11)),
|
||||
child: Text(l10n.uiNoSkills, style: const TextStyle(fontSize: 16)),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -176,7 +176,7 @@ class _SkillRow extends StatelessWidget {
|
||||
child: Text(
|
||||
skill.name,
|
||||
style: TextStyle(
|
||||
fontSize: 10,
|
||||
fontSize: 15,
|
||||
color: isReady
|
||||
? (skill.element != null ? elementColor : Colors.white)
|
||||
: Colors.grey,
|
||||
@@ -195,7 +195,7 @@ class _SkillRow extends StatelessWidget {
|
||||
),
|
||||
child: Text(
|
||||
l10n.uiDot,
|
||||
style: const TextStyle(fontSize: 9, color: Colors.white70),
|
||||
style: const TextStyle(fontSize: 15, color: Colors.white70),
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 4),
|
||||
@@ -204,7 +204,7 @@ class _SkillRow extends StatelessWidget {
|
||||
// 랭크
|
||||
Text(
|
||||
l10n.uiLevel(rank),
|
||||
style: const TextStyle(fontSize: 9, color: Colors.grey),
|
||||
style: const TextStyle(fontSize: 15, color: Colors.grey),
|
||||
),
|
||||
const SizedBox(width: 4),
|
||||
// 쿨타임 상태
|
||||
@@ -213,7 +213,7 @@ class _SkillRow extends StatelessWidget {
|
||||
child: Text(
|
||||
cooldownText,
|
||||
style: TextStyle(
|
||||
fontSize: 9,
|
||||
fontSize: 15,
|
||||
color: isReady ? Colors.green : Colors.orange,
|
||||
fontWeight: isReady ? FontWeight.bold : FontWeight.normal,
|
||||
),
|
||||
|
||||
@@ -159,14 +159,14 @@ class _StatRow extends StatelessWidget {
|
||||
Expanded(
|
||||
child: Text(
|
||||
label,
|
||||
style: const TextStyle(fontSize: 11),
|
||||
style: const TextStyle(fontSize: 16),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
),
|
||||
// 값
|
||||
Text(
|
||||
'$value',
|
||||
style: const TextStyle(fontSize: 11, fontWeight: FontWeight.bold),
|
||||
style: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
|
||||
),
|
||||
// 변화량 표시
|
||||
if (change != null) ...[
|
||||
@@ -206,7 +206,7 @@ class _ChangeIndicator extends StatelessWidget {
|
||||
Text(
|
||||
text,
|
||||
style: TextStyle(
|
||||
fontSize: 10,
|
||||
fontSize: 15,
|
||||
color: color,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
|
||||
@@ -182,7 +182,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
l10n.endingHoldToSpeedUp,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: Colors.white.withValues(alpha: 0.3),
|
||||
),
|
||||
textAlign: TextAlign.center,
|
||||
@@ -208,7 +208,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
'▶▶ x5',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 14,
|
||||
color: gold,
|
||||
),
|
||||
),
|
||||
@@ -279,7 +279,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
l10n.endingCongratulations,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 14,
|
||||
fontSize: 16,
|
||||
color: gold,
|
||||
letterSpacing: 2,
|
||||
),
|
||||
@@ -289,7 +289,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
l10n.endingGameComplete,
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 14,
|
||||
fontSize: 18,
|
||||
color: textPrimary,
|
||||
),
|
||||
),
|
||||
@@ -374,7 +374,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
asciiArt,
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 8,
|
||||
fontSize: 14,
|
||||
color: gold,
|
||||
height: 1.0,
|
||||
),
|
||||
@@ -389,7 +389,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
'═══════════════════',
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 12,
|
||||
fontSize: 17,
|
||||
color: gold.withValues(alpha: 0.5),
|
||||
),
|
||||
),
|
||||
@@ -398,7 +398,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
title,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 12,
|
||||
fontSize: 15,
|
||||
color: gold,
|
||||
letterSpacing: 2,
|
||||
),
|
||||
@@ -408,7 +408,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
'═══════════════════',
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 12,
|
||||
fontSize: 17,
|
||||
color: gold.withValues(alpha: 0.5),
|
||||
),
|
||||
),
|
||||
@@ -429,7 +429,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
widget.traits.name,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 16,
|
||||
fontSize: 18,
|
||||
color: gold,
|
||||
),
|
||||
),
|
||||
@@ -439,7 +439,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
l10n.endingLevelFormat(widget.traits.level),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 14,
|
||||
color: textPrimary,
|
||||
),
|
||||
),
|
||||
@@ -449,7 +449,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
'${GameDataL10n.getKlassName(context, widget.traits.klass)}',
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 12,
|
||||
fontSize: 17,
|
||||
color: textMuted,
|
||||
),
|
||||
),
|
||||
@@ -511,7 +511,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
'$label: ',
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 12,
|
||||
fontSize: 17,
|
||||
color: labelColor.withValues(alpha: 0.7),
|
||||
),
|
||||
),
|
||||
@@ -519,7 +519,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
value,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 14,
|
||||
color: valueColor,
|
||||
),
|
||||
),
|
||||
@@ -565,7 +565,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
label,
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 10,
|
||||
fontSize: 15,
|
||||
color: color.withValues(alpha: 0.5),
|
||||
),
|
||||
),
|
||||
@@ -574,7 +574,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
value,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 12,
|
||||
fontSize: 15,
|
||||
color: color,
|
||||
),
|
||||
),
|
||||
@@ -599,7 +599,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
trophy,
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 12,
|
||||
fontSize: 17,
|
||||
color: gold,
|
||||
height: 1.0,
|
||||
),
|
||||
@@ -619,7 +619,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
l10n.appTitle,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 12,
|
||||
fontSize: 15,
|
||||
color: gold,
|
||||
),
|
||||
),
|
||||
@@ -628,7 +628,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
l10n.endingThankYou,
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 12,
|
||||
fontSize: 17,
|
||||
color: textPrimary,
|
||||
),
|
||||
),
|
||||
@@ -637,7 +637,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
l10n.endingLegendLivesOn,
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 10,
|
||||
fontSize: 15,
|
||||
color: textMuted,
|
||||
fontStyle: FontStyle.italic,
|
||||
),
|
||||
@@ -661,7 +661,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
theEnd,
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 8,
|
||||
fontSize: 14,
|
||||
color: gold,
|
||||
height: 1.0,
|
||||
),
|
||||
@@ -682,7 +682,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
l10n.endingHallOfFameLine1,
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 12,
|
||||
fontSize: 17,
|
||||
color: gold.withValues(alpha: 0.7),
|
||||
),
|
||||
),
|
||||
@@ -691,7 +691,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
l10n.endingHallOfFameLine2,
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 12,
|
||||
fontSize: 17,
|
||||
color: gold.withValues(alpha: 0.7),
|
||||
),
|
||||
),
|
||||
@@ -720,7 +720,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
|
||||
l10n.endingHallOfFameButton,
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 14,
|
||||
),
|
||||
),
|
||||
],
|
||||
|
||||
@@ -81,7 +81,7 @@ class GameClearDialog extends StatelessWidget {
|
||||
l10n.hofVictory.toUpperCase(),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 12,
|
||||
fontSize: 11,
|
||||
color: goldColor,
|
||||
),
|
||||
),
|
||||
@@ -99,7 +99,7 @@ class GameClearDialog extends StatelessWidget {
|
||||
l10n.hofDefeatedGlitchGod,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 7,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textPrimaryOf(context),
|
||||
),
|
||||
textAlign: TextAlign.center,
|
||||
@@ -112,7 +112,7 @@ class GameClearDialog extends StatelessWidget {
|
||||
entry.characterName,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 11,
|
||||
color: goldColor,
|
||||
),
|
||||
),
|
||||
@@ -122,7 +122,7 @@ class GameClearDialog extends StatelessWidget {
|
||||
'${GameDataL10n.getKlassName(context, entry.klass)}',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textSecondaryOf(context),
|
||||
),
|
||||
),
|
||||
@@ -156,7 +156,7 @@ class GameClearDialog extends StatelessWidget {
|
||||
l10n.hofLegendEnshrined,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 11,
|
||||
fontStyle: FontStyle.italic,
|
||||
color: goldColor,
|
||||
),
|
||||
@@ -184,7 +184,7 @@ class GameClearDialog extends StatelessWidget {
|
||||
l10n.hofViewHallOfFame.toUpperCase(),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textSecondaryOf(context),
|
||||
),
|
||||
),
|
||||
@@ -205,7 +205,7 @@ class GameClearDialog extends StatelessWidget {
|
||||
l10n.hofNewGame.toUpperCase(),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 11,
|
||||
color: RetroColors.backgroundOf(context),
|
||||
),
|
||||
),
|
||||
@@ -235,7 +235,7 @@ class GameClearDialog extends StatelessWidget {
|
||||
value,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 11,
|
||||
color: goldColor,
|
||||
),
|
||||
),
|
||||
@@ -244,7 +244,7 @@ class GameClearDialog extends StatelessWidget {
|
||||
label,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 5,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textMutedOf(context),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -63,7 +63,7 @@ class HallOfFameEntryCard extends StatelessWidget {
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
color: rankColor,
|
||||
fontSize: 10,
|
||||
fontSize: 13,
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -82,7 +82,7 @@ class HallOfFameEntryCard extends StatelessWidget {
|
||||
entry.characterName,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: RetroColors.goldOf(context),
|
||||
),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
@@ -108,7 +108,7 @@ class HallOfFameEntryCard extends StatelessWidget {
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
color: RetroColors.mpOf(context),
|
||||
fontSize: 6,
|
||||
fontSize: 11,
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -121,7 +121,7 @@ class HallOfFameEntryCard extends StatelessWidget {
|
||||
'${GameDataL10n.getKlassName(context, entry.klass)}',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textSecondaryOf(context),
|
||||
),
|
||||
),
|
||||
@@ -168,7 +168,7 @@ class HallOfFameEntryCard extends StatelessWidget {
|
||||
entry.formattedClearedDate,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 5,
|
||||
fontSize: 11,
|
||||
color: RetroColors.textMutedOf(context),
|
||||
),
|
||||
),
|
||||
@@ -227,7 +227,7 @@ class HallOfFameEntryCard extends StatelessWidget {
|
||||
value,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 5,
|
||||
fontSize: 11,
|
||||
color: color,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -51,7 +51,7 @@ class _HallOfFameScreenState extends State<HallOfFameScreen> {
|
||||
l10n.uiHallOfFame.toUpperCase(),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 14,
|
||||
color: RetroColors.goldOf(context),
|
||||
),
|
||||
),
|
||||
@@ -96,7 +96,7 @@ class _HallOfFameScreenState extends State<HallOfFameScreen> {
|
||||
l10n.hofNoHeroes.toUpperCase(),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 14,
|
||||
color: RetroColors.textSecondaryOf(context),
|
||||
),
|
||||
),
|
||||
@@ -105,7 +105,7 @@ class _HallOfFameScreenState extends State<HallOfFameScreen> {
|
||||
l10n.hofDefeatGlitchGod,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 7,
|
||||
fontSize: 12,
|
||||
color: RetroColors.textMutedOf(context),
|
||||
),
|
||||
textAlign: TextAlign.center,
|
||||
@@ -149,7 +149,7 @@ class _HallOfFameScreenState extends State<HallOfFameScreen> {
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
color: goldColor,
|
||||
fontSize: 10,
|
||||
fontSize: 14,
|
||||
letterSpacing: 1,
|
||||
),
|
||||
),
|
||||
@@ -192,7 +192,10 @@ class _HallOfFameScreenState extends State<HallOfFameScreen> {
|
||||
Text(
|
||||
'${entry.characterName} (Lv.${entry.level})\n'
|
||||
'${l10n.uiConfirmDelete}',
|
||||
style: const TextStyle(fontFamily: 'PressStart2P', fontSize: 7),
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 12,
|
||||
),
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
@@ -238,7 +241,7 @@ class _HallOfFameScreenState extends State<HallOfFameScreen> {
|
||||
SnackBar(
|
||||
content: Text(
|
||||
l10n.uiDeleted,
|
||||
style: const TextStyle(fontFamily: 'PressStart2P', fontSize: 6),
|
||||
style: const TextStyle(fontFamily: 'PressStart2P', fontSize: 11),
|
||||
),
|
||||
backgroundColor: RetroColors.mpOf(context),
|
||||
duration: const Duration(seconds: 2),
|
||||
@@ -252,7 +255,7 @@ class _HallOfFameScreenState extends State<HallOfFameScreen> {
|
||||
SnackBar(
|
||||
content: Text(
|
||||
l10n.uiError,
|
||||
style: const TextStyle(fontFamily: 'PressStart2P', fontSize: 6),
|
||||
style: const TextStyle(fontFamily: 'PressStart2P', fontSize: 11),
|
||||
),
|
||||
backgroundColor: RetroColors.hpOf(context),
|
||||
duration: const Duration(seconds: 2),
|
||||
|
||||
@@ -35,7 +35,7 @@ class HeroDetailDialog extends StatelessWidget {
|
||||
'Lv.${entry.level}',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 10,
|
||||
color: RetroColors.textSecondaryOf(context),
|
||||
),
|
||||
),
|
||||
@@ -119,7 +119,7 @@ class HeroDetailDialog extends StatelessWidget {
|
||||
title.toUpperCase(),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 7,
|
||||
fontSize: 10,
|
||||
color: goldColor,
|
||||
),
|
||||
),
|
||||
@@ -333,7 +333,7 @@ class HeroDetailDialog extends StatelessWidget {
|
||||
'$label ',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 5,
|
||||
fontSize: 10,
|
||||
color: color,
|
||||
),
|
||||
),
|
||||
@@ -341,7 +341,7 @@ class HeroDetailDialog extends StatelessWidget {
|
||||
value,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 5,
|
||||
fontSize: 10,
|
||||
color: color,
|
||||
),
|
||||
),
|
||||
@@ -376,7 +376,7 @@ class HeroDetailDialog extends StatelessWidget {
|
||||
value,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 10,
|
||||
color: goldColor,
|
||||
),
|
||||
),
|
||||
@@ -384,7 +384,7 @@ class HeroDetailDialog extends StatelessWidget {
|
||||
label,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 4,
|
||||
fontSize: 10,
|
||||
color: RetroColors.textMutedOf(context),
|
||||
),
|
||||
),
|
||||
@@ -441,7 +441,7 @@ class HeroDetailDialog extends StatelessWidget {
|
||||
slotLabel,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 5,
|
||||
fontSize: 10,
|
||||
color: mutedColor,
|
||||
),
|
||||
),
|
||||
@@ -462,7 +462,7 @@ class HeroDetailDialog extends StatelessWidget {
|
||||
_getRarityLabel(item.rarity),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 4,
|
||||
fontSize: 10,
|
||||
color: rarityColor,
|
||||
),
|
||||
),
|
||||
@@ -475,7 +475,7 @@ class HeroDetailDialog extends StatelessWidget {
|
||||
translatedName,
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 10,
|
||||
color: rarityColor,
|
||||
),
|
||||
),
|
||||
@@ -561,7 +561,7 @@ class HeroDetailDialog extends StatelessWidget {
|
||||
'$label $value',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 5,
|
||||
fontSize: 10,
|
||||
color: color,
|
||||
),
|
||||
),
|
||||
@@ -651,7 +651,7 @@ class HeroDetailDialog extends StatelessWidget {
|
||||
l10n.hofNoSkills.toUpperCase(),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 6,
|
||||
fontSize: 10,
|
||||
color: RetroColors.textMutedOf(context),
|
||||
),
|
||||
),
|
||||
@@ -679,7 +679,7 @@ class HeroDetailDialog extends StatelessWidget {
|
||||
'$translatedName $rank',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 5,
|
||||
fontSize: 10,
|
||||
color: skillColor.shade400,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -279,7 +279,7 @@ class _NewCharacterScreenState extends State<NewCharacterScreen> {
|
||||
L10n.of(context).newCharacterTitle.toUpperCase(),
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 12,
|
||||
fontSize: 15,
|
||||
color: RetroColors.gold,
|
||||
),
|
||||
),
|
||||
@@ -367,7 +367,7 @@ class _NewCharacterScreenState extends State<NewCharacterScreen> {
|
||||
'DEBUG: TURBO MODE (20x)',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: _cheatsEnabled
|
||||
? RetroColors.hpRed
|
||||
: RetroColors.textDisabled,
|
||||
@@ -396,7 +396,7 @@ class _NewCharacterScreenState extends State<NewCharacterScreen> {
|
||||
controller: _nameController,
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 10,
|
||||
fontSize: 14,
|
||||
color: RetroColors.textLight,
|
||||
),
|
||||
// 영문 알파벳만 허용 (공백 불가)
|
||||
@@ -407,7 +407,7 @@ class _NewCharacterScreenState extends State<NewCharacterScreen> {
|
||||
labelText: l10n.name,
|
||||
labelStyle: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: RetroColors.gold,
|
||||
),
|
||||
border: const OutlineInputBorder(
|
||||
@@ -470,7 +470,7 @@ class _NewCharacterScreenState extends State<NewCharacterScreen> {
|
||||
l10n.total.toUpperCase(),
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: RetroColors.textLight,
|
||||
),
|
||||
@@ -479,7 +479,7 @@ class _NewCharacterScreenState extends State<NewCharacterScreen> {
|
||||
'$_total',
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 14,
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: _getTotalColor(),
|
||||
),
|
||||
@@ -515,7 +515,7 @@ class _NewCharacterScreenState extends State<NewCharacterScreen> {
|
||||
game_l10n.uiRollHistory(_rollHistory.length),
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: RetroColors.textDisabled,
|
||||
),
|
||||
),
|
||||
@@ -540,7 +540,7 @@ class _NewCharacterScreenState extends State<NewCharacterScreen> {
|
||||
label.toUpperCase(),
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 13,
|
||||
color: RetroColors.gold,
|
||||
),
|
||||
),
|
||||
@@ -549,7 +549,7 @@ class _NewCharacterScreenState extends State<NewCharacterScreen> {
|
||||
'$value',
|
||||
style: const TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 12,
|
||||
fontSize: 17,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: RetroColors.textLight,
|
||||
),
|
||||
@@ -598,7 +598,7 @@ class _NewCharacterScreenState extends State<NewCharacterScreen> {
|
||||
GameDataL10n.getRaceName(context, race.name),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 14,
|
||||
color: isSelected
|
||||
? RetroColors.gold
|
||||
: RetroColors.textLight,
|
||||
@@ -638,12 +638,15 @@ class _NewCharacterScreenState extends State<NewCharacterScreen> {
|
||||
if (statMods.isNotEmpty)
|
||||
Text(
|
||||
statMods.join(', '),
|
||||
style: const TextStyle(fontSize: 9, color: RetroColors.textLight),
|
||||
style: const TextStyle(
|
||||
fontSize: 15,
|
||||
color: RetroColors.textLight,
|
||||
),
|
||||
),
|
||||
if (passiveDesc.isNotEmpty)
|
||||
Text(
|
||||
passiveDesc,
|
||||
style: const TextStyle(fontSize: 9, color: RetroColors.expGreen),
|
||||
style: const TextStyle(fontSize: 15, color: RetroColors.expGreen),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -714,7 +717,7 @@ class _NewCharacterScreenState extends State<NewCharacterScreen> {
|
||||
GameDataL10n.getKlassName(context, klass.name),
|
||||
style: TextStyle(
|
||||
fontFamily: 'PressStart2P',
|
||||
fontSize: 8,
|
||||
fontSize: 14,
|
||||
color: isSelected
|
||||
? RetroColors.gold
|
||||
: RetroColors.textLight,
|
||||
@@ -754,12 +757,15 @@ class _NewCharacterScreenState extends State<NewCharacterScreen> {
|
||||
if (statMods.isNotEmpty)
|
||||
Text(
|
||||
statMods.join(', '),
|
||||
style: const TextStyle(fontSize: 9, color: RetroColors.textLight),
|
||||
style: const TextStyle(
|
||||
fontSize: 15,
|
||||
color: RetroColors.textLight,
|
||||
),
|
||||
),
|
||||
if (passiveDesc.isNotEmpty)
|
||||
Text(
|
||||
passiveDesc,
|
||||
style: const TextStyle(fontSize: 9, color: RetroColors.expGreen),
|
||||
style: const TextStyle(fontSize: 15, color: RetroColors.expGreen),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -110,7 +110,7 @@ class _RacePreviewState extends State<RacePreview> {
|
||||
text: char,
|
||||
style: TextStyle(
|
||||
fontFamily: 'JetBrainsMono',
|
||||
fontSize: 18,
|
||||
fontSize: 22,
|
||||
height: 1.2,
|
||||
color: _getCharColor(char),
|
||||
),
|
||||
|
||||
@@ -361,7 +361,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
Text(
|
||||
label,
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
fontSize: 17,
|
||||
fontWeight: isSelected ? FontWeight.bold : FontWeight.normal,
|
||||
color: isSelected
|
||||
? theme.colorScheme.onPrimaryContainer
|
||||
|
||||
Reference in New Issue
Block a user