public override void Pulse() { if (WoW.TargetHealthPercent == 0) { return; } if (!WoW.TargetIsEnemy) { return; } WoW.CastSpell("Rebuke", WoW.TargetIsCastingAndSpellIsInterruptible && WoW.TargetPercentCast > 60); WoW.CastSpell("ArdentDefender", WoW.PlayerHealthPercent < 15); WoW.CastSpell("LayOnHands", WoW.CanCast("LayOnHands") && !WoW.PlayerHasDebuff("Forbearance") && WoW.PlayerHealthPercent < 20 && !WoW.PlayerHasBuff("ArdentDefender")); WoW.CastSpell("GuardianOfAncientKings", WoW.PlayerHealthPercent < 50 && !WoW.PlayerHasBuff("ArdentDefender")); if (!WoW.HasTarget) { return; } WoW.CastSpell("AvengingWrath", UseCooldowns, false); // Off the GCD no return needed. WoW.CastSpell("AvengersShield", true); WoW.CastSpell("EyeOfTyr", WoW.PlayerHealthPercent < 100); WoW.CastSpell("Judgment", true); WoW.CastSpell("Consecration", true); WoW.CastSpell("LightOfTheProtector", WoW.PlayerHasBuff("Consecration") && WoW.PlayerHealthPercent < 70); WoW.CastSpell("BlessedHammer", WoW.Talent(1) == 2); WoW.CastSpell("BastionOfLight", WoW.PlayerSpellCharges("ShieldOfTheRighteous") == 0 && !WoW.PlayerHasBuff("ShieldOfTheRighteous")); WoW.CastSpell("ShieldOfTheRighteous", WoW.PlayerHasBuff("Consecration") && WoW.PlayerSpellCharges("ShieldOfTheRighteous") > 0 && !WoW.PlayerHasBuff("ShieldOfTheRighteous")); WoW.CastSpell("Seraphim", WoW.Talent(7) == 2); WoW.CastSpell("BlessedHammer", true); }
private static bool PartyHasDeBuff(string debuffName, int partyID) { if (partyID == 0) { return(WoW.PlayerHasDebuff(debuffName)); } Aura aura = null; for (var i = 0; i < SpellBook.Auras.Count; i++) { if (SpellBook.Auras[i].AuraName == debuffName) { aura = SpellBook.Auras[i]; } } if (aura == null) { Log.Write($"[HasDebuff] Fant ikke debuff '{debuffName}' in Spell Book"); return(false); } var c = WoW.GetBlockColor(aura.InternalAuraNo, 16 + partyID); return((c.R != 255) && (c.G != 255) && (c.B != 255)); }
public override void Pulse() { if (WoW.PlayerHasBuff("Mount")) { return; } if (UseCooldowns) { if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.IsInCombat) { if (WoW.CanCast("BattleCry")) { WoW.CastSpell("BattleCry"); return; } if (WoW.CanCast("Avatar") && (WoW.SpellCooldownTimeRemaining("BattleCry") > 14)) { WoW.CastSpell("Avatar"); return; } } } if (combatRoutine.Type == RotationType.SingleTarget) // Do Single Target Stuff here { if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.IsInCombat) { /* interrupting */ if (WoW.TargetIsCastingAndSpellIsInterruptible && WoW.CanCast("Pummel") && WoW.IsSpellInRange("Pummel")) { WoW.CastSpell("Pummel"); return; } /* --------------------- end of interrupting--------------------*/ /* defensive CD */ if (WoW.CanCast("Enraged Regeneration") && (WoW.HealthPercent < 20)) { WoW.CastSpell("Enraged Regeneration"); if (WoW.CanCast("Bloodthirst") && WoW.IsSpellInRange("Bloodthirst") && WoW.PlayerHasBuff("Enraged Regeneration")) { WoW.CastSpell("Bloodthirst"); return; } return; } if (WoW.CanCast("Commanding Shout") && (WoW.HealthPercent < 15)) { WoW.CastSpell("Commanding Shout"); if (WoW.CanCast("Bloodthirst") && WoW.IsSpellInRange("Bloodthirst")) { WoW.CastSpell("Bloodthirst"); return; } return; } if (WoW.PlayerHasDebuff("Fear") && WoW.CanCast("Berserker Rage")) { WoW.CastSpell("Berserker Rage"); return; } if (WoW.PlayerHasDebuff("Stunned") && WoW.CanCast("Every Man for Himself")) { WoW.CastSpell("Every Man for Himself"); return; } /* --------------------- end of defensive CD--------------------*/ /* dps-ing */ if (!WoW.PlayerHasBuff("BattleCry")) { if (WoW.CanCast("Rampage") && WoW.IsSpellInRange("Rampage") && (WoW.Rage >= 100) && !WoW.PlayerHasBuff("Enrage")) { WoW.CastSpell("Rampage"); return; } if (WoW.CanCast("Bloodthirst") && WoW.IsSpellInRange("Bloodthirst") && !WoW.PlayerHasBuff("Enrage")) { WoW.CastSpell("Bloodthirst"); return; } if (WoW.CanCast("OdynsFury") && WoW.IsSpellInRange("OdynsFury") && (WoW.PlayerHasBuff("BattleCry") || WoW.HealthPercent < 10)) { WoW.CastSpell("OdynsFury"); return; } if (WoW.CanCast("Execute") && WoW.IsSpellInRange("Execute") && WoW.PlayerHasBuff("Enrage") && WoW.TargetHealthPercent <= 20) { WoW.CastSpell("Execute"); return; } if (WoW.CanCast("Bloodthirst") && WoW.IsSpellInRange("Bloodthirst")) { WoW.CastSpell("Bloodthirst"); return; } if (WoW.CanCast("Raging Blow") && WoW.IsSpellInRange("Raging Blow")) { WoW.CastSpell("Raging Blow"); return; } if (WoW.CanCast("Whirlwind") && WoW.PlayerHasBuff("Wrecking Ball") && WoW.IsSpellInRange("Whirlwind")) { WoW.CastSpell("Whirlwind"); return; } if (WoW.CanCast("Furious Slash") && WoW.IsSpellInRange("Furious Slash") && (WoW.SpellCooldownTimeRemaining("Raging Blow") > 0.5)) { WoW.CastSpell("Furious Slash"); return; } } if (WoW.PlayerHasBuff("BattleCry")) { if (WoW.CanCast("Rampage") && WoW.IsSpellInRange("Rampage") && (WoW.Rage >= 100) && (!WoW.PlayerHasBuff("Enrage") || (WoW.PlayerBuffTimeRemaining("Enrage") <= 2))) { WoW.CastSpell("Rampage"); return; } if (WoW.CanCast("Raging Blow") && WoW.IsSpellInRange("Raging Blow")) { WoW.CastSpell("Raging Blow"); return; } if (WoW.CanCast("OdynsFury") && WoW.IsSpellInRange("OdynsFury") && (WoW.PlayerHasBuff("BattleCry") || WoW.HealthPercent < 10)) { WoW.CastSpell("OdynsFury"); return; } if (WoW.CanCast("Execute") && WoW.IsSpellInRange("Execute") && WoW.PlayerHasBuff("Enrage") && WoW.TargetHealthPercent <= 20) { WoW.CastSpell("Execute"); return; } if (WoW.CanCast("Bloodthirst") && WoW.IsSpellInRange("Bloodthirst")) { WoW.CastSpell("Bloodthirst"); return; } } /* --------------------- end of dps-ing--------------------*/ } } if ((combatRoutine.Type == RotationType.AOE) || (combatRoutine.Type == RotationType.Cleave)) { if (WoW.CanCast("OdynsFury") && WoW.IsSpellInRange("OdynsFury") && (WoW.PlayerHasBuff("BattleCry") || WoW.HealthPercent < 10)) { WoW.CastSpell("OdynsFury"); return; } if (!WoW.PlayerHasBuff("Meat-Cleaver")) { WoW.CastSpell("Whirlwind"); return; } if (WoW.CanCast("Rampage") && WoW.IsSpellInRange("Rampage") && (WoW.Rage >= 100) && !WoW.PlayerHasBuff("Enrage") && WoW.PlayerHasBuff("Meat-Cleaver")) { WoW.CastSpell("Rampage"); return; } if (WoW.CanCast("Bloodthirst") && WoW.IsSpellInRange("Bloodthirst") && !WoW.PlayerHasBuff("Enrage") && WoW.PlayerHasBuff("Meat-Cleaver")) { WoW.CastSpell("Bloodthirst"); return; } if (WoW.CanCast("Bloodthirst") && WoW.IsSpellInRange("Bloodthirst") && WoW.PlayerHasBuff("Meat-Cleaver")) { WoW.CastSpell("Bloodthirst"); return; } if (WoW.CanCast("Raging Blow") && WoW.IsSpellInRange("Raging Blow")) { WoW.CastSpell("Raging Blow"); return; } if (WoW.CanCast("Whirlwind") && WoW.PlayerHasBuff("Wrecking Ball") && WoW.IsSpellInRange("Whirlwind")) { WoW.CastSpell("Whirlwind"); return; } } }
public override void Pulse() { if (DetectKeyPress.GetKeyState(DetectKeyPress.VK_LSHIFT) < 0) { return; } // Interrupt if (WoW.TargetIsCastingAndSpellIsInterruptible && WoW.CanCast("Pummel") && WoW.IsSpellInRange("Pummel") && WoW.TargetPercentCast > Random.Next(20, 40)) { WoW.CastSpell("Pummel"); return; } // Defensive CD's if (WoW.CanCast("Enraged Regeneration") && WoW.HealthPercent < 30) { WoW.CastSpell("Enraged Regeneration"); WoW.CastSpell("Bloodthirst", WoW.CanCast("Bloodthirst") && WoW.IsSpellInRange("Bloodthirst")); return; } if (WoW.CanCast("Commanding Shout") && (WoW.HealthPercent < 15)) { WoW.CastSpell("Commanding Shout"); WoW.CastSpell("Bloodthirst", WoW.CanCast("Bloodthirst") && WoW.IsSpellInRange("Bloodthirst")); return; } if (WoW.PlayerHasDebuff("Fear")) { if (WoW.CanCast("Berserker Rage")) { WoW.CastSpell("Berserker Rage"); } else if (WoW.CanCast("Will of the Forsaken")) { WoW.CastSpell("Will of the Forsaken"); } } // Targeting if (!WoW.HasTarget || !WoW.TargetIsEnemy) { WoW.TargetNearestEnemy(); } if (combatRoutine.Type != RotationType.SingleTarget || DetectKeyPress.GetKeyState(DetectKeyPress.VK_LCONTROL) < 0) { // Multitarget Rotation BattleCryRotationSequence = 0; if (UseCooldowns) { if (WoW.CanCast("Battle Cry") && WoW.IsSpellInRange("Rampage") && !WoW.IsSpellOnCooldown("Rampage")) { WoW.CastSpell("Battle Cry"); WoW.CastSpell("Avatar", WoW.CanCast("Avatar")); } } if (WoW.CanCast("Odyns Fury") && WoW.IsSpellInRange("Bloodthirst") && WoW.PlayerHasBuff("Battle Cry")) { WoW.CastSpell("Odyns Fury"); return; } if (!WoW.PlayerHasBuff("Meat Cleaver") && WoW.CanCast("Whirlwind") && WoW.IsSpellInRange("Bloodthirst")) { WoW.CastSpell("Whirlwind"); return; } if (WoW.CanCast("Rampage") && WoW.IsSpellInRange("Rampage") && ((!WoW.PlayerHasBuff("Enrage") && WoW.Rage >= 85) || WoW.Rage >= 100)) { WoW.CastSpell("Rampage"); return; } if (WoW.CanCast("Bloodthirst") && WoW.IsSpellInRange("Bloodthirst") && !WoW.PlayerHasBuff("Enrage")) { WoW.CastSpell("Bloodthirst"); return; } if (combatRoutine.Type == RotationType.Cleave && WoW.CanCast("Raging Blow") && WoW.IsSpellInRange("Raging Blow")) { WoW.CastSpell("Raging Blow"); return; } if (WoW.CanCast("Whirlwind") && WoW.IsSpellInRange("Bloodthirst")) { WoW.CastSpell("Whirlwind"); return; } } else { // Singletarget Rotation if (UseCooldowns) { if (BattleCryRotationSequence == 0) { if (WoW.CanCast("Battle Cry") && WoW.IsSpellInRange("Rampage") && !WoW.IsSpellOnCooldown("Rampage")) { if (WoW.SpellCooldownTimeRemaining("Raging Blow") > 150) { //wait for raging blow to come up before using cooldowns WoW.CastSpell("Furious Slash", WoW.CanCast("Furious Slash") && WoW.IsSpellInRange("Furious Slash")); return; } WoW.CastSpell("Battle Cry"); WoW.CastSpell("Avatar", WoW.CanCast("Avatar")); WoW.CastSpell("Rampage"); BattleCryRotationSequence++; return; } } else if (BattleCryRotationSequence == 1) { if (WoW.CanCast("Raging Blow") && WoW.IsSpellInRange("Raging Blow")) { WoW.CastSpell("Raging Blow"); BattleCryRotationSequence++; } return; } else if (BattleCryRotationSequence == 2) { if (WoW.CanCast("Odyns Fury")) { WoW.CastSpell("Odyns Fury"); BattleCryRotationSequence++; } return; } else if (BattleCryRotationSequence == 3) { if (WoW.CanCast("Bloodthirst") && WoW.IsSpellInRange("Bloodthirst")) { WoW.CastSpell("Bloodthirst"); BattleCryRotationSequence++; } return; } else if (BattleCryRotationSequence == 4) { if (WoW.CanCast("Raging Blow") && WoW.IsSpellInRange("Raging Blow")) { WoW.CastSpell("Raging Blow"); BattleCryRotationSequence = 0; } return; } if (WoW.CanCast("Avatar") && (WoW.SpellCooldownTimeRemaining("Battle Cry") < 1200 || WoW.SpellCooldownTimeRemaining("Battle Cry") > 2200)) { WoW.CastSpell("Avatar"); return; } } else { BattleCryRotationSequence = 0; } if (WoW.CanCast("Rampage") && WoW.IsSpellInRange("Rampage") && ((!WoW.PlayerHasBuff("Enrage") && WoW.Rage >= 85) || WoW.Rage >= 100)) { WoW.CastSpell("Rampage"); return; } if (WoW.CanCast("Bloodthirst") && WoW.IsSpellInRange("Bloodthirst") && !WoW.PlayerHasBuff("Enrage")) { WoW.CastSpell("Bloodthirst"); return; } if (WoW.CanCast("Odyns Fury") && WoW.PlayerHasBuff("Enrage") && WoW.PlayerHasBuff("Battle Cry")) { WoW.CastSpell("Odyns Fury"); return; } if (WoW.CanCast("Execute") && WoW.IsSpellInRange("Execute") && WoW.PlayerHasBuff("Enrage") && WoW.TargetHealthPercent <= 20) { WoW.CastSpell("Execute"); return; } if (WoW.CanCast("Bloodthirst") && WoW.IsSpellInRange("Bloodthirst")) { WoW.CastSpell("Bloodthirst"); return; } if (WoW.CanCast("Raging Blow") && WoW.IsSpellInRange("Raging Blow")) { WoW.CastSpell("Raging Blow"); return; } if (WoW.CanCast("Whirlwind") && WoW.PlayerHasBuff("Wrecking Ball")) { WoW.CastSpell("Whirlwind"); return; } WoW.CastSpell("Furious Slash", WoW.CanCast("Furious Slash") && WoW.IsSpellInRange("Furious Slash")); } }
public override void Pulse() { if (WoW.HealthPercent == 0 || WoW.IsMounted) { return; } if (!WoW.IsInCombat && WoW.CanCast("Mount") && WoW.IsOutdoors && !WoW.IsMoving && !WoW.PlayerIsChanneling) { WoW.CastSpell("Mount"); } if (WoW.TargetHealthPercent == 0) { return; } if (!WoW.TargetIsEnemy && WoW.HealthPercent < 100 && WoW.CanCast("FlashHeal") && WoW.Mana > 25 && !WoW.IsMoving && !WoW.PlayerIsChanneling) { WoW.CastSpell("FlashHeal"); return; } if (!WoW.TargetIsEnemy) { return; } if (WoW.TargetIsCastingAndSpellIsInterruptible && WoW.TargetPercentCast > 60 && WoW.CanCast("Rebuke")) { WoW.CastSpell("Rebuke"); return; } if (WoW.CanCast("ArdentDefender") && WoW.HealthPercent < 15) { Log.Write("Health < 15% using CD: [Ardent Defender]", Color.Red); WoW.CastSpell("ArdentDefender"); return; } if (WoW.HealthPercent < 20 && !WoW.PlayerHasBuff("ArdentDefender")) { if (WoW.CanCast("LayOnHands") && !WoW.PlayerHasDebuff("Forbearance")) { Log.Write("Health < 20% using CD: [Lay On Hands]", Color.Red); WoW.CastSpell("LayOnHands"); return; } if (WoW.CanCast("DivineShield") && !WoW.PlayerHasDebuff("Forbearance") && WoW.CanCast("HandOfReckoning")) { Log.Write("Health < 20% using CD: [Taunt & Divine Shield]", Color.Red); WoW.CastSpell("HandOfReckoning"); WoW.CastSpell("DivineShield"); return; } } if (WoW.HealthPercent < 50) { if (WoW.CanCast("GuardianOfAncientKings") && !WoW.PlayerHasBuff("ArdentDefender")) { Log.Write("Health < 50% using CD: [Guardian Of Ancient Kings]", Color.Red); WoW.CastSpell("GuardianOfAncientKings"); return; } } if (!WoW.HasTarget) { return; } if (WoW.HasBossTarget && WoW.CanCast("AvengingWrath")) { WoW.CastSpell("AvengingWrath"); // Off the GCD no return needed. } if (WoW.CanCast("AvengersShield")) { WoW.CastSpell("AvengersShield"); return; } if (WoW.HealthPercent < 100) { if (WoW.CanCast("EyeOfTyr")) { WoW.CastSpell("EyeOfTyr"); return; } } if (WoW.CanCast("Judgment")) { WoW.CastSpell("Judgment"); return; } if (WoW.CanCast("Consecration")) { WoW.CastSpell("Consecration"); return; } if (WoW.CanCast("LightOfTheProtector") && WoW.PlayerHasBuff("Consecration") && WoW.HealthPercent < 70) { WoW.CastSpell("LightOfTheProtector"); return; } if (WoW.CanCast("BlessedHammer") && WoW.CountEnemyNPCsInRange > 1) { WoW.CastSpell("BlessedHammer"); return; } if (WoW.CanCast("BastionOfLight") && WoW.PlayerSpellCharges("ShieldOfTheRighteous") == 0 && !WoW.PlayerHasBuff("ShieldOfTheRighteous")) { WoW.CastSpell("BastionOfLight"); return; } if (WoW.CanCast("ShieldOfTheRighteous") && WoW.PlayerHasBuff("Consecration") && WoW.PlayerSpellCharges("ShieldOfTheRighteous") > 0 && !WoW.PlayerHasBuff("ShieldOfTheRighteous")) { WoW.CastSpell("ShieldOfTheRighteous"); return; } if (WoW.CanCast("BlessedHammer")) { WoW.CastSpell("BlessedHammer"); 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) { 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() { if (WoW.CanCast("Battle cry") && UseCooldowns) { WoW.CastSpell("Battle cry"); return; } if (WoW.CanCast("Avatar") && UseCooldowns && WoW.Talent(3) == 3 && WoW.PlayerHasBuff("Battle cry")) { WoW.CastSpell("Avatar"); return; } if (WoW.CanCast("Odyns fury") && WoW.Level >= 101 && WoW.IsSpellOnCooldown("Raging Blow") && WoW.PlayerHasBuff("Battle cry") && !WoW.IsSpellOnGCD("Raging Blow") && WoW.PlayerHasBuff("Frothing") && WoW.Rage < 100) { WoW.CastSpell("Odyns fury"); return; } if (WoW.PlayerHealthPercent <= EnragedRegenerationHealth && WoW.CanCast("Enraged Regeneration")) { WoW.CastSpell("Enraged Regeneration"); WoW.CastSpell("Raging Blow"); return; } if (WoW.PlayerHealthPercent <= CommandingShout && WoW.CanCast("Commanding shout")) { WoW.CastSpell("Commanding shout"); return; } if (Pummel && WoW.CanCast("Pummel") && WoW.Level >= 24 && WoW.TargetIsCastingAndSpellIsInterruptible && WoW.IsSpellInRange("Pummel") && WoW.TargetPercentCast > Random.Next(50, 85)) { WoW.CastSpell("Pummel"); return; } if (WoW.PlayerHasDebuff("Fear")) { if (WoW.CanCast("Berserker Rage")) { WoW.CastSpell("Berserker Rage"); } else if (WoW.CanCast("Will of the Forsaken")) { WoW.CastSpell("Will of the Forsaken"); } else if (WoW.CanCast("Every Man For Himself")) { WoW.CastSpell("Every Man For Himself"); } return; } if (WoW.TargetHealthPercent == 0 && WoW.IsInCombat && WoW.RangeToTarget <= 5 && WoW.CountEnemyNPCsInRange >= 1 && !WoW.IsMounted || !WoW.HasTarget && WoW.IsInCombat && WoW.CountEnemyNPCsInRange >= 1 && WoW.RangeToTarget <= 6 && !WoW.IsMounted) { WoW.TargetNextEnemy(); return; } if (combatRoutine.Type == RotationType.SingleTarget && WoW.TargetHealthPercent <= 20 && WoW.Level >= 60) { if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 6 && WoW.IsInCombat) { if (WoW.CanCast("Execute") && !WoW.PlayerHasBuff("Juggernaut") || WoW.CanCast("Execute") && WoW.PlayerBuffTimeRemaining("Juggernaut") < 2 || WoW.CanCast("Execute") && WoW.SpellCooldownTimeRemaining("Battle cry") < 10000 || WoW.CanCast("Execute") && WoW.Rage >= 100 || WoW.CanCast("Execute") && WoW.PlayerHasBuff("SenseDeath") && WoW.Rage >= 100 || WoW.CanCast("Execute") && WoW.PlayerHasBuff("Battle cry") && WoW.PlayerHasBuff("Frothing")) { WoW.CastSpell("Execute"); return; if (WoW.CanCast("Execute") && WoW.Level >= 8 && WoW.Rage >= 50) { WoW.CastSpell("Execute"); return; } if (WoW.CanCast("Bloodthirst") && WoW.Rage < 100 && WoW.SpellCooldownTimeRemaining("Battle cry") >= 11000 || WoW.CanCast("Bloodthirst") && WoW.Rage < 25 && WoW.Level >= 10 && WoW.SpellCooldownTimeRemaining("Battle cry") <= 9000 || WoW.CanCast("Bloodthirst") && WoW.IsSpellOnCooldown("Raging Blow") || WoW.CanCast("Rampage") && WoW.Level >= 12 && HasSouloftheBattlelord && WoW.PlayerHasBuff("Massacre")) { WoW.CastSpell("Bloodthirst"); return; } if (WoW.CanCast("Raging Blow") && WoW.Rage < 100 && WoW.IsSpellOnCooldown("Bloodthirst") && WoW.SpellCooldownTimeRemaining("Battle cry") >= 11000 || WoW.CanCast("Raging Blow") && WoW.Rage < 25 && WoW.IsSpellOnCooldown("Bloodthirst") && WoW.Level >= 13 && WoW.SpellCooldownTimeRemaining("BattleCry") <= 9000) { WoW.CastSpell("Raging Blow"); return; } if (WoW.CanCast("Furious Slash") && WoW.IsSpellOnCooldown("Raging Blow") && !WoW.IsSpellOnGCD("Bloodthirst") && WoW.Level >= 10 && !WoW.IsSpellOnGCD("Raging Blow") && WoW.PlayerBuffTimeRemaining("TasteForBlood") <= 4000) { WoW.CastSpell("Furious Slash"); return; } } } } if (combatRoutine.Type == RotationType.SingleTarget && WoW.TargetHealthPercent >= 21 && !WoW.PlayerHasBuff("Battle cry")) { if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 6 && WoW.IsInCombat) { if (WoW.CanCast("Execute") && WoW.Level >= 8 && HasAyalasStoneHeart) { WoW.CastSpell("Execute"); return; } if (WoW.CanCast("Rampage") && WoW.Rage == 100 && WoW.Level >= 18) { WoW.CastSpell("Rampage"); return; } if ((WoW.CanCast("Bloodthirst") && !WoW.PlayerHasBuff("Enrage") && WoW.Rage < 100 && WoW.Level >= 10) || WoW.CanCast("Bloodthirst") && WoW.IsSpellOnCooldown("Raging Blow") && WoW.Rage < 100 && WoW.Level >= 10) { WoW.CastSpell("Bloodthirst"); return; } if (WoW.CanCast("Raging Blow") && WoW.Level >= 13) { WoW.CastSpell("Raging Blow"); return; } if (WoW.CanCast("Whirlwind") && WoW.PlayerHasBuff("Wrecking Ball") && WoW.IsSpellOnCooldown("Raging Blow") && WoW.Talent(3) == 1 && WoW.PlayerHasBuff("Enrage")) { WoW.CastSpell("Whirlwind"); return; } if (WoW.CanCast("Furious Slash") && WoW.IsSpellOnCooldown("Raging Blow") && !WoW.IsSpellOnGCD("Bloodthirst") && WoW.Level >= 10 && !WoW.IsSpellOnGCD("Raging Blow") && WoW.PlayerBuffTimeRemaining("TasteForBlood") <= 4000 && WoW.Rage <= 90 && WoW.SpellCooldownTimeRemaining("Bloodthirst") <= 1000) { WoW.CastSpell("Furious Slash"); return; } } } if (combatRoutine.Type == RotationType.SingleTarget && WoW.TargetHealthPercent >= 21 && WoW.PlayerHasBuff("Battle cry")) { if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 6 && WoW.IsInCombat) { if (WoW.CanCast("Execute") && WoW.Level >= 8 && HasAyalasStoneHeart) { WoW.CastSpell("Execute"); return; } if (WoW.CanCast("Rampage") && WoW.Level >= 12 && WoW.Rage >= 100) { WoW.CastSpell("Rampage"); return; } if (WoW.CanCast("Raging Blow") && WoW.Level >= 20 && WoW.PlayerHasBuff("Enrage")) { WoW.CastSpell("Raging Blow"); return; } if (WoW.CanCast("Bloodthirst") && WoW.Level >= 10) { WoW.CastSpell("Bloodthirst"); return; } if (WoW.CanCast("Furious Slash") && WoW.Level >= 10) { WoW.CastSpell("Furious Slash"); return; } } } if (combatRoutine.Type == RotationType.Cleave) { if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 6 && WoW.IsInCombat) { if (WoW.CanCast("Execute") && WoW.Level >= 8 && HasAyalasStoneHeart) { WoW.CastSpell("Execute"); return; } if (WoW.CanCast("Whirlwind") && !WoW.PlayerHasBuff("Meat-Cleaver") && WoW.Level >= 28 || WoW.CanCast("Whirlwind") && WoW.PlayerHasBuff("Wrecking Ball") && WoW.Talent(3) == 1 && WoW.Level >= 45) { WoW.CastSpell("Whirlwind"); return; } if (WoW.CanCast("Rampage") && WoW.Rage == 100 && WoW.Level >= 12 && !WoW.PlayerHasBuff("Enrage") && WoW.PlayerHasBuff("Meat cleaver")) { WoW.CastSpell("Rampage"); return; } if (WoW.CanCast("Furious Slash") && WoW.IsSpellOnCooldown("Raging Blow") && !WoW.IsSpellOnGCD("Bloodthirst") && WoW.Level >= 10 && !WoW.IsSpellOnGCD("Raging Blow") && WoW.PlayerBuffTimeRemaining("TasteForBlood") <= 4000) { WoW.CastSpell("Furious Slash"); return; } if (WoW.CanCast("Bloodthirst") && WoW.Rage < 100 && WoW.CountEnemyNPCsInRange < 8 && WoW.PlayerHasBuff("Meat-Cleaver") && !WoW.PlayerHasBuff("Enrage") && WoW.Level >= 10) { WoW.CastSpell("Bloodthirst"); return; } if (WoW.CanCast("Raging Blow") && WoW.PlayerHasBuff("Enrage") && WoW.CountEnemyNPCsInRange < 4 && WoW.Level >= 13) { WoW.CastSpell("Raging Blow"); return; } } } }
public override void Pulse() { if (!WoW.InGame) { return; } if (WoW.TankId == 0) { string currentTalents = WoW.Talent(1) + "" + WoW.Talent(2) + "" + WoW.Talent(3) + "" + WoW.Talent(4) + "" + WoW.Talent(5) + "" + WoW.Talent(6) + "" + WoW.Talent(7); if (supportedTalents != currentTalents) { MessageBox.Show("You are not using the supported talents " + supportedTalents + ", your currnet talents are " + currentTalents + ".", "Frozen", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { Log.Write("Talents are correct", Color.Green); } if (!WoW.PlayerHasBuff("Beacon of Faith") && !WoW.PlayerHasBuff("Beacon of Light") && WoW.CanCast("Beacon of Faith")) { WoW.CastSpellOnMe("Beacon of Faith"); } var f = new frmEnterTankId { TopMost = true }; f.ShowDialog(); } if (WoW.PlayerHealthPercent == 0 || WoW.IsMounted) { return; } if (WoW.PlayerIsCasting) { return; } var lowest = WoW.PartyLowestHealthPercent; int currentTargetId = WoW.PartyMemberIdWithLowestHealthPercent; if (WoW.PartyMemberIsNeedingADispel != 0) { currentTargetId = WoW.PartyMemberIsNeedingADispel; } if (currentTargetId == 0) { return; } if (lowest == 100) { return; } var averageHp = WoW.PartyAverageHealthPercent; if (WoW.PlayerHealthPercent < 10 && WoW.IsInCombat && WoW.CanCast("Divine Shield") && !WoW.PlayerHasDebuff("Forbearance")) { WoW.CastSpell("Divine Shield"); } if (averageHp < 80 && WoW.CanCast("Aura Mastery")) { WoW.CastSpell("Aura Mastery"); } if (averageHp < 60 && WoW.CanCast("Avenging Wrath") && !WoW.PlayerHasBuff("Aura Mastery")) { WoW.CastSpell("Avenging Wrath"); } WoW.TargetMember(currentTargetId); // Target the lowest health party member if (WoW.PartyMemberIsNeedingADispel != 0 && WoW.CanCast("Cleanse")) { WoW.CastSpell("Cleanse"); return; } // Beacon of Light or Beacon of Virtue(if selected) maintain on your primary target at all times. if (WoW.Talent(7) == 3) { if (WoW.TankHealth > 50 && averageHp > 90 && WoW.CanCast("Beacon of Virtue") && WoW.TankId == currentTargetId && !WoW.TargetHasBuff("Beacon of Virtue")) { WoW.CastSpell("Beacon of Virtue"); } } if (WoW.Talent(7) == 1) { if (WoW.CanCast("Beacon of Light") && WoW.TankId == currentTargetId && !WoW.TargetHasBuff("Beacon of Light")) { WoW.CastSpell("Beacon of Light"); } } if (WoW.CanCast("Lay On Hands") && lowest <= 20 && // Use LOH if tanks health < 20 % !WoW.TargetHasDebuff("Forbearance") && // Make sure we dont LOH a tank with forbearance debuff WoW.TankId == currentTargetId) // Make sure we only use LOH on tank { WoW.CastSpell("Lay On Hands"); return; } if (WoW.CanCast("Blessing of Sacrifice") && lowest <= 30 && WoW.TankId == currentTargetId && !WoW.TargetHasBuff("Shield Wall Oto")) { WoW.CastSpell("Blessing of Sacrifice"); return; } // Holy Shock use on cooldown to generate Infusion of Light procs. // Consume Infusion of Light procs using the appropriate heal before your next Holy Shock. if (WoW.CanCast("Holy Shock") && !WoW.PlayerHasBuff("Infusion of Light")) { WoW.CastSpell("Holy Shock"); return; } if (WoW.Talent(5) == 3) { if (WoW.CanCast("Holy Prism") && WoW.TankId == currentTargetId && WoW.IsInCombat) { WoW.CastSpell("Holy Prism"); return; } } // Bestow Faith on cooldown (if selected). // Judgment to maintain the buff from Judgment of Light (if selected). // Light of the Martyr a potent emergency heal as long as you have health to spare. if (WoW.CanCast("Light of the Martyr") && lowest <= 40 && WoW.PlayerHealthPercent >= 70) { WoW.CastSpell("Light of the Martyr"); return; } // Flash of Light use as an emergency heal to save players facing death. if (WoW.CanCast("Flash of Light") && lowest <= 50 && !WoW.IsMoving) { WoW.CastSpell("Flash of Light"); return; } // Holy Light use to heal moderate to high damage. if (WoW.CanCast("Holy Light") && lowest <= 90 && !WoW.IsMoving) { WoW.CastSpell("Holy Light"); return; } if (WoW.CanCast("Tyr's Deliverance") && !WoW.IsMoving) { WoW.TargetNearestEnemy(); if (WoW.HasTarget && WoW.TargetIsEnemy) { WoW.CastSpell("Tyr's Deliverance"); } } }