public static Composite EnhancementCombat() { return(new PrioritySelector( //new Decorator(ret => AdvancedAI.PvPRot, // EnhancementShamanPvP.CreateESPvPCombat), Spell.Cast("Healing Stream Totem", ret => Me.HealthPercent < 80 && !Totems.Exist(WoWTotemType.Water)), Spell.Cast("Healing Tide Totem", ret => HealerManager.GetCountWithHealth(55) > 6 && !Totems.Exist(WoWTotemType.Water)), //burst new Decorator(ret => AdvancedAI.Burst, new PrioritySelector( Spell.Cast("Stormlash Totem", ret => !Me.HasAura("Stormlash Totem")), Spell.Cast("Elemental Mastery"), Spell.Cast("Fire Elemental Totem"), Spell.Cast("Feral Spirit"), Spell.Cast("Ascendance", ret => !Me.HasAura("Ascendance")))), //new Decorator(ret => Unit.UnfriendlyUnits(10).Count() >= 3, // CreateAoe()), Spell.Cast("Searing Totem", ret => Me.GotTarget && Me.CurrentTarget.SpellDistance() < Totems.GetTotemRange(WoWTotem.Searing) - 2f && !Totems.Exist(WoWTotemType.Fire)), Spell.Cast("Unleash Elements", ret => SpellManager.HasSpell("Unleashed Fury")), Spell.Cast("Elemental Blast", ret => Me.HasAura("Maelstrom Weapon", 1)), new Decorator(ret => Me.HasAura("Maelstrom Weapon", 5), new PrioritySelector( Spell.Cast("Chain Lightning", ret => Unit.UnfriendlyUnitsNearTarget(10f).Count() >= 2), Spell.Cast("Lightning Bolt"))), //StormBlast new Decorator(ret => (Me.HasAura("Ascendance") && !WoWSpell.FromId(115356).Cooldown), new Action(ret => Lua.DoString("RunMacroText('/cast Stormblast')"))), Spell.Cast("Stormstrike"), Spell.Cast("Flame Shock", ret => Me.CachedHasAura("Unleash Flame") && !Me.CurrentTarget.HasMyAura("Flame Shock")), Spell.Cast("Lava Lash"), Spell.Cast("Flame Shock", ret => (Me.CachedHasAura("Unleash Flame") && Me.CurrentTarget.CachedGetAuraTimeLeft("Flame Shock") < 10) || !Me.CurrentTarget.HasMyAura("Flame Shock")), Spell.Cast("Unleash Elements"), new Decorator(ret => Me.HasAura("Maelstrom Weapon", 3) && !Me.HasAura("Ascendance"), new PrioritySelector( Spell.Cast("Chain Lightning", ret => Unit.UnfriendlyUnitsNearTarget(10f).Count() >= 2), Spell.Cast("Lightning Bolt"))), // need to make it at <2 Spell.Cast("Ancestral Swiftness", ret => !Me.HasAura("Maelstrom Weapon")), Spell.Cast("Lighting Bolt", ret => Me.HasAura("Ancestral Swiftness")), Spell.Cast("Earth Shock"), Spell.Cast("Earth Elemental Totem", ret => Me.CurrentTarget.IsBoss && SpellManager.Spells["Fire Elemental Totem"].CooldownTimeLeft.Seconds >= 50))); //need more gear //new Decorator(ret => Me.HasAura("Maelstrom Weapon", 1) && !Me.HasAura("Ascendance"), // new PrioritySelector( // Spell.Cast("Chain Lightning", ret => Unit.UnfriendlyUnitsNearTarget(10f).Count() >= 2), // Spell.Cast("Lightning Bolt") // ) // ) // ); }
public static Composite RestorationCombat() { HealerManager.NeedHealTargeting = true; //var cancelHeal = Math.Max(95, Math.Max(AvehealingWave(), Math.Max(AvegreaterhealingWave(), AvehealingSurge())));//95,93,55,25 var cancelHeal = Math.Max(95, Math.Max(93, Math.Max(55, 25)));//95,93,55,25 return(new PrioritySelector( Spell.WaitForCastOrChannel(), //new Decorator(ret => AdvancedAI.PvPRot, // RestorationShamanPvP.CreateRSPvPCombat), new Decorator(ret => (Me.Combat || healtarget.Combat /*|| healtarget.GetPredictedHealthPercent() <= 99*/) && !Me.Mounted, new PrioritySelector( //Totems.CreateTotemsBehavior(), RollRiptide(), TidalWaves(), new Decorator(ret => AdvancedAI.Dispell, Dispelling.CreateDispelBehavior()), Item.UsePotionAndHealthstone(40), new Throttle(1, 1, new PrioritySelector( Spell.Cast("Earth Shield", on => GetBestEarthShieldTargetInstance(), ret => !GetBestEarthShieldTargetInstance().CachedHasAura("Earth Shield")))), Spell.Cast("Spirit Link Totem", on => healtarget, ret => HealerManager.Instance.TargetList.Count(p => p.GetPredictedHealthPercent() < 40 && p.Distance <= Totems.GetTotemRange(WoWTotem.SpiritLink)) >= 3 && AdvancedAI.Burst), new Decorator(ret => healtarget.HealthPercent < 25, new Sequence( Spell.Cast("Ancestral Swiftness"), Spell.Cast("Greater Healing Wave", on => healtarget))), Spell.Cast("Healing Tide Totem", ret => Me.Combat && HealerManager.Instance.TargetList.Count(p => p.GetPredictedHealthPercent() < 60 && p.Distance <= Totems.GetTotemRange(WoWTotem.HealingTide)) >= (Me.GroupInfo.IsInRaid ? 3 : 2) && AdvancedAI.Burst), Spell.Cast("Healing Stream Totem", ret => Me.Combat && !Totems.Exist(WoWTotemType.Water) && HealerManager.Instance.TargetList.Any(p => p.GetPredictedHealthPercent() < 95 && p.Distance <= Totems.GetTotemRange(WoWTotem.HealingTide))), Spell.Cast("Mana Tide Totem", ret => !Totems.Exist(WoWTotemType.Water) && Me.ManaPercent < 80), HealingRain(), ChainHeal(), Spell.Cast("Elemental Blast", on => BoltTar()), //ret => SpellManager.HasSpell("Elemental Blast"), //cancel => healtarget.HealthPercent < 40), Spell.Cast("Greater Healing Wave", on => healtarget, //ret => AvegreaterhealingWave() < Deficit(),//55 ret => healtarget.HealthPercent <55, cancel => healtarget.HealthPercent> cancelHeal), Spell.Cast("Healing Wave", on => healtarget, //ret => AvehealingWave() < Deficit(),//93 ret => healtarget.HealthPercent <93, cancel => healtarget.HealthPercent> cancelHeal), Spell.Cast("Healing Surge", on => healtarget, //ret => AvehealingSurge() < Deficit(),//25 ret => healtarget.HealthPercent <25, cancel => healtarget.HealthPercent> cancelHeal), Spell.Cast("Ascendance", ret => HealerManager.Instance.TargetList.Count(p => p.GetPredictedHealthPercent() < 50) >= 4 && !Me.CachedHasAura("Ascendance") && AdvancedAI.Burst), Riptide(), new Decorator(ret => AdvancedAI.InterruptsEnabled, Common.CreateInterruptBehavior()), //Totems.CreateTotemsBehavior(), Spell.Cast("Lightning Bolt", on => BoltTar(), ret => TalentManager.HasGlyph("Telluric Currents"), cancel => healtarget.HealthPercent < 70))))); }