diff --git a/lib/src/features/game/widgets/ascii_animation_card.dart b/lib/src/features/game/widgets/ascii_animation_card.dart index cf0f0c1..d859af9 100644 --- a/lib/src/features/game/widgets/ascii_animation_card.dart +++ b/lib/src/features/game/widgets/ascii_animation_card.dart @@ -242,6 +242,14 @@ class _AsciiAnimationCardState extends State { _lastMonsterBaseName = widget.monsterBaseName; } + // 새 몬스터 등장 시 사망 애니메이션 상태 리셋 + // (이전 몬스터 사망 애니메이션이 끝나기 전에 새 전투 시작 시 대응) + if (oldWidget.monsterBaseName != widget.monsterBaseName && + widget.monsterBaseName != null) { + _showDeathAnimation = false; + _deathAnimationMonsterLines = null; + } + if (oldWidget.taskType != widget.taskType || oldWidget.monsterBaseName != widget.monsterBaseName || oldWidget.weaponName != widget.weaponName || @@ -550,6 +558,9 @@ class _AsciiAnimationCardState extends State { _battleSubFrame = 0; _phaseIndex = 0; _phaseFrameCount = 0; + // 새 전투 시작 시 사망 애니메이션 상태 리셋 (몬스터 숨김 방지) + _showDeathAnimation = false; + _deathAnimationMonsterLines = null; } case AsciiAnimationType.town: