EVERY FRAME function() local function range (val, min, max, max2) val = 1 - (((max - val) / (max - min)) * max2) return val end local pX = UnitPosition("player") or 0 local pY = select(2,UnitPosition("player")) or 0 local tX = UnitPosition("Alurielle") or 0 local tY = select(2,UnitPosition("Alurielle")) or 0 local X = pX - tX local Y = pY - tY 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))) aura_env.angle = math.deg(math.atan2(X,Y)) if aura_env.angle < 0 then aura_env.angle = aura_env.angle + 360 end aura_env.angle = aura_env.angle - playerA end ANIMATION function() return - aura_env.angle end INIT aura_env.angle = 0