├── linux
├── .gitignore
├── main.cc
├── flutter
│ ├── generated_plugin_registrant.h
│ ├── generated_plugin_registrant.cc
│ └── generated_plugins.cmake
└── my_application.h
├── ios
├── Runner
│ ├── Runner-Bridging-Header.h
│ ├── Assets.xcassets
│ │ ├── LaunchImage.imageset
│ │ │ ├── LaunchImage.png
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ ├── README.md
│ │ │ └── Contents.json
│ │ └── AppIcon.appiconset
│ │ │ ├── Icon-App-20x20@1x.png
│ │ │ ├── Icon-App-20x20@2x.png
│ │ │ ├── Icon-App-20x20@3x.png
│ │ │ ├── Icon-App-29x29@1x.png
│ │ │ ├── Icon-App-29x29@2x.png
│ │ │ ├── Icon-App-29x29@3x.png
│ │ │ ├── Icon-App-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ └── Icon-App-83.5x83.5@2x.png
│ ├── AppDelegate.swift
│ ├── Base.lproj
│ │ ├── Main.storyboard
│ │ └── LaunchScreen.storyboard
│ └── Info.plist
├── Flutter
│ ├── Debug.xcconfig
│ ├── Release.xcconfig
│ └── AppFrameworkInfo.plist
├── Runner.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ ├── WorkspaceSettings.xcsettings
│ │ └── IDEWorkspaceChecks.plist
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── WorkspaceSettings.xcsettings
│ │ └── IDEWorkspaceChecks.plist
├── .gitignore
├── Podfile.lock
└── Podfile
├── modules
├── domain
│ ├── lib
│ │ ├── core
│ │ │ ├── core.dart
│ │ │ └── extensions
│ │ │ │ ├── extensions.dart
│ │ │ │ ├── num_extension.dart
│ │ │ │ ├── either_extension.dart
│ │ │ │ └── duration_extension.dart
│ │ ├── service_interfaces
│ │ │ ├── service_interfaces.dart
│ │ │ ├── audio_service.dart
│ │ │ └── puzzle_service.dart
│ │ ├── failures
│ │ │ ├── failures.dart
│ │ │ ├── game_not_started_failure.dart
│ │ │ ├── no_available_spell_failure.dart
│ │ │ ├── game_already_started_failure.dart
│ │ │ ├── concurrent_method_call_failure.dart
│ │ │ ├── tile_not_movable_failure.dart
│ │ │ └── failure.dart
│ │ ├── entities
│ │ │ ├── entities.dart
│ │ │ ├── position.dart
│ │ │ ├── active_spell_state.dart
│ │ │ ├── tile.dart
│ │ │ ├── game_state.dart
│ │ │ └── available_spell_state.dart
│ │ └── domain.dart
│ ├── analysis_options.yaml
│ ├── .metadata
│ ├── README.md
│ ├── pubspec.yaml
│ └── .gitignore
├── presentation
│ ├── lib
│ │ ├── assets
│ │ │ ├── audio
│ │ │ │ └── audio.dart
│ │ │ ├── animations
│ │ │ │ ├── animations.dart
│ │ │ │ ├── sky_animations.dart
│ │ │ │ └── puzzle_board_animations.dart
│ │ │ ├── assets.dart
│ │ │ └── images
│ │ │ │ ├── images.dart
│ │ │ │ ├── logo_assets.dart
│ │ │ │ ├── throwable_assets.dart
│ │ │ │ ├── spell_assets.dart
│ │ │ │ └── day_cycle_assets.dart
│ │ ├── helpers
│ │ │ ├── strings
│ │ │ │ ├── strings.dart
│ │ │ │ └── join.dart
│ │ │ ├── dialogs
│ │ │ │ ├── dialogs.dart
│ │ │ │ └── show_glass_dialog.dart
│ │ │ ├── animation
│ │ │ │ ├── animation.dart
│ │ │ │ └── sync_rive_animation_theme.dart
│ │ │ ├── widgets
│ │ │ │ ├── widgets.dart
│ │ │ │ ├── synced_animated_align.dart
│ │ │ │ └── synced_animated_rotation.dart
│ │ │ └── helpers.dart
│ │ ├── constants
│ │ │ ├── constants.dart
│ │ │ └── breakpoints.dart
│ │ ├── background_handler
│ │ │ ├── painters
│ │ │ │ └── painters.dart
│ │ │ ├── background_handler.dart
│ │ │ └── widgets
│ │ │ │ ├── widgets.dart
│ │ │ │ └── background_handler.dart
│ │ ├── dash_animator
│ │ │ ├── dialogs
│ │ │ │ └── dialogs.dart
│ │ │ ├── overlays
│ │ │ │ ├── overlays.dart
│ │ │ │ └── object_throw_animation_overlay.dart
│ │ │ ├── curves
│ │ │ │ ├── curves.dart
│ │ │ │ ├── arc_curve.dart
│ │ │ │ └── mcdonald_curve.dart
│ │ │ ├── dash_animator.dart
│ │ │ ├── widgets
│ │ │ │ ├── widgets.dart
│ │ │ │ ├── dash_face_animator.dart
│ │ │ │ ├── dash_animator_group
│ │ │ │ │ └── bot_dash_animator.dart
│ │ │ │ ├── dash_tail_animator.dart
│ │ │ │ ├── dash_comb_animator.dart
│ │ │ │ └── dash_body_animator.dart
│ │ │ └── cubit
│ │ │ │ └── dash_animator_group_cubit.dart
│ │ ├── audio_handler
│ │ │ ├── audio_handler.dart
│ │ │ └── enum
│ │ │ │ └── audio_player_channel.dart
│ │ ├── puzzle
│ │ │ ├── widgets
│ │ │ │ ├── app_bar
│ │ │ │ │ ├── app_bar.dart
│ │ │ │ │ ├── app_bar_title.dart
│ │ │ │ │ └── action_item.dart
│ │ │ │ ├── widgets.dart
│ │ │ │ ├── floating_action_buttons
│ │ │ │ │ ├── floating_action_buttons.dart
│ │ │ │ │ └── theme_button.dart
│ │ │ │ └── puzzle_board.dart
│ │ │ ├── puzzle.dart
│ │ │ └── dialogs
│ │ │ │ ├── dialogs.dart
│ │ │ │ └── share_app_dialog
│ │ │ │ └── share_button.dart
│ │ ├── presentation.dart
│ │ ├── spell_handler
│ │ │ ├── spell_button.dart
│ │ │ ├── spell_banner.dart
│ │ │ └── available_spell_indicator.dart
│ │ └── themes
│ │ │ └── themes.dart
│ ├── analysis_options.yaml
│ ├── assets
│ │ ├── animations
│ │ │ ├── sky.riv
│ │ │ └── puzzle_board.riv
│ │ ├── audio
│ │ │ └── sfx
│ │ │ │ ├── click.mp3
│ │ │ │ ├── magic.mp3
│ │ │ │ ├── toss.mp3
│ │ │ │ ├── complete.mp3
│ │ │ │ ├── shuffled.mp3
│ │ │ │ ├── device_fall.mp3
│ │ │ │ ├── shuffling.mp3
│ │ │ │ ├── tile_move.mp3
│ │ │ │ ├── dash_sound_1.mp3
│ │ │ │ ├── dash_sound_2.mp3
│ │ │ │ ├── dash_sound_3.mp3
│ │ │ │ ├── tile_unmovable.mp3
│ │ │ │ ├── spell_available_1.mp3
│ │ │ │ └── spell_available_2.mp3
│ │ └── images
│ │ │ ├── spells
│ │ │ ├── magic.webp
│ │ │ ├── pizza.webp
│ │ │ └── throw.webp
│ │ │ ├── day_cycles
│ │ │ ├── day.webp
│ │ │ ├── night.webp
│ │ │ └── prevening.webp
│ │ │ ├── logos
│ │ │ └── flutter_mono.webp
│ │ │ ├── throwables
│ │ │ ├── pizza.webp
│ │ │ └── stone.webp
│ │ │ └── dash_sprites
│ │ │ ├── body
│ │ │ ├── nude.webp
│ │ │ ├── blue_polo.webp
│ │ │ ├── green_polo.webp
│ │ │ ├── yellow_tie.webp
│ │ │ ├── blue_hoodie.webp
│ │ │ ├── blue_ribbon.webp
│ │ │ ├── green_hoodie.webp
│ │ │ ├── wizard_robe.webp
│ │ │ └── yellow_polo.webp
│ │ │ ├── comb
│ │ │ └── comb.webp
│ │ │ ├── tail
│ │ │ └── tail.webp
│ │ │ ├── wand
│ │ │ └── wand.webp
│ │ │ ├── faces
│ │ │ ├── face_sad.webp
│ │ │ ├── face_wtf.webp
│ │ │ ├── face_happy.webp
│ │ │ ├── face_kawaii.webp
│ │ │ ├── face_normal.webp
│ │ │ ├── face_wizard.webp
│ │ │ ├── face_wtfff.webp
│ │ │ └── face_happy_wizard.webp
│ │ │ ├── wings
│ │ │ ├── left_wing.webp
│ │ │ └── right_wing.webp
│ │ │ └── devices
│ │ │ ├── cyan_laptop.webp
│ │ │ ├── green_laptop.webp
│ │ │ ├── pink_laptop.webp
│ │ │ └── purple_laptop.webp
│ ├── fonts
│ │ └── Bangers-Regular.ttf
│ ├── .metadata
│ ├── README.md
│ ├── .gitignore
│ ├── test
│ │ └── widget_test.dart
│ └── pubspec.yaml
├── infrastructure
│ ├── test
│ │ └── helpers
│ │ │ ├── helpers.dart
│ │ │ └── create_puzzle.dart
│ ├── analysis_options.yaml
│ ├── lib
│ │ ├── services
│ │ │ ├── puzzle_service
│ │ │ │ └── puzzle_solver
│ │ │ │ │ ├── models
│ │ │ │ │ ├── models.dart
│ │ │ │ │ └── boundary.dart
│ │ │ │ │ └── a_star
│ │ │ │ │ ├── a_star.dart
│ │ │ │ │ └── a_star_variant_b.dart
│ │ │ └── services.dart
│ │ └── infrastructure.dart
│ ├── .metadata
│ ├── README.md
│ ├── pubspec.yaml
│ └── .gitignore
└── application
│ ├── analysis_options.yaml
│ ├── lib
│ ├── use_cases
│ │ ├── theme
│ │ │ ├── theme.dart
│ │ │ └── switch_theme
│ │ │ │ └── switch_theme_use_case.dart
│ │ ├── use_cases.dart
│ │ ├── audio
│ │ │ ├── audio.dart
│ │ │ ├── mute_all_audio
│ │ │ │ └── mute_all_audio_use_case.dart
│ │ │ ├── unmute_all_audio
│ │ │ │ └── unmute_all_audio_use_case.dart
│ │ │ ├── watch_all_audio_muted_state
│ │ │ │ └── watch_all_audio_muted_state_use_case.dart
│ │ │ └── play_local_audio
│ │ │ │ └── play_local_audio_use_case.dart
│ │ └── game
│ │ │ ├── preview_completed_puzzle
│ │ │ └── preview_completed_puzzle_use_case.dart
│ │ │ ├── game.dart
│ │ │ ├── start_game
│ │ │ └── start_game_use_case.dart
│ │ │ ├── reset_game
│ │ │ └── reset_game_use_case.dart
│ │ │ ├── cast_available_spell
│ │ │ └── cast_available_spell_use_case.dart
│ │ │ ├── watch_game
│ │ │ └── watch_game_state_use_case.dart
│ │ │ ├── watch_active_spell_state
│ │ │ └── watch_active_spell_state_use_case.dart
│ │ │ ├── watch_available_spell_state
│ │ │ └── watch_available_spell_state_use_case.dart
│ │ │ └── move_player_tile
│ │ │ └── move_player_tile_use_case.dart
│ └── application.dart
│ ├── .metadata
│ ├── README.md
│ ├── pubspec.yaml
│ └── .gitignore
├── analysis_options.yaml
├── web
├── favicon.png
├── icons
│ ├── Icon-192.png
│ └── Icon-512.png
└── manifest.json
├── CHANGELOG.md
├── android
├── gradle.properties
├── app
│ └── src
│ │ ├── main
│ │ ├── res
│ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── drawable-hdpi
│ │ │ │ ├── ic_launcher_background.png
│ │ │ │ └── ic_launcher_foreground.png
│ │ │ ├── drawable-mdpi
│ │ │ │ ├── ic_launcher_background.png
│ │ │ │ └── ic_launcher_foreground.png
│ │ │ ├── drawable-xhdpi
│ │ │ │ ├── ic_launcher_background.png
│ │ │ │ └── ic_launcher_foreground.png
│ │ │ ├── drawable-xxhdpi
│ │ │ │ ├── ic_launcher_background.png
│ │ │ │ └── ic_launcher_foreground.png
│ │ │ ├── drawable-xxxhdpi
│ │ │ │ ├── ic_launcher_background.png
│ │ │ │ └── ic_launcher_foreground.png
│ │ │ ├── mipmap-anydpi-v26
│ │ │ │ └── ic_launcher.xml
│ │ │ ├── drawable
│ │ │ │ └── launch_background.xml
│ │ │ ├── drawable-v21
│ │ │ │ └── launch_background.xml
│ │ │ ├── values
│ │ │ │ └── styles.xml
│ │ │ └── values-night
│ │ │ │ └── styles.xml
│ │ ├── kotlin
│ │ │ └── com
│ │ │ │ └── orga
│ │ │ │ └── dash_slide_puzzle
│ │ │ │ └── MainActivity.kt
│ │ └── AndroidManifest.xml
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ └── profile
│ │ └── AndroidManifest.xml
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
├── .gitignore
├── settings.gradle
└── build.gradle
├── macos
├── Runner
│ ├── Configs
│ │ ├── Debug.xcconfig
│ │ ├── Release.xcconfig
│ │ ├── Warnings.xcconfig
│ │ └── AppInfo.xcconfig
│ ├── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ │ ├── app_icon_16.png
│ │ │ ├── app_icon_32.png
│ │ │ ├── app_icon_64.png
│ │ │ ├── app_icon_1024.png
│ │ │ ├── app_icon_128.png
│ │ │ ├── app_icon_256.png
│ │ │ ├── app_icon_512.png
│ │ │ └── Contents.json
│ ├── AppDelegate.swift
│ ├── Release.entitlements
│ ├── DebugProfile.entitlements
│ ├── MainFlutterWindow.swift
│ └── Info.plist
├── .gitignore
├── Flutter
│ ├── Flutter-Debug.xcconfig
│ ├── Flutter-Release.xcconfig
│ └── GeneratedPluginRegistrant.swift
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Runner.xcodeproj
│ └── project.xcworkspace
│ │ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Podfile
└── Podfile.lock
├── assets
└── icons
│ ├── app_icon_background.png
│ ├── app_icon_foreground.png
│ ├── app_icon_square_sharp.png
│ └── app_icon_square_rounded.png
├── windows
├── runner
│ ├── resources
│ │ └── app_icon.ico
│ ├── resource.h
│ ├── CMakeLists.txt
│ ├── utils.h
│ ├── runner.exe.manifest
│ ├── flutter_window.h
│ ├── main.cpp
│ ├── utils.cpp
│ └── flutter_window.cpp
├── .gitignore
└── flutter
│ ├── generated_plugin_registrant.h
│ ├── generated_plugin_registrant.cc
│ └── generated_plugins.cmake
├── tool
├── gen-l10n.sh
├── gen-l10n.bat
├── prebuild.sh
└── prebuild.bat
├── lib
├── main.dart
└── injection_container
│ ├── dependency_injectables.dart
│ ├── injection_container.dart
│ ├── service_injectables.dart
│ └── use_case_injectables.dart
├── .metadata
├── pubspec.yaml
├── LICENSE
├── .gitignore
├── .vscode
└── launch.json
└── CONTRIBUTING.md
/linux/.gitignore:
--------------------------------------------------------------------------------
1 | flutter/ephemeral
2 |
--------------------------------------------------------------------------------
/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/modules/domain/lib/core/core.dart:
--------------------------------------------------------------------------------
1 | export 'extensions/extensions.dart';
2 |
--------------------------------------------------------------------------------
/modules/presentation/lib/assets/audio/audio.dart:
--------------------------------------------------------------------------------
1 | export 'sfx_assets.dart';
2 |
--------------------------------------------------------------------------------
/modules/presentation/lib/helpers/strings/strings.dart:
--------------------------------------------------------------------------------
1 | export 'join.dart';
2 |
--------------------------------------------------------------------------------
/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | include: package:very_good_analysis/analysis_options.yaml
2 |
--------------------------------------------------------------------------------
/modules/infrastructure/test/helpers/helpers.dart:
--------------------------------------------------------------------------------
1 | export 'create_puzzle.dart';
2 |
--------------------------------------------------------------------------------
/modules/presentation/lib/constants/constants.dart:
--------------------------------------------------------------------------------
1 | export 'breakpoints.dart';
2 |
--------------------------------------------------------------------------------
/modules/presentation/lib/helpers/dialogs/dialogs.dart:
--------------------------------------------------------------------------------
1 | export 'show_glass_dialog.dart';
2 |
--------------------------------------------------------------------------------
/modules/domain/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | include: package:very_good_analysis/analysis_options.yaml
2 |
--------------------------------------------------------------------------------
/modules/presentation/lib/background_handler/painters/painters.dart:
--------------------------------------------------------------------------------
1 | export 'star_painter.dart';
2 |
--------------------------------------------------------------------------------
/web/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/web/favicon.png
--------------------------------------------------------------------------------
/modules/application/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | include: package:very_good_analysis/analysis_options.yaml
2 |
--------------------------------------------------------------------------------
/modules/infrastructure/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | include: package:very_good_analysis/analysis_options.yaml
--------------------------------------------------------------------------------
/modules/presentation/lib/helpers/animation/animation.dart:
--------------------------------------------------------------------------------
1 | export 'sync_rive_animation_theme.dart';
2 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## 1.1.0
2 |
3 | - Add Youtube tutorial in menu
4 |
5 | ## 1.0.0
6 |
7 | - First release
8 |
--------------------------------------------------------------------------------
/modules/application/lib/use_cases/theme/theme.dart:
--------------------------------------------------------------------------------
1 | export 'switch_theme/switch_theme_use_case.dart';
2 |
--------------------------------------------------------------------------------
/modules/presentation/lib/dash_animator/dialogs/dialogs.dart:
--------------------------------------------------------------------------------
1 | export 'dash_animator_preview_dialog.dart';
2 |
--------------------------------------------------------------------------------
/modules/infrastructure/lib/services/puzzle_service/puzzle_solver/models/models.dart:
--------------------------------------------------------------------------------
1 | export 'boundary.dart';
2 |
--------------------------------------------------------------------------------
/modules/presentation/lib/dash_animator/overlays/overlays.dart:
--------------------------------------------------------------------------------
1 | export 'object_throw_animation_overlay.dart';
2 |
--------------------------------------------------------------------------------
/web/icons/Icon-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/web/icons/Icon-192.png
--------------------------------------------------------------------------------
/web/icons/Icon-512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/web/icons/Icon-512.png
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/macos/Runner/Configs/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "../../Flutter/Flutter-Debug.xcconfig"
2 | #include "Warnings.xcconfig"
3 |
--------------------------------------------------------------------------------
/modules/presentation/lib/dash_animator/curves/curves.dart:
--------------------------------------------------------------------------------
1 | export 'arc_curve.dart';
2 | export 'mcdonald_curve.dart';
3 |
--------------------------------------------------------------------------------
/macos/Runner/Configs/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "../../Flutter/Flutter-Release.xcconfig"
2 | #include "Warnings.xcconfig"
3 |
--------------------------------------------------------------------------------
/macos/.gitignore:
--------------------------------------------------------------------------------
1 | # Flutter-related
2 | **/Flutter/ephemeral/
3 | **/Pods/
4 |
5 | # Xcode-related
6 | **/dgph
7 | **/xcuserdata/
8 |
--------------------------------------------------------------------------------
/modules/presentation/lib/assets/animations/animations.dart:
--------------------------------------------------------------------------------
1 | export 'puzzle_board_animations.dart';
2 | export 'sky_animations.dart';
3 |
--------------------------------------------------------------------------------
/modules/presentation/lib/helpers/widgets/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'synced_animated_align.dart';
2 | export 'synced_animated_rotation.dart';
3 |
--------------------------------------------------------------------------------
/assets/icons/app_icon_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/assets/icons/app_icon_background.png
--------------------------------------------------------------------------------
/assets/icons/app_icon_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/assets/icons/app_icon_foreground.png
--------------------------------------------------------------------------------
/assets/icons/app_icon_square_sharp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/assets/icons/app_icon_square_sharp.png
--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/modules/application/lib/use_cases/use_cases.dart:
--------------------------------------------------------------------------------
1 | export 'audio/audio.dart';
2 | export 'game/game.dart';
3 | export 'theme/theme.dart';
4 |
--------------------------------------------------------------------------------
/modules/presentation/lib/audio_handler/audio_handler.dart:
--------------------------------------------------------------------------------
1 | export 'enum/audio_player_channel.dart';
2 | export 'widgets/audio_handler.dart';
3 |
--------------------------------------------------------------------------------
/modules/presentation/lib/background_handler/background_handler.dart:
--------------------------------------------------------------------------------
1 | export 'painters/painters.dart';
2 | export 'widgets/widgets.dart';
3 |
--------------------------------------------------------------------------------
/windows/runner/resources/app_icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/windows/runner/resources/app_icon.ico
--------------------------------------------------------------------------------
/assets/icons/app_icon_square_rounded.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/assets/icons/app_icon_square_rounded.png
--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/modules/infrastructure/lib/infrastructure.dart:
--------------------------------------------------------------------------------
1 | export 'package:codenic_logger/codenic_logger.dart';
2 |
3 | export 'services/services.dart';
4 |
--------------------------------------------------------------------------------
/modules/presentation/lib/assets/assets.dart:
--------------------------------------------------------------------------------
1 | export 'animations/animations.dart';
2 | export 'audio/audio.dart';
3 | export 'images/images.dart';
4 |
--------------------------------------------------------------------------------
/modules/presentation/lib/puzzle/widgets/app_bar/app_bar.dart:
--------------------------------------------------------------------------------
1 | export 'action_item.dart';
2 | export 'app_bar_title.dart';
3 | export 'menu.dart';
4 |
--------------------------------------------------------------------------------
/modules/presentation/lib/puzzle/puzzle.dart:
--------------------------------------------------------------------------------
1 | export 'dialogs/dialogs.dart';
2 | export 'page/puzzle_page.dart';
3 | export 'widgets/widgets.dart';
4 |
--------------------------------------------------------------------------------
/modules/domain/lib/core/extensions/extensions.dart:
--------------------------------------------------------------------------------
1 | export 'duration_extension.dart';
2 | export 'either_extension.dart';
3 | export 'num_extension.dart';
4 |
--------------------------------------------------------------------------------
/modules/presentation/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | include: package:very_good_analysis/analysis_options.yaml
2 |
3 | analyzer:
4 | exclude:
5 | - lib/l10n/**
--------------------------------------------------------------------------------
/modules/domain/lib/service_interfaces/service_interfaces.dart:
--------------------------------------------------------------------------------
1 | export 'audio_service.dart';
2 | export 'game_service.dart';
3 | export 'puzzle_service.dart';
4 |
--------------------------------------------------------------------------------
/modules/presentation/assets/animations/sky.riv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/animations/sky.riv
--------------------------------------------------------------------------------
/modules/presentation/assets/audio/sfx/click.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/audio/sfx/click.mp3
--------------------------------------------------------------------------------
/modules/presentation/assets/audio/sfx/magic.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/audio/sfx/magic.mp3
--------------------------------------------------------------------------------
/modules/presentation/assets/audio/sfx/toss.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/audio/sfx/toss.mp3
--------------------------------------------------------------------------------
/modules/presentation/fonts/Bangers-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/fonts/Bangers-Regular.ttf
--------------------------------------------------------------------------------
/modules/presentation/assets/audio/sfx/complete.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/audio/sfx/complete.mp3
--------------------------------------------------------------------------------
/modules/presentation/assets/audio/sfx/shuffled.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/audio/sfx/shuffled.mp3
--------------------------------------------------------------------------------
/modules/presentation/lib/background_handler/widgets/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'background_handler.dart';
2 | export 'sky_animator.dart';
3 | export 'stars_handler.dart';
4 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/macos/Flutter/Flutter-Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "ephemeral/Flutter-Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/macos/Flutter/Flutter-Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "ephemeral/Flutter-Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/modules/presentation/assets/audio/sfx/device_fall.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/audio/sfx/device_fall.mp3
--------------------------------------------------------------------------------
/modules/presentation/assets/audio/sfx/shuffling.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/audio/sfx/shuffling.mp3
--------------------------------------------------------------------------------
/modules/presentation/assets/audio/sfx/tile_move.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/audio/sfx/tile_move.mp3
--------------------------------------------------------------------------------
/modules/presentation/assets/images/spells/magic.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/spells/magic.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/spells/pizza.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/spells/pizza.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/spells/throw.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/spells/throw.webp
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/modules/presentation/assets/animations/puzzle_board.riv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/animations/puzzle_board.riv
--------------------------------------------------------------------------------
/modules/presentation/assets/audio/sfx/dash_sound_1.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/audio/sfx/dash_sound_1.mp3
--------------------------------------------------------------------------------
/modules/presentation/assets/audio/sfx/dash_sound_2.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/audio/sfx/dash_sound_2.mp3
--------------------------------------------------------------------------------
/modules/presentation/assets/audio/sfx/dash_sound_3.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/audio/sfx/dash_sound_3.mp3
--------------------------------------------------------------------------------
/modules/presentation/assets/images/day_cycles/day.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/day_cycles/day.webp
--------------------------------------------------------------------------------
/modules/presentation/lib/puzzle/dialogs/dialogs.dart:
--------------------------------------------------------------------------------
1 | export 'keyboard_shortcut_dialog/keyboard_shortcut_dialog.dart';
2 | export 'share_app_dialog/share_app_dialog.dart';
3 |
--------------------------------------------------------------------------------
/modules/presentation/assets/audio/sfx/tile_unmovable.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/audio/sfx/tile_unmovable.mp3
--------------------------------------------------------------------------------
/modules/presentation/assets/images/day_cycles/night.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/day_cycles/night.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/logos/flutter_mono.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/logos/flutter_mono.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/throwables/pizza.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/throwables/pizza.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/throwables/stone.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/throwables/stone.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/audio/sfx/spell_available_1.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/audio/sfx/spell_available_1.mp3
--------------------------------------------------------------------------------
/modules/presentation/assets/audio/sfx/spell_available_2.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/audio/sfx/spell_available_2.mp3
--------------------------------------------------------------------------------
/modules/presentation/assets/images/day_cycles/prevening.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/day_cycles/prevening.webp
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/body/nude.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/body/nude.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/comb/comb.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/comb/comb.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/tail/tail.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/tail/tail.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/wand/wand.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/wand/wand.webp
--------------------------------------------------------------------------------
/modules/presentation/lib/helpers/helpers.dart:
--------------------------------------------------------------------------------
1 | export 'animation/animation.dart';
2 | export 'dialogs/dialogs.dart';
3 | export 'strings/strings.dart';
4 | export 'widgets/widgets.dart';
5 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-hdpi/ic_launcher_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/android/app/src/main/res/drawable-hdpi/ic_launcher_background.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/ic_launcher_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/android/app/src/main/res/drawable-mdpi/ic_launcher_background.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xhdpi/ic_launcher_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/android/app/src/main/res/drawable-xhdpi/ic_launcher_background.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/android/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_background.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/body/blue_polo.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/body/blue_polo.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/body/green_polo.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/body/green_polo.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/body/yellow_tie.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/body/yellow_tie.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/faces/face_sad.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/faces/face_sad.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/faces/face_wtf.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/faces/face_wtf.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/wings/left_wing.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/wings/left_wing.webp
--------------------------------------------------------------------------------
/modules/infrastructure/lib/services/services.dart:
--------------------------------------------------------------------------------
1 | export 'audio_service/audio_service_impl.dart';
2 | export 'game_service/game_service_impl.dart';
3 | export 'puzzle_service/puzzle_service_impl.dart';
4 |
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/body/blue_hoodie.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/body/blue_hoodie.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/body/blue_ribbon.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/body/blue_ribbon.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/body/green_hoodie.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/body/green_hoodie.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/body/wizard_robe.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/body/wizard_robe.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/body/yellow_polo.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/body/yellow_polo.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/faces/face_happy.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/faces/face_happy.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/faces/face_kawaii.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/faces/face_kawaii.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/faces/face_normal.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/faces/face_normal.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/faces/face_wizard.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/faces/face_wizard.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/faces/face_wtfff.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/faces/face_wtfff.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/wings/right_wing.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/wings/right_wing.webp
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/devices/cyan_laptop.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/devices/cyan_laptop.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/devices/green_laptop.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/devices/green_laptop.webp
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/devices/pink_laptop.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/devices/pink_laptop.webp
--------------------------------------------------------------------------------
/linux/main.cc:
--------------------------------------------------------------------------------
1 | #include "my_application.h"
2 |
3 | int main(int argc, char** argv) {
4 | g_autoptr(MyApplication) app = my_application_new();
5 | return g_application_run(G_APPLICATION(app), argc, argv);
6 | }
7 |
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/devices/purple_laptop.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/devices/purple_laptop.webp
--------------------------------------------------------------------------------
/tool/gen-l10n.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Regenerates the localization file in the Presentation layer
4 |
5 | cd modules/presentation
6 | flutter gen-l10n --arb-dir=assets/l10n --output-dir=lib/l10n --no-synthetic-package
--------------------------------------------------------------------------------
/modules/presentation/assets/images/dash_sprites/faces/face_happy_wizard.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodenicCoders/dash_slide_puzzle/HEAD/modules/presentation/assets/images/dash_sprites/faces/face_happy_wizard.webp
--------------------------------------------------------------------------------
/modules/presentation/lib/assets/images/images.dart:
--------------------------------------------------------------------------------
1 | export 'dash_sprite_assets.dart';
2 | export 'day_cycle_assets.dart';
3 | export 'logo_assets.dart';
4 | export 'spell_assets.dart';
5 | export 'throwable_assets.dart';
6 |
--------------------------------------------------------------------------------
/android/app/src/main/kotlin/com/orga/dash_slide_puzzle/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.orga.dash_slide_puzzle
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/modules/infrastructure/lib/services/puzzle_service/puzzle_solver/a_star/a_star.dart:
--------------------------------------------------------------------------------
1 | export 'a_star_helper.dart';
2 | export 'a_star_variant_a.dart';
3 | export 'a_star_variant_b.dart';
4 | export 'a_star_variant_c.dart';
5 |
--------------------------------------------------------------------------------
/tool/gen-l10n.bat:
--------------------------------------------------------------------------------
1 | :: Regenerates the localization file in the Presentation layer
2 |
3 | @echo off
4 |
5 | cd modules\presentation && ^
6 | flutter gen-l10n --arb-dir=assets\l10n --output-dir=lib\l10n --no-synthetic-package
--------------------------------------------------------------------------------
/modules/presentation/lib/dash_animator/dash_animator.dart:
--------------------------------------------------------------------------------
1 | export 'cubit/dash_animator_group_cubit.dart';
2 | export 'curves/curves.dart';
3 | export 'dialogs/dialogs.dart';
4 | export 'overlays/overlays.dart';
5 | export 'widgets/widgets.dart';
6 |
--------------------------------------------------------------------------------
/modules/domain/lib/failures/failures.dart:
--------------------------------------------------------------------------------
1 | export 'failure.dart';
2 | export 'game_already_started_failure.dart';
3 | export 'game_not_started_failure.dart';
4 | export 'no_available_spell_failure.dart';
5 | export 'tile_not_movable_failure.dart';
6 |
--------------------------------------------------------------------------------
/modules/domain/lib/entities/entities.dart:
--------------------------------------------------------------------------------
1 | export 'active_spell_state.dart';
2 | export 'available_spell_state.dart';
3 | export 'game_settings.dart';
4 | export 'game_state.dart';
5 | export 'position.dart';
6 | export 'puzzle.dart';
7 | export 'tile.dart';
8 |
--------------------------------------------------------------------------------
/macos/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import Cocoa
2 | import FlutterMacOS
3 |
4 | @NSApplicationMain
5 | class AppDelegate: FlutterAppDelegate {
6 | override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
7 | return true
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/modules/domain/lib/core/extensions/num_extension.dart:
--------------------------------------------------------------------------------
1 | import 'dart:math';
2 |
3 | /// An extension for the [num] class.
4 | extension NumExtension on num {
5 | /// Constraints the num value between [a] and [b] inclusively.
6 | num minMax(num a, num b) => max(min(this, b), a);
7 | }
8 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Jun 23 08:50:38 CEST 2017
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
7 |
--------------------------------------------------------------------------------
/macos/Runner/Release.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/modules/application/lib/use_cases/audio/audio.dart:
--------------------------------------------------------------------------------
1 | export 'mute_all_audio/mute_all_audio_use_case.dart';
2 | export 'play_local_audio/play_local_audio_use_case.dart';
3 | export 'unmute_all_audio/unmute_all_audio_use_case.dart';
4 | export 'watch_all_audio_muted_state/watch_all_audio_muted_state_use_case.dart';
5 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/macos/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/lib/main.dart:
--------------------------------------------------------------------------------
1 | import 'package:dash_slide_puzzle/injection_container/injection_container.dart';
2 | import 'package:presentation/presentation.dart';
3 |
4 | Future main() async {
5 | WidgetsFlutterBinding.ensureInitialized();
6 |
7 | await initializeInjectionContainer();
8 |
9 | runApp(const MainApp());
10 | }
11 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/modules/application/lib/application.dart:
--------------------------------------------------------------------------------
1 | export 'package:codenic_bloc_use_case/codenic_bloc_use_case.dart';
2 | export 'package:domain/core/core.dart';
3 | export 'package:domain/entities/entities.dart';
4 | export 'package:domain/failures/failures.dart';
5 | export 'package:equatable/equatable.dart';
6 |
7 | export 'use_cases/use_cases.dart';
8 |
--------------------------------------------------------------------------------
/modules/domain/lib/domain.dart:
--------------------------------------------------------------------------------
1 | export 'package:codenic_bloc_use_case/codenic_bloc_use_case.dart';
2 | export 'package:collection/collection.dart';
3 | export 'package:equatable/equatable.dart';
4 |
5 | export 'core/core.dart';
6 | export 'entities/entities.dart';
7 | export 'failures/failures.dart';
8 | export 'service_interfaces/service_interfaces.dart';
9 |
--------------------------------------------------------------------------------
/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: 77d935af4db863f6abd0b9c31c7e6df2a13de57b
8 | channel: stable
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | key.properties
12 | **/*.keystore
13 | **/*.jks
14 |
--------------------------------------------------------------------------------
/modules/presentation/lib/puzzle/widgets/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'app_bar/app_bar.dart';
2 | export 'floating_action_buttons/floating_action_buttons.dart';
3 | export 'game_action_button.dart';
4 | export 'puzzle_board.dart';
5 | export 'puzzle_board_group_layout.dart';
6 | export 'puzzle_keyboard_handler.dart';
7 | export 'puzzle_tile.dart';
8 | export 'puzzle_tile.dart';
9 |
--------------------------------------------------------------------------------
/modules/domain/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: 77d935af4db863f6abd0b9c31c7e6df2a13de57b
8 | channel: stable
9 |
10 | project_type: module
11 |
--------------------------------------------------------------------------------
/modules/application/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: 77d935af4db863f6abd0b9c31c7e6df2a13de57b
8 | channel: stable
9 |
10 | project_type: module
11 |
--------------------------------------------------------------------------------
/modules/infrastructure/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: 77d935af4db863f6abd0b9c31c7e6df2a13de57b
8 | channel: stable
9 |
10 | project_type: module
11 |
--------------------------------------------------------------------------------
/modules/presentation/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: 77d935af4db863f6abd0b9c31c7e6df2a13de57b
8 | channel: stable
9 |
10 | project_type: module
11 |
--------------------------------------------------------------------------------
/tool/prebuild.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # FOR MAC OS AND LINUX SYSTEMS
4 |
5 | # This script does the following:
6 | # - Cleans the project
7 | # - Refetches all dependencies
8 |
9 | flutter clean
10 | flutter pub get modules/domain
11 | flutter pub get modules/infrastructure
12 | flutter pub get modules/application
13 | flutter pub get modules/presentation
14 | flutter pub get
15 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/modules/domain/README.md:
--------------------------------------------------------------------------------
1 | # domain
2 |
3 | A new flutter module project.
4 |
5 | ## Getting Started
6 |
7 | For help getting started with Flutter, view our online
8 | [documentation](https://flutter.dev/).
9 |
10 | For instructions integrating Flutter modules to your existing applications,
11 | see the [add-to-app documentation](https://flutter.dev/docs/development/add-to-app).
12 |
--------------------------------------------------------------------------------
/windows/.gitignore:
--------------------------------------------------------------------------------
1 | flutter/ephemeral/
2 |
3 | # Visual Studio user-specific files.
4 | *.suo
5 | *.user
6 | *.userosscache
7 | *.sln.docstates
8 |
9 | # Visual Studio build-related files.
10 | x64/
11 | x86/
12 |
13 | # Visual Studio cache files
14 | # files ending in .cache can be ignored
15 | *.[Cc]ache
16 | # but keep track of directories ending in .cache
17 | !*.[Cc]ache/
18 |
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/modules/application/README.md:
--------------------------------------------------------------------------------
1 | # application
2 |
3 | A new flutter module project.
4 |
5 | ## Getting Started
6 |
7 | For help getting started with Flutter, view our online
8 | [documentation](https://flutter.dev/).
9 |
10 | For instructions integrating Flutter modules to your existing applications,
11 | see the [add-to-app documentation](https://flutter.dev/docs/development/add-to-app).
12 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/modules/infrastructure/README.md:
--------------------------------------------------------------------------------
1 | # infrastructure
2 |
3 | A new flutter module project.
4 |
5 | ## Getting Started
6 |
7 | For help getting started with Flutter, view our online
8 | [documentation](https://flutter.dev/).
9 |
10 | For instructions integrating Flutter modules to your existing applications,
11 | see the [add-to-app documentation](https://flutter.dev/docs/development/add-to-app).
12 |
--------------------------------------------------------------------------------
/modules/presentation/README.md:
--------------------------------------------------------------------------------
1 | # presentation
2 |
3 | A new flutter module project.
4 |
5 | ## Getting Started
6 |
7 | For help getting started with Flutter, view our online
8 | [documentation](https://flutter.dev/).
9 |
10 | For instructions integrating Flutter modules to your existing applications,
11 | see the [add-to-app documentation](https://flutter.dev/docs/development/add-to-app).
12 |
--------------------------------------------------------------------------------
/tool/prebuild.bat:
--------------------------------------------------------------------------------
1 | :: FOR WINDOWS SYSTEM
2 |
3 | :: This script does the following:
4 | :: - Cleans the project
5 | :: - Refetches all dependencies
6 |
7 | @echo off
8 |
9 | flutter clean && ^
10 | flutter pub get modules/domain && ^
11 | flutter pub get modules/infrastructure && ^
12 | flutter pub get modules/application && ^
13 | flutter pub get modules/presentation && ^
14 | flutter pub get
15 |
--------------------------------------------------------------------------------
/modules/presentation/lib/constants/breakpoints.dart:
--------------------------------------------------------------------------------
1 | /// Breakpoints for determining different screen sizes.
2 | abstract class Breakpoints {
3 | /// Max width for a small layout.
4 | static const double small = 600;
5 |
6 | /// Min width for a medium layout.
7 | static const double medium = 1240;
8 |
9 | /// Max width for a medium layout.
10 | static const double large = 1440;
11 | }
12 |
--------------------------------------------------------------------------------
/linux/flutter/generated_plugin_registrant.h:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | // clang-format off
6 |
7 | #ifndef GENERATED_PLUGIN_REGISTRANT_
8 | #define GENERATED_PLUGIN_REGISTRANT_
9 |
10 | #include
11 |
12 | // Registers Flutter plugins.
13 | void fl_register_plugins(FlPluginRegistry* registry);
14 |
15 | #endif // GENERATED_PLUGIN_REGISTRANT_
16 |
--------------------------------------------------------------------------------
/windows/flutter/generated_plugin_registrant.h:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | // clang-format off
6 |
7 | #ifndef GENERATED_PLUGIN_REGISTRANT_
8 | #define GENERATED_PLUGIN_REGISTRANT_
9 |
10 | #include
11 |
12 | // Registers Flutter plugins.
13 | void RegisterPlugins(flutter::PluginRegistry* registry);
14 |
15 | #endif // GENERATED_PLUGIN_REGISTRANT_
16 |
--------------------------------------------------------------------------------
/windows/flutter/generated_plugin_registrant.cc:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | // clang-format off
6 |
7 | #include "generated_plugin_registrant.h"
8 |
9 | #include
10 |
11 | void RegisterPlugins(flutter::PluginRegistry* registry) {
12 | UrlLauncherWindowsRegisterWithRegistrar(
13 | registry->GetRegistrarForPlugin("UrlLauncherWindows"));
14 | }
15 |
--------------------------------------------------------------------------------
/macos/Runner/DebugProfile.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 | com.apple.security.cs.allow-jit
8 |
9 | com.apple.security.network.server
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/lib/injection_container/dependency_injectables.dart:
--------------------------------------------------------------------------------
1 | part of 'injection_container.dart';
2 |
3 | /// Registers all external dependencies in the [serviceLocator] as a lazy
4 | /// singleton.
5 | Future _injectDependencies(GetIt serviceLocator) async {
6 | void _register(FactoryFunc factoryFunc) =>
7 | serviceLocator.registerLazySingleton(factoryFunc);
8 |
9 | _register(CodenicLogger.new);
10 | }
11 |
--------------------------------------------------------------------------------
/modules/presentation/lib/assets/images/logo_assets.dart:
--------------------------------------------------------------------------------
1 | import 'package:presentation/presentation.dart';
2 |
3 | /// A class for fetching logo assets.
4 | class LogoAssets {
5 | const LogoAssets._();
6 |
7 | static final _root =
8 | join(['packages', 'presentation', 'assets', 'images', 'logos']);
9 |
10 | /// Returns the file path of the `flutter_mono.webp` asset.
11 | static String get flutter => join([_root, 'flutter_mono.webp']);
12 | }
13 |
--------------------------------------------------------------------------------
/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 |
4 | @UIApplicationMain
5 | @objc class AppDelegate: FlutterAppDelegate {
6 | override func application(
7 | _ application: UIApplication,
8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
9 | ) -> Bool {
10 | GeneratedPluginRegistrant.register(with: self)
11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/modules/application/lib/use_cases/game/preview_completed_puzzle/preview_completed_puzzle_use_case.dart:
--------------------------------------------------------------------------------
1 | import 'package:application/application.dart';
2 |
3 | /// A use case for checking whether to preview the completed puzzle.
4 | class PreviewCompletedPuzzleUseCase extends Runner {
5 | @override
6 | bool get rightValue => super.rightValue ?? false;
7 |
8 | @override
9 | Future> onCall(void params) async => Right(!rightValue);
10 | }
11 |
--------------------------------------------------------------------------------
/linux/my_application.h:
--------------------------------------------------------------------------------
1 | #ifndef FLUTTER_MY_APPLICATION_H_
2 | #define FLUTTER_MY_APPLICATION_H_
3 |
4 | #include
5 |
6 | G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION,
7 | GtkApplication)
8 |
9 | /**
10 | * my_application_new:
11 | *
12 | * Creates a new Flutter-based application.
13 | *
14 | * Returns: a new #MyApplication.
15 | */
16 | MyApplication* my_application_new();
17 |
18 | #endif // FLUTTER_MY_APPLICATION_H_
19 |
--------------------------------------------------------------------------------
/modules/domain/lib/failures/game_not_started_failure.dart:
--------------------------------------------------------------------------------
1 | import 'package:domain/failures/failure.dart';
2 |
3 | /// {@template GameNotStartedFailure}
4 | ///
5 | /// A [Failure] indicating that the game has not started yet.
6 | ///
7 | /// {@endtemplate}
8 | class GameNotStartedFailure extends Failure {
9 | /// {@macro GameNotStartedFailure}
10 | const GameNotStartedFailure({
11 | String message = 'The game has not started yet',
12 | }) : super(message: message);
13 | }
14 |
--------------------------------------------------------------------------------
/modules/domain/lib/failures/no_available_spell_failure.dart:
--------------------------------------------------------------------------------
1 | import 'package:domain/failures/failure.dart';
2 |
3 | /// {@template NoAvailableSpellFailure}
4 | ///
5 | /// A [Failure] indicating that a spell is not available yet for casting.
6 | ///
7 | /// {@endtemplate}
8 | class NoAvailableSpellFailure extends Failure {
9 | /// {@macro NoAvailableSpellFailure}
10 | const NoAvailableSpellFailure({String message = 'Spells not ready'})
11 | : super(message: message);
12 | }
13 |
--------------------------------------------------------------------------------
/macos/Runner/MainFlutterWindow.swift:
--------------------------------------------------------------------------------
1 | import Cocoa
2 | import FlutterMacOS
3 |
4 | class MainFlutterWindow: NSWindow {
5 | override func awakeFromNib() {
6 | let flutterViewController = FlutterViewController.init()
7 | let windowFrame = self.frame
8 | self.contentViewController = flutterViewController
9 | self.setFrame(windowFrame, display: true)
10 |
11 | RegisterGeneratedPlugins(registry: flutterViewController)
12 |
13 | super.awakeFromNib()
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/modules/domain/lib/failures/game_already_started_failure.dart:
--------------------------------------------------------------------------------
1 | import 'package:domain/failures/failure.dart';
2 |
3 | /// {@template GameAlreadyStartedFailure}
4 | ///
5 | /// A [Failure] indicating that the game is currently in progress.
6 | ///
7 | /// {@endtemplate}
8 | class GameAlreadyStartedFailure extends Failure {
9 | /// {@macro GameAlreadyStartedFailure}
10 | const GameAlreadyStartedFailure({
11 | String message = 'The game has already started',
12 | }) : super(message: message);
13 | }
14 |
--------------------------------------------------------------------------------
/windows/runner/resource.h:
--------------------------------------------------------------------------------
1 | //{{NO_DEPENDENCIES}}
2 | // Microsoft Visual C++ generated include file.
3 | // Used by Runner.rc
4 | //
5 | #define IDI_APP_ICON 101
6 |
7 | // Next default values for new objects
8 | //
9 | #ifdef APSTUDIO_INVOKED
10 | #ifndef APSTUDIO_READONLY_SYMBOLS
11 | #define _APS_NEXT_RESOURCE_VALUE 102
12 | #define _APS_NEXT_COMMAND_VALUE 40001
13 | #define _APS_NEXT_CONTROL_VALUE 1001
14 | #define _APS_NEXT_SYMED_VALUE 101
15 | #endif
16 | #endif
17 |
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
4 | def properties = new Properties()
5 |
6 | assert localPropertiesFile.exists()
7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
8 |
9 | def flutterSdkPath = properties.getProperty("flutter.sdk")
10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
12 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/linux/flutter/generated_plugin_registrant.cc:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | // clang-format off
6 |
7 | #include "generated_plugin_registrant.h"
8 |
9 | #include
10 |
11 | void fl_register_plugins(FlPluginRegistry* registry) {
12 | g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
13 | fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
14 | url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
15 | }
16 |
--------------------------------------------------------------------------------
/modules/domain/lib/failures/concurrent_method_call_failure.dart:
--------------------------------------------------------------------------------
1 | import 'package:domain/failures/failure.dart';
2 |
3 | /// {@template ConcurrentMethodCallFailure}
4 | ///
5 | /// A [Failure] indicating that one or more method calls are running
6 | /// concurrently.
7 | ///
8 | /// {@endtemplate}
9 | class ConcurrentMethodCallFailure extends Failure {
10 | /// {@macro ConcurrentMethodCallFailure}
11 | const ConcurrentMethodCallFailure({
12 | String message = 'Concurrent method call detected',
13 | }) : super(message: message);
14 | }
15 |
--------------------------------------------------------------------------------
/modules/domain/lib/failures/tile_not_movable_failure.dart:
--------------------------------------------------------------------------------
1 | import 'package:domain/entities/tile.dart';
2 | import 'package:domain/failures/failure.dart';
3 |
4 | /// {@template TileOutOfBoundsFailure}
5 | ///
6 | /// A [Failure] indicating that the selected [Tile] cannot be moved.
7 | ///
8 | /// {@endtemplate}
9 | class TileNotMovableFailure extends Failure {
10 | /// {@macro TileOutOfBoundsFailure}
11 | const TileNotMovableFailure({
12 | String message = 'Selected tile cannot be moved',
13 | }) : super(message: message);
14 | }
15 |
--------------------------------------------------------------------------------
/modules/presentation/lib/dash_animator/widgets/widgets.dart:
--------------------------------------------------------------------------------
1 | export 'dash_animator.dart';
2 | export 'dash_animator_group/dash_animator_group.dart';
3 | export 'dash_body_animator.dart';
4 | export 'dash_comb_animator.dart';
5 | export 'dash_device_animator.dart';
6 | export 'dash_face_animator.dart';
7 | export 'dash_hover_animator.dart';
8 | export 'dash_left_wing_animator.dart';
9 | export 'dash_right_wing_animator.dart';
10 | export 'dash_tail_animator.dart';
11 | export 'dash_wand_animator.dart';
12 | export 'object_throw_animator.dart';
13 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchImage.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchImage@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "LaunchImage@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/modules/application/lib/use_cases/game/game.dart:
--------------------------------------------------------------------------------
1 | export 'cast_available_spell/cast_available_spell_use_case.dart';
2 | export 'move_player_tile/move_player_tile_use_case.dart';
3 | export 'preview_completed_puzzle/preview_completed_puzzle_use_case.dart';
4 | export 'reset_game/reset_game_use_case.dart';
5 | export 'start_game/start_game_use_case.dart';
6 | export 'watch_active_spell_state/watch_active_spell_state_use_case.dart';
7 | export 'watch_available_spell_state/watch_available_spell_state_use_case.dart';
8 | export 'watch_game/watch_game_state_use_case.dart';
9 |
--------------------------------------------------------------------------------
/windows/flutter/generated_plugins.cmake:
--------------------------------------------------------------------------------
1 | #
2 | # Generated file, do not edit.
3 | #
4 |
5 | list(APPEND FLUTTER_PLUGIN_LIST
6 | url_launcher_windows
7 | )
8 |
9 | set(PLUGIN_BUNDLED_LIBRARIES)
10 |
11 | foreach(plugin ${FLUTTER_PLUGIN_LIST})
12 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin})
13 | target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)
14 | list(APPEND PLUGIN_BUNDLED_LIBRARIES $)
15 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
16 | endforeach(plugin)
17 |
--------------------------------------------------------------------------------
/modules/domain/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: domain
2 | description: The layer containing all business objects and core business rules.
3 |
4 | version: 1.0.0+1
5 |
6 | publish_to: none
7 |
8 | environment:
9 | sdk: ">=2.15.1 <3.0.0"
10 |
11 | dependencies:
12 | codenic_bloc_use_case: ^0.1.0-dev.8
13 | collection: ^1.15.0
14 | flutter:
15 | sdk: flutter
16 |
17 | dev_dependencies:
18 | flutter_test:
19 | sdk: flutter
20 | very_good_analysis: ^2.4.0
21 |
22 | flutter:
23 | module:
24 | androidX: true
25 | androidPackage: com.orga.domain
26 | iosBundleIdentifier: com.orga.domain
27 |
--------------------------------------------------------------------------------
/modules/application/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: application
2 | description: The layer responsible for managing the data flow between the Presentation and Domain layer.
3 |
4 | version: 1.0.0+1
5 |
6 | publish_to: none
7 |
8 | environment:
9 | sdk: ">=2.15.1 <3.0.0"
10 |
11 | dependencies:
12 | domain:
13 | path: ../domain
14 | flutter:
15 | sdk: flutter
16 |
17 | dev_dependencies:
18 | flutter_test:
19 | sdk: flutter
20 |
21 | very_good_analysis: ^2.4.0
22 |
23 | flutter:
24 | module:
25 | androidX: true
26 | androidPackage: com.orga.application
27 | iosBundleIdentifier: com.orga.application
28 |
--------------------------------------------------------------------------------
/modules/application/lib/use_cases/game/start_game/start_game_use_case.dart:
--------------------------------------------------------------------------------
1 | import 'package:domain/domain.dart';
2 |
3 | /// {@template StartGameUseCase}
4 | ///
5 | /// A use case for starting the game.
6 | ///
7 | /// See [GameService.startGame].
8 | ///
9 | /// {@endtemplate}
10 | class StartGameUseCase extends Runner {
11 | /// {@macro StartGameUseCase}
12 | StartGameUseCase({required GameService gameService})
13 | : _gameService = gameService;
14 |
15 | final GameService _gameService;
16 |
17 | @override
18 | Future> onCall(void params) => _gameService.startGame();
19 | }
20 |
--------------------------------------------------------------------------------
/modules/domain/lib/core/extensions/either_extension.dart:
--------------------------------------------------------------------------------
1 | import 'package:codenic_bloc_use_case/codenic_bloc_use_case.dart';
2 |
3 | /// An extension for the `dartz` [Either] class.
4 | extension EitherExtension on Either {
5 |
6 | /// Returns the [R] value.
7 | ///
8 | /// If there is no [R] value, then a [StateError] will be thrown.
9 | R getRight() => fold((l) => throw StateError(l.toString()), (r) => r);
10 |
11 | /// Returns the [L] value.
12 | ///
13 | /// If there is no [L] value, then a [StateError] will be thrown.
14 | L getLeft() => fold((l) => l, (r) => throw StateError(r.toString()));
15 | }
16 |
--------------------------------------------------------------------------------
/modules/application/lib/use_cases/game/reset_game/reset_game_use_case.dart:
--------------------------------------------------------------------------------
1 | import 'package:domain/domain.dart';
2 |
3 | /// {@template ResetGameUseCase}
4 | ///
5 | /// A use case for resetting the game.
6 | ///
7 | /// See [GameService.resetGame].
8 | ///
9 | /// {@endtemplate}
10 | class ResetGameUseCase extends Runner {
11 | /// {@macro ResetGameUseCase}
12 | ResetGameUseCase({required GameService gameService})
13 | : _gameService = gameService;
14 |
15 | final GameService _gameService;
16 |
17 | @override
18 | Future> onCall(void params) => _gameService.resetGame();
19 | }
20 |
--------------------------------------------------------------------------------
/lib/injection_container/injection_container.dart:
--------------------------------------------------------------------------------
1 | import 'package:application/application.dart';
2 | import 'package:domain/domain.dart';
3 | import 'package:infrastructure/infrastructure.dart';
4 | import 'package:presentation/presentation.dart';
5 |
6 | part 'dependency_injectables.dart';
7 | part 'service_injectables.dart';
8 | part 'use_case_injectables.dart';
9 |
10 | /// Injects all service components to the [serviceLocator].
11 |
12 | Future initializeInjectionContainer() async {
13 | await Future.wait([
14 | _injectDependencies(serviceLocator),
15 | _injectServices(serviceLocator),
16 | _injectUseCases(serviceLocator),
17 | ]);
18 | }
19 |
--------------------------------------------------------------------------------
/macos/Runner/Configs/Warnings.xcconfig:
--------------------------------------------------------------------------------
1 | WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings
2 | GCC_WARN_UNDECLARED_SELECTOR = YES
3 | CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES
4 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE
5 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
6 | CLANG_WARN_PRAGMA_PACK = YES
7 | CLANG_WARN_STRICT_PROTOTYPES = YES
8 | CLANG_WARN_COMMA = YES
9 | GCC_WARN_STRICT_SELECTOR_MATCH = YES
10 | CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES
11 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
12 | GCC_WARN_SHADOW = YES
13 | CLANG_WARN_UNREACHABLE_CODE = YES
14 |
--------------------------------------------------------------------------------
/windows/runner/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.14)
2 | project(runner LANGUAGES CXX)
3 |
4 | add_executable(${BINARY_NAME} WIN32
5 | "flutter_window.cpp"
6 | "main.cpp"
7 | "utils.cpp"
8 | "win32_window.cpp"
9 | "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc"
10 | "Runner.rc"
11 | "runner.exe.manifest"
12 | )
13 | apply_standard_settings(${BINARY_NAME})
14 | target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX")
15 | target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app)
16 | target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}")
17 | add_dependencies(${BINARY_NAME} flutter_assemble)
18 |
--------------------------------------------------------------------------------
/modules/application/lib/use_cases/audio/mute_all_audio/mute_all_audio_use_case.dart:
--------------------------------------------------------------------------------
1 | import 'package:domain/domain.dart';
2 |
3 | /// {@template MuteAllAudioUseCase}
4 | ///
5 | /// A use case for muting all audio players.
6 | ///
7 | /// See [AudioService.muteAll].
8 | ///
9 | /// {@endtemplate}
10 | class MuteAllAudioUseCase extends Runner {
11 | /// {@macro MuteAllAudioUseCase}
12 | MuteAllAudioUseCase({required AudioService audioService})
13 | : _audioService = audioService;
14 |
15 | final AudioService _audioService;
16 |
17 | @override
18 | Future> onCall(void params) => _audioService.muteAll();
19 | }
20 |
--------------------------------------------------------------------------------
/modules/domain/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .dart_tool/
3 |
4 | .packages
5 | .pub/
6 |
7 | .idea/
8 | .vagrant/
9 | .sconsign.dblite
10 | .svn/
11 |
12 | *.swp
13 | profile
14 |
15 | DerivedData/
16 |
17 | .generated/
18 |
19 | *.pbxuser
20 | *.mode1v3
21 | *.mode2v3
22 | *.perspectivev3
23 |
24 | !default.pbxuser
25 | !default.mode1v3
26 | !default.mode2v3
27 | !default.perspectivev3
28 |
29 | xcuserdata
30 |
31 | *.moved-aside
32 |
33 | *.pyc
34 | *sync/
35 | Icon?
36 | .tags*
37 |
38 | build/
39 | .android/
40 | .ios/
41 | .flutter-plugins
42 | .flutter-plugins-dependencies
43 |
44 | # Symbolication related
45 | app.*.symbols
46 |
47 | # Obfuscation related
48 | app.*.map.json
49 |
--------------------------------------------------------------------------------
/modules/application/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .dart_tool/
3 |
4 | .packages
5 | .pub/
6 |
7 | .idea/
8 | .vagrant/
9 | .sconsign.dblite
10 | .svn/
11 |
12 | *.swp
13 | profile
14 |
15 | DerivedData/
16 |
17 | .generated/
18 |
19 | *.pbxuser
20 | *.mode1v3
21 | *.mode2v3
22 | *.perspectivev3
23 |
24 | !default.pbxuser
25 | !default.mode1v3
26 | !default.mode2v3
27 | !default.perspectivev3
28 |
29 | xcuserdata
30 |
31 | *.moved-aside
32 |
33 | *.pyc
34 | *sync/
35 | Icon?
36 | .tags*
37 |
38 | build/
39 | .android/
40 | .ios/
41 | .flutter-plugins
42 | .flutter-plugins-dependencies
43 |
44 | # Symbolication related
45 | app.*.symbols
46 |
47 | # Obfuscation related
48 | app.*.map.json
49 |
--------------------------------------------------------------------------------
/modules/application/lib/use_cases/audio/unmute_all_audio/unmute_all_audio_use_case.dart:
--------------------------------------------------------------------------------
1 | import 'package:domain/domain.dart';
2 |
3 | /// {@template UnmuteAllAudioUseCase}
4 | ///
5 | /// A use case for muting all audio players.
6 | ///
7 | /// See [AudioService.unmuteAll].
8 | ///
9 | /// {@endtemplate}
10 | class UnmuteAllAudioUseCase extends Runner {
11 | /// {@macro UnmuteAllAudioUseCase}
12 | UnmuteAllAudioUseCase({required AudioService audioService})
13 | : _audioService = audioService;
14 |
15 | final AudioService _audioService;
16 |
17 | @override
18 | Future> onCall(void params) =>
19 | _audioService.unmuteAll();
20 | }
21 |
--------------------------------------------------------------------------------
/modules/infrastructure/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: infrastructure
2 | description: The layer containing all service implementations.
3 |
4 | version: 1.0.0+1
5 |
6 | publish_to: none
7 |
8 | environment:
9 | sdk: ">=2.15.1 <3.0.0"
10 |
11 | dependencies:
12 | codenic_logger: ^0.5.5
13 | domain:
14 | path: ../domain
15 | flutter:
16 | sdk: flutter
17 | just_audio: ^0.9.20
18 | rxdart: ^0.27.3
19 |
20 | dev_dependencies:
21 | flutter_test:
22 | sdk: flutter
23 | mocktail: ^0.2.0
24 | very_good_analysis: ^2.4.0
25 |
26 | flutter:
27 | module:
28 | androidX: true
29 | androidPackage: com.orga.infrastructure
30 | iosBundleIdentifier: com.orga.infrastructure
31 |
--------------------------------------------------------------------------------
/modules/presentation/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .dart_tool/
3 |
4 | .packages
5 | .pub/
6 |
7 | .idea/
8 | .vagrant/
9 | .sconsign.dblite
10 | .svn/
11 |
12 | *.swp
13 | profile
14 |
15 | DerivedData/
16 |
17 | .generated/
18 |
19 | *.pbxuser
20 | *.mode1v3
21 | *.mode2v3
22 | *.perspectivev3
23 |
24 | !default.pbxuser
25 | !default.mode1v3
26 | !default.mode2v3
27 | !default.perspectivev3
28 |
29 | xcuserdata
30 |
31 | *.moved-aside
32 |
33 | *.pyc
34 | *sync/
35 | Icon?
36 | .tags*
37 |
38 | build/
39 | .android/
40 | .ios/
41 | .flutter-plugins
42 | .flutter-plugins-dependencies
43 |
44 | # Symbolication related
45 | app.*.symbols
46 |
47 | # Obfuscation related
48 | app.*.map.json
49 |
--------------------------------------------------------------------------------
/modules/presentation/lib/assets/animations/sky_animations.dart:
--------------------------------------------------------------------------------
1 | import 'package:presentation/presentation.dart';
2 |
3 | /// A class for accessing Rive animations for the sky background.
4 | class SkyAnimations {
5 | SkyAnimations._();
6 |
7 | static final _root =
8 | join(['packages', 'presentation', 'assets', 'animations']);
9 |
10 | /// The path to the sky Rive file.
11 | static final riveFilePath = join([_root, 'sky.riv']);
12 |
13 | /// A sky artboard designed for wide layouts.
14 | static const String landscapeArtboard = 'sky_landscape';
15 |
16 | /// A sky artboard designed for narrow layouts.
17 | static const String portraitArtboard = 'sky_portrait';
18 | }
19 |
--------------------------------------------------------------------------------
/macos/Flutter/GeneratedPluginRegistrant.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | import FlutterMacOS
6 | import Foundation
7 |
8 | import audio_session
9 | import just_audio
10 | import path_provider_macos
11 | import url_launcher_macos
12 |
13 | func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
14 | AudioSessionPlugin.register(with: registry.registrar(forPlugin: "AudioSessionPlugin"))
15 | JustAudioPlugin.register(with: registry.registrar(forPlugin: "JustAudioPlugin"))
16 | PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
17 | UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
18 | }
19 |
--------------------------------------------------------------------------------
/macos/Runner/Configs/AppInfo.xcconfig:
--------------------------------------------------------------------------------
1 | // Application-level settings for the Runner target.
2 | //
3 | // This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the
4 | // future. If not, the values below would default to using the project name when this becomes a
5 | // 'flutter create' template.
6 |
7 | // The application's name. By default this is also the title of the Flutter window.
8 | PRODUCT_NAME = Dash Slide Puzzle
9 |
10 | // The application's bundle identifier
11 | PRODUCT_BUNDLE_IDENTIFIER = com.orga.dashSlidePuzzle
12 |
13 | // The copyright displayed in application information
14 | PRODUCT_COPYRIGHT = Copyright © 2022 com.orga. All rights reserved.
15 |
--------------------------------------------------------------------------------
/modules/infrastructure/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .dart_tool/
3 |
4 | .packages
5 | .pub/
6 |
7 | .idea/
8 | .vagrant/
9 | .sconsign.dblite
10 | .svn/
11 |
12 | *.swp
13 | profile
14 |
15 | DerivedData/
16 |
17 | .generated/
18 |
19 | *.pbxuser
20 | *.mode1v3
21 | *.mode2v3
22 | *.perspectivev3
23 |
24 | !default.pbxuser
25 | !default.mode1v3
26 | !default.mode2v3
27 | !default.perspectivev3
28 |
29 | xcuserdata
30 |
31 | *.moved-aside
32 |
33 | *.pyc
34 | *sync/
35 | Icon?
36 | .tags*
37 |
38 | build/
39 | .android/
40 | .ios/
41 | .flutter-plugins
42 | .flutter-plugins-dependencies
43 |
44 | # Symbolication related
45 | app.*.symbols
46 |
47 | # Obfuscation related
48 | app.*.map.json
49 |
--------------------------------------------------------------------------------
/lib/injection_container/service_injectables.dart:
--------------------------------------------------------------------------------
1 | part of 'injection_container.dart';
2 |
3 | /// Registers all services in the [serviceLocator] as a lazy singleton.
4 | Future _injectServices(GetIt serviceLocator) async {
5 | void _register(FactoryFunc factoryFunc) =>
6 | serviceLocator.registerLazySingleton(factoryFunc);
7 |
8 | _register(() => AudioServiceImpl(logger: serviceLocator()));
9 |
10 | _register(
11 | () => GameServiceImpl(
12 | logger: serviceLocator(),
13 | puzzleService: serviceLocator(),
14 | ),
15 | );
16 |
17 | _register(() => PuzzleServiceImpl(logger: serviceLocator()));
18 | }
19 |
--------------------------------------------------------------------------------
/modules/presentation/test/widget_test.dart:
--------------------------------------------------------------------------------
1 | void main() {
2 | // testWidgets('Counter increments smoke test', (WidgetTester tester) async {
3 | // // Build our app and trigger a frame.
4 | // await tester.pumpWidget(const MyApp());
5 |
6 | // // Verify that our counter starts at 0.
7 | // expect(find.text('0'), findsOneWidget);
8 | // expect(find.text('1'), findsNothing);
9 |
10 | // // Tap the '+' icon and trigger a frame.
11 | // await tester.tap(find.byIcon(Icons.add));
12 | // await tester.pump();
13 |
14 | // // Verify that our counter has incremented.
15 | // expect(find.text('0'), findsNothing);
16 | // expect(find.text('1'), findsOneWidget);
17 | // });
18 | }
19 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.6.10'
3 | repositories {
4 | google()
5 | mavenCentral()
6 | }
7 |
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:4.1.0'
10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
11 | }
12 | }
13 |
14 | allprojects {
15 | repositories {
16 | google()
17 | mavenCentral()
18 | }
19 | }
20 |
21 | rootProject.buildDir = '../build'
22 |
23 | subprojects {
24 | project.buildDir = "${rootProject.buildDir}/${project.name}"
25 | project.evaluationDependsOn(':app')
26 | }
27 |
28 |
29 | task clean(type: Delete) {
30 | delete rootProject.buildDir
31 | }
32 |
--------------------------------------------------------------------------------
/ios/.gitignore:
--------------------------------------------------------------------------------
1 | **/dgph
2 | *.mode1v3
3 | *.mode2v3
4 | *.moved-aside
5 | *.pbxuser
6 | *.perspectivev3
7 | **/*sync/
8 | .sconsign.dblite
9 | .tags*
10 | **/.vagrant/
11 | **/DerivedData/
12 | Icon?
13 | **/Pods/
14 | **/.symlinks/
15 | profile
16 | xcuserdata
17 | **/.generated/
18 | Flutter/App.framework
19 | Flutter/Flutter.framework
20 | Flutter/Flutter.podspec
21 | Flutter/Generated.xcconfig
22 | Flutter/ephemeral/
23 | Flutter/app.flx
24 | Flutter/app.zip
25 | Flutter/flutter_assets/
26 | Flutter/flutter_export_environment.sh
27 | ServiceDefinitions.json
28 | Runner/GeneratedPluginRegistrant.*
29 |
30 | # Exceptions to above rules.
31 | !default.mode1v3
32 | !default.mode2v3
33 | !default.pbxuser
34 | !default.perspectivev3
35 |
--------------------------------------------------------------------------------
/modules/domain/lib/failures/failure.dart:
--------------------------------------------------------------------------------
1 | import 'package:equatable/equatable.dart';
2 |
3 | /// {@template Failure}
4 | ///
5 | /// The base failure object returned when an exception occurrs.
6 | ///
7 | /// Failures are adapters for exceptions to decouple the presentation layer
8 | /// from the infra layer.
9 | ///
10 | /// {@endtemplate}
11 | class Failure with EquatableMixin {
12 | /// {@macro Failure}
13 | const Failure({this.message = "Something went wrong! We're looking into it"});
14 |
15 | /// User-friendly message often displayed to the user.
16 | ///
17 | /// Keep this message less than or equal to 60 characters.
18 | final String message;
19 |
20 | @override
21 | List