public override AchievementAwarded IsAwardedForThisPlayer(int playerId)
{
var result = new AchievementAwarded
{
AchievementId = Id
};
var revengedPlayerIds =
DataContext
.GetQueryable<Nemesis>()
.Where(nem => nem.NemesisPlayerId == playerId
&& nem.NemesisPlayer.CurrentAndPriorNemeses.Any(
min => min.NemesisPlayerId == nem.MinionPlayerId
&& min.DateCreated < nem.DateCreated))
.Select(nem => nem.MinionPlayerId)
.Distinct()
.ToList();
result.RelatedEntities = revengedPlayerIds;
result.PlayerProgress = revengedPlayerIds.Count;
if (result.PlayerProgress < LevelThresholds[AchievementLevel.Bronze])
{
return result;
}
result.LevelAwarded = GetLevelAwarded(result.PlayerProgress);
return result;
}
}