public MainWindow() { InitializeComponent(); AchievementManager achievementManager = AchievementManager.GetInstance(); AchievementCondition clickConditionOne = new AchievementCondition("ClickedOne", "Click1", 3); Achievement a1 = new Achievement("a1", "Clicked ONE", "You clicked on ONE", clickConditionOne, "/sebingel.sharpchievements;component/Images/award71.png"); AchievementCondition clickConditionTwo = new AchievementCondition("ClickedTwo", "Click2", 1); Achievement a2 = new Achievement("a2", "Clicked TWO", "You clicked on TWO", clickConditionTwo); AchievementCondition clickConditionThree = new AchievementCondition("ClickedThree", "Click3", 1); Achievement a3 = new Achievement("a3", "Clicked THREE", "You clicked on THREE", clickConditionThree); AchievementCondition clickConditionFour = new AchievementCondition("SpecialOne", "Click1", 1); AchievementCondition clickConditionFive = new AchievementCondition("SpecialTwo", "Click2", 3); Achievement a4 = new Achievement("a4", "SPECIAL!!!", "You clicked on ONE", new List<AchievementCondition> { clickConditionFour, clickConditionFive }); achievementManager.RegisterAchievement(a1); achievementManager.RegisterAchievement(a2); achievementManager.RegisterAchievement(a3); achievementManager.RegisterAchievement(a4); achievementManager.RegisterAchievementCondition(clickConditionOne); achievementManager.RegisterAchievementCondition(clickConditionTwo); achievementManager.RegisterAchievementCondition(clickConditionThree); achievementManager.RegisterAchievementCondition(clickConditionFour); achievementManager.RegisterAchievementCondition(clickConditionFive); achievementManager.AchievementCompleted += AchievementManagerAchievementCompleted; }
private void AchievementManagerAchievementCompleted(Achievement achievement) { //new AchievementNotificationWindow(achievement).Show(); //new AchievementNotificationWindow(achievement,Left, Top, ActualWidth, ActualHeight).Show(); //new AchievementNotificationWindow(achievement, 100, 100).Show(); new AchievementNotificationWindow(achievement, this).Show(); }
public void CheckUnlockStatus_EveryIAchievementConditionIsUnlocked_ShouldFireAchievementCompletedEvent() { // Arrange Mock<IAchievementCondition> achievementConditionMock1 = new Mock<IAchievementCondition>(); achievementConditionMock1.SetupGet(x => x.Unlocked).Returns(true); achievementConditionMock1.SetupGet(x => x.UniqueId).Returns("ac1"); Mock<IAchievementCondition> achievementConditionMock2 = new Mock<IAchievementCondition>(); achievementConditionMock2.SetupGet(x => x.Unlocked).Returns(true); achievementConditionMock2.SetupGet(x => x.UniqueId).Returns("ac2"); Mock<IAchievementCondition> achievementConditionMock3 = new Mock<IAchievementCondition>(); achievementConditionMock3.SetupGet(x => x.Unlocked).Returns(true); achievementConditionMock3.SetupGet(x => x.UniqueId).Returns("ac3"); List<IAchievementCondition> achievementConditions = new List<IAchievementCondition> { achievementConditionMock1.Object, achievementConditionMock2.Object, achievementConditionMock3.Object }; Achievement achievement = new Achievement("uniqueId", "titel", "description", achievementConditions); Achievement reportedAchievement = null; achievement.AchievementCompleted += delegate(Achievement a) { reportedAchievement = a; }; // Act achievement.CheckUnlockStatus(); // Assert Assert.AreEqual(achievement, reportedAchievement); Assert.IsTrue(achievement.Unlocked); }
public MainWindow() { InitializeComponent(); am = new AchievementManager(); AchievementCondition con1 = new AchievementCondition("con1", "con1", 1); AchievementCondition con2 = new AchievementCondition("con2", "con2", 2); AchievementCondition con3 = new AchievementCondition("con3", "con3", 1); Achievement a1 = new Achievement("a1", "a1", "a1Desc", con1) { ImagePath = "/sebingel.sharpchievements;component/Images/award71.png" }; Achievement a2 = new Achievement("a2", "a2", "a2Desc\nWrap", con2) { ImagePath = "/sebingel.sharpchievements;component/Images/award71.png" }; Achievement a3 = new Achievement("a3", "a3", "a2Desc\nWrap", con3) { ImagePath = "/sebingel.sharpchievements;component/Images/award71.png", Hidden = true }; //Achievement a4 = new Achievement("a4", "a4", "a2Desc\nWrap", con1, "/sebingel.sharpchievements;component/Images/question30.png"); //Achievement a5 = new Achievement("a5", "a5", "a2Desc\nWrap", con1, "/sebingel.sharpchievements;component/Images/award71.png"); //Achievement a6 = new Achievement("a6", "a6", "a2Desc\nWrap", con1, "/sebingel.sharpchievements;component/Images/award71.png"); //Achievement a7 = new Achievement("a7", "a7", "a2Desc\nWrap", con1, "/sebingel.sharpchievements;component/Images/award71.png"); //Achievement a8 = new Achievement("a8", "a8", "a2Desc\nWrap", con1, "/sebingel.sharpchievements;component/Images/award71.png"); //Achievement a9 = new Achievement("a9", "a9", "a2Desc\nWrap", con1, "/sebingel.sharpchievements;component/Images/award71.png"); //Achievement a10 = new Achievement("a10", "a10", "a2Desc\nWrap", con1, "/sebingel.sharpchievements;component/Images/award71.png"); //Achievement a11 = new Achievement("a11", "a11", "a2Desc\nWrap", con1, "/sebingel.sharpchievements;component/Images/award71.png"); am.RegisterAchievementCondition(con1); am.RegisterAchievementCondition(con2); am.RegisterAchievementCondition(con3); am.RegisterAchievement(a1); am.RegisterAchievement(a2); am.RegisterAchievement(a3); //am.RegisterAchievement(a4); //am.RegisterAchievement(a5); //am.RegisterAchievement(a6); //am.RegisterAchievement(a7); //am.RegisterAchievement(a8); //am.RegisterAchievement(a9); //am.RegisterAchievement(a10); //am.RegisterAchievement(a11); am.AchievementCompleted += AmAchievementCompleted; AchievementOverviewControl.Refresh(); }
public void Constructor_GivenAllNecessaryParameters_CanCreateInstance() { // Arrange Achievement a; // Act a = new Achievement("uniqueId", "titel", "description", new Mock<IAchievementCondition>().Object); // Assert Assert.IsNotNull(a); }
public void ConditionProgressChanged_GivenSomeProgress_CalculatesProgressAndFiresProgressChangedEvent( int conditionProgress, int expectedAchievementProgress) { // Arrange Mock<IAchievementCondition> achievementConditionMock1 = new Mock<IAchievementCondition>(); achievementConditionMock1.SetupGet(x => x.UniqueId).Returns("ac1"); achievementConditionMock1.SetupGet(x => x.Progress).Returns(0); Mock<IAchievementCondition> achievementConditionMock2 = new Mock<IAchievementCondition>(); achievementConditionMock2.SetupGet(x => x.UniqueId).Returns("ac2"); achievementConditionMock2.SetupGet(x => x.Progress).Returns(conditionProgress); IAchievementCondition ac1 = achievementConditionMock1.Object; IAchievementCondition ac2 = achievementConditionMock2.Object; List<IAchievementCondition> achievementConditions = new List<IAchievementCondition> { ac1, ac2 }; Achievement achievement = new Achievement("uniqueId", "titel", "description", achievementConditions); int reportedProgress = 0; Achievement reportedAchievement = null; achievement.ProgressChanged += delegate(Achievement a, AchievementProgressChangedArgs args) { reportedProgress = args.ProgressCount; reportedAchievement = a; }; // Act achievementConditionMock2.Raise(x => x.ProgressChanged += null, ac1, new AchievementConditionProgressChangedArgs(conditionProgress)); // Assert Assert.AreEqual(achievement, reportedAchievement); Assert.AreEqual(expectedAchievementProgress, achievement.Progress); Assert.AreEqual(expectedAchievementProgress, reportedProgress); }
public void ConditionProgressChanged_GivenAlreadyUnlockedAchievementCondition_DoNothing() { // Arrange Mock<IAchievementCondition> achievementConditionMock1 = new Mock<IAchievementCondition>(); achievementConditionMock1.SetupGet(x => x.UniqueId).Returns("ac1"); achievementConditionMock1.SetupGet(x => x.Progress).Returns(0); Mock<IAchievementCondition> achievementConditionMock2 = new Mock<IAchievementCondition>(); achievementConditionMock2.SetupGet(x => x.UniqueId).Returns("ac2"); achievementConditionMock2.SetupGet(x => x.Progress).Returns(150); achievementConditionMock2.SetupGet(x => x.Unlocked).Returns(true); IAchievementCondition ac1 = achievementConditionMock1.Object; IAchievementCondition ac2 = achievementConditionMock2.Object; List<IAchievementCondition> achievementConditions = new List<IAchievementCondition> { ac1, ac2 }; Achievement achievement = new Achievement("uniqueId", "titel", "description", achievementConditions); int reportedProgress = 0; Achievement reportedAchievement = null; achievement.ProgressChanged += delegate(Achievement a, AchievementProgressChangedArgs args) { reportedProgress = args.ProgressCount; reportedAchievement = a; }; // Act achievementConditionMock2.Raise(x => x.ProgressChanged += null, ac2, new AchievementConditionProgressChangedArgs(150)); // Assert Assert.AreEqual(0, reportedProgress); Assert.IsNull(reportedAchievement); }
public void ConditionCompleted_RaiseEventOnOnlyConditionAndConditionIsUnlocked_UnlockAchievement() { // Arrange Mock<IAchievementCondition> achievementConditionMock1 = new Mock<IAchievementCondition>(); achievementConditionMock1.SetupGet(x => x.Unlocked).Returns(true); achievementConditionMock1.SetupGet(x => x.UniqueId).Returns("ac1"); IAchievementCondition ac = achievementConditionMock1.Object; Achievement achievement = new Achievement("uniqueId", "titel", "description", ac); List<Achievement> reportedAchievements = new List<Achievement>(); achievement.AchievementCompleted += delegate(Achievement a) { reportedAchievements.Add(a); }; // Act achievementConditionMock1.Raise(x => x.ConditionCompleted += null, ac); // Assert Assert.AreEqual(1, reportedAchievements.Count); Assert.IsTrue(achievement.Unlocked); }
public void ConditionCompleted_RaiseEventOnOneOfManyConditionsAndNotAllConditionsAreUnlocked_DoNotUnlockAchievement() { // Arrange Mock<IAchievementCondition> achievementConditionMock1 = new Mock<IAchievementCondition>(); achievementConditionMock1.SetupGet(x => x.Unlocked).Returns(true); achievementConditionMock1.SetupGet(x => x.UniqueId).Returns("ac1"); Mock<IAchievementCondition> achievementConditionMock2 = new Mock<IAchievementCondition>(); achievementConditionMock2.SetupGet(x => x.Unlocked).Returns(false); achievementConditionMock2.SetupGet(x => x.UniqueId).Returns("ac2"); Mock<IAchievementCondition> achievementConditionMock3 = new Mock<IAchievementCondition>(); achievementConditionMock3.SetupGet(x => x.Unlocked).Returns(true); achievementConditionMock3.SetupGet(x => x.UniqueId).Returns("ac3"); List<IAchievementCondition> achievementConditions = new List<IAchievementCondition> { achievementConditionMock1.Object, achievementConditionMock2.Object, achievementConditionMock3.Object }; Achievement achievement = new Achievement("uniqueId", "titel", "description", achievementConditions); List<Achievement> reportedAchievements = new List<Achievement>(); achievement.AchievementCompleted += delegate(Achievement a) { reportedAchievements.Add(a); }; // Act achievementConditionMock1.Raise(x => x.ConditionCompleted += null, achievementConditions[0]); // Assert Assert.AreEqual(0, reportedAchievements.Count); Assert.IsFalse(achievement.Unlocked); }
public void Clear_GivenAnAchievementWithSeveralConditions_ClearsTheAchievement() { // Arrange Mock<IAchievementCondition> achievementConditionMock1 = new Mock<IAchievementCondition>(); achievementConditionMock1.SetupGet(x => x.UniqueId).Returns("ac1"); achievementConditionMock1.SetupGet(x => x.Progress).Returns(0); Mock<IAchievementCondition> achievementConditionMock2 = new Mock<IAchievementCondition>(); achievementConditionMock2.SetupGet(x => x.UniqueId).Returns("ac2"); achievementConditionMock2.SetupGet(x => x.Progress).Returns(50); IAchievementCondition ac1 = achievementConditionMock1.Object; IAchievementCondition ac2 = achievementConditionMock2.Object; List<IAchievementCondition> achievementConditions = new List<IAchievementCondition> { ac1, ac2 }; Achievement achievement = new Achievement("uniqueId", "titel", "description", achievementConditions); int reportedProgress = 0; Achievement reportedAchievementProgressChanged = null; achievement.ProgressChanged += delegate(Achievement a, AchievementProgressChangedArgs args) { reportedProgress = args.ProgressCount; reportedAchievementProgressChanged = a; }; Achievement reportedAchievementCompleted = null; achievement.AchievementCompleted += delegate(Achievement a) { reportedAchievementCompleted = a; }; // Act achievement.Clear(); achievementConditionMock2.Raise(x => x.ProgressChanged += null, ac2, new AchievementConditionProgressChangedArgs(50)); achievementConditionMock2.Raise(x => x.ConditionCompleted += null, ac2); // Assert Assert.AreEqual(0, achievement.Conditions.Count()); Assert.AreEqual(0, reportedProgress); Assert.AreEqual(null, reportedAchievementProgressChanged); Assert.AreEqual(null, reportedAchievementCompleted); }
/// <summary> /// Register an Achievement /// </summary> /// <remarks>The AchievementCompleted event only fires for registered Achievements!</remarks> /// <param name="achievement">The Achievement that should be registered</param> public void RegisterAchievement(Achievement achievement) { if (registeredAchievements.All(x => x.UniqueId != achievement.UniqueId)) { registeredAchievements.Add(achievement); achievement.AchievementCompleted += AchievementAchievementCompleted; InvokeAchievementsChanged(); InvokeAchievementRegistered(achievement); } }
private void InvokeAchievementRegistered(Achievement a) { if (AchievementRegistered != null) AchievementRegistered(a); }
private void InvokeAchievementCompleted(Achievement achievement) { if (AchievementCompleted != null) AchievementCompleted(achievement); }
/// <summary> /// Fires the AchievementCompleted event of the AchievementManager /// </summary> /// <param name="achievement">Achievement that fired the AchievementCompleted event</param> private void AchievementAchievementCompleted(Achievement achievement) { InvokeAchievementCompleted(achievement); InvokeAchievementsChanged(); }
public void Constructor_GivenMultipleAchievementConsitionsWithSameUniqueId_ShouldOnlyAddOne() { // Arrange Mock<IAchievementCondition> acMock1 = new Mock<IAchievementCondition>(); acMock1.SetupGet(x => x.UniqueId).Returns("UID1"); Mock<IAchievementCondition> acMock2 = new Mock<IAchievementCondition>(); acMock2.SetupGet(x => x.UniqueId).Returns("UID1"); Mock<IAchievementCondition> acMock3 = new Mock<IAchievementCondition>(); acMock3.SetupGet(x => x.UniqueId).Returns("UID1"); // Act Achievement achievement = new Achievement("uid", "title", "desc", new List<IAchievementCondition> { acMock1.Object, acMock2.Object, acMock3.Object }); // Assert Assert.AreEqual(1, achievement.Conditions.Count()); }
private void AmAchievementCompleted(Achievement achievement) { new AchievementNotificationWindow(achievement, this).Show(); }