示例#1
0
        public override void OutOfCombatExecute()
        {
            ReadyToDisengage       = false;
            SlowTargetWhenPossible = false;

            base.OutOfCombatExecute();

            if (PetManager.Tick())
            {
                return;
            }
        }
示例#2
0
        public override void Execute()
        {
            // we dont want to do anything if we are casting something...
            if (WowInterface.ObjectManager.Player.IsCasting)
            {
                return;
            }

            if (MyAuraManager.Tick() ||
                TargetAuraManager.Tick() ||
                PetManager.Tick() ||
                WowInterface.ObjectManager.Player.ManaPercentage < 90 &&
                WowInterface.ObjectManager.Player.HealthPercentage > 60 &&
                CastSpellIfPossible(lifeTapSpell, 0) ||
                (WowInterface.ObjectManager.Player.HealthPercentage < 80 &&
                 CastSpellIfPossible(deathCoilSpell, WowInterface.ObjectManager.TargetGuid, true)))
            {
                return;
            }

            if (WowInterface.ObjectManager.Target != null)
            {
                if (WowInterface.ObjectManager.Target.GetType() == typeof(WowPlayer))
                {
                    if (DateTime.Now - LastFearAttempt > TimeSpan.FromSeconds(fearAttemptDelay) &&
                        ((WowInterface.ObjectManager.Player.Position.GetDistance(WowInterface.ObjectManager.Target.Position) < 6 &&
                          CastSpellIfPossible(howlOfTerrorSpell, 0, true)) ||
                         (WowInterface.ObjectManager.Player.Position.GetDistance(WowInterface.ObjectManager.Target.Position) < 12 &&
                          CastSpellIfPossible(fearSpell, WowInterface.ObjectManager.TargetGuid, true))))
                    {
                        LastFearAttempt = DateTime.Now;
                        return;
                    }
                }

                if (!WowInterface.ObjectManager.Player.IsCasting &&
                    WowInterface.CharacterManager.Inventory.Items.Count(e => e.Name.Equals("Soul Shard", StringComparison.OrdinalIgnoreCase)) < 5 &&
                    WowInterface.ObjectManager.Target.HealthPercentage < 8 &&
                    CastSpellIfPossible(drainSoulSpell, WowInterface.ObjectManager.TargetGuid, true))
                {
                    return;
                }
            }

            if (CastSpellIfPossible(shadowBoltSpell, WowInterface.ObjectManager.TargetGuid, true))
            {
                return;
            }
        }
示例#3
0
        public override void ExecuteCC()
        {
            if (PetManager.Tick() ||
                WowInterface.ObjectManager.Player.ManaPercentage < 20 &&
                WowInterface.ObjectManager.Player.HealthPercentage > 60 &&
                CastSpellIfPossible(lifeTapSpell, 0) ||
                (WowInterface.ObjectManager.Player.HealthPercentage < 80 &&
                 CastSpellIfPossible(deathCoilSpell, WowInterface.ObjectManager.TargetGuid, true)) ||
                (WowInterface.ObjectManager.Player.HealthPercentage < 50 &&
                 CastSpellIfPossible(drainLifeSpell, WowInterface.ObjectManager.TargetGuid, true)))
            {
                return;
            }

            if (WowInterface.ObjectManager.Target != null)
            {
                if (WowInterface.ObjectManager.Target.GetType() == typeof(WowPlayer))
                {
                    if (DateTime.Now - LastFearAttempt > TimeSpan.FromSeconds(fearAttemptDelay) &&
                        ((WowInterface.ObjectManager.Player.Position.GetDistance(WowInterface.ObjectManager.Target.Position) < 6 &&
                          CastSpellIfPossible(howlOfTerrorSpell, 0, true)) ||
                         (WowInterface.ObjectManager.Player.Position.GetDistance(WowInterface.ObjectManager.Target.Position) < 12 &&
                          CastSpellIfPossible(fearSpell, WowInterface.ObjectManager.TargetGuid, true))))
                    {
                        LastFearAttempt = DateTime.Now;
                        return;
                    }
                }

                if (!WowInterface.ObjectManager.Player.IsCasting &&
                    WowInterface.CharacterManager.Inventory.Items.Count(e => e.Name.Equals("Soul Shard", StringComparison.OrdinalIgnoreCase)) < 5 &&
                    WowInterface.ObjectManager.Target.HealthPercentage < 8 &&
                    CastSpellIfPossible(drainSoulSpell, WowInterface.ObjectManager.TargetGuid, true))
                {
                    return;
                }
            }

            if (CastSpellIfPossible(chaosBoltSpell, WowInterface.ObjectManager.TargetGuid, true) ||
                CastSpellIfPossible(conflagrateSpell, WowInterface.ObjectManager.TargetGuid, true) ||
                CastSpellIfPossible(incinerateSpell, WowInterface.ObjectManager.TargetGuid, true))
            {
                return;
            }
        }
        public override void Execute()
        {
            base.Execute();

            if (SelectTarget(TargetManagerDps))
            {
                if (PetManager.Tick())
                {
                    return;
                }

                if (WowInterface.ObjectManager.Target != null)
                {
                    double distanceToTarget = WowInterface.ObjectManager.Target.Position.GetDistance(WowInterface.ObjectManager.Player.Position);

                    // make some distance
                    if ((WowInterface.ObjectManager.Target.Type == WowObjectType.Player && WowInterface.ObjectManager.TargetGuid != 0 && distanceToTarget < 10.0) ||
                        (WowInterface.ObjectManager.Target.Type == WowObjectType.Unit && WowInterface.ObjectManager.TargetGuid != 0 && distanceToTarget < 3.0))
                    {
                        WowInterface.MovementEngine.SetMovementAction(MovementAction.Fleeing, WowInterface.ObjectManager.Target.Position, WowInterface.ObjectManager.Target.Rotation);
                    }

                    if (WowInterface.ObjectManager.Player.HealthPercentage < 15 &&
                        TryCastSpell(feignDeathSpell, 0))
                    {
                        return;
                    }

                    if (distanceToTarget < 5.0)
                    {
                        if (ReadyToDisengage &&
                            TryCastSpell(disengageSpell, 0, true))
                        {
                            ReadyToDisengage       = false;
                            SlowTargetWhenPossible = true;
                            return;
                        }

                        if (TryCastSpell(frostTrapSpell, 0, true))
                        {
                            ReadyToDisengage       = true;
                            SlowTargetWhenPossible = true;
                            return;
                        }

                        if (WowInterface.ObjectManager.Player.HealthPercentage < 30 &&
                            TryCastSpell(deterrenceSpell, 0, true))
                        {
                            return;
                        }

                        if (TryCastSpell(raptorStrikeSpell, WowInterface.ObjectManager.TargetGuid, true) ||
                            TryCastSpell(mongooseBiteSpell, WowInterface.ObjectManager.TargetGuid, true))
                        {
                            return;
                        }
                    }
                    else
                    {
                        if (SlowTargetWhenPossible &&
                            TryCastSpell(concussiveShotSpell, WowInterface.ObjectManager.TargetGuid, true))
                        {
                            SlowTargetWhenPossible = false;
                            return;
                        }

                        if (WowInterface.ObjectManager.Target.HealthPercentage < 20 &&
                            TryCastSpell(killShotSpell, WowInterface.ObjectManager.TargetGuid, true))
                        {
                            return;
                        }

                        TryCastSpell(killCommandSpell, WowInterface.ObjectManager.TargetGuid, true);
                        TryCastSpell(beastialWrathSpell, WowInterface.ObjectManager.TargetGuid, true);
                        TryCastSpell(rapidFireSpell, 0);

                        if (WowInterface.ObjectManager.GetNearEnemies <WowUnit>(WowInterface.ObjectManager.Target.Position, 16.0).Count() > 2 &&
                            TryCastSpell(multiShotSpell, WowInterface.ObjectManager.TargetGuid, true))
                        {
                            return;
                        }

                        if (TryCastSpell(arcaneShotSpell, WowInterface.ObjectManager.TargetGuid, true) ||
                            TryCastSpell(steadyShotSpell, WowInterface.ObjectManager.TargetGuid, true))
                        {
                            return;
                        }
                    }
                }
            }
        }
示例#5
0
        public override void Execute()
        {
            base.Execute();

            if (SelectTarget(TargetManagerDps))
            {
                if (PetManager.Tick())
                {
                    return;
                }

                if (WowInterface.ObjectManager.Player.ManaPercentage < 50.0 &&
                    WowInterface.ObjectManager.Player.HealthPercentage > 60.0 &&
                    TryCastSpell(lifeTapSpell, 0) ||
                    (WowInterface.ObjectManager.Player.HealthPercentage < 80.0 &&
                     TryCastSpell(deathCoilSpell, WowInterface.ObjectManager.TargetGuid, true)) ||
                    (WowInterface.ObjectManager.Player.HealthPercentage < 50.0 &&
                     TryCastSpell(drainLifeSpell, WowInterface.ObjectManager.TargetGuid, true)) ||
                    TryCastSpell(metamorphosisSpell, 0) ||
                    (WowInterface.ObjectManager.Pet?.Health > 0 && TryCastSpell(demonicEmpowermentSpell, 0)))
                {
                    return;
                }

                if (WowInterface.ObjectManager.Target != null)
                {
                    if (WowInterface.ObjectManager.Target.GetType() == typeof(WowPlayer))
                    {
                        if (DateTime.Now - LastFearAttempt > TimeSpan.FromSeconds(5) &&
                            ((WowInterface.ObjectManager.Player.Position.GetDistance(WowInterface.ObjectManager.Target.Position) < 6.0 &&
                              TryCastSpell(howlOfTerrorSpell, 0, true)) ||
                             (WowInterface.ObjectManager.Player.Position.GetDistance(WowInterface.ObjectManager.Target.Position) < 12.0 &&
                              TryCastSpell(fearSpell, WowInterface.ObjectManager.TargetGuid, true))))
                        {
                            LastFearAttempt = DateTime.Now;
                            return;
                        }
                    }

                    if (WowInterface.CharacterManager.Inventory.Items.Count(e => e.Name.Equals("Soul Shard", StringComparison.OrdinalIgnoreCase)) < 5.0 &&
                        WowInterface.ObjectManager.Target.HealthPercentage < 25.0 &&
                        TryCastSpell(drainSoulSpell, WowInterface.ObjectManager.TargetGuid, true))
                    {
                        return;
                    }
                }

                if (WowInterface.ObjectManager.GetNearEnemies <WowUnit>(WowInterface.ObjectManager.Target.Position, 16.0).Count() > 2 &&
                    !WowInterface.ObjectManager.Target.HasBuffByName(seedOfCorruptionSpell) &&
                    TryCastSpell(seedOfCorruptionSpell, WowInterface.ObjectManager.TargetGuid, true))
                {
                    return;
                }

                bool hasDecimation = WowInterface.ObjectManager.Player.HasBuffByName(decimationSpell);
                bool hasMoltenCore = WowInterface.ObjectManager.Player.HasBuffByName(moltenCoreSpell);

                if (hasDecimation && hasMoltenCore && TryCastSpell(soulfireSpell, WowInterface.ObjectManager.TargetGuid, true))
                {
                    return;
                }
                else if (hasDecimation && TryCastSpell(soulfireSpell, WowInterface.ObjectManager.TargetGuid, true))
                {
                    return;
                }
                else if (hasMoltenCore && TryCastSpell(incinerateSpell, WowInterface.ObjectManager.TargetGuid, true))
                {
                    return;
                }
                else if (TryCastSpell(shadowBoltSpell, WowInterface.ObjectManager.TargetGuid, true))
                {
                    return;
                }
            }
        }
示例#6
0
        public override void ExecuteCC()
        {
            if (!WowInterface.ObjectManager.Player.IsAutoAttacking && AutoAttackEvent.Run())
            {
                WowInterface.HookManager.StartAutoAttack(WowInterface.ObjectManager.Target);
            }

            if (MyAuraManager.Tick() ||
                TargetAuraManager.Tick() ||
                TargetInterruptManager.Tick() ||
                PetManager.Tick())
            {
                return;
            }

            WowUnit target = (WowUnit)WowInterface.ObjectManager.WowObjects.FirstOrDefault(e => e.Guid == WowInterface.ObjectManager.TargetGuid);

            if (target != null)
            {
                double distanceToTarget = target.Position.GetDistance(WowInterface.ObjectManager.Player.Position);

                if (WowInterface.ObjectManager.Player.HealthPercentage < 15 &&
                    CastSpellIfPossible(feignDeathSpell, 0))
                {
                    return;
                }

                if (distanceToTarget < 3)
                {
                    if (CastSpellIfPossible(frostTrapSpell, 0, true))
                    {
                        InFrostTrapCombo  = true;
                        DisengagePrepared = true;
                        return;
                    }

                    if (WowInterface.ObjectManager.Player.HealthPercentage < 30 &&
                        CastSpellIfPossible(deterrenceSpell, 0, true))
                    {
                        return;
                    }

                    if (CastSpellIfPossible(raptorStrikeSpell, WowInterface.ObjectManager.TargetGuid, true) ||
                        CastSpellIfPossible(mongooseBiteSpell, WowInterface.ObjectManager.TargetGuid, true))
                    {
                        return;
                    }
                }
                else
                {
                    if (DisengagePrepared &&
                        CastSpellIfPossible(concussiveShotSpell, WowInterface.ObjectManager.TargetGuid, true))
                    {
                        DisengagePrepared = false;
                        return;
                    }

                    if (InFrostTrapCombo &&
                        CastSpellIfPossible(disengageSpell, 0, true))
                    {
                        InFrostTrapCombo = false;
                        return;
                    }

                    if (target.HealthPercentage < 20 &&
                        CastSpellIfPossible(killShotSpell, WowInterface.ObjectManager.TargetGuid, true))
                    {
                        return;
                    }

                    CastSpellIfPossible(killCommandSpell, WowInterface.ObjectManager.TargetGuid, true);
                    CastSpellIfPossible(rapidFireSpell, WowInterface.ObjectManager.TargetGuid);

                    if ((WowInterface.ObjectManager.WowObjects.OfType <WowUnit>().Where(e => target.Position.GetDistance(e.Position) < 16).Count() > 2 && CastSpellIfPossible(multiShotSpell, WowInterface.ObjectManager.TargetGuid, true)) ||
                        CastSpellIfPossible(chimeraShotSpell, WowInterface.ObjectManager.TargetGuid, true) ||
                        CastSpellIfPossible(aimedShotSpell, WowInterface.ObjectManager.TargetGuid, true) ||
                        CastSpellIfPossible(arcaneShotSpell, WowInterface.ObjectManager.TargetGuid, true) ||
                        CastSpellIfPossible(steadyShotSpell, WowInterface.ObjectManager.TargetGuid, true))
                    {
                        return;
                    }
                }
            }
        }