mirror of
https://github.com/johrpan/christmas_cats.git
synced 2025-10-26 02:07:25 +01:00
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:
parent
03c94fe48c
commit
d258d415a2
5 changed files with 54 additions and 78 deletions
|
|
@ -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'];
|
||||
|
|
|
|||
|
|
@ -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(),
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
49
lib/widgets/get_coins.dart
Normal file
49
lib/widgets/get_coins.dart
Normal 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(),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue