feat(ads): stage-end interstitial gated by policy; restart resets round

This commit is contained in:
2026-06-13 14:03:52 +09:00
parent 3943653a23
commit 297449ccce
2 changed files with 11 additions and 3 deletions
+1
View File
@@ -75,6 +75,7 @@ class GameSessionNotifier extends Notifier<GameViewState?> {
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 {
+10 -3
View File
@@ -382,8 +382,12 @@ class _GameScreenState extends ConsumerState<GameScreen>
[
if (flow != null && flow.hasNext)
FilledButton(
onPressed:
ref.read(seasonFlowProvider.notifier).nextStage,
onPressed: () {
ref.read(seasonFlowProvider.notifier).nextStage();
if (!view.endless) {
ref.read(adServiceProvider).maybeShowInterstitial();
}
},
child: Text(l10n.nextStage),
),
TextButton(
@@ -460,7 +464,10 @@ class _GameScreenState extends ConsumerState<GameScreen>
l10n.stageFailed,
[
FilledButton(
onPressed: notifier.restart,
onPressed: () {
ref.read(adServiceProvider).maybeShowInterstitial();
notifier.restart();
},
child: Text(l10n.playAgain),
),
],