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() { var TasteForBloodTime = WoW.PlayerBuffTimeRemaining("TasteForBlood"); var EnrageTime = WoW.PlayerBuffTimeRemaining("Enrage"); var FujiedaTime = WoW.PlayerBuffTimeRemaining("Fujieda"); var Bloodbathtime = WoW.PlayerBuffTimeRemaining("Bloodbath"); //validtargetmelee = WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <=5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible; //validtargetaoe = WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <=5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible && WoW.CountEnemyNPCsInRange >=2; Ragepoints = WoW.Rage; if (WoW.PlayerHealthPercent == 0 || WoW.IsMounted || WoW.PlayerIsChanneling || WoW.PlayerHasBuff("Bladestorm") || !WoW.IsInCombat) { return; } // Retarget stuff if (WoW.TargetHealthPercent == 0 && WoW.IsInCombat && WoW.RangeToTarget >= 5 && WoW.CountEnemyNPCsInRange >= 1 && !WoW.IsMounted && ConfigFile.ReadValue <bool>("Fury-Warrior-Lelefi", "AutoRetarget") || !WoW.HasTarget && WoW.IsInCombat && WoW.CountEnemyNPCsInRange >= 1 && WoW.RangeToTarget >= 1 && !WoW.IsMounted && ConfigFile.ReadValue <bool>("Fury-Warrior-Lelefi", "AutoRetarget")) { WoW.TargetNextEnemy(); Log.Write("Retarget", Color.Blue); return; } //Fujeda Upkeep /*if (WoW.CanCast("Bloodthirst") && FujiedaTime < 2000 && WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <=5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible) * { * WoW.CastSpell("Bloodthirst"); * Log.Write("Fujieda", Color.Green); * return; * }*/ // buff stuff if (UseCooldowns && WoW.HasTarget && WoW.RangeToTarget <= 5) { if (WoW.CanCast("DragonRoar") && level >= 100 && WoW.Talent(7) == 3) { WoW.CastSpell("DragonRoar"); } //if (WoW.CanCast("BattleCry") && level >= 60 && SetBoniListT21 <=0 && (WoW.Talent(7) == 3 && WoW.PlayerHasBuff("DragonRoarBuff") || WoW.Talent(7) != 3)) //{ // WoW.CastSpell("BattleCry"); //} if (combatRoutine.Type == RotationType.SingleTarget && WoW.CanCast("BattleCry") /*&& SetBoniListT21 >= 4*/ && WoW.CountEnemyNPCsInRange <= 1 && (WoW.IsSpellOnCooldown("Rampage") && WoW.Rage < 50 && battlecrycount >= 1 || battlecrycount == 0)) { WoW.CastSpell("BattleCry"); battlecrycount += 1; } if (WoW.CanCast("BattleCry") /*&& SetBoniListT21 >= 4*/ && WoW.PlayerHasBuff("Meat-Cleaver") && (combatRoutine.Type == RotationType.AOE || combatRoutine.Type == RotationType.SingleTarget && WoW.CountEnemyNPCsInRange >= 2 && ConfigFile.ReadValue <bool>("Fury-Warrior-Lelefi", "AutoAoE"))) { WoW.CastSpell("BattleCry"); } if (WoW.CanCast("Avatar") && WoW.Talent(3) == 3 && (WoW.PlayerHasBuff("BattleCryBuff") && ConfigFile.ReadValue <bool>("Fury-Warrior-Lelefi", "AvatarOnBoss") && WoW.HasBossTarget || WoW.PlayerHasBuff("BattleCryBuff") && !ConfigFile.ReadValue <bool>("Fury-Warrior-Lelefi", "AvatarOnBoss"))) { WoW.CastSpell("Avatar"); } if (WoW.CanCast("Bloodbath") && WoW.Talent(6) == 1 && (WoW.PlayerHasBuff("BattleCryBuff") || WoW.SpellCooldownTimeRemaining("BattleCry") >= 20000)) { WoW.CastSpell("Bloodbath"); } } //Autokick if (WoW.CanCast("Pummel") && WoW.TargetPercentCast >= Random.Next(50, 70) && WoW.TargetIsCastingAndSpellIsInterruptible && ConfigFile.ReadValue <bool>("Fury-Warrior-Lelefi", "Autokick") && WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible) { WoW.CastSpell("Pummel"); Log.Write("Pummel", Color.Green); return; } //Heal stuff if (WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible && ConfigFile.ReadValue <bool>("Fury-Warrior-Lelefi", "AutoRegeneration") && level >= 36 && WoW.PlayerHealthPercent <= 20) { if (WoW.CanCast("Enraged Regeneration")) { WoW.CastSpell("Enraged Regeneration"); } if (WoW.CanCast("Commanding Shout") && level >= 80) { WoW.CastSpell("Commanding Shout"); } if (WoW.CanCast("Bloodthirst")) { WoW.CastSpell("Bloodthirst"); return; } if (WoW.CanCast("Furious-Slash") && WoW.IsSpellOnCooldown("Bloodthirst")) { WoW.CastSpell("Furious-Slash"); return; } if (WoW.CanCast("Raging-Blow") && WoW.IsSpellOnCooldown("Bloodthirst") && WoW.IsSpellOnCooldown("Furious-Slash")) { WoW.CastSpell("Raging-Blow"); return; } Log.Write("Heal", Color.Green); return; } // T21 if (ConfigFile.ReadValue <bool>("Fury-Warrior-Lelefi", "T21Rotation") && !ConfigFile.ReadValue <bool>("Fury-Warrior-Lelefi", "T20Rotation")) { // Aoe stuff T21 Unbuffed + auto if (combatRoutine.Type == RotationType.AOE && WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible && WoW.CountEnemyNPCsInRange >= 2 && !WoW.PlayerHasBuff("BattleCryBuff") && !ConfigFile.ReadValue <bool>("Fury-Warrior-Lelefi", "AutoAoE") || combatRoutine.Type == RotationType.SingleTarget && WoW.CountEnemyNPCsInRange >= 3 && ConfigFile.ReadValue <bool>("Fury-Warrior-Lelefi", "AutoAoE") && WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible && WoW.CountEnemyNPCsInRange >= 2 && !WoW.PlayerHasBuff("BattleCryBuff")) { if (WoW.CanCast("Bloodthirst") && Ragepoints < 100 && WoW.PlayerHasBuff("Meat-Cleaver")) { WoW.CastSpell("Bloodthirst"); return; } if (WoW.CanCast("Rampage") && WoW.PlayerHasBuff("Meat-Cleaver") && Ragepoints >= 100) { WoW.CastSpell("Rampage"); Log.Write("Rampage", Color.Blue); return; } if (WoW.CanCast("Whirlwind") && !WoW.PlayerHasBuff("Meat-Cleaver")) { WoW.CastSpell("Whirlwind"); return; } } // Aoe stuff T21 Buffed + auto if (combatRoutine.Type == RotationType.AOE && WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible && WoW.CountEnemyNPCsInRange >= 2 && WoW.PlayerHasBuff("BattleCryBuff") && !ConfigFile.ReadValue <bool>("Fury-Warrior-Lelefi", "AutoAoE") || combatRoutine.Type == RotationType.SingleTarget && WoW.CountEnemyNPCsInRange >= 3 && ConfigFile.ReadValue <bool>("Fury-Warrior-Lelefi", "AutoAoE") && WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible && WoW.CountEnemyNPCsInRange >= 2 && WoW.PlayerHasBuff("BattleCryBuff")) { if (WoW.CanCast("Rampage") && WoW.PlayerHasBuff("Meat-Cleaver") && Ragepoints >= 85) { WoW.CastSpell("Rampage"); Log.Write("Rampage", Color.Red); return; } if (WoW.CanCast("OdynsFury")) { WoW.CastSpell("OdynsFury"); Log.Write("OdynsFury", Color.Pink); return; } if (WoW.CanCast("Whirlwind") && !WoW.PlayerHasBuff("Meat-Cleaver")) { WoW.CastSpell("Whirlwind"); return; } if (WoW.CanCast("Bloodthirst") && Ragepoints < 100 && WoW.PlayerHasBuff("Meat-Cleaver")) { WoW.CastSpell("Bloodthirst"); return; } } //T21 // Do Single Target Unbuffed Stuff here T21 if (combatRoutine.Type == RotationType.SingleTarget && WoW.TargetHealthPercent >= 21 && !WoW.PlayerHasBuff("BattleCryBuff") && WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible) { if (WoW.CanCast("Rampage") && (Ragepoints >= 100 || WoW.SpellCooldownTimeRemaining("BattleCry") < 1000 && Ragepoints >= 85 && UseCooldowns)) { WoW.CastSpell("Rampage"); return; } if (WoW.CanCast("Execute") && WoW.PlayerHasBuff("Ayala")) { WoW.CastSpell("Execute"); return; } if (WoW.CanCast("Bloodthirst") && Ragepoints < 100) { WoW.CastSpell("Bloodthirst"); Log.Write("Bloodthirst", Color.Red); return; } if (WoW.CanCast("Whirlwind") && (WoW.PlayerHasBuff("Wrecking-Ball") && WoW.PlayerHasBuff("Enrage") && Ragepoints < 100)) { WoW.CastSpell("Whirlwind"); return; } if (WoW.CanCast("Raging-Blow") && WoW.PlayerHasBuff("Enrage") && Ragepoints < 100 && WoW.SpellCooldownTimeRemaining("Bloodthirst") > 650) { WoW.CastSpell("Raging-Blow"); return; } if (WoW.CanCast("Furious-Slash") && WoW.SpellCooldownTimeRemaining("Bloodthirst") > 650 && WoW.Rage < 100) { WoW.CastSpell("Furious-Slash"); return; } } // Do Single Target Buffed Stuff here T21 if (combatRoutine.Type == RotationType.SingleTarget && WoW.TargetHealthPercent >= 21 && WoW.PlayerHasBuff("BattleCryBuff") && WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible) { if (WoW.CanCast("Rampage") && (WoW.PlayerHasBuff("Massacre") || Ragepoints >= 85)) { WoW.CastSpell("Rampage"); return; } if (WoW.CanCast("OdynsFury") && WoW.Rage < 100) { WoW.CastSpell("OdynsFury"); Log.Write("OdynsFury", Color.Pink); return; } if (WoW.CanCast("Whirlwind") && WoW.PlayerHasBuff("Wrecking-Ball") && Ragepoints < 100) { WoW.CastSpell("Whirlwind"); return; } if (WoW.CanCast("Bloodthirst") && Ragepoints < 100 && WoW.SpellCooldownTimeRemaining("BattleCry") < 49000) { WoW.CastSpell("Bloodthirst"); Log.Write("Bloodthirst", Color.Green); return; } if (WoW.CanCast("Raging-Blow") && Ragepoints < 100 && WoW.SpellCooldownTimeRemaining("Bloodthirst") > 650 && WoW.PlayerHasBuff("Enrage")) { WoW.CastSpell("Raging-Blow"); return; } } // Do Single Target Unbuffed Execute Stuff here T21 if (combatRoutine.Type == RotationType.SingleTarget && WoW.TargetHealthPercent <= 20 && level >= 60 && WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible && !WoW.PlayerHasBuff("BattleCryBuff") && !WoW.IsEquippedItem("SouloftheBattlelord")) { if (WoW.CanCast("Bloodthirst") && Ragepoints < 25) { WoW.CastSpell("Bloodthirst"); return; } if (WoW.CanCast("Execute") && (WoW.PlayerHasBuff("Ayala") || (Ragepoints >= 25 || (!WoW.PlayerHasBuff("Juggernaut") && Ragepoints >= 25 || WoW.PlayerBuffTimeRemaining("Juggernaut") < 2000 && Ragepoints >= 25)))) { WoW.CastSpell("Execute"); return; } if (WoW.CanCast("Raging-Blow") && WoW.PlayerHasBuff("Enrage") && Ragepoints < 25) { WoW.CastSpell("Raging-Blow"); return; } if (WoW.CanCast("Furious-Slash") && WoW.SpellCooldownTimeRemaining("Bloodthirst") > 650 && Ragepoints < 25) { WoW.CastSpell("Furious-Slash"); return; } } // Do Single Target Buffed Execute Stuff here T21 if (combatRoutine.Type == RotationType.SingleTarget && WoW.TargetHealthPercent <= 20 && level >= 60 && WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible && WoW.PlayerHasBuff("BattleCryBuff") && !WoW.IsEquippedItem("SouloftheBattlelord")) { if (WoW.CanCast("Execute") && (WoW.PlayerHasBuff("Ayala") || (Ragepoints >= 25 || (!WoW.PlayerHasBuff("Juggernaut") && Ragepoints >= 25 || WoW.PlayerBuffTimeRemaining("Juggernaut") < 2000 && Ragepoints >= 25)))) { WoW.CastSpell("Execute"); return; } if (WoW.CanCast("Rampage") && (WoW.PlayerHasBuff("Massacre") && (!WoW.PlayerHasBuff("Enrage") || EnrageTime < 1000))) { WoW.CastSpell("Rampage"); return; } if (WoW.CanCast("Bloodthirst") && Ragepoints < 25) { WoW.CastSpell("Bloodthirst"); return; } } // Do Single Target Buffed Execute Stuff here T21 SouloftheBattlelord if (combatRoutine.Type == RotationType.SingleTarget && WoW.TargetHealthPercent <= 20 && level >= 60 && WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible && !WoW.PlayerHasBuff("BattleCryBuff") && WoW.IsEquippedItem("SouloftheBattlelord")) { if (WoW.CanCast("Execute") && (WoW.PlayerHasBuff("Ayala") || (Ragepoints >= 25 || (!WoW.PlayerHasBuff("Juggernaut") && Ragepoints >= 25 || WoW.PlayerBuffTimeRemaining("Juggernaut") < 2000 && Ragepoints >= 25)))) { WoW.CastSpell("Execute"); return; } if (WoW.CanCast("Rampage") && (WoW.PlayerHasBuff("Massacre") && (!WoW.PlayerHasBuff("Enrage") || EnrageTime < 1000))) { WoW.CastSpell("Rampage"); return; } if (WoW.CanCast("Bloodthirst") && Ragepoints < 25) { WoW.CastSpell("Bloodthirst"); return; } } } // T20 if (!ConfigFile.ReadValue <bool>("Fury-Warrior-Lelefi", "T21Rotation") && ConfigFile.ReadValue <bool>("Fury-Warrior-Lelefi", "T20Rotation")) { //AutoAoET20 if (combatRoutine.Type == RotationType.SingleTarget && WoW.CountEnemyNPCsInRange >= 3 && ConfigFile.ReadValue <bool>("Fury-Warrior-Lelefi", "AutoAoE") && WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible && SetBoniListT21 <= 0) { if (WoW.CanCast("Bladestorm") && WoW.Talent(7) == 1 && EnrageTime > 2000) { WoW.CastSpell("Bladestorm"); return; } if (WoW.CanCast("Bloodthirst") && FujiedaTime < 2000) { WoW.CastSpell("Bloodthirst"); Log.Write("Fujieda", Color.Green); return; } if (WoW.CanCast("Rampage") && Ragepoints >= 100 && level >= 18 && WoW.PlayerHasBuff("Meat-Cleaver") || WoW.CanCast("Rampage") && WoW.PlayerHasBuff("Massacre") && WoW.PlayerHasBuff("Meat-Cleaver")) { WoW.CastSpell("Rampage"); return; } if (WoW.CanCast("Raging-Blow") && WoW.PlayerHasBuff("Enrage") && WoW.PlayerHasBuff("Frothing") && Ragepoints < 100 && WoW.CountEnemyNPCsInRange < 4) { WoW.CastSpell("Raging-Blow"); return; } if (WoW.CanCast("OdynsFury") && level >= 101 && WoW.SpellCooldownTimeRemaining("Raging-Blow") > 0 && WoW.PlayerHasBuff("Enrage") && WoW.PlayerHasBuff("BattleCryBuff")) { WoW.CastSpell("OdynsFury"); Log.Write("OdynsFury", Color.Green); return; } if (WoW.CanCast("Bloodthirst") && Ragepoints < 90 && !WoW.PlayerHasBuff("Enrage") && level >= 10 && WoW.PlayerHasBuff("Meat-Cleaver")) { WoW.CastSpell("Bloodthirst"); return; } if (WoW.CanCast("Whirlwind") && WoW.PlayerHasBuff("Wrecking-Ball") && WoW.Talent(3) == 1 && WoW.PlayerHasBuff("Enrage") || WoW.CanCast("Whirlwind") && !WoW.PlayerHasBuff("Meat-Cleaver") && WoW.SpellCooldownTimeRemaining("Bloodthirst") <= 1000) { WoW.CastSpell("Whirlwind"); return; } if (WoW.CanCast("Whirlwind")) { WoW.CastSpell("Whirlwind"); return; } Log.Write("AoE", Color.Green); return; } // Do Single Target Unbuffed Stuff here T20 if (combatRoutine.Type == RotationType.SingleTarget && WoW.TargetHealthPercent >= 21 && !WoW.PlayerHasBuff("BattleCryBuff") && WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible) { if (WoW.CanCast("Raging-Blow") && WoW.PlayerHasBuff("Enrage") && WoW.PlayerHasBuff("Frothing") && Ragepoints < 100) { WoW.CastSpell("Raging-Blow"); return; } if (WoW.CanCast("Execute") && WoW.PlayerHasBuff("Ayala") && WoW.SpellCooldownTimeRemaining("Raging-Blow") > 1000 || WoW.CanCast("Execute") && WoW.PlayerHasBuff("Ayala") && WoW.PlayerHasBuff("Massacre")) { WoW.CastSpell("Execute"); return; } if (WoW.CanCast("Rampage") && Ragepoints >= 100 && level >= 18 || WoW.CanCast("Rampage") && WoW.PlayerHasBuff("Massacre")) { WoW.CastSpell("Rampage"); return; } if (WoW.CanCast("Bloodthirst")) { WoW.CastSpell("Bloodthirst"); return; } if (WoW.CanCast("Raging-Blow") && level >= 13) { WoW.CastSpell("Raging-Blow"); return; } if (WoW.CanCast("Whirlwind") && WoW.PlayerHasBuff("Wrecking-Ball") && WoW.Talent(3) == 1 && WoW.PlayerHasBuff("Enrage")) { WoW.CastSpell("Whirlwind"); return; } if (WoW.CanCast("Furious-Slash") && EnrageTime < 1000 && WoW.SpellCooldownTimeRemaining("Bloodthirst") > 1000 && Ragepoints < 90) { WoW.CastSpell("Furious-Slash"); return; } } // Do Single Target Buffed Stuff here T20 if (combatRoutine.Type == RotationType.SingleTarget && WoW.TargetHealthPercent >= 21 && WoW.PlayerHasBuff("BattleCryBuff") && WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible && WoW.Talent(6) == 3) { if (WoW.CanCast("Rampage") && WoW.PlayerHasBuff("Massacre") && EnrageTime <= 1000) { WoW.CastSpell("Rampage"); return; } if (WoW.CanCast("Execute") && WoW.PlayerHasBuff("Ayala") && WoW.SpellCooldownTimeRemaining("Raging-Blow") > 1000 || WoW.CanCast("Execute") && WoW.PlayerHasBuff("Ayala") && WoW.PlayerHasBuff("Massacre")) { WoW.CastSpell("Execute"); return; } if (WoW.CanCast("Raging-Blow") && WoW.PlayerHasBuff("Enrage") && WoW.PlayerHasBuff("Frothing") && Ragepoints < 100) { WoW.CastSpell("Raging-Blow"); return; } if (WoW.CanCast("Rampage") && Ragepoints >= 100) { WoW.CastSpell("Rampage"); return; } if (WoW.CanCast("OdynsFury") && level >= 101 && WoW.SpellCooldownTimeRemaining("Raging-Blow") > 0 && WoW.PlayerHasBuff("Enrage")) { WoW.CastSpell("OdynsFury"); Log.Write("OdynsFury", Color.Green); return; } if (WoW.CanCast("Bloodthirst") && EnrageTime <= 1000) { WoW.CastSpell("Bloodthirst"); return; } if (WoW.CanCast("Whirlwind") && WoW.PlayerHasBuff("Wrecking-Ball")) { WoW.CastSpell("Whirlwind"); return; } if (WoW.CanCast("Raging-Blow")) { WoW.CastSpell("Raging-Blow"); return; } if (WoW.CanCast("Bloodthirst")) { WoW.CastSpell("Bloodthirst"); return; } if (WoW.CanCast("Furious-Slash") && EnrageTime < 1000 && WoW.SpellCooldownTimeRemaining("Bloodthirst") > 1000 && Ragepoints < 90) { WoW.CastSpell("Furious-Slash"); return; } } // Do Single Target Execute Stuff here T20 if (combatRoutine.Type == RotationType.SingleTarget && WoW.TargetHealthPercent <= 20 && level >= 60 && WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible) { if (WoW.CanCast("Execute") && !WoW.PlayerHasBuff("Juggernaut") && Ragepoints >= 25 || WoW.CanCast("Execute") && WoW.PlayerBuffTimeRemaining("Juggernaut") < 2000 && Ragepoints >= 25 || WoW.CanCast("Execute") && WoW.SpellCooldownTimeRemaining("BattleCry") < 5000 && Ragepoints >= 25 || WoW.CanCast("Execute") && WoW.PlayerHasBuff("Ayala") || WoW.CanCast("Execute") && Ragepoints >= 25 && WoW.PlayerHasBuff("BattleCryBuff") && WoW.PlayerHasBuff("Enrage") && WoW.PlayerHasBuff("Frothing")) { WoW.CastSpell("Execute"); return; } if (WoW.CanCast("Rampage") && WoW.PlayerHasBuff("Massacre") && EnrageTime < 1000) { WoW.CastSpell("Rampage"); return; } if (WoW.CanCast("Execute") && Ragepoints >= 25 && WoW.Talent(6) != 3 || WoW.CanCast("Execute") && Ragepoints >= 100 && WoW.Talent(6) == 3) { WoW.CastSpell("Execute"); return; } if (WoW.CanCast("OdynsFury") && level >= 101 && WoW.SpellCooldownTimeRemaining("Raging-Blow") > 0 && WoW.PlayerHasBuff("Enrage") && WoW.PlayerHasBuff("BattleCryBuff")) { WoW.CastSpell("OdynsFury"); Log.Write("OdynsFury", Color.Green); return; } if (WoW.CanCast("Bloodthirst")) { WoW.CastSpell("Bloodthirst"); return; } if (WoW.CanCast("Furious-Slash") && SetBoniListT20 >= 2) { WoW.CastSpell("Furious-Slash"); return; } if (WoW.CanCast("Raging-Blow")) { WoW.CastSpell("Raging-Blow"); return; } if (WoW.CanCast("Furious-Slash") && EnrageTime < 1000 && WoW.SpellCooldownTimeRemaining("Bloodthirst") > 1000 && Ragepoints < 90) { WoW.CastSpell("Furious-Slash"); return; } } // Aoe stuff if (combatRoutine.Type == RotationType.AOE && WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <= 5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible && !ConfigFile.ReadValue <bool>("Fury-Warrior-Lelefi", "AutoAoE")) { if (WoW.CanCast("Bladestorm") && WoW.Talent(7) == 1 && EnrageTime > 2000) { WoW.CastSpell("Bladestorm"); return; } if (WoW.CanCast("Rampage") && Ragepoints >= 100 && level >= 18 && WoW.PlayerHasBuff("Meat-Cleaver") || WoW.CanCast("Rampage") && WoW.PlayerHasBuff("Massacre") && WoW.PlayerHasBuff("Meat-Cleaver")) { WoW.CastSpell("Rampage"); return; } if (WoW.CanCast("Raging-Blow") && WoW.PlayerHasBuff("Enrage") && WoW.PlayerHasBuff("Frothing") && Ragepoints < 100 && WoW.CountEnemyNPCsInRange < 4) { WoW.CastSpell("Raging-Blow"); return; } if (WoW.CanCast("OdynsFury") && level >= 101 && WoW.SpellCooldownTimeRemaining("Raging-Blow") > 0 && WoW.PlayerHasBuff("Enrage") && WoW.PlayerHasBuff("BattleCryBuff")) { WoW.CastSpell("OdynsFury"); Log.Write("OdynsFury", Color.Green); return; } if (WoW.CanCast("Bloodthirst") && Ragepoints < 90 && !WoW.PlayerHasBuff("Enrage") && level >= 10 && WoW.PlayerHasBuff("Meat-Cleaver")) { WoW.CastSpell("Bloodthirst"); return; } if (WoW.CanCast("Whirlwind") && WoW.PlayerHasBuff("Wrecking-Ball") && WoW.Talent(3) == 1 && WoW.PlayerHasBuff("Enrage") || WoW.CanCast("Whirlwind") && !WoW.PlayerHasBuff("Meat-Cleaver") && WoW.SpellCooldownTimeRemaining("Bloodthirst") <= 1500) { WoW.CastSpell("Whirlwind"); return; } if (WoW.CanCast("Whirlwind")) { WoW.CastSpell("Whirlwind"); return; } Log.Write("AoE", Color.Green); return; } } /* * * //Anti Fear * //if (WoW.CanCast("Berserker Rage") && WoW.IsInCombat && WoW.PlayerHasDebuff("Fear") && ConfigFile.ReadValue<bool>("Fury-Warrior-Lelefi", "AntiFear")) * //{ * // WoW.CastSpell("Berserker Rage"); * // return; * //} * * //if (WoW.CanCast("Commanding Shout") && WoW.PartyAverageHealthPercent <= 50 && level >= 80 && ConfigFile.ReadValue<bool>("Fury-Warrior-Lelefi", "AutoPartyCommandingShout")) * //{ * // WoW.CastSpell("Commanding Shout"); * // return; * //} * * //leveling * if (combatRoutine.Type == RotationType.SingleTarget && WoW.TargetHealthPercent <= 20 && level <= 59 && WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <=5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible) * { * if (WoW.CanCast("Execute") && Ragepoints >= 25 && level >= 8) * { * WoW.CastSpell("Execute"); * return; * } * * if (WoW.CanCast("Bloodthirst") && Ragepoints < 25 && level >= 10) * { * WoW.CastSpell("Bloodthirst"); * return; * } * * if (WoW.CanCast("Raging-Blow") && Ragepoints < 25 && WoW.IsSpellOnCooldown("Bloodthirst") && level >= 13) * { * WoW.CastSpell("Raging-Blow"); * return; * } * * if (WoW.CanCast("Furious-Slash") && WoW.IsSpellOnCooldown("Raging-Blow") && !WoW.IsSpellOnGCD("Bloodthirst") && level >= 10 && !WoW.IsSpellOnGCD("Raging-Blow") && * TasteForBloodTime <= 4000) * { * WoW.CastSpell("Furious-Slash"); * return; * } * } * * if (combatRoutine.Type == RotationType.SingleTarget && level <= 9 && WoW.PlayerClassSpec == "Warrior-Arms" && WoW.HasTarget && WoW.TargetIsEnemy && WoW.RangeToTarget <=5 && WoW.IsInCombat && !WoW.PlayerIsChanneling && WoW.TargetIsVisible) * { * if (WoW.CanCast("Slam") && WoW.IsSpellOnCooldown("Mortal Strike") && Ragepoints >= 20) * { * WoW.CastSpell("Slam"); * return; * } * * if (WoW.CanCast("Mortal Strike") && Ragepoints >= 20 && level >= 5) * { * WoW.CastSpell("Mortal Strike"); * return; * } * } */ if (combatRoutine.Type == RotationType.Cleave) // { } }
public override void Pulse() { if (WoW.PlayerHealthPercent == 0 || WoW.IsMounted) { return; } if (!WoW.HasTarget || !WoW.TargetIsEnemy) { return; } if (WoW.PlayerIsChanneling) { return; } bool range = WoW.IsSpellInRange("DemonsBite"); int fury = WoW.Fury; int fury_max = 140; int fury_deficit = fury_max - WoW.Fury; var eb_cd = WoW.SpellCooldownTimeRemaining("EyeBeam"); var meta_cd = WoW.SpellCooldownTimeRemaining("Metamorphosis"); var nemisis_cd = WoW.SpellCooldownTimeRemaining("Nemesis"); var chaos_blades_cd = WoW.SpellCooldownTimeRemaining("ChaosBlades"); var pummel = WoW.TargetIsCastingAndSpellIsInterruptible && WoW.TargetPercentCast > 50; if (WoW.TargetHealthPercent == 0) { WoW.TargetNextEnemy(); } if (WoW.CanCast("ConsumeMagic") && pummel) { WoW.CastSpell("ConsumeMagic"); return; } if (WoW.CanCast("ArcaneTorrent") && WoW.IsSpellOnCooldown("ConsumeMagic") && pummel) { WoW.CastSpell("ArcaneTorrent"); return; } if (WoW.Talent(7) != 3) { if (WoW.HasBossTarget && !WoW.IsSpellOnCooldown("FOTI") && WoW.IsSpellInRange("ChaosStrike")) { WoW.CastSpell("FOTI"); return; } if (WoW.CanCast("FOTI") && !WoW.IsSpellOnCooldown("FOTI") && WoW.IsSpellInRange("ChaosStrike") && WoW.CountEnemyNPCsInRange >= 2 && !WoW.IsMoving) { WoW.CastSpell("FOTI"); return; } if (WoW.CanCast("EyeBeam") && WoW.Fury > 50 && WoW.CountEnemyNPCsInRange >= 2 && !WoW.IsMoving) { WoW.CastSpell("EyeBeam"); return; } if (WoW.PlayerHasBuff("Metamorphosis")) { if (WoW.CanCast("Nemesis") && !WoW.IsSpellOnCooldown("Nemesis") && WoW.Talent(5) == 3) { WoW.CastSpell("Nemesis"); } if (WoW.CanCast("ChaosBlades") && !WoW.IsSpellOnCooldown("ChaosBlades") && WoW.Talent(7) == 1) { WoW.CastSpell("ChaosBlades"); } if (WoW.CanCast("Deathsweep") && !WoW.IsSpellOnCooldown("Deathsweep") && WoW.IsSpellInRange("Annihilation") && WoW.Fury > 15) { WoW.CastSpell("Deathsweep"); return; } if (WoW.CanCast("Annihilation") && !WoW.IsSpellOnCooldown("Annihilation") && WoW.IsSpellInRange("Annihilation") && WoW.Fury > 40) { WoW.CastSpell("Annihilation"); return; } if (WoW.CanCast("Felblade") && WoW.IsSpellInRange("Annihilation")) { WoW.CastSpell("Felblade"); return; } } if (WoW.CanCast("BladeDance") && !WoW.IsSpellOnCooldown("BladeDance") && WoW.IsSpellInRange("ChaosStrike") && WoW.Fury > 15) { WoW.CastSpell("BladeDance"); return; } if (WoW.CanCast("Felblade") && WoW.IsSpellInRange("ChaosStrike") && WoW.Fury < 110) { WoW.CastSpell("Felblade"); return; } if (WoW.CanCast("ChaosStrike") && !WoW.IsSpellOnCooldown("ChaosStrike") && WoW.IsSpellInRange("ChaosStrike") && WoW.Fury > 40) { WoW.CastSpell("ChaosStrike"); return; } if (WoW.CanCast("Felblade") && WoW.IsSpellInRange("ChaosStrike")) { WoW.CastSpell("Felblade"); return; } if (WoW.CanCast("ThrowGlaives") && WoW.IsInCombat) { WoW.CastSpell("ThrowGlaives"); return; } } if (WoW.CanCast("ThrowGlaives") && WoW.RangeToTarget >= 8 && WoW.RangeToTarget <= 30) { WoW.CastSpell("ThrowGlaives"); return; } if (WoW.Talent(7) == 3 && range) { if (WoW.CanCast("Deathsweep") && (WoW.CountEnemyNPCsInRange >= 5 || WoW.Talent(3) == 2) && fury >= 35 && WoW.PlayerHasBuff("Metamorphosis")) { WoW.CastSpell("Deathsweep"); return; } if (WoW.CanCast("FelEruption") && fury >= 10 && WoW.Talent(5) == 2) { WoW.CastSpell("FelEruption"); return; } if (WoW.CanCast("FOTI") && (WoW.CountEnemyNPCsInRange >= 2 || WoW.HasBossTarget)) { WoW.CastSpell("FOTI"); return; } if (WoW.CanCast("BladeDance") && (WoW.CountEnemyNPCsInRange >= 5 || WoW.Talent(3) == 2) && fury >= 35 && eb_cd > 5000 && meta_cd > 0 && !WoW.PlayerHasBuff("Metamorphosis")) { WoW.CastSpell("BladeDance"); return; } if (WoW.CanCast("EyeBeam") && fury >= 30 && (WoW.CountEnemyNPCsInRange >= 2 || !WoW.PlayerHasBuff("Metamorphosis"))) { WoW.CastSpell("EyeBeam"); return; } if (WoW.CanCast("Annihilation") && fury >= 40 && WoW.PlayerHasBuff("Metamorphosis")) { WoW.CastSpell("Annihilation"); return; } if (WoW.CanCast("ChaosStrike") && fury >= 40 && !WoW.PlayerHasBuff("Metamorphosis")) { WoW.CastSpell("ChaosStrike"); return; } if (WoW.CanCast("DemonsBite")) { WoW.CastSpell("DemonsBite"); return; } } }