feat(canvas): Canvas 기반 ASCII 애니메이션 렌더러 구현
- JetBrains Mono 폰트 번들링 (Android/iOS 호환성) - Paragraph 캐싱으로 GC 압박 최소화 (최대 256개 캐시) - shouldRepaint layerVersion 기반 최적화 - willChange 동적 설정으로 메모리 절약 - 레이어 기반 합성 구조 (배경/캐릭터/몬스터/이펙트) - hp_mp_bar 몬스터 HP 숫자 오버플로우 수정
This commit is contained in:
@@ -152,9 +152,10 @@ class GameSessionController extends ChangeNotifier {
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
/// 플레이어 부활 처리
|
||||
/// 플레이어 부활 처리 (상태만 업데이트, 게임 재개는 별도로)
|
||||
///
|
||||
/// HP/MP 회복, 빈 슬롯에 장비 자동 구매, 게임 재개
|
||||
/// HP/MP 회복, 빈 슬롯에 장비 자동 구매
|
||||
/// 게임 재개는 resumeAfterResurrection()으로 별도 호출 필요
|
||||
Future<void> resurrect() async {
|
||||
if (_state == null || !_state!.isDead) return;
|
||||
|
||||
@@ -164,11 +165,24 @@ class GameSessionController extends ChangeNotifier {
|
||||
|
||||
final resurrectedState = resurrectionService.processResurrection(_state!);
|
||||
|
||||
// 상태 업데이트 (게임 재개 없이)
|
||||
_state = resurrectedState;
|
||||
_status = GameSessionStatus.idle; // 사망 상태 해제
|
||||
|
||||
// 저장
|
||||
await saveManager.saveState(resurrectedState);
|
||||
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
/// 부활 후 게임 재개
|
||||
///
|
||||
/// resurrect() 호출 후 애니메이션이 끝난 뒤 호출
|
||||
Future<void> resumeAfterResurrection() async {
|
||||
if (_state == null) return;
|
||||
|
||||
// 게임 재개
|
||||
await startNew(resurrectedState, cheatsEnabled: _cheatsEnabled, isNewGame: false);
|
||||
await startNew(_state!, cheatsEnabled: _cheatsEnabled, isNewGame: false);
|
||||
}
|
||||
|
||||
/// 사망 상태 여부
|
||||
|
||||
Reference in New Issue
Block a user