From d258d415a21e34666eacfc0e14326b444965f6d1 Mon Sep 17 00:00:00 2001 From: Elias Projahn Date: Sat, 25 Jan 2020 20:16:19 +0100 Subject: [PATCH] Remove shop The items can be bought directly from the running game in the future. The player can get free coins from the main and pause menu. --- lib/localizations.dart | 3 -- lib/screens/home.dart | 14 ++------- lib/screens/pause.dart | 3 ++ lib/screens/shop.dart | 63 -------------------------------------- lib/widgets/get_coins.dart | 49 +++++++++++++++++++++++++++++ 5 files changed, 54 insertions(+), 78 deletions(-) delete mode 100644 lib/screens/shop.dart create mode 100644 lib/widgets/get_coins.dart diff --git a/lib/localizations.dart b/lib/localizations.dart index 077930b..f04cc3a 100644 --- a/lib/localizations.dart +++ b/lib/localizations.dart @@ -15,7 +15,6 @@ class ChristmasCatsLocalizations { 'records3': '3. %i', 'back': 'Back', 'intro': 'Introduction', - 'shop': 'Shop', 'coins': '%i Coins', 'getCoins': 'Get coins', 'adLoading': 'Ad loading', @@ -41,7 +40,6 @@ class ChristmasCatsLocalizations { 'records3': '3. %i', 'back': 'Zurück', 'intro': 'Einführung', - 'shop': 'Laden', 'coins': '%i Münzen', 'adLoading': 'Werbung wird geladen', 'noAds': 'Keine Werbung verfügbar', @@ -75,7 +73,6 @@ class ChristmasCatsLocalizations { String get records3 => localizedStrings['records3']; String get back => localizedStrings['back']; String get intro => localizedStrings['intro']; - String get shop => localizedStrings['shop']; String get coins => localizedStrings['coins']; String get adLoading => localizedStrings['adLoading']; String get noAds => localizedStrings['noAds']; diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 6d7d264..ec46bec 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -2,13 +2,13 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import '../localizations.dart'; +import '../widgets/get_coins.dart'; import '../widgets/menu.dart'; import '../widgets/menu_entry.dart'; import 'game.dart'; import 'intro.dart'; import 'records.dart'; -import 'shop.dart'; class HomeScreen extends StatelessWidget { @override @@ -48,17 +48,7 @@ class HomeScreen extends StatelessWidget { ), ), ), - Builder( - builder: (context) => MenuEntry( - text: localizations.shop, - onTap: () => Navigator.push( - context, - MaterialPageRoute( - builder: (context) => ShopScreen(), - ), - ), - ), - ), + GetCoins(), MenuEntry( text: localizations.exit, onTap: () => SystemNavigator.pop(), diff --git a/lib/screens/pause.dart b/lib/screens/pause.dart index 467880d..54eb3b3 100644 --- a/lib/screens/pause.dart +++ b/lib/screens/pause.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:sprintf/sprintf.dart'; import '../localizations.dart'; +import '../widgets/get_coins.dart'; import '../widgets/menu.dart'; import '../widgets/menu_entry.dart'; @@ -17,6 +18,7 @@ class PauseScreen extends StatelessWidget { final localizations = ChristmasCatsLocalizations.of(context); return Scaffold( + resizeToAvoidBottomInset: false, backgroundColor: Color(0xccffffff), body: Menu( title: localizations.paused, @@ -26,6 +28,7 @@ class PauseScreen extends StatelessWidget { text: localizations.unpause, onTap: () => Navigator.pop(context, true), ), + GetCoins(), MenuEntry( text: localizations.exit, onTap: () => Navigator.pop(context, false), diff --git a/lib/screens/shop.dart b/lib/screens/shop.dart deleted file mode 100644 index f41f189..0000000 --- a/lib/screens/shop.dart +++ /dev/null @@ -1,63 +0,0 @@ -import 'package:firebase_admob/firebase_admob.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:sprintf/sprintf.dart'; - -import '../localizations.dart'; -import '../storage.dart'; -import '../widgets/menu.dart'; -import '../widgets/menu_entry.dart'; - -class ShopScreen extends StatelessWidget { - @override - Widget build(BuildContext context) { - final localizations = ChristmasCatsLocalizations.of(context); - - return Scaffold( - resizeToAvoidBottomInset: false, - body: StreamBuilder( - stream: storage.coins, - builder: (context, snapshot) => Menu( - title: localizations.shop, - subtitle: sprintf(localizations.coins, [snapshot?.data ?? 0]), - children: [ - MenuEntry( - text: localizations.getCoins, - onTap: () { - final scaffold = Scaffold.of(context); - scaffold.showSnackBar(SnackBar( - content: Text(localizations.adLoading), - // Show it until the ad is loaded - duration: Duration(minutes: 1), - )); - - final ad = RewardedVideoAd.instance; - ad.listener = (event, {rewardAmount, rewardType}) { - scaffold.removeCurrentSnackBar(); - if (event == RewardedVideoAdEvent.loaded) { - ad.show(); - } else if (event == RewardedVideoAdEvent.failedToLoad) { - scaffold.showSnackBar(SnackBar( - content: Text(localizations.noAds), - duration: const Duration(seconds: 2), - )); - } else if (event == RewardedVideoAdEvent.rewarded) { - storage.addCoins(rewardAmount); - } - }; - - ad.load( - adUnitId: kReleaseMode - ? 'ca-app-pub-4129701777413448/6712208196' - : 'ca-app-pub-3940256099942544/5224354917', - targetingInfo: MobileAdTargetingInfo(), - ); - }, - ), - ], - showBackButton: true, - ), - ), - ); - } -} diff --git a/lib/widgets/get_coins.dart b/lib/widgets/get_coins.dart new file mode 100644 index 0000000..b5a87bb --- /dev/null +++ b/lib/widgets/get_coins.dart @@ -0,0 +1,49 @@ +import 'package:firebase_admob/firebase_admob.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +import '../localizations.dart'; +import '../storage.dart'; + +import 'menu_entry.dart'; + +class GetCoins extends StatelessWidget { + @override + Widget build(BuildContext context) { + final localizations = ChristmasCatsLocalizations.of(context); + + return MenuEntry( + text: localizations.getCoins, + onTap: () { + final scaffold = Scaffold.of(context); + scaffold.showSnackBar(SnackBar( + content: Text(localizations.adLoading), + // Show it until the ad is loaded + duration: Duration(minutes: 1), + )); + + final ad = RewardedVideoAd.instance; + ad.listener = (event, {rewardAmount, rewardType}) { + scaffold.removeCurrentSnackBar(); + if (event == RewardedVideoAdEvent.loaded) { + ad.show(); + } else if (event == RewardedVideoAdEvent.failedToLoad) { + scaffold.showSnackBar(SnackBar( + content: Text(localizations.noAds), + duration: const Duration(seconds: 2), + )); + } else if (event == RewardedVideoAdEvent.rewarded) { + storage.addCoins(rewardAmount); + } + }; + + ad.load( + adUnitId: kReleaseMode + ? 'ca-app-pub-4129701777413448/6712208196' + : RewardedVideoAd.testAdUnitId, + targetingInfo: MobileAdTargetingInfo(), + ); + }, + ); + } +}