Ejemplo n.º 1
0
 public Ranger()
 {
     heroTexture = Engine.Engine.GetTexture("Hero/Ranger");
     Hero.loadSprite();
     heroRole            = Classes.Ranger;
     baseHealth          = 350;
     healthPerLevel      = 35;
     requiredBranchLevel = 30;
     resetLevel();
     resetHealth();
     Enemies.Enemy.UpdateTargets(this);
     Enemies.BossEnemy.UpdateBossTargets(this);
     abilities[0] = new Mug();
     abilities[1] = new Invisibility();
     abilities[2] = new Volley();
     abilities[3] = new SteadyShot();
     Engine.Engine.Log(health.ToString());
 }
Ejemplo n.º 2
0
 public Marksman()
 {
     heroTexture = Engine.Engine.GetTexture("Hero/Marksman");
     Hero.loadSprite();
     heroRole            = Classes.Marksman;
     baseHealth          = 400;
     healthPerLevel      = 55;
     canDuelWield        = true;
     requiredBranchLevel = int.MaxValue;
     resetLevel();
     resetHealth();
     abilities[0] = new Mug();
     abilities[1] = new Invisibility();
     abilities[2] = new Volley();
     abilities[3] = new SteadyShot();
     abilities[4] = new Vault();
     abilities[5] = new EagleEye();
     Enemies.Enemy.UpdateTargets(this);
     Enemies.BossEnemy.UpdateBossTargets(this);
 }
    internal static void CombatRotation()
    {
        WoWUnit Target = ObjectManager.Target;

        if (Target.GetDistance < 10f && !_isBackingUp)
        {
            ToolBox.CheckAutoAttack(Attack);
        }

        if (Target.GetDistance > 10f && !_isBackingUp)
        {
            ReenableAutoshot();
        }

        if (Target.GetDistance < 13f && !ZEBMHunterSettings.CurrentSetting.BackupFromMelee)
        {
            _canOnlyMelee = true;
        }

        // Mana Tap
        if (Target.Mana > 0 && Target.ManaPercentage > 10)
        {
            if (Cast(ManaTap))
            {
                return;
            }
        }

        // Arcane Torrent
        if ((Me.HaveBuff("Mana Tap") && Me.ManaPercentage < 50) ||
            (Target.IsCast && Target.GetDistance < 8))
        {
            if (Cast(ArcaneTorrent))
            {
                return;
            }
        }

        // Gift of the Naaru
        if (ObjectManager.GetNumberAttackPlayer() > 1 && Me.HealthPercent < 50)
        {
            if (Cast(GiftOfTheNaaru))
            {
                return;
            }
        }

        // Blood Fury
        if (Target.HealthPercent > 70)
        {
            if (Cast(BloodFury))
            {
                return;
            }
        }

        // Berserking
        if (Target.HealthPercent > 70)
        {
            if (Cast(Berserking))
            {
                return;
            }
        }

        // Stoneform
        if (ToolBox.HasPoisonDebuff() || ToolBox.HasDiseaseDebuff() || Me.HaveBuff("Bleed"))
        {
            if (Cast(Stoneform))
            {
                return;
            }
        }

        // Warstomp
        if (ObjectManager.GetNumberAttackPlayer() > 1 && Target.GetDistance < 8)
        {
            if (Cast(WarStomp))
            {
                return;
            }
        }

        // Aspect of the viper
        if (!Me.HaveBuff("Aspect of the Viper") && Me.ManaPercentage < 30)
        {
            if (Cast(AspectViper))
            {
                return;
            }
        }

        // Aspect of the Hawk
        if (!Me.HaveBuff("Aspect of the Hawk") &&
            (Me.ManaPercentage > 90 || Me.HaveBuff("Aspect of the Cheetah")) ||
            (!Me.HaveBuff("Aspect of the Hawk") && !Me.HaveBuff("Aspect of the Cheetah") && !Me.HaveBuff("Aspect of the Viper")))
        {
            if (Cast(AspectHawk))
            {
                return;
            }
        }

        // Aspect of the Monkey
        if (!Me.HaveBuff("Aspect of the Monkey") && !AspectHawk.KnownSpell)
        {
            if (Cast(AspectMonkey))
            {
                return;
            }
        }

        // Disengage
        if (ObjectManager.Pet.Target == Me.Target && Target.Target == Me.Guid && Target.GetDistance < 10 && !_isBackingUp)
        {
            if (Cast(Disengage))
            {
                return;
            }
        }

        // Bestial Wrath
        if (Target.GetDistance < 34f && Target.HealthPercent >= 60 && Me.ManaPercentage > 10 && BestialWrath.IsSpellUsable &&
            ((_settings.BestialWrathOnMulti && ObjectManager.GetUnitAttackPlayer().Count > 1) || !_settings.BestialWrathOnMulti))
        {
            if (Cast(BestialWrath))
            {
                return;
            }
        }

        // Rapid Fire
        if (Target.GetDistance < 34f && Target.HealthPercent >= 80.0 &&
            ((_settings.RapidFireOnMulti && ObjectManager.GetUnitAttackPlayer().Count > 1) || !_settings.RapidFireOnMulti))
        {
            if (Cast(RapidFire))
            {
                return;
            }
        }

        // Kill Command
        if (Cast(KillCommand))
        {
            return;
        }

        // Raptor Strike
        if (Target.GetDistance < 6f && !RaptorStrikeOn())
        {
            if (Cast(RaptorStrike))
            {
                return;
            }
        }

        // Mongoose Bite
        if (Target.GetDistance < 6f)
        {
            if (Cast(MongooseBite))
            {
                return;
            }
        }

        // Feign Death
        if (Me.HealthPercent < 20)
        {
            if (Cast(FeignDeath))
            {
                Fight.StopFight();
                return;
            }
        }

        // Freezing Trap
        if (ObjectManager.Pet.HaveBuff("Mend Pet") && ObjectManager.GetUnitAttackPlayer().Count > 1 && _settings.UseFreezingTrap)
        {
            if (Cast(FreezingTrap))
            {
                return;
            }
        }

        // Mend Pet
        if (ObjectManager.Pet.IsValid && ObjectManager.Pet.HealthPercent <= 30.0 &&
            !ObjectManager.Pet.HaveBuff("Mend Pet"))
        {
            if (Cast(MendPet))
            {
                return;
            }
        }

        // Hunter's Mark
        if (ObjectManager.Pet.IsValid && !HuntersMark.TargetHaveBuff && Target.GetDistance > 13f && Target.IsAlive)
        {
            if (Cast(HuntersMark))
            {
                return;
            }
        }

        // Steady Shot
        if (SteadyShot.KnownSpell && SteadyShot.IsSpellUsable && Me.ManaPercentage > 30 && SteadyShot.IsDistanceGood && !_isBackingUp)
        {
            SteadyShot.Launch();
            Thread.Sleep(_steadyShotSleep);
        }

        // Serpent Sting
        if (!Target.HaveBuff("Serpent Sting") &&
            Target.GetDistance < 34f &&
            ToolBox.CanBleed(Me.TargetObject) &&
            Target.HealthPercent >= 80 &&
            Me.ManaPercentage > 50u &&
            !SteadyShot.KnownSpell &&
            Target.GetDistance > 13f)
        {
            if (Cast(SerpentSting))
            {
                return;
            }
        }

        // Intimidation
        if (Target.GetDistance < 34f && Target.GetDistance > 10f && Target.HealthPercent >= 20 &&
            Me.ManaPercentage > 10)
        {
            if (Cast(Intimidation))
            {
                return;
            }
        }

        // Arcane Shot
        if (Target.GetDistance < 34f && Target.HealthPercent >= 30 && Me.ManaPercentage > 80 &&
            !SteadyShot.KnownSpell)
        {
            if (Cast(ArcaneShot))
            {
                return;
            }
        }
    }
Ejemplo n.º 4
0
    internal static void CombatRotation()
    {
        WoWUnit Target = ObjectManager.Target;

        if (Target.GetDistance < 10f && !_isBackingUp)
        {
            ToolBox.CheckAutoAttack(Attack);
        }

        if (Target.GetDistance > 10f && !_isBackingUp)
        {
            ReenableAutoshot();
        }

        // Aspect of the viper
        if (AspectViper.KnownSpell && AspectViper.IsSpellUsable && !Me.HaveBuff("Aspect of the Viper") &&
            Me.ManaPercentage < 30)
        {
            AspectViper.Launch();
        }

        // Aspect of the Hawk
        if (AspectHawk.KnownSpell && AspectHawk.IsSpellUsable && !Me.HaveBuff("Aspect of the Hawk") &&
            (Me.ManaPercentage > 90 || Me.HaveBuff("Aspect of the Cheetah")))
        {
            AspectHawk.Launch();
        }

        // Aspect of the Monkey
        if (AspectMonkey.KnownSpell && AspectMonkey.IsSpellUsable && !Me.HaveBuff("Aspect of the Monkey") &&
            !AspectHawk.KnownSpell)
        {
            AspectMonkey.Launch();
        }

        // Disengage
        if (Disengage.KnownSpell && Disengage.IsSpellUsable && ObjectManager.Pet.Target == Me.Target &&
            Target.Target == Me.Guid && Target.GetDistance < 10 && !_isBackingUp)
        {
            Disengage.Launch();
        }

        // Bestial Wrath
        if (BestialWrath.KnownSpell && BestialWrath.IsSpellUsable && Target.GetDistance < 34f &&
            Target.HealthPercent >= 60 && Me.ManaPercentage > 10 && BestialWrath.IsSpellUsable &&
            ((_settings.BestialWrathOnMulti && ObjectManager.GetUnitAttackPlayer().Count > 1) || !_settings.BestialWrathOnMulti))
        {
            BestialWrath.Launch();
        }

        // Rapid Fire
        if (RapidFire.KnownSpell && RapidFire.IsSpellUsable && Target.GetDistance < 34f &&
            Target.HealthPercent >= 80.0 &&
            ((_settings.RapidFireOnMulti && ObjectManager.GetUnitAttackPlayer().Count > 1) || !_settings.RapidFireOnMulti))
        {
            RapidFire.Launch();
        }

        // Kill Command
        if (KillCommand.KnownSpell && KillCommand.IsSpellUsable)
        {
            KillCommand.Launch();
        }

        // Raptor Strike
        if (RaptorStrike.KnownSpell && RaptorStrike.IsSpellUsable && Target.GetDistance < 6f && !RaptorStrikeOn())
        {
            RaptorStrike.Launch();
        }

        // Mongoose Bite
        if (MongooseBite.KnownSpell && MongooseBite.IsSpellUsable && Target.GetDistance < 6f)
        {
            MongooseBite.Launch();
        }

        // Feign Death
        if (FeignDeath.KnownSpell && FeignDeath.IsSpellUsable && Me.HealthPercent < 20)
        {
            FeignDeath.Launch();
            Fight.StopFight();
        }

        // Freezing Trap
        if (FreezingTrap.KnownSpell && FreezingTrap.IsSpellUsable && ObjectManager.Pet.HaveBuff("Mend Pet") &&
            ObjectManager.GetUnitAttackPlayer().Count > 1 && _settings.UseFreezingTrap)
        {
            FreezingTrap.Launch();
        }

        // Mend Pet
        if (ObjectManager.Pet.IsValid && MendPet.KnownSpell && MendPet.IsSpellUsable && ObjectManager.Pet.HealthPercent <= 30.0 &&
            !ObjectManager.Pet.HaveBuff("Mend Pet"))
        {
            MendPet.Launch();
        }

        // Hunter's Mark
        if (HuntersMark.KnownSpell && HuntersMark.IsSpellUsable && ObjectManager.Pet.IsValid && !HuntersMark.TargetHaveBuff &&
            Target.GetDistance > 13f && Target.IsAlive)
        {
            HuntersMark.Launch();
        }

        // Steady Shot
        if (SteadyShot.KnownSpell && SteadyShot.IsSpellUsable && Me.ManaPercentage > 30 && SteadyShot.IsDistanceGood && !_isBackingUp)
        {
            SteadyShot.Launch();
            Thread.Sleep(_steadyShotSleep);
        }

        // Serpent Sting
        if (SerpentSting.KnownSpell && SerpentSting.IsSpellUsable && !Target.HaveBuff("Serpent Sting") &&
            Target.GetDistance < 34f && ToolBox.CanBleed(Me.TargetObject) &&
            Target.HealthPercent >= 80 && Me.ManaPercentage > 50u && !SteadyShot.KnownSpell &&
            Target.GetDistance > 13f)
        {
            SerpentSting.Launch();
        }

        // Intimidation
        if (Intimidation.KnownSpell && Intimidation.IsSpellUsable && Target.GetDistance < 34f &&
            Target.GetDistance > 10f && Target.HealthPercent >= 20 && Me.ManaPercentage > 10 &&
            Intimidation.IsSpellUsable)
        {
            Intimidation.Launch();
        }

        // Arcane Shot
        if (ArcaneShot.KnownSpell && ArcaneShot.IsSpellUsable && Target.GetDistance < 34f &&
            Target.HealthPercent >= 30 && Me.ManaPercentage > 80 &&
            !SteadyShot.KnownSpell)
        {
            ArcaneShot.Launch();
        }
    }
Ejemplo n.º 5
0
 public override void addPlayer(ref Player p)
 {
     player    = p;
     heroPower = new SteadyShot(p);
 }