public void StartForcedCooldown()
 {
     if (ForcedCooldown > 0)
     {
         ForcedCooldownTimer = new Timer(ForcedCooldown);
     }
 }
        protected override void Pull()
        {
            base.Pull();

            // Dire Bear Form
            if (!Me.HaveBuff("Dire Bear Form") &&
                cast.OnSelf(DireBearForm))
            {
                return;
            }

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

            // Check if caster in list
            if (_casterEnemies.Contains(ObjectManager.Target.Name))
            {
                _fightingACaster = true;
            }

            // Pull logic
            if (ToolBox.Pull(cast, settings.AlwaysPull, new List <AIOSpell> {
                FaerieFireFeral, MoonfireRank1, Wrath
            }))
            {
                _combatMeleeTimer = new Timer(1000);
                return;
            }
        }
예제 #3
0
        protected override void Pull()
        {
            base.Pull();

            // Defensive Stance
            if (InBattleStance() &&
                cast.OnSelf(DefensiveStance))
            {
                return;
            }

            // Check if caster in list
            if (_casterEnemies.Contains(ObjectManager.Target.Name))
            {
                _fightingACaster = true;
            }

            // Pull logic
            if (ToolBox.Pull(cast, settings.AlwaysPull, new List <AIOSpell> {
                Shoot, Throw
            }))
            {
                _combatMeleeTimer = new Timer(2000);
                return;
            }
        }
        protected override void PullRotation()
        {
            base.PullRotation();

            WoWUnit Target = ObjectManager.Target;

            ToolBox.CheckAutoAttack(Attack);

            // Seal of Righteousness
            if (Me.ManaPercentage > settings.PartyProtSealOfWisdom &&
                !Me.HaveBuff("Seal of Righteousness") &&
                cast.OnSelf(SealOfRighteousness))
            {
                return;
            }

            // Seal of Wisdom
            if (Me.ManaPercentage <= settings.PartyProtSealOfWisdom &&
                !Me.HaveBuff("Seal of Wisdom") &&
                cast.OnSelf(SealOfWisdom))
            {
                return;
            }

            AIOSpell avengersShield = settings.PartyAvengersShieldnRank1 ? AvengersShieldRank1 : AvengersShield;

            // Pull logic
            if (ToolBox.Pull(cast, true, new List <AIOSpell> {
                avengersShield, Judgement
            }))
            {
                _combatMeleeTimer = new Timer(500);
                return;
            }
        }
예제 #5
0
        // Party Drink
        public static bool PartyDrink(string drinkName, int threshold)
        {
            if (ObjectManager.Me.ManaPercentage >= threshold)
            {
                return(false);
            }

            Timer wait = new Timer(1000);

            while (!wait.IsReady && !ObjectManager.Me.InCombatFlagOnly && !Fight.InFight)
            {
                Thread.Sleep(300);
            }

            if (ObjectManager.Me.ManaPercentage < threshold &&
                !ObjectManager.Me.HaveBuff("Drink") &&
                !MovementManager.InMovement &&
                !MovementManager.InMoveTo &&
                drinkName.Trim().Length > 0)
            {
                ToolBox.AddToDoNotSellList(drinkName.Trim());
                if (ToolBox.CountItemStacks(drinkName) > 0)
                {
                    ItemsManager.UseItemByNameOrId(drinkName);
                    Logger.Log($"[Party drink] Using {drinkName}");
                    return(true);
                }
                else
                {
                    Logger.Log($"Couldn't find any {drinkName} in bags");
                    return(false);
                }
            }
            return(false);
        }
예제 #6
0
        protected override void Pull()
        {
            base.Pull();

            // Check stance
            if (!InBattleStance() &&
                ObjectManager.Me.Rage < 10 &&
                !_pullFromAfar &&
                !settings.AlwaysPull)
            {
                cast.OnSelf(BattleStance);
            }

            // Charge Battle Stance
            if (InBattleStance() &&
                ObjectManager.Target.GetDistance > 9f &&
                ObjectManager.Target.GetDistance < 24f &&
                !_pullFromAfar &&
                cast.OnTarget(Charge))
            {
                return;
            }

            // Charge Berserker Stance
            if (InBerserkStance() &&
                ObjectManager.Target.GetDistance > 9f &&
                ObjectManager.Target.GetDistance < 24f &&
                !_pullFromAfar &&
                cast.OnTarget(Intercept))
            {
                return;
            }

            // Check if caster in list
            if (_casterEnemies.Contains(ObjectManager.Target.Name))
            {
                _fightingACaster = true;
            }

            // Pull logic
            if (ToolBox.Pull(cast, settings.AlwaysPull, new List <AIOSpell> {
                Shoot, Throw
            }))
            {
                _combatMeleeTimer = new Timer(2000);
                return;
            }
        }
        protected override void Pull()
        {
            base.Pull();

            // Check if caster
            if (_casterEnemies.Contains(ObjectManager.Target.Name))
            {
                _fightingACaster = true;
            }

            // Remove Ghost Wolf
            if (Me.HaveBuff("Ghost Wolf") &&
                cast.OnSelf(GhostWolf))
            {
                return;
            }

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

            // Ligntning Shield
            if (Me.ManaPercentage > _lowManaThreshold &&
                !Me.HaveBuff("Lightning Shield") &&
                !Me.HaveBuff("Water Shield") &&
                settings.UseLightningShield &&
                (!WaterShield.KnownSpell || !settings.UseWaterShield) &&
                cast.OnTarget(LightningShield))
            {
                return;
            }

            // Pull logic
            if (ToolBox.Pull(cast, settings.ENAlwaysPullWithLightningBolt, new List <AIOSpell> {
                settings.ENPullRankOneLightningBolt?LightningBoltRank1: null, LightningBolt
            }))
            {
                _combatMeleeTimer = new Timer(2000);
                return;
            }
        }
예제 #8
0
        protected override void Pull()
        {
            base.Pull();

            // Check if caster in list
            if (_casterEnemies.Contains(ObjectManager.Target.Name))
            {
                _fightingACaster = true;
            }

            // Pull logic
            if (ToolBox.Pull(cast, settings.AlwaysPull || ToolBox.HasPoisonDebuff(), new List <AIOSpell> {
                Shoot, Throw
            }))
            {
                _combatMeleeTimer = new Timer(2000);
                return;
            }

            // Stealth
            if (!Me.HaveBuff("Stealth") &&
                ObjectManager.Target.GetDistance > 15f &&
                ObjectManager.Target.GetDistance < 25f &&
                ToolBox.GetClosestHostileFrom(ObjectManager.Target, 20) == null &&
                settings.StealthApproach &&
                Backstab.KnownSpell &&
                (!ToolBox.HasPoisonDebuff() || settings.StealthWhenPoisoned) &&
                cast.OnSelf(Stealth))
            {
                return;
            }

            // Stealth approach
            if (Me.HaveBuff("Stealth") &&
                ObjectManager.Target.GetDistance > 3f &&
                !_isStealthApproching)
            {
                StealthApproach();
            }

            // Auto
            if (ObjectManager.Target.GetDistance < 6f && !Me.HaveBuff("Stealth"))
            {
                ToggleAutoAttack(true);
            }
        }
예제 #9
0
 /// <summary>
 /// Creates a new instance of the <see cref="WoWSpell"/> class.
 /// </summary>
 /// <param name="spellNameEnglish">The spell name.</param>
 /// <param name="cooldownTimer">The cooldown time.</param>
 public WoWSpell(string spellNameEnglish, double cooldownTimer)
     : base(spellNameEnglish)
 {
     // Set timer
     this._timer = new Timer(cooldownTimer);
 }
        protected override void Pull()
        {
            // Bear Form
            if (!CatForm.KnownSpell &&
                !Me.HaveBuff("Bear Form") &&
                cast.OnSelf(BearForm))
            {
                return;
            }

            // Cat Form
            if (!Me.HaveBuff("Cat Form") &&
                ObjectManager.Target.Guid > 0 &&
                cast.OnSelf(CatForm))
            {
                return;
            }

            // Prowl
            if (Me.HaveBuff("Cat Form") &&
                !Me.HaveBuff(Prowl.Name) &&
                ObjectManager.Target.GetDistance > 15f &&
                ObjectManager.Target.GetDistance < 25f &&
                ToolBox.GetClosestHostileFrom(ObjectManager.Target, 20) == null &&
                settings.StealthEngage &&
                cast.OnSelf(Prowl))
            {
                return;
            }

            // Check if caster in list
            if (_casterEnemies.Contains(ObjectManager.Target.Name))
            {
                _fightingACaster = true;
            }

            // Pull logic
            if (ToolBox.Pull(cast, settings.AlwaysPull, new List <AIOSpell> {
                FaerieFireFeral, MoonfireRank1, Wrath
            }))
            {
                _combatMeleeTimer = new Timer(2000);
                return;
            }

            // Pull Bear/Cat
            if (Me.HaveBuff("Bear Form") ||
                Me.HaveBuff("Dire Bear Form") ||
                Me.HaveBuff("Cat Form"))
            {
                RangeManager.SetRangeToMelee();

                // Prowl approach
                if (Me.HaveBuff("Prowl") &&
                    ObjectManager.Target.GetDistance > 3f &&
                    !_isStealthApproching)
                {
                    StealthApproach();
                }

                return;
            }
        }