diff --git a/android/gradle.properties b/android/gradle.properties index 14eed3944b547f02179b1b42f4b601f91b7957c0..aa51064abebb79ba519e600afb7af23779154d4e 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,5 +1,5 @@ org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true -app.versionName=0.0.4 -app.versionCode=4 +app.versionName=0.0.5 +app.versionCode=5 diff --git a/assets/icons/game_fail.png b/assets/icons/game_fail.png new file mode 100644 index 0000000000000000000000000000000000000000..155f9118fde35f06a8b84ed7fbf24b66e9d70e99 Binary files /dev/null and b/assets/icons/game_fail.png differ diff --git a/icons/build_game_icons.sh b/icons/build_game_icons.sh index 2c7d70c5b1932be4b1b50bd47b1fc6ee08a80013..e6aa241e2abeb140eae41e7042fe4b9c096e580f 100755 --- a/icons/build_game_icons.sh +++ b/icons/build_game_icons.sh @@ -58,6 +58,7 @@ function build_icon_for_skin() { build_icon ${CURRENT_DIR}/button_back.svg ${BASE_DIR}/assets/icons/button_back.png build_icon ${CURRENT_DIR}/button_help.svg ${BASE_DIR}/assets/icons/button_help.png build_icon ${CURRENT_DIR}/button_start.svg ${BASE_DIR}/assets/icons/button_start.png +build_icon ${CURRENT_DIR}/game_fail.svg ${BASE_DIR}/assets/icons/game_fail.png build_icon ${CURRENT_DIR}/game_win.svg ${BASE_DIR}/assets/icons/game_win.png build_icon ${CURRENT_DIR}/key.svg ${BASE_DIR}/assets/icons/key.png diff --git a/icons/game_fail.svg b/icons/game_fail.svg new file mode 100644 index 0000000000000000000000000000000000000000..2922fd7adc2bd2e813836c728f095376c73d4143 --- /dev/null +++ b/icons/game_fail.svg @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 93.665 93.676" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect x=".44662" y=".89101" width="92.772" height="91.894" ry="11.689" fill="#d11717" stroke="#fff" stroke-width=".238"/><path d="m71.624 59.304c3.5089 3.5089 3.5089 9.0561 0 12.565-1.6976 1.6976-3.9623 2.6034-6.2261 2.6034s-4.5275-0.90569-6.2261-2.6034l-12.452-12.452-12.452 12.452c-1.6976 1.6976-3.9623 2.6034-6.2261 2.6034s-4.5275-0.90569-6.2261-2.6034c-3.5089-3.5089-3.5089-9.0561 0-12.565l12.452-12.452-12.452-12.452c-3.5089-3.5089-3.5089-9.0561 0-12.565s9.0561-3.5089 12.565 0l12.452 12.452 12.452-12.452c3.5089-3.5089 9.0561-3.5089 12.565 0s3.5089 9.0561 0 12.565l-12.452 12.452z" fill="#e7e7e7" stroke-width=".20213"/></svg> diff --git a/lib/layout/game.dart b/lib/layout/game.dart index d305e996640752ea4e371a1174993d8b96c49ad3..8f7de8271948865ff67811b1a0168cc7c4351b2c 100644 --- a/lib/layout/game.dart +++ b/lib/layout/game.dart @@ -10,7 +10,7 @@ import '../utils/game_utils.dart'; class Game { static Container buildGameWidget(Data myProvider) { - bool gameIsFinished = GameUtils.isGameFinished(myProvider); + bool gameIsFinished = myProvider.isGameFinished(); return Container( child: Column( @@ -27,8 +27,8 @@ class Game { ); } - static TextButton buildRestartGameButton(Data myProvider) { - return TextButton( + static FlatButton buildRestartGameButton(Data myProvider) { + return FlatButton( child: Container( child: Image( image: AssetImage('assets/icons/button_back.png'), @@ -40,10 +40,15 @@ class Game { } static Container buildEndGameMessage(Data myProvider) { + String decorationImageAssetName = ''; + if (myProvider.gameWon) { + decorationImageAssetName = 'assets/icons/game_win.png'; + } else { + decorationImageAssetName = 'assets/icons/game_fail.png'; + } + Image decorationImage = Image( - image: AssetImage( - 'assets/icons/game_win.png' - ), + image: AssetImage(decorationImageAssetName), fit: BoxFit.fill ); diff --git a/lib/layout/parameters.dart b/lib/layout/parameters.dart index 3a2ae03a6290e298620d7af2fed7aec3b3b674de..a151ad0d59aa60df85456118c0a5017402bd6b2c 100644 --- a/lib/layout/parameters.dart +++ b/lib/layout/parameters.dart @@ -48,7 +48,7 @@ class Parameters { decorationImage, Column( children: [ - TextButton( + FlatButton( child: Container( child: Image( image: AssetImage('assets/icons/button_start.png'), diff --git a/lib/provider/data.dart b/lib/provider/data.dart index 7d87dc85b5429c885ad0917b4db57f4526de62ca..e69231893ba01e195837778a6900a19769dd2ca8 100644 --- a/lib/provider/data.dart +++ b/lib/provider/data.dart @@ -26,6 +26,7 @@ class Data extends ChangeNotifier { // Game data bool _gameIsRunning = false; + bool _foundWord = false; String _word = ''; final int _recentWordsCount = 20; List _recentWords = []; @@ -79,6 +80,7 @@ class Data extends ChangeNotifier { print('wrong'); } else { print('ok found'); + _foundWord = true; } addGuess(_currentGuess); notifyListeners(); @@ -95,6 +97,8 @@ class Data extends ChangeNotifier { _currentGuess = ''; } + bool get gameWon => _foundWord; + getParameterValue(String parameterCode) { switch(parameterCode) { case 'lang': { return _lang; } @@ -151,6 +155,16 @@ class Data extends ChangeNotifier { notifyListeners(); } + bool isGameFinished() { + print('isGameFinished'); + + if (_foundWord || (_guesses.length > (_maxGuessesCount - 1))) { + return true; + } + + return false; + } + String get word => _word; void updateWord(String word) { @@ -170,6 +184,7 @@ class Data extends ChangeNotifier { _word = ''; _guesses = []; _currentGuess = ''; + _foundWord = false; notifyListeners(); } diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 03c6cd9269447ebc9e494f5526305d09edcb8524..1381d16b440973da96a90597717c719d2a262b58 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -31,7 +31,7 @@ class _HomeState extends State<Home> { if (myProvider.gameIsRunning) { menuActions = [ - TextButton( + FlatButton( child: Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(4), diff --git a/lib/utils/game_utils.dart b/lib/utils/game_utils.dart index 5fb4c00fa7f5aea8a972d97ab120dcdcab87c83a..ec5d24adc5d138c91ee826cd4840c4d11beb86f9 100644 --- a/lib/utils/game_utils.dart +++ b/lib/utils/game_utils.dart @@ -125,15 +125,4 @@ class GameUtils { return RandomPickWord.checkWordExists(guessedWord); } - static bool isGameFinished(Data myProvider) { - print('isGameFinished'); - - if (myProvider.guesses.length > 0) { - if (myProvider.guesses[myProvider.guesses.length - 1] == myProvider.word) { - return true; - } - } - return false; - } - }