From e2a9032009409f630804e08a849873c7bc61be93 Mon Sep 17 00:00:00 2001 From: JiWoong Sul Date: Mon, 30 Mar 2026 23:19:05 +0900 Subject: [PATCH] =?UTF-8?q?fix(buff):=20=EC=95=B1=20=EC=9E=AC=EC=8B=9C?= =?UTF-8?q?=EC=9E=91=20=EC=8B=9C=20=EB=B0=B0=EC=86=8D/=EC=9E=90=EB=8F=99?= =?UTF-8?q?=EB=B6=80=ED=99=9C=20=EB=B2=84=ED=94=84=20=EC=B4=88=EA=B8=B0?= =?UTF-8?q?=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - loadAndStart에서 speedBoostEndMs, autoReviveEndMs를 null로 클리어 - 임시 버프는 세션 한정, 앱 재시작 시 깨끗한 상태로 시작 - 불필요한 restoreFromMonetization 메서드 제거 --- .../game/game_session_controller.dart | 8 +++---- .../game/managers/speed_boost_manager.dart | 24 ------------------- 2 files changed, 4 insertions(+), 28 deletions(-) diff --git a/lib/src/features/game/game_session_controller.dart b/lib/src/features/game/game_session_controller.dart index 9bffa6b..f169faa 100644 --- a/lib/src/features/game/game_session_controller.dart +++ b/lib/src/features/game/game_session_controller.dart @@ -294,10 +294,10 @@ class GameSessionController extends ChangeNotifier { // 비모바일 플랫폼 또는 테스트 환경에서는 무시 } - // 속도 부스트 상태 복원 (앱 재시작 대응) - _speedBoostManager.restoreFromMonetization( - monetization: _monetization, - loop: null, // startNew에서 loop 생성 후 적용됨 + // 앱 재시작 시 임시 버프 초기화 (배속, 자동부활은 세션 한정) + _monetization = _monetization.copyWith( + speedBoostEndMs: null, + autoReviveEndMs: null, ); // 복귀 보상 체크 (Phase 7) diff --git a/lib/src/features/game/managers/speed_boost_manager.dart b/lib/src/features/game/managers/speed_boost_manager.dart index 2e6a4f2..bcd865c 100644 --- a/lib/src/features/game/managers/speed_boost_manager.dart +++ b/lib/src/features/game/managers/speed_boost_manager.dart @@ -194,30 +194,6 @@ class SpeedBoostManager { return monetization.copyWith(speedBoostEndMs: null); } - /// 세이브에서 복원된 MonetizationState 기반으로 배속 상태 복원 - /// - /// 앱 재시작 후 로드 시 호출. speedBoostEndMs가 미래면 배속 재활성화. - void restoreFromMonetization({ - required MonetizationState monetization, - required ProgressLoop? loop, - }) { - final endMs = monetization.speedBoostEndMs; - if (endMs == null) return; - - final now = DateTime.now().millisecondsSinceEpoch; - if (now < endMs) { - // 아직 만료되지 않음 → 배속 재활성화 - _isSpeedBoostActive = true; - if (loop != null) { - savedSpeedMultiplier = loop.speedMultiplier; - loop.updateAvailableSpeeds([speedBoostMultiplier]); - } - debugPrint( - '[SpeedBoost] Restored from save, ${(endMs - now) ~/ 1000}s remaining', - ); - } - } - /// 부스트 상태에 따른 초기 배속 설정 계산 /// /// startNew() 호출 시 사용