public StartupScreenViewModel(IMessenger messenger) { MessengerInstance = messenger; QuitCommand = new RelayCommand(() => AppShutdownMessage.Send(MessengerInstance)); LoadGameCommand = new RelayCommand(() => ShowLoadMenuMessage.Send(MessengerInstance)); NewGameCommand = new RelayCommand(() => ShowNewGameMessage.Send(MessengerInstance)); }
private void RegisterMessageHandlers() { ShowNewGameMessage.Register(MessengerInstance, this, SwitchToGameCreationScreen); ShowMainMenuMessage.Register(MessengerInstance, this, SwitchToStartupScreen); ShowLoadMenuMessage.Register(MessengerInstance, this, () => { SwitchToGameLoadScreen(); LoadGameScreenViewModel.Refresh(SaveManager.AllSaves()); }); void OpenGameAction(((string, GameMemento), ViewMode) payload) { var((id, memento), mode) = payload; GameScreenViewModel.Load(id, Game.FromMemento(memento)); GameScreenViewModel.ActiveMode = mode; SwitchToGameScreen(); } // switch to game screen with a newly created game, assigning it an id OpenNewGame.Register(MessengerInstance, this, payload => { var(game, mode) = payload; OpenGameAction(((SaveManager.NextId(), game.Memento), mode)); });