From 1ec59ba80da4aca005ae3300361b4b1e4a5fc4b2 Mon Sep 17 00:00:00 2001 From: airkjw Date: Sat, 13 Jun 2026 14:09:02 +0900 Subject: [PATCH] fix(ads): reset ad round in startStage so nextStage advance counts (review fix) Co-Authored-By: Claude Sonnet 4.6 --- lib/state/game_session_notifier.dart | 2 +- lib/ui/screens/game_screen.dart | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/state/game_session_notifier.dart b/lib/state/game_session_notifier.dart index 23bf05a..6634dd0 100644 --- a/lib/state/game_session_notifier.dart +++ b/lib/state/game_session_notifier.dart @@ -68,6 +68,7 @@ class GameSessionNotifier extends Notifier { _engine = GameEngine(stage, attempt: attempt, generator: generator); _fxTick = 0; _publish(lastPlacement: null); + ref.read(adServiceProvider).onRoundStart(); } /// Restarts the current stage as a new attempt (fresh piece sequence). @@ -75,7 +76,6 @@ class GameSessionNotifier extends Notifier { final stage = _stage; if (stage == null) throw StateError('no stage to restart'); startStage(stage, attempt: _attempt + 1, generator: _generatorOverride); - ref.read(adServiceProvider).onRoundStart(); if (stage.endless) { ref.read(analyticsProvider).endlessStart(); } else { diff --git a/lib/ui/screens/game_screen.dart b/lib/ui/screens/game_screen.dart index 735b961..90cf52b 100644 --- a/lib/ui/screens/game_screen.dart +++ b/lib/ui/screens/game_screen.dart @@ -117,7 +117,6 @@ class _GameScreenState extends ConsumerState void _onSessionChange(GameViewState? prev, GameViewState? next) { if (next == null) return; - if (prev == null) ref.read(adServiceProvider).onRoundStart(); final audio = ref.read(audioServiceProvider); if (prev?.fxTick != next.fxTick && next.lastPlacement != null) { final placement = next.lastPlacement!;