wServer.realm.entities.player.Player.FindQuest C# (CSharp) Method

FindQuest() private method

private FindQuest ( ) : Entity
return Entity
        private Entity FindQuest()
        {
            Entity ret = null;
            try
            {
                float bestScore = 0;
                foreach (var i in Owner.Quests.Values
                    .OrderBy(quest => MathsUtils.DistSqr(quest.X, quest.Y, X, Y)))
                {
                    if (i.ObjectDesc == null || !i.ObjectDesc.Quest) continue;

                    Tuple<int, int, int> x;
                    if (!QuestDat.TryGetValue(i.ObjectDesc.ObjectId, out x)) continue;

                    if ((Level >= x.Item2 && Level <= x.Item3))
                    {
                        var score = (20 - Math.Abs((i.ObjectDesc.Level ?? 0) - Level))*x.Item1 -
                                      //priority * level diff
                                      Dist(this, i)/100; //minus 1 for every 100 tile distance
                        if (score > bestScore)
                        {
                            bestScore = score;
                            ret = i;
                        }
                    }
                }
            }
            catch
            {
            }
            return ret;
        }