private float GetPredeterminedWeight(DiaUnit u)
        {
            ACD commonData = u.CommonData;
            int dynId      = commonData.DynamicId;

            if (!_predeterminedWeightCache.ContainsKey(dynId))
            {
                float weight = 1f;
                weight *= u.IsElite() ? 1.5f : 0.5f;
                weight *= GetSizeWeight(u);
                float prioMulti =
                    ProfileManager.CurrentProfile.TargetPriorities.Where(prio => prio.ActorId == u.ActorSNO).Select(
                        prio => prio.Multiplier).FirstOrDefault();
                if (prioMulti != 0f)
                {
                    weight *= prioMulti;
                }
                _predeterminedWeightCache.Add(dynId, weight);
            }
            return(_predeterminedWeightCache[dynId]);
        }
Esempio n. 2
0
        /// <summary>
        /// Checks if the mob is Elite or Rare && with range
        /// </summary>
        /// <param name="unit">DiaUnit</param>
        /// <param name="range">Range from us to unit</param>
        /// <returns>True if current uint is Elite && unit is in range</returns>
        public static bool IsElite(this DiaUnit unit, float range)
        {
            Vector3 myLoc = ZetaDia.Me.Position;

            return(unit.IsElite() && unit.Position.DistanceSqr(myLoc) <= range * range);
        }