protected override void BuffRotation()
        {
            base.BuffRotation();

            if (!Me.HaveBuff("Ghost Wolf") && (!Me.HaveBuff("Drink") || Me.ManaPercentage > 95))
            {
                // Ghost Wolf
                if (settings.GhostWolfMount &&
                    wManager.wManagerSetting.CurrentSetting.GroundMountName == "" &&
                    GhostWolf.KnownSpell)
                {
                    ToolBox.SetGroundMount(GhostWolf.Name);
                }

                // Lesser Healing Wave OOC
                if (Me.HealthPercent < settings.OOCHealThreshold &&
                    cast.OnSelf(LesserHealingWave))
                {
                    return;
                }

                // Healing Wave OOC
                if (Me.HealthPercent < settings.OOCHealThreshold &&
                    cast.OnSelf(HealingWave))
                {
                    return;
                }

                // Water Shield
                if (!Me.HaveBuff("Water Shield") &&
                    !Me.HaveBuff("Lightning Shield") &&
                    (settings.UseWaterShield || !settings.UseLightningShield || Me.ManaPercentage < 20) &&
                    cast.OnSelf(WaterShield))
                {
                    return;
                }

                // PARTY Cure poison
                WoWPlayer needCurePoison = AIOParty.GroupAndRaid
                                           .Find(m => ToolBox.HasPoisonDebuff(m.Name));
                if (needCurePoison != null && cast.OnFocusUnit(CurePoison, needCurePoison))
                {
                    return;
                }

                // PARTY Cure Disease
                WoWPlayer needCureDisease = AIOParty.GroupAndRaid
                                            .Find(m => ToolBox.HasDiseaseDebuff(m.Name));
                if (needCureDisease != null && cast.OnFocusUnit(CureDisease, needCureDisease))
                {
                    return;
                }

                // PARTY Drink
                if (AIOParty.PartyDrink(settings.PartyDrinkName, settings.PartyDrinkThreshold))
                {
                    return;
                }
            }
        }
        protected override void BuffRotation()
        {
            if (!Me.HaveBuff("Drink") || Me.ManaPercentage > 95)
            {
                base.BuffRotation();

                // OOC Shadowguard
                if (!Me.HaveBuff("Shadowguard") &&
                    settings.UseShadowGuard &&
                    cast.OnSelf(Shadowguard))
                {
                    return;
                }

                // OOC ShadowForm
                if (!Me.HaveBuff("ShadowForm") &&
                    cast.OnSelf(Shadowform))
                {
                    return;
                }

                // PARTY Drink
                if (AIOParty.PartyDrink(settings.PartyDrinkName, settings.PartyDrinkThreshold))
                {
                    return;
                }
            }
        }
        protected override void BuffRotation()
        {
            if (!Me.HaveBuff("Drink") || Me.ManaPercentage > 95)
            {
                base.BuffRotation();

                // PARTY Circle of Healing
                if (AoEHeal(false))
                {
                    return;
                }

                List <AIOPartyMember> membersByMissingHealth = AIOParty.ClosePartyMembers
                                                               .OrderBy(m => m.HealthPercent)
                                                               .ToList();

                foreach (var member in membersByMissingHealth)
                {
                    if (SingleTargetHeal(member))
                    {
                        return;
                    }
                }

                // PARTY Drink
                if (AIOParty.PartyDrink(settings.PartyDrinkName, settings.PartyDrinkThreshold))
                {
                    return;
                }
            }
        }
        protected override void BuffRotation()
        {
            if (!Me.HaveBuff("Drink") || Me.ManaPercentage > 95)
            {
                base.BuffRotation();

                // Ice Armor
                if (!Me.HaveBuff("Ice Armor") &&
                    cast.OnSelf(IceArmor))
                {
                    return;
                }

                // Frost Armor
                if (!Me.HaveBuff("Frost Armor") &&
                    !IceArmor.KnownSpell &&
                    cast.OnSelf(FrostArmor))
                {
                    return;
                }

                // PARTY Drink
                if (AIOParty.PartyDrink(settings.PartyDrinkName, settings.PartyDrinkThreshold))
                {
                    return;
                }
            }
        }
Beispiel #5
0
        protected override void BuffRotation()
        {
            base.BuffRotation();

            if (!Me.HaveBuff("Ghost Wolf") && (!Me.HaveBuff("Drink") || Me.ManaPercentage > 95))
            {
                // Ghost Wolf
                if (settings.GhostWolfMount &&
                    wManager.wManagerSetting.CurrentSetting.GroundMountName == "" &&
                    GhostWolf.KnownSpell)
                {
                    ToolBox.SetGroundMount(GhostWolf.Name);
                }

                // PARTY Healing Wave
                List <AIOPartyMember> alliesNeedingHealWave = AIOParty.GroupAndRaid
                                                              .FindAll(a => a.IsAlive && a.HealthPercent < 70)
                                                              .OrderBy(a => a.HealthPercent)
                                                              .ToList();
                if (alliesNeedingHealWave.Count > 0 &&
                    cast.OnFocusUnit(HealingWave, alliesNeedingHealWave[0]))
                {
                    return;
                }

                // Water Shield
                if (!Me.HaveBuff("Water Shield") &&
                    !Me.HaveBuff("Lightning Shield") &&
                    (settings.UseWaterShield || !settings.UseLightningShield || Me.ManaPercentage < 20) &&
                    cast.OnSelf(WaterShield))
                {
                    return;
                }

                // PARTY Cure poison
                WoWPlayer needCurePoison = AIOParty.GroupAndRaid
                                           .Find(m => ToolBox.HasPoisonDebuff(m.Name));
                if (needCurePoison != null && cast.OnFocusUnit(CurePoison, needCurePoison))
                {
                    return;
                }

                // PARTY Cure Disease
                WoWPlayer needCureDisease = AIOParty.GroupAndRaid
                                            .Find(m => ToolBox.HasDiseaseDebuff(m.Name));
                if (needCureDisease != null && cast.OnFocusUnit(CureDisease, needCureDisease))
                {
                    return;
                }

                // PARTY Drink
                if (AIOParty.PartyDrink(settings.PartyDrinkName, settings.PartyDrinkThreshold))
                {
                    return;
                }
            }
        }
Beispiel #6
0
        protected override void BuffRotation()
        {
            if (!Me.HaveBuff("Drink") || Me.ManaPercentage > 95)
            {
                base.BuffRotation();

                // PARTY Greater heal
                List <AIOPartyMember> needGreaterHeal = AIOParty.GroupAndRaid
                                                        .FindAll(m => m.IsAlive && m.HealthPercent < 50)
                                                        .OrderBy(m => m.HealthPercent)
                                                        .ToList();
                if (needGreaterHeal.Count > 0 && cast.OnFocusUnit(GreaterHeal, needGreaterHeal[0]))
                {
                    return;
                }

                // PARTY Heal
                List <AIOPartyMember> needHeal = AIOParty.GroupAndRaid
                                                 .FindAll(m => m.HealthPercent < 80)
                                                 .OrderBy(m => m.HealthPercent)
                                                 .ToList();
                if (needHeal.Count > 0 && cast.OnFocusUnit(FlashHeal, needHeal[0]))
                {
                    return;
                }

                if (!FlashHeal.KnownSpell)
                {
                    // PARTY Lesser Heal
                    List <AIOPartyMember> needLesserHeal = AIOParty.GroupAndRaid
                                                           .FindAll(m => m.HealthPercent < 80)
                                                           .OrderBy(m => m.HealthPercent)
                                                           .ToList();
                    if (needLesserHeal.Count > 0 && cast.OnFocusUnit(LesserHeal, needLesserHeal[0]))
                    {
                        return;
                    }
                }

                // PARTY Renew
                List <AIOPartyMember> needRenew = AIOParty.GroupAndRaid
                                                  .FindAll(m => m.HealthPercent < 90 && !m.HaveBuff(Renew.Name))
                                                  .OrderBy(m => m.HealthPercent)
                                                  .ToList();
                if (needRenew.Count > 0 && cast.OnFocusUnit(Renew, needRenew[0]))
                {
                    return;
                }

                // PARTY Drink
                if (AIOParty.PartyDrink(settings.PartyDrinkName, settings.PartyDrinkThreshold))
                {
                    return;
                }
            }
        }
        protected override void BuffRotation()
        {
            if (!Me.HaveBuff("Drink") || Me.ManaPercentage > 95)
            {
                base.BuffRotation();

                if (_knowImprovedScorch)
                {
                    RangeManager.SetRange(Scorch.MaxRange);
                }
                else
                {
                    RangeManager.SetRange(Fireball.MaxRange);
                }

                // Molten Armor
                if (!Me.HaveBuff("Molten Armor") &&
                    cast.OnSelf(MoltenArmor))
                {
                    return;
                }

                // Mage Armor
                if (!Me.HaveBuff("Mage Armor") &&
                    !MoltenArmor.KnownSpell &&
                    cast.OnSelf(MageArmor))
                {
                    return;
                }

                // Ice Armor
                if (!Me.HaveBuff("Ice Armor") &&
                    (!MoltenArmor.KnownSpell && !MageArmor.KnownSpell) &&
                    cast.OnSelf(IceArmor))
                {
                    return;
                }

                // Frost Armor
                if (!Me.HaveBuff("Frost Armor") &&
                    (!MoltenArmor.KnownSpell && !MageArmor.KnownSpell && !IceArmor.KnownSpell) &&
                    cast.OnSelf(FrostArmor))
                {
                    return;
                }

                // PARTY Drink
                if (AIOParty.PartyDrink(settings.PartyDrinkName, settings.PartyDrinkThreshold))
                {
                    return;
                }
            }
        }
Beispiel #8
0
        protected override void BuffRotation()
        {
            if (!Me.HaveBuff("Drink") || Me.ManaPercentage > 95)
            {
                // Aspect of the Cheetah
                if (!Me.IsMounted &&
                    !Me.HaveBuff("Aspect of the Cheetah") &&
                    MovementManager.InMoveTo &&
                    Me.ManaPercentage > 60 &&
                    settings.UseAspectOfTheCheetah &&
                    cast.OnSelf(AspectCheetah))
                {
                    return;
                }

                // PARTY Drink
                if (AIOParty.PartyDrink(settings.PartyDrinkName, settings.PartyDrinkThreshold))
                {
                    return;
                }
            }
        }
Beispiel #9
0
        protected override void BuffRotation()
        {
            if (!Me.HaveBuff("Drink") || Me.ManaPercentage > 95)
            {
                base.BuffRotation();

                // PARTY Remove Curse
                WoWPlayer needRemoveCurse = AIOParty.GroupAndRaid
                                            .Find(m => ToolBox.HasCurseDebuff(m.Name));
                if (needRemoveCurse != null && cast.OnFocusUnit(RemoveCurse, needRemoveCurse))
                {
                    return;
                }

                // PARTY Abolish Poison
                WoWPlayer needAbolishPoison = AIOParty.GroupAndRaid
                                              .Find(m => ToolBox.HasPoisonDebuff(m.Name));
                if (needAbolishPoison != null && cast.OnFocusUnit(AbolishPoison, needAbolishPoison))
                {
                    return;
                }

                // PARTY Mark of the Wild
                WoWPlayer needMotW = AIOParty.GroupAndRaid
                                     .Find(m => !m.HaveBuff(MarkOfTheWild.Name));
                if (needMotW != null && cast.OnFocusUnit(MarkOfTheWild, needMotW))
                {
                    return;
                }

                // PARTY Thorns
                WoWPlayer needThorns = AIOParty.GroupAndRaid
                                       .Find(m => !m.HaveBuff(Thorns.Name));
                if (needThorns != null && cast.OnFocusUnit(Thorns, needThorns))
                {
                    return;
                }

                // Omen of Clarity
                if (!Me.HaveBuff("Omen of Clarity") &&
                    OmenOfClarity.IsSpellUsable &&
                    cast.OnTarget(OmenOfClarity))
                {
                    return;
                }

                // Regrowth
                WoWPlayer needRegrowth = AIOParty.GroupAndRaid
                                         .Find(m => m.HealthPercent < 80 && !m.HaveBuff("Regrowth"));
                if (needRegrowth != null &&
                    cast.OnFocusUnit(Regrowth, needRegrowth))
                {
                    return;
                }

                // Rejuvenation
                WoWPlayer needRejuvenation = AIOParty.GroupAndRaid
                                             .Find(m => m.HealthPercent < 80 && !m.HaveBuff("Rejuvenation"));
                if (needRejuvenation != null &&
                    cast.OnFocusUnit(Rejuvenation, needRejuvenation))
                {
                    return;
                }

                // PARTY Drink
                if (AIOParty.PartyDrink(settings.PartyDrinkName, settings.PartyDrinkThreshold))
                {
                    return;
                }

                // Tree form
                if (!Me.HaveBuff("Tree of Life") &&
                    cast.OnSelf(TreeOfLife))
                {
                    return;
                }
            }
        }
        protected override void BuffRotation()
        {
            if (!Me.HaveBuff("Drink") || Me.ManaPercentage > 95)
            {
                base.BuffRotation();

                // Unending Breath
                if (!Me.HaveBuff("Unending Breath") &&
                    settings.UseUnendingBreath &&
                    cast.OnSelf(UnendingBreath))
                {
                    return;
                }

                // Demon Skin
                if (!Me.HaveBuff("Demon Skin") &&
                    !DemonArmor.KnownSpell &&
                    !FelArmor.KnownSpell &&
                    cast.OnSelf(DemonSkin))
                {
                    return;
                }

                // Demon Armor
                if ((!Me.HaveBuff("Demon Armor")) &&
                    !FelArmor.KnownSpell &&
                    cast.OnSelf(DemonArmor))
                {
                    return;
                }

                // Fel Armor
                if (!Me.HaveBuff("Fel Armor") &&
                    cast.OnSelf(FelArmor))
                {
                    return;
                }

                // Health Funnel OOC
                if (ObjectManager.Pet.HealthPercent < 50 &&
                    Me.HealthPercent > 40 &&
                    ObjectManager.Pet.GetDistance < 19 &&
                    !ObjectManager.Pet.InCombatFlagOnly &&
                    settings.HealthFunnelOOC)
                {
                    Lua.LuaDoString("PetWait();");
                    MovementManager.StopMove();
                    Fight.StopFight();

                    if (WarlockPetAndConsumables.MyWarlockPet().Equals("Voidwalker"))
                    {
                        cast.PetSpell("Consume Shadows", false, true);
                    }

                    if (cast.OnSelf(HealthFunnel))
                    {
                        Thread.Sleep(500);
                        Usefuls.WaitIsCasting();
                        Lua.LuaDoString("PetFollow();");
                        return;
                    }
                    Lua.LuaDoString("PetFollow();");
                }

                // Health Stone
                if (!WarlockPetAndConsumables.HaveHealthstone() &&
                    cast.OnSelf(CreateHealthStone))
                {
                    return;
                }

                // Create Soul Stone
                if (!WarlockPetAndConsumables.HaveSoulstone() &&
                    cast.OnSelf(CreateSoulstone))
                {
                    return;
                }

                // PARTY Soul Stone
                if (CreateSoulstone.KnownSpell &&
                    ToolBox.HaveOneInList(WarlockPetAndConsumables.SoulStones()) &&
                    ToolBox.GetItemCooldown(WarlockPetAndConsumables.SoulStones()) <= 0)
                {
                    WoWPlayer noSoulstone = AIOParty.GroupAndRaid
                                            .Find(m => !m.HaveBuff("Soulstone Resurrection") &&
                                                  m.GetDistance < 20 &&
                                                  m.Name != "Unknown" &&
                                                  !TraceLine.TraceLineGo(Me.Position, m.Position) &&
                                                  (m.WowClass == WoWClass.Paladin || m.WowClass == WoWClass.Priest || m.WowClass == WoWClass.Shaman || m.WowClass == WoWClass.Druid));
                    if (noSoulstone != null)
                    {
                        Logger.Log($"Using Soulstone on {noSoulstone.Name}");
                        MovementManager.StopMoveNewThread();
                        MovementManager.StopMoveToNewThread();
                        Lua.RunMacroText($"/target {noSoulstone.Name}");
                        if (ObjectManager.Target.Name == noSoulstone.Name)
                        {
                            ToolBox.UseFirstMatchingItem(WarlockPetAndConsumables.SoulStones());
                            Usefuls.WaitIsCasting();
                            Lua.RunMacroText("/cleartarget");
                            ToolBox.ClearCursor();
                        }
                    }
                }

                // PARTY Drink
                if (AIOParty.PartyDrink(settings.PartyDrinkName, settings.PartyDrinkThreshold))
                {
                    return;
                }

                // Life Tap
                if (Me.HealthPercent > Me.ManaPercentage &&
                    settings.UseLifeTap &&
                    cast.OnSelf(LifeTap))
                {
                    return;
                }
            }
        }
        protected override void BuffRotation()
        {
            if (!Me.HaveBuff("Drink") || Me.ManaPercentage > 95)
            {
                base.BuffRotation();

                // PARTY Remove Curse
                WoWPlayer needRemoveCurse = AIOParty.GroupAndRaid
                                            .Find(m => ToolBox.HasCurseDebuff(m.Name));
                if (needRemoveCurse != null && cast.OnFocusUnit(RemoveCurse, needRemoveCurse))
                {
                    return;
                }

                // PARTY Abolish Poison
                WoWPlayer needAbolishPoison = AIOParty.GroupAndRaid
                                              .Find(m => ToolBox.HasPoisonDebuff(m.Name));
                if (needAbolishPoison != null && cast.OnFocusUnit(AbolishPoison, needAbolishPoison))
                {
                    return;
                }

                // PARTY Mark of the Wild
                WoWPlayer needMotW = AIOParty.GroupAndRaid
                                     .Find(m => !m.HaveBuff(MarkOfTheWild.Name));
                if (needMotW != null && cast.OnFocusUnit(MarkOfTheWild, needMotW))
                {
                    return;
                }

                // PARTY Thorns
                WoWPlayer needThorns = AIOParty.GroupAndRaid
                                       .Find(m => !m.HaveBuff(Thorns.Name));
                if (needThorns != null && cast.OnFocusUnit(Thorns, needThorns))
                {
                    return;
                }

                // Omen of Clarity
                if (!Me.HaveBuff("Omen of Clarity") &&
                    OmenOfClarity.IsSpellUsable &&
                    cast.OnSelf(OmenOfClarity))
                {
                    return;
                }

                // PARTY Drink
                if (AIOParty.PartyDrink(settings.PartyDrinkName, settings.PartyDrinkThreshold))
                {
                    return;
                }

                // Bear Form
                if (!CatForm.KnownSpell &&
                    !Me.HaveBuff(BearForm.Name) &&
                    cast.OnSelf(BearForm))
                {
                    return;
                }

                // Cat Form
                if (!Me.HaveBuff(CatForm.Name) &&
                    cast.OnSelf(CatForm))
                {
                    return;
                }
            }
        }
        protected virtual void BuffRotation()
        {
            // PARTY buff rotations
            if (specialization.RotationType == Enums.RotationType.Party)
            {
                // Aura
                if (!Me.HaveBuff(settings.PartyAura) &&
                    cast.OnSelf(AIOSpell.GetSpellByName(settings.PartyAura)))
                {
                    return;
                }

                // PARTY Resurrection
                List <AIOPartyMember> needRes = AIOParty.GroupAndRaid
                                                .FindAll(m => m.IsDead)
                                                .OrderBy(m => m.GetDistance)
                                                .ToList();
                if (needRes.Count > 0 && cast.OnFocusUnit(Redemption, needRes[0]))
                {
                    return;
                }

                if (settings.PartyHealOOC || specialization is PaladinHolyParty)
                {
                    // PARTY Heal
                    List <AIOPartyMember> needHeal = AIOParty.GroupAndRaid
                                                     .FindAll(m => m.HealthPercent < 70)
                                                     .OrderBy(m => m.HealthPercent)
                                                     .ToList();
                    if (needHeal.Count > 0 && cast.OnFocusUnit(HolyLight, needHeal[0]))
                    {
                        return;
                    }

                    // PARTY Flash of Light
                    List <AIOPartyMember> needFoL = AIOParty.GroupAndRaid
                                                    .FindAll(m => m.HealthPercent < 85)
                                                    .OrderBy(m => m.HealthPercent)
                                                    .ToList();
                    if (needFoL.Count > 0 && cast.OnFocusUnit(FlashOfLight, needFoL[0]))
                    {
                        return;
                    }
                }

                // PARTY Purifiy
                WoWPlayer needsPurify = AIOParty.GroupAndRaid
                                        .Find(m => ToolBox.HasDiseaseDebuff(m.Name) || ToolBox.HasPoisonDebuff(m.Name));
                if (needsPurify != null && cast.OnFocusUnit(Purify, needsPurify))
                {
                    return;
                }

                // Party Cleanse
                WoWPlayer needsCleanse = AIOParty.GroupAndRaid
                                         .Find(m => ToolBox.HasMagicDebuff(m.Name));
                if (needsCleanse != null && cast.OnFocusUnit(Cleanse, needsCleanse))
                {
                    return;
                }

                // Blessings
                if (PartyBlessingBuffs())
                {
                    return;
                }

                // PARTY Drink
                if (AIOParty.PartyDrink(settings.PartyDrinkName, settings.PartyDrinkThreshold))
                {
                    return;
                }
            }
        }