Hi folks - longtime lurker / tinkerer, but 1st post here. I noticed while farming Legendary Road on Torment 1 that I'd run out of hatred fairly often and that would really slow down my farming. After doing some digging, I wrote up some some custom code that will use the Companion On-Use abilities for Demon Hunters.
What it does:
* Spider: Roots when Mobs within 25 yards.
* Bat: Gains 50 Hatred when at least 60 Hatred is Missing.
* Boar: Taunts when 4 or more Trash mobs or 1 Elite are within 20 yards.
* Wolf: Howls on CD when you're engaging an Elite.
To use it, you need to edit the DemonHunter.cs file in the following directory: \db\Plugins\Trinity\Combat\Abilities
Just above this line of code in that file:
Insert the following:
I don't have anything written up for Ferrets, as I'm not sure how to detect gold / health globes in range. I think they'd be fun to use especially with Blood Vengeance, so if anybody has some tips, send them my way.
I've a few other custom tweaks I've been working on, including extending the range on using Marked for Death (as I run with Contagion and Ball Lightning, and MfD has a 40 yd default range while BL has a 60 yd range - leads to unnecessary hatred spent) and more conservative triggers for Smoke Screen and Shadow Power, to conserve Discipline.
Finally - I've tested this for Bat, but if you notice it acting funny for Boar / Spider / Wolf, just let me know. I'm a hobbyist, not a pro, so please backup your files before making any edits - just in case - and keep the feedback constructive - thanks!
What it does:
* Spider: Roots when Mobs within 25 yards.
* Bat: Gains 50 Hatred when at least 60 Hatred is Missing.
* Boar: Taunts when 4 or more Trash mobs or 1 Elite are within 20 yards.
* Wolf: Howls on CD when you're engaging an Elite.
To use it, you need to edit the DemonHunter.cs file in the following directory: \db\Plugins\Trinity\Combat\Abilities
Just above this line of code in that file:
Code:
//skillDict.Add("EvasiveFire", SNOPower.DemonHunter_EvasiveFire);
Insert the following:
Code:
// Companion On-Use Abilities Added in 2.0
bool hasSpider = HotbarSkills.AssignedSkills.Any(s => s.Power == SNOPower.X1_DemonHunter_Companion && s.RuneIndex == 0);
bool hasBat = HotbarSkills.AssignedSkills.Any(s => s.Power == SNOPower.X1_DemonHunter_Companion && s.RuneIndex == 3);
bool hasBoar = HotbarSkills.AssignedSkills.Any(s => s.Power == SNOPower.X1_DemonHunter_Companion && s.RuneIndex == 1);
bool hasFerret = HotbarSkills.AssignedSkills.Any(s => s.Power == SNOPower.X1_DemonHunter_Companion && s.RuneIndex == 4);
bool hasWolf = HotbarSkills.AssignedSkills.Any(s => s.Power == SNOPower.X1_DemonHunter_Companion && s.RuneIndex == 2);
if (!Player.IsIncapacitated && Hotbar.Contains(SNOPower.X1_DemonHunter_Companion))
{
// Use Spider Slow on 4 or more trash mobs in an area or on Unique/Elite/Champion
if (hasSpider && CombatBase.CanCast(SNOPower.X1_DemonHunter_Companion) && TargetUtil.ClusterExists(25f, 4) && TargetUtil.EliteOrTrashInRange(25f))
{
return new TrinityPower(SNOPower.X1_DemonHunter_Companion, 0f, Vector3.Zero, CurrentWorldDynamicId, -1, 2, 1, WAIT_FOR_ANIM);
}
//Use Bat when Hatred is Needed
if (hasBat && CombatBase.CanCast(SNOPower.X1_DemonHunter_Companion) && Player.PrimaryResourceMissing >= 60)
{
return new TrinityPower(SNOPower.X1_DemonHunter_Companion, 0f, Vector3.Zero, CurrentWorldDynamicId, -1, 2, 1, WAIT_FOR_ANIM);
}
// Use Boar Taunt on 3 or more trash mobs in an area or on Unique/Elite/Champion
if (hasBoar && CombatBase.CanCast(SNOPower.X1_DemonHunter_Companion) && ((TargetUtil.ClusterExists(20f, 4) && TargetUtil.EliteOrTrashInRange(20f)) || CurrentTarget.IsEliteRareUnique))
{
return new TrinityPower(SNOPower.X1_DemonHunter_Companion, 0f, Vector3.Zero, CurrentWorldDynamicId, -1, 1, 1, WAIT_FOR_ANIM);
}
// Placeholder for Ferrets Logic - Unsure if utilities Exist to Determine Whether Gold and Health Globes are Within a Certain Range - Consider Interaction with Blood Vengeance for Optimized Results
// Use Wolf Howl on Unique/Elite/Champion - Would help for farming trash, but trash farming should not need this - Used on Elites to reduce Deaths per hour
if (hasWolf && CombatBase.CanCast(SNOPower.X1_DemonHunter_Companion) && CurrentTarget.IsEliteRareUnique)
{
return new TrinityPower(SNOPower.X1_DemonHunter_Companion, 0f, Vector3.Zero, CurrentWorldDynamicId, -1, 2, 1, WAIT_FOR_ANIM);
}
}
I don't have anything written up for Ferrets, as I'm not sure how to detect gold / health globes in range. I think they'd be fun to use especially with Blood Vengeance, so if anybody has some tips, send them my way.
I've a few other custom tweaks I've been working on, including extending the range on using Marked for Death (as I run with Contagion and Ball Lightning, and MfD has a 40 yd default range while BL has a 60 yd range - leads to unnecessary hatred spent) and more conservative triggers for Smoke Screen and Shadow Power, to conserve Discipline.
Finally - I've tested this for Bat, but if you notice it acting funny for Boar / Spider / Wolf, just let me know. I'm a hobbyist, not a pro, so please backup your files before making any edits - just in case - and keep the feedback constructive - thanks!