have the Balance druids rejuvenate the tank.
no more wiping cause got no healer
1x Guardian
2x Balance
Routines\Singular\Settings\DruidSettings.cs
Routines\Singular\ClassSpecific\Druid\Balance.cs
Routines\Singular\ClassSpecific\Druid\Balance.cs
Once you have made those three edits (stuff between "add this START" and "add this END") you get a new setting under "Balance", setting it to 0 means that the condition is never met so it doesn't fire, however there is time wasted looking things up, not sure how much...
While levelling this is super helpful.
Stole the code out of the Resto config - so could probably be refined.
I needed a quick hack to survive, took me about 30mins to figure it all out.
no more wiping cause got no healer

1x Guardian
2x Balance
Routines\Singular\Settings\DruidSettings.cs
Code:
[Setting]
[DefaultValue(40)]
[Category("Balance")]
[DisplayName("Moon Beast Healing Touch")]
[Description("Health Percent to cast for Moon Beast-heal when Solo")]
public int MoonBeastHealingTouch { get; set; }
// add this START
[Setting]
[DefaultValue(80)]
[Category("Balance")]
[DisplayName("Tank Rejuvenation")]
[Description("Health Percent to cast Rejuvenation on Tank - 0 to disable")]
public float TankRejuvenationHealth { get; set; }
// add this END
#endregion
Routines\Singular\ClassSpecific\Druid\Balance.cs
Code:
static WoWUnit BestAoeTarget
{
get { return Clusters.GetBestUnitForCluster(Unit.NearbyUnfriendlyUnits.Where(u => u.Combat && !u.IsCrowdControlled()), ClusterType.Radius, 8f); }
}
#endregion
// add this START
public static WoWUnit GetBestTankTargetFor(string hotName, int stacks = 1)
{
WoWUnit hotTarget = null;
hotTarget = Group.Tanks
.Where(u => u.IsAlive && u.Combat && u.HealthPercent < DruidSettings.TankRejuvenationHealth && u.SpellDistance() < 40
&& (u.GetAuraStacks(hotName) < stacks || u.GetAuraTimeLeft(hotName).TotalSeconds < 3) && u.InLineOfSpellSight).OrderBy(u => u.HealthPercent)
.FirstOrDefault();
if (hotTarget != null && SingularSettings.Debug)
Logger.WriteDebug("GetBestTankTargetFor('{0}'): found Tank {1} @ {2:F1}%, hasmyaura={3}", hotName, hotTarget.SafeName(), hotTarget.HealthPercent, hotTarget.HasMyAura(hotName));
return hotTarget;
}
// add this END
#region Heal
private static WoWUnit _CrowdControlTarget;
Routines\Singular\ClassSpecific\Druid\Balance.cs
Code:
Spell.Cast("Rejuvenation", on => Me, req => Me.HealthPercent <= DruidSettings.MoonBeastRejuvenationHealth && Me.HasAuraExpired("Rejuvenation", 1)),
// add this START
Spell.Cast("Rejuvenation", on =>
{
WoWUnit unit = GetBestTankTargetFor("Rejuvenation");
if (unit != null && Spell.CanCastHack("Rejuvenation", unit, skipWowCheck: true))
{
Logger.WriteDebug("Buffing Rejuvenation ON TANK: {0}", unit.SafeName());
return unit;
}
return null;
}),
// add this END
Common.CreateNaturesSwiftnessHeal(ret => Me.HealthPercent < DruidSettings.SelfNaturesSwiftnessHealth ),
Once you have made those three edits (stuff between "add this START" and "add this END") you get a new setting under "Balance", setting it to 0 means that the condition is never met so it doesn't fire, however there is time wasted looking things up, not sure how much...
While levelling this is super helpful.
Stole the code out of the Resto config - so could probably be refined.
I needed a quick hack to survive, took me about 30mins to figure it all out.
Last edited: