// START Jade Harvester -----------------------------------------------------------------------
if (Sets.RaimentOfTheJadeHarvester.IsMaxBonusActive)
{
//LogTargetArea("BestLargeCluster", Enemies.BestLargeCluster);
//LogTargetArea("BestCluster", Enemies.BestCluster);
//LogTargetArea("Nearby", Enemies.Nearby);
//LogTargetArea("CloseNearby", Enemies.CloseNearby);
// Piranhas
if (CanCast(SNOPower.Witchdoctor_Piranhas) && Player.PrimaryResource >= 250 &&
(TargetUtil.ClusterExists(15f, 45f) || TargetUtil.AnyElitesInRange(45f)) &&
LastPowerUsed != SNOPower.Witchdoctor_Piranhas &&
Player.PrimaryResource >= 250)
{
return new TrinityPower(SNOPower.Witchdoctor_Piranhas, 25f, Enemies.BestCluster.Position);
}
// Should we move to cluster for harvest
if (IdealSoulHarvestCriteria(Enemies.BestLargeCluster))
{
//LogTargetArea("--- Found a good harvest location...", Enemies.BestLargeCluster);
MoveToSoulHarvestPoint(Enemies.BestLargeCluster);
}
// Is there a slightly better position than right here
if (MinimumSoulHarvestCriteria(Enemies.BestCluster) && (Enemies.BestCluster.EliteCount >= 2 || Enemies.BestCluster.UnitCount > 4))
{
//LogTargetArea("--- Found an average harvest location...", Enemies.BestCluster);
MoveToSoulHarvestPoint(Enemies.BestCluster);
}
// Should we harvest right here?
if (MinimumSoulHarvestCriteria(Enemies.CloseNearby))
{
//LogTargetArea("--- Harvesting (CurrentPosition)", Enemies.CloseNearby);
return new TrinityPower(SNOPower.Witchdoctor_SoulHarvest);
}
// Locust Swarm
if (CanCast(SNOPower.Witchdoctor_Locust_Swarm) && Player.PrimaryResource >= 300 &&
!CurrentTarget.HasDebuff(SNOPower.Witchdoctor_Locust_Swarm))
{
return new TrinityPower(SNOPower.Witchdoctor_Locust_Swarm, 20f, CurrentTarget.ACDGuid);
}
// Acid Cloud
if (Skills.WitchDoctor.AcidCloud.CanCast() && Player.PrimaryResource >= 325 &&
LastPowerUsed != SNOPower.Witchdoctor_AcidCloud)
{
Vector3 bestClusterPoint;
if (Passives.WitchDoctor.GraveInjustice.IsActive)
bestClusterPoint = TargetUtil.GetBestClusterPoint(15f, Math.Min(Player.GoldPickupRadius + 8f, 30f));
else
bestClusterPoint = TargetUtil.GetBestClusterPoint(15f, 30f);
return new TrinityPower(SNOPower.Witchdoctor_AcidCloud, rangedAttackMaxRange, bestClusterPoint);
}
// Haunt
if (CanCast(SNOPower.Witchdoctor_Haunt) && Player.PrimaryResource >= 50 && !CurrentTarget.HasDebuff(SNOPower.Witchdoctor_Haunt))
{
return new TrinityPower(SNOPower.Witchdoctor_Haunt, 45f, CurrentTarget.ACDGuid);
}
if (CanCast(SNOPower.Witchdoctor_Haunt) && !CurrentTarget.IsTreasureGoblin && CurrentTarget.HasDebuff(SNOPower.Witchdoctor_Locust_Swarm) &&
CurrentTarget.HasDebuff(SNOPower.Witchdoctor_Haunt) && Player.PrimaryResource >= 350 && !MinimumSoulHarvestCriteria(Enemies.CloseNearby))
{
return new TrinityPower(SNOPower.Witchdoctor_Haunt, 45f, CurrentTarget.ACDGuid);
}
//// Save mana for locust swarm || piranhas
//if (!CurrentTarget.HasDebuff(SNOPower.Witchdoctor_Locust_Swarm) && Player.PrimaryResource < 300)
//{
// //Logger.LogNormal("Saving mana");
// return DefaultPower;
//}
}
// END Jade Harvester -----------------------------------------------------------------------