Skip to content

Commit

Permalink
[1.0.2] Levels added (#22)
Browse files Browse the repository at this point in the history
* Add levels by dictionary lang
* Some small fixes
* Add about page

Co-authored-by: Sancene<[email protected]>
  • Loading branch information
Carapacik authored Apr 2, 2022
1 parent c782be2 commit 7eaeadd
Show file tree
Hide file tree
Showing 56 changed files with 797 additions and 311 deletions.
11 changes: 11 additions & 0 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.carapacik.wordly">

<uses-permission android:name="android.permission.INTERNET" />
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="https" />
</intent>
<intent>
<action android:name="android.intent.action.SEND" />
<data android:mimeType="*/*" />
</intent>
</queries>
<application
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:gravity="fill" android:src="@drawable/background"/>
<bitmap
android:gravity="fill"
android:src="@drawable/background" />
</item>
<item>
<bitmap android:gravity="center" android:src="@drawable/splash"/>
<bitmap
android:gravity="center"
android:src="@drawable/splash" />
</item>
</layer-list>
8 changes: 6 additions & 2 deletions android/app/src/main/res/drawable-night/launch_background.xml
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:gravity="fill" android:src="@drawable/background"/>
<bitmap
android:gravity="fill"
android:src="@drawable/background" />
</item>
<item>
<bitmap android:gravity="center" android:src="@drawable/splash"/>
<bitmap
android:gravity="center"
android:src="@drawable/splash" />
</item>
</layer-list>
8 changes: 6 additions & 2 deletions android/app/src/main/res/drawable-v21/launch_background.xml
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:gravity="fill" android:src="@drawable/background"/>
<bitmap
android:gravity="fill"
android:src="@drawable/background" />
</item>
<item>
<bitmap android:gravity="center" android:src="@drawable/splash"/>
<bitmap
android:gravity="center"
android:src="@drawable/splash" />
</item>
</layer-list>
8 changes: 6 additions & 2 deletions android/app/src/main/res/drawable/launch_background.xml
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:gravity="fill" android:src="@drawable/background"/>
<bitmap
android:gravity="fill"
android:src="@drawable/background" />
</item>
<item>
<bitmap android:gravity="center" android:src="@drawable/splash"/>
<bitmap
android:gravity="center"
android:src="@drawable/splash" />
</item>
</layer-list>
13 changes: 11 additions & 2 deletions assets/strings/en.json
Original file line number Diff line number Diff line change
@@ -1,30 +1,39 @@
{
"about": "About",
"app_language": "App language",
"carapacik": "Carapacik",
"check_my_result": "Can you repeat my result?\n${emoji}\nYou can download the game here:\nhttps://github.com/Carapacik/Wordle/releases/tag/1.0.0",
"check_my_result": "Can you repeat my result?\n${emoji}\nYou can download the game here:\nhttps://play.google.com/store/apps/details?id=com.carapacik.wordly\n",
"coming_soon": "Coming soon",
"contact": "If you didn't find a word in the dictionary,\nwrite to us, we will add it\nin the next update.",
"copy": "Copy",
"created_by": "Created by",
"current_streak": "Current\nStreak",
"daily": "Daily",
"dark_mode": "Dark mode",
"dictionary": "Dictionary",
"dictionary_language": "Dictionary language",
"example_letter": "L",
"game_design": "Game design",
"guess_distribution": "Guess distribution",
"high_contrast_mode": "High contrast mode",
"how_to_play": "How to play",
"letter_correct": "Letter exists and is in correct spot",
"letter_incorrect": "Letter is incorrect",
"letter_incorrect_spot": "Letter is in incorrect spot",
"level": "Level",
"level_number": "Level ${number}",
"levels": "Levels",
"lose_message": "You lost",
"max_streak": "Max\nStreak",
"next_level": "Next level",
"next_wordle": "Next wordle in",
"played": "Played",
"scenario": "Scenario",
"secret_word": "Secret word",
"settings": "Settings",
"share": "Share",
"statistic": "Statistic",
"text_copied": "The text is copied to the clipboard",
"visual_design": "Visual design",
"win_message": "You win!",
"win_rate": "Win\npercentage",
"word_not_found": "Word not found in dictionary",
Expand Down
13 changes: 11 additions & 2 deletions assets/strings/ru.json
Original file line number Diff line number Diff line change
@@ -1,30 +1,39 @@
{
"about": "О приложении",
"app_language": "Язык приложения",
"carapacik": "Carapacik",
"check_my_result": "Сможешь повторить мой результат?\n${emoji}\nТы можешь скачать игру тут:\nhttps://github.com/Carapacik/Wordle/releases/tag/1.0.0",
"check_my_result": "Сможешь повторить мой результат?\n${emoji}\nТы можешь скачать игру тут:\nhttps://play.google.com/store/apps/details?id=com.carapacik.wordly\n",
"coming_soon": "Скоро",
"contact": "Если вы не нашли слово в словаре,\nнапишите нам, мы добавим его\n в следующем обновлении.",
"copy": "Копировать",
"created_by": "Разработано",
"current_streak": "Текущая\nСерия",
"daily": "Ежедневный",
"dark_mode": "Темная тема",
"dictionary": "Словарь",
"dictionary_language": "Язык словаря",
"example_letter": "Б",
"game_design": "Геймпей",
"guess_distribution": "Распределение догадок",
"high_contrast_mode": "Режим повышенной контрастности",
"how_to_play": "Как играть",
"letter_correct": "Буква есть в слове и находится на верном месте",
"letter_incorrect": "Буквы нет в слове",
"letter_incorrect_spot": "Буква в неправильной позиции",
"level": "Уровни",
"level_number": "Уровень ${number}",
"levels": "Уровни",
"lose_message": "Вы проиграли",
"max_streak": "Максимальная\nСерия",
"next_level": "Следующий уровень",
"next_wordle": "Следующее слово через",
"played": "Сыграно",
"scenario": "Сценарий",
"secret_word": "Загаданное слово",
"settings": "Настройки",
"share": "Поделиться",
"statistic": "Статистика",
"text_copied": "Текст скопирован в буфер обмена",
"visual_design": "Визуальный дизайн",
"win_message": "Вы победили!",
"win_rate": "Процент\nпобед",
"word_not_found": "Слово не найдено в словаре",
Expand Down
4 changes: 4 additions & 0 deletions ios/Runner/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -45,5 +45,9 @@
<false/>
<key>UIStatusBarHidden</key>
<true/>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>https</string>
</array>
</dict>
</plist>
1 change: 1 addition & 0 deletions lib/app.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ class App extends StatelessWidget {
return BlocBuilder<SettingsCubit, SettingsState>(
builder: (context, state) {
return MaterialApp(
onGenerateTitle: (context) => R.stringsOf(context).wordle,
debugShowCheckedModeBanner: false,
supportedLocales: RStringsDelegate.supportedLocales,
localizationsDelegates: const [
Expand Down
80 changes: 65 additions & 15 deletions lib/bloc/main/main_cubit.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,17 @@ import 'package:wordly/data/models/flushbar_types.dart';
import 'package:wordly/data/models/keyboard_keys.dart';
import 'package:wordly/data/models/letter_status.dart';
import 'package:wordly/data/repositories/dictionary_repository.dart';
import 'package:wordly/domain/board_repository.dart';
import 'package:wordly/domain/daily_result_repository.dart';
import 'package:wordly/domain/daily_statistic_repository.dart';
import 'package:wordly/domain/level_repository.dart';
import 'package:wordly/domain/settings_repository.dart';

part 'main_state.dart';

class MainCubit extends Cubit<MainState> {
MainCubit() : super(MainInitial());
final dictionaryRepository = GetIt.I<DictionaryRepository>();
MainCubit(this.dictionaryRepository) : super(MainInitial());
final DictionaryRepository dictionaryRepository;

void setLetter(final KeyboardKeys keyboardKey) {
if (dictionaryRepository.setLetter(keyboardKey)) {
Expand All @@ -26,8 +28,8 @@ class MainCubit extends Cubit<MainState> {
emit(GridUpdateState());
}

void removeAllWord() {
dictionaryRepository.removeAllWord();
void removeFullWord() {
dictionaryRepository.removeFullWord();
emit(GridUpdateState());
}

Expand All @@ -36,6 +38,7 @@ class MainCubit extends Cubit<MainState> {
}

bool completeWord() {
final levelRepository = GetIt.I<LevelRepository>();
final state = dictionaryRepository.completeWord();
if (state == null) {
return false;
Expand All @@ -46,17 +49,21 @@ class MainCubit extends Cubit<MainState> {
dictionaryRepository.saveBoard();
emit(state);
if (state is WinGameState || state is LoseGameState) {
final dictionaryLanguage =
GetIt.I<SettingsRepository>().settingsData.dictionaryLanguage;
GetIt.I<DailyResultRepository>().saveDailyResult(
isWin: state is WinGameState,
word: dictionaryRepository.secretWord,
language: dictionaryLanguage,
);
GetIt.I<DailyStatisticRepository>().saveStatisticData(
isWin: state is WinGameState,
attempt: dictionaryRepository.currentAttempt,
);
if (levelRepository.isLevelMode) {
GetIt.I<LevelRepository>().saveLevelData();
} else {
final dictionaryLanguage =
GetIt.I<SettingsRepository>().settingsData.dictionaryLanguage;
GetIt.I<DailyResultRepository>().saveDailyResult(
isWin: state is WinGameState,
word: dictionaryRepository.secretWord,
language: dictionaryLanguage,
);
GetIt.I<DailyStatisticRepository>().saveStatisticData(
isWin: state is WinGameState,
attempt: dictionaryRepository.currentAttempt,
);
}
emit(GridUpdateState());
}
return true;
Expand All @@ -66,6 +73,49 @@ class MainCubit extends Cubit<MainState> {
return false;
}

Future<void> loadDaily() async {
final settingsRepository = GetIt.I<SettingsRepository>();
final boardRepository = GetIt.I<BoardRepository>();
final levelRepository = GetIt.I<LevelRepository>();
levelRepository.levelMode = false;
final dictionaryLanguage =
settingsRepository.settingsData.dictionaryLanguage;
dictionaryRepository.resetData();
dictionaryRepository.createSecretWord();
await boardRepository.initBoardData(
dictionaryLanguage: dictionaryLanguage,
levelNumber: 0,
);
dictionaryRepository.loadBoard();
emit(GridUpdateState());
}

Future<void> loadLevels() async {
final settingsRepository = GetIt.I<SettingsRepository>();
final boardRepository = GetIt.I<BoardRepository>();
final levelRepository = GetIt.I<LevelRepository>();
levelRepository.levelMode = true;
final dictionaryLanguage =
settingsRepository.settingsData.dictionaryLanguage;
await levelRepository.initLevelData(dictionaryLanguage);
dictionaryRepository.resetData();
final levelNumber = levelRepository.levelData.lastLevel;
dictionaryRepository.createSecretWord(levelNumber);
await boardRepository.initBoardData(
dictionaryLanguage: dictionaryLanguage,
levelNumber: levelNumber,
);
dictionaryRepository.loadBoard();
emit(GridUpdateState());
}

void nextLevel() {
dictionaryRepository.resetData();
final levelNumber = GetIt.I<LevelRepository>().levelData.lastLevel;
dictionaryRepository.createSecretWord(levelNumber);
emit(MainInitial());
}

void clearArea() {
dictionaryRepository.resetData();
dictionaryRepository.createSecretWord();
Expand Down
27 changes: 20 additions & 7 deletions lib/bloc/settings/settings_cubit.dart
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:get_it/get_it.dart';
import 'package:wordly/data/collections/settings_data.dart';
import 'package:wordly/data/models/dictionary_languages.dart';
import 'package:wordly/data/models/locale_languages.dart';
import 'package:wordly/data/models/settings_data.dart';
import 'package:wordly/data/repositories/dictionary_repository.dart';
import 'package:wordly/domain/board_repository.dart';
import 'package:wordly/domain/daily_statistic_repository.dart';
import 'package:wordly/domain/level_repository.dart';
import 'package:wordly/domain/settings_repository.dart';

part 'settings_state.dart';
Expand Down Expand Up @@ -41,18 +42,30 @@ class SettingsCubit extends Cubit<SettingsState> {

Future<void> changeDictionaryLanguage({required String value}) async {
final settingsRepository = GetIt.I<SettingsRepository>();
final levelRepository = GetIt.I<LevelRepository>();
final dictionaryRepository = GetIt.I<DictionaryRepository>();
final dailyStatisticRepository = GetIt.I<DailyStatisticRepository>();
final boardRepository = GetIt.I<BoardRepository>();

final currentSettingsData = settingsRepository.settingsData;
final dictionaryLanguage = value.toDictionaryLanguage;

final dictionaryRepository = GetIt.I<DictionaryRepository>();
late int levelNumber;
if (levelRepository.isLevelMode) {
await levelRepository.initLevelData(dictionaryLanguage);
levelNumber = levelRepository.levelData.lastLevel;
} else {
levelNumber = 0;
}
dictionaryRepository.dictionaryLanguage = dictionaryLanguage;
dictionaryRepository.resetData();
dictionaryRepository.createSecretWord();
final boardRepository = GetIt.I<BoardRepository>();
await boardRepository.initBoardData(dictionaryLanguage);
final dailyStatisticRepository = GetIt.I<DailyStatisticRepository>();
await dailyStatisticRepository.initStatisticData(dictionaryLanguage);
dictionaryRepository.createSecretWord(levelNumber);
await boardRepository.initBoardData(
dictionaryLanguage: dictionaryLanguage,
levelNumber: levelNumber,
);
dictionaryRepository.loadBoard();
await dailyStatisticRepository.initStatisticData(dictionaryLanguage);
emit(state.copyWith(dictionaryLanguage: dictionaryLanguage));
await settingsRepository.saveSettings(
currentSettingsData..dictionaryLanguage = dictionaryLanguage,
Expand Down
Loading

0 comments on commit 7eaeadd

Please sign in to comment.