public static Composite CreateShamanElementalHeal() { Composite healBT = new Decorator( ret => !StyxWoW.Me.Combat || (Group.Healers.Any() && !Group.Healers.Any(h => h.IsAlive)), Common.CreateShamanNonHealBehavior() ); // only include group healing logic if we are configured for group heal and in an Instance if (SingularRoutine.CurrentWoWContext == WoWContext.Instances && SingularSettings.Instance.Shaman.ElementalHeal) { healBT = new Decorator( ret => !StyxWoW.Me.GroupInfo.IsInRaid, new PrioritySelector( // Heal the party in dungeons if the healer is dead new Decorator( ret => StyxWoW.Me.CurrentMap.IsDungeon && Group.Healers.Count(h => h.IsAlive) == 0, Restoration.CreateRestoShamanHealingOnlyBehavior()), healBT ) ); } return(healBT); }
public static Composite CreateElementalShamanHeal() { return (new Decorator( ret => SingularSettings.Instance.Shaman.EnhancementHeal, new PrioritySelector( // Heal the party in dungeons if the healer is dead new Decorator( ret => StyxWoW.Me.CurrentMap.IsDungeon && !StyxWoW.Me.IsInRaid && Group.Healers.Count(h => h.IsAlive) == 0, Restoration.CreateRestoShamanHealingOnlyBehavior()), // This will work for both solo play and battlegrounds new Decorator( ret => Group.Healers.Any() && Group.Healers.Count(h => h.IsAlive) == 0, new PrioritySelector( Spell.Heal("Healing Wave", ret => StyxWoW.Me, ret => !SpellManager.HasSpell("Healing Surge") && StyxWoW.Me.HealthPercent <= 60), Spell.Heal("Healing Surge", ret => StyxWoW.Me, ret => StyxWoW.Me.HealthPercent <= 60))) ))); }
public static Composite CreateShamanEnhancementHeal() { Composite healBT = new Decorator( ret => !Group.Healers.Any(h => h.IsAlive && h.Distance < 40), Spell.Heal("Healing Surge", ret => StyxWoW.Me, ret => StyxWoW.Me.GetPredictedHealthPercent() <= 60) ); // group healing logic ONLY if we are configured for it and in an Instance if (SingularRoutine.CurrentWoWContext == WoWContext.Instances && SingularSettings.Instance.Shaman.EnhancementHeal) { healBT = new Decorator( ret => !StyxWoW.Me.GroupInfo.IsInRaid, new PrioritySelector( // Off Heal the party in dungeons if the healer is dead new Decorator( ret => StyxWoW.Me.CurrentMap.IsDungeon && !Group.Healers.Any(h => h.IsAlive), Restoration.CreateRestoShamanHealingOnlyBehavior()), healBT ) ); } return(healBT); }