public override void Pulse() // Updated for Legion (tested and working for single target) { if (WoW.IsInCombat && Control.IsKeyLocked(Keys.Scroll) && !WoW.TargetIsPlayer && !WoW.IsMounted) { SelectRotation(4, 2, 1); SelectRotation(4, 3, 1); } //Healthstone - Potion if ((WoW.CanCast("Healthstone") || WoW.CanCast("Potion")) && (WoW.ItemCount("Healthstone") >= 1 || WoW.ItemCount("Potion") >= 1) && (!WoW.ItemOnCooldown("Healthstone") || !WoW.ItemOnCooldown("Potion")) && !WoW.PlayerHasBuff("Feign Death") && WoW.HealthPercent <= 30 && !WoW.IsMounted && WoW.HealthPercent != 0) { Thread.Sleep(500); WoW.CastSpell("Healthstone"); WoW.CastSpell("Potion"); return; } //Exhilaration if (WoW.CanCast("Exhilaration") && WoW.HealthPercent <= 20 && !WoW.IsMounted && !WoW.PlayerHasBuff("Feign Death") && WoW.HealthPercent != 0) { WoW.CastSpell("Exhilaration"); return; } //Counter Shot if (WoW.CanCast("Counter Shot") && WoW.TargetIsCastingAndSpellIsInterruptible && !WoW.IsSpellOnCooldown("Counter Shot") && WoW.TargetIsCasting && WoW.IsSpellInRange("Counter Shot") && WoW.TargetPercentCast > 75) { WoW.CastSpell("Counter Shot"); return; } ////Revive Pet Call pet if ((!WoW.HasPet || WoW.PetHealthPercent <= 0) && !WoW.IsMounted && WoW.HealthPercent != 0 && !WoW.PlayerHasBuff("Feign Death")) { WoW.CastSpell("Heart of the Phoenix"); WoW.CastSpell("Revive Pet"); Thread.Sleep(500); WoW.CastSpell("Call Pet"); return; } //Voley if (WoW.CanCast("Voley") && !WoW.PlayerHasBuff("Feign Death") && !WoW.PlayerHasBuff("Voley") && WoW.HealthPercent != 0 && WoW.Talent(6) == 3) { WoW.CastSpell("Voley"); return; } //Intimidation //Binding Shot if (DetectKeyPress.GetKeyState(DetectKeyPress.VK_KEY_Z) < 0 && ((WoW.CanCast("Intimidation") && WoW.Talent(5) == 3) || (WoW.CanCast("Binding Shot") && WoW.Talent(5) == 1))) { WoW.CastSpell("Binding Shot"); WoW.CastSpell("Intimidation"); return; } //Freezing Trap if (DetectKeyPress.GetKeyState(DetectKeyPress.VK_KEY_X) < 0 && WoW.CanCast("Freezing Trap") && !WoW.IsMounted) { WoW.CastSpell("Freezing Trap"); return; } //Tar Trap if (DetectKeyPress.GetKeyState(DetectKeyPress.VK_KEY_C) < 0 && WoW.CanCast("Tar Trap") && !WoW.IsMounted) { WoW.CastSpell("Tar Trap"); return; } if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.IsInCombat && !WoW.IsMounted && !WoW.PlayerIsChanneling && !WoW.PlayerHasBuff("Feign Death") && WoW.HealthPercent != 0) { //Cooldowns if (UseCooldowns) { } //Stampede if (DetectKeyPress.GetKeyState(DetectKeyPress.VK_LCONTROL) < 0 && WoW.CanCast("Stampede") && WoW.Talent(7) == 1) { WoW.CastSpell("Stampede"); return; } /*/Aspect of the Wild * if (WoW.CanCast("Aspect of the Wild") * && !WoW.PlayerHasBuff("Aspect of the Turtle") * && WoW.PlayerHasBuff("Bestial Wrath") * && WoW.PlayerBuffTimeRemaining("Bestial Wrath") >= 1300) * { * WoW.CastSpell("Aspect of the Wild"); * }*/ //SINGLE TARGET //Bestial Wrath if ((combatRoutine.Type == RotationType.SingleTarget || combatRoutine.Type == RotationType.SingleTargetCleave) && WoW.CanCast("Bestial Wrath") && !WoW.PlayerHasBuff("Aspect of the Turtle") && WoW.IsSpellInRange("Cobra Shot") && (WoW.Focus >= 97 || (WoW.Focus >= 90 && WoW.CanCast("Aspect of the Wild")))) { WoW.CastSpell("Bestial Wrath"); WoW.CastSpell("Aspect of the Wild"); //WoW.CastSpell("A Murder of Crows"); WoW.CastSpell("Kill Command"); } //Dire Frenzy if (combatRoutine.Type == RotationType.SingleTarget && (WoW.CanCast("Dire Frenzy") || WoW.SpellCooldownTimeRemaining("Dire Frenzy") <= 100) && WoW.IsSpellInRange("Cobra Shot") && WoW.Talent(2) == 2 && ((WoW.PetHasBuff("Dire Frenzy") && WoW.PetBuffTimeRemaining("Dire Frenzy") <= 200) || !WoW.PetHasBuff("Dire Frenzy") || WoW.PlayerSpellCharges("Dire Frenzy") >= 2)) { WoW.CastSpell("Titan's Thunder"); WoW.CastSpell("Dire Frenzy"); return; } //A Murder of Crows if (combatRoutine.Type == RotationType.SingleTarget && WoW.CanCast("A Murder of Crows") //&& WoW.PlayerHasBuff("Bestial Wrath") && WoW.IsSpellInRange("Cobra Shot") && WoW.Talent(6) == 1 && WoW.Focus >= 30) { WoW.CastSpell("A Murder of Crows"); return; } // Dire beast if (combatRoutine.Type == RotationType.SingleTarget && WoW.CanCast("Dire Beast") && WoW.SpellCooldownTimeRemaining("Bestial Wrath") > 300 && WoW.IsSpellInRange("Cobra Shot") && WoW.Talent(2) != 2) { WoW.CastSpell("Dire Beast"); WoW.CastSpell("Titan's Thunder"); return; } //Kill Command if (combatRoutine.Type == RotationType.SingleTarget && (WoW.SpellCooldownTimeRemaining("Kill Command") <= 100 || WoW.CanCast("Kill Command")) && WoW.Focus >= 30) { WoW.CastSpell("Kill Command"); return; } //Chimaera Shot if (combatRoutine.Type == RotationType.SingleTarget && WoW.CanCast("Chimaera Shot") && WoW.IsSpellInRange("Cobra Shot") && WoW.Talent(2) == 3 && WoW.Focus < 80) { WoW.CastSpell("Chimaera Shot"); return; } //Cobra Shot if (combatRoutine.Type == RotationType.SingleTarget && ((WoW.Focus >= 90) || (WoW.PlayerHasBuff("Bestial Wrath") && WoW.Focus >= 32)) && WoW.IsSpellInRange("Cobra Shot") && WoW.CanCast("Cobra Shot") && !WoW.CanCast("Bestial Wrath")) { WoW.CastSpell("Cobra Shot"); return; } //AOE //Bestial Wrath if (combatRoutine.Type == RotationType.AOE && WoW.CanCast("Bestial Wrath") && WoW.IsSpellInRange("Cobra Shot") && !WoW.PlayerHasBuff("Aspect of the Turtle")) { WoW.CastSpell("Bestial Wrath"); return; } // Dire beast if (combatRoutine.Type == RotationType.AOE && WoW.CanCast("Dire Beast") && WoW.SpellCooldownTimeRemaining("Bestial Wrath") > 300 && WoW.IsSpellInRange("Cobra Shot") && WoW.Talent(2) != 2) { WoW.CastSpell("Dire Beast"); WoW.CastSpell("Titan's Thunder"); return; } //Dire Frenzy if (combatRoutine.Type == RotationType.AOE && WoW.CanCast("Dire Frenzy") && WoW.SpellCooldownTimeRemaining("Bestial Wrath") > 600 && WoW.IsSpellInRange("Cobra Shot") && WoW.Talent(2) == 2) { WoW.CastSpell("Titan's Thunder"); WoW.CastSpell("Dire Frenzy"); return; } //Barrage if (combatRoutine.Type == RotationType.AOE && WoW.CanCast("Barrage") && WoW.IsSpellInRange("Cobra Shot") && WoW.Talent(6) == 2 && (WoW.Focus >= 60)) { WoW.CastSpell("Barrage"); return; } //Multishot if (combatRoutine.Type == RotationType.AOE && WoW.CanCast("Multi-Shot") && WoW.IsSpellInRange("Multi-Shot") && WoW.Focus >= 40) { WoW.CastSpell("Multi-Shot"); return; } //Chimaera Shot if (combatRoutine.Type == RotationType.AOE && WoW.CanCast("Chimaera Shot") && WoW.IsSpellInRange("Cobra Shot") && WoW.Talent(2) == 3 && WoW.Focus < 80) { WoW.CastSpell("Chimaera Shot"); return; } //CLEAVE //Multishot - Beast Cleave uptime if (combatRoutine.Type == RotationType.SingleTargetCleave && WoW.CanCast("Multi-Shot") && (/*!WoW.PetHasBuff("BeastCleave") ||*/ WoW.PetBuffTimeRemaining("BeastCleave") < 0.5) && WoW.IsSpellInRange("Multi-Shot") && !WoW.CanCast("Bestial Wrath") && !WoW.PlayerHasBuff("Bestial Wrath") && WoW.Focus >= 40) { WoW.CastSpell("Multi-Shot"); return; } //Dire Frenzy if (combatRoutine.Type == RotationType.SingleTargetCleave && WoW.CanCast("Dire Frenzy") && WoW.IsSpellInRange("Cobra Shot") && WoW.Talent(2) == 2 && ((WoW.PetHasBuff("Dire Frenzy") && WoW.PetBuffTimeRemaining("Dire Frenzy") <= 200) || !WoW.PetHasBuff("Dire Frenzy") || WoW.PlayerSpellCharges("Dire Frenzy") >= 2)) { WoW.CastSpell("Titan's Thunder"); WoW.CastSpell("Dire Frenzy"); return; } //A Murder of Crows if (combatRoutine.Type == RotationType.SingleTargetCleave && WoW.CanCast("A Murder of Crows") && WoW.PlayerHasBuff("Bestial Wrath") && WoW.IsSpellInRange("Cobra Shot") && WoW.Talent(6) == 1 && WoW.Focus >= 30) { WoW.CastSpell("A Murder of Crows"); return; } // Dire beast if (combatRoutine.Type == RotationType.SingleTargetCleave && WoW.CanCast("Dire Beast") && WoW.SpellCooldownTimeRemaining("Bestial Wrath") > 300 && WoW.IsSpellInRange("Cobra Shot") && WoW.Talent(2) != 2) { WoW.CastSpell("Dire Beast"); WoW.CastSpell("Titan's Thunder"); return; } //Barrage if (combatRoutine.Type == RotationType.SingleTargetCleave && WoW.CanCast("Barrage") && WoW.IsSpellInRange("Cobra Shot") && WoW.Talent(6) == 2 && (WoW.Focus >= 60)) { WoW.CastSpell("Barrage"); return; } //Kill Command if (combatRoutine.Type == RotationType.SingleTargetCleave && WoW.CanCast("Kill Command") && WoW.Focus >= 30) { WoW.CastSpell("Kill Command"); return; } //Chimaera Shot if (combatRoutine.Type == RotationType.SingleTargetCleave && WoW.CanCast("Chimaera Shot") && WoW.IsSpellInRange("Cobra Shot") && WoW.Talent(2) == 3 && WoW.Focus < 80) { WoW.CastSpell("Chimaera Shot"); return; } //Cobra Shot if (combatRoutine.Type == RotationType.SingleTargetCleave && ((WoW.Focus >= 85) || (WoW.PlayerHasBuff("Bestial Wrath") && (WoW.Focus >= 32))) && WoW.IsSpellInRange("Cobra Shot") && WoW.CanCast("Cobra Shot") && !WoW.CanCast("Bestial Wrath")) { WoW.CastSpell("Cobra Shot"); return; } //Mend Pet if (WoW.HasPet && WoW.CanCast("Mend Pet") && WoW.HealthPercent != 0 && WoW.PetHealthPercent <= 75 && !WoW.PlayerHasBuff("Feign Death")) { WoW.CastSpell("Mend Pet"); return; } } }
public override void Pulse() { if (WoW.IsInCombat && Control.IsKeyLocked(Keys.Scroll) && !WoW.TargetIsPlayer && !WoW.IsMounted) { SelectRotation(4, 100, 1); } if (DetectKeyPress.GetKeyState(0x6A) < 0) { UseCooldowns = !UseCooldowns; Thread.Sleep(150); } if (WoW.IsInCombat && !WoW.HasTarget) { WoW.KeyPressRelease(WoW.Keys.Tab); return; } if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.IsInCombat) { Log.Write("focus * cdremain KC >300 : " + ((FocusRegen * WoW.SpellCooldownTimeRemaining("Kill Command")) > 300)); if (WoW.CanCast("FeignDeath") && WoW.HealthPercent <= ConfigFile.ReadValue <int>("Hunter", "FeignDeath Percent") && FeignDeath && !WoW.IsSpellOnCooldown("FeignDeath") && WoW.HealthPercent != 0) { WoW.CastSpell("FeignDeath"); return; } if (WoW.CanCast("Exhilaration") && WoW.HealthPercent <= ConfigFile.ReadValue <int>("Hunter", "Exhilaration Percent") && Exhilaration && !WoW.IsSpellOnCooldown("Exhilaration") && WoW.HealthPercent != 0) { WoW.CastSpell("Exhilaration"); return; } if (WoW.CanCast("AspectoftheTurtle") && WoW.HealthPercent <= ConfigFile.ReadValue <int>("Hunter", "AspectoftheTurtle Percent") && AspectoftheTurtle && !WoW.IsSpellOnCooldown("AspectoftheTurtle") && WoW.HealthPercent != 0) { WoW.CastSpell("AspectoftheTurtle"); return; } if (WoW.CanCast("Ancient Healing Potion") && WoW.HealthPercent < 20 && !WoW.IsSpellOnCooldown("Ancient Healing Potion") && WoW.HealthPercent != 0) { WoW.CastSpell("Ancient Healing Potion"); return; } if (WoW.CanCast("Silkweave Bandage") && WoW.HealthPercent < 40 && WoW.PlayerHasBuff("Turtle") && !WoW.IsMoving && !WoW.PlayerHasDebuff("Bandaged")) { WoW.CastSpell("Silkweave Bandage"); return; } if (!WoW.HasPet && WoW.CanCast("Wolf")) { WoW.CastSpell("Wolf"); return; } if (WoW.PetHealthPercent <= 0 && WoW.CanCast("Phoenix")) { WoW.CastSpell("Phoenix"); return; } if (WoW.PetHealthPercent <= 90 && !WoW.PetHasBuff("Heal Pet") && HealPet && WoW.CanCast("Revive Pet") && !WoW.IsMoving) { WoW.CastSpell("Heal Pet"); return; } if (WoW.PetHealthPercent <= 0 && WoW.IsSpellOnCooldown("Phoenix") && WoW.CanCast("Revive Pet") && !WoW.IsMoving) { WoW.CastSpell("Revive Pet"); return; } if (WoW.TargetIsCasting) { if (WoW.CanCast("Counter Shot") && WoW.TargetIsCastingAndSpellIsInterruptible && WoW.TargetPercentCast >= 60 && !WoW.IsSpellOnCooldown("Counter Shot") && !WoW.PlayerIsChanneling && !WoW.WasLastCasted("Counter Shot")) { WoW.CastSpell("Counter Shot"); return; } } } if (combatRoutine.Type == RotationType.SingleTarget || combatRoutine.Type == RotationType.SingleTargetCleave) { if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.IsInCombat) { if (WoW.CanCast("A Murder of Crows") && WoW.Talent(6) == 1 && WoW.Focus >= 25 && WoW.IsSpellInRange("Cobra Shot") && !WoW.IsSpellOnCooldown("A Murder of Crows")) { WoW.CastSpell("A Murder of Crows"); return; } if (WoW.CanCast("Volley") && !WoW.PlayerHasBuff("Volley") && WoW.Talent(6) == 3) { WoW.CastSpell("Volley"); return; } if (WoW.CanCast("Arcane Torrent") && !WoW.IsSpellOnCooldown("Arcane Torrent") && WoW.PlayerRace == "BloodElf" && WoW.Focus <= 85) { WoW.CastSpell("Arcane Torrent"); return; } if (WoW.CanCast("Berserking") && !WoW.IsSpellOnCooldown("Berserking") && WoW.PlayerRace == "Troll") { WoW.CastSpell("Berserking"); return; } if (WoW.CanCast("Blood Fury") && !WoW.IsSpellOnCooldown("Blood Fury") && WoW.PlayerRace == "Orc") { WoW.CastSpell("Blood Fury"); return; } if (WoW.CanCast("Chimaera Shot") && WoW.Focus < 90 && WoW.IsSpellOnCooldown("Dire Frenzy") && WoW.IsSpellOnCooldown("Kill Command") && WoW.CanCast("Chimaera Shot") && WoW.Talent(2) == 3) { WoW.CastSpell("Chimaera Shot"); return; } if (WoW.CanCast("Kil'jaeden's Burning Wish") && KilJaeden && !WoW.ItemOnCooldown("Kil'jaeden's Burning Wish") && !WoW.IsSpellOnCooldown("Kil'jaeden's Burning Wish")) { WoW.CastSpell("Kil'jaeden's Burning Wish"); return; } // stampede,if=buff.bloodlust.up|buff.bestial_wrath.up|cooldown.bestial_wrath.remains<=2|target.time_to_die<=14 if (WoW.CanCast("Stampede") && WoW.Talent(7) == 1 && WoW.IsSpellInRange("Cobra Shot") && ((WoW.PlayerHasBuff("Bestial Wrath")) || (WoW.SpellCooldownTimeRemaining("Bestial Wrath") <= 2)) && !WoW.PlayerHasBuff("AspectoftheTurtle") && !WoW.IsSpellOnCooldown("Stampede")) { WoW.CastSpell("Stampede"); return; } //dire_beast,if=cooldown.bestial_wrath.remains>3 if (WoW.CanCast("Dire Beast") && WoW.Talent(2) != 2 && !WoW.IsSpellOnCooldown("Dire Beast") && WoW.SpellCooldownTimeRemaining("Bestial Wrath") > 300 && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Dire Beast"); return; } //dire_frenzy,if=(cooldown.bestial_wrath.remains>6&(!equipped.the_mantle_of_command|pet.cat.buff.dire_frenzy.remains<=gcd.max*1.2)) if (WoW.CanCast("Dire Frenzy") && (WoW.SpellCooldownTimeRemaining("Bestial Wrath") > 600 && (WoW.Legendary(1) != 3 || WoW.PetBuffTimeRemaining("Dire Frenzy") <= 70)) && WoW.Talent(2) == 2 && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Dire Frenzy"); return; } //|(charges>=2&focus.deficit>=25+talent.dire_stable.enabled*12)|target.time_to_die<9 if (WoW.CanCast("Dire Frenzy") && WoW.PlayerSpellCharges("Dire Frenzy") >= 2 && WoW.Focus <= 95 && WoW.Talent(2) == 2 && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Dire Frenzy"); return; } if (WoW.CanCast("Dire Frenzy") && WoW.PlayerSpellCharges("Dire Frenzy") >= 2 && WoW.Focus <= 83 && WoW.Talent(2) == 2 && WoW.Talent(1) == 3 && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Dire Frenzy"); return; } //aspect_of_the_wild,if=buff.bestial_wrath.up|target.time_to_die<12 if (WoW.CanCast("Aspect of the Wild") && UseCooldowns && WoW.PlayerHasBuff("Bestial Wrath") && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Aspect of the Wild"); return; } //titans_thunder,if=talent.dire_frenzy.enabled|cooldown.dire_beast.remains>=3|(buff.bestial_wrath.up&pet.dire_beast.active) if (WoW.CanCast("Titan's Thunder") && (WoW.Talent(2) == 2 || (WoW.Talent(2) != 2 && WoW.SpellCooldownTimeRemaining("Dire Beast") > 300) || (WoW.Talent(2) != 2 && WoW.PlayerHasBuff("Bestial Wrath") && WoW.PlayerHasBuff("Dire Beast"))) && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Titan's Thunder"); return; } //bestial_wrath if (WoW.CanCast("Bestial Wrath") && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Bestial Wrath"); return; } //kill_command if (WoW.CanCast("Kill Command") && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Kill Command"); return; } //cobra_shot,if=(cooldown.kill_command.remains>focus.time_to_max&cooldown.bestial_wrath.remains>focus.time_to_max)|(buff.bestial_wrath.up&focus.regen*cooldown.kill_command.remains>30)|target.time_to_die<cooldown.kill_command.remains if (WoW.CanCast("Cobra Shot") && WoW.Focus > 32 && (WoW.SpellCooldownTimeRemaining("Kill Command") > FocusTimetoMax && WoW.SpellCooldownTimeRemaining("Bestial Wrath") > FocusTimetoMax) && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Cobra Shot"); return; } if (WoW.CanCast("Cobra Shot") && WoW.Focus > 32 && WoW.PlayerHasBuff("Bestial Wrath") && ((FocusRegen * WoW.SpellCooldownTimeRemaining("Kill Command")) > 300) && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Cobra Shot"); return; } } } if (combatRoutine.Type == RotationType.AOE) { if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.IsInCombat) { if (WoW.CanCast("Kil'jaeden's Burning Wish") && KilJaeden && !WoW.ItemOnCooldown("Kil'jaeden's Burning Wish") && !WoW.IsSpellOnCooldown("Kil'jaeden's Burning Wish")) { WoW.CastSpell("Kil'jaeden's Burning Wish"); return; } if (WoW.CanCast("Volley") && !WoW.PlayerHasBuff("Volley") && WoW.Talent(6) == 3) { WoW.CastSpell("Volley"); return; } if (WoW.CanCast("Berserking") && !WoW.IsSpellOnCooldown("Berserking") && WoW.PlayerRace == "Troll") { WoW.CastSpell("Berserking"); return; } if (WoW.CanCast("Arcane Torrent") && WoW.PlayerRace == "BloodElf" && WoW.Focus <= 85) { WoW.CastSpell("Arcane Torrent"); return; } if (WoW.CanCast("Blood Fury") && !WoW.IsSpellOnCooldown("Blood Fury") && WoW.PlayerRace == "Orc") { WoW.CastSpell("Blood Fury"); return; } if (WoW.CanCast("Barrage") && WoW.Talent(6) == 2 && !WoW.IsSpellOnCooldown("Barrage") && WoW.IsSpellInRange("Cobra Shot") && WoW.Focus >= 60) { WoW.CastSpell("Barrage"); return; } if (WoW.CanCast("Chimaera Shot") && WoW.Focus < 90 && WoW.IsSpellOnCooldown("Dire Frenzy") && WoW.IsSpellOnCooldown("Kill Command") && WoW.CanCast("Chimaera Shot") && WoW.Talent(2) == 3) { WoW.CastSpell("Chimaera Shot"); return; } if (WoW.CanCast("A Murder of Crows") && WoW.Talent(6) == 1 && WoW.Focus >= 46 - FocusRegen && WoW.PetBuffTimeRemaining("Beast Cleave") > GCD && WoW.IsSpellInRange("Cobra Shot") && !WoW.IsSpellOnCooldown("A Murder of Crows")) { WoW.CastSpell("A Murder of Crows"); return; } if (WoW.CanCast("Multi-Shot") && WoW.Focus >= 40 && !WoW.PetHasBuff("Beast Cleave") && WoW.IsSpellInRange("Multi-Shot")) { WoW.CastSpell("Multi-Shot"); return; } if (WoW.CanCast("Multi-Shot") && WoW.Focus >= 40 && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") <= 70 && WoW.IsSpellInRange("Multi-Shot")) { WoW.CastSpell("Multi-Shot"); return; } // stampede,if=buff.bloodlust.up|buff.bestial_wrath.up|cooldown.bestial_wrath.remains<=2|target.time_to_die<=14 if (WoW.CanCast("Stampede") && WoW.Talent(7) == 1 && WoW.IsSpellInRange("Cobra Shot") && ((WoW.PlayerHasBuff("Bestial Wrath")) || (WoW.SpellCooldownTimeRemaining("Bestial Wrath") <= 2)) && !WoW.PlayerHasBuff("AspectoftheTurtle") && !WoW.IsSpellOnCooldown("Stampede")) { WoW.CastSpell("Stampede"); return; } //dire_beast,if=cooldown.bestial_wrath.remains>3 if (WoW.CanCast("Dire Beast") && WoW.Talent(2) != 2 && !WoW.IsSpellOnCooldown("Dire Beast") && WoW.SpellCooldownTimeRemaining("Bestial Wrath") > 300 && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Dire Beast"); return; } //dire_frenzy,if=(cooldown.bestial_wrath.remains>6&(!equipped.the_mantle_of_command|pet.cat.buff.dire_frenzy.remains<=gcd.max*1.2)) if (WoW.CanCast("Dire Frenzy") && (WoW.SpellCooldownTimeRemaining("Bestial Wrath") > 600 && (WoW.Legendary(1) != 3 || WoW.PetBuffTimeRemaining("Dire Frenzy") <= 70)) && WoW.Talent(2) == 2 && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Dire Frenzy"); return; } //|(charges>=2&focus.deficit>=25+talent.dire_stable.enabled*12)|target.time_to_die<9 if (WoW.CanCast("Dire Frenzy") && WoW.PlayerSpellCharges("Dire Frenzy") >= 2 && WoW.Focus <= 95 && WoW.Talent(2) == 2 && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Dire Frenzy"); return; } if (WoW.CanCast("Dire Frenzy") && WoW.PlayerSpellCharges("Dire Frenzy") >= 2 && WoW.Focus <= 83 && WoW.Talent(2) == 2 && WoW.Talent(1) == 3 && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Dire Frenzy"); return; } //aspect_of_the_wild,if=buff.bestial_wrath.up|target.time_to_die<12 if (WoW.CanCast("Aspect of the Wild") && UseCooldowns && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") > GCD && WoW.PlayerHasBuff("Bestial Wrath") && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Aspect of the Wild"); return; } //titans_thunder,if=talent.dire_frenzy.enabled|cooldown.dire_beast.remains>=3|(buff.bestial_wrath.up&pet.dire_beast.active) if (WoW.CanCast("Titan's Thunder") && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") > GCD && (WoW.Talent(2) == 2 || (WoW.Talent(2) != 2 && WoW.SpellCooldownTimeRemaining("Dire Beast") > 300) || (WoW.Talent(2) != 2 && WoW.PlayerHasBuff("Bestial Wrath") && WoW.PlayerHasBuff("Dire Beast"))) && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Titan's Thunder"); return; } //bestial_wrath if (WoW.CanCast("Bestial Wrath") && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") > GCD && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Bestial Wrath"); return; } //kill_command if (WoW.CanCast("Kill Command") && WoW.Focus >= 70 - FocusRegen && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") > GCD && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Kill Command"); return; } //cobra_shot,if=(cooldown.kill_command.remains>focus.time_to_max&cooldown.bestial_wrath.remains>focus.time_to_max)|(buff.bestial_wrath.up&focus.regen*cooldown.kill_command.remains>30)|target.time_to_die<cooldown.kill_command.remains if (WoW.CanCast("Cobra Shot") && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") > GCD && WoW.Focus > 72 - FocusRegen && (WoW.SpellCooldownTimeRemaining("Kill Command") > FocusTimetoMax && WoW.SpellCooldownTimeRemaining("Bestial Wrath") > FocusTimetoMax) && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Cobra Shot"); return; } if (WoW.CanCast("Cobra Shot") && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") > GCD && WoW.Focus > 72 - FocusRegen && WoW.PlayerHasBuff("Bestial Wrath") && ((FocusRegen * WoW.SpellCooldownTimeRemaining("Kill Command")) > 300) && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Cobra Shot"); return; } } } }
public override void Pulse() { if (combatRoutine.Type == RotationType.SingleTarget) // Do Single Target Stuff here { if (WoW.CanCast("Death") && WoW.HealthPercent < 40 && Death && !WoW.IsSpellOnCooldown("Death") && WoW.HealthPercent != 0) { WoW.CastSpell("Death"); return; } if (WoW.CanCast("Exhil") && WoW.HealthPercent < 30 && Exhil && !WoW.IsSpellOnCooldown("Exhil") && WoW.HealthPercent != 0) { WoW.CastSpell("Exhil"); return; } if (WoW.CanCast("Turtle") && WoW.HealthPercent < 20 && Turtle && !WoW.IsSpellOnCooldown("Turtle") && WoW.HealthPercent != 0) { WoW.CastSpell("Turtle"); return; } if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.IsInCombat) { if (!WoW.HasPet && WoW.CanCast("Wolf")) { WoW.CastSpell("Wolf"); return; } if (WoW.PetHealthPercent <= 0 && WoW.CanCast("Phoenix")) { WoW.CastSpell("Phoenix"); return; } if (WoW.PetHealthPercent <= 0 && WoW.IsSpellOnCooldown("Phoenix") && WoW.CanCast("Revive Pet") && !WoW.IsMoving) { WoW.CastSpell("Revive Pet"); return; } if (WoW.TargetIsCasting && CounterShot && interruptwatch.ElapsedMilliseconds == 0) { interruptwatch.Start(); Log.WritePixelMagic("interruptwatch started..", Color.Black); return; } if (WoW.CanCast("A Murder of Crows") && !WoW.IsSpellOnCooldown("A Murder of Crows") && Crow && WoW.IsSpellInRange("A Murder of Crows") && WoW.Focus >= 30 && WoW.SpellCooldownTimeRemaining("Bestial Wrath") >= 2300) { WoW.CastSpell("A Murder of Crows"); return; } if (WoW.CanCast("A Murder of Crows") && WoW.Focus >= 25 && WoW.IsSpellInRange("A Murder of Crows") && WoW.PlayerHasBuff("Bestial Wrath")) { WoW.CastSpell("A Murder of Crows"); return; } if (WoW.TargetIsCasting && CounterShot && interruptwatch.ElapsedMilliseconds > 800) { if (WoW.CanCast("Counter Shot") && !WoW.IsSpellOnCooldown("Counter Shot") && CounterShot && !WoW.PlayerIsChanneling && !WoW.WasLastCasted("Counter Shot")) { WoW.CastSpell("Counter Shot"); interruptwatch.Reset(); Log.WritePixelMagic("interruptwatch reset!", Color.Black); interruptwatch.Start(); Log.WritePixelMagic("interruptwatch started...", Color.Black); return; } } if (WoW.CanCast("Bestial Wrath") && WoW.Focus >= 119 && WoW.IsSpellInRange("Cobra Shot") && !WoW.PlayerHasBuff("Turtle") && !WoW.IsSpellOnCooldown("Bestial Wrath")) { WoW.CastSpell("Bestial Wrath"); return; } if (WoW.CanCast("Bestial Wrath") && WoW.Focus >= 107 && WoW.IsSpellInRange("Cobra Shot") && !WoW.PlayerHasBuff("Turtle") && !WoW.IsSpellOnCooldown("Bestial Wrath") && WoW.SpellCooldownTimeRemaining("Kill Command") <= 290) { WoW.CastSpell("Bestial Wrath"); return; } if (WoW.CanCast("Aspect of the Wild") && !WoW.IsSpellOnCooldown("Aspect of the Wild") && WoW.PlayerHasBuff("Bestial Wrath") && WoW.PlayerBuffTimeRemaining("Bestial Wrath") >= 1000 && (dpscooldowns || WoW.PlayerHasBuff("Bloodlust") || WoW.PlayerHasBuff("Ancient Hysteria") || WoW.PlayerHasBuff("Netherwinds") || WoW.PlayerHasBuff("Drums") || WoW.PlayerHasBuff("Heroism") || WoW.PlayerHasBuff("Time Warp"))) { WoW.CastSpell("Aspect of the Wild"); WoW.CastSpell("Blood Fury"); return; } if (WoW.CanCast("Kill Command") && WoW.Focus >= 100 && WoW.IsSpellInRange("Kill Command")) { WoW.CastSpell("Kill Command"); return; } if (WoW.CanCast("Dire Beast") && WoW.IsSpellInRange("Dire Beast") && !WoW.IsSpellOnCooldown("Dire Beast") && WoW.SpellCooldownTimeRemaining("Bestial Wrath") >= 390) { WoW.CastSpell("Dire Beast"); if (WoW.CanCast("Titan's Thunder") && !WoW.IsSpellOnCooldown("Titan's Thunder")) { WoW.CastSpell("Titan's Thunder"); return; } } if (WoW.CanCast("Kill Command") && WoW.Focus >= 30 && WoW.IsSpellInRange("Kill Command")) { WoW.CastSpell("Kill Command"); return; } if (WoW.CanCast("Kill Command") && WoW.Focus >= 26 && WoW.IsSpellInRange("Kill Command") && WoW.PlayerHasBuff("Bestial Wrath")) { WoW.CastSpell("Kill Command"); return; } if (WoW.CanCast("Cobra Shot") && (WoW.Focus >= 28) && WoW.IsSpellInRange("Cobra Shot") && WoW.PlayerHasBuff("Bestial Wrath") && (WoW.SpellCooldownTimeRemaining("Kill Command") >= 300)) { WoW.CastSpell("Cobra Shot"); return; } if (WoW.CanCast("Cobra Shot") && (WoW.Focus >= 91) && WoW.IsSpellInRange("Cobra Shot") && (WoW.SpellCooldownTimeRemaining("Bestial Wrath") >= 100) && (WoW.SpellCooldownTimeRemaining("Kill Command") >= 150) && (WoW.SpellCooldownTimeRemaining("A Murder of Crows") >= 150)) { WoW.CastSpell("Cobra Shot"); return; } if (WoW.CanCast("Cobra Shot") && (WoW.Focus >= 105) && WoW.IsSpellInRange("Cobra Shot") && WoW.SpellCooldownTimeRemaining("Kill Command") >= 140) { WoW.CastSpell("Cobra Shot"); return; } } } if (combatRoutine.Type == RotationType.AOE) { if (WoW.CanCast("Death") && WoW.HealthPercent < 40 && Death && !WoW.IsSpellOnCooldown("Death") && WoW.HealthPercent != 0) { WoW.CastSpell("Death"); return; } if (WoW.CanCast("Exhil") && WoW.HealthPercent < 30 && Exhil && !WoW.IsSpellOnCooldown("Exhil") && WoW.HealthPercent != 0) { WoW.CastSpell("Exhil"); return; } if (WoW.CanCast("Turtle") && WoW.HealthPercent < 20 && Turtle && !WoW.IsSpellOnCooldown("Turtle") && WoW.HealthPercent != 0) { WoW.CastSpell("Turtle"); return; } if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.IsInCombat) { if (!WoW.HasPet && WoW.CanCast("Wolf")) { WoW.CastSpell("Wolf"); return; } if (WoW.PetHealthPercent <= 0 && WoW.CanCast("Phoenix")) { WoW.CastSpell("Phoenix"); return; } if (WoW.PetHealthPercent <= 0 && WoW.IsSpellOnCooldown("Phoenix") && WoW.CanCast("Revive Pet") && !WoW.IsMoving) { WoW.CastSpell("Revive Pet"); return; } if (WoW.TargetIsCasting && CounterShot && interruptwatch.ElapsedMilliseconds == 0) { interruptwatch.Start(); Log.WritePixelMagic("interruptwatch started..", Color.Black); return; } if (WoW.TargetIsCasting && CounterShot && interruptwatch.ElapsedMilliseconds > 800) { if (WoW.CanCast("Counter Shot") && !WoW.IsSpellOnCooldown("Counter Shot") && CounterShot && !WoW.PlayerIsChanneling && !WoW.WasLastCasted("Counter Shot")) { WoW.CastSpell("Counter Shot"); interruptwatch.Reset(); Log.WritePixelMagic("interruptwatch reset!", Color.Black); interruptwatch.Start(); Log.WritePixelMagic("interruptwatch started...", Color.Black); return; } } if (WoW.CanCast("Multi-Shot") && (WoW.Focus >= 40) && !WoW.PetHasBuff("Beast Cleave") && WoW.IsSpellInRange("Multi-Shot")) { WoW.CastSpell("Multi-Shot"); return; } if (WoW.CanCast("Multi-Shot") && (WoW.Focus >= 34) && WoW.PlayerHasBuff("Bestial Wrath") && WoW.PetBuffTimeRemaining("Beast Cleave") <= 70 && WoW.IsSpellInRange("Multi-Shot")) { WoW.CastSpell("Multi-Shot"); return; } if (WoW.CanCast("Multi-Shot") && (WoW.Focus >= 40) && WoW.PetBuffTimeRemaining("Beast Cleave") <= 70 && WoW.IsSpellInRange("Multi-Shot") && !WoW.CanCast("Bestial Wrath")) { WoW.CastSpell("Multi-Shot"); return; } if (WoW.CanCast("A Murder of Crows") && !WoW.IsSpellOnCooldown("A Murder of Crows") && Crow && WoW.IsSpellInRange("A Murder of Crows") && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") >= 1 && WoW.Focus >= 50 && !(DetectKeyPress.GetKeyState(0x5A) < 0) && !(WoW.SpellCooldownTimeRemaining("Bestial Wrath") <= 2300)) { WoW.CastSpell("A Murder of Crows"); return; } if (WoW.CanCast("Barrage") && Barrage && WoW.IsSpellInRange("Barrage") && WoW.Focus >= 60) { WoW.CastSpell("Barrage"); return; } if (WoW.CanCast("Bestial Wrath") && WoW.IsSpellInRange("Cobra Shot") && !WoW.PlayerHasBuff("Turtle") && !WoW.IsSpellOnCooldown("Bestial Wrath")) { WoW.CastSpell("Bestial Wrath"); return; } if (WoW.CanCast("Aspect of the Wild") && !WoW.IsSpellOnCooldown("Aspect of the Wild") && WoW.PlayerHasBuff("Bestial Wrath") && WoW.PlayerBuffTimeRemaining("Bestial Wrath") >= 1000 && (dpscooldowns || WoW.PlayerHasBuff("Bloodlust") || WoW.PlayerHasBuff("Ancient Hysteria") || WoW.PlayerHasBuff("Netherwinds") || WoW.PlayerHasBuff("Drums") || WoW.PlayerHasBuff("Heroism") || WoW.PlayerHasBuff("Time Warp"))) { WoW.CastSpell("Aspect of the Wild"); WoW.CastSpell("Blood Fury"); return; } if (WoW.CanCast("Dire Beast") && WoW.IsSpellInRange("Dire Beast") && !WoW.IsSpellOnCooldown("Dire Beast") && !(WoW.SpellCooldownTimeRemaining("Bestial Wrath") <= 390)) { WoW.CastSpell("Dire Beast"); if (WoW.CanCast("Titan's Thunder") && !WoW.IsSpellOnCooldown("Titan's Thunder")) { WoW.CastSpell("Titan's Thunder"); return; } } //Z Key Multi Shot Spam if (WoW.CanCast("Multi-Shot") && (WoW.Focus >= 40) && WoW.IsSpellInRange("Multi-Shot") && (DetectKeyPress.GetKeyState(0x5A) < 0)) //Z key press { WoW.CastSpell("Multi-Shot"); return; } if (WoW.CanCast("Kill Command") && WoW.Focus >= 55 && WoW.IsSpellInRange("Kill Command") && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") >= 130 && !(DetectKeyPress.GetKeyState(0x5A) < 0) && !FourTarget && !(WoW.SpellCooldownTimeRemaining("Bestial Wrath") <= 200)) { WoW.CastSpell("Kill Command"); return; } if (WoW.CanCast("Kill Command") && WoW.Focus >= 30 && !FourTarget && WoW.IsSpellInRange("Kill Command") && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") >= 130 && (WoW.PlayerHasBuff("Aspect of the Wild") || WoW.PlayerHasBuff("Bloodlust") || WoW.PlayerHasBuff("Ancient Hysteria") || WoW.PlayerHasBuff("Drums") || WoW.PlayerHasBuff("Netherwinds"))) { WoW.CastSpell("Kill Command"); return; } if (WoW.CanCast("Cobra Shot") && (WoW.Focus >= 40) && WoW.IsSpellInRange("Cobra Shot") && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") >= 130 && WoW.PlayerHasBuff("Bestial Wrath") && (WoW.SpellCooldownTimeRemaining("Kill Command") >= 300)) { WoW.CastSpell("Cobra Shot"); return; } if (WoW.CanCast("Cobra Shot") && (WoW.Focus >= 110) && WoW.IsSpellInRange("Cobra Shot") && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") >= 130 && WoW.SpellCooldownTimeRemaining("Bestial Wrath") >= 100) { WoW.CastSpell("Cobra Shot"); return; } } } if (combatRoutine.Type == RotationType.SingleTargetCleave) { if (WoW.CanCast("Death") && WoW.HealthPercent < 40 && Death && !WoW.IsSpellOnCooldown("Death") && WoW.HealthPercent != 0) { WoW.CastSpell("Death"); return; } if (WoW.CanCast("Exhil") && WoW.HealthPercent < 30 && Exhil && !WoW.IsSpellOnCooldown("Exhil") && WoW.HealthPercent != 0) { WoW.CastSpell("Exhil"); return; } if (WoW.CanCast("Turtle") && WoW.HealthPercent < 20 && Turtle && !WoW.IsSpellOnCooldown("Turtle") && WoW.HealthPercent != 0) { WoW.CastSpell("Turtle"); return; } if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.IsInCombat) { if (!WoW.HasPet && WoW.CanCast("Wolf")) { WoW.CastSpell("Wolf"); return; } if (WoW.PetHealthPercent <= 0 && WoW.CanCast("Phoenix")) { WoW.CastSpell("Phoenix"); return; } if (WoW.PetHealthPercent <= 0 && WoW.IsSpellOnCooldown("Phoenix") && WoW.CanCast("Revive Pet") && !WoW.IsMoving) { WoW.CastSpell("Revive Pet"); return; } if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.IsInCombat && multishotwatch.ElapsedMilliseconds == 0) { multishotwatch.Start(); Log.WritePixelMagic("multishotwatch started..", Color.Black); return; } if (WoW.TargetIsCasting && CounterShot && interruptwatch.ElapsedMilliseconds == 0) { interruptwatch.Start(); Log.WritePixelMagic("interruptwatch started..", Color.Black); return; } if ((multishotwatch.ElapsedMilliseconds > 3000) && !WoW.IsSpellOnCooldown("Multi-Shot") && !WoW.WasLastCasted("Multi-Shot") && WoW.Focus >= 40) { WoW.CastSpell("Multi-Shot"); multishotwatch.Reset(); multishotwatch.Start(); return; } if (WoW.TargetIsCasting && CounterShot && interruptwatch.ElapsedMilliseconds > 800) { if (WoW.CanCast("Counter Shot") && !WoW.IsSpellOnCooldown("Counter Shot") && CounterShot && !WoW.PlayerIsChanneling && !WoW.WasLastCasted("Counter Shot")) { WoW.CastSpell("Counter Shot"); interruptwatch.Reset(); Log.WritePixelMagic("interruptwatch reset!", Color.Black); interruptwatch.Start(); Log.WritePixelMagic("interruptwatch started...", Color.Black); return; } } if (WoW.CanCast("A Murder of Crows") && !WoW.IsSpellOnCooldown("A Murder of Crows") && Crow && WoW.IsSpellInRange("A Murder of Crows") && WoW.Focus >= 30 && !(WoW.SpellCooldownTimeRemaining("Bestial Wrath") <= 10)) { WoW.CastSpell("A Murder of Crows"); return; } if (WoW.CanCast("Barrage") && Barrage && WoW.IsSpellInRange("Barrage") && WoW.Focus >= 60) { WoW.CastSpell("Barrage"); return; } if (WoW.CanCast("Bestial Wrath") && WoW.IsSpellInRange("Cobra Shot") && !WoW.PlayerHasBuff("Turtle") && !WoW.IsSpellOnCooldown("Bestial Wrath")) { WoW.CastSpell("Bestial Wrath"); return; } if (WoW.CanCast("Aspect of the Wild") && !WoW.IsSpellOnCooldown("Aspect of the Wild") && WoW.PlayerHasBuff("Bestial Wrath") && WoW.PlayerBuffTimeRemaining("Bestial Wrath") >= 10 && (dpscooldowns || WoW.PlayerHasBuff("Bloodlust") || WoW.PlayerHasBuff("Ancient Hysteria") || WoW.PlayerHasBuff("Netherwinds") || WoW.PlayerHasBuff("Drums") || WoW.PlayerHasBuff("Heroism") || WoW.PlayerHasBuff("Time Warp"))) { WoW.CastSpell("Aspect of the Wild"); WoW.CastSpell("Blood Fury"); return; } if (WoW.CanCast("Dire Beast") && WoW.IsSpellInRange("Dire Beast") && !WoW.IsSpellOnCooldown("Dire Beast") && !(WoW.SpellCooldownTimeRemaining("Bestial Wrath") <= 3)) { WoW.CastSpell("Dire Beast"); if (WoW.CanCast("Titan's Thunder") && !WoW.IsSpellOnCooldown("Titan's Thunder")) { WoW.CastSpell("Titan's Thunder"); return; } } if (WoW.CanCast("Kill Command") && WoW.Focus >= 30 && WoW.IsSpellInRange("Kill Command") && !(WoW.SpellCooldownTimeRemaining("Bestial Wrath") <= 1)) { WoW.CastSpell("Kill Command"); return; } if (WoW.CanCast("Multi-Shot") && (WoW.Focus >= 40) && !WoW.PetHasBuff("Beast Cleave") && WoW.IsSpellInRange("Multi-Shot")) { WoW.CastSpell("Multi-Shot"); return; } if (WoW.CanCast("Multi-Shot") && (WoW.Focus >= 34) && WoW.PlayerHasBuff("Bestial Wrath") && WoW.PetBuffTimeRemaining("Beast Cleave") <= 1 && WoW.IsSpellInRange("Multi-Shot")) { WoW.CastSpell("Multi-Shot"); return; } if (WoW.CanCast("Multi-Shot") && (WoW.Focus >= 40) && WoW.PetBuffTimeRemaining("Beast Cleave") <= 1 && WoW.IsSpellInRange("Multi-Shot") && !WoW.CanCast("Bestial Wrath")) { WoW.CastSpell("Multi-Shot"); return; } if (WoW.CanCast("Cobra Shot") && (WoW.Focus >= 34) && WoW.IsSpellInRange("Cobra Shot") && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") >= 1 && WoW.PlayerHasBuff("Bestial Wrath") && (WoW.SpellCooldownTimeRemaining("Kill Command") >= 3)) { WoW.CastSpell("Cobra Shot"); return; } if (WoW.CanCast("Cobra Shot") && (WoW.Focus >= 110) && WoW.IsSpellInRange("Cobra Shot") && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") >= 1 && WoW.SpellCooldownTimeRemaining("Bestial Wrath") >= 1) { WoW.CastSpell("Cobra Shot"); return; } } } }
public override void Pulse() // Updated for Legion (tested and working for single target) { AddonCreationPulse(); PlayerStats(); AoEStuff(); if (WoW.IsInCombat && !WoW.PlayerHasBuff("Mount")) { SelectRotation(); } //Dark Pact if (WoW.CanCast("Dark Pact") && CharInfo.T5 == 3 && WoW.HealthPercent <= 30 && !WoW.PlayerHasBuff("Mount")) { WoW.CastSpell("Dark Pact"); return; } //Shadowfury if (DetectKeyPress.GetKeyState(DetectKeyPress.Alt) < 0 && CharInfo.T3 == 3 && !WoW.IsMoving && WoW.CanCast("Shadowfury")) { WoW.CastSpell("Shadowfury"); return; } if (UseCooldowns) { if (WoW.HasTarget && WoW.TargetIsEnemy && !WoW.PlayerIsChanneling && WoW.IsInCombat && !WoW.PlayerIsCasting && !WoW.PlayerHasBuff("Mount")) { //Doomguard if (WoW.CanCast("Doomguard") && (CharInfo.T6 == 0 || CharInfo.T6 == 2 || CharInfo.T6 == 3) && WoW.CurrentSoulShards >= 1 && WoW.IsSpellInRange("Doom")) { WoW.CastSpell("Doomguard"); return; } //Grimoire of Service if (WoW.CanCast("Grimoire: Felguard") && CharInfo.T6 == 2 && WoW.CurrentSoulShards >= 1 && WoW.IsSpellInRange("Doom")) { WoW.CastSpell("Grimoire: Felguard"); return; } //Soul Harvest if (WoW.CanCast("Soul Harvest") && CharInfo.T4 == 3 && !WoW.IsMoving && WoW.IsSpellInRange("Doom") && (WoW.PlayerHasBuff("Bloodlust") || WoW.PlayerHasBuff("Time Warp") || WoW.PlayerHasBuff("Netherwinds") || WoW.PlayerHasBuff("Drums of War") || WoW.PlayerHasBuff("Heroism"))) { WoW.CastSpell("Soul Harvest"); return; } } } if (combatRoutine.Type == RotationType.SingleTarget) // Do Single Target Stuff here { if (WoW.HasTarget && WoW.TargetIsEnemy && !WoW.PlayerIsChanneling && WoW.IsInCombat && !WoW.PlayerIsCasting && !WoW.PlayerHasBuff("Mount")) { if ((!WoW.TargetHasDebuff("Doom") || WoW.TargetDebuffTimeRemaining("Doom") <= 1.5) && WoW.CanCast("Doom") && WoW.IsSpellInRange("Doom")) { WoW.CastSpell("Doom"); return; } if (WoW.CanCast("Darkglare") && CharInfo.T7 == 1 && WoW.CurrentSoulShards >= 1 && WoW.IsSpellInRange("Doom")) { WoW.CastSpell("Darkglare"); return; } if (WoW.CanCast("Call Dreadstalkers") && (WoW.CurrentSoulShards >= 2 || WoW.TargetHasDebuff("Demonic Calling")) && WoW.IsSpellInRange("Doom") && !WoW.IsMoving) { WoW.CastSpell("Call Dreadstalkers"); return; } if (WoW.CanCast("Hand of Guldan") && WoW.CurrentSoulShards >= 4 && WoW.IsSpellInRange("Doom") && !WoW.IsMoving) { WoW.CastSpell("Hand of Guldan"); return; } if (WoW.CanCast("Demonic Empowerment") && !WoW.IsMoving && !WoW.WasLastCasted("Demonic Empowerment") && (!WoW.PetHasBuff("Demonic Empowerment") || WoW.PetBuffTimeRemaining("Demonic Empowerment") <= 1.5 || WoW.WasLastCasted("Call Dreadstalkers") || WoW.WasLastCasted("Grimoire: Felguard") || WoW.WasLastCasted("Doomguard") || WoW.WasLastCasted("Hand of Guldan"))) { WoW.CastSpell("Demonic Empowerment"); Thread.Sleep(1000); return; } if (WoW.CanCast("Talkiels Consumption") && WoW.PetHasBuff("Demonic Empowerment") && WoW.PetBuffTimeRemaining("Demonic Empowerment") >= 2 && WoW.WildImpsCount >= 1 && WoW.DreadstalkersCount >= 1 && WoW.IsSpellInRange("Doom") && !WoW.IsMoving) { WoW.CastSpell("Talkiels Consumption"); return; } if (WoW.CanCast("Felstorm") && WoW.PetHasBuff("Demonic Empowerment") && WoW.PetBuffTimeRemaining("Demonic Empowerment") >= 6 && WoW.IsSpellInRange("Doom")) { WoW.CastSpell("Felstorm"); return; } if (WoW.CanCast("Shadowflame") && CharInfo.T1 == 2 && !WoW.TargetHasDebuff("Shadowflame") && WoW.CanCast("Shadowflame") && WoW.IsSpellInRange("Doom")) { WoW.CastSpell("Shadowflame"); return; } if (WoW.CanCast("Life Tap") && WoW.Mana < 60 && WoW.HealthPercent > 50) { WoW.CastSpell("Life Tap"); return; } if (WoW.CanCast("Demonwrath") && WoW.Mana > 60 && WoW.IsMoving) { WoW.CastSpell("Demonwrath"); return; } if ((WoW.CanCast("Shadow Bolt") || WoW.CanCast("Demonbolt")) && WoW.IsSpellInRange("Doom") && !WoW.IsMoving) { WoW.CastSpell("Shadow Bolt"); WoW.CastSpell("Demonbolt"); return; } } } if (combatRoutine.Type == RotationType.AOE) { if (WoW.HasTarget && WoW.TargetIsEnemy && !WoW.PlayerIsChanneling && WoW.IsInCombat && !WoW.PlayerIsCasting && !WoW.PlayerHasBuff("Mount")) { if (WoW.CanCast("Hand of Guldan") && WoW.CurrentSoulShards >= 4 && WoW.IsSpellInRange("Doom") && !WoW.IsMoving) { WoW.CastSpell("Hand of Guldan"); return; } if (WoW.CanCast("Implosion") && CharInfo.T2 == 3 && WoW.WildImpsCount >= 1 && WoW.IsSpellInRange("Doom")) { WoW.CastSpell("Implosion"); return; } if (WoW.CanCast("Darkglare") && CharInfo.T7 == 1 && WoW.CurrentSoulShards >= 1 && WoW.IsSpellInRange("Doom")) { WoW.CastSpell("Darkglare"); return; } if (WoW.CanCast("Demonic Empowerment") && WoW.CanCast("Felstorm") && !WoW.IsMoving && !WoW.WasLastCasted("Demonic Empowerment") && (!WoW.PetHasBuff("Demonic Empowerment") || WoW.PetBuffTimeRemaining("Demonic Empowerment") <= 6)) { WoW.CastSpell("Demonic Empowerment"); Thread.Sleep(2000); return; } if (WoW.CanCast("Felstorm") && WoW.PetHasBuff("Demonic Empowerment") && WoW.PetBuffTimeRemaining("Demonic Empowerment") >= 6 && WoW.IsSpellInRange("Doom")) { WoW.CastSpell("Felstorm"); return; } if (WoW.CanCast("Life Tap") && WoW.Mana < 60 && WoW.HealthPercent > 50) { WoW.CastSpell("Life Tap"); return; } if (WoW.CanCast("Demonwrath") && WoW.Mana > 60) { WoW.CastSpell("Demonwrath"); return; } } } if (combatRoutine.Type == RotationType.SingleTargetCleave) { // Do Single Target Cleave stuff here if applicable else ignore this one } }
public override void Pulse() { if (combatRoutine.Type == RotationType.SingleTarget) { if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.IsInCombat) { if (WoW.CanCast("FeignDeath") && WoW.HealthPercent < 30 && FeignDeath && !WoW.IsSpellOnCooldown("FeignDeath") && WoW.HealthPercent != 0) { WoW.CastSpell("FeignDeath"); return; } if (WoW.CanCast("Exhilaration") && WoW.HealthPercent < 40 && Exhilaration && !WoW.IsSpellOnCooldown("Exhilaration") && WoW.HealthPercent != 0) { WoW.CastSpell("Exhilaration"); return; } if (WoW.CanCast("AspectoftheTurtle") && WoW.HealthPercent < 20 && AspectoftheTurtle && !WoW.IsSpellOnCooldown("AspectoftheTurtle") && WoW.HealthPercent != 0) { WoW.CastSpell("AspectoftheTurtle"); return; } if (WoW.CanCast("Ancient Healing Potion") && WoW.HealthPercent < 20 && !WoW.IsSpellOnCooldown("Ancient Healing Potion") && WoW.HealthPercent != 0) { WoW.CastSpell("Ancient Healing Potion"); return; } if (WoW.CanCast("Silkweave Bandage") && WoW.HealthPercent < 40 && WoW.PlayerHasBuff("Turtle") && !WoW.IsMoving && !WoW.PlayerHasDebuff("Bandaged") && WoW.HealthPercent != 0) { WoW.CastSpell("Silkweave Bandage"); return; } if (!WoW.HasPet && WoW.CanCast("Wolf")) { WoW.CastSpell("Wolf"); return; } /*if (WoW.PetHealthPercent <= 0 && WoW.CanCast("Phoenix")) * { * WoW.CastSpell("Phoenix") ; * return; * } */ if (WoW.PetHealthPercent <= 90 && HealPet && !WoW.PetHasBuff("Heal Pet") && WoW.CanCast("Revive Pet") && !WoW.IsMoving) { WoW.CastSpell("Heal Pet"); return; } if (WoW.PetHealthPercent <= 0 && WoW.IsSpellOnCooldown("Phoenix") && WoW.CanCast("Revive Pet") && !WoW.IsMoving) { WoW.CastSpell("Revive Pet"); return; } if (WoW.CanCast("A Murder of Crows") && WoW.Talent(6) == 1 && WoW.Focus >= 25 && WoW.IsSpellInRange("Cobra Shot") && !WoW.IsSpellOnCooldown("A Murder of Crows")) { WoW.CastSpell("A Murder of Crows"); return; } if (WoW.TargetIsCasting) { if (WoW.CanCast("Counter Shot") && WoW.TargetIsCastingAndSpellIsInterruptible && WoW.TargetPercentCast >= 60 && !WoW.IsSpellOnCooldown("Counter Shot") && !WoW.PlayerIsChanneling && !WoW.WasLastCasted("Counter Shot")) { WoW.CastSpell("Counter Shot"); return; } } if (WoW.CanCast("Volley") && !WoW.PlayerHasBuff("Volley") && WoW.Talent(6) == 3) { WoW.CastSpell("Volley"); return; } if (WoW.CanCast("Arcane Torrent") && !WoW.IsSpellOnCooldown("Arcane Torrent") && WoW.PlayerRace == "BloodElf" && WoW.Focus <= 85) { WoW.CastSpell("Arcane Torrent"); return; } if (WoW.CanCast("Blood Fury") && !WoW.IsSpellOnCooldown("Blood Fury") && WoW.PlayerRace == "Orc") { WoW.CastSpell("Blood Fury"); return; } if (WoW.CanCast("Kil'jaeden's Burning Wish") && KilJaeden && !WoW.ItemOnCooldown("Kil'jaeden's Burning Wish") && !WoW.IsSpellOnCooldown("Kil'jaeden's Burning Wish")) { WoW.CastSpell("Kil'jaeden's Burning Wish"); return; } if (WoW.CanCast("Bestial Wrath") && WoW.Focus >= 80 && WoW.IsSpellInRange("Cobra Shot") && !WoW.PlayerHasBuff("AspectoftheTurtle") && WoW.Talent(2) == 2 && !WoW.IsSpellOnCooldown("Dire Frenzy")) { WoW.CastSpell("Bestial Wrath"); return; } if (WoW.CanCast("Bestial Wrath") && WoW.Focus >= 115 && WoW.IsSpellInRange("Cobra Shot") && WoW.IsSpellOnCooldown("Kill Command") && !WoW.PlayerHasBuff("AspectoftheTurtle")) { WoW.CastSpell("Bestial Wrath"); return; } if (WoW.CanCast("Bestial Wrath") && WoW.Focus >= 90 && WoW.IsSpellInRange("Cobra Shot") && !WoW.IsSpellOnCooldown("Kill Command") && !WoW.PlayerHasBuff("AspectoftheTurtle")) { WoW.CastSpell("Bestial Wrath"); return; } if (WoW.CanCast("Aspect of the Wild") && !WoW.IsSpellOnCooldown("Aspect of the Wild") && UseCooldowns && WoW.PlayerHasBuff("Bestial Wrath")) { WoW.CastSpell("Aspect of the Wild"); return; } if (WoW.CanCast("Dire Beast") && WoW.IsSpellInRange("Cobra Shot") && (WoW.Talent(2) == 1 || WoW.Talent(2) == 3) && !WoW.IsSpellOnCooldown("Dire Beast") && WoW.SpellCooldownTimeRemaining("Bestial Wrath") >= 300) { WoW.CastSpell("Dire Beast"); if (WoW.CanCast("Titan's Thunder") && !WoW.IsSpellOnCooldown("Titan's Thunder")) { WoW.CastSpell("Titan's Thunder"); return; } } if (WoW.CanCast("Chimaera Shot") && WoW.Focus < 90 && WoW.IsSpellOnCooldown("Dire Frenzy") && WoW.IsSpellOnCooldown("Kill Command") && WoW.CanCast("Chimaera Shot") && WoW.Talent(2) == 3) { WoW.CastSpell("Chimaera Shot"); return; } if (WoW.CanCast("Titan's Thunder") && !WoW.IsSpellOnCooldown("Titan's Thunder") && !WoW.IsSpellOnCooldown("Dire Frenzy") && WoW.CanCast("Dire Frenzy") && WoW.Talent(2) == 2) { WoW.CastSpell("Titan's Thunder"); WoW.CastSpell("Dire Frenzy"); return; } if (WoW.CanCast("Dire Frenzy") && WoW.IsSpellInRange("Cobra Shot") && WoW.IsSpellOnCooldown("Bestial Wrath") && WoW.PlayerSpellCharges("Dire Frenzy") >= 2 && WoW.SpellCooldownTimeRemaining("Bestial Wrath") >= 300 && WoW.Talent(2) == 2) { WoW.CastSpell("Dire Frenzy"); return; } if (WoW.CanCast("Dire Frenzy") && WoW.IsSpellInRange("Cobra Shot") && WoW.IsSpellOnCooldown("Bestial Wrath") && ((WoW.PetHasBuff("Dire Frenzy") && WoW.PetBuffTimeRemaining("Dire Frenzy") <= 2) || !WoW.PetHasBuff("Dire Frenzy")) && WoW.SpellCooldownTimeRemaining("Bestial Wrath") >= 300 && WoW.Talent(2) == 2) { WoW.CastSpell("Dire Frenzy"); return; } if (WoW.CanCast("Kill Command") && WoW.Focus >= 30 && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Kill Command"); return; } if (WoW.CanCast("Cobra Shot") && (WoW.Focus >= 50) && WoW.IsSpellInRange("Cobra Shot") && WoW.PlayerHasBuff("Bestial Wrath") && WoW.IsSpellOnCooldown("Kill Command") && WoW.SpellCooldownTimeRemaining("Kill Command") > 140) { WoW.CastSpell("Cobra Shot"); return; } if (WoW.CanCast("Cobra Shot") && (WoW.Focus >= 32) && WoW.IsSpellInRange("Cobra Shot") && WoW.PlayerHasBuff("Bestial Wrath") && WoW.PlayerBuffTimeRemaining("Bestial Wrath") <= 200 && WoW.IsSpellOnCooldown("Kill Command") && WoW.SpellCooldownTimeRemaining("Kill Command") > 140) { WoW.CastSpell("Cobra Shot"); return; } if (WoW.CanCast("Cobra Shot") && (WoW.Focus >= 90) && WoW.IsSpellInRange("Cobra Shot") && WoW.IsSpellOnCooldown("Bestial Wrath") && WoW.SpellCooldownTimeRemaining("Bestial Wrath") >= 140) { WoW.CastSpell("Cobra Shot"); return; } } } if (combatRoutine.Type == RotationType.AOE) { if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.IsInCombat) { if (WoW.CanCast("FeignDeath") && WoW.HealthPercent < 30 && FeignDeath && !WoW.IsSpellOnCooldown("FeignDeath") && WoW.HealthPercent != 0) { WoW.CastSpell("FeignDeath"); return; } if (WoW.CanCast("Exhilaration") && WoW.HealthPercent < 40 && Exhilaration && !WoW.IsSpellOnCooldown("Exhilaration") && WoW.HealthPercent != 0) { WoW.CastSpell("Exhilaration"); return; } if (WoW.CanCast("AspectoftheTurtle") && WoW.HealthPercent < 20 && AspectoftheTurtle && !WoW.IsSpellOnCooldown("AspectoftheTurtle") && WoW.HealthPercent != 0) { WoW.CastSpell("AspectoftheTurtle"); return; } if (WoW.CanCast("Ancient Healing Potion") && WoW.HealthPercent < 20 && !WoW.IsSpellOnCooldown("Ancient Healing Potion") && WoW.HealthPercent != 0) { WoW.CastSpell("Ancient Healing Potion"); return; } if (WoW.CanCast("Silkweave Bandage") && WoW.HealthPercent < 40 && WoW.PlayerHasBuff("Turtle") && !WoW.IsMoving && !WoW.PlayerHasDebuff("Bandaged")) { WoW.CastSpell("Silkweave Bandage"); return; } if (!WoW.HasPet && WoW.CanCast("Wolf")) { WoW.CastSpell("Wolf"); return; } if (WoW.PetHealthPercent <= 0 && WoW.CanCast("Phoenix")) { WoW.CastSpell("Phoenix"); return; } if (WoW.PetHealthPercent <= 90 && !WoW.PetHasBuff("Heal Pet") && HealPet && WoW.CanCast("Revive Pet") && !WoW.IsMoving) { WoW.CastSpell("Heal Pet"); return; } if (WoW.PetHealthPercent <= 0 && WoW.IsSpellOnCooldown("Phoenix") && WoW.CanCast("Revive Pet") && !WoW.IsMoving) { WoW.CastSpell("Revive Pet"); return; } if (WoW.TargetIsCasting) { if (WoW.CanCast("Counter Shot") && WoW.TargetIsCastingAndSpellIsInterruptible && WoW.TargetPercentCast >= 60 && !WoW.IsSpellOnCooldown("Counter Shot") && !WoW.PlayerIsChanneling && !WoW.WasLastCasted("Counter Shot")) { WoW.CastSpell("Counter Shot"); return; } } if (WoW.CanCast("Kil'jaeden's Burning Wish") && KilJaeden && !WoW.ItemOnCooldown("Kil'jaeden's Burning Wish") && !WoW.IsSpellOnCooldown("Kil'jaeden's Burning Wish")) { WoW.CastSpell("Kil'jaeden's Burning Wish"); return; } if (WoW.CanCast("Volley") && !WoW.PlayerHasBuff("Volley") && WoW.Talent(6) == 3) { WoW.CastSpell("Volley"); return; } if (WoW.CanCast("Arcane Torrent") && WoW.PlayerRace == "BloodElf" && WoW.Focus <= 85) { WoW.CastSpell("Arcane Torrent"); return; } if (WoW.CanCast("Blood Fury") && !WoW.IsSpellOnCooldown("Blood Fury") && WoW.PlayerRace == "Orc") { WoW.CastSpell("Blood Fury"); return; } if (WoW.CanCast("Barrage") && WoW.Talent(6) == 2 && !WoW.IsSpellOnCooldown("Barrage") && WoW.IsSpellInRange("Cobra Shot") && WoW.Focus >= 60) { WoW.CastSpell("Barrage"); return; } if (WoW.CanCast("Chimaera Shot") && WoW.Focus < 90 && WoW.IsSpellOnCooldown("Dire Frenzy") && WoW.IsSpellOnCooldown("Kill Command") && WoW.CanCast("Chimaera Shot") && WoW.Talent(2) == 3) { WoW.CastSpell("Chimaera Shot"); return; } if (WoW.CanCast("A Murder of Crows") && WoW.Talent(6) == 1 && WoW.Focus >= 25 && WoW.IsSpellInRange("Cobra Shot") && !WoW.IsSpellOnCooldown("A Murder of Crows")) { WoW.CastSpell("A Murder of Crows"); return; } if (WoW.CanCast("Bestial Wrath") && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") >= 140 && WoW.IsSpellInRange("Cobra Shot") && !WoW.PlayerHasBuff("AspectoftheTurtle") && !WoW.IsSpellOnCooldown("Bestial Wrath")) { WoW.CastSpell("Bestial Wrath"); return; } if (WoW.CanCast("Aspect of the Wild") && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") >= 140 && !WoW.IsSpellOnCooldown("Aspect of the Wild") && UseCooldowns && WoW.PlayerHasBuff("Bestial Wrath")) { WoW.CastSpell("Aspect of the Wild"); return; } if (WoW.CanCast("Multi-Shot") && (WoW.Focus >= 40) && WoW.IsSpellInRange("Cobra Shot") && (DetectKeyPress.GetKeyState(0x5A) < 0)) { WoW.CastSpell("Multi-Shot"); return; } if (WoW.CanCast("Multi-Shot") && WoW.Focus >= 40 && !WoW.PetHasBuff("Beast Cleave") && WoW.IsSpellInRange("Multi-Shot")) { WoW.CastSpell("Multi-Shot"); return; } if (WoW.CanCast("Multi-Shot") && WoW.Focus >= 40 && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") <= 80 && WoW.IsSpellInRange("Multi-Shot")) { WoW.CastSpell("Multi-Shot"); return; } if (WoW.CanCast("Dire Beast") && WoW.IsSpellInRange("Dire Beast") && WoW.PetHasBuff("Beast Cleave") && (WoW.Talent(2) == 1 || WoW.Talent(2) == 3) && WoW.PetBuffTimeRemaining("Beast Cleave") >= 140 && !WoW.IsSpellOnCooldown("Dire Beast") && WoW.SpellCooldownTimeRemaining("Bestial Wrath") >= 300) { WoW.CastSpell("Dire Beast"); if (WoW.CanCast("Titan's Thunder") && !WoW.IsSpellOnCooldown("Titan's Thunder")) { WoW.CastSpell("Titan's Thunder"); return; } } if (WoW.CanCast("Titan's Thunder") && !WoW.IsSpellOnCooldown("Titan's Thunder") && WoW.IsSpellOnCooldown("Dire Frenzy") && WoW.SpellCooldownTimeRemaining("Dire Frenzy") <= 140 && WoW.Talent(2) == 2) { WoW.CastSpell("Titan's Thunder"); return; } if (WoW.CanCast("Dire Frenzy") && WoW.IsSpellInRange("Cobra Shot") && WoW.IsSpellOnCooldown("Bestial Wrath") && WoW.PlayerSpellCharges("Dire Frenzy") >= 200 && WoW.SpellCooldownTimeRemaining("Bestial Wrath") >= 300 && WoW.Talent(2) == 2) { WoW.CastSpell("Dire Frenzy"); return; } if (WoW.CanCast("Dire Frenzy") && WoW.IsSpellInRange("Cobra Shot") && WoW.PetHasBuff("Dire Frenzy") && WoW.PetBuffTimeRemaining("Dire Frenzy") <= 300 && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") >= 140 && WoW.Talent(2) == 2) { WoW.CastSpell("Dire Frenzy"); return; } if (WoW.CanCast("Dire Frenzy") && WoW.IsSpellInRange("Cobra Shot") && WoW.IsSpellOnCooldown("Bestial Wrath") && ((WoW.PetHasBuff("Dire Frenzy") && WoW.PetBuffTimeRemaining("Dire Frenzy") <= 200) || !WoW.PetHasBuff("Dire Frenzy")) && WoW.SpellCooldownTimeRemaining("Bestial Wrath") >= 300 && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") >= 140 && WoW.Talent(2) == 2) { WoW.CastSpell("Dire Frenzy"); return; } if (WoW.CanCast("Dire Frenzy") && WoW.IsSpellInRange("Cobra Shot") && WoW.IsSpellOnCooldown("Bestial Wrath") && WoW.SpellCooldownTimeRemaining("Bestial Wrath") > 6 && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") >= 140 && WoW.Talent(2) == 2 && WoW.IsSpellOnCooldown("Titan's Thunder") && WoW.SpellCooldownTimeRemaining("Titan's Thunder") >= 140) { WoW.CastSpell("Dire Frenzy"); return; } if (WoW.CanCast("Kill Command") && WoW.Focus >= 55 && WoW.IsSpellInRange("Cobra Shot") && !WoW.IsSpellOnCooldown("Kill Command") && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") >= 140) { WoW.CastSpell("Kill Command"); return; } if (WoW.CanCast("Cobra Shot") && (WoW.Focus >= 65) && WoW.Talent(7) == 2 && WoW.IsSpellInRange("Cobra Shot") && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") >= 140 && WoW.PlayerHasBuff("Bestial Wrath") && WoW.SpellCooldownTimeRemaining("Kill Command") >= 300) { WoW.CastSpell("Cobra Shot"); return; } if (WoW.CanCast("Cobra Shot") && WoW.Focus >= 110 && WoW.IsSpellInRange("Cobra Shot") && WoW.PetHasBuff("Beast Cleave") && WoW.PetBuffTimeRemaining("Beast Cleave") >= 140 && WoW.SpellCooldownTimeRemaining("Bestial Wrath") >= 140) { WoW.CastSpell("Cobra Shot"); return; } } } if (combatRoutine.Type == RotationType.SingleTargetCleave) { if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.IsInCombat) { if (WoW.CanCast("FeignDeath") && WoW.HealthPercent < 30 && FeignDeath && !WoW.IsSpellOnCooldown("FeignDeath") && WoW.HealthPercent != 0) { WoW.CastSpell("FeignDeath"); return; } if (WoW.CanCast("Exhilaration") && WoW.HealthPercent < 40 && Exhilaration && !WoW.IsSpellOnCooldown("Exhilaration") && WoW.HealthPercent != 0) { WoW.CastSpell("Exhilaration"); return; } if (WoW.CanCast("AspectoftheTurtle") && WoW.HealthPercent < 20 && AspectoftheTurtle && !WoW.IsSpellOnCooldown("AspectoftheTurtle") && WoW.HealthPercent != 0) { WoW.CastSpell("AspectoftheTurtle"); return; } if (WoW.CanCast("Ancient Healing Potion") && WoW.HealthPercent < 20 && !WoW.IsSpellOnCooldown("Ancient Healing Potion") && WoW.HealthPercent != 0) { WoW.CastSpell("Ancient Healing Potion"); return; } if (WoW.CanCast("Silkweave Bandage") && WoW.HealthPercent < 40 && WoW.PlayerHasBuff("Turtle") && !WoW.IsMoving && !WoW.PlayerHasDebuff("Bandaged") && WoW.HealthPercent != 0) { WoW.CastSpell("Silkweave Bandage"); return; } if (!WoW.HasPet && WoW.CanCast("Wolf")) { WoW.CastSpell("Wolf"); return; } /*if (WoW.PetHealthPercent <= 0 && WoW.CanCast("Phoenix")) * { * WoW.CastSpell("Phoenix") ; * return; * } */ if (WoW.PetHealthPercent <= 90 && HealPet && !WoW.PetHasBuff("Heal Pet") && WoW.CanCast("Revive Pet") && !WoW.IsMoving) { WoW.CastSpell("Heal Pet"); return; } if (WoW.PetHealthPercent <= 0 && WoW.IsSpellOnCooldown("Phoenix") && WoW.CanCast("Revive Pet") && !WoW.IsMoving) { WoW.CastSpell("Revive Pet"); return; } if (WoW.CanCast("A Murder of Crows") && WoW.Talent(6) == 1 && WoW.Focus >= 25 && WoW.IsSpellInRange("Cobra Shot") && !WoW.IsSpellOnCooldown("A Murder of Crows")) { WoW.CastSpell("A Murder of Crows"); return; } if (WoW.TargetIsCasting) { if (WoW.CanCast("Counter Shot") && WoW.TargetIsCastingAndSpellIsInterruptible && WoW.TargetPercentCast >= 60 && !WoW.IsSpellOnCooldown("Counter Shot") && !WoW.PlayerIsChanneling && !WoW.WasLastCasted("Counter Shot")) { WoW.CastSpell("Counter Shot"); return; } } if (WoW.CanCast("Volley") && !WoW.PlayerHasBuff("Volley") && WoW.Talent(6) == 3) { WoW.CastSpell("Volley"); return; } if (WoW.CanCast("Arcane Torrent") && !WoW.IsSpellOnCooldown("Arcane Torrent") && WoW.PlayerRace == "BloodElf" && WoW.Focus <= 85) { WoW.CastSpell("Arcane Torrent"); return; } if (WoW.CanCast("Blood Fury") && !WoW.IsSpellOnCooldown("Blood Fury") && WoW.PlayerRace == "Orc") { WoW.CastSpell("Blood Fury"); return; } if (WoW.CanCast("Kil'jaeden's Burning Wish") && KilJaeden && !WoW.ItemOnCooldown("Kil'jaeden's Burning Wish") && !WoW.IsSpellOnCooldown("Kil'jaeden's Burning Wish")) { WoW.CastSpell("Kil'jaeden's Burning Wish"); return; } if (WoW.CanCast("Bestial Wrath") && WoW.Focus >= 80 && WoW.IsSpellInRange("Cobra Shot") && !WoW.PlayerHasBuff("AspectoftheTurtle") && WoW.Talent(2) == 2 && !WoW.IsSpellOnCooldown("Dire Frenzy")) { WoW.CastSpell("Bestial Wrath"); return; } if (WoW.CanCast("Bestial Wrath") && WoW.Focus >= 115 && WoW.IsSpellInRange("Cobra Shot") && WoW.IsSpellOnCooldown("Kill Command") && !WoW.PlayerHasBuff("AspectoftheTurtle")) { WoW.CastSpell("Bestial Wrath"); return; } if (WoW.CanCast("Bestial Wrath") && WoW.Focus >= 90 && WoW.IsSpellInRange("Cobra Shot") && !WoW.IsSpellOnCooldown("Kill Command") && !WoW.PlayerHasBuff("AspectoftheTurtle")) { WoW.CastSpell("Bestial Wrath"); return; } if (WoW.CanCast("Aspect of the Wild") && !WoW.IsSpellOnCooldown("Aspect of the Wild") && UseCooldowns && WoW.PlayerHasBuff("Bestial Wrath")) { WoW.CastSpell("Aspect of the Wild"); return; } if (WoW.CanCast("Chimaera Shot") && WoW.Focus <= 90 && WoW.IsSpellOnCooldown("Dire Frenzy") && WoW.IsSpellOnCooldown("Kill Command") && WoW.CanCast("Chimaera Shot") && WoW.Talent(2) == 3) { WoW.CastSpell("Chimaera Shot"); return; } if (WoW.CanCast("Dire Beast") && WoW.IsSpellInRange("Cobra Shot") && (WoW.Talent(2) == 1 || WoW.Talent(2) == 3) && !WoW.IsSpellOnCooldown("Dire Beast") && WoW.SpellCooldownTimeRemaining("Bestial Wrath") >= 300) { WoW.CastSpell("Dire Beast"); if (WoW.CanCast("Titan's Thunder") && !WoW.IsSpellOnCooldown("Titan's Thunder")) { WoW.CastSpell("Titan's Thunder"); return; } } if (WoW.CanCast("Titan's Thunder") && !WoW.IsSpellOnCooldown("Titan's Thunder") && !WoW.IsSpellOnCooldown("Dire Frenzy") && WoW.CanCast("Dire Frenzy") && WoW.Talent(2) == 2) { WoW.CastSpell("Titan's Thunder"); WoW.CastSpell("Dire Frenzy"); return; } if (WoW.CanCast("Dire Frenzy") && WoW.IsSpellInRange("Cobra Shot") && WoW.IsSpellOnCooldown("Bestial Wrath") && WoW.PlayerSpellCharges("Dire Frenzy") >= 200 && WoW.SpellCooldownTimeRemaining("Bestial Wrath") >= 300 && WoW.Talent(2) == 2) { WoW.CastSpell("Dire Frenzy"); return; } if (WoW.CanCast("Dire Frenzy") && WoW.IsSpellInRange("Cobra Shot") && WoW.IsSpellOnCooldown("Bestial Wrath") && ((WoW.PetHasBuff("Dire Frenzy") && WoW.PetBuffTimeRemaining("Dire Frenzy") <= 200) || !WoW.PetHasBuff("Dire Frenzy")) && WoW.SpellCooldownTimeRemaining("Bestial Wrath") >= 300 && WoW.Talent(2) == 2) { WoW.CastSpell("Dire Frenzy"); return; } if (WoW.CanCast("Kill Command") && WoW.Focus >= 30 && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Kill Command"); return; } if (WoW.CanCast("Cobra Shot") && (WoW.Focus >= 50) && WoW.IsSpellInRange("Cobra Shot") && WoW.PlayerHasBuff("Bestial Wrath") && WoW.IsSpellOnCooldown("Kill Command") && WoW.SpellCooldownTimeRemaining("Kill Command") > 140) { WoW.CastSpell("Cobra Shot"); return; } if (WoW.CanCast("Cobra Shot") && (WoW.Focus >= 32) && WoW.IsSpellInRange("Cobra Shot") && WoW.PlayerHasBuff("Bestial Wrath") && WoW.PlayerBuffTimeRemaining("Bestial Wrath") <= 200 && WoW.IsSpellOnCooldown("Kill Command") && WoW.SpellCooldownTimeRemaining("Kill Command") > 140) { WoW.CastSpell("Cobra Shot"); return; } if (WoW.CanCast("Cobra Shot") && (WoW.Focus >= 90) && WoW.IsSpellInRange("Cobra Shot") && WoW.IsSpellOnCooldown("Bestial Wrath") && WoW.SpellCooldownTimeRemaining("Bestial Wrath") >= 140) { WoW.CastSpell("Cobra Shot"); return; } } } }
public override void Pulse() // Updated for Legion (tested and working for single target) { AddonCreationPulse(); PlayerStats(); AoEStuff(); if (WoW.IsInCombat && !WoW.PlayerHasBuff("Mount")) { SelectRotation(); } //Healthstone - Potion if ((WoW.CanCast("Healthstone") || WoW.CanCast("Potion")) && (WoW.ItemCount("Healthstone") >= 1 || WoW.ItemCount("Potion") >= 1) && (!WoW.ItemOnCooldown("Healthstone") || !WoW.ItemOnCooldown("Potion")) && !WoW.PlayerHasBuff("Feign Death") && WoW.HealthPercent <= 30 && !WoW.PlayerHasBuff("Mount") && WoW.HealthPercent != 0) { WoW.CastSpell("Healthstone"); WoW.CastSpell("Potion"); return; } //Exhilaration if (WoW.CanCast("Exhilaration") && WoW.HealthPercent <= 20 && !WoW.PlayerHasBuff("Mount") && !WoW.PlayerHasBuff("Feign Death") && WoW.HealthPercent != 0) { WoW.CastSpell("Exhilaration"); return; } //Call pet if (!WoW.HasPet && !WoW.PlayerHasBuff("Mount") && !WoW.PlayerHasBuff("Feign Death") && WoW.HealthPercent != 0) { WoW.CastSpell("Call Pet"); return; } //Revive Pet if ((!WoW.HasPet || WoW.PetHealthPercent < 1) && !WoW.PlayerHasBuff("Mount") && !WoW.PlayerHasBuff("Feign Death") && WoW.HealthPercent != 0) { WoW.CastSpell("Heart of the Phoenix"); WoW.CastSpell("Revive Pet"); return; } //Voley if (WoW.CanCast("Voley") && !WoW.PlayerHasBuff("Feign Death") && !WoW.PlayerHasBuff("Voley") && WoW.HealthPercent != 0 && CharInfo.T6 == 3) { WoW.CastSpell("Voley"); return; } if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.IsInCombat && !WoW.PlayerHasBuff("Mount") && !WoW.PlayerIsChanneling && !WoW.PlayerHasBuff("Feign Death") && WoW.HealthPercent != 0) { //Stampede if (DetectKeyPress.GetKeyState(DetectKeyPress.Shift) < 0 && WoW.CanCast("Stampede") && CharInfo.T7 == 1) { WoW.CastSpell("Stampede"); return; } //Intimidation //Binding Shot if (DetectKeyPress.GetKeyState(DetectKeyPress.Ctrl) < 0 && ((WoW.CanCast("Intimidation") && CharInfo.T5 == 3) || (WoW.CanCast("Binding Shot") && CharInfo.T5 == 1))) { WoW.CastSpell("Binding Shot"); WoW.CastSpell("Intimidation"); return; } //Cooldowns if (UseCooldowns) { //Aspect of the Wild if (WoW.CanCast("Aspect of the Wild") && !WoW.PlayerHasBuff("Aspect of the Turtle") && WoW.PlayerHasBuff("Bestial Wrath") && WoW.PlayerBuffTimeRemaining("Bestial Wrath") >= 12) { WoW.CastSpell("Aspect of the Wild"); return; } } //Legendary Trinket if (WoW.CanCast("Kil'jaeden's Burning Wish") && (((WoW.SpellCooldownTimeRemaining("Bestial Wrath") > 15 && WoW.SpellCooldownTimeRemaining("Dire Beast") > 5)) || WoW.PlayerHasBuff("Bestial Wrath")) && !WoW.ItemOnCooldown("Kil'jaeden's Burning Wish") && WoW.IsSpellInRange("Cobra Shot")) { WoW.CastSpell("Kil'jaeden's Burning Wish"); } //SINGLE TARGET //Bestial Wrath if ((combatRoutine.Type == RotationType.SingleTarget || combatRoutine.Type == RotationType.SingleTargetCleave) && WoW.CanCast("Bestial Wrath") && !WoW.PlayerHasBuff("Aspect of the Turtle") && WoW.IsSpellInRange("Cobra Shot") && (WoW.Focus >= 110)) { WoW.CastSpell("Bestial Wrath"); WoW.CastSpell("Kill Command"); if (WoW.CanCast("A Murder of Crows") && WoW.IsSpellInRange("Cobra Shot") && CharInfo.T6 == 1 && WoW.Focus >= 30) { WoW.CastSpell("A Murder of Crows"); } return; } //A Murder of Crows if (combatRoutine.Type == RotationType.SingleTarget && WoW.SpellCooldownTimeRemaining("Bestial Wrath") > 23 && WoW.CanCast("A Murder of Crows") && WoW.IsSpellInRange("Cobra Shot") && CharInfo.T6 == 1 && WoW.Focus >= 25) { WoW.CastSpell("A Murder of Crows"); return; } //Kill Command if (combatRoutine.Type == RotationType.SingleTarget && WoW.CanCast("Kill Command") && WoW.Focus >= 100) { WoW.CastSpell("Kill Command"); return; } // Dire beast if (combatRoutine.Type == RotationType.SingleTarget && WoW.CanCast("Dire Beast") && WoW.SpellCooldownTimeRemaining("Bestial Wrath") > 3 && WoW.IsSpellInRange("Cobra Shot") && CharInfo.T2 != 2) { WoW.CastSpell("Dire Beast"); WoW.CastSpell("Titan's Thunder"); return; } //Dire Frenzy if (combatRoutine.Type == RotationType.SingleTarget && WoW.CanCast("Dire Frenzy") && WoW.SpellCooldownTimeRemaining("Bestial Wrath") > 6 && WoW.IsSpellInRange("Cobra Shot") && CharInfo.T2 == 2) { WoW.CastSpell("Titan's Thunder"); WoW.CastSpell("Dire Frenzy"); return; } //Kill Command if (combatRoutine.Type == RotationType.SingleTarget && WoW.CanCast("Kill Command") && (WoW.SpellCooldownTimeRemaining("Bestial Wrath") - WoW.SpellCooldownTimeRemaining("Kill Command") > 2 || (WoW.SpellCooldownTimeRemaining("Bestial Wrath") >= 23 && WoW.SpellCooldownTimeRemaining("Dire Beast") - WoW.SpellCooldownTimeRemaining("Kill Command") > 2)) && WoW.Focus >= 25) { WoW.CastSpell("Kill Command"); return; } //Chimaera Shot if (combatRoutine.Type == RotationType.SingleTarget && WoW.CanCast("Chimaera Shot") && WoW.IsSpellInRange("Cobra Shot") && CharInfo.T2 == 3 && WoW.Focus < 90) { WoW.CastSpell("Chimaera Shot"); return; } //Cobra Shot if (combatRoutine.Type == RotationType.SingleTarget && ((WoW.Focus >= 110) || (WoW.PlayerHasBuff("Bestial Wrath") && (WoW.Focus >= 40))) && WoW.IsSpellInRange("Cobra Shot") && WoW.CanCast("Cobra Shot") && !WoW.CanCast("Bestial Wrath")) { WoW.CastSpell("Cobra Shot"); return; } //AOE //Bestial Wrath if (combatRoutine.Type == RotationType.AOE && WoW.CanCast("Bestial Wrath") && WoW.IsSpellInRange("Cobra Shot") && !WoW.PlayerHasBuff("Aspect of the Turtle")) { WoW.CastSpell("Bestial Wrath"); return; } // Dire beast if (combatRoutine.Type == RotationType.AOE && WoW.CanCast("Dire Beast") && WoW.SpellCooldownTimeRemaining("Bestial Wrath") > 3 && WoW.IsSpellInRange("Cobra Shot") && CharInfo.T2 != 2) { WoW.CastSpell("Dire Beast"); WoW.CastSpell("Titan's Thunder"); return; } //Dire Frenzy if (combatRoutine.Type == RotationType.AOE && WoW.CanCast("Dire Frenzy") && WoW.SpellCooldownTimeRemaining("Bestial Wrath") > 6 && WoW.IsSpellInRange("Cobra Shot") && CharInfo.T2 == 2) { WoW.CastSpell("Dire Frenzy"); WoW.CastSpell("Titan's Thunder"); return; } //Barrage if (combatRoutine.Type == RotationType.AOE && WoW.CanCast("Barrage") && WoW.IsSpellInRange("Cobra Shot") && CharInfo.T6 == 2 && (WoW.Focus >= 60)) { WoW.CastSpell("Barrage"); return; } //Multishot if (combatRoutine.Type == RotationType.AOE && WoW.CanCast("Multi-Shot") && WoW.IsSpellInRange("Multi-Shot") && WoW.Focus >= 40) { WoW.CastSpell("Multi-Shot"); return; } //Chimaera Shot if (combatRoutine.Type == RotationType.AOE && WoW.CanCast("Chimaera Shot") && WoW.IsSpellInRange("Cobra Shot") && CharInfo.T2 == 3 && WoW.Focus < 80) { WoW.CastSpell("Chimaera Shot"); return; } //CLEAVE //A Murder of Crows if (combatRoutine.Type == RotationType.SingleTarget && WoW.SpellCooldownTimeRemaining("Bestial Wrath") > 23 && WoW.CanCast("A Murder of Crows") && WoW.IsSpellInRange("Cobra Shot") && CharInfo.T6 == 1 && WoW.Focus >= 25) { WoW.CastSpell("A Murder of Crows"); return; } //Multishot - Beast Cleave uptime if (combatRoutine.Type == RotationType.SingleTargetCleave && WoW.CanCast("Multi-Shot") && (!WoW.PetHasBuff("BeastCleave") || WoW.PetBuffTimeRemaining("BeastCleave") <= 1) && WoW.IsSpellInRange("Multi-Shot") && !WoW.CanCast("Bestial Wrath") && WoW.Focus >= 40) { WoW.CastSpell("Multi-Shot"); return; } // Dire beast if (combatRoutine.Type == RotationType.SingleTargetCleave && WoW.CanCast("Dire Beast") && WoW.SpellCooldownTimeRemaining("Bestial Wrath") > 3 && WoW.IsSpellInRange("Cobra Shot") && CharInfo.T2 != 2) { WoW.CastSpell("Dire Beast"); WoW.CastSpell("Titan's Thunder"); return; } //Dire Frenzy if (combatRoutine.Type == RotationType.SingleTargetCleave && WoW.CanCast("Dire Frenzy") && WoW.SpellCooldownTimeRemaining("Bestial Wrath") > 6 && WoW.IsSpellInRange("Cobra Shot") && CharInfo.T2 == 2) { WoW.CastSpell("Dire Frenzy"); WoW.CastSpell("Titan's Thunder"); return; } //Barrage if (combatRoutine.Type == RotationType.SingleTargetCleave && WoW.CanCast("Barrage") && WoW.IsSpellInRange("Cobra Shot") && CharInfo.T6 == 2 && (WoW.Focus >= 60)) { WoW.CastSpell("Barrage"); return; } //Kill Command if (combatRoutine.Type == RotationType.SingleTarget && WoW.CanCast("Kill Command") && (WoW.SpellCooldownTimeRemaining("Bestial Wrath") - WoW.SpellCooldownTimeRemaining("Kill Command") > 2 || (WoW.SpellCooldownTimeRemaining("Bestial Wrath") >= 23 && WoW.SpellCooldownTimeRemaining("Dire Beast") - WoW.SpellCooldownTimeRemaining("Kill Command") > 2)) && WoW.Focus >= 25) { WoW.CastSpell("Kill Command"); return; } //Chimaera Shot if (combatRoutine.Type == RotationType.SingleTargetCleave && WoW.CanCast("Chimaera Shot") && WoW.IsSpellInRange("Cobra Shot") && CharInfo.T2 == 3 && WoW.Focus < 80) { WoW.CastSpell("Chimaera Shot"); return; } //Cobra Shot if (combatRoutine.Type == RotationType.SingleTargetCleave && ((WoW.Focus >= 110) || (WoW.PlayerHasBuff("Bestial Wrath") && (WoW.Focus >= 40))) && WoW.IsSpellInRange("Cobra Shot") && WoW.CanCast("Cobra Shot") && !WoW.CanCast("Bestial Wrath")) { WoW.CastSpell("Cobra Shot"); return; } //Mend Pet if (WoW.HasPet && WoW.CanCast("Mend Pet") && WoW.PetHealthPercent <= 70 && !WoW.PlayerHasBuff("Feign Death")) { WoW.CastSpell("Mend Pet"); return; } } }