public void UpdateAchievments(GeneratorInfo[] generators) { foreach (GeneratorInfo generator in generators) { int unitCount = Services.TransportService.GetUnitTotalCount(generator.GeneratorId); IEnumerable <Level> achievmentLevels = LevelDb.GetLevelsForCount(unitCount); List <Level> validLevels = FilterForGenerator(generator.GeneratorId, achievmentLevels).ToList(); if (validLevels.Count > 0) { List <ExtendedAchievmentInfo> extendedList = new List <ExtendedAchievmentInfo>(); foreach (Level level in validLevels) { ExtendedAchievmentInfo info = new ExtendedAchievmentInfo(level.Id, $"{FirstSimbolUpper(generator.Data.Name)} Level Up", LevelUpIcon, 5, level.RewardType, level.RewardValue); extendedList.Add(info); AddAchievment(generator.GeneratorId, level.Id); AddAchievmentPoints(5); RewardAchievment(generator.GeneratorId, level); } GameEvents.OnGeneratorAchievmentsReceived(generator.GeneratorId, extendedList); } } }