public void RequirementPasses_WhenGameMetricMeetRequiredCount()
        {
            IGameMetrics mockMetrics = Substitute.For<IGameMetrics>();
            mockMetrics.GetMetric( Arg.Any<string>() ).Returns( int.MaxValue );

            AchievementRequirement req = new AchievementRequirement( "TestRequirement", 100, mockMetrics );

            Assert.IsTrue( req.DoesPass() );
        }
        public void RequirementDoesNotPass_WhenGameMetricDoesNotMeetRequiredCount()
        {
            IGameMetrics mockMetrics = Substitute.For<IGameMetrics>();
            mockMetrics.GetMetric( Arg.Any<string>() ).Returns( 0 );

            AchievementRequirement req = new AchievementRequirement( "TestRequirement", 100, mockMetrics );

            Assert.IsFalse( req.DoesPass() );
        }
        //private void AchievementRequirement_OnCollisionEnteredAchievementRequirement(AchievementRequirement requirement)
        //{
        //    string achievementKey = GetAchievementKey(requirement.PointOfInterestCollisionEnteredData);
        //    HasBeenAddedToPlayerPrefs(achievementKey);

        //    Debug.Log($"Unlocked an achievement: {achievementKey}");
        //}

        private void AchievementRequirement_OnYKeyPressedAchievementRequirement(AchievementRequirement requirement)
        {
            TryEarnAchievement(requirement.AchievementData);

            if (Input.GetKeyDown(KeyCode.Y))
            {
                achievementsUI.AchievementMenu.SetActive(!achievementsUI.AchievementMenu.activeSelf);
            }
        }
 private void AchievementRequirement_OnLeftRightKeysPressedAchievementRequirement(AchievementRequirement requirement)
 {
     TryEarnAchievement(requirement.AchievementData);
 }
 private void AchievementRequirement_OnJumpKeyPressedAchievementRequirement(AchievementRequirement requirement)
 {
     TryEarnAchievement(requirement.AchievementData);
 }
 private void AchievementRequirement_OnTriggerEnteredAchievementRequirement(AchievementRequirement requirement)
 {
     TryEarnAchievement(requirement.PointOfInterestTriggerEnteredData);
 }