Ejemplo n.º 1
0
 public MainPresenter(IMainView mainView, IGameSerializer serializer)
 {
     this.mainView   = mainView;
     this.serializer = serializer;
     if (Settings.Default.Highscores == null)
     {
         Settings.Default.Highscores = new List <HighscoreEntry>();
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Initializes a new instance of StartMenuViewModel object.
 /// </summary>
 /// <param name="viewModelChanger">An object that changes the views in the application.</param>
 /// <param name="gameSerializer">An object that serializes the game state.</param>
 public StartMenuViewModel(IViewModelChanger viewModelChanger, IGameSerializer gameSerializer) : base("StartMenu")
 {
     if (viewModelChanger == null)
     {
         throw new ArgumentNullException(nameof(viewModelChanger));
     }
     _viewModelChanger = viewModelChanger;
     if (gameSerializer == null)
     {
         throw new ArgumentNullException(nameof(gameSerializer));
     }
     _gameSerializer = gameSerializer;
 }
Ejemplo n.º 3
0
        public MainViewModel(IGameSerializer gameSerializer)
        {
            if (gameSerializer == null)
            {
                throw new ArgumentNullException("gameSerializer");
            }

            this.game                = new Game(); // This prevents NRE during the initial data binding calls, but might not be the best idea.
            this.gameSerializer      = gameSerializer;
            this.computerPlayers     = new ObservableCollection <Player>();
            this.computerPlayersView = new ListCollectionView(this.computerPlayers);
            this.title               = Resources.StatusDefault;
            this.isGameNotYetStarted = true;
            this.log     = new ObservableCollection <LogEntry>();
            this.logView = new ListCollectionView(this.log);
            this.logView.SortDescriptions.Add(new SortDescription("Index", ListSortDirection.Descending));
            this.logIndex = 0;
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Initializes a new instance of MainWindowViewModel.
        /// </summary>
        /// <param name="builder">An object that is responsible for building core game objects.</param>
        /// <param name="highscores">The list of the highscores in the game.</param>
        /// <param name="gameSerializer">An object that is responsible for saving and loading GameState.</param>
        /// <param name="validator">An object that validates control keys used in the game.</param>
        /// <param name="provider">An object that provides some configuration settings used in the game.</param>
        public MainWindowViewModel(IGameBuilder builder, HighscoreList highscores, IGameSerializer gameSerializer,
                                   IKeysValidator validator, ISettingsProvider provider) : base("Main")
        {
            if (provider == null)
            {
                throw new ArgumentNullException(nameof(provider));
            }
            _provider = provider;
            var vm = new List <ViewModelBase>
            {
                new StartMenuViewModel(this, gameSerializer),
                new OptionsViewModel(this, validator),
                new HighscoresViewModel(highscores),
                new GameViewModel(builder, this, this, provider),
                new EndGameViewModel(highscores),
                new PauseViewModel(this, gameSerializer)
            };

            foreach (var result in vm.OfType <CloseableViewModel>())
            {
                result.RequestClose += (sender, args) => OnCloseView((sender as ViewModelBase)?.Name);
            }
            ViewModels = vm;
        }