private bool PassedJobPointPurchases(Player player, Achievement achievementToCheck) { foreach (var jpProductReq in achievementToCheck.JobPointProductReqs) { var fds = player.JobPointPurchases.FirstOrDefault(purch => purch.Product == jpProductReq); if (fds == null) return false; // Didn't purchase a required product } return true; }
private bool PassedAssignmentTypes(Player player, Achievement achievementToCheck) { foreach (var assTypeReq in achievementToCheck.AssignmentTypeReqs) { var assignmentsOfType = player.AssignmentsCompleted.FindAll(ass => ass.Type.NameOrCode == assTypeReq.AssignmentType.NameOrCode); if (assignmentsOfType.Count != assTypeReq.AmountReq) return false; // Not enough assignments of some type } return true; }
private bool PassedGeneralStats(Player player, Achievement achievementToCheck) { foreach (var genStatReq in achievementToCheck.GeneralStatReqs) { var playerGeneralStatAmount = player.GeneralStats.FirstOrDefault( u => u.StatEffect.AffectedStatBonus == genStatReq.StatEffect.AffectedStatBonus); if (playerGeneralStatAmount == null) throw new Exception("Database error, player has no such general stat entry"); var res = genStatReq.CompareTo(playerGeneralStatAmount); if (res == 1) return false; // General stat not high enough } return true; }