public void Build(GameDefinition gameDefinition) { Game = new BinaryGame(gameDefinition); TileBackgroundGrid.RowDefinitions.Clear(); TileBackgroundGrid.ColumnDefinitions.Clear(); var style = Application.Current.Resources["EmptyBorder"] as Style; for (int x = 0; x < Game.BinaryGrid.Width; x++) { TileBackgroundGrid.ColumnDefinitions.Add(new ColumnDefinition()); } for (int y = 0; y < Game.BinaryGrid.Height; y++) { TileBackgroundGrid.RowDefinitions.Add(new RowDefinition()); } for (int x = 0; x < Game.BinaryGrid.Width; x++) { for (int y = 0; y < Game.BinaryGrid.Height; y++) { var border = new Border { Style = style }; Grid.SetColumn(border, x); Grid.SetRow(border, y); TileBackgroundGrid.Children.Add(border); } } }
private void GameOnNewAchievement(object sender, int value) { if (value > 8) { Rank = BinaryGame.GetRank(bc.Game.GameData.BestPiece); ShowAchievement(Rank, "NEW ACHIEVEMENT", true); } }
private async void LoadData() { Games.Clear(); var games = await GameDefinitionSource.LoadDataAsync(); foreach (var gameDefinition in games) { var gameData = storage.Get <GameData>("GameData." + gameDefinition.UniqueId) ?? new GameData(); gameData.Description = gameDefinition.Title; gameData.Rank = BinaryGame.GetRank(gameData.BestPiece); Games.Add(gameData); } }
protected override async void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); if (bc.Game == null) { var games = await GameDefinitionSource.LoadDataAsync(); var gameDefinition = games.FirstOrDefault(g => g.UniqueId == (string)e.Parameter); if (gameDefinition == null) { return; } bc.Build(gameDefinition); bc.Game.TileMoved += GameOnTileMoved; bc.NewHighScore += GameOnNewHighScore; bc.NewAchievement += GameOnNewAchievement; bc.Game.GameWon += GameOnGameWon; bc.Game.GameOver += GameOnGameOver; } if (TotalScore == 0) { bc.LoadData(); TotalScore = bc.Game.Score; BestScore = bc.Game.GameData.BestScore; Rank = BinaryGame.GetRank(bc.Game.GameData.BestPiece); } Rank = BinaryGame.GetRank(bc.Game.GameData.BestPiece); #if GOOGLE_ANALYTICS EasyTracker.GetTracker().SendView("Main" + bc.Game.GameDefinition.UniqueId); #endif if (TotalScore == 0) { PlayGrid.AnimateAsync(new FadeInAnimation { Delay = 0.3 }); PlayButton.AnimateAsync(new BounceInUpAnimation { Delay = 0.4 }); PlayGrid.IsHitTestVisible = true; PlayButton.IsHitTestVisible = true; } else { PlayGrid.Opacity = 0; PlayGrid.IsHitTestVisible = false; PlayButton.Opacity = 0; PlayButton.IsHitTestVisible = false; } DataTransferManager.GetForCurrentView().DataRequested += DataTransferManagerOnDataRequested; Window.Current.CoreWindow.KeyUp += CoreWindow_KeyUp; Window.Current.VisibilityChanged += OnVisibilityChanged; }