fix(animation): ASCII 애니메이션 높낮이/공백 문제 수정

- walkingAnimation, townAnimation 4줄 → 3줄 통일
- character_frames.dart 모든 프레임 폭 6자로 통일
- _compose() 이펙트 Y 위치 동적 계산 (하드코딩 제거)
- withShield() 3줄 캐릭터용으로 수정 (index 3 → index 1)
- BattleComposer 캔버스 시스템 및 배경 합성 추가
- 무기 카테고리별 이펙트, 몬스터 크기/색상 시스템 구현
This commit is contained in:
JiWoong Sul
2025-12-13 18:22:50 +09:00
parent e30177e788
commit 598c25e4c9
14 changed files with 2052 additions and 355 deletions

View File

@@ -16,6 +16,10 @@ class TaskProgressPanel extends StatelessWidget {
required this.colorTheme,
required this.onThemeCycle,
this.specialAnimation,
this.weaponName,
this.shieldName,
this.characterLevel,
this.monsterLevel,
});
final ProgressState progress;
@@ -27,6 +31,12 @@ class TaskProgressPanel extends StatelessWidget {
/// 특수 애니메이션 (레벨업, 퀘스트 완료 등)
final AsciiAnimationType? specialAnimation;
/// 장비 정보 (애니메이션 스타일 결정용)
final String? weaponName;
final String? shieldName;
final int? characterLevel;
final int? monsterLevel;
@override
Widget build(BuildContext context) {
return Container(
@@ -48,6 +58,10 @@ class TaskProgressPanel extends StatelessWidget {
monsterBaseName: progress.currentTask.monsterBaseName,
colorTheme: colorTheme,
specialAnimation: specialAnimation,
weaponName: weaponName,
shieldName: shieldName,
characterLevel: characterLevel,
monsterLevel: monsterLevel,
),
),
const SizedBox(height: 8),