/// <summary> /// Add default achievements if not exist in the database /// </summary> /// <returns>The achievements.</returns> /// <created>Stef</created> public List<Achievement> AddAchievements() { List<Achievement> achievementList = new List<Achievement>(); Achievement ach2 = new Achievement(); ach2.countToUnlock = 1000; ach2.count = 0; ach2.isUnlocked = false; ach2.message = "Score over 1000."; ach2.description = "Achieve a score over 1000."; ach2.achievementType = EAchievementType.Score1000; achievementList.Add(ach2); Achievement ach3 = new Achievement(); ach3.countToUnlock = 10000; ach3.count = 0; ach3.isUnlocked = false; ach3.message = "Score over 10000"; ach3.description = "Achieve a score over 10000."; ach3.achievementType = EAchievementType.Score10000; achievementList.Add(ach3); Achievement ach4 = new Achievement(); ach4.countToUnlock = 1; ach4.count = 0; ach4.isUnlocked = false; ach4.message = "First level completed."; ach4.description = "Complete your first level in any difficulty."; ach4.achievementType = EAchievementType.FirstLevelCompleted; achievementList.Add(ach4); Achievement ach5 = new Achievement(); ach5.countToUnlock = 1; ach5.count = 0; ach5.isUnlocked = false; ach5.message = "You discovered Python."; ach5.description = "Start a level with the Python language."; ach5.achievementType = EAchievementType.StartPython; achievementList.Add(ach5); Achievement ach1 = new Achievement(); ach1.countToUnlock = 1; ach1.count = 0; ach1.isUnlocked = false; ach1.message = "You discovered Pascal."; ach1.description = "Start a level with the Pascal language."; ach1.achievementType = EAchievementType.StartPascal; achievementList.Add(ach1); return achievementList; }
public AchievementEventArgs(Achievement a) { data = a; }
/// <summary> /// Raises the achievement unlocked. /// </summary> /// <param name="ach">Ach.</param> /// <created>Stef</created> protected virtual void RaiseAchievementUnlocked(Achievement ach) { if (!ach.isUnlocked) { // unlock the event ach.isUnlocked = true; achievementDatabase.Update(ach); var del = AchievementUnlocked as EventHandler; if (del != null) { del(this, new AchievementEventArgs(ach)); } } }
/// <summary> /// Checks if the achievement has to be thrown /// </summary> /// <param name="type">Type.</param> /// <param name="achDatabase">Ach database.</param> /// <created>Stef</created> public void ParseAchievements(EAchievementType type, Achievement achDatabase) { if (type == EAchievementType.Score1000) { if (achDatabase.count >= achDatabase.countToUnlock) RaiseAchievementUnlocked(achDatabase); } else if (type == EAchievementType.Score10000) { if (achDatabase.count >= achDatabase.countToUnlock) RaiseAchievementUnlocked(achDatabase); } else if (achDatabase.count == achDatabase.countToUnlock) { RaiseAchievementUnlocked(achDatabase); } }