public MainPresenter(IMainView mainView, IGameSerializer serializer) { this.mainView = mainView; this.serializer = serializer; if (Settings.Default.Highscores == null) { Settings.Default.Highscores = new List <HighscoreEntry>(); } }
/// <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; }
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; }
/// <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; }