Files
wow-weakauras/Complete Projects/Legion/Herb Sniffer/Direction.lua
2024-08-24 22:43:07 +02:00

68 lines
2.6 KiB
Lua

--EVERY FRAME TRIGGER
function()
if not WeakAurasSaved.HerbSniffer then WeakAurasSaved.HerbSniffer = {} end
local function range (val, min, max, max2)
val = 1 - (((max - val) / (max - min)) * max2)
return val
end
local id = aura_env.GetClosestHerb()
if id > -1 then
if not aura_env.herbs then return false end
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"] = -1
}
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
else
return false
end
return true
end
--RESET_COUNTER
function()
WeakAurasSaved.HerbSniffer.CD = 0
WeakAurasSaved.HerbSniffer.NoCD = #aura_env.herbs
end
--ANIMATION
function()
return - aura_env.angle
end
--INIT
if WeakAuras.IsOptionsOpen() then WeakAurasSaved.HerbSniffer.CD = 0; WeakAurasSaved.HerbSniffer.NoCD = #aura_env.herbs end