Skip to content
Snippets Groups Projects
Select Git revision
  • 60b0bef8ca1a7453167564b1e734412a04c9668f
  • master default protected
  • 61-upgrade-framework-and-dependencies
  • 42-improve-app-metadata
  • 17-improve-and-complete-offline-words-list-and-tips
  • 6-allow-translate-application
  • 9-improve-documentation
  • Release_1.10.0_44 protected
  • Release_1.9.2_43 protected
  • Release_1.9.1_42 protected
  • Release_1.9.0_41 protected
  • Release_1.8.0_40 protected
  • Release_1.7.0_39 protected
  • Release_1.6.0_38 protected
  • Release_1.5.2_37 protected
  • Release_1.5.1_36 protected
  • Release_1.5.0_35 protected
  • Release_1.4.1_34 protected
  • Release_1.4.0_33 protected
  • Release_1.3.2_32 protected
  • Release_1.3.1_31 protected
  • Release_1.3.0_30 protected
  • Release_1.2.18_29 protected
  • Release_1.2.17_28 protected
  • Release_1.2.16_27 protected
  • Release_1.2.15_26 protected
  • Release_1.2.14_25 protected
27 results

game.dart

Blame
  • game_cubit.dart 4.55 KiB
    import 'package:equatable/equatable.dart';
    import 'package:flutter/material.dart';
    import 'package:hydrated_bloc/hydrated_bloc.dart';
    
    import 'package:awale/models/game/game.dart';
    import 'package:awale/models/settings/settings_game.dart';
    import 'package:awale/models/settings/settings_global.dart';
    import 'package:awale/utils/tools.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,
          // Base data
          board: state.currentGame.board,
          // Game data
          currentPlayer: state.currentGame.currentPlayer,
          scores: state.currentGame.scores,
        );
        // 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();
      }