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.
This commit is contained in:
Elias Projahn 2020-01-25 20:16:19 +01:00
parent 03c94fe48c
commit d258d415a2
5 changed files with 54 additions and 78 deletions

View file

@ -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'];

View file

@ -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(),

View file

@ -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),

View file

@ -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: <Widget>[
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,
),
),
);
}
}

View file

@ -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(),
);
},
);
}
}