private async Task LoadGame(String path) { try { if (model == null) { GameStateWrapper state = await dataAccess.LoadGameAsync(path); model = SquaresGameModel.FromSave(state, dataAccess); NewGame(model); } else { await model.LoadGameAsync(path); p1NameLabel.Text = model.PlayerOne.PlayerName; p2NameLabel.Text = model.PlayerTwo.PlayerName; } InitDots(model.FieldSize); UpdateUI(this, EventArgs.Empty); } catch (Exception excp) { MessageBox.Show(excp.Message); } }
public async void LoadGame() { OpenFileDialog openDialog = new OpenFileDialog(); if (openDialog.ShowDialog() == true) { try { if (model == null) { GameStateWrapper state = await persistence.LoadGameAsync(openDialog.FileName); model = SquaresGameModel.FromSave(state, persistence); NewGame(model); } else { await model.LoadGameAsync(openDialog.FileName); PlayerOne.Player = model.PlayerOne; PlayerTwo.Player = model.PlayerTwo; } FieldSize = model.FieldSize; InitDots(FieldSize); UpdateUI(this, EventArgs.Empty); } catch (Exception excp) { System.Windows.MessageBox.Show(excp.Message); } } }
private void NewGame(object o) { int size = int.Parse((String)o); FieldSize = size; PlayerOne.Player.Points = 0; PlayerTwo.Player.Points = 0; OnPropertyChanged("PlayerOne"); OnPropertyChanged("PlayerTwo"); model = new SquaresGameModel(FieldSize, PlayerOne.Player, PlayerTwo.Player, persistence); model.UpdateUI += UpdateUI; model.EndGame += PlayerWon; Shapes.Clear(); InitDots(FieldSize); }
private void newGameBtn_Click(object sender, EventArgs e) { GameStarter starter = new GameStarter(); Player[] players = null; int fieldSize = 0; starter.PlayerCreated += (sender2, args) => { players = args.Item1; fieldSize = args.Item2; }; starter.ShowDialog(); if (starter.DialogResult == DialogResult.OK) { model = new SquaresGameModel(fieldSize, players[0], players[1], dataAccess); NewGame(model); } }
private void NewGame(SquaresGameModel model) { //Subscriptions model.UpdateUI += UpdateUI; model.EndGame += PlayerWon; //Setup UI and refresh p1NameLabel.Visible = true; p1PointLabel.Visible = true; p2NameLabel.Visible = true; p2PointLabel.Visible = true; p1NameLabel.Text = model.PlayerOne.PlayerName; p2NameLabel.Text = model.PlayerTwo.PlayerName; saveGameBtn.Enabled = true; InitDots(model.FieldSize); UpdateUI(this, EventArgs.Empty); }
//CTOR public MainWindowViewModel() { //DEFAULT SETTINGS FieldSize = 3; dotRadius = 15; playerOne = new PlayerViewModel(new Player("PlayerOne", Colors.Coral), Colors.Coral); playerTwo = new PlayerViewModel(new Player("PlayerTwo", Colors.Green), Colors.Green); persistence = new SquaresGameDataAccess(); model = new SquaresGameModel(FieldSize, playerOne.Player, playerTwo.Player, persistence); model.UpdateUI += UpdateUI; model.EndGame += PlayerWon; Shapes = new ShapeWrapper(); //Commands SelectFirstDot = new DelegateCommand(HandleFirstDotClicked); SelectSecondDot = new DelegateCommand(HandleSecondDotClicked); NewGameCommand = new DelegateCommand(NewGame); SaveCommand = new DelegateCommand(o => SaveGame()); LoadCommand = new DelegateCommand(o => LoadGame()); InitDots(FieldSize); }
public void Initialize() { Player PlayerOne = new Player("TestPlayer1", Colors.Red); Player PlayerTwo = new Player("TestPlayer2", Colors.Blue); state = new GameStateWrapper { PlayerOne = PlayerOne, PlayerTwo = PlayerTwo, ActivePlayer = PlayerOne, FieldSize = 3, Lines = new List <System.Tuple <Point, Point, Player> >(), Rectangles = new List <System.Tuple <Point, Point, Player> >(), RegisteredRectCount = 0 }; mockDAccess = new Mock <ISquaresGameDataAccess>(); mockDAccess.Setup(mock => mock.LoadGameAsync(It.IsAny <String>())) .Returns(() => Task.FromResult(state)); model = SquaresGameModel.FromSave(state, mockDAccess.Object); model.EndGame += EndGameAssert; model.EndGame += (sender, e) => ++ endGameRaised; }