Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace _AnotherWotlk
- {
- public class HunterLeveling : Routine
- {
- public override void ClassSpecific()
- {
- bool safeshot = false;
- if (gottarget &&
- (!havepet || target.IsPlayer || target.Name.Contains("Training Dummy") || me.IsInInstance))
- {
- safeshot = true;
- }
- if (gottarget
- && havepet
- && target.ThreatMeORPet
- && (target.ThreatPercent < 70))
- {
- safeshot = true;
- }
- if (false) { }
- //else if (spellFailed != ""
- // && (me.Use(spellFailed) || SpellFailedTime.Millisec() > 5000))
- //{
- // spellFailed = "";
- //}
- else if ((!gottarget || !target.CanShoot("Auto Shot") || !safeshot)
- && me.IsAutoshootingH
- && StopAttack())
- { }
- else if (gottarget
- && !me.IsMoving
- && target.CanShoot("Auto Shot")
- && !me.IsMoving
- && target.FaceRanged())
- { }
- else if (havepet
- // if i dont have target or have target and it threatens us then do PetAttack
- // if i have target that dont threatens us then skip
- && !(gottarget && !target.ThreatMeORPet)
- && (me.PetAttack(enemyUnits.FindAll(e =>
- e.Target == me && (!me.IsInInstance
- || e.DistanceTo(pet) < 7
- || e.Distance < 25)).MinBy(d => d.Distance))
- || !me.IsInInstance && me.PetAttack(enemyUnits.FindAll(e => e.ThreatMe).MaxBy(t => t.ThreatPercent))))
- { }
- else if (havepet
- && gottarget
- && target != pet.Target
- && !target.ThreatMeORPet
- && me.PetAttack(target))
- { }
- else if (havepet
- && pet.Target == null
- && me.PetAttack(enemyUnits.FindAll(e => e.ThreatMeORPet && (!me.IsInInstance
- || e.DistanceTo(pet) < 7
- || e.Distance < 25)).MinBy(u => u.DistanceTo(pet))))
- { }
- else if (target == null
- && havepet
- && pet.Target != null
- && pet.Target.CanAttack
- && pet.Target.Select())
- { }
- else if (gottarget
- && target.CanShoot("Kill Shot")
- && (me.HasAura("Aspect of the Viper") || !me.AuraNameContains("Aspect"))
- && (me.Buff("Aspect of the Dragonhawk", "Aspect of the Hawk")))
- { }
- else if (gottarget
- && target.ShootRanged("Kill Shot"))
- { }
- else if (havepet
- && gottarget
- && pet.InMeleeTo(target)
- && pet.Use("Bestial Wrath"))
- { }
- else if (safeshot
- && target.ShootRanged("Chimera Shot"))
- { }
- else if (safeshot
- && target.ShootRanged("Aimed Shot"))
- { }
- else if (havepet
- && gottarget
- && pet.InMeleeTo(target)
- && pet.Use("Kill Command")) //TODO replace pet.inmeleeto with canshoot kill command
- { }
- else if (havepet
- && pet.HealthPercent < 95
- && (!pet.HasAura("Mend Pet")
- || pet.GetAuraByName("Mend Pet").Remaining < 1.5)
- && me.IsCastingOrChannelling
- && pet.CanUse("Mend Pet"))
- {
- StopCasting();
- }
- else if (havepet
- && pet.HealthPercent < 95
- && (!pet.HasAura("Mend Pet")
- || pet.GetAuraByName("Mend Pet").Remaining < 1.5)
- && pet.Use("Mend Pet"))
- { }
- else if ((me.HasAura("Aspect of the Viper") || !me.AuraNameContains("Aspect"))
- && me.PowerPercent >= 90
- && me.IsInCombat
- && (me.Buff("Aspect of the Dragonhawk", "Aspect of the Hawk")))
- { }
- else if (me.PowerPercent <= 25
- && me.Buff("Aspect of the Viper"))
- { }
- else if (EnemiesInXXXRange(5f).Count > 1
- //&& !me.IsMoving
- //&& me.ManaPercent > 40.0
- && (me.Use("Explosive Trap")
- || !me.IsInInstance && me.Use("Snake Trap")))
- { }
- else if (safeshot
- && target.CanShoot("Auto Shot")
- && me.Use("Rapid Fire"))
- { }
- else if (me.Race == WoWRace.Troll
- && safeshot
- && target.CanShoot("Auto Shot")
- && me.Use("Berserking"))
- { }
- else if (me.HasAura("Aspect of the Cheetah")
- && me.IsInCombat
- && (me.Buff("Aspect of the Dragonhawk", "Aspect of the Hawk")))
- { }
- else if (gottarget
- && target.IsMoving
- && target.Target == me
- && !target.IsSlowed
- && !target.IsCCed
- && (target.ShootRanged("Concussive Shot", "Wing Clip")))
- { }
- else if (safeshot
- && !me.IsMoving
- && EnemiesInXXXRange(40f).Count > 1
- && EnemiesInXXXRange(40f).FirstOrDefault().Shoot("Multi-Shot"))
- { }
- else if (safeshot
- && target.DebuffRanged("Serpent Sting"))
- { }
- else if (safeshot
- && target.CanShoot("Chimera Shot")
- && (me.HasAura("Aspect of the Viper") || !me.AuraNameContains("Aspect"))
- && (me.Buff("Aspect of the Dragonhawk") || me.Buff("Aspect of the Hawk")))
- { }
- else if (DotUnits("Serpent Sting"))
- { }
- else if (safeshot
- && target.ShootRanged("Arcane Shot"))
- { }
- else if (safeshot
- && target.IsFacingRanged
- && !me.IsFalling
- && !me.IsAutoshootingH
- && target.InSpellRange("Auto Shot"))
- //&& me.Use("Auto Shot"))
- {
- Spell.CastSpellOnPlayer("auto shot");
- }
- else if (gottarget
- && me.Power >= 7
- && !target.HasAura("Hunter's Mark")
- && target.Shoot("Hunter's Mark"))
- { }
- else if (gottarget
- && me.IsAutoshootingH
- && UseTrinket())
- { }
- else if (safeshot
- && target.IsFacingRanged
- && !me.IsFalling
- && !me.IsMoving
- && !me.IsCastingOrChannelling
- && target.Shoot("Steady Shot"))
- { }
- else if (gottarget
- && !me.IsAutoAttacking
- && target.Distance < 5f
- && target.Health > 0
- && target.ShootMelee("Auto Attack"))
- {
- Log.Add("casting Auto Attack");
- }
- else if (gottarget
- && target.Target == me
- && target.InMelee
- && !me.IsMoving
- && target.FaceMelee())
- {
- Log.Add("facing melee");
- }
- else if (gottarget
- && target.InMelee
- && !me.IsSpellPending
- && target.ShootMelee("Raptor Strike"))
- {
- Log.Add("Raptor Strike");
- }
- else if (Loot()) { }
- else if (me.Buff("Trueshot Aura")) { }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement