feat(ads): stage-end interstitial gated by policy; restart resets round
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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),
|
||||
),
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user