Ejemplo n.º 1
0
        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")
            //        )
            //    )
            //    );
        }
Ejemplo n.º 2
0
        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)))));
        }