internal AchievementEarn(long time, string flightName, Achievement achievement) { this.time = time; this.flightName = flightName; //this.achievement = achievement; key = achievement.getKey(); }
private void achievementClicked(Achievement achievement) { if (earnedAchievements.ContainsKey(achievement.getKey())) { expandedAchievement = achievement; } }
private void checkAchievements() { long now = DateTime.UtcNow.Ticks / 10000; // 1 millisecond if ((now - lastCheck) >= CHECK_INTERVAL) // this delays it to every 1.5 seconds { Vessel vessel = (FlightGlobals.fetch != null) ? FlightGlobals.ActiveVessel : null; if (vessel != null && EarnedAchievements.instance != null) { foreach (Achievement achievement in EarnedAchievements.instance.achievementsList) { if (EarnedAchievements.instance.earnedAchievements == null || !EarnedAchievements.instance.earnedAchievements.ContainsKey(achievement.getKey())) { string key = achievement.getKey(); //Vessel vessel = (FlightGlobals.fetch != null) ? FlightGlobals.ActiveVessel : null; //if (vessel != null) //{ try { if (achievement.check(vessel)) { string key2 = achievement.getKey(); AchievementEarn earn = new AchievementEarn(now, (vessel != null) ? vessel.vesselName : Achievements.UNKNOWN_VESSEL, achievement); EarnedAchievements.instance.earnedAchievements.Add(achievement.getKey(), earn); // queue for later display queuedEarnedAchievements.Add(achievement.getKey(), achievement); } } catch (Exception e) { Log.Exception(e); } } } } #if DEBUG long done = DateTime.UtcNow.Ticks / 10000; Log.Info("checking achievements took " + (done - now) + " ms"); #endif if ((queuedEarnedAchievements.Count() > 0) && (toast == null)) { Achievement achievement = queuedEarnedAchievements[queuedEarnedAchievements.Keys.Min()]; queuedEarnedAchievements.Remove(achievement.getKey()); //if (EarnedAchievements.instance.earnedAchievements.ContainsKey(achievement)) toast = null; //bool found = false; foreach (var e in EarnedAchievements.instance.earnedAchievements) { if (e.Key == achievement.getKey()) { toast = new Toast(achievement, e.Value); playAchievementEarnedClip(); awardReputation(achievement); //found = true; break; } } } lastCheck = now; } }