Skip to content
Snippets Groups Projects
Select Git revision
  • ce08ed74a21c70da2639697b4f260c62c09c652a
  • master default protected
  • 101-upgrade-framework-and-dependencies
  • 84-improve-app-metadata
  • 82-fix-colors
  • 23-add-timer
  • 65-update-icons
  • Release_0.10.0_87 protected
  • Release_0.9.2_86 protected
  • Release_0.9.1_85 protected
  • Release_0.9.0_84 protected
  • Release_0.8.0_83 protected
  • Release_0.7.0_82 protected
  • Release_0.6.0_81 protected
  • Release_0.5.2_80 protected
  • Release_0.5.1_79 protected
  • Release_0.5.0_78 protected
  • Release_0.4.1_77 protected
  • Release_0.4.0_76 protected
  • Release_0.3.1_75 protected
  • Release_0.3.0_74 protected
  • Release_0.2.1_73 protected
  • Release_0.2.0_72 protected
  • Release_0.1.22_71 protected
  • Release_0.1.21_70 protected
  • Release_0.1.20_69 protected
  • Release_0.1.19_68 protected
27 results

home.dart

Blame
  • game_cubit.dart 4.20 KiB
    import 'dart:async';
    
    import 'package:flutter/material.dart';
    import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
    
    import 'package:memory/models/game/game.dart';
    import 'package:memory/models/settings/settings_game.dart';
    import 'package:memory/models/settings/settings_global.dart';
    
    part 'game_state.dart';
    
    class GameCubit extends HydratedCubit<GameState> {
      GameCubit()
          : super(GameState(
              currentGame: Game.createNull(),
            ));
    
      void updateState(Game game) {
        emit(GameState(
          currentGame: game,
        ));
      }
    
      void refresh() {
        final Game game = Game(
          // Settings
          gameSettings: state.currentGame.gameSettings,
          globalSettings: state.currentGame.globalSettings,
          // State
          isRunning: state.currentGame.isRunning,
          isStarted: state.currentGame.isStarted,
          isFinished: state.currentGame.isFinished,
          animationInProgress: state.currentGame.animationInProgress,
          shufflingInProgress: state.currentGame.shufflingInProgress,
          // Base data
          board: state.currentGame.board,
          // Game data
          guessesCount: state.currentGame.guessesCount,
          pairsFound: state.currentGame.pairsFound,
        );
        game.dump();
    
        updateState(game);
      }
    
      void startNewGame({
        required GameSettings gameSettings,
        required GlobalSettings globalSettings,
      }) {
        final Game newGame = Game.createNew(
          // Settings
          gameSettings: gameSettings,
          globalSettings: globalSettings,
        );
    
        newGame.dump();
    
        updateState(newGame);
        refresh();
      }
    
      void quitGame() {
        state.currentGame.isRunning = false;
        refresh();
      }
    
      void resumeSavedGame() {
        state.currentGame.isRunning = true;
        refresh();
      }