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;
|
final stage = _stage;
|
||||||
if (stage == null) throw StateError('no stage to restart');
|
if (stage == null) throw StateError('no stage to restart');
|
||||||
startStage(stage, attempt: _attempt + 1, generator: _generatorOverride);
|
startStage(stage, attempt: _attempt + 1, generator: _generatorOverride);
|
||||||
|
ref.read(adServiceProvider).onRoundStart();
|
||||||
if (stage.endless) {
|
if (stage.endless) {
|
||||||
ref.read(analyticsProvider).endlessStart();
|
ref.read(analyticsProvider).endlessStart();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -382,8 +382,12 @@ class _GameScreenState extends ConsumerState<GameScreen>
|
|||||||
[
|
[
|
||||||
if (flow != null && flow.hasNext)
|
if (flow != null && flow.hasNext)
|
||||||
FilledButton(
|
FilledButton(
|
||||||
onPressed:
|
onPressed: () {
|
||||||
ref.read(seasonFlowProvider.notifier).nextStage,
|
ref.read(seasonFlowProvider.notifier).nextStage();
|
||||||
|
if (!view.endless) {
|
||||||
|
ref.read(adServiceProvider).maybeShowInterstitial();
|
||||||
|
}
|
||||||
|
},
|
||||||
child: Text(l10n.nextStage),
|
child: Text(l10n.nextStage),
|
||||||
),
|
),
|
||||||
TextButton(
|
TextButton(
|
||||||
@@ -460,7 +464,10 @@ class _GameScreenState extends ConsumerState<GameScreen>
|
|||||||
l10n.stageFailed,
|
l10n.stageFailed,
|
||||||
[
|
[
|
||||||
FilledButton(
|
FilledButton(
|
||||||
onPressed: notifier.restart,
|
onPressed: () {
|
||||||
|
ref.read(adServiceProvider).maybeShowInterstitial();
|
||||||
|
notifier.restart();
|
||||||
|
},
|
||||||
child: Text(l10n.playAgain),
|
child: Text(l10n.playAgain),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user