Skip to content
Snippets Groups Projects
Select Git revision
  • 5cf268233d902278dcaa61fae659540ae42c75e7
  • master default protected
  • 94-upgrade-framework-and-dependencies
  • 77-improve-app-metadata
  • 68-add-words
  • 62-fix-get-image-when-word-with-accent
  • 44-implement-game-write-word-from-letters
  • 43-add-script-to-get-images-from-assets
  • 32-add-accents-and-diacritics-in-french-words-2
  • Release_0.10.0_80 protected
  • Release_0.9.2_79 protected
  • Release_0.9.1_78 protected
  • Release_0.9.0_77 protected
  • Release_0.8.0_76 protected
  • Release_0.7.0_75 protected
  • Release_0.6.0_74 protected
  • Release_0.5.2_73 protected
  • Release_0.5.1_72 protected
  • Release_0.5.0_71 protected
  • Release_0.4.1_70 protected
  • Release_0.4.0_69 protected
  • Release_0.3.1_68 protected
  • Release_0.3.0_67 protected
  • Release_0.2.1_66 protected
  • Release_0.2.0_65 protected
  • Release_0.1.40_64 protected
  • Release_0.1.39_63 protected
  • Release_0.1.38_62 protected
  • Release_0.1.37_61 protected
29 results

home.dart

Blame
  • game_cubit.dart 3.84 KiB
    import 'package:equatable/equatable.dart';
    import 'package:flutter/material.dart';
    import 'package:hangman/data/fetch_data_helper.dart';
    import 'package:hangman/models/game/picked_word.dart';
    import 'package:hydrated_bloc/hydrated_bloc.dart';
    
    import 'package:hangman/models/game/game.dart';
    import 'package:hangman/models/settings/settings_game.dart';
    import 'package:hangman/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,
          gettingSecretWord: state.currentGame.gettingSecretWord,
          // Base data
          secretWord: state.currentGame.secretWord,
          clue: state.currentGame.clue,
          // Game data
          hiddenWord: state.currentGame.hiddenWord,
          usedLetters: state.currentGame.usedLetters,
          errorsCount: state.currentGame.errorsCount,
          isClueDisplayed: state.currentGame.isClueDisplayed,
        );
        // game.dump();
    
        updateState(game);
      }
    
      void startNewGame({
        required GameSettings gameSettings,
        required GlobalSettings globalSettings,
      }) {
        final Game newGame = Game.createNew(
          // Settings
          gameSettings: gameSettings,
          globalSettings: globalSettings,
        );
    
        updateState(newGame);
        refresh();
    
        FetchDataHelper().pickRandomWord(gameSettings).then((PickedWord pickedWord) {
          state.currentGame.gettingSecretWord = false;
          state.currentGame.secretWord = pickedWord.word;
          state.currentGame.clue = pickedWord.clue;
          state.currentGame.hiddenWord = List<String>.generate(pickedWord.word.length, (i) => '_');
          state.currentGame.dump();
    
          refresh();