Пример #1
0
        private void Awake()
        {
            LastTrainPos         = transform.position;
            _achievementsService = ServiceLocator.GetService <AchievementsService>();
            _audioService        = ServiceLocator.GetService <AudioService>();
            _levelService        = ServiceLocator.GetService <LevelService>();
            _adsService          = ServiceLocator.GetService <AdsService>();
            _skinService         = ServiceLocator.GetService <SkinService>();
            _gameDataService     = ServiceLocator.GetService <GameDataService>();
            _uiService           = ServiceLocator.GetService <UIService>();
            _poolService         = ServiceLocator.GetService <PoolService>();

            Trains          = new List <TrainController>();
            spriteRenderer  = GetComponent <SpriteRenderer>();
            TargetPointList = TargetRail.WayPoints;
            TargetPoint     = TargetPointList[0].localPosition;
            Trains.Add(this);

            InputManager.Swipe      += InputManagerOnSwipe;
            _adsService.TrainRevive += ReviveTrain;
            _uiService.GameRestart  += ResetTrain;

            _skinService.UpdateSkin(spriteRenderer);
            UpdateTrainPoints();
            LockControlls = _uiService.IsFirstTime;
            IsFirstTime   = _uiService.IsFirstTime;
        }
        public void Add_SavesToDatabase()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "AddAchievement_ToDb")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var achievementToAdd = new AddAchievementInputModel()
                {
                    Name = "Achievement", AcquisitionConditions = "How to get"
                };

                var service = new AchievementsService(context, null);
                service.Add(achievementToAdd);

                var expectedAchievement = new Achievement()
                {
                    Name = achievementToAdd.Name, AcquisitionConditions = achievementToAdd.AcquisitionConditions
                };

                Assert.NotEmpty(context.Achievements);
                Assert.Equal(expectedAchievement.Name, context.Achievements.First().Name);
                Assert.Equal(expectedAchievement.AcquisitionConditions, context.Achievements.First().AcquisitionConditions);
            }
        }
Пример #3
0
        private void SetAchievements()
        {
            var acs = new AchievementsService();

            AchievementsTotal    = acs.GetTotal();
            AchievementsComplete = acs.GetNumberOfComplete();
        }
        public void ByName_WithAchievement_ReturnsAchievement()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "Db_ForByName_WithAchievement")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var service = new AchievementsService(context, null);

                var achievementName = "Redacted";

                var achievement = new Achievement()
                {
                    Name = achievementName,
                    AcquisitionConditions = "Achievement"
                };

                context.Achievements.Add(achievement);
                context.SaveChanges();

                var achievementFromDb = service.ByName(achievementName);

                Assert.Equal(achievement.Name, achievementFromDb.Name);
                Assert.Equal(achievement.AcquisitionConditions, achievementFromDb.AcquisitionConditions);
            }
        }
Пример #5
0
        public void ResetMaxComboStreak()
        {
            var achievements = AchievementsService.GetAchievements();

            achievements.MaxComboStreak = 0;
            AchievementsService.SaveToStorage(achievements);
        }
Пример #6
0
        public void SetUp()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            this.dbContext           = new ApplicationDbContext(options);
            this.achievementsService = new AchievementsService(dbContext);

            User user = new User()
            {
                Id       = "id",
                UserName = "******"
            };

            Achievement achievement = new Achievement()
            {
                Id   = 1,
                Name = "Participate in 1 Competition"
            };

            this.dbContext.Achievements.Add(achievement);
            this.dbContext.Users.Add(user);
            this.dbContext.SaveChanges();
        }
Пример #7
0
        public AchievementsViewModel()
        {
            Title = "Achievements";
            var acs = new AchievementsService();

            Achievements = acs.GetAllAchievements();
        }
Пример #8
0
        private void CheckBox_CheckedChanged(object sender, CheckedChangedEventArgs e)
        {
            var abs         = new AchievementsService();
            var itemChecked = (CheckBox)sender;

            abs.UpdateAchievementCheck(itemChecked.IsChecked, Achievement);
        }
        public void All_WithData_ReturnsSameData()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "Db_WithAchievements")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var service = new AchievementsService(context, null);

                var achievements = new List <Achievement>
                {
                    new Achievement()
                    {
                        Name = "1", AcquisitionConditions = "1"
                    },
                    new Achievement()
                    {
                        Name = "2", AcquisitionConditions = "2"
                    },
                    new Achievement()
                    {
                        Name = "3", AcquisitionConditions = "3"
                    }
                };

                context.Achievements.AddRange(achievements);
                context.SaveChanges();

                Assert.Equal(3, service.All().Count);
            }
        }
Пример #10
0
        private void CheckBox_CheckedChanged(object sender, CheckedChangedEventArgs e)
        {
            var         acs         = new AchievementsService();
            var         itemChecked = (CheckBox)sender;
            Achievement achievement = itemChecked.BindingContext as Achievement;

            acs.UpdateAchievementCheck(itemChecked.IsChecked, achievement);
        }
        public void ById_WithNoAchievements_ReturnsNull()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "NoAchievements_Db_ForById")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var service = new AchievementsService(context, null);
                Assert.Null(service.ById(1));
            }
        }
        public void Delete_NoData_ReturnsNull()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "NoAchievements_Db_ForDelete")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var service = new AchievementsService(context, null);
                Assert.False(service.Delete(2));
            }
        }
        public void All_WithNoData_ReturnsNoData()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "NoAchievements_Db")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var service = new AchievementsService(context, null);
                Assert.Equal(0, service.All().Count);
            }
        }
Пример #14
0
        private async Task SendToGoogle(ImageFormat format)
        {
            using (var imageStream = new MemoryStream())
            {
                ExportService.ExportWithoutSaving(Canvas, format, imageStream);
                string feedback = await GoogleAPI.SaveOnGoogleDrive(imageStream, ".png", AuthService.GoogleAccessToken);

                ToastsService.Pop("Google Drive Sharing", feedback, Constants.DriveIconUri);
                if (AuthService.IsLoggedIn)
                {
                    await AchievementsService.Increment(AuthService.CurrentUser.Id, AchievementMetrics.SharesOnDrive);
                }
            }
        }
Пример #15
0
        private void Awake()
        {
            _uiService           = ServiceLocator.GetService <UIService>();
            _playGamesService    = ServiceLocator.GetService <PlayGamesService>();
            _skinService         = ServiceLocator.GetService <SkinService>();
            _achievementsService = ServiceLocator.GetService <AchievementsService>();

            _skinsList = new List <SkinButton>();
            _getRandomSkin.onClick.AddListener(GetRandomSkin);
            _pages.ForEach(page => _skinsList.AddRange(page.GetComponentsInChildren <SkinButton>()));
            _skinService.UpdateSelectedTrainPreview += UpdateSelectedPreview;
            UpdateSkins();
            _selectedTrainPreview.sprite = _skinService.GetCurrentSkin();
        }
Пример #16
0
        public void OnTextBufferChanged(IAdornmentLayer adornmentLayer, IWpfTextView view, int streakCount)
        {
            if (titleImage == null)
            {
                titleImage = new Image();
                titleImage.UpdateSource(GetTitleImage(IsDarkMode(view.Background)));
                adornmentLayer.RefreshImage(titleImage, view.ViewportRight - RightMargin - ADORNMENT_WIDTH, view.ViewportTop + TopMargin);
            }


            var comboNumberImageTuple = GetStreakCounterImage(streakCount);

            if (streakCounterImage == null)
            {
                streakCounterImage = new Image();
            }
            streakCounterImage.UpdateSource(comboNumberImageTuple.Item1);
            adornmentLayer.RefreshImage(streakCounterImage, view.ViewportRight - RightMargin - ADORNMENT_WIDTH, view.ViewportTop + TopMargin + ADORNMENT_TITLE_HEIGHT);

            ScaleTransform trans = new ScaleTransform();

            streakCounterImage.RenderTransformOrigin = new Point((ADORNMENT_WIDTH - comboNumberImageTuple.Item2.Width / 2) / ADORNMENT_WIDTH, (comboNumberImageTuple.Item2.Height / 2) / comboNumberImageTuple.Item2.Height);
            streakCounterImage.RenderTransform       = trans;

            trans.BeginAnimation(ScaleTransform.ScaleXProperty, GetStreakCounterImageSizeAnimation(streakCount));
            trans.BeginAnimation(ScaleTransform.ScaleYProperty, GetStreakCounterImageSizeAnimation(streakCount));


            if (ComboService.ShowExclamation(streakCount))
            {
                ShowExclamation(adornmentLayer, view, GetExclamationImage(streakCount), comboNumberImageTuple.Item2.Height);
            }

            var achievevments = AchievementsService.GetAchievements();

            if (streakCount > 0 && achievevments.MaxComboStreak < streakCount && !newMaxComboStreakReached)
            {
                ShowExclamation(adornmentLayer, view, GetNewMaxExclamationImage(streakCount), comboNumberImageTuple.Item2.Height);
                newMaxComboStreakReached = true;
            }

            if (streakCount == 0 && newMaxComboStreak > 0)
            {
                achievevments.MaxComboStreak = newMaxComboStreak;
                AchievementsService.SaveToStorage(achievevments);
                newMaxComboStreakReached = false;
            }
            newMaxComboStreak = streakCount;
        }
Пример #17
0
        // Start is called before the first frame update
        void Awake()
        {
            _adsService          = ServiceLocator.GetService <AdsService>();
            _uiService           = ServiceLocator.GetService <UIService>();
            _achievementsService = ServiceLocator.GetService <AchievementsService>();

            _uiService.OpenReviveMenu += Open;
            _reviveButton.onClick.AddListener(_adsService.ShowReviveVideoAdvertisement);
            _timerButton.TimerEnded += ShowEndGameMenu;
            _noThanksButton.onClick.AddListener(ShowEndGameMenu);

            _adsService.ReviveAdvertisementUpdate += delegate(bool isReady) { _reviveButton.interactable = isReady; };
            _adsService.TrainRevive    += ShowPauseMenu;
            _uiService.OpenEndGameMenu += delegate { SetActivePanel(false); };
        }
Пример #18
0
        private void CalculateAchievements(List <Player> playersInThisGame)
        {
            List <AchievementTextWithIds> achievementsData = new AchievementsService(playersInThisGame).RecalculateAchievements(false);

            if (achievementsData.Count > 0)
            {
                Cache.Remove(DataAccess.PlayersAchievementsCacheName);
                Cache.Remove(DataAccess.AllAchievementsCacheName);

                StringBuilder sb = new StringBuilder("<br/><br/><b>Zdobyte osiągnięcia:</b><br/><ul class=\"grantedAchievements\">");
                achievementsData.ForEach(w => sb.Append("<li>" + w.Text + "</li>"));
                sb.Append("</ul>");

                litAchievements.Text = sb.ToString();
            }
        }
Пример #19
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                bool achievementsExists = true;
                using (TrambambuleDBContextDataContext context = new TrambambuleDBContextDataContext())
                {
                    achievementsExists = context.AchievementPlayer.Any();
                }
                if (!achievementsExists)
                {
                    List <AchievementTextWithIds> achievementsData = new AchievementsService(DataAccess.GetPlayers().ToList()).RecalculateAchievements(true);

                    litStatus.Text = "Osiągnięcia zostały przyznane";

                    //List<AchievementsWithPlayers> awpList = new List<AchievementsWithPlayers>();
                    //using (TrambambuleDBContextDataContext context = new TrambambuleDBContextDataContext())
                    //{
                    //    var achievements = context.Achievements.ToList();
                    //    foreach (Achievement achievement in achievements)
                    //    {
                    //        var players = (from ap in context.AchievementPlayer
                    //                       join p in context.Players
                    //                       on ap.PlayerId equals p.Id
                    //                       where ap.AchievementId == achievement.Id
                    //                       select new PlayerWithLevelOfAchievement(p, ap.LevelOfAchievement, ap.ToNextLevelLabel)).ToList();

                    //        AchievementsWithPlayers awp = new AchievementsWithPlayers(achievement, players);
                    //        awpList.Add(awp);
                    //    }
                    //}

                    Cache.Remove(DataAccess.PlayersListCacheName);
                    Cache.Remove(DataAccess.PlayersNamesAndSurnamesWithoutPolishCharsCacheName);
                    Cache.Remove(DataAccess.PlayersAchievementsCacheName);
                    Cache.Remove(DataAccess.AllAchievementsCacheName);
                    Cache.Remove(DataAccess.OverallStatsCacheName);
                }
            }
            catch (Exception ex)
            {
                litStatus.Text = ex.Message + " " + ex.StackTrace;
            }
        }
        public AchievementsServiceTests()
        {
            var options = new DbContextOptionsBuilder <TrainConnectedDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;
            var dbContext = new TrainConnectedDbContext(options);

            AutoMapperConfig.RegisterMappings(new[]
            {
                typeof(ErrorViewModel).GetTypeInfo().Assembly,
                typeof(WorkoutActivityEditInputModel).GetTypeInfo().Assembly,
            });

            this.achievementsRepository      = new EfRepository <Achievement>(dbContext);
            this.workoutsRepository          = new EfRepository <Workout>(dbContext);
            this.bookingsRepository          = new EfRepository <Booking>(dbContext);
            this.workoutActivitiesRepository = new EfRepository <WorkoutActivity>(dbContext);

            this.achievementsService = new AchievementsService(this.achievementsRepository, this.workoutsRepository, this.bookingsRepository, this.workoutActivitiesRepository);
        }
Пример #21
0
        private void GetFacebookCaption(MemoryStream image)
        {
            if (CaptionWindow?.IsVisible ?? false)
            {
                return;
            }
            CaptionWindow = new FacebookCaptionView();
            CaptionWindow.CaptionWritten += async(caption) =>
            {
                string feedback = await FacebookAPI.ShareImage(image, AuthService.FacebookAccessToken, caption);

                ToastsService.Pop("Facebook sharing", feedback, Constants.FacebookIconUri);
                if (AuthService.IsLoggedIn)
                {
                    await AchievementsService.Increment(AuthService.CurrentUser.Id, AchievementMetrics.SharesOnFacebook);
                }
            };

            CaptionWindow.Show();
        }
Пример #22
0
        private void Awake()
        {
            _levelService        = ServiceLocator.GetService <LevelService>();
            _adsService          = ServiceLocator.GetService <AdsService>();
            _gameDataService     = ServiceLocator.GetService <GameDataService>();
            _uiService           = ServiceLocator.GetService <UIService>();
            _playGamesService    = ServiceLocator.GetService <PlayGamesService>();
            _achievementsService = ServiceLocator.GetService <AchievementsService>();

            _bonusButton.onClick.AddListener(_adsService.ShowBonusVideoAdvertisement);

            _timerButton.TimerEnded += delegate { _bonusButton.gameObject.SetActive(false); };
            _adsService.BonusAdvertisementUpdate += delegate(bool isReady) { _bonusButton.interactable = isReady; };

            _adsService.BonusCoins     += GetBonus;
            _uiService.OpenEndGameMenu += Open;
            _uiService.OpenPauseMenu   += () => SetActivePanel(false);
            _exitToMenu.onClick.AddListener(ExitToMainMenu);
            _uiService.EndGameBackButton += ExitToMainMenu;
        }
Пример #23
0
    private void Awake()
    {
        _achievementsService    = ServiceLocator.GetService <AchievementsService>();
        _leaderBoardsService    = ServiceLocator.GetService <LeaderBoardsService>();
        _uiService              = ServiceLocator.GetService <UIService>();
        _uiService.CurrentPanel = this;

        _achievementsButton.onClick.AddListener(_achievementsService.ShowAchievementsUI);
        _leaderboardButton.onClick.AddListener(_leaderBoardsService.ShowLeaderBoardUI);

        _startButton.onClick.AddListener(StartGame);
        _rateButton.onClick.AddListener(RateApp);
        _storeButton.onClick.AddListener(OpenShop);

        _uiService.OpenMainMenu       += Open;
        _uiService.UpdateMainMenuData += UpdateData;

        LastScore.text = CloudVariables.ImportantValues[4].ToString();
        BestScore.text = CloudVariables.ImportantValues[0].ToString();
        Coins.text     = CloudVariables.GetCoins().ToString();
    }
        public void Delete_WithData_DeletesAchievement()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "Db_WithAchievements_ForDelete")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                context.Achievements.Add(new Achievement()
                {
                    Name = "ToDelete", AcquisitionConditions = "None"
                });
                context.SaveChanges();
            }

            using (var context = new GameInfoContext(options))
            {
                var service = new AchievementsService(context, null);
                var result  = service.Delete(1);

                Assert.True(result);
                Assert.Equal(0, context.Achievements.Count());
            }
        }