public void StartSolitaire() { PlayerAccountData thisPlayer = new PlayerAccountData(); DeckRoom deckRoomLogic = new DeckRoom(this); thisPlayer.Deck = deckRoomLogic.Run(); if(thisPlayer.Deck != null) { List<PlayerAccountData> players = new List<PlayerAccountData>(); thisPlayer.Info = CreateLocalPlayerInfo(); thisPlayer.Deck.MainCards.Shuffle(); thisPlayer.Password = thisPlayer.Info.NickName; players.Add(thisPlayer); PlayerAccountData opponentPlayer = new PlayerAccountData(); opponentPlayer.Info = (PlayerInfo)thisPlayer.Info.Clone(); opponentPlayer.Info.NickName = "Opponent"; opponentPlayer.Deck = ServicesProvider.DecksService.LoadDeck(thisPlayer.Deck.Category, thisPlayer.Deck.Name); opponentPlayer.Deck.MainCards.Shuffle(); opponentPlayer.Password = opponentPlayer.Info.NickName; players.Add(opponentPlayer); #if DEBUG PlayerAccountData debugPlayer = new PlayerAccountData(); debugPlayer.Info = (PlayerInfo)thisPlayer.Info.Clone(); debugPlayer.Info.NickName = "Debug"; debugPlayer.Deck = ServicesProvider.DecksService.LoadDeck(thisPlayer.Deck.Category, thisPlayer.Deck.Name); debugPlayer.Deck.MainCards.Shuffle(); debugPlayer.Password = debugPlayer.Info.NickName; players.Add(debugPlayer); #endif var gameModel = new GameModel(gameItem); var gameView = viewFactory.CreateGameView(); using(GameCommandHandler gameCommandHandler = new GameCommandHandler(gameModel, thisPlayer.Info.NickName, servicesProvider)) { var gameController = new GameController(gameCommandHandler, gameModel, gameView, players, GameType.Solitaire, servicesProvider, true); gameController.ShowOptionsRequested += new EventHandler(gameController_ShowOptionsRequested); gameView.ShowModal(); } } }
public void ShowDeckEditor() { DeckItem deck = null; do { DeckRoom deckRoom = new DeckRoom(this); deck = deckRoom.Run(); if(deck != null) { var deckEditor = new DeckEditorModel(servicesProvider, gameItem, deck); var deckEditorView = viewFactory.CreateDeckEditorView(); var deckEditorController = new DeckEditorController(deckEditor, deckEditorView, servicesProvider); deckEditorView.ShowModal(); } } while(deck != null); }