Files
wow-weakauras/Complete Projects/Legion/Herb Sniffer/0.5/Direction.lua

65 lines
2.4 KiB
Lua

--EVERY FRAME TRIGGER
function()
if not WeakAurasSaved.HerbSniffer then WeakAurasSaved.HerbSniffer = {} end
if not WeakAurasSaved.HerbSniffer.CD then WeakAurasSaved.HerbSniffer.CD = 0 end
if not WeakAurasSaved.HerbSniffer.NoCD then WeakAurasSaved.HerbSniffer.NoCD = #aura_env.herbs end
local function range (val, min, max, max2)
val = 1 - (((max - val) / (max - min)) * max2)
return val
end
local id = aura_env.GetClosestHerb()
local hX, hY = aura_env.herbs[id]["X"], aura_env.herbs[id]["Y"]
local pX = GetPlayerMapPosition("player") or 0
local pY = select(2, GetPlayerMapPosition("player")) or 0
pX, pY = pX * 100, pY * 100
local X = pX - hX
local Y = pY - hY
local playerFace = GetPlayerFacing() or 0
local playerA = math.floor(playerFace * 100)
playerA = range(playerA, 0, 630, 360) - 1
playerA = - playerA
playerA = playerA - 90
if playerA < 0 then playerA = playerA + 360 end
aura_env.hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) * 100
WeakAurasSaved.HerbSniffer.hyp = aura_env.hyp
aura_env.angle = math.deg(math.atan2(Y, X))
aura_env.angle = aura_env.angle - playerA
aura_env.angle = aura_env.angle - 180
if aura_env.hyp < aura_env.wipeDistance then --When reach herb activate it's cooldown (herbcd[cd] = coords)
aura_env.herbs[id]["CD"] = math.floor(GetTime() + aura_env.cooldown)
WeakAurasSaved.HerbSniffer.CD = WeakAurasSaved.HerbSniffer.CD + 1
WeakAurasSaved.HerbSniffer.NoCD = WeakAurasSaved.HerbSniffer.NoCD - 1
aura_env.minID =
{
["X"] = 0,
["Y"] = 0,
["D"] = 10000,
["ID"] = 0
}
end
for k,v in ipairs(aura_env.herbs) do --if cooldown is up then insert back into proper array
local cd = aura_env.herbs[k]["CD"]
if cd > 0 then
if GetTime() > cd then
aura_env.herbs[k]["CD"] = 0
WeakAurasSaved.HerbSniffer.NoCD = WeakAurasSaved.HerbSniffer.NoCD + 1
WeakAurasSaved.HerbSniffer.CD = WeakAurasSaved.HerbSniffer.CD - 1
end
end
end
return true
end
--RESET_COUNTER
function()
WeakAurasSaved.HerbSniffer.CD = 0
WeakAurasSaved.HerbSniffer.NoCD = 200
end
--ANIMATION
function()
return - aura_env.angle
end
--INIT
if WeakAuras.IsOptionsOpen() then WeakAurasSaved.HerbSniffer.CD = 0; WeakAurasSaved.HerbSniffer.NoCD = 200 end