Skip to content

Instantly share code, notes, and snippets.

@brandonjank
Last active August 29, 2015 14:04
Show Gist options
  • Save brandonjank/85b08a0bf5ca11eeb61a to your computer and use it in GitHub Desktop.
Save brandonjank/85b08a0bf5ca11eeb61a to your computer and use it in GitHub Desktop.
-- Backburn's Survival Hunter Rotation
-- Updated on July 17th, 2014.
-- PLAYER CONTROLLED: Rabid MUST be on Auto-Cast for Stampede pets to use them :)
-- SUGGESTED TALENTS:
-- CONTROLS: Pause - Left Control, Explosive/Ice/Snake Traps - Left Alt, Freezing Trap - Right Alt, Scatter Shot - Right Control
local class = 'Hunter'
local spec = 'Survival'
-- COMBAT
local combat = {
-- Rotation Utilities
-- TODO: Explosive Trap timer cooldown OSD
-- cant place traps without target?
-- TODO: DPS Test Function
pause('Pause Rotation', function()
return modifier('lcontrol') -- Pause Key
or '@bbLib.bossMods' -- Boss Pause
or 'player.buff(5384)' -- Feign Death
end)
--bbLib.BGFlag
macro('/targetenemy [noexists]', function()
return toggle('autotarget') and !unit('target').exists()
end),
macro('/targetenemy [dead]', function()
return toggle('autotarget') and unit('target').exists() and unit('target').dead()
end),
-- Interrupts
spell(147362, unit('target'), function() -- Counter Shot
return unit('target').range() < 40 and unit('target').randinterrupt()
end),
-- Pet
spell(883, unit('player'), function() -- Call Pet 1
return toggle('callpet') and !unit('pet').exists()
end),
spell(55709, unit('pet'), function() -- Heart of the Phoenix
return toggle('callpet') and unit('pet').dead()
end),
spell(136, unit('pet'), function() -- Mend Pet
return unit('pet').exists() and unit('pet').health() < 50 and !unit('pet').buff('136') and unit('pet').range() < 40
end),
-- PvP Abilities
spell(53271, unit('player'), function() -- Master's Call
return player.state.disorient or player.state.stun or player.state.root or player.state.snare
end),
spell(19503, unit('target'), function() -- Scatter Shot on Target
return toggle('pvpmode') and unit('target').exists() and unit('target').enemy() and unit('target').alive() and !unit('target').status('disorient')
and !unit('target').status('sleep') and !unit('target').status('incapacitate') and !unit('target').status('fear') and !unit('target').status('misc') and !unit('target').status('root')
and !unit('target').status('stun') and !unit('target').status('snare') and !unit('target').status('immune', 'all') and !unit('target').status('immune', 'disorient')
end),
spell(19503, unit('mouseover'), function() -- Scatter Shot on Mouseover
return (toggle('mouseovers') or modifier('rcontrol')) and toggle('pvpmode') and unit('mouseover').exists() and unit('mouseover').enemy() and unit('mouseover').alive() and !unit('mouseover').status('disorient')
and !unit('mouseover').status('sleep') and !unit('mouseover').status('incapacitate') and !unit('mouseover').status('fear') and !unit('mouseover').status('misc') and !unit('mouseover').status('root')
and !unit('mouseover').status('stun') and !unit('mouseover').status('snare') and !unit('mouseover').status('immune', 'all') and !unit('mouseover').status('immune', 'disorient')
end),
}
local nocombat = {
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment