feat(game): 게임 시스템 전면 개편 및 다국어 지원 확장

## 스킬 시스템 개선
- skill_data.dart: 스킬 데이터 구조 전면 개편 (+1176 라인)
- skill_service.dart: 스킬 발동 로직 확장 및 버프 시스템 연동
- skill.dart: 스킬 모델 개선, 쿨다운/효과 타입 추가

## Canvas 애니메이션 리팩토링
- battle_composer.dart 삭제 (레거시 위젯 기반 렌더러)
- monster_colors.dart 삭제 (AsciiCell 색상 시스템으로 통합)
- canvas_battle_composer.dart: z-index 정렬 (몬스터 z=1, 캐릭터 z=2, 이펙트 z=3)
- ascii_cell.dart, ascii_layer.dart: 코드 정리

## UI/UX 개선
- hp_mp_bar.dart: l10n 적용, 몬스터 HP 바 컴팩트화
- death_overlay.dart: 사망 화면 개선
- equipment_stats_panel.dart: 장비 스탯 표시 확장
- active_buff_panel.dart: 버프 패널 개선
- notification_overlay.dart: 알림 시스템 개선

## 다국어 지원 확장
- game_text_l10n.dart: 게임 텍스트 통합 (+758 라인)
- 한국어/일본어/영어/중국어 번역 업데이트
- ARB 파일 동기화

## 게임 로직 개선
- progress_service.dart: 진행 로직 리팩토링
- combat_calculator.dart: 전투 계산 로직 개선
- stat_calculator.dart: 스탯 계산 시스템 개선
- story_service.dart: 스토리 진행 로직 개선

## 기타
- theme_preferences.dart 삭제 (미사용)
- 테스트 파일 업데이트
- class_data.dart: 클래스 데이터 정리
This commit is contained in:
JiWoong Sul
2025-12-22 19:00:58 +09:00
parent f606fca063
commit 99f5b74802
63 changed files with 3403 additions and 2740 deletions

View File

@@ -78,11 +78,11 @@
"xpNeededForNextLevel": "XP needed for next level",
"@xpNeededForNextLevel": { "description": "XP needed tooltip" },
"spellBook": "Spell Book",
"@spellBook": { "description": "Spell book section title" },
"spellBook": "Skills",
"@spellBook": { "description": "Skills section title (unified spellbook + skills)" },
"noSpellsYet": "No spells yet",
"@noSpellsYet": { "description": "Empty spell book message" },
"noSpellsYet": "No skills yet",
"@noSpellsYet": { "description": "Empty skills message" },
"equipment": "Equipment",
"@equipment": { "description": "Equipment panel title" },

View File

@@ -25,8 +25,8 @@
"stats": "Stats",
"experience": "Experience",
"xpNeededForNextLevel": "XP needed for next level",
"spellBook": "Spell Book",
"noSpellsYet": "No spells yet",
"spellBook": "スキル",
"noSpellsYet": "習得したスキルがありません",
"equipment": "Equipment",
"inventory": "Inventory",
"encumbrance": "Encumbrance",

View File

@@ -25,7 +25,7 @@
"stats": "능력치",
"experience": "경험치",
"xpNeededForNextLevel": "다음 레벨까지 필요한 XP",
"spellBook": "스킬",
"spellBook": "스킬",
"noSpellsYet": "습득한 스킬이 없습니다",
"equipment": "장비",
"inventory": "인벤토리",

View File

@@ -245,16 +245,16 @@ abstract class L10n {
/// **'XP needed for next level'**
String get xpNeededForNextLevel;
/// Spell book section title
/// Skills section title (unified spellbook + skills)
///
/// In en, this message translates to:
/// **'Spell Book'**
/// **'Skills'**
String get spellBook;
/// Empty spell book message
/// Empty skills message
///
/// In en, this message translates to:
/// **'No spells yet'**
/// **'No skills yet'**
String get noSpellsYet;
/// Equipment panel title

View File

@@ -83,10 +83,10 @@ class L10nEn extends L10n {
String get xpNeededForNextLevel => 'XP needed for next level';
@override
String get spellBook => 'Spell Book';
String get spellBook => 'Skills';
@override
String get noSpellsYet => 'No spells yet';
String get noSpellsYet => 'No skills yet';
@override
String get equipment => 'Equipment';

View File

@@ -83,10 +83,10 @@ class L10nJa extends L10n {
String get xpNeededForNextLevel => 'XP needed for next level';
@override
String get spellBook => 'Spell Book';
String get spellBook => 'スキル';
@override
String get noSpellsYet => 'No spells yet';
String get noSpellsYet => '習得したスキルがありません';
@override
String get equipment => 'Equipment';

View File

@@ -83,7 +83,7 @@ class L10nKo extends L10n {
String get xpNeededForNextLevel => '다음 레벨까지 필요한 XP';
@override
String get spellBook => '스킬';
String get spellBook => '스킬';
@override
String get noSpellsYet => '습득한 스킬이 없습니다';

View File

@@ -83,10 +83,10 @@ class L10nZh extends L10n {
String get xpNeededForNextLevel => 'XP needed for next level';
@override
String get spellBook => 'Spell Book';
String get spellBook => '技能';
@override
String get noSpellsYet => 'No spells yet';
String get noSpellsYet => '暂无技能';
@override
String get equipment => 'Equipment';

View File

@@ -25,8 +25,8 @@
"stats": "Stats",
"experience": "Experience",
"xpNeededForNextLevel": "XP needed for next level",
"spellBook": "Spell Book",
"noSpellsYet": "No spells yet",
"spellBook": "技能",
"noSpellsYet": "暂无技能",
"equipment": "Equipment",
"inventory": "Inventory",
"encumbrance": "Encumbrance",