I'd like some help in fixing this or perhaps adding this feature. For Druid Balance and Singular, when you use Class Config and then Select Class Specific, there is a section called Common. In that section you can define values for Rejuvenation Heath and Healing Touch Health as well as some other items. If we look at an OLD Singular .cs file we see the following (at Singular\ClassSpecific\Druid): this is in the Common.cs and is dated from 10/1/2010 Code: /* Original Non Resto Healing #region Non Resto Healing public static Composite CreateNonRestoHeals() { return new Decorator( ret => !SingularSettings.Instance.Druid.NoHealBalanceAndFeral && !StyxWoW.Me.HasAura("Drink"), new PrioritySelector( Spell.WaitForCast(false,false), Spell.Heal("Rejuvenation", ret => StyxWoW.Me.HealthPercent <= SingularSettings.Instance.Druid.NonRestoRejuvenation && !StyxWoW.Me.HasAura("Rejuvenation")), Spell.Heal("Regrowth", ret => StyxWoW.Me.HealthPercent <= SingularSettings.Instance.Druid.NonRestoRegrowth && !StyxWoW.Me.HasAura("Regrowth")), Spell.Heal("Healing Touch", ret => StyxWoW.Me.HealthPercent <= SingularSettings.Instance.Druid.NonRestoHealingTouch))); } #endregion */ you can see it uses the values in the Singular Configuration for Rejuvenation at this section: Code: Spell.Heal("Rejuvenation", ret => StyxWoW.Me.HealthPercent <= SingularSettings.Instance.Druid.NonRestoRejuvenation && !StyxWoW.Me.HasAura("Rejuvenation")), however in the latest release of HB and also in the latest release of Singular itself we see the following area for non-resto heals: Code: #region Heal [Behavior(BehaviorType.Heal, WoWClass.Druid, WoWSpec.DruidFeral)] [Behavior(BehaviorType.Heal, WoWClass.Druid, WoWSpec.DruidGuardian)] public static Composite CreateDruidNonRestoHeal() { return new PrioritySelector( Spell.WaitForCast(true), new Decorator( ret => !Spell.IsGlobalCooldown(), new Sequence( new PrioritySelector( Spell.Cast("Healing Touch", ret => Me.HealthPercent <= 80 && Me.ActiveAuras.ContainsKey("Predatory Swiftness")), Spell.Cast("Renewal", ret => Me.HealthPercent < DruidSettings.RenewalHealth ), Spell.BuffSelf("Cenarion Ward", ret => Me.HealthPercent < 75 || Unit.NearbyUnitsInCombatWithMe.Count() >= 2), CreateNaturesSwiftnessHeal( ret => Me.HealthPercent < 60), new Decorator( ret => Me.HealthPercent < 40, new PrioritySelector( Spell.Cast("Disorienting Roar", ret => Me.HealthPercent <= 25 && Unit.NearbyUnfriendlyUnits.Any(u => u.Aggro || (u.Combat && u.IsTargetingMeOrPet))), Spell.Cast("Might of Ursoc", ret => Me.HealthPercent < 25), // heal out of form at this point (try to Barkskin at least) new Throttle( Spell.BuffSelf( "Barkskin")), new Decorator( ret => SingularRoutine.CurrentWoWContext != WoWContext.Battlegrounds, new PrioritySelector( Spell.Cast("Rejuvenation", on => Me, ret => Me.HasAuraExpired("Rejuvenation",1)), Spell.Cast("Healing Touch", on => Me) ) ) ) ) ) ) ) ); } public static Composite CreateNaturesSwiftnessHeal(SimpleBooleanDelegate requirements = null) { return CreateNaturesSwiftnessHeal(on => Me, requirements); } public static Composite CreateNaturesSwiftnessHeal(UnitSelectionDelegate onUnit, SimpleBooleanDelegate requirements = null) { return new Decorator( ret => onUnit != null && onUnit(ret) != null && requirements != null && requirements(ret), new Sequence( Spell.BuffSelf("Nature's Swiftness"), new Wait(TimeSpan.FromMilliseconds(500), ret => Me.HasAura("Nature's Swiftness"), new ActionAlwaysSucceed()), Spell.Cast("Healing Touch", ret => false, onUnit, req => true) ) ); } public static WoWUnit GetBestHealTarget() { if (SingularRoutine.CurrentWoWContext == WoWContext.Normal || Me.HealthPercent < 40) return Me; return Unit.NearbyFriendlyPlayers.Where(p=>p.IsAlive).OrderBy(k=>k.GetPredictedHealthPercent(false)).FirstOrDefault(); } #endregion and notice that the Singular COnfiguration settings aren't even used (Rejuvenation Health NOR Healing Touch) and that it's hard coded for: Code: ret => Me.HealthPercent < 40, and that the Rejuve won't kick in until health is below 40 and all other priority are met. I tried to create my OWN rejuv section above this or further up in the priority but it seems to not work and Rejuv isn't cast, but I must admit I don't have any good understanding of coding these things. So I would ask the following: 1) Why was the settings from the Singular Configuration values removed and replaced with hard-coded values (at least for Common.cs for Druid)? 2) can this be replaced back using the values? 3) can we again, separate Rejuv and Healing Touch from each other so they aren't hard-coded within the same priority section? 4) does someone have a quick code fix I can insert into this code section so that Rejuve will be cast if the health of my druid goes below 85 and rejuve isn't already in progress on me? thanks in advance-
sorry double post.. the forums for HB are maniacally slow and almost intolerable and has been off and on for a couple weeks..
change that 40 to 85 would be my first guess... ret => Me.HealthPercent < 40 to ret => Me.HealthPercent < 85
open balance.cs from same folder as you found common.cs in search for "rejuvenation" it should look like this: Code: Spell.Cast("Rejuvenation", mov => false, on => Me, ret => _ImaMoonBeast && Me.HasAuraExpired("Rejuvenation", 1)), change that line to: Code: Spell.Cast("Rejuvenation", mov => false, on => Me, ret => Me.HealthPercent < 85 && Me.HasAuraExpired("Rejuvenation", 1)), you can also set the health percent in the changed line, mine is set for 85 percent have fun