public void CheckAchievements(Hero hero) { foreach (var achievement in Achievements) { var completedAchievements = hero.GetAchievements(); var hasHeroFulfilledRequirements = achievement.Check(hero); if (hasHeroFulfilledRequirements && !completedAchievements .Any(p => p.Achievement.Name == achievement.Name)) { Console.WriteLine($"Congratulations! " + $"You complete the achievement {achievement.Name}"); hero.AddAchievement(achievement); } } }