Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
136 changes: 126 additions & 10 deletions defaults/ProtipperDruid.lua
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,133 @@ Protipper.SPEC_LIST["Balance"] = {
}

Protipper.SPEC_LIST["Feral"] = {
preparation = {
-- You need no preparation, your body should always be ready.
},
default = {
{
"Auto Attack",
function(api)
return true
preparation = {
-- You need no preparation, your body should always be ready.
{
"Mark of the Wild",
function(api)
return not api.Effect("Mark of the Wild", "player").isActive
end
},

{
"Cat Form",
function(api)
return not api.Effect("Cat Form", "player").isActive
end
}
},
default = {
{
"Tiger's Fury",
function(api)
local ready = api.Spell("Tiger's Fury").isReady
local energy = api.Status("player").currentPower

return ready and energy <= 35
end
},
{
"Incarnation: King of the Jungle",
function(api)
return api.Spell("Incarnation: King of the Jungle").isReady
end
},
{
"Berserk",
function(api)
return api.Spell("Berserk").isReady
end
},
{
"Savage Roar",
function(api)
return api.Effect("Savage Roar", "player").remainingDuration < 1
and api.Status("player").comboPoints > 0
end
},
{
"Rip",
function(api)
if (api.Effect("Predatory Swiftness", "player").isActive) then
return false
end
}
}
local combo = api.Status("player").comboPoints
local rip = api.Effect("Rip", "target").remainingDuration

return combo == 5 and rip < 3
end
},
{
"Rake",
function(api)
local rake = api.Effect("Rake", "target").remainingDuration
local blood = api.Effect("Bloodtalons", "player").isActive
local combo = api.Status("player").comboPoints
return blood and (rake <= 10) and (combo < 5)
end
},
{
"Ferocious Bite",
function(api)
if (api.Effect("Predatory Swiftness", "player").isActive) then
return false
end
local target = api.Status("target")
local fraction = target.currentHealth / target.maxHealth
local combo = target.comboPoints

return combo == 5 and fraction < 0.25
end
},
{
"Ferocious Bite",
function(api)
if (api.Effect("Predatory Swiftness", "player").isActive) then
return false
end
local energy = api.Status("player").currentPower
local combo = api.Status("target").comboPoints
local blood = api.Effect("Bloodtalons", "player").isActive

return energy >= 50 and (combo == 5 or (blood and combo >= 3))
end
},
{
"Healing Touch",
function(api)
local combo = api.Status("player").comboPoints
local pred = api.Effect("Predatory Swiftness", "player")
local duration = pred.remainingDuration
local active = pred.isActive

return (combo >= 4 and duration >= 0.5) or
(duration < 2 and active)
end
},
{
"Rake",
function(api)
local rake = api.Effect("Rake", "target").remainingDuration
return rake < 1
end
},
{
"Moonfire",
function(api)
local lunar = api.Talent("Lunar Inspiration").isActive
local moonfire = api.Effect("Moonfire", "target").remainingDuration
return lunar and (moonfire < 1)
end
},
{
"Shred",
function(api)
return (not api.Effect("Bloodtalons", "player").isActive)
or api.Status("player").comboPoints <= 2
end
}
}
}

Protipper.SPEC_LIST["Guardian"] = {
Expand Down