diff --git a/android/gradle.properties b/android/gradle.properties index 4d8dcd2635bb8701e212029096d53cf5dc060e45..62205f40150696555e74bed7fbf2f63d6f99f49b 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.40 -app.versionCode=40 +app.versionName=0.0.41 +app.versionCode=41 diff --git a/fastlane/metadata/android/en-US/changelogs/41.txt b/fastlane/metadata/android/en-US/changelogs/41.txt new file mode 100644 index 0000000000000000000000000000000000000000..b53e3011b9fc61e2d02bc98dca60811639cda8e5 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/41.txt @@ -0,0 +1 @@ +Improve randomization of values for images skin themes diff --git a/fastlane/metadata/android/fr-FR/changelogs/41.txt b/fastlane/metadata/android/fr-FR/changelogs/41.txt new file mode 100644 index 0000000000000000000000000000000000000000..45176cab0cf2da6acd22c4ebe01f9d5470328817 --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/41.txt @@ -0,0 +1 @@ +Mélange les valeurs parmi toutes les images des thèmes avec images diff --git a/lib/entities/cell.dart b/lib/entities/cell.dart index a42ad6f559925e9a31c8bf30f3207aee6af7b9a1..0cb2f971d29843e1b2216983b0ade63b76fb350e 100644 --- a/lib/entities/cell.dart +++ b/lib/entities/cell.dart @@ -20,7 +20,8 @@ class Cell { Container widget(Data myProvider, Border borders, int row, int col) { String imageAsset = 'assets/skins/empty.png'; if (this.value > 0) { - imageAsset = 'assets/skins/' + myProvider.skin + '_' + this.value.toString() + '.png'; + int cellValue = myProvider.getTranslatedValueForDisplay(this.value); + imageAsset = 'assets/skins/' + myProvider.skin + '_' + cellValue.toString() + '.png'; } return Container( @@ -86,7 +87,8 @@ class Cell { String imageAsset = 'assets/skins/empty.png'; if (this.value > 0) { - imageAsset = 'assets/skins/' + myProvider.skin + '_' + this.value.toString() + '.png'; + int cellValue = myProvider.getTranslatedValueForDisplay(this.value); + imageAsset = 'assets/skins/' + myProvider.skin + '_' + cellValue.toString() + '.png'; } Color backgroundColor = Colors.grey[200]; diff --git a/lib/provider/data.dart b/lib/provider/data.dart index 7889fcfe5cbcf79617dfc35972109bb8e74ce882..77e1bed1df38640c094364719d7af501910f3863 100644 --- a/lib/provider/data.dart +++ b/lib/provider/data.dart @@ -7,6 +7,7 @@ class Data extends ChangeNotifier { List _availableDifficultyLevels = ['easy', 'medium', 'hard', 'nightmare']; List _availableSizes = ['2x2', '3x2', '3x3', '4x4']; List _availableSkins = ['default', 'food', 'nature', 'monsters']; + List _shufflableSkins = ['food', 'nature', 'monsters']; List get availableDifficultyLevels => _availableDifficultyLevels; List get availableSizes => _availableSizes; @@ -31,6 +32,7 @@ class Data extends ChangeNotifier { int _currentCellRow = null; int _currentCellValue = null; int _givenTipsCount = 0; + List _shuffledCellValues = []; String get level => _level; set updateLevel(String level) { @@ -113,6 +115,21 @@ class Data extends ChangeNotifier { _cellsSolved = cells; } + void shuffleCellValues() { + int maxCellValue = 16; + List values = new List<int>.generate(maxCellValue, (i) => i + 1); + + if (_shufflableSkins.contains(_skin)) { + values.shuffle(); + print('Shuffled tiles values: ' + values.toString()); + } + + _shuffledCellValues = values; + } + int getTranslatedValueForDisplay(int originalValue) { + return _shuffledCellValues[originalValue - 1]; + } + int get currentCellCol => _currentCellCol; set updateCurrentCellCol(int currentCellCol) { _currentCellCol = currentCellCol; diff --git a/lib/utils/game_utils.dart b/lib/utils/game_utils.dart index 5b703a33d798fa0194b12d1b46f292ed10d1e081..508c3d621d5aca7d9990efe8448aa046d9b2424e 100644 --- a/lib/utils/game_utils.dart +++ b/lib/utils/game_utils.dart @@ -12,6 +12,7 @@ class GameUtils { myProvider.updateSize = myProvider.size; myProvider.updateStateRunning = true; myProvider.resetGivenTipsCount(); + myProvider.shuffleCellValues(); myProvider.updateCells = BoardUtils.createEmptyBoard(myProvider.blockSizeHorizontal * myProvider.blockSizeVertical); BoardUtils.pickGrid(myProvider); }