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]); }
/// <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); }