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:
@@ -62,26 +62,10 @@ CharacterFrame getCharacterFrame(BattlePhase phase, int subFrame) {
|
||||
// 구조: [머리, 몸통+팔, 다리]
|
||||
// ============================================================================
|
||||
const _idleFrames = [
|
||||
CharacterFrame([
|
||||
r' o ',
|
||||
r' /|\ ',
|
||||
r' / \ ',
|
||||
]),
|
||||
CharacterFrame([
|
||||
r' o ',
|
||||
r' /|\ ',
|
||||
r' | | ',
|
||||
]),
|
||||
CharacterFrame([
|
||||
r' o ',
|
||||
r' /|\ ',
|
||||
r' / \ ',
|
||||
]),
|
||||
CharacterFrame([
|
||||
r' O ',
|
||||
r' /|\ ',
|
||||
r' / \ ',
|
||||
]),
|
||||
CharacterFrame([r' o ', r' /|\ ', r' / \ ']),
|
||||
CharacterFrame([r' o ', r' /|\ ', r' | | ']),
|
||||
CharacterFrame([r' o ', r' /|\ ', r' / \ ']),
|
||||
CharacterFrame([r' O ', r' /|\ ', r' / \ ']),
|
||||
];
|
||||
|
||||
// ============================================================================
|
||||
@@ -89,21 +73,9 @@ const _idleFrames = [
|
||||
// 구조: [머리, 몸통+팔, 다리]
|
||||
// ============================================================================
|
||||
const _prepareFrames = [
|
||||
CharacterFrame([
|
||||
r' o ',
|
||||
r' \|\ ',
|
||||
r' / \ ',
|
||||
]),
|
||||
CharacterFrame([
|
||||
r' o_ ',
|
||||
r' \| ',
|
||||
r' / \ ',
|
||||
]),
|
||||
CharacterFrame([
|
||||
r' o/ ',
|
||||
r' \| ',
|
||||
r' / \ ',
|
||||
]),
|
||||
CharacterFrame([r' o ', r' \|\ ', r' / \ ']),
|
||||
CharacterFrame([r' o_ ', r' \| ', r' / \ ']),
|
||||
CharacterFrame([r' o/ ', r' \| ', r' / \ ']),
|
||||
];
|
||||
|
||||
// ============================================================================
|
||||
@@ -112,31 +84,11 @@ const _prepareFrames = [
|
||||
// 수정: 공격 이펙트를 머리 줄로 통일 (1칸 위로)
|
||||
// ============================================================================
|
||||
const _attackFrames = [
|
||||
CharacterFrame([
|
||||
r' o\ ',
|
||||
r' /| ',
|
||||
r' / \ ',
|
||||
]),
|
||||
CharacterFrame([
|
||||
r' o- ',
|
||||
r' /| ',
|
||||
r' / \ ',
|
||||
]),
|
||||
CharacterFrame([
|
||||
r' o-- ',
|
||||
r' /| ',
|
||||
r' / \ ',
|
||||
]),
|
||||
CharacterFrame([
|
||||
r' o-=>',
|
||||
r' /| ',
|
||||
r' / \ ',
|
||||
]),
|
||||
CharacterFrame([
|
||||
r' o ',
|
||||
r' /|\ ',
|
||||
r' / \ ',
|
||||
]),
|
||||
CharacterFrame([r' o\ ', r' /| ', r' / \ ']),
|
||||
CharacterFrame([r' o- ', r' /| ', r' / \ ']),
|
||||
CharacterFrame([r' o-- ', r' /| ', r' / \ ']),
|
||||
CharacterFrame([r' o-=>', r' /| ', r' / \ ']),
|
||||
CharacterFrame([r' o ', r' /|\ ', r' / \ ']),
|
||||
];
|
||||
|
||||
// ============================================================================
|
||||
@@ -145,21 +97,9 @@ const _attackFrames = [
|
||||
// 수정: 히트 이펙트를 머리 줄로 통일 (1칸 위로)
|
||||
// ============================================================================
|
||||
const _hitFrames = [
|
||||
CharacterFrame([
|
||||
r' o-* ',
|
||||
r' /| ',
|
||||
r' / \ ',
|
||||
]),
|
||||
CharacterFrame([
|
||||
r' o=* ',
|
||||
r' /| ',
|
||||
r' / \ ',
|
||||
]),
|
||||
CharacterFrame([
|
||||
r' o~* ',
|
||||
r' /| ',
|
||||
r' / \ ',
|
||||
]),
|
||||
CharacterFrame([r' o-* ', r' /| ', r' / \ ']),
|
||||
CharacterFrame([r' o=* ', r' /| ', r' / \ ']),
|
||||
CharacterFrame([r' o~* ', r' /| ', r' / \ ']),
|
||||
];
|
||||
|
||||
// ============================================================================
|
||||
@@ -167,19 +107,7 @@ const _hitFrames = [
|
||||
// 구조: [머리, 몸통+팔, 다리]
|
||||
// ============================================================================
|
||||
const _recoverFrames = [
|
||||
CharacterFrame([
|
||||
r' o ',
|
||||
r' /|\ ',
|
||||
r' | ',
|
||||
]),
|
||||
CharacterFrame([
|
||||
r' o ',
|
||||
r' /|\ ',
|
||||
r' / \ ',
|
||||
]),
|
||||
CharacterFrame([
|
||||
r' o ',
|
||||
r' /|\ ',
|
||||
r' / \ ',
|
||||
]),
|
||||
CharacterFrame([r' o ', r' /|\ ', r' | ']),
|
||||
CharacterFrame([r' o ', r' /|\ ', r' / \ ']),
|
||||
CharacterFrame([r' o ', r' /|\ ', r' / \ ']),
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user