What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

DH Caltrops

EasyJoy

New Member
Joined
Feb 1, 2016
Messages
6
Reaction score
0
My bot uses a lot caltrops. Is there any way i can make it use caltrops less often by editing following code?

/// <summary>
/// When Caltrops should be cast
/// </summary>
private static bool CaltropsCondition(SkillMeta meta)
{
return TargetUtil.AnyMobsInRange(40) && !GetHasBuff(SNOPower.DemonHunter_Caltrops);
}

/// <summary>
/// When Sentry should be cast
/// </summary>
/// <param name="meta"></param>
/// <returns></returns>
private static bool SentryCondition(SkillMeta meta)
{
meta.CastRange = 85f;
meta.CastFlags = CanCastFlags.NoTimer;
meta.TargetPositionSelector = ret => GetSentryPosition();

if (meta.Skill.Charges == 0)
return false;

if (TargetUtil.AnyMobsInRange(65) && Trinity.PlayerOwnedDHSentryCount < MaxSentryCount)
return true;

return false;
}

private static Vector3 GetSentryPosition()
{
var sentries = SpellHistory.History.Where(s => s.Power.SNOPower == SNOPower.DemonHunter_Sentry && s.TimeSinceUse.TotalSeconds < 12).ToList();
var sentryPositions = new HashSet<Vector3>(sentries.Select(b => b.TargetPosition));
Func<Vector3, bool> IsValidPosition = pos => !sentryPositions.Any(b => b.Distance(pos) <= 12f);



var clusterPosition = TargetUtil.GetBestClusterPoint();
if (IsValidPosition(clusterPosition))
{
return clusterPosition;
}

if (IsValidPosition(CurrentTarget.Position))
{
return CurrentTarget.Position;
}

if (IsValidPosition(Player.Position))
{
return Player.Position;
}

var closestUnit = TargetUtil.GetClosestUnit().Position;
if (IsValidPosition(closestUnit))
{
return closestUnit;
}

return Player.Position;
}
 
Back
Top