diff --git a/.luacheckrc b/.luacheckrc index 7558575..ed1f3df 120000 --- a/.luacheckrc +++ b/.luacheckrc @@ -1,4 +1,4 @@ -globals = { "CykaPersistentData", "CreateFrame", "GetItemInfo" } +globals = { "CykaPersistentData", "CreateFrame", "GetItemInfo", "aura_env" } unused_args = false max_line_length = 150 exclude_files = { "Meta/" } diff --git a/.luarc.json b/.luarc.json index 6a49ab0..5953b55 120000 --- a/.luarc.json +++ b/.luarc.json @@ -7,5 +7,8 @@ "diagnostics.disable": [ "unused-local", "unused-vararg" + ], + "diagnostics.globals": [ + "aura_env" ] } diff --git a/AttackSpeedTest.lua b/AttackSpeedTest.lua index 1d16f13..ec62382 100644 --- a/AttackSpeedTest.lua +++ b/AttackSpeedTest.lua @@ -4,52 +4,55 @@ --Look at tolerances as well local dataSet2s = { - [1]=540390408.9506, - [2]=540392394.9163, - [3]=540394398.5326, - [4]=540396409.5288, - [5]=540398396.6414, - [6]=540400397.0754, - [7]=540402384.8113, - [8]=540404385.3304, - [9]=540406398.99, - [10]=540408386.472, - [11]=540410386.9851, - [12]=540412374.8497, - [13]=540414375.1427, - [14]=540416373.0995, - [15]=540418376.9931, - [16]=540420390.6971 + [1] = 540390408.9506, + [2] = 540392394.9163, + [3] = 540394398.5326, + [4] = 540396409.5288, + [5] = 540398396.6414, + [6] = 540400397.0754, + [7] = 540402384.8113, + [8] = 540404385.3304, + [9] = 540406398.99, + [10] = 540408386.472, + [11] = 540410386.9851, + [12] = 540412374.8497, + [13] = 540414375.1427, + [14] = 540416373.0995, + [15] = 540418376.9931, + [16] = 540420390.6971, } local dataSet1p5s = { - [1]=541651364.1916, - [2]=541652857.9058, - [3]=541654365.8491, - [4]=541655858.3292, - [5]=541657352.4962, - [6]=541658846.2963, - [7]=541660354.015, - [8]=541661847.0112, - [9]=541663340.6759, - [10]=541664861.3772, - [11]=541666354.9449, - [12]=541667848.8308, - [13]=541669343.2332, - [14]=541670849.9777, - [15]=541672344.0613, - [16]=541673851.2346 + [1] = 541651364.1916, + [2] = 541652857.9058, + [3] = 541654365.8491, + [4] = 541655858.3292, + [5] = 541657352.4962, + [6] = 541658846.2963, + [7] = 541660354.015, + [8] = 541661847.0112, + [9] = 541663340.6759, + [10] = 541664861.3772, + [11] = 541666354.9449, + [12] = 541667848.8308, + [13] = 541669343.2332, + [14] = 541670849.9777, + [15] = 541672344.0613, + [16] = 541673851.2346, } local tolerance = 50 local tempAverages = {} -- rounds .5 to 0 or 1; want to round to .5 or .2 or alike -for k,v in ipairs(dataSet1p5s) do +for k, v in ipairs(dataSet1p5s) do if k > 1 then local tempAvg = (dataSet1p5s[k] - dataSet1p5s[k - 1]) - print(((math.floor(tempAvg / 1000) - (tempAvg / 1000)) * 1000), (math.ceil(tempAvg / 1000) - (tempAvg / 1000)) * 1000) + print( + ((math.floor(tempAvg / 1000) - (tempAvg / 1000)) * 1000), + (math.ceil(tempAvg / 1000) - (tempAvg / 1000)) * 1000 + ) if not tempAverages[tempAvg] then tempAverages[tempAvg] = 0 end tempAverages[tempAvg] = tempAverages[tempAvg] + 1 end end -for k,v in pairs(tempAverages) do - print(k,v) -end \ No newline at end of file +for k, v in pairs(tempAverages) do + print(k, v) +end diff --git a/Complete Projects/BFA/Adding text to texture.lua b/Complete Projects/BFA/Adding text to texture.lua index 0d13fb8..615eace 100644 --- a/Complete Projects/BFA/Adding text to texture.lua +++ b/Complete Projects/BFA/Adding text to texture.lua @@ -1,7 +1,7 @@ if not aura_env.region.text then - local text = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.text = text - print("ok!") + local text = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.text = text + print("ok!") end aura_env.region.text:SetFont("Fonts\\FRIZQT__.TTF", 10, "OUTLINE, MONOCHROME") aura_env.region.text:SetTextColor(0, 1, 0, 0.8) diff --git a/Complete Projects/BFA/Whoa/CTRL c to copy wowhead link to quest.lua b/Complete Projects/BFA/Whoa/CTRL c to copy wowhead link to quest.lua index 3d1482e..a4b9f1f 100644 --- a/Complete Projects/BFA/Whoa/CTRL c to copy wowhead link to quest.lua +++ b/Complete Projects/BFA/Whoa/CTRL c to copy wowhead link to quest.lua @@ -3,70 +3,58 @@ local keybind = "CTRL-C" local popupText = "Wowhead %s Link\n" .. keybind .. " to copy" local typeAttributeMap = { - quest = {"id", "questId", "questID"}, - item = {info = {"id"}} + quest = { "id", "questId", "questID" }, + item = { info = { "id" } }, } - local function ShowUrlPopup(id, type) - if not (id or type) then return end - local url = baseUrl .. type .. "=" .. id - StaticPopup_Show("WowheadQuestLinkUrl", type:sub(1, 1):upper() .. type:sub(2), _, url) + if not (id or type) then return end + local url = baseUrl .. type .. "=" .. id + StaticPopup_Show("WowheadQuestLinkUrl", type:sub(1, 1):upper() .. type:sub(2), _, url) end - local function getIdAndType(focus) - local function loop(focus, keys) - if not focus then return end - for key, value in pairs(keys) do - if type(value) == "table" then - return loop(focus[key], value) - end - local id = focus[value] - if id then - return id - end - end - end - if not focus then return end - for type, keys in pairs(typeAttributeMap) do - local id = loop(focus, keys) - if id then - return id, type - end - end - return getIdAndType(focus:GetParent()) + local function loop(focus, keys) + if not focus then return end + for key, value in pairs(keys) do + if type(value) == "table" then return loop(focus[key], value) end + local id = focus[value] + if id then return id end + end + end + if not focus then return end + for type, keys in pairs(typeAttributeMap) do + local id = loop(focus, keys) + if id then return id, type end + end + return getIdAndType(focus:GetParent()) end - local function run() - local focus = GetMouseFocus() - local id, type = getIdAndType(focus) - ShowUrlPopup(id, type) + local focus = GetMouseFocus() + local id, type = getIdAndType(focus) + ShowUrlPopup(id, type) end - StaticPopupDialogs["WowheadQuestLinkUrl"] = { - text = popupText, - button1 = "Close", - OnShow = function(self, data) - local function HidePopup(self) self:GetParent():Hide() end - self.editBox:SetScript("OnEscapePressed", HidePopup) - self.editBox:SetScript("OnEnterPressed", HidePopup) - self.editBox:SetMaxLetters(0) - self.editBox:SetText(data) - self.editBox:HighlightText(0, self.editBox:GetNumLetters()) - end, - hasEditBox = true, - editBoxWidth = 233, - timeout = 0, - whileDead = true, - hideOnEscape = true, - preferredIndex = 3, + text = popupText, + button1 = "Close", + OnShow = function(self, data) + local function HidePopup(self) self:GetParent():Hide() end + self.editBox:SetScript("OnEscapePressed", HidePopup) + self.editBox:SetScript("OnEnterPressed", HidePopup) + self.editBox:SetMaxLetters(0) + self.editBox:SetText(data) + self.editBox:HighlightText(0, self.editBox:GetNumLetters()) + end, + hasEditBox = true, + editBoxWidth = 233, + timeout = 0, + whileDead = true, + hideOnEscape = true, + preferredIndex = 3, } - local btn = CreateFrame("BUTTON", "KeybindBtn") SetBindingClick(keybind, btn:GetName()) btn:SetScript("OnClick", run) - diff --git a/Complete Projects/Legion/Ben Paralytic.lua b/Complete Projects/Legion/Ben Paralytic.lua index fe8ffc4..f9463aa 100644 --- a/Complete Projects/Legion/Ben Paralytic.lua +++ b/Complete Projects/Legion/Ben Paralytic.lua @@ -1,25 +1,29 @@ -- DISPLAY function aa() - if UnitDebuff("focus", "Paralytic Poison") then -- application for stun - local stacks = select(4, UnitDebuff("focus", "Paralytic Poison")) - return stacks - end - if UnitDebuff("focus", "Partial Paralysis") then return "ROOT'D" end - if UnitDebuff("focus", "Paralysis") then return "PLS HELP" end + if UnitDebuff("focus", "Paralytic Poison") then -- application for stun + local stacks = select(4, UnitDebuff("focus", "Paralytic Poison")) + return stacks + end + if UnitDebuff("focus", "Partial Paralysis") then return "ROOT'D" end + if UnitDebuff("focus", "Paralysis") then return "PLS HELP" end end -- TRIGGER function bb() - if UnitDebuff("focus", "Paralytic Poison") or - UnitDebuff("focus", "Partial Paralysis") or - UnitDebuff("focus", "Paralysis") then -- application for stun - return true - end + if + UnitDebuff("focus", "Paralytic Poison") + or UnitDebuff("focus", "Partial Paralysis") + or UnitDebuff("focus", "Paralysis") + then -- application for stun + return true + end end -- UNTRIGGER function cc() - if UnitDebuff("focus", "Paralytic Poison") == nil and - UnitDebuff("focus", "Partial Paralysis") == nil and - UnitDebuff("focus", "Paralysis") == nil then -- application for stun - return true - end + if + UnitDebuff("focus", "Paralytic Poison") == nil + and UnitDebuff("focus", "Partial Paralysis") == nil + and UnitDebuff("focus", "Paralysis") == nil + then -- application for stun + return true + end end diff --git a/Complete Projects/Legion/ChatFilter.lua b/Complete Projects/Legion/ChatFilter.lua index 2c3a576..afd65a1 100644 --- a/Complete Projects/Legion/ChatFilter.lua +++ b/Complete Projects/Legion/ChatFilter.lua @@ -29,18 +29,18 @@ SlashCmdList["FREMOVE"] = cleanse SLASH_FUPDATE1 = "/fupdate" SLASH_FUPDATE2 = "/fu" SlashCmdList["FUPDATE"] = function(msg) - cleanse() - add() + cleanse() + add() end local chatEvents = { - "CHAT_MSG_SAY", - "CHAT_MSG_RAID", - "CHAT_MSG_YELL", - "CHAT_MSG_PARTY", - "CHAT_MSG_GUILD", - "CHAT_MSG_WHISPER", - "CHAT_MSG_CHANNEL", + "CHAT_MSG_SAY", + "CHAT_MSG_RAID", + "CHAT_MSG_YELL", + "CHAT_MSG_PARTY", + "CHAT_MSG_GUILD", + "CHAT_MSG_WHISPER", + "CHAT_MSG_CHANNEL", } if not ChatFilter then ChatFilter = {} end @@ -51,85 +51,92 @@ if not ChatFilter.RemovedCommon then ChatFilter.RemovedCommon = {} end --Own filter local function myChatFilter(self, e, msg, author, lang) - print(msg, author, lang) + print(msg, author, lang) - local function getDate() - local date = date() - local year = date:match("%d%d%/%d%d/(%d%d)") + 2000 --01/07/(19) 14:36:42 - local month = date:match("(%d%d)") --(01)/07/19 14:36:42 - local day = date:match("%d%d%/(%d%d)") --01/(07)/19 14:36:42 - --Remove first place zeros - if day:find("0") == 1 then - day = day:gsub("0", "") - end - if month:find("0") == 1 then - month = month:gsub("0", "") - end - local localdate = day .. "." .. month .. "." .. year - return localdate - end - - local function getTime() - local date = date() - local localtime = date:match("%d%d%/%d%d%/%d%d%s(%d%d%p%d%d%p%d%d)") - return localtime - end - - author = author:match("(.+)-") - - --Remove Alliance - if lang == "Common" then - -- print("Caught one!") - ChatFilter.RemovedCommon[#ChatFilter.RemovedCommon + 1] = format("\[%s\]\[%s\]%s: %s", getDate(), getTime(), author, msg) - return true - end - - --Remove People - for k, v in pairs(ChatFilter.People) do - if author == v then - if e == "CHAT_MSG_WHISPER" and author ~= UnitName("player") then - SendChatMessage(format("Your message \"%s\" has been filtered out because I hate fun", msg), "WHISPER", nil, author) - end - ChatFilter.RemovedLines[#ChatFilter.RemovedLines + 1] = format("\[%s\]\[%s\]%s: %s", getDate(), getTime(), author, msg) - -- print("Caught one!") - return true - end - end - - --Remove Words - for k, v in pairs(ChatFilter.Words) do - if msg:match(v) then - if e == "CHAT_MSG_WHISPER" and author ~= UnitName("player") then - SendChatMessage(format("Your message \"%s\" has been filtered out because I hate fun", msg), "WHISPER", nil, author) - end - ChatFilter.RemovedLines[#ChatFilter.RemovedLines + 1] = format("\[%s\]\[%s\]%s: %s", getDate(), getTime(), author, msg) - -- print("Caught one!") - return true - end - end + local function getDate() + local date = date() + local year = date:match("%d%d%/%d%d/(%d%d)") + 2000 --01/07/(19) 14:36:42 + local month = date:match("(%d%d)") --(01)/07/19 14:36:42 + local day = date:match("%d%d%/(%d%d)") --01/(07)/19 14:36:42 + --Remove first place zeros + if day:find("0") == 1 then day = day:gsub("0", "") end + if month:find("0") == 1 then month = month:gsub("0", "") end + local localdate = day .. "." .. month .. "." .. year + return localdate + end + + local function getTime() + local date = date() + local localtime = date:match("%d%d%/%d%d%/%d%d%s(%d%d%p%d%d%p%d%d)") + return localtime + end + + author = author:match("(.+)-") + + --Remove Alliance + if lang == "Common" then + -- print("Caught one!") + ChatFilter.RemovedCommon[#ChatFilter.RemovedCommon + 1] = + format("[%s][%s]%s: %s", getDate(), getTime(), author, msg) + return true + end + + --Remove People + for k, v in pairs(ChatFilter.People) do + if author == v then + if e == "CHAT_MSG_WHISPER" and author ~= UnitName("player") then + SendChatMessage( + format('Your message "%s" has been filtered out because I hate fun', msg), + "WHISPER", + nil, + author + ) + end + ChatFilter.RemovedLines[#ChatFilter.RemovedLines + 1] = + format("[%s][%s]%s: %s", getDate(), getTime(), author, msg) + -- print("Caught one!") + return true + end + end + + --Remove Words + for k, v in pairs(ChatFilter.Words) do + if msg:match(v) then + if e == "CHAT_MSG_WHISPER" and author ~= UnitName("player") then + SendChatMessage( + format('Your message "%s" has been filtered out because I hate fun', msg), + "WHISPER", + nil, + author + ) + end + ChatFilter.RemovedLines[#ChatFilter.RemovedLines + 1] = + format("[%s][%s]%s: %s", getDate(), getTime(), author, msg) + -- print("Caught one!") + return true + end + end end --Remove all filters local function cleanse() - for k, v in pairs(chatEvents) do - if ChatFrame_GetMessageEventFilters(v) then - print(v, unpack(ChatFrame_GetMessageEventFilters(v))) - for k2, v2 in pairs(ChatFrame_GetMessageEventFilters(v)) do - ChatFrame_RemoveMessageEventFilter(v, v2) - end - end - print("Done?") - if ChatFrame_GetMessageEventFilters(v) then - print(unpack(ChatFrame_GetMessageEventFilters(v))) - end - print("Got it.") - end + for k, v in pairs(chatEvents) do + if ChatFrame_GetMessageEventFilters(v) then + print(v, unpack(ChatFrame_GetMessageEventFilters(v))) + for k2, v2 in pairs(ChatFrame_GetMessageEventFilters(v)) do + ChatFrame_RemoveMessageEventFilter(v, v2) + end + end + print("Done?") + if ChatFrame_GetMessageEventFilters(v) then print(unpack(ChatFrame_GetMessageEventFilters(v))) end + print("Got it.") + end end --Add filter local function add() - for k, v in pairs(chatEvents) do - print("Adding filter to", v) - ChatFrame_AddMessageEventFilter(v, myChatFilter) - end + for k, v in pairs(chatEvents) do + print("Adding filter to", v) + ChatFrame_AddMessageEventFilter(v, myChatFilter) + end end diff --git a/Complete Projects/Legion/Herb Sniffer/0.5/Herb Arrays Legion.lua b/Complete Projects/Legion/Herb Sniffer/0.5/Herb Arrays Legion.lua index 8d128e4..a502c30 100644 --- a/Complete Projects/Legion/Herb Sniffer/0.5/Herb Arrays Legion.lua +++ b/Complete Projects/Legion/Herb Sniffer/0.5/Herb Arrays Legion.lua @@ -1,6582 +1,5493 @@ -aura_env.herbs = -{ +aura_env.herbs = { --Azsuna / Aethrik - [1015] = - { - [1] = - { + [1015] = { + [1] = { ["X"] = 52.44, ["Y"] = 12.55, - ["CD"] = 0 + ["CD"] = 0, }, - [2] = - { + [2] = { ["X"] = 43.81, ["Y"] = 13.48, - ["CD"] = 0 + ["CD"] = 0, }, - [3] = - { + [3] = { ["X"] = 43.5, ["Y"] = 11.55, - ["CD"] = 0 + ["CD"] = 0, }, - [4] = - { + [4] = { ["X"] = 43.54, ["Y"] = 10.41, - ["CD"] = 0 + ["CD"] = 0, }, - [5] = - { + [5] = { ["X"] = 44.04, ["Y"] = 10.02, - ["CD"] = 0 + ["CD"] = 0, }, - [6] = - { + [6] = { ["X"] = 45.05, ["Y"] = 8.91, - ["CD"] = 0 + ["CD"] = 0, }, - [7] = - { + [7] = { ["X"] = 45.31, ["Y"] = 9.62, - ["CD"] = 0 + ["CD"] = 0, }, - [8] = - { + [8] = { ["X"] = 50.71, ["Y"] = 12.66, - ["CD"] = 0 + ["CD"] = 0, }, - [9] = - { + [9] = { ["X"] = 51.42, ["Y"] = 10.39, - ["CD"] = 0 + ["CD"] = 0, }, - [10] = - { + [10] = { ["X"] = 51.03, ["Y"] = 11.49, - ["CD"] = 0 + ["CD"] = 0, }, - [11] = - { + [11] = { ["X"] = 52.24, ["Y"] = 13.93, - ["CD"] = 0 + ["CD"] = 0, }, - [12] = - { + [12] = { ["X"] = 53.1, ["Y"] = 13.66, - ["CD"] = 0 + ["CD"] = 0, }, - [13] = - { + [13] = { ["X"] = 54.52, ["Y"] = 13.09, - ["CD"] = 0 + ["CD"] = 0, }, - [14] = - { + [14] = { ["X"] = 53.98, ["Y"] = 15.09, - ["CD"] = 0 + ["CD"] = 0, }, - [15] = - { + [15] = { ["X"] = 57.19, ["Y"] = 18.32, - ["CD"] = 0 + ["CD"] = 0, }, - [16] = - { + [16] = { ["X"] = 57.95, ["Y"] = 19.85, - ["CD"] = 0 + ["CD"] = 0, }, - [17] = - { + [17] = { ["X"] = 61.05, ["Y"] = 17.05, - ["CD"] = 0 + ["CD"] = 0, }, - [18] = - { + [18] = { ["X"] = 62.21, ["Y"] = 16.11, - ["CD"] = 0 + ["CD"] = 0, }, - [19] = - { + [19] = { ["X"] = 62.26, ["Y"] = 17.91, - ["CD"] = 0 + ["CD"] = 0, }, - [20] = - { + [20] = { ["X"] = 61.86, ["Y"] = 18.55, - ["CD"] = 0 + ["CD"] = 0, }, - [21] = - { + [21] = { ["X"] = 59.87, ["Y"] = 20.07, - ["CD"] = 0 + ["CD"] = 0, }, - [22] = - { + [22] = { ["X"] = 60.17, ["Y"] = 20.82, - ["CD"] = 0 + ["CD"] = 0, }, - [23] = - { + [23] = { ["X"] = 60.31, ["Y"] = 21.25, - ["CD"] = 0 + ["CD"] = 0, }, - [24] = - { + [24] = { ["X"] = 58.31, ["Y"] = 24.61, - ["CD"] = 0 + ["CD"] = 0, }, - [25] = - { + [25] = { ["X"] = 58.91, ["Y"] = 22.75, - ["CD"] = 0 + ["CD"] = 0, }, - [26] = - { + [26] = { ["X"] = 59.92, ["Y"] = 22.74, - ["CD"] = 0 + ["CD"] = 0, }, - [27] = - { + [27] = { ["X"] = 61.61, ["Y"] = 26.13, - ["CD"] = 0 + ["CD"] = 0, }, - [28] = - { + [28] = { ["X"] = 61.21, ["Y"] = 27.72, - ["CD"] = 0 + ["CD"] = 0, }, - [29] = - { + [29] = { ["X"] = 61.95, ["Y"] = 30.74, - ["CD"] = 0 + ["CD"] = 0, }, - [30] = - { + [30] = { ["X"] = 63.08, ["Y"] = 30.76, - ["CD"] = 0 + ["CD"] = 0, }, - [31] = - { + [31] = { ["X"] = 62.57, ["Y"] = 28.52, - ["CD"] = 0 + ["CD"] = 0, }, - [32] = - { + [32] = { ["X"] = 64.55, ["Y"] = 27.75, - ["CD"] = 0 + ["CD"] = 0, }, - [33] = - { + [33] = { ["X"] = 65.58, ["Y"] = 38.31, - ["CD"] = 0 + ["CD"] = 0, }, - [34] = - { + [34] = { ["X"] = 66.38, ["Y"] = 38.49, - ["CD"] = 0 + ["CD"] = 0, }, - [35] = - { + [35] = { ["X"] = 66.44, ["Y"] = 35.73, - ["CD"] = 0 + ["CD"] = 0, }, - [36] = - { + [36] = { ["X"] = 65.28, ["Y"] = 35.11, - ["CD"] = 0 + ["CD"] = 0, }, - [37] = - { + [37] = { ["X"] = 64.73, ["Y"] = 34.57, - ["CD"] = 0 + ["CD"] = 0, }, - [38] = - { + [38] = { ["X"] = 63.54, ["Y"] = 34.19, - ["CD"] = 0 + ["CD"] = 0, }, - [39] = - { + [39] = { ["X"] = 64.81, ["Y"] = 45.69, - ["CD"] = 0 + ["CD"] = 0, }, - [40] = - { + [40] = { ["X"] = 63.1, ["Y"] = 46.83, - ["CD"] = 0 + ["CD"] = 0, }, - [41] = - { + [41] = { ["X"] = 59.34, ["Y"] = 49.85, - ["CD"] = 0 + ["CD"] = 0, }, - [42] = - { + [42] = { ["X"] = 56.61, ["Y"] = 52.15, - ["CD"] = 0 + ["CD"] = 0, }, - [43] = - { + [43] = { ["X"] = 53.11, ["Y"] = 54.38, - ["CD"] = 0 + ["CD"] = 0, }, - [44] = - { + [44] = { ["X"] = 51.66, ["Y"] = 55.68, - ["CD"] = 0 + ["CD"] = 0, }, - [45] = - { + [45] = { ["X"] = 50.1, ["Y"] = 55.25, - ["CD"] = 0 + ["CD"] = 0, }, - [46] = - { + [46] = { ["X"] = 50.05, ["Y"] = 56.35, - ["CD"] = 0 + ["CD"] = 0, }, - [47] = - { + [47] = { ["X"] = 49.08, ["Y"] = 55.87, - ["CD"] = 0 + ["CD"] = 0, }, - [48] = - { + [48] = { ["X"] = 36.28, ["Y"] = 21.97, - ["CD"] = 0 + ["CD"] = 0, }, - [49] = - { + [49] = { ["X"] = 36.07, ["Y"] = 23.09, - ["CD"] = 0 + ["CD"] = 0, }, - [50] = - { + [50] = { ["X"] = 35.3, ["Y"] = 23.32, - ["CD"] = 0 + ["CD"] = 0, }, - [51] = - { + [51] = { ["X"] = 35.24, ["Y"] = 25.27, - ["CD"] = 0 + ["CD"] = 0, }, - [52] = - { + [52] = { ["X"] = 35.84, ["Y"] = 26.66, - ["CD"] = 0 + ["CD"] = 0, }, - [53] = - { + [53] = { ["X"] = 35.28, ["Y"] = 28.34, - ["CD"] = 0 + ["CD"] = 0, }, - [54] = - { + [54] = { ["X"] = 38.92, ["Y"] = 33.69, - ["CD"] = 0 + ["CD"] = 0, }, - [55] = - { + [55] = { ["X"] = 38.76, ["Y"] = 32.81, - ["CD"] = 0 + ["CD"] = 0, }, - [56] = - { + [56] = { ["X"] = 39.8, ["Y"] = 32.01, - ["CD"] = 0 + ["CD"] = 0, }, - [57] = - { + [57] = { ["X"] = 38.58, ["Y"] = 31.7, - ["CD"] = 0 + ["CD"] = 0, }, - [58] = - { + [58] = { ["X"] = 37.15, ["Y"] = 31.49, - ["CD"] = 0 + ["CD"] = 0, }, - [59] = - { + [59] = { ["X"] = 37.81, ["Y"] = 33.03, - ["CD"] = 0 + ["CD"] = 0, }, - [60] = - { + [60] = { ["X"] = 38.91, ["Y"] = 33.95, - ["CD"] = 0 + ["CD"] = 0, }, - [61] = - { + [61] = { ["X"] = 46.87, ["Y"] = 32.18, - ["CD"] = 0 + ["CD"] = 0, }, - [62] = - { + [62] = { ["X"] = 46.45, ["Y"] = 33.24, - ["CD"] = 0 + ["CD"] = 0, }, - [63] = - { + [63] = { ["X"] = 42.85, ["Y"] = 29.84, - ["CD"] = 0 + ["CD"] = 0, }, - [64] = - { + [64] = { ["X"] = 42.2, ["Y"] = 30.7, - ["CD"] = 0 + ["CD"] = 0, }, - [65] = - { + [65] = { ["X"] = 41.42, ["Y"] = 31.81, - ["CD"] = 0 + ["CD"] = 0, }, - [66] = - { + [66] = { ["X"] = 40.38, ["Y"] = 32.88, - ["CD"] = 0 + ["CD"] = 0, }, - [67] = - { + [67] = { ["X"] = 40.63, ["Y"] = 35.62, - ["CD"] = 0 + ["CD"] = 0, }, - [68] = - { + [68] = { ["X"] = 43.97, ["Y"] = 31.84, - ["CD"] = 0 + ["CD"] = 0, }, - [69] = - { + [69] = { ["X"] = 45.87, ["Y"] = 28.71, - ["CD"] = 0 + ["CD"] = 0, }, - [70] = - { + [70] = { ["X"] = 44.62, ["Y"] = 30.16, - ["CD"] = 0 + ["CD"] = 0, }, - [71] = - { + [71] = { ["X"] = 44.16, ["Y"] = 31.22, - ["CD"] = 0 + ["CD"] = 0, }, - [72] = - { + [72] = { ["X"] = 45.01, ["Y"] = 33.8, - ["CD"] = 0 + ["CD"] = 0, }, - [73] = - { + [73] = { ["X"] = 44.82, ["Y"] = 35.66, - ["CD"] = 0 + ["CD"] = 0, }, - [74] = - { + [74] = { ["X"] = 44.33, ["Y"] = 38.18, - ["CD"] = 0 + ["CD"] = 0, }, - [75] = - { + [75] = { ["X"] = 44.13, ["Y"] = 36.79, - ["CD"] = 0 + ["CD"] = 0, }, - [76] = - { + [76] = { ["X"] = 43.29, ["Y"] = 36.63, - ["CD"] = 0 + ["CD"] = 0, }, - [77] = - { + [77] = { ["X"] = 58.5, ["Y"] = 44.5, - ["CD"] = 0 + ["CD"] = 0, }, - [78] = - { + [78] = { ["X"] = 56.98, ["Y"] = 46.04, - ["CD"] = 0 + ["CD"] = 0, }, - [79] = - { + [79] = { ["X"] = 56.87, ["Y"] = 47.43, - ["CD"] = 0 + ["CD"] = 0, }, - [80] = - { + [80] = { ["X"] = 58.08, ["Y"] = 48.77, - ["CD"] = 0 + ["CD"] = 0, }, - [81] = - { + [81] = { ["X"] = 58.1, ["Y"] = 47.82, - ["CD"] = 0 + ["CD"] = 0, }, - [82] = - { + [82] = { ["X"] = 59.82, ["Y"] = 48.78, - ["CD"] = 0 + ["CD"] = 0, }, - [83] = - { + [83] = { ["X"] = 61.93, ["Y"] = 50.54, - ["CD"] = 0 + ["CD"] = 0, }, - [84] = - { + [84] = { ["X"] = 60.81, ["Y"] = 49.52, - ["CD"] = 0 + ["CD"] = 0, }, - [85] = - { + [85] = { ["X"] = 60.13, ["Y"] = 50.52, - ["CD"] = 0 + ["CD"] = 0, }, - [86] = - { + [86] = { ["X"] = 58.7, ["Y"] = 50.72, - ["CD"] = 0 + ["CD"] = 0, }, - [87] = - { + [87] = { ["X"] = 57.92, ["Y"] = 51.18, - ["CD"] = 0 + ["CD"] = 0, }, - [88] = - { + [88] = { ["X"] = 56.76, ["Y"] = 51.49, - ["CD"] = 0 + ["CD"] = 0, }, - [89] = - { + [89] = { ["X"] = 57.02, ["Y"] = 53.1, - ["CD"] = 0 + ["CD"] = 0, }, - [90] = - { + [90] = { ["X"] = 60.5, ["Y"] = 55.71, - ["CD"] = 0 + ["CD"] = 0, }, - [91] = - { + [91] = { ["X"] = 61.23, ["Y"] = 55.29, - ["CD"] = 0 + ["CD"] = 0, }, - [92] = - { + [92] = { ["X"] = 62.2, ["Y"] = 54.63, - ["CD"] = 0 + ["CD"] = 0, }, - [93] = - { + [93] = { ["X"] = 62.35, ["Y"] = 53.03, - ["CD"] = 0 + ["CD"] = 0, }, - [94] = - { + [94] = { ["X"] = 61.71, ["Y"] = 51.69, - ["CD"] = 0 + ["CD"] = 0, }, - [95] = - { + [95] = { ["X"] = 62.88, ["Y"] = 48.79, - ["CD"] = 0 + ["CD"] = 0, }, - [96] = - { + [96] = { ["X"] = 59.03, ["Y"] = 16.36, - ["CD"] = 0 + ["CD"] = 0, }, - [97] = - { + [97] = { ["X"] = 56.05, ["Y"] = 52.99, - ["CD"] = 0 + ["CD"] = 0, }, - [98] = - { + [98] = { ["X"] = 54.9, ["Y"] = 54.78, - ["CD"] = 0 + ["CD"] = 0, }, - [99] = - { + [99] = { ["X"] = 46.89, ["Y"] = 48.44, - ["CD"] = 0 + ["CD"] = 0, }, - [100] = - { + [100] = { ["X"] = 48.12, ["Y"] = 52.99, - ["CD"] = 0 + ["CD"] = 0, }, - [101] = - { + [101] = { ["X"] = 50.61, ["Y"] = 58.06, - ["CD"] = 0 + ["CD"] = 0, }, - [102] = - { + [102] = { ["X"] = 65.48, ["Y"] = 47.52, - ["CD"] = 0 + ["CD"] = 0, }, - [103] = - { + [103] = { ["X"] = 66.67, ["Y"] = 48.25, - ["CD"] = 0 + ["CD"] = 0, }, - [104] = - { + [104] = { ["X"] = 67.25, ["Y"] = 46.04, - ["CD"] = 0 + ["CD"] = 0, }, - [105] = - { + [105] = { ["X"] = 67.21, ["Y"] = 43.27, - ["CD"] = 0 + ["CD"] = 0, }, - [106] = - { + [106] = { ["X"] = 56.87, ["Y"] = 48.7, - ["CD"] = 0 + ["CD"] = 0, }, - [107] = - { + [107] = { ["X"] = 47.7, ["Y"] = 38.02, - ["CD"] = 0 + ["CD"] = 0, }, - [108] = - { + [108] = { ["X"] = 45.05, ["Y"] = 37.62, - ["CD"] = 0 + ["CD"] = 0, }, - [109] = - { + [109] = { ["X"] = 48.4, ["Y"] = 32.78, - ["CD"] = 0 + ["CD"] = 0, }, - [110] = - { + [110] = { ["X"] = 51.98, ["Y"] = 31.45, - ["CD"] = 0 + ["CD"] = 0, }, - [111] = - { + [111] = { ["X"] = 57.2, ["Y"] = 27.62, - ["CD"] = 0 + ["CD"] = 0, }, - [112] = - { + [112] = { ["X"] = 61.29, ["Y"] = 29.89, - ["CD"] = 0 + ["CD"] = 0, }, - [113] = - { + [113] = { ["X"] = 64.67, ["Y"] = 31.6, - ["CD"] = 0 + ["CD"] = 0, }, - [114] = - { + [114] = { ["X"] = 60.67, ["Y"] = 23.86, - ["CD"] = 0 + ["CD"] = 0, }, - [115] = - { + [115] = { ["X"] = 62.79, ["Y"] = 25.61, - ["CD"] = 0 + ["CD"] = 0, }, - [116] = - { + [116] = { ["X"] = 66.4, ["Y"] = 36.85, - ["CD"] = 0 + ["CD"] = 0, }, - [117] = - { + [117] = { ["X"] = 63.3, ["Y"] = 35.71, - ["CD"] = 0 + ["CD"] = 0, }, - [118] = - { + [118] = { ["X"] = 54.11, ["Y"] = 30.37, - ["CD"] = 0 + ["CD"] = 0, }, - [119] = - { + [119] = { ["X"] = 57.92, ["Y"] = 33.75, - ["CD"] = 0 + ["CD"] = 0, }, - [120] = - { + [120] = { ["X"] = 42.81, ["Y"] = 10.38, - ["CD"] = 0 + ["CD"] = 0, }, - [121] = - { + [121] = { ["X"] = 48.74, ["Y"] = 10.63, - ["CD"] = 0 + ["CD"] = 0, }, - [122] = - { + [122] = { ["X"] = 40.78, ["Y"] = 11.45, - ["CD"] = 0 + ["CD"] = 0, }, - [123] = - { + [123] = { ["X"] = 39.74, ["Y"] = 13.5, - ["CD"] = 0 + ["CD"] = 0, }, - [124] = - { + [124] = { ["X"] = 35.84, ["Y"] = 15.6, - ["CD"] = 0 + ["CD"] = 0, }, - [125] = - { + [125] = { ["X"] = 35.53, ["Y"] = 22.66, - ["CD"] = 0 + ["CD"] = 0, }, - [126] = - { + [126] = { ["X"] = 35.42, ["Y"] = 27.64, - ["CD"] = 0 + ["CD"] = 0, }, - [127] = - { + [127] = { ["X"] = 32.97, ["Y"] = 32.94, - ["CD"] = 0 + ["CD"] = 0, }, - [128] = - { + [128] = { ["X"] = 38.01, ["Y"] = 35.61, - ["CD"] = 0 + ["CD"] = 0, }, - [129] = - { + [129] = { ["X"] = 52.67, ["Y"] = 26.74, - ["CD"] = 0 + ["CD"] = 0, }, - [130] = - { + [130] = { ["X"] = 54.31, ["Y"] = 17.67, - ["CD"] = 0 + ["CD"] = 0, }, - [131] = - { + [131] = { ["X"] = 56.06, ["Y"] = 19.39, - ["CD"] = 0 + ["CD"] = 0, }, - [132] = - { + [132] = { ["X"] = 51.37, ["Y"] = 15.24, - ["CD"] = 0 + ["CD"] = 0, }, - [133] = - { + [133] = { ["X"] = 45.71, ["Y"] = 15.14, - ["CD"] = 0 + ["CD"] = 0, }, - [134] = - { + [134] = { ["X"] = 46.61, ["Y"] = 16.25, - ["CD"] = 0 + ["CD"] = 0, }, - [135] = - { + [135] = { ["X"] = 48.01, ["Y"] = 12.51, - ["CD"] = 0 + ["CD"] = 0, }, - [136] = - { + [136] = { ["X"] = 44.59, ["Y"] = 32.83, - ["CD"] = 0 + ["CD"] = 0, }, - [137] = - { + [137] = { ["X"] = 41.47, ["Y"] = 33.61, - ["CD"] = 0 + ["CD"] = 0, }, - [138] = - { + [138] = { ["X"] = 42.3, ["Y"] = 36.7, - ["CD"] = 0 + ["CD"] = 0, }, - [139] = - { + [139] = { ["X"] = 40.85, ["Y"] = 38.78, - ["CD"] = 0 + ["CD"] = 0, }, - [140] = - { + [140] = { ["X"] = 39.97, ["Y"] = 53.3, - ["CD"] = 0 + ["CD"] = 0, }, - [141] = - { + [141] = { ["X"] = 48.93, ["Y"] = 43.77, - ["CD"] = 0 + ["CD"] = 0, }, - [142] = - { + [142] = { ["X"] = 60.71, ["Y"] = 36.87, - ["CD"] = 0 + ["CD"] = 0, }, - [143] = - { + [143] = { ["X"] = 61.83, ["Y"] = 39.44, - ["CD"] = 0 + ["CD"] = 0, }, - [144] = - { + [144] = { ["X"] = 56.71, ["Y"] = 64.6, - ["CD"] = 0 + ["CD"] = 0, }, - [145] = - { + [145] = { ["X"] = 57, ["Y"] = 62.25, - ["CD"] = 0 + ["CD"] = 0, }, - [146] = - { + [146] = { ["X"] = 62.66, ["Y"] = 54.86, - ["CD"] = 0 + ["CD"] = 0, }, - [147] = - { + [147] = { ["X"] = 61.84, ["Y"] = 55.45, - ["CD"] = 0 + ["CD"] = 0, }, - [148] = - { + [148] = { ["X"] = 56.88, ["Y"] = 61.05, - ["CD"] = 0 + ["CD"] = 0, }, - [149] = - { + [149] = { ["X"] = 52.56, ["Y"] = 60.68, - ["CD"] = 0 + ["CD"] = 0, }, - [150] = - { + [150] = { ["X"] = 46, ["Y"] = 61.02, - ["CD"] = 0 - } + ["CD"] = 0, + }, }, --Highmountain / Foxflower - [1024] = - { - [1] = - { + [1024] = { + [1] = { ["X"] = 39.04, ["Y"] = 63.21, - ["CD"] = 0 + ["CD"] = 0, }, - [2] = - { + [2] = { ["X"] = 42.24, ["Y"] = 55.42, - ["CD"] = 0 + ["CD"] = 0, }, - [3] = - { + [3] = { ["X"] = 43.3, ["Y"] = 58.87, - ["CD"] = 0 + ["CD"] = 0, }, - [4] = - { + [4] = { ["X"] = 40.39, ["Y"] = 59.24, - ["CD"] = 0 + ["CD"] = 0, }, - [5] = - { + [5] = { ["X"] = 42.39, ["Y"] = 67.1, - ["CD"] = 0 + ["CD"] = 0, }, - [6] = - { + [6] = { ["X"] = 37.19, ["Y"] = 66.98, - ["CD"] = 0 + ["CD"] = 0, }, - [7] = - { + [7] = { ["X"] = 42.21, ["Y"] = 65.26, - ["CD"] = 0 + ["CD"] = 0, }, - [8] = - { + [8] = { ["X"] = 42.86, ["Y"] = 52.36, - ["CD"] = 0 + ["CD"] = 0, }, - [9] = - { + [9] = { ["X"] = 44.42, ["Y"] = 49.56, - ["CD"] = 0 + ["CD"] = 0, }, - [10] = - { + [10] = { ["X"] = 46.31, ["Y"] = 46.84, - ["CD"] = 0 + ["CD"] = 0, }, - [11] = - { + [11] = { ["X"] = 44.32, ["Y"] = 44.33, - ["CD"] = 0 + ["CD"] = 0, }, - [12] = - { + [12] = { ["X"] = 47.06, ["Y"] = 48.3, - ["CD"] = 0 + ["CD"] = 0, }, - [13] = - { + [13] = { ["X"] = 46.96, ["Y"] = 47.09, - ["CD"] = 0 + ["CD"] = 0, }, - [14] = - { + [14] = { ["X"] = 57.3, ["Y"] = 22.65, - ["CD"] = 0 + ["CD"] = 0, }, - [15] = - { + [15] = { ["X"] = 57.13, ["Y"] = 20.04, - ["CD"] = 0 + ["CD"] = 0, }, - [16] = - { + [16] = { ["X"] = 56.54, ["Y"] = 21.14, - ["CD"] = 0 + ["CD"] = 0, }, - [17] = - { + [17] = { ["X"] = 55.97, ["Y"] = 20.78, - ["CD"] = 0 + ["CD"] = 0, }, - [18] = - { + [18] = { ["X"] = 56, ["Y"] = 20.19, - ["CD"] = 0 + ["CD"] = 0, }, - [19] = - { + [19] = { ["X"] = 55.94, ["Y"] = 19.48, - ["CD"] = 0 + ["CD"] = 0, }, - [20] = - { + [20] = { ["X"] = 54.72, ["Y"] = 16.63, - ["CD"] = 0 + ["CD"] = 0, }, - [21] = - { + [21] = { ["X"] = 55.63, ["Y"] = 17.81, - ["CD"] = 0 + ["CD"] = 0, }, - [22] = - { + [22] = { ["X"] = 55.27, ["Y"] = 18.91, - ["CD"] = 0 + ["CD"] = 0, }, - [23] = - { + [23] = { ["X"] = 55.32, ["Y"] = 18.59, - ["CD"] = 0 + ["CD"] = 0, }, - [24] = - { + [24] = { ["X"] = 41.11, ["Y"] = 51.73, - ["CD"] = 0 + ["CD"] = 0, }, - [25] = - { + [25] = { ["X"] = 42.6, ["Y"] = 48.57, - ["CD"] = 0 + ["CD"] = 0, }, - [26] = - { + [26] = { ["X"] = 43.68, ["Y"] = 48.71, - ["CD"] = 0 + ["CD"] = 0, }, - [27] = - { + [27] = { ["X"] = 39.67, ["Y"] = 52.78, - ["CD"] = 0 + ["CD"] = 0, }, - [28] = - { + [28] = { ["X"] = 40.85, ["Y"] = 53.98, - ["CD"] = 0 + ["CD"] = 0, }, - [29] = - { + [29] = { ["X"] = 42.82, ["Y"] = 52.88, - ["CD"] = 0 + ["CD"] = 0, }, - [30] = - { + [30] = { ["X"] = 41.21, ["Y"] = 56.52, - ["CD"] = 0 + ["CD"] = 0, }, - [31] = - { + [31] = { ["X"] = 39.74, ["Y"] = 67.27, - ["CD"] = 0 + ["CD"] = 0, }, - [32] = - { + [32] = { ["X"] = 40.77, ["Y"] = 65.23, - ["CD"] = 0 + ["CD"] = 0, }, - [33] = - { + [33] = { ["X"] = 37.33, ["Y"] = 63.76, - ["CD"] = 0 + ["CD"] = 0, }, - [34] = - { + [34] = { ["X"] = 37.5, ["Y"] = 62.89, - ["CD"] = 0 + ["CD"] = 0, }, - [35] = - { + [35] = { ["X"] = 37.72, ["Y"] = 62.08, - ["CD"] = 0 + ["CD"] = 0, }, - [36] = - { + [36] = { ["X"] = 40.68, ["Y"] = 57.62, - ["CD"] = 0 + ["CD"] = 0, }, - [37] = - { + [37] = { ["X"] = 50.04, ["Y"] = 9, - ["CD"] = 0 + ["CD"] = 0, }, - [38] = - { + [38] = { ["X"] = 47.51, ["Y"] = 9.64, - ["CD"] = 0 + ["CD"] = 0, }, - [39] = - { + [39] = { ["X"] = 45.07, ["Y"] = 8.99, - ["CD"] = 0 + ["CD"] = 0, }, - [40] = - { + [40] = { ["X"] = 42.96, ["Y"] = 9.11, - ["CD"] = 0 + ["CD"] = 0, }, - [41] = - { + [41] = { ["X"] = 43.26, ["Y"] = 8.47, - ["CD"] = 0 + ["CD"] = 0, }, - [42] = - { + [42] = { ["X"] = 42.69, ["Y"] = 7.59, - ["CD"] = 0 + ["CD"] = 0, }, - [43] = - { + [43] = { ["X"] = 45.72, ["Y"] = 9.49, - ["CD"] = 0 + ["CD"] = 0, }, - [44] = - { + [44] = { ["X"] = 46.02, ["Y"] = 8.48, - ["CD"] = 0 + ["CD"] = 0, }, - [45] = - { + [45] = { ["X"] = 44.75, ["Y"] = 8.04, - ["CD"] = 0 + ["CD"] = 0, }, - [46] = - { + [46] = { ["X"] = 44.62, ["Y"] = 7.22, - ["CD"] = 0 + ["CD"] = 0, }, - [47] = - { + [47] = { ["X"] = 41.25, ["Y"] = 13, - ["CD"] = 0 + ["CD"] = 0, }, - [48] = - { + [48] = { ["X"] = 41.24, ["Y"] = 11.49, - ["CD"] = 0 + ["CD"] = 0, }, - [49] = - { + [49] = { ["X"] = 42.07, ["Y"] = 11.42, - ["CD"] = 0 + ["CD"] = 0, }, - [50] = - { + [50] = { ["X"] = 44.2, ["Y"] = 10.31, - ["CD"] = 0 + ["CD"] = 0, }, - [51] = - { + [51] = { ["X"] = 43.54, ["Y"] = 11.57, - ["CD"] = 0 + ["CD"] = 0, }, - [52] = - { + [52] = { ["X"] = 44.12, ["Y"] = 11.56, - ["CD"] = 0 + ["CD"] = 0, }, - [53] = - { + [53] = { ["X"] = 45.67, ["Y"] = 12.81, - ["CD"] = 0 + ["CD"] = 0, }, - [54] = - { + [54] = { ["X"] = 45.6, ["Y"] = 11.82, - ["CD"] = 0 + ["CD"] = 0, }, - [55] = - { + [55] = { ["X"] = 48.04, ["Y"] = 10.68, - ["CD"] = 0 + ["CD"] = 0, }, - [56] = - { + [56] = { ["X"] = 48.1, ["Y"] = 9.57, - ["CD"] = 0 + ["CD"] = 0, }, - [57] = - { + [57] = { ["X"] = 50.88, ["Y"] = 11.06, - ["CD"] = 0 + ["CD"] = 0, }, - [58] = - { + [58] = { ["X"] = 50.51, ["Y"] = 10.69, - ["CD"] = 0 + ["CD"] = 0, }, - [59] = - { + [59] = { ["X"] = 50.02, ["Y"] = 10.43, - ["CD"] = 0 + ["CD"] = 0, }, - [60] = - { + [60] = { ["X"] = 49.54, ["Y"] = 10.43, - ["CD"] = 0 + ["CD"] = 0, }, - [61] = - { + [61] = { ["X"] = 48.84, ["Y"] = 10.72, - ["CD"] = 0 + ["CD"] = 0, }, - [62] = - { + [62] = { ["X"] = 48.44, ["Y"] = 10.66, - ["CD"] = 0 + ["CD"] = 0, }, - [63] = - { + [63] = { ["X"] = 47.95, ["Y"] = 11.28, - ["CD"] = 0 + ["CD"] = 0, }, - [64] = - { + [64] = { ["X"] = 46.49, ["Y"] = 11.47, - ["CD"] = 0 + ["CD"] = 0, }, - [65] = - { + [65] = { ["X"] = 47.16, ["Y"] = 11.19, - ["CD"] = 0 + ["CD"] = 0, }, - [66] = - { + [66] = { ["X"] = 56.04, ["Y"] = 63.04, - ["CD"] = 0 + ["CD"] = 0, }, - [67] = - { + [67] = { ["X"] = 56.46, ["Y"] = 60.72, - ["CD"] = 0 + ["CD"] = 0, }, - [68] = - { + [68] = { ["X"] = 57.51, ["Y"] = 59.57, - ["CD"] = 0 + ["CD"] = 0, }, - [69] = - { + [69] = { ["X"] = 57.31, ["Y"] = 58.61, - ["CD"] = 0 + ["CD"] = 0, }, - [70] = - { + [70] = { ["X"] = 56.29, ["Y"] = 56.16, - ["CD"] = 0 + ["CD"] = 0, }, - [71] = - { + [71] = { ["X"] = 56.93, ["Y"] = 56.51, - ["CD"] = 0 + ["CD"] = 0, }, - [72] = - { + [72] = { ["X"] = 57.33, ["Y"] = 56.08, - ["CD"] = 0 + ["CD"] = 0, }, - [73] = - { + [73] = { ["X"] = 57.78, ["Y"] = 56.85, - ["CD"] = 0 + ["CD"] = 0, }, - [74] = - { + [74] = { ["X"] = 57.95, ["Y"] = 54.56, - ["CD"] = 0 + ["CD"] = 0, }, - [75] = - { + [75] = { ["X"] = 57.54, ["Y"] = 53.68, - ["CD"] = 0 + ["CD"] = 0, }, - [76] = - { + [76] = { ["X"] = 57.15, ["Y"] = 53.7, - ["CD"] = 0 + ["CD"] = 0, }, - [77] = - { + [77] = { ["X"] = 55.34, ["Y"] = 53.18, - ["CD"] = 0 + ["CD"] = 0, }, - [78] = - { + [78] = { ["X"] = 55.2, ["Y"] = 53.41, - ["CD"] = 0 + ["CD"] = 0, }, - [79] = - { + [79] = { ["X"] = 56.17, ["Y"] = 54.2, - ["CD"] = 0 + ["CD"] = 0, }, - [80] = - { + [80] = { ["X"] = 55.99, ["Y"] = 55.43, - ["CD"] = 0 + ["CD"] = 0, }, - [81] = - { + [81] = { ["X"] = 55.9, ["Y"] = 56.79, - ["CD"] = 0 + ["CD"] = 0, }, - [82] = - { + [82] = { ["X"] = 57.56, ["Y"] = 57.6, - ["CD"] = 0 + ["CD"] = 0, }, - [83] = - { + [83] = { ["X"] = 55.89, ["Y"] = 59.48, - ["CD"] = 0 + ["CD"] = 0, }, - [84] = - { + [84] = { ["X"] = 55.11, ["Y"] = 61.2, - ["CD"] = 0 + ["CD"] = 0, }, - [85] = - { + [85] = { ["X"] = 39, ["Y"] = 40.8, - ["CD"] = 0 + ["CD"] = 0, }, - [86] = - { + [86] = { ["X"] = 39.15, ["Y"] = 39.51, - ["CD"] = 0 + ["CD"] = 0, }, - [87] = - { + [87] = { ["X"] = 40.15, ["Y"] = 36.93, - ["CD"] = 0 + ["CD"] = 0, }, - [88] = - { + [88] = { ["X"] = 40.41, ["Y"] = 37.67, - ["CD"] = 0 + ["CD"] = 0, }, - [89] = - { + [89] = { ["X"] = 40.55, ["Y"] = 36.19, - ["CD"] = 0 + ["CD"] = 0, }, - [90] = - { + [90] = { ["X"] = 41.38, ["Y"] = 36.45, - ["CD"] = 0 + ["CD"] = 0, }, - [91] = - { + [91] = { ["X"] = 41.54, ["Y"] = 35.29, - ["CD"] = 0 + ["CD"] = 0, }, - [92] = - { + [92] = { ["X"] = 41.97, ["Y"] = 33.67, - ["CD"] = 0 + ["CD"] = 0, }, - [93] = - { + [93] = { ["X"] = 41.46, ["Y"] = 31.24, - ["CD"] = 0 + ["CD"] = 0, }, - [94] = - { + [94] = { ["X"] = 41.4, ["Y"] = 28.92, - ["CD"] = 0 + ["CD"] = 0, }, - [95] = - { + [95] = { ["X"] = 40.79, ["Y"] = 29.51, - ["CD"] = 0 + ["CD"] = 0, }, - [96] = - { + [96] = { ["X"] = 42.57, ["Y"] = 30.29, - ["CD"] = 0 + ["CD"] = 0, }, - [97] = - { + [97] = { ["X"] = 46.38, ["Y"] = 32.35, - ["CD"] = 0 + ["CD"] = 0, }, - [98] = - { + [98] = { ["X"] = 45.3, ["Y"] = 32.49, - ["CD"] = 0 + ["CD"] = 0, }, - [99] = - { + [99] = { ["X"] = 44.18, ["Y"] = 33.11, - ["CD"] = 0 + ["CD"] = 0, }, - [100] = - { + [100] = { ["X"] = 44.31, ["Y"] = 32.62, - ["CD"] = 0 + ["CD"] = 0, }, - [101] = - { + [101] = { ["X"] = 44.76, ["Y"] = 30.4, - ["CD"] = 0 + ["CD"] = 0, }, - [102] = - { + [102] = { ["X"] = 37.07, ["Y"] = 19.85, - ["CD"] = 0 + ["CD"] = 0, }, - [103] = - { + [103] = { ["X"] = 36.06, ["Y"] = 20.92, - ["CD"] = 0 + ["CD"] = 0, }, - [104] = - { + [104] = { ["X"] = 32.68, ["Y"] = 23.7, - ["CD"] = 0 + ["CD"] = 0, }, - [105] = - { + [105] = { ["X"] = 33.36, ["Y"] = 21.36, - ["CD"] = 0 + ["CD"] = 0, }, - [106] = - { + [106] = { ["X"] = 34.62, ["Y"] = 22.6, - ["CD"] = 0 + ["CD"] = 0, }, - [107] = - { + [107] = { ["X"] = 35.26, ["Y"] = 23.87, - ["CD"] = 0 + ["CD"] = 0, }, - [108] = - { + [108] = { ["X"] = 36.27, ["Y"] = 23.14, - ["CD"] = 0 + ["CD"] = 0, }, - [109] = - { + [109] = { ["X"] = 34.74, ["Y"] = 23.43, - ["CD"] = 0 + ["CD"] = 0, }, - [110] = - { + [110] = { ["X"] = 34.05, ["Y"] = 24.22, - ["CD"] = 0 + ["CD"] = 0, }, - [111] = - { + [111] = { ["X"] = 34.18, ["Y"] = 27.2, - ["CD"] = 0 + ["CD"] = 0, }, - [112] = - { + [112] = { ["X"] = 34.23, ["Y"] = 25.22, - ["CD"] = 0 + ["CD"] = 0, }, - [113] = - { + [113] = { ["X"] = 31.78, ["Y"] = 35.09, - ["CD"] = 0 + ["CD"] = 0, }, - [114] = - { + [114] = { ["X"] = 32.12, ["Y"] = 34.17, - ["CD"] = 0 + ["CD"] = 0, }, - [115] = - { + [115] = { ["X"] = 33.13, ["Y"] = 33.36, - ["CD"] = 0 + ["CD"] = 0, }, - [116] = - { + [116] = { ["X"] = 32.78, ["Y"] = 32.58, - ["CD"] = 0 + ["CD"] = 0, }, - [117] = - { + [117] = { ["X"] = 31.77, ["Y"] = 31.79, - ["CD"] = 0 + ["CD"] = 0, }, - [118] = - { + [118] = { ["X"] = 30.37, ["Y"] = 28.05, - ["CD"] = 0 + ["CD"] = 0, }, - [119] = - { + [119] = { ["X"] = 30.53, ["Y"] = 29.81, - ["CD"] = 0 + ["CD"] = 0, }, - [120] = - { + [120] = { ["X"] = 30.8, ["Y"] = 30.32, - ["CD"] = 0 + ["CD"] = 0, }, - [121] = - { + [121] = { ["X"] = 28.47, ["Y"] = 40.12, - ["CD"] = 0 + ["CD"] = 0, }, - [122] = - { + [122] = { ["X"] = 27.69, ["Y"] = 41.13, - ["CD"] = 0 + ["CD"] = 0, }, - [123] = - { + [123] = { ["X"] = 28.37, ["Y"] = 41.03, - ["CD"] = 0 + ["CD"] = 0, }, - [124] = - { + [124] = { ["X"] = 28.86, ["Y"] = 42.47, - ["CD"] = 0 + ["CD"] = 0, }, - [125] = - { + [125] = { ["X"] = 29.95, ["Y"] = 41.71, - ["CD"] = 0 + ["CD"] = 0, }, - [126] = - { + [126] = { ["X"] = 31.73, ["Y"] = 38.3, - ["CD"] = 0 + ["CD"] = 0, }, - [127] = - { + [127] = { ["X"] = 30.38, ["Y"] = 39.04, - ["CD"] = 0 + ["CD"] = 0, }, - [128] = - { + [128] = { ["X"] = 31.37, ["Y"] = 36.91, - ["CD"] = 0 + ["CD"] = 0, }, - [129] = - { + [129] = { ["X"] = 31.64, ["Y"] = 35.8, - ["CD"] = 0 + ["CD"] = 0, }, - [130] = - { + [130] = { ["X"] = 30.36, ["Y"] = 34.88, - ["CD"] = 0 + ["CD"] = 0, }, - [131] = - { + [131] = { ["X"] = 31.05, ["Y"] = 33.51, - ["CD"] = 0 + ["CD"] = 0, }, - [132] = - { + [132] = { ["X"] = 30.53, ["Y"] = 33.11, - ["CD"] = 0 + ["CD"] = 0, }, - [133] = - { + [133] = { ["X"] = 31.38, ["Y"] = 30.83, - ["CD"] = 0 + ["CD"] = 0, }, - [134] = - { + [134] = { ["X"] = 44.68, ["Y"] = 54.55, - ["CD"] = 0 + ["CD"] = 0, }, - [135] = - { + [135] = { ["X"] = 44.08, ["Y"] = 54.55, - ["CD"] = 0 + ["CD"] = 0, }, - [136] = - { + [136] = { ["X"] = 43.58, ["Y"] = 54.82, - ["CD"] = 0 + ["CD"] = 0, }, - [137] = - { + [137] = { ["X"] = 45.12, ["Y"] = 50.11, - ["CD"] = 0 + ["CD"] = 0, }, - [138] = - { + [138] = { ["X"] = 43.58, ["Y"] = 45.93, - ["CD"] = 0 + ["CD"] = 0, }, - [139] = - { + [139] = { ["X"] = 42.63, ["Y"] = 45.65, - ["CD"] = 0 + ["CD"] = 0, }, - [140] = - { + [140] = { ["X"] = 42.96, ["Y"] = 46.27, - ["CD"] = 0 + ["CD"] = 0, }, - [141] = - { + [141] = { ["X"] = 42.09, ["Y"] = 46.82, - ["CD"] = 0 + ["CD"] = 0, }, - [142] = - { + [142] = { ["X"] = 39.3, ["Y"] = 46.88, - ["CD"] = 0 + ["CD"] = 0, }, - [143] = - { + [143] = { ["X"] = 40.18, ["Y"] = 47.01, - ["CD"] = 0 + ["CD"] = 0, }, - [144] = - { + [144] = { ["X"] = 40.81, ["Y"] = 46.97, - ["CD"] = 0 + ["CD"] = 0, }, - [145] = - { + [145] = { ["X"] = 41.37, ["Y"] = 48.56, - ["CD"] = 0 + ["CD"] = 0, }, - [146] = - { + [146] = { ["X"] = 40.45, ["Y"] = 48.42, - ["CD"] = 0 + ["CD"] = 0, }, - [147] = - { + [147] = { ["X"] = 38.56, ["Y"] = 50.23, - ["CD"] = 0 + ["CD"] = 0, }, - [148] = - { + [148] = { ["X"] = 38.26, ["Y"] = 49.28, - ["CD"] = 0 + ["CD"] = 0, }, - [149] = - { + [149] = { ["X"] = 39.77, ["Y"] = 49.03, - ["CD"] = 0 + ["CD"] = 0, }, - [150] = - { + [150] = { ["X"] = 39.89, ["Y"] = 49.73, - ["CD"] = 0 + ["CD"] = 0, }, - [151] = - { + [151] = { ["X"] = 39.97, ["Y"] = 50.65, - ["CD"] = 0 + ["CD"] = 0, }, - [152] = - { + [152] = { ["X"] = 40.15, ["Y"] = 51.03, - ["CD"] = 0 + ["CD"] = 0, }, - [153] = - { + [153] = { ["X"] = 58.81, ["Y"] = 62.31, - ["CD"] = 0 + ["CD"] = 0, }, - [154] = - { + [154] = { ["X"] = 55.76, ["Y"] = 65.74, - ["CD"] = 0 + ["CD"] = 0, }, - [155] = - { + [155] = { ["X"] = 52.04, ["Y"] = 58.38, - ["CD"] = 0 + ["CD"] = 0, }, - [156] = - { + [156] = { ["X"] = 50.81, ["Y"] = 67.32, - ["CD"] = 0 + ["CD"] = 0, }, - [157] = - { + [157] = { ["X"] = 43.38, ["Y"] = 66.19, - ["CD"] = 0 + ["CD"] = 0, }, - [158] = - { + [158] = { ["X"] = 24.98, ["Y"] = 59.43, - ["CD"] = 0 + ["CD"] = 0, }, - [159] = - { + [159] = { ["X"] = 26.05, ["Y"] = 63.62, - ["CD"] = 0 + ["CD"] = 0, }, - [160] = - { + [160] = { ["X"] = 28.67, ["Y"] = 55.49, - ["CD"] = 0 + ["CD"] = 0, }, - [161] = - { + [161] = { ["X"] = 26.86, ["Y"] = 41.18, - ["CD"] = 0 + ["CD"] = 0, }, - [162] = - { + [162] = { ["X"] = 25.89, ["Y"] = 44.55, - ["CD"] = 0 + ["CD"] = 0, }, - [163] = - { + [163] = { ["X"] = 24.23, ["Y"] = 43.43, - ["CD"] = 0 + ["CD"] = 0, }, - [164] = - { + [164] = { ["X"] = 26.35, ["Y"] = 39.24, - ["CD"] = 0 + ["CD"] = 0, }, - [165] = - { + [165] = { ["X"] = 28.83, ["Y"] = 35.34, - ["CD"] = 0 + ["CD"] = 0, }, - [166] = - { + [166] = { ["X"] = 27.93, ["Y"] = 30.52, - ["CD"] = 0 + ["CD"] = 0, }, - [167] = - { + [167] = { ["X"] = 28.73, ["Y"] = 28.61, - ["CD"] = 0 + ["CD"] = 0, }, - [168] = - { + [168] = { ["X"] = 31.88, ["Y"] = 26.11, - ["CD"] = 0 + ["CD"] = 0, }, - [169] = - { + [169] = { ["X"] = 37.52, ["Y"] = 15.31, - ["CD"] = 0 + ["CD"] = 0, }, - [170] = - { + [170] = { ["X"] = 44.79, ["Y"] = 12.36, - ["CD"] = 0 + ["CD"] = 0, }, - [171] = - { + [171] = { ["X"] = 58.06, ["Y"] = 22.18, - ["CD"] = 0 + ["CD"] = 0, }, - [172] = - { + [172] = { ["X"] = 57.64, ["Y"] = 19.03, - ["CD"] = 0 + ["CD"] = 0, }, - [173] = - { + [173] = { ["X"] = 54.81, ["Y"] = 16.28, - ["CD"] = 0 + ["CD"] = 0, }, - [174] = - { + [174] = { ["X"] = 53.1, ["Y"] = 13.37, - ["CD"] = 0 + ["CD"] = 0, }, - [175] = - { + [175] = { ["X"] = 49.63, ["Y"] = 13.87, - ["CD"] = 0 + ["CD"] = 0, }, - [176] = - { + [176] = { ["X"] = 49.23, ["Y"] = 8.72, - ["CD"] = 0 + ["CD"] = 0, }, - [177] = - { + [177] = { ["X"] = 47.72, ["Y"] = 6.15, - ["CD"] = 0 + ["CD"] = 0, }, - [178] = - { + [178] = { ["X"] = 44.93, ["Y"] = 7.4, - ["CD"] = 0 + ["CD"] = 0, }, - [179] = - { + [179] = { ["X"] = 42.09, ["Y"] = 27.58, - ["CD"] = 0 + ["CD"] = 0, }, - [180] = - { + [180] = { ["X"] = 46.45, ["Y"] = 26.28, - ["CD"] = 0 + ["CD"] = 0, }, - [181] = - { + [181] = { ["X"] = 47.57, ["Y"] = 24.96, - ["CD"] = 0 + ["CD"] = 0, }, - [182] = - { + [182] = { ["X"] = 48.31, ["Y"] = 29.71, - ["CD"] = 0 + ["CD"] = 0, }, - [183] = - { + [183] = { ["X"] = 35.86, ["Y"] = 38.62, - ["CD"] = 0 + ["CD"] = 0, }, - [184] = - { + [184] = { ["X"] = 40.33, ["Y"] = 33.71, - ["CD"] = 0 + ["CD"] = 0, }, - [185] = - { + [185] = { ["X"] = 36.87, ["Y"] = 35.15, - ["CD"] = 0 + ["CD"] = 0, }, - [186] = - { + [186] = { ["X"] = 37.26, ["Y"] = 33.85, - ["CD"] = 0 + ["CD"] = 0, }, - [187] = - { + [187] = { ["X"] = 42.47, ["Y"] = 51.44, - ["CD"] = 0 + ["CD"] = 0, }, - [188] = - { + [188] = { ["X"] = 42.21, ["Y"] = 54.16, - ["CD"] = 0 + ["CD"] = 0, }, - [189] = - { + [189] = { ["X"] = 44.95, ["Y"] = 55.74, - ["CD"] = 0 + ["CD"] = 0, }, - [190] = - { + [190] = { ["X"] = 52, ["Y"] = 32.57, - ["CD"] = 0 + ["CD"] = 0, }, - [191] = - { + [191] = { ["X"] = 52.49, ["Y"] = 34.19, - ["CD"] = 0 + ["CD"] = 0, }, - [192] = - { + [192] = { ["X"] = 52.71, ["Y"] = 39.16, - ["CD"] = 0 + ["CD"] = 0, }, - [193] = - { + [193] = { ["X"] = 54.4, ["Y"] = 50.27, - ["CD"] = 0 + ["CD"] = 0, }, - [194] = - { + [194] = { ["X"] = 49.74, ["Y"] = 42.1, - ["CD"] = 0 + ["CD"] = 0, }, - [195] = - { + [195] = { ["X"] = 47.22, ["Y"] = 51.9, - ["CD"] = 0 + ["CD"] = 0, }, - [196] = - { + [196] = { ["X"] = 47.87, ["Y"] = 54.97, - ["CD"] = 0 + ["CD"] = 0, }, - [197] = - { + [197] = { ["X"] = 43.42, ["Y"] = 72.85, - ["CD"] = 0 + ["CD"] = 0, }, - [198] = - { + [198] = { ["X"] = 48.48, ["Y"] = 54.81, - ["CD"] = 0 + ["CD"] = 0, }, - [199] = - { + [199] = { ["X"] = 38.62, ["Y"] = 61.09, - ["CD"] = 0 + ["CD"] = 0, }, - [200] = - { + [200] = { ["X"] = 42.5, ["Y"] = 61.79, - ["CD"] = 0 - } + ["CD"] = 0, + }, }, --Stormheim / Fjarnskaggl - [1017] = - { - [1] = - { + [1017] = { + [1] = { ["X"] = 47.24, ["Y"] = 55.62, - ["CD"] = 0 + ["CD"] = 0, }, - [2] = - { + [2] = { ["X"] = 51.47, ["Y"] = 55.4, - ["CD"] = 0 + ["CD"] = 0, }, - [3] = - { + [3] = { ["X"] = 49.09, ["Y"] = 52.04, - ["CD"] = 0 + ["CD"] = 0, }, - [4] = - { + [4] = { ["X"] = 48.14, ["Y"] = 53.66, - ["CD"] = 0 + ["CD"] = 0, }, - [5] = - { + [5] = { ["X"] = 45.46, ["Y"] = 53.33, - ["CD"] = 0 + ["CD"] = 0, }, - [6] = - { + [6] = { ["X"] = 42.97, ["Y"] = 59.67, - ["CD"] = 0 + ["CD"] = 0, }, - [7] = - { + [7] = { ["X"] = 42.91, ["Y"] = 57.7, - ["CD"] = 0 + ["CD"] = 0, }, - [8] = - { + [8] = { ["X"] = 42.8, ["Y"] = 56.74, - ["CD"] = 0 + ["CD"] = 0, }, - [9] = - { + [9] = { ["X"] = 41.94, ["Y"] = 53.95, - ["CD"] = 0 + ["CD"] = 0, }, - [10] = - { + [10] = { ["X"] = 39.66, ["Y"] = 53.74, - ["CD"] = 0 + ["CD"] = 0, }, - [11] = - { + [11] = { ["X"] = 40.06, ["Y"] = 52.65, - ["CD"] = 0 + ["CD"] = 0, }, - [12] = - { + [12] = { ["X"] = 41.77, ["Y"] = 49.95, - ["CD"] = 0 + ["CD"] = 0, }, - [13] = - { + [13] = { ["X"] = 42.6, ["Y"] = 49.17, - ["CD"] = 0 + ["CD"] = 0, }, - [14] = - { + [14] = { ["X"] = 42.02, ["Y"] = 50.81, - ["CD"] = 0 + ["CD"] = 0, }, - [15] = - { + [15] = { ["X"] = 42.54, ["Y"] = 52.47, - ["CD"] = 0 + ["CD"] = 0, }, - [16] = - { + [16] = { ["X"] = 42.86, ["Y"] = 51.62, - ["CD"] = 0 + ["CD"] = 0, }, - [17] = - { + [17] = { ["X"] = 44.56, ["Y"] = 52.7, - ["CD"] = 0 + ["CD"] = 0, }, - [18] = - { + [18] = { ["X"] = 43.88, ["Y"] = 52.96, - ["CD"] = 0 + ["CD"] = 0, }, - [19] = - { + [19] = { ["X"] = 43.66, ["Y"] = 54.02, - ["CD"] = 0 + ["CD"] = 0, }, - [20] = - { + [20] = { ["X"] = 44.39, ["Y"] = 54.51, - ["CD"] = 0 + ["CD"] = 0, }, - [21] = - { + [21] = { ["X"] = 44.57, ["Y"] = 56.26, - ["CD"] = 0 + ["CD"] = 0, }, - [22] = - { + [22] = { ["X"] = 44.17, ["Y"] = 58.37, - ["CD"] = 0 + ["CD"] = 0, }, - [23] = - { + [23] = { ["X"] = 46.02, ["Y"] = 58.16, - ["CD"] = 0 + ["CD"] = 0, }, - [24] = - { + [24] = { ["X"] = 45.54, ["Y"] = 56.28, - ["CD"] = 0 + ["CD"] = 0, }, - [25] = - { + [25] = { ["X"] = 45.64, ["Y"] = 55.67, - ["CD"] = 0 + ["CD"] = 0, }, - [26] = - { + [26] = { ["X"] = 45.88, ["Y"] = 54.95, - ["CD"] = 0 + ["CD"] = 0, }, - [27] = - { + [27] = { ["X"] = 75.52, ["Y"] = 64.36, - ["CD"] = 0 + ["CD"] = 0, }, - [28] = - { + [28] = { ["X"] = 74.64, ["Y"] = 63.4, - ["CD"] = 0 + ["CD"] = 0, }, - [29] = - { + [29] = { ["X"] = 75.47, ["Y"] = 61.49, - ["CD"] = 0 + ["CD"] = 0, }, - [30] = - { + [30] = { ["X"] = 76.04, ["Y"] = 62.25, - ["CD"] = 0 + ["CD"] = 0, }, - [31] = - { + [31] = { ["X"] = 76.34, ["Y"] = 62.88, - ["CD"] = 0 + ["CD"] = 0, }, - [32] = - { + [32] = { ["X"] = 75.6, ["Y"] = 61.16, - ["CD"] = 0 + ["CD"] = 0, }, - [33] = - { + [33] = { ["X"] = 74.48, ["Y"] = 61.07, - ["CD"] = 0 + ["CD"] = 0, }, - [34] = - { + [34] = { ["X"] = 73.1, ["Y"] = 61.55, - ["CD"] = 0 + ["CD"] = 0, }, - [35] = - { + [35] = { ["X"] = 71.6, ["Y"] = 61.94, - ["CD"] = 0 + ["CD"] = 0, }, - [36] = - { + [36] = { ["X"] = 71.17, ["Y"] = 61.79, - ["CD"] = 0 + ["CD"] = 0, }, - [37] = - { + [37] = { ["X"] = 70.7, ["Y"] = 61.82, - ["CD"] = 0 + ["CD"] = 0, }, - [38] = - { + [38] = { ["X"] = 69.93, ["Y"] = 60.51, - ["CD"] = 0 + ["CD"] = 0, }, - [39] = - { + [39] = { ["X"] = 68.88, ["Y"] = 62.24, - ["CD"] = 0 + ["CD"] = 0, }, - [40] = - { + [40] = { ["X"] = 68.02, ["Y"] = 62.34, - ["CD"] = 0 + ["CD"] = 0, }, - [41] = - { + [41] = { ["X"] = 68.38, ["Y"] = 60.4, - ["CD"] = 0 + ["CD"] = 0, }, - [42] = - { + [42] = { ["X"] = 68.09, ["Y"] = 58.09, - ["CD"] = 0 + ["CD"] = 0, }, - [43] = - { + [43] = { ["X"] = 68.51, ["Y"] = 57.47, - ["CD"] = 0 + ["CD"] = 0, }, - [44] = - { + [44] = { ["X"] = 69.32, ["Y"] = 57.12, - ["CD"] = 0 + ["CD"] = 0, }, - [45] = - { + [45] = { ["X"] = 70.52, ["Y"] = 56.23, - ["CD"] = 0 + ["CD"] = 0, }, - [46] = - { + [46] = { ["X"] = 68.72, ["Y"] = 55.81, - ["CD"] = 0 + ["CD"] = 0, }, - [47] = - { + [47] = { ["X"] = 68.24, ["Y"] = 55.37, - ["CD"] = 0 + ["CD"] = 0, }, - [48] = - { + [48] = { ["X"] = 67.73, ["Y"] = 53.38, - ["CD"] = 0 + ["CD"] = 0, }, - [49] = - { + [49] = { ["X"] = 67.47, ["Y"] = 50.94, - ["CD"] = 0 + ["CD"] = 0, }, - [50] = - { + [50] = { ["X"] = 66.2, ["Y"] = 50.65, - ["CD"] = 0 + ["CD"] = 0, }, - [51] = - { + [51] = { ["X"] = 66.13, ["Y"] = 49.8, - ["CD"] = 0 + ["CD"] = 0, }, - [52] = - { + [52] = { ["X"] = 65.36, ["Y"] = 46.62, - ["CD"] = 0 + ["CD"] = 0, }, - [53] = - { + [53] = { ["X"] = 68.76, ["Y"] = 42.62, - ["CD"] = 0 + ["CD"] = 0, }, - [54] = - { + [54] = { ["X"] = 69.77, ["Y"] = 41.67, - ["CD"] = 0 + ["CD"] = 0, }, - [55] = - { + [55] = { ["X"] = 70.11, ["Y"] = 40.61, - ["CD"] = 0 + ["CD"] = 0, }, - [56] = - { + [56] = { ["X"] = 70.23, ["Y"] = 39.9, - ["CD"] = 0 + ["CD"] = 0, }, - [57] = - { + [57] = { ["X"] = 70.45, ["Y"] = 39.16, - ["CD"] = 0 + ["CD"] = 0, }, - [58] = - { + [58] = { ["X"] = 71.16, ["Y"] = 38.18, - ["CD"] = 0 + ["CD"] = 0, }, - [59] = - { + [59] = { ["X"] = 70.62, ["Y"] = 37.63, - ["CD"] = 0 + ["CD"] = 0, }, - [60] = - { + [60] = { ["X"] = 69.98, ["Y"] = 37.93, - ["CD"] = 0 + ["CD"] = 0, }, - [61] = - { + [61] = { ["X"] = 69.85, ["Y"] = 36.95, - ["CD"] = 0 + ["CD"] = 0, }, - [62] = - { + [62] = { ["X"] = 69.11, ["Y"] = 37.75, - ["CD"] = 0 + ["CD"] = 0, }, - [63] = - { + [63] = { ["X"] = 68.09, ["Y"] = 38.08, - ["CD"] = 0 + ["CD"] = 0, }, - [64] = - { + [64] = { ["X"] = 68.51, ["Y"] = 39.26, - ["CD"] = 0 + ["CD"] = 0, }, - [65] = - { + [65] = { ["X"] = 67.77, ["Y"] = 40.49, - ["CD"] = 0 + ["CD"] = 0, }, - [66] = - { + [66] = { ["X"] = 67.39, ["Y"] = 41.98, - ["CD"] = 0 + ["CD"] = 0, }, - [67] = - { + [67] = { ["X"] = 66.73, ["Y"] = 42.58, - ["CD"] = 0 + ["CD"] = 0, }, - [68] = - { + [68] = { ["X"] = 67.01, ["Y"] = 43.27, - ["CD"] = 0 + ["CD"] = 0, }, - [69] = - { + [69] = { ["X"] = 66.64, ["Y"] = 43.31, - ["CD"] = 0 + ["CD"] = 0, }, - [70] = - { + [70] = { ["X"] = 65.25, ["Y"] = 48.23, - ["CD"] = 0 + ["CD"] = 0, }, - [71] = - { + [71] = { ["X"] = 64.43, ["Y"] = 47.44, - ["CD"] = 0 + ["CD"] = 0, }, - [72] = - { + [72] = { ["X"] = 64.3, ["Y"] = 49.23, - ["CD"] = 0 + ["CD"] = 0, }, - [73] = - { + [73] = { ["X"] = 63.4, ["Y"] = 49.43, - ["CD"] = 0 + ["CD"] = 0, }, - [74] = - { + [74] = { ["X"] = 61.43, ["Y"] = 49.66, - ["CD"] = 0 + ["CD"] = 0, }, - [75] = - { + [75] = { ["X"] = 62.74, ["Y"] = 50.15, - ["CD"] = 0 + ["CD"] = 0, }, - [76] = - { + [76] = { ["X"] = 62.33, ["Y"] = 50.62, - ["CD"] = 0 + ["CD"] = 0, }, - [77] = - { + [77] = { ["X"] = 61.77, ["Y"] = 51.52, - ["CD"] = 0 + ["CD"] = 0, }, - [78] = - { + [78] = { ["X"] = 61.5, ["Y"] = 53.26, - ["CD"] = 0 + ["CD"] = 0, }, - [79] = - { + [79] = { ["X"] = 61.08, ["Y"] = 54.15, - ["CD"] = 0 + ["CD"] = 0, }, - [80] = - { + [80] = { ["X"] = 59.76, ["Y"] = 53.98, - ["CD"] = 0 + ["CD"] = 0, }, - [81] = - { + [81] = { ["X"] = 59.06, ["Y"] = 52.97, - ["CD"] = 0 + ["CD"] = 0, }, - [82] = - { + [82] = { ["X"] = 59.38, ["Y"] = 51.04, - ["CD"] = 0 + ["CD"] = 0, }, - [83] = - { + [83] = { ["X"] = 59.05, ["Y"] = 51.07, - ["CD"] = 0 + ["CD"] = 0, }, - [84] = - { + [84] = { ["X"] = 58.05, ["Y"] = 51.4, - ["CD"] = 0 + ["CD"] = 0, }, - [85] = - { + [85] = { ["X"] = 57.23, ["Y"] = 50.59, - ["CD"] = 0 + ["CD"] = 0, }, - [86] = - { + [86] = { ["X"] = 56.64, ["Y"] = 50.71, - ["CD"] = 0 + ["CD"] = 0, }, - [87] = - { + [87] = { ["X"] = 53.07, ["Y"] = 53.33, - ["CD"] = 0 + ["CD"] = 0, }, - [88] = - { + [88] = { ["X"] = 53.94, ["Y"] = 54.38, - ["CD"] = 0 + ["CD"] = 0, }, - [89] = - { + [89] = { ["X"] = 53.44, ["Y"] = 54.49, - ["CD"] = 0 + ["CD"] = 0, }, - [90] = - { + [90] = { ["X"] = 52.19, ["Y"] = 56.4, - ["CD"] = 0 + ["CD"] = 0, }, - [91] = - { + [91] = { ["X"] = 51.96, ["Y"] = 58.49, - ["CD"] = 0 + ["CD"] = 0, }, - [92] = - { + [92] = { ["X"] = 51.66, ["Y"] = 58.85, - ["CD"] = 0 + ["CD"] = 0, }, - [93] = - { + [93] = { ["X"] = 51.36, ["Y"] = 59.61, - ["CD"] = 0 + ["CD"] = 0, }, - [94] = - { + [94] = { ["X"] = 52, ["Y"] = 60.49, - ["CD"] = 0 + ["CD"] = 0, }, - [95] = - { + [95] = { ["X"] = 53.76, ["Y"] = 58.93, - ["CD"] = 0 + ["CD"] = 0, }, - [96] = - { + [96] = { ["X"] = 53.43, ["Y"] = 58.03, - ["CD"] = 0 + ["CD"] = 0, }, - [97] = - { + [97] = { ["X"] = 52.75, ["Y"] = 56.71, - ["CD"] = 0 + ["CD"] = 0, }, - [98] = - { + [98] = { ["X"] = 53.34, ["Y"] = 56.63, - ["CD"] = 0 + ["CD"] = 0, }, - [99] = - { + [99] = { ["X"] = 53.46, ["Y"] = 55.97, - ["CD"] = 0 + ["CD"] = 0, }, - [100] = - { + [100] = { ["X"] = 52.99, ["Y"] = 55.07, - ["CD"] = 0 + ["CD"] = 0, }, - [101] = - { + [101] = { ["X"] = 52.69, ["Y"] = 53.46, - ["CD"] = 0 + ["CD"] = 0, }, - [102] = - { + [102] = { ["X"] = 51.16, ["Y"] = 53.73, - ["CD"] = 0 + ["CD"] = 0, }, - [103] = - { + [103] = { ["X"] = 50.62, ["Y"] = 53.1, - ["CD"] = 0 + ["CD"] = 0, }, - [104] = - { + [104] = { ["X"] = 50.2, ["Y"] = 52.37, - ["CD"] = 0 + ["CD"] = 0, }, - [105] = - { + [105] = { ["X"] = 50.13, ["Y"] = 50.4, - ["CD"] = 0 + ["CD"] = 0, }, - [106] = - { + [106] = { ["X"] = 48.08, ["Y"] = 50.93, - ["CD"] = 0 + ["CD"] = 0, }, - [107] = - { + [107] = { ["X"] = 47.68, ["Y"] = 48.92, - ["CD"] = 0 + ["CD"] = 0, }, - [108] = - { + [108] = { ["X"] = 44.23, ["Y"] = 45.97, - ["CD"] = 0 + ["CD"] = 0, }, - [109] = - { + [109] = { ["X"] = 45.22, ["Y"] = 43.32, - ["CD"] = 0 + ["CD"] = 0, }, - [110] = - { + [110] = { ["X"] = 45.69, ["Y"] = 42.54, - ["CD"] = 0 + ["CD"] = 0, }, - [111] = - { + [111] = { ["X"] = 46.28, ["Y"] = 42.7, - ["CD"] = 0 + ["CD"] = 0, }, - [112] = - { + [112] = { ["X"] = 48.34, ["Y"] = 39.8, - ["CD"] = 0 + ["CD"] = 0, }, - [113] = - { + [113] = { ["X"] = 49.36, ["Y"] = 37.64, - ["CD"] = 0 + ["CD"] = 0, }, - [114] = - { + [114] = { ["X"] = 47.3, ["Y"] = 38.94, - ["CD"] = 0 + ["CD"] = 0, }, - [115] = - { + [115] = { ["X"] = 42.38, ["Y"] = 41.41, - ["CD"] = 0 + ["CD"] = 0, }, - [116] = - { + [116] = { ["X"] = 42.36, ["Y"] = 39.64, - ["CD"] = 0 + ["CD"] = 0, }, - [117] = - { + [117] = { ["X"] = 42.97, ["Y"] = 39.05, - ["CD"] = 0 + ["CD"] = 0, }, - [118] = - { + [118] = { ["X"] = 42.41, ["Y"] = 38.26, - ["CD"] = 0 + ["CD"] = 0, }, - [119] = - { + [119] = { ["X"] = 40.83, ["Y"] = 40.62, - ["CD"] = 0 + ["CD"] = 0, }, - [120] = - { + [120] = { ["X"] = 41.68, ["Y"] = 40.19, - ["CD"] = 0 + ["CD"] = 0, }, - [121] = - { + [121] = { ["X"] = 61.22, ["Y"] = 64.31, - ["CD"] = 0 + ["CD"] = 0, }, - [122] = - { + [122] = { ["X"] = 56.67, ["Y"] = 79.09, - ["CD"] = 0 + ["CD"] = 0, }, - [123] = - { + [123] = { ["X"] = 73.25, ["Y"] = 44.25, - ["CD"] = 0 + ["CD"] = 0, }, - [124] = - { + [124] = { ["X"] = 73.25, ["Y"] = 44.5, - ["CD"] = 0 + ["CD"] = 0, }, - [125] = - { + [125] = { ["X"] = 69.24, ["Y"] = 50.47, - ["CD"] = 0 + ["CD"] = 0, }, - [126] = - { + [126] = { ["X"] = 64.32, ["Y"] = 44.07, - ["CD"] = 0 + ["CD"] = 0, }, - [127] = - { + [127] = { ["X"] = 62.95, ["Y"] = 46.32, - ["CD"] = 0 + ["CD"] = 0, }, - [128] = - { + [128] = { ["X"] = 63.56, ["Y"] = 45.14, - ["CD"] = 0 + ["CD"] = 0, }, - [129] = - { + [129] = { ["X"] = 68.35, ["Y"] = 58.98, - ["CD"] = 0 + ["CD"] = 0, }, - [130] = - { + [130] = { ["X"] = 71.6, ["Y"] = 52.25, - ["CD"] = 0 + ["CD"] = 0, }, - [131] = - { + [131] = { ["X"] = 82.09, ["Y"] = 57.01, - ["CD"] = 0 + ["CD"] = 0, }, - [132] = - { + [132] = { ["X"] = 80.93, ["Y"] = 56.31, - ["CD"] = 0 + ["CD"] = 0, }, - [133] = - { + [133] = { ["X"] = 79.83, ["Y"] = 64.42, - ["CD"] = 0 + ["CD"] = 0, }, - [134] = - { + [134] = { ["X"] = 78.73, ["Y"] = 63.87, - ["CD"] = 0 + ["CD"] = 0, }, - [135] = - { + [135] = { ["X"] = 80.89, ["Y"] = 63.18, - ["CD"] = 0 + ["CD"] = 0, }, - [136] = - { + [136] = { ["X"] = 78.75, ["Y"] = 58.41, - ["CD"] = 0 + ["CD"] = 0, }, - [137] = - { + [137] = { ["X"] = 77.87, ["Y"] = 57.58, - ["CD"] = 0 + ["CD"] = 0, }, - [138] = - { + [138] = { ["X"] = 73.32, ["Y"] = 59.52, - ["CD"] = 0 + ["CD"] = 0, }, - [139] = - { + [139] = { ["X"] = 70.2, ["Y"] = 58.54, - ["CD"] = 0 + ["CD"] = 0, }, - [140] = - { + [140] = { ["X"] = 68.78, ["Y"] = 54.4, - ["CD"] = 0 + ["CD"] = 0, }, - [141] = - { + [141] = { ["X"] = 67.69, ["Y"] = 59.37, - ["CD"] = 0 + ["CD"] = 0, }, - [142] = - { + [142] = { ["X"] = 67.61, ["Y"] = 54.47, - ["CD"] = 0 + ["CD"] = 0, }, - [143] = - { + [143] = { ["X"] = 65.94, ["Y"] = 52.25, - ["CD"] = 0 + ["CD"] = 0, }, - [144] = - { + [144] = { ["X"] = 63.57, ["Y"] = 55.84, - ["CD"] = 0 + ["CD"] = 0, }, - [145] = - { + [145] = { ["X"] = 68.18, ["Y"] = 50.25, - ["CD"] = 0 + ["CD"] = 0, }, - [146] = - { + [146] = { ["X"] = 43.9, ["Y"] = 58.83, - ["CD"] = 0 + ["CD"] = 0, }, - [147] = - { + [147] = { ["X"] = 43.27, ["Y"] = 81.62, - ["CD"] = 0 + ["CD"] = 0, }, - [148] = - { + [148] = { ["X"] = 45.24, ["Y"] = 75.28, - ["CD"] = 0 + ["CD"] = 0, }, - [149] = - { + [149] = { ["X"] = 43.53, ["Y"] = 70.2, - ["CD"] = 0 + ["CD"] = 0, }, - [150] = - { + [150] = { ["X"] = 43.4, ["Y"] = 71.29, - ["CD"] = 0 + ["CD"] = 0, }, - [151] = - { + [151] = { ["X"] = 48, ["Y"] = 67.59, - ["CD"] = 0 + ["CD"] = 0, }, - [152] = - { + [152] = { ["X"] = 41.82, ["Y"] = 65.83, - ["CD"] = 0 + ["CD"] = 0, }, - [153] = - { + [153] = { ["X"] = 41.11, ["Y"] = 65.23, - ["CD"] = 0 + ["CD"] = 0, }, - [154] = - { + [154] = { ["X"] = 37.84, ["Y"] = 64.52, - ["CD"] = 0 + ["CD"] = 0, }, - [155] = - { + [155] = { ["X"] = 41.31, ["Y"] = 58.59, - ["CD"] = 0 + ["CD"] = 0, }, - [156] = - { + [156] = { ["X"] = 42.35, ["Y"] = 61.07, - ["CD"] = 0 + ["CD"] = 0, }, - [157] = - { + [157] = { ["X"] = 38.37, ["Y"] = 56.57, - ["CD"] = 0 + ["CD"] = 0, }, - [158] = - { + [158] = { ["X"] = 37.66, ["Y"] = 55.01, - ["CD"] = 0 + ["CD"] = 0, }, - [159] = - { + [159] = { ["X"] = 44.11, ["Y"] = 44.07, - ["CD"] = 0 + ["CD"] = 0, }, - [160] = - { + [160] = { ["X"] = 46.61, ["Y"] = 40.23, - ["CD"] = 0 + ["CD"] = 0, }, - [161] = - { + [161] = { ["X"] = 44.65, ["Y"] = 38.78, - ["CD"] = 0 + ["CD"] = 0, }, - [162] = - { + [162] = { ["X"] = 47.94, ["Y"] = 35.39, - ["CD"] = 0 + ["CD"] = 0, }, - [163] = - { + [163] = { ["X"] = 43.25, ["Y"] = 31.36, - ["CD"] = 0 + ["CD"] = 0, }, - [164] = - { + [164] = { ["X"] = 45.4, ["Y"] = 30.26, - ["CD"] = 0 + ["CD"] = 0, }, - [165] = - { + [165] = { ["X"] = 43.1, ["Y"] = 26.67, - ["CD"] = 0 + ["CD"] = 0, }, - [166] = - { + [166] = { ["X"] = 45.47, ["Y"] = 25.53, - ["CD"] = 0 + ["CD"] = 0, }, - [167] = - { + [167] = { ["X"] = 50.15, ["Y"] = 21.58, - ["CD"] = 0 + ["CD"] = 0, }, - [168] = - { + [168] = { ["X"] = 48.03, ["Y"] = 21.48, - ["CD"] = 0 + ["CD"] = 0, }, - [169] = - { + [169] = { ["X"] = 62, ["Y"] = 25.52, - ["CD"] = 0 + ["CD"] = 0, }, - [170] = - { + [170] = { ["X"] = 60.54, ["Y"] = 29.82, - ["CD"] = 0 + ["CD"] = 0, }, - [171] = - { + [171] = { ["X"] = 52, ["Y"] = 25.83, - ["CD"] = 0 + ["CD"] = 0, }, - [172] = - { + [172] = { ["X"] = 50.54, ["Y"] = 35.56, - ["CD"] = 0 + ["CD"] = 0, }, - [173] = - { + [173] = { ["X"] = 44.97, ["Y"] = 39.08, - ["CD"] = 0 + ["CD"] = 0, }, - [174] = - { + [174] = { ["X"] = 42.83, ["Y"] = 42.04, - ["CD"] = 0 + ["CD"] = 0, }, - [175] = - { + [175] = { ["X"] = 43.57, ["Y"] = 45.19, - ["CD"] = 0 + ["CD"] = 0, }, - [176] = - { + [176] = { ["X"] = 43.59, ["Y"] = 46.2, - ["CD"] = 0 + ["CD"] = 0, }, - [177] = - { + [177] = { ["X"] = 49.47, ["Y"] = 49.89, - ["CD"] = 0 + ["CD"] = 0, }, - [178] = - { + [178] = { ["X"] = 48.93, ["Y"] = 49.78, - ["CD"] = 0 + ["CD"] = 0, }, - [179] = - { + [179] = { ["X"] = 43.63, ["Y"] = 38.21, - ["CD"] = 0 + ["CD"] = 0, }, - [180] = - { + [180] = { ["X"] = 45.98, ["Y"] = 38.79, - ["CD"] = 0 + ["CD"] = 0, }, - [181] = - { + [181] = { ["X"] = 44.19, ["Y"] = 40.82, - ["CD"] = 0 + ["CD"] = 0, }, - [182] = - { + [182] = { ["X"] = 43.7, ["Y"] = 42.61, - ["CD"] = 0 + ["CD"] = 0, }, - [183] = - { + [183] = { ["X"] = 44.29, ["Y"] = 46.69, - ["CD"] = 0 + ["CD"] = 0, }, - [184] = - { + [184] = { ["X"] = 40.96, ["Y"] = 37.98, - ["CD"] = 0 + ["CD"] = 0, }, - [185] = - { + [185] = { ["X"] = 42.18, ["Y"] = 36.75, - ["CD"] = 0 + ["CD"] = 0, }, - [186] = - { + [186] = { ["X"] = 28.74, ["Y"] = 46.9, - ["CD"] = 0 + ["CD"] = 0, }, - [187] = - { + [187] = { ["X"] = 29.32, ["Y"] = 47.14, - ["CD"] = 0 + ["CD"] = 0, }, - [188] = - { + [188] = { ["X"] = 30.43, ["Y"] = 51.49, - ["CD"] = 0 + ["CD"] = 0, }, - [189] = - { + [189] = { ["X"] = 34.47, ["Y"] = 45.62, - ["CD"] = 0 + ["CD"] = 0, }, - [190] = - { + [190] = { ["X"] = 28.01, ["Y"] = 41.97, - ["CD"] = 0 + ["CD"] = 0, }, - [191] = - { + [191] = { ["X"] = 33.22, ["Y"] = 43.93, - ["CD"] = 0 + ["CD"] = 0, }, - [192] = - { + [192] = { ["X"] = 34.45, ["Y"] = 42.11, - ["CD"] = 0 + ["CD"] = 0, }, - [193] = - { + [193] = { ["X"] = 36.37, ["Y"] = 40.26, - ["CD"] = 0 + ["CD"] = 0, }, - [194] = - { + [194] = { ["X"] = 38.14, ["Y"] = 23.01, - ["CD"] = 0 + ["CD"] = 0, }, - [195] = - { + [195] = { ["X"] = 43.17, ["Y"] = 21.07, - ["CD"] = 0 + ["CD"] = 0, }, - [196] = - { + [196] = { ["X"] = 35.77, ["Y"] = 27.54, - ["CD"] = 0 + ["CD"] = 0, }, - [197] = - { + [197] = { ["X"] = 63.95, ["Y"] = 62.4, - ["CD"] = 0 + ["CD"] = 0, }, - [198] = - { + [198] = { ["X"] = 65.8, ["Y"] = 58.06, - ["CD"] = 0 + ["CD"] = 0, }, - [199] = - { + [199] = { ["X"] = 59.47, ["Y"] = 56.02, - ["CD"] = 0 + ["CD"] = 0, }, - [200] = - { + [200] = { ["X"] = 60.84, ["Y"] = 55.71, - ["CD"] = 0 - } + ["CD"] = 0, + }, }, --Val'sharah / Dreamleaf - [1018] = - { - [1] = - { + [1018] = { + [1] = { ["X"] = 61.87, ["Y"] = 52.19, - ["CD"] = 0 + ["CD"] = 0, }, - [2] = - { + [2] = { ["X"] = 60.2, ["Y"] = 53.05, - ["CD"] = 0 + ["CD"] = 0, }, - [3] = - { + [3] = { ["X"] = 60.65, ["Y"] = 54.53, - ["CD"] = 0 + ["CD"] = 0, }, - [4] = - { + [4] = { ["X"] = 59.47, ["Y"] = 55.87, - ["CD"] = 0 + ["CD"] = 0, }, - [5] = - { + [5] = { ["X"] = 56.22, ["Y"] = 60.29, - ["CD"] = 0 + ["CD"] = 0, }, - [6] = - { + [6] = { ["X"] = 56.95, ["Y"] = 61.33, - ["CD"] = 0 + ["CD"] = 0, }, - [7] = - { + [7] = { ["X"] = 56.52, ["Y"] = 64.31, - ["CD"] = 0 + ["CD"] = 0, }, - [8] = - { + [8] = { ["X"] = 58.38, ["Y"] = 65.51, - ["CD"] = 0 + ["CD"] = 0, }, - [9] = - { + [9] = { ["X"] = 56.03, ["Y"] = 64.65, - ["CD"] = 0 + ["CD"] = 0, }, - [10] = - { + [10] = { ["X"] = 55.53, ["Y"] = 70.26, - ["CD"] = 0 + ["CD"] = 0, }, - [11] = - { + [11] = { ["X"] = 57.79, ["Y"] = 71.48, - ["CD"] = 0 + ["CD"] = 0, }, - [12] = - { + [12] = { ["X"] = 59.03, ["Y"] = 69.43, - ["CD"] = 0 + ["CD"] = 0, }, - [13] = - { + [13] = { ["X"] = 57.33, ["Y"] = 69.9, - ["CD"] = 0 + ["CD"] = 0, }, - [14] = - { + [14] = { ["X"] = 55.39, ["Y"] = 68.84, - ["CD"] = 0 + ["CD"] = 0, }, - [15] = - { + [15] = { ["X"] = 55.08, ["Y"] = 63.45, - ["CD"] = 0 + ["CD"] = 0, }, - [16] = - { + [16] = { ["X"] = 52.34, ["Y"] = 61.54, - ["CD"] = 0 + ["CD"] = 0, }, - [17] = - { + [17] = { ["X"] = 51.12, ["Y"] = 64.53, - ["CD"] = 0 + ["CD"] = 0, }, - [18] = - { + [18] = { ["X"] = 54.28, ["Y"] = 62.65, - ["CD"] = 0 + ["CD"] = 0, }, - [19] = - { + [19] = { ["X"] = 54.32, ["Y"] = 66.08, - ["CD"] = 0 + ["CD"] = 0, }, - [20] = - { + [20] = { ["X"] = 58.53, ["Y"] = 61.45, - ["CD"] = 0 + ["CD"] = 0, }, - [21] = - { + [21] = { ["X"] = 58.37, ["Y"] = 63.02, - ["CD"] = 0 + ["CD"] = 0, }, - [22] = - { + [22] = { ["X"] = 59.24, ["Y"] = 65.05, - ["CD"] = 0 + ["CD"] = 0, }, - [23] = - { + [23] = { ["X"] = 62.31, ["Y"] = 64.97, - ["CD"] = 0 + ["CD"] = 0, }, - [24] = - { + [24] = { ["X"] = 63.37, ["Y"] = 67.79, - ["CD"] = 0 + ["CD"] = 0, }, - [25] = - { + [25] = { ["X"] = 64.83, ["Y"] = 68.7, - ["CD"] = 0 + ["CD"] = 0, }, - [26] = - { + [26] = { ["X"] = 68.37, ["Y"] = 63.92, - ["CD"] = 0 + ["CD"] = 0, }, - [27] = - { + [27] = { ["X"] = 66.9, ["Y"] = 66.86, - ["CD"] = 0 + ["CD"] = 0, }, - [28] = - { + [28] = { ["X"] = 67.08, ["Y"] = 68.7, - ["CD"] = 0 + ["CD"] = 0, }, - [29] = - { + [29] = { ["X"] = 66.91, ["Y"] = 70.84, - ["CD"] = 0 + ["CD"] = 0, }, - [30] = - { + [30] = { ["X"] = 65.61, ["Y"] = 71.3, - ["CD"] = 0 + ["CD"] = 0, }, - [31] = - { + [31] = { ["X"] = 65.43, ["Y"] = 74.05, - ["CD"] = 0 + ["CD"] = 0, }, - [32] = - { + [32] = { ["X"] = 66.57, ["Y"] = 73.67, - ["CD"] = 0 + ["CD"] = 0, }, - [33] = - { + [33] = { ["X"] = 68.75, ["Y"] = 72.27, - ["CD"] = 0 + ["CD"] = 0, }, - [34] = - { + [34] = { ["X"] = 67.56, ["Y"] = 72.17, - ["CD"] = 0 + ["CD"] = 0, }, - [35] = - { + [35] = { ["X"] = 68.81, ["Y"] = 74.63, - ["CD"] = 0 + ["CD"] = 0, }, - [36] = - { + [36] = { ["X"] = 67.77, ["Y"] = 75.19, - ["CD"] = 0 + ["CD"] = 0, }, - [37] = - { + [37] = { ["X"] = 67.02, ["Y"] = 76.86, - ["CD"] = 0 + ["CD"] = 0, }, - [38] = - { + [38] = { ["X"] = 65.7, ["Y"] = 75.96, - ["CD"] = 0 + ["CD"] = 0, }, - [39] = - { + [39] = { ["X"] = 60.05, ["Y"] = 76.17, - ["CD"] = 0 + ["CD"] = 0, }, - [40] = - { + [40] = { ["X"] = 56.95, ["Y"] = 76.95, - ["CD"] = 0 + ["CD"] = 0, }, - [41] = - { + [41] = { ["X"] = 57.35, ["Y"] = 75.19, - ["CD"] = 0 + ["CD"] = 0, }, - [42] = - { + [42] = { ["X"] = 58.36, ["Y"] = 73.27, - ["CD"] = 0 + ["CD"] = 0, }, - [43] = - { + [43] = { ["X"] = 59.08, ["Y"] = 73.81, - ["CD"] = 0 + ["CD"] = 0, }, - [44] = - { + [44] = { ["X"] = 60.66, ["Y"] = 75.82, - ["CD"] = 0 + ["CD"] = 0, }, - [45] = - { + [45] = { ["X"] = 61.34, ["Y"] = 79.25, - ["CD"] = 0 + ["CD"] = 0, }, - [46] = - { + [46] = { ["X"] = 62.71, ["Y"] = 80.38, - ["CD"] = 0 + ["CD"] = 0, }, - [47] = - { + [47] = { ["X"] = 60.26, ["Y"] = 80.68, - ["CD"] = 0 + ["CD"] = 0, }, - [48] = - { + [48] = { ["X"] = 59.23, ["Y"] = 82.19, - ["CD"] = 0 + ["CD"] = 0, }, - [49] = - { + [49] = { ["X"] = 62.34, ["Y"] = 84.98, - ["CD"] = 0 + ["CD"] = 0, }, - [50] = - { + [50] = { ["X"] = 58.92, ["Y"] = 88.3, - ["CD"] = 0 + ["CD"] = 0, }, - [51] = - { + [51] = { ["X"] = 55.85, ["Y"] = 89.71, - ["CD"] = 0 + ["CD"] = 0, }, - [52] = - { + [52] = { ["X"] = 56.13, ["Y"] = 87.83, - ["CD"] = 0 + ["CD"] = 0, }, - [53] = - { + [53] = { ["X"] = 54.22, ["Y"] = 88.9, - ["CD"] = 0 + ["CD"] = 0, }, - [54] = - { + [54] = { ["X"] = 53.37, ["Y"] = 87.68, - ["CD"] = 0 + ["CD"] = 0, }, - [55] = - { + [55] = { ["X"] = 50.61, ["Y"] = 86.57, - ["CD"] = 0 + ["CD"] = 0, }, - [56] = - { + [56] = { ["X"] = 49.98, ["Y"] = 83.55, - ["CD"] = 0 + ["CD"] = 0, }, - [57] = - { + [57] = { ["X"] = 49.47, ["Y"] = 81.21, - ["CD"] = 0 + ["CD"] = 0, }, - [58] = - { + [58] = { ["X"] = 50.49, ["Y"] = 79.7, - ["CD"] = 0 + ["CD"] = 0, }, - [59] = - { + [59] = { ["X"] = 51.4, ["Y"] = 78.35, - ["CD"] = 0 + ["CD"] = 0, }, - [60] = - { + [60] = { ["X"] = 52.52, ["Y"] = 75.98, - ["CD"] = 0 + ["CD"] = 0, }, - [61] = - { + [61] = { ["X"] = 48.75, ["Y"] = 73.96, - ["CD"] = 0 + ["CD"] = 0, }, - [62] = - { + [62] = { ["X"] = 48.14, ["Y"] = 72.49, - ["CD"] = 0 + ["CD"] = 0, }, - [63] = - { + [63] = { ["X"] = 46.98, ["Y"] = 58.58, - ["CD"] = 0 + ["CD"] = 0, }, - [64] = - { + [64] = { ["X"] = 43.72, ["Y"] = 57.99, - ["CD"] = 0 + ["CD"] = 0, }, - [65] = - { + [65] = { ["X"] = 46.84, ["Y"] = 37.45, - ["CD"] = 0 + ["CD"] = 0, }, - [66] = - { + [66] = { ["X"] = 46.85, ["Y"] = 39.36, - ["CD"] = 0 + ["CD"] = 0, }, - [67] = - { + [67] = { ["X"] = 47.84, ["Y"] = 38.96, - ["CD"] = 0 + ["CD"] = 0, }, - [68] = - { + [68] = { ["X"] = 48.45, ["Y"] = 40.92, - ["CD"] = 0 + ["CD"] = 0, }, - [69] = - { + [69] = { ["X"] = 50.4, ["Y"] = 39.27, - ["CD"] = 0 + ["CD"] = 0, }, - [70] = - { + [70] = { ["X"] = 50.43, ["Y"] = 40.57, - ["CD"] = 0 + ["CD"] = 0, }, - [71] = - { + [71] = { ["X"] = 52.45, ["Y"] = 44.2, - ["CD"] = 0 + ["CD"] = 0, }, - [72] = - { + [72] = { ["X"] = 54.73, ["Y"] = 47.17, - ["CD"] = 0 + ["CD"] = 0, }, - [73] = - { + [73] = { ["X"] = 56.35, ["Y"] = 45.89, - ["CD"] = 0 + ["CD"] = 0, }, - [74] = - { + [74] = { ["X"] = 54.9, ["Y"] = 41.74, - ["CD"] = 0 + ["CD"] = 0, }, - [75] = - { + [75] = { ["X"] = 54.87, ["Y"] = 39.41, - ["CD"] = 0 + ["CD"] = 0, }, - [76] = - { + [76] = { ["X"] = 56.71, ["Y"] = 40.19, - ["CD"] = 0 + ["CD"] = 0, }, - [77] = - { + [77] = { ["X"] = 57.58, ["Y"] = 41.53, - ["CD"] = 0 + ["CD"] = 0, }, - [78] = - { + [78] = { ["X"] = 58.36, ["Y"] = 41.66, - ["CD"] = 0 + ["CD"] = 0, }, - [79] = - { + [79] = { ["X"] = 60.05, ["Y"] = 42.17, - ["CD"] = 0 + ["CD"] = 0, }, - [80] = - { + [80] = { ["X"] = 61.65, ["Y"] = 43.31, - ["CD"] = 0 + ["CD"] = 0, }, - [81] = - { + [81] = { ["X"] = 60.92, ["Y"] = 41.56, - ["CD"] = 0 + ["CD"] = 0, }, - [82] = - { + [82] = { ["X"] = 62.24, ["Y"] = 44.16, - ["CD"] = 0 + ["CD"] = 0, }, - [83] = - { + [83] = { ["X"] = 62.18, ["Y"] = 43.11, - ["CD"] = 0 + ["CD"] = 0, }, - [84] = - { + [84] = { ["X"] = 64.04, ["Y"] = 40.91, - ["CD"] = 0 + ["CD"] = 0, }, - [85] = - { + [85] = { ["X"] = 62.84, ["Y"] = 40.65, - ["CD"] = 0 + ["CD"] = 0, }, - [86] = - { + [86] = { ["X"] = 63.51, ["Y"] = 38.93, - ["CD"] = 0 + ["CD"] = 0, }, - [87] = - { + [87] = { ["X"] = 69.12, ["Y"] = 39.38, - ["CD"] = 0 + ["CD"] = 0, }, - [88] = - { + [88] = { ["X"] = 70.92, ["Y"] = 38.4, - ["CD"] = 0 + ["CD"] = 0, }, - [89] = - { + [89] = { ["X"] = 71.19, ["Y"] = 42.44, - ["CD"] = 0 + ["CD"] = 0, }, - [90] = - { + [90] = { ["X"] = 72.93, ["Y"] = 44.69, - ["CD"] = 0 + ["CD"] = 0, }, - [91] = - { + [91] = { ["X"] = 71.57, ["Y"] = 47.07, - ["CD"] = 0 + ["CD"] = 0, }, - [92] = - { + [92] = { ["X"] = 69.24, ["Y"] = 45.68, - ["CD"] = 0 + ["CD"] = 0, }, - [93] = - { + [93] = { ["X"] = 69.93, ["Y"] = 47.65, - ["CD"] = 0 + ["CD"] = 0, }, - [94] = - { + [94] = { ["X"] = 68.74, ["Y"] = 48.58, - ["CD"] = 0 + ["CD"] = 0, }, - [95] = - { + [95] = { ["X"] = 68.01, ["Y"] = 50.36, - ["CD"] = 0 + ["CD"] = 0, }, - [96] = - { + [96] = { ["X"] = 70.59, ["Y"] = 51.95, - ["CD"] = 0 + ["CD"] = 0, }, - [97] = - { + [97] = { ["X"] = 70.77, ["Y"] = 54.92, - ["CD"] = 0 + ["CD"] = 0, }, - [98] = - { + [98] = { ["X"] = 71.17, ["Y"] = 56.39, - ["CD"] = 0 + ["CD"] = 0, }, - [99] = - { + [99] = { ["X"] = 70.27, ["Y"] = 56.41, - ["CD"] = 0 + ["CD"] = 0, }, - [100] = - { + [100] = { ["X"] = 69.1, ["Y"] = 55.12, - ["CD"] = 0 + ["CD"] = 0, }, - [101] = - { + [101] = { ["X"] = 65.97, ["Y"] = 59.44, - ["CD"] = 0 + ["CD"] = 0, }, - [102] = - { + [102] = { ["X"] = 65.88, ["Y"] = 56.5, - ["CD"] = 0 + ["CD"] = 0, }, - [103] = - { + [103] = { ["X"] = 64.45, ["Y"] = 53.78, - ["CD"] = 0 + ["CD"] = 0, }, - [104] = - { + [104] = { ["X"] = 63.19, ["Y"] = 56.73, - ["CD"] = 0 + ["CD"] = 0, }, - [105] = - { + [105] = { ["X"] = 64.13, ["Y"] = 58.96, - ["CD"] = 0 + ["CD"] = 0, }, - [106] = - { + [106] = { ["X"] = 65.55, ["Y"] = 61.24, - ["CD"] = 0 + ["CD"] = 0, }, - [107] = - { + [107] = { ["X"] = 64.01, ["Y"] = 61.23, - ["CD"] = 0 + ["CD"] = 0, }, - [108] = - { + [108] = { ["X"] = 64.35, ["Y"] = 75.33, - ["CD"] = 0 + ["CD"] = 0, }, - [109] = - { + [109] = { ["X"] = 64.04, ["Y"] = 79.4, - ["CD"] = 0 + ["CD"] = 0, }, - [110] = - { + [110] = { ["X"] = 65.31, ["Y"] = 79.67, - ["CD"] = 0 + ["CD"] = 0, }, - [111] = - { + [111] = { ["X"] = 64.07, ["Y"] = 81.41, - ["CD"] = 0 + ["CD"] = 0, }, - [112] = - { + [112] = { ["X"] = 62.41, ["Y"] = 82.04, - ["CD"] = 0 + ["CD"] = 0, }, - [113] = - { + [113] = { ["X"] = 61.02, ["Y"] = 83.56, - ["CD"] = 0 + ["CD"] = 0, }, - [114] = - { + [114] = { ["X"] = 59.89, ["Y"] = 83.19, - ["CD"] = 0 + ["CD"] = 0, }, - [115] = - { + [115] = { ["X"] = 60.72, ["Y"] = 84.32, - ["CD"] = 0 + ["CD"] = 0, }, - [116] = - { + [116] = { ["X"] = 61.72, ["Y"] = 84.3, - ["CD"] = 0 + ["CD"] = 0, }, - [117] = - { + [117] = { ["X"] = 59.99, ["Y"] = 79.24, - ["CD"] = 0 + ["CD"] = 0, }, - [118] = - { + [118] = { ["X"] = 56.12, ["Y"] = 79.23, - ["CD"] = 0 + ["CD"] = 0, }, - [119] = - { + [119] = { ["X"] = 55.7, ["Y"] = 76.89, - ["CD"] = 0 + ["CD"] = 0, }, - [120] = - { + [120] = { ["X"] = 51.19, ["Y"] = 72.26, - ["CD"] = 0 + ["CD"] = 0, }, - [121] = - { + [121] = { ["X"] = 53.78, ["Y"] = 70.92, - ["CD"] = 0 + ["CD"] = 0, }, - [122] = - { + [122] = { ["X"] = 52.44, ["Y"] = 72.53, - ["CD"] = 0 + ["CD"] = 0, }, - [123] = - { + [123] = { ["X"] = 47.63, ["Y"] = 77.64, - ["CD"] = 0 + ["CD"] = 0, }, - [124] = - { + [124] = { ["X"] = 49.85, ["Y"] = 74.92, - ["CD"] = 0 + ["CD"] = 0, }, - [125] = - { + [125] = { ["X"] = 49.99, ["Y"] = 77.55, - ["CD"] = 0 + ["CD"] = 0, }, - [126] = - { + [126] = { ["X"] = 47.43, ["Y"] = 76.36, - ["CD"] = 0 + ["CD"] = 0, }, - [127] = - { + [127] = { ["X"] = 44.57, ["Y"] = 82.87, - ["CD"] = 0 + ["CD"] = 0, }, - [128] = - { + [128] = { ["X"] = 44.59, ["Y"] = 86.64, - ["CD"] = 0 + ["CD"] = 0, }, - [129] = - { + [129] = { ["X"] = 45.1, ["Y"] = 86.63, - ["CD"] = 0 + ["CD"] = 0, }, - [130] = - { + [130] = { ["X"] = 44.31, ["Y"] = 85.05, - ["CD"] = 0 + ["CD"] = 0, }, - [131] = - { + [131] = { ["X"] = 42.91, ["Y"] = 83.59, - ["CD"] = 0 + ["CD"] = 0, }, - [132] = - { + [132] = { ["X"] = 42.69, ["Y"] = 81.24, - ["CD"] = 0 + ["CD"] = 0, }, - [133] = - { + [133] = { ["X"] = 42.59, ["Y"] = 80.4, - ["CD"] = 0 + ["CD"] = 0, }, - [134] = - { + [134] = { ["X"] = 41.57, ["Y"] = 81.13, - ["CD"] = 0 + ["CD"] = 0, }, - [135] = - { + [135] = { ["X"] = 40.88, ["Y"] = 75.34, - ["CD"] = 0 + ["CD"] = 0, }, - [136] = - { + [136] = { ["X"] = 50.44, ["Y"] = 53.49, - ["CD"] = 0 + ["CD"] = 0, }, - [137] = - { + [137] = { ["X"] = 53.43, ["Y"] = 52.68, - ["CD"] = 0 + ["CD"] = 0, }, - [138] = - { + [138] = { ["X"] = 55.29, ["Y"] = 50.86, - ["CD"] = 0 + ["CD"] = 0, }, - [139] = - { + [139] = { ["X"] = 54.1, ["Y"] = 52.27, - ["CD"] = 0 + ["CD"] = 0, }, - [140] = - { + [140] = { ["X"] = 53.37, ["Y"] = 51.14, - ["CD"] = 0 + ["CD"] = 0, }, - [141] = - { + [141] = { ["X"] = 53.52, ["Y"] = 49.5, - ["CD"] = 0 + ["CD"] = 0, }, - [142] = - { + [142] = { ["X"] = 52.4, ["Y"] = 49.71, - ["CD"] = 0 + ["CD"] = 0, }, - [143] = - { + [143] = { ["X"] = 50.9, ["Y"] = 49.61, - ["CD"] = 0 + ["CD"] = 0, }, - [144] = - { + [144] = { ["X"] = 47.8, ["Y"] = 52.24, - ["CD"] = 0 + ["CD"] = 0, }, - [145] = - { + [145] = { ["X"] = 47.93, ["Y"] = 55.01, - ["CD"] = 0 + ["CD"] = 0, }, - [146] = - { + [146] = { ["X"] = 46.89, ["Y"] = 53.79, - ["CD"] = 0 + ["CD"] = 0, }, - [147] = - { + [147] = { ["X"] = 46.22, ["Y"] = 55.18, - ["CD"] = 0 + ["CD"] = 0, }, - [148] = - { + [148] = { ["X"] = 46.32, ["Y"] = 56.82, - ["CD"] = 0 + ["CD"] = 0, }, - [149] = - { + [149] = { ["X"] = 40.2, ["Y"] = 62.85, - ["CD"] = 0 + ["CD"] = 0, }, - [150] = - { + [150] = { ["X"] = 40.35, ["Y"] = 60.93, - ["CD"] = 0 + ["CD"] = 0, }, - [151] = - { + [151] = { ["X"] = 36.08, ["Y"] = 58.38, - ["CD"] = 0 + ["CD"] = 0, }, - [152] = - { + [152] = { ["X"] = 35.03, ["Y"] = 60.53, - ["CD"] = 0 + ["CD"] = 0, }, - [153] = - { + [153] = { ["X"] = 35.66, ["Y"] = 60.3, - ["CD"] = 0 + ["CD"] = 0, }, - [154] = - { + [154] = { ["X"] = 40.75, ["Y"] = 60.72, - ["CD"] = 0 + ["CD"] = 0, }, - [155] = - { + [155] = { ["X"] = 44.99, ["Y"] = 60.93, - ["CD"] = 0 + ["CD"] = 0, }, - [156] = - { + [156] = { ["X"] = 43.77, ["Y"] = 60.96, - ["CD"] = 0 + ["CD"] = 0, }, - [157] = - { + [157] = { ["X"] = 43.04, ["Y"] = 63.03, - ["CD"] = 0 + ["CD"] = 0, }, - [158] = - { + [158] = { ["X"] = 41.88, ["Y"] = 63.67, - ["CD"] = 0 + ["CD"] = 0, }, - [159] = - { + [159] = { ["X"] = 42.45, ["Y"] = 61.88, - ["CD"] = 0 + ["CD"] = 0, }, - [160] = - { + [160] = { ["X"] = 43.65, ["Y"] = 60.82, - ["CD"] = 0 + ["CD"] = 0, }, - [161] = - { + [161] = { ["X"] = 58.38, ["Y"] = 33.52, - ["CD"] = 0 + ["CD"] = 0, }, - [162] = - { + [162] = { ["X"] = 41.66, ["Y"] = 54.31, - ["CD"] = 0 + ["CD"] = 0, }, - [163] = - { + [163] = { ["X"] = 40.52, ["Y"] = 51.34, - ["CD"] = 0 + ["CD"] = 0, }, - [164] = - { + [164] = { ["X"] = 37.56, ["Y"] = 54.61, - ["CD"] = 0 + ["CD"] = 0, }, - [165] = - { + [165] = { ["X"] = 49.48, ["Y"] = 49.77, - ["CD"] = 0 + ["CD"] = 0, }, - [166] = - { + [166] = { ["X"] = 51.33, ["Y"] = 41.98, - ["CD"] = 0 + ["CD"] = 0, }, - [167] = - { + [167] = { ["X"] = 55.3, ["Y"] = 55.78, - ["CD"] = 0 + ["CD"] = 0, }, - [168] = - { + [168] = { ["X"] = 61.99, ["Y"] = 30.91, - ["CD"] = 0 + ["CD"] = 0, }, - [169] = - { + [169] = { ["X"] = 57.71, ["Y"] = 39.6, - ["CD"] = 0 + ["CD"] = 0, }, - [170] = - { + [170] = { ["X"] = 69.54, ["Y"] = 37.38, - ["CD"] = 0 + ["CD"] = 0, }, - [171] = - { + [171] = { ["X"] = 68.35, ["Y"] = 39.91, - ["CD"] = 0 + ["CD"] = 0, }, - [172] = - { + [172] = { ["X"] = 62.37, ["Y"] = 48.14, - ["CD"] = 0 + ["CD"] = 0, }, - [173] = - { + [173] = { ["X"] = 65.9, ["Y"] = 41.14, - ["CD"] = 0 + ["CD"] = 0, }, - [174] = - { + [174] = { ["X"] = 73.55, ["Y"] = 52.84, - ["CD"] = 0 + ["CD"] = 0, }, - [175] = - { + [175] = { ["X"] = 74.57, ["Y"] = 39.75, - ["CD"] = 0 + ["CD"] = 0, }, - [176] = - { + [176] = { ["X"] = 72.1, ["Y"] = 49.22, - ["CD"] = 0 + ["CD"] = 0, }, - [177] = - { + [177] = { ["X"] = 69.79, ["Y"] = 53.26, - ["CD"] = 0 + ["CD"] = 0, }, - [178] = - { + [178] = { ["X"] = 67.27, ["Y"] = 60.55, - ["CD"] = 0 + ["CD"] = 0, }, - [179] = - { + [179] = { ["X"] = 64.16, ["Y"] = 58.7, - ["CD"] = 0 + ["CD"] = 0, }, - [180] = - { + [180] = { ["X"] = 54.76, ["Y"] = 57.01, - ["CD"] = 0 + ["CD"] = 0, }, - [181] = - { + [181] = { ["X"] = 57.81, ["Y"] = 60.35, - ["CD"] = 0 + ["CD"] = 0, }, - [182] = - { + [182] = { ["X"] = 48.01, ["Y"] = 69.08, - ["CD"] = 0 + ["CD"] = 0, }, - [183] = - { + [183] = { ["X"] = 42.49, ["Y"] = 79.11, - ["CD"] = 0 + ["CD"] = 0, }, - [184] = - { + [184] = { ["X"] = 41.64, ["Y"] = 69.85, - ["CD"] = 0 + ["CD"] = 0, }, - [185] = - { + [185] = { ["X"] = 45.52, ["Y"] = 73.05, - ["CD"] = 0 + ["CD"] = 0, }, - [186] = - { + [186] = { ["X"] = 50.98, ["Y"] = 82.3, - ["CD"] = 0 + ["CD"] = 0, }, - [187] = - { + [187] = { ["X"] = 65.76, ["Y"] = 68.15, - ["CD"] = 0 + ["CD"] = 0, }, - [188] = - { + [188] = { ["X"] = 63.63, ["Y"] = 64.98, - ["CD"] = 0 + ["CD"] = 0, }, - [189] = - { + [189] = { ["X"] = 57.28, ["Y"] = 90.49, - ["CD"] = 0 + ["CD"] = 0, }, - [190] = - { + [190] = { ["X"] = 55.64, ["Y"] = 84.34, - ["CD"] = 0 + ["CD"] = 0, }, - [191] = - { + [191] = { ["X"] = 39.95, ["Y"] = 88.45, - ["CD"] = 0 + ["CD"] = 0, }, - [192] = - { + [192] = { ["X"] = 44.02, ["Y"] = 82.51, - ["CD"] = 0 + ["CD"] = 0, }, - [193] = - { + [193] = { ["X"] = 47.72, ["Y"] = 85.61, - ["CD"] = 0 + ["CD"] = 0, }, - [194] = - { + [194] = { ["X"] = 50.24, ["Y"] = 84.23, - ["CD"] = 0 + ["CD"] = 0, }, - [195] = - { + [195] = { ["X"] = 43.02, ["Y"] = 88.03, - ["CD"] = 0 + ["CD"] = 0, }, - [196] = - { + [196] = { ["X"] = 46.15, ["Y"] = 83.47, - ["CD"] = 0 + ["CD"] = 0, }, - [197] = - { + [197] = { ["X"] = 55.23, ["Y"] = 68.18, - ["CD"] = 0 + ["CD"] = 0, }, - [198] = - { + [198] = { ["X"] = 22.55, ["Y"] = 64.61, - ["CD"] = 0 + ["CD"] = 0, }, - [199] = - { + [199] = { ["X"] = 22.95, ["Y"] = 72.49, - ["CD"] = 0 + ["CD"] = 0, }, - [200] = - { + [200] = { ["X"] = 21.81, ["Y"] = 69.82, - ["CD"] = 0 - } + ["CD"] = 0, + }, }, --Suramar / Starlight Rose - [1033] = - { - [1] = - { + [1033] = { + [1] = { ["X"] = 52.4, ["Y"] = 48.2, - ["CD"] = 0 + ["CD"] = 0, }, - [2] = - { + [2] = { ["X"] = 54.4, ["Y"] = 48.23, - ["CD"] = 0 + ["CD"] = 0, }, - [3] = - { + [3] = { ["X"] = 59.18, ["Y"] = 50.54, - ["CD"] = 0 + ["CD"] = 0, }, - [4] = - { + [4] = { ["X"] = 58.96, ["Y"] = 46.15, - ["CD"] = 0 + ["CD"] = 0, }, - [5] = - { + [5] = { ["X"] = 54.91, ["Y"] = 46.5, - ["CD"] = 0 + ["CD"] = 0, }, - [6] = - { + [6] = { ["X"] = 54.55, ["Y"] = 47.26, - ["CD"] = 0 + ["CD"] = 0, }, - [7] = - { + [7] = { ["X"] = 61.05, ["Y"] = 50.74, - ["CD"] = 0 + ["CD"] = 0, }, - [8] = - { + [8] = { ["X"] = 62.89, ["Y"] = 52.74, - ["CD"] = 0 + ["CD"] = 0, }, - [9] = - { + [9] = { ["X"] = 63.77, ["Y"] = 54.93, - ["CD"] = 0 + ["CD"] = 0, }, - [10] = - { + [10] = { ["X"] = 70.23, ["Y"] = 63.85, - ["CD"] = 0 + ["CD"] = 0, }, - [11] = - { + [11] = { ["X"] = 67.49, ["Y"] = 59.77, - ["CD"] = 0 + ["CD"] = 0, }, - [12] = - { + [12] = { ["X"] = 66.18, ["Y"] = 57.51, - ["CD"] = 0 + ["CD"] = 0, }, - [13] = - { + [13] = { ["X"] = 64.22, ["Y"] = 52.52, - ["CD"] = 0 + ["CD"] = 0, }, - [14] = - { + [14] = { ["X"] = 60.07, ["Y"] = 49.38, - ["CD"] = 0 + ["CD"] = 0, }, - [15] = - { + [15] = { ["X"] = 55.96, ["Y"] = 45.39, - ["CD"] = 0 + ["CD"] = 0, }, - [16] = - { + [16] = { ["X"] = 22.27, ["Y"] = 58.65, - ["CD"] = 0 + ["CD"] = 0, }, - [17] = - { + [17] = { ["X"] = 22.86, ["Y"] = 54.7, - ["CD"] = 0 + ["CD"] = 0, }, - [18] = - { + [18] = { ["X"] = 23.04, ["Y"] = 53.17, - ["CD"] = 0 + ["CD"] = 0, }, - [19] = - { + [19] = { ["X"] = 23.12, ["Y"] = 53.84, - ["CD"] = 0 + ["CD"] = 0, }, - [20] = - { + [20] = { ["X"] = 24.63, ["Y"] = 51.23, - ["CD"] = 0 + ["CD"] = 0, }, - [21] = - { + [21] = { ["X"] = 27.43, ["Y"] = 41.62, - ["CD"] = 0 + ["CD"] = 0, }, - [22] = - { + [22] = { ["X"] = 24.7, ["Y"] = 39.47, - ["CD"] = 0 + ["CD"] = 0, }, - [23] = - { + [23] = { ["X"] = 23.73, ["Y"] = 39.94, - ["CD"] = 0 + ["CD"] = 0, }, - [24] = - { + [24] = { ["X"] = 18.41, ["Y"] = 47.7, - ["CD"] = 0 + ["CD"] = 0, }, - [25] = - { + [25] = { ["X"] = 19.13, ["Y"] = 45.07, - ["CD"] = 0 + ["CD"] = 0, }, - [26] = - { + [26] = { ["X"] = 18.87, ["Y"] = 43.64, - ["CD"] = 0 + ["CD"] = 0, }, - [27] = - { + [27] = { ["X"] = 17.04, ["Y"] = 43.5, - ["CD"] = 0 + ["CD"] = 0, }, - [28] = - { + [28] = { ["X"] = 15.28, ["Y"] = 42.46, - ["CD"] = 0 + ["CD"] = 0, }, - [29] = - { + [29] = { ["X"] = 15.58, ["Y"] = 39.75, - ["CD"] = 0 + ["CD"] = 0, }, - [30] = - { + [30] = { ["X"] = 16.94, ["Y"] = 39.28, - ["CD"] = 0 + ["CD"] = 0, }, - [31] = - { + [31] = { ["X"] = 17.3, ["Y"] = 39.97, - ["CD"] = 0 + ["CD"] = 0, }, - [32] = - { + [32] = { ["X"] = 18.19, ["Y"] = 40.52, - ["CD"] = 0 + ["CD"] = 0, }, - [33] = - { + [33] = { ["X"] = 19.77, ["Y"] = 43.53, - ["CD"] = 0 + ["CD"] = 0, }, - [34] = - { + [34] = { ["X"] = 19.81, ["Y"] = 42.84, - ["CD"] = 0 + ["CD"] = 0, }, - [35] = - { + [35] = { ["X"] = 23.16, ["Y"] = 43.34, - ["CD"] = 0 + ["CD"] = 0, }, - [36] = - { + [36] = { ["X"] = 26.86, ["Y"] = 40.75, - ["CD"] = 0 + ["CD"] = 0, }, - [37] = - { + [37] = { ["X"] = 27.44, ["Y"] = 41.95, - ["CD"] = 0 + ["CD"] = 0, }, - [38] = - { + [38] = { ["X"] = 27.32, ["Y"] = 45.11, - ["CD"] = 0 + ["CD"] = 0, }, - [39] = - { + [39] = { ["X"] = 28.79, ["Y"] = 47.29, - ["CD"] = 0 + ["CD"] = 0, }, - [40] = - { + [40] = { ["X"] = 31.11, ["Y"] = 47.49, - ["CD"] = 0 + ["CD"] = 0, }, - [41] = - { + [41] = { ["X"] = 31.52, ["Y"] = 49.9, - ["CD"] = 0 + ["CD"] = 0, }, - [42] = - { + [42] = { ["X"] = 31.61, ["Y"] = 54.38, - ["CD"] = 0 + ["CD"] = 0, }, - [43] = - { + [43] = { ["X"] = 33.61, ["Y"] = 54.24, - ["CD"] = 0 + ["CD"] = 0, }, - [44] = - { + [44] = { ["X"] = 34.03, ["Y"] = 53.09, - ["CD"] = 0 + ["CD"] = 0, }, - [45] = - { + [45] = { ["X"] = 37.9, ["Y"] = 48.99, - ["CD"] = 0 + ["CD"] = 0, }, - [46] = - { + [46] = { ["X"] = 39.05, ["Y"] = 51.47, - ["CD"] = 0 + ["CD"] = 0, }, - [47] = - { + [47] = { ["X"] = 40.39, ["Y"] = 48.64, - ["CD"] = 0 + ["CD"] = 0, }, - [48] = - { + [48] = { ["X"] = 40.77, ["Y"] = 48.19, - ["CD"] = 0 + ["CD"] = 0, }, - [49] = - { + [49] = { ["X"] = 44.14, ["Y"] = 50.24, - ["CD"] = 0 + ["CD"] = 0, }, - [50] = - { + [50] = { ["X"] = 56.5, ["Y"] = 45.1, - ["CD"] = 0 + ["CD"] = 0, }, - [51] = - { + [51] = { ["X"] = 59.76, ["Y"] = 42.14, - ["CD"] = 0 + ["CD"] = 0, }, - [52] = - { + [52] = { ["X"] = 58.33, ["Y"] = 41.44, - ["CD"] = 0 + ["CD"] = 0, }, - [53] = - { + [53] = { ["X"] = 58.51, ["Y"] = 43.04, - ["CD"] = 0 + ["CD"] = 0, }, - [54] = - { + [54] = { ["X"] = 59.12, ["Y"] = 47.83, - ["CD"] = 0 + ["CD"] = 0, }, - [55] = - { + [55] = { ["X"] = 35.44, ["Y"] = 37.57, - ["CD"] = 0 + ["CD"] = 0, }, - [56] = - { + [56] = { ["X"] = 34.72, ["Y"] = 37.99, - ["CD"] = 0 + ["CD"] = 0, }, - [57] = - { + [57] = { ["X"] = 33.97, ["Y"] = 37.32, - ["CD"] = 0 + ["CD"] = 0, }, - [58] = - { + [58] = { ["X"] = 20.39, ["Y"] = 51.41, - ["CD"] = 0 + ["CD"] = 0, }, - [59] = - { + [59] = { ["X"] = 19.48, ["Y"] = 49.62, - ["CD"] = 0 + ["CD"] = 0, }, - [60] = - { + [60] = { ["X"] = 20.86, ["Y"] = 49.17, - ["CD"] = 0 + ["CD"] = 0, }, - [61] = - { + [61] = { ["X"] = 21.24, ["Y"] = 48.51, - ["CD"] = 0 + ["CD"] = 0, }, - [62] = - { + [62] = { ["X"] = 21.67, ["Y"] = 46.84, - ["CD"] = 0 + ["CD"] = 0, }, - [63] = - { + [63] = { ["X"] = 20.77, ["Y"] = 46.4, - ["CD"] = 0 + ["CD"] = 0, }, - [64] = - { + [64] = { ["X"] = 20.68, ["Y"] = 45.54, - ["CD"] = 0 + ["CD"] = 0, }, - [65] = - { + [65] = { ["X"] = 23.78, ["Y"] = 46.23, - ["CD"] = 0 + ["CD"] = 0, }, - [66] = - { + [66] = { ["X"] = 23.67, ["Y"] = 45.78, - ["CD"] = 0 + ["CD"] = 0, }, - [67] = - { + [67] = { ["X"] = 24.7, ["Y"] = 44.5, - ["CD"] = 0 + ["CD"] = 0, }, - [68] = - { + [68] = { ["X"] = 24.36, ["Y"] = 42.97, - ["CD"] = 0 + ["CD"] = 0, }, - [69] = - { + [69] = { ["X"] = 25.12, ["Y"] = 42.57, - ["CD"] = 0 + ["CD"] = 0, }, - [70] = - { + [70] = { ["X"] = 25.27, ["Y"] = 41.14, - ["CD"] = 0 + ["CD"] = 0, }, - [71] = - { + [71] = { ["X"] = 25.49, ["Y"] = 38.68, - ["CD"] = 0 + ["CD"] = 0, }, - [72] = - { + [72] = { ["X"] = 26.48, ["Y"] = 37.83, - ["CD"] = 0 + ["CD"] = 0, }, - [73] = - { + [73] = { ["X"] = 28.26, ["Y"] = 37.27, - ["CD"] = 0 + ["CD"] = 0, }, - [74] = - { + [74] = { ["X"] = 31.6, ["Y"] = 36.18, - ["CD"] = 0 + ["CD"] = 0, }, - [75] = - { + [75] = { ["X"] = 32.77, ["Y"] = 37.25, - ["CD"] = 0 + ["CD"] = 0, }, - [76] = - { + [76] = { ["X"] = 33.51, ["Y"] = 35.46, - ["CD"] = 0 + ["CD"] = 0, }, - [77] = - { + [77] = { ["X"] = 32.97, ["Y"] = 39.24, - ["CD"] = 0 + ["CD"] = 0, }, - [78] = - { + [78] = { ["X"] = 32.76, ["Y"] = 40.68, - ["CD"] = 0 + ["CD"] = 0, }, - [79] = - { + [79] = { ["X"] = 30.18, ["Y"] = 46.7, - ["CD"] = 0 + ["CD"] = 0, }, - [80] = - { + [80] = { ["X"] = 29.81, ["Y"] = 47.95, - ["CD"] = 0 + ["CD"] = 0, }, - [81] = - { + [81] = { ["X"] = 27.61, ["Y"] = 50.45, - ["CD"] = 0 + ["CD"] = 0, }, - [82] = - { + [82] = { ["X"] = 27.86, ["Y"] = 53.57, - ["CD"] = 0 + ["CD"] = 0, }, - [83] = - { + [83] = { ["X"] = 27.06, ["Y"] = 53.26, - ["CD"] = 0 + ["CD"] = 0, }, - [84] = - { + [84] = { ["X"] = 26.08, ["Y"] = 53.85, - ["CD"] = 0 + ["CD"] = 0, }, - [85] = - { + [85] = { ["X"] = 25.37, ["Y"] = 54.48, - ["CD"] = 0 + ["CD"] = 0, }, - [86] = - { + [86] = { ["X"] = 25.15, ["Y"] = 56.59, - ["CD"] = 0 + ["CD"] = 0, }, - [87] = - { + [87] = { ["X"] = 24.5, ["Y"] = 55.55, - ["CD"] = 0 + ["CD"] = 0, }, - [88] = - { + [88] = { ["X"] = 22.73, ["Y"] = 55.49, - ["CD"] = 0 + ["CD"] = 0, }, - [89] = - { + [89] = { ["X"] = 21.64, ["Y"] = 56.04, - ["CD"] = 0 + ["CD"] = 0, }, - [90] = - { + [90] = { ["X"] = 20.89, ["Y"] = 52.45, - ["CD"] = 0 + ["CD"] = 0, }, - [91] = - { + [91] = { ["X"] = 21.6, ["Y"] = 48.93, - ["CD"] = 0 + ["CD"] = 0, }, - [92] = - { + [92] = { ["X"] = 22.78, ["Y"] = 47, - ["CD"] = 0 + ["CD"] = 0, }, - [93] = - { + [93] = { ["X"] = 23.67, ["Y"] = 47.17, - ["CD"] = 0 + ["CD"] = 0, }, - [94] = - { + [94] = { ["X"] = 28.81, ["Y"] = 49.54, - ["CD"] = 0 + ["CD"] = 0, }, - [95] = - { + [95] = { ["X"] = 27.63, ["Y"] = 49.1, - ["CD"] = 0 + ["CD"] = 0, }, - [96] = - { + [96] = { ["X"] = 28.12, ["Y"] = 47.43, - ["CD"] = 0 + ["CD"] = 0, }, - [97] = - { + [97] = { ["X"] = 29.6, ["Y"] = 45.44, - ["CD"] = 0 + ["CD"] = 0, }, - [98] = - { + [98] = { ["X"] = 31.08, ["Y"] = 44.93, - ["CD"] = 0 + ["CD"] = 0, }, - [99] = - { + [99] = { ["X"] = 32.12, ["Y"] = 45.11, - ["CD"] = 0 + ["CD"] = 0, }, - [100] = - { + [100] = { ["X"] = 32.86, ["Y"] = 44.32, - ["CD"] = 0 + ["CD"] = 0, }, - [101] = - { + [101] = { ["X"] = 35.29, ["Y"] = 50.54, - ["CD"] = 0 + ["CD"] = 0, }, - [102] = - { + [102] = { ["X"] = 31.72, ["Y"] = 11.15, - ["CD"] = 0 + ["CD"] = 0, }, - [103] = - { + [103] = { ["X"] = 35.36, ["Y"] = 11.62, - ["CD"] = 0 + ["CD"] = 0, }, - [104] = - { + [104] = { ["X"] = 38.72, ["Y"] = 14.9, - ["CD"] = 0 + ["CD"] = 0, }, - [105] = - { + [105] = { ["X"] = 39.7, ["Y"] = 14.87, - ["CD"] = 0 + ["CD"] = 0, }, - [106] = - { + [106] = { ["X"] = 28.23, ["Y"] = 19.56, - ["CD"] = 0 + ["CD"] = 0, }, - [107] = - { + [107] = { ["X"] = 24.39, ["Y"] = 25.74, - ["CD"] = 0 + ["CD"] = 0, }, - [108] = - { + [108] = { ["X"] = 26.2, ["Y"] = 27.16, - ["CD"] = 0 + ["CD"] = 0, }, - [109] = - { + [109] = { ["X"] = 28.07, ["Y"] = 29.18, - ["CD"] = 0 + ["CD"] = 0, }, - [110] = - { + [110] = { ["X"] = 28.8, ["Y"] = 38.56, - ["CD"] = 0 + ["CD"] = 0, }, - [111] = - { + [111] = { ["X"] = 30.55, ["Y"] = 37.63, - ["CD"] = 0 + ["CD"] = 0, }, - [112] = - { + [112] = { ["X"] = 34.55, ["Y"] = 42.86, - ["CD"] = 0 + ["CD"] = 0, }, - [113] = - { + [113] = { ["X"] = 33.84, ["Y"] = 50.23, - ["CD"] = 0 + ["CD"] = 0, }, - [114] = - { + [114] = { ["X"] = 35.52, ["Y"] = 51.77, - ["CD"] = 0 + ["CD"] = 0, }, - [115] = - { + [115] = { ["X"] = 35.33, ["Y"] = 58.01, - ["CD"] = 0 + ["CD"] = 0, }, - [116] = - { + [116] = { ["X"] = 38.64, ["Y"] = 62.53, - ["CD"] = 0 + ["CD"] = 0, }, - [117] = - { + [117] = { ["X"] = 40.41, ["Y"] = 73, - ["CD"] = 0 + ["CD"] = 0, }, - [118] = - { + [118] = { ["X"] = 41.04, ["Y"] = 81.46, - ["CD"] = 0 + ["CD"] = 0, }, - [119] = - { + [119] = { ["X"] = 41.17, ["Y"] = 83.21, - ["CD"] = 0 + ["CD"] = 0, }, - [120] = - { + [120] = { ["X"] = 70.07, ["Y"] = 61.17, - ["CD"] = 0 + ["CD"] = 0, }, - [121] = - { + [121] = { ["X"] = 69.26, ["Y"] = 62.64, - ["CD"] = 0 + ["CD"] = 0, }, - [122] = - { + [122] = { ["X"] = 68.31, ["Y"] = 58.27, - ["CD"] = 0 + ["CD"] = 0, }, - [123] = - { + [123] = { ["X"] = 66.58, ["Y"] = 55.69, - ["CD"] = 0 + ["CD"] = 0, }, - [124] = - { + [124] = { ["X"] = 66.13, ["Y"] = 53.94, - ["CD"] = 0 + ["CD"] = 0, }, - [125] = - { + [125] = { ["X"] = 65.37, ["Y"] = 48.57, - ["CD"] = 0 + ["CD"] = 0, }, - [126] = - { + [126] = { ["X"] = 65.11, ["Y"] = 50.4, - ["CD"] = 0 + ["CD"] = 0, }, - [127] = - { + [127] = { ["X"] = 62.57, ["Y"] = 50.61, - ["CD"] = 0 + ["CD"] = 0, }, - [128] = - { + [128] = { ["X"] = 65.12, ["Y"] = 38.6, - ["CD"] = 0 + ["CD"] = 0, }, - [129] = - { + [129] = { ["X"] = 62.25, ["Y"] = 45.8, - ["CD"] = 0 + ["CD"] = 0, }, - [130] = - { + [130] = { ["X"] = 60.11, ["Y"] = 46.19, - ["CD"] = 0 + ["CD"] = 0, }, - [131] = - { + [131] = { ["X"] = 58.62, ["Y"] = 49.54, - ["CD"] = 0 + ["CD"] = 0, }, - [132] = - { + [132] = { ["X"] = 56.22, ["Y"] = 48.62, - ["CD"] = 0 + ["CD"] = 0, }, - [133] = - { + [133] = { ["X"] = 47.37, ["Y"] = 55.17, - ["CD"] = 0 + ["CD"] = 0, }, - [134] = - { + [134] = { ["X"] = 41.33, ["Y"] = 72.02, - ["CD"] = 0 + ["CD"] = 0, }, - [135] = - { + [135] = { ["X"] = 38.71, ["Y"] = 60.97, - ["CD"] = 0 + ["CD"] = 0, }, - [136] = - { + [136] = { ["X"] = 36.71, ["Y"] = 59.7, - ["CD"] = 0 + ["CD"] = 0, }, - [137] = - { + [137] = { ["X"] = 39.76, ["Y"] = 57.54, - ["CD"] = 0 + ["CD"] = 0, }, - [138] = - { + [138] = { ["X"] = 42.32, ["Y"] = 49.6, - ["CD"] = 0 + ["CD"] = 0, }, - [139] = - { + [139] = { ["X"] = 49.52, ["Y"] = 47.44, - ["CD"] = 0 + ["CD"] = 0, }, - [140] = - { + [140] = { ["X"] = 49.79, ["Y"] = 40.3, - ["CD"] = 0 + ["CD"] = 0, }, - [141] = - { + [141] = { ["X"] = 48.78, ["Y"] = 42.77, - ["CD"] = 0 + ["CD"] = 0, }, - [142] = - { + [142] = { ["X"] = 46.87, ["Y"] = 39.44, - ["CD"] = 0 + ["CD"] = 0, }, - [143] = - { + [143] = { ["X"] = 36.65, ["Y"] = 42.98, - ["CD"] = 0 + ["CD"] = 0, }, - [144] = - { + [144] = { ["X"] = 29.53, ["Y"] = 46.51, - ["CD"] = 0 + ["CD"] = 0, }, - [145] = - { + [145] = { ["X"] = 28.25, ["Y"] = 46.15, - ["CD"] = 0 + ["CD"] = 0, }, - [146] = - { + [146] = { ["X"] = 25.63, ["Y"] = 52.48, - ["CD"] = 0 + ["CD"] = 0, }, - [147] = - { + [147] = { ["X"] = 27.12, ["Y"] = 69.02, - ["CD"] = 0 + ["CD"] = 0, }, - [148] = - { + [148] = { ["X"] = 23.49, ["Y"] = 61.88, - ["CD"] = 0 + ["CD"] = 0, }, - [149] = - { + [149] = { ["X"] = 26.37, ["Y"] = 46.84, - ["CD"] = 0 + ["CD"] = 0, }, - [150] = - { + [150] = { ["X"] = 28.77, ["Y"] = 41.26, - ["CD"] = 0 + ["CD"] = 0, }, - [151] = - { + [151] = { ["X"] = 28.94, ["Y"] = 43.58, - ["CD"] = 0 + ["CD"] = 0, }, - [152] = - { + [152] = { ["X"] = 30.97, ["Y"] = 39.66, - ["CD"] = 0 + ["CD"] = 0, }, - [153] = - { + [153] = { ["X"] = 34.05, ["Y"] = 38.76, - ["CD"] = 0 + ["CD"] = 0, }, - [154] = - { + [154] = { ["X"] = 34.52, ["Y"] = 44.14, - ["CD"] = 0 + ["CD"] = 0, }, - [155] = - { + [155] = { ["X"] = 36.22, ["Y"] = 41.74, - ["CD"] = 0 + ["CD"] = 0, }, - [156] = - { + [156] = { ["X"] = 39.85, ["Y"] = 39.65, - ["CD"] = 0 + ["CD"] = 0, }, - [157] = - { + [157] = { ["X"] = 47.15, ["Y"] = 41.25, - ["CD"] = 0 + ["CD"] = 0, }, - [158] = - { + [158] = { ["X"] = 40.72, ["Y"] = 40.06, - ["CD"] = 0 + ["CD"] = 0, }, - [159] = - { + [159] = { ["X"] = 44.52, ["Y"] = 39.66, - ["CD"] = 0 + ["CD"] = 0, }, - [160] = - { + [160] = { ["X"] = 41.5, ["Y"] = 38.6, - ["CD"] = 0 + ["CD"] = 0, }, - [161] = - { + [161] = { ["X"] = 44.86, ["Y"] = 35.75, - ["CD"] = 0 + ["CD"] = 0, }, - [162] = - { + [162] = { ["X"] = 44.63, ["Y"] = 33.2, - ["CD"] = 0 + ["CD"] = 0, }, - [163] = - { + [163] = { ["X"] = 47.33, ["Y"] = 28.88, - ["CD"] = 0 + ["CD"] = 0, }, - [164] = - { + [164] = { ["X"] = 32.03, ["Y"] = 34.06, - ["CD"] = 0 + ["CD"] = 0, }, - [165] = - { + [165] = { ["X"] = 27.66, ["Y"] = 36, - ["CD"] = 0 + ["CD"] = 0, }, - [166] = - { + [166] = { ["X"] = 27.58, ["Y"] = 44.62, - ["CD"] = 0 + ["CD"] = 0, }, - [167] = - { + [167] = { ["X"] = 25.91, ["Y"] = 44.49, - ["CD"] = 0 + ["CD"] = 0, }, - [168] = - { + [168] = { ["X"] = 26.84, ["Y"] = 48.81, - ["CD"] = 0 + ["CD"] = 0, }, - [169] = - { + [169] = { ["X"] = 22.94, ["Y"] = 55.55, - ["CD"] = 0 + ["CD"] = 0, }, - [170] = - { + [170] = { ["X"] = 19.91, ["Y"] = 54.45, - ["CD"] = 0 + ["CD"] = 0, }, - [171] = - { + [171] = { ["X"] = 21.16, ["Y"] = 53.32, - ["CD"] = 0 + ["CD"] = 0, }, - [172] = - { + [172] = { ["X"] = 22.64, ["Y"] = 50.19, - ["CD"] = 0 + ["CD"] = 0, }, - [173] = - { + [173] = { ["X"] = 24.23, ["Y"] = 33.84, - ["CD"] = 0 + ["CD"] = 0, }, - [174] = - { + [174] = { ["X"] = 30.34, ["Y"] = 33.68, - ["CD"] = 0 + ["CD"] = 0, }, - [175] = - { + [175] = { ["X"] = 30.66, ["Y"] = 33.03, - ["CD"] = 0 + ["CD"] = 0, }, - [176] = - { + [176] = { ["X"] = 39.58, ["Y"] = 16.08, - ["CD"] = 0 + ["CD"] = 0, }, - [177] = - { + [177] = { ["X"] = 39.3, ["Y"] = 14.48, - ["CD"] = 0 + ["CD"] = 0, }, - [178] = - { + [178] = { ["X"] = 34.8, ["Y"] = 10.58, - ["CD"] = 0 + ["CD"] = 0, }, - [179] = - { + [179] = { ["X"] = 30.29, ["Y"] = 8.71, - ["CD"] = 0 + ["CD"] = 0, }, - [180] = - { + [180] = { ["X"] = 30.67, ["Y"] = 12.65, - ["CD"] = 0 + ["CD"] = 0, }, - [181] = - { + [181] = { ["X"] = 31.53, ["Y"] = 14.5, - ["CD"] = 0 + ["CD"] = 0, }, - [182] = - { + [182] = { ["X"] = 31.63, ["Y"] = 16.56, - ["CD"] = 0 + ["CD"] = 0, }, - [183] = - { + [183] = { ["X"] = 33.53, ["Y"] = 20.08, - ["CD"] = 0 + ["CD"] = 0, }, - [184] = - { + [184] = { ["X"] = 34.88, ["Y"] = 19.76, - ["CD"] = 0 + ["CD"] = 0, }, - [185] = - { + [185] = { ["X"] = 35.59, ["Y"] = 18.08, - ["CD"] = 0 + ["CD"] = 0, }, - [186] = - { + [186] = { ["X"] = 43.46, ["Y"] = 27.48, - ["CD"] = 0 + ["CD"] = 0, }, - [187] = - { + [187] = { ["X"] = 42.73, ["Y"] = 27.39, - ["CD"] = 0 + ["CD"] = 0, }, - [188] = - { + [188] = { ["X"] = 41.23, ["Y"] = 25.46, - ["CD"] = 0 + ["CD"] = 0, }, - [189] = - { + [189] = { ["X"] = 39.47, ["Y"] = 24.45, - ["CD"] = 0 + ["CD"] = 0, }, - [190] = - { + [190] = { ["X"] = 38.39, ["Y"] = 26.94, - ["CD"] = 0 + ["CD"] = 0, }, - [191] = - { + [191] = { ["X"] = 37.32, ["Y"] = 26.91, - ["CD"] = 0 + ["CD"] = 0, }, - [192] = - { + [192] = { ["X"] = 36.21, ["Y"] = 30.36, - ["CD"] = 0 + ["CD"] = 0, }, - [193] = - { + [193] = { ["X"] = 27.01, ["Y"] = 29.36, - ["CD"] = 0 + ["CD"] = 0, }, - [194] = - { + [194] = { ["X"] = 27.04, ["Y"] = 31.9, - ["CD"] = 0 + ["CD"] = 0, }, - [195] = - { + [195] = { ["X"] = 17.98, ["Y"] = 42.91, - ["CD"] = 0 + ["CD"] = 0, }, - [196] = - { + [196] = { ["X"] = 15.82, ["Y"] = 43.16, - ["CD"] = 0 + ["CD"] = 0, }, - [197] = - { + [197] = { ["X"] = 15.74, ["Y"] = 38.61, - ["CD"] = 0 + ["CD"] = 0, }, - [198] = - { + [198] = { ["X"] = 16.66, ["Y"] = 36.19, - ["CD"] = 0 + ["CD"] = 0, }, - [199] = - { + [199] = { ["X"] = 21.23, ["Y"] = 20.19, - ["CD"] = 0 + ["CD"] = 0, }, - [200] = - { + [200] = { ["X"] = 22.84, ["Y"] = 19.42, - ["CD"] = 0 - } + ["CD"] = 0, + }, }, --Winterspring - [281] = - { - [1] = - { + [281] = { + [1] = { ["X"] = 59.16, ["Y"] = 84.77, - ["CD"] = 0 + ["CD"] = 0, }, - [2] = - { + [2] = { ["X"] = 62.31, ["Y"] = 83, - ["CD"] = 0 + ["CD"] = 0, }, - [3] = - { + [3] = { ["X"] = 57.11, ["Y"] = 82.01, - ["CD"] = 0 + ["CD"] = 0, }, - [4] = - { + [4] = { ["X"] = 64.06, ["Y"] = 78.62, - ["CD"] = 0 + ["CD"] = 0, }, - [5] = - { + [5] = { ["X"] = 61.3, ["Y"] = 77.48, - ["CD"] = 0 + ["CD"] = 0, }, - [6] = - { + [6] = { ["X"] = 62.98, ["Y"] = 75.01, - ["CD"] = 0 + ["CD"] = 0, }, - [7] = - { + [7] = { ["X"] = 60.57, ["Y"] = 72.97, - ["CD"] = 0 + ["CD"] = 0, }, - [8] = - { + [8] = { ["X"] = 57.89, ["Y"] = 76.61, - ["CD"] = 0 + ["CD"] = 0, }, - [9] = - { + [9] = { ["X"] = 58.81, ["Y"] = 71.72, - ["CD"] = 0 + ["CD"] = 0, }, - [10] = - { + [10] = { ["X"] = 61.9, ["Y"] = 70.8, - ["CD"] = 0 + ["CD"] = 0, }, - [11] = - { + [11] = { ["X"] = 55.55, ["Y"] = 66.93, - ["CD"] = 0 + ["CD"] = 0, }, - [12] = - { + [12] = { ["X"] = 57.47, ["Y"] = 67.97, - ["CD"] = 0 + ["CD"] = 0, }, - [13] = - { + [13] = { ["X"] = 64.62, ["Y"] = 67.64, - ["CD"] = 0 + ["CD"] = 0, }, - [14] = - { + [14] = { ["X"] = 58.61, ["Y"] = 64.35, - ["CD"] = 0 + ["CD"] = 0, }, - [15] = - { + [15] = { ["X"] = 60.58, ["Y"] = 63.25, - ["CD"] = 0 + ["CD"] = 0, }, - [16] = - { + [16] = { ["X"] = 66.46, ["Y"] = 63.37, - ["CD"] = 0 + ["CD"] = 0, }, - [17] = - { + [17] = { ["X"] = 54.22, ["Y"] = 59.72, - ["CD"] = 0 + ["CD"] = 0, }, - [18] = - { + [18] = { ["X"] = 50.02, ["Y"] = 59.7, - ["CD"] = 0 + ["CD"] = 0, }, - [19] = - { + [19] = { ["X"] = 55.15, ["Y"] = 58.99, - ["CD"] = 0 + ["CD"] = 0, }, - [20] = - { + [20] = { ["X"] = 58.3, ["Y"] = 57.27, - ["CD"] = 0 + ["CD"] = 0, }, - [21] = - { + [21] = { ["X"] = 66.48, ["Y"] = 58.7, - ["CD"] = 0 + ["CD"] = 0, }, - [22] = - { + [22] = { ["X"] = 65.73, ["Y"] = 55.86, - ["CD"] = 0 + ["CD"] = 0, }, - [23] = - { + [23] = { ["X"] = 67.08, ["Y"] = 55.5, - ["CD"] = 0 + ["CD"] = 0, }, - [24] = - { + [24] = { ["X"] = 56.21, ["Y"] = 54.41, - ["CD"] = 0 + ["CD"] = 0, }, - [25] = - { + [25] = { ["X"] = 63.85, ["Y"] = 54.34, - ["CD"] = 0 + ["CD"] = 0, }, - [26] = - { + [26] = { ["X"] = 57.63, ["Y"] = 53.91, - ["CD"] = 0 + ["CD"] = 0, }, - [27] = - { + [27] = { ["X"] = 62.95, ["Y"] = 52.24, - ["CD"] = 0 + ["CD"] = 0, }, - [28] = - { + [28] = { ["X"] = 54.26, ["Y"] = 51.46, - ["CD"] = 0 + ["CD"] = 0, }, - [29] = - { + [29] = { ["X"] = 53.42, ["Y"] = 52.49, - ["CD"] = 0 + ["CD"] = 0, }, - [30] = - { + [30] = { ["X"] = 51.05, ["Y"] = 47.74, - ["CD"] = 0 + ["CD"] = 0, }, - [31] = - { + [31] = { ["X"] = 62.14, ["Y"] = 46, - ["CD"] = 0 + ["CD"] = 0, }, - [32] = - { + [32] = { ["X"] = 57.41, ["Y"] = 44.12, - ["CD"] = 0 + ["CD"] = 0, }, - [33] = - { + [33] = { ["X"] = 67.38, ["Y"] = 43.91, - ["CD"] = 0 + ["CD"] = 0, }, - [34] = - { + [34] = { ["X"] = 64.77, ["Y"] = 44.54, - ["CD"] = 0 + ["CD"] = 0, }, - [35] = - { + [35] = { ["X"] = 63.95, ["Y"] = 38.93, - ["CD"] = 0 + ["CD"] = 0, }, - [36] = - { + [36] = { ["X"] = 56.38, ["Y"] = 40.05, - ["CD"] = 0 + ["CD"] = 0, }, - [37] = - { + [37] = { ["X"] = 53.33, ["Y"] = 40.12, - ["CD"] = 0 + ["CD"] = 0, }, - [38] = - { + [38] = { ["X"] = 54.33, ["Y"] = 39.28, - ["CD"] = 0 + ["CD"] = 0, }, - [39] = - { + [39] = { ["X"] = 58.25, ["Y"] = 36.59, - ["CD"] = 0 + ["CD"] = 0, }, - [40] = - { + [40] = { ["X"] = 66.39, ["Y"] = 31.62, - ["CD"] = 0 + ["CD"] = 0, }, - [41] = - { + [41] = { ["X"] = 65.34, ["Y"] = 33.85, - ["CD"] = 0 + ["CD"] = 0, }, - [42] = - { + [42] = { ["X"] = 56.84, ["Y"] = 35.19, - ["CD"] = 0 + ["CD"] = 0, }, - [43] = - { + [43] = { ["X"] = 53.46, ["Y"] = 28.57, - ["CD"] = 0 + ["CD"] = 0, }, - [44] = - { + [44] = { ["X"] = 61.98, ["Y"] = 31.58, - ["CD"] = 0 + ["CD"] = 0, }, - [45] = - { + [45] = { ["X"] = 61.24, ["Y"] = 31.93, - ["CD"] = 0 + ["CD"] = 0, }, - [46] = - { + [46] = { ["X"] = 57.11, ["Y"] = 33.25, - ["CD"] = 0 + ["CD"] = 0, }, - [47] = - { + [47] = { ["X"] = 47.75, ["Y"] = 31.28, - ["CD"] = 0 + ["CD"] = 0, }, - [48] = - { + [48] = { ["X"] = 53.36, ["Y"] = 33.23, - ["CD"] = 0 + ["CD"] = 0, }, - [49] = - { + [49] = { ["X"] = 58, ["Y"] = 25.44, - ["CD"] = 0 + ["CD"] = 0, }, - [50] = - { + [50] = { ["X"] = 56.97, ["Y"] = 26.83, - ["CD"] = 0 + ["CD"] = 0, }, - [51] = - { + [51] = { ["X"] = 49.79, ["Y"] = 25.15, - ["CD"] = 0 + ["CD"] = 0, }, - [52] = - { + [52] = { ["X"] = 56.02, ["Y"] = 22.75, - ["CD"] = 0 + ["CD"] = 0, }, - [53] = - { + [53] = { ["X"] = 46.42, ["Y"] = 24.46, - ["CD"] = 0 + ["CD"] = 0, }, - [54] = - { + [54] = { ["X"] = 50.08, ["Y"] = 22.67, - ["CD"] = 0 + ["CD"] = 0, }, - [55] = - { + [55] = { ["X"] = 46.7, ["Y"] = 18.24, - ["CD"] = 0 + ["CD"] = 0, }, - [56] = - { + [56] = { ["X"] = 48.65, ["Y"] = 17.22, - ["CD"] = 0 + ["CD"] = 0, }, - [57] = - { + [57] = { ["X"] = 49.35, ["Y"] = 18.76, - ["CD"] = 0 + ["CD"] = 0, }, - [58] = - { + [58] = { ["X"] = 52.3, ["Y"] = 20.68, - ["CD"] = 0 + ["CD"] = 0, }, - [59] = - { + [59] = { ["X"] = 45.21, ["Y"] = 14.81, - ["CD"] = 0 + ["CD"] = 0, }, - [60] = - { + [60] = { ["X"] = 45.87, ["Y"] = 20.86, - ["CD"] = 0 + ["CD"] = 0, }, - [61] = - { + [61] = { ["X"] = 47.49, ["Y"] = 50.39, - ["CD"] = 0 + ["CD"] = 0, }, - [62] = - { + [62] = { ["X"] = 48.23, ["Y"] = 53.43, - ["CD"] = 0 + ["CD"] = 0, }, - [63] = - { + [63] = { ["X"] = 47.36, ["Y"] = 58.17, - ["CD"] = 0 + ["CD"] = 0, }, - [64] = - { + [64] = { ["X"] = 48.56, ["Y"] = 57.74, - ["CD"] = 0 + ["CD"] = 0, }, - [65] = - { + [65] = { ["X"] = 45.22, ["Y"] = 57.7, - ["CD"] = 0 + ["CD"] = 0, }, - [66] = - { + [66] = { ["X"] = 45.19, ["Y"] = 59.5, - ["CD"] = 0 + ["CD"] = 0, }, - [67] = - { + [67] = { ["X"] = 42.43, ["Y"] = 49.82, - ["CD"] = 0 + ["CD"] = 0, }, - [68] = - { + [68] = { ["X"] = 40.35, ["Y"] = 49.45, - ["CD"] = 0 + ["CD"] = 0, }, - [69] = - { + [69] = { ["X"] = 40.46, ["Y"] = 54.28, - ["CD"] = 0 + ["CD"] = 0, }, - [70] = - { + [70] = { ["X"] = 39.05, ["Y"] = 55.74, - ["CD"] = 0 + ["CD"] = 0, }, - [71] = - { + [71] = { ["X"] = 37.6, ["Y"] = 55.77, - ["CD"] = 0 + ["CD"] = 0, }, - [72] = - { + [72] = { ["X"] = 34.89, ["Y"] = 57.33, - ["CD"] = 0 + ["CD"] = 0, }, - [73] = - { + [73] = { ["X"] = 34.59, ["Y"] = 50.15, - ["CD"] = 0 + ["CD"] = 0, }, - [74] = - { + [74] = { ["X"] = 33.26, ["Y"] = 48.43, - ["CD"] = 0 + ["CD"] = 0, }, - [75] = - { + [75] = { ["X"] = 32.77, ["Y"] = 51.29, - ["CD"] = 0 + ["CD"] = 0, }, - [76] = - { + [76] = { ["X"] = 31.15, ["Y"] = 57.24, - ["CD"] = 0 + ["CD"] = 0, }, - [77] = - { + [77] = { ["X"] = 30.3, ["Y"] = 54.04, - ["CD"] = 0 + ["CD"] = 0, }, - [78] = - { + [78] = { ["X"] = 28.92, ["Y"] = 52.76, - ["CD"] = 0 + ["CD"] = 0, }, - [79] = - { + [79] = { ["X"] = 28.32, ["Y"] = 55.97, - ["CD"] = 0 + ["CD"] = 0, }, - [80] = - { + [80] = { ["X"] = 26.04, ["Y"] = 49.17, - ["CD"] = 0 + ["CD"] = 0, }, - [81] = - { + [81] = { ["X"] = 24.02, ["Y"] = 49.75, - ["CD"] = 0 + ["CD"] = 0, }, - [82] = - { + [82] = { ["X"] = 25.24, ["Y"] = 51.71, - ["CD"] = 0 + ["CD"] = 0, }, - [83] = - { + [83] = { ["X"] = 24.44, ["Y"] = 50.98, - ["CD"] = 0 + ["CD"] = 0, }, - [84] = - { + [84] = { ["X"] = 24.27, ["Y"] = 56.95, - ["CD"] = 0 + ["CD"] = 0, }, - [85] = - { + [85] = { ["X"] = 66.76, ["Y"] = 84.03, - ["CD"] = 0 + ["CD"] = 0, }, - [86] = - { + [86] = { ["X"] = 66.36, ["Y"] = 80.75, - ["CD"] = 0 - }, - [87] = - { + ["CD"] = 0, + }, + [87] = { ["X"] = 62.24, ["Y"] = 80.15, - ["CD"] = 0 - }, - [88] = - { + ["CD"] = 0, + }, + [88] = { ["X"] = 55.96, ["Y"] = 78.8, - ["CD"] = 0 - }, - [89] = - { + ["CD"] = 0, + }, + [89] = { ["X"] = 56.02, ["Y"] = 76.95, - ["CD"] = 0 - }, - [90] = - { + ["CD"] = 0, + }, + [90] = { ["X"] = 64.96, ["Y"] = 72.59, - ["CD"] = 0 - }, - [91] = - { + ["CD"] = 0, + }, + [91] = { ["X"] = 65.44, ["Y"] = 70.65, - ["CD"] = 0 - }, - [92] = - { + ["CD"] = 0, + }, + [92] = { ["X"] = 68.36, ["Y"] = 69, - ["CD"] = 0 + ["CD"] = 0, }, - [93] = - { + [93] = { ["X"] = 52.57, ["Y"] = 67.93, - ["CD"] = 0 - }, - [94] = - { + ["CD"] = 0, + }, + [94] = { ["X"] = 53.37, ["Y"] = 66.5, - ["CD"] = 0 - }, - [95] = - { + ["CD"] = 0, + }, + [95] = { ["X"] = 61.09, ["Y"] = 66.97, - ["CD"] = 0 - }, - [96] = - { + ["CD"] = 0, + }, + [96] = { ["X"] = 67.45, ["Y"] = 66.84, - ["CD"] = 0 - }, - [97] = - { + ["CD"] = 0, + }, + [97] = { ["X"] = 68.19, ["Y"] = 64.02, - ["CD"] = 0 - }, - [98] = - { + ["CD"] = 0, + }, + [98] = { ["X"] = 47.6, ["Y"] = 63.37, - ["CD"] = 0 - }, - [99] = - { + ["CD"] = 0, + }, + [99] = { ["X"] = 67.42, ["Y"] = 57.23, - ["CD"] = 0 - }, - [100] = - { + ["CD"] = 0, + }, + [100] = { ["X"] = 67.19, ["Y"] = 51.85, - ["CD"] = 0 - }, - [101] = - { + ["CD"] = 0, + }, + [101] = { ["X"] = 63.49, ["Y"] = 50.05, - ["CD"] = 0 - }, - [102] = - { + ["CD"] = 0, + }, + [102] = { ["X"] = 58.87, ["Y"] = 45.42, - ["CD"] = 0 - }, - [103] = - { + ["CD"] = 0, + }, + [103] = { ["X"] = 53.68, ["Y"] = 45.06, - ["CD"] = 0 - }, - [104] = - { + ["CD"] = 0, + }, + [104] = { ["X"] = 69.19, ["Y"] = 44.89, - ["CD"] = 0 - }, - [105] = - { + ["CD"] = 0, + }, + [105] = { ["X"] = 59.6, ["Y"] = 42, - ["CD"] = 0 + ["CD"] = 0, }, - [106] = - { + [106] = { ["X"] = 67.82, ["Y"] = 39.48, - ["CD"] = 0 - }, - [107] = - { + ["CD"] = 0, + }, + [107] = { ["X"] = 59.84, ["Y"] = 37.64, - ["CD"] = 0 - }, - [108] = - { + ["CD"] = 0, + }, + [108] = { ["X"] = 67.43, ["Y"] = 35.4, - ["CD"] = 0 - }, - [109] = - { + ["CD"] = 0, + }, + [109] = { ["X"] = 66.7, ["Y"] = 29.13, - ["CD"] = 0 - }, - [110] = - { + ["CD"] = 0, + }, + [110] = { ["X"] = 60.88, ["Y"] = 28.01, - ["CD"] = 0 - }, - [111] = - { + ["CD"] = 0, + }, + [111] = { ["X"] = 60.16, ["Y"] = 21.19, - ["CD"] = 0 - }, - [112] = - { + ["CD"] = 0, + }, + [112] = { ["X"] = 53.95, ["Y"] = 19.05, - ["CD"] = 0 - }, - [113] = - { + ["CD"] = 0, + }, + [113] = { ["X"] = 52.44, ["Y"] = 18.27, - ["CD"] = 0 - }, - [114] = - { + ["CD"] = 0, + }, + [114] = { ["X"] = 48.51, ["Y"] = 14.34, - ["CD"] = 0 - }, - [115] = - { + ["CD"] = 0, + }, + [115] = { ["X"] = 44.13, ["Y"] = 14.69, - ["CD"] = 0 - }, - [116] = - { + ["CD"] = 0, + }, + [116] = { ["X"] = 44.53, ["Y"] = 21.08, - ["CD"] = 0 - }, - [117] = - { + ["CD"] = 0, + }, + [117] = { ["X"] = 45.31, ["Y"] = 26.71, - ["CD"] = 0 - }, - [118] = - { + ["CD"] = 0, + }, + [118] = { ["X"] = 46.16, ["Y"] = 33.23, - ["CD"] = 0 - }, - [119] = - { + ["CD"] = 0, + }, + [119] = { ["X"] = 48.2, ["Y"] = 45.28, - ["CD"] = 0 - }, - [120] = - { + ["CD"] = 0, + }, + [120] = { ["X"] = 42.52, ["Y"] = 56.26, - ["CD"] = 0 - }, - [121] = - { + ["CD"] = 0, + }, + [121] = { ["X"] = 42.18, ["Y"] = 53.86, - ["CD"] = 0 - }, - [122] = - { + ["CD"] = 0, + }, + [122] = { ["X"] = 42.49, ["Y"] = 45.67, - ["CD"] = 0 - }, - [123] = - { + ["CD"] = 0, + }, + [123] = { ["X"] = 40.75, ["Y"] = 46.4, - ["CD"] = 0 - }, - [124] = - { + ["CD"] = 0, + }, + [124] = { ["X"] = 40.5, ["Y"] = 58, - ["CD"] = 0 + ["CD"] = 0, }, - [125] = - { + [125] = { ["X"] = 39.56, ["Y"] = 44.86, - ["CD"] = 0 - }, - [126] = - { + ["CD"] = 0, + }, + [126] = { ["X"] = 37.41, ["Y"] = 47.1, - ["CD"] = 0 - }, - [127] = - { + ["CD"] = 0, + }, + [127] = { ["X"] = 37.05, ["Y"] = 58.92, - ["CD"] = 0 - }, - [128] = - { + ["CD"] = 0, + }, + [128] = { ["X"] = 35.56, ["Y"] = 47.08, - ["CD"] = 0 - }, - [129] = - { + ["CD"] = 0, + }, + [129] = { ["X"] = 34.11, ["Y"] = 59.82, - ["CD"] = 0 - }, - [130] = - { + ["CD"] = 0, + }, + [130] = { ["X"] = 31.96, ["Y"] = 59.46, - ["CD"] = 0 - }, - [131] = - { + ["CD"] = 0, + }, + [131] = { ["X"] = 31.19, ["Y"] = 47.17, - ["CD"] = 0 - }, - [132] = - { + ["CD"] = 0, + }, + [132] = { ["X"] = 27.81, ["Y"] = 58.83, - ["CD"] = 0 - }, - [133] = - { + ["CD"] = 0, + }, + [133] = { ["X"] = 27.7, ["Y"] = 47.35, - ["CD"] = 0 - }, - [134] = - { + ["CD"] = 0, + }, + [134] = { ["X"] = 26.52, ["Y"] = 47.47, - ["CD"] = 0 - }, - [135] = - { + ["CD"] = 0, + }, + [135] = { ["X"] = 24.62, ["Y"] = 62.82, - ["CD"] = 0 - }, - [136] = - { + ["CD"] = 0, + }, + [136] = { ["X"] = 21.76, ["Y"] = 62.47, - ["CD"] = 0 + ["CD"] = 0, }, - [137] = - { + [137] = { ["X"] = 22.41, ["Y"] = 58.99, - ["CD"] = 0 + ["CD"] = 0, }, - } + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 50 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -if aura_env.herbs[GetCurrentMapAreaID()] then - for k,v in ipairs(aura_env.herbs[GetCurrentMapAreaID()]) do - local hX, hY, cd = aura_env.herbs[GetCurrentMapAreaID()][k]["X"], aura_env.herbs[GetCurrentMapAreaID()][k]["Y"], aura_env.herbs[GetCurrentMapAreaID()][k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + if aura_env.herbs[GetCurrentMapAreaID()] then + for k, v in ipairs(aura_env.herbs[GetCurrentMapAreaID()]) do + local hX, hY, cd = + aura_env.herbs[GetCurrentMapAreaID()][k]["X"], + aura_env.herbs[GetCurrentMapAreaID()][k]["Y"], + aura_env.herbs[GetCurrentMapAreaID()][k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end - return aura_env.minID["ID"] end +if WeakAuras.IsOptionsOpen() then + WeakAurasSaved.HerbSniffer.CD = 0 + WeakAurasSaved.HerbSniffer.NoCD = 200 end -if WeakAuras.IsOptionsOpen() then WeakAurasSaved.HerbSniffer.CD = 0; WeakAurasSaved.HerbSniffer.NoCD = 200 end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays Legion.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays Legion.lua index 49403f2..de0d2bf 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays Legion.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays Legion.lua @@ -1,82 +1,85 @@ aura_env.herbs = { - [1] = { - ["X"] = 49.38, - ["Y"] = 77.73, - ["CD"] = 0, - }, - [2] = { - ["X"] = 48.13, - ["Y"] = 85.04, - ["CD"] = 0, - }, - [3] = { - ["X"] = 47.99, - ["Y"] = 73.48, - ["CD"] = 0, - }, - [4] = { - ["X"] = 55.28, - ["Y"] = 61.71, - ["CD"] = 0, - }, - [5] = { - ["X"] = 58.67, - ["Y"] = 59.56, - ["CD"] = 0, - }, - [6] = { - ["X"] = 57.57, - ["Y"] = 57.4, - ["CD"] = 0, - }, - [7] = { - ["X"] = 57.13, - ["Y"] = 60.08, - ["CD"] = 0, - }, - [8] = { - ["X"] = 55.73, - ["Y"] = 51.76, - ["CD"] = 0, - }, - [9] = { - ["X"] = 56.14, - ["Y"] = 51.59, - ["CD"] = 0, - }, - [10] = { - ["X"] = 41.07, - ["Y"] = 73.8, - ["CD"] = 0, - }, + [1] = { + ["X"] = 49.38, + ["Y"] = 77.73, + ["CD"] = 0, + }, + [2] = { + ["X"] = 48.13, + ["Y"] = 85.04, + ["CD"] = 0, + }, + [3] = { + ["X"] = 47.99, + ["Y"] = 73.48, + ["CD"] = 0, + }, + [4] = { + ["X"] = 55.28, + ["Y"] = 61.71, + ["CD"] = 0, + }, + [5] = { + ["X"] = 58.67, + ["Y"] = 59.56, + ["CD"] = 0, + }, + [6] = { + ["X"] = 57.57, + ["Y"] = 57.4, + ["CD"] = 0, + }, + [7] = { + ["X"] = 57.13, + ["Y"] = 60.08, + ["CD"] = 0, + }, + [8] = { + ["X"] = 55.73, + ["Y"] = 51.76, + ["CD"] = 0, + }, + [9] = { + ["X"] = 56.14, + ["Y"] = 51.59, + ["CD"] = 0, + }, + [10] = { + ["X"] = 41.07, + ["Y"] = 73.8, + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 50 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() - aura_env.minID = { - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = -1 - } - local pX = GetPlayerMapPosition("player") or 0 - local pY = select(2, GetPlayerMapPosition("player")) or 0 - pX, pY = pX * 100, pY * 100 - for k, v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k].X, aura_env.herbs[k].Y, aura_env.herbs[k].CD - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) - if hyp < aura_env.minID.D then - aura_env.minID.X = hX - aura_env.minID.Y = hY - aura_env.minID.D = hyp - aura_env.minID.ID = k - end - end - end - return aura_env.minID.ID + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = -1, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k].X, aura_env.herbs[k].Y, aura_env.herbs[k].CD + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID.D then + aura_env.minID.X = hX + aura_env.minID.Y = hY + aura_env.minID.D = hyp + aura_env.minID.ID = k + end + end + end + return aura_env.minID.ID +end +if WeakAuras.IsOptionsOpen() then + WeakAurasSaved.HerbSniffer.CD = 0 + WeakAurasSaved.HerbSniffer.NoCD = #aura_env.herbs end -if WeakAuras.IsOptionsOpen() then WeakAurasSaved.HerbSniffer.CD = 0; WeakAurasSaved.HerbSniffer.NoCD = #aura_env.herbs end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/All Ores.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/All Ores.lua index 0917f45..b4b1ada 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/All Ores.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/All Ores.lua @@ -1,2625 +1,2191 @@ -aura_env.herbs = - { - [1] = - { - ["X"] = 67.25, - ["Y"] = 73.74, - ["CD"] = 0 - }, - [2] = - { - ["X"] = 68.53, - ["Y"] = 73.25, - ["CD"] = 0 - }, - [3] = - { - ["X"] = 69.34, - ["Y"] = 73.84, - ["CD"] = 0 - }, - [4] = - { - ["X"] = 62.86, - ["Y"] = 51.94, - ["CD"] = 0 - }, - [5] = - { - ["X"] = 63.66, - ["Y"] = 50.43, - ["CD"] = 0 - }, - [6] = - { - ["X"] = 65.41, - ["Y"] = 50.69, - ["CD"] = 0 - }, - [7] = - { - ["X"] = 64.95, - ["Y"] = 51.87, - ["CD"] = 0 - }, - [8] = - { - ["X"] = 64.6, - ["Y"] = 54.88, - ["CD"] = 0 - }, - [9] = - { - ["X"] = 52.44, - ["Y"] = 43.72, - ["CD"] = 0 - }, - [10] = - { - ["X"] = 51.89, - ["Y"] = 42.38, - ["CD"] = 0 - }, - [11] = - { - ["X"] = 50.37, - ["Y"] = 42.54, - ["CD"] = 0 - }, - [12] = - { - ["X"] = 49.81, - ["Y"] = 41.96, - ["CD"] = 0 - }, - [13] = - { - ["X"] = 49.12, - ["Y"] = 40.6, - ["CD"] = 0 - }, - [14] = - { - ["X"] = 48.34, - ["Y"] = 39.21, - ["CD"] = 0 - }, - [15] = - { - ["X"] = 48.02, - ["Y"] = 36.6, - ["CD"] = 0 - }, - [16] = - { - ["X"] = 46.86, - ["Y"] = 36.72, - ["CD"] = 0 - }, - [17] = - { - ["X"] = 46.75, - ["Y"] = 34.53, - ["CD"] = 0 - }, - [18] = - { - ["X"] = 25.94, - ["Y"] = 28.99, - ["CD"] = 0 - }, - [19] = - { - ["X"] = 29.48, - ["Y"] = 25.3, - ["CD"] = 0 - }, - [20] = - { - ["X"] = 28.4, - ["Y"] = 25.56, - ["CD"] = 0 - }, - [21] = - { - ["X"] = 28.51, - ["Y"] = 23.82, - ["CD"] = 0 - }, - [22] = - { - ["X"] = 29.61, - ["Y"] = 22.79, - ["CD"] = 0 - }, - [23] = - { - ["X"] = 29.75, - ["Y"] = 21.84, - ["CD"] = 0 - }, - [24] = - { - ["X"] = 26.43, - ["Y"] = 10.9, - ["CD"] = 0 - }, - [25] = - { - ["X"] = 25.97, - ["Y"] = 12.48, - ["CD"] = 0 - }, - [26] = - { - ["X"] = 25.9, - ["Y"] = 15.81, - ["CD"] = 0 - }, - [27] = - { - ["X"] = 25.73, - ["Y"] = 16.64, - ["CD"] = 0 - }, - [28] = - { - ["X"] = 25.45, - ["Y"] = 17.29, - ["CD"] = 0 - }, - [29] = - { - ["X"] = 25.4, - ["Y"] = 18.4, - ["CD"] = 0 - }, - [30] = - { - ["X"] = 25.26, - ["Y"] = 19.79, - ["CD"] = 0 - }, - [31] = - { - ["X"] = 26.03, - ["Y"] = 24.44, - ["CD"] = 0 - }, - [32] = - { - ["X"] = 26.04, - ["Y"] = 23.22, - ["CD"] = 0 - }, - [33] = - { - ["X"] = 24.19, - ["Y"] = 23.27, - ["CD"] = 0 - }, - [34] = - { - ["X"] = 24.28, - ["Y"] = 24.89, - ["CD"] = 0 - }, - [35] = - { - ["X"] = 24.47, - ["Y"] = 25.24, - ["CD"] = 0 - }, - [36] = - { - ["X"] = 24.46, - ["Y"] = 26.17, - ["CD"] = 0 - }, - [37] = - { - ["X"] = 24.98, - ["Y"] = 27.02, - ["CD"] = 0 - }, - [38] = - { - ["X"] = 24.82, - ["Y"] = 27.95, - ["CD"] = 0 - }, - [39] = - { - ["X"] = 24.87, - ["Y"] = 29.34, - ["CD"] = 0 - }, - [40] = - { - ["X"] = 24.49, - ["Y"] = 30.19, - ["CD"] = 0 - }, - [41] = - { - ["X"] = 23.53, - ["Y"] = 30.88, - ["CD"] = 0 - }, - [42] = - { - ["X"] = 23.17, - ["Y"] = 31.72, - ["CD"] = 0 - }, - [43] = - { - ["X"] = 22.88, - ["Y"] = 32.62, - ["CD"] = 0 - }, - [44] = - { - ["X"] = 21.65, - ["Y"] = 33.2, - ["CD"] = 0 - }, - [45] = - { - ["X"] = 19.95, - ["Y"] = 33.28, - ["CD"] = 0 - }, - [46] = - { - ["X"] = 21.16, - ["Y"] = 34.77, - ["CD"] = 0 - }, - [47] = - { - ["X"] = 22.35, - ["Y"] = 34.03, - ["CD"] = 0 - }, - [48] = - { - ["X"] = 31.87, - ["Y"] = 52.38, - ["CD"] = 0 - }, - [49] = - { - ["X"] = 30.31, - ["Y"] = 53, - ["CD"] = 0 - }, - [50] = - { - ["X"] = 28.27, - ["Y"] = 53.65, - ["CD"] = 0 - }, - [51] = - { - ["X"] = 27.54, - ["Y"] = 53.51, - ["CD"] = 0 - }, - [52] = - { - ["X"] = 27.6, - ["Y"] = 52.81, - ["CD"] = 0 - }, - [53] = - { - ["X"] = 26.91, - ["Y"] = 53.27, - ["CD"] = 0 - }, - [54] = - { - ["X"] = 25.45, - ["Y"] = 54.29, - ["CD"] = 0 - }, - [55] = - { - ["X"] = 25.36, - ["Y"] = 53.45, - ["CD"] = 0 - }, - [56] = - { - ["X"] = 22.29, - ["Y"] = 54.37, - ["CD"] = 0 - }, - [57] = - { - ["X"] = 23.11, - ["Y"] = 55.13, - ["CD"] = 0 - }, - [58] = - { - ["X"] = 24.34, - ["Y"] = 55.09, - ["CD"] = 0 - }, - [59] = - { - ["X"] = 24.03, - ["Y"] = 55.88, - ["CD"] = 0 - }, - [60] = - { - ["X"] = 24.95, - ["Y"] = 59.85, - ["CD"] = 0 - }, - [61] = - { - ["X"] = 24.84, - ["Y"] = 61.41, - ["CD"] = 0 - }, - [62] = - { - ["X"] = 34.59, - ["Y"] = 69.79, - ["CD"] = 0 - }, - [63] = - { - ["X"] = 33.59, - ["Y"] = 68.41, - ["CD"] = 0 - }, - [64] = - { - ["X"] = 31.96, - ["Y"] = 69.06, - ["CD"] = 0 - }, - [65] = - { - ["X"] = 29.87, - ["Y"] = 65.93, - ["CD"] = 0 - }, - [66] = - { - ["X"] = 30.95, - ["Y"] = 64.82, - ["CD"] = 0 - }, - [67] = - { - ["X"] = 32.43, - ["Y"] = 62.85, - ["CD"] = 0 - }, - [68] = - { - ["X"] = 32.7, - ["Y"] = 61.83, - ["CD"] = 0 - }, - [69] = - { - ["X"] = 33.05, - ["Y"] = 57.88, - ["CD"] = 0 - }, - [70] = - { - ["X"] = 32.43, - ["Y"] = 56.41, - ["CD"] = 0 - }, - [71] = - { - ["X"] = 33.85, - ["Y"] = 54.08, - ["CD"] = 0 - }, - [72] = - { - ["X"] = 32.68, - ["Y"] = 51.4, - ["CD"] = 0 - }, - [73] = - { - ["X"] = 33.07, - ["Y"] = 48.65, - ["CD"] = 0 - }, - [74] = - { - ["X"] = 34.22, - ["Y"] = 47.52, - ["CD"] = 0 - }, - [75] = - { - ["X"] = 35.38, - ["Y"] = 49.24, - ["CD"] = 0 - }, - [76] = - { - ["X"] = 36.3, - ["Y"] = 49.81, - ["CD"] = 0 - }, - [77] = - { - ["X"] = 37.23, - ["Y"] = 53.49, - ["CD"] = 0 - }, - [78] = - { - ["X"] = 37.55, - ["Y"] = 54.77, - ["CD"] = 0 - }, - [79] = - { - ["X"] = 37.48, - ["Y"] = 55.75, - ["CD"] = 0 - }, - [80] = - { - ["X"] = 39.14, - ["Y"] = 59.76, - ["CD"] = 0 - }, - [81] = - { - ["X"] = 39.01, - ["Y"] = 58.93, - ["CD"] = 0 - }, - [82] = - { - ["X"] = 38.69, - ["Y"] = 58.31, - ["CD"] = 0 - }, - [83] = - { - ["X"] = 38.55, - ["Y"] = 57.23, - ["CD"] = 0 - }, - [84] = - { - ["X"] = 36.59, - ["Y"] = 56.72, - ["CD"] = 0 - }, - [85] = - { - ["X"] = 34.3, - ["Y"] = 55.25, - ["CD"] = 0 - }, - [86] = - { - ["X"] = 26.1, - ["Y"] = 14.77, - ["CD"] = 0 - }, - [87] = - { - ["X"] = 45.95, - ["Y"] = 29.55, - ["CD"] = 0 - }, - [88] = - { - ["X"] = 29.47, - ["Y"] = 31.25, - ["CD"] = 0 - }, - [89] = - { - ["X"] = 28.15, - ["Y"] = 37.03, - ["CD"] = 0 - }, - [90] = - { - ["X"] = 26.89, - ["Y"] = 35.94, - ["CD"] = 0 - }, - [91] = - { - ["X"] = 26.1, - ["Y"] = 38.55, - ["CD"] = 0 - }, - [92] = - { - ["X"] = 24.92, - ["Y"] = 42.79, - ["CD"] = 0 - }, - [93] = - { - ["X"] = 24.22, - ["Y"] = 45.41, - ["CD"] = 0 - }, - [94] = - { - ["X"] = 23.88, - ["Y"] = 48.95, - ["CD"] = 0 - }, - [95] = - { - ["X"] = 25.79, - ["Y"] = 49.81, - ["CD"] = 0 - }, - [96] = - { - ["X"] = 26.82, - ["Y"] = 46.94, - ["CD"] = 0 - }, - [97] = - { - ["X"] = 31.6, - ["Y"] = 49.24, - ["CD"] = 0 - }, - [98] = - { - ["X"] = 33.02, - ["Y"] = 46.44, - ["CD"] = 0 - }, - [99] = - { - ["X"] = 28.44, - ["Y"] = 43.1, - ["CD"] = 0 - }, - [100] = - { - ["X"] = 23.55, - ["Y"] = 48.35, - ["CD"] = 0 - }, - [101] = - { - ["X"] = 20.43, - ["Y"] = 52.82, - ["CD"] = 0 - }, - [102] = - { - ["X"] = 25.81, - ["Y"] = 52.62, - ["CD"] = 0 - }, - [103] = - { - ["X"] = 26.13, - ["Y"] = 55.42, - ["CD"] = 0 - }, - [104] = - { - ["X"] = 26.22, - ["Y"] = 53.16, - ["CD"] = 0 - }, - [105] = - { - ["X"] = 24.67, - ["Y"] = 51.58, - ["CD"] = 0 - }, - [106] = - { - ["X"] = 24.61, - ["Y"] = 47.73, - ["CD"] = 0 - }, - [107] = - { - ["X"] = 26.03, - ["Y"] = 47.65, - ["CD"] = 0 - }, - [108] = - { - ["X"] = 27.94, - ["Y"] = 47.19, - ["CD"] = 0 - }, - [109] = - { - ["X"] = 27.39, - ["Y"] = 44.65, - ["CD"] = 0 - }, - [110] = - { - ["X"] = 32.73, - ["Y"] = 43.41, - ["CD"] = 0 - }, - [111] = - { - ["X"] = 31.98, - ["Y"] = 47.64, - ["CD"] = 0 - }, - [112] = - { - ["X"] = 32.51, - ["Y"] = 38.82, - ["CD"] = 0 - }, - [113] = - { - ["X"] = 31.03, - ["Y"] = 38.81, - ["CD"] = 0 - }, - [114] = - { - ["X"] = 30.59, - ["Y"] = 39.67, - ["CD"] = 0 - }, - [115] = - { - ["X"] = 30.03, - ["Y"] = 40.09, - ["CD"] = 0 - }, - [116] = - { - ["X"] = 29.63, - ["Y"] = 41.35, - ["CD"] = 0 - }, - [117] = - { - ["X"] = 28.81, - ["Y"] = 43.12, - ["CD"] = 0 - }, - [118] = - { - ["X"] = 30.08, - ["Y"] = 45.64, - ["CD"] = 0 - }, - [119] = - { - ["X"] = 30.28, - ["Y"] = 48.27, - ["CD"] = 0 - }, - [120] = - { - ["X"] = 29.93, - ["Y"] = 47.4, - ["CD"] = 0 - }, - [121] = - { - ["X"] = 28.94, - ["Y"] = 47.14, - ["CD"] = 0 - }, - [122] = - { - ["X"] = 27.59, - ["Y"] = 45.29, - ["CD"] = 0 - }, - [123] = - { - ["X"] = 30.01, - ["Y"] = 44.34, - ["CD"] = 0 - }, - [124] = - { - ["X"] = 32.22, - ["Y"] = 39.24, - ["CD"] = 0 - }, - [125] = - { - ["X"] = 31.38, - ["Y"] = 38.07, - ["CD"] = 0 - }, - [126] = - { - ["X"] = 32.23, - ["Y"] = 36.98, - ["CD"] = 0 - }, - [127] = - { - ["X"] = 31.55, - ["Y"] = 31.57, - ["CD"] = 0 - }, - [128] = - { - ["X"] = 30.92, - ["Y"] = 34.67, - ["CD"] = 0 - }, - [129] = - { - ["X"] = 47.19, - ["Y"] = 39.83, - ["CD"] = 0 - }, - [130] = - { - ["X"] = 50.82, - ["Y"] = 40.62, - ["CD"] = 0 - }, - [131] = - { - ["X"] = 48.38, - ["Y"] = 34.1, - ["CD"] = 0 - }, - [132] = - { - ["X"] = 45.59, - ["Y"] = 31.09, - ["CD"] = 0 - }, - [133] = - { - ["X"] = 43.61, - ["Y"] = 35.49, - ["CD"] = 0 - }, - [134] = - { - ["X"] = 35.64, - ["Y"] = 41.64, - ["CD"] = 0 - }, - [135] = - { - ["X"] = 34.44, - ["Y"] = 43, - ["CD"] = 0 - }, - [136] = - { - ["X"] = 47.66, - ["Y"] = 49.41, - ["CD"] = 0 - }, - [137] = - { - ["X"] = 48.82, - ["Y"] = 47.86, - ["CD"] = 0 - }, - [138] = - { - ["X"] = 44.12, - ["Y"] = 47.05, - ["CD"] = 0 - }, - [139] = - { - ["X"] = 43.09, - ["Y"] = 48.75, - ["CD"] = 0 - }, - [140] = - { - ["X"] = 40.23, - ["Y"] = 47.62, - ["CD"] = 0 - }, - [141] = - { - ["X"] = 37.28, - ["Y"] = 50.18, - ["CD"] = 0 - }, - [142] = - { - ["X"] = 36.33, - ["Y"] = 56.29, - ["CD"] = 0 - }, - [143] = - { - ["X"] = 38.4, - ["Y"] = 56.36, - ["CD"] = 0 - }, - [144] = - { - ["X"] = 40.05, - ["Y"] = 56.12, - ["CD"] = 0 - }, - [145] = - { - ["X"] = 39.51, - ["Y"] = 57.12, - ["CD"] = 0 - }, - [146] = - { - ["X"] = 39.43, - ["Y"] = 54.75, - ["CD"] = 0 - }, - [147] = - { - ["X"] = 38.8, - ["Y"] = 51.65, - ["CD"] = 0 - }, - [148] = - { - ["X"] = 38.74, - ["Y"] = 53.13, - ["CD"] = 0 - }, - [149] = - { - ["X"] = 38.11, - ["Y"] = 53.06, - ["CD"] = 0 - }, - [150] = - { - ["X"] = 36.71, - ["Y"] = 53.46, - ["CD"] = 0 - }, - [151] = - { - ["X"] = 36.17, - ["Y"] = 53.81, - ["CD"] = 0 - }, - [152] = - { - ["X"] = 34.25, - ["Y"] = 55.15, - ["CD"] = 0 - }, - [153] = - { - ["X"] = 35.35, - ["Y"] = 54.5, - ["CD"] = 0 - }, - [154] = - { - ["X"] = 35.27, - ["Y"] = 52.65, - ["CD"] = 0 - }, - [155] = - { - ["X"] = 32.47, - ["Y"] = 45.01, - ["CD"] = 0 - }, - [156] = - { - ["X"] = 34.72, - ["Y"] = 47.72, - ["CD"] = 0 - }, - [157] = - { - ["X"] = 36.55, - ["Y"] = 51.57, - ["CD"] = 0 - }, - [158] = - { - ["X"] = 70.42, - ["Y"] = 64.46, - ["CD"] = 0 - }, - [159] = - { - ["X"] = 64.84, - ["Y"] = 55.38, - ["CD"] = 0 - }, - [160] = - { - ["X"] = 44.86, - ["Y"] = 48.82, - ["CD"] = 0 - }, - [161] = - { - ["X"] = 29.45, - ["Y"] = 77.91, - ["CD"] = 0 - }, - [162] = - { - ["X"] = 29.8, - ["Y"] = 70.65, - ["CD"] = 0 - }, - [163] = - { - ["X"] = 44.01, - ["Y"] = 41.2, - ["CD"] = 0 - }, - [164] = - { - ["X"] = 41.54, - ["Y"] = 40.12, - ["CD"] = 0 - }, - [165] = - { - ["X"] = 20.2, - ["Y"] = 53.96, - ["CD"] = 0 - }, - [166] = - { - ["X"] = 31.44, - ["Y"] = 29.22, - ["CD"] = 0 - }, - [167] = - { - ["X"] = 15.67, - ["Y"] = 37.13, - ["CD"] = 0 - }, - [168] = - { - ["X"] = 20.97, - ["Y"] = 15.47, - ["CD"] = 0 - }, - [169] = - { - ["X"] = 27.52, - ["Y"] = 9.17, - ["CD"] = 0 - }, - [170] = - { - ["X"] = 25.93, - ["Y"] = 25.58, - ["CD"] = 0 - }, - [171] = - { - ["X"] = 34.07, - ["Y"] = 50.83, - ["CD"] = 0 - }, - [172] = - { - ["X"] = 37.23, - ["Y"] = 54.85, - ["CD"] = 0 - }, - [173] = - { - ["X"] = 34.77, - ["Y"] = 58.4, - ["CD"] = 0 - }, - [174] = - { - ["X"] = 39.56, - ["Y"] = 79.48, - ["CD"] = 0 - }, - [175] = - { - ["X"] = 66.46, - ["Y"] = 57.51, - ["CD"] = 0 - }, - [176] = - { - ["X"] = 66.74, - ["Y"] = 66.02, - ["CD"] = 0 - }, - [177] = - { - ["X"] = 71.94, - ["Y"] = 68.81, - ["CD"] = 0 - }, - [178] = - { - ["X"] = 69.51, - ["Y"] = 67.83, - ["CD"] = 0 - }, - [179] = - { - ["X"] = 69.31, - ["Y"] = 50.72, - ["CD"] = 0 - }, - [180] = - { - ["X"] = 63.31, - ["Y"] = 53.33, - ["CD"] = 0 - }, - [181] = - { - ["X"] = 63.96, - ["Y"] = 50.46, - ["CD"] = 0 - }, - [182] = - { - ["X"] = 65.37, - ["Y"] = 43.82, - ["CD"] = 0 - }, - [183] = - { - ["X"] = 63.15, - ["Y"] = 35.17, - ["CD"] = 0 - }, - [184] = - { - ["X"] = 60.59, - ["Y"] = 44.44, - ["CD"] = 0 - }, - [185] = - { - ["X"] = 35.55, - ["Y"] = 61.86, - ["CD"] = 0 - }, - [186] = - { - ["X"] = 40.1, - ["Y"] = 53.5, - ["CD"] = 0 - }, - [187] = - { - ["X"] = 47.46, - ["Y"] = 47.36, - ["CD"] = 0 - }, - [188] = - { - ["X"] = 49.48, - ["Y"] = 39.04, - ["CD"] = 0 - }, - [189] = - { - ["X"] = 35.79, - ["Y"] = 42.74, - ["CD"] = 0 - }, - [190] = - { - ["X"] = 33.35, - ["Y"] = 45.99, - ["CD"] = 0 - }, - [191] = - { - ["X"] = 30.25, - ["Y"] = 43.1, - ["CD"] = 0 - }, - [192] = - { - ["X"] = 28.76, - ["Y"] = 48.41, - ["CD"] = 0 - }, - [193] = - { - ["X"] = 30.18, - ["Y"] = 65.31, - ["CD"] = 0 - }, - [194] = - { - ["X"] = 32.64, - ["Y"] = 74.92, - ["CD"] = 0 - }, - [195] = - { - ["X"] = 35.41, - ["Y"] = 80.33, - ["CD"] = 0 - }, - [196] = - { - ["X"] = 32.08, - ["Y"] = 81.08, - ["CD"] = 0 - }, - [197] = - { - ["X"] = 30.03, - ["Y"] = 82.65, - ["CD"] = 0 - }, - [198] = - { - ["X"] = 27.52, - ["Y"] = 67.32, - ["CD"] = 0 - }, - [199] = - { - ["X"] = 26.24, - ["Y"] = 69.06, - ["CD"] = 0 - }, - [200] = - { - ["X"] = 24.97, - ["Y"] = 61.8, - ["CD"] = 0 - }, - [201] = - { - ["X"] = 25.91, - ["Y"] = 58.23, - ["CD"] = 0 - }, - [202] = - { - ["X"] = 34.69, - ["Y"] = 39.51, - ["CD"] = 0 - }, - [203] = - { - ["X"] = 37.45, - ["Y"] = 38.69, - ["CD"] = 0 - }, - [204] = - { - ["X"] = 45.96, - ["Y"] = 36.33, - ["CD"] = 0 - }, - [205] = - { - ["X"] = 46.54, - ["Y"] = 33.81, - ["CD"] = 0 - }, - [206] = - { - ["X"] = 37.6, - ["Y"] = 31.35, - ["CD"] = 0 - }, - [207] = - { - ["X"] = 24.73, - ["Y"] = 54.01, - ["CD"] = 0 - }, - [208] = - { - ["X"] = 21.68, - ["Y"] = 47.55, - ["CD"] = 0 - }, - [209] = - { - ["X"] = 23.58, - ["Y"] = 50.81, - ["CD"] = 0 - }, - [210] = - { - ["X"] = 25.01, - ["Y"] = 35.96, - ["CD"] = 0 - }, - [211] = - { - ["X"] = 25.25, - ["Y"] = 37.61, - ["CD"] = 0 - }, - [212] = - { - ["X"] = 41.53, - ["Y"] = 17.47, - ["CD"] = 0 - }, - [213] = - { - ["X"] = 27.84, - ["Y"] = 15.94, - ["CD"] = 0 - }, - [214] = - { - ["X"] = 44.1, - ["Y"] = 24.69, - ["CD"] = 0 - }, - [215] = - { - ["X"] = 41.45, - ["Y"] = 24.26, - ["CD"] = 0 - }, - [216] = - { - ["X"] = 40.28, - ["Y"] = 27.75, - ["CD"] = 0 - }, - [217] = - { - ["X"] = 37.57, - ["Y"] = 27.05, - ["CD"] = 0 - }, - [218] = - { - ["X"] = 33.71, - ["Y"] = 31.04, - ["CD"] = 0 - }, - [219] = - { - ["X"] = 28.85, - ["Y"] = 29.61, - ["CD"] = 0 - }, - [220] = - { - ["X"] = 27.2, - ["Y"] = 29.85, - ["CD"] = 0 - }, - [221] = - { - ["X"] = 23.31, - ["Y"] = 34.44, - ["CD"] = 0 - }, - [222] = - { - ["X"] = 15.86, - ["Y"] = 43.89, - ["CD"] = 0 - }, - [223] = - { - ["X"] = 16.17, - ["Y"] = 39.56, - ["CD"] = 0 - }, - [224] = - { - ["X"] = 16.88, - ["Y"] = 28.87, - ["CD"] = 0 - }, - [225] = - { - ["X"] = 19.56, - ["Y"] = 18.08, - ["CD"] = 0 - }, - [226] = - { - ["X"] = 19.99, - ["Y"] = 18.12, - ["CD"] = 0 - }, - [227] = - { - ["X"] = 49.54, - ["Y"] = 43.54, - ["CD"] = 0 - }, - [228] = - { - ["X"] = 55.47, - ["Y"] = 40.72, - ["CD"] = 0 - }, - [229] = - { - ["X"] = 57.64, - ["Y"] = 37.85, - ["CD"] = 0 - }, - [230] = - { - ["X"] = 62.48, - ["Y"] = 57.85, - ["CD"] = 0 - }, - [231] = - { - ["X"] = 63.78, - ["Y"] = 60.52, - ["CD"] = 0 - }, - [232] = - { - ["X"] = 50.61, - ["Y"] = 60.74, - ["CD"] = 0 - }, - [233] = - { - ["X"] = 42.63, - ["Y"] = 34.55, - ["CD"] = 0 - }, - [234] = - { - ["X"] = 43.99, - ["Y"] = 33.06, - ["CD"] = 0 - }, - [235] = - { - ["X"] = 43.05, - ["Y"] = 31.79, - ["CD"] = 0 - }, - [236] = - { - ["X"] = 43.99, - ["Y"] = 31.16, - ["CD"] = 0 - }, - [237] = - { - ["X"] = 26.64, - ["Y"] = 23.15, - ["CD"] = 0 - }, - [238] = - { - ["X"] = 28.32, - ["Y"] = 23.6, - ["CD"] = 0 - }, - [239] = - { - ["X"] = 28.88, - ["Y"] = 24.6, - ["CD"] = 0 - }, - [240] = - { - ["X"] = 33.61, - ["Y"] = 36.03, - ["CD"] = 0 - }, - [241] = - { - ["X"] = 30.99, - ["Y"] = 39.39, - ["CD"] = 0 - }, - [242] = - { - ["X"] = 26.18, - ["Y"] = 43.14, - ["CD"] = 0 - }, - [243] = - { - ["X"] = 22.71, - ["Y"] = 45.34, - ["CD"] = 0 - }, - [244] = - { - ["X"] = 22.81, - ["Y"] = 49.38, - ["CD"] = 0 - }, - [245] = - { - ["X"] = 21.55, - ["Y"] = 50.1, - ["CD"] = 0 - }, - [246] = - { - ["X"] = 22.18, - ["Y"] = 52.8, - ["CD"] = 0 - }, - [247] = - { - ["X"] = 21.47, - ["Y"] = 56.31, - ["CD"] = 0 - }, - [248] = - { - ["X"] = 20.22, - ["Y"] = 60.26, - ["CD"] = 0 - }, - [249] = - { - ["X"] = 24.53, - ["Y"] = 60.54, - ["CD"] = 0 - }, - [250] = - { - ["X"] = 24.59, - ["Y"] = 62.52, - ["CD"] = 0 - }, - [251] = - { - ["X"] = 26.87, - ["Y"] = 72.95, - ["CD"] = 0 - }, - [252] = - { - ["X"] = 27.78, - ["Y"] = 72.71, - ["CD"] = 0 - }, - [253] = - { - ["X"] = 29.27, - ["Y"] = 71.58, - ["CD"] = 0 - }, - [254] = - { - ["X"] = 30.54, - ["Y"] = 76.06, - ["CD"] = 0 - }, - [255] = - { - ["X"] = 32.41, - ["Y"] = 79.52, - ["CD"] = 0 - }, - [256] = - { - ["X"] = 32.6, - ["Y"] = 74.97, - ["CD"] = 0 - }, - [257] = - { - ["X"] = 33.1, - ["Y"] = 72.68, - ["CD"] = 0 - }, - [258] = - { - ["X"] = 34.44, - ["Y"] = 74.65, - ["CD"] = 0 - }, - [259] = - { - ["X"] = 34.74, - ["Y"] = 82.73, - ["CD"] = 0 - }, - [260] = - { - ["X"] = 29.22, - ["Y"] = 78.87, - ["CD"] = 0 - }, - [261] = - { - ["X"] = 31.67, - ["Y"] = 84.04, - ["CD"] = 0 - }, - [262] = - { - ["X"] = 33.47, - ["Y"] = 80.66, - ["CD"] = 0 - }, - [263] = - { - ["X"] = 36.84, - ["Y"] = 81.04, - ["CD"] = 0 - }, - [264] = - { - ["X"] = 33.58, - ["Y"] = 79.03, - ["CD"] = 0 - }, - [265] = - { - ["X"] = 31.74, - ["Y"] = 76.73, - ["CD"] = 0 - }, - [266] = - { - ["X"] = 31.59, - ["Y"] = 80.8, - ["CD"] = 0 - }, - [267] = - { - ["X"] = 29.41, - ["Y"] = 84.91, - ["CD"] = 0 - }, - [268] = - { - ["X"] = 30.69, - ["Y"] = 79.72, - ["CD"] = 0 - }, - [269] = - { - ["X"] = 31.6, - ["Y"] = 78.17, - ["CD"] = 0 - }, - [270] = - { - ["X"] = 33.91, - ["Y"] = 77.78, - ["CD"] = 0 - }, - [271] = - { - ["X"] = 25.75, - ["Y"] = 60.01, - ["CD"] = 0 - }, - [272] = - { - ["X"] = 25.14, - ["Y"] = 63.26, - ["CD"] = 0 - }, - [273] = - { - ["X"] = 30.02, - ["Y"] = 68.21, - ["CD"] = 0 - }, - [274] = - { - ["X"] = 32.72, - ["Y"] = 69.46, - ["CD"] = 0 - }, - [275] = - { - ["X"] = 27.93, - ["Y"] = 55.27, - ["CD"] = 0 - }, - [276] = - { - ["X"] = 28.97, - ["Y"] = 53.34, - ["CD"] = 0 - }, - [277] = - { - ["X"] = 30.03, - ["Y"] = 54.69, - ["CD"] = 0 - }, - [278] = - { - ["X"] = 34.28, - ["Y"] = 22.25, - ["CD"] = 0 - }, - [279] = - { - ["X"] = 36.44, - ["Y"] = 21.81, - ["CD"] = 0 - }, - [280] = - { - ["X"] = 36.55, - ["Y"] = 17.27, - ["CD"] = 0 - }, - [281] = - { - ["X"] = 34.94, - ["Y"] = 18.5, - ["CD"] = 0 - }, - [282] = - { - ["X"] = 33.19, - ["Y"] = 20.08, - ["CD"] = 0 - }, - [283] = - { - ["X"] = 32.41, - ["Y"] = 22.05, - ["CD"] = 0 - }, - [284] = - { - ["X"] = 31.76, - ["Y"] = 21.01, - ["CD"] = 0 - }, - [285] = - { - ["X"] = 30.89, - ["Y"] = 19.81, - ["CD"] = 0 - }, - [286] = - { - ["X"] = 29.46, - ["Y"] = 17.67, - ["CD"] = 0 - }, - [287] = - { - ["X"] = 27.11, - ["Y"] = 15.7, - ["CD"] = 0 - }, - [288] = - { - ["X"] = 26.68, - ["Y"] = 19.69, - ["CD"] = 0 - }, - [289] = - { - ["X"] = 28.25, - ["Y"] = 17.56, - ["CD"] = 0 - }, - [290] = - { - ["X"] = 30.34, - ["Y"] = 18.98, - ["CD"] = 0 - }, - [291] = - { - ["X"] = 31.53, - ["Y"] = 16.08, - ["CD"] = 0 - }, - [292] = - { - ["X"] = 31.54, - ["Y"] = 19.45, - ["CD"] = 0 - }, - [293] = - { - ["X"] = 32.72, - ["Y"] = 25.06, - ["CD"] = 0 - }, - [294] = - { - ["X"] = 34.2, - ["Y"] = 24.4, - ["CD"] = 0 - }, - [295] = - { - ["X"] = 34.04, - ["Y"] = 27.23, - ["CD"] = 0 - }, - [296] = - { - ["X"] = 32.99, - ["Y"] = 38.64, - ["CD"] = 0 - }, - [297] = - { - ["X"] = 31.15, - ["Y"] = 38.61, - ["CD"] = 0 - }, - [298] = - { - ["X"] = 32.04, - ["Y"] = 39.74, - ["CD"] = 0 - }, - [299] = - { - ["X"] = 32.65, - ["Y"] = 41.89, - ["CD"] = 0 - }, - [300] = - { - ["X"] = 33.1, - ["Y"] = 42.99, - ["CD"] = 0 - }, - [301] = - { - ["X"] = 36.86, - ["Y"] = 46.71, - ["CD"] = 0 - }, - [302] = - { - ["X"] = 37.81, - ["Y"] = 49.74, - ["CD"] = 0 - }, - [303] = - { - ["X"] = 42.95, - ["Y"] = 52.52, - ["CD"] = 0 - }, - [304] = - { - ["X"] = 42.35, - ["Y"] = 48.81, - ["CD"] = 0 - }, - [305] = - { - ["X"] = 69.72, - ["Y"] = 64.19, - ["CD"] = 0 - }, - [306] = - { - ["X"] = 68.37, - ["Y"] = 61.74, - ["CD"] = 0 - }, - [307] = - { - ["X"] = 69.51, - ["Y"] = 65.5, - ["CD"] = 0 - }, - [308] = - { - ["X"] = 70.29, - ["Y"] = 64.48, - ["CD"] = 0 - }, - [309] = - { - ["X"] = 69.13, - ["Y"] = 64.23, - ["CD"] = 0 - }, - [310] = - { - ["X"] = 69.15, - ["Y"] = 60.1, - ["CD"] = 0 - }, - [311] = - { - ["X"] = 67.97, - ["Y"] = 58.14, - ["CD"] = 0 - }, - [312] = - { - ["X"] = 67.14, - ["Y"] = 53.01, - ["CD"] = 0 - }, - [313] = - { - ["X"] = 73.12, - ["Y"] = 48.65, - ["CD"] = 0 - }, - [314] = - { - ["X"] = 73.12, - ["Y"] = 47.89, - ["CD"] = 0 - }, - [315] = - { - ["X"] = 72.19, - ["Y"] = 46.38, - ["CD"] = 0 - }, - [316] = - { - ["X"] = 70.51, - ["Y"] = 46.32, - ["CD"] = 0 - }, - [317] = - { - ["X"] = 68.65, - ["Y"] = 46.67, - ["CD"] = 0 - }, - [318] = - { - ["X"] = 68.55, - ["Y"] = 51.82, - ["CD"] = 0 - }, - [319] = - { - ["X"] = 64.71, - ["Y"] = 51.86, - ["CD"] = 0 - }, - [320] = - { - ["X"] = 63.71, - ["Y"] = 48.77, - ["CD"] = 0 - }, - [321] = - { - ["X"] = 63.62, - ["Y"] = 47.68, - ["CD"] = 0 - }, - [322] = - { - ["X"] = 64.8, - ["Y"] = 46.7, - ["CD"] = 0 - }, - [323] = - { - ["X"] = 66.58, - ["Y"] = 45.28, - ["CD"] = 0 - }, - [324] = - { - ["X"] = 63.34, - ["Y"] = 33.87, - ["CD"] = 0 - }, - [325] = - { - ["X"] = 63.01, - ["Y"] = 34.84, - ["CD"] = 0 - }, - [326] = - { - ["X"] = 61.77, - ["Y"] = 39.07, - ["CD"] = 0 - }, - [327] = - { - ["X"] = 59.21, - ["Y"] = 41.44, - ["CD"] = 0 - }, - [328] = - { - ["X"] = 56.78, - ["Y"] = 42.66, - ["CD"] = 0 - }, - [329] = - { - ["X"] = 55.53, - ["Y"] = 47.09, - ["CD"] = 0 - }, - [330] = - { - ["X"] = 59.44, - ["Y"] = 47.15, - ["CD"] = 0 - }, - [331] = - { - ["X"] = 61.51, - ["Y"] = 51.48, - ["CD"] = 0 - }, - [332] = - { - ["X"] = 63.82, - ["Y"] = 52.27, - ["CD"] = 0 - }, - [333] = - { - ["X"] = 62, - ["Y"] = 52.91, - ["CD"] = 0 - }, - [334] = - { - ["X"] = 61.35, - ["Y"] = 50.51, - ["CD"] = 0 - }, - [335] = - { - ["X"] = 61.74, - ["Y"] = 48.03, - ["CD"] = 0 - }, - [336] = - { - ["X"] = 58.77, - ["Y"] = 43.45, - ["CD"] = 0 - }, - [337] = - { - ["X"] = 58.41, - ["Y"] = 45.39, - ["CD"] = 0 - }, - [338] = - { - ["X"] = 54.5, - ["Y"] = 46.97, - ["CD"] = 0 - }, - [339] = - { - ["X"] = 55.89, - ["Y"] = 45.23, - ["CD"] = 0 - }, - [340] = - { - ["X"] = 56.05, - ["Y"] = 41.79, - ["CD"] = 0 - }, - [341] = - { - ["X"] = 57.41, - ["Y"] = 42.15, - ["CD"] = 0 - }, - [342] = - { - ["X"] = 57.21, - ["Y"] = 44.41, - ["CD"] = 0 - }, - [343] = - { - ["X"] = 57.77, - ["Y"] = 45.14, - ["CD"] = 0 - }, - [344] = - { - ["X"] = 59.3, - ["Y"] = 40.64, - ["CD"] = 0 - }, - [345] = - { - ["X"] = 60.35, - ["Y"] = 40.73, - ["CD"] = 0 - }, - [346] = - { - ["X"] = 61.12, - ["Y"] = 41.76, - ["CD"] = 0 - }, - [347] = - { - ["X"] = 31.67, - ["Y"] = 27.07, - ["CD"] = 0 - }, - [348] = - { - ["X"] = 30.98, - ["Y"] = 24.72, - ["CD"] = 0 - }, - [349] = - { - ["X"] = 29.82, - ["Y"] = 26.4, - ["CD"] = 0 - }, - [350] = - { - ["X"] = 27.29, - ["Y"] = 25.93, - ["CD"] = 0 - }, - [351] = - { - ["X"] = 26.05, - ["Y"] = 27.85, - ["CD"] = 0 - }, - [352] = - { - ["X"] = 26.76, - ["Y"] = 29.56, - ["CD"] = 0 - }, - [353] = - { - ["X"] = 28.39, - ["Y"] = 30.88, - ["CD"] = 0 - }, - [354] = - { - ["X"] = 28.45, - ["Y"] = 31.37, - ["CD"] = 0 - }, - [355] = - { - ["X"] = 29.25, - ["Y"] = 32.11, - ["CD"] = 0 - }, - [356] = - { - ["X"] = 29.96, - ["Y"] = 30.84, - ["CD"] = 0 - }, - [357] = - { - ["X"] = 32.9, - ["Y"] = 32.82, - ["CD"] = 0 - }, - [358] = - { - ["X"] = 31.92, - ["Y"] = 31.74, - ["CD"] = 0 - }, - [359] = - { - ["X"] = 30.75, - ["Y"] = 37.27, - ["CD"] = 0 - }, - [360] = - { - ["X"] = 31.63, - ["Y"] = 37.6, - ["CD"] = 0 - }, - [361] = - { - ["X"] = 27.94, - ["Y"] = 37.72, - ["CD"] = 0 - }, - [362] = - { - ["X"] = 28.17, - ["Y"] = 38.49, - ["CD"] = 0 - }, - [363] = - { - ["X"] = 26.32, - ["Y"] = 40.44, - ["CD"] = 0 - }, - [364] = - { - ["X"] = 24.49, - ["Y"] = 41.81, - ["CD"] = 0 - }, - [365] = - { - ["X"] = 18.08, - ["Y"] = 46.61, - ["CD"] = 0 - }, - [366] = - { - ["X"] = 17.59, - ["Y"] = 45.09, - ["CD"] = 0 - }, - [367] = - { - ["X"] = 18.4, - ["Y"] = 41, - ["CD"] = 0 - }, - [368] = - { - ["X"] = 17.48, - ["Y"] = 39.95, - ["CD"] = 0 - }, - [369] = - { - ["X"] = 18.65, - ["Y"] = 41.96, - ["CD"] = 0 - }, - [370] = - { - ["X"] = 20.95, - ["Y"] = 43.91, - ["CD"] = 0 - }, - [371] = - { - ["X"] = 22.97, - ["Y"] = 47.92, - ["CD"] = 0 - }, - [372] = - { - ["X"] = 19.09, - ["Y"] = 49.69, - ["CD"] = 0 - }, - [373] = - { - ["X"] = 22.03, - ["Y"] = 56.43, - ["CD"] = 0 - }, - [374] = - { - ["X"] = 22.31, - ["Y"] = 58.92, - ["CD"] = 0 - }, - [375] = - { - ["X"] = 25.31, - ["Y"] = 68.09, - ["CD"] = 0 - }, - [376] = - { - ["X"] = 21.62, - ["Y"] = 61.23, - ["CD"] = 0 - }, - [377] = - { - ["X"] = 21.35, - ["Y"] = 59.29, - ["CD"] = 0 - }, - [378] = - { - ["X"] = 19.87, - ["Y"] = 59.06, - ["CD"] = 0 - }, - [379] = - { - ["X"] = 19.27, - ["Y"] = 58.37, - ["CD"] = 0 - }, - [380] = - { - ["X"] = 18.91, - ["Y"] = 56.02, - ["CD"] = 0 - }, - [381] = - { - ["X"] = 20.58, - ["Y"] = 52.54, - ["CD"] = 0 - }, - [382] = - { - ["X"] = 20.05, - ["Y"] = 50.86, - ["CD"] = 0 - }, - [383] = - { - ["X"] = 22.43, - ["Y"] = 54.14, - ["CD"] = 0 - }, - [384] = - { - ["X"] = 23.28, - ["Y"] = 54.2, - ["CD"] = 0 - }, - [385] = - { - ["X"] = 26.01, - ["Y"] = 50.3, - ["CD"] = 0 - }, - [386] = - { - ["X"] = 27.47, - ["Y"] = 49.06, - ["CD"] = 0 - }, - [387] = - { - ["X"] = 28.48, - ["Y"] = 47.38, - ["CD"] = 0 - }, - [388] = - { - ["X"] = 27.49, - ["Y"] = 43.9, - ["CD"] = 0 - }, - [389] = - { - ["X"] = 27.59, - ["Y"] = 41.63, - ["CD"] = 0 - }, - [390] = - { - ["X"] = 29.31, - ["Y"] = 38.42, - ["CD"] = 0 - }, - [391] = - { - ["X"] = 37.52, - ["Y"] = 25.52, - ["CD"] = 0 - }, - [392] = - { - ["X"] = 35.96, - ["Y"] = 27.82, - ["CD"] = 0 - }, - [393] = - { - ["X"] = 34.07, - ["Y"] = 31.49, - ["CD"] = 0 - }, - [394] = - { - ["X"] = 35.03, - ["Y"] = 31.58, - ["CD"] = 0 - }, - [395] = - { - ["X"] = 34.02, - ["Y"] = 33.22, - ["CD"] = 0 - }, - [396] = - { - ["X"] = 33.82, - ["Y"] = 34.84, - ["CD"] = 0 - }, - [397] = - { - ["X"] = 34.21, - ["Y"] = 37.6, - ["CD"] = 0 - }, - [398] = - { - ["X"] = 47.11, - ["Y"] = 38.8, - ["CD"] = 0 - }, - [399] = - { - ["X"] = 44.32, - ["Y"] = 40.46, - ["CD"] = 0 - }, - [400] = - { - ["X"] = 42.59, - ["Y"] = 42.28, - ["CD"] = 0 - }, - [401] = - { - ["X"] = 42.94, - ["Y"] = 42.27, - ["CD"] = 0 - }, - [402] = - { - ["X"] = 45.1, - ["Y"] = 42.16, - ["CD"] = 0 - }, - [403] = - { - ["X"] = 46.25, - ["Y"] = 43.49, - ["CD"] = 0 - }, - [404] = - { - ["X"] = 45.88, - ["Y"] = 45.2, - ["CD"] = 0 - }, - [405] = - { - ["X"] = 45.17, - ["Y"] = 46.78, - ["CD"] = 0 - }, - [406] = - { - ["X"] = 43.62, - ["Y"] = 46.21, - ["CD"] = 0 - }, - [407] = - { - ["X"] = 43.43, - ["Y"] = 47.27, - ["CD"] = 0 - }, - [408] = - { - ["X"] = 43, - ["Y"] = 47.82, - ["CD"] = 0 - }, - [409] = - { - ["X"] = 41.94, - ["Y"] = 46.63, - ["CD"] = 0 - }, - [410] = - { - ["X"] = 40.91, - ["Y"] = 47.21, - ["CD"] = 0 - }, - [411] = - { - ["X"] = 39.44, - ["Y"] = 47.72, - ["CD"] = 0 - }, - [412] = - { - ["X"] = 36.48, - ["Y"] = 48.68, - ["CD"] = 0 - }, - [413] = - { - ["X"] = 35.38, - ["Y"] = 46.59, - ["CD"] = 0 - }, - [414] = - { - ["X"] = 35.17, - ["Y"] = 45.4, - ["CD"] = 0 - }, - [415] = - { - ["X"] = 39.19, - ["Y"] = 38.05, - ["CD"] = 0 - }, - [416] = - { - ["X"] = 41.12, - ["Y"] = 37.99, - ["CD"] = 0 - }, - [417] = - { - ["X"] = 40.16, - ["Y"] = 36.83, - ["CD"] = 0 - }, - [418] = - { - ["X"] = 39.98, - ["Y"] = 39.7, - ["CD"] = 0 - }, - [419] = - { - ["X"] = 38.39, - ["Y"] = 40.1, - ["CD"] = 0 - }, - [420] = - { - ["X"] = 37.24, - ["Y"] = 41.92, - ["CD"] = 0 - }, - [421] = - { - ["X"] = 36.93, - ["Y"] = 43.94, - ["CD"] = 0 - }, - [422] = - { - ["X"] = 36.15, - ["Y"] = 43.84, - ["CD"] = 0 - }, - [423] = - { - ["X"] = 36.94, - ["Y"] = 44.84, - ["CD"] = 0 - }, - [424] = - { - ["X"] = 38.61, - ["Y"] = 47.11, - ["CD"] = 0 - }, - [425] = - { - ["X"] = 37.74, - ["Y"] = 48.57, - ["CD"] = 0 - }, - [426] = - { - ["X"] = 38.21, - ["Y"] = 51.02, - ["CD"] = 0 - }, - [427] = - { - ["X"] = 37.57, - ["Y"] = 51.13, - ["CD"] = 0 - }, - [428] = - { - ["X"] = 34.62, - ["Y"] = 56.53, - ["CD"] = 0 - }, - [429] = - { - ["X"] = 33.91, - ["Y"] = 54.15, - ["CD"] = 0 - }, - [430] = - { - ["X"] = 35.96, - ["Y"] = 51.61, - ["CD"] = 0 - }, - [431] = - { - ["X"] = 35.55, - ["Y"] = 61.86, - ["CD"] = 0 - }, - [432] = - { - ["X"] = 68.25, - ["Y"] = 61.21, - ["CD"] = 0 -} +aura_env.herbs = { + [1] = { + ["X"] = 67.25, + ["Y"] = 73.74, + ["CD"] = 0, + }, + [2] = { + ["X"] = 68.53, + ["Y"] = 73.25, + ["CD"] = 0, + }, + [3] = { + ["X"] = 69.34, + ["Y"] = 73.84, + ["CD"] = 0, + }, + [4] = { + ["X"] = 62.86, + ["Y"] = 51.94, + ["CD"] = 0, + }, + [5] = { + ["X"] = 63.66, + ["Y"] = 50.43, + ["CD"] = 0, + }, + [6] = { + ["X"] = 65.41, + ["Y"] = 50.69, + ["CD"] = 0, + }, + [7] = { + ["X"] = 64.95, + ["Y"] = 51.87, + ["CD"] = 0, + }, + [8] = { + ["X"] = 64.6, + ["Y"] = 54.88, + ["CD"] = 0, + }, + [9] = { + ["X"] = 52.44, + ["Y"] = 43.72, + ["CD"] = 0, + }, + [10] = { + ["X"] = 51.89, + ["Y"] = 42.38, + ["CD"] = 0, + }, + [11] = { + ["X"] = 50.37, + ["Y"] = 42.54, + ["CD"] = 0, + }, + [12] = { + ["X"] = 49.81, + ["Y"] = 41.96, + ["CD"] = 0, + }, + [13] = { + ["X"] = 49.12, + ["Y"] = 40.6, + ["CD"] = 0, + }, + [14] = { + ["X"] = 48.34, + ["Y"] = 39.21, + ["CD"] = 0, + }, + [15] = { + ["X"] = 48.02, + ["Y"] = 36.6, + ["CD"] = 0, + }, + [16] = { + ["X"] = 46.86, + ["Y"] = 36.72, + ["CD"] = 0, + }, + [17] = { + ["X"] = 46.75, + ["Y"] = 34.53, + ["CD"] = 0, + }, + [18] = { + ["X"] = 25.94, + ["Y"] = 28.99, + ["CD"] = 0, + }, + [19] = { + ["X"] = 29.48, + ["Y"] = 25.3, + ["CD"] = 0, + }, + [20] = { + ["X"] = 28.4, + ["Y"] = 25.56, + ["CD"] = 0, + }, + [21] = { + ["X"] = 28.51, + ["Y"] = 23.82, + ["CD"] = 0, + }, + [22] = { + ["X"] = 29.61, + ["Y"] = 22.79, + ["CD"] = 0, + }, + [23] = { + ["X"] = 29.75, + ["Y"] = 21.84, + ["CD"] = 0, + }, + [24] = { + ["X"] = 26.43, + ["Y"] = 10.9, + ["CD"] = 0, + }, + [25] = { + ["X"] = 25.97, + ["Y"] = 12.48, + ["CD"] = 0, + }, + [26] = { + ["X"] = 25.9, + ["Y"] = 15.81, + ["CD"] = 0, + }, + [27] = { + ["X"] = 25.73, + ["Y"] = 16.64, + ["CD"] = 0, + }, + [28] = { + ["X"] = 25.45, + ["Y"] = 17.29, + ["CD"] = 0, + }, + [29] = { + ["X"] = 25.4, + ["Y"] = 18.4, + ["CD"] = 0, + }, + [30] = { + ["X"] = 25.26, + ["Y"] = 19.79, + ["CD"] = 0, + }, + [31] = { + ["X"] = 26.03, + ["Y"] = 24.44, + ["CD"] = 0, + }, + [32] = { + ["X"] = 26.04, + ["Y"] = 23.22, + ["CD"] = 0, + }, + [33] = { + ["X"] = 24.19, + ["Y"] = 23.27, + ["CD"] = 0, + }, + [34] = { + ["X"] = 24.28, + ["Y"] = 24.89, + ["CD"] = 0, + }, + [35] = { + ["X"] = 24.47, + ["Y"] = 25.24, + ["CD"] = 0, + }, + [36] = { + ["X"] = 24.46, + ["Y"] = 26.17, + ["CD"] = 0, + }, + [37] = { + ["X"] = 24.98, + ["Y"] = 27.02, + ["CD"] = 0, + }, + [38] = { + ["X"] = 24.82, + ["Y"] = 27.95, + ["CD"] = 0, + }, + [39] = { + ["X"] = 24.87, + ["Y"] = 29.34, + ["CD"] = 0, + }, + [40] = { + ["X"] = 24.49, + ["Y"] = 30.19, + ["CD"] = 0, + }, + [41] = { + ["X"] = 23.53, + ["Y"] = 30.88, + ["CD"] = 0, + }, + [42] = { + ["X"] = 23.17, + ["Y"] = 31.72, + ["CD"] = 0, + }, + [43] = { + ["X"] = 22.88, + ["Y"] = 32.62, + ["CD"] = 0, + }, + [44] = { + ["X"] = 21.65, + ["Y"] = 33.2, + ["CD"] = 0, + }, + [45] = { + ["X"] = 19.95, + ["Y"] = 33.28, + ["CD"] = 0, + }, + [46] = { + ["X"] = 21.16, + ["Y"] = 34.77, + ["CD"] = 0, + }, + [47] = { + ["X"] = 22.35, + ["Y"] = 34.03, + ["CD"] = 0, + }, + [48] = { + ["X"] = 31.87, + ["Y"] = 52.38, + ["CD"] = 0, + }, + [49] = { + ["X"] = 30.31, + ["Y"] = 53, + ["CD"] = 0, + }, + [50] = { + ["X"] = 28.27, + ["Y"] = 53.65, + ["CD"] = 0, + }, + [51] = { + ["X"] = 27.54, + ["Y"] = 53.51, + ["CD"] = 0, + }, + [52] = { + ["X"] = 27.6, + ["Y"] = 52.81, + ["CD"] = 0, + }, + [53] = { + ["X"] = 26.91, + ["Y"] = 53.27, + ["CD"] = 0, + }, + [54] = { + ["X"] = 25.45, + ["Y"] = 54.29, + ["CD"] = 0, + }, + [55] = { + ["X"] = 25.36, + ["Y"] = 53.45, + ["CD"] = 0, + }, + [56] = { + ["X"] = 22.29, + ["Y"] = 54.37, + ["CD"] = 0, + }, + [57] = { + ["X"] = 23.11, + ["Y"] = 55.13, + ["CD"] = 0, + }, + [58] = { + ["X"] = 24.34, + ["Y"] = 55.09, + ["CD"] = 0, + }, + [59] = { + ["X"] = 24.03, + ["Y"] = 55.88, + ["CD"] = 0, + }, + [60] = { + ["X"] = 24.95, + ["Y"] = 59.85, + ["CD"] = 0, + }, + [61] = { + ["X"] = 24.84, + ["Y"] = 61.41, + ["CD"] = 0, + }, + [62] = { + ["X"] = 34.59, + ["Y"] = 69.79, + ["CD"] = 0, + }, + [63] = { + ["X"] = 33.59, + ["Y"] = 68.41, + ["CD"] = 0, + }, + [64] = { + ["X"] = 31.96, + ["Y"] = 69.06, + ["CD"] = 0, + }, + [65] = { + ["X"] = 29.87, + ["Y"] = 65.93, + ["CD"] = 0, + }, + [66] = { + ["X"] = 30.95, + ["Y"] = 64.82, + ["CD"] = 0, + }, + [67] = { + ["X"] = 32.43, + ["Y"] = 62.85, + ["CD"] = 0, + }, + [68] = { + ["X"] = 32.7, + ["Y"] = 61.83, + ["CD"] = 0, + }, + [69] = { + ["X"] = 33.05, + ["Y"] = 57.88, + ["CD"] = 0, + }, + [70] = { + ["X"] = 32.43, + ["Y"] = 56.41, + ["CD"] = 0, + }, + [71] = { + ["X"] = 33.85, + ["Y"] = 54.08, + ["CD"] = 0, + }, + [72] = { + ["X"] = 32.68, + ["Y"] = 51.4, + ["CD"] = 0, + }, + [73] = { + ["X"] = 33.07, + ["Y"] = 48.65, + ["CD"] = 0, + }, + [74] = { + ["X"] = 34.22, + ["Y"] = 47.52, + ["CD"] = 0, + }, + [75] = { + ["X"] = 35.38, + ["Y"] = 49.24, + ["CD"] = 0, + }, + [76] = { + ["X"] = 36.3, + ["Y"] = 49.81, + ["CD"] = 0, + }, + [77] = { + ["X"] = 37.23, + ["Y"] = 53.49, + ["CD"] = 0, + }, + [78] = { + ["X"] = 37.55, + ["Y"] = 54.77, + ["CD"] = 0, + }, + [79] = { + ["X"] = 37.48, + ["Y"] = 55.75, + ["CD"] = 0, + }, + [80] = { + ["X"] = 39.14, + ["Y"] = 59.76, + ["CD"] = 0, + }, + [81] = { + ["X"] = 39.01, + ["Y"] = 58.93, + ["CD"] = 0, + }, + [82] = { + ["X"] = 38.69, + ["Y"] = 58.31, + ["CD"] = 0, + }, + [83] = { + ["X"] = 38.55, + ["Y"] = 57.23, + ["CD"] = 0, + }, + [84] = { + ["X"] = 36.59, + ["Y"] = 56.72, + ["CD"] = 0, + }, + [85] = { + ["X"] = 34.3, + ["Y"] = 55.25, + ["CD"] = 0, + }, + [86] = { + ["X"] = 26.1, + ["Y"] = 14.77, + ["CD"] = 0, + }, + [87] = { + ["X"] = 45.95, + ["Y"] = 29.55, + ["CD"] = 0, + }, + [88] = { + ["X"] = 29.47, + ["Y"] = 31.25, + ["CD"] = 0, + }, + [89] = { + ["X"] = 28.15, + ["Y"] = 37.03, + ["CD"] = 0, + }, + [90] = { + ["X"] = 26.89, + ["Y"] = 35.94, + ["CD"] = 0, + }, + [91] = { + ["X"] = 26.1, + ["Y"] = 38.55, + ["CD"] = 0, + }, + [92] = { + ["X"] = 24.92, + ["Y"] = 42.79, + ["CD"] = 0, + }, + [93] = { + ["X"] = 24.22, + ["Y"] = 45.41, + ["CD"] = 0, + }, + [94] = { + ["X"] = 23.88, + ["Y"] = 48.95, + ["CD"] = 0, + }, + [95] = { + ["X"] = 25.79, + ["Y"] = 49.81, + ["CD"] = 0, + }, + [96] = { + ["X"] = 26.82, + ["Y"] = 46.94, + ["CD"] = 0, + }, + [97] = { + ["X"] = 31.6, + ["Y"] = 49.24, + ["CD"] = 0, + }, + [98] = { + ["X"] = 33.02, + ["Y"] = 46.44, + ["CD"] = 0, + }, + [99] = { + ["X"] = 28.44, + ["Y"] = 43.1, + ["CD"] = 0, + }, + [100] = { + ["X"] = 23.55, + ["Y"] = 48.35, + ["CD"] = 0, + }, + [101] = { + ["X"] = 20.43, + ["Y"] = 52.82, + ["CD"] = 0, + }, + [102] = { + ["X"] = 25.81, + ["Y"] = 52.62, + ["CD"] = 0, + }, + [103] = { + ["X"] = 26.13, + ["Y"] = 55.42, + ["CD"] = 0, + }, + [104] = { + ["X"] = 26.22, + ["Y"] = 53.16, + ["CD"] = 0, + }, + [105] = { + ["X"] = 24.67, + ["Y"] = 51.58, + ["CD"] = 0, + }, + [106] = { + ["X"] = 24.61, + ["Y"] = 47.73, + ["CD"] = 0, + }, + [107] = { + ["X"] = 26.03, + ["Y"] = 47.65, + ["CD"] = 0, + }, + [108] = { + ["X"] = 27.94, + ["Y"] = 47.19, + ["CD"] = 0, + }, + [109] = { + ["X"] = 27.39, + ["Y"] = 44.65, + ["CD"] = 0, + }, + [110] = { + ["X"] = 32.73, + ["Y"] = 43.41, + ["CD"] = 0, + }, + [111] = { + ["X"] = 31.98, + ["Y"] = 47.64, + ["CD"] = 0, + }, + [112] = { + ["X"] = 32.51, + ["Y"] = 38.82, + ["CD"] = 0, + }, + [113] = { + ["X"] = 31.03, + ["Y"] = 38.81, + ["CD"] = 0, + }, + [114] = { + ["X"] = 30.59, + ["Y"] = 39.67, + ["CD"] = 0, + }, + [115] = { + ["X"] = 30.03, + ["Y"] = 40.09, + ["CD"] = 0, + }, + [116] = { + ["X"] = 29.63, + ["Y"] = 41.35, + ["CD"] = 0, + }, + [117] = { + ["X"] = 28.81, + ["Y"] = 43.12, + ["CD"] = 0, + }, + [118] = { + ["X"] = 30.08, + ["Y"] = 45.64, + ["CD"] = 0, + }, + [119] = { + ["X"] = 30.28, + ["Y"] = 48.27, + ["CD"] = 0, + }, + [120] = { + ["X"] = 29.93, + ["Y"] = 47.4, + ["CD"] = 0, + }, + [121] = { + ["X"] = 28.94, + ["Y"] = 47.14, + ["CD"] = 0, + }, + [122] = { + ["X"] = 27.59, + ["Y"] = 45.29, + ["CD"] = 0, + }, + [123] = { + ["X"] = 30.01, + ["Y"] = 44.34, + ["CD"] = 0, + }, + [124] = { + ["X"] = 32.22, + ["Y"] = 39.24, + ["CD"] = 0, + }, + [125] = { + ["X"] = 31.38, + ["Y"] = 38.07, + ["CD"] = 0, + }, + [126] = { + ["X"] = 32.23, + ["Y"] = 36.98, + ["CD"] = 0, + }, + [127] = { + ["X"] = 31.55, + ["Y"] = 31.57, + ["CD"] = 0, + }, + [128] = { + ["X"] = 30.92, + ["Y"] = 34.67, + ["CD"] = 0, + }, + [129] = { + ["X"] = 47.19, + ["Y"] = 39.83, + ["CD"] = 0, + }, + [130] = { + ["X"] = 50.82, + ["Y"] = 40.62, + ["CD"] = 0, + }, + [131] = { + ["X"] = 48.38, + ["Y"] = 34.1, + ["CD"] = 0, + }, + [132] = { + ["X"] = 45.59, + ["Y"] = 31.09, + ["CD"] = 0, + }, + [133] = { + ["X"] = 43.61, + ["Y"] = 35.49, + ["CD"] = 0, + }, + [134] = { + ["X"] = 35.64, + ["Y"] = 41.64, + ["CD"] = 0, + }, + [135] = { + ["X"] = 34.44, + ["Y"] = 43, + ["CD"] = 0, + }, + [136] = { + ["X"] = 47.66, + ["Y"] = 49.41, + ["CD"] = 0, + }, + [137] = { + ["X"] = 48.82, + ["Y"] = 47.86, + ["CD"] = 0, + }, + [138] = { + ["X"] = 44.12, + ["Y"] = 47.05, + ["CD"] = 0, + }, + [139] = { + ["X"] = 43.09, + ["Y"] = 48.75, + ["CD"] = 0, + }, + [140] = { + ["X"] = 40.23, + ["Y"] = 47.62, + ["CD"] = 0, + }, + [141] = { + ["X"] = 37.28, + ["Y"] = 50.18, + ["CD"] = 0, + }, + [142] = { + ["X"] = 36.33, + ["Y"] = 56.29, + ["CD"] = 0, + }, + [143] = { + ["X"] = 38.4, + ["Y"] = 56.36, + ["CD"] = 0, + }, + [144] = { + ["X"] = 40.05, + ["Y"] = 56.12, + ["CD"] = 0, + }, + [145] = { + ["X"] = 39.51, + ["Y"] = 57.12, + ["CD"] = 0, + }, + [146] = { + ["X"] = 39.43, + ["Y"] = 54.75, + ["CD"] = 0, + }, + [147] = { + ["X"] = 38.8, + ["Y"] = 51.65, + ["CD"] = 0, + }, + [148] = { + ["X"] = 38.74, + ["Y"] = 53.13, + ["CD"] = 0, + }, + [149] = { + ["X"] = 38.11, + ["Y"] = 53.06, + ["CD"] = 0, + }, + [150] = { + ["X"] = 36.71, + ["Y"] = 53.46, + ["CD"] = 0, + }, + [151] = { + ["X"] = 36.17, + ["Y"] = 53.81, + ["CD"] = 0, + }, + [152] = { + ["X"] = 34.25, + ["Y"] = 55.15, + ["CD"] = 0, + }, + [153] = { + ["X"] = 35.35, + ["Y"] = 54.5, + ["CD"] = 0, + }, + [154] = { + ["X"] = 35.27, + ["Y"] = 52.65, + ["CD"] = 0, + }, + [155] = { + ["X"] = 32.47, + ["Y"] = 45.01, + ["CD"] = 0, + }, + [156] = { + ["X"] = 34.72, + ["Y"] = 47.72, + ["CD"] = 0, + }, + [157] = { + ["X"] = 36.55, + ["Y"] = 51.57, + ["CD"] = 0, + }, + [158] = { + ["X"] = 70.42, + ["Y"] = 64.46, + ["CD"] = 0, + }, + [159] = { + ["X"] = 64.84, + ["Y"] = 55.38, + ["CD"] = 0, + }, + [160] = { + ["X"] = 44.86, + ["Y"] = 48.82, + ["CD"] = 0, + }, + [161] = { + ["X"] = 29.45, + ["Y"] = 77.91, + ["CD"] = 0, + }, + [162] = { + ["X"] = 29.8, + ["Y"] = 70.65, + ["CD"] = 0, + }, + [163] = { + ["X"] = 44.01, + ["Y"] = 41.2, + ["CD"] = 0, + }, + [164] = { + ["X"] = 41.54, + ["Y"] = 40.12, + ["CD"] = 0, + }, + [165] = { + ["X"] = 20.2, + ["Y"] = 53.96, + ["CD"] = 0, + }, + [166] = { + ["X"] = 31.44, + ["Y"] = 29.22, + ["CD"] = 0, + }, + [167] = { + ["X"] = 15.67, + ["Y"] = 37.13, + ["CD"] = 0, + }, + [168] = { + ["X"] = 20.97, + ["Y"] = 15.47, + ["CD"] = 0, + }, + [169] = { + ["X"] = 27.52, + ["Y"] = 9.17, + ["CD"] = 0, + }, + [170] = { + ["X"] = 25.93, + ["Y"] = 25.58, + ["CD"] = 0, + }, + [171] = { + ["X"] = 34.07, + ["Y"] = 50.83, + ["CD"] = 0, + }, + [172] = { + ["X"] = 37.23, + ["Y"] = 54.85, + ["CD"] = 0, + }, + [173] = { + ["X"] = 34.77, + ["Y"] = 58.4, + ["CD"] = 0, + }, + [174] = { + ["X"] = 39.56, + ["Y"] = 79.48, + ["CD"] = 0, + }, + [175] = { + ["X"] = 66.46, + ["Y"] = 57.51, + ["CD"] = 0, + }, + [176] = { + ["X"] = 66.74, + ["Y"] = 66.02, + ["CD"] = 0, + }, + [177] = { + ["X"] = 71.94, + ["Y"] = 68.81, + ["CD"] = 0, + }, + [178] = { + ["X"] = 69.51, + ["Y"] = 67.83, + ["CD"] = 0, + }, + [179] = { + ["X"] = 69.31, + ["Y"] = 50.72, + ["CD"] = 0, + }, + [180] = { + ["X"] = 63.31, + ["Y"] = 53.33, + ["CD"] = 0, + }, + [181] = { + ["X"] = 63.96, + ["Y"] = 50.46, + ["CD"] = 0, + }, + [182] = { + ["X"] = 65.37, + ["Y"] = 43.82, + ["CD"] = 0, + }, + [183] = { + ["X"] = 63.15, + ["Y"] = 35.17, + ["CD"] = 0, + }, + [184] = { + ["X"] = 60.59, + ["Y"] = 44.44, + ["CD"] = 0, + }, + [185] = { + ["X"] = 35.55, + ["Y"] = 61.86, + ["CD"] = 0, + }, + [186] = { + ["X"] = 40.1, + ["Y"] = 53.5, + ["CD"] = 0, + }, + [187] = { + ["X"] = 47.46, + ["Y"] = 47.36, + ["CD"] = 0, + }, + [188] = { + ["X"] = 49.48, + ["Y"] = 39.04, + ["CD"] = 0, + }, + [189] = { + ["X"] = 35.79, + ["Y"] = 42.74, + ["CD"] = 0, + }, + [190] = { + ["X"] = 33.35, + ["Y"] = 45.99, + ["CD"] = 0, + }, + [191] = { + ["X"] = 30.25, + ["Y"] = 43.1, + ["CD"] = 0, + }, + [192] = { + ["X"] = 28.76, + ["Y"] = 48.41, + ["CD"] = 0, + }, + [193] = { + ["X"] = 30.18, + ["Y"] = 65.31, + ["CD"] = 0, + }, + [194] = { + ["X"] = 32.64, + ["Y"] = 74.92, + ["CD"] = 0, + }, + [195] = { + ["X"] = 35.41, + ["Y"] = 80.33, + ["CD"] = 0, + }, + [196] = { + ["X"] = 32.08, + ["Y"] = 81.08, + ["CD"] = 0, + }, + [197] = { + ["X"] = 30.03, + ["Y"] = 82.65, + ["CD"] = 0, + }, + [198] = { + ["X"] = 27.52, + ["Y"] = 67.32, + ["CD"] = 0, + }, + [199] = { + ["X"] = 26.24, + ["Y"] = 69.06, + ["CD"] = 0, + }, + [200] = { + ["X"] = 24.97, + ["Y"] = 61.8, + ["CD"] = 0, + }, + [201] = { + ["X"] = 25.91, + ["Y"] = 58.23, + ["CD"] = 0, + }, + [202] = { + ["X"] = 34.69, + ["Y"] = 39.51, + ["CD"] = 0, + }, + [203] = { + ["X"] = 37.45, + ["Y"] = 38.69, + ["CD"] = 0, + }, + [204] = { + ["X"] = 45.96, + ["Y"] = 36.33, + ["CD"] = 0, + }, + [205] = { + ["X"] = 46.54, + ["Y"] = 33.81, + ["CD"] = 0, + }, + [206] = { + ["X"] = 37.6, + ["Y"] = 31.35, + ["CD"] = 0, + }, + [207] = { + ["X"] = 24.73, + ["Y"] = 54.01, + ["CD"] = 0, + }, + [208] = { + ["X"] = 21.68, + ["Y"] = 47.55, + ["CD"] = 0, + }, + [209] = { + ["X"] = 23.58, + ["Y"] = 50.81, + ["CD"] = 0, + }, + [210] = { + ["X"] = 25.01, + ["Y"] = 35.96, + ["CD"] = 0, + }, + [211] = { + ["X"] = 25.25, + ["Y"] = 37.61, + ["CD"] = 0, + }, + [212] = { + ["X"] = 41.53, + ["Y"] = 17.47, + ["CD"] = 0, + }, + [213] = { + ["X"] = 27.84, + ["Y"] = 15.94, + ["CD"] = 0, + }, + [214] = { + ["X"] = 44.1, + ["Y"] = 24.69, + ["CD"] = 0, + }, + [215] = { + ["X"] = 41.45, + ["Y"] = 24.26, + ["CD"] = 0, + }, + [216] = { + ["X"] = 40.28, + ["Y"] = 27.75, + ["CD"] = 0, + }, + [217] = { + ["X"] = 37.57, + ["Y"] = 27.05, + ["CD"] = 0, + }, + [218] = { + ["X"] = 33.71, + ["Y"] = 31.04, + ["CD"] = 0, + }, + [219] = { + ["X"] = 28.85, + ["Y"] = 29.61, + ["CD"] = 0, + }, + [220] = { + ["X"] = 27.2, + ["Y"] = 29.85, + ["CD"] = 0, + }, + [221] = { + ["X"] = 23.31, + ["Y"] = 34.44, + ["CD"] = 0, + }, + [222] = { + ["X"] = 15.86, + ["Y"] = 43.89, + ["CD"] = 0, + }, + [223] = { + ["X"] = 16.17, + ["Y"] = 39.56, + ["CD"] = 0, + }, + [224] = { + ["X"] = 16.88, + ["Y"] = 28.87, + ["CD"] = 0, + }, + [225] = { + ["X"] = 19.56, + ["Y"] = 18.08, + ["CD"] = 0, + }, + [226] = { + ["X"] = 19.99, + ["Y"] = 18.12, + ["CD"] = 0, + }, + [227] = { + ["X"] = 49.54, + ["Y"] = 43.54, + ["CD"] = 0, + }, + [228] = { + ["X"] = 55.47, + ["Y"] = 40.72, + ["CD"] = 0, + }, + [229] = { + ["X"] = 57.64, + ["Y"] = 37.85, + ["CD"] = 0, + }, + [230] = { + ["X"] = 62.48, + ["Y"] = 57.85, + ["CD"] = 0, + }, + [231] = { + ["X"] = 63.78, + ["Y"] = 60.52, + ["CD"] = 0, + }, + [232] = { + ["X"] = 50.61, + ["Y"] = 60.74, + ["CD"] = 0, + }, + [233] = { + ["X"] = 42.63, + ["Y"] = 34.55, + ["CD"] = 0, + }, + [234] = { + ["X"] = 43.99, + ["Y"] = 33.06, + ["CD"] = 0, + }, + [235] = { + ["X"] = 43.05, + ["Y"] = 31.79, + ["CD"] = 0, + }, + [236] = { + ["X"] = 43.99, + ["Y"] = 31.16, + ["CD"] = 0, + }, + [237] = { + ["X"] = 26.64, + ["Y"] = 23.15, + ["CD"] = 0, + }, + [238] = { + ["X"] = 28.32, + ["Y"] = 23.6, + ["CD"] = 0, + }, + [239] = { + ["X"] = 28.88, + ["Y"] = 24.6, + ["CD"] = 0, + }, + [240] = { + ["X"] = 33.61, + ["Y"] = 36.03, + ["CD"] = 0, + }, + [241] = { + ["X"] = 30.99, + ["Y"] = 39.39, + ["CD"] = 0, + }, + [242] = { + ["X"] = 26.18, + ["Y"] = 43.14, + ["CD"] = 0, + }, + [243] = { + ["X"] = 22.71, + ["Y"] = 45.34, + ["CD"] = 0, + }, + [244] = { + ["X"] = 22.81, + ["Y"] = 49.38, + ["CD"] = 0, + }, + [245] = { + ["X"] = 21.55, + ["Y"] = 50.1, + ["CD"] = 0, + }, + [246] = { + ["X"] = 22.18, + ["Y"] = 52.8, + ["CD"] = 0, + }, + [247] = { + ["X"] = 21.47, + ["Y"] = 56.31, + ["CD"] = 0, + }, + [248] = { + ["X"] = 20.22, + ["Y"] = 60.26, + ["CD"] = 0, + }, + [249] = { + ["X"] = 24.53, + ["Y"] = 60.54, + ["CD"] = 0, + }, + [250] = { + ["X"] = 24.59, + ["Y"] = 62.52, + ["CD"] = 0, + }, + [251] = { + ["X"] = 26.87, + ["Y"] = 72.95, + ["CD"] = 0, + }, + [252] = { + ["X"] = 27.78, + ["Y"] = 72.71, + ["CD"] = 0, + }, + [253] = { + ["X"] = 29.27, + ["Y"] = 71.58, + ["CD"] = 0, + }, + [254] = { + ["X"] = 30.54, + ["Y"] = 76.06, + ["CD"] = 0, + }, + [255] = { + ["X"] = 32.41, + ["Y"] = 79.52, + ["CD"] = 0, + }, + [256] = { + ["X"] = 32.6, + ["Y"] = 74.97, + ["CD"] = 0, + }, + [257] = { + ["X"] = 33.1, + ["Y"] = 72.68, + ["CD"] = 0, + }, + [258] = { + ["X"] = 34.44, + ["Y"] = 74.65, + ["CD"] = 0, + }, + [259] = { + ["X"] = 34.74, + ["Y"] = 82.73, + ["CD"] = 0, + }, + [260] = { + ["X"] = 29.22, + ["Y"] = 78.87, + ["CD"] = 0, + }, + [261] = { + ["X"] = 31.67, + ["Y"] = 84.04, + ["CD"] = 0, + }, + [262] = { + ["X"] = 33.47, + ["Y"] = 80.66, + ["CD"] = 0, + }, + [263] = { + ["X"] = 36.84, + ["Y"] = 81.04, + ["CD"] = 0, + }, + [264] = { + ["X"] = 33.58, + ["Y"] = 79.03, + ["CD"] = 0, + }, + [265] = { + ["X"] = 31.74, + ["Y"] = 76.73, + ["CD"] = 0, + }, + [266] = { + ["X"] = 31.59, + ["Y"] = 80.8, + ["CD"] = 0, + }, + [267] = { + ["X"] = 29.41, + ["Y"] = 84.91, + ["CD"] = 0, + }, + [268] = { + ["X"] = 30.69, + ["Y"] = 79.72, + ["CD"] = 0, + }, + [269] = { + ["X"] = 31.6, + ["Y"] = 78.17, + ["CD"] = 0, + }, + [270] = { + ["X"] = 33.91, + ["Y"] = 77.78, + ["CD"] = 0, + }, + [271] = { + ["X"] = 25.75, + ["Y"] = 60.01, + ["CD"] = 0, + }, + [272] = { + ["X"] = 25.14, + ["Y"] = 63.26, + ["CD"] = 0, + }, + [273] = { + ["X"] = 30.02, + ["Y"] = 68.21, + ["CD"] = 0, + }, + [274] = { + ["X"] = 32.72, + ["Y"] = 69.46, + ["CD"] = 0, + }, + [275] = { + ["X"] = 27.93, + ["Y"] = 55.27, + ["CD"] = 0, + }, + [276] = { + ["X"] = 28.97, + ["Y"] = 53.34, + ["CD"] = 0, + }, + [277] = { + ["X"] = 30.03, + ["Y"] = 54.69, + ["CD"] = 0, + }, + [278] = { + ["X"] = 34.28, + ["Y"] = 22.25, + ["CD"] = 0, + }, + [279] = { + ["X"] = 36.44, + ["Y"] = 21.81, + ["CD"] = 0, + }, + [280] = { + ["X"] = 36.55, + ["Y"] = 17.27, + ["CD"] = 0, + }, + [281] = { + ["X"] = 34.94, + ["Y"] = 18.5, + ["CD"] = 0, + }, + [282] = { + ["X"] = 33.19, + ["Y"] = 20.08, + ["CD"] = 0, + }, + [283] = { + ["X"] = 32.41, + ["Y"] = 22.05, + ["CD"] = 0, + }, + [284] = { + ["X"] = 31.76, + ["Y"] = 21.01, + ["CD"] = 0, + }, + [285] = { + ["X"] = 30.89, + ["Y"] = 19.81, + ["CD"] = 0, + }, + [286] = { + ["X"] = 29.46, + ["Y"] = 17.67, + ["CD"] = 0, + }, + [287] = { + ["X"] = 27.11, + ["Y"] = 15.7, + ["CD"] = 0, + }, + [288] = { + ["X"] = 26.68, + ["Y"] = 19.69, + ["CD"] = 0, + }, + [289] = { + ["X"] = 28.25, + ["Y"] = 17.56, + ["CD"] = 0, + }, + [290] = { + ["X"] = 30.34, + ["Y"] = 18.98, + ["CD"] = 0, + }, + [291] = { + ["X"] = 31.53, + ["Y"] = 16.08, + ["CD"] = 0, + }, + [292] = { + ["X"] = 31.54, + ["Y"] = 19.45, + ["CD"] = 0, + }, + [293] = { + ["X"] = 32.72, + ["Y"] = 25.06, + ["CD"] = 0, + }, + [294] = { + ["X"] = 34.2, + ["Y"] = 24.4, + ["CD"] = 0, + }, + [295] = { + ["X"] = 34.04, + ["Y"] = 27.23, + ["CD"] = 0, + }, + [296] = { + ["X"] = 32.99, + ["Y"] = 38.64, + ["CD"] = 0, + }, + [297] = { + ["X"] = 31.15, + ["Y"] = 38.61, + ["CD"] = 0, + }, + [298] = { + ["X"] = 32.04, + ["Y"] = 39.74, + ["CD"] = 0, + }, + [299] = { + ["X"] = 32.65, + ["Y"] = 41.89, + ["CD"] = 0, + }, + [300] = { + ["X"] = 33.1, + ["Y"] = 42.99, + ["CD"] = 0, + }, + [301] = { + ["X"] = 36.86, + ["Y"] = 46.71, + ["CD"] = 0, + }, + [302] = { + ["X"] = 37.81, + ["Y"] = 49.74, + ["CD"] = 0, + }, + [303] = { + ["X"] = 42.95, + ["Y"] = 52.52, + ["CD"] = 0, + }, + [304] = { + ["X"] = 42.35, + ["Y"] = 48.81, + ["CD"] = 0, + }, + [305] = { + ["X"] = 69.72, + ["Y"] = 64.19, + ["CD"] = 0, + }, + [306] = { + ["X"] = 68.37, + ["Y"] = 61.74, + ["CD"] = 0, + }, + [307] = { + ["X"] = 69.51, + ["Y"] = 65.5, + ["CD"] = 0, + }, + [308] = { + ["X"] = 70.29, + ["Y"] = 64.48, + ["CD"] = 0, + }, + [309] = { + ["X"] = 69.13, + ["Y"] = 64.23, + ["CD"] = 0, + }, + [310] = { + ["X"] = 69.15, + ["Y"] = 60.1, + ["CD"] = 0, + }, + [311] = { + ["X"] = 67.97, + ["Y"] = 58.14, + ["CD"] = 0, + }, + [312] = { + ["X"] = 67.14, + ["Y"] = 53.01, + ["CD"] = 0, + }, + [313] = { + ["X"] = 73.12, + ["Y"] = 48.65, + ["CD"] = 0, + }, + [314] = { + ["X"] = 73.12, + ["Y"] = 47.89, + ["CD"] = 0, + }, + [315] = { + ["X"] = 72.19, + ["Y"] = 46.38, + ["CD"] = 0, + }, + [316] = { + ["X"] = 70.51, + ["Y"] = 46.32, + ["CD"] = 0, + }, + [317] = { + ["X"] = 68.65, + ["Y"] = 46.67, + ["CD"] = 0, + }, + [318] = { + ["X"] = 68.55, + ["Y"] = 51.82, + ["CD"] = 0, + }, + [319] = { + ["X"] = 64.71, + ["Y"] = 51.86, + ["CD"] = 0, + }, + [320] = { + ["X"] = 63.71, + ["Y"] = 48.77, + ["CD"] = 0, + }, + [321] = { + ["X"] = 63.62, + ["Y"] = 47.68, + ["CD"] = 0, + }, + [322] = { + ["X"] = 64.8, + ["Y"] = 46.7, + ["CD"] = 0, + }, + [323] = { + ["X"] = 66.58, + ["Y"] = 45.28, + ["CD"] = 0, + }, + [324] = { + ["X"] = 63.34, + ["Y"] = 33.87, + ["CD"] = 0, + }, + [325] = { + ["X"] = 63.01, + ["Y"] = 34.84, + ["CD"] = 0, + }, + [326] = { + ["X"] = 61.77, + ["Y"] = 39.07, + ["CD"] = 0, + }, + [327] = { + ["X"] = 59.21, + ["Y"] = 41.44, + ["CD"] = 0, + }, + [328] = { + ["X"] = 56.78, + ["Y"] = 42.66, + ["CD"] = 0, + }, + [329] = { + ["X"] = 55.53, + ["Y"] = 47.09, + ["CD"] = 0, + }, + [330] = { + ["X"] = 59.44, + ["Y"] = 47.15, + ["CD"] = 0, + }, + [331] = { + ["X"] = 61.51, + ["Y"] = 51.48, + ["CD"] = 0, + }, + [332] = { + ["X"] = 63.82, + ["Y"] = 52.27, + ["CD"] = 0, + }, + [333] = { + ["X"] = 62, + ["Y"] = 52.91, + ["CD"] = 0, + }, + [334] = { + ["X"] = 61.35, + ["Y"] = 50.51, + ["CD"] = 0, + }, + [335] = { + ["X"] = 61.74, + ["Y"] = 48.03, + ["CD"] = 0, + }, + [336] = { + ["X"] = 58.77, + ["Y"] = 43.45, + ["CD"] = 0, + }, + [337] = { + ["X"] = 58.41, + ["Y"] = 45.39, + ["CD"] = 0, + }, + [338] = { + ["X"] = 54.5, + ["Y"] = 46.97, + ["CD"] = 0, + }, + [339] = { + ["X"] = 55.89, + ["Y"] = 45.23, + ["CD"] = 0, + }, + [340] = { + ["X"] = 56.05, + ["Y"] = 41.79, + ["CD"] = 0, + }, + [341] = { + ["X"] = 57.41, + ["Y"] = 42.15, + ["CD"] = 0, + }, + [342] = { + ["X"] = 57.21, + ["Y"] = 44.41, + ["CD"] = 0, + }, + [343] = { + ["X"] = 57.77, + ["Y"] = 45.14, + ["CD"] = 0, + }, + [344] = { + ["X"] = 59.3, + ["Y"] = 40.64, + ["CD"] = 0, + }, + [345] = { + ["X"] = 60.35, + ["Y"] = 40.73, + ["CD"] = 0, + }, + [346] = { + ["X"] = 61.12, + ["Y"] = 41.76, + ["CD"] = 0, + }, + [347] = { + ["X"] = 31.67, + ["Y"] = 27.07, + ["CD"] = 0, + }, + [348] = { + ["X"] = 30.98, + ["Y"] = 24.72, + ["CD"] = 0, + }, + [349] = { + ["X"] = 29.82, + ["Y"] = 26.4, + ["CD"] = 0, + }, + [350] = { + ["X"] = 27.29, + ["Y"] = 25.93, + ["CD"] = 0, + }, + [351] = { + ["X"] = 26.05, + ["Y"] = 27.85, + ["CD"] = 0, + }, + [352] = { + ["X"] = 26.76, + ["Y"] = 29.56, + ["CD"] = 0, + }, + [353] = { + ["X"] = 28.39, + ["Y"] = 30.88, + ["CD"] = 0, + }, + [354] = { + ["X"] = 28.45, + ["Y"] = 31.37, + ["CD"] = 0, + }, + [355] = { + ["X"] = 29.25, + ["Y"] = 32.11, + ["CD"] = 0, + }, + [356] = { + ["X"] = 29.96, + ["Y"] = 30.84, + ["CD"] = 0, + }, + [357] = { + ["X"] = 32.9, + ["Y"] = 32.82, + ["CD"] = 0, + }, + [358] = { + ["X"] = 31.92, + ["Y"] = 31.74, + ["CD"] = 0, + }, + [359] = { + ["X"] = 30.75, + ["Y"] = 37.27, + ["CD"] = 0, + }, + [360] = { + ["X"] = 31.63, + ["Y"] = 37.6, + ["CD"] = 0, + }, + [361] = { + ["X"] = 27.94, + ["Y"] = 37.72, + ["CD"] = 0, + }, + [362] = { + ["X"] = 28.17, + ["Y"] = 38.49, + ["CD"] = 0, + }, + [363] = { + ["X"] = 26.32, + ["Y"] = 40.44, + ["CD"] = 0, + }, + [364] = { + ["X"] = 24.49, + ["Y"] = 41.81, + ["CD"] = 0, + }, + [365] = { + ["X"] = 18.08, + ["Y"] = 46.61, + ["CD"] = 0, + }, + [366] = { + ["X"] = 17.59, + ["Y"] = 45.09, + ["CD"] = 0, + }, + [367] = { + ["X"] = 18.4, + ["Y"] = 41, + ["CD"] = 0, + }, + [368] = { + ["X"] = 17.48, + ["Y"] = 39.95, + ["CD"] = 0, + }, + [369] = { + ["X"] = 18.65, + ["Y"] = 41.96, + ["CD"] = 0, + }, + [370] = { + ["X"] = 20.95, + ["Y"] = 43.91, + ["CD"] = 0, + }, + [371] = { + ["X"] = 22.97, + ["Y"] = 47.92, + ["CD"] = 0, + }, + [372] = { + ["X"] = 19.09, + ["Y"] = 49.69, + ["CD"] = 0, + }, + [373] = { + ["X"] = 22.03, + ["Y"] = 56.43, + ["CD"] = 0, + }, + [374] = { + ["X"] = 22.31, + ["Y"] = 58.92, + ["CD"] = 0, + }, + [375] = { + ["X"] = 25.31, + ["Y"] = 68.09, + ["CD"] = 0, + }, + [376] = { + ["X"] = 21.62, + ["Y"] = 61.23, + ["CD"] = 0, + }, + [377] = { + ["X"] = 21.35, + ["Y"] = 59.29, + ["CD"] = 0, + }, + [378] = { + ["X"] = 19.87, + ["Y"] = 59.06, + ["CD"] = 0, + }, + [379] = { + ["X"] = 19.27, + ["Y"] = 58.37, + ["CD"] = 0, + }, + [380] = { + ["X"] = 18.91, + ["Y"] = 56.02, + ["CD"] = 0, + }, + [381] = { + ["X"] = 20.58, + ["Y"] = 52.54, + ["CD"] = 0, + }, + [382] = { + ["X"] = 20.05, + ["Y"] = 50.86, + ["CD"] = 0, + }, + [383] = { + ["X"] = 22.43, + ["Y"] = 54.14, + ["CD"] = 0, + }, + [384] = { + ["X"] = 23.28, + ["Y"] = 54.2, + ["CD"] = 0, + }, + [385] = { + ["X"] = 26.01, + ["Y"] = 50.3, + ["CD"] = 0, + }, + [386] = { + ["X"] = 27.47, + ["Y"] = 49.06, + ["CD"] = 0, + }, + [387] = { + ["X"] = 28.48, + ["Y"] = 47.38, + ["CD"] = 0, + }, + [388] = { + ["X"] = 27.49, + ["Y"] = 43.9, + ["CD"] = 0, + }, + [389] = { + ["X"] = 27.59, + ["Y"] = 41.63, + ["CD"] = 0, + }, + [390] = { + ["X"] = 29.31, + ["Y"] = 38.42, + ["CD"] = 0, + }, + [391] = { + ["X"] = 37.52, + ["Y"] = 25.52, + ["CD"] = 0, + }, + [392] = { + ["X"] = 35.96, + ["Y"] = 27.82, + ["CD"] = 0, + }, + [393] = { + ["X"] = 34.07, + ["Y"] = 31.49, + ["CD"] = 0, + }, + [394] = { + ["X"] = 35.03, + ["Y"] = 31.58, + ["CD"] = 0, + }, + [395] = { + ["X"] = 34.02, + ["Y"] = 33.22, + ["CD"] = 0, + }, + [396] = { + ["X"] = 33.82, + ["Y"] = 34.84, + ["CD"] = 0, + }, + [397] = { + ["X"] = 34.21, + ["Y"] = 37.6, + ["CD"] = 0, + }, + [398] = { + ["X"] = 47.11, + ["Y"] = 38.8, + ["CD"] = 0, + }, + [399] = { + ["X"] = 44.32, + ["Y"] = 40.46, + ["CD"] = 0, + }, + [400] = { + ["X"] = 42.59, + ["Y"] = 42.28, + ["CD"] = 0, + }, + [401] = { + ["X"] = 42.94, + ["Y"] = 42.27, + ["CD"] = 0, + }, + [402] = { + ["X"] = 45.1, + ["Y"] = 42.16, + ["CD"] = 0, + }, + [403] = { + ["X"] = 46.25, + ["Y"] = 43.49, + ["CD"] = 0, + }, + [404] = { + ["X"] = 45.88, + ["Y"] = 45.2, + ["CD"] = 0, + }, + [405] = { + ["X"] = 45.17, + ["Y"] = 46.78, + ["CD"] = 0, + }, + [406] = { + ["X"] = 43.62, + ["Y"] = 46.21, + ["CD"] = 0, + }, + [407] = { + ["X"] = 43.43, + ["Y"] = 47.27, + ["CD"] = 0, + }, + [408] = { + ["X"] = 43, + ["Y"] = 47.82, + ["CD"] = 0, + }, + [409] = { + ["X"] = 41.94, + ["Y"] = 46.63, + ["CD"] = 0, + }, + [410] = { + ["X"] = 40.91, + ["Y"] = 47.21, + ["CD"] = 0, + }, + [411] = { + ["X"] = 39.44, + ["Y"] = 47.72, + ["CD"] = 0, + }, + [412] = { + ["X"] = 36.48, + ["Y"] = 48.68, + ["CD"] = 0, + }, + [413] = { + ["X"] = 35.38, + ["Y"] = 46.59, + ["CD"] = 0, + }, + [414] = { + ["X"] = 35.17, + ["Y"] = 45.4, + ["CD"] = 0, + }, + [415] = { + ["X"] = 39.19, + ["Y"] = 38.05, + ["CD"] = 0, + }, + [416] = { + ["X"] = 41.12, + ["Y"] = 37.99, + ["CD"] = 0, + }, + [417] = { + ["X"] = 40.16, + ["Y"] = 36.83, + ["CD"] = 0, + }, + [418] = { + ["X"] = 39.98, + ["Y"] = 39.7, + ["CD"] = 0, + }, + [419] = { + ["X"] = 38.39, + ["Y"] = 40.1, + ["CD"] = 0, + }, + [420] = { + ["X"] = 37.24, + ["Y"] = 41.92, + ["CD"] = 0, + }, + [421] = { + ["X"] = 36.93, + ["Y"] = 43.94, + ["CD"] = 0, + }, + [422] = { + ["X"] = 36.15, + ["Y"] = 43.84, + ["CD"] = 0, + }, + [423] = { + ["X"] = 36.94, + ["Y"] = 44.84, + ["CD"] = 0, + }, + [424] = { + ["X"] = 38.61, + ["Y"] = 47.11, + ["CD"] = 0, + }, + [425] = { + ["X"] = 37.74, + ["Y"] = 48.57, + ["CD"] = 0, + }, + [426] = { + ["X"] = 38.21, + ["Y"] = 51.02, + ["CD"] = 0, + }, + [427] = { + ["X"] = 37.57, + ["Y"] = 51.13, + ["CD"] = 0, + }, + [428] = { + ["X"] = 34.62, + ["Y"] = 56.53, + ["CD"] = 0, + }, + [429] = { + ["X"] = 33.91, + ["Y"] = 54.15, + ["CD"] = 0, + }, + [430] = { + ["X"] = 35.96, + ["Y"] = 51.61, + ["CD"] = 0, + }, + [431] = { + ["X"] = 35.55, + ["Y"] = 61.86, + ["CD"] = 0, + }, + [432] = { + ["X"] = 68.25, + ["Y"] = 61.21, + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 50 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/ArgusWeed.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/ArgusWeed.lua index 654a101..cb1a4db 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/ArgusWeed.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/ArgusWeed.lua @@ -1,77 +1,77 @@ aura_env.herbs = { - [1] = { - ["X"] = 58.54, - ["Y"] = 51.33, - ["CD"] = 0, - }, - [2] = { - ["X"] = 55.51, - ["Y"] = 55.97, - ["CD"] = 0, - }, - [3] = { - ["X"] = 49.55, - ["Y"] = 58.43, - ["CD"] = 0, - }, - [4] = { - ["X"] = 55.87, - ["Y"] = 79, - ["CD"] = 0, - }, - [5] = { - ["X"] = 56.32, - ["Y"] = 77.94, - ["CD"] = 0, - }, - [6] = { - ["X"] = 57.65, - ["Y"] = 72.89, - ["CD"] = 0, - }, - [7] = { - ["X"] = 52.06, - ["Y"] = 22.41, - ["CD"] = 0, - }, - [8] = { - ["X"] = 49.8, - ["Y"] = 14.15, - ["CD"] = 0, - }, - [9] = { - ["X"] = 42.4, - ["Y"] = 71.35, - ["CD"] = 0, - }, - [10] = { - ["X"] = 66.74, - ["Y"] = 37.04, - ["CD"] = 0, - }, - [11] = { - ["X"] = 71.61, - ["Y"] = 34.02, - ["CD"] = 0, - }, - [12] = { - ["X"] = 43.66, - ["Y"] = 42.8, - ["CD"] = 0, - }, - [13] = { - ["X"] = 51.79, - ["Y"] = 70.39, - ["CD"] = 0, - }, - [14] = { - ["X"] = 45.17, - ["Y"] = 53.13, - ["CD"] = 0, - }, - [15] = { - ["X"] = 71.88, - ["Y"] = 27.85, - ["CD"] = 0, - }, + [1] = { + ["X"] = 58.54, + ["Y"] = 51.33, + ["CD"] = 0, + }, + [2] = { + ["X"] = 55.51, + ["Y"] = 55.97, + ["CD"] = 0, + }, + [3] = { + ["X"] = 49.55, + ["Y"] = 58.43, + ["CD"] = 0, + }, + [4] = { + ["X"] = 55.87, + ["Y"] = 79, + ["CD"] = 0, + }, + [5] = { + ["X"] = 56.32, + ["Y"] = 77.94, + ["CD"] = 0, + }, + [6] = { + ["X"] = 57.65, + ["Y"] = 72.89, + ["CD"] = 0, + }, + [7] = { + ["X"] = 52.06, + ["Y"] = 22.41, + ["CD"] = 0, + }, + [8] = { + ["X"] = 49.8, + ["Y"] = 14.15, + ["CD"] = 0, + }, + [9] = { + ["X"] = 42.4, + ["Y"] = 71.35, + ["CD"] = 0, + }, + [10] = { + ["X"] = 66.74, + ["Y"] = 37.04, + ["CD"] = 0, + }, + [11] = { + ["X"] = 71.61, + ["Y"] = 34.02, + ["CD"] = 0, + }, + [12] = { + ["X"] = 43.66, + ["Y"] = 42.8, + ["CD"] = 0, + }, + [13] = { + ["X"] = 51.79, + ["Y"] = 70.39, + ["CD"] = 0, + }, + [14] = { + ["X"] = 45.17, + ["Y"] = 53.13, + ["CD"] = 0, + }, + [15] = { + ["X"] = 71.88, + ["Y"] = 27.85, + ["CD"] = 0, + }, } diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Aethril.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Aethril.lua index 9f94dec..953739c 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Aethril.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Aethril.lua @@ -1,926 +1,774 @@ -aura_env.herbs = -{ - [1] = - { - ["X"] = 52.44, - ["Y"] = 12.55, - ["CD"] = 0 - }, - [2] = - { - ["X"] = 43.81, - ["Y"] = 13.48, - ["CD"] = 0 - }, - [3] = - { - ["X"] = 43.5, - ["Y"] = 11.55, - ["CD"] = 0 - }, - [4] = - { - ["X"] = 43.54, - ["Y"] = 10.41, - ["CD"] = 0 - }, - [5] = - { - ["X"] = 44.04, - ["Y"] = 10.02, - ["CD"] = 0 - }, - [6] = - { - ["X"] = 45.05, - ["Y"] = 8.91, - ["CD"] = 0 - }, - [7] = - { - ["X"] = 45.31, - ["Y"] = 9.62, - ["CD"] = 0 - }, - [8] = - { - ["X"] = 50.71, - ["Y"] = 12.66, - ["CD"] = 0 - }, - [9] = - { - ["X"] = 51.42, - ["Y"] = 10.39, - ["CD"] = 0 - }, - [10] = - { - ["X"] = 51.03, - ["Y"] = 11.49, - ["CD"] = 0 - }, - [11] = - { - ["X"] = 52.24, - ["Y"] = 13.93, - ["CD"] = 0 - }, - [12] = - { - ["X"] = 53.1, - ["Y"] = 13.66, - ["CD"] = 0 - }, - [13] = - { - ["X"] = 54.52, - ["Y"] = 13.09, - ["CD"] = 0 - }, - [14] = - { - ["X"] = 53.98, - ["Y"] = 15.09, - ["CD"] = 0 - }, - [15] = - { - ["X"] = 57.19, - ["Y"] = 18.32, - ["CD"] = 0 - }, - [16] = - { - ["X"] = 57.95, - ["Y"] = 19.85, - ["CD"] = 0 - }, - [17] = - { - ["X"] = 61.05, - ["Y"] = 17.05, - ["CD"] = 0 - }, - [18] = - { - ["X"] = 62.21, - ["Y"] = 16.11, - ["CD"] = 0 - }, - [19] = - { - ["X"] = 62.26, - ["Y"] = 17.91, - ["CD"] = 0 - }, - [20] = - { - ["X"] = 61.86, - ["Y"] = 18.55, - ["CD"] = 0 - }, - [21] = - { - ["X"] = 59.87, - ["Y"] = 20.07, - ["CD"] = 0 - }, - [22] = - { - ["X"] = 60.17, - ["Y"] = 20.82, - ["CD"] = 0 - }, - [23] = - { - ["X"] = 60.31, - ["Y"] = 21.25, - ["CD"] = 0 - }, - [24] = - { - ["X"] = 58.31, - ["Y"] = 24.61, - ["CD"] = 0 - }, - [25] = - { - ["X"] = 58.91, - ["Y"] = 22.75, - ["CD"] = 0 - }, - [26] = - { - ["X"] = 59.92, - ["Y"] = 22.74, - ["CD"] = 0 - }, - [27] = - { - ["X"] = 61.61, - ["Y"] = 26.13, - ["CD"] = 0 - }, - [28] = - { - ["X"] = 61.21, - ["Y"] = 27.72, - ["CD"] = 0 - }, - [29] = - { - ["X"] = 61.95, - ["Y"] = 30.74, - ["CD"] = 0 - }, - [30] = - { - ["X"] = 63.08, - ["Y"] = 30.76, - ["CD"] = 0 - }, - [31] = - { - ["X"] = 62.57, - ["Y"] = 28.52, - ["CD"] = 0 - }, - [32] = - { - ["X"] = 64.55, - ["Y"] = 27.75, - ["CD"] = 0 - }, - [33] = - { - ["X"] = 65.58, - ["Y"] = 38.31, - ["CD"] = 0 - }, - [34] = - { - ["X"] = 66.38, - ["Y"] = 38.49, - ["CD"] = 0 - }, - [35] = - { - ["X"] = 66.44, - ["Y"] = 35.73, - ["CD"] = 0 - }, - [36] = - { - ["X"] = 65.28, - ["Y"] = 35.11, - ["CD"] = 0 - }, - [37] = - { - ["X"] = 64.73, - ["Y"] = 34.57, - ["CD"] = 0 - }, - [38] = - { - ["X"] = 63.54, - ["Y"] = 34.19, - ["CD"] = 0 - }, - [39] = - { - ["X"] = 64.81, - ["Y"] = 45.69, - ["CD"] = 0 - }, - [40] = - { - ["X"] = 63.1, - ["Y"] = 46.83, - ["CD"] = 0 - }, - [41] = - { - ["X"] = 59.34, - ["Y"] = 49.85, - ["CD"] = 0 - }, - [42] = - { - ["X"] = 56.61, - ["Y"] = 52.15, - ["CD"] = 0 - }, - [43] = - { - ["X"] = 53.11, - ["Y"] = 54.38, - ["CD"] = 0 - }, - [44] = - { - ["X"] = 51.66, - ["Y"] = 55.68, - ["CD"] = 0 - }, - [45] = - { - ["X"] = 50.1, - ["Y"] = 55.25, - ["CD"] = 0 - }, - [46] = - { - ["X"] = 50.05, - ["Y"] = 56.35, - ["CD"] = 0 - }, - [47] = - { - ["X"] = 49.08, - ["Y"] = 55.87, - ["CD"] = 0 - }, - [48] = - { - ["X"] = 36.28, - ["Y"] = 21.97, - ["CD"] = 0 - }, - [49] = - { - ["X"] = 36.07, - ["Y"] = 23.09, - ["CD"] = 0 - }, - [50] = - { - ["X"] = 35.3, - ["Y"] = 23.32, - ["CD"] = 0 - }, - [51] = - { - ["X"] = 35.24, - ["Y"] = 25.27, - ["CD"] = 0 - }, - [52] = - { - ["X"] = 35.84, - ["Y"] = 26.66, - ["CD"] = 0 - }, - [53] = - { - ["X"] = 35.28, - ["Y"] = 28.34, - ["CD"] = 0 - }, - [54] = - { - ["X"] = 38.92, - ["Y"] = 33.69, - ["CD"] = 0 - }, - [55] = - { - ["X"] = 38.76, - ["Y"] = 32.81, - ["CD"] = 0 - }, - [56] = - { - ["X"] = 39.8, - ["Y"] = 32.01, - ["CD"] = 0 - }, - [57] = - { - ["X"] = 38.58, - ["Y"] = 31.7, - ["CD"] = 0 - }, - [58] = - { - ["X"] = 37.15, - ["Y"] = 31.49, - ["CD"] = 0 - }, - [59] = - { - ["X"] = 37.81, - ["Y"] = 33.03, - ["CD"] = 0 - }, - [60] = - { - ["X"] = 38.91, - ["Y"] = 33.95, - ["CD"] = 0 - }, - [61] = - { - ["X"] = 46.87, - ["Y"] = 32.18, - ["CD"] = 0 - }, - [62] = - { - ["X"] = 46.45, - ["Y"] = 33.24, - ["CD"] = 0 - }, - [63] = - { - ["X"] = 42.85, - ["Y"] = 29.84, - ["CD"] = 0 - }, - [64] = - { - ["X"] = 42.2, - ["Y"] = 30.7, - ["CD"] = 0 - }, - [65] = - { - ["X"] = 41.42, - ["Y"] = 31.81, - ["CD"] = 0 - }, - [66] = - { - ["X"] = 40.38, - ["Y"] = 32.88, - ["CD"] = 0 - }, - [67] = - { - ["X"] = 40.63, - ["Y"] = 35.62, - ["CD"] = 0 - }, - [68] = - { - ["X"] = 43.97, - ["Y"] = 31.84, - ["CD"] = 0 - }, - [69] = - { - ["X"] = 45.87, - ["Y"] = 28.71, - ["CD"] = 0 - }, - [70] = - { - ["X"] = 44.62, - ["Y"] = 30.16, - ["CD"] = 0 - }, - [71] = - { - ["X"] = 44.16, - ["Y"] = 31.22, - ["CD"] = 0 - }, - [72] = - { - ["X"] = 45.01, - ["Y"] = 33.8, - ["CD"] = 0 - }, - [73] = - { - ["X"] = 44.82, - ["Y"] = 35.66, - ["CD"] = 0 - }, - [74] = - { - ["X"] = 44.33, - ["Y"] = 38.18, - ["CD"] = 0 - }, - [75] = - { - ["X"] = 44.13, - ["Y"] = 36.79, - ["CD"] = 0 - }, - [76] = - { - ["X"] = 43.29, - ["Y"] = 36.63, - ["CD"] = 0 - }, - [77] = - { - ["X"] = 58.5, - ["Y"] = 44.5, - ["CD"] = 0 - }, - [78] = - { - ["X"] = 56.98, - ["Y"] = 46.04, - ["CD"] = 0 - }, - [79] = - { - ["X"] = 56.87, - ["Y"] = 47.43, - ["CD"] = 0 - }, - [80] = - { - ["X"] = 58.08, - ["Y"] = 48.77, - ["CD"] = 0 - }, - [81] = - { - ["X"] = 58.1, - ["Y"] = 47.82, - ["CD"] = 0 - }, - [82] = - { - ["X"] = 59.82, - ["Y"] = 48.78, - ["CD"] = 0 - }, - [83] = - { - ["X"] = 61.93, - ["Y"] = 50.54, - ["CD"] = 0 - }, - [84] = - { - ["X"] = 60.81, - ["Y"] = 49.52, - ["CD"] = 0 - }, - [85] = - { - ["X"] = 60.13, - ["Y"] = 50.52, - ["CD"] = 0 - }, - [86] = - { - ["X"] = 58.7, - ["Y"] = 50.72, - ["CD"] = 0 - }, - [87] = - { - ["X"] = 57.92, - ["Y"] = 51.18, - ["CD"] = 0 - }, - [88] = - { - ["X"] = 56.76, - ["Y"] = 51.49, - ["CD"] = 0 - }, - [89] = - { - ["X"] = 57.02, - ["Y"] = 53.1, - ["CD"] = 0 - }, - [90] = - { - ["X"] = 60.5, - ["Y"] = 55.71, - ["CD"] = 0 - }, - [91] = - { - ["X"] = 61.23, - ["Y"] = 55.29, - ["CD"] = 0 - }, - [92] = - { - ["X"] = 62.2, - ["Y"] = 54.63, - ["CD"] = 0 - }, - [93] = - { - ["X"] = 62.35, - ["Y"] = 53.03, - ["CD"] = 0 - }, - [94] = - { - ["X"] = 61.71, - ["Y"] = 51.69, - ["CD"] = 0 - }, - [95] = - { - ["X"] = 62.88, - ["Y"] = 48.79, - ["CD"] = 0 - }, - [96] = - { - ["X"] = 59.03, - ["Y"] = 16.36, - ["CD"] = 0 - }, - [97] = - { - ["X"] = 56.05, - ["Y"] = 52.99, - ["CD"] = 0 - }, - [98] = - { - ["X"] = 54.9, - ["Y"] = 54.78, - ["CD"] = 0 - }, - [99] = - { - ["X"] = 46.89, - ["Y"] = 48.44, - ["CD"] = 0 - }, - [100] = - { - ["X"] = 48.12, - ["Y"] = 52.99, - ["CD"] = 0 - }, - [101] = - { - ["X"] = 50.61, - ["Y"] = 58.06, - ["CD"] = 0 - }, - [102] = - { - ["X"] = 65.48, - ["Y"] = 47.52, - ["CD"] = 0 - }, - [103] = - { - ["X"] = 66.67, - ["Y"] = 48.25, - ["CD"] = 0 - }, - [104] = - { - ["X"] = 67.25, - ["Y"] = 46.04, - ["CD"] = 0 - }, - [105] = - { - ["X"] = 67.21, - ["Y"] = 43.27, - ["CD"] = 0 - }, - [106] = - { - ["X"] = 56.87, - ["Y"] = 48.7, - ["CD"] = 0 - }, - [107] = - { - ["X"] = 47.7, - ["Y"] = 38.02, - ["CD"] = 0 - }, - [108] = - { - ["X"] = 45.05, - ["Y"] = 37.62, - ["CD"] = 0 - }, - [109] = - { - ["X"] = 48.4, - ["Y"] = 32.78, - ["CD"] = 0 - }, - [110] = - { - ["X"] = 51.98, - ["Y"] = 31.45, - ["CD"] = 0 - }, - [111] = - { - ["X"] = 57.2, - ["Y"] = 27.62, - ["CD"] = 0 - }, - [112] = - { - ["X"] = 61.29, - ["Y"] = 29.89, - ["CD"] = 0 - }, - [113] = - { - ["X"] = 64.67, - ["Y"] = 31.6, - ["CD"] = 0 - }, - [114] = - { - ["X"] = 60.67, - ["Y"] = 23.86, - ["CD"] = 0 - }, - [115] = - { - ["X"] = 62.79, - ["Y"] = 25.61, - ["CD"] = 0 - }, - [116] = - { - ["X"] = 66.4, - ["Y"] = 36.85, - ["CD"] = 0 - }, - [117] = - { - ["X"] = 63.3, - ["Y"] = 35.71, - ["CD"] = 0 - }, - [118] = - { - ["X"] = 54.11, - ["Y"] = 30.37, - ["CD"] = 0 - }, - [119] = - { - ["X"] = 57.92, - ["Y"] = 33.75, - ["CD"] = 0 - }, - [120] = - { - ["X"] = 42.81, - ["Y"] = 10.38, - ["CD"] = 0 - }, - [121] = - { - ["X"] = 48.74, - ["Y"] = 10.63, - ["CD"] = 0 - }, - [122] = - { - ["X"] = 40.78, - ["Y"] = 11.45, - ["CD"] = 0 - }, - [123] = - { - ["X"] = 39.74, - ["Y"] = 13.5, - ["CD"] = 0 - }, - [124] = - { - ["X"] = 35.84, - ["Y"] = 15.6, - ["CD"] = 0 - }, - [125] = - { - ["X"] = 35.53, - ["Y"] = 22.66, - ["CD"] = 0 - }, - [126] = - { - ["X"] = 35.42, - ["Y"] = 27.64, - ["CD"] = 0 - }, - [127] = - { - ["X"] = 32.97, - ["Y"] = 32.94, - ["CD"] = 0 - }, - [128] = - { - ["X"] = 38.01, - ["Y"] = 35.61, - ["CD"] = 0 - }, - [129] = - { - ["X"] = 52.67, - ["Y"] = 26.74, - ["CD"] = 0 - }, - [130] = - { - ["X"] = 54.31, - ["Y"] = 17.67, - ["CD"] = 0 - }, - [131] = - { - ["X"] = 56.06, - ["Y"] = 19.39, - ["CD"] = 0 - }, - [132] = - { - ["X"] = 51.37, - ["Y"] = 15.24, - ["CD"] = 0 - }, - [133] = - { - ["X"] = 45.71, - ["Y"] = 15.14, - ["CD"] = 0 - }, - [134] = - { - ["X"] = 46.61, - ["Y"] = 16.25, - ["CD"] = 0 - }, - [135] = - { - ["X"] = 48.01, - ["Y"] = 12.51, - ["CD"] = 0 - }, - [136] = - { - ["X"] = 44.59, - ["Y"] = 32.83, - ["CD"] = 0 - }, - [137] = - { - ["X"] = 41.47, - ["Y"] = 33.61, - ["CD"] = 0 - }, - [138] = - { - ["X"] = 42.3, - ["Y"] = 36.7, - ["CD"] = 0 - }, - [139] = - { - ["X"] = 40.85, - ["Y"] = 38.78, - ["CD"] = 0 - }, - [140] = - { - ["X"] = 39.97, - ["Y"] = 53.3, - ["CD"] = 0 - }, - [141] = - { - ["X"] = 48.93, - ["Y"] = 43.77, - ["CD"] = 0 - }, - [142] = - { - ["X"] = 60.71, - ["Y"] = 36.87, - ["CD"] = 0 - }, - [143] = - { - ["X"] = 61.83, - ["Y"] = 39.44, - ["CD"] = 0 - }, - [144] = - { - ["X"] = 56.71, - ["Y"] = 64.6, - ["CD"] = 0 - }, - [145] = - { - ["X"] = 57, - ["Y"] = 62.25, - ["CD"] = 0 - }, - [146] = - { - ["X"] = 62.66, - ["Y"] = 54.86, - ["CD"] = 0 - }, - [147] = - { - ["X"] = 61.84, - ["Y"] = 55.45, - ["CD"] = 0 - }, - [148] = - { - ["X"] = 56.88, - ["Y"] = 61.05, - ["CD"] = 0 - }, - [149] = - { - ["X"] = 52.56, - ["Y"] = 60.68, - ["CD"] = 0 - }, - [150] = - { - ["X"] = 46, - ["Y"] = 61.02, - ["CD"] = 0 -} +aura_env.herbs = { + [1] = { + ["X"] = 52.44, + ["Y"] = 12.55, + ["CD"] = 0, + }, + [2] = { + ["X"] = 43.81, + ["Y"] = 13.48, + ["CD"] = 0, + }, + [3] = { + ["X"] = 43.5, + ["Y"] = 11.55, + ["CD"] = 0, + }, + [4] = { + ["X"] = 43.54, + ["Y"] = 10.41, + ["CD"] = 0, + }, + [5] = { + ["X"] = 44.04, + ["Y"] = 10.02, + ["CD"] = 0, + }, + [6] = { + ["X"] = 45.05, + ["Y"] = 8.91, + ["CD"] = 0, + }, + [7] = { + ["X"] = 45.31, + ["Y"] = 9.62, + ["CD"] = 0, + }, + [8] = { + ["X"] = 50.71, + ["Y"] = 12.66, + ["CD"] = 0, + }, + [9] = { + ["X"] = 51.42, + ["Y"] = 10.39, + ["CD"] = 0, + }, + [10] = { + ["X"] = 51.03, + ["Y"] = 11.49, + ["CD"] = 0, + }, + [11] = { + ["X"] = 52.24, + ["Y"] = 13.93, + ["CD"] = 0, + }, + [12] = { + ["X"] = 53.1, + ["Y"] = 13.66, + ["CD"] = 0, + }, + [13] = { + ["X"] = 54.52, + ["Y"] = 13.09, + ["CD"] = 0, + }, + [14] = { + ["X"] = 53.98, + ["Y"] = 15.09, + ["CD"] = 0, + }, + [15] = { + ["X"] = 57.19, + ["Y"] = 18.32, + ["CD"] = 0, + }, + [16] = { + ["X"] = 57.95, + ["Y"] = 19.85, + ["CD"] = 0, + }, + [17] = { + ["X"] = 61.05, + ["Y"] = 17.05, + ["CD"] = 0, + }, + [18] = { + ["X"] = 62.21, + ["Y"] = 16.11, + ["CD"] = 0, + }, + [19] = { + ["X"] = 62.26, + ["Y"] = 17.91, + ["CD"] = 0, + }, + [20] = { + ["X"] = 61.86, + ["Y"] = 18.55, + ["CD"] = 0, + }, + [21] = { + ["X"] = 59.87, + ["Y"] = 20.07, + ["CD"] = 0, + }, + [22] = { + ["X"] = 60.17, + ["Y"] = 20.82, + ["CD"] = 0, + }, + [23] = { + ["X"] = 60.31, + ["Y"] = 21.25, + ["CD"] = 0, + }, + [24] = { + ["X"] = 58.31, + ["Y"] = 24.61, + ["CD"] = 0, + }, + [25] = { + ["X"] = 58.91, + ["Y"] = 22.75, + ["CD"] = 0, + }, + [26] = { + ["X"] = 59.92, + ["Y"] = 22.74, + ["CD"] = 0, + }, + [27] = { + ["X"] = 61.61, + ["Y"] = 26.13, + ["CD"] = 0, + }, + [28] = { + ["X"] = 61.21, + ["Y"] = 27.72, + ["CD"] = 0, + }, + [29] = { + ["X"] = 61.95, + ["Y"] = 30.74, + ["CD"] = 0, + }, + [30] = { + ["X"] = 63.08, + ["Y"] = 30.76, + ["CD"] = 0, + }, + [31] = { + ["X"] = 62.57, + ["Y"] = 28.52, + ["CD"] = 0, + }, + [32] = { + ["X"] = 64.55, + ["Y"] = 27.75, + ["CD"] = 0, + }, + [33] = { + ["X"] = 65.58, + ["Y"] = 38.31, + ["CD"] = 0, + }, + [34] = { + ["X"] = 66.38, + ["Y"] = 38.49, + ["CD"] = 0, + }, + [35] = { + ["X"] = 66.44, + ["Y"] = 35.73, + ["CD"] = 0, + }, + [36] = { + ["X"] = 65.28, + ["Y"] = 35.11, + ["CD"] = 0, + }, + [37] = { + ["X"] = 64.73, + ["Y"] = 34.57, + ["CD"] = 0, + }, + [38] = { + ["X"] = 63.54, + ["Y"] = 34.19, + ["CD"] = 0, + }, + [39] = { + ["X"] = 64.81, + ["Y"] = 45.69, + ["CD"] = 0, + }, + [40] = { + ["X"] = 63.1, + ["Y"] = 46.83, + ["CD"] = 0, + }, + [41] = { + ["X"] = 59.34, + ["Y"] = 49.85, + ["CD"] = 0, + }, + [42] = { + ["X"] = 56.61, + ["Y"] = 52.15, + ["CD"] = 0, + }, + [43] = { + ["X"] = 53.11, + ["Y"] = 54.38, + ["CD"] = 0, + }, + [44] = { + ["X"] = 51.66, + ["Y"] = 55.68, + ["CD"] = 0, + }, + [45] = { + ["X"] = 50.1, + ["Y"] = 55.25, + ["CD"] = 0, + }, + [46] = { + ["X"] = 50.05, + ["Y"] = 56.35, + ["CD"] = 0, + }, + [47] = { + ["X"] = 49.08, + ["Y"] = 55.87, + ["CD"] = 0, + }, + [48] = { + ["X"] = 36.28, + ["Y"] = 21.97, + ["CD"] = 0, + }, + [49] = { + ["X"] = 36.07, + ["Y"] = 23.09, + ["CD"] = 0, + }, + [50] = { + ["X"] = 35.3, + ["Y"] = 23.32, + ["CD"] = 0, + }, + [51] = { + ["X"] = 35.24, + ["Y"] = 25.27, + ["CD"] = 0, + }, + [52] = { + ["X"] = 35.84, + ["Y"] = 26.66, + ["CD"] = 0, + }, + [53] = { + ["X"] = 35.28, + ["Y"] = 28.34, + ["CD"] = 0, + }, + [54] = { + ["X"] = 38.92, + ["Y"] = 33.69, + ["CD"] = 0, + }, + [55] = { + ["X"] = 38.76, + ["Y"] = 32.81, + ["CD"] = 0, + }, + [56] = { + ["X"] = 39.8, + ["Y"] = 32.01, + ["CD"] = 0, + }, + [57] = { + ["X"] = 38.58, + ["Y"] = 31.7, + ["CD"] = 0, + }, + [58] = { + ["X"] = 37.15, + ["Y"] = 31.49, + ["CD"] = 0, + }, + [59] = { + ["X"] = 37.81, + ["Y"] = 33.03, + ["CD"] = 0, + }, + [60] = { + ["X"] = 38.91, + ["Y"] = 33.95, + ["CD"] = 0, + }, + [61] = { + ["X"] = 46.87, + ["Y"] = 32.18, + ["CD"] = 0, + }, + [62] = { + ["X"] = 46.45, + ["Y"] = 33.24, + ["CD"] = 0, + }, + [63] = { + ["X"] = 42.85, + ["Y"] = 29.84, + ["CD"] = 0, + }, + [64] = { + ["X"] = 42.2, + ["Y"] = 30.7, + ["CD"] = 0, + }, + [65] = { + ["X"] = 41.42, + ["Y"] = 31.81, + ["CD"] = 0, + }, + [66] = { + ["X"] = 40.38, + ["Y"] = 32.88, + ["CD"] = 0, + }, + [67] = { + ["X"] = 40.63, + ["Y"] = 35.62, + ["CD"] = 0, + }, + [68] = { + ["X"] = 43.97, + ["Y"] = 31.84, + ["CD"] = 0, + }, + [69] = { + ["X"] = 45.87, + ["Y"] = 28.71, + ["CD"] = 0, + }, + [70] = { + ["X"] = 44.62, + ["Y"] = 30.16, + ["CD"] = 0, + }, + [71] = { + ["X"] = 44.16, + ["Y"] = 31.22, + ["CD"] = 0, + }, + [72] = { + ["X"] = 45.01, + ["Y"] = 33.8, + ["CD"] = 0, + }, + [73] = { + ["X"] = 44.82, + ["Y"] = 35.66, + ["CD"] = 0, + }, + [74] = { + ["X"] = 44.33, + ["Y"] = 38.18, + ["CD"] = 0, + }, + [75] = { + ["X"] = 44.13, + ["Y"] = 36.79, + ["CD"] = 0, + }, + [76] = { + ["X"] = 43.29, + ["Y"] = 36.63, + ["CD"] = 0, + }, + [77] = { + ["X"] = 58.5, + ["Y"] = 44.5, + ["CD"] = 0, + }, + [78] = { + ["X"] = 56.98, + ["Y"] = 46.04, + ["CD"] = 0, + }, + [79] = { + ["X"] = 56.87, + ["Y"] = 47.43, + ["CD"] = 0, + }, + [80] = { + ["X"] = 58.08, + ["Y"] = 48.77, + ["CD"] = 0, + }, + [81] = { + ["X"] = 58.1, + ["Y"] = 47.82, + ["CD"] = 0, + }, + [82] = { + ["X"] = 59.82, + ["Y"] = 48.78, + ["CD"] = 0, + }, + [83] = { + ["X"] = 61.93, + ["Y"] = 50.54, + ["CD"] = 0, + }, + [84] = { + ["X"] = 60.81, + ["Y"] = 49.52, + ["CD"] = 0, + }, + [85] = { + ["X"] = 60.13, + ["Y"] = 50.52, + ["CD"] = 0, + }, + [86] = { + ["X"] = 58.7, + ["Y"] = 50.72, + ["CD"] = 0, + }, + [87] = { + ["X"] = 57.92, + ["Y"] = 51.18, + ["CD"] = 0, + }, + [88] = { + ["X"] = 56.76, + ["Y"] = 51.49, + ["CD"] = 0, + }, + [89] = { + ["X"] = 57.02, + ["Y"] = 53.1, + ["CD"] = 0, + }, + [90] = { + ["X"] = 60.5, + ["Y"] = 55.71, + ["CD"] = 0, + }, + [91] = { + ["X"] = 61.23, + ["Y"] = 55.29, + ["CD"] = 0, + }, + [92] = { + ["X"] = 62.2, + ["Y"] = 54.63, + ["CD"] = 0, + }, + [93] = { + ["X"] = 62.35, + ["Y"] = 53.03, + ["CD"] = 0, + }, + [94] = { + ["X"] = 61.71, + ["Y"] = 51.69, + ["CD"] = 0, + }, + [95] = { + ["X"] = 62.88, + ["Y"] = 48.79, + ["CD"] = 0, + }, + [96] = { + ["X"] = 59.03, + ["Y"] = 16.36, + ["CD"] = 0, + }, + [97] = { + ["X"] = 56.05, + ["Y"] = 52.99, + ["CD"] = 0, + }, + [98] = { + ["X"] = 54.9, + ["Y"] = 54.78, + ["CD"] = 0, + }, + [99] = { + ["X"] = 46.89, + ["Y"] = 48.44, + ["CD"] = 0, + }, + [100] = { + ["X"] = 48.12, + ["Y"] = 52.99, + ["CD"] = 0, + }, + [101] = { + ["X"] = 50.61, + ["Y"] = 58.06, + ["CD"] = 0, + }, + [102] = { + ["X"] = 65.48, + ["Y"] = 47.52, + ["CD"] = 0, + }, + [103] = { + ["X"] = 66.67, + ["Y"] = 48.25, + ["CD"] = 0, + }, + [104] = { + ["X"] = 67.25, + ["Y"] = 46.04, + ["CD"] = 0, + }, + [105] = { + ["X"] = 67.21, + ["Y"] = 43.27, + ["CD"] = 0, + }, + [106] = { + ["X"] = 56.87, + ["Y"] = 48.7, + ["CD"] = 0, + }, + [107] = { + ["X"] = 47.7, + ["Y"] = 38.02, + ["CD"] = 0, + }, + [108] = { + ["X"] = 45.05, + ["Y"] = 37.62, + ["CD"] = 0, + }, + [109] = { + ["X"] = 48.4, + ["Y"] = 32.78, + ["CD"] = 0, + }, + [110] = { + ["X"] = 51.98, + ["Y"] = 31.45, + ["CD"] = 0, + }, + [111] = { + ["X"] = 57.2, + ["Y"] = 27.62, + ["CD"] = 0, + }, + [112] = { + ["X"] = 61.29, + ["Y"] = 29.89, + ["CD"] = 0, + }, + [113] = { + ["X"] = 64.67, + ["Y"] = 31.6, + ["CD"] = 0, + }, + [114] = { + ["X"] = 60.67, + ["Y"] = 23.86, + ["CD"] = 0, + }, + [115] = { + ["X"] = 62.79, + ["Y"] = 25.61, + ["CD"] = 0, + }, + [116] = { + ["X"] = 66.4, + ["Y"] = 36.85, + ["CD"] = 0, + }, + [117] = { + ["X"] = 63.3, + ["Y"] = 35.71, + ["CD"] = 0, + }, + [118] = { + ["X"] = 54.11, + ["Y"] = 30.37, + ["CD"] = 0, + }, + [119] = { + ["X"] = 57.92, + ["Y"] = 33.75, + ["CD"] = 0, + }, + [120] = { + ["X"] = 42.81, + ["Y"] = 10.38, + ["CD"] = 0, + }, + [121] = { + ["X"] = 48.74, + ["Y"] = 10.63, + ["CD"] = 0, + }, + [122] = { + ["X"] = 40.78, + ["Y"] = 11.45, + ["CD"] = 0, + }, + [123] = { + ["X"] = 39.74, + ["Y"] = 13.5, + ["CD"] = 0, + }, + [124] = { + ["X"] = 35.84, + ["Y"] = 15.6, + ["CD"] = 0, + }, + [125] = { + ["X"] = 35.53, + ["Y"] = 22.66, + ["CD"] = 0, + }, + [126] = { + ["X"] = 35.42, + ["Y"] = 27.64, + ["CD"] = 0, + }, + [127] = { + ["X"] = 32.97, + ["Y"] = 32.94, + ["CD"] = 0, + }, + [128] = { + ["X"] = 38.01, + ["Y"] = 35.61, + ["CD"] = 0, + }, + [129] = { + ["X"] = 52.67, + ["Y"] = 26.74, + ["CD"] = 0, + }, + [130] = { + ["X"] = 54.31, + ["Y"] = 17.67, + ["CD"] = 0, + }, + [131] = { + ["X"] = 56.06, + ["Y"] = 19.39, + ["CD"] = 0, + }, + [132] = { + ["X"] = 51.37, + ["Y"] = 15.24, + ["CD"] = 0, + }, + [133] = { + ["X"] = 45.71, + ["Y"] = 15.14, + ["CD"] = 0, + }, + [134] = { + ["X"] = 46.61, + ["Y"] = 16.25, + ["CD"] = 0, + }, + [135] = { + ["X"] = 48.01, + ["Y"] = 12.51, + ["CD"] = 0, + }, + [136] = { + ["X"] = 44.59, + ["Y"] = 32.83, + ["CD"] = 0, + }, + [137] = { + ["X"] = 41.47, + ["Y"] = 33.61, + ["CD"] = 0, + }, + [138] = { + ["X"] = 42.3, + ["Y"] = 36.7, + ["CD"] = 0, + }, + [139] = { + ["X"] = 40.85, + ["Y"] = 38.78, + ["CD"] = 0, + }, + [140] = { + ["X"] = 39.97, + ["Y"] = 53.3, + ["CD"] = 0, + }, + [141] = { + ["X"] = 48.93, + ["Y"] = 43.77, + ["CD"] = 0, + }, + [142] = { + ["X"] = 60.71, + ["Y"] = 36.87, + ["CD"] = 0, + }, + [143] = { + ["X"] = 61.83, + ["Y"] = 39.44, + ["CD"] = 0, + }, + [144] = { + ["X"] = 56.71, + ["Y"] = 64.6, + ["CD"] = 0, + }, + [145] = { + ["X"] = 57, + ["Y"] = 62.25, + ["CD"] = 0, + }, + [146] = { + ["X"] = 62.66, + ["Y"] = 54.86, + ["CD"] = 0, + }, + [147] = { + ["X"] = 61.84, + ["Y"] = 55.45, + ["CD"] = 0, + }, + [148] = { + ["X"] = 56.88, + ["Y"] = 61.05, + ["CD"] = 0, + }, + [149] = { + ["X"] = 52.56, + ["Y"] = 60.68, + ["CD"] = 0, + }, + [150] = { + ["X"] = 46, + ["Y"] = 61.02, + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 50 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() - aura_env.minID = - { + aura_env.minID = { ["X"] = 0, ["Y"] = 0, ["D"] = 1000, - ["ID"] = 0 + ["ID"] = 0, } local pX = GetPlayerMapPosition("player") or 0 local pY = select(2, GetPlayerMapPosition("player")) or 0 pX, pY = pX * 100, pY * 100 - for k,v in ipairs(aura_env.herbs) do + for k, v in ipairs(aura_env.herbs) do local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] if cd == 0 then local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) if hyp < aura_env.minID["D"] then aura_env.minID["X"] = hX aura_env.minID["Y"] = hY @@ -930,4 +778,4 @@ aura_env.GetClosestHerb = function() end end return aura_env.minID["ID"] -end \ No newline at end of file +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Azshara's Veil.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Azshara's Veil.lua index 95b3ec7..2d3435a 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Azshara's Veil.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Azshara's Veil.lua @@ -1,519 +1,436 @@ -aura_env.herbs = -{ - [1] = - { - ["X"] = 39.26, - ["Y"] = 49.83, - ["CD"] = 0 - }, - [2] = - { - ["X"] = 37.03, - ["Y"] = 50.59, - ["CD"] = 0 - }, - [3] = - { - ["X"] = 28.08, - ["Y"] = 56.13, - ["CD"] = 0 - }, - [4] = - { - ["X"] = 29.49, - ["Y"] = 55.41, - ["CD"] = 0 - }, - [5] = - { - ["X"] = 30.68, - ["Y"] = 54.32, - ["CD"] = 0 - }, - [6] = - { - ["X"] = 35.43, - ["Y"] = 50.28, - ["CD"] = 0 - }, - [7] = - { - ["X"] = 36.67, - ["Y"] = 48.79, - ["CD"] = 0 - }, - [8] = - { - ["X"] = 38.25, - ["Y"] = 48.17, - ["CD"] = 0 - }, - [9] = - { - ["X"] = 46.08, - ["Y"] = 23.02, - ["CD"] = 0 - }, - [10] = - { - ["X"] = 45.35, - ["Y"] = 21.67, - ["CD"] = 0 - }, - [11] = - { - ["X"] = 44.45, - ["Y"] = 20.35, - ["CD"] = 0 - }, - [12] = - { - ["X"] = 45.48, - ["Y"] = 19.74, - ["CD"] = 0 - }, - [13] = - { - ["X"] = 46.97, - ["Y"] = 18.39, - ["CD"] = 0 - }, - [14] = - { - ["X"] = 47.91, - ["Y"] = 17.92, - ["CD"] = 0 - }, - [15] = - { - ["X"] = 49.28, - ["Y"] = 19.47, - ["CD"] = 0 - }, - [16] = - { - ["X"] = 50.02, - ["Y"] = 21.88, - ["CD"] = 0 - }, - [17] = - { - ["X"] = 50.97, - ["Y"] = 23.78, - ["CD"] = 0 - }, - [18] = - { - ["X"] = 57.33, - ["Y"] = 24.33, - ["CD"] = 0 - }, - [19] = - { - ["X"] = 52.96, - ["Y"] = 28.43, - ["CD"] = 0 - }, - [20] = - { - ["X"] = 53.04, - ["Y"] = 26.47, - ["CD"] = 0 - }, - [21] = - { - ["X"] = 54.27, - ["Y"] = 25.68, - ["CD"] = 0 - }, - [22] = - { - ["X"] = 55.57, - ["Y"] = 26, - ["CD"] = 0 - }, - [23] = - { - ["X"] = 54.52, - ["Y"] = 26.35, - ["CD"] = 0 - }, - [24] = - { - ["X"] = 53.71, - ["Y"] = 27.51, - ["CD"] = 0 - }, - [25] = - { - ["X"] = 53.92, - ["Y"] = 30.54, - ["CD"] = 0 - }, - [26] = - { - ["X"] = 53.84, - ["Y"] = 31.85, - ["CD"] = 0 - }, - [27] = - { - ["X"] = 53.49, - ["Y"] = 33.43, - ["CD"] = 0 - }, - [28] = - { - ["X"] = 54.42, - ["Y"] = 34.99, - ["CD"] = 0 - }, - [29] = - { - ["X"] = 54.65, - ["Y"] = 37.19, - ["CD"] = 0 - }, - [30] = - { - ["X"] = 54.78, - ["Y"] = 38.61, - ["CD"] = 0 - }, - [31] = - { - ["X"] = 58.46, - ["Y"] = 42.74, - ["CD"] = 0 - }, - [32] = - { - ["X"] = 59.89, - ["Y"] = 42.95, - ["CD"] = 0 - }, - [33] = - { - ["X"] = 61.04, - ["Y"] = 43.6, - ["CD"] = 0 - }, - [34] = - { - ["X"] = 62.82, - ["Y"] = 44.77, - ["CD"] = 0 - }, - [35] = - { - ["X"] = 64.28, - ["Y"] = 47.39, - ["CD"] = 0 - }, - [36] = - { - ["X"] = 65.46, - ["Y"] = 50.29, - ["CD"] = 0 - }, - [37] = - { - ["X"] = 66.36, - ["Y"] = 51.96, - ["CD"] = 0 - }, - [38] = - { - ["X"] = 67.58, - ["Y"] = 55.86, - ["CD"] = 0 - }, - [39] = - { - ["X"] = 67.69, - ["Y"] = 57.08, - ["CD"] = 0 - }, - [40] = - { - ["X"] = 66.7, - ["Y"] = 59.1, - ["CD"] = 0 - }, - [41] = - { - ["X"] = 66.09, - ["Y"] = 61.15, - ["CD"] = 0 - }, - [42] = - { - ["X"] = 65.52, - ["Y"] = 62.29, - ["CD"] = 0 - }, - [43] = - { - ["X"] = 65.16, - ["Y"] = 62.99, - ["CD"] = 0 - }, - [44] = - { - ["X"] = 45.97, - ["Y"] = 13.34, - ["CD"] = 0 - }, - [45] = - { - ["X"] = 40.08, - ["Y"] = 15.91, - ["CD"] = 0 - }, - [46] = - { - ["X"] = 41.09, - ["Y"] = 18.18, - ["CD"] = 0 - }, - [47] = - { - ["X"] = 43.27, - ["Y"] = 19.12, - ["CD"] = 0 - }, - [48] = - { - ["X"] = 44.76, - ["Y"] = 16.28, - ["CD"] = 0 - }, - [49] = - { - ["X"] = 47.09, - ["Y"] = 16.2, - ["CD"] = 0 - }, - [50] = - { - ["X"] = 49.71, - ["Y"] = 18, - ["CD"] = 0 - }, - [51] = - { - ["X"] = 52.2, - ["Y"] = 18.56, - ["CD"] = 0 - }, - [52] = - { - ["X"] = 51.68, - ["Y"] = 21.51, - ["CD"] = 0 - }, - [53] = - { - ["X"] = 55.89, - ["Y"] = 40.14, - ["CD"] = 0 - }, - [54] = - { - ["X"] = 57.1, - ["Y"] = 41.6, - ["CD"] = 0 - }, - [55] = - { - ["X"] = 57.64, - ["Y"] = 41.94, - ["CD"] = 0 - }, - [56] = - { - ["X"] = 67.58, - ["Y"] = 52.38, - ["CD"] = 0 - }, - [57] = - { - ["X"] = 66.9, - ["Y"] = 54.24, - ["CD"] = 0 - }, - [58] = - { - ["X"] = 66.73, - ["Y"] = 56.48, - ["CD"] = 0 - }, - [59] = - { - ["X"] = 59.94, - ["Y"] = 67.07, - ["CD"] = 0 - }, - [60] = - { - ["X"] = 58.56, - ["Y"] = 67.12, - ["CD"] = 0 - }, - [61] = - { - ["X"] = 57.31, - ["Y"] = 67.5, - ["CD"] = 0 - }, - [62] = - { - ["X"] = 49.51, - ["Y"] = 58.28, - ["CD"] = 0 - }, - [63] = - { - ["X"] = 49.02, - ["Y"] = 57.03, - ["CD"] = 0 - }, - [64] = - { - ["X"] = 48.15, - ["Y"] = 55.84, - ["CD"] = 0 - }, - [65] = - { - ["X"] = 41.46, - ["Y"] = 49.57, - ["CD"] = 0 - }, - [66] = - { - ["X"] = 40, - ["Y"] = 48.65, - ["CD"] = 0 - }, - [67] = - { - ["X"] = 38.79, - ["Y"] = 48.34, - ["CD"] = 0 - }, - [68] = - { - ["X"] = 34.57, - ["Y"] = 51.11, - ["CD"] = 0 - }, - [69] = - { - ["X"] = 33.22, - ["Y"] = 52.3, - ["CD"] = 0 - }, - [70] = - { - ["X"] = 31.83, - ["Y"] = 53.23, - ["CD"] = 0 - }, - [71] = - { - ["X"] = 31.47, - ["Y"] = 53.57, - ["CD"] = 0 - }, - [72] = - { - ["X"] = 53.43, - ["Y"] = 18.24, - ["CD"] = 0 - }, - [73] = - { - ["X"] = 50.1, - ["Y"] = 11.22, - ["CD"] = 0 - }, - [74] = - { - ["X"] = 51.42, - ["Y"] = 23.49, - ["CD"] = 0 - }, - [75] = - { - ["X"] = 44.44, - ["Y"] = 13.95, - ["CD"] = 0 - }, - [76] = - { - ["X"] = 43.51, - ["Y"] = 17.14, - ["CD"] = 0 - }, - [77] = - { - ["X"] = 41.16, - ["Y"] = 49.52, - ["CD"] = 0 - }, - [78] = - { - ["X"] = 46.7, - ["Y"] = 53.95, - ["CD"] = 0 - }, - [79] = - { - ["X"] = 58.72, - ["Y"] = 67.38, - ["CD"] = 0 - }, - [80] = - { - ["X"] = 56.91, - ["Y"] = 41.1, - ["CD"] = 0 - }, - [81] = - { - ["X"] = 68.57, - ["Y"] = 51.75, - ["CD"] = 0 - } +aura_env.herbs = { + [1] = { + ["X"] = 39.26, + ["Y"] = 49.83, + ["CD"] = 0, + }, + [2] = { + ["X"] = 37.03, + ["Y"] = 50.59, + ["CD"] = 0, + }, + [3] = { + ["X"] = 28.08, + ["Y"] = 56.13, + ["CD"] = 0, + }, + [4] = { + ["X"] = 29.49, + ["Y"] = 55.41, + ["CD"] = 0, + }, + [5] = { + ["X"] = 30.68, + ["Y"] = 54.32, + ["CD"] = 0, + }, + [6] = { + ["X"] = 35.43, + ["Y"] = 50.28, + ["CD"] = 0, + }, + [7] = { + ["X"] = 36.67, + ["Y"] = 48.79, + ["CD"] = 0, + }, + [8] = { + ["X"] = 38.25, + ["Y"] = 48.17, + ["CD"] = 0, + }, + [9] = { + ["X"] = 46.08, + ["Y"] = 23.02, + ["CD"] = 0, + }, + [10] = { + ["X"] = 45.35, + ["Y"] = 21.67, + ["CD"] = 0, + }, + [11] = { + ["X"] = 44.45, + ["Y"] = 20.35, + ["CD"] = 0, + }, + [12] = { + ["X"] = 45.48, + ["Y"] = 19.74, + ["CD"] = 0, + }, + [13] = { + ["X"] = 46.97, + ["Y"] = 18.39, + ["CD"] = 0, + }, + [14] = { + ["X"] = 47.91, + ["Y"] = 17.92, + ["CD"] = 0, + }, + [15] = { + ["X"] = 49.28, + ["Y"] = 19.47, + ["CD"] = 0, + }, + [16] = { + ["X"] = 50.02, + ["Y"] = 21.88, + ["CD"] = 0, + }, + [17] = { + ["X"] = 50.97, + ["Y"] = 23.78, + ["CD"] = 0, + }, + [18] = { + ["X"] = 57.33, + ["Y"] = 24.33, + ["CD"] = 0, + }, + [19] = { + ["X"] = 52.96, + ["Y"] = 28.43, + ["CD"] = 0, + }, + [20] = { + ["X"] = 53.04, + ["Y"] = 26.47, + ["CD"] = 0, + }, + [21] = { + ["X"] = 54.27, + ["Y"] = 25.68, + ["CD"] = 0, + }, + [22] = { + ["X"] = 55.57, + ["Y"] = 26, + ["CD"] = 0, + }, + [23] = { + ["X"] = 54.52, + ["Y"] = 26.35, + ["CD"] = 0, + }, + [24] = { + ["X"] = 53.71, + ["Y"] = 27.51, + ["CD"] = 0, + }, + [25] = { + ["X"] = 53.92, + ["Y"] = 30.54, + ["CD"] = 0, + }, + [26] = { + ["X"] = 53.84, + ["Y"] = 31.85, + ["CD"] = 0, + }, + [27] = { + ["X"] = 53.49, + ["Y"] = 33.43, + ["CD"] = 0, + }, + [28] = { + ["X"] = 54.42, + ["Y"] = 34.99, + ["CD"] = 0, + }, + [29] = { + ["X"] = 54.65, + ["Y"] = 37.19, + ["CD"] = 0, + }, + [30] = { + ["X"] = 54.78, + ["Y"] = 38.61, + ["CD"] = 0, + }, + [31] = { + ["X"] = 58.46, + ["Y"] = 42.74, + ["CD"] = 0, + }, + [32] = { + ["X"] = 59.89, + ["Y"] = 42.95, + ["CD"] = 0, + }, + [33] = { + ["X"] = 61.04, + ["Y"] = 43.6, + ["CD"] = 0, + }, + [34] = { + ["X"] = 62.82, + ["Y"] = 44.77, + ["CD"] = 0, + }, + [35] = { + ["X"] = 64.28, + ["Y"] = 47.39, + ["CD"] = 0, + }, + [36] = { + ["X"] = 65.46, + ["Y"] = 50.29, + ["CD"] = 0, + }, + [37] = { + ["X"] = 66.36, + ["Y"] = 51.96, + ["CD"] = 0, + }, + [38] = { + ["X"] = 67.58, + ["Y"] = 55.86, + ["CD"] = 0, + }, + [39] = { + ["X"] = 67.69, + ["Y"] = 57.08, + ["CD"] = 0, + }, + [40] = { + ["X"] = 66.7, + ["Y"] = 59.1, + ["CD"] = 0, + }, + [41] = { + ["X"] = 66.09, + ["Y"] = 61.15, + ["CD"] = 0, + }, + [42] = { + ["X"] = 65.52, + ["Y"] = 62.29, + ["CD"] = 0, + }, + [43] = { + ["X"] = 65.16, + ["Y"] = 62.99, + ["CD"] = 0, + }, + [44] = { + ["X"] = 45.97, + ["Y"] = 13.34, + ["CD"] = 0, + }, + [45] = { + ["X"] = 40.08, + ["Y"] = 15.91, + ["CD"] = 0, + }, + [46] = { + ["X"] = 41.09, + ["Y"] = 18.18, + ["CD"] = 0, + }, + [47] = { + ["X"] = 43.27, + ["Y"] = 19.12, + ["CD"] = 0, + }, + [48] = { + ["X"] = 44.76, + ["Y"] = 16.28, + ["CD"] = 0, + }, + [49] = { + ["X"] = 47.09, + ["Y"] = 16.2, + ["CD"] = 0, + }, + [50] = { + ["X"] = 49.71, + ["Y"] = 18, + ["CD"] = 0, + }, + [51] = { + ["X"] = 52.2, + ["Y"] = 18.56, + ["CD"] = 0, + }, + [52] = { + ["X"] = 51.68, + ["Y"] = 21.51, + ["CD"] = 0, + }, + [53] = { + ["X"] = 55.89, + ["Y"] = 40.14, + ["CD"] = 0, + }, + [54] = { + ["X"] = 57.1, + ["Y"] = 41.6, + ["CD"] = 0, + }, + [55] = { + ["X"] = 57.64, + ["Y"] = 41.94, + ["CD"] = 0, + }, + [56] = { + ["X"] = 67.58, + ["Y"] = 52.38, + ["CD"] = 0, + }, + [57] = { + ["X"] = 66.9, + ["Y"] = 54.24, + ["CD"] = 0, + }, + [58] = { + ["X"] = 66.73, + ["Y"] = 56.48, + ["CD"] = 0, + }, + [59] = { + ["X"] = 59.94, + ["Y"] = 67.07, + ["CD"] = 0, + }, + [60] = { + ["X"] = 58.56, + ["Y"] = 67.12, + ["CD"] = 0, + }, + [61] = { + ["X"] = 57.31, + ["Y"] = 67.5, + ["CD"] = 0, + }, + [62] = { + ["X"] = 49.51, + ["Y"] = 58.28, + ["CD"] = 0, + }, + [63] = { + ["X"] = 49.02, + ["Y"] = 57.03, + ["CD"] = 0, + }, + [64] = { + ["X"] = 48.15, + ["Y"] = 55.84, + ["CD"] = 0, + }, + [65] = { + ["X"] = 41.46, + ["Y"] = 49.57, + ["CD"] = 0, + }, + [66] = { + ["X"] = 40, + ["Y"] = 48.65, + ["CD"] = 0, + }, + [67] = { + ["X"] = 38.79, + ["Y"] = 48.34, + ["CD"] = 0, + }, + [68] = { + ["X"] = 34.57, + ["Y"] = 51.11, + ["CD"] = 0, + }, + [69] = { + ["X"] = 33.22, + ["Y"] = 52.3, + ["CD"] = 0, + }, + [70] = { + ["X"] = 31.83, + ["Y"] = 53.23, + ["CD"] = 0, + }, + [71] = { + ["X"] = 31.47, + ["Y"] = 53.57, + ["CD"] = 0, + }, + [72] = { + ["X"] = 53.43, + ["Y"] = 18.24, + ["CD"] = 0, + }, + [73] = { + ["X"] = 50.1, + ["Y"] = 11.22, + ["CD"] = 0, + }, + [74] = { + ["X"] = 51.42, + ["Y"] = 23.49, + ["CD"] = 0, + }, + [75] = { + ["X"] = 44.44, + ["Y"] = 13.95, + ["CD"] = 0, + }, + [76] = { + ["X"] = 43.51, + ["Y"] = 17.14, + ["CD"] = 0, + }, + [77] = { + ["X"] = 41.16, + ["Y"] = 49.52, + ["CD"] = 0, + }, + [78] = { + ["X"] = 46.7, + ["Y"] = 53.95, + ["CD"] = 0, + }, + [79] = { + ["X"] = 58.72, + ["Y"] = 67.38, + ["CD"] = 0, + }, + [80] = { + ["X"] = 56.91, + ["Y"] = 41.1, + ["CD"] = 0, + }, + [81] = { + ["X"] = 68.57, + ["Y"] = 51.75, + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 50 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Cinderbloom.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Cinderbloom.lua index 5740373..ec5e76e 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Cinderbloom.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Cinderbloom.lua @@ -1,453 +1,381 @@ -aura_env.herbs = -{ - [1] = - { - ["X"] = 55.83, - ["Y"] = 70.82, - ["CD"] = 0 - }, - [2] = - { - ["X"] = 54.79, - ["Y"] = 69.62, - ["CD"] = 0 - }, - [3] = - { - ["X"] = 54.46, - ["Y"] = 68.85, - ["CD"] = 0 - }, - [4] = - { - ["X"] = 54.06, - ["Y"] = 67.47, - ["CD"] = 0 - }, - [5] = - { - ["X"] = 53.67, - ["Y"] = 65.79, - ["CD"] = 0 - }, - [6] = - { - ["X"] = 54.4, - ["Y"] = 64.58, - ["CD"] = 0 - }, - [7] = - { - ["X"] = 55.43, - ["Y"] = 63.88, - ["CD"] = 0 - }, - [8] = - { - ["X"] = 56.1, - ["Y"] = 64.35, - ["CD"] = 0 - }, - [9] = - { - ["X"] = 56.57, - ["Y"] = 65.06, - ["CD"] = 0 - }, - [10] = - { - ["X"] = 57.3, - ["Y"] = 65.21, - ["CD"] = 0 - }, - [11] = - { - ["X"] = 58.88, - ["Y"] = 64.48, - ["CD"] = 0 - }, - [12] = - { - ["X"] = 60.57, - ["Y"] = 63.9, - ["CD"] = 0 - }, - [13] = - { - ["X"] = 61.47, - ["Y"] = 63.7, - ["CD"] = 0 - }, - [14] = - { - ["X"] = 62.21, - ["Y"] = 63.3, - ["CD"] = 0 - }, - [15] = - { - ["X"] = 63.2, - ["Y"] = 63.12, - ["CD"] = 0 - }, - [16] = - { - ["X"] = 64.17, - ["Y"] = 62.56, - ["CD"] = 0 - }, - [17] = - { - ["X"] = 65.08, - ["Y"] = 61.77, - ["CD"] = 0 - }, - [18] = - { - ["X"] = 65.39, - ["Y"] = 60.16, - ["CD"] = 0 - }, - [19] = - { - ["X"] = 65.57, - ["Y"] = 57.98, - ["CD"] = 0 - }, - [20] = - { - ["X"] = 65.53, - ["Y"] = 55.56, - ["CD"] = 0 - }, - [21] = - { - ["X"] = 64.44, - ["Y"] = 52.37, - ["CD"] = 0 - }, - [22] = - { - ["X"] = 63.86, - ["Y"] = 50.96, - ["CD"] = 0 - }, - [23] = - { - ["X"] = 63.14, - ["Y"] = 49.74, - ["CD"] = 0 - }, - [24] = - { - ["X"] = 58.31, - ["Y"] = 47.48, - ["CD"] = 0 - }, - [25] = - { - ["X"] = 56.2, - ["Y"] = 46.51, - ["CD"] = 0 - }, - [26] = - { - ["X"] = 55.45, - ["Y"] = 47.13, - ["CD"] = 0 - }, - [27] = - { - ["X"] = 55.15, - ["Y"] = 48.26, - ["CD"] = 0 - }, - [28] = - { - ["X"] = 54.81, - ["Y"] = 49.21, - ["CD"] = 0 - }, - [29] = - { - ["X"] = 55.15, - ["Y"] = 49.72, - ["CD"] = 0 - }, - [30] = - { - ["X"] = 56.01, - ["Y"] = 50.37, - ["CD"] = 0 - }, - [31] = - { - ["X"] = 56.01, - ["Y"] = 50.37, - ["CD"] = 0 - }, - [32] = - { - ["X"] = 56.01, - ["Y"] = 50.37, - ["CD"] = 0 - }, - [33] = - { - ["X"] = 57.26, - ["Y"] = 51.69, - ["CD"] = 0 - }, - [34] = - { - ["X"] = 57.23, - ["Y"] = 53.17, - ["CD"] = 0 - }, - [35] = - { - ["X"] = 57.06, - ["Y"] = 53.85, - ["CD"] = 0 - }, - [36] = - { - ["X"] = 57.09, - ["Y"] = 54.24, - ["CD"] = 0 - }, - [37] = - { - ["X"] = 56.75, - ["Y"] = 54.17, - ["CD"] = 0 - }, - [38] = - { - ["X"] = 56.22, - ["Y"] = 53.84, - ["CD"] = 0 - }, - [39] = - { - ["X"] = 55.69, - ["Y"] = 53.19, - ["CD"] = 0 - }, - [40] = - { - ["X"] = 55.34, - ["Y"] = 53.27, - ["CD"] = 0 - }, - [41] = - { - ["X"] = 54.31, - ["Y"] = 53.97, - ["CD"] = 0 - }, - [42] = - { - ["X"] = 54.17, - ["Y"] = 53.51, - ["CD"] = 0 - }, - [43] = - { - ["X"] = 53.38, - ["Y"] = 53.84, - ["CD"] = 0 - }, - [44] = - { - ["X"] = 52.77, - ["Y"] = 53.98, - ["CD"] = 0 - }, - [45] = - { - ["X"] = 51.93, - ["Y"] = 53.19, - ["CD"] = 0 - }, - [46] = - { - ["X"] = 51.84, - ["Y"] = 52.64, - ["CD"] = 0 - }, - [47] = - { - ["X"] = 52.12, - ["Y"] = 51.32, - ["CD"] = 0 - }, - [48] = - { - ["X"] = 52.44, - ["Y"] = 49.9, - ["CD"] = 0 - }, - [49] = - { - ["X"] = 52.48, - ["Y"] = 48.98, - ["CD"] = 0 - }, - [50] = - { - ["X"] = 52.39, - ["Y"] = 48.33, - ["CD"] = 0 - }, - [51] = - { - ["X"] = 52.08, - ["Y"] = 47.18, - ["CD"] = 0 - }, - [52] = - { - ["X"] = 51.87, - ["Y"] = 46.8, - ["CD"] = 0 - }, - [53] = - { - ["X"] = 50.91, - ["Y"] = 47.03, - ["CD"] = 0 - }, - [54] = - { - ["X"] = 50.39, - ["Y"] = 46.97, - ["CD"] = 0 - }, - [55] = - { - ["X"] = 50, - ["Y"] = 46.65, - ["CD"] = 0 - }, - [56] = - { - ["X"] = 49.86, - ["Y"] = 46.22, - ["CD"] = 0 - }, - [57] = - { - ["X"] = 49.44, - ["Y"] = 46.49, - ["CD"] = 0 - }, - [58] = - { - ["X"] = 48.98, - ["Y"] = 46.35, - ["CD"] = 0 - }, - [59] = - { - ["X"] = 48.4, - ["Y"] = 45.7, - ["CD"] = 0 - }, - [60] = - { - ["X"] = 47.67, - ["Y"] = 45.04, - ["CD"] = 0 - }, - [61] = - { - ["X"] = 47.06, - ["Y"] = 44.67, - ["CD"] = 0 - }, - [62] = - { - ["X"] = 46.5, - ["Y"] = 43.44, - ["CD"] = 0 - }, - [63] = - { - ["X"] = 32.58, - ["Y"] = 38.7, - ["CD"] = 0 - }, - [64] = - { - ["X"] = 34.29, - ["Y"] = 39.32, - ["CD"] = 0 - }, - [65] = - { - ["X"] = 36.08, - ["Y"] = 39.31, - ["CD"] = 0 - }, - [66] = - { - ["X"] = 36.91, - ["Y"] = 41.58, - ["CD"] = 0 - }, - [67] = - { - ["X"] = 38.79, - ["Y"] = 40.82, - ["CD"] = 0 - }, - [68] = - { - ["X"] = 39.68, - ["Y"] = 40.87, - ["CD"] = 0 - }, - [69] = - { - ["X"] = 41.32, - ["Y"] = 41.66, - ["CD"] = 0 - }, - [70] = - { - ["X"] = 42.81, - ["Y"] = 43.91, - ["CD"] = 0 -} +aura_env.herbs = { + [1] = { + ["X"] = 55.83, + ["Y"] = 70.82, + ["CD"] = 0, + }, + [2] = { + ["X"] = 54.79, + ["Y"] = 69.62, + ["CD"] = 0, + }, + [3] = { + ["X"] = 54.46, + ["Y"] = 68.85, + ["CD"] = 0, + }, + [4] = { + ["X"] = 54.06, + ["Y"] = 67.47, + ["CD"] = 0, + }, + [5] = { + ["X"] = 53.67, + ["Y"] = 65.79, + ["CD"] = 0, + }, + [6] = { + ["X"] = 54.4, + ["Y"] = 64.58, + ["CD"] = 0, + }, + [7] = { + ["X"] = 55.43, + ["Y"] = 63.88, + ["CD"] = 0, + }, + [8] = { + ["X"] = 56.1, + ["Y"] = 64.35, + ["CD"] = 0, + }, + [9] = { + ["X"] = 56.57, + ["Y"] = 65.06, + ["CD"] = 0, + }, + [10] = { + ["X"] = 57.3, + ["Y"] = 65.21, + ["CD"] = 0, + }, + [11] = { + ["X"] = 58.88, + ["Y"] = 64.48, + ["CD"] = 0, + }, + [12] = { + ["X"] = 60.57, + ["Y"] = 63.9, + ["CD"] = 0, + }, + [13] = { + ["X"] = 61.47, + ["Y"] = 63.7, + ["CD"] = 0, + }, + [14] = { + ["X"] = 62.21, + ["Y"] = 63.3, + ["CD"] = 0, + }, + [15] = { + ["X"] = 63.2, + ["Y"] = 63.12, + ["CD"] = 0, + }, + [16] = { + ["X"] = 64.17, + ["Y"] = 62.56, + ["CD"] = 0, + }, + [17] = { + ["X"] = 65.08, + ["Y"] = 61.77, + ["CD"] = 0, + }, + [18] = { + ["X"] = 65.39, + ["Y"] = 60.16, + ["CD"] = 0, + }, + [19] = { + ["X"] = 65.57, + ["Y"] = 57.98, + ["CD"] = 0, + }, + [20] = { + ["X"] = 65.53, + ["Y"] = 55.56, + ["CD"] = 0, + }, + [21] = { + ["X"] = 64.44, + ["Y"] = 52.37, + ["CD"] = 0, + }, + [22] = { + ["X"] = 63.86, + ["Y"] = 50.96, + ["CD"] = 0, + }, + [23] = { + ["X"] = 63.14, + ["Y"] = 49.74, + ["CD"] = 0, + }, + [24] = { + ["X"] = 58.31, + ["Y"] = 47.48, + ["CD"] = 0, + }, + [25] = { + ["X"] = 56.2, + ["Y"] = 46.51, + ["CD"] = 0, + }, + [26] = { + ["X"] = 55.45, + ["Y"] = 47.13, + ["CD"] = 0, + }, + [27] = { + ["X"] = 55.15, + ["Y"] = 48.26, + ["CD"] = 0, + }, + [28] = { + ["X"] = 54.81, + ["Y"] = 49.21, + ["CD"] = 0, + }, + [29] = { + ["X"] = 55.15, + ["Y"] = 49.72, + ["CD"] = 0, + }, + [30] = { + ["X"] = 56.01, + ["Y"] = 50.37, + ["CD"] = 0, + }, + [31] = { + ["X"] = 56.01, + ["Y"] = 50.37, + ["CD"] = 0, + }, + [32] = { + ["X"] = 56.01, + ["Y"] = 50.37, + ["CD"] = 0, + }, + [33] = { + ["X"] = 57.26, + ["Y"] = 51.69, + ["CD"] = 0, + }, + [34] = { + ["X"] = 57.23, + ["Y"] = 53.17, + ["CD"] = 0, + }, + [35] = { + ["X"] = 57.06, + ["Y"] = 53.85, + ["CD"] = 0, + }, + [36] = { + ["X"] = 57.09, + ["Y"] = 54.24, + ["CD"] = 0, + }, + [37] = { + ["X"] = 56.75, + ["Y"] = 54.17, + ["CD"] = 0, + }, + [38] = { + ["X"] = 56.22, + ["Y"] = 53.84, + ["CD"] = 0, + }, + [39] = { + ["X"] = 55.69, + ["Y"] = 53.19, + ["CD"] = 0, + }, + [40] = { + ["X"] = 55.34, + ["Y"] = 53.27, + ["CD"] = 0, + }, + [41] = { + ["X"] = 54.31, + ["Y"] = 53.97, + ["CD"] = 0, + }, + [42] = { + ["X"] = 54.17, + ["Y"] = 53.51, + ["CD"] = 0, + }, + [43] = { + ["X"] = 53.38, + ["Y"] = 53.84, + ["CD"] = 0, + }, + [44] = { + ["X"] = 52.77, + ["Y"] = 53.98, + ["CD"] = 0, + }, + [45] = { + ["X"] = 51.93, + ["Y"] = 53.19, + ["CD"] = 0, + }, + [46] = { + ["X"] = 51.84, + ["Y"] = 52.64, + ["CD"] = 0, + }, + [47] = { + ["X"] = 52.12, + ["Y"] = 51.32, + ["CD"] = 0, + }, + [48] = { + ["X"] = 52.44, + ["Y"] = 49.9, + ["CD"] = 0, + }, + [49] = { + ["X"] = 52.48, + ["Y"] = 48.98, + ["CD"] = 0, + }, + [50] = { + ["X"] = 52.39, + ["Y"] = 48.33, + ["CD"] = 0, + }, + [51] = { + ["X"] = 52.08, + ["Y"] = 47.18, + ["CD"] = 0, + }, + [52] = { + ["X"] = 51.87, + ["Y"] = 46.8, + ["CD"] = 0, + }, + [53] = { + ["X"] = 50.91, + ["Y"] = 47.03, + ["CD"] = 0, + }, + [54] = { + ["X"] = 50.39, + ["Y"] = 46.97, + ["CD"] = 0, + }, + [55] = { + ["X"] = 50, + ["Y"] = 46.65, + ["CD"] = 0, + }, + [56] = { + ["X"] = 49.86, + ["Y"] = 46.22, + ["CD"] = 0, + }, + [57] = { + ["X"] = 49.44, + ["Y"] = 46.49, + ["CD"] = 0, + }, + [58] = { + ["X"] = 48.98, + ["Y"] = 46.35, + ["CD"] = 0, + }, + [59] = { + ["X"] = 48.4, + ["Y"] = 45.7, + ["CD"] = 0, + }, + [60] = { + ["X"] = 47.67, + ["Y"] = 45.04, + ["CD"] = 0, + }, + [61] = { + ["X"] = 47.06, + ["Y"] = 44.67, + ["CD"] = 0, + }, + [62] = { + ["X"] = 46.5, + ["Y"] = 43.44, + ["CD"] = 0, + }, + [63] = { + ["X"] = 32.58, + ["Y"] = 38.7, + ["CD"] = 0, + }, + [64] = { + ["X"] = 34.29, + ["Y"] = 39.32, + ["CD"] = 0, + }, + [65] = { + ["X"] = 36.08, + ["Y"] = 39.31, + ["CD"] = 0, + }, + [66] = { + ["X"] = 36.91, + ["Y"] = 41.58, + ["CD"] = 0, + }, + [67] = { + ["X"] = 38.79, + ["Y"] = 40.82, + ["CD"] = 0, + }, + [68] = { + ["X"] = 39.68, + ["Y"] = 40.87, + ["CD"] = 0, + }, + [69] = { + ["X"] = 41.32, + ["Y"] = 41.66, + ["CD"] = 0, + }, + [70] = { + ["X"] = 42.81, + ["Y"] = 43.91, + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 50 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Dreamleaf.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Dreamleaf.lua index b75f0bb..83ba647 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Dreamleaf.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Dreamleaf.lua @@ -1,1233 +1,1031 @@ -aura_env.herbs = -{ - [1] = - { - ["X"] = 61.87, - ["Y"] = 52.19, - ["CD"] = 0 - }, - [2] = - { - ["X"] = 60.2, - ["Y"] = 53.05, - ["CD"] = 0 - }, - [3] = - { - ["X"] = 60.65, - ["Y"] = 54.53, - ["CD"] = 0 - }, - [4] = - { - ["X"] = 59.47, - ["Y"] = 55.87, - ["CD"] = 0 - }, - [5] = - { - ["X"] = 56.22, - ["Y"] = 60.29, - ["CD"] = 0 - }, - [6] = - { - ["X"] = 56.95, - ["Y"] = 61.33, - ["CD"] = 0 - }, - [7] = - { - ["X"] = 56.52, - ["Y"] = 64.31, - ["CD"] = 0 - }, - [8] = - { - ["X"] = 58.38, - ["Y"] = 65.51, - ["CD"] = 0 - }, - [9] = - { - ["X"] = 56.03, - ["Y"] = 64.65, - ["CD"] = 0 - }, - [10] = - { - ["X"] = 55.53, - ["Y"] = 70.26, - ["CD"] = 0 - }, - [11] = - { - ["X"] = 57.79, - ["Y"] = 71.48, - ["CD"] = 0 - }, - [12] = - { - ["X"] = 59.03, - ["Y"] = 69.43, - ["CD"] = 0 - }, - [13] = - { - ["X"] = 57.33, - ["Y"] = 69.9, - ["CD"] = 0 - }, - [14] = - { - ["X"] = 55.39, - ["Y"] = 68.84, - ["CD"] = 0 - }, - [15] = - { - ["X"] = 55.08, - ["Y"] = 63.45, - ["CD"] = 0 - }, - [16] = - { - ["X"] = 52.34, - ["Y"] = 61.54, - ["CD"] = 0 - }, - [17] = - { - ["X"] = 51.12, - ["Y"] = 64.53, - ["CD"] = 0 - }, - [18] = - { - ["X"] = 54.28, - ["Y"] = 62.65, - ["CD"] = 0 - }, - [19] = - { - ["X"] = 54.32, - ["Y"] = 66.08, - ["CD"] = 0 - }, - [20] = - { - ["X"] = 58.53, - ["Y"] = 61.45, - ["CD"] = 0 - }, - [21] = - { - ["X"] = 58.37, - ["Y"] = 63.02, - ["CD"] = 0 - }, - [22] = - { - ["X"] = 59.24, - ["Y"] = 65.05, - ["CD"] = 0 - }, - [23] = - { - ["X"] = 62.31, - ["Y"] = 64.97, - ["CD"] = 0 - }, - [24] = - { - ["X"] = 63.37, - ["Y"] = 67.79, - ["CD"] = 0 - }, - [25] = - { - ["X"] = 64.83, - ["Y"] = 68.7, - ["CD"] = 0 - }, - [26] = - { - ["X"] = 68.37, - ["Y"] = 63.92, - ["CD"] = 0 - }, - [27] = - { - ["X"] = 66.9, - ["Y"] = 66.86, - ["CD"] = 0 - }, - [28] = - { - ["X"] = 67.08, - ["Y"] = 68.7, - ["CD"] = 0 - }, - [29] = - { - ["X"] = 66.91, - ["Y"] = 70.84, - ["CD"] = 0 - }, - [30] = - { - ["X"] = 65.61, - ["Y"] = 71.3, - ["CD"] = 0 - }, - [31] = - { - ["X"] = 65.43, - ["Y"] = 74.05, - ["CD"] = 0 - }, - [32] = - { - ["X"] = 66.57, - ["Y"] = 73.67, - ["CD"] = 0 - }, - [33] = - { - ["X"] = 68.75, - ["Y"] = 72.27, - ["CD"] = 0 - }, - [34] = - { - ["X"] = 67.56, - ["Y"] = 72.17, - ["CD"] = 0 - }, - [35] = - { - ["X"] = 68.81, - ["Y"] = 74.63, - ["CD"] = 0 - }, - [36] = - { - ["X"] = 67.77, - ["Y"] = 75.19, - ["CD"] = 0 - }, - [37] = - { - ["X"] = 67.02, - ["Y"] = 76.86, - ["CD"] = 0 - }, - [38] = - { - ["X"] = 65.7, - ["Y"] = 75.96, - ["CD"] = 0 - }, - [39] = - { - ["X"] = 60.05, - ["Y"] = 76.17, - ["CD"] = 0 - }, - [40] = - { - ["X"] = 56.95, - ["Y"] = 76.95, - ["CD"] = 0 - }, - [41] = - { - ["X"] = 57.35, - ["Y"] = 75.19, - ["CD"] = 0 - }, - [42] = - { - ["X"] = 58.36, - ["Y"] = 73.27, - ["CD"] = 0 - }, - [43] = - { - ["X"] = 59.08, - ["Y"] = 73.81, - ["CD"] = 0 - }, - [44] = - { - ["X"] = 60.66, - ["Y"] = 75.82, - ["CD"] = 0 - }, - [45] = - { - ["X"] = 61.34, - ["Y"] = 79.25, - ["CD"] = 0 - }, - [46] = - { - ["X"] = 62.71, - ["Y"] = 80.38, - ["CD"] = 0 - }, - [47] = - { - ["X"] = 60.26, - ["Y"] = 80.68, - ["CD"] = 0 - }, - [48] = - { - ["X"] = 59.23, - ["Y"] = 82.19, - ["CD"] = 0 - }, - [49] = - { - ["X"] = 62.34, - ["Y"] = 84.98, - ["CD"] = 0 - }, - [50] = - { - ["X"] = 58.92, - ["Y"] = 88.3, - ["CD"] = 0 - }, - [51] = - { - ["X"] = 55.85, - ["Y"] = 89.71, - ["CD"] = 0 - }, - [52] = - { - ["X"] = 56.13, - ["Y"] = 87.83, - ["CD"] = 0 - }, - [53] = - { - ["X"] = 54.22, - ["Y"] = 88.9, - ["CD"] = 0 - }, - [54] = - { - ["X"] = 53.37, - ["Y"] = 87.68, - ["CD"] = 0 - }, - [55] = - { - ["X"] = 50.61, - ["Y"] = 86.57, - ["CD"] = 0 - }, - [56] = - { - ["X"] = 49.98, - ["Y"] = 83.55, - ["CD"] = 0 - }, - [57] = - { - ["X"] = 49.47, - ["Y"] = 81.21, - ["CD"] = 0 - }, - [58] = - { - ["X"] = 50.49, - ["Y"] = 79.7, - ["CD"] = 0 - }, - [59] = - { - ["X"] = 51.4, - ["Y"] = 78.35, - ["CD"] = 0 - }, - [60] = - { - ["X"] = 52.52, - ["Y"] = 75.98, - ["CD"] = 0 - }, - [61] = - { - ["X"] = 48.75, - ["Y"] = 73.96, - ["CD"] = 0 - }, - [62] = - { - ["X"] = 48.14, - ["Y"] = 72.49, - ["CD"] = 0 - }, - [63] = - { - ["X"] = 46.98, - ["Y"] = 58.58, - ["CD"] = 0 - }, - [64] = - { - ["X"] = 43.72, - ["Y"] = 57.99, - ["CD"] = 0 - }, - [65] = - { - ["X"] = 46.84, - ["Y"] = 37.45, - ["CD"] = 0 - }, - [66] = - { - ["X"] = 46.85, - ["Y"] = 39.36, - ["CD"] = 0 - }, - [67] = - { - ["X"] = 47.84, - ["Y"] = 38.96, - ["CD"] = 0 - }, - [68] = - { - ["X"] = 48.45, - ["Y"] = 40.92, - ["CD"] = 0 - }, - [69] = - { - ["X"] = 50.4, - ["Y"] = 39.27, - ["CD"] = 0 - }, - [70] = - { - ["X"] = 50.43, - ["Y"] = 40.57, - ["CD"] = 0 - }, - [71] = - { - ["X"] = 52.45, - ["Y"] = 44.2, - ["CD"] = 0 - }, - [72] = - { - ["X"] = 54.73, - ["Y"] = 47.17, - ["CD"] = 0 - }, - [73] = - { - ["X"] = 56.35, - ["Y"] = 45.89, - ["CD"] = 0 - }, - [74] = - { - ["X"] = 54.9, - ["Y"] = 41.74, - ["CD"] = 0 - }, - [75] = - { - ["X"] = 54.87, - ["Y"] = 39.41, - ["CD"] = 0 - }, - [76] = - { - ["X"] = 56.71, - ["Y"] = 40.19, - ["CD"] = 0 - }, - [77] = - { - ["X"] = 57.58, - ["Y"] = 41.53, - ["CD"] = 0 - }, - [78] = - { - ["X"] = 58.36, - ["Y"] = 41.66, - ["CD"] = 0 - }, - [79] = - { - ["X"] = 60.05, - ["Y"] = 42.17, - ["CD"] = 0 - }, - [80] = - { - ["X"] = 61.65, - ["Y"] = 43.31, - ["CD"] = 0 - }, - [81] = - { - ["X"] = 60.92, - ["Y"] = 41.56, - ["CD"] = 0 - }, - [82] = - { - ["X"] = 62.24, - ["Y"] = 44.16, - ["CD"] = 0 - }, - [83] = - { - ["X"] = 62.18, - ["Y"] = 43.11, - ["CD"] = 0 - }, - [84] = - { - ["X"] = 64.04, - ["Y"] = 40.91, - ["CD"] = 0 - }, - [85] = - { - ["X"] = 62.84, - ["Y"] = 40.65, - ["CD"] = 0 - }, - [86] = - { - ["X"] = 63.51, - ["Y"] = 38.93, - ["CD"] = 0 - }, - [87] = - { - ["X"] = 69.12, - ["Y"] = 39.38, - ["CD"] = 0 - }, - [88] = - { - ["X"] = 70.92, - ["Y"] = 38.4, - ["CD"] = 0 - }, - [89] = - { - ["X"] = 71.19, - ["Y"] = 42.44, - ["CD"] = 0 - }, - [90] = - { - ["X"] = 72.93, - ["Y"] = 44.69, - ["CD"] = 0 - }, - [91] = - { - ["X"] = 71.57, - ["Y"] = 47.07, - ["CD"] = 0 - }, - [92] = - { - ["X"] = 69.24, - ["Y"] = 45.68, - ["CD"] = 0 - }, - [93] = - { - ["X"] = 69.93, - ["Y"] = 47.65, - ["CD"] = 0 - }, - [94] = - { - ["X"] = 68.74, - ["Y"] = 48.58, - ["CD"] = 0 - }, - [95] = - { - ["X"] = 68.01, - ["Y"] = 50.36, - ["CD"] = 0 - }, - [96] = - { - ["X"] = 70.59, - ["Y"] = 51.95, - ["CD"] = 0 - }, - [97] = - { - ["X"] = 70.77, - ["Y"] = 54.92, - ["CD"] = 0 - }, - [98] = - { - ["X"] = 71.17, - ["Y"] = 56.39, - ["CD"] = 0 - }, - [99] = - { - ["X"] = 70.27, - ["Y"] = 56.41, - ["CD"] = 0 - }, - [100] = - { - ["X"] = 69.1, - ["Y"] = 55.12, - ["CD"] = 0 - }, - [101] = - { - ["X"] = 65.97, - ["Y"] = 59.44, - ["CD"] = 0 - }, - [102] = - { - ["X"] = 65.88, - ["Y"] = 56.5, - ["CD"] = 0 - }, - [103] = - { - ["X"] = 64.45, - ["Y"] = 53.78, - ["CD"] = 0 - }, - [104] = - { - ["X"] = 63.19, - ["Y"] = 56.73, - ["CD"] = 0 - }, - [105] = - { - ["X"] = 64.13, - ["Y"] = 58.96, - ["CD"] = 0 - }, - [106] = - { - ["X"] = 65.55, - ["Y"] = 61.24, - ["CD"] = 0 - }, - [107] = - { - ["X"] = 64.01, - ["Y"] = 61.23, - ["CD"] = 0 - }, - [108] = - { - ["X"] = 64.35, - ["Y"] = 75.33, - ["CD"] = 0 - }, - [109] = - { - ["X"] = 64.04, - ["Y"] = 79.4, - ["CD"] = 0 - }, - [110] = - { - ["X"] = 65.31, - ["Y"] = 79.67, - ["CD"] = 0 - }, - [111] = - { - ["X"] = 64.07, - ["Y"] = 81.41, - ["CD"] = 0 - }, - [112] = - { - ["X"] = 62.41, - ["Y"] = 82.04, - ["CD"] = 0 - }, - [113] = - { - ["X"] = 61.02, - ["Y"] = 83.56, - ["CD"] = 0 - }, - [114] = - { - ["X"] = 59.89, - ["Y"] = 83.19, - ["CD"] = 0 - }, - [115] = - { - ["X"] = 60.72, - ["Y"] = 84.32, - ["CD"] = 0 - }, - [116] = - { - ["X"] = 61.72, - ["Y"] = 84.3, - ["CD"] = 0 - }, - [117] = - { - ["X"] = 59.99, - ["Y"] = 79.24, - ["CD"] = 0 - }, - [118] = - { - ["X"] = 56.12, - ["Y"] = 79.23, - ["CD"] = 0 - }, - [119] = - { - ["X"] = 55.7, - ["Y"] = 76.89, - ["CD"] = 0 - }, - [120] = - { - ["X"] = 51.19, - ["Y"] = 72.26, - ["CD"] = 0 - }, - [121] = - { - ["X"] = 53.78, - ["Y"] = 70.92, - ["CD"] = 0 - }, - [122] = - { - ["X"] = 52.44, - ["Y"] = 72.53, - ["CD"] = 0 - }, - [123] = - { - ["X"] = 47.63, - ["Y"] = 77.64, - ["CD"] = 0 - }, - [124] = - { - ["X"] = 49.85, - ["Y"] = 74.92, - ["CD"] = 0 - }, - [125] = - { - ["X"] = 49.99, - ["Y"] = 77.55, - ["CD"] = 0 - }, - [126] = - { - ["X"] = 47.43, - ["Y"] = 76.36, - ["CD"] = 0 - }, - [127] = - { - ["X"] = 44.57, - ["Y"] = 82.87, - ["CD"] = 0 - }, - [128] = - { - ["X"] = 44.59, - ["Y"] = 86.64, - ["CD"] = 0 - }, - [129] = - { - ["X"] = 45.1, - ["Y"] = 86.63, - ["CD"] = 0 - }, - [130] = - { - ["X"] = 44.31, - ["Y"] = 85.05, - ["CD"] = 0 - }, - [131] = - { - ["X"] = 42.91, - ["Y"] = 83.59, - ["CD"] = 0 - }, - [132] = - { - ["X"] = 42.69, - ["Y"] = 81.24, - ["CD"] = 0 - }, - [133] = - { - ["X"] = 42.59, - ["Y"] = 80.4, - ["CD"] = 0 - }, - [134] = - { - ["X"] = 41.57, - ["Y"] = 81.13, - ["CD"] = 0 - }, - [135] = - { - ["X"] = 40.88, - ["Y"] = 75.34, - ["CD"] = 0 - }, - [136] = - { - ["X"] = 50.44, - ["Y"] = 53.49, - ["CD"] = 0 - }, - [137] = - { - ["X"] = 53.43, - ["Y"] = 52.68, - ["CD"] = 0 - }, - [138] = - { - ["X"] = 55.29, - ["Y"] = 50.86, - ["CD"] = 0 - }, - [139] = - { - ["X"] = 54.1, - ["Y"] = 52.27, - ["CD"] = 0 - }, - [140] = - { - ["X"] = 53.37, - ["Y"] = 51.14, - ["CD"] = 0 - }, - [141] = - { - ["X"] = 53.52, - ["Y"] = 49.5, - ["CD"] = 0 - }, - [142] = - { - ["X"] = 52.4, - ["Y"] = 49.71, - ["CD"] = 0 - }, - [143] = - { - ["X"] = 50.9, - ["Y"] = 49.61, - ["CD"] = 0 - }, - [144] = - { - ["X"] = 47.8, - ["Y"] = 52.24, - ["CD"] = 0 - }, - [145] = - { - ["X"] = 47.93, - ["Y"] = 55.01, - ["CD"] = 0 - }, - [146] = - { - ["X"] = 46.89, - ["Y"] = 53.79, - ["CD"] = 0 - }, - [147] = - { - ["X"] = 46.22, - ["Y"] = 55.18, - ["CD"] = 0 - }, - [148] = - { - ["X"] = 46.32, - ["Y"] = 56.82, - ["CD"] = 0 - }, - [149] = - { - ["X"] = 40.2, - ["Y"] = 62.85, - ["CD"] = 0 - }, - [150] = - { - ["X"] = 40.35, - ["Y"] = 60.93, - ["CD"] = 0 - }, - [151] = - { - ["X"] = 36.08, - ["Y"] = 58.38, - ["CD"] = 0 - }, - [152] = - { - ["X"] = 35.03, - ["Y"] = 60.53, - ["CD"] = 0 - }, - [153] = - { - ["X"] = 35.66, - ["Y"] = 60.3, - ["CD"] = 0 - }, - [154] = - { - ["X"] = 40.75, - ["Y"] = 60.72, - ["CD"] = 0 - }, - [155] = - { - ["X"] = 44.99, - ["Y"] = 60.93, - ["CD"] = 0 - }, - [156] = - { - ["X"] = 43.77, - ["Y"] = 60.96, - ["CD"] = 0 - }, - [157] = - { - ["X"] = 43.04, - ["Y"] = 63.03, - ["CD"] = 0 - }, - [158] = - { - ["X"] = 41.88, - ["Y"] = 63.67, - ["CD"] = 0 - }, - [159] = - { - ["X"] = 42.45, - ["Y"] = 61.88, - ["CD"] = 0 - }, - [160] = - { - ["X"] = 43.65, - ["Y"] = 60.82, - ["CD"] = 0 - }, - [161] = - { - ["X"] = 58.38, - ["Y"] = 33.52, - ["CD"] = 0 - }, - [162] = - { - ["X"] = 41.66, - ["Y"] = 54.31, - ["CD"] = 0 - }, - [163] = - { - ["X"] = 40.52, - ["Y"] = 51.34, - ["CD"] = 0 - }, - [164] = - { - ["X"] = 37.56, - ["Y"] = 54.61, - ["CD"] = 0 - }, - [165] = - { - ["X"] = 49.48, - ["Y"] = 49.77, - ["CD"] = 0 - }, - [166] = - { - ["X"] = 51.33, - ["Y"] = 41.98, - ["CD"] = 0 - }, - [167] = - { - ["X"] = 55.3, - ["Y"] = 55.78, - ["CD"] = 0 - }, - [168] = - { - ["X"] = 61.99, - ["Y"] = 30.91, - ["CD"] = 0 - }, - [169] = - { - ["X"] = 57.71, - ["Y"] = 39.6, - ["CD"] = 0 - }, - [170] = - { - ["X"] = 69.54, - ["Y"] = 37.38, - ["CD"] = 0 - }, - [171] = - { - ["X"] = 68.35, - ["Y"] = 39.91, - ["CD"] = 0 - }, - [172] = - { - ["X"] = 62.37, - ["Y"] = 48.14, - ["CD"] = 0 - }, - [173] = - { - ["X"] = 65.9, - ["Y"] = 41.14, - ["CD"] = 0 - }, - [174] = - { - ["X"] = 73.55, - ["Y"] = 52.84, - ["CD"] = 0 - }, - [175] = - { - ["X"] = 74.57, - ["Y"] = 39.75, - ["CD"] = 0 - }, - [176] = - { - ["X"] = 72.1, - ["Y"] = 49.22, - ["CD"] = 0 - }, - [177] = - { - ["X"] = 69.79, - ["Y"] = 53.26, - ["CD"] = 0 - }, - [178] = - { - ["X"] = 67.27, - ["Y"] = 60.55, - ["CD"] = 0 - }, - [179] = - { - ["X"] = 64.16, - ["Y"] = 58.7, - ["CD"] = 0 - }, - [180] = - { - ["X"] = 54.76, - ["Y"] = 57.01, - ["CD"] = 0 - }, - [181] = - { - ["X"] = 57.81, - ["Y"] = 60.35, - ["CD"] = 0 - }, - [182] = - { - ["X"] = 48.01, - ["Y"] = 69.08, - ["CD"] = 0 - }, - [183] = - { - ["X"] = 42.49, - ["Y"] = 79.11, - ["CD"] = 0 - }, - [184] = - { - ["X"] = 41.64, - ["Y"] = 69.85, - ["CD"] = 0 - }, - [185] = - { - ["X"] = 45.52, - ["Y"] = 73.05, - ["CD"] = 0 - }, - [186] = - { - ["X"] = 50.98, - ["Y"] = 82.3, - ["CD"] = 0 - }, - [187] = - { - ["X"] = 65.76, - ["Y"] = 68.15, - ["CD"] = 0 - }, - [188] = - { - ["X"] = 63.63, - ["Y"] = 64.98, - ["CD"] = 0 - }, - [189] = - { - ["X"] = 57.28, - ["Y"] = 90.49, - ["CD"] = 0 - }, - [190] = - { - ["X"] = 55.64, - ["Y"] = 84.34, - ["CD"] = 0 - }, - [191] = - { - ["X"] = 39.95, - ["Y"] = 88.45, - ["CD"] = 0 - }, - [192] = - { - ["X"] = 44.02, - ["Y"] = 82.51, - ["CD"] = 0 - }, - [193] = - { - ["X"] = 47.72, - ["Y"] = 85.61, - ["CD"] = 0 - }, - [194] = - { - ["X"] = 50.24, - ["Y"] = 84.23, - ["CD"] = 0 - }, - [195] = - { - ["X"] = 43.02, - ["Y"] = 88.03, - ["CD"] = 0 - }, - [196] = - { - ["X"] = 46.15, - ["Y"] = 83.47, - ["CD"] = 0 - }, - [197] = - { - ["X"] = 55.23, - ["Y"] = 68.18, - ["CD"] = 0 - }, - [198] = - { - ["X"] = 22.55, - ["Y"] = 64.61, - ["CD"] = 0 - }, - [199] = - { - ["X"] = 22.95, - ["Y"] = 72.49, - ["CD"] = 0 - }, - [200] = - { - ["X"] = 21.81, - ["Y"] = 69.82, - ["CD"] = 0 -} +aura_env.herbs = { + [1] = { + ["X"] = 61.87, + ["Y"] = 52.19, + ["CD"] = 0, + }, + [2] = { + ["X"] = 60.2, + ["Y"] = 53.05, + ["CD"] = 0, + }, + [3] = { + ["X"] = 60.65, + ["Y"] = 54.53, + ["CD"] = 0, + }, + [4] = { + ["X"] = 59.47, + ["Y"] = 55.87, + ["CD"] = 0, + }, + [5] = { + ["X"] = 56.22, + ["Y"] = 60.29, + ["CD"] = 0, + }, + [6] = { + ["X"] = 56.95, + ["Y"] = 61.33, + ["CD"] = 0, + }, + [7] = { + ["X"] = 56.52, + ["Y"] = 64.31, + ["CD"] = 0, + }, + [8] = { + ["X"] = 58.38, + ["Y"] = 65.51, + ["CD"] = 0, + }, + [9] = { + ["X"] = 56.03, + ["Y"] = 64.65, + ["CD"] = 0, + }, + [10] = { + ["X"] = 55.53, + ["Y"] = 70.26, + ["CD"] = 0, + }, + [11] = { + ["X"] = 57.79, + ["Y"] = 71.48, + ["CD"] = 0, + }, + [12] = { + ["X"] = 59.03, + ["Y"] = 69.43, + ["CD"] = 0, + }, + [13] = { + ["X"] = 57.33, + ["Y"] = 69.9, + ["CD"] = 0, + }, + [14] = { + ["X"] = 55.39, + ["Y"] = 68.84, + ["CD"] = 0, + }, + [15] = { + ["X"] = 55.08, + ["Y"] = 63.45, + ["CD"] = 0, + }, + [16] = { + ["X"] = 52.34, + ["Y"] = 61.54, + ["CD"] = 0, + }, + [17] = { + ["X"] = 51.12, + ["Y"] = 64.53, + ["CD"] = 0, + }, + [18] = { + ["X"] = 54.28, + ["Y"] = 62.65, + ["CD"] = 0, + }, + [19] = { + ["X"] = 54.32, + ["Y"] = 66.08, + ["CD"] = 0, + }, + [20] = { + ["X"] = 58.53, + ["Y"] = 61.45, + ["CD"] = 0, + }, + [21] = { + ["X"] = 58.37, + ["Y"] = 63.02, + ["CD"] = 0, + }, + [22] = { + ["X"] = 59.24, + ["Y"] = 65.05, + ["CD"] = 0, + }, + [23] = { + ["X"] = 62.31, + ["Y"] = 64.97, + ["CD"] = 0, + }, + [24] = { + ["X"] = 63.37, + ["Y"] = 67.79, + ["CD"] = 0, + }, + [25] = { + ["X"] = 64.83, + ["Y"] = 68.7, + ["CD"] = 0, + }, + [26] = { + ["X"] = 68.37, + ["Y"] = 63.92, + ["CD"] = 0, + }, + [27] = { + ["X"] = 66.9, + ["Y"] = 66.86, + ["CD"] = 0, + }, + [28] = { + ["X"] = 67.08, + ["Y"] = 68.7, + ["CD"] = 0, + }, + [29] = { + ["X"] = 66.91, + ["Y"] = 70.84, + ["CD"] = 0, + }, + [30] = { + ["X"] = 65.61, + ["Y"] = 71.3, + ["CD"] = 0, + }, + [31] = { + ["X"] = 65.43, + ["Y"] = 74.05, + ["CD"] = 0, + }, + [32] = { + ["X"] = 66.57, + ["Y"] = 73.67, + ["CD"] = 0, + }, + [33] = { + ["X"] = 68.75, + ["Y"] = 72.27, + ["CD"] = 0, + }, + [34] = { + ["X"] = 67.56, + ["Y"] = 72.17, + ["CD"] = 0, + }, + [35] = { + ["X"] = 68.81, + ["Y"] = 74.63, + ["CD"] = 0, + }, + [36] = { + ["X"] = 67.77, + ["Y"] = 75.19, + ["CD"] = 0, + }, + [37] = { + ["X"] = 67.02, + ["Y"] = 76.86, + ["CD"] = 0, + }, + [38] = { + ["X"] = 65.7, + ["Y"] = 75.96, + ["CD"] = 0, + }, + [39] = { + ["X"] = 60.05, + ["Y"] = 76.17, + ["CD"] = 0, + }, + [40] = { + ["X"] = 56.95, + ["Y"] = 76.95, + ["CD"] = 0, + }, + [41] = { + ["X"] = 57.35, + ["Y"] = 75.19, + ["CD"] = 0, + }, + [42] = { + ["X"] = 58.36, + ["Y"] = 73.27, + ["CD"] = 0, + }, + [43] = { + ["X"] = 59.08, + ["Y"] = 73.81, + ["CD"] = 0, + }, + [44] = { + ["X"] = 60.66, + ["Y"] = 75.82, + ["CD"] = 0, + }, + [45] = { + ["X"] = 61.34, + ["Y"] = 79.25, + ["CD"] = 0, + }, + [46] = { + ["X"] = 62.71, + ["Y"] = 80.38, + ["CD"] = 0, + }, + [47] = { + ["X"] = 60.26, + ["Y"] = 80.68, + ["CD"] = 0, + }, + [48] = { + ["X"] = 59.23, + ["Y"] = 82.19, + ["CD"] = 0, + }, + [49] = { + ["X"] = 62.34, + ["Y"] = 84.98, + ["CD"] = 0, + }, + [50] = { + ["X"] = 58.92, + ["Y"] = 88.3, + ["CD"] = 0, + }, + [51] = { + ["X"] = 55.85, + ["Y"] = 89.71, + ["CD"] = 0, + }, + [52] = { + ["X"] = 56.13, + ["Y"] = 87.83, + ["CD"] = 0, + }, + [53] = { + ["X"] = 54.22, + ["Y"] = 88.9, + ["CD"] = 0, + }, + [54] = { + ["X"] = 53.37, + ["Y"] = 87.68, + ["CD"] = 0, + }, + [55] = { + ["X"] = 50.61, + ["Y"] = 86.57, + ["CD"] = 0, + }, + [56] = { + ["X"] = 49.98, + ["Y"] = 83.55, + ["CD"] = 0, + }, + [57] = { + ["X"] = 49.47, + ["Y"] = 81.21, + ["CD"] = 0, + }, + [58] = { + ["X"] = 50.49, + ["Y"] = 79.7, + ["CD"] = 0, + }, + [59] = { + ["X"] = 51.4, + ["Y"] = 78.35, + ["CD"] = 0, + }, + [60] = { + ["X"] = 52.52, + ["Y"] = 75.98, + ["CD"] = 0, + }, + [61] = { + ["X"] = 48.75, + ["Y"] = 73.96, + ["CD"] = 0, + }, + [62] = { + ["X"] = 48.14, + ["Y"] = 72.49, + ["CD"] = 0, + }, + [63] = { + ["X"] = 46.98, + ["Y"] = 58.58, + ["CD"] = 0, + }, + [64] = { + ["X"] = 43.72, + ["Y"] = 57.99, + ["CD"] = 0, + }, + [65] = { + ["X"] = 46.84, + ["Y"] = 37.45, + ["CD"] = 0, + }, + [66] = { + ["X"] = 46.85, + ["Y"] = 39.36, + ["CD"] = 0, + }, + [67] = { + ["X"] = 47.84, + ["Y"] = 38.96, + ["CD"] = 0, + }, + [68] = { + ["X"] = 48.45, + ["Y"] = 40.92, + ["CD"] = 0, + }, + [69] = { + ["X"] = 50.4, + ["Y"] = 39.27, + ["CD"] = 0, + }, + [70] = { + ["X"] = 50.43, + ["Y"] = 40.57, + ["CD"] = 0, + }, + [71] = { + ["X"] = 52.45, + ["Y"] = 44.2, + ["CD"] = 0, + }, + [72] = { + ["X"] = 54.73, + ["Y"] = 47.17, + ["CD"] = 0, + }, + [73] = { + ["X"] = 56.35, + ["Y"] = 45.89, + ["CD"] = 0, + }, + [74] = { + ["X"] = 54.9, + ["Y"] = 41.74, + ["CD"] = 0, + }, + [75] = { + ["X"] = 54.87, + ["Y"] = 39.41, + ["CD"] = 0, + }, + [76] = { + ["X"] = 56.71, + ["Y"] = 40.19, + ["CD"] = 0, + }, + [77] = { + ["X"] = 57.58, + ["Y"] = 41.53, + ["CD"] = 0, + }, + [78] = { + ["X"] = 58.36, + ["Y"] = 41.66, + ["CD"] = 0, + }, + [79] = { + ["X"] = 60.05, + ["Y"] = 42.17, + ["CD"] = 0, + }, + [80] = { + ["X"] = 61.65, + ["Y"] = 43.31, + ["CD"] = 0, + }, + [81] = { + ["X"] = 60.92, + ["Y"] = 41.56, + ["CD"] = 0, + }, + [82] = { + ["X"] = 62.24, + ["Y"] = 44.16, + ["CD"] = 0, + }, + [83] = { + ["X"] = 62.18, + ["Y"] = 43.11, + ["CD"] = 0, + }, + [84] = { + ["X"] = 64.04, + ["Y"] = 40.91, + ["CD"] = 0, + }, + [85] = { + ["X"] = 62.84, + ["Y"] = 40.65, + ["CD"] = 0, + }, + [86] = { + ["X"] = 63.51, + ["Y"] = 38.93, + ["CD"] = 0, + }, + [87] = { + ["X"] = 69.12, + ["Y"] = 39.38, + ["CD"] = 0, + }, + [88] = { + ["X"] = 70.92, + ["Y"] = 38.4, + ["CD"] = 0, + }, + [89] = { + ["X"] = 71.19, + ["Y"] = 42.44, + ["CD"] = 0, + }, + [90] = { + ["X"] = 72.93, + ["Y"] = 44.69, + ["CD"] = 0, + }, + [91] = { + ["X"] = 71.57, + ["Y"] = 47.07, + ["CD"] = 0, + }, + [92] = { + ["X"] = 69.24, + ["Y"] = 45.68, + ["CD"] = 0, + }, + [93] = { + ["X"] = 69.93, + ["Y"] = 47.65, + ["CD"] = 0, + }, + [94] = { + ["X"] = 68.74, + ["Y"] = 48.58, + ["CD"] = 0, + }, + [95] = { + ["X"] = 68.01, + ["Y"] = 50.36, + ["CD"] = 0, + }, + [96] = { + ["X"] = 70.59, + ["Y"] = 51.95, + ["CD"] = 0, + }, + [97] = { + ["X"] = 70.77, + ["Y"] = 54.92, + ["CD"] = 0, + }, + [98] = { + ["X"] = 71.17, + ["Y"] = 56.39, + ["CD"] = 0, + }, + [99] = { + ["X"] = 70.27, + ["Y"] = 56.41, + ["CD"] = 0, + }, + [100] = { + ["X"] = 69.1, + ["Y"] = 55.12, + ["CD"] = 0, + }, + [101] = { + ["X"] = 65.97, + ["Y"] = 59.44, + ["CD"] = 0, + }, + [102] = { + ["X"] = 65.88, + ["Y"] = 56.5, + ["CD"] = 0, + }, + [103] = { + ["X"] = 64.45, + ["Y"] = 53.78, + ["CD"] = 0, + }, + [104] = { + ["X"] = 63.19, + ["Y"] = 56.73, + ["CD"] = 0, + }, + [105] = { + ["X"] = 64.13, + ["Y"] = 58.96, + ["CD"] = 0, + }, + [106] = { + ["X"] = 65.55, + ["Y"] = 61.24, + ["CD"] = 0, + }, + [107] = { + ["X"] = 64.01, + ["Y"] = 61.23, + ["CD"] = 0, + }, + [108] = { + ["X"] = 64.35, + ["Y"] = 75.33, + ["CD"] = 0, + }, + [109] = { + ["X"] = 64.04, + ["Y"] = 79.4, + ["CD"] = 0, + }, + [110] = { + ["X"] = 65.31, + ["Y"] = 79.67, + ["CD"] = 0, + }, + [111] = { + ["X"] = 64.07, + ["Y"] = 81.41, + ["CD"] = 0, + }, + [112] = { + ["X"] = 62.41, + ["Y"] = 82.04, + ["CD"] = 0, + }, + [113] = { + ["X"] = 61.02, + ["Y"] = 83.56, + ["CD"] = 0, + }, + [114] = { + ["X"] = 59.89, + ["Y"] = 83.19, + ["CD"] = 0, + }, + [115] = { + ["X"] = 60.72, + ["Y"] = 84.32, + ["CD"] = 0, + }, + [116] = { + ["X"] = 61.72, + ["Y"] = 84.3, + ["CD"] = 0, + }, + [117] = { + ["X"] = 59.99, + ["Y"] = 79.24, + ["CD"] = 0, + }, + [118] = { + ["X"] = 56.12, + ["Y"] = 79.23, + ["CD"] = 0, + }, + [119] = { + ["X"] = 55.7, + ["Y"] = 76.89, + ["CD"] = 0, + }, + [120] = { + ["X"] = 51.19, + ["Y"] = 72.26, + ["CD"] = 0, + }, + [121] = { + ["X"] = 53.78, + ["Y"] = 70.92, + ["CD"] = 0, + }, + [122] = { + ["X"] = 52.44, + ["Y"] = 72.53, + ["CD"] = 0, + }, + [123] = { + ["X"] = 47.63, + ["Y"] = 77.64, + ["CD"] = 0, + }, + [124] = { + ["X"] = 49.85, + ["Y"] = 74.92, + ["CD"] = 0, + }, + [125] = { + ["X"] = 49.99, + ["Y"] = 77.55, + ["CD"] = 0, + }, + [126] = { + ["X"] = 47.43, + ["Y"] = 76.36, + ["CD"] = 0, + }, + [127] = { + ["X"] = 44.57, + ["Y"] = 82.87, + ["CD"] = 0, + }, + [128] = { + ["X"] = 44.59, + ["Y"] = 86.64, + ["CD"] = 0, + }, + [129] = { + ["X"] = 45.1, + ["Y"] = 86.63, + ["CD"] = 0, + }, + [130] = { + ["X"] = 44.31, + ["Y"] = 85.05, + ["CD"] = 0, + }, + [131] = { + ["X"] = 42.91, + ["Y"] = 83.59, + ["CD"] = 0, + }, + [132] = { + ["X"] = 42.69, + ["Y"] = 81.24, + ["CD"] = 0, + }, + [133] = { + ["X"] = 42.59, + ["Y"] = 80.4, + ["CD"] = 0, + }, + [134] = { + ["X"] = 41.57, + ["Y"] = 81.13, + ["CD"] = 0, + }, + [135] = { + ["X"] = 40.88, + ["Y"] = 75.34, + ["CD"] = 0, + }, + [136] = { + ["X"] = 50.44, + ["Y"] = 53.49, + ["CD"] = 0, + }, + [137] = { + ["X"] = 53.43, + ["Y"] = 52.68, + ["CD"] = 0, + }, + [138] = { + ["X"] = 55.29, + ["Y"] = 50.86, + ["CD"] = 0, + }, + [139] = { + ["X"] = 54.1, + ["Y"] = 52.27, + ["CD"] = 0, + }, + [140] = { + ["X"] = 53.37, + ["Y"] = 51.14, + ["CD"] = 0, + }, + [141] = { + ["X"] = 53.52, + ["Y"] = 49.5, + ["CD"] = 0, + }, + [142] = { + ["X"] = 52.4, + ["Y"] = 49.71, + ["CD"] = 0, + }, + [143] = { + ["X"] = 50.9, + ["Y"] = 49.61, + ["CD"] = 0, + }, + [144] = { + ["X"] = 47.8, + ["Y"] = 52.24, + ["CD"] = 0, + }, + [145] = { + ["X"] = 47.93, + ["Y"] = 55.01, + ["CD"] = 0, + }, + [146] = { + ["X"] = 46.89, + ["Y"] = 53.79, + ["CD"] = 0, + }, + [147] = { + ["X"] = 46.22, + ["Y"] = 55.18, + ["CD"] = 0, + }, + [148] = { + ["X"] = 46.32, + ["Y"] = 56.82, + ["CD"] = 0, + }, + [149] = { + ["X"] = 40.2, + ["Y"] = 62.85, + ["CD"] = 0, + }, + [150] = { + ["X"] = 40.35, + ["Y"] = 60.93, + ["CD"] = 0, + }, + [151] = { + ["X"] = 36.08, + ["Y"] = 58.38, + ["CD"] = 0, + }, + [152] = { + ["X"] = 35.03, + ["Y"] = 60.53, + ["CD"] = 0, + }, + [153] = { + ["X"] = 35.66, + ["Y"] = 60.3, + ["CD"] = 0, + }, + [154] = { + ["X"] = 40.75, + ["Y"] = 60.72, + ["CD"] = 0, + }, + [155] = { + ["X"] = 44.99, + ["Y"] = 60.93, + ["CD"] = 0, + }, + [156] = { + ["X"] = 43.77, + ["Y"] = 60.96, + ["CD"] = 0, + }, + [157] = { + ["X"] = 43.04, + ["Y"] = 63.03, + ["CD"] = 0, + }, + [158] = { + ["X"] = 41.88, + ["Y"] = 63.67, + ["CD"] = 0, + }, + [159] = { + ["X"] = 42.45, + ["Y"] = 61.88, + ["CD"] = 0, + }, + [160] = { + ["X"] = 43.65, + ["Y"] = 60.82, + ["CD"] = 0, + }, + [161] = { + ["X"] = 58.38, + ["Y"] = 33.52, + ["CD"] = 0, + }, + [162] = { + ["X"] = 41.66, + ["Y"] = 54.31, + ["CD"] = 0, + }, + [163] = { + ["X"] = 40.52, + ["Y"] = 51.34, + ["CD"] = 0, + }, + [164] = { + ["X"] = 37.56, + ["Y"] = 54.61, + ["CD"] = 0, + }, + [165] = { + ["X"] = 49.48, + ["Y"] = 49.77, + ["CD"] = 0, + }, + [166] = { + ["X"] = 51.33, + ["Y"] = 41.98, + ["CD"] = 0, + }, + [167] = { + ["X"] = 55.3, + ["Y"] = 55.78, + ["CD"] = 0, + }, + [168] = { + ["X"] = 61.99, + ["Y"] = 30.91, + ["CD"] = 0, + }, + [169] = { + ["X"] = 57.71, + ["Y"] = 39.6, + ["CD"] = 0, + }, + [170] = { + ["X"] = 69.54, + ["Y"] = 37.38, + ["CD"] = 0, + }, + [171] = { + ["X"] = 68.35, + ["Y"] = 39.91, + ["CD"] = 0, + }, + [172] = { + ["X"] = 62.37, + ["Y"] = 48.14, + ["CD"] = 0, + }, + [173] = { + ["X"] = 65.9, + ["Y"] = 41.14, + ["CD"] = 0, + }, + [174] = { + ["X"] = 73.55, + ["Y"] = 52.84, + ["CD"] = 0, + }, + [175] = { + ["X"] = 74.57, + ["Y"] = 39.75, + ["CD"] = 0, + }, + [176] = { + ["X"] = 72.1, + ["Y"] = 49.22, + ["CD"] = 0, + }, + [177] = { + ["X"] = 69.79, + ["Y"] = 53.26, + ["CD"] = 0, + }, + [178] = { + ["X"] = 67.27, + ["Y"] = 60.55, + ["CD"] = 0, + }, + [179] = { + ["X"] = 64.16, + ["Y"] = 58.7, + ["CD"] = 0, + }, + [180] = { + ["X"] = 54.76, + ["Y"] = 57.01, + ["CD"] = 0, + }, + [181] = { + ["X"] = 57.81, + ["Y"] = 60.35, + ["CD"] = 0, + }, + [182] = { + ["X"] = 48.01, + ["Y"] = 69.08, + ["CD"] = 0, + }, + [183] = { + ["X"] = 42.49, + ["Y"] = 79.11, + ["CD"] = 0, + }, + [184] = { + ["X"] = 41.64, + ["Y"] = 69.85, + ["CD"] = 0, + }, + [185] = { + ["X"] = 45.52, + ["Y"] = 73.05, + ["CD"] = 0, + }, + [186] = { + ["X"] = 50.98, + ["Y"] = 82.3, + ["CD"] = 0, + }, + [187] = { + ["X"] = 65.76, + ["Y"] = 68.15, + ["CD"] = 0, + }, + [188] = { + ["X"] = 63.63, + ["Y"] = 64.98, + ["CD"] = 0, + }, + [189] = { + ["X"] = 57.28, + ["Y"] = 90.49, + ["CD"] = 0, + }, + [190] = { + ["X"] = 55.64, + ["Y"] = 84.34, + ["CD"] = 0, + }, + [191] = { + ["X"] = 39.95, + ["Y"] = 88.45, + ["CD"] = 0, + }, + [192] = { + ["X"] = 44.02, + ["Y"] = 82.51, + ["CD"] = 0, + }, + [193] = { + ["X"] = 47.72, + ["Y"] = 85.61, + ["CD"] = 0, + }, + [194] = { + ["X"] = 50.24, + ["Y"] = 84.23, + ["CD"] = 0, + }, + [195] = { + ["X"] = 43.02, + ["Y"] = 88.03, + ["CD"] = 0, + }, + [196] = { + ["X"] = 46.15, + ["Y"] = 83.47, + ["CD"] = 0, + }, + [197] = { + ["X"] = 55.23, + ["Y"] = 68.18, + ["CD"] = 0, + }, + [198] = { + ["X"] = 22.55, + ["Y"] = 64.61, + ["CD"] = 0, + }, + [199] = { + ["X"] = 22.95, + ["Y"] = 72.49, + ["CD"] = 0, + }, + [200] = { + ["X"] = 21.81, + ["Y"] = 69.82, + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 50 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Fel Herbs.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Fel Herbs.lua index 831102d..90842b4 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Fel Herbs.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Fel Herbs.lua @@ -1,321 +1,271 @@ -aura_env.herbs = -{ - [1] = - { - ["X"] = 43.7, - ["Y"] = 47.52, - ["CD"] = 0 +aura_env.herbs = { + [1] = { + ["X"] = 43.7, + ["Y"] = 47.52, + ["CD"] = 0, }, - [2] = - { - ["X"] = 55.11, - ["Y"] = 53.52, - ["CD"] = 0 + [2] = { + ["X"] = 55.11, + ["Y"] = 53.52, + ["CD"] = 0, }, - [3] = - { - ["X"] = 67.75, - ["Y"] = 35.39, - ["CD"] = 0 + [3] = { + ["X"] = 67.75, + ["Y"] = 35.39, + ["CD"] = 0, }, - [4] = - { - ["X"] = 46.51, - ["Y"] = 31.41, - ["CD"] = 0 + [4] = { + ["X"] = 46.51, + ["Y"] = 31.41, + ["CD"] = 0, }, - [5] = - { - ["X"] = 46.21, - ["Y"] = 39.28, - ["CD"] = 0 + [5] = { + ["X"] = 46.21, + ["Y"] = 39.28, + ["CD"] = 0, }, - [6] = - { - ["X"] = 41.5, - ["Y"] = 42.11, - ["CD"] = 0 + [6] = { + ["X"] = 41.5, + ["Y"] = 42.11, + ["CD"] = 0, }, - [7] = - { - ["X"] = 50.73, - ["Y"] = 36.37, - ["CD"] = 0 + [7] = { + ["X"] = 50.73, + ["Y"] = 36.37, + ["CD"] = 0, }, - [8] = - { - ["X"] = 52, - ["Y"] = 38.74, - ["CD"] = 0 + [8] = { + ["X"] = 52, + ["Y"] = 38.74, + ["CD"] = 0, }, - [9] = - { - ["X"] = 51.73, - ["Y"] = 44.44, - ["CD"] = 0 + [9] = { + ["X"] = 51.73, + ["Y"] = 44.44, + ["CD"] = 0, }, - [10] = - { - ["X"] = 48.85, - ["Y"] = 43.36, - ["CD"] = 0 + [10] = { + ["X"] = 48.85, + ["Y"] = 43.36, + ["CD"] = 0, }, - [11] = - { - ["X"] = 43.36, - ["Y"] = 27.42, - ["CD"] = 0 + [11] = { + ["X"] = 43.36, + ["Y"] = 27.42, + ["CD"] = 0, }, - [12] = - { - ["X"] = 38.9, - ["Y"] = 37.15, - ["CD"] = 0 + [12] = { + ["X"] = 38.9, + ["Y"] = 37.15, + ["CD"] = 0, }, - [13] = - { - ["X"] = 39.14, - ["Y"] = 48.19, - ["CD"] = 0 + [13] = { + ["X"] = 39.14, + ["Y"] = 48.19, + ["CD"] = 0, }, - [14] = - { - ["X"] = 45.77, - ["Y"] = 43.29, - ["CD"] = 0 + [14] = { + ["X"] = 45.77, + ["Y"] = 43.29, + ["CD"] = 0, }, - [15] = - { - ["X"] = 42.81, - ["Y"] = 39.12, - ["CD"] = 0 + [15] = { + ["X"] = 42.81, + ["Y"] = 39.12, + ["CD"] = 0, }, - [16] = - { - ["X"] = 44.9, - ["Y"] = 33.39, - ["CD"] = 0 + [16] = { + ["X"] = 44.9, + ["Y"] = 33.39, + ["CD"] = 0, }, - [17] = - { - ["X"] = 51.19, - ["Y"] = 34.46, - ["CD"] = 0 + [17] = { + ["X"] = 51.19, + ["Y"] = 34.46, + ["CD"] = 0, }, - [18] = - { - ["X"] = 54.96, - ["Y"] = 29.9, - ["CD"] = 0 + [18] = { + ["X"] = 54.96, + ["Y"] = 29.9, + ["CD"] = 0, }, - [19] = - { - ["X"] = 53.75, - ["Y"] = 55.53, - ["CD"] = 0 + [19] = { + ["X"] = 53.75, + ["Y"] = 55.53, + ["CD"] = 0, }, - [20] = - { - ["X"] = 58.01, - ["Y"] = 52.44, - ["CD"] = 0 + [20] = { + ["X"] = 58.01, + ["Y"] = 52.44, + ["CD"] = 0, }, - [21] = - { - ["X"] = 73.65, - ["Y"] = 35.59, - ["CD"] = 0 + [21] = { + ["X"] = 73.65, + ["Y"] = 35.59, + ["CD"] = 0, }, - [22] = - { - ["X"] = 68.83, - ["Y"] = 38.1, - ["CD"] = 0 + [22] = { + ["X"] = 68.83, + ["Y"] = 38.1, + ["CD"] = 0, }, - [23] = - { - ["X"] = 64.86, - ["Y"] = 31.35, - ["CD"] = 0 + [23] = { + ["X"] = 64.86, + ["Y"] = 31.35, + ["CD"] = 0, }, - [24] = - { - ["X"] = 55.37, - ["Y"] = 46.09, - ["CD"] = 0 + [24] = { + ["X"] = 55.37, + ["Y"] = 46.09, + ["CD"] = 0, }, - [25] = - { - ["X"] = 51.96, - ["Y"] = 54.69, - ["CD"] = 0 + [25] = { + ["X"] = 51.96, + ["Y"] = 54.69, + ["CD"] = 0, }, - [26] = - { - ["X"] = 52.07, - ["Y"] = 48.12, - ["CD"] = 0 + [26] = { + ["X"] = 52.07, + ["Y"] = 48.12, + ["CD"] = 0, }, - [27] = - { - ["X"] = 39.85, - ["Y"] = 43.02, - ["CD"] = 0 + [27] = { + ["X"] = 39.85, + ["Y"] = 43.02, + ["CD"] = 0, }, - [28] = - { - ["X"] = 45.11, - ["Y"] = 31.92, - ["CD"] = 0 + [28] = { + ["X"] = 45.11, + ["Y"] = 31.92, + ["CD"] = 0, }, - [29] = - { - ["X"] = 58.81, - ["Y"] = 42.23, - ["CD"] = 0 + [29] = { + ["X"] = 58.81, + ["Y"] = 42.23, + ["CD"] = 0, }, - [30] = - { - ["X"] = 56.87, - ["Y"] = 35.36, - ["CD"] = 0 + [30] = { + ["X"] = 56.87, + ["Y"] = 35.36, + ["CD"] = 0, }, - [31] = - { - ["X"] = 80.46, - ["Y"] = 42.58, - ["CD"] = 0 + [31] = { + ["X"] = 80.46, + ["Y"] = 42.58, + ["CD"] = 0, }, - [32] = - { - ["X"] = 73.35, - ["Y"] = 40.36, - ["CD"] = 0 + [32] = { + ["X"] = 73.35, + ["Y"] = 40.36, + ["CD"] = 0, }, - [33] = - { - ["X"] = 65.26, - ["Y"] = 49, - ["CD"] = 0 + [33] = { + ["X"] = 65.26, + ["Y"] = 49, + ["CD"] = 0, }, - [34] = - { - ["X"] = 38.29, - ["Y"] = 21.84, - ["CD"] = 0 + [34] = { + ["X"] = 38.29, + ["Y"] = 21.84, + ["CD"] = 0, }, - [35] = - { - ["X"] = 64.95, - ["Y"] = 44.66, - ["CD"] = 0 + [35] = { + ["X"] = 64.95, + ["Y"] = 44.66, + ["CD"] = 0, }, - [36] = - { - ["X"] = 48.04, - ["Y"] = 40.24, - ["CD"] = 0 + [36] = { + ["X"] = 48.04, + ["Y"] = 40.24, + ["CD"] = 0, }, - [37] = - { - ["X"] = 47.18, - ["Y"] = 41.63, - ["CD"] = 0 + [37] = { + ["X"] = 47.18, + ["Y"] = 41.63, + ["CD"] = 0, }, - [38] = - { - ["X"] = 30.84, - ["Y"] = 32.27, - ["CD"] = 0 + [38] = { + ["X"] = 30.84, + ["Y"] = 32.27, + ["CD"] = 0, }, - [39] = - { - ["X"] = 43.7, - ["Y"] = 47.52, - ["CD"] = 0 + [39] = { + ["X"] = 43.7, + ["Y"] = 47.52, + ["CD"] = 0, }, - [40] = - { - ["X"] = 44.9, - ["Y"] = 33.39, - ["CD"] = 0 + [40] = { + ["X"] = 44.9, + ["Y"] = 33.39, + ["CD"] = 0, }, - [41] = - { - ["X"] = 49.05, - ["Y"] = 39.41, - ["CD"] = 0 + [41] = { + ["X"] = 49.05, + ["Y"] = 39.41, + ["CD"] = 0, }, - [42] = - { - ["X"] = 44.09, - ["Y"] = 53.11, - ["CD"] = 0 + [42] = { + ["X"] = 44.09, + ["Y"] = 53.11, + ["CD"] = 0, }, - [43] = - { - ["X"] = 39.14, - ["Y"] = 32.32, - ["CD"] = 0 + [43] = { + ["X"] = 39.14, + ["Y"] = 32.32, + ["CD"] = 0, }, - [44] = - { - ["X"] = 61.13, - ["Y"] = 44.07, - ["CD"] = 0 + [44] = { + ["X"] = 61.13, + ["Y"] = 44.07, + ["CD"] = 0, }, - [45] = - { - ["X"] = 60.53, - ["Y"] = 46.91, - ["CD"] = 0 + [45] = { + ["X"] = 60.53, + ["Y"] = 46.91, + ["CD"] = 0, }, - [46] = - { - ["X"] = 52.47, - ["Y"] = 52.01, - ["CD"] = 0 + [46] = { + ["X"] = 52.47, + ["Y"] = 52.01, + ["CD"] = 0, }, - [47] = - { - ["X"] = 68.45, - ["Y"] = 27.27, - ["CD"] = 0 + [47] = { + ["X"] = 68.45, + ["Y"] = 27.27, + ["CD"] = 0, + }, + [48] = { + ["X"] = 68.14, + ["Y"] = 32.64, + ["CD"] = 0, }, - [48] = - { - ["X"] = 68.14, - ["Y"] = 32.64, - ["CD"] = 0 -} } aura_env.cooldown = 600 aura_env.wipeDistance = 50 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Fjarnskaggl.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Fjarnskaggl.lua index de4f4a3..d975c2f 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Fjarnskaggl.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Fjarnskaggl.lua @@ -1,1233 +1,1031 @@ -aura_env.herbs = -{ - [1] = - { - ["X"] = 47.24, - ["Y"] = 55.62, - ["CD"] = 0 - }, - [2] = - { - ["X"] = 51.47, - ["Y"] = 55.4, - ["CD"] = 0 - }, - [3] = - { - ["X"] = 49.09, - ["Y"] = 52.04, - ["CD"] = 0 - }, - [4] = - { - ["X"] = 48.14, - ["Y"] = 53.66, - ["CD"] = 0 - }, - [5] = - { - ["X"] = 45.46, - ["Y"] = 53.33, - ["CD"] = 0 - }, - [6] = - { - ["X"] = 42.97, - ["Y"] = 59.67, - ["CD"] = 0 - }, - [7] = - { - ["X"] = 42.91, - ["Y"] = 57.7, - ["CD"] = 0 - }, - [8] = - { - ["X"] = 42.8, - ["Y"] = 56.74, - ["CD"] = 0 - }, - [9] = - { - ["X"] = 41.94, - ["Y"] = 53.95, - ["CD"] = 0 - }, - [10] = - { - ["X"] = 39.66, - ["Y"] = 53.74, - ["CD"] = 0 - }, - [11] = - { - ["X"] = 40.06, - ["Y"] = 52.65, - ["CD"] = 0 - }, - [12] = - { - ["X"] = 41.77, - ["Y"] = 49.95, - ["CD"] = 0 - }, - [13] = - { - ["X"] = 42.6, - ["Y"] = 49.17, - ["CD"] = 0 - }, - [14] = - { - ["X"] = 42.02, - ["Y"] = 50.81, - ["CD"] = 0 - }, - [15] = - { - ["X"] = 42.54, - ["Y"] = 52.47, - ["CD"] = 0 - }, - [16] = - { - ["X"] = 42.86, - ["Y"] = 51.62, - ["CD"] = 0 - }, - [17] = - { - ["X"] = 44.56, - ["Y"] = 52.7, - ["CD"] = 0 - }, - [18] = - { - ["X"] = 43.88, - ["Y"] = 52.96, - ["CD"] = 0 - }, - [19] = - { - ["X"] = 43.66, - ["Y"] = 54.02, - ["CD"] = 0 - }, - [20] = - { - ["X"] = 44.39, - ["Y"] = 54.51, - ["CD"] = 0 - }, - [21] = - { - ["X"] = 44.57, - ["Y"] = 56.26, - ["CD"] = 0 - }, - [22] = - { - ["X"] = 44.17, - ["Y"] = 58.37, - ["CD"] = 0 - }, - [23] = - { - ["X"] = 46.02, - ["Y"] = 58.16, - ["CD"] = 0 - }, - [24] = - { - ["X"] = 45.54, - ["Y"] = 56.28, - ["CD"] = 0 - }, - [25] = - { - ["X"] = 45.64, - ["Y"] = 55.67, - ["CD"] = 0 - }, - [26] = - { - ["X"] = 45.88, - ["Y"] = 54.95, - ["CD"] = 0 - }, - [27] = - { - ["X"] = 75.52, - ["Y"] = 64.36, - ["CD"] = 0 - }, - [28] = - { - ["X"] = 74.64, - ["Y"] = 63.4, - ["CD"] = 0 - }, - [29] = - { - ["X"] = 75.47, - ["Y"] = 61.49, - ["CD"] = 0 - }, - [30] = - { - ["X"] = 76.04, - ["Y"] = 62.25, - ["CD"] = 0 - }, - [31] = - { - ["X"] = 76.34, - ["Y"] = 62.88, - ["CD"] = 0 - }, - [32] = - { - ["X"] = 75.6, - ["Y"] = 61.16, - ["CD"] = 0 - }, - [33] = - { - ["X"] = 74.48, - ["Y"] = 61.07, - ["CD"] = 0 - }, - [34] = - { - ["X"] = 73.1, - ["Y"] = 61.55, - ["CD"] = 0 - }, - [35] = - { - ["X"] = 71.6, - ["Y"] = 61.94, - ["CD"] = 0 - }, - [36] = - { - ["X"] = 71.17, - ["Y"] = 61.79, - ["CD"] = 0 - }, - [37] = - { - ["X"] = 70.7, - ["Y"] = 61.82, - ["CD"] = 0 - }, - [38] = - { - ["X"] = 69.93, - ["Y"] = 60.51, - ["CD"] = 0 - }, - [39] = - { - ["X"] = 68.88, - ["Y"] = 62.24, - ["CD"] = 0 - }, - [40] = - { - ["X"] = 68.02, - ["Y"] = 62.34, - ["CD"] = 0 - }, - [41] = - { - ["X"] = 68.38, - ["Y"] = 60.4, - ["CD"] = 0 - }, - [42] = - { - ["X"] = 68.09, - ["Y"] = 58.09, - ["CD"] = 0 - }, - [43] = - { - ["X"] = 68.51, - ["Y"] = 57.47, - ["CD"] = 0 - }, - [44] = - { - ["X"] = 69.32, - ["Y"] = 57.12, - ["CD"] = 0 - }, - [45] = - { - ["X"] = 70.52, - ["Y"] = 56.23, - ["CD"] = 0 - }, - [46] = - { - ["X"] = 68.72, - ["Y"] = 55.81, - ["CD"] = 0 - }, - [47] = - { - ["X"] = 68.24, - ["Y"] = 55.37, - ["CD"] = 0 - }, - [48] = - { - ["X"] = 67.73, - ["Y"] = 53.38, - ["CD"] = 0 - }, - [49] = - { - ["X"] = 67.47, - ["Y"] = 50.94, - ["CD"] = 0 - }, - [50] = - { - ["X"] = 66.2, - ["Y"] = 50.65, - ["CD"] = 0 - }, - [51] = - { - ["X"] = 66.13, - ["Y"] = 49.8, - ["CD"] = 0 - }, - [52] = - { - ["X"] = 65.36, - ["Y"] = 46.62, - ["CD"] = 0 - }, - [53] = - { - ["X"] = 68.76, - ["Y"] = 42.62, - ["CD"] = 0 - }, - [54] = - { - ["X"] = 69.77, - ["Y"] = 41.67, - ["CD"] = 0 - }, - [55] = - { - ["X"] = 70.11, - ["Y"] = 40.61, - ["CD"] = 0 - }, - [56] = - { - ["X"] = 70.23, - ["Y"] = 39.9, - ["CD"] = 0 - }, - [57] = - { - ["X"] = 70.45, - ["Y"] = 39.16, - ["CD"] = 0 - }, - [58] = - { - ["X"] = 71.16, - ["Y"] = 38.18, - ["CD"] = 0 - }, - [59] = - { - ["X"] = 70.62, - ["Y"] = 37.63, - ["CD"] = 0 - }, - [60] = - { - ["X"] = 69.98, - ["Y"] = 37.93, - ["CD"] = 0 - }, - [61] = - { - ["X"] = 69.85, - ["Y"] = 36.95, - ["CD"] = 0 - }, - [62] = - { - ["X"] = 69.11, - ["Y"] = 37.75, - ["CD"] = 0 - }, - [63] = - { - ["X"] = 68.09, - ["Y"] = 38.08, - ["CD"] = 0 - }, - [64] = - { - ["X"] = 68.51, - ["Y"] = 39.26, - ["CD"] = 0 - }, - [65] = - { - ["X"] = 67.77, - ["Y"] = 40.49, - ["CD"] = 0 - }, - [66] = - { - ["X"] = 67.39, - ["Y"] = 41.98, - ["CD"] = 0 - }, - [67] = - { - ["X"] = 66.73, - ["Y"] = 42.58, - ["CD"] = 0 - }, - [68] = - { - ["X"] = 67.01, - ["Y"] = 43.27, - ["CD"] = 0 - }, - [69] = - { - ["X"] = 66.64, - ["Y"] = 43.31, - ["CD"] = 0 - }, - [70] = - { - ["X"] = 65.25, - ["Y"] = 48.23, - ["CD"] = 0 - }, - [71] = - { - ["X"] = 64.43, - ["Y"] = 47.44, - ["CD"] = 0 - }, - [72] = - { - ["X"] = 64.3, - ["Y"] = 49.23, - ["CD"] = 0 - }, - [73] = - { - ["X"] = 63.4, - ["Y"] = 49.43, - ["CD"] = 0 - }, - [74] = - { - ["X"] = 61.43, - ["Y"] = 49.66, - ["CD"] = 0 - }, - [75] = - { - ["X"] = 62.74, - ["Y"] = 50.15, - ["CD"] = 0 - }, - [76] = - { - ["X"] = 62.33, - ["Y"] = 50.62, - ["CD"] = 0 - }, - [77] = - { - ["X"] = 61.77, - ["Y"] = 51.52, - ["CD"] = 0 - }, - [78] = - { - ["X"] = 61.5, - ["Y"] = 53.26, - ["CD"] = 0 - }, - [79] = - { - ["X"] = 61.08, - ["Y"] = 54.15, - ["CD"] = 0 - }, - [80] = - { - ["X"] = 59.76, - ["Y"] = 53.98, - ["CD"] = 0 - }, - [81] = - { - ["X"] = 59.06, - ["Y"] = 52.97, - ["CD"] = 0 - }, - [82] = - { - ["X"] = 59.38, - ["Y"] = 51.04, - ["CD"] = 0 - }, - [83] = - { - ["X"] = 59.05, - ["Y"] = 51.07, - ["CD"] = 0 - }, - [84] = - { - ["X"] = 58.05, - ["Y"] = 51.4, - ["CD"] = 0 - }, - [85] = - { - ["X"] = 57.23, - ["Y"] = 50.59, - ["CD"] = 0 - }, - [86] = - { - ["X"] = 56.64, - ["Y"] = 50.71, - ["CD"] = 0 - }, - [87] = - { - ["X"] = 53.07, - ["Y"] = 53.33, - ["CD"] = 0 - }, - [88] = - { - ["X"] = 53.94, - ["Y"] = 54.38, - ["CD"] = 0 - }, - [89] = - { - ["X"] = 53.44, - ["Y"] = 54.49, - ["CD"] = 0 - }, - [90] = - { - ["X"] = 52.19, - ["Y"] = 56.4, - ["CD"] = 0 - }, - [91] = - { - ["X"] = 51.96, - ["Y"] = 58.49, - ["CD"] = 0 - }, - [92] = - { - ["X"] = 51.66, - ["Y"] = 58.85, - ["CD"] = 0 - }, - [93] = - { - ["X"] = 51.36, - ["Y"] = 59.61, - ["CD"] = 0 - }, - [94] = - { - ["X"] = 52, - ["Y"] = 60.49, - ["CD"] = 0 - }, - [95] = - { - ["X"] = 53.76, - ["Y"] = 58.93, - ["CD"] = 0 - }, - [96] = - { - ["X"] = 53.43, - ["Y"] = 58.03, - ["CD"] = 0 - }, - [97] = - { - ["X"] = 52.75, - ["Y"] = 56.71, - ["CD"] = 0 - }, - [98] = - { - ["X"] = 53.34, - ["Y"] = 56.63, - ["CD"] = 0 - }, - [99] = - { - ["X"] = 53.46, - ["Y"] = 55.97, - ["CD"] = 0 - }, - [100] = - { - ["X"] = 52.99, - ["Y"] = 55.07, - ["CD"] = 0 - }, - [101] = - { - ["X"] = 52.69, - ["Y"] = 53.46, - ["CD"] = 0 - }, - [102] = - { - ["X"] = 51.16, - ["Y"] = 53.73, - ["CD"] = 0 - }, - [103] = - { - ["X"] = 50.62, - ["Y"] = 53.1, - ["CD"] = 0 - }, - [104] = - { - ["X"] = 50.2, - ["Y"] = 52.37, - ["CD"] = 0 - }, - [105] = - { - ["X"] = 50.13, - ["Y"] = 50.4, - ["CD"] = 0 - }, - [106] = - { - ["X"] = 48.08, - ["Y"] = 50.93, - ["CD"] = 0 - }, - [107] = - { - ["X"] = 47.68, - ["Y"] = 48.92, - ["CD"] = 0 - }, - [108] = - { - ["X"] = 44.23, - ["Y"] = 45.97, - ["CD"] = 0 - }, - [109] = - { - ["X"] = 45.22, - ["Y"] = 43.32, - ["CD"] = 0 - }, - [110] = - { - ["X"] = 45.69, - ["Y"] = 42.54, - ["CD"] = 0 - }, - [111] = - { - ["X"] = 46.28, - ["Y"] = 42.7, - ["CD"] = 0 - }, - [112] = - { - ["X"] = 48.34, - ["Y"] = 39.8, - ["CD"] = 0 - }, - [113] = - { - ["X"] = 49.36, - ["Y"] = 37.64, - ["CD"] = 0 - }, - [114] = - { - ["X"] = 47.3, - ["Y"] = 38.94, - ["CD"] = 0 - }, - [115] = - { - ["X"] = 42.38, - ["Y"] = 41.41, - ["CD"] = 0 - }, - [116] = - { - ["X"] = 42.36, - ["Y"] = 39.64, - ["CD"] = 0 - }, - [117] = - { - ["X"] = 42.97, - ["Y"] = 39.05, - ["CD"] = 0 - }, - [118] = - { - ["X"] = 42.41, - ["Y"] = 38.26, - ["CD"] = 0 - }, - [119] = - { - ["X"] = 40.83, - ["Y"] = 40.62, - ["CD"] = 0 - }, - [120] = - { - ["X"] = 41.68, - ["Y"] = 40.19, - ["CD"] = 0 - }, - [121] = - { - ["X"] = 61.22, - ["Y"] = 64.31, - ["CD"] = 0 - }, - [122] = - { - ["X"] = 56.67, - ["Y"] = 79.09, - ["CD"] = 0 - }, - [123] = - { - ["X"] = 73.25, - ["Y"] = 44.25, - ["CD"] = 0 - }, - [124] = - { - ["X"] = 73.25, - ["Y"] = 44.5, - ["CD"] = 0 - }, - [125] = - { - ["X"] = 69.24, - ["Y"] = 50.47, - ["CD"] = 0 - }, - [126] = - { - ["X"] = 64.32, - ["Y"] = 44.07, - ["CD"] = 0 - }, - [127] = - { - ["X"] = 62.95, - ["Y"] = 46.32, - ["CD"] = 0 - }, - [128] = - { - ["X"] = 63.56, - ["Y"] = 45.14, - ["CD"] = 0 - }, - [129] = - { - ["X"] = 68.35, - ["Y"] = 58.98, - ["CD"] = 0 - }, - [130] = - { - ["X"] = 71.6, - ["Y"] = 52.25, - ["CD"] = 0 - }, - [131] = - { - ["X"] = 82.09, - ["Y"] = 57.01, - ["CD"] = 0 - }, - [132] = - { - ["X"] = 80.93, - ["Y"] = 56.31, - ["CD"] = 0 - }, - [133] = - { - ["X"] = 79.83, - ["Y"] = 64.42, - ["CD"] = 0 - }, - [134] = - { - ["X"] = 78.73, - ["Y"] = 63.87, - ["CD"] = 0 - }, - [135] = - { - ["X"] = 80.89, - ["Y"] = 63.18, - ["CD"] = 0 - }, - [136] = - { - ["X"] = 78.75, - ["Y"] = 58.41, - ["CD"] = 0 - }, - [137] = - { - ["X"] = 77.87, - ["Y"] = 57.58, - ["CD"] = 0 - }, - [138] = - { - ["X"] = 73.32, - ["Y"] = 59.52, - ["CD"] = 0 - }, - [139] = - { - ["X"] = 70.2, - ["Y"] = 58.54, - ["CD"] = 0 - }, - [140] = - { - ["X"] = 68.78, - ["Y"] = 54.4, - ["CD"] = 0 - }, - [141] = - { - ["X"] = 67.69, - ["Y"] = 59.37, - ["CD"] = 0 - }, - [142] = - { - ["X"] = 67.61, - ["Y"] = 54.47, - ["CD"] = 0 - }, - [143] = - { - ["X"] = 65.94, - ["Y"] = 52.25, - ["CD"] = 0 - }, - [144] = - { - ["X"] = 63.57, - ["Y"] = 55.84, - ["CD"] = 0 - }, - [145] = - { - ["X"] = 68.18, - ["Y"] = 50.25, - ["CD"] = 0 - }, - [146] = - { - ["X"] = 43.9, - ["Y"] = 58.83, - ["CD"] = 0 - }, - [147] = - { - ["X"] = 43.27, - ["Y"] = 81.62, - ["CD"] = 0 - }, - [148] = - { - ["X"] = 45.24, - ["Y"] = 75.28, - ["CD"] = 0 - }, - [149] = - { - ["X"] = 43.53, - ["Y"] = 70.2, - ["CD"] = 0 - }, - [150] = - { - ["X"] = 43.4, - ["Y"] = 71.29, - ["CD"] = 0 - }, - [151] = - { - ["X"] = 48, - ["Y"] = 67.59, - ["CD"] = 0 - }, - [152] = - { - ["X"] = 41.82, - ["Y"] = 65.83, - ["CD"] = 0 - }, - [153] = - { - ["X"] = 41.11, - ["Y"] = 65.23, - ["CD"] = 0 - }, - [154] = - { - ["X"] = 37.84, - ["Y"] = 64.52, - ["CD"] = 0 - }, - [155] = - { - ["X"] = 41.31, - ["Y"] = 58.59, - ["CD"] = 0 - }, - [156] = - { - ["X"] = 42.35, - ["Y"] = 61.07, - ["CD"] = 0 - }, - [157] = - { - ["X"] = 38.37, - ["Y"] = 56.57, - ["CD"] = 0 - }, - [158] = - { - ["X"] = 37.66, - ["Y"] = 55.01, - ["CD"] = 0 - }, - [159] = - { - ["X"] = 44.11, - ["Y"] = 44.07, - ["CD"] = 0 - }, - [160] = - { - ["X"] = 46.61, - ["Y"] = 40.23, - ["CD"] = 0 - }, - [161] = - { - ["X"] = 44.65, - ["Y"] = 38.78, - ["CD"] = 0 - }, - [162] = - { - ["X"] = 47.94, - ["Y"] = 35.39, - ["CD"] = 0 - }, - [163] = - { - ["X"] = 43.25, - ["Y"] = 31.36, - ["CD"] = 0 - }, - [164] = - { - ["X"] = 45.4, - ["Y"] = 30.26, - ["CD"] = 0 - }, - [165] = - { - ["X"] = 43.1, - ["Y"] = 26.67, - ["CD"] = 0 - }, - [166] = - { - ["X"] = 45.47, - ["Y"] = 25.53, - ["CD"] = 0 - }, - [167] = - { - ["X"] = 50.15, - ["Y"] = 21.58, - ["CD"] = 0 - }, - [168] = - { - ["X"] = 48.03, - ["Y"] = 21.48, - ["CD"] = 0 - }, - [169] = - { - ["X"] = 62, - ["Y"] = 25.52, - ["CD"] = 0 - }, - [170] = - { - ["X"] = 60.54, - ["Y"] = 29.82, - ["CD"] = 0 - }, - [171] = - { - ["X"] = 52, - ["Y"] = 25.83, - ["CD"] = 0 - }, - [172] = - { - ["X"] = 50.54, - ["Y"] = 35.56, - ["CD"] = 0 - }, - [173] = - { - ["X"] = 44.97, - ["Y"] = 39.08, - ["CD"] = 0 - }, - [174] = - { - ["X"] = 42.83, - ["Y"] = 42.04, - ["CD"] = 0 - }, - [175] = - { - ["X"] = 43.57, - ["Y"] = 45.19, - ["CD"] = 0 - }, - [176] = - { - ["X"] = 43.59, - ["Y"] = 46.2, - ["CD"] = 0 - }, - [177] = - { - ["X"] = 49.47, - ["Y"] = 49.89, - ["CD"] = 0 - }, - [178] = - { - ["X"] = 48.93, - ["Y"] = 49.78, - ["CD"] = 0 - }, - [179] = - { - ["X"] = 43.63, - ["Y"] = 38.21, - ["CD"] = 0 - }, - [180] = - { - ["X"] = 45.98, - ["Y"] = 38.79, - ["CD"] = 0 - }, - [181] = - { - ["X"] = 44.19, - ["Y"] = 40.82, - ["CD"] = 0 - }, - [182] = - { - ["X"] = 43.7, - ["Y"] = 42.61, - ["CD"] = 0 - }, - [183] = - { - ["X"] = 44.29, - ["Y"] = 46.69, - ["CD"] = 0 - }, - [184] = - { - ["X"] = 40.96, - ["Y"] = 37.98, - ["CD"] = 0 - }, - [185] = - { - ["X"] = 42.18, - ["Y"] = 36.75, - ["CD"] = 0 - }, - [186] = - { - ["X"] = 28.74, - ["Y"] = 46.9, - ["CD"] = 0 - }, - [187] = - { - ["X"] = 29.32, - ["Y"] = 47.14, - ["CD"] = 0 - }, - [188] = - { - ["X"] = 30.43, - ["Y"] = 51.49, - ["CD"] = 0 - }, - [189] = - { - ["X"] = 34.47, - ["Y"] = 45.62, - ["CD"] = 0 - }, - [190] = - { - ["X"] = 28.01, - ["Y"] = 41.97, - ["CD"] = 0 - }, - [191] = - { - ["X"] = 33.22, - ["Y"] = 43.93, - ["CD"] = 0 - }, - [192] = - { - ["X"] = 34.45, - ["Y"] = 42.11, - ["CD"] = 0 - }, - [193] = - { - ["X"] = 36.37, - ["Y"] = 40.26, - ["CD"] = 0 - }, - [194] = - { - ["X"] = 38.14, - ["Y"] = 23.01, - ["CD"] = 0 - }, - [195] = - { - ["X"] = 43.17, - ["Y"] = 21.07, - ["CD"] = 0 - }, - [196] = - { - ["X"] = 35.77, - ["Y"] = 27.54, - ["CD"] = 0 - }, - [197] = - { - ["X"] = 63.95, - ["Y"] = 62.4, - ["CD"] = 0 - }, - [198] = - { - ["X"] = 65.8, - ["Y"] = 58.06, - ["CD"] = 0 - }, - [199] = - { - ["X"] = 59.47, - ["Y"] = 56.02, - ["CD"] = 0 - }, - [200] = - { - ["X"] = 60.84, - ["Y"] = 55.71, - ["CD"] = 0 -} +aura_env.herbs = { + [1] = { + ["X"] = 47.24, + ["Y"] = 55.62, + ["CD"] = 0, + }, + [2] = { + ["X"] = 51.47, + ["Y"] = 55.4, + ["CD"] = 0, + }, + [3] = { + ["X"] = 49.09, + ["Y"] = 52.04, + ["CD"] = 0, + }, + [4] = { + ["X"] = 48.14, + ["Y"] = 53.66, + ["CD"] = 0, + }, + [5] = { + ["X"] = 45.46, + ["Y"] = 53.33, + ["CD"] = 0, + }, + [6] = { + ["X"] = 42.97, + ["Y"] = 59.67, + ["CD"] = 0, + }, + [7] = { + ["X"] = 42.91, + ["Y"] = 57.7, + ["CD"] = 0, + }, + [8] = { + ["X"] = 42.8, + ["Y"] = 56.74, + ["CD"] = 0, + }, + [9] = { + ["X"] = 41.94, + ["Y"] = 53.95, + ["CD"] = 0, + }, + [10] = { + ["X"] = 39.66, + ["Y"] = 53.74, + ["CD"] = 0, + }, + [11] = { + ["X"] = 40.06, + ["Y"] = 52.65, + ["CD"] = 0, + }, + [12] = { + ["X"] = 41.77, + ["Y"] = 49.95, + ["CD"] = 0, + }, + [13] = { + ["X"] = 42.6, + ["Y"] = 49.17, + ["CD"] = 0, + }, + [14] = { + ["X"] = 42.02, + ["Y"] = 50.81, + ["CD"] = 0, + }, + [15] = { + ["X"] = 42.54, + ["Y"] = 52.47, + ["CD"] = 0, + }, + [16] = { + ["X"] = 42.86, + ["Y"] = 51.62, + ["CD"] = 0, + }, + [17] = { + ["X"] = 44.56, + ["Y"] = 52.7, + ["CD"] = 0, + }, + [18] = { + ["X"] = 43.88, + ["Y"] = 52.96, + ["CD"] = 0, + }, + [19] = { + ["X"] = 43.66, + ["Y"] = 54.02, + ["CD"] = 0, + }, + [20] = { + ["X"] = 44.39, + ["Y"] = 54.51, + ["CD"] = 0, + }, + [21] = { + ["X"] = 44.57, + ["Y"] = 56.26, + ["CD"] = 0, + }, + [22] = { + ["X"] = 44.17, + ["Y"] = 58.37, + ["CD"] = 0, + }, + [23] = { + ["X"] = 46.02, + ["Y"] = 58.16, + ["CD"] = 0, + }, + [24] = { + ["X"] = 45.54, + ["Y"] = 56.28, + ["CD"] = 0, + }, + [25] = { + ["X"] = 45.64, + ["Y"] = 55.67, + ["CD"] = 0, + }, + [26] = { + ["X"] = 45.88, + ["Y"] = 54.95, + ["CD"] = 0, + }, + [27] = { + ["X"] = 75.52, + ["Y"] = 64.36, + ["CD"] = 0, + }, + [28] = { + ["X"] = 74.64, + ["Y"] = 63.4, + ["CD"] = 0, + }, + [29] = { + ["X"] = 75.47, + ["Y"] = 61.49, + ["CD"] = 0, + }, + [30] = { + ["X"] = 76.04, + ["Y"] = 62.25, + ["CD"] = 0, + }, + [31] = { + ["X"] = 76.34, + ["Y"] = 62.88, + ["CD"] = 0, + }, + [32] = { + ["X"] = 75.6, + ["Y"] = 61.16, + ["CD"] = 0, + }, + [33] = { + ["X"] = 74.48, + ["Y"] = 61.07, + ["CD"] = 0, + }, + [34] = { + ["X"] = 73.1, + ["Y"] = 61.55, + ["CD"] = 0, + }, + [35] = { + ["X"] = 71.6, + ["Y"] = 61.94, + ["CD"] = 0, + }, + [36] = { + ["X"] = 71.17, + ["Y"] = 61.79, + ["CD"] = 0, + }, + [37] = { + ["X"] = 70.7, + ["Y"] = 61.82, + ["CD"] = 0, + }, + [38] = { + ["X"] = 69.93, + ["Y"] = 60.51, + ["CD"] = 0, + }, + [39] = { + ["X"] = 68.88, + ["Y"] = 62.24, + ["CD"] = 0, + }, + [40] = { + ["X"] = 68.02, + ["Y"] = 62.34, + ["CD"] = 0, + }, + [41] = { + ["X"] = 68.38, + ["Y"] = 60.4, + ["CD"] = 0, + }, + [42] = { + ["X"] = 68.09, + ["Y"] = 58.09, + ["CD"] = 0, + }, + [43] = { + ["X"] = 68.51, + ["Y"] = 57.47, + ["CD"] = 0, + }, + [44] = { + ["X"] = 69.32, + ["Y"] = 57.12, + ["CD"] = 0, + }, + [45] = { + ["X"] = 70.52, + ["Y"] = 56.23, + ["CD"] = 0, + }, + [46] = { + ["X"] = 68.72, + ["Y"] = 55.81, + ["CD"] = 0, + }, + [47] = { + ["X"] = 68.24, + ["Y"] = 55.37, + ["CD"] = 0, + }, + [48] = { + ["X"] = 67.73, + ["Y"] = 53.38, + ["CD"] = 0, + }, + [49] = { + ["X"] = 67.47, + ["Y"] = 50.94, + ["CD"] = 0, + }, + [50] = { + ["X"] = 66.2, + ["Y"] = 50.65, + ["CD"] = 0, + }, + [51] = { + ["X"] = 66.13, + ["Y"] = 49.8, + ["CD"] = 0, + }, + [52] = { + ["X"] = 65.36, + ["Y"] = 46.62, + ["CD"] = 0, + }, + [53] = { + ["X"] = 68.76, + ["Y"] = 42.62, + ["CD"] = 0, + }, + [54] = { + ["X"] = 69.77, + ["Y"] = 41.67, + ["CD"] = 0, + }, + [55] = { + ["X"] = 70.11, + ["Y"] = 40.61, + ["CD"] = 0, + }, + [56] = { + ["X"] = 70.23, + ["Y"] = 39.9, + ["CD"] = 0, + }, + [57] = { + ["X"] = 70.45, + ["Y"] = 39.16, + ["CD"] = 0, + }, + [58] = { + ["X"] = 71.16, + ["Y"] = 38.18, + ["CD"] = 0, + }, + [59] = { + ["X"] = 70.62, + ["Y"] = 37.63, + ["CD"] = 0, + }, + [60] = { + ["X"] = 69.98, + ["Y"] = 37.93, + ["CD"] = 0, + }, + [61] = { + ["X"] = 69.85, + ["Y"] = 36.95, + ["CD"] = 0, + }, + [62] = { + ["X"] = 69.11, + ["Y"] = 37.75, + ["CD"] = 0, + }, + [63] = { + ["X"] = 68.09, + ["Y"] = 38.08, + ["CD"] = 0, + }, + [64] = { + ["X"] = 68.51, + ["Y"] = 39.26, + ["CD"] = 0, + }, + [65] = { + ["X"] = 67.77, + ["Y"] = 40.49, + ["CD"] = 0, + }, + [66] = { + ["X"] = 67.39, + ["Y"] = 41.98, + ["CD"] = 0, + }, + [67] = { + ["X"] = 66.73, + ["Y"] = 42.58, + ["CD"] = 0, + }, + [68] = { + ["X"] = 67.01, + ["Y"] = 43.27, + ["CD"] = 0, + }, + [69] = { + ["X"] = 66.64, + ["Y"] = 43.31, + ["CD"] = 0, + }, + [70] = { + ["X"] = 65.25, + ["Y"] = 48.23, + ["CD"] = 0, + }, + [71] = { + ["X"] = 64.43, + ["Y"] = 47.44, + ["CD"] = 0, + }, + [72] = { + ["X"] = 64.3, + ["Y"] = 49.23, + ["CD"] = 0, + }, + [73] = { + ["X"] = 63.4, + ["Y"] = 49.43, + ["CD"] = 0, + }, + [74] = { + ["X"] = 61.43, + ["Y"] = 49.66, + ["CD"] = 0, + }, + [75] = { + ["X"] = 62.74, + ["Y"] = 50.15, + ["CD"] = 0, + }, + [76] = { + ["X"] = 62.33, + ["Y"] = 50.62, + ["CD"] = 0, + }, + [77] = { + ["X"] = 61.77, + ["Y"] = 51.52, + ["CD"] = 0, + }, + [78] = { + ["X"] = 61.5, + ["Y"] = 53.26, + ["CD"] = 0, + }, + [79] = { + ["X"] = 61.08, + ["Y"] = 54.15, + ["CD"] = 0, + }, + [80] = { + ["X"] = 59.76, + ["Y"] = 53.98, + ["CD"] = 0, + }, + [81] = { + ["X"] = 59.06, + ["Y"] = 52.97, + ["CD"] = 0, + }, + [82] = { + ["X"] = 59.38, + ["Y"] = 51.04, + ["CD"] = 0, + }, + [83] = { + ["X"] = 59.05, + ["Y"] = 51.07, + ["CD"] = 0, + }, + [84] = { + ["X"] = 58.05, + ["Y"] = 51.4, + ["CD"] = 0, + }, + [85] = { + ["X"] = 57.23, + ["Y"] = 50.59, + ["CD"] = 0, + }, + [86] = { + ["X"] = 56.64, + ["Y"] = 50.71, + ["CD"] = 0, + }, + [87] = { + ["X"] = 53.07, + ["Y"] = 53.33, + ["CD"] = 0, + }, + [88] = { + ["X"] = 53.94, + ["Y"] = 54.38, + ["CD"] = 0, + }, + [89] = { + ["X"] = 53.44, + ["Y"] = 54.49, + ["CD"] = 0, + }, + [90] = { + ["X"] = 52.19, + ["Y"] = 56.4, + ["CD"] = 0, + }, + [91] = { + ["X"] = 51.96, + ["Y"] = 58.49, + ["CD"] = 0, + }, + [92] = { + ["X"] = 51.66, + ["Y"] = 58.85, + ["CD"] = 0, + }, + [93] = { + ["X"] = 51.36, + ["Y"] = 59.61, + ["CD"] = 0, + }, + [94] = { + ["X"] = 52, + ["Y"] = 60.49, + ["CD"] = 0, + }, + [95] = { + ["X"] = 53.76, + ["Y"] = 58.93, + ["CD"] = 0, + }, + [96] = { + ["X"] = 53.43, + ["Y"] = 58.03, + ["CD"] = 0, + }, + [97] = { + ["X"] = 52.75, + ["Y"] = 56.71, + ["CD"] = 0, + }, + [98] = { + ["X"] = 53.34, + ["Y"] = 56.63, + ["CD"] = 0, + }, + [99] = { + ["X"] = 53.46, + ["Y"] = 55.97, + ["CD"] = 0, + }, + [100] = { + ["X"] = 52.99, + ["Y"] = 55.07, + ["CD"] = 0, + }, + [101] = { + ["X"] = 52.69, + ["Y"] = 53.46, + ["CD"] = 0, + }, + [102] = { + ["X"] = 51.16, + ["Y"] = 53.73, + ["CD"] = 0, + }, + [103] = { + ["X"] = 50.62, + ["Y"] = 53.1, + ["CD"] = 0, + }, + [104] = { + ["X"] = 50.2, + ["Y"] = 52.37, + ["CD"] = 0, + }, + [105] = { + ["X"] = 50.13, + ["Y"] = 50.4, + ["CD"] = 0, + }, + [106] = { + ["X"] = 48.08, + ["Y"] = 50.93, + ["CD"] = 0, + }, + [107] = { + ["X"] = 47.68, + ["Y"] = 48.92, + ["CD"] = 0, + }, + [108] = { + ["X"] = 44.23, + ["Y"] = 45.97, + ["CD"] = 0, + }, + [109] = { + ["X"] = 45.22, + ["Y"] = 43.32, + ["CD"] = 0, + }, + [110] = { + ["X"] = 45.69, + ["Y"] = 42.54, + ["CD"] = 0, + }, + [111] = { + ["X"] = 46.28, + ["Y"] = 42.7, + ["CD"] = 0, + }, + [112] = { + ["X"] = 48.34, + ["Y"] = 39.8, + ["CD"] = 0, + }, + [113] = { + ["X"] = 49.36, + ["Y"] = 37.64, + ["CD"] = 0, + }, + [114] = { + ["X"] = 47.3, + ["Y"] = 38.94, + ["CD"] = 0, + }, + [115] = { + ["X"] = 42.38, + ["Y"] = 41.41, + ["CD"] = 0, + }, + [116] = { + ["X"] = 42.36, + ["Y"] = 39.64, + ["CD"] = 0, + }, + [117] = { + ["X"] = 42.97, + ["Y"] = 39.05, + ["CD"] = 0, + }, + [118] = { + ["X"] = 42.41, + ["Y"] = 38.26, + ["CD"] = 0, + }, + [119] = { + ["X"] = 40.83, + ["Y"] = 40.62, + ["CD"] = 0, + }, + [120] = { + ["X"] = 41.68, + ["Y"] = 40.19, + ["CD"] = 0, + }, + [121] = { + ["X"] = 61.22, + ["Y"] = 64.31, + ["CD"] = 0, + }, + [122] = { + ["X"] = 56.67, + ["Y"] = 79.09, + ["CD"] = 0, + }, + [123] = { + ["X"] = 73.25, + ["Y"] = 44.25, + ["CD"] = 0, + }, + [124] = { + ["X"] = 73.25, + ["Y"] = 44.5, + ["CD"] = 0, + }, + [125] = { + ["X"] = 69.24, + ["Y"] = 50.47, + ["CD"] = 0, + }, + [126] = { + ["X"] = 64.32, + ["Y"] = 44.07, + ["CD"] = 0, + }, + [127] = { + ["X"] = 62.95, + ["Y"] = 46.32, + ["CD"] = 0, + }, + [128] = { + ["X"] = 63.56, + ["Y"] = 45.14, + ["CD"] = 0, + }, + [129] = { + ["X"] = 68.35, + ["Y"] = 58.98, + ["CD"] = 0, + }, + [130] = { + ["X"] = 71.6, + ["Y"] = 52.25, + ["CD"] = 0, + }, + [131] = { + ["X"] = 82.09, + ["Y"] = 57.01, + ["CD"] = 0, + }, + [132] = { + ["X"] = 80.93, + ["Y"] = 56.31, + ["CD"] = 0, + }, + [133] = { + ["X"] = 79.83, + ["Y"] = 64.42, + ["CD"] = 0, + }, + [134] = { + ["X"] = 78.73, + ["Y"] = 63.87, + ["CD"] = 0, + }, + [135] = { + ["X"] = 80.89, + ["Y"] = 63.18, + ["CD"] = 0, + }, + [136] = { + ["X"] = 78.75, + ["Y"] = 58.41, + ["CD"] = 0, + }, + [137] = { + ["X"] = 77.87, + ["Y"] = 57.58, + ["CD"] = 0, + }, + [138] = { + ["X"] = 73.32, + ["Y"] = 59.52, + ["CD"] = 0, + }, + [139] = { + ["X"] = 70.2, + ["Y"] = 58.54, + ["CD"] = 0, + }, + [140] = { + ["X"] = 68.78, + ["Y"] = 54.4, + ["CD"] = 0, + }, + [141] = { + ["X"] = 67.69, + ["Y"] = 59.37, + ["CD"] = 0, + }, + [142] = { + ["X"] = 67.61, + ["Y"] = 54.47, + ["CD"] = 0, + }, + [143] = { + ["X"] = 65.94, + ["Y"] = 52.25, + ["CD"] = 0, + }, + [144] = { + ["X"] = 63.57, + ["Y"] = 55.84, + ["CD"] = 0, + }, + [145] = { + ["X"] = 68.18, + ["Y"] = 50.25, + ["CD"] = 0, + }, + [146] = { + ["X"] = 43.9, + ["Y"] = 58.83, + ["CD"] = 0, + }, + [147] = { + ["X"] = 43.27, + ["Y"] = 81.62, + ["CD"] = 0, + }, + [148] = { + ["X"] = 45.24, + ["Y"] = 75.28, + ["CD"] = 0, + }, + [149] = { + ["X"] = 43.53, + ["Y"] = 70.2, + ["CD"] = 0, + }, + [150] = { + ["X"] = 43.4, + ["Y"] = 71.29, + ["CD"] = 0, + }, + [151] = { + ["X"] = 48, + ["Y"] = 67.59, + ["CD"] = 0, + }, + [152] = { + ["X"] = 41.82, + ["Y"] = 65.83, + ["CD"] = 0, + }, + [153] = { + ["X"] = 41.11, + ["Y"] = 65.23, + ["CD"] = 0, + }, + [154] = { + ["X"] = 37.84, + ["Y"] = 64.52, + ["CD"] = 0, + }, + [155] = { + ["X"] = 41.31, + ["Y"] = 58.59, + ["CD"] = 0, + }, + [156] = { + ["X"] = 42.35, + ["Y"] = 61.07, + ["CD"] = 0, + }, + [157] = { + ["X"] = 38.37, + ["Y"] = 56.57, + ["CD"] = 0, + }, + [158] = { + ["X"] = 37.66, + ["Y"] = 55.01, + ["CD"] = 0, + }, + [159] = { + ["X"] = 44.11, + ["Y"] = 44.07, + ["CD"] = 0, + }, + [160] = { + ["X"] = 46.61, + ["Y"] = 40.23, + ["CD"] = 0, + }, + [161] = { + ["X"] = 44.65, + ["Y"] = 38.78, + ["CD"] = 0, + }, + [162] = { + ["X"] = 47.94, + ["Y"] = 35.39, + ["CD"] = 0, + }, + [163] = { + ["X"] = 43.25, + ["Y"] = 31.36, + ["CD"] = 0, + }, + [164] = { + ["X"] = 45.4, + ["Y"] = 30.26, + ["CD"] = 0, + }, + [165] = { + ["X"] = 43.1, + ["Y"] = 26.67, + ["CD"] = 0, + }, + [166] = { + ["X"] = 45.47, + ["Y"] = 25.53, + ["CD"] = 0, + }, + [167] = { + ["X"] = 50.15, + ["Y"] = 21.58, + ["CD"] = 0, + }, + [168] = { + ["X"] = 48.03, + ["Y"] = 21.48, + ["CD"] = 0, + }, + [169] = { + ["X"] = 62, + ["Y"] = 25.52, + ["CD"] = 0, + }, + [170] = { + ["X"] = 60.54, + ["Y"] = 29.82, + ["CD"] = 0, + }, + [171] = { + ["X"] = 52, + ["Y"] = 25.83, + ["CD"] = 0, + }, + [172] = { + ["X"] = 50.54, + ["Y"] = 35.56, + ["CD"] = 0, + }, + [173] = { + ["X"] = 44.97, + ["Y"] = 39.08, + ["CD"] = 0, + }, + [174] = { + ["X"] = 42.83, + ["Y"] = 42.04, + ["CD"] = 0, + }, + [175] = { + ["X"] = 43.57, + ["Y"] = 45.19, + ["CD"] = 0, + }, + [176] = { + ["X"] = 43.59, + ["Y"] = 46.2, + ["CD"] = 0, + }, + [177] = { + ["X"] = 49.47, + ["Y"] = 49.89, + ["CD"] = 0, + }, + [178] = { + ["X"] = 48.93, + ["Y"] = 49.78, + ["CD"] = 0, + }, + [179] = { + ["X"] = 43.63, + ["Y"] = 38.21, + ["CD"] = 0, + }, + [180] = { + ["X"] = 45.98, + ["Y"] = 38.79, + ["CD"] = 0, + }, + [181] = { + ["X"] = 44.19, + ["Y"] = 40.82, + ["CD"] = 0, + }, + [182] = { + ["X"] = 43.7, + ["Y"] = 42.61, + ["CD"] = 0, + }, + [183] = { + ["X"] = 44.29, + ["Y"] = 46.69, + ["CD"] = 0, + }, + [184] = { + ["X"] = 40.96, + ["Y"] = 37.98, + ["CD"] = 0, + }, + [185] = { + ["X"] = 42.18, + ["Y"] = 36.75, + ["CD"] = 0, + }, + [186] = { + ["X"] = 28.74, + ["Y"] = 46.9, + ["CD"] = 0, + }, + [187] = { + ["X"] = 29.32, + ["Y"] = 47.14, + ["CD"] = 0, + }, + [188] = { + ["X"] = 30.43, + ["Y"] = 51.49, + ["CD"] = 0, + }, + [189] = { + ["X"] = 34.47, + ["Y"] = 45.62, + ["CD"] = 0, + }, + [190] = { + ["X"] = 28.01, + ["Y"] = 41.97, + ["CD"] = 0, + }, + [191] = { + ["X"] = 33.22, + ["Y"] = 43.93, + ["CD"] = 0, + }, + [192] = { + ["X"] = 34.45, + ["Y"] = 42.11, + ["CD"] = 0, + }, + [193] = { + ["X"] = 36.37, + ["Y"] = 40.26, + ["CD"] = 0, + }, + [194] = { + ["X"] = 38.14, + ["Y"] = 23.01, + ["CD"] = 0, + }, + [195] = { + ["X"] = 43.17, + ["Y"] = 21.07, + ["CD"] = 0, + }, + [196] = { + ["X"] = 35.77, + ["Y"] = 27.54, + ["CD"] = 0, + }, + [197] = { + ["X"] = 63.95, + ["Y"] = 62.4, + ["CD"] = 0, + }, + [198] = { + ["X"] = 65.8, + ["Y"] = 58.06, + ["CD"] = 0, + }, + [199] = { + ["X"] = 59.47, + ["Y"] = 56.02, + ["CD"] = 0, + }, + [200] = { + ["X"] = 60.84, + ["Y"] = 55.71, + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 50 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Foxflower.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Foxflower.lua index b2414aa..e53e481 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Foxflower.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Foxflower.lua @@ -1,1234 +1,1032 @@ -aura_env.herbs = -{ - [1] = - { - ["X"] = 39.04, - ["Y"] = 63.21, - ["CD"] = 0 - }, - [2] = - { - ["X"] = 42.24, - ["Y"] = 55.42, - ["CD"] = 0 - }, - [3] = - { - ["X"] = 43.3, - ["Y"] = 58.87, - ["CD"] = 0 - }, - [4] = - { - ["X"] = 40.39, - ["Y"] = 59.24, - ["CD"] = 0 - }, - [5] = - { - ["X"] = 42.39, - ["Y"] = 67.1, - ["CD"] = 0 - }, - [6] = - { - ["X"] = 37.19, - ["Y"] = 66.98, - ["CD"] = 0 - }, - [7] = - { - ["X"] = 42.21, - ["Y"] = 65.26, - ["CD"] = 0 - }, - [8] = - { - ["X"] = 42.86, - ["Y"] = 52.36, - ["CD"] = 0 - }, - [9] = - { - ["X"] = 44.42, - ["Y"] = 49.56, - ["CD"] = 0 - }, - [10] = - { - ["X"] = 46.31, - ["Y"] = 46.84, - ["CD"] = 0 - }, - [11] = - { - ["X"] = 44.32, - ["Y"] = 44.33, - ["CD"] = 0 - }, - [12] = - { - ["X"] = 47.06, - ["Y"] = 48.3, - ["CD"] = 0 - }, - [13] = - { - ["X"] = 46.96, - ["Y"] = 47.09, - ["CD"] = 0 - }, - [14] = - { - ["X"] = 57.3, - ["Y"] = 22.65, - ["CD"] = 0 - }, - [15] = - { - ["X"] = 57.13, - ["Y"] = 20.04, - ["CD"] = 0 - }, - [16] = - { - ["X"] = 56.54, - ["Y"] = 21.14, - ["CD"] = 0 - }, - [17] = - { - ["X"] = 55.97, - ["Y"] = 20.78, - ["CD"] = 0 - }, - [18] = - { - ["X"] = 56, - ["Y"] = 20.19, - ["CD"] = 0 - }, - [19] = - { - ["X"] = 55.94, - ["Y"] = 19.48, - ["CD"] = 0 - }, - [20] = - { - ["X"] = 54.72, - ["Y"] = 16.63, - ["CD"] = 0 - }, - [21] = - { - ["X"] = 55.63, - ["Y"] = 17.81, - ["CD"] = 0 - }, - [22] = - { - ["X"] = 55.27, - ["Y"] = 18.91, - ["CD"] = 0 - }, - [23] = - { - ["X"] = 55.32, - ["Y"] = 18.59, - ["CD"] = 0 - }, - [24] = - { - ["X"] = 41.11, - ["Y"] = 51.73, - ["CD"] = 0 - }, - [25] = - { - ["X"] = 42.6, - ["Y"] = 48.57, - ["CD"] = 0 - }, - [26] = - { - ["X"] = 43.68, - ["Y"] = 48.71, - ["CD"] = 0 - }, - [27] = - { - ["X"] = 39.67, - ["Y"] = 52.78, - ["CD"] = 0 - }, - [28] = - { - ["X"] = 40.85, - ["Y"] = 53.98, - ["CD"] = 0 - }, - [29] = - { - ["X"] = 42.82, - ["Y"] = 52.88, - ["CD"] = 0 - }, - [30] = - { - ["X"] = 41.21, - ["Y"] = 56.52, - ["CD"] = 0 - }, - [31] = - { - ["X"] = 39.74, - ["Y"] = 67.27, - ["CD"] = 0 - }, - [32] = - { - ["X"] = 40.77, - ["Y"] = 65.23, - ["CD"] = 0 - }, - [33] = - { - ["X"] = 37.33, - ["Y"] = 63.76, - ["CD"] = 0 - }, - [34] = - { - ["X"] = 37.5, - ["Y"] = 62.89, - ["CD"] = 0 - }, - [35] = - { - ["X"] = 37.72, - ["Y"] = 62.08, - ["CD"] = 0 - }, - [36] = - { - ["X"] = 40.68, - ["Y"] = 57.62, - ["CD"] = 0 - }, - [37] = - { - ["X"] = 50.04, - ["Y"] = 9, - ["CD"] = 0 - }, - [38] = - { - ["X"] = 47.51, - ["Y"] = 9.64, - ["CD"] = 0 - }, - [39] = - { - ["X"] = 45.07, - ["Y"] = 8.99, - ["CD"] = 0 - }, - [40] = - { - ["X"] = 42.96, - ["Y"] = 9.11, - ["CD"] = 0 - }, - [41] = - { - ["X"] = 43.26, - ["Y"] = 8.47, - ["CD"] = 0 - }, - [42] = - { - ["X"] = 42.69, - ["Y"] = 7.59, - ["CD"] = 0 - }, - [43] = - { - ["X"] = 45.72, - ["Y"] = 9.49, - ["CD"] = 0 - }, - [44] = - { - ["X"] = 46.02, - ["Y"] = 8.48, - ["CD"] = 0 - }, - [45] = - { - ["X"] = 44.75, - ["Y"] = 8.04, - ["CD"] = 0 - }, - [46] = - { - ["X"] = 44.62, - ["Y"] = 7.22, - ["CD"] = 0 - }, - [47] = - { - ["X"] = 41.25, - ["Y"] = 13, - ["CD"] = 0 - }, - [48] = - { - ["X"] = 41.24, - ["Y"] = 11.49, - ["CD"] = 0 - }, - [49] = - { - ["X"] = 42.07, - ["Y"] = 11.42, - ["CD"] = 0 - }, - [50] = - { - ["X"] = 44.2, - ["Y"] = 10.31, - ["CD"] = 0 - }, - [51] = - { - ["X"] = 43.54, - ["Y"] = 11.57, - ["CD"] = 0 - }, - [52] = - { - ["X"] = 44.12, - ["Y"] = 11.56, - ["CD"] = 0 - }, - [53] = - { - ["X"] = 45.67, - ["Y"] = 12.81, - ["CD"] = 0 - }, - [54] = - { - ["X"] = 45.6, - ["Y"] = 11.82, - ["CD"] = 0 - }, - [55] = - { - ["X"] = 48.04, - ["Y"] = 10.68, - ["CD"] = 0 - }, - [56] = - { - ["X"] = 48.1, - ["Y"] = 9.57, - ["CD"] = 0 - }, - [57] = - { - ["X"] = 50.88, - ["Y"] = 11.06, - ["CD"] = 0 - }, - [58] = - { - ["X"] = 50.51, - ["Y"] = 10.69, - ["CD"] = 0 - }, - [59] = - { - ["X"] = 50.02, - ["Y"] = 10.43, - ["CD"] = 0 - }, - [60] = - { - ["X"] = 49.54, - ["Y"] = 10.43, - ["CD"] = 0 - }, - [61] = - { - ["X"] = 48.84, - ["Y"] = 10.72, - ["CD"] = 0 - }, - [62] = - { - ["X"] = 48.44, - ["Y"] = 10.66, - ["CD"] = 0 - }, - [63] = - { - ["X"] = 47.95, - ["Y"] = 11.28, - ["CD"] = 0 - }, - [64] = - { - ["X"] = 46.49, - ["Y"] = 11.47, - ["CD"] = 0 - }, - [65] = - { - ["X"] = 47.16, - ["Y"] = 11.19, - ["CD"] = 0 - }, - [66] = - { - ["X"] = 56.04, - ["Y"] = 63.04, - ["CD"] = 0 - }, - [67] = - { - ["X"] = 56.46, - ["Y"] = 60.72, - ["CD"] = 0 - }, - [68] = - { - ["X"] = 57.51, - ["Y"] = 59.57, - ["CD"] = 0 - }, - [69] = - { - ["X"] = 57.31, - ["Y"] = 58.61, - ["CD"] = 0 - }, - [70] = - { - ["X"] = 56.29, - ["Y"] = 56.16, - ["CD"] = 0 - }, - [71] = - { - ["X"] = 56.93, - ["Y"] = 56.51, - ["CD"] = 0 - }, - [72] = - { - ["X"] = 57.33, - ["Y"] = 56.08, - ["CD"] = 0 - }, - [73] = - { - ["X"] = 57.78, - ["Y"] = 56.85, - ["CD"] = 0 - }, - [74] = - { - ["X"] = 57.95, - ["Y"] = 54.56, - ["CD"] = 0 - }, - [75] = - { - ["X"] = 57.54, - ["Y"] = 53.68, - ["CD"] = 0 - }, - [76] = - { - ["X"] = 57.15, - ["Y"] = 53.7, - ["CD"] = 0 - }, - [77] = - { - ["X"] = 55.34, - ["Y"] = 53.18, - ["CD"] = 0 - }, - [78] = - { - ["X"] = 55.2, - ["Y"] = 53.41, - ["CD"] = 0 - }, - [79] = - { - ["X"] = 56.17, - ["Y"] = 54.2, - ["CD"] = 0 - }, - [80] = - { - ["X"] = 55.99, - ["Y"] = 55.43, - ["CD"] = 0 - }, - [81] = - { - ["X"] = 55.9, - ["Y"] = 56.79, - ["CD"] = 0 - }, - [82] = - { - ["X"] = 57.56, - ["Y"] = 57.6, - ["CD"] = 0 - }, - [83] = - { - ["X"] = 55.89, - ["Y"] = 59.48, - ["CD"] = 0 - }, - [84] = - { - ["X"] = 55.11, - ["Y"] = 61.2, - ["CD"] = 0 - }, - [85] = - { - ["X"] = 39, - ["Y"] = 40.8, - ["CD"] = 0 - }, - [86] = - { - ["X"] = 39.15, - ["Y"] = 39.51, - ["CD"] = 0 - }, - [87] = - { - ["X"] = 40.15, - ["Y"] = 36.93, - ["CD"] = 0 - }, - [88] = - { - ["X"] = 40.41, - ["Y"] = 37.67, - ["CD"] = 0 - }, - [89] = - { - ["X"] = 40.55, - ["Y"] = 36.19, - ["CD"] = 0 - }, - [90] = - { - ["X"] = 41.38, - ["Y"] = 36.45, - ["CD"] = 0 - }, - [91] = - { - ["X"] = 41.54, - ["Y"] = 35.29, - ["CD"] = 0 - }, - [92] = - { - ["X"] = 41.97, - ["Y"] = 33.67, - ["CD"] = 0 - }, - [93] = - { - ["X"] = 41.46, - ["Y"] = 31.24, - ["CD"] = 0 - }, - [94] = - { - ["X"] = 41.4, - ["Y"] = 28.92, - ["CD"] = 0 - }, - [95] = - { - ["X"] = 40.79, - ["Y"] = 29.51, - ["CD"] = 0 - }, - [96] = - { - ["X"] = 42.57, - ["Y"] = 30.29, - ["CD"] = 0 - }, - [97] = - { - ["X"] = 46.38, - ["Y"] = 32.35, - ["CD"] = 0 - }, - [98] = - { - ["X"] = 45.3, - ["Y"] = 32.49, - ["CD"] = 0 - }, - [99] = - { - ["X"] = 44.18, - ["Y"] = 33.11, - ["CD"] = 0 - }, - [100] = - { - ["X"] = 44.31, - ["Y"] = 32.62, - ["CD"] = 0 - }, - [101] = - { - ["X"] = 44.76, - ["Y"] = 30.4, - ["CD"] = 0 - }, - [102] = - { - ["X"] = 37.07, - ["Y"] = 19.85, - ["CD"] = 0 - }, - [103] = - { - ["X"] = 36.06, - ["Y"] = 20.92, - ["CD"] = 0 - }, - [104] = - { - ["X"] = 32.68, - ["Y"] = 23.7, - ["CD"] = 0 - }, - [105] = - { - ["X"] = 33.36, - ["Y"] = 21.36, - ["CD"] = 0 - }, - [106] = - { - ["X"] = 34.62, - ["Y"] = 22.6, - ["CD"] = 0 - }, - [107] = - { - ["X"] = 35.26, - ["Y"] = 23.87, - ["CD"] = 0 - }, - [108] = - { - ["X"] = 36.27, - ["Y"] = 23.14, - ["CD"] = 0 - }, - [109] = - { - ["X"] = 34.74, - ["Y"] = 23.43, - ["CD"] = 0 - }, - [110] = - { - ["X"] = 34.05, - ["Y"] = 24.22, - ["CD"] = 0 - }, - [111] = - { - ["X"] = 34.18, - ["Y"] = 27.2, - ["CD"] = 0 - }, - [112] = - { - ["X"] = 34.23, - ["Y"] = 25.22, - ["CD"] = 0 - }, - [113] = - { - ["X"] = 31.78, - ["Y"] = 35.09, - ["CD"] = 0 - }, - [114] = - { - ["X"] = 32.12, - ["Y"] = 34.17, - ["CD"] = 0 - }, - [115] = - { - ["X"] = 33.13, - ["Y"] = 33.36, - ["CD"] = 0 - }, - [116] = - { - ["X"] = 32.78, - ["Y"] = 32.58, - ["CD"] = 0 - }, - [117] = - { - ["X"] = 31.77, - ["Y"] = 31.79, - ["CD"] = 0 - }, - [118] = - { - ["X"] = 30.37, - ["Y"] = 28.05, - ["CD"] = 0 - }, - [119] = - { - ["X"] = 30.53, - ["Y"] = 29.81, - ["CD"] = 0 - }, - [120] = - { - ["X"] = 30.8, - ["Y"] = 30.32, - ["CD"] = 0 - }, - [121] = - { - ["X"] = 28.47, - ["Y"] = 40.12, - ["CD"] = 0 - }, - [122] = - { - ["X"] = 27.69, - ["Y"] = 41.13, - ["CD"] = 0 - }, - [123] = - { - ["X"] = 28.37, - ["Y"] = 41.03, - ["CD"] = 0 - }, - [124] = - { - ["X"] = 28.86, - ["Y"] = 42.47, - ["CD"] = 0 - }, - [125] = - { - ["X"] = 29.95, - ["Y"] = 41.71, - ["CD"] = 0 - }, - [126] = - { - ["X"] = 31.73, - ["Y"] = 38.3, - ["CD"] = 0 - }, - [127] = - { - ["X"] = 30.38, - ["Y"] = 39.04, - ["CD"] = 0 - }, - [128] = - { - ["X"] = 31.37, - ["Y"] = 36.91, - ["CD"] = 0 - }, - [129] = - { - ["X"] = 31.64, - ["Y"] = 35.8, - ["CD"] = 0 - }, - [130] = - { - ["X"] = 30.36, - ["Y"] = 34.88, - ["CD"] = 0 - }, - [131] = - { - ["X"] = 31.05, - ["Y"] = 33.51, - ["CD"] = 0 - }, - [132] = - { - ["X"] = 30.53, - ["Y"] = 33.11, - ["CD"] = 0 - }, - [133] = - { - ["X"] = 31.38, - ["Y"] = 30.83, - ["CD"] = 0 - }, - [134] = - { - ["X"] = 44.68, - ["Y"] = 54.55, - ["CD"] = 0 - }, - [135] = - { - ["X"] = 44.08, - ["Y"] = 54.55, - ["CD"] = 0 - }, - [136] = - { - ["X"] = 43.58, - ["Y"] = 54.82, - ["CD"] = 0 - }, - [137] = - { - ["X"] = 45.12, - ["Y"] = 50.11, - ["CD"] = 0 - }, - [138] = - { - ["X"] = 43.58, - ["Y"] = 45.93, - ["CD"] = 0 - }, - [139] = - { - ["X"] = 42.63, - ["Y"] = 45.65, - ["CD"] = 0 - }, - [140] = - { - ["X"] = 42.96, - ["Y"] = 46.27, - ["CD"] = 0 - }, - [141] = - { - ["X"] = 42.09, - ["Y"] = 46.82, - ["CD"] = 0 - }, - [142] = - { - ["X"] = 39.3, - ["Y"] = 46.88, - ["CD"] = 0 - }, - [143] = - { - ["X"] = 40.18, - ["Y"] = 47.01, - ["CD"] = 0 - }, - [144] = - { - ["X"] = 40.81, - ["Y"] = 46.97, - ["CD"] = 0 - }, - [145] = - { - ["X"] = 41.37, - ["Y"] = 48.56, - ["CD"] = 0 - }, - [146] = - { - ["X"] = 40.45, - ["Y"] = 48.42, - ["CD"] = 0 - }, - [147] = - { - ["X"] = 38.56, - ["Y"] = 50.23, - ["CD"] = 0 - }, - [148] = - { - ["X"] = 38.26, - ["Y"] = 49.28, - ["CD"] = 0 - }, - [149] = - { - ["X"] = 39.77, - ["Y"] = 49.03, - ["CD"] = 0 - }, - [150] = - { - ["X"] = 39.89, - ["Y"] = 49.73, - ["CD"] = 0 - }, - [151] = - { - ["X"] = 39.97, - ["Y"] = 50.65, - ["CD"] = 0 - }, - [152] = - { - ["X"] = 40.15, - ["Y"] = 51.03, - ["CD"] = 0 - }, - [153] = - { - ["X"] = 58.81, - ["Y"] = 62.31, - ["CD"] = 0 - }, - [154] = - { - ["X"] = 55.76, - ["Y"] = 65.74, - ["CD"] = 0 - }, - [155] = - { - ["X"] = 52.04, - ["Y"] = 58.38, - ["CD"] = 0 - }, - [156] = - { - ["X"] = 50.81, - ["Y"] = 67.32, - ["CD"] = 0 - }, - [157] = - { - ["X"] = 43.38, - ["Y"] = 66.19, - ["CD"] = 0 - }, - [158] = - { - ["X"] = 24.98, - ["Y"] = 59.43, - ["CD"] = 0 - }, - [159] = - { - ["X"] = 26.05, - ["Y"] = 63.62, - ["CD"] = 0 - }, - [160] = - { - ["X"] = 28.67, - ["Y"] = 55.49, - ["CD"] = 0 - }, - [161] = - { - ["X"] = 26.86, - ["Y"] = 41.18, - ["CD"] = 0 - }, - [162] = - { - ["X"] = 25.89, - ["Y"] = 44.55, - ["CD"] = 0 - }, - [163] = - { - ["X"] = 24.23, - ["Y"] = 43.43, - ["CD"] = 0 - }, - [164] = - { - ["X"] = 26.35, - ["Y"] = 39.24, - ["CD"] = 0 - }, - [165] = - { - ["X"] = 28.83, - ["Y"] = 35.34, - ["CD"] = 0 - }, - [166] = - { - ["X"] = 27.93, - ["Y"] = 30.52, - ["CD"] = 0 - }, - [167] = - { - ["X"] = 28.73, - ["Y"] = 28.61, - ["CD"] = 0 - }, - [168] = - { - ["X"] = 31.88, - ["Y"] = 26.11, - ["CD"] = 0 - }, - [169] = - { - ["X"] = 37.52, - ["Y"] = 15.31, - ["CD"] = 0 - }, - [170] = - { - ["X"] = 44.79, - ["Y"] = 12.36, - ["CD"] = 0 - }, - [171] = - { - ["X"] = 58.06, - ["Y"] = 22.18, - ["CD"] = 0 - }, - [172] = - { - ["X"] = 57.64, - ["Y"] = 19.03, - ["CD"] = 0 - }, - [173] = - { - ["X"] = 54.81, - ["Y"] = 16.28, - ["CD"] = 0 - }, - [174] = - { - ["X"] = 53.1, - ["Y"] = 13.37, - ["CD"] = 0 - }, - [175] = - { - ["X"] = 49.63, - ["Y"] = 13.87, - ["CD"] = 0 - }, - [176] = - { - ["X"] = 49.23, - ["Y"] = 8.72, - ["CD"] = 0 - }, - [177] = - { - ["X"] = 47.72, - ["Y"] = 6.15, - ["CD"] = 0 - }, - [178] = - { - ["X"] = 44.93, - ["Y"] = 7.4, - ["CD"] = 0 - }, - [179] = - { - ["X"] = 42.09, - ["Y"] = 27.58, - ["CD"] = 0 - }, - [180] = - { - ["X"] = 46.45, - ["Y"] = 26.28, - ["CD"] = 0 - }, - [181] = - { - ["X"] = 47.57, - ["Y"] = 24.96, - ["CD"] = 0 - }, - [182] = - { - ["X"] = 48.31, - ["Y"] = 29.71, - ["CD"] = 0 - }, - [183] = - { - ["X"] = 35.86, - ["Y"] = 38.62, - ["CD"] = 0 - }, - [184] = - { - ["X"] = 40.33, - ["Y"] = 33.71, - ["CD"] = 0 - }, - [185] = - { - ["X"] = 36.87, - ["Y"] = 35.15, - ["CD"] = 0 - }, - [186] = - { - ["X"] = 37.26, - ["Y"] = 33.85, - ["CD"] = 0 - }, - [187] = - { - ["X"] = 42.47, - ["Y"] = 51.44, - ["CD"] = 0 - }, - [188] = - { - ["X"] = 42.21, - ["Y"] = 54.16, - ["CD"] = 0 - }, - [189] = - { - ["X"] = 44.95, - ["Y"] = 55.74, - ["CD"] = 0 - }, - [190] = - { - ["X"] = 52, - ["Y"] = 32.57, - ["CD"] = 0 - }, - [191] = - { - ["X"] = 52.49, - ["Y"] = 34.19, - ["CD"] = 0 - }, - [192] = - { - ["X"] = 52.71, - ["Y"] = 39.16, - ["CD"] = 0 - }, - [193] = - { - ["X"] = 54.4, - ["Y"] = 50.27, - ["CD"] = 0 - }, - [194] = - { - ["X"] = 49.74, - ["Y"] = 42.1, - ["CD"] = 0 - }, - [195] = - { - ["X"] = 47.22, - ["Y"] = 51.9, - ["CD"] = 0 - }, - [196] = - { - ["X"] = 47.87, - ["Y"] = 54.97, - ["CD"] = 0 - }, - [197] = - { - ["X"] = 43.42, - ["Y"] = 72.85, - ["CD"] = 0 - }, - [198] = - { - ["X"] = 48.48, - ["Y"] = 54.81, - ["CD"] = 0 - }, - [199] = - { - ["X"] = 38.62, - ["Y"] = 61.09, - ["CD"] = 0 - }, - [200] = - { - ["X"] = 42.5, - ["Y"] = 61.79, - ["CD"] = 0 -} +aura_env.herbs = { + [1] = { + ["X"] = 39.04, + ["Y"] = 63.21, + ["CD"] = 0, + }, + [2] = { + ["X"] = 42.24, + ["Y"] = 55.42, + ["CD"] = 0, + }, + [3] = { + ["X"] = 43.3, + ["Y"] = 58.87, + ["CD"] = 0, + }, + [4] = { + ["X"] = 40.39, + ["Y"] = 59.24, + ["CD"] = 0, + }, + [5] = { + ["X"] = 42.39, + ["Y"] = 67.1, + ["CD"] = 0, + }, + [6] = { + ["X"] = 37.19, + ["Y"] = 66.98, + ["CD"] = 0, + }, + [7] = { + ["X"] = 42.21, + ["Y"] = 65.26, + ["CD"] = 0, + }, + [8] = { + ["X"] = 42.86, + ["Y"] = 52.36, + ["CD"] = 0, + }, + [9] = { + ["X"] = 44.42, + ["Y"] = 49.56, + ["CD"] = 0, + }, + [10] = { + ["X"] = 46.31, + ["Y"] = 46.84, + ["CD"] = 0, + }, + [11] = { + ["X"] = 44.32, + ["Y"] = 44.33, + ["CD"] = 0, + }, + [12] = { + ["X"] = 47.06, + ["Y"] = 48.3, + ["CD"] = 0, + }, + [13] = { + ["X"] = 46.96, + ["Y"] = 47.09, + ["CD"] = 0, + }, + [14] = { + ["X"] = 57.3, + ["Y"] = 22.65, + ["CD"] = 0, + }, + [15] = { + ["X"] = 57.13, + ["Y"] = 20.04, + ["CD"] = 0, + }, + [16] = { + ["X"] = 56.54, + ["Y"] = 21.14, + ["CD"] = 0, + }, + [17] = { + ["X"] = 55.97, + ["Y"] = 20.78, + ["CD"] = 0, + }, + [18] = { + ["X"] = 56, + ["Y"] = 20.19, + ["CD"] = 0, + }, + [19] = { + ["X"] = 55.94, + ["Y"] = 19.48, + ["CD"] = 0, + }, + [20] = { + ["X"] = 54.72, + ["Y"] = 16.63, + ["CD"] = 0, + }, + [21] = { + ["X"] = 55.63, + ["Y"] = 17.81, + ["CD"] = 0, + }, + [22] = { + ["X"] = 55.27, + ["Y"] = 18.91, + ["CD"] = 0, + }, + [23] = { + ["X"] = 55.32, + ["Y"] = 18.59, + ["CD"] = 0, + }, + [24] = { + ["X"] = 41.11, + ["Y"] = 51.73, + ["CD"] = 0, + }, + [25] = { + ["X"] = 42.6, + ["Y"] = 48.57, + ["CD"] = 0, + }, + [26] = { + ["X"] = 43.68, + ["Y"] = 48.71, + ["CD"] = 0, + }, + [27] = { + ["X"] = 39.67, + ["Y"] = 52.78, + ["CD"] = 0, + }, + [28] = { + ["X"] = 40.85, + ["Y"] = 53.98, + ["CD"] = 0, + }, + [29] = { + ["X"] = 42.82, + ["Y"] = 52.88, + ["CD"] = 0, + }, + [30] = { + ["X"] = 41.21, + ["Y"] = 56.52, + ["CD"] = 0, + }, + [31] = { + ["X"] = 39.74, + ["Y"] = 67.27, + ["CD"] = 0, + }, + [32] = { + ["X"] = 40.77, + ["Y"] = 65.23, + ["CD"] = 0, + }, + [33] = { + ["X"] = 37.33, + ["Y"] = 63.76, + ["CD"] = 0, + }, + [34] = { + ["X"] = 37.5, + ["Y"] = 62.89, + ["CD"] = 0, + }, + [35] = { + ["X"] = 37.72, + ["Y"] = 62.08, + ["CD"] = 0, + }, + [36] = { + ["X"] = 40.68, + ["Y"] = 57.62, + ["CD"] = 0, + }, + [37] = { + ["X"] = 50.04, + ["Y"] = 9, + ["CD"] = 0, + }, + [38] = { + ["X"] = 47.51, + ["Y"] = 9.64, + ["CD"] = 0, + }, + [39] = { + ["X"] = 45.07, + ["Y"] = 8.99, + ["CD"] = 0, + }, + [40] = { + ["X"] = 42.96, + ["Y"] = 9.11, + ["CD"] = 0, + }, + [41] = { + ["X"] = 43.26, + ["Y"] = 8.47, + ["CD"] = 0, + }, + [42] = { + ["X"] = 42.69, + ["Y"] = 7.59, + ["CD"] = 0, + }, + [43] = { + ["X"] = 45.72, + ["Y"] = 9.49, + ["CD"] = 0, + }, + [44] = { + ["X"] = 46.02, + ["Y"] = 8.48, + ["CD"] = 0, + }, + [45] = { + ["X"] = 44.75, + ["Y"] = 8.04, + ["CD"] = 0, + }, + [46] = { + ["X"] = 44.62, + ["Y"] = 7.22, + ["CD"] = 0, + }, + [47] = { + ["X"] = 41.25, + ["Y"] = 13, + ["CD"] = 0, + }, + [48] = { + ["X"] = 41.24, + ["Y"] = 11.49, + ["CD"] = 0, + }, + [49] = { + ["X"] = 42.07, + ["Y"] = 11.42, + ["CD"] = 0, + }, + [50] = { + ["X"] = 44.2, + ["Y"] = 10.31, + ["CD"] = 0, + }, + [51] = { + ["X"] = 43.54, + ["Y"] = 11.57, + ["CD"] = 0, + }, + [52] = { + ["X"] = 44.12, + ["Y"] = 11.56, + ["CD"] = 0, + }, + [53] = { + ["X"] = 45.67, + ["Y"] = 12.81, + ["CD"] = 0, + }, + [54] = { + ["X"] = 45.6, + ["Y"] = 11.82, + ["CD"] = 0, + }, + [55] = { + ["X"] = 48.04, + ["Y"] = 10.68, + ["CD"] = 0, + }, + [56] = { + ["X"] = 48.1, + ["Y"] = 9.57, + ["CD"] = 0, + }, + [57] = { + ["X"] = 50.88, + ["Y"] = 11.06, + ["CD"] = 0, + }, + [58] = { + ["X"] = 50.51, + ["Y"] = 10.69, + ["CD"] = 0, + }, + [59] = { + ["X"] = 50.02, + ["Y"] = 10.43, + ["CD"] = 0, + }, + [60] = { + ["X"] = 49.54, + ["Y"] = 10.43, + ["CD"] = 0, + }, + [61] = { + ["X"] = 48.84, + ["Y"] = 10.72, + ["CD"] = 0, + }, + [62] = { + ["X"] = 48.44, + ["Y"] = 10.66, + ["CD"] = 0, + }, + [63] = { + ["X"] = 47.95, + ["Y"] = 11.28, + ["CD"] = 0, + }, + [64] = { + ["X"] = 46.49, + ["Y"] = 11.47, + ["CD"] = 0, + }, + [65] = { + ["X"] = 47.16, + ["Y"] = 11.19, + ["CD"] = 0, + }, + [66] = { + ["X"] = 56.04, + ["Y"] = 63.04, + ["CD"] = 0, + }, + [67] = { + ["X"] = 56.46, + ["Y"] = 60.72, + ["CD"] = 0, + }, + [68] = { + ["X"] = 57.51, + ["Y"] = 59.57, + ["CD"] = 0, + }, + [69] = { + ["X"] = 57.31, + ["Y"] = 58.61, + ["CD"] = 0, + }, + [70] = { + ["X"] = 56.29, + ["Y"] = 56.16, + ["CD"] = 0, + }, + [71] = { + ["X"] = 56.93, + ["Y"] = 56.51, + ["CD"] = 0, + }, + [72] = { + ["X"] = 57.33, + ["Y"] = 56.08, + ["CD"] = 0, + }, + [73] = { + ["X"] = 57.78, + ["Y"] = 56.85, + ["CD"] = 0, + }, + [74] = { + ["X"] = 57.95, + ["Y"] = 54.56, + ["CD"] = 0, + }, + [75] = { + ["X"] = 57.54, + ["Y"] = 53.68, + ["CD"] = 0, + }, + [76] = { + ["X"] = 57.15, + ["Y"] = 53.7, + ["CD"] = 0, + }, + [77] = { + ["X"] = 55.34, + ["Y"] = 53.18, + ["CD"] = 0, + }, + [78] = { + ["X"] = 55.2, + ["Y"] = 53.41, + ["CD"] = 0, + }, + [79] = { + ["X"] = 56.17, + ["Y"] = 54.2, + ["CD"] = 0, + }, + [80] = { + ["X"] = 55.99, + ["Y"] = 55.43, + ["CD"] = 0, + }, + [81] = { + ["X"] = 55.9, + ["Y"] = 56.79, + ["CD"] = 0, + }, + [82] = { + ["X"] = 57.56, + ["Y"] = 57.6, + ["CD"] = 0, + }, + [83] = { + ["X"] = 55.89, + ["Y"] = 59.48, + ["CD"] = 0, + }, + [84] = { + ["X"] = 55.11, + ["Y"] = 61.2, + ["CD"] = 0, + }, + [85] = { + ["X"] = 39, + ["Y"] = 40.8, + ["CD"] = 0, + }, + [86] = { + ["X"] = 39.15, + ["Y"] = 39.51, + ["CD"] = 0, + }, + [87] = { + ["X"] = 40.15, + ["Y"] = 36.93, + ["CD"] = 0, + }, + [88] = { + ["X"] = 40.41, + ["Y"] = 37.67, + ["CD"] = 0, + }, + [89] = { + ["X"] = 40.55, + ["Y"] = 36.19, + ["CD"] = 0, + }, + [90] = { + ["X"] = 41.38, + ["Y"] = 36.45, + ["CD"] = 0, + }, + [91] = { + ["X"] = 41.54, + ["Y"] = 35.29, + ["CD"] = 0, + }, + [92] = { + ["X"] = 41.97, + ["Y"] = 33.67, + ["CD"] = 0, + }, + [93] = { + ["X"] = 41.46, + ["Y"] = 31.24, + ["CD"] = 0, + }, + [94] = { + ["X"] = 41.4, + ["Y"] = 28.92, + ["CD"] = 0, + }, + [95] = { + ["X"] = 40.79, + ["Y"] = 29.51, + ["CD"] = 0, + }, + [96] = { + ["X"] = 42.57, + ["Y"] = 30.29, + ["CD"] = 0, + }, + [97] = { + ["X"] = 46.38, + ["Y"] = 32.35, + ["CD"] = 0, + }, + [98] = { + ["X"] = 45.3, + ["Y"] = 32.49, + ["CD"] = 0, + }, + [99] = { + ["X"] = 44.18, + ["Y"] = 33.11, + ["CD"] = 0, + }, + [100] = { + ["X"] = 44.31, + ["Y"] = 32.62, + ["CD"] = 0, + }, + [101] = { + ["X"] = 44.76, + ["Y"] = 30.4, + ["CD"] = 0, + }, + [102] = { + ["X"] = 37.07, + ["Y"] = 19.85, + ["CD"] = 0, + }, + [103] = { + ["X"] = 36.06, + ["Y"] = 20.92, + ["CD"] = 0, + }, + [104] = { + ["X"] = 32.68, + ["Y"] = 23.7, + ["CD"] = 0, + }, + [105] = { + ["X"] = 33.36, + ["Y"] = 21.36, + ["CD"] = 0, + }, + [106] = { + ["X"] = 34.62, + ["Y"] = 22.6, + ["CD"] = 0, + }, + [107] = { + ["X"] = 35.26, + ["Y"] = 23.87, + ["CD"] = 0, + }, + [108] = { + ["X"] = 36.27, + ["Y"] = 23.14, + ["CD"] = 0, + }, + [109] = { + ["X"] = 34.74, + ["Y"] = 23.43, + ["CD"] = 0, + }, + [110] = { + ["X"] = 34.05, + ["Y"] = 24.22, + ["CD"] = 0, + }, + [111] = { + ["X"] = 34.18, + ["Y"] = 27.2, + ["CD"] = 0, + }, + [112] = { + ["X"] = 34.23, + ["Y"] = 25.22, + ["CD"] = 0, + }, + [113] = { + ["X"] = 31.78, + ["Y"] = 35.09, + ["CD"] = 0, + }, + [114] = { + ["X"] = 32.12, + ["Y"] = 34.17, + ["CD"] = 0, + }, + [115] = { + ["X"] = 33.13, + ["Y"] = 33.36, + ["CD"] = 0, + }, + [116] = { + ["X"] = 32.78, + ["Y"] = 32.58, + ["CD"] = 0, + }, + [117] = { + ["X"] = 31.77, + ["Y"] = 31.79, + ["CD"] = 0, + }, + [118] = { + ["X"] = 30.37, + ["Y"] = 28.05, + ["CD"] = 0, + }, + [119] = { + ["X"] = 30.53, + ["Y"] = 29.81, + ["CD"] = 0, + }, + [120] = { + ["X"] = 30.8, + ["Y"] = 30.32, + ["CD"] = 0, + }, + [121] = { + ["X"] = 28.47, + ["Y"] = 40.12, + ["CD"] = 0, + }, + [122] = { + ["X"] = 27.69, + ["Y"] = 41.13, + ["CD"] = 0, + }, + [123] = { + ["X"] = 28.37, + ["Y"] = 41.03, + ["CD"] = 0, + }, + [124] = { + ["X"] = 28.86, + ["Y"] = 42.47, + ["CD"] = 0, + }, + [125] = { + ["X"] = 29.95, + ["Y"] = 41.71, + ["CD"] = 0, + }, + [126] = { + ["X"] = 31.73, + ["Y"] = 38.3, + ["CD"] = 0, + }, + [127] = { + ["X"] = 30.38, + ["Y"] = 39.04, + ["CD"] = 0, + }, + [128] = { + ["X"] = 31.37, + ["Y"] = 36.91, + ["CD"] = 0, + }, + [129] = { + ["X"] = 31.64, + ["Y"] = 35.8, + ["CD"] = 0, + }, + [130] = { + ["X"] = 30.36, + ["Y"] = 34.88, + ["CD"] = 0, + }, + [131] = { + ["X"] = 31.05, + ["Y"] = 33.51, + ["CD"] = 0, + }, + [132] = { + ["X"] = 30.53, + ["Y"] = 33.11, + ["CD"] = 0, + }, + [133] = { + ["X"] = 31.38, + ["Y"] = 30.83, + ["CD"] = 0, + }, + [134] = { + ["X"] = 44.68, + ["Y"] = 54.55, + ["CD"] = 0, + }, + [135] = { + ["X"] = 44.08, + ["Y"] = 54.55, + ["CD"] = 0, + }, + [136] = { + ["X"] = 43.58, + ["Y"] = 54.82, + ["CD"] = 0, + }, + [137] = { + ["X"] = 45.12, + ["Y"] = 50.11, + ["CD"] = 0, + }, + [138] = { + ["X"] = 43.58, + ["Y"] = 45.93, + ["CD"] = 0, + }, + [139] = { + ["X"] = 42.63, + ["Y"] = 45.65, + ["CD"] = 0, + }, + [140] = { + ["X"] = 42.96, + ["Y"] = 46.27, + ["CD"] = 0, + }, + [141] = { + ["X"] = 42.09, + ["Y"] = 46.82, + ["CD"] = 0, + }, + [142] = { + ["X"] = 39.3, + ["Y"] = 46.88, + ["CD"] = 0, + }, + [143] = { + ["X"] = 40.18, + ["Y"] = 47.01, + ["CD"] = 0, + }, + [144] = { + ["X"] = 40.81, + ["Y"] = 46.97, + ["CD"] = 0, + }, + [145] = { + ["X"] = 41.37, + ["Y"] = 48.56, + ["CD"] = 0, + }, + [146] = { + ["X"] = 40.45, + ["Y"] = 48.42, + ["CD"] = 0, + }, + [147] = { + ["X"] = 38.56, + ["Y"] = 50.23, + ["CD"] = 0, + }, + [148] = { + ["X"] = 38.26, + ["Y"] = 49.28, + ["CD"] = 0, + }, + [149] = { + ["X"] = 39.77, + ["Y"] = 49.03, + ["CD"] = 0, + }, + [150] = { + ["X"] = 39.89, + ["Y"] = 49.73, + ["CD"] = 0, + }, + [151] = { + ["X"] = 39.97, + ["Y"] = 50.65, + ["CD"] = 0, + }, + [152] = { + ["X"] = 40.15, + ["Y"] = 51.03, + ["CD"] = 0, + }, + [153] = { + ["X"] = 58.81, + ["Y"] = 62.31, + ["CD"] = 0, + }, + [154] = { + ["X"] = 55.76, + ["Y"] = 65.74, + ["CD"] = 0, + }, + [155] = { + ["X"] = 52.04, + ["Y"] = 58.38, + ["CD"] = 0, + }, + [156] = { + ["X"] = 50.81, + ["Y"] = 67.32, + ["CD"] = 0, + }, + [157] = { + ["X"] = 43.38, + ["Y"] = 66.19, + ["CD"] = 0, + }, + [158] = { + ["X"] = 24.98, + ["Y"] = 59.43, + ["CD"] = 0, + }, + [159] = { + ["X"] = 26.05, + ["Y"] = 63.62, + ["CD"] = 0, + }, + [160] = { + ["X"] = 28.67, + ["Y"] = 55.49, + ["CD"] = 0, + }, + [161] = { + ["X"] = 26.86, + ["Y"] = 41.18, + ["CD"] = 0, + }, + [162] = { + ["X"] = 25.89, + ["Y"] = 44.55, + ["CD"] = 0, + }, + [163] = { + ["X"] = 24.23, + ["Y"] = 43.43, + ["CD"] = 0, + }, + [164] = { + ["X"] = 26.35, + ["Y"] = 39.24, + ["CD"] = 0, + }, + [165] = { + ["X"] = 28.83, + ["Y"] = 35.34, + ["CD"] = 0, + }, + [166] = { + ["X"] = 27.93, + ["Y"] = 30.52, + ["CD"] = 0, + }, + [167] = { + ["X"] = 28.73, + ["Y"] = 28.61, + ["CD"] = 0, + }, + [168] = { + ["X"] = 31.88, + ["Y"] = 26.11, + ["CD"] = 0, + }, + [169] = { + ["X"] = 37.52, + ["Y"] = 15.31, + ["CD"] = 0, + }, + [170] = { + ["X"] = 44.79, + ["Y"] = 12.36, + ["CD"] = 0, + }, + [171] = { + ["X"] = 58.06, + ["Y"] = 22.18, + ["CD"] = 0, + }, + [172] = { + ["X"] = 57.64, + ["Y"] = 19.03, + ["CD"] = 0, + }, + [173] = { + ["X"] = 54.81, + ["Y"] = 16.28, + ["CD"] = 0, + }, + [174] = { + ["X"] = 53.1, + ["Y"] = 13.37, + ["CD"] = 0, + }, + [175] = { + ["X"] = 49.63, + ["Y"] = 13.87, + ["CD"] = 0, + }, + [176] = { + ["X"] = 49.23, + ["Y"] = 8.72, + ["CD"] = 0, + }, + [177] = { + ["X"] = 47.72, + ["Y"] = 6.15, + ["CD"] = 0, + }, + [178] = { + ["X"] = 44.93, + ["Y"] = 7.4, + ["CD"] = 0, + }, + [179] = { + ["X"] = 42.09, + ["Y"] = 27.58, + ["CD"] = 0, + }, + [180] = { + ["X"] = 46.45, + ["Y"] = 26.28, + ["CD"] = 0, + }, + [181] = { + ["X"] = 47.57, + ["Y"] = 24.96, + ["CD"] = 0, + }, + [182] = { + ["X"] = 48.31, + ["Y"] = 29.71, + ["CD"] = 0, + }, + [183] = { + ["X"] = 35.86, + ["Y"] = 38.62, + ["CD"] = 0, + }, + [184] = { + ["X"] = 40.33, + ["Y"] = 33.71, + ["CD"] = 0, + }, + [185] = { + ["X"] = 36.87, + ["Y"] = 35.15, + ["CD"] = 0, + }, + [186] = { + ["X"] = 37.26, + ["Y"] = 33.85, + ["CD"] = 0, + }, + [187] = { + ["X"] = 42.47, + ["Y"] = 51.44, + ["CD"] = 0, + }, + [188] = { + ["X"] = 42.21, + ["Y"] = 54.16, + ["CD"] = 0, + }, + [189] = { + ["X"] = 44.95, + ["Y"] = 55.74, + ["CD"] = 0, + }, + [190] = { + ["X"] = 52, + ["Y"] = 32.57, + ["CD"] = 0, + }, + [191] = { + ["X"] = 52.49, + ["Y"] = 34.19, + ["CD"] = 0, + }, + [192] = { + ["X"] = 52.71, + ["Y"] = 39.16, + ["CD"] = 0, + }, + [193] = { + ["X"] = 54.4, + ["Y"] = 50.27, + ["CD"] = 0, + }, + [194] = { + ["X"] = 49.74, + ["Y"] = 42.1, + ["CD"] = 0, + }, + [195] = { + ["X"] = 47.22, + ["Y"] = 51.9, + ["CD"] = 0, + }, + [196] = { + ["X"] = 47.87, + ["Y"] = 54.97, + ["CD"] = 0, + }, + [197] = { + ["X"] = 43.42, + ["Y"] = 72.85, + ["CD"] = 0, + }, + [198] = { + ["X"] = 48.48, + ["Y"] = 54.81, + ["CD"] = 0, + }, + [199] = { + ["X"] = 38.62, + ["Y"] = 61.09, + ["CD"] = 0, + }, + [200] = { + ["X"] = 42.5, + ["Y"] = 61.79, + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 50 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -if GetCurrentMapAreaID() ~= 1024 then SetMapByID(1024) end -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + if GetCurrentMapAreaID() ~= 1024 then SetMapByID(1024) end + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Icecap And Silversage.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Icecap And Silversage.lua index 0ed45cc..0fc25b6 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Icecap And Silversage.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Icecap And Silversage.lua @@ -1,855 +1,716 @@ -aura_env.herbs = -{ - [1] = - { - ["X"] = 59.16, - ["Y"] = 84.77, - ["CD"] = 0 - }, - [2] = - { - ["X"] = 62.31, - ["Y"] = 83, - ["CD"] = 0 - }, - [3] = - { - ["X"] = 57.11, - ["Y"] = 82.01, - ["CD"] = 0 - }, - [4] = - { - ["X"] = 64.06, - ["Y"] = 78.62, - ["CD"] = 0 - }, - [5] = - { - ["X"] = 61.3, - ["Y"] = 77.48, - ["CD"] = 0 - }, - [6] = - { - ["X"] = 62.98, - ["Y"] = 75.01, - ["CD"] = 0 - }, - [7] = - { - ["X"] = 60.57, - ["Y"] = 72.97, - ["CD"] = 0 - }, - [8] = - { - ["X"] = 57.89, - ["Y"] = 76.61, - ["CD"] = 0 - }, - [9] = - { - ["X"] = 58.81, - ["Y"] = 71.72, - ["CD"] = 0 - }, - [10] = - { - ["X"] = 61.9, - ["Y"] = 70.8, - ["CD"] = 0 - }, - [11] = - { - ["X"] = 55.55, - ["Y"] = 66.93, - ["CD"] = 0 - }, - [12] = - { - ["X"] = 57.47, - ["Y"] = 67.97, - ["CD"] = 0 - }, - [13] = - { - ["X"] = 64.62, - ["Y"] = 67.64, - ["CD"] = 0 - }, - [14] = - { - ["X"] = 58.61, - ["Y"] = 64.35, - ["CD"] = 0 - }, - [15] = - { - ["X"] = 60.58, - ["Y"] = 63.25, - ["CD"] = 0 - }, - [16] = - { - ["X"] = 66.46, - ["Y"] = 63.37, - ["CD"] = 0 - }, - [17] = - { - ["X"] = 54.22, - ["Y"] = 59.72, - ["CD"] = 0 - }, - [18] = - { - ["X"] = 50.02, - ["Y"] = 59.7, - ["CD"] = 0 - }, - [19] = - { - ["X"] = 55.15, - ["Y"] = 58.99, - ["CD"] = 0 - }, - [20] = - { - ["X"] = 58.3, - ["Y"] = 57.27, - ["CD"] = 0 - }, - [21] = - { - ["X"] = 66.48, - ["Y"] = 58.7, - ["CD"] = 0 - }, - [22] = - { - ["X"] = 65.73, - ["Y"] = 55.86, - ["CD"] = 0 - }, - [23] = - { - ["X"] = 67.08, - ["Y"] = 55.5, - ["CD"] = 0 - }, - [24] = - { - ["X"] = 56.21, - ["Y"] = 54.41, - ["CD"] = 0 - }, - [25] = - { - ["X"] = 63.85, - ["Y"] = 54.34, - ["CD"] = 0 - }, - [26] = - { - ["X"] = 57.63, - ["Y"] = 53.91, - ["CD"] = 0 - }, - [27] = - { - ["X"] = 62.95, - ["Y"] = 52.24, - ["CD"] = 0 - }, - [28] = - { - ["X"] = 54.26, - ["Y"] = 51.46, - ["CD"] = 0 - }, - [29] = - { - ["X"] = 53.42, - ["Y"] = 52.49, - ["CD"] = 0 - }, - [30] = - { - ["X"] = 51.05, - ["Y"] = 47.74, - ["CD"] = 0 - }, - [31] = - { - ["X"] = 62.14, - ["Y"] = 46, - ["CD"] = 0 - }, - [32] = - { - ["X"] = 57.41, - ["Y"] = 44.12, - ["CD"] = 0 - }, - [33] = - { - ["X"] = 67.38, - ["Y"] = 43.91, - ["CD"] = 0 - }, - [34] = - { - ["X"] = 64.77, - ["Y"] = 44.54, - ["CD"] = 0 - }, - [35] = - { - ["X"] = 63.95, - ["Y"] = 38.93, - ["CD"] = 0 - }, - [36] = - { - ["X"] = 56.38, - ["Y"] = 40.05, - ["CD"] = 0 - }, - [37] = - { - ["X"] = 53.33, - ["Y"] = 40.12, - ["CD"] = 0 - }, - [38] = - { - ["X"] = 54.33, - ["Y"] = 39.28, - ["CD"] = 0 - }, - [39] = - { - ["X"] = 58.25, - ["Y"] = 36.59, - ["CD"] = 0 - }, - [40] = - { - ["X"] = 66.39, - ["Y"] = 31.62, - ["CD"] = 0 - }, - [41] = - { - ["X"] = 65.34, - ["Y"] = 33.85, - ["CD"] = 0 - }, - [42] = - { - ["X"] = 56.84, - ["Y"] = 35.19, - ["CD"] = 0 - }, - [43] = - { - ["X"] = 53.46, - ["Y"] = 28.57, - ["CD"] = 0 - }, - [44] = - { - ["X"] = 61.98, - ["Y"] = 31.58, - ["CD"] = 0 - }, - [45] = - { - ["X"] = 61.24, - ["Y"] = 31.93, - ["CD"] = 0 - }, - [46] = - { - ["X"] = 57.11, - ["Y"] = 33.25, - ["CD"] = 0 - }, - [47] = - { - ["X"] = 47.75, - ["Y"] = 31.28, - ["CD"] = 0 - }, - [48] = - { - ["X"] = 53.36, - ["Y"] = 33.23, - ["CD"] = 0 - }, - [49] = - { - ["X"] = 58, - ["Y"] = 25.44, - ["CD"] = 0 - }, - [50] = - { - ["X"] = 56.97, - ["Y"] = 26.83, - ["CD"] = 0 - }, - [51] = - { - ["X"] = 49.79, - ["Y"] = 25.15, - ["CD"] = 0 - }, - [52] = - { - ["X"] = 56.02, - ["Y"] = 22.75, - ["CD"] = 0 - }, - [53] = - { - ["X"] = 46.42, - ["Y"] = 24.46, - ["CD"] = 0 - }, - [54] = - { - ["X"] = 50.08, - ["Y"] = 22.67, - ["CD"] = 0 - }, - [55] = - { - ["X"] = 46.7, - ["Y"] = 18.24, - ["CD"] = 0 - }, - [56] = - { - ["X"] = 48.65, - ["Y"] = 17.22, - ["CD"] = 0 - }, - [57] = - { - ["X"] = 49.35, - ["Y"] = 18.76, - ["CD"] = 0 - }, - [58] = - { - ["X"] = 52.3, - ["Y"] = 20.68, - ["CD"] = 0 - }, - [59] = - { - ["X"] = 45.21, - ["Y"] = 14.81, - ["CD"] = 0 - }, - [60] = - { - ["X"] = 45.87, - ["Y"] = 20.86, - ["CD"] = 0 - }, - [61] = - { - ["X"] = 47.49, - ["Y"] = 50.39, - ["CD"] = 0 - }, - [62] = - { - ["X"] = 48.23, - ["Y"] = 53.43, - ["CD"] = 0 - }, - [63] = - { - ["X"] = 47.36, - ["Y"] = 58.17, - ["CD"] = 0 - }, - [64] = - { - ["X"] = 48.56, - ["Y"] = 57.74, - ["CD"] = 0 - }, - [65] = - { - ["X"] = 45.22, - ["Y"] = 57.7, - ["CD"] = 0 - }, - [66] = - { - ["X"] = 45.19, - ["Y"] = 59.5, - ["CD"] = 0 - }, - [67] = - { - ["X"] = 42.43, - ["Y"] = 49.82, - ["CD"] = 0 - }, - [68] = - { - ["X"] = 40.35, - ["Y"] = 49.45, - ["CD"] = 0 - }, - [69] = - { - ["X"] = 40.46, - ["Y"] = 54.28, - ["CD"] = 0 - }, - [70] = - { - ["X"] = 39.05, - ["Y"] = 55.74, - ["CD"] = 0 - }, - [71] = - { - ["X"] = 37.6, - ["Y"] = 55.77, - ["CD"] = 0 - }, - [72] = - { - ["X"] = 34.89, - ["Y"] = 57.33, - ["CD"] = 0 - }, - [73] = - { - ["X"] = 34.59, - ["Y"] = 50.15, - ["CD"] = 0 - }, - [74] = - { - ["X"] = 33.26, - ["Y"] = 48.43, - ["CD"] = 0 - }, - [75] = - { - ["X"] = 32.77, - ["Y"] = 51.29, - ["CD"] = 0 - }, - [76] = - { - ["X"] = 31.15, - ["Y"] = 57.24, - ["CD"] = 0 - }, - [77] = - { - ["X"] = 30.3, - ["Y"] = 54.04, - ["CD"] = 0 - }, - [78] = - { - ["X"] = 28.92, - ["Y"] = 52.76, - ["CD"] = 0 - }, - [79] = - { - ["X"] = 28.32, - ["Y"] = 55.97, - ["CD"] = 0 - }, - [80] = - { - ["X"] = 26.04, - ["Y"] = 49.17, - ["CD"] = 0 - }, - [81] = - { - ["X"] = 24.02, - ["Y"] = 49.75, - ["CD"] = 0 - }, - [82] = - { - ["X"] = 25.24, - ["Y"] = 51.71, - ["CD"] = 0 - }, - [83] = - { - ["X"] = 24.44, - ["Y"] = 50.98, - ["CD"] = 0 - }, - [84] = - { - ["X"] = 24.27, - ["Y"] = 56.95, - ["CD"] = 0 - }, - [85] = - { - ["X"] = 66.76, - ["Y"] = 84.03, - ["CD"] = 0 - }, - [86] = - { - ["X"] = 66.36, - ["Y"] = 80.75, - ["CD"] = 0 - }, - [87] = - { - ["X"] = 62.24, - ["Y"] = 80.15, - ["CD"] = 0 - }, - [88] = - { - ["X"] = 55.96, - ["Y"] = 78.8, - ["CD"] = 0 - }, - [89] = - { - ["X"] = 56.02, - ["Y"] = 76.95, - ["CD"] = 0 - }, - [90] = - { - ["X"] = 64.96, - ["Y"] = 72.59, - ["CD"] = 0 - }, - [91] = - { - ["X"] = 65.44, - ["Y"] = 70.65, - ["CD"] = 0 - }, - [92] = - { - ["X"] = 68.36, - ["Y"] = 69, - ["CD"] = 0 - }, - [93] = - { - ["X"] = 52.57, - ["Y"] = 67.93, - ["CD"] = 0 - }, - [94] = - { - ["X"] = 53.37, - ["Y"] = 66.5, - ["CD"] = 0 - }, - [95] = - { - ["X"] = 61.09, - ["Y"] = 66.97, - ["CD"] = 0 - }, - [96] = - { - ["X"] = 67.45, - ["Y"] = 66.84, - ["CD"] = 0 - }, - [97] = - { - ["X"] = 68.19, - ["Y"] = 64.02, - ["CD"] = 0 - }, - [98] = - { - ["X"] = 47.6, - ["Y"] = 63.37, - ["CD"] = 0 - }, - [99] = - { - ["X"] = 67.42, - ["Y"] = 57.23, - ["CD"] = 0 - }, - [100] = - { - ["X"] = 67.19, - ["Y"] = 51.85, - ["CD"] = 0 - }, - [101] = - { - ["X"] = 63.49, - ["Y"] = 50.05, - ["CD"] = 0 - }, - [102] = - { - ["X"] = 58.87, - ["Y"] = 45.42, - ["CD"] = 0 - }, - [103] = - { - ["X"] = 53.68, - ["Y"] = 45.06, - ["CD"] = 0 - }, - [104] = - { - ["X"] = 69.19, - ["Y"] = 44.89, - ["CD"] = 0 - }, - [105] = - { - ["X"] = 59.6, - ["Y"] = 42, - ["CD"] = 0 - }, - [106] = - { - ["X"] = 67.82, - ["Y"] = 39.48, - ["CD"] = 0 - }, - [107] = - { - ["X"] = 59.84, - ["Y"] = 37.64, - ["CD"] = 0 - }, - [108] = - { - ["X"] = 67.43, - ["Y"] = 35.4, - ["CD"] = 0 - }, - [109] = - { - ["X"] = 66.7, - ["Y"] = 29.13, - ["CD"] = 0 - }, - [110] = - { - ["X"] = 60.88, - ["Y"] = 28.01, - ["CD"] = 0 - }, - [111] = - { - ["X"] = 60.16, - ["Y"] = 21.19, - ["CD"] = 0 - }, - [112] = - { - ["X"] = 53.95, - ["Y"] = 19.05, - ["CD"] = 0 - }, - [113] = - { - ["X"] = 52.44, - ["Y"] = 18.27, - ["CD"] = 0 - }, - [114] = - { - ["X"] = 48.51, - ["Y"] = 14.34, - ["CD"] = 0 - }, - [115] = - { - ["X"] = 44.13, - ["Y"] = 14.69, - ["CD"] = 0 - }, - [116] = - { - ["X"] = 44.53, - ["Y"] = 21.08, - ["CD"] = 0 - }, - [117] = - { - ["X"] = 45.31, - ["Y"] = 26.71, - ["CD"] = 0 - }, - [118] = - { - ["X"] = 46.16, - ["Y"] = 33.23, - ["CD"] = 0 - }, - [119] = - { - ["X"] = 48.2, - ["Y"] = 45.28, - ["CD"] = 0 - }, - [120] = - { - ["X"] = 42.52, - ["Y"] = 56.26, - ["CD"] = 0 - }, - [121] = - { - ["X"] = 42.18, - ["Y"] = 53.86, - ["CD"] = 0 - }, - [122] = - { - ["X"] = 42.49, - ["Y"] = 45.67, - ["CD"] = 0 - }, - [123] = - { - ["X"] = 40.75, - ["Y"] = 46.4, - ["CD"] = 0 - }, - [124] = - { - ["X"] = 40.5, - ["Y"] = 58, - ["CD"] = 0 - }, - [125] = - { - ["X"] = 39.56, - ["Y"] = 44.86, - ["CD"] = 0 - }, - [126] = - { - ["X"] = 37.41, - ["Y"] = 47.1, - ["CD"] = 0 - }, - [127] = - { - ["X"] = 37.05, - ["Y"] = 58.92, - ["CD"] = 0 - }, - [128] = - { - ["X"] = 35.56, - ["Y"] = 47.08, - ["CD"] = 0 - }, - [129] = - { - ["X"] = 34.11, - ["Y"] = 59.82, - ["CD"] = 0 - }, - [130] = - { - ["X"] = 31.96, - ["Y"] = 59.46, - ["CD"] = 0 - }, - [131] = - { - ["X"] = 31.19, - ["Y"] = 47.17, - ["CD"] = 0 - }, - [132] = - { - ["X"] = 27.81, - ["Y"] = 58.83, - ["CD"] = 0 - }, - [133] = - { - ["X"] = 27.7, - ["Y"] = 47.35, - ["CD"] = 0 - }, - [134] = - { - ["X"] = 26.52, - ["Y"] = 47.47, - ["CD"] = 0 - }, - [135] = - { - ["X"] = 24.62, - ["Y"] = 62.82, - ["CD"] = 0 - }, - [136] = - { - ["X"] = 21.76, - ["Y"] = 62.47, - ["CD"] = 0 - }, - [137] = - { - ["X"] = 22.41, - ["Y"] = 58.99, - ["CD"] = 0 -} +aura_env.herbs = { + [1] = { + ["X"] = 59.16, + ["Y"] = 84.77, + ["CD"] = 0, + }, + [2] = { + ["X"] = 62.31, + ["Y"] = 83, + ["CD"] = 0, + }, + [3] = { + ["X"] = 57.11, + ["Y"] = 82.01, + ["CD"] = 0, + }, + [4] = { + ["X"] = 64.06, + ["Y"] = 78.62, + ["CD"] = 0, + }, + [5] = { + ["X"] = 61.3, + ["Y"] = 77.48, + ["CD"] = 0, + }, + [6] = { + ["X"] = 62.98, + ["Y"] = 75.01, + ["CD"] = 0, + }, + [7] = { + ["X"] = 60.57, + ["Y"] = 72.97, + ["CD"] = 0, + }, + [8] = { + ["X"] = 57.89, + ["Y"] = 76.61, + ["CD"] = 0, + }, + [9] = { + ["X"] = 58.81, + ["Y"] = 71.72, + ["CD"] = 0, + }, + [10] = { + ["X"] = 61.9, + ["Y"] = 70.8, + ["CD"] = 0, + }, + [11] = { + ["X"] = 55.55, + ["Y"] = 66.93, + ["CD"] = 0, + }, + [12] = { + ["X"] = 57.47, + ["Y"] = 67.97, + ["CD"] = 0, + }, + [13] = { + ["X"] = 64.62, + ["Y"] = 67.64, + ["CD"] = 0, + }, + [14] = { + ["X"] = 58.61, + ["Y"] = 64.35, + ["CD"] = 0, + }, + [15] = { + ["X"] = 60.58, + ["Y"] = 63.25, + ["CD"] = 0, + }, + [16] = { + ["X"] = 66.46, + ["Y"] = 63.37, + ["CD"] = 0, + }, + [17] = { + ["X"] = 54.22, + ["Y"] = 59.72, + ["CD"] = 0, + }, + [18] = { + ["X"] = 50.02, + ["Y"] = 59.7, + ["CD"] = 0, + }, + [19] = { + ["X"] = 55.15, + ["Y"] = 58.99, + ["CD"] = 0, + }, + [20] = { + ["X"] = 58.3, + ["Y"] = 57.27, + ["CD"] = 0, + }, + [21] = { + ["X"] = 66.48, + ["Y"] = 58.7, + ["CD"] = 0, + }, + [22] = { + ["X"] = 65.73, + ["Y"] = 55.86, + ["CD"] = 0, + }, + [23] = { + ["X"] = 67.08, + ["Y"] = 55.5, + ["CD"] = 0, + }, + [24] = { + ["X"] = 56.21, + ["Y"] = 54.41, + ["CD"] = 0, + }, + [25] = { + ["X"] = 63.85, + ["Y"] = 54.34, + ["CD"] = 0, + }, + [26] = { + ["X"] = 57.63, + ["Y"] = 53.91, + ["CD"] = 0, + }, + [27] = { + ["X"] = 62.95, + ["Y"] = 52.24, + ["CD"] = 0, + }, + [28] = { + ["X"] = 54.26, + ["Y"] = 51.46, + ["CD"] = 0, + }, + [29] = { + ["X"] = 53.42, + ["Y"] = 52.49, + ["CD"] = 0, + }, + [30] = { + ["X"] = 51.05, + ["Y"] = 47.74, + ["CD"] = 0, + }, + [31] = { + ["X"] = 62.14, + ["Y"] = 46, + ["CD"] = 0, + }, + [32] = { + ["X"] = 57.41, + ["Y"] = 44.12, + ["CD"] = 0, + }, + [33] = { + ["X"] = 67.38, + ["Y"] = 43.91, + ["CD"] = 0, + }, + [34] = { + ["X"] = 64.77, + ["Y"] = 44.54, + ["CD"] = 0, + }, + [35] = { + ["X"] = 63.95, + ["Y"] = 38.93, + ["CD"] = 0, + }, + [36] = { + ["X"] = 56.38, + ["Y"] = 40.05, + ["CD"] = 0, + }, + [37] = { + ["X"] = 53.33, + ["Y"] = 40.12, + ["CD"] = 0, + }, + [38] = { + ["X"] = 54.33, + ["Y"] = 39.28, + ["CD"] = 0, + }, + [39] = { + ["X"] = 58.25, + ["Y"] = 36.59, + ["CD"] = 0, + }, + [40] = { + ["X"] = 66.39, + ["Y"] = 31.62, + ["CD"] = 0, + }, + [41] = { + ["X"] = 65.34, + ["Y"] = 33.85, + ["CD"] = 0, + }, + [42] = { + ["X"] = 56.84, + ["Y"] = 35.19, + ["CD"] = 0, + }, + [43] = { + ["X"] = 53.46, + ["Y"] = 28.57, + ["CD"] = 0, + }, + [44] = { + ["X"] = 61.98, + ["Y"] = 31.58, + ["CD"] = 0, + }, + [45] = { + ["X"] = 61.24, + ["Y"] = 31.93, + ["CD"] = 0, + }, + [46] = { + ["X"] = 57.11, + ["Y"] = 33.25, + ["CD"] = 0, + }, + [47] = { + ["X"] = 47.75, + ["Y"] = 31.28, + ["CD"] = 0, + }, + [48] = { + ["X"] = 53.36, + ["Y"] = 33.23, + ["CD"] = 0, + }, + [49] = { + ["X"] = 58, + ["Y"] = 25.44, + ["CD"] = 0, + }, + [50] = { + ["X"] = 56.97, + ["Y"] = 26.83, + ["CD"] = 0, + }, + [51] = { + ["X"] = 49.79, + ["Y"] = 25.15, + ["CD"] = 0, + }, + [52] = { + ["X"] = 56.02, + ["Y"] = 22.75, + ["CD"] = 0, + }, + [53] = { + ["X"] = 46.42, + ["Y"] = 24.46, + ["CD"] = 0, + }, + [54] = { + ["X"] = 50.08, + ["Y"] = 22.67, + ["CD"] = 0, + }, + [55] = { + ["X"] = 46.7, + ["Y"] = 18.24, + ["CD"] = 0, + }, + [56] = { + ["X"] = 48.65, + ["Y"] = 17.22, + ["CD"] = 0, + }, + [57] = { + ["X"] = 49.35, + ["Y"] = 18.76, + ["CD"] = 0, + }, + [58] = { + ["X"] = 52.3, + ["Y"] = 20.68, + ["CD"] = 0, + }, + [59] = { + ["X"] = 45.21, + ["Y"] = 14.81, + ["CD"] = 0, + }, + [60] = { + ["X"] = 45.87, + ["Y"] = 20.86, + ["CD"] = 0, + }, + [61] = { + ["X"] = 47.49, + ["Y"] = 50.39, + ["CD"] = 0, + }, + [62] = { + ["X"] = 48.23, + ["Y"] = 53.43, + ["CD"] = 0, + }, + [63] = { + ["X"] = 47.36, + ["Y"] = 58.17, + ["CD"] = 0, + }, + [64] = { + ["X"] = 48.56, + ["Y"] = 57.74, + ["CD"] = 0, + }, + [65] = { + ["X"] = 45.22, + ["Y"] = 57.7, + ["CD"] = 0, + }, + [66] = { + ["X"] = 45.19, + ["Y"] = 59.5, + ["CD"] = 0, + }, + [67] = { + ["X"] = 42.43, + ["Y"] = 49.82, + ["CD"] = 0, + }, + [68] = { + ["X"] = 40.35, + ["Y"] = 49.45, + ["CD"] = 0, + }, + [69] = { + ["X"] = 40.46, + ["Y"] = 54.28, + ["CD"] = 0, + }, + [70] = { + ["X"] = 39.05, + ["Y"] = 55.74, + ["CD"] = 0, + }, + [71] = { + ["X"] = 37.6, + ["Y"] = 55.77, + ["CD"] = 0, + }, + [72] = { + ["X"] = 34.89, + ["Y"] = 57.33, + ["CD"] = 0, + }, + [73] = { + ["X"] = 34.59, + ["Y"] = 50.15, + ["CD"] = 0, + }, + [74] = { + ["X"] = 33.26, + ["Y"] = 48.43, + ["CD"] = 0, + }, + [75] = { + ["X"] = 32.77, + ["Y"] = 51.29, + ["CD"] = 0, + }, + [76] = { + ["X"] = 31.15, + ["Y"] = 57.24, + ["CD"] = 0, + }, + [77] = { + ["X"] = 30.3, + ["Y"] = 54.04, + ["CD"] = 0, + }, + [78] = { + ["X"] = 28.92, + ["Y"] = 52.76, + ["CD"] = 0, + }, + [79] = { + ["X"] = 28.32, + ["Y"] = 55.97, + ["CD"] = 0, + }, + [80] = { + ["X"] = 26.04, + ["Y"] = 49.17, + ["CD"] = 0, + }, + [81] = { + ["X"] = 24.02, + ["Y"] = 49.75, + ["CD"] = 0, + }, + [82] = { + ["X"] = 25.24, + ["Y"] = 51.71, + ["CD"] = 0, + }, + [83] = { + ["X"] = 24.44, + ["Y"] = 50.98, + ["CD"] = 0, + }, + [84] = { + ["X"] = 24.27, + ["Y"] = 56.95, + ["CD"] = 0, + }, + [85] = { + ["X"] = 66.76, + ["Y"] = 84.03, + ["CD"] = 0, + }, + [86] = { + ["X"] = 66.36, + ["Y"] = 80.75, + ["CD"] = 0, + }, + [87] = { + ["X"] = 62.24, + ["Y"] = 80.15, + ["CD"] = 0, + }, + [88] = { + ["X"] = 55.96, + ["Y"] = 78.8, + ["CD"] = 0, + }, + [89] = { + ["X"] = 56.02, + ["Y"] = 76.95, + ["CD"] = 0, + }, + [90] = { + ["X"] = 64.96, + ["Y"] = 72.59, + ["CD"] = 0, + }, + [91] = { + ["X"] = 65.44, + ["Y"] = 70.65, + ["CD"] = 0, + }, + [92] = { + ["X"] = 68.36, + ["Y"] = 69, + ["CD"] = 0, + }, + [93] = { + ["X"] = 52.57, + ["Y"] = 67.93, + ["CD"] = 0, + }, + [94] = { + ["X"] = 53.37, + ["Y"] = 66.5, + ["CD"] = 0, + }, + [95] = { + ["X"] = 61.09, + ["Y"] = 66.97, + ["CD"] = 0, + }, + [96] = { + ["X"] = 67.45, + ["Y"] = 66.84, + ["CD"] = 0, + }, + [97] = { + ["X"] = 68.19, + ["Y"] = 64.02, + ["CD"] = 0, + }, + [98] = { + ["X"] = 47.6, + ["Y"] = 63.37, + ["CD"] = 0, + }, + [99] = { + ["X"] = 67.42, + ["Y"] = 57.23, + ["CD"] = 0, + }, + [100] = { + ["X"] = 67.19, + ["Y"] = 51.85, + ["CD"] = 0, + }, + [101] = { + ["X"] = 63.49, + ["Y"] = 50.05, + ["CD"] = 0, + }, + [102] = { + ["X"] = 58.87, + ["Y"] = 45.42, + ["CD"] = 0, + }, + [103] = { + ["X"] = 53.68, + ["Y"] = 45.06, + ["CD"] = 0, + }, + [104] = { + ["X"] = 69.19, + ["Y"] = 44.89, + ["CD"] = 0, + }, + [105] = { + ["X"] = 59.6, + ["Y"] = 42, + ["CD"] = 0, + }, + [106] = { + ["X"] = 67.82, + ["Y"] = 39.48, + ["CD"] = 0, + }, + [107] = { + ["X"] = 59.84, + ["Y"] = 37.64, + ["CD"] = 0, + }, + [108] = { + ["X"] = 67.43, + ["Y"] = 35.4, + ["CD"] = 0, + }, + [109] = { + ["X"] = 66.7, + ["Y"] = 29.13, + ["CD"] = 0, + }, + [110] = { + ["X"] = 60.88, + ["Y"] = 28.01, + ["CD"] = 0, + }, + [111] = { + ["X"] = 60.16, + ["Y"] = 21.19, + ["CD"] = 0, + }, + [112] = { + ["X"] = 53.95, + ["Y"] = 19.05, + ["CD"] = 0, + }, + [113] = { + ["X"] = 52.44, + ["Y"] = 18.27, + ["CD"] = 0, + }, + [114] = { + ["X"] = 48.51, + ["Y"] = 14.34, + ["CD"] = 0, + }, + [115] = { + ["X"] = 44.13, + ["Y"] = 14.69, + ["CD"] = 0, + }, + [116] = { + ["X"] = 44.53, + ["Y"] = 21.08, + ["CD"] = 0, + }, + [117] = { + ["X"] = 45.31, + ["Y"] = 26.71, + ["CD"] = 0, + }, + [118] = { + ["X"] = 46.16, + ["Y"] = 33.23, + ["CD"] = 0, + }, + [119] = { + ["X"] = 48.2, + ["Y"] = 45.28, + ["CD"] = 0, + }, + [120] = { + ["X"] = 42.52, + ["Y"] = 56.26, + ["CD"] = 0, + }, + [121] = { + ["X"] = 42.18, + ["Y"] = 53.86, + ["CD"] = 0, + }, + [122] = { + ["X"] = 42.49, + ["Y"] = 45.67, + ["CD"] = 0, + }, + [123] = { + ["X"] = 40.75, + ["Y"] = 46.4, + ["CD"] = 0, + }, + [124] = { + ["X"] = 40.5, + ["Y"] = 58, + ["CD"] = 0, + }, + [125] = { + ["X"] = 39.56, + ["Y"] = 44.86, + ["CD"] = 0, + }, + [126] = { + ["X"] = 37.41, + ["Y"] = 47.1, + ["CD"] = 0, + }, + [127] = { + ["X"] = 37.05, + ["Y"] = 58.92, + ["CD"] = 0, + }, + [128] = { + ["X"] = 35.56, + ["Y"] = 47.08, + ["CD"] = 0, + }, + [129] = { + ["X"] = 34.11, + ["Y"] = 59.82, + ["CD"] = 0, + }, + [130] = { + ["X"] = 31.96, + ["Y"] = 59.46, + ["CD"] = 0, + }, + [131] = { + ["X"] = 31.19, + ["Y"] = 47.17, + ["CD"] = 0, + }, + [132] = { + ["X"] = 27.81, + ["Y"] = 58.83, + ["CD"] = 0, + }, + [133] = { + ["X"] = 27.7, + ["Y"] = 47.35, + ["CD"] = 0, + }, + [134] = { + ["X"] = 26.52, + ["Y"] = 47.47, + ["CD"] = 0, + }, + [135] = { + ["X"] = 24.62, + ["Y"] = 62.82, + ["CD"] = 0, + }, + [136] = { + ["X"] = 21.76, + ["Y"] = 62.47, + ["CD"] = 0, + }, + [137] = { + ["X"] = 22.41, + ["Y"] = 58.99, + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 50 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Icecap.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Icecap.lua index cc3aa16..11c4def 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Icecap.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Icecap.lua @@ -1,453 +1,451 @@ aura_env.herbs = { - [1] = { - ["X"] = 59.16, - ["Y"] = 84.77, - ["CD"] = 0, - }, - [2] = { - ["X"] = 62.31, - ["Y"] = 83, - ["CD"] = 0, - }, - [3] = { - ["X"] = 57.11, - ["Y"] = 82.01, - ["CD"] = 0, - }, - [4] = { - ["X"] = 64.06, - ["Y"] = 78.62, - ["CD"] = 0, - }, - [5] = { - ["X"] = 61.3, - ["Y"] = 77.48, - ["CD"] = 0, - }, - [6] = { - ["X"] = 62.98, - ["Y"] = 75.01, - ["CD"] = 0, - }, - [7] = { - ["X"] = 60.57, - ["Y"] = 72.97, - ["CD"] = 0, - }, - [8] = { - ["X"] = 57.89, - ["Y"] = 76.61, - ["CD"] = 0, - }, - [9] = { - ["X"] = 58.81, - ["Y"] = 71.72, - ["CD"] = 0, - }, - [10] = { - ["X"] = 61.9, - ["Y"] = 70.8, - ["CD"] = 0, - }, - [11] = { - ["X"] = 55.55, - ["Y"] = 66.93, - ["CD"] = 0, - }, - [12] = { - ["X"] = 57.47, - ["Y"] = 67.97, - ["CD"] = 0, - }, - [13] = { - ["X"] = 64.62, - ["Y"] = 67.64, - ["CD"] = 0, - }, - [14] = { - ["X"] = 58.61, - ["Y"] = 64.35, - ["CD"] = 0, - }, - [15] = { - ["X"] = 60.58, - ["Y"] = 63.25, - ["CD"] = 0, - }, - [16] = { - ["X"] = 66.46, - ["Y"] = 63.37, - ["CD"] = 0, - }, - [17] = { - ["X"] = 54.22, - ["Y"] = 59.72, - ["CD"] = 0, - }, - [18] = { - ["X"] = 50.02, - ["Y"] = 59.7, - ["CD"] = 0, - }, - [19] = { - ["X"] = 55.15, - ["Y"] = 58.99, - ["CD"] = 0, - }, - [20] = { - ["X"] = 58.3, - ["Y"] = 57.27, - ["CD"] = 0, - }, - [21] = { - ["X"] = 66.48, - ["Y"] = 58.7, - ["CD"] = 0, - }, - [22] = { - ["X"] = 65.73, - ["Y"] = 55.86, - ["CD"] = 0, - }, - [23] = { - ["X"] = 67.08, - ["Y"] = 55.5, - ["CD"] = 0, - }, - [24] = { - ["X"] = 56.21, - ["Y"] = 54.41, - ["CD"] = 0, - }, - [25] = { - ["X"] = 63.85, - ["Y"] = 54.34, - ["CD"] = 0, - }, - [26] = { - ["X"] = 57.63, - ["Y"] = 53.91, - ["CD"] = 0, - }, - [27] = { - ["X"] = 62.95, - ["Y"] = 52.24, - ["CD"] = 0, - }, - [28] = { - ["X"] = 54.26, - ["Y"] = 51.46, - ["CD"] = 0, - }, - [29] = { - ["X"] = 53.42, - ["Y"] = 52.49, - ["CD"] = 0, - }, - [30] = { - ["X"] = 51.05, - ["Y"] = 47.74, - ["CD"] = 0, - }, - [31] = { - ["X"] = 62.14, - ["Y"] = 46, - ["CD"] = 0, - }, - [32] = { - ["X"] = 57.41, - ["Y"] = 44.12, - ["CD"] = 0, - }, - [33] = { - ["X"] = 67.38, - ["Y"] = 43.91, - ["CD"] = 0, - }, - [34] = { - ["X"] = 64.77, - ["Y"] = 44.54, - ["CD"] = 0, - }, - [35] = { - ["X"] = 63.95, - ["Y"] = 38.93, - ["CD"] = 0, - }, - [36] = { - ["X"] = 56.38, - ["Y"] = 40.05, - ["CD"] = 0, - }, - [37] = { - ["X"] = 53.33, - ["Y"] = 40.12, - ["CD"] = 0, - }, - [38] = { - ["X"] = 54.33, - ["Y"] = 39.28, - ["CD"] = 0, - }, - [39] = { - ["X"] = 58.25, - ["Y"] = 36.59, - ["CD"] = 0, - }, - [40] = { - ["X"] = 66.39, - ["Y"] = 31.62, - ["CD"] = 0, - }, - [41] = { - ["X"] = 65.34, - ["Y"] = 33.85, - ["CD"] = 0, - }, - [42] = { - ["X"] = 56.84, - ["Y"] = 35.19, - ["CD"] = 0, - }, - [43] = { - ["X"] = 53.46, - ["Y"] = 28.57, - ["CD"] = 0, - }, - [44] = { - ["X"] = 61.98, - ["Y"] = 31.58, - ["CD"] = 0, - }, - [45] = { - ["X"] = 61.24, - ["Y"] = 31.93, - ["CD"] = 0, - }, - [46] = { - ["X"] = 57.11, - ["Y"] = 33.25, - ["CD"] = 0, - }, - [47] = { - ["X"] = 47.75, - ["Y"] = 31.28, - ["CD"] = 0, - }, - [48] = { - ["X"] = 53.36, - ["Y"] = 33.23, - ["CD"] = 0, - }, - [49] = { - ["X"] = 58, - ["Y"] = 25.44, - ["CD"] = 0, - }, - [50] = { - ["X"] = 56.97, - ["Y"] = 26.83, - ["CD"] = 0, - }, - [51] = { - ["X"] = 49.79, - ["Y"] = 25.15, - ["CD"] = 0, - }, - [52] = { - ["X"] = 56.02, - ["Y"] = 22.75, - ["CD"] = 0, - }, - [53] = { - ["X"] = 46.42, - ["Y"] = 24.46, - ["CD"] = 0, - }, - [54] = { - ["X"] = 50.08, - ["Y"] = 22.67, - ["CD"] = 0, - }, - [55] = { - ["X"] = 46.7, - ["Y"] = 18.24, - ["CD"] = 0, - }, - [56] = { - ["X"] = 48.65, - ["Y"] = 17.22, - ["CD"] = 0, - }, - [57] = { - ["X"] = 49.35, - ["Y"] = 18.76, - ["CD"] = 0, - }, - [58] = { - ["X"] = 52.3, - ["Y"] = 20.68, - ["CD"] = 0, - }, - [59] = { - ["X"] = 45.21, - ["Y"] = 14.81, - ["CD"] = 0, - }, - [60] = { - ["X"] = 45.87, - ["Y"] = 20.86, - ["CD"] = 0, - }, - [61] = { - ["X"] = 47.49, - ["Y"] = 50.39, - ["CD"] = 0, - }, - [62] = { - ["X"] = 48.23, - ["Y"] = 53.43, - ["CD"] = 0, - }, - [63] = { - ["X"] = 47.36, - ["Y"] = 58.17, - ["CD"] = 0, - }, - [64] = { - ["X"] = 48.56, - ["Y"] = 57.74, - ["CD"] = 0, - }, - [65] = { - ["X"] = 45.22, - ["Y"] = 57.7, - ["CD"] = 0, - }, - [66] = { - ["X"] = 45.19, - ["Y"] = 59.5, - ["CD"] = 0, - }, - [67] = { - ["X"] = 42.43, - ["Y"] = 49.82, - ["CD"] = 0, - }, - [68] = { - ["X"] = 40.35, - ["Y"] = 49.45, - ["CD"] = 0, - }, - [69] = { - ["X"] = 40.46, - ["Y"] = 54.28, - ["CD"] = 0, - }, - [70] = { - ["X"] = 39.05, - ["Y"] = 55.74, - ["CD"] = 0, - }, - [71] = { - ["X"] = 37.6, - ["Y"] = 55.77, - ["CD"] = 0, - }, - [72] = { - ["X"] = 34.89, - ["Y"] = 57.33, - ["CD"] = 0, - }, - [73] = { - ["X"] = 34.59, - ["Y"] = 50.15, - ["CD"] = 0, - }, - [74] = { - ["X"] = 33.26, - ["Y"] = 48.43, - ["CD"] = 0, - }, - [75] = { - ["X"] = 32.77, - ["Y"] = 51.29, - ["CD"] = 0, - }, - [76] = { - ["X"] = 31.15, - ["Y"] = 57.24, - ["CD"] = 0, - }, - [77] = { - ["X"] = 30.3, - ["Y"] = 54.04, - ["CD"] = 0, - }, - [78] = { - ["X"] = 28.92, - ["Y"] = 52.76, - ["CD"] = 0, - }, - [79] = { - ["X"] = 28.32, - ["Y"] = 55.97, - ["CD"] = 0, - }, - [80] = { - ["X"] = 26.04, - ["Y"] = 49.17, - ["CD"] = 0, - }, - [81] = { - ["X"] = 24.02, - ["Y"] = 49.75, - ["CD"] = 0, - }, - [82] = { - ["X"] = 25.24, - ["Y"] = 51.71, - ["CD"] = 0, - }, - [83] = { - ["X"] = 24.44, - ["Y"] = 50.98, - ["CD"] = 0, - }, - [84] = { - ["X"] = 24.27, - ["Y"] = 56.95, - ["CD"] = 0, - }, + [1] = { + ["X"] = 59.16, + ["Y"] = 84.77, + ["CD"] = 0, + }, + [2] = { + ["X"] = 62.31, + ["Y"] = 83, + ["CD"] = 0, + }, + [3] = { + ["X"] = 57.11, + ["Y"] = 82.01, + ["CD"] = 0, + }, + [4] = { + ["X"] = 64.06, + ["Y"] = 78.62, + ["CD"] = 0, + }, + [5] = { + ["X"] = 61.3, + ["Y"] = 77.48, + ["CD"] = 0, + }, + [6] = { + ["X"] = 62.98, + ["Y"] = 75.01, + ["CD"] = 0, + }, + [7] = { + ["X"] = 60.57, + ["Y"] = 72.97, + ["CD"] = 0, + }, + [8] = { + ["X"] = 57.89, + ["Y"] = 76.61, + ["CD"] = 0, + }, + [9] = { + ["X"] = 58.81, + ["Y"] = 71.72, + ["CD"] = 0, + }, + [10] = { + ["X"] = 61.9, + ["Y"] = 70.8, + ["CD"] = 0, + }, + [11] = { + ["X"] = 55.55, + ["Y"] = 66.93, + ["CD"] = 0, + }, + [12] = { + ["X"] = 57.47, + ["Y"] = 67.97, + ["CD"] = 0, + }, + [13] = { + ["X"] = 64.62, + ["Y"] = 67.64, + ["CD"] = 0, + }, + [14] = { + ["X"] = 58.61, + ["Y"] = 64.35, + ["CD"] = 0, + }, + [15] = { + ["X"] = 60.58, + ["Y"] = 63.25, + ["CD"] = 0, + }, + [16] = { + ["X"] = 66.46, + ["Y"] = 63.37, + ["CD"] = 0, + }, + [17] = { + ["X"] = 54.22, + ["Y"] = 59.72, + ["CD"] = 0, + }, + [18] = { + ["X"] = 50.02, + ["Y"] = 59.7, + ["CD"] = 0, + }, + [19] = { + ["X"] = 55.15, + ["Y"] = 58.99, + ["CD"] = 0, + }, + [20] = { + ["X"] = 58.3, + ["Y"] = 57.27, + ["CD"] = 0, + }, + [21] = { + ["X"] = 66.48, + ["Y"] = 58.7, + ["CD"] = 0, + }, + [22] = { + ["X"] = 65.73, + ["Y"] = 55.86, + ["CD"] = 0, + }, + [23] = { + ["X"] = 67.08, + ["Y"] = 55.5, + ["CD"] = 0, + }, + [24] = { + ["X"] = 56.21, + ["Y"] = 54.41, + ["CD"] = 0, + }, + [25] = { + ["X"] = 63.85, + ["Y"] = 54.34, + ["CD"] = 0, + }, + [26] = { + ["X"] = 57.63, + ["Y"] = 53.91, + ["CD"] = 0, + }, + [27] = { + ["X"] = 62.95, + ["Y"] = 52.24, + ["CD"] = 0, + }, + [28] = { + ["X"] = 54.26, + ["Y"] = 51.46, + ["CD"] = 0, + }, + [29] = { + ["X"] = 53.42, + ["Y"] = 52.49, + ["CD"] = 0, + }, + [30] = { + ["X"] = 51.05, + ["Y"] = 47.74, + ["CD"] = 0, + }, + [31] = { + ["X"] = 62.14, + ["Y"] = 46, + ["CD"] = 0, + }, + [32] = { + ["X"] = 57.41, + ["Y"] = 44.12, + ["CD"] = 0, + }, + [33] = { + ["X"] = 67.38, + ["Y"] = 43.91, + ["CD"] = 0, + }, + [34] = { + ["X"] = 64.77, + ["Y"] = 44.54, + ["CD"] = 0, + }, + [35] = { + ["X"] = 63.95, + ["Y"] = 38.93, + ["CD"] = 0, + }, + [36] = { + ["X"] = 56.38, + ["Y"] = 40.05, + ["CD"] = 0, + }, + [37] = { + ["X"] = 53.33, + ["Y"] = 40.12, + ["CD"] = 0, + }, + [38] = { + ["X"] = 54.33, + ["Y"] = 39.28, + ["CD"] = 0, + }, + [39] = { + ["X"] = 58.25, + ["Y"] = 36.59, + ["CD"] = 0, + }, + [40] = { + ["X"] = 66.39, + ["Y"] = 31.62, + ["CD"] = 0, + }, + [41] = { + ["X"] = 65.34, + ["Y"] = 33.85, + ["CD"] = 0, + }, + [42] = { + ["X"] = 56.84, + ["Y"] = 35.19, + ["CD"] = 0, + }, + [43] = { + ["X"] = 53.46, + ["Y"] = 28.57, + ["CD"] = 0, + }, + [44] = { + ["X"] = 61.98, + ["Y"] = 31.58, + ["CD"] = 0, + }, + [45] = { + ["X"] = 61.24, + ["Y"] = 31.93, + ["CD"] = 0, + }, + [46] = { + ["X"] = 57.11, + ["Y"] = 33.25, + ["CD"] = 0, + }, + [47] = { + ["X"] = 47.75, + ["Y"] = 31.28, + ["CD"] = 0, + }, + [48] = { + ["X"] = 53.36, + ["Y"] = 33.23, + ["CD"] = 0, + }, + [49] = { + ["X"] = 58, + ["Y"] = 25.44, + ["CD"] = 0, + }, + [50] = { + ["X"] = 56.97, + ["Y"] = 26.83, + ["CD"] = 0, + }, + [51] = { + ["X"] = 49.79, + ["Y"] = 25.15, + ["CD"] = 0, + }, + [52] = { + ["X"] = 56.02, + ["Y"] = 22.75, + ["CD"] = 0, + }, + [53] = { + ["X"] = 46.42, + ["Y"] = 24.46, + ["CD"] = 0, + }, + [54] = { + ["X"] = 50.08, + ["Y"] = 22.67, + ["CD"] = 0, + }, + [55] = { + ["X"] = 46.7, + ["Y"] = 18.24, + ["CD"] = 0, + }, + [56] = { + ["X"] = 48.65, + ["Y"] = 17.22, + ["CD"] = 0, + }, + [57] = { + ["X"] = 49.35, + ["Y"] = 18.76, + ["CD"] = 0, + }, + [58] = { + ["X"] = 52.3, + ["Y"] = 20.68, + ["CD"] = 0, + }, + [59] = { + ["X"] = 45.21, + ["Y"] = 14.81, + ["CD"] = 0, + }, + [60] = { + ["X"] = 45.87, + ["Y"] = 20.86, + ["CD"] = 0, + }, + [61] = { + ["X"] = 47.49, + ["Y"] = 50.39, + ["CD"] = 0, + }, + [62] = { + ["X"] = 48.23, + ["Y"] = 53.43, + ["CD"] = 0, + }, + [63] = { + ["X"] = 47.36, + ["Y"] = 58.17, + ["CD"] = 0, + }, + [64] = { + ["X"] = 48.56, + ["Y"] = 57.74, + ["CD"] = 0, + }, + [65] = { + ["X"] = 45.22, + ["Y"] = 57.7, + ["CD"] = 0, + }, + [66] = { + ["X"] = 45.19, + ["Y"] = 59.5, + ["CD"] = 0, + }, + [67] = { + ["X"] = 42.43, + ["Y"] = 49.82, + ["CD"] = 0, + }, + [68] = { + ["X"] = 40.35, + ["Y"] = 49.45, + ["CD"] = 0, + }, + [69] = { + ["X"] = 40.46, + ["Y"] = 54.28, + ["CD"] = 0, + }, + [70] = { + ["X"] = 39.05, + ["Y"] = 55.74, + ["CD"] = 0, + }, + [71] = { + ["X"] = 37.6, + ["Y"] = 55.77, + ["CD"] = 0, + }, + [72] = { + ["X"] = 34.89, + ["Y"] = 57.33, + ["CD"] = 0, + }, + [73] = { + ["X"] = 34.59, + ["Y"] = 50.15, + ["CD"] = 0, + }, + [74] = { + ["X"] = 33.26, + ["Y"] = 48.43, + ["CD"] = 0, + }, + [75] = { + ["X"] = 32.77, + ["Y"] = 51.29, + ["CD"] = 0, + }, + [76] = { + ["X"] = 31.15, + ["Y"] = 57.24, + ["CD"] = 0, + }, + [77] = { + ["X"] = 30.3, + ["Y"] = 54.04, + ["CD"] = 0, + }, + [78] = { + ["X"] = 28.92, + ["Y"] = 52.76, + ["CD"] = 0, + }, + [79] = { + ["X"] = 28.32, + ["Y"] = 55.97, + ["CD"] = 0, + }, + [80] = { + ["X"] = 26.04, + ["Y"] = 49.17, + ["CD"] = 0, + }, + [81] = { + ["X"] = 24.02, + ["Y"] = 49.75, + ["CD"] = 0, + }, + [82] = { + ["X"] = 25.24, + ["Y"] = 51.71, + ["CD"] = 0, + }, + [83] = { + ["X"] = 24.44, + ["Y"] = 50.98, + ["CD"] = 0, + }, + [84] = { + ["X"] = 24.27, + ["Y"] = 56.95, + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 50 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() - aura_env.minID = - { - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 - } - local pX = GetPlayerMapPosition("player") or 0 - local pY = select(2, GetPlayerMapPosition("player")) or 0 - pX, pY = pX * 100, pY * 100 - for k, v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k - end - end - end - return aura_env.minID["ID"] + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end + end + end + return aura_env.minID["ID"] end - diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Roses.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Roses.lua index f4123fa..89cad8f 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Roses.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Roses.lua @@ -1,1233 +1,1031 @@ -aura_env.herbs = -{ - [1] = - { - ["X"] = 52.4, - ["Y"] = 48.2, - ["CD"] = 0 - }, - [2] = - { - ["X"] = 54.4, - ["Y"] = 48.23, - ["CD"] = 0 - }, - [3] = - { - ["X"] = 59.18, - ["Y"] = 50.54, - ["CD"] = 0 - }, - [4] = - { - ["X"] = 58.96, - ["Y"] = 46.15, - ["CD"] = 0 - }, - [5] = - { - ["X"] = 54.91, - ["Y"] = 46.5, - ["CD"] = 0 - }, - [6] = - { - ["X"] = 54.55, - ["Y"] = 47.26, - ["CD"] = 0 - }, - [7] = - { - ["X"] = 61.05, - ["Y"] = 50.74, - ["CD"] = 0 - }, - [8] = - { - ["X"] = 62.89, - ["Y"] = 52.74, - ["CD"] = 0 - }, - [9] = - { - ["X"] = 63.77, - ["Y"] = 54.93, - ["CD"] = 0 - }, - [10] = - { - ["X"] = 70.23, - ["Y"] = 63.85, - ["CD"] = 0 - }, - [11] = - { - ["X"] = 67.49, - ["Y"] = 59.77, - ["CD"] = 0 - }, - [12] = - { - ["X"] = 66.18, - ["Y"] = 57.51, - ["CD"] = 0 - }, - [13] = - { - ["X"] = 64.22, - ["Y"] = 52.52, - ["CD"] = 0 - }, - [14] = - { - ["X"] = 60.07, - ["Y"] = 49.38, - ["CD"] = 0 - }, - [15] = - { - ["X"] = 55.96, - ["Y"] = 45.39, - ["CD"] = 0 - }, - [16] = - { - ["X"] = 22.27, - ["Y"] = 58.65, - ["CD"] = 0 - }, - [17] = - { - ["X"] = 22.86, - ["Y"] = 54.7, - ["CD"] = 0 - }, - [18] = - { - ["X"] = 23.04, - ["Y"] = 53.17, - ["CD"] = 0 - }, - [19] = - { - ["X"] = 23.12, - ["Y"] = 53.84, - ["CD"] = 0 - }, - [20] = - { - ["X"] = 24.63, - ["Y"] = 51.23, - ["CD"] = 0 - }, - [21] = - { - ["X"] = 27.43, - ["Y"] = 41.62, - ["CD"] = 0 - }, - [22] = - { - ["X"] = 24.7, - ["Y"] = 39.47, - ["CD"] = 0 - }, - [23] = - { - ["X"] = 23.73, - ["Y"] = 39.94, - ["CD"] = 0 - }, - [24] = - { - ["X"] = 18.41, - ["Y"] = 47.7, - ["CD"] = 0 - }, - [25] = - { - ["X"] = 19.13, - ["Y"] = 45.07, - ["CD"] = 0 - }, - [26] = - { - ["X"] = 18.87, - ["Y"] = 43.64, - ["CD"] = 0 - }, - [27] = - { - ["X"] = 17.04, - ["Y"] = 43.5, - ["CD"] = 0 - }, - [28] = - { - ["X"] = 15.28, - ["Y"] = 42.46, - ["CD"] = 0 - }, - [29] = - { - ["X"] = 15.58, - ["Y"] = 39.75, - ["CD"] = 0 - }, - [30] = - { - ["X"] = 16.94, - ["Y"] = 39.28, - ["CD"] = 0 - }, - [31] = - { - ["X"] = 17.3, - ["Y"] = 39.97, - ["CD"] = 0 - }, - [32] = - { - ["X"] = 18.19, - ["Y"] = 40.52, - ["CD"] = 0 - }, - [33] = - { - ["X"] = 19.77, - ["Y"] = 43.53, - ["CD"] = 0 - }, - [34] = - { - ["X"] = 19.81, - ["Y"] = 42.84, - ["CD"] = 0 - }, - [35] = - { - ["X"] = 23.16, - ["Y"] = 43.34, - ["CD"] = 0 - }, - [36] = - { - ["X"] = 26.86, - ["Y"] = 40.75, - ["CD"] = 0 - }, - [37] = - { - ["X"] = 27.44, - ["Y"] = 41.95, - ["CD"] = 0 - }, - [38] = - { - ["X"] = 27.32, - ["Y"] = 45.11, - ["CD"] = 0 - }, - [39] = - { - ["X"] = 28.79, - ["Y"] = 47.29, - ["CD"] = 0 - }, - [40] = - { - ["X"] = 31.11, - ["Y"] = 47.49, - ["CD"] = 0 - }, - [41] = - { - ["X"] = 31.52, - ["Y"] = 49.9, - ["CD"] = 0 - }, - [42] = - { - ["X"] = 31.61, - ["Y"] = 54.38, - ["CD"] = 0 - }, - [43] = - { - ["X"] = 33.61, - ["Y"] = 54.24, - ["CD"] = 0 - }, - [44] = - { - ["X"] = 34.03, - ["Y"] = 53.09, - ["CD"] = 0 - }, - [45] = - { - ["X"] = 37.9, - ["Y"] = 48.99, - ["CD"] = 0 - }, - [46] = - { - ["X"] = 39.05, - ["Y"] = 51.47, - ["CD"] = 0 - }, - [47] = - { - ["X"] = 40.39, - ["Y"] = 48.64, - ["CD"] = 0 - }, - [48] = - { - ["X"] = 40.77, - ["Y"] = 48.19, - ["CD"] = 0 - }, - [49] = - { - ["X"] = 44.14, - ["Y"] = 50.24, - ["CD"] = 0 - }, - [50] = - { - ["X"] = 56.5, - ["Y"] = 45.1, - ["CD"] = 0 - }, - [51] = - { - ["X"] = 59.76, - ["Y"] = 42.14, - ["CD"] = 0 - }, - [52] = - { - ["X"] = 58.33, - ["Y"] = 41.44, - ["CD"] = 0 - }, - [53] = - { - ["X"] = 58.51, - ["Y"] = 43.04, - ["CD"] = 0 - }, - [54] = - { - ["X"] = 59.12, - ["Y"] = 47.83, - ["CD"] = 0 - }, - [55] = - { - ["X"] = 35.44, - ["Y"] = 37.57, - ["CD"] = 0 - }, - [56] = - { - ["X"] = 34.72, - ["Y"] = 37.99, - ["CD"] = 0 - }, - [57] = - { - ["X"] = 33.97, - ["Y"] = 37.32, - ["CD"] = 0 - }, - [58] = - { - ["X"] = 20.39, - ["Y"] = 51.41, - ["CD"] = 0 - }, - [59] = - { - ["X"] = 19.48, - ["Y"] = 49.62, - ["CD"] = 0 - }, - [60] = - { - ["X"] = 20.86, - ["Y"] = 49.17, - ["CD"] = 0 - }, - [61] = - { - ["X"] = 21.24, - ["Y"] = 48.51, - ["CD"] = 0 - }, - [62] = - { - ["X"] = 21.67, - ["Y"] = 46.84, - ["CD"] = 0 - }, - [63] = - { - ["X"] = 20.77, - ["Y"] = 46.4, - ["CD"] = 0 - }, - [64] = - { - ["X"] = 20.68, - ["Y"] = 45.54, - ["CD"] = 0 - }, - [65] = - { - ["X"] = 23.78, - ["Y"] = 46.23, - ["CD"] = 0 - }, - [66] = - { - ["X"] = 23.67, - ["Y"] = 45.78, - ["CD"] = 0 - }, - [67] = - { - ["X"] = 24.7, - ["Y"] = 44.5, - ["CD"] = 0 - }, - [68] = - { - ["X"] = 24.36, - ["Y"] = 42.97, - ["CD"] = 0 - }, - [69] = - { - ["X"] = 25.12, - ["Y"] = 42.57, - ["CD"] = 0 - }, - [70] = - { - ["X"] = 25.27, - ["Y"] = 41.14, - ["CD"] = 0 - }, - [71] = - { - ["X"] = 25.49, - ["Y"] = 38.68, - ["CD"] = 0 - }, - [72] = - { - ["X"] = 26.48, - ["Y"] = 37.83, - ["CD"] = 0 - }, - [73] = - { - ["X"] = 28.26, - ["Y"] = 37.27, - ["CD"] = 0 - }, - [74] = - { - ["X"] = 31.6, - ["Y"] = 36.18, - ["CD"] = 0 - }, - [75] = - { - ["X"] = 32.77, - ["Y"] = 37.25, - ["CD"] = 0 - }, - [76] = - { - ["X"] = 33.51, - ["Y"] = 35.46, - ["CD"] = 0 - }, - [77] = - { - ["X"] = 32.97, - ["Y"] = 39.24, - ["CD"] = 0 - }, - [78] = - { - ["X"] = 32.76, - ["Y"] = 40.68, - ["CD"] = 0 - }, - [79] = - { - ["X"] = 30.18, - ["Y"] = 46.7, - ["CD"] = 0 - }, - [80] = - { - ["X"] = 29.81, - ["Y"] = 47.95, - ["CD"] = 0 - }, - [81] = - { - ["X"] = 27.61, - ["Y"] = 50.45, - ["CD"] = 0 - }, - [82] = - { - ["X"] = 27.86, - ["Y"] = 53.57, - ["CD"] = 0 - }, - [83] = - { - ["X"] = 27.06, - ["Y"] = 53.26, - ["CD"] = 0 - }, - [84] = - { - ["X"] = 26.08, - ["Y"] = 53.85, - ["CD"] = 0 - }, - [85] = - { - ["X"] = 25.37, - ["Y"] = 54.48, - ["CD"] = 0 - }, - [86] = - { - ["X"] = 25.15, - ["Y"] = 56.59, - ["CD"] = 0 - }, - [87] = - { - ["X"] = 24.5, - ["Y"] = 55.55, - ["CD"] = 0 - }, - [88] = - { - ["X"] = 22.73, - ["Y"] = 55.49, - ["CD"] = 0 - }, - [89] = - { - ["X"] = 21.64, - ["Y"] = 56.04, - ["CD"] = 0 - }, - [90] = - { - ["X"] = 20.89, - ["Y"] = 52.45, - ["CD"] = 0 - }, - [91] = - { - ["X"] = 21.6, - ["Y"] = 48.93, - ["CD"] = 0 - }, - [92] = - { - ["X"] = 22.78, - ["Y"] = 47, - ["CD"] = 0 - }, - [93] = - { - ["X"] = 23.67, - ["Y"] = 47.17, - ["CD"] = 0 - }, - [94] = - { - ["X"] = 28.81, - ["Y"] = 49.54, - ["CD"] = 0 - }, - [95] = - { - ["X"] = 27.63, - ["Y"] = 49.1, - ["CD"] = 0 - }, - [96] = - { - ["X"] = 28.12, - ["Y"] = 47.43, - ["CD"] = 0 - }, - [97] = - { - ["X"] = 29.6, - ["Y"] = 45.44, - ["CD"] = 0 - }, - [98] = - { - ["X"] = 31.08, - ["Y"] = 44.93, - ["CD"] = 0 - }, - [99] = - { - ["X"] = 32.12, - ["Y"] = 45.11, - ["CD"] = 0 - }, - [100] = - { - ["X"] = 32.86, - ["Y"] = 44.32, - ["CD"] = 0 - }, - [101] = - { - ["X"] = 35.29, - ["Y"] = 50.54, - ["CD"] = 0 - }, - [102] = - { - ["X"] = 31.72, - ["Y"] = 11.15, - ["CD"] = 0 - }, - [103] = - { - ["X"] = 35.36, - ["Y"] = 11.62, - ["CD"] = 0 - }, - [104] = - { - ["X"] = 38.72, - ["Y"] = 14.9, - ["CD"] = 0 - }, - [105] = - { - ["X"] = 39.7, - ["Y"] = 14.87, - ["CD"] = 0 - }, - [106] = - { - ["X"] = 28.23, - ["Y"] = 19.56, - ["CD"] = 0 - }, - [107] = - { - ["X"] = 24.39, - ["Y"] = 25.74, - ["CD"] = 0 - }, - [108] = - { - ["X"] = 26.2, - ["Y"] = 27.16, - ["CD"] = 0 - }, - [109] = - { - ["X"] = 28.07, - ["Y"] = 29.18, - ["CD"] = 0 - }, - [110] = - { - ["X"] = 28.8, - ["Y"] = 38.56, - ["CD"] = 0 - }, - [111] = - { - ["X"] = 30.55, - ["Y"] = 37.63, - ["CD"] = 0 - }, - [112] = - { - ["X"] = 34.55, - ["Y"] = 42.86, - ["CD"] = 0 - }, - [113] = - { - ["X"] = 33.84, - ["Y"] = 50.23, - ["CD"] = 0 - }, - [114] = - { - ["X"] = 35.52, - ["Y"] = 51.77, - ["CD"] = 0 - }, - [115] = - { - ["X"] = 35.33, - ["Y"] = 58.01, - ["CD"] = 0 - }, - [116] = - { - ["X"] = 38.64, - ["Y"] = 62.53, - ["CD"] = 0 - }, - [117] = - { - ["X"] = 40.41, - ["Y"] = 73, - ["CD"] = 0 - }, - [118] = - { - ["X"] = 41.04, - ["Y"] = 81.46, - ["CD"] = 0 - }, - [119] = - { - ["X"] = 41.17, - ["Y"] = 83.21, - ["CD"] = 0 - }, - [120] = - { - ["X"] = 70.07, - ["Y"] = 61.17, - ["CD"] = 0 - }, - [121] = - { - ["X"] = 69.26, - ["Y"] = 62.64, - ["CD"] = 0 - }, - [122] = - { - ["X"] = 68.31, - ["Y"] = 58.27, - ["CD"] = 0 - }, - [123] = - { - ["X"] = 66.58, - ["Y"] = 55.69, - ["CD"] = 0 - }, - [124] = - { - ["X"] = 66.13, - ["Y"] = 53.94, - ["CD"] = 0 - }, - [125] = - { - ["X"] = 65.37, - ["Y"] = 48.57, - ["CD"] = 0 - }, - [126] = - { - ["X"] = 65.11, - ["Y"] = 50.4, - ["CD"] = 0 - }, - [127] = - { - ["X"] = 62.57, - ["Y"] = 50.61, - ["CD"] = 0 - }, - [128] = - { - ["X"] = 65.12, - ["Y"] = 38.6, - ["CD"] = 0 - }, - [129] = - { - ["X"] = 62.25, - ["Y"] = 45.8, - ["CD"] = 0 - }, - [130] = - { - ["X"] = 60.11, - ["Y"] = 46.19, - ["CD"] = 0 - }, - [131] = - { - ["X"] = 58.62, - ["Y"] = 49.54, - ["CD"] = 0 - }, - [132] = - { - ["X"] = 56.22, - ["Y"] = 48.62, - ["CD"] = 0 - }, - [133] = - { - ["X"] = 47.37, - ["Y"] = 55.17, - ["CD"] = 0 - }, - [134] = - { - ["X"] = 41.33, - ["Y"] = 72.02, - ["CD"] = 0 - }, - [135] = - { - ["X"] = 38.71, - ["Y"] = 60.97, - ["CD"] = 0 - }, - [136] = - { - ["X"] = 36.71, - ["Y"] = 59.7, - ["CD"] = 0 - }, - [137] = - { - ["X"] = 39.76, - ["Y"] = 57.54, - ["CD"] = 0 - }, - [138] = - { - ["X"] = 42.32, - ["Y"] = 49.6, - ["CD"] = 0 - }, - [139] = - { - ["X"] = 49.52, - ["Y"] = 47.44, - ["CD"] = 0 - }, - [140] = - { - ["X"] = 49.79, - ["Y"] = 40.3, - ["CD"] = 0 - }, - [141] = - { - ["X"] = 48.78, - ["Y"] = 42.77, - ["CD"] = 0 - }, - [142] = - { - ["X"] = 46.87, - ["Y"] = 39.44, - ["CD"] = 0 - }, - [143] = - { - ["X"] = 36.65, - ["Y"] = 42.98, - ["CD"] = 0 - }, - [144] = - { - ["X"] = 29.53, - ["Y"] = 46.51, - ["CD"] = 0 - }, - [145] = - { - ["X"] = 28.25, - ["Y"] = 46.15, - ["CD"] = 0 - }, - [146] = - { - ["X"] = 25.63, - ["Y"] = 52.48, - ["CD"] = 0 - }, - [147] = - { - ["X"] = 27.12, - ["Y"] = 69.02, - ["CD"] = 0 - }, - [148] = - { - ["X"] = 23.49, - ["Y"] = 61.88, - ["CD"] = 0 - }, - [149] = - { - ["X"] = 26.37, - ["Y"] = 46.84, - ["CD"] = 0 - }, - [150] = - { - ["X"] = 28.77, - ["Y"] = 41.26, - ["CD"] = 0 - }, - [151] = - { - ["X"] = 28.94, - ["Y"] = 43.58, - ["CD"] = 0 - }, - [152] = - { - ["X"] = 30.97, - ["Y"] = 39.66, - ["CD"] = 0 - }, - [153] = - { - ["X"] = 34.05, - ["Y"] = 38.76, - ["CD"] = 0 - }, - [154] = - { - ["X"] = 34.52, - ["Y"] = 44.14, - ["CD"] = 0 - }, - [155] = - { - ["X"] = 36.22, - ["Y"] = 41.74, - ["CD"] = 0 - }, - [156] = - { - ["X"] = 39.85, - ["Y"] = 39.65, - ["CD"] = 0 - }, - [157] = - { - ["X"] = 47.15, - ["Y"] = 41.25, - ["CD"] = 0 - }, - [158] = - { - ["X"] = 40.72, - ["Y"] = 40.06, - ["CD"] = 0 - }, - [159] = - { - ["X"] = 44.52, - ["Y"] = 39.66, - ["CD"] = 0 - }, - [160] = - { - ["X"] = 41.5, - ["Y"] = 38.6, - ["CD"] = 0 - }, - [161] = - { - ["X"] = 44.86, - ["Y"] = 35.75, - ["CD"] = 0 - }, - [162] = - { - ["X"] = 44.63, - ["Y"] = 33.2, - ["CD"] = 0 - }, - [163] = - { - ["X"] = 47.33, - ["Y"] = 28.88, - ["CD"] = 0 - }, - [164] = - { - ["X"] = 32.03, - ["Y"] = 34.06, - ["CD"] = 0 - }, - [165] = - { - ["X"] = 27.66, - ["Y"] = 36, - ["CD"] = 0 - }, - [166] = - { - ["X"] = 27.58, - ["Y"] = 44.62, - ["CD"] = 0 - }, - [167] = - { - ["X"] = 25.91, - ["Y"] = 44.49, - ["CD"] = 0 - }, - [168] = - { - ["X"] = 26.84, - ["Y"] = 48.81, - ["CD"] = 0 - }, - [169] = - { - ["X"] = 22.94, - ["Y"] = 55.55, - ["CD"] = 0 - }, - [170] = - { - ["X"] = 19.91, - ["Y"] = 54.45, - ["CD"] = 0 - }, - [171] = - { - ["X"] = 21.16, - ["Y"] = 53.32, - ["CD"] = 0 - }, - [172] = - { - ["X"] = 22.64, - ["Y"] = 50.19, - ["CD"] = 0 - }, - [173] = - { - ["X"] = 24.23, - ["Y"] = 33.84, - ["CD"] = 0 - }, - [174] = - { - ["X"] = 30.34, - ["Y"] = 33.68, - ["CD"] = 0 - }, - [175] = - { - ["X"] = 30.66, - ["Y"] = 33.03, - ["CD"] = 0 - }, - [176] = - { - ["X"] = 39.58, - ["Y"] = 16.08, - ["CD"] = 0 - }, - [177] = - { - ["X"] = 39.3, - ["Y"] = 14.48, - ["CD"] = 0 - }, - [178] = - { - ["X"] = 34.8, - ["Y"] = 10.58, - ["CD"] = 0 - }, - [179] = - { - ["X"] = 30.29, - ["Y"] = 8.71, - ["CD"] = 0 - }, - [180] = - { - ["X"] = 30.67, - ["Y"] = 12.65, - ["CD"] = 0 - }, - [181] = - { - ["X"] = 31.53, - ["Y"] = 14.5, - ["CD"] = 0 - }, - [182] = - { - ["X"] = 31.63, - ["Y"] = 16.56, - ["CD"] = 0 - }, - [183] = - { - ["X"] = 33.53, - ["Y"] = 20.08, - ["CD"] = 0 - }, - [184] = - { - ["X"] = 34.88, - ["Y"] = 19.76, - ["CD"] = 0 - }, - [185] = - { - ["X"] = 35.59, - ["Y"] = 18.08, - ["CD"] = 0 - }, - [186] = - { - ["X"] = 43.46, - ["Y"] = 27.48, - ["CD"] = 0 - }, - [187] = - { - ["X"] = 42.73, - ["Y"] = 27.39, - ["CD"] = 0 - }, - [188] = - { - ["X"] = 41.23, - ["Y"] = 25.46, - ["CD"] = 0 - }, - [189] = - { - ["X"] = 39.47, - ["Y"] = 24.45, - ["CD"] = 0 - }, - [190] = - { - ["X"] = 38.39, - ["Y"] = 26.94, - ["CD"] = 0 - }, - [191] = - { - ["X"] = 37.32, - ["Y"] = 26.91, - ["CD"] = 0 - }, - [192] = - { - ["X"] = 36.21, - ["Y"] = 30.36, - ["CD"] = 0 - }, - [193] = - { - ["X"] = 27.01, - ["Y"] = 29.36, - ["CD"] = 0 - }, - [194] = - { - ["X"] = 27.04, - ["Y"] = 31.9, - ["CD"] = 0 - }, - [195] = - { - ["X"] = 17.98, - ["Y"] = 42.91, - ["CD"] = 0 - }, - [196] = - { - ["X"] = 15.82, - ["Y"] = 43.16, - ["CD"] = 0 - }, - [197] = - { - ["X"] = 15.74, - ["Y"] = 38.61, - ["CD"] = 0 - }, - [198] = - { - ["X"] = 16.66, - ["Y"] = 36.19, - ["CD"] = 0 - }, - [199] = - { - ["X"] = 21.23, - ["Y"] = 20.19, - ["CD"] = 0 - }, - [200] = - { - ["X"] = 22.84, - ["Y"] = 19.42, - ["CD"] = 0 -} +aura_env.herbs = { + [1] = { + ["X"] = 52.4, + ["Y"] = 48.2, + ["CD"] = 0, + }, + [2] = { + ["X"] = 54.4, + ["Y"] = 48.23, + ["CD"] = 0, + }, + [3] = { + ["X"] = 59.18, + ["Y"] = 50.54, + ["CD"] = 0, + }, + [4] = { + ["X"] = 58.96, + ["Y"] = 46.15, + ["CD"] = 0, + }, + [5] = { + ["X"] = 54.91, + ["Y"] = 46.5, + ["CD"] = 0, + }, + [6] = { + ["X"] = 54.55, + ["Y"] = 47.26, + ["CD"] = 0, + }, + [7] = { + ["X"] = 61.05, + ["Y"] = 50.74, + ["CD"] = 0, + }, + [8] = { + ["X"] = 62.89, + ["Y"] = 52.74, + ["CD"] = 0, + }, + [9] = { + ["X"] = 63.77, + ["Y"] = 54.93, + ["CD"] = 0, + }, + [10] = { + ["X"] = 70.23, + ["Y"] = 63.85, + ["CD"] = 0, + }, + [11] = { + ["X"] = 67.49, + ["Y"] = 59.77, + ["CD"] = 0, + }, + [12] = { + ["X"] = 66.18, + ["Y"] = 57.51, + ["CD"] = 0, + }, + [13] = { + ["X"] = 64.22, + ["Y"] = 52.52, + ["CD"] = 0, + }, + [14] = { + ["X"] = 60.07, + ["Y"] = 49.38, + ["CD"] = 0, + }, + [15] = { + ["X"] = 55.96, + ["Y"] = 45.39, + ["CD"] = 0, + }, + [16] = { + ["X"] = 22.27, + ["Y"] = 58.65, + ["CD"] = 0, + }, + [17] = { + ["X"] = 22.86, + ["Y"] = 54.7, + ["CD"] = 0, + }, + [18] = { + ["X"] = 23.04, + ["Y"] = 53.17, + ["CD"] = 0, + }, + [19] = { + ["X"] = 23.12, + ["Y"] = 53.84, + ["CD"] = 0, + }, + [20] = { + ["X"] = 24.63, + ["Y"] = 51.23, + ["CD"] = 0, + }, + [21] = { + ["X"] = 27.43, + ["Y"] = 41.62, + ["CD"] = 0, + }, + [22] = { + ["X"] = 24.7, + ["Y"] = 39.47, + ["CD"] = 0, + }, + [23] = { + ["X"] = 23.73, + ["Y"] = 39.94, + ["CD"] = 0, + }, + [24] = { + ["X"] = 18.41, + ["Y"] = 47.7, + ["CD"] = 0, + }, + [25] = { + ["X"] = 19.13, + ["Y"] = 45.07, + ["CD"] = 0, + }, + [26] = { + ["X"] = 18.87, + ["Y"] = 43.64, + ["CD"] = 0, + }, + [27] = { + ["X"] = 17.04, + ["Y"] = 43.5, + ["CD"] = 0, + }, + [28] = { + ["X"] = 15.28, + ["Y"] = 42.46, + ["CD"] = 0, + }, + [29] = { + ["X"] = 15.58, + ["Y"] = 39.75, + ["CD"] = 0, + }, + [30] = { + ["X"] = 16.94, + ["Y"] = 39.28, + ["CD"] = 0, + }, + [31] = { + ["X"] = 17.3, + ["Y"] = 39.97, + ["CD"] = 0, + }, + [32] = { + ["X"] = 18.19, + ["Y"] = 40.52, + ["CD"] = 0, + }, + [33] = { + ["X"] = 19.77, + ["Y"] = 43.53, + ["CD"] = 0, + }, + [34] = { + ["X"] = 19.81, + ["Y"] = 42.84, + ["CD"] = 0, + }, + [35] = { + ["X"] = 23.16, + ["Y"] = 43.34, + ["CD"] = 0, + }, + [36] = { + ["X"] = 26.86, + ["Y"] = 40.75, + ["CD"] = 0, + }, + [37] = { + ["X"] = 27.44, + ["Y"] = 41.95, + ["CD"] = 0, + }, + [38] = { + ["X"] = 27.32, + ["Y"] = 45.11, + ["CD"] = 0, + }, + [39] = { + ["X"] = 28.79, + ["Y"] = 47.29, + ["CD"] = 0, + }, + [40] = { + ["X"] = 31.11, + ["Y"] = 47.49, + ["CD"] = 0, + }, + [41] = { + ["X"] = 31.52, + ["Y"] = 49.9, + ["CD"] = 0, + }, + [42] = { + ["X"] = 31.61, + ["Y"] = 54.38, + ["CD"] = 0, + }, + [43] = { + ["X"] = 33.61, + ["Y"] = 54.24, + ["CD"] = 0, + }, + [44] = { + ["X"] = 34.03, + ["Y"] = 53.09, + ["CD"] = 0, + }, + [45] = { + ["X"] = 37.9, + ["Y"] = 48.99, + ["CD"] = 0, + }, + [46] = { + ["X"] = 39.05, + ["Y"] = 51.47, + ["CD"] = 0, + }, + [47] = { + ["X"] = 40.39, + ["Y"] = 48.64, + ["CD"] = 0, + }, + [48] = { + ["X"] = 40.77, + ["Y"] = 48.19, + ["CD"] = 0, + }, + [49] = { + ["X"] = 44.14, + ["Y"] = 50.24, + ["CD"] = 0, + }, + [50] = { + ["X"] = 56.5, + ["Y"] = 45.1, + ["CD"] = 0, + }, + [51] = { + ["X"] = 59.76, + ["Y"] = 42.14, + ["CD"] = 0, + }, + [52] = { + ["X"] = 58.33, + ["Y"] = 41.44, + ["CD"] = 0, + }, + [53] = { + ["X"] = 58.51, + ["Y"] = 43.04, + ["CD"] = 0, + }, + [54] = { + ["X"] = 59.12, + ["Y"] = 47.83, + ["CD"] = 0, + }, + [55] = { + ["X"] = 35.44, + ["Y"] = 37.57, + ["CD"] = 0, + }, + [56] = { + ["X"] = 34.72, + ["Y"] = 37.99, + ["CD"] = 0, + }, + [57] = { + ["X"] = 33.97, + ["Y"] = 37.32, + ["CD"] = 0, + }, + [58] = { + ["X"] = 20.39, + ["Y"] = 51.41, + ["CD"] = 0, + }, + [59] = { + ["X"] = 19.48, + ["Y"] = 49.62, + ["CD"] = 0, + }, + [60] = { + ["X"] = 20.86, + ["Y"] = 49.17, + ["CD"] = 0, + }, + [61] = { + ["X"] = 21.24, + ["Y"] = 48.51, + ["CD"] = 0, + }, + [62] = { + ["X"] = 21.67, + ["Y"] = 46.84, + ["CD"] = 0, + }, + [63] = { + ["X"] = 20.77, + ["Y"] = 46.4, + ["CD"] = 0, + }, + [64] = { + ["X"] = 20.68, + ["Y"] = 45.54, + ["CD"] = 0, + }, + [65] = { + ["X"] = 23.78, + ["Y"] = 46.23, + ["CD"] = 0, + }, + [66] = { + ["X"] = 23.67, + ["Y"] = 45.78, + ["CD"] = 0, + }, + [67] = { + ["X"] = 24.7, + ["Y"] = 44.5, + ["CD"] = 0, + }, + [68] = { + ["X"] = 24.36, + ["Y"] = 42.97, + ["CD"] = 0, + }, + [69] = { + ["X"] = 25.12, + ["Y"] = 42.57, + ["CD"] = 0, + }, + [70] = { + ["X"] = 25.27, + ["Y"] = 41.14, + ["CD"] = 0, + }, + [71] = { + ["X"] = 25.49, + ["Y"] = 38.68, + ["CD"] = 0, + }, + [72] = { + ["X"] = 26.48, + ["Y"] = 37.83, + ["CD"] = 0, + }, + [73] = { + ["X"] = 28.26, + ["Y"] = 37.27, + ["CD"] = 0, + }, + [74] = { + ["X"] = 31.6, + ["Y"] = 36.18, + ["CD"] = 0, + }, + [75] = { + ["X"] = 32.77, + ["Y"] = 37.25, + ["CD"] = 0, + }, + [76] = { + ["X"] = 33.51, + ["Y"] = 35.46, + ["CD"] = 0, + }, + [77] = { + ["X"] = 32.97, + ["Y"] = 39.24, + ["CD"] = 0, + }, + [78] = { + ["X"] = 32.76, + ["Y"] = 40.68, + ["CD"] = 0, + }, + [79] = { + ["X"] = 30.18, + ["Y"] = 46.7, + ["CD"] = 0, + }, + [80] = { + ["X"] = 29.81, + ["Y"] = 47.95, + ["CD"] = 0, + }, + [81] = { + ["X"] = 27.61, + ["Y"] = 50.45, + ["CD"] = 0, + }, + [82] = { + ["X"] = 27.86, + ["Y"] = 53.57, + ["CD"] = 0, + }, + [83] = { + ["X"] = 27.06, + ["Y"] = 53.26, + ["CD"] = 0, + }, + [84] = { + ["X"] = 26.08, + ["Y"] = 53.85, + ["CD"] = 0, + }, + [85] = { + ["X"] = 25.37, + ["Y"] = 54.48, + ["CD"] = 0, + }, + [86] = { + ["X"] = 25.15, + ["Y"] = 56.59, + ["CD"] = 0, + }, + [87] = { + ["X"] = 24.5, + ["Y"] = 55.55, + ["CD"] = 0, + }, + [88] = { + ["X"] = 22.73, + ["Y"] = 55.49, + ["CD"] = 0, + }, + [89] = { + ["X"] = 21.64, + ["Y"] = 56.04, + ["CD"] = 0, + }, + [90] = { + ["X"] = 20.89, + ["Y"] = 52.45, + ["CD"] = 0, + }, + [91] = { + ["X"] = 21.6, + ["Y"] = 48.93, + ["CD"] = 0, + }, + [92] = { + ["X"] = 22.78, + ["Y"] = 47, + ["CD"] = 0, + }, + [93] = { + ["X"] = 23.67, + ["Y"] = 47.17, + ["CD"] = 0, + }, + [94] = { + ["X"] = 28.81, + ["Y"] = 49.54, + ["CD"] = 0, + }, + [95] = { + ["X"] = 27.63, + ["Y"] = 49.1, + ["CD"] = 0, + }, + [96] = { + ["X"] = 28.12, + ["Y"] = 47.43, + ["CD"] = 0, + }, + [97] = { + ["X"] = 29.6, + ["Y"] = 45.44, + ["CD"] = 0, + }, + [98] = { + ["X"] = 31.08, + ["Y"] = 44.93, + ["CD"] = 0, + }, + [99] = { + ["X"] = 32.12, + ["Y"] = 45.11, + ["CD"] = 0, + }, + [100] = { + ["X"] = 32.86, + ["Y"] = 44.32, + ["CD"] = 0, + }, + [101] = { + ["X"] = 35.29, + ["Y"] = 50.54, + ["CD"] = 0, + }, + [102] = { + ["X"] = 31.72, + ["Y"] = 11.15, + ["CD"] = 0, + }, + [103] = { + ["X"] = 35.36, + ["Y"] = 11.62, + ["CD"] = 0, + }, + [104] = { + ["X"] = 38.72, + ["Y"] = 14.9, + ["CD"] = 0, + }, + [105] = { + ["X"] = 39.7, + ["Y"] = 14.87, + ["CD"] = 0, + }, + [106] = { + ["X"] = 28.23, + ["Y"] = 19.56, + ["CD"] = 0, + }, + [107] = { + ["X"] = 24.39, + ["Y"] = 25.74, + ["CD"] = 0, + }, + [108] = { + ["X"] = 26.2, + ["Y"] = 27.16, + ["CD"] = 0, + }, + [109] = { + ["X"] = 28.07, + ["Y"] = 29.18, + ["CD"] = 0, + }, + [110] = { + ["X"] = 28.8, + ["Y"] = 38.56, + ["CD"] = 0, + }, + [111] = { + ["X"] = 30.55, + ["Y"] = 37.63, + ["CD"] = 0, + }, + [112] = { + ["X"] = 34.55, + ["Y"] = 42.86, + ["CD"] = 0, + }, + [113] = { + ["X"] = 33.84, + ["Y"] = 50.23, + ["CD"] = 0, + }, + [114] = { + ["X"] = 35.52, + ["Y"] = 51.77, + ["CD"] = 0, + }, + [115] = { + ["X"] = 35.33, + ["Y"] = 58.01, + ["CD"] = 0, + }, + [116] = { + ["X"] = 38.64, + ["Y"] = 62.53, + ["CD"] = 0, + }, + [117] = { + ["X"] = 40.41, + ["Y"] = 73, + ["CD"] = 0, + }, + [118] = { + ["X"] = 41.04, + ["Y"] = 81.46, + ["CD"] = 0, + }, + [119] = { + ["X"] = 41.17, + ["Y"] = 83.21, + ["CD"] = 0, + }, + [120] = { + ["X"] = 70.07, + ["Y"] = 61.17, + ["CD"] = 0, + }, + [121] = { + ["X"] = 69.26, + ["Y"] = 62.64, + ["CD"] = 0, + }, + [122] = { + ["X"] = 68.31, + ["Y"] = 58.27, + ["CD"] = 0, + }, + [123] = { + ["X"] = 66.58, + ["Y"] = 55.69, + ["CD"] = 0, + }, + [124] = { + ["X"] = 66.13, + ["Y"] = 53.94, + ["CD"] = 0, + }, + [125] = { + ["X"] = 65.37, + ["Y"] = 48.57, + ["CD"] = 0, + }, + [126] = { + ["X"] = 65.11, + ["Y"] = 50.4, + ["CD"] = 0, + }, + [127] = { + ["X"] = 62.57, + ["Y"] = 50.61, + ["CD"] = 0, + }, + [128] = { + ["X"] = 65.12, + ["Y"] = 38.6, + ["CD"] = 0, + }, + [129] = { + ["X"] = 62.25, + ["Y"] = 45.8, + ["CD"] = 0, + }, + [130] = { + ["X"] = 60.11, + ["Y"] = 46.19, + ["CD"] = 0, + }, + [131] = { + ["X"] = 58.62, + ["Y"] = 49.54, + ["CD"] = 0, + }, + [132] = { + ["X"] = 56.22, + ["Y"] = 48.62, + ["CD"] = 0, + }, + [133] = { + ["X"] = 47.37, + ["Y"] = 55.17, + ["CD"] = 0, + }, + [134] = { + ["X"] = 41.33, + ["Y"] = 72.02, + ["CD"] = 0, + }, + [135] = { + ["X"] = 38.71, + ["Y"] = 60.97, + ["CD"] = 0, + }, + [136] = { + ["X"] = 36.71, + ["Y"] = 59.7, + ["CD"] = 0, + }, + [137] = { + ["X"] = 39.76, + ["Y"] = 57.54, + ["CD"] = 0, + }, + [138] = { + ["X"] = 42.32, + ["Y"] = 49.6, + ["CD"] = 0, + }, + [139] = { + ["X"] = 49.52, + ["Y"] = 47.44, + ["CD"] = 0, + }, + [140] = { + ["X"] = 49.79, + ["Y"] = 40.3, + ["CD"] = 0, + }, + [141] = { + ["X"] = 48.78, + ["Y"] = 42.77, + ["CD"] = 0, + }, + [142] = { + ["X"] = 46.87, + ["Y"] = 39.44, + ["CD"] = 0, + }, + [143] = { + ["X"] = 36.65, + ["Y"] = 42.98, + ["CD"] = 0, + }, + [144] = { + ["X"] = 29.53, + ["Y"] = 46.51, + ["CD"] = 0, + }, + [145] = { + ["X"] = 28.25, + ["Y"] = 46.15, + ["CD"] = 0, + }, + [146] = { + ["X"] = 25.63, + ["Y"] = 52.48, + ["CD"] = 0, + }, + [147] = { + ["X"] = 27.12, + ["Y"] = 69.02, + ["CD"] = 0, + }, + [148] = { + ["X"] = 23.49, + ["Y"] = 61.88, + ["CD"] = 0, + }, + [149] = { + ["X"] = 26.37, + ["Y"] = 46.84, + ["CD"] = 0, + }, + [150] = { + ["X"] = 28.77, + ["Y"] = 41.26, + ["CD"] = 0, + }, + [151] = { + ["X"] = 28.94, + ["Y"] = 43.58, + ["CD"] = 0, + }, + [152] = { + ["X"] = 30.97, + ["Y"] = 39.66, + ["CD"] = 0, + }, + [153] = { + ["X"] = 34.05, + ["Y"] = 38.76, + ["CD"] = 0, + }, + [154] = { + ["X"] = 34.52, + ["Y"] = 44.14, + ["CD"] = 0, + }, + [155] = { + ["X"] = 36.22, + ["Y"] = 41.74, + ["CD"] = 0, + }, + [156] = { + ["X"] = 39.85, + ["Y"] = 39.65, + ["CD"] = 0, + }, + [157] = { + ["X"] = 47.15, + ["Y"] = 41.25, + ["CD"] = 0, + }, + [158] = { + ["X"] = 40.72, + ["Y"] = 40.06, + ["CD"] = 0, + }, + [159] = { + ["X"] = 44.52, + ["Y"] = 39.66, + ["CD"] = 0, + }, + [160] = { + ["X"] = 41.5, + ["Y"] = 38.6, + ["CD"] = 0, + }, + [161] = { + ["X"] = 44.86, + ["Y"] = 35.75, + ["CD"] = 0, + }, + [162] = { + ["X"] = 44.63, + ["Y"] = 33.2, + ["CD"] = 0, + }, + [163] = { + ["X"] = 47.33, + ["Y"] = 28.88, + ["CD"] = 0, + }, + [164] = { + ["X"] = 32.03, + ["Y"] = 34.06, + ["CD"] = 0, + }, + [165] = { + ["X"] = 27.66, + ["Y"] = 36, + ["CD"] = 0, + }, + [166] = { + ["X"] = 27.58, + ["Y"] = 44.62, + ["CD"] = 0, + }, + [167] = { + ["X"] = 25.91, + ["Y"] = 44.49, + ["CD"] = 0, + }, + [168] = { + ["X"] = 26.84, + ["Y"] = 48.81, + ["CD"] = 0, + }, + [169] = { + ["X"] = 22.94, + ["Y"] = 55.55, + ["CD"] = 0, + }, + [170] = { + ["X"] = 19.91, + ["Y"] = 54.45, + ["CD"] = 0, + }, + [171] = { + ["X"] = 21.16, + ["Y"] = 53.32, + ["CD"] = 0, + }, + [172] = { + ["X"] = 22.64, + ["Y"] = 50.19, + ["CD"] = 0, + }, + [173] = { + ["X"] = 24.23, + ["Y"] = 33.84, + ["CD"] = 0, + }, + [174] = { + ["X"] = 30.34, + ["Y"] = 33.68, + ["CD"] = 0, + }, + [175] = { + ["X"] = 30.66, + ["Y"] = 33.03, + ["CD"] = 0, + }, + [176] = { + ["X"] = 39.58, + ["Y"] = 16.08, + ["CD"] = 0, + }, + [177] = { + ["X"] = 39.3, + ["Y"] = 14.48, + ["CD"] = 0, + }, + [178] = { + ["X"] = 34.8, + ["Y"] = 10.58, + ["CD"] = 0, + }, + [179] = { + ["X"] = 30.29, + ["Y"] = 8.71, + ["CD"] = 0, + }, + [180] = { + ["X"] = 30.67, + ["Y"] = 12.65, + ["CD"] = 0, + }, + [181] = { + ["X"] = 31.53, + ["Y"] = 14.5, + ["CD"] = 0, + }, + [182] = { + ["X"] = 31.63, + ["Y"] = 16.56, + ["CD"] = 0, + }, + [183] = { + ["X"] = 33.53, + ["Y"] = 20.08, + ["CD"] = 0, + }, + [184] = { + ["X"] = 34.88, + ["Y"] = 19.76, + ["CD"] = 0, + }, + [185] = { + ["X"] = 35.59, + ["Y"] = 18.08, + ["CD"] = 0, + }, + [186] = { + ["X"] = 43.46, + ["Y"] = 27.48, + ["CD"] = 0, + }, + [187] = { + ["X"] = 42.73, + ["Y"] = 27.39, + ["CD"] = 0, + }, + [188] = { + ["X"] = 41.23, + ["Y"] = 25.46, + ["CD"] = 0, + }, + [189] = { + ["X"] = 39.47, + ["Y"] = 24.45, + ["CD"] = 0, + }, + [190] = { + ["X"] = 38.39, + ["Y"] = 26.94, + ["CD"] = 0, + }, + [191] = { + ["X"] = 37.32, + ["Y"] = 26.91, + ["CD"] = 0, + }, + [192] = { + ["X"] = 36.21, + ["Y"] = 30.36, + ["CD"] = 0, + }, + [193] = { + ["X"] = 27.01, + ["Y"] = 29.36, + ["CD"] = 0, + }, + [194] = { + ["X"] = 27.04, + ["Y"] = 31.9, + ["CD"] = 0, + }, + [195] = { + ["X"] = 17.98, + ["Y"] = 42.91, + ["CD"] = 0, + }, + [196] = { + ["X"] = 15.82, + ["Y"] = 43.16, + ["CD"] = 0, + }, + [197] = { + ["X"] = 15.74, + ["Y"] = 38.61, + ["CD"] = 0, + }, + [198] = { + ["X"] = 16.66, + ["Y"] = 36.19, + ["CD"] = 0, + }, + [199] = { + ["X"] = 21.23, + ["Y"] = 20.19, + ["CD"] = 0, + }, + [200] = { + ["X"] = 22.84, + ["Y"] = 19.42, + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 50 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k - end - end + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end + end + end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Silversage.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Silversage.lua index 9824c4b..94f76fe 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Silversage.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Silversage.lua @@ -1,297 +1,296 @@ aura_env.herbs = { - [1] = { - ["X"] = 66.76, - ["Y"] = 84.03, - ["CD"] = 0, - }, - [2] = { - ["X"] = 66.36, - ["Y"] = 80.75, - ["CD"] = 0, - }, - [3] = { - ["X"] = 62.24, - ["Y"] = 80.15, - ["CD"] = 0, - }, - [4] = { - ["X"] = 55.96, - ["Y"] = 78.8, - ["CD"] = 0, - }, - [5] = { - ["X"] = 56.02, - ["Y"] = 76.95, - ["CD"] = 0, - }, - [6] = { - ["X"] = 64.96, - ["Y"] = 72.59, - ["CD"] = 0, - }, - [7] = { - ["X"] = 65.44, - ["Y"] = 70.65, - ["CD"] = 0, - }, - [8] = { - ["X"] = 68.36, - ["Y"] = 69, - ["CD"] = 0, - }, - [9] = { - ["X"] = 52.57, - ["Y"] = 67.93, - ["CD"] = 0, - }, - [10] = { - ["X"] = 53.37, - ["Y"] = 66.5, - ["CD"] = 0, - }, - [11] = { - ["X"] = 61.09, - ["Y"] = 66.97, - ["CD"] = 0, - }, - [12] = { - ["X"] = 67.45, - ["Y"] = 66.84, - ["CD"] = 0, - }, - [13] = { - ["X"] = 68.19, - ["Y"] = 64.02, - ["CD"] = 0, - }, - [14] = { - ["X"] = 47.6, - ["Y"] = 63.37, - ["CD"] = 0, - }, - [15] = { - ["X"] = 67.42, - ["Y"] = 57.23, - ["CD"] = 0, - }, - [16] = { - ["X"] = 67.19, - ["Y"] = 51.85, - ["CD"] = 0, - }, - [17] = { - ["X"] = 63.49, - ["Y"] = 50.05, - ["CD"] = 0, - }, - [18] = { - ["X"] = 58.87, - ["Y"] = 45.42, - ["CD"] = 0, - }, - [19] = { - ["X"] = 53.68, - ["Y"] = 45.06, - ["CD"] = 0, - }, - [20] = { - ["X"] = 69.19, - ["Y"] = 44.89, - ["CD"] = 0, - }, - [21] = { - ["X"] = 59.6, - ["Y"] = 42, - ["CD"] = 0, - }, - [22] = { - ["X"] = 67.82, - ["Y"] = 39.48, - ["CD"] = 0, - }, - [23] = { - ["X"] = 59.84, - ["Y"] = 37.64, - ["CD"] = 0, - }, - [24] = { - ["X"] = 67.43, - ["Y"] = 35.4, - ["CD"] = 0, - }, - [25] = { - ["X"] = 66.7, - ["Y"] = 29.13, - ["CD"] = 0, - }, - [26] = { - ["X"] = 60.88, - ["Y"] = 28.01, - ["CD"] = 0, - }, - [27] = { - ["X"] = 60.16, - ["Y"] = 21.19, - ["CD"] = 0, - }, - [28] = { - ["X"] = 53.95, - ["Y"] = 19.05, - ["CD"] = 0, - }, - [29] = { - ["X"] = 52.44, - ["Y"] = 18.27, - ["CD"] = 0, - }, - [30] = { - ["X"] = 48.51, - ["Y"] = 14.34, - ["CD"] = 0, - }, - [31] = { - ["X"] = 44.13, - ["Y"] = 14.69, - ["CD"] = 0, - }, - [32] = { - ["X"] = 44.53, - ["Y"] = 21.08, - ["CD"] = 0, - }, - [33] = { - ["X"] = 45.31, - ["Y"] = 26.71, - ["CD"] = 0, - }, - [34] = { - ["X"] = 46.16, - ["Y"] = 33.23, - ["CD"] = 0, - }, - [35] = { - ["X"] = 48.2, - ["Y"] = 45.28, - ["CD"] = 0, - }, - [36] = { - ["X"] = 42.52, - ["Y"] = 56.26, - ["CD"] = 0, - }, - [37] = { - ["X"] = 42.18, - ["Y"] = 53.86, - ["CD"] = 0, - }, - [38] = { - ["X"] = 42.49, - ["Y"] = 45.67, - ["CD"] = 0, - }, - [39] = { - ["X"] = 40.75, - ["Y"] = 46.4, - ["CD"] = 0, - }, - [40] = { - ["X"] = 40.5, - ["Y"] = 58, - ["CD"] = 0, - }, - [41] = { - ["X"] = 39.56, - ["Y"] = 44.86, - ["CD"] = 0, - }, - [42] = { - ["X"] = 37.41, - ["Y"] = 47.1, - ["CD"] = 0, - }, - [43] = { - ["X"] = 37.05, - ["Y"] = 58.92, - ["CD"] = 0, - }, - [44] = { - ["X"] = 35.56, - ["Y"] = 47.08, - ["CD"] = 0, - }, - [45] = { - ["X"] = 34.11, - ["Y"] = 59.82, - ["CD"] = 0, - }, - [46] = { - ["X"] = 31.96, - ["Y"] = 59.46, - ["CD"] = 0, - }, - [47] = { - ["X"] = 31.19, - ["Y"] = 47.17, - ["CD"] = 0, - }, - [48] = { - ["X"] = 27.81, - ["Y"] = 58.83, - ["CD"] = 0, - }, - [49] = { - ["X"] = 27.7, - ["Y"] = 47.35, - ["CD"] = 0, - }, - [50] = { - ["X"] = 26.52, - ["Y"] = 47.47, - ["CD"] = 0, - }, - [51] = { - ["X"] = 24.62, - ["Y"] = 62.82, - ["CD"] = 0, - }, - [52] = { - ["X"] = 21.76, - ["Y"] = 62.47, - ["CD"] = 0, - }, - [53] = { - ["X"] = 22.41, - ["Y"] = 58.99, - ["CD"] = 0, - }, + [1] = { + ["X"] = 66.76, + ["Y"] = 84.03, + ["CD"] = 0, + }, + [2] = { + ["X"] = 66.36, + ["Y"] = 80.75, + ["CD"] = 0, + }, + [3] = { + ["X"] = 62.24, + ["Y"] = 80.15, + ["CD"] = 0, + }, + [4] = { + ["X"] = 55.96, + ["Y"] = 78.8, + ["CD"] = 0, + }, + [5] = { + ["X"] = 56.02, + ["Y"] = 76.95, + ["CD"] = 0, + }, + [6] = { + ["X"] = 64.96, + ["Y"] = 72.59, + ["CD"] = 0, + }, + [7] = { + ["X"] = 65.44, + ["Y"] = 70.65, + ["CD"] = 0, + }, + [8] = { + ["X"] = 68.36, + ["Y"] = 69, + ["CD"] = 0, + }, + [9] = { + ["X"] = 52.57, + ["Y"] = 67.93, + ["CD"] = 0, + }, + [10] = { + ["X"] = 53.37, + ["Y"] = 66.5, + ["CD"] = 0, + }, + [11] = { + ["X"] = 61.09, + ["Y"] = 66.97, + ["CD"] = 0, + }, + [12] = { + ["X"] = 67.45, + ["Y"] = 66.84, + ["CD"] = 0, + }, + [13] = { + ["X"] = 68.19, + ["Y"] = 64.02, + ["CD"] = 0, + }, + [14] = { + ["X"] = 47.6, + ["Y"] = 63.37, + ["CD"] = 0, + }, + [15] = { + ["X"] = 67.42, + ["Y"] = 57.23, + ["CD"] = 0, + }, + [16] = { + ["X"] = 67.19, + ["Y"] = 51.85, + ["CD"] = 0, + }, + [17] = { + ["X"] = 63.49, + ["Y"] = 50.05, + ["CD"] = 0, + }, + [18] = { + ["X"] = 58.87, + ["Y"] = 45.42, + ["CD"] = 0, + }, + [19] = { + ["X"] = 53.68, + ["Y"] = 45.06, + ["CD"] = 0, + }, + [20] = { + ["X"] = 69.19, + ["Y"] = 44.89, + ["CD"] = 0, + }, + [21] = { + ["X"] = 59.6, + ["Y"] = 42, + ["CD"] = 0, + }, + [22] = { + ["X"] = 67.82, + ["Y"] = 39.48, + ["CD"] = 0, + }, + [23] = { + ["X"] = 59.84, + ["Y"] = 37.64, + ["CD"] = 0, + }, + [24] = { + ["X"] = 67.43, + ["Y"] = 35.4, + ["CD"] = 0, + }, + [25] = { + ["X"] = 66.7, + ["Y"] = 29.13, + ["CD"] = 0, + }, + [26] = { + ["X"] = 60.88, + ["Y"] = 28.01, + ["CD"] = 0, + }, + [27] = { + ["X"] = 60.16, + ["Y"] = 21.19, + ["CD"] = 0, + }, + [28] = { + ["X"] = 53.95, + ["Y"] = 19.05, + ["CD"] = 0, + }, + [29] = { + ["X"] = 52.44, + ["Y"] = 18.27, + ["CD"] = 0, + }, + [30] = { + ["X"] = 48.51, + ["Y"] = 14.34, + ["CD"] = 0, + }, + [31] = { + ["X"] = 44.13, + ["Y"] = 14.69, + ["CD"] = 0, + }, + [32] = { + ["X"] = 44.53, + ["Y"] = 21.08, + ["CD"] = 0, + }, + [33] = { + ["X"] = 45.31, + ["Y"] = 26.71, + ["CD"] = 0, + }, + [34] = { + ["X"] = 46.16, + ["Y"] = 33.23, + ["CD"] = 0, + }, + [35] = { + ["X"] = 48.2, + ["Y"] = 45.28, + ["CD"] = 0, + }, + [36] = { + ["X"] = 42.52, + ["Y"] = 56.26, + ["CD"] = 0, + }, + [37] = { + ["X"] = 42.18, + ["Y"] = 53.86, + ["CD"] = 0, + }, + [38] = { + ["X"] = 42.49, + ["Y"] = 45.67, + ["CD"] = 0, + }, + [39] = { + ["X"] = 40.75, + ["Y"] = 46.4, + ["CD"] = 0, + }, + [40] = { + ["X"] = 40.5, + ["Y"] = 58, + ["CD"] = 0, + }, + [41] = { + ["X"] = 39.56, + ["Y"] = 44.86, + ["CD"] = 0, + }, + [42] = { + ["X"] = 37.41, + ["Y"] = 47.1, + ["CD"] = 0, + }, + [43] = { + ["X"] = 37.05, + ["Y"] = 58.92, + ["CD"] = 0, + }, + [44] = { + ["X"] = 35.56, + ["Y"] = 47.08, + ["CD"] = 0, + }, + [45] = { + ["X"] = 34.11, + ["Y"] = 59.82, + ["CD"] = 0, + }, + [46] = { + ["X"] = 31.96, + ["Y"] = 59.46, + ["CD"] = 0, + }, + [47] = { + ["X"] = 31.19, + ["Y"] = 47.17, + ["CD"] = 0, + }, + [48] = { + ["X"] = 27.81, + ["Y"] = 58.83, + ["CD"] = 0, + }, + [49] = { + ["X"] = 27.7, + ["Y"] = 47.35, + ["CD"] = 0, + }, + [50] = { + ["X"] = 26.52, + ["Y"] = 47.47, + ["CD"] = 0, + }, + [51] = { + ["X"] = 24.62, + ["Y"] = 62.82, + ["CD"] = 0, + }, + [52] = { + ["X"] = 21.76, + ["Y"] = 62.47, + ["CD"] = 0, + }, + [53] = { + ["X"] = 22.41, + ["Y"] = 58.99, + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 50 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() - aura_env.minID = - { - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 - } - local pX = GetPlayerMapPosition("player") or 0 - local pY = select(2, GetPlayerMapPosition("player")) or 0 - pX, pY = pX * 100, pY * 100 - for k, v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k - end - end - end - return aura_env.minID["ID"] + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end + end + end + return aura_env.minID["ID"] end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Dragonblight.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Dragonblight.lua index f3ef31b..d62887b 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Dragonblight.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Dragonblight.lua @@ -1,327 +1,276 @@ -aura_env.herbs = -{ - [1] = - { - ["X"] = 88.46, - ["Y"] = 17.99, - ["CD"] = 0 +aura_env.herbs = { + [1] = { + ["X"] = 88.46, + ["Y"] = 17.99, + ["CD"] = 0, }, - [2] = - { - ["X"] = 87.27, - ["Y"] = 17.3, - ["CD"] = 0 + [2] = { + ["X"] = 87.27, + ["Y"] = 17.3, + ["CD"] = 0, }, - [3] = - { - ["X"] = 86.48, - ["Y"] = 17.2, - ["CD"] = 0 + [3] = { + ["X"] = 86.48, + ["Y"] = 17.2, + ["CD"] = 0, }, - [4] = - { - ["X"] = 85.78, - ["Y"] = 17.6, - ["CD"] = 0 + [4] = { + ["X"] = 85.78, + ["Y"] = 17.6, + ["CD"] = 0, }, - [5] = - { - ["X"] = 85, - ["Y"] = 18.05, - ["CD"] = 0 + [5] = { + ["X"] = 85, + ["Y"] = 18.05, + ["CD"] = 0, }, - [6] = - { - ["X"] = 84.03, - ["Y"] = 19.24, - ["CD"] = 0 + [6] = { + ["X"] = 84.03, + ["Y"] = 19.24, + ["CD"] = 0, }, - [7] = - { - ["X"] = 83.28, - ["Y"] = 20.08, - ["CD"] = 0 + [7] = { + ["X"] = 83.28, + ["Y"] = 20.08, + ["CD"] = 0, }, - [8] = - { - ["X"] = 82.62, - ["Y"] = 20.74, - ["CD"] = 0 + [8] = { + ["X"] = 82.62, + ["Y"] = 20.74, + ["CD"] = 0, }, - [9] = - { - ["X"] = 81.96, - ["Y"] = 22.01, - ["CD"] = 0 + [9] = { + ["X"] = 81.96, + ["Y"] = 22.01, + ["CD"] = 0, }, - [10] = - { - ["X"] = 81.22, - ["Y"] = 22.72, - ["CD"] = 0 + [10] = { + ["X"] = 81.22, + ["Y"] = 22.72, + ["CD"] = 0, }, - [11] = - { - ["X"] = 80.32, - ["Y"] = 25.03, - ["CD"] = 0 + [11] = { + ["X"] = 80.32, + ["Y"] = 25.03, + ["CD"] = 0, }, - [12] = - { - ["X"] = 80.19, - ["Y"] = 25.92, - ["CD"] = 0 + [12] = { + ["X"] = 80.19, + ["Y"] = 25.92, + ["CD"] = 0, }, - [13] = - { - ["X"] = 78.88, - ["Y"] = 27.21, - ["CD"] = 0 + [13] = { + ["X"] = 78.88, + ["Y"] = 27.21, + ["CD"] = 0, }, - [14] = - { - ["X"] = 77.91, - ["Y"] = 27.41, - ["CD"] = 0 + [14] = { + ["X"] = 77.91, + ["Y"] = 27.41, + ["CD"] = 0, }, - [15] = - { - ["X"] = 76.98, - ["Y"] = 28.38, - ["CD"] = 0 + [15] = { + ["X"] = 76.98, + ["Y"] = 28.38, + ["CD"] = 0, }, - [16] = - { - ["X"] = 75.11, - ["Y"] = 32.51, - ["CD"] = 0 + [16] = { + ["X"] = 75.11, + ["Y"] = 32.51, + ["CD"] = 0, }, - [17] = - { - ["X"] = 74.55, - ["Y"] = 33.31, - ["CD"] = 0 + [17] = { + ["X"] = 74.55, + ["Y"] = 33.31, + ["CD"] = 0, }, - [18] = - { - ["X"] = 73.58, - ["Y"] = 32.76, - ["CD"] = 0 + [18] = { + ["X"] = 73.58, + ["Y"] = 32.76, + ["CD"] = 0, }, - [19] = - { - ["X"] = 73.64, - ["Y"] = 31.74, - ["CD"] = 0 + [19] = { + ["X"] = 73.64, + ["Y"] = 31.74, + ["CD"] = 0, }, - [20] = - { - ["X"] = 73.51, - ["Y"] = 30.48, - ["CD"] = 0 + [20] = { + ["X"] = 73.51, + ["Y"] = 30.48, + ["CD"] = 0, }, - [21] = - { - ["X"] = 72.86, - ["Y"] = 29.99, - ["CD"] = 0 + [21] = { + ["X"] = 72.86, + ["Y"] = 29.99, + ["CD"] = 0, }, - [22] = - { - ["X"] = 72.18, - ["Y"] = 28.74, - ["CD"] = 0 + [22] = { + ["X"] = 72.18, + ["Y"] = 28.74, + ["CD"] = 0, }, - [23] = - { - ["X"] = 72.13, - ["Y"] = 26.96, - ["CD"] = 0 + [23] = { + ["X"] = 72.13, + ["Y"] = 26.96, + ["CD"] = 0, }, - [24] = - { - ["X"] = 71.46, - ["Y"] = 26.17, - ["CD"] = 0 + [24] = { + ["X"] = 71.46, + ["Y"] = 26.17, + ["CD"] = 0, }, - [25] = - { - ["X"] = 70.67, - ["Y"] = 26.16, - ["CD"] = 0 + [25] = { + ["X"] = 70.67, + ["Y"] = 26.16, + ["CD"] = 0, }, - [26] = - { - ["X"] = 90.04, - ["Y"] = 50.75, - ["CD"] = 0 + [26] = { + ["X"] = 90.04, + ["Y"] = 50.75, + ["CD"] = 0, }, - [27] = - { - ["X"] = 90.84, - ["Y"] = 50.84, - ["CD"] = 0 + [27] = { + ["X"] = 90.84, + ["Y"] = 50.84, + ["CD"] = 0, }, - [28] = - { - ["X"] = 88.81, - ["Y"] = 61.52, - ["CD"] = 0 + [28] = { + ["X"] = 88.81, + ["Y"] = 61.52, + ["CD"] = 0, }, - [29] = - { - ["X"] = 78.92, - ["Y"] = 61.4, - ["CD"] = 0 + [29] = { + ["X"] = 78.92, + ["Y"] = 61.4, + ["CD"] = 0, }, - [30] = - { - ["X"] = 82.26, - ["Y"] = 59.77, - ["CD"] = 0 + [30] = { + ["X"] = 82.26, + ["Y"] = 59.77, + ["CD"] = 0, }, - [31] = - { - ["X"] = 85.43, - ["Y"] = 57.03, - ["CD"] = 0 + [31] = { + ["X"] = 85.43, + ["Y"] = 57.03, + ["CD"] = 0, }, - [32] = - { - ["X"] = 74.46, - ["Y"] = 28.13, - ["CD"] = 0 + [32] = { + ["X"] = 74.46, + ["Y"] = 28.13, + ["CD"] = 0, }, - [33] = - { - ["X"] = 69.36, - ["Y"] = 25.49, - ["CD"] = 0 + [33] = { + ["X"] = 69.36, + ["Y"] = 25.49, + ["CD"] = 0, }, - [34] = - { - ["X"] = 73.21, - ["Y"] = 26.13, - ["CD"] = 0 + [34] = { + ["X"] = 73.21, + ["Y"] = 26.13, + ["CD"] = 0, }, - [35] = - { - ["X"] = 56.52, - ["Y"] = 35.9, - ["CD"] = 0 + [35] = { + ["X"] = 56.52, + ["Y"] = 35.9, + ["CD"] = 0, }, - [36] = - { - ["X"] = 57.94, - ["Y"] = 33.32, - ["CD"] = 0 + [36] = { + ["X"] = 57.94, + ["Y"] = 33.32, + ["CD"] = 0, }, - [37] = - { - ["X"] = 55.19, - ["Y"] = 32.83, - ["CD"] = 0 + [37] = { + ["X"] = 55.19, + ["Y"] = 32.83, + ["CD"] = 0, }, - [38] = - { - ["X"] = 54.89, - ["Y"] = 37.13, - ["CD"] = 0 + [38] = { + ["X"] = 54.89, + ["Y"] = 37.13, + ["CD"] = 0, }, - [39] = - { - ["X"] = 51.74, - ["Y"] = 38.92, - ["CD"] = 0 + [39] = { + ["X"] = 51.74, + ["Y"] = 38.92, + ["CD"] = 0, }, - [40] = - { - ["X"] = 52.5, - ["Y"] = 38.18, - ["CD"] = 0 + [40] = { + ["X"] = 52.5, + ["Y"] = 38.18, + ["CD"] = 0, }, - [41] = - { - ["X"] = 49.22, - ["Y"] = 43.37, - ["CD"] = 0 + [41] = { + ["X"] = 49.22, + ["Y"] = 43.37, + ["CD"] = 0, }, - [42] = - { - ["X"] = 49.78, - ["Y"] = 50.78, - ["CD"] = 0 + [42] = { + ["X"] = 49.78, + ["Y"] = 50.78, + ["CD"] = 0, }, - [43] = - { - ["X"] = 45.13, - ["Y"] = 52.25, - ["CD"] = 0 + [43] = { + ["X"] = 45.13, + ["Y"] = 52.25, + ["CD"] = 0, }, - [44] = - { - ["X"] = 45.02, - ["Y"] = 47.11, - ["CD"] = 0 + [44] = { + ["X"] = 45.02, + ["Y"] = 47.11, + ["CD"] = 0, }, - [45] = - { - ["X"] = 31.45, - ["Y"] = 55.09, - ["CD"] = 0 + [45] = { + ["X"] = 31.45, + ["Y"] = 55.09, + ["CD"] = 0, }, - [46] = - { - ["X"] = 30.49, - ["Y"] = 60.35, - ["CD"] = 0 + [46] = { + ["X"] = 30.49, + ["Y"] = 60.35, + ["CD"] = 0, }, - [47] = - { - ["X"] = 26.19, - ["Y"] = 62.12, - ["CD"] = 0 + [47] = { + ["X"] = 26.19, + ["Y"] = 62.12, + ["CD"] = 0, }, - [48] = - { - ["X"] = 19.5, - ["Y"] = 61.05, - ["CD"] = 0 + [48] = { + ["X"] = 19.5, + ["Y"] = 61.05, + ["CD"] = 0, + }, + [49] = { + ["X"] = 21.36, + ["Y"] = 56.44, + ["CD"] = 0, }, - [49] = - { - ["X"] = 21.36, - ["Y"] = 56.44, - ["CD"] = 0 -} } aura_env.cooldown = 600 aura_env.wipeDistance = 15 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Howling Fjord.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Howling Fjord.lua index f72e525..1857e07 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Howling Fjord.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Howling Fjord.lua @@ -1,527 +1,526 @@ aura_env.herbs = { - [1] = { - ["X"] = 27.74, - ["Y"] = 4.93, - ["CD"] = 0, - }, - [2] = { - ["X"] = 29.58, - ["Y"] = 6.12, - ["CD"] = 0, - }, - [3] = { - ["X"] = 38.4, - ["Y"] = 7.32, - ["CD"] = 0, - }, - [4] = { - ["X"] = 69.23, - ["Y"] = 9.55, - ["CD"] = 0, - }, - [5] = { - ["X"] = 28.91, - ["Y"] = 10.34, - ["CD"] = 0, - }, - [6] = { - ["X"] = 44.79, - ["Y"] = 10.41, - ["CD"] = 0, - }, - [7] = { - ["X"] = 37.41, - ["Y"] = 11.88, - ["CD"] = 0, - }, - [8] = { - ["X"] = 72.67, - ["Y"] = 12.41, - ["CD"] = 0, - }, - [9] = { - ["X"] = 41.67, - ["Y"] = 13.07, - ["CD"] = 0, - }, - [10] = { - ["X"] = 26.58, - ["Y"] = 13.11, - ["CD"] = 0, - }, - [11] = { - ["X"] = 28.54, - ["Y"] = 13.24, - ["CD"] = 0, - }, - [12] = { - ["X"] = 45.56, - ["Y"] = 13.29, - ["CD"] = 0, - }, - [13] = { - ["X"] = 22.63, - ["Y"] = 13.55, - ["CD"] = 0, - }, - [14] = { - ["X"] = 53.24, - ["Y"] = 13.86, - ["CD"] = 0, - }, - [15] = { - ["X"] = 51.44, - ["Y"] = 14.17, - ["CD"] = 0, - }, - [16] = { - ["X"] = 38.37, - ["Y"] = 14.38, - ["CD"] = 0, - }, - [17] = { - ["X"] = 55.34, - ["Y"] = 14.84, - ["CD"] = 0, - }, - [18] = { - ["X"] = 26.76, - ["Y"] = 15.08, - ["CD"] = 0, - }, - [19] = { - ["X"] = 41.32, - ["Y"] = 15.19, - ["CD"] = 0, - }, - [20] = { - ["X"] = 66.81, - ["Y"] = 15.81, - ["CD"] = 0, - }, - [21] = { - ["X"] = 27.83, - ["Y"] = 15.83, - ["CD"] = 0, - }, - [22] = { - ["X"] = 23.6, - ["Y"] = 16.11, - ["CD"] = 0, - }, - [23] = { - ["X"] = 23.6, - ["Y"] = 17.59, - ["CD"] = 0, - }, - [24] = { - ["X"] = 38.18, - ["Y"] = 18.83, - ["CD"] = 0, - }, - [25] = { - ["X"] = 73.67, - ["Y"] = 19.46, - ["CD"] = 0, - }, - [26] = { - ["X"] = 22.28, - ["Y"] = 20.14, - ["CD"] = 0, - }, - [27] = { - ["X"] = 25.66, - ["Y"] = 20.87, - ["CD"] = 0, - }, - [28] = { - ["X"] = 27.86, - ["Y"] = 22.53, - ["CD"] = 0, - }, - [29] = { - ["X"] = 18.83, - ["Y"] = 22.91, - ["CD"] = 0, - }, - [30] = { - ["X"] = 20.68, - ["Y"] = 22.93, - ["CD"] = 0, - }, - [31] = { - ["X"] = 63.97, - ["Y"] = 23.14, - ["CD"] = 0, - }, - [32] = { - ["X"] = 62.08, - ["Y"] = 24.13, - ["CD"] = 0, - }, - [33] = { - ["X"] = 70.37, - ["Y"] = 24.32, - ["CD"] = 0, - }, - [34] = { - ["X"] = 59.66, - ["Y"] = 26.14, - ["CD"] = 0, - }, - [35] = { - ["X"] = 72.01, - ["Y"] = 26.52, - ["CD"] = 0, - }, - [36] = { - ["X"] = 22.03, - ["Y"] = 27.14, - ["CD"] = 0, - }, - [37] = { - ["X"] = 68.73, - ["Y"] = 28.05, - ["CD"] = 0, - }, - [38] = { - ["X"] = 26.28, - ["Y"] = 28.6, - ["CD"] = 0, - }, - [39] = { - ["X"] = 37.73, - ["Y"] = 30.5, - ["CD"] = 0, - }, - [40] = { - ["X"] = 50.71, - ["Y"] = 30.77, - ["CD"] = 0, - }, - [41] = { - ["X"] = 26.52, - ["Y"] = 31.07, - ["CD"] = 0, - }, - [42] = { - ["X"] = 41.83, - ["Y"] = 31.77, - ["CD"] = 0, - }, - [43] = { - ["X"] = 39.88, - ["Y"] = 32.15, - ["CD"] = 0, - }, - [44] = { - ["X"] = 70.79, - ["Y"] = 32.33, - ["CD"] = 0, - }, - [45] = { - ["X"] = 80.51, - ["Y"] = 32.74, - ["CD"] = 0, - }, - [46] = { - ["X"] = 49.3, - ["Y"] = 34.1, - ["CD"] = 0, - }, - [47] = { - ["X"] = 57.14, - ["Y"] = 34.51, - ["CD"] = 0, - }, - [48] = { - ["X"] = 52.74, - ["Y"] = 35.35, - ["CD"] = 0, - }, - [49] = { - ["X"] = 76.74, - ["Y"] = 35.56, - ["CD"] = 0, - }, - [50] = { - ["X"] = 80.67, - ["Y"] = 36.13, - ["CD"] = 0, - }, - [51] = { - ["X"] = 54.29, - ["Y"] = 36.3, - ["CD"] = 0, - }, - [52] = { - ["X"] = 63.46, - ["Y"] = 37.24, - ["CD"] = 0, - }, - [53] = { - ["X"] = 48.37, - ["Y"] = 37.64, - ["CD"] = 0, - }, - [54] = { - ["X"] = 59.6, - ["Y"] = 37.65, - ["CD"] = 0, - }, - [55] = { - ["X"] = 62.06, - ["Y"] = 39.08, - ["CD"] = 0, - }, - [56] = { - ["X"] = 63.16, - ["Y"] = 41.04, - ["CD"] = 0, - }, - [57] = { - ["X"] = 73.26, - ["Y"] = 44.09, - ["CD"] = 0, - }, - [58] = { - ["X"] = 78.92, - ["Y"] = 46.11, - ["CD"] = 0, - }, - [59] = { - ["X"] = 77.01, - ["Y"] = 46.13, - ["CD"] = 0, - }, - [60] = { - ["X"] = 33.74, - ["Y"] = 49.57, - ["CD"] = 0, - }, - [61] = { - ["X"] = 45.59, - ["Y"] = 51.47, - ["CD"] = 0, - }, - [62] = { - ["X"] = 47.86, - ["Y"] = 52.09, - ["CD"] = 0, - }, - [63] = { - ["X"] = 62.04, - ["Y"] = 52.55, - ["CD"] = 0, - }, - [64] = { - ["X"] = 34.18, - ["Y"] = 52.57, - ["CD"] = 0, - }, - [65] = { - ["X"] = 65.4, - ["Y"] = 52.87, - ["CD"] = 0, - }, - [66] = { - ["X"] = 27.04, - ["Y"] = 54.05, - ["CD"] = 0, - }, - [67] = { - ["X"] = 36.31, - ["Y"] = 54.73, - ["CD"] = 0, - }, - [68] = { - ["X"] = 51.98, - ["Y"] = 55.1, - ["CD"] = 0, - }, - [69] = { - ["X"] = 48.12, - ["Y"] = 55.31, - ["CD"] = 0, - }, - [70] = { - ["X"] = 37.92, - ["Y"] = 55.59, - ["CD"] = 0, - }, - [71] = { - ["X"] = 74.95, - ["Y"] = 56.13, - ["CD"] = 0, - }, - [72] = { - ["X"] = 30.04, - ["Y"] = 56.53, - ["CD"] = 0, - }, - [73] = { - ["X"] = 61.99, - ["Y"] = 56.71, - ["CD"] = 0, - }, - [74] = { - ["X"] = 69.7, - ["Y"] = 57.75, - ["CD"] = 0, - }, - [75] = { - ["X"] = 54.79, - ["Y"] = 57.83, - ["CD"] = 0, - }, - [76] = { - ["X"] = 67.24, - ["Y"] = 59.12, - ["CD"] = 0, - }, - [77] = { - ["X"] = 76.05, - ["Y"] = 59.6, - ["CD"] = 0, - }, - [78] = { - ["X"] = 72.36, - ["Y"] = 60.75, - ["CD"] = 0, - }, - [79] = { - ["X"] = 62.74, - ["Y"] = 61.55, - ["CD"] = 0, - }, - [80] = { - ["X"] = 62.03, - ["Y"] = 62.69, - ["CD"] = 0, - }, - [81] = { - ["X"] = 66.82, - ["Y"] = 63.01, - ["CD"] = 0, - }, - [82] = { - ["X"] = 45.11, - ["Y"] = 63.88, - ["CD"] = 0, - }, - [83] = { - ["X"] = 65.65, - ["Y"] = 64.91, - ["CD"] = 0, - }, - [84] = { - ["X"] = 56.75, - ["Y"] = 65.1, - ["CD"] = 0, - }, - [85] = { - ["X"] = 47.18, - ["Y"] = 66.8, - ["CD"] = 0, - }, - [86] = { - ["X"] = 31.26, - ["Y"] = 69.12, - ["CD"] = 0, - }, - [87] = { - ["X"] = 71.62, - ["Y"] = 69.16, - ["CD"] = 0, - }, - [88] = { - ["X"] = 73.1, - ["Y"] = 69.47, - ["CD"] = 0, - }, - [89] = { - ["X"] = 73.3, - ["Y"] = 69.58, - ["CD"] = 0, - }, - [90] = { - ["X"] = 74.88, - ["Y"] = 69.89, - ["CD"] = 0, - }, - [91] = { - ["X"] = 45.79, - ["Y"] = 71.62, - ["CD"] = 0, - }, - [92] = { - ["X"] = 52, - ["Y"] = 71.8, - ["CD"] = 0, - }, - [93] = { - ["X"] = 68.34, - ["Y"] = 72.44, - ["CD"] = 0, - }, - [94] = { - ["X"] = 71.3, - ["Y"] = 73.69, - ["CD"] = 0, - }, - [95] = { - ["X"] = 33.94, - ["Y"] = 74.21, - ["CD"] = 0, - }, - [96] = { - ["X"] = 58.95, - ["Y"] = 75.18, - ["CD"] = 0, - }, - [97] = { - ["X"] = 33.51, - ["Y"] = 76.63, - ["CD"] = 0, - }, - [98] = { - ["X"] = 36.2, - ["Y"] = 77.89, - ["CD"] = 0, - }, - [99] = { - ["X"] = 59.41, - ["Y"] = 80.88, - ["CD"] = 0, - }, + [1] = { + ["X"] = 27.74, + ["Y"] = 4.93, + ["CD"] = 0, + }, + [2] = { + ["X"] = 29.58, + ["Y"] = 6.12, + ["CD"] = 0, + }, + [3] = { + ["X"] = 38.4, + ["Y"] = 7.32, + ["CD"] = 0, + }, + [4] = { + ["X"] = 69.23, + ["Y"] = 9.55, + ["CD"] = 0, + }, + [5] = { + ["X"] = 28.91, + ["Y"] = 10.34, + ["CD"] = 0, + }, + [6] = { + ["X"] = 44.79, + ["Y"] = 10.41, + ["CD"] = 0, + }, + [7] = { + ["X"] = 37.41, + ["Y"] = 11.88, + ["CD"] = 0, + }, + [8] = { + ["X"] = 72.67, + ["Y"] = 12.41, + ["CD"] = 0, + }, + [9] = { + ["X"] = 41.67, + ["Y"] = 13.07, + ["CD"] = 0, + }, + [10] = { + ["X"] = 26.58, + ["Y"] = 13.11, + ["CD"] = 0, + }, + [11] = { + ["X"] = 28.54, + ["Y"] = 13.24, + ["CD"] = 0, + }, + [12] = { + ["X"] = 45.56, + ["Y"] = 13.29, + ["CD"] = 0, + }, + [13] = { + ["X"] = 22.63, + ["Y"] = 13.55, + ["CD"] = 0, + }, + [14] = { + ["X"] = 53.24, + ["Y"] = 13.86, + ["CD"] = 0, + }, + [15] = { + ["X"] = 51.44, + ["Y"] = 14.17, + ["CD"] = 0, + }, + [16] = { + ["X"] = 38.37, + ["Y"] = 14.38, + ["CD"] = 0, + }, + [17] = { + ["X"] = 55.34, + ["Y"] = 14.84, + ["CD"] = 0, + }, + [18] = { + ["X"] = 26.76, + ["Y"] = 15.08, + ["CD"] = 0, + }, + [19] = { + ["X"] = 41.32, + ["Y"] = 15.19, + ["CD"] = 0, + }, + [20] = { + ["X"] = 66.81, + ["Y"] = 15.81, + ["CD"] = 0, + }, + [21] = { + ["X"] = 27.83, + ["Y"] = 15.83, + ["CD"] = 0, + }, + [22] = { + ["X"] = 23.6, + ["Y"] = 16.11, + ["CD"] = 0, + }, + [23] = { + ["X"] = 23.6, + ["Y"] = 17.59, + ["CD"] = 0, + }, + [24] = { + ["X"] = 38.18, + ["Y"] = 18.83, + ["CD"] = 0, + }, + [25] = { + ["X"] = 73.67, + ["Y"] = 19.46, + ["CD"] = 0, + }, + [26] = { + ["X"] = 22.28, + ["Y"] = 20.14, + ["CD"] = 0, + }, + [27] = { + ["X"] = 25.66, + ["Y"] = 20.87, + ["CD"] = 0, + }, + [28] = { + ["X"] = 27.86, + ["Y"] = 22.53, + ["CD"] = 0, + }, + [29] = { + ["X"] = 18.83, + ["Y"] = 22.91, + ["CD"] = 0, + }, + [30] = { + ["X"] = 20.68, + ["Y"] = 22.93, + ["CD"] = 0, + }, + [31] = { + ["X"] = 63.97, + ["Y"] = 23.14, + ["CD"] = 0, + }, + [32] = { + ["X"] = 62.08, + ["Y"] = 24.13, + ["CD"] = 0, + }, + [33] = { + ["X"] = 70.37, + ["Y"] = 24.32, + ["CD"] = 0, + }, + [34] = { + ["X"] = 59.66, + ["Y"] = 26.14, + ["CD"] = 0, + }, + [35] = { + ["X"] = 72.01, + ["Y"] = 26.52, + ["CD"] = 0, + }, + [36] = { + ["X"] = 22.03, + ["Y"] = 27.14, + ["CD"] = 0, + }, + [37] = { + ["X"] = 68.73, + ["Y"] = 28.05, + ["CD"] = 0, + }, + [38] = { + ["X"] = 26.28, + ["Y"] = 28.6, + ["CD"] = 0, + }, + [39] = { + ["X"] = 37.73, + ["Y"] = 30.5, + ["CD"] = 0, + }, + [40] = { + ["X"] = 50.71, + ["Y"] = 30.77, + ["CD"] = 0, + }, + [41] = { + ["X"] = 26.52, + ["Y"] = 31.07, + ["CD"] = 0, + }, + [42] = { + ["X"] = 41.83, + ["Y"] = 31.77, + ["CD"] = 0, + }, + [43] = { + ["X"] = 39.88, + ["Y"] = 32.15, + ["CD"] = 0, + }, + [44] = { + ["X"] = 70.79, + ["Y"] = 32.33, + ["CD"] = 0, + }, + [45] = { + ["X"] = 80.51, + ["Y"] = 32.74, + ["CD"] = 0, + }, + [46] = { + ["X"] = 49.3, + ["Y"] = 34.1, + ["CD"] = 0, + }, + [47] = { + ["X"] = 57.14, + ["Y"] = 34.51, + ["CD"] = 0, + }, + [48] = { + ["X"] = 52.74, + ["Y"] = 35.35, + ["CD"] = 0, + }, + [49] = { + ["X"] = 76.74, + ["Y"] = 35.56, + ["CD"] = 0, + }, + [50] = { + ["X"] = 80.67, + ["Y"] = 36.13, + ["CD"] = 0, + }, + [51] = { + ["X"] = 54.29, + ["Y"] = 36.3, + ["CD"] = 0, + }, + [52] = { + ["X"] = 63.46, + ["Y"] = 37.24, + ["CD"] = 0, + }, + [53] = { + ["X"] = 48.37, + ["Y"] = 37.64, + ["CD"] = 0, + }, + [54] = { + ["X"] = 59.6, + ["Y"] = 37.65, + ["CD"] = 0, + }, + [55] = { + ["X"] = 62.06, + ["Y"] = 39.08, + ["CD"] = 0, + }, + [56] = { + ["X"] = 63.16, + ["Y"] = 41.04, + ["CD"] = 0, + }, + [57] = { + ["X"] = 73.26, + ["Y"] = 44.09, + ["CD"] = 0, + }, + [58] = { + ["X"] = 78.92, + ["Y"] = 46.11, + ["CD"] = 0, + }, + [59] = { + ["X"] = 77.01, + ["Y"] = 46.13, + ["CD"] = 0, + }, + [60] = { + ["X"] = 33.74, + ["Y"] = 49.57, + ["CD"] = 0, + }, + [61] = { + ["X"] = 45.59, + ["Y"] = 51.47, + ["CD"] = 0, + }, + [62] = { + ["X"] = 47.86, + ["Y"] = 52.09, + ["CD"] = 0, + }, + [63] = { + ["X"] = 62.04, + ["Y"] = 52.55, + ["CD"] = 0, + }, + [64] = { + ["X"] = 34.18, + ["Y"] = 52.57, + ["CD"] = 0, + }, + [65] = { + ["X"] = 65.4, + ["Y"] = 52.87, + ["CD"] = 0, + }, + [66] = { + ["X"] = 27.04, + ["Y"] = 54.05, + ["CD"] = 0, + }, + [67] = { + ["X"] = 36.31, + ["Y"] = 54.73, + ["CD"] = 0, + }, + [68] = { + ["X"] = 51.98, + ["Y"] = 55.1, + ["CD"] = 0, + }, + [69] = { + ["X"] = 48.12, + ["Y"] = 55.31, + ["CD"] = 0, + }, + [70] = { + ["X"] = 37.92, + ["Y"] = 55.59, + ["CD"] = 0, + }, + [71] = { + ["X"] = 74.95, + ["Y"] = 56.13, + ["CD"] = 0, + }, + [72] = { + ["X"] = 30.04, + ["Y"] = 56.53, + ["CD"] = 0, + }, + [73] = { + ["X"] = 61.99, + ["Y"] = 56.71, + ["CD"] = 0, + }, + [74] = { + ["X"] = 69.7, + ["Y"] = 57.75, + ["CD"] = 0, + }, + [75] = { + ["X"] = 54.79, + ["Y"] = 57.83, + ["CD"] = 0, + }, + [76] = { + ["X"] = 67.24, + ["Y"] = 59.12, + ["CD"] = 0, + }, + [77] = { + ["X"] = 76.05, + ["Y"] = 59.6, + ["CD"] = 0, + }, + [78] = { + ["X"] = 72.36, + ["Y"] = 60.75, + ["CD"] = 0, + }, + [79] = { + ["X"] = 62.74, + ["Y"] = 61.55, + ["CD"] = 0, + }, + [80] = { + ["X"] = 62.03, + ["Y"] = 62.69, + ["CD"] = 0, + }, + [81] = { + ["X"] = 66.82, + ["Y"] = 63.01, + ["CD"] = 0, + }, + [82] = { + ["X"] = 45.11, + ["Y"] = 63.88, + ["CD"] = 0, + }, + [83] = { + ["X"] = 65.65, + ["Y"] = 64.91, + ["CD"] = 0, + }, + [84] = { + ["X"] = 56.75, + ["Y"] = 65.1, + ["CD"] = 0, + }, + [85] = { + ["X"] = 47.18, + ["Y"] = 66.8, + ["CD"] = 0, + }, + [86] = { + ["X"] = 31.26, + ["Y"] = 69.12, + ["CD"] = 0, + }, + [87] = { + ["X"] = 71.62, + ["Y"] = 69.16, + ["CD"] = 0, + }, + [88] = { + ["X"] = 73.1, + ["Y"] = 69.47, + ["CD"] = 0, + }, + [89] = { + ["X"] = 73.3, + ["Y"] = 69.58, + ["CD"] = 0, + }, + [90] = { + ["X"] = 74.88, + ["Y"] = 69.89, + ["CD"] = 0, + }, + [91] = { + ["X"] = 45.79, + ["Y"] = 71.62, + ["CD"] = 0, + }, + [92] = { + ["X"] = 52, + ["Y"] = 71.8, + ["CD"] = 0, + }, + [93] = { + ["X"] = 68.34, + ["Y"] = 72.44, + ["CD"] = 0, + }, + [94] = { + ["X"] = 71.3, + ["Y"] = 73.69, + ["CD"] = 0, + }, + [95] = { + ["X"] = 33.94, + ["Y"] = 74.21, + ["CD"] = 0, + }, + [96] = { + ["X"] = 58.95, + ["Y"] = 75.18, + ["CD"] = 0, + }, + [97] = { + ["X"] = 33.51, + ["Y"] = 76.63, + ["CD"] = 0, + }, + [98] = { + ["X"] = 36.2, + ["Y"] = 77.89, + ["CD"] = 0, + }, + [99] = { + ["X"] = 59.41, + ["Y"] = 80.88, + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 15 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() - aura_env.minID = - { - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 - } - local pX = GetPlayerMapPosition("player") or 0 - local pY = select(2, GetPlayerMapPosition("player")) or 0 - pX, pY = pX * 100, pY * 100 - for k, v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k - end - end - end - return aura_env.minID["ID"] + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end + end + end + return aura_env.minID["ID"] end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Rich - Zul'Drak.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Rich - Zul'Drak.lua index 593b5ac..40e5556 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Rich - Zul'Drak.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Rich - Zul'Drak.lua @@ -1,219 +1,186 @@ -aura_env.herbs = -{ - [1] = - { - ["X"] = 62.63, - ["Y"] = 80.15, - ["CD"] = 0 +aura_env.herbs = { + [1] = { + ["X"] = 62.63, + ["Y"] = 80.15, + ["CD"] = 0, }, - [2] = - { - ["X"] = 61.03, - ["Y"] = 83.67, - ["CD"] = 0 + [2] = { + ["X"] = 61.03, + ["Y"] = 83.67, + ["CD"] = 0, }, - [3] = - { - ["X"] = 60.11, - ["Y"] = 80.98, - ["CD"] = 0 + [3] = { + ["X"] = 60.11, + ["Y"] = 80.98, + ["CD"] = 0, }, - [4] = - { - ["X"] = 59.29, - ["Y"] = 77.46, - ["CD"] = 0 + [4] = { + ["X"] = 59.29, + ["Y"] = 77.46, + ["CD"] = 0, }, - [5] = - { - ["X"] = 56.55, - ["Y"] = 77.25, - ["CD"] = 0 + [5] = { + ["X"] = 56.55, + ["Y"] = 77.25, + ["CD"] = 0, }, - [6] = - { - ["X"] = 56.87, - ["Y"] = 75.77, - ["CD"] = 0 + [6] = { + ["X"] = 56.87, + ["Y"] = 75.77, + ["CD"] = 0, }, - [7] = - { - ["X"] = 51.04, - ["Y"] = 72.92, - ["CD"] = 0 + [7] = { + ["X"] = 51.04, + ["Y"] = 72.92, + ["CD"] = 0, }, - [8] = - { - ["X"] = 45.02, - ["Y"] = 70.03, - ["CD"] = 0 + [8] = { + ["X"] = 45.02, + ["Y"] = 70.03, + ["CD"] = 0, }, - [9] = - { - ["X"] = 72.27, - ["Y"] = 20.18, - ["CD"] = 0 + [9] = { + ["X"] = 72.27, + ["Y"] = 20.18, + ["CD"] = 0, }, - [10] = - { - ["X"] = 75.45, - ["Y"] = 17.55, - ["CD"] = 0 + [10] = { + ["X"] = 75.45, + ["Y"] = 17.55, + ["CD"] = 0, }, - [11] = - { - ["X"] = 76.63, - ["Y"] = 19.67, - ["CD"] = 0 + [11] = { + ["X"] = 76.63, + ["Y"] = 19.67, + ["CD"] = 0, }, - [12] = - { - ["X"] = 75.67, - ["Y"] = 21.71, - ["CD"] = 0 + [12] = { + ["X"] = 75.67, + ["Y"] = 21.71, + ["CD"] = 0, }, - [13] = - { - ["X"] = 73.78, - ["Y"] = 24.85, - ["CD"] = 0 + [13] = { + ["X"] = 73.78, + ["Y"] = 24.85, + ["CD"] = 0, }, - [14] = - { - ["X"] = 70.92, - ["Y"] = 34.01, - ["CD"] = 0 + [14] = { + ["X"] = 70.92, + ["Y"] = 34.01, + ["CD"] = 0, }, - [15] = - { - ["X"] = 65.32, - ["Y"] = 47.25, - ["CD"] = 0 + [15] = { + ["X"] = 65.32, + ["Y"] = 47.25, + ["CD"] = 0, }, - [16] = - { - ["X"] = 69.86, - ["Y"] = 52.11, - ["CD"] = 0 + [16] = { + ["X"] = 69.86, + ["Y"] = 52.11, + ["CD"] = 0, }, - [17] = - { - ["X"] = 74.82, - ["Y"] = 57.8, - ["CD"] = 0 + [17] = { + ["X"] = 74.82, + ["Y"] = 57.8, + ["CD"] = 0, }, - [18] = - { - ["X"] = 73.72, - ["Y"] = 55.53, - ["CD"] = 0 + [18] = { + ["X"] = 73.72, + ["Y"] = 55.53, + ["CD"] = 0, }, - [19] = - { - ["X"] = 75.55, - ["Y"] = 56.07, - ["CD"] = 0 + [19] = { + ["X"] = 75.55, + ["Y"] = 56.07, + ["CD"] = 0, }, - [20] = - { - ["X"] = 78.32, - ["Y"] = 59.4, - ["CD"] = 0 + [20] = { + ["X"] = 78.32, + ["Y"] = 59.4, + ["CD"] = 0, }, - [21] = - { - ["X"] = 77.23, - ["Y"] = 61.88, - ["CD"] = 0 + [21] = { + ["X"] = 77.23, + ["Y"] = 61.88, + ["CD"] = 0, }, - [22] = - { - ["X"] = 75.08, - ["Y"] = 61.89, - ["CD"] = 0 + [22] = { + ["X"] = 75.08, + ["Y"] = 61.89, + ["CD"] = 0, }, - [23] = - { - ["X"] = 72.99, - ["Y"] = 62.81, - ["CD"] = 0 + [23] = { + ["X"] = 72.99, + ["Y"] = 62.81, + ["CD"] = 0, }, - [24] = - { - ["X"] = 71.3, - ["Y"] = 63.82, - ["CD"] = 0 + [24] = { + ["X"] = 71.3, + ["Y"] = 63.82, + ["CD"] = 0, }, - [25] = - { - ["X"] = 68.84, - ["Y"] = 59.76, - ["CD"] = 0 + [25] = { + ["X"] = 68.84, + ["Y"] = 59.76, + ["CD"] = 0, }, - [26] = - { - ["X"] = 68.09, - ["Y"] = 59.63, - ["CD"] = 0 + [26] = { + ["X"] = 68.09, + ["Y"] = 59.63, + ["CD"] = 0, }, - [27] = - { - ["X"] = 67.89, - ["Y"] = 59.57, - ["CD"] = 0 + [27] = { + ["X"] = 67.89, + ["Y"] = 59.57, + ["CD"] = 0, }, - [28] = - { - ["X"] = 42.19, - ["Y"] = 84.08, - ["CD"] = 0 + [28] = { + ["X"] = 42.19, + ["Y"] = 84.08, + ["CD"] = 0, }, - [29] = - { - ["X"] = 34.22, - ["Y"] = 48.33, - ["CD"] = 0 + [29] = { + ["X"] = 34.22, + ["Y"] = 48.33, + ["CD"] = 0, }, - [30] = - { - ["X"] = 34.19, - ["Y"] = 42.54, - ["CD"] = 0 + [30] = { + ["X"] = 34.19, + ["Y"] = 42.54, + ["CD"] = 0, + }, + [31] = { + ["X"] = 19.86, + ["Y"] = 48.49, + ["CD"] = 0, }, - [31] = - { - ["X"] = 19.86, - ["Y"] = 48.49, - ["CD"] = 0 -} } aura_env.cooldown = 600 aura_env.wipeDistance = 15 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Zul'Drak.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Zul'Drak.lua index 700f00e..3ed6c3b 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Zul'Drak.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Zul'Drak.lua @@ -1,513 +1,431 @@ -aura_env.herbs = -{ - [1] = - { - ["X"] = 14.35, - ["Y"] = 76.35, - ["CD"] = 0 - }, - [2] = - { - ["X"] = 25.28, - ["Y"] = 79.69, - ["CD"] = 0 - }, - [3] = - { - ["X"] = 28.67, - ["Y"] = 77.03, - ["CD"] = 0 - }, - [4] = - { - ["X"] = 31.66, - ["Y"] = 55.57, - ["CD"] = 0 - }, - [5] = - { - ["X"] = 33.42, - ["Y"] = 64.79, - ["CD"] = 0 - }, - [6] = - { - ["X"] = 41.99, - ["Y"] = 64.58, - ["CD"] = 0 - }, - [7] = - { - ["X"] = 48.03, - ["Y"] = 62.96, - ["CD"] = 0 - }, - [8] = - { - ["X"] = 58.05, - ["Y"] = 68.72, - ["CD"] = 0 - }, - [9] = - { - ["X"] = 60.82, - ["Y"] = 59.27, - ["CD"] = 0 - }, - [10] = - { - ["X"] = 69.4, - ["Y"] = 18.06, - ["CD"] = 0 - }, - [11] = - { - ["X"] = 64.09, - ["Y"] = 33.24, - ["CD"] = 0 - }, - [12] = - { - ["X"] = 25.89, - ["Y"] = 52.4, - ["CD"] = 0 - }, - [13] = - { - ["X"] = 12.88, - ["Y"] = 53.56, - ["CD"] = 0 - }, - [14] = - { - ["X"] = 11.28, - ["Y"] = 76.14, - ["CD"] = 0 - }, - [15] = - { - ["X"] = 16.6, - ["Y"] = 76.51, - ["CD"] = 0 - }, - [16] = - { - ["X"] = 33.37, - ["Y"] = 67.96, - ["CD"] = 0 - }, - [17] = - { - ["X"] = 36.36, - ["Y"] = 76.93, - ["CD"] = 0 - }, - [18] = - { - ["X"] = 30.05, - ["Y"] = 26.97, - ["CD"] = 0 - }, - [19] = - { - ["X"] = 31.46, - ["Y"] = 25.61, - ["CD"] = 0 - }, - [20] = - { - ["X"] = 29.86, - ["Y"] = 26.25, - ["CD"] = 0 - }, - [21] = - { - ["X"] = 32.14, - ["Y"] = 25.25, - ["CD"] = 0 - }, - [22] = - { - ["X"] = 30.97, - ["Y"] = 60.08, - ["CD"] = 0 - }, - [23] = - { - ["X"] = 32.46, - ["Y"] = 62.51, - ["CD"] = 0 - }, - [24] = - { - ["X"] = 71.46, - ["Y"] = 26.17, - ["CD"] = 0 - }, - [25] = - { - ["X"] = 70.67, - ["Y"] = 26.16, - ["CD"] = 0 - }, - [26] = - { - ["X"] = 90.04, - ["Y"] = 50.75, - ["CD"] = 0 - }, - [27] = - { - ["X"] = 90.84, - ["Y"] = 50.84, - ["CD"] = 0 - }, - [28] = - { - ["X"] = 88.81, - ["Y"] = 61.52, - ["CD"] = 0 - }, - [29] = - { - ["X"] = 78.92, - ["Y"] = 61.4, - ["CD"] = 0 - }, - [30] = - { - ["X"] = 82.26, - ["Y"] = 59.77, - ["CD"] = 0 - }, - [31] = - { - ["X"] = 85.43, - ["Y"] = 57.03, - ["CD"] = 0 - }, - [32] = - { - ["X"] = 74.46, - ["Y"] = 28.13, - ["CD"] = 0 - }, - [33] = - { - ["X"] = 69.36, - ["Y"] = 25.49, - ["CD"] = 0 - }, - [34] = - { - ["X"] = 73.21, - ["Y"] = 26.13, - ["CD"] = 0 - }, - [35] = - { - ["X"] = 56.52, - ["Y"] = 35.9, - ["CD"] = 0 - }, - [36] = - { - ["X"] = 57.94, - ["Y"] = 33.32, - ["CD"] = 0 - }, - [37] = - { - ["X"] = 55.19, - ["Y"] = 32.83, - ["CD"] = 0 - }, - [38] = - { - ["X"] = 54.89, - ["Y"] = 37.13, - ["CD"] = 0 - }, - [39] = - { - ["X"] = 51.74, - ["Y"] = 38.92, - ["CD"] = 0 - }, - [40] = - { - ["X"] = 52.5, - ["Y"] = 38.18, - ["CD"] = 0 - }, - [41] = - { - ["X"] = 49.22, - ["Y"] = 43.37, - ["CD"] = 0 - }, - [42] = - { - ["X"] = 49.78, - ["Y"] = 50.78, - ["CD"] = 0 - }, - [43] = - { - ["X"] = 45.13, - ["Y"] = 52.25, - ["CD"] = 0 - }, - [44] = - { - ["X"] = 45.02, - ["Y"] = 47.11, - ["CD"] = 0 - }, - [45] = - { - ["X"] = 31.45, - ["Y"] = 55.09, - ["CD"] = 0 - }, - [46] = - { - ["X"] = 30.49, - ["Y"] = 60.35, - ["CD"] = 0 - }, - [47] = - { - ["X"] = 26.19, - ["Y"] = 62.12, - ["CD"] = 0 - }, - [48] = - { - ["X"] = 19.5, - ["Y"] = 61.05, - ["CD"] = 0 - }, - [49] = - { - ["X"] = 21.36, - ["Y"] = 56.44, - ["CD"] = 0 - }, - [50] = - { - ["X"] = 62.63, - ["Y"] = 80.15, - ["CD"] = 0 - }, - [51] = - { - ["X"] = 61.03, - ["Y"] = 83.67, - ["CD"] = 0 - }, - [52] = - { - ["X"] = 60.11, - ["Y"] = 80.98, - ["CD"] = 0 - }, - [53] = - { - ["X"] = 59.29, - ["Y"] = 77.46, - ["CD"] = 0 - }, - [54] = - { - ["X"] = 56.55, - ["Y"] = 77.25, - ["CD"] = 0 - }, - [55] = - { - ["X"] = 56.87, - ["Y"] = 75.77, - ["CD"] = 0 - }, - [56] = - { - ["X"] = 51.04, - ["Y"] = 72.92, - ["CD"] = 0 - }, - [57] = - { - ["X"] = 45.02, - ["Y"] = 70.03, - ["CD"] = 0 - }, - [58] = - { - ["X"] = 72.27, - ["Y"] = 20.18, - ["CD"] = 0 - }, - [59] = - { - ["X"] = 75.45, - ["Y"] = 17.55, - ["CD"] = 0 - }, - [60] = - { - ["X"] = 76.63, - ["Y"] = 19.67, - ["CD"] = 0 - }, - [61] = - { - ["X"] = 75.67, - ["Y"] = 21.71, - ["CD"] = 0 - }, - [62] = - { - ["X"] = 73.78, - ["Y"] = 24.85, - ["CD"] = 0 - }, - [63] = - { - ["X"] = 70.92, - ["Y"] = 34.01, - ["CD"] = 0 - }, - [64] = - { - ["X"] = 65.32, - ["Y"] = 47.25, - ["CD"] = 0 - }, - [65] = - { - ["X"] = 69.86, - ["Y"] = 52.11, - ["CD"] = 0 - }, - [66] = - { - ["X"] = 74.82, - ["Y"] = 57.8, - ["CD"] = 0 - }, - [67] = - { - ["X"] = 73.72, - ["Y"] = 55.53, - ["CD"] = 0 - }, - [68] = - { - ["X"] = 75.55, - ["Y"] = 56.07, - ["CD"] = 0 - }, - [69] = - { - ["X"] = 78.32, - ["Y"] = 59.4, - ["CD"] = 0 - }, - [70] = - { - ["X"] = 77.23, - ["Y"] = 61.88, - ["CD"] = 0 - }, - [71] = - { - ["X"] = 75.08, - ["Y"] = 61.89, - ["CD"] = 0 - }, - [72] = - { - ["X"] = 72.99, - ["Y"] = 62.81, - ["CD"] = 0 - }, - [73] = - { - ["X"] = 71.3, - ["Y"] = 63.82, - ["CD"] = 0 - }, - [74] = - { - ["X"] = 68.84, - ["Y"] = 59.76, - ["CD"] = 0 - }, - [75] = - { - ["X"] = 68.09, - ["Y"] = 59.63, - ["CD"] = 0 - }, - [76] = - { - ["X"] = 67.89, - ["Y"] = 59.57, - ["CD"] = 0 - }, - [77] = - { - ["X"] = 42.19, - ["Y"] = 84.08, - ["CD"] = 0 - }, - [78] = - { - ["X"] = 34.22, - ["Y"] = 48.33, - ["CD"] = 0 - }, - [79] = - { - ["X"] = 34.19, - ["Y"] = 42.54, - ["CD"] = 0 - }, - [80] = - { - ["X"] = 19.86, - ["Y"] = 48.49, - ["CD"] = 0 -} +aura_env.herbs = { + [1] = { + ["X"] = 14.35, + ["Y"] = 76.35, + ["CD"] = 0, + }, + [2] = { + ["X"] = 25.28, + ["Y"] = 79.69, + ["CD"] = 0, + }, + [3] = { + ["X"] = 28.67, + ["Y"] = 77.03, + ["CD"] = 0, + }, + [4] = { + ["X"] = 31.66, + ["Y"] = 55.57, + ["CD"] = 0, + }, + [5] = { + ["X"] = 33.42, + ["Y"] = 64.79, + ["CD"] = 0, + }, + [6] = { + ["X"] = 41.99, + ["Y"] = 64.58, + ["CD"] = 0, + }, + [7] = { + ["X"] = 48.03, + ["Y"] = 62.96, + ["CD"] = 0, + }, + [8] = { + ["X"] = 58.05, + ["Y"] = 68.72, + ["CD"] = 0, + }, + [9] = { + ["X"] = 60.82, + ["Y"] = 59.27, + ["CD"] = 0, + }, + [10] = { + ["X"] = 69.4, + ["Y"] = 18.06, + ["CD"] = 0, + }, + [11] = { + ["X"] = 64.09, + ["Y"] = 33.24, + ["CD"] = 0, + }, + [12] = { + ["X"] = 25.89, + ["Y"] = 52.4, + ["CD"] = 0, + }, + [13] = { + ["X"] = 12.88, + ["Y"] = 53.56, + ["CD"] = 0, + }, + [14] = { + ["X"] = 11.28, + ["Y"] = 76.14, + ["CD"] = 0, + }, + [15] = { + ["X"] = 16.6, + ["Y"] = 76.51, + ["CD"] = 0, + }, + [16] = { + ["X"] = 33.37, + ["Y"] = 67.96, + ["CD"] = 0, + }, + [17] = { + ["X"] = 36.36, + ["Y"] = 76.93, + ["CD"] = 0, + }, + [18] = { + ["X"] = 30.05, + ["Y"] = 26.97, + ["CD"] = 0, + }, + [19] = { + ["X"] = 31.46, + ["Y"] = 25.61, + ["CD"] = 0, + }, + [20] = { + ["X"] = 29.86, + ["Y"] = 26.25, + ["CD"] = 0, + }, + [21] = { + ["X"] = 32.14, + ["Y"] = 25.25, + ["CD"] = 0, + }, + [22] = { + ["X"] = 30.97, + ["Y"] = 60.08, + ["CD"] = 0, + }, + [23] = { + ["X"] = 32.46, + ["Y"] = 62.51, + ["CD"] = 0, + }, + [24] = { + ["X"] = 71.46, + ["Y"] = 26.17, + ["CD"] = 0, + }, + [25] = { + ["X"] = 70.67, + ["Y"] = 26.16, + ["CD"] = 0, + }, + [26] = { + ["X"] = 90.04, + ["Y"] = 50.75, + ["CD"] = 0, + }, + [27] = { + ["X"] = 90.84, + ["Y"] = 50.84, + ["CD"] = 0, + }, + [28] = { + ["X"] = 88.81, + ["Y"] = 61.52, + ["CD"] = 0, + }, + [29] = { + ["X"] = 78.92, + ["Y"] = 61.4, + ["CD"] = 0, + }, + [30] = { + ["X"] = 82.26, + ["Y"] = 59.77, + ["CD"] = 0, + }, + [31] = { + ["X"] = 85.43, + ["Y"] = 57.03, + ["CD"] = 0, + }, + [32] = { + ["X"] = 74.46, + ["Y"] = 28.13, + ["CD"] = 0, + }, + [33] = { + ["X"] = 69.36, + ["Y"] = 25.49, + ["CD"] = 0, + }, + [34] = { + ["X"] = 73.21, + ["Y"] = 26.13, + ["CD"] = 0, + }, + [35] = { + ["X"] = 56.52, + ["Y"] = 35.9, + ["CD"] = 0, + }, + [36] = { + ["X"] = 57.94, + ["Y"] = 33.32, + ["CD"] = 0, + }, + [37] = { + ["X"] = 55.19, + ["Y"] = 32.83, + ["CD"] = 0, + }, + [38] = { + ["X"] = 54.89, + ["Y"] = 37.13, + ["CD"] = 0, + }, + [39] = { + ["X"] = 51.74, + ["Y"] = 38.92, + ["CD"] = 0, + }, + [40] = { + ["X"] = 52.5, + ["Y"] = 38.18, + ["CD"] = 0, + }, + [41] = { + ["X"] = 49.22, + ["Y"] = 43.37, + ["CD"] = 0, + }, + [42] = { + ["X"] = 49.78, + ["Y"] = 50.78, + ["CD"] = 0, + }, + [43] = { + ["X"] = 45.13, + ["Y"] = 52.25, + ["CD"] = 0, + }, + [44] = { + ["X"] = 45.02, + ["Y"] = 47.11, + ["CD"] = 0, + }, + [45] = { + ["X"] = 31.45, + ["Y"] = 55.09, + ["CD"] = 0, + }, + [46] = { + ["X"] = 30.49, + ["Y"] = 60.35, + ["CD"] = 0, + }, + [47] = { + ["X"] = 26.19, + ["Y"] = 62.12, + ["CD"] = 0, + }, + [48] = { + ["X"] = 19.5, + ["Y"] = 61.05, + ["CD"] = 0, + }, + [49] = { + ["X"] = 21.36, + ["Y"] = 56.44, + ["CD"] = 0, + }, + [50] = { + ["X"] = 62.63, + ["Y"] = 80.15, + ["CD"] = 0, + }, + [51] = { + ["X"] = 61.03, + ["Y"] = 83.67, + ["CD"] = 0, + }, + [52] = { + ["X"] = 60.11, + ["Y"] = 80.98, + ["CD"] = 0, + }, + [53] = { + ["X"] = 59.29, + ["Y"] = 77.46, + ["CD"] = 0, + }, + [54] = { + ["X"] = 56.55, + ["Y"] = 77.25, + ["CD"] = 0, + }, + [55] = { + ["X"] = 56.87, + ["Y"] = 75.77, + ["CD"] = 0, + }, + [56] = { + ["X"] = 51.04, + ["Y"] = 72.92, + ["CD"] = 0, + }, + [57] = { + ["X"] = 45.02, + ["Y"] = 70.03, + ["CD"] = 0, + }, + [58] = { + ["X"] = 72.27, + ["Y"] = 20.18, + ["CD"] = 0, + }, + [59] = { + ["X"] = 75.45, + ["Y"] = 17.55, + ["CD"] = 0, + }, + [60] = { + ["X"] = 76.63, + ["Y"] = 19.67, + ["CD"] = 0, + }, + [61] = { + ["X"] = 75.67, + ["Y"] = 21.71, + ["CD"] = 0, + }, + [62] = { + ["X"] = 73.78, + ["Y"] = 24.85, + ["CD"] = 0, + }, + [63] = { + ["X"] = 70.92, + ["Y"] = 34.01, + ["CD"] = 0, + }, + [64] = { + ["X"] = 65.32, + ["Y"] = 47.25, + ["CD"] = 0, + }, + [65] = { + ["X"] = 69.86, + ["Y"] = 52.11, + ["CD"] = 0, + }, + [66] = { + ["X"] = 74.82, + ["Y"] = 57.8, + ["CD"] = 0, + }, + [67] = { + ["X"] = 73.72, + ["Y"] = 55.53, + ["CD"] = 0, + }, + [68] = { + ["X"] = 75.55, + ["Y"] = 56.07, + ["CD"] = 0, + }, + [69] = { + ["X"] = 78.32, + ["Y"] = 59.4, + ["CD"] = 0, + }, + [70] = { + ["X"] = 77.23, + ["Y"] = 61.88, + ["CD"] = 0, + }, + [71] = { + ["X"] = 75.08, + ["Y"] = 61.89, + ["CD"] = 0, + }, + [72] = { + ["X"] = 72.99, + ["Y"] = 62.81, + ["CD"] = 0, + }, + [73] = { + ["X"] = 71.3, + ["Y"] = 63.82, + ["CD"] = 0, + }, + [74] = { + ["X"] = 68.84, + ["Y"] = 59.76, + ["CD"] = 0, + }, + [75] = { + ["X"] = 68.09, + ["Y"] = 59.63, + ["CD"] = 0, + }, + [76] = { + ["X"] = 67.89, + ["Y"] = 59.57, + ["CD"] = 0, + }, + [77] = { + ["X"] = 42.19, + ["Y"] = 84.08, + ["CD"] = 0, + }, + [78] = { + ["X"] = 34.22, + ["Y"] = 48.33, + ["CD"] = 0, + }, + [79] = { + ["X"] = 34.19, + ["Y"] = 42.54, + ["CD"] = 0, + }, + [80] = { + ["X"] = 19.86, + ["Y"] = 48.49, + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 15 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Highmountain).lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Highmountain).lua index b6151d6..f82599a 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Highmountain).lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Highmountain).lua @@ -1,555 +1,466 @@ -aura_env.herbs = -{ - [1] = - { +aura_env.herbs = { + [1] = { ["X"] = 50.79, ["Y"] = 52.35, - ["CD"] = 0 + ["CD"] = 0, }, - [2] = - { + [2] = { ["X"] = 52.7, ["Y"] = 53.22, - ["CD"] = 0 + ["CD"] = 0, }, - [3] = - { + [3] = { ["X"] = 53.94, ["Y"] = 53.78, - ["CD"] = 0 + ["CD"] = 0, }, - [4] = - { + [4] = { ["X"] = 53.24, ["Y"] = 55.02, - ["CD"] = 0 + ["CD"] = 0, }, - [5] = - { + [5] = { ["X"] = 52.65, ["Y"] = 55.24, - ["CD"] = 0 + ["CD"] = 0, }, - [6] = - { + [6] = { ["X"] = 51.67, ["Y"] = 54.04, - ["CD"] = 0 + ["CD"] = 0, }, - [7] = - { + [7] = { ["X"] = 51.15, ["Y"] = 52.08, - ["CD"] = 0 + ["CD"] = 0, }, - [8] = - { + [8] = { ["X"] = 49.47, ["Y"] = 53.86, - ["CD"] = 0 + ["CD"] = 0, }, - [9] = - { + [9] = { ["X"] = 44.63, ["Y"] = 60.71, - ["CD"] = 0 + ["CD"] = 0, }, - [10] = - { + [10] = { ["X"] = 44.89, ["Y"] = 67.28, - ["CD"] = 0 + ["CD"] = 0, }, - [11] = - { + [11] = { ["X"] = 44.44, ["Y"] = 67.36, - ["CD"] = 0 + ["CD"] = 0, }, - [12] = - { + [12] = { ["X"] = 44.34, ["Y"] = 68.45, - ["CD"] = 0 + ["CD"] = 0, }, - [13] = - { + [13] = { ["X"] = 44.14, ["Y"] = 69.89, - ["CD"] = 0 + ["CD"] = 0, }, - [14] = - { + [14] = { ["X"] = 44.17, ["Y"] = 71.32, - ["CD"] = 0 + ["CD"] = 0, }, - [15] = - { + [15] = { ["X"] = 47.78, ["Y"] = 68.45, - ["CD"] = 0 + ["CD"] = 0, }, - [16] = - { + [16] = { ["X"] = 46.65, ["Y"] = 68.58, - ["CD"] = 0 + ["CD"] = 0, }, - [17] = - { + [17] = { ["X"] = 48.76, ["Y"] = 73.26, - ["CD"] = 0 + ["CD"] = 0, }, - [18] = - { + [18] = { ["X"] = 48.01, ["Y"] = 72.75, - ["CD"] = 0 + ["CD"] = 0, }, - [19] = - { + [19] = { ["X"] = 49.41, ["Y"] = 72.56, - ["CD"] = 0 + ["CD"] = 0, }, - [20] = - { + [20] = { ["X"] = 48.95, ["Y"] = 70.6, - ["CD"] = 0 + ["CD"] = 0, }, - [21] = - { + [21] = { ["X"] = 47.55, ["Y"] = 70.14, - ["CD"] = 0 + ["CD"] = 0, }, - [22] = - { + [22] = { ["X"] = 44.82, ["Y"] = 75.25, - ["CD"] = 0 + ["CD"] = 0, }, - [23] = - { + [23] = { ["X"] = 45.77, ["Y"] = 77.89, - ["CD"] = 0 + ["CD"] = 0, }, - [24] = - { + [24] = { ["X"] = 44.83, ["Y"] = 76, - ["CD"] = 0 + ["CD"] = 0, }, - [25] = - { + [25] = { ["X"] = 43.85, ["Y"] = 75.69, - ["CD"] = 0 + ["CD"] = 0, }, - [26] = - { + [26] = { ["X"] = 43.04, ["Y"] = 75.56, - ["CD"] = 0 + ["CD"] = 0, }, - [27] = - { + [27] = { ["X"] = 44.83, ["Y"] = 75.18, - ["CD"] = 0 + ["CD"] = 0, }, - [28] = - { + [28] = { ["X"] = 43.97, ["Y"] = 74.02, - ["CD"] = 0 + ["CD"] = 0, }, - [29] = - { + [29] = { ["X"] = 43.68, ["Y"] = 73.14, - ["CD"] = 0 + ["CD"] = 0, }, - [30] = - { + [30] = { ["X"] = 43.75, ["Y"] = 54.52, - ["CD"] = 0 + ["CD"] = 0, }, - [31] = - { + [31] = { ["X"] = 45.46, ["Y"] = 53.73, - ["CD"] = 0 + ["CD"] = 0, }, - [32] = - { + [32] = { ["X"] = 45.89, ["Y"] = 42.83, - ["CD"] = 0 + ["CD"] = 0, }, - [33] = - { + [33] = { ["X"] = 45.45, ["Y"] = 42.34, - ["CD"] = 0 + ["CD"] = 0, }, - [34] = - { + [34] = { ["X"] = 45.1, ["Y"] = 42.78, - ["CD"] = 0 + ["CD"] = 0, }, - [35] = - { + [35] = { ["X"] = 45.03, ["Y"] = 43.2, - ["CD"] = 0 + ["CD"] = 0, }, - [36] = - { + [36] = { ["X"] = 45.68, ["Y"] = 43.92, - ["CD"] = 0 + ["CD"] = 0, }, - [37] = - { + [37] = { ["X"] = 47.01, ["Y"] = 44.4, - ["CD"] = 0 + ["CD"] = 0, }, - [38] = - { + [38] = { ["X"] = 47.62, ["Y"] = 45.31, - ["CD"] = 0 + ["CD"] = 0, }, - [39] = - { + [39] = { ["X"] = 44.35, ["Y"] = 50.32, - ["CD"] = 0 + ["CD"] = 0, }, - [40] = - { + [40] = { ["X"] = 43.54, ["Y"] = 47.68, - ["CD"] = 0 + ["CD"] = 0, }, - [41] = - { + [41] = { ["X"] = 43.35, ["Y"] = 47.13, - ["CD"] = 0 + ["CD"] = 0, }, - [42] = - { + [42] = { ["X"] = 40.68, ["Y"] = 34.69, - ["CD"] = 0 + ["CD"] = 0, }, - [43] = - { + [43] = { ["X"] = 41.47, ["Y"] = 36.3, - ["CD"] = 0 + ["CD"] = 0, }, - [44] = - { + [44] = { ["X"] = 42.18, ["Y"] = 36.37, - ["CD"] = 0 + ["CD"] = 0, }, - [45] = - { + [45] = { ["X"] = 42.68, ["Y"] = 35.45, - ["CD"] = 0 + ["CD"] = 0, }, - [46] = - { + [46] = { ["X"] = 42.41, ["Y"] = 34.31, - ["CD"] = 0 + ["CD"] = 0, }, - [47] = - { + [47] = { ["X"] = 43.14, ["Y"] = 34.43, - ["CD"] = 0 + ["CD"] = 0, }, - [48] = - { + [48] = { ["X"] = 42.81, ["Y"] = 32.83, - ["CD"] = 0 + ["CD"] = 0, }, - [49] = - { + [49] = { ["X"] = 43.7, ["Y"] = 33.32, - ["CD"] = 0 + ["CD"] = 0, }, - [50] = - { + [50] = { ["X"] = 44.13, ["Y"] = 30.6, - ["CD"] = 0 + ["CD"] = 0, }, - [51] = - { + [51] = { ["X"] = 44.71, ["Y"] = 29.48, - ["CD"] = 0 + ["CD"] = 0, }, - [52] = - { + [52] = { ["X"] = 43.81, ["Y"] = 27.15, - ["CD"] = 0 + ["CD"] = 0, }, - [53] = - { + [53] = { ["X"] = 43.3, ["Y"] = 25.86, - ["CD"] = 0 + ["CD"] = 0, }, - [54] = - { + [54] = { ["X"] = 41.18, ["Y"] = 25.89, - ["CD"] = 0 + ["CD"] = 0, }, - [55] = - { + [55] = { ["X"] = 41.63, ["Y"] = 24.99, - ["CD"] = 0 + ["CD"] = 0, }, - [56] = - { + [56] = { ["X"] = 43.99, ["Y"] = 24.13, - ["CD"] = 0 + ["CD"] = 0, }, - [57] = - { + [57] = { ["X"] = 45, ["Y"] = 24.59, - ["CD"] = 0 + ["CD"] = 0, }, - [58] = - { + [58] = { ["X"] = 51.32, ["Y"] = 25.48, - ["CD"] = 0 + ["CD"] = 0, }, - [59] = - { + [59] = { ["X"] = 50.95, ["Y"] = 26.35, - ["CD"] = 0 + ["CD"] = 0, }, - [60] = - { + [60] = { ["X"] = 49.69, ["Y"] = 27.85, - ["CD"] = 0 + ["CD"] = 0, }, - [61] = - { + [61] = { ["X"] = 49.88, ["Y"] = 28.33, - ["CD"] = 0 + ["CD"] = 0, }, - [62] = - { + [62] = { ["X"] = 49.1, ["Y"] = 29.38, - ["CD"] = 0 + ["CD"] = 0, }, - [63] = - { + [63] = { ["X"] = 47.93, ["Y"] = 29.24, - ["CD"] = 0 + ["CD"] = 0, }, - [64] = - { + [64] = { ["X"] = 47.05, ["Y"] = 30.01, - ["CD"] = 0 + ["CD"] = 0, }, - [65] = - { + [65] = { ["X"] = 46.76, ["Y"] = 32.28, - ["CD"] = 0 + ["CD"] = 0, }, - [66] = - { + [66] = { ["X"] = 51.53, ["Y"] = 37.03, - ["CD"] = 0 + ["CD"] = 0, }, - [67] = - { + [67] = { ["X"] = 52.24, ["Y"] = 39.43, - ["CD"] = 0 + ["CD"] = 0, }, - [68] = - { + [68] = { ["X"] = 51.9, ["Y"] = 38.07, - ["CD"] = 0 + ["CD"] = 0, }, - [69] = - { + [69] = { ["X"] = 50.52, ["Y"] = 38.82, - ["CD"] = 0 + ["CD"] = 0, }, - [70] = - { + [70] = { ["X"] = 49.72, ["Y"] = 39.5, - ["CD"] = 0 + ["CD"] = 0, }, - [71] = - { + [71] = { ["X"] = 47.85, ["Y"] = 68.43, - ["CD"] = 0 + ["CD"] = 0, }, - [72] = - { + [72] = { ["X"] = 32.68, ["Y"] = 51.4, - ["CD"] = 0 + ["CD"] = 0, }, - [73] = - { + [73] = { ["X"] = 33.07, ["Y"] = 48.65, - ["CD"] = 0 + ["CD"] = 0, }, - [74] = - { + [74] = { ["X"] = 34.22, ["Y"] = 47.52, - ["CD"] = 0 + ["CD"] = 0, }, - [75] = - { + [75] = { ["X"] = 35.38, ["Y"] = 49.24, - ["CD"] = 0 + ["CD"] = 0, }, - [76] = - { + [76] = { ["X"] = 36.3, ["Y"] = 49.81, - ["CD"] = 0 + ["CD"] = 0, }, - [77] = - { + [77] = { ["X"] = 37.23, ["Y"] = 53.49, - ["CD"] = 0 + ["CD"] = 0, }, - [78] = - { + [78] = { ["X"] = 37.55, ["Y"] = 54.77, - ["CD"] = 0 + ["CD"] = 0, }, - [79] = - { + [79] = { ["X"] = 37.48, ["Y"] = 55.75, - ["CD"] = 0 + ["CD"] = 0, }, - [80] = - { + [80] = { ["X"] = 39.14, ["Y"] = 59.76, - ["CD"] = 0 + ["CD"] = 0, }, - [81] = - { + [81] = { ["X"] = 39.01, ["Y"] = 58.93, - ["CD"] = 0 + ["CD"] = 0, }, - [82] = - { + [82] = { ["X"] = 38.69, ["Y"] = 58.31, - ["CD"] = 0 + ["CD"] = 0, }, - [83] = - { + [83] = { ["X"] = 38.55, ["Y"] = 57.23, - ["CD"] = 0 + ["CD"] = 0, }, - [84] = - { + [84] = { ["X"] = 36.59, ["Y"] = 56.72, - ["CD"] = 0 + ["CD"] = 0, }, - [85] = - { + [85] = { ["X"] = 34.3, ["Y"] = 55.25, - ["CD"] = 0 + ["CD"] = 0, }, - [86] = - { + [86] = { ["X"] = 26.1, ["Y"] = 14.77, - ["CD"] = 0 + ["CD"] = 0, }, - [87] = - { + [87] = { ["X"] = 45.95, ["Y"] = 29.55, - ["CD"] = 0 - } + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 20 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Suramar).lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Suramar).lua index 5fa5f7f..e8b855c 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Suramar).lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Suramar).lua @@ -1,555 +1,466 @@ -aura_env.herbs = -{ - [1] = - { +aura_env.herbs = { + [1] = { ["X"] = 67.25, ["Y"] = 73.74, - ["CD"] = 0 + ["CD"] = 0, }, - [2] = - { + [2] = { ["X"] = 68.53, ["Y"] = 73.25, - ["CD"] = 0 + ["CD"] = 0, }, - [3] = - { + [3] = { ["X"] = 69.34, ["Y"] = 73.84, - ["CD"] = 0 + ["CD"] = 0, }, - [4] = - { + [4] = { ["X"] = 62.86, ["Y"] = 51.94, - ["CD"] = 0 + ["CD"] = 0, }, - [5] = - { + [5] = { ["X"] = 63.66, ["Y"] = 50.43, - ["CD"] = 0 + ["CD"] = 0, }, - [6] = - { + [6] = { ["X"] = 65.41, ["Y"] = 50.69, - ["CD"] = 0 + ["CD"] = 0, }, - [7] = - { + [7] = { ["X"] = 64.95, ["Y"] = 51.87, - ["CD"] = 0 + ["CD"] = 0, }, - [8] = - { + [8] = { ["X"] = 64.6, ["Y"] = 54.88, - ["CD"] = 0 + ["CD"] = 0, }, - [9] = - { + [9] = { ["X"] = 52.44, ["Y"] = 43.72, - ["CD"] = 0 + ["CD"] = 0, }, - [10] = - { + [10] = { ["X"] = 51.89, ["Y"] = 42.38, - ["CD"] = 0 + ["CD"] = 0, }, - [11] = - { + [11] = { ["X"] = 50.37, ["Y"] = 42.54, - ["CD"] = 0 + ["CD"] = 0, }, - [12] = - { + [12] = { ["X"] = 49.81, ["Y"] = 41.96, - ["CD"] = 0 + ["CD"] = 0, }, - [13] = - { + [13] = { ["X"] = 49.12, ["Y"] = 40.6, - ["CD"] = 0 + ["CD"] = 0, }, - [14] = - { + [14] = { ["X"] = 48.34, ["Y"] = 39.21, - ["CD"] = 0 + ["CD"] = 0, }, - [15] = - { + [15] = { ["X"] = 48.02, ["Y"] = 36.6, - ["CD"] = 0 + ["CD"] = 0, }, - [16] = - { + [16] = { ["X"] = 46.86, ["Y"] = 36.72, - ["CD"] = 0 + ["CD"] = 0, }, - [17] = - { + [17] = { ["X"] = 46.75, ["Y"] = 34.53, - ["CD"] = 0 + ["CD"] = 0, }, - [18] = - { + [18] = { ["X"] = 25.94, ["Y"] = 28.99, - ["CD"] = 0 + ["CD"] = 0, }, - [19] = - { + [19] = { ["X"] = 29.48, ["Y"] = 25.3, - ["CD"] = 0 + ["CD"] = 0, }, - [20] = - { + [20] = { ["X"] = 28.4, ["Y"] = 25.56, - ["CD"] = 0 + ["CD"] = 0, }, - [21] = - { + [21] = { ["X"] = 28.51, ["Y"] = 23.82, - ["CD"] = 0 + ["CD"] = 0, }, - [22] = - { + [22] = { ["X"] = 29.61, ["Y"] = 22.79, - ["CD"] = 0 + ["CD"] = 0, }, - [23] = - { + [23] = { ["X"] = 29.75, ["Y"] = 21.84, - ["CD"] = 0 + ["CD"] = 0, }, - [24] = - { + [24] = { ["X"] = 26.43, ["Y"] = 10.9, - ["CD"] = 0 + ["CD"] = 0, }, - [25] = - { + [25] = { ["X"] = 25.97, ["Y"] = 12.48, - ["CD"] = 0 + ["CD"] = 0, }, - [26] = - { + [26] = { ["X"] = 25.9, ["Y"] = 15.81, - ["CD"] = 0 + ["CD"] = 0, }, - [27] = - { + [27] = { ["X"] = 25.73, ["Y"] = 16.64, - ["CD"] = 0 + ["CD"] = 0, }, - [28] = - { + [28] = { ["X"] = 25.45, ["Y"] = 17.29, - ["CD"] = 0 + ["CD"] = 0, }, - [29] = - { + [29] = { ["X"] = 25.4, ["Y"] = 18.4, - ["CD"] = 0 + ["CD"] = 0, }, - [30] = - { + [30] = { ["X"] = 25.26, ["Y"] = 19.79, - ["CD"] = 0 + ["CD"] = 0, }, - [31] = - { + [31] = { ["X"] = 26.03, ["Y"] = 24.44, - ["CD"] = 0 + ["CD"] = 0, }, - [32] = - { + [32] = { ["X"] = 26.04, ["Y"] = 23.22, - ["CD"] = 0 + ["CD"] = 0, }, - [33] = - { + [33] = { ["X"] = 24.19, ["Y"] = 23.27, - ["CD"] = 0 + ["CD"] = 0, }, - [34] = - { + [34] = { ["X"] = 24.28, ["Y"] = 24.89, - ["CD"] = 0 + ["CD"] = 0, }, - [35] = - { + [35] = { ["X"] = 24.47, ["Y"] = 25.24, - ["CD"] = 0 + ["CD"] = 0, }, - [36] = - { + [36] = { ["X"] = 24.46, ["Y"] = 26.17, - ["CD"] = 0 + ["CD"] = 0, }, - [37] = - { + [37] = { ["X"] = 24.98, ["Y"] = 27.02, - ["CD"] = 0 + ["CD"] = 0, }, - [38] = - { + [38] = { ["X"] = 24.82, ["Y"] = 27.95, - ["CD"] = 0 + ["CD"] = 0, }, - [39] = - { + [39] = { ["X"] = 24.87, ["Y"] = 29.34, - ["CD"] = 0 + ["CD"] = 0, }, - [40] = - { + [40] = { ["X"] = 24.49, ["Y"] = 30.19, - ["CD"] = 0 + ["CD"] = 0, }, - [41] = - { + [41] = { ["X"] = 23.53, ["Y"] = 30.88, - ["CD"] = 0 + ["CD"] = 0, }, - [42] = - { + [42] = { ["X"] = 23.17, ["Y"] = 31.72, - ["CD"] = 0 + ["CD"] = 0, }, - [43] = - { + [43] = { ["X"] = 22.88, ["Y"] = 32.62, - ["CD"] = 0 + ["CD"] = 0, }, - [44] = - { + [44] = { ["X"] = 21.65, ["Y"] = 33.2, - ["CD"] = 0 + ["CD"] = 0, }, - [45] = - { + [45] = { ["X"] = 19.95, ["Y"] = 33.28, - ["CD"] = 0 + ["CD"] = 0, }, - [46] = - { + [46] = { ["X"] = 21.16, ["Y"] = 34.77, - ["CD"] = 0 + ["CD"] = 0, }, - [47] = - { + [47] = { ["X"] = 22.35, ["Y"] = 34.03, - ["CD"] = 0 + ["CD"] = 0, }, - [48] = - { + [48] = { ["X"] = 31.87, ["Y"] = 52.38, - ["CD"] = 0 + ["CD"] = 0, }, - [49] = - { + [49] = { ["X"] = 30.31, ["Y"] = 53, - ["CD"] = 0 + ["CD"] = 0, }, - [50] = - { + [50] = { ["X"] = 28.27, ["Y"] = 53.65, - ["CD"] = 0 + ["CD"] = 0, }, - [51] = - { + [51] = { ["X"] = 27.54, ["Y"] = 53.51, - ["CD"] = 0 + ["CD"] = 0, }, - [52] = - { + [52] = { ["X"] = 27.6, ["Y"] = 52.81, - ["CD"] = 0 + ["CD"] = 0, }, - [53] = - { + [53] = { ["X"] = 26.91, ["Y"] = 53.27, - ["CD"] = 0 + ["CD"] = 0, }, - [54] = - { + [54] = { ["X"] = 25.45, ["Y"] = 54.29, - ["CD"] = 0 + ["CD"] = 0, }, - [55] = - { + [55] = { ["X"] = 25.36, ["Y"] = 53.45, - ["CD"] = 0 + ["CD"] = 0, }, - [56] = - { + [56] = { ["X"] = 22.29, ["Y"] = 54.37, - ["CD"] = 0 + ["CD"] = 0, }, - [57] = - { + [57] = { ["X"] = 23.11, ["Y"] = 55.13, - ["CD"] = 0 + ["CD"] = 0, }, - [58] = - { + [58] = { ["X"] = 24.34, ["Y"] = 55.09, - ["CD"] = 0 + ["CD"] = 0, }, - [59] = - { + [59] = { ["X"] = 24.03, ["Y"] = 55.88, - ["CD"] = 0 + ["CD"] = 0, }, - [60] = - { + [60] = { ["X"] = 24.95, ["Y"] = 59.85, - ["CD"] = 0 + ["CD"] = 0, }, - [61] = - { + [61] = { ["X"] = 24.84, ["Y"] = 61.41, - ["CD"] = 0 + ["CD"] = 0, }, - [62] = - { + [62] = { ["X"] = 34.59, ["Y"] = 69.79, - ["CD"] = 0 + ["CD"] = 0, }, - [63] = - { + [63] = { ["X"] = 33.59, ["Y"] = 68.41, - ["CD"] = 0 + ["CD"] = 0, }, - [64] = - { + [64] = { ["X"] = 31.96, ["Y"] = 69.06, - ["CD"] = 0 + ["CD"] = 0, }, - [65] = - { + [65] = { ["X"] = 29.87, ["Y"] = 65.93, - ["CD"] = 0 + ["CD"] = 0, }, - [66] = - { + [66] = { ["X"] = 30.95, ["Y"] = 64.82, - ["CD"] = 0 + ["CD"] = 0, }, - [67] = - { + [67] = { ["X"] = 32.43, ["Y"] = 62.85, - ["CD"] = 0 + ["CD"] = 0, }, - [68] = - { + [68] = { ["X"] = 32.7, ["Y"] = 61.83, - ["CD"] = 0 + ["CD"] = 0, }, - [69] = - { + [69] = { ["X"] = 33.05, ["Y"] = 57.88, - ["CD"] = 0 + ["CD"] = 0, }, - [70] = - { + [70] = { ["X"] = 32.43, ["Y"] = 56.41, - ["CD"] = 0 + ["CD"] = 0, }, - [71] = - { + [71] = { ["X"] = 33.85, ["Y"] = 54.08, - ["CD"] = 0 + ["CD"] = 0, }, - [72] = - { + [72] = { ["X"] = 32.68, ["Y"] = 51.4, - ["CD"] = 0 + ["CD"] = 0, }, - [73] = - { + [73] = { ["X"] = 33.07, ["Y"] = 48.65, - ["CD"] = 0 + ["CD"] = 0, }, - [74] = - { + [74] = { ["X"] = 34.22, ["Y"] = 47.52, - ["CD"] = 0 + ["CD"] = 0, }, - [75] = - { + [75] = { ["X"] = 35.38, ["Y"] = 49.24, - ["CD"] = 0 + ["CD"] = 0, }, - [76] = - { + [76] = { ["X"] = 36.3, ["Y"] = 49.81, - ["CD"] = 0 + ["CD"] = 0, }, - [77] = - { + [77] = { ["X"] = 37.23, ["Y"] = 53.49, - ["CD"] = 0 + ["CD"] = 0, }, - [78] = - { + [78] = { ["X"] = 37.55, ["Y"] = 54.77, - ["CD"] = 0 + ["CD"] = 0, }, - [79] = - { + [79] = { ["X"] = 37.48, ["Y"] = 55.75, - ["CD"] = 0 + ["CD"] = 0, }, - [80] = - { + [80] = { ["X"] = 39.14, ["Y"] = 59.76, - ["CD"] = 0 + ["CD"] = 0, }, - [81] = - { + [81] = { ["X"] = 39.01, ["Y"] = 58.93, - ["CD"] = 0 + ["CD"] = 0, }, - [82] = - { + [82] = { ["X"] = 38.69, ["Y"] = 58.31, - ["CD"] = 0 + ["CD"] = 0, }, - [83] = - { + [83] = { ["X"] = 38.55, ["Y"] = 57.23, - ["CD"] = 0 + ["CD"] = 0, }, - [84] = - { + [84] = { ["X"] = 36.59, ["Y"] = 56.72, - ["CD"] = 0 + ["CD"] = 0, }, - [85] = - { + [85] = { ["X"] = 34.3, ["Y"] = 55.25, - ["CD"] = 0 + ["CD"] = 0, }, - [86] = - { + [86] = { ["X"] = 26.1, ["Y"] = 14.77, - ["CD"] = 0 + ["CD"] = 0, }, - [87] = - { + [87] = { ["X"] = 45.95, ["Y"] = 29.55, - ["CD"] = 0 - } + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 20 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Total.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Total.lua index 330b0fd..83187c4 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Total.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Total.lua @@ -1,1035 +1,866 @@ -aura_env.herbs = -{ - [1] = - { - ["X"] = 67.25, - ["Y"] = 73.74, - ["CD"] = 0 - }, - [2] = - { - ["X"] = 68.53, - ["Y"] = 73.25, - ["CD"] = 0 - }, - [3] = - { - ["X"] = 69.34, - ["Y"] = 73.84, - ["CD"] = 0 - }, - [4] = - { - ["X"] = 62.86, - ["Y"] = 51.94, - ["CD"] = 0 - }, - [5] = - { - ["X"] = 63.66, - ["Y"] = 50.43, - ["CD"] = 0 - }, - [6] = - { - ["X"] = 65.41, - ["Y"] = 50.69, - ["CD"] = 0 - }, - [7] = - { - ["X"] = 64.95, - ["Y"] = 51.87, - ["CD"] = 0 - }, - [8] = - { - ["X"] = 64.6, - ["Y"] = 54.88, - ["CD"] = 0 - }, - [9] = - { - ["X"] = 52.44, - ["Y"] = 43.72, - ["CD"] = 0 - }, - [10] = - { - ["X"] = 51.89, - ["Y"] = 42.38, - ["CD"] = 0 - }, - [11] = - { - ["X"] = 50.37, - ["Y"] = 42.54, - ["CD"] = 0 - }, - [12] = - { - ["X"] = 49.81, - ["Y"] = 41.96, - ["CD"] = 0 - }, - [13] = - { - ["X"] = 49.12, - ["Y"] = 40.6, - ["CD"] = 0 - }, - [14] = - { - ["X"] = 48.34, - ["Y"] = 39.21, - ["CD"] = 0 - }, - [15] = - { - ["X"] = 48.02, - ["Y"] = 36.6, - ["CD"] = 0 - }, - [16] = - { - ["X"] = 46.86, - ["Y"] = 36.72, - ["CD"] = 0 - }, - [17] = - { - ["X"] = 46.75, - ["Y"] = 34.53, - ["CD"] = 0 - }, - [18] = - { - ["X"] = 25.94, - ["Y"] = 28.99, - ["CD"] = 0 - }, - [19] = - { - ["X"] = 29.48, - ["Y"] = 25.3, - ["CD"] = 0 - }, - [20] = - { - ["X"] = 28.4, - ["Y"] = 25.56, - ["CD"] = 0 - }, - [21] = - { - ["X"] = 28.51, - ["Y"] = 23.82, - ["CD"] = 0 - }, - [22] = - { - ["X"] = 29.61, - ["Y"] = 22.79, - ["CD"] = 0 - }, - [23] = - { - ["X"] = 29.75, - ["Y"] = 21.84, - ["CD"] = 0 - }, - [24] = - { - ["X"] = 26.43, - ["Y"] = 10.9, - ["CD"] = 0 - }, - [25] = - { - ["X"] = 25.97, - ["Y"] = 12.48, - ["CD"] = 0 - }, - [26] = - { - ["X"] = 25.9, - ["Y"] = 15.81, - ["CD"] = 0 - }, - [27] = - { - ["X"] = 25.73, - ["Y"] = 16.64, - ["CD"] = 0 - }, - [28] = - { - ["X"] = 25.45, - ["Y"] = 17.29, - ["CD"] = 0 - }, - [29] = - { - ["X"] = 25.4, - ["Y"] = 18.4, - ["CD"] = 0 - }, - [30] = - { - ["X"] = 25.26, - ["Y"] = 19.79, - ["CD"] = 0 - }, - [31] = - { - ["X"] = 26.03, - ["Y"] = 24.44, - ["CD"] = 0 - }, - [32] = - { - ["X"] = 26.04, - ["Y"] = 23.22, - ["CD"] = 0 - }, - [33] = - { - ["X"] = 24.19, - ["Y"] = 23.27, - ["CD"] = 0 - }, - [34] = - { - ["X"] = 24.28, - ["Y"] = 24.89, - ["CD"] = 0 - }, - [35] = - { - ["X"] = 24.47, - ["Y"] = 25.24, - ["CD"] = 0 - }, - [36] = - { - ["X"] = 24.46, - ["Y"] = 26.17, - ["CD"] = 0 - }, - [37] = - { - ["X"] = 24.98, - ["Y"] = 27.02, - ["CD"] = 0 - }, - [38] = - { - ["X"] = 24.82, - ["Y"] = 27.95, - ["CD"] = 0 - }, - [39] = - { - ["X"] = 24.87, - ["Y"] = 29.34, - ["CD"] = 0 - }, - [40] = - { - ["X"] = 24.49, - ["Y"] = 30.19, - ["CD"] = 0 - }, - [41] = - { - ["X"] = 23.53, - ["Y"] = 30.88, - ["CD"] = 0 - }, - [42] = - { - ["X"] = 23.17, - ["Y"] = 31.72, - ["CD"] = 0 - }, - [43] = - { - ["X"] = 22.88, - ["Y"] = 32.62, - ["CD"] = 0 - }, - [44] = - { - ["X"] = 21.65, - ["Y"] = 33.2, - ["CD"] = 0 - }, - [45] = - { - ["X"] = 19.95, - ["Y"] = 33.28, - ["CD"] = 0 - }, - [46] = - { - ["X"] = 21.16, - ["Y"] = 34.77, - ["CD"] = 0 - }, - [47] = - { - ["X"] = 22.35, - ["Y"] = 34.03, - ["CD"] = 0 - }, - [48] = - { - ["X"] = 31.87, - ["Y"] = 52.38, - ["CD"] = 0 - }, - [49] = - { - ["X"] = 30.31, - ["Y"] = 53, - ["CD"] = 0 - }, - [50] = - { - ["X"] = 28.27, - ["Y"] = 53.65, - ["CD"] = 0 - }, - [51] = - { - ["X"] = 27.54, - ["Y"] = 53.51, - ["CD"] = 0 - }, - [52] = - { - ["X"] = 27.6, - ["Y"] = 52.81, - ["CD"] = 0 - }, - [53] = - { - ["X"] = 26.91, - ["Y"] = 53.27, - ["CD"] = 0 - }, - [54] = - { - ["X"] = 25.45, - ["Y"] = 54.29, - ["CD"] = 0 - }, - [55] = - { - ["X"] = 25.36, - ["Y"] = 53.45, - ["CD"] = 0 - }, - [56] = - { - ["X"] = 22.29, - ["Y"] = 54.37, - ["CD"] = 0 - }, - [57] = - { - ["X"] = 23.11, - ["Y"] = 55.13, - ["CD"] = 0 - }, - [58] = - { - ["X"] = 24.34, - ["Y"] = 55.09, - ["CD"] = 0 - }, - [59] = - { - ["X"] = 24.03, - ["Y"] = 55.88, - ["CD"] = 0 - }, - [60] = - { - ["X"] = 24.95, - ["Y"] = 59.85, - ["CD"] = 0 - }, - [61] = - { - ["X"] = 24.84, - ["Y"] = 61.41, - ["CD"] = 0 - }, - [62] = - { - ["X"] = 34.59, - ["Y"] = 69.79, - ["CD"] = 0 - }, - [63] = - { - ["X"] = 33.59, - ["Y"] = 68.41, - ["CD"] = 0 - }, - [64] = - { - ["X"] = 31.96, - ["Y"] = 69.06, - ["CD"] = 0 - }, - [65] = - { - ["X"] = 29.87, - ["Y"] = 65.93, - ["CD"] = 0 - }, - [66] = - { - ["X"] = 30.95, - ["Y"] = 64.82, - ["CD"] = 0 - }, - [67] = - { - ["X"] = 32.43, - ["Y"] = 62.85, - ["CD"] = 0 - }, - [68] = - { - ["X"] = 32.7, - ["Y"] = 61.83, - ["CD"] = 0 - }, - [69] = - { - ["X"] = 33.05, - ["Y"] = 57.88, - ["CD"] = 0 - }, - [70] = - { - ["X"] = 32.43, - ["Y"] = 56.41, - ["CD"] = 0 - }, - [71] = - { - ["X"] = 33.85, - ["Y"] = 54.08, - ["CD"] = 0 - }, - [72] = - { - ["X"] = 32.68, - ["Y"] = 51.4, - ["CD"] = 0 - }, - [73] = - { - ["X"] = 33.07, - ["Y"] = 48.65, - ["CD"] = 0 - }, - [74] = - { - ["X"] = 34.22, - ["Y"] = 47.52, - ["CD"] = 0 - }, - [75] = - { - ["X"] = 35.38, - ["Y"] = 49.24, - ["CD"] = 0 - }, - [76] = - { - ["X"] = 36.3, - ["Y"] = 49.81, - ["CD"] = 0 - }, - [77] = - { - ["X"] = 37.23, - ["Y"] = 53.49, - ["CD"] = 0 - }, - [78] = - { - ["X"] = 37.55, - ["Y"] = 54.77, - ["CD"] = 0 - }, - [79] = - { - ["X"] = 37.48, - ["Y"] = 55.75, - ["CD"] = 0 - }, - [80] = - { - ["X"] = 39.14, - ["Y"] = 59.76, - ["CD"] = 0 - }, - [81] = - { - ["X"] = 39.01, - ["Y"] = 58.93, - ["CD"] = 0 - }, - [82] = - { - ["X"] = 38.69, - ["Y"] = 58.31, - ["CD"] = 0 - }, - [83] = - { - ["X"] = 38.55, - ["Y"] = 57.23, - ["CD"] = 0 - }, - [84] = - { - ["X"] = 36.59, - ["Y"] = 56.72, - ["CD"] = 0 - }, - [85] = - { - ["X"] = 34.3, - ["Y"] = 55.25, - ["CD"] = 0 - }, - [86] = - { - ["X"] = 26.1, - ["Y"] = 14.77, - ["CD"] = 0 - }, - [87] = - { - ["X"] = 45.95, - ["Y"] = 29.55, - ["CD"] = 0 - }, - [88] = - { - ["X"] = 29.47, - ["Y"] = 31.25, - ["CD"] = 0 - }, - [89] = - { - ["X"] = 28.15, - ["Y"] = 37.03, - ["CD"] = 0 - }, - [90] = - { - ["X"] = 26.89, - ["Y"] = 35.94, - ["CD"] = 0 - }, - [91] = - { - ["X"] = 26.1, - ["Y"] = 38.55, - ["CD"] = 0 - }, - [92] = - { - ["X"] = 24.92, - ["Y"] = 42.79, - ["CD"] = 0 - }, - [93] = - { - ["X"] = 24.22, - ["Y"] = 45.41, - ["CD"] = 0 - }, - [94] = - { - ["X"] = 23.88, - ["Y"] = 48.95, - ["CD"] = 0 - }, - [95] = - { - ["X"] = 25.79, - ["Y"] = 49.81, - ["CD"] = 0 - }, - [96] = - { - ["X"] = 26.82, - ["Y"] = 46.94, - ["CD"] = 0 - }, - [97] = - { - ["X"] = 31.6, - ["Y"] = 49.24, - ["CD"] = 0 - }, - [98] = - { - ["X"] = 33.02, - ["Y"] = 46.44, - ["CD"] = 0 - }, - [99] = - { - ["X"] = 28.44, - ["Y"] = 43.1, - ["CD"] = 0 - }, - [100] = - { - ["X"] = 23.55, - ["Y"] = 48.35, - ["CD"] = 0 - }, - [101] = - { - ["X"] = 20.43, - ["Y"] = 52.82, - ["CD"] = 0 - }, - [102] = - { - ["X"] = 25.81, - ["Y"] = 52.62, - ["CD"] = 0 - }, - [103] = - { - ["X"] = 26.13, - ["Y"] = 55.42, - ["CD"] = 0 - }, - [104] = - { - ["X"] = 26.22, - ["Y"] = 53.16, - ["CD"] = 0 - }, - [105] = - { - ["X"] = 24.67, - ["Y"] = 51.58, - ["CD"] = 0 - }, - [106] = - { - ["X"] = 24.61, - ["Y"] = 47.73, - ["CD"] = 0 - }, - [107] = - { - ["X"] = 26.03, - ["Y"] = 47.65, - ["CD"] = 0 - }, - [108] = - { - ["X"] = 27.94, - ["Y"] = 47.19, - ["CD"] = 0 - }, - [109] = - { - ["X"] = 27.39, - ["Y"] = 44.65, - ["CD"] = 0 - }, - [110] = - { - ["X"] = 32.73, - ["Y"] = 43.41, - ["CD"] = 0 - }, - [111] = - { - ["X"] = 31.98, - ["Y"] = 47.64, - ["CD"] = 0 - }, - [112] = - { - ["X"] = 32.51, - ["Y"] = 38.82, - ["CD"] = 0 - }, - [113] = - { - ["X"] = 31.03, - ["Y"] = 38.81, - ["CD"] = 0 - }, - [114] = - { - ["X"] = 30.59, - ["Y"] = 39.67, - ["CD"] = 0 - }, - [115] = - { - ["X"] = 30.03, - ["Y"] = 40.09, - ["CD"] = 0 - }, - [116] = - { - ["X"] = 29.63, - ["Y"] = 41.35, - ["CD"] = 0 - }, - [117] = - { - ["X"] = 28.81, - ["Y"] = 43.12, - ["CD"] = 0 - }, - [118] = - { - ["X"] = 30.08, - ["Y"] = 45.64, - ["CD"] = 0 - }, - [119] = - { - ["X"] = 30.28, - ["Y"] = 48.27, - ["CD"] = 0 - }, - [120] = - { - ["X"] = 29.93, - ["Y"] = 47.4, - ["CD"] = 0 - }, - [121] = - { - ["X"] = 28.94, - ["Y"] = 47.14, - ["CD"] = 0 - }, - [122] = - { - ["X"] = 27.59, - ["Y"] = 45.29, - ["CD"] = 0 - }, - [123] = - { - ["X"] = 30.01, - ["Y"] = 44.34, - ["CD"] = 0 - }, - [124] = - { - ["X"] = 32.22, - ["Y"] = 39.24, - ["CD"] = 0 - }, - [125] = - { - ["X"] = 31.38, - ["Y"] = 38.07, - ["CD"] = 0 - }, - [126] = - { - ["X"] = 32.23, - ["Y"] = 36.98, - ["CD"] = 0 - }, - [127] = - { - ["X"] = 31.55, - ["Y"] = 31.57, - ["CD"] = 0 - }, - [128] = - { - ["X"] = 30.92, - ["Y"] = 34.67, - ["CD"] = 0 - }, - [129] = - { - ["X"] = 47.19, - ["Y"] = 39.83, - ["CD"] = 0 - }, - [130] = - { - ["X"] = 50.82, - ["Y"] = 40.62, - ["CD"] = 0 - }, - [131] = - { - ["X"] = 48.38, - ["Y"] = 34.1, - ["CD"] = 0 - }, - [132] = - { - ["X"] = 45.59, - ["Y"] = 31.09, - ["CD"] = 0 - }, - [133] = - { - ["X"] = 43.61, - ["Y"] = 35.49, - ["CD"] = 0 - }, - [134] = - { - ["X"] = 35.64, - ["Y"] = 41.64, - ["CD"] = 0 - }, - [135] = - { - ["X"] = 34.44, - ["Y"] = 43, - ["CD"] = 0 - }, - [136] = - { - ["X"] = 47.66, - ["Y"] = 49.41, - ["CD"] = 0 - }, - [137] = - { - ["X"] = 48.82, - ["Y"] = 47.86, - ["CD"] = 0 - }, - [138] = - { - ["X"] = 44.12, - ["Y"] = 47.05, - ["CD"] = 0 - }, - [139] = - { - ["X"] = 43.09, - ["Y"] = 48.75, - ["CD"] = 0 - }, - [140] = - { - ["X"] = 40.23, - ["Y"] = 47.62, - ["CD"] = 0 - }, - [141] = - { - ["X"] = 37.28, - ["Y"] = 50.18, - ["CD"] = 0 - }, - [142] = - { - ["X"] = 36.33, - ["Y"] = 56.29, - ["CD"] = 0 - }, - [143] = - { - ["X"] = 38.4, - ["Y"] = 56.36, - ["CD"] = 0 - }, - [144] = - { - ["X"] = 40.05, - ["Y"] = 56.12, - ["CD"] = 0 - }, - [145] = - { - ["X"] = 39.51, - ["Y"] = 57.12, - ["CD"] = 0 - }, - [146] = - { - ["X"] = 39.43, - ["Y"] = 54.75, - ["CD"] = 0 - }, - [147] = - { - ["X"] = 38.8, - ["Y"] = 51.65, - ["CD"] = 0 - }, - [148] = - { - ["X"] = 38.74, - ["Y"] = 53.13, - ["CD"] = 0 - }, - [149] = - { - ["X"] = 38.11, - ["Y"] = 53.06, - ["CD"] = 0 - }, - [150] = - { - ["X"] = 36.71, - ["Y"] = 53.46, - ["CD"] = 0 - }, - [151] = - { - ["X"] = 36.17, - ["Y"] = 53.81, - ["CD"] = 0 - }, - [152] = - { - ["X"] = 34.25, - ["Y"] = 55.15, - ["CD"] = 0 - }, - [153] = - { - ["X"] = 35.35, - ["Y"] = 54.5, - ["CD"] = 0 - }, - [154] = - { - ["X"] = 35.27, - ["Y"] = 52.65, - ["CD"] = 0 - }, - [155] = - { - ["X"] = 32.47, - ["Y"] = 45.01, - ["CD"] = 0 - }, - [156] = - { - ["X"] = 34.72, - ["Y"] = 47.72, - ["CD"] = 0 - }, - [157] = - { - ["X"] = 36.55, - ["Y"] = 51.57, - ["CD"] = 0 - }, - [158] = - { - ["X"] = 70.42, - ["Y"] = 64.46, - ["CD"] = 0 - }, - [159] = - { - ["X"] = 64.84, - ["Y"] = 55.38, - ["CD"] = 0 - }, - [160] = - { - ["X"] = 44.86, - ["Y"] = 48.82, - ["CD"] = 0 - }, - [161] = - { - ["X"] = 29.45, - ["Y"] = 77.91, - ["CD"] = 0 - }, - [162] = - { - ["X"] = 29.8, - ["Y"] = 70.65, - ["CD"] = 0 - }, - [163] = - { - ["X"] = 44.01, - ["Y"] = 41.2, - ["CD"] = 0 - }, - [164] = - { - ["X"] = 41.54, - ["Y"] = 40.12, - ["CD"] = 0 - }, - [165] = - { - ["X"] = 20.2, - ["Y"] = 53.96, - ["CD"] = 0 - }, - [166] = - { - ["X"] = 31.44, - ["Y"] = 29.22, - ["CD"] = 0 - }, - [167] = - { - ["X"] = 15.67, - ["Y"] = 37.13, - ["CD"] = 0 -} +aura_env.herbs = { + [1] = { + ["X"] = 67.25, + ["Y"] = 73.74, + ["CD"] = 0, + }, + [2] = { + ["X"] = 68.53, + ["Y"] = 73.25, + ["CD"] = 0, + }, + [3] = { + ["X"] = 69.34, + ["Y"] = 73.84, + ["CD"] = 0, + }, + [4] = { + ["X"] = 62.86, + ["Y"] = 51.94, + ["CD"] = 0, + }, + [5] = { + ["X"] = 63.66, + ["Y"] = 50.43, + ["CD"] = 0, + }, + [6] = { + ["X"] = 65.41, + ["Y"] = 50.69, + ["CD"] = 0, + }, + [7] = { + ["X"] = 64.95, + ["Y"] = 51.87, + ["CD"] = 0, + }, + [8] = { + ["X"] = 64.6, + ["Y"] = 54.88, + ["CD"] = 0, + }, + [9] = { + ["X"] = 52.44, + ["Y"] = 43.72, + ["CD"] = 0, + }, + [10] = { + ["X"] = 51.89, + ["Y"] = 42.38, + ["CD"] = 0, + }, + [11] = { + ["X"] = 50.37, + ["Y"] = 42.54, + ["CD"] = 0, + }, + [12] = { + ["X"] = 49.81, + ["Y"] = 41.96, + ["CD"] = 0, + }, + [13] = { + ["X"] = 49.12, + ["Y"] = 40.6, + ["CD"] = 0, + }, + [14] = { + ["X"] = 48.34, + ["Y"] = 39.21, + ["CD"] = 0, + }, + [15] = { + ["X"] = 48.02, + ["Y"] = 36.6, + ["CD"] = 0, + }, + [16] = { + ["X"] = 46.86, + ["Y"] = 36.72, + ["CD"] = 0, + }, + [17] = { + ["X"] = 46.75, + ["Y"] = 34.53, + ["CD"] = 0, + }, + [18] = { + ["X"] = 25.94, + ["Y"] = 28.99, + ["CD"] = 0, + }, + [19] = { + ["X"] = 29.48, + ["Y"] = 25.3, + ["CD"] = 0, + }, + [20] = { + ["X"] = 28.4, + ["Y"] = 25.56, + ["CD"] = 0, + }, + [21] = { + ["X"] = 28.51, + ["Y"] = 23.82, + ["CD"] = 0, + }, + [22] = { + ["X"] = 29.61, + ["Y"] = 22.79, + ["CD"] = 0, + }, + [23] = { + ["X"] = 29.75, + ["Y"] = 21.84, + ["CD"] = 0, + }, + [24] = { + ["X"] = 26.43, + ["Y"] = 10.9, + ["CD"] = 0, + }, + [25] = { + ["X"] = 25.97, + ["Y"] = 12.48, + ["CD"] = 0, + }, + [26] = { + ["X"] = 25.9, + ["Y"] = 15.81, + ["CD"] = 0, + }, + [27] = { + ["X"] = 25.73, + ["Y"] = 16.64, + ["CD"] = 0, + }, + [28] = { + ["X"] = 25.45, + ["Y"] = 17.29, + ["CD"] = 0, + }, + [29] = { + ["X"] = 25.4, + ["Y"] = 18.4, + ["CD"] = 0, + }, + [30] = { + ["X"] = 25.26, + ["Y"] = 19.79, + ["CD"] = 0, + }, + [31] = { + ["X"] = 26.03, + ["Y"] = 24.44, + ["CD"] = 0, + }, + [32] = { + ["X"] = 26.04, + ["Y"] = 23.22, + ["CD"] = 0, + }, + [33] = { + ["X"] = 24.19, + ["Y"] = 23.27, + ["CD"] = 0, + }, + [34] = { + ["X"] = 24.28, + ["Y"] = 24.89, + ["CD"] = 0, + }, + [35] = { + ["X"] = 24.47, + ["Y"] = 25.24, + ["CD"] = 0, + }, + [36] = { + ["X"] = 24.46, + ["Y"] = 26.17, + ["CD"] = 0, + }, + [37] = { + ["X"] = 24.98, + ["Y"] = 27.02, + ["CD"] = 0, + }, + [38] = { + ["X"] = 24.82, + ["Y"] = 27.95, + ["CD"] = 0, + }, + [39] = { + ["X"] = 24.87, + ["Y"] = 29.34, + ["CD"] = 0, + }, + [40] = { + ["X"] = 24.49, + ["Y"] = 30.19, + ["CD"] = 0, + }, + [41] = { + ["X"] = 23.53, + ["Y"] = 30.88, + ["CD"] = 0, + }, + [42] = { + ["X"] = 23.17, + ["Y"] = 31.72, + ["CD"] = 0, + }, + [43] = { + ["X"] = 22.88, + ["Y"] = 32.62, + ["CD"] = 0, + }, + [44] = { + ["X"] = 21.65, + ["Y"] = 33.2, + ["CD"] = 0, + }, + [45] = { + ["X"] = 19.95, + ["Y"] = 33.28, + ["CD"] = 0, + }, + [46] = { + ["X"] = 21.16, + ["Y"] = 34.77, + ["CD"] = 0, + }, + [47] = { + ["X"] = 22.35, + ["Y"] = 34.03, + ["CD"] = 0, + }, + [48] = { + ["X"] = 31.87, + ["Y"] = 52.38, + ["CD"] = 0, + }, + [49] = { + ["X"] = 30.31, + ["Y"] = 53, + ["CD"] = 0, + }, + [50] = { + ["X"] = 28.27, + ["Y"] = 53.65, + ["CD"] = 0, + }, + [51] = { + ["X"] = 27.54, + ["Y"] = 53.51, + ["CD"] = 0, + }, + [52] = { + ["X"] = 27.6, + ["Y"] = 52.81, + ["CD"] = 0, + }, + [53] = { + ["X"] = 26.91, + ["Y"] = 53.27, + ["CD"] = 0, + }, + [54] = { + ["X"] = 25.45, + ["Y"] = 54.29, + ["CD"] = 0, + }, + [55] = { + ["X"] = 25.36, + ["Y"] = 53.45, + ["CD"] = 0, + }, + [56] = { + ["X"] = 22.29, + ["Y"] = 54.37, + ["CD"] = 0, + }, + [57] = { + ["X"] = 23.11, + ["Y"] = 55.13, + ["CD"] = 0, + }, + [58] = { + ["X"] = 24.34, + ["Y"] = 55.09, + ["CD"] = 0, + }, + [59] = { + ["X"] = 24.03, + ["Y"] = 55.88, + ["CD"] = 0, + }, + [60] = { + ["X"] = 24.95, + ["Y"] = 59.85, + ["CD"] = 0, + }, + [61] = { + ["X"] = 24.84, + ["Y"] = 61.41, + ["CD"] = 0, + }, + [62] = { + ["X"] = 34.59, + ["Y"] = 69.79, + ["CD"] = 0, + }, + [63] = { + ["X"] = 33.59, + ["Y"] = 68.41, + ["CD"] = 0, + }, + [64] = { + ["X"] = 31.96, + ["Y"] = 69.06, + ["CD"] = 0, + }, + [65] = { + ["X"] = 29.87, + ["Y"] = 65.93, + ["CD"] = 0, + }, + [66] = { + ["X"] = 30.95, + ["Y"] = 64.82, + ["CD"] = 0, + }, + [67] = { + ["X"] = 32.43, + ["Y"] = 62.85, + ["CD"] = 0, + }, + [68] = { + ["X"] = 32.7, + ["Y"] = 61.83, + ["CD"] = 0, + }, + [69] = { + ["X"] = 33.05, + ["Y"] = 57.88, + ["CD"] = 0, + }, + [70] = { + ["X"] = 32.43, + ["Y"] = 56.41, + ["CD"] = 0, + }, + [71] = { + ["X"] = 33.85, + ["Y"] = 54.08, + ["CD"] = 0, + }, + [72] = { + ["X"] = 32.68, + ["Y"] = 51.4, + ["CD"] = 0, + }, + [73] = { + ["X"] = 33.07, + ["Y"] = 48.65, + ["CD"] = 0, + }, + [74] = { + ["X"] = 34.22, + ["Y"] = 47.52, + ["CD"] = 0, + }, + [75] = { + ["X"] = 35.38, + ["Y"] = 49.24, + ["CD"] = 0, + }, + [76] = { + ["X"] = 36.3, + ["Y"] = 49.81, + ["CD"] = 0, + }, + [77] = { + ["X"] = 37.23, + ["Y"] = 53.49, + ["CD"] = 0, + }, + [78] = { + ["X"] = 37.55, + ["Y"] = 54.77, + ["CD"] = 0, + }, + [79] = { + ["X"] = 37.48, + ["Y"] = 55.75, + ["CD"] = 0, + }, + [80] = { + ["X"] = 39.14, + ["Y"] = 59.76, + ["CD"] = 0, + }, + [81] = { + ["X"] = 39.01, + ["Y"] = 58.93, + ["CD"] = 0, + }, + [82] = { + ["X"] = 38.69, + ["Y"] = 58.31, + ["CD"] = 0, + }, + [83] = { + ["X"] = 38.55, + ["Y"] = 57.23, + ["CD"] = 0, + }, + [84] = { + ["X"] = 36.59, + ["Y"] = 56.72, + ["CD"] = 0, + }, + [85] = { + ["X"] = 34.3, + ["Y"] = 55.25, + ["CD"] = 0, + }, + [86] = { + ["X"] = 26.1, + ["Y"] = 14.77, + ["CD"] = 0, + }, + [87] = { + ["X"] = 45.95, + ["Y"] = 29.55, + ["CD"] = 0, + }, + [88] = { + ["X"] = 29.47, + ["Y"] = 31.25, + ["CD"] = 0, + }, + [89] = { + ["X"] = 28.15, + ["Y"] = 37.03, + ["CD"] = 0, + }, + [90] = { + ["X"] = 26.89, + ["Y"] = 35.94, + ["CD"] = 0, + }, + [91] = { + ["X"] = 26.1, + ["Y"] = 38.55, + ["CD"] = 0, + }, + [92] = { + ["X"] = 24.92, + ["Y"] = 42.79, + ["CD"] = 0, + }, + [93] = { + ["X"] = 24.22, + ["Y"] = 45.41, + ["CD"] = 0, + }, + [94] = { + ["X"] = 23.88, + ["Y"] = 48.95, + ["CD"] = 0, + }, + [95] = { + ["X"] = 25.79, + ["Y"] = 49.81, + ["CD"] = 0, + }, + [96] = { + ["X"] = 26.82, + ["Y"] = 46.94, + ["CD"] = 0, + }, + [97] = { + ["X"] = 31.6, + ["Y"] = 49.24, + ["CD"] = 0, + }, + [98] = { + ["X"] = 33.02, + ["Y"] = 46.44, + ["CD"] = 0, + }, + [99] = { + ["X"] = 28.44, + ["Y"] = 43.1, + ["CD"] = 0, + }, + [100] = { + ["X"] = 23.55, + ["Y"] = 48.35, + ["CD"] = 0, + }, + [101] = { + ["X"] = 20.43, + ["Y"] = 52.82, + ["CD"] = 0, + }, + [102] = { + ["X"] = 25.81, + ["Y"] = 52.62, + ["CD"] = 0, + }, + [103] = { + ["X"] = 26.13, + ["Y"] = 55.42, + ["CD"] = 0, + }, + [104] = { + ["X"] = 26.22, + ["Y"] = 53.16, + ["CD"] = 0, + }, + [105] = { + ["X"] = 24.67, + ["Y"] = 51.58, + ["CD"] = 0, + }, + [106] = { + ["X"] = 24.61, + ["Y"] = 47.73, + ["CD"] = 0, + }, + [107] = { + ["X"] = 26.03, + ["Y"] = 47.65, + ["CD"] = 0, + }, + [108] = { + ["X"] = 27.94, + ["Y"] = 47.19, + ["CD"] = 0, + }, + [109] = { + ["X"] = 27.39, + ["Y"] = 44.65, + ["CD"] = 0, + }, + [110] = { + ["X"] = 32.73, + ["Y"] = 43.41, + ["CD"] = 0, + }, + [111] = { + ["X"] = 31.98, + ["Y"] = 47.64, + ["CD"] = 0, + }, + [112] = { + ["X"] = 32.51, + ["Y"] = 38.82, + ["CD"] = 0, + }, + [113] = { + ["X"] = 31.03, + ["Y"] = 38.81, + ["CD"] = 0, + }, + [114] = { + ["X"] = 30.59, + ["Y"] = 39.67, + ["CD"] = 0, + }, + [115] = { + ["X"] = 30.03, + ["Y"] = 40.09, + ["CD"] = 0, + }, + [116] = { + ["X"] = 29.63, + ["Y"] = 41.35, + ["CD"] = 0, + }, + [117] = { + ["X"] = 28.81, + ["Y"] = 43.12, + ["CD"] = 0, + }, + [118] = { + ["X"] = 30.08, + ["Y"] = 45.64, + ["CD"] = 0, + }, + [119] = { + ["X"] = 30.28, + ["Y"] = 48.27, + ["CD"] = 0, + }, + [120] = { + ["X"] = 29.93, + ["Y"] = 47.4, + ["CD"] = 0, + }, + [121] = { + ["X"] = 28.94, + ["Y"] = 47.14, + ["CD"] = 0, + }, + [122] = { + ["X"] = 27.59, + ["Y"] = 45.29, + ["CD"] = 0, + }, + [123] = { + ["X"] = 30.01, + ["Y"] = 44.34, + ["CD"] = 0, + }, + [124] = { + ["X"] = 32.22, + ["Y"] = 39.24, + ["CD"] = 0, + }, + [125] = { + ["X"] = 31.38, + ["Y"] = 38.07, + ["CD"] = 0, + }, + [126] = { + ["X"] = 32.23, + ["Y"] = 36.98, + ["CD"] = 0, + }, + [127] = { + ["X"] = 31.55, + ["Y"] = 31.57, + ["CD"] = 0, + }, + [128] = { + ["X"] = 30.92, + ["Y"] = 34.67, + ["CD"] = 0, + }, + [129] = { + ["X"] = 47.19, + ["Y"] = 39.83, + ["CD"] = 0, + }, + [130] = { + ["X"] = 50.82, + ["Y"] = 40.62, + ["CD"] = 0, + }, + [131] = { + ["X"] = 48.38, + ["Y"] = 34.1, + ["CD"] = 0, + }, + [132] = { + ["X"] = 45.59, + ["Y"] = 31.09, + ["CD"] = 0, + }, + [133] = { + ["X"] = 43.61, + ["Y"] = 35.49, + ["CD"] = 0, + }, + [134] = { + ["X"] = 35.64, + ["Y"] = 41.64, + ["CD"] = 0, + }, + [135] = { + ["X"] = 34.44, + ["Y"] = 43, + ["CD"] = 0, + }, + [136] = { + ["X"] = 47.66, + ["Y"] = 49.41, + ["CD"] = 0, + }, + [137] = { + ["X"] = 48.82, + ["Y"] = 47.86, + ["CD"] = 0, + }, + [138] = { + ["X"] = 44.12, + ["Y"] = 47.05, + ["CD"] = 0, + }, + [139] = { + ["X"] = 43.09, + ["Y"] = 48.75, + ["CD"] = 0, + }, + [140] = { + ["X"] = 40.23, + ["Y"] = 47.62, + ["CD"] = 0, + }, + [141] = { + ["X"] = 37.28, + ["Y"] = 50.18, + ["CD"] = 0, + }, + [142] = { + ["X"] = 36.33, + ["Y"] = 56.29, + ["CD"] = 0, + }, + [143] = { + ["X"] = 38.4, + ["Y"] = 56.36, + ["CD"] = 0, + }, + [144] = { + ["X"] = 40.05, + ["Y"] = 56.12, + ["CD"] = 0, + }, + [145] = { + ["X"] = 39.51, + ["Y"] = 57.12, + ["CD"] = 0, + }, + [146] = { + ["X"] = 39.43, + ["Y"] = 54.75, + ["CD"] = 0, + }, + [147] = { + ["X"] = 38.8, + ["Y"] = 51.65, + ["CD"] = 0, + }, + [148] = { + ["X"] = 38.74, + ["Y"] = 53.13, + ["CD"] = 0, + }, + [149] = { + ["X"] = 38.11, + ["Y"] = 53.06, + ["CD"] = 0, + }, + [150] = { + ["X"] = 36.71, + ["Y"] = 53.46, + ["CD"] = 0, + }, + [151] = { + ["X"] = 36.17, + ["Y"] = 53.81, + ["CD"] = 0, + }, + [152] = { + ["X"] = 34.25, + ["Y"] = 55.15, + ["CD"] = 0, + }, + [153] = { + ["X"] = 35.35, + ["Y"] = 54.5, + ["CD"] = 0, + }, + [154] = { + ["X"] = 35.27, + ["Y"] = 52.65, + ["CD"] = 0, + }, + [155] = { + ["X"] = 32.47, + ["Y"] = 45.01, + ["CD"] = 0, + }, + [156] = { + ["X"] = 34.72, + ["Y"] = 47.72, + ["CD"] = 0, + }, + [157] = { + ["X"] = 36.55, + ["Y"] = 51.57, + ["CD"] = 0, + }, + [158] = { + ["X"] = 70.42, + ["Y"] = 64.46, + ["CD"] = 0, + }, + [159] = { + ["X"] = 64.84, + ["Y"] = 55.38, + ["CD"] = 0, + }, + [160] = { + ["X"] = 44.86, + ["Y"] = 48.82, + ["CD"] = 0, + }, + [161] = { + ["X"] = 29.45, + ["Y"] = 77.91, + ["CD"] = 0, + }, + [162] = { + ["X"] = 29.8, + ["Y"] = 70.65, + ["CD"] = 0, + }, + [163] = { + ["X"] = 44.01, + ["Y"] = 41.2, + ["CD"] = 0, + }, + [164] = { + ["X"] = 41.54, + ["Y"] = 40.12, + ["CD"] = 0, + }, + [165] = { + ["X"] = 20.2, + ["Y"] = 53.96, + ["CD"] = 0, + }, + [166] = { + ["X"] = 31.44, + ["Y"] = 29.22, + ["CD"] = 0, + }, + [167] = { + ["X"] = 15.67, + ["Y"] = 37.13, + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 50 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate.lua index aba6de9..31fa760 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate.lua @@ -1,513 +1,431 @@ -aura_env.herbs = -{ - [1] = - { - ["X"] = 29.47, - ["Y"] = 31.25, - ["CD"] = 0 - }, - [2] = - { - ["X"] = 28.15, - ["Y"] = 37.03, - ["CD"] = 0 - }, - [3] = - { - ["X"] = 26.89, - ["Y"] = 35.94, - ["CD"] = 0 - }, - [4] = - { - ["X"] = 26.1, - ["Y"] = 38.55, - ["CD"] = 0 - }, - [5] = - { - ["X"] = 24.92, - ["Y"] = 42.79, - ["CD"] = 0 - }, - [6] = - { - ["X"] = 24.22, - ["Y"] = 45.41, - ["CD"] = 0 - }, - [7] = - { - ["X"] = 23.88, - ["Y"] = 48.95, - ["CD"] = 0 - }, - [8] = - { - ["X"] = 25.79, - ["Y"] = 49.81, - ["CD"] = 0 - }, - [9] = - { - ["X"] = 26.82, - ["Y"] = 46.94, - ["CD"] = 0 - }, - [10] = - { - ["X"] = 31.6, - ["Y"] = 49.24, - ["CD"] = 0 - }, - [11] = - { - ["X"] = 33.02, - ["Y"] = 46.44, - ["CD"] = 0 - }, - [12] = - { - ["X"] = 28.44, - ["Y"] = 43.1, - ["CD"] = 0 - }, - [13] = - { - ["X"] = 23.55, - ["Y"] = 48.35, - ["CD"] = 0 - }, - [14] = - { - ["X"] = 20.43, - ["Y"] = 52.82, - ["CD"] = 0 - }, - [15] = - { - ["X"] = 25.81, - ["Y"] = 52.62, - ["CD"] = 0 - }, - [16] = - { - ["X"] = 26.13, - ["Y"] = 55.42, - ["CD"] = 0 - }, - [17] = - { - ["X"] = 26.22, - ["Y"] = 53.16, - ["CD"] = 0 - }, - [18] = - { - ["X"] = 24.67, - ["Y"] = 51.58, - ["CD"] = 0 - }, - [19] = - { - ["X"] = 24.61, - ["Y"] = 47.73, - ["CD"] = 0 - }, - [20] = - { - ["X"] = 26.03, - ["Y"] = 47.65, - ["CD"] = 0 - }, - [21] = - { - ["X"] = 27.94, - ["Y"] = 47.19, - ["CD"] = 0 - }, - [22] = - { - ["X"] = 27.39, - ["Y"] = 44.65, - ["CD"] = 0 - }, - [23] = - { - ["X"] = 32.73, - ["Y"] = 43.41, - ["CD"] = 0 - }, - [24] = - { - ["X"] = 31.98, - ["Y"] = 47.64, - ["CD"] = 0 - }, - [25] = - { - ["X"] = 32.51, - ["Y"] = 38.82, - ["CD"] = 0 - }, - [26] = - { - ["X"] = 31.03, - ["Y"] = 38.81, - ["CD"] = 0 - }, - [27] = - { - ["X"] = 30.59, - ["Y"] = 39.67, - ["CD"] = 0 - }, - [28] = - { - ["X"] = 30.03, - ["Y"] = 40.09, - ["CD"] = 0 - }, - [29] = - { - ["X"] = 29.63, - ["Y"] = 41.35, - ["CD"] = 0 - }, - [30] = - { - ["X"] = 28.81, - ["Y"] = 43.12, - ["CD"] = 0 - }, - [31] = - { - ["X"] = 30.08, - ["Y"] = 45.64, - ["CD"] = 0 - }, - [32] = - { - ["X"] = 30.28, - ["Y"] = 48.27, - ["CD"] = 0 - }, - [33] = - { - ["X"] = 29.93, - ["Y"] = 47.4, - ["CD"] = 0 - }, - [34] = - { - ["X"] = 28.94, - ["Y"] = 47.14, - ["CD"] = 0 - }, - [35] = - { - ["X"] = 27.59, - ["Y"] = 45.29, - ["CD"] = 0 - }, - [36] = - { - ["X"] = 30.01, - ["Y"] = 44.34, - ["CD"] = 0 - }, - [37] = - { - ["X"] = 32.22, - ["Y"] = 39.24, - ["CD"] = 0 - }, - [38] = - { - ["X"] = 31.38, - ["Y"] = 38.07, - ["CD"] = 0 - }, - [39] = - { - ["X"] = 32.23, - ["Y"] = 36.98, - ["CD"] = 0 - }, - [40] = - { - ["X"] = 31.55, - ["Y"] = 31.57, - ["CD"] = 0 - }, - [41] = - { - ["X"] = 30.92, - ["Y"] = 34.67, - ["CD"] = 0 - }, - [42] = - { - ["X"] = 47.19, - ["Y"] = 39.83, - ["CD"] = 0 - }, - [43] = - { - ["X"] = 50.82, - ["Y"] = 40.62, - ["CD"] = 0 - }, - [44] = - { - ["X"] = 48.38, - ["Y"] = 34.1, - ["CD"] = 0 - }, - [45] = - { - ["X"] = 45.59, - ["Y"] = 31.09, - ["CD"] = 0 - }, - [46] = - { - ["X"] = 43.61, - ["Y"] = 35.49, - ["CD"] = 0 - }, - [47] = - { - ["X"] = 35.64, - ["Y"] = 41.64, - ["CD"] = 0 - }, - [48] = - { - ["X"] = 34.44, - ["Y"] = 43, - ["CD"] = 0 - }, - [49] = - { - ["X"] = 47.66, - ["Y"] = 49.41, - ["CD"] = 0 - }, - [50] = - { - ["X"] = 48.82, - ["Y"] = 47.86, - ["CD"] = 0 - }, - [51] = - { - ["X"] = 44.12, - ["Y"] = 47.05, - ["CD"] = 0 - }, - [52] = - { - ["X"] = 43.09, - ["Y"] = 48.75, - ["CD"] = 0 - }, - [53] = - { - ["X"] = 40.23, - ["Y"] = 47.62, - ["CD"] = 0 - }, - [54] = - { - ["X"] = 37.28, - ["Y"] = 50.18, - ["CD"] = 0 - }, - [55] = - { - ["X"] = 36.33, - ["Y"] = 56.29, - ["CD"] = 0 - }, - [56] = - { - ["X"] = 38.4, - ["Y"] = 56.36, - ["CD"] = 0 - }, - [57] = - { - ["X"] = 40.05, - ["Y"] = 56.12, - ["CD"] = 0 - }, - [58] = - { - ["X"] = 39.51, - ["Y"] = 57.12, - ["CD"] = 0 - }, - [59] = - { - ["X"] = 39.43, - ["Y"] = 54.75, - ["CD"] = 0 - }, - [60] = - { - ["X"] = 38.8, - ["Y"] = 51.65, - ["CD"] = 0 - }, - [61] = - { - ["X"] = 38.74, - ["Y"] = 53.13, - ["CD"] = 0 - }, - [62] = - { - ["X"] = 38.11, - ["Y"] = 53.06, - ["CD"] = 0 - }, - [63] = - { - ["X"] = 36.71, - ["Y"] = 53.46, - ["CD"] = 0 - }, - [64] = - { - ["X"] = 36.17, - ["Y"] = 53.81, - ["CD"] = 0 - }, - [65] = - { - ["X"] = 34.25, - ["Y"] = 55.15, - ["CD"] = 0 - }, - [66] = - { - ["X"] = 35.35, - ["Y"] = 54.5, - ["CD"] = 0 - }, - [67] = - { - ["X"] = 35.27, - ["Y"] = 52.65, - ["CD"] = 0 - }, - [68] = - { - ["X"] = 32.47, - ["Y"] = 45.01, - ["CD"] = 0 - }, - [69] = - { - ["X"] = 34.72, - ["Y"] = 47.72, - ["CD"] = 0 - }, - [70] = - { - ["X"] = 36.55, - ["Y"] = 51.57, - ["CD"] = 0 - }, - [71] = - { - ["X"] = 70.42, - ["Y"] = 64.46, - ["CD"] = 0 - }, - [72] = - { - ["X"] = 64.84, - ["Y"] = 55.38, - ["CD"] = 0 - }, - [73] = - { - ["X"] = 44.86, - ["Y"] = 48.82, - ["CD"] = 0 - }, - [74] = - { - ["X"] = 29.45, - ["Y"] = 77.91, - ["CD"] = 0 - }, - [75] = - { - ["X"] = 29.8, - ["Y"] = 70.65, - ["CD"] = 0 - }, - [76] = - { - ["X"] = 44.01, - ["Y"] = 41.2, - ["CD"] = 0 - }, - [77] = - { - ["X"] = 41.54, - ["Y"] = 40.12, - ["CD"] = 0 - }, - [78] = - { - ["X"] = 20.2, - ["Y"] = 53.96, - ["CD"] = 0 - }, - [79] = - { - ["X"] = 31.44, - ["Y"] = 29.22, - ["CD"] = 0 - }, - [80] = - { - ["X"] = 15.67, - ["Y"] = 37.13, - ["CD"] = 0 -} +aura_env.herbs = { + [1] = { + ["X"] = 29.47, + ["Y"] = 31.25, + ["CD"] = 0, + }, + [2] = { + ["X"] = 28.15, + ["Y"] = 37.03, + ["CD"] = 0, + }, + [3] = { + ["X"] = 26.89, + ["Y"] = 35.94, + ["CD"] = 0, + }, + [4] = { + ["X"] = 26.1, + ["Y"] = 38.55, + ["CD"] = 0, + }, + [5] = { + ["X"] = 24.92, + ["Y"] = 42.79, + ["CD"] = 0, + }, + [6] = { + ["X"] = 24.22, + ["Y"] = 45.41, + ["CD"] = 0, + }, + [7] = { + ["X"] = 23.88, + ["Y"] = 48.95, + ["CD"] = 0, + }, + [8] = { + ["X"] = 25.79, + ["Y"] = 49.81, + ["CD"] = 0, + }, + [9] = { + ["X"] = 26.82, + ["Y"] = 46.94, + ["CD"] = 0, + }, + [10] = { + ["X"] = 31.6, + ["Y"] = 49.24, + ["CD"] = 0, + }, + [11] = { + ["X"] = 33.02, + ["Y"] = 46.44, + ["CD"] = 0, + }, + [12] = { + ["X"] = 28.44, + ["Y"] = 43.1, + ["CD"] = 0, + }, + [13] = { + ["X"] = 23.55, + ["Y"] = 48.35, + ["CD"] = 0, + }, + [14] = { + ["X"] = 20.43, + ["Y"] = 52.82, + ["CD"] = 0, + }, + [15] = { + ["X"] = 25.81, + ["Y"] = 52.62, + ["CD"] = 0, + }, + [16] = { + ["X"] = 26.13, + ["Y"] = 55.42, + ["CD"] = 0, + }, + [17] = { + ["X"] = 26.22, + ["Y"] = 53.16, + ["CD"] = 0, + }, + [18] = { + ["X"] = 24.67, + ["Y"] = 51.58, + ["CD"] = 0, + }, + [19] = { + ["X"] = 24.61, + ["Y"] = 47.73, + ["CD"] = 0, + }, + [20] = { + ["X"] = 26.03, + ["Y"] = 47.65, + ["CD"] = 0, + }, + [21] = { + ["X"] = 27.94, + ["Y"] = 47.19, + ["CD"] = 0, + }, + [22] = { + ["X"] = 27.39, + ["Y"] = 44.65, + ["CD"] = 0, + }, + [23] = { + ["X"] = 32.73, + ["Y"] = 43.41, + ["CD"] = 0, + }, + [24] = { + ["X"] = 31.98, + ["Y"] = 47.64, + ["CD"] = 0, + }, + [25] = { + ["X"] = 32.51, + ["Y"] = 38.82, + ["CD"] = 0, + }, + [26] = { + ["X"] = 31.03, + ["Y"] = 38.81, + ["CD"] = 0, + }, + [27] = { + ["X"] = 30.59, + ["Y"] = 39.67, + ["CD"] = 0, + }, + [28] = { + ["X"] = 30.03, + ["Y"] = 40.09, + ["CD"] = 0, + }, + [29] = { + ["X"] = 29.63, + ["Y"] = 41.35, + ["CD"] = 0, + }, + [30] = { + ["X"] = 28.81, + ["Y"] = 43.12, + ["CD"] = 0, + }, + [31] = { + ["X"] = 30.08, + ["Y"] = 45.64, + ["CD"] = 0, + }, + [32] = { + ["X"] = 30.28, + ["Y"] = 48.27, + ["CD"] = 0, + }, + [33] = { + ["X"] = 29.93, + ["Y"] = 47.4, + ["CD"] = 0, + }, + [34] = { + ["X"] = 28.94, + ["Y"] = 47.14, + ["CD"] = 0, + }, + [35] = { + ["X"] = 27.59, + ["Y"] = 45.29, + ["CD"] = 0, + }, + [36] = { + ["X"] = 30.01, + ["Y"] = 44.34, + ["CD"] = 0, + }, + [37] = { + ["X"] = 32.22, + ["Y"] = 39.24, + ["CD"] = 0, + }, + [38] = { + ["X"] = 31.38, + ["Y"] = 38.07, + ["CD"] = 0, + }, + [39] = { + ["X"] = 32.23, + ["Y"] = 36.98, + ["CD"] = 0, + }, + [40] = { + ["X"] = 31.55, + ["Y"] = 31.57, + ["CD"] = 0, + }, + [41] = { + ["X"] = 30.92, + ["Y"] = 34.67, + ["CD"] = 0, + }, + [42] = { + ["X"] = 47.19, + ["Y"] = 39.83, + ["CD"] = 0, + }, + [43] = { + ["X"] = 50.82, + ["Y"] = 40.62, + ["CD"] = 0, + }, + [44] = { + ["X"] = 48.38, + ["Y"] = 34.1, + ["CD"] = 0, + }, + [45] = { + ["X"] = 45.59, + ["Y"] = 31.09, + ["CD"] = 0, + }, + [46] = { + ["X"] = 43.61, + ["Y"] = 35.49, + ["CD"] = 0, + }, + [47] = { + ["X"] = 35.64, + ["Y"] = 41.64, + ["CD"] = 0, + }, + [48] = { + ["X"] = 34.44, + ["Y"] = 43, + ["CD"] = 0, + }, + [49] = { + ["X"] = 47.66, + ["Y"] = 49.41, + ["CD"] = 0, + }, + [50] = { + ["X"] = 48.82, + ["Y"] = 47.86, + ["CD"] = 0, + }, + [51] = { + ["X"] = 44.12, + ["Y"] = 47.05, + ["CD"] = 0, + }, + [52] = { + ["X"] = 43.09, + ["Y"] = 48.75, + ["CD"] = 0, + }, + [53] = { + ["X"] = 40.23, + ["Y"] = 47.62, + ["CD"] = 0, + }, + [54] = { + ["X"] = 37.28, + ["Y"] = 50.18, + ["CD"] = 0, + }, + [55] = { + ["X"] = 36.33, + ["Y"] = 56.29, + ["CD"] = 0, + }, + [56] = { + ["X"] = 38.4, + ["Y"] = 56.36, + ["CD"] = 0, + }, + [57] = { + ["X"] = 40.05, + ["Y"] = 56.12, + ["CD"] = 0, + }, + [58] = { + ["X"] = 39.51, + ["Y"] = 57.12, + ["CD"] = 0, + }, + [59] = { + ["X"] = 39.43, + ["Y"] = 54.75, + ["CD"] = 0, + }, + [60] = { + ["X"] = 38.8, + ["Y"] = 51.65, + ["CD"] = 0, + }, + [61] = { + ["X"] = 38.74, + ["Y"] = 53.13, + ["CD"] = 0, + }, + [62] = { + ["X"] = 38.11, + ["Y"] = 53.06, + ["CD"] = 0, + }, + [63] = { + ["X"] = 36.71, + ["Y"] = 53.46, + ["CD"] = 0, + }, + [64] = { + ["X"] = 36.17, + ["Y"] = 53.81, + ["CD"] = 0, + }, + [65] = { + ["X"] = 34.25, + ["Y"] = 55.15, + ["CD"] = 0, + }, + [66] = { + ["X"] = 35.35, + ["Y"] = 54.5, + ["CD"] = 0, + }, + [67] = { + ["X"] = 35.27, + ["Y"] = 52.65, + ["CD"] = 0, + }, + [68] = { + ["X"] = 32.47, + ["Y"] = 45.01, + ["CD"] = 0, + }, + [69] = { + ["X"] = 34.72, + ["Y"] = 47.72, + ["CD"] = 0, + }, + [70] = { + ["X"] = 36.55, + ["Y"] = 51.57, + ["CD"] = 0, + }, + [71] = { + ["X"] = 70.42, + ["Y"] = 64.46, + ["CD"] = 0, + }, + [72] = { + ["X"] = 64.84, + ["Y"] = 55.38, + ["CD"] = 0, + }, + [73] = { + ["X"] = 44.86, + ["Y"] = 48.82, + ["CD"] = 0, + }, + [74] = { + ["X"] = 29.45, + ["Y"] = 77.91, + ["CD"] = 0, + }, + [75] = { + ["X"] = 29.8, + ["Y"] = 70.65, + ["CD"] = 0, + }, + [76] = { + ["X"] = 44.01, + ["Y"] = 41.2, + ["CD"] = 0, + }, + [77] = { + ["X"] = 41.54, + ["Y"] = 40.12, + ["CD"] = 0, + }, + [78] = { + ["X"] = 20.2, + ["Y"] = 53.96, + ["CD"] = 0, + }, + [79] = { + ["X"] = 31.44, + ["Y"] = 29.22, + ["CD"] = 0, + }, + [80] = { + ["X"] = 15.67, + ["Y"] = 37.13, + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 50 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Deposit.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Deposit.lua index 1f085c7..43a021b 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Deposit.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Deposit.lua @@ -1,423 +1,356 @@ -aura_env.herbs = -{ - [1] = - { - ["X"] = 20.97, - ["Y"] = 15.47, - ["CD"] = 0 +aura_env.herbs = { + [1] = { + ["X"] = 20.97, + ["Y"] = 15.47, + ["CD"] = 0, }, - [2] = - { - ["X"] = 27.52, - ["Y"] = 9.17, - ["CD"] = 0 + [2] = { + ["X"] = 27.52, + ["Y"] = 9.17, + ["CD"] = 0, }, - [3] = - { - ["X"] = 25.93, - ["Y"] = 25.58, - ["CD"] = 0 + [3] = { + ["X"] = 25.93, + ["Y"] = 25.58, + ["CD"] = 0, }, - [4] = - { - ["X"] = 34.07, - ["Y"] = 50.83, - ["CD"] = 0 + [4] = { + ["X"] = 34.07, + ["Y"] = 50.83, + ["CD"] = 0, }, - [5] = - { - ["X"] = 37.23, - ["Y"] = 54.85, - ["CD"] = 0 + [5] = { + ["X"] = 37.23, + ["Y"] = 54.85, + ["CD"] = 0, }, - [6] = - { - ["X"] = 34.77, - ["Y"] = 58.4, - ["CD"] = 0 + [6] = { + ["X"] = 34.77, + ["Y"] = 58.4, + ["CD"] = 0, }, - [7] = - { - ["X"] = 39.56, - ["Y"] = 79.48, - ["CD"] = 0 + [7] = { + ["X"] = 39.56, + ["Y"] = 79.48, + ["CD"] = 0, }, - [8] = - { - ["X"] = 66.46, - ["Y"] = 57.51, - ["CD"] = 0 + [8] = { + ["X"] = 66.46, + ["Y"] = 57.51, + ["CD"] = 0, }, - [9] = - { - ["X"] = 66.74, - ["Y"] = 66.02, - ["CD"] = 0 + [9] = { + ["X"] = 66.74, + ["Y"] = 66.02, + ["CD"] = 0, }, - [10] = - { - ["X"] = 71.94, - ["Y"] = 68.81, - ["CD"] = 0 + [10] = { + ["X"] = 71.94, + ["Y"] = 68.81, + ["CD"] = 0, }, - [11] = - { - ["X"] = 69.51, - ["Y"] = 67.83, - ["CD"] = 0 + [11] = { + ["X"] = 69.51, + ["Y"] = 67.83, + ["CD"] = 0, }, - [12] = - { - ["X"] = 69.31, - ["Y"] = 50.72, - ["CD"] = 0 + [12] = { + ["X"] = 69.31, + ["Y"] = 50.72, + ["CD"] = 0, }, - [13] = - { - ["X"] = 63.31, - ["Y"] = 53.33, - ["CD"] = 0 + [13] = { + ["X"] = 63.31, + ["Y"] = 53.33, + ["CD"] = 0, }, - [14] = - { - ["X"] = 63.96, - ["Y"] = 50.46, - ["CD"] = 0 + [14] = { + ["X"] = 63.96, + ["Y"] = 50.46, + ["CD"] = 0, }, - [15] = - { - ["X"] = 65.37, - ["Y"] = 43.82, - ["CD"] = 0 + [15] = { + ["X"] = 65.37, + ["Y"] = 43.82, + ["CD"] = 0, }, - [16] = - { - ["X"] = 63.15, - ["Y"] = 35.17, - ["CD"] = 0 + [16] = { + ["X"] = 63.15, + ["Y"] = 35.17, + ["CD"] = 0, }, - [17] = - { - ["X"] = 60.59, - ["Y"] = 44.44, - ["CD"] = 0 + [17] = { + ["X"] = 60.59, + ["Y"] = 44.44, + ["CD"] = 0, }, - [18] = - { - ["X"] = 35.55, - ["Y"] = 61.86, - ["CD"] = 0 + [18] = { + ["X"] = 35.55, + ["Y"] = 61.86, + ["CD"] = 0, }, - [19] = - { - ["X"] = 40.1, - ["Y"] = 53.5, - ["CD"] = 0 + [19] = { + ["X"] = 40.1, + ["Y"] = 53.5, + ["CD"] = 0, }, - [20] = - { - ["X"] = 47.46, - ["Y"] = 47.36, - ["CD"] = 0 + [20] = { + ["X"] = 47.46, + ["Y"] = 47.36, + ["CD"] = 0, }, - [21] = - { - ["X"] = 49.48, - ["Y"] = 39.04, - ["CD"] = 0 + [21] = { + ["X"] = 49.48, + ["Y"] = 39.04, + ["CD"] = 0, }, - [22] = - { - ["X"] = 35.79, - ["Y"] = 42.74, - ["CD"] = 0 + [22] = { + ["X"] = 35.79, + ["Y"] = 42.74, + ["CD"] = 0, }, - [23] = - { - ["X"] = 33.35, - ["Y"] = 45.99, - ["CD"] = 0 + [23] = { + ["X"] = 33.35, + ["Y"] = 45.99, + ["CD"] = 0, }, - [24] = - { - ["X"] = 30.25, - ["Y"] = 43.1, - ["CD"] = 0 + [24] = { + ["X"] = 30.25, + ["Y"] = 43.1, + ["CD"] = 0, }, - [25] = - { - ["X"] = 28.76, - ["Y"] = 48.41, - ["CD"] = 0 + [25] = { + ["X"] = 28.76, + ["Y"] = 48.41, + ["CD"] = 0, }, - [26] = - { - ["X"] = 30.18, - ["Y"] = 65.31, - ["CD"] = 0 + [26] = { + ["X"] = 30.18, + ["Y"] = 65.31, + ["CD"] = 0, }, - [27] = - { - ["X"] = 32.64, - ["Y"] = 74.92, - ["CD"] = 0 + [27] = { + ["X"] = 32.64, + ["Y"] = 74.92, + ["CD"] = 0, }, - [28] = - { - ["X"] = 35.41, - ["Y"] = 80.33, - ["CD"] = 0 + [28] = { + ["X"] = 35.41, + ["Y"] = 80.33, + ["CD"] = 0, }, - [29] = - { - ["X"] = 32.08, - ["Y"] = 81.08, - ["CD"] = 0 + [29] = { + ["X"] = 32.08, + ["Y"] = 81.08, + ["CD"] = 0, }, - [30] = - { - ["X"] = 30.03, - ["Y"] = 82.65, - ["CD"] = 0 + [30] = { + ["X"] = 30.03, + ["Y"] = 82.65, + ["CD"] = 0, }, - [31] = - { - ["X"] = 27.52, - ["Y"] = 67.32, - ["CD"] = 0 + [31] = { + ["X"] = 27.52, + ["Y"] = 67.32, + ["CD"] = 0, }, - [32] = - { - ["X"] = 26.24, - ["Y"] = 69.06, - ["CD"] = 0 + [32] = { + ["X"] = 26.24, + ["Y"] = 69.06, + ["CD"] = 0, }, - [33] = - { - ["X"] = 24.97, - ["Y"] = 61.8, - ["CD"] = 0 + [33] = { + ["X"] = 24.97, + ["Y"] = 61.8, + ["CD"] = 0, }, - [34] = - { - ["X"] = 25.91, - ["Y"] = 58.23, - ["CD"] = 0 + [34] = { + ["X"] = 25.91, + ["Y"] = 58.23, + ["CD"] = 0, }, - [35] = - { - ["X"] = 34.69, - ["Y"] = 39.51, - ["CD"] = 0 + [35] = { + ["X"] = 34.69, + ["Y"] = 39.51, + ["CD"] = 0, }, - [36] = - { - ["X"] = 37.45, - ["Y"] = 38.69, - ["CD"] = 0 + [36] = { + ["X"] = 37.45, + ["Y"] = 38.69, + ["CD"] = 0, }, - [37] = - { - ["X"] = 45.96, - ["Y"] = 36.33, - ["CD"] = 0 + [37] = { + ["X"] = 45.96, + ["Y"] = 36.33, + ["CD"] = 0, }, - [38] = - { - ["X"] = 46.54, - ["Y"] = 33.81, - ["CD"] = 0 + [38] = { + ["X"] = 46.54, + ["Y"] = 33.81, + ["CD"] = 0, }, - [39] = - { - ["X"] = 37.6, - ["Y"] = 31.35, - ["CD"] = 0 + [39] = { + ["X"] = 37.6, + ["Y"] = 31.35, + ["CD"] = 0, }, - [40] = - { - ["X"] = 24.73, - ["Y"] = 54.01, - ["CD"] = 0 + [40] = { + ["X"] = 24.73, + ["Y"] = 54.01, + ["CD"] = 0, }, - [41] = - { - ["X"] = 21.68, - ["Y"] = 47.55, - ["CD"] = 0 + [41] = { + ["X"] = 21.68, + ["Y"] = 47.55, + ["CD"] = 0, }, - [42] = - { - ["X"] = 23.58, - ["Y"] = 50.81, - ["CD"] = 0 + [42] = { + ["X"] = 23.58, + ["Y"] = 50.81, + ["CD"] = 0, }, - [43] = - { - ["X"] = 25.01, - ["Y"] = 35.96, - ["CD"] = 0 + [43] = { + ["X"] = 25.01, + ["Y"] = 35.96, + ["CD"] = 0, }, - [44] = - { - ["X"] = 25.25, - ["Y"] = 37.61, - ["CD"] = 0 + [44] = { + ["X"] = 25.25, + ["Y"] = 37.61, + ["CD"] = 0, }, - [45] = - { - ["X"] = 41.53, - ["Y"] = 17.47, - ["CD"] = 0 + [45] = { + ["X"] = 41.53, + ["Y"] = 17.47, + ["CD"] = 0, }, - [46] = - { - ["X"] = 27.84, - ["Y"] = 15.94, - ["CD"] = 0 + [46] = { + ["X"] = 27.84, + ["Y"] = 15.94, + ["CD"] = 0, }, - [47] = - { - ["X"] = 44.1, - ["Y"] = 24.69, - ["CD"] = 0 + [47] = { + ["X"] = 44.1, + ["Y"] = 24.69, + ["CD"] = 0, }, - [48] = - { - ["X"] = 41.45, - ["Y"] = 24.26, - ["CD"] = 0 + [48] = { + ["X"] = 41.45, + ["Y"] = 24.26, + ["CD"] = 0, }, - [49] = - { - ["X"] = 40.28, - ["Y"] = 27.75, - ["CD"] = 0 + [49] = { + ["X"] = 40.28, + ["Y"] = 27.75, + ["CD"] = 0, }, - [50] = - { - ["X"] = 37.57, - ["Y"] = 27.05, - ["CD"] = 0 + [50] = { + ["X"] = 37.57, + ["Y"] = 27.05, + ["CD"] = 0, }, - [51] = - { - ["X"] = 33.71, - ["Y"] = 31.04, - ["CD"] = 0 + [51] = { + ["X"] = 33.71, + ["Y"] = 31.04, + ["CD"] = 0, }, - [52] = - { - ["X"] = 28.85, - ["Y"] = 29.61, - ["CD"] = 0 + [52] = { + ["X"] = 28.85, + ["Y"] = 29.61, + ["CD"] = 0, }, - [53] = - { - ["X"] = 27.2, - ["Y"] = 29.85, - ["CD"] = 0 + [53] = { + ["X"] = 27.2, + ["Y"] = 29.85, + ["CD"] = 0, }, - [54] = - { - ["X"] = 23.31, - ["Y"] = 34.44, - ["CD"] = 0 + [54] = { + ["X"] = 23.31, + ["Y"] = 34.44, + ["CD"] = 0, }, - [55] = - { - ["X"] = 15.86, - ["Y"] = 43.89, - ["CD"] = 0 + [55] = { + ["X"] = 15.86, + ["Y"] = 43.89, + ["CD"] = 0, }, - [56] = - { - ["X"] = 16.17, - ["Y"] = 39.56, - ["CD"] = 0 + [56] = { + ["X"] = 16.17, + ["Y"] = 39.56, + ["CD"] = 0, }, - [57] = - { - ["X"] = 16.88, - ["Y"] = 28.87, - ["CD"] = 0 + [57] = { + ["X"] = 16.88, + ["Y"] = 28.87, + ["CD"] = 0, }, - [58] = - { - ["X"] = 19.56, - ["Y"] = 18.08, - ["CD"] = 0 + [58] = { + ["X"] = 19.56, + ["Y"] = 18.08, + ["CD"] = 0, }, - [59] = - { - ["X"] = 19.99, - ["Y"] = 18.12, - ["CD"] = 0 + [59] = { + ["X"] = 19.99, + ["Y"] = 18.12, + ["CD"] = 0, }, - [60] = - { - ["X"] = 49.54, - ["Y"] = 43.54, - ["CD"] = 0 + [60] = { + ["X"] = 49.54, + ["Y"] = 43.54, + ["CD"] = 0, }, - [61] = - { - ["X"] = 55.47, - ["Y"] = 40.72, - ["CD"] = 0 + [61] = { + ["X"] = 55.47, + ["Y"] = 40.72, + ["CD"] = 0, }, - [62] = - { - ["X"] = 57.64, - ["Y"] = 37.85, - ["CD"] = 0 + [62] = { + ["X"] = 57.64, + ["Y"] = 37.85, + ["CD"] = 0, }, - [63] = - { - ["X"] = 62.48, - ["Y"] = 57.85, - ["CD"] = 0 + [63] = { + ["X"] = 62.48, + ["Y"] = 57.85, + ["CD"] = 0, }, - [64] = - { - ["X"] = 63.78, - ["Y"] = 60.52, - ["CD"] = 0 + [64] = { + ["X"] = 63.78, + ["Y"] = 60.52, + ["CD"] = 0, + }, + [65] = { + ["X"] = 50.61, + ["Y"] = 60.74, + ["CD"] = 0, }, - [65] = - { - ["X"] = 50.61, - ["Y"] = 60.74, - ["CD"] = 0 -} } aura_env.cooldown = 600 aura_env.wipeDistance = 50 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Total.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Total.lua index 1906a41..f7e6d9f 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Total.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Total.lua @@ -1,1557 +1,1556 @@ aura_env.herbs = { - [1] = { - ["X"] = 37.14, - ["Y"] = 49.13, - ["CD"] = 0, - }, - [2] = { - ["X"] = 31.9, - ["Y"] = 36.27, - ["CD"] = 0, - }, - [3] = { - ["X"] = 34.15, - ["Y"] = 45.08, - ["CD"] = 0, - }, - [4] = { - ["X"] = 45.44, - ["Y"] = 34.31, - ["CD"] = 0, - }, - [5] = { - ["X"] = 43.48, - ["Y"] = 31.09, - ["CD"] = 0, - }, - [6] = { - ["X"] = 44.1, - ["Y"] = 24.69, - ["CD"] = 0, - }, - [7] = { - ["X"] = 40.26, - ["Y"] = 29.89, - ["CD"] = 0, - }, - [8] = { - ["X"] = 40.45, - ["Y"] = 26.25, - ["CD"] = 0, - }, - [9] = { - ["X"] = 36.3, - ["Y"] = 27.92, - ["CD"] = 0, - }, - [10] = { - ["X"] = 41.13, - ["Y"] = 31.66, - ["CD"] = 0, - }, - [11] = { - ["X"] = 40.79, - ["Y"] = 36, - ["CD"] = 0, - }, - [12] = { - ["X"] = 44.01, - ["Y"] = 41.2, - ["CD"] = 0, - }, - [13] = { - ["X"] = 38.64, - ["Y"] = 58.61, - ["CD"] = 0, - }, - [14] = { - ["X"] = 38.06, - ["Y"] = 56.83, - ["CD"] = 0, - }, - [15] = { - ["X"] = 39.04, - ["Y"] = 55.73, - ["CD"] = 0, - }, - [16] = { - ["X"] = 34.07, - ["Y"] = 50.83, - ["CD"] = 0, - }, - [17] = { - ["X"] = 63.96, - ["Y"] = 50.46, - ["CD"] = 0, - }, - [18] = { - ["X"] = 60.59, - ["Y"] = 44.44, - ["CD"] = 0, - }, - [19] = { - ["X"] = 44.86, - ["Y"] = 48.82, - ["CD"] = 0, - }, - [20] = { - ["X"] = 38.89, - ["Y"] = 47.82, - ["CD"] = 0, - }, - [21] = { - ["X"] = 68.45, - ["Y"] = 67.5, - ["CD"] = 0, - }, - [22] = { - ["X"] = 71.37, - ["Y"] = 69.19, - ["CD"] = 0, - }, - [23] = { - ["X"] = 72.78, - ["Y"] = 65.81, - ["CD"] = 0, - }, - [24] = { - ["X"] = 69, - ["Y"] = 55.52, - ["CD"] = 0, - }, - [25] = { - ["X"] = 68.67, - ["Y"] = 52.66, - ["CD"] = 0, - }, - [26] = { - ["X"] = 64.54, - ["Y"] = 38.15, - ["CD"] = 0, - }, - [27] = { - ["X"] = 56.03, - ["Y"] = 46.18, - ["CD"] = 0, - }, - [28] = { - ["X"] = 36.55, - ["Y"] = 51.57, - ["CD"] = 0, - }, - [29] = { - ["X"] = 43.65, - ["Y"] = 26.35, - ["CD"] = 0, - }, - [30] = { - ["X"] = 41.53, - ["Y"] = 17.47, - ["CD"] = 0, - }, - [31] = { - ["X"] = 40.28, - ["Y"] = 27.75, - ["CD"] = 0, - }, - [32] = { - ["X"] = 39.09, - ["Y"] = 38.11, - ["CD"] = 0, - }, - [33] = { - ["X"] = 18.39, - ["Y"] = 33.86, - ["CD"] = 0, - }, - [34] = { - ["X"] = 16.18, - ["Y"] = 36.6, - ["CD"] = 0, - }, - [35] = { - ["X"] = 16.78, - ["Y"] = 40.28, - ["CD"] = 0, - }, - [36] = { - ["X"] = 18.85, - ["Y"] = 42.87, - ["CD"] = 0, - }, - [37] = { - ["X"] = 19.91, - ["Y"] = 41.1, - ["CD"] = 0, - }, - [38] = { - ["X"] = 20.94, - ["Y"] = 36.01, - ["CD"] = 0, - }, - [39] = { - ["X"] = 21.66, - ["Y"] = 33.11, - ["CD"] = 0, - }, - [40] = { - ["X"] = 23.31, - ["Y"] = 34.44, - ["CD"] = 0, - }, - [41] = { - ["X"] = 24.34, - ["Y"] = 34.59, - ["CD"] = 0, - }, - [42] = { - ["X"] = 26.1, - ["Y"] = 37.2, - ["CD"] = 0, - }, - [43] = { - ["X"] = 24.3, - ["Y"] = 41.52, - ["CD"] = 0, - }, - [44] = { - ["X"] = 24.37, - ["Y"] = 49.28, - ["CD"] = 0, - }, - [45] = { - ["X"] = 21.68, - ["Y"] = 47.55, - ["CD"] = 0, - }, - [46] = { - ["X"] = 24.41, - ["Y"] = 38.39, - ["CD"] = 0, - }, - [47] = { - ["X"] = 83.22, - ["Y"] = 68.46, - ["CD"] = 0, - }, - [48] = { - ["X"] = 83.67, - ["Y"] = 68.15, - ["CD"] = 0, - }, - [49] = { - ["X"] = 86.25, - ["Y"] = 60.45, - ["CD"] = 0, - }, - [50] = { - ["X"] = 83.58, - ["Y"] = 55.1, - ["CD"] = 0, - }, - [51] = { - ["X"] = 51.41, - ["Y"] = 40.54, - ["CD"] = 0, - }, - [52] = { - ["X"] = 61.4, - ["Y"] = 44.7, - ["CD"] = 0, - }, - [53] = { - ["X"] = 64.56, - ["Y"] = 36.03, - ["CD"] = 0, - }, - [54] = { - ["X"] = 71.76, - ["Y"] = 46.45, - ["CD"] = 0, - }, - [55] = { - ["X"] = 69.32, - ["Y"] = 52.34, - ["CD"] = 0, - }, - [56] = { - ["X"] = 62.9, - ["Y"] = 53.79, - ["CD"] = 0, - }, - [57] = { - ["X"] = 64.84, - ["Y"] = 55.38, - ["CD"] = 0, - }, - [58] = { - ["X"] = 68.08, - ["Y"] = 59.34, - ["CD"] = 0, - }, - [59] = { - ["X"] = 74.01, - ["Y"] = 66.75, - ["CD"] = 0, - }, - [60] = { - ["X"] = 69.82, - ["Y"] = 71.33, - ["CD"] = 0, - }, - [61] = { - ["X"] = 20.47, - ["Y"] = 42.43, - ["CD"] = 0, - }, - [62] = { - ["X"] = 20.16, - ["Y"] = 54.01, - ["CD"] = 0, - }, - [63] = { - ["X"] = 32.08, - ["Y"] = 91.43, - ["CD"] = 0, - }, - [64] = { - ["X"] = 29.65, - ["Y"] = 85.18, - ["CD"] = 0, - }, - [65] = { - ["X"] = 32.85, - ["Y"] = 80.52, - ["CD"] = 0, - }, - [66] = { - ["X"] = 33.88, - ["Y"] = 70.43, - ["CD"] = 0, - }, - [67] = { - ["X"] = 29.16, - ["Y"] = 72.54, - ["CD"] = 0, - }, - [68] = { - ["X"] = 31.51, - ["Y"] = 64.57, - ["CD"] = 0, - }, - [69] = { - ["X"] = 29.82, - ["Y"] = 61.9, - ["CD"] = 0, - }, - [70] = { - ["X"] = 25.5, - ["Y"] = 60.09, - ["CD"] = 0, - }, - [71] = { - ["X"] = 25.74, - ["Y"] = 56.11, - ["CD"] = 0, - }, - [72] = { - ["X"] = 22.37, - ["Y"] = 64.38, - ["CD"] = 0, - }, - [73] = { - ["X"] = 21.06, - ["Y"] = 60.1, - ["CD"] = 0, - }, - [74] = { - ["X"] = 24.73, - ["Y"] = 54.01, - ["CD"] = 0, - }, - [75] = { - ["X"] = 29.03, - ["Y"] = 53.49, - ["CD"] = 0, - }, - [76] = { - ["X"] = 30.74, - ["Y"] = 55.76, - ["CD"] = 0, - }, - [77] = { - ["X"] = 34.72, - ["Y"] = 47.72, - ["CD"] = 0, - }, - [78] = { - ["X"] = 21.1, - ["Y"] = 63.87, - ["CD"] = 0, - }, - [79] = { - ["X"] = 20.39, - ["Y"] = 36.64, - ["CD"] = 0, - }, - [80] = { - ["X"] = 23.69, - ["Y"] = 38.3, - ["CD"] = 0, - }, - [81] = { - ["X"] = 15.95, - ["Y"] = 37.5, - ["CD"] = 0, - }, - [82] = { - ["X"] = 18.94, - ["Y"] = 32.37, - ["CD"] = 0, - }, - [83] = { - ["X"] = 20.5, - ["Y"] = 16.44, - ["CD"] = 0, - }, - [84] = { - ["X"] = 23.5, - ["Y"] = 15.71, - ["CD"] = 0, - }, - [85] = { - ["X"] = 26.93, - ["Y"] = 25.97, - ["CD"] = 0, - }, - [86] = { - ["X"] = 30.68, - ["Y"] = 26.77, - ["CD"] = 0, - }, - [87] = { - ["X"] = 27.52, - ["Y"] = 9.17, - ["CD"] = 0, - }, - [88] = { - ["X"] = 27.84, - ["Y"] = 15.94, - ["CD"] = 0, - }, - [89] = { - ["X"] = 35.65, - ["Y"] = 15.53, - ["CD"] = 0, - }, - [90] = { - ["X"] = 39.68, - ["Y"] = 26.62, - ["CD"] = 0, - }, - [91] = { - ["X"] = 44.32, - ["Y"] = 26.72, - ["CD"] = 0, - }, - [92] = { - ["X"] = 47.84, - ["Y"] = 33.66, - ["CD"] = 0, - }, - [93] = { - ["X"] = 45.96, - ["Y"] = 36.33, - ["CD"] = 0, - }, - [94] = { - ["X"] = 49.84, - ["Y"] = 41.71, - ["CD"] = 0, - }, - [95] = { - ["X"] = 59.39, - ["Y"] = 40.58, - ["CD"] = 0, - }, - [96] = { - ["X"] = 77.48, - ["Y"] = 50.54, - ["CD"] = 0, - }, - [97] = { - ["X"] = 73.17, - ["Y"] = 62.35, - ["CD"] = 0, - }, - [98] = { - ["X"] = 82.88, - ["Y"] = 70.91, - ["CD"] = 0, - }, - [99] = { - ["X"] = 68.25, - ["Y"] = 61.21, - ["CD"] = 0, - }, - [100] = { - ["X"] = 62.18, - ["Y"] = 52.65, - ["CD"] = 0, - }, - [101] = { - ["X"] = 48.69, - ["Y"] = 47.83, - ["CD"] = 0, - }, - [102] = { - ["X"] = 24.53, - ["Y"] = 37.78, - ["CD"] = 0, - }, - [103] = { - ["X"] = 19.65, - ["Y"] = 47.77, - ["CD"] = 0, - }, - [104] = { - ["X"] = 18.49, - ["Y"] = 45.55, - ["CD"] = 0, - }, - [105] = { - ["X"] = 20.68, - ["Y"] = 44.68, - ["CD"] = 0, - }, - [106] = { - ["X"] = 19.49, - ["Y"] = 52.02, - ["CD"] = 0, - }, - [107] = { - ["X"] = 19.7, - ["Y"] = 58.21, - ["CD"] = 0, - }, - [108] = { - ["X"] = 24.22, - ["Y"] = 53.2, - ["CD"] = 0, - }, - [109] = { - ["X"] = 28.18, - ["Y"] = 47.69, - ["CD"] = 0, - }, - [110] = { - ["X"] = 39.27, - ["Y"] = 59.32, - ["CD"] = 0, - }, - [111] = { - ["X"] = 56.48, - ["Y"] = 41.59, - ["CD"] = 0, - }, - [112] = { - ["X"] = 48.13, - ["Y"] = 46.16, - ["CD"] = 0, - }, - [113] = { - ["X"] = 54.39, - ["Y"] = 47.68, - ["CD"] = 0, - }, - [114] = { - ["X"] = 35.05, - ["Y"] = 48.64, - ["CD"] = 0, - }, - [115] = { - ["X"] = 39.5, - ["Y"] = 33.82, - ["CD"] = 0, - }, - [116] = { - ["X"] = 38.81, - ["Y"] = 40.55, - ["CD"] = 0, - }, - [117] = { - ["X"] = 42.89, - ["Y"] = 42.23, - ["CD"] = 0, - }, - [118] = { - ["X"] = 37.23, - ["Y"] = 54.85, - ["CD"] = 0, - }, - [119] = { - ["X"] = 31.41, - ["Y"] = 49.38, - ["CD"] = 0, - }, - [120] = { - ["X"] = 22.49, - ["Y"] = 32.72, - ["CD"] = 0, - }, - [121] = { - ["X"] = 29.51, - ["Y"] = 30.95, - ["CD"] = 0, - }, - [122] = { - ["X"] = 18.84, - ["Y"] = 20.09, - ["CD"] = 0, - }, - [123] = { - ["X"] = 20.25, - ["Y"] = 19.61, - ["CD"] = 0, - }, - [124] = { - ["X"] = 30.95, - ["Y"] = 24.64, - ["CD"] = 0, - }, - [125] = { - ["X"] = 32.82, - ["Y"] = 23.71, - ["CD"] = 0, - }, - [126] = { - ["X"] = 22.62, - ["Y"] = 34.77, - ["CD"] = 0, - }, - [127] = { - ["X"] = 18.07, - ["Y"] = 44.18, - ["CD"] = 0, - }, - [128] = { - ["X"] = 45.77, - ["Y"] = 48.17, - ["CD"] = 0, - }, - [129] = { - ["X"] = 64.31, - ["Y"] = 45.08, - ["CD"] = 0, - }, - [130] = { - ["X"] = 40.17, - ["Y"] = 80.26, - ["CD"] = 0, - }, - [131] = { - ["X"] = 39.96, - ["Y"] = 85.87, - ["CD"] = 0, - }, - [132] = { - ["X"] = 37.11, - ["Y"] = 56.73, - ["CD"] = 0, - }, - [133] = { - ["X"] = 15.9, - ["Y"] = 23.89, - ["CD"] = 0, - }, - [134] = { - ["X"] = 17.71, - ["Y"] = 29.63, - ["CD"] = 0, - }, - [135] = { - ["X"] = 17.15, - ["Y"] = 32.49, - ["CD"] = 0, - }, - [136] = { - ["X"] = 16.04, - ["Y"] = 38.11, - ["CD"] = 0, - }, - [137] = { - ["X"] = 15.86, - ["Y"] = 43.89, - ["CD"] = 0, - }, - [138] = { - ["X"] = 19.44, - ["Y"] = 54.05, - ["CD"] = 0, - }, - [139] = { - ["X"] = 20.11, - ["Y"] = 59.42, - ["CD"] = 0, - }, - [140] = { - ["X"] = 29.69, - ["Y"] = 52.54, - ["CD"] = 0, - }, - [141] = { - ["X"] = 35.03, - ["Y"] = 49.63, - ["CD"] = 0, - }, - [142] = { - ["X"] = 39.56, - ["Y"] = 79.48, - ["CD"] = 0, - }, - [143] = { - ["X"] = 37.08, - ["Y"] = 55.71, - ["CD"] = 0, - }, - [144] = { - ["X"] = 35.94, - ["Y"] = 61.69, - ["CD"] = 0, - }, - [145] = { - ["X"] = 39.48, - ["Y"] = 54.31, - ["CD"] = 0, - }, - [146] = { - ["X"] = 35.36, - ["Y"] = 64.78, - ["CD"] = 0, - }, - [147] = { - ["X"] = 36.15, - ["Y"] = 53.17, - ["CD"] = 0, - }, - [148] = { - ["X"] = 34.77, - ["Y"] = 58.4, - ["CD"] = 0, - }, - [149] = { - ["X"] = 55.37, - ["Y"] = 47.1, - ["CD"] = 0, - }, - [150] = { - ["X"] = 65.94, - ["Y"] = 44.49, - ["CD"] = 0, - }, - [151] = { - ["X"] = 64.11, - ["Y"] = 48.12, - ["CD"] = 0, - }, - [152] = { - ["X"] = 69.31, - ["Y"] = 50.72, - ["CD"] = 0, - }, - [153] = { - ["X"] = 71.5, - ["Y"] = 47.68, - ["CD"] = 0, - }, - [154] = { - ["X"] = 71.16, - ["Y"] = 53.76, - ["CD"] = 0, - }, - [155] = { - ["X"] = 82.35, - ["Y"] = 61.92, - ["CD"] = 0, - }, - [156] = { - ["X"] = 69.83, - ["Y"] = 56.77, - ["CD"] = 0, - }, - [157] = { - ["X"] = 65.37, - ["Y"] = 53.31, - ["CD"] = 0, - }, - [158] = { - ["X"] = 67.47, - ["Y"] = 56.97, - ["CD"] = 0, - }, - [159] = { - ["X"] = 69.22, - ["Y"] = 60.75, - ["CD"] = 0, - }, - [160] = { - ["X"] = 71.06, - ["Y"] = 63.75, - ["CD"] = 0, - }, - [161] = { - ["X"] = 67.54, - ["Y"] = 65.61, - ["CD"] = 0, - }, - [162] = { - ["X"] = 36.42, - ["Y"] = 50.76, - ["CD"] = 0, - }, - [163] = { - ["X"] = 40.25, - ["Y"] = 55.26, - ["CD"] = 0, - }, - [164] = { - ["X"] = 38.11, - ["Y"] = 49.95, - ["CD"] = 0, - }, - [165] = { - ["X"] = 38.88, - ["Y"] = 59.22, - ["CD"] = 0, - }, - [166] = { - ["X"] = 32.61, - ["Y"] = 50.54, - ["CD"] = 0, - }, - [167] = { - ["X"] = 40.85, - ["Y"] = 41.79, - ["CD"] = 0, - }, - [168] = { - ["X"] = 47.83, - ["Y"] = 43.4, - ["CD"] = 0, - }, - [169] = { - ["X"] = 46.68, - ["Y"] = 36.54, - ["CD"] = 0, - }, - [170] = { - ["X"] = 47.01, - ["Y"] = 34.18, - ["CD"] = 0, - }, - [171] = { - ["X"] = 49.86, - ["Y"] = 30.62, - ["CD"] = 0, - }, - [172] = { - ["X"] = 52.29, - ["Y"] = 31.86, - ["CD"] = 0, - }, - [173] = { - ["X"] = 52.33, - ["Y"] = 31.71, - ["CD"] = 0, - }, - [174] = { - ["X"] = 44.76, - ["Y"] = 23.99, - ["CD"] = 0, - }, - [175] = { - ["X"] = 38.29, - ["Y"] = 47.08, - ["CD"] = 0, - }, - [176] = { - ["X"] = 34.22, - ["Y"] = 43.33, - ["CD"] = 0, - }, - [177] = { - ["X"] = 33.4, - ["Y"] = 82.6, - ["CD"] = 0, - }, - [178] = { - ["X"] = 33.6, - ["Y"] = 78.87, - ["CD"] = 0, - }, - [179] = { - ["X"] = 28.59, - ["Y"] = 58.98, - ["CD"] = 0, - }, - [180] = { - ["X"] = 25.83, - ["Y"] = 62.95, - ["CD"] = 0, - }, - [181] = { - ["X"] = 23.24, - ["Y"] = 65.23, - ["CD"] = 0, - }, - [182] = { - ["X"] = 26.47, - ["Y"] = 27.13, - ["CD"] = 0, - }, - [183] = { - ["X"] = 23.85, - ["Y"] = 26.83, - ["CD"] = 0, - }, - [184] = { - ["X"] = 28.57, - ["Y"] = 20.59, - ["CD"] = 0, - }, - [185] = { - ["X"] = 22.34, - ["Y"] = 24.28, - ["CD"] = 0, - }, - [186] = { - ["X"] = 18.53, - ["Y"] = 19.76, - ["CD"] = 0, - }, - [187] = { - ["X"] = 21.01, - ["Y"] = 19.95, - ["CD"] = 0, - }, - [188] = { - ["X"] = 22.81, - ["Y"] = 31.33, - ["CD"] = 0, - }, - [189] = { - ["X"] = 35.35, - ["Y"] = 30.57, - ["CD"] = 0, - }, - [190] = { - ["X"] = 37.71, - ["Y"] = 29.33, - ["CD"] = 0, - }, - [191] = { - ["X"] = 61.86, - ["Y"] = 43.15, - ["CD"] = 0, - }, - [192] = { - ["X"] = 64.98, - ["Y"] = 61.25, - ["CD"] = 0, - }, - [193] = { - ["X"] = 63.31, - ["Y"] = 53.33, - ["CD"] = 0, - }, - [194] = { - ["X"] = 64.97, - ["Y"] = 46.49, - ["CD"] = 0, - }, - [195] = { - ["X"] = 24.21, - ["Y"] = 39.75, - ["CD"] = 0, - }, - [196] = { - ["X"] = 29.8, - ["Y"] = 70.65, - ["CD"] = 0, - }, - [197] = { - ["X"] = 31.03, - ["Y"] = 63.89, - ["CD"] = 0, - }, - [198] = { - ["X"] = 26.49, - ["Y"] = 61.9, - ["CD"] = 0, - }, - [199] = { - ["X"] = 25.91, - ["Y"] = 58.23, - ["CD"] = 0, - }, - [200] = { - ["X"] = 26.96, - ["Y"] = 57.49, - ["CD"] = 0, - }, - [201] = { - ["X"] = 30.02, - ["Y"] = 79.88, - ["CD"] = 0, - }, - [202] = { - ["X"] = 32.64, - ["Y"] = 74.92, - ["CD"] = 0, - }, - [203] = { - ["X"] = 27.82, - ["Y"] = 81.19, - ["CD"] = 0, - }, - [204] = { - ["X"] = 30.97, - ["Y"] = 71.46, - ["CD"] = 0, - }, - [205] = { - ["X"] = 31.95, - ["Y"] = 65.81, - ["CD"] = 0, - }, - [206] = { - ["X"] = 29.98, - ["Y"] = 59.94, - ["CD"] = 0, - }, - [207] = { - ["X"] = 27.95, - ["Y"] = 65.06, - ["CD"] = 0, - }, - [208] = { - ["X"] = 30.76, - ["Y"] = 67.04, - ["CD"] = 0, - }, - [209] = { - ["X"] = 29.52, - ["Y"] = 80.42, - ["CD"] = 0, - }, - [210] = { - ["X"] = 32.39, - ["Y"] = 80.05, - ["CD"] = 0, - }, - [211] = { - ["X"] = 34.55, - ["Y"] = 47.69, - ["CD"] = 0, - }, - [212] = { - ["X"] = 37.76, - ["Y"] = 48.59, - ["CD"] = 0, - }, - [213] = { - ["X"] = 22.32, - ["Y"] = 40.27, - ["CD"] = 0, - }, - [214] = { - ["X"] = 20.51, - ["Y"] = 41.42, - ["CD"] = 0, - }, - [215] = { - ["X"] = 18.9, - ["Y"] = 41.86, - ["CD"] = 0, - }, - [216] = { - ["X"] = 21.55, - ["Y"] = 45.65, - ["CD"] = 0, - }, - [217] = { - ["X"] = 21.86, - ["Y"] = 44.84, - ["CD"] = 0, - }, - [218] = { - ["X"] = 33.38, - ["Y"] = 39.67, - ["CD"] = 0, - }, - [219] = { - ["X"] = 19.91, - ["Y"] = 20.35, - ["CD"] = 0, - }, - [220] = { - ["X"] = 34.34, - ["Y"] = 20.87, - ["CD"] = 0, - }, - [221] = { - ["X"] = 33.52, - ["Y"] = 24.37, - ["CD"] = 0, - }, - [222] = { - ["X"] = 28.32, - ["Y"] = 14.3, - ["CD"] = 0, - }, - [223] = { - ["X"] = 33.53, - ["Y"] = 50.99, - ["CD"] = 0, - }, - [224] = { - ["X"] = 32.31, - ["Y"] = 48.2, - ["CD"] = 0, - }, - [225] = { - ["X"] = 41.94, - ["Y"] = 18.89, - ["CD"] = 0, - }, - [226] = { - ["X"] = 36.5, - ["Y"] = 25.72, - ["CD"] = 0, - }, - [227] = { - ["X"] = 25.01, - ["Y"] = 35.96, - ["CD"] = 0, - }, - [228] = { - ["X"] = 33.53, - ["Y"] = 44.13, - ["CD"] = 0, - }, - [229] = { - ["X"] = 33.96, - ["Y"] = 47.92, - ["CD"] = 0, - }, - [230] = { - ["X"] = 46.05, - ["Y"] = 49.39, - ["CD"] = 0, - }, - [231] = { - ["X"] = 47.52, - ["Y"] = 48.56, - ["CD"] = 0, - }, - [232] = { - ["X"] = 56.74, - ["Y"] = 46.21, - ["CD"] = 0, - }, - [233] = { - ["X"] = 61.18, - ["Y"] = 43.25, - ["CD"] = 0, - }, - [234] = { - ["X"] = 44.06, - ["Y"] = 41.95, - ["CD"] = 0, - }, - [235] = { - ["X"] = 35.22, - ["Y"] = 51.04, - ["CD"] = 0, - }, - [236] = { - ["X"] = 43.2, - ["Y"] = 40.81, - ["CD"] = 0, - }, - [237] = { - ["X"] = 42.26, - ["Y"] = 32.86, - ["CD"] = 0, - }, - [238] = { - ["X"] = 36.88, - ["Y"] = 52.87, - ["CD"] = 0, - }, - [239] = { - ["X"] = 40.1, - ["Y"] = 53.5, - ["CD"] = 0, - }, - [240] = { - ["X"] = 63.85, - ["Y"] = 43.39, - ["CD"] = 0, - }, - [241] = { - ["X"] = 64.08, - ["Y"] = 61.32, - ["CD"] = 0, - }, - [242] = { - ["X"] = 65.67, - ["Y"] = 56.11, - ["CD"] = 0, - }, - [243] = { - ["X"] = 46.08, - ["Y"] = 34.3, - ["CD"] = 0, - }, - [244] = { - ["X"] = 46.79, - ["Y"] = 32.81, - ["CD"] = 0, - }, - [245] = { - ["X"] = 50.39, - ["Y"] = 40.72, - ["CD"] = 0, - }, - [246] = { - ["X"] = 70.84, - ["Y"] = 60.17, - ["CD"] = 0, - }, - [247] = { - ["X"] = 69.51, - ["Y"] = 67.83, - ["CD"] = 0, - }, - [248] = { - ["X"] = 69.36, - ["Y"] = 69.51, - ["CD"] = 0, - }, - [249] = { - ["X"] = 67.23, - ["Y"] = 66.87, - ["CD"] = 0, - }, - [250] = { - ["X"] = 74.66, - ["Y"] = 68.83, - ["CD"] = 0, - }, - [251] = { - ["X"] = 70.56, - ["Y"] = 71.34, - ["CD"] = 0, - }, - [252] = { - ["X"] = 24.79, - ["Y"] = 57.99, - ["CD"] = 0, - }, - [253] = { - ["X"] = 23.91, - ["Y"] = 67.46, - ["CD"] = 0, - }, - [254] = { - ["X"] = 27.52, - ["Y"] = 67.32, - ["CD"] = 0, - }, - [255] = { - ["X"] = 27.77, - ["Y"] = 73.57, - ["CD"] = 0, - }, - [256] = { - ["X"] = 32.17, - ["Y"] = 77.78, - ["CD"] = 0, - }, - [257] = { - ["X"] = 19.31, - ["Y"] = 46.46, - ["CD"] = 0, - }, - [258] = { - ["X"] = 17.28, - ["Y"] = 45.92, - ["CD"] = 0, - }, - [259] = { - ["X"] = 21.39, - ["Y"] = 43.53, - ["CD"] = 0, - }, - [260] = { - ["X"] = 34.14, - ["Y"] = 45.78, - ["CD"] = 0, - }, - [261] = { - ["X"] = 46.06, - ["Y"] = 26.26, - ["CD"] = 0, - }, - [262] = { - ["X"] = 33.9, - ["Y"] = 41.67, - ["CD"] = 0, - }, - [263] = { - ["X"] = 69.33, - ["Y"] = 71.36, - ["CD"] = 0, - }, - [264] = { - ["X"] = 70.11, - ["Y"] = 68.95, - ["CD"] = 0, - }, - [265] = { - ["X"] = 45.95, - ["Y"] = 29.55, - ["CD"] = 0, - }, - [266] = { - ["X"] = 71.31, - ["Y"] = 71.78, - ["CD"] = 0, - }, - [267] = { - ["X"] = 24.46, - ["Y"] = 54.16, - ["CD"] = 0, - }, - [268] = { - ["X"] = 30.88, - ["Y"] = 54.62, - ["CD"] = 0, - }, - [269] = { - ["X"] = 19.96, - ["Y"] = 16, - ["CD"] = 0, - }, - [270] = { - ["X"] = 72.22, - ["Y"] = 69.78, - ["CD"] = 0, - }, - [271] = { - ["X"] = 62.56, - ["Y"] = 52.21, - ["CD"] = 0, - }, - [272] = { - ["X"] = 24.32, - ["Y"] = 52.38, - ["CD"] = 0, - }, - [273] = { - ["X"] = 37.31, - ["Y"] = 35.96, - ["CD"] = 0, - }, - [274] = { - ["X"] = 43.49, - ["Y"] = 31.39, - ["CD"] = 0, - }, - [275] = { - ["X"] = 32.66, - ["Y"] = 25.11, - ["CD"] = 0, - }, - [276] = { - ["X"] = 51.53, - ["Y"] = 32.25, - ["CD"] = 0, - }, - [277] = { - ["X"] = 52.83, - ["Y"] = 31.34, - ["CD"] = 0, - }, - [278] = { - ["X"] = 44.45, - ["Y"] = 31.35, - ["CD"] = 0, - }, - [279] = { - ["X"] = 23.79, - ["Y"] = 30.99, - ["CD"] = 0, - }, - [280] = { - ["X"] = 63.19, - ["Y"] = 52.61, - ["CD"] = 0, - }, - [281] = { - ["X"] = 32.7, - ["Y"] = 24.23, - ["CD"] = 0, - }, - [282] = { - ["X"] = 36.74, - ["Y"] = 50.84, - ["CD"] = 0, - }, - [283] = { - ["X"] = 62.48, - ["Y"] = 53.74, - ["CD"] = 0, - }, - [284] = { - ["X"] = 69.88, - ["Y"] = 66.33, - ["CD"] = 0, - }, - [285] = { - ["X"] = 30.67, - ["Y"] = 55.81, - ["CD"] = 0, - }, - [286] = { - ["X"] = 25.26, - ["Y"] = 53.34, - ["CD"] = 0, - }, - [287] = { - ["X"] = 46.54, - ["Y"] = 33.81, - ["CD"] = 0, - }, - [288] = { - ["X"] = 38.55, - ["Y"] = 27.71, - ["CD"] = 0, - }, - [289] = { - ["X"] = 18.49, - ["Y"] = 45.55, - ["CD"] = 0, - }, - [290] = { - ["X"] = 71.94, - ["Y"] = 68.81, - ["CD"] = 0, - }, - [291] = { - ["X"] = 71.92, - ["Y"] = 63.63, - ["CD"] = 0, - }, - [292] = { - ["X"] = 29.79, - ["Y"] = 44.61, - ["CD"] = 0, - }, - [293] = { - ["X"] = 30.02, - ["Y"] = 29.48, - ["CD"] = 0, - }, - [294] = { - ["X"] = 31.59, - ["Y"] = 48.32, - ["CD"] = 0, - }, - [295] = { - ["X"] = 37.14, - ["Y"] = 49.13, - ["CD"] = 0, - }, - [296] = { - ["X"] = 33.63, - ["Y"] = 57.28, - ["CD"] = 0, - }, - [297] = { - ["X"] = 36.3, - ["Y"] = 27.92, - ["CD"] = 0, - }, - [298] = { - ["X"] = 18.9, - ["Y"] = 41.86, - ["CD"] = 0, - }, - [299] = { - ["X"] = 32.85, - ["Y"] = 80.52, - ["CD"] = 0, - }, - [300] = { - ["X"] = 25.64, - ["Y"] = 24.21, - ["CD"] = 0, - }, - [301] = { - ["X"] = 62.91, - ["Y"] = 45.74, - ["CD"] = 0, - }, - [302] = { - ["X"] = 38.29, - ["Y"] = 47.08, - ["CD"] = 0, - }, - [303] = { - ["X"] = 65.94, - ["Y"] = 44.49, - ["CD"] = 0, - }, - [304] = { - ["X"] = 63.96, - ["Y"] = 50.46, - ["CD"] = 0, - }, - [305] = { - ["X"] = 30.36, - ["Y"] = 55.61, - ["CD"] = 0, - }, + [1] = { + ["X"] = 37.14, + ["Y"] = 49.13, + ["CD"] = 0, + }, + [2] = { + ["X"] = 31.9, + ["Y"] = 36.27, + ["CD"] = 0, + }, + [3] = { + ["X"] = 34.15, + ["Y"] = 45.08, + ["CD"] = 0, + }, + [4] = { + ["X"] = 45.44, + ["Y"] = 34.31, + ["CD"] = 0, + }, + [5] = { + ["X"] = 43.48, + ["Y"] = 31.09, + ["CD"] = 0, + }, + [6] = { + ["X"] = 44.1, + ["Y"] = 24.69, + ["CD"] = 0, + }, + [7] = { + ["X"] = 40.26, + ["Y"] = 29.89, + ["CD"] = 0, + }, + [8] = { + ["X"] = 40.45, + ["Y"] = 26.25, + ["CD"] = 0, + }, + [9] = { + ["X"] = 36.3, + ["Y"] = 27.92, + ["CD"] = 0, + }, + [10] = { + ["X"] = 41.13, + ["Y"] = 31.66, + ["CD"] = 0, + }, + [11] = { + ["X"] = 40.79, + ["Y"] = 36, + ["CD"] = 0, + }, + [12] = { + ["X"] = 44.01, + ["Y"] = 41.2, + ["CD"] = 0, + }, + [13] = { + ["X"] = 38.64, + ["Y"] = 58.61, + ["CD"] = 0, + }, + [14] = { + ["X"] = 38.06, + ["Y"] = 56.83, + ["CD"] = 0, + }, + [15] = { + ["X"] = 39.04, + ["Y"] = 55.73, + ["CD"] = 0, + }, + [16] = { + ["X"] = 34.07, + ["Y"] = 50.83, + ["CD"] = 0, + }, + [17] = { + ["X"] = 63.96, + ["Y"] = 50.46, + ["CD"] = 0, + }, + [18] = { + ["X"] = 60.59, + ["Y"] = 44.44, + ["CD"] = 0, + }, + [19] = { + ["X"] = 44.86, + ["Y"] = 48.82, + ["CD"] = 0, + }, + [20] = { + ["X"] = 38.89, + ["Y"] = 47.82, + ["CD"] = 0, + }, + [21] = { + ["X"] = 68.45, + ["Y"] = 67.5, + ["CD"] = 0, + }, + [22] = { + ["X"] = 71.37, + ["Y"] = 69.19, + ["CD"] = 0, + }, + [23] = { + ["X"] = 72.78, + ["Y"] = 65.81, + ["CD"] = 0, + }, + [24] = { + ["X"] = 69, + ["Y"] = 55.52, + ["CD"] = 0, + }, + [25] = { + ["X"] = 68.67, + ["Y"] = 52.66, + ["CD"] = 0, + }, + [26] = { + ["X"] = 64.54, + ["Y"] = 38.15, + ["CD"] = 0, + }, + [27] = { + ["X"] = 56.03, + ["Y"] = 46.18, + ["CD"] = 0, + }, + [28] = { + ["X"] = 36.55, + ["Y"] = 51.57, + ["CD"] = 0, + }, + [29] = { + ["X"] = 43.65, + ["Y"] = 26.35, + ["CD"] = 0, + }, + [30] = { + ["X"] = 41.53, + ["Y"] = 17.47, + ["CD"] = 0, + }, + [31] = { + ["X"] = 40.28, + ["Y"] = 27.75, + ["CD"] = 0, + }, + [32] = { + ["X"] = 39.09, + ["Y"] = 38.11, + ["CD"] = 0, + }, + [33] = { + ["X"] = 18.39, + ["Y"] = 33.86, + ["CD"] = 0, + }, + [34] = { + ["X"] = 16.18, + ["Y"] = 36.6, + ["CD"] = 0, + }, + [35] = { + ["X"] = 16.78, + ["Y"] = 40.28, + ["CD"] = 0, + }, + [36] = { + ["X"] = 18.85, + ["Y"] = 42.87, + ["CD"] = 0, + }, + [37] = { + ["X"] = 19.91, + ["Y"] = 41.1, + ["CD"] = 0, + }, + [38] = { + ["X"] = 20.94, + ["Y"] = 36.01, + ["CD"] = 0, + }, + [39] = { + ["X"] = 21.66, + ["Y"] = 33.11, + ["CD"] = 0, + }, + [40] = { + ["X"] = 23.31, + ["Y"] = 34.44, + ["CD"] = 0, + }, + [41] = { + ["X"] = 24.34, + ["Y"] = 34.59, + ["CD"] = 0, + }, + [42] = { + ["X"] = 26.1, + ["Y"] = 37.2, + ["CD"] = 0, + }, + [43] = { + ["X"] = 24.3, + ["Y"] = 41.52, + ["CD"] = 0, + }, + [44] = { + ["X"] = 24.37, + ["Y"] = 49.28, + ["CD"] = 0, + }, + [45] = { + ["X"] = 21.68, + ["Y"] = 47.55, + ["CD"] = 0, + }, + [46] = { + ["X"] = 24.41, + ["Y"] = 38.39, + ["CD"] = 0, + }, + [47] = { + ["X"] = 83.22, + ["Y"] = 68.46, + ["CD"] = 0, + }, + [48] = { + ["X"] = 83.67, + ["Y"] = 68.15, + ["CD"] = 0, + }, + [49] = { + ["X"] = 86.25, + ["Y"] = 60.45, + ["CD"] = 0, + }, + [50] = { + ["X"] = 83.58, + ["Y"] = 55.1, + ["CD"] = 0, + }, + [51] = { + ["X"] = 51.41, + ["Y"] = 40.54, + ["CD"] = 0, + }, + [52] = { + ["X"] = 61.4, + ["Y"] = 44.7, + ["CD"] = 0, + }, + [53] = { + ["X"] = 64.56, + ["Y"] = 36.03, + ["CD"] = 0, + }, + [54] = { + ["X"] = 71.76, + ["Y"] = 46.45, + ["CD"] = 0, + }, + [55] = { + ["X"] = 69.32, + ["Y"] = 52.34, + ["CD"] = 0, + }, + [56] = { + ["X"] = 62.9, + ["Y"] = 53.79, + ["CD"] = 0, + }, + [57] = { + ["X"] = 64.84, + ["Y"] = 55.38, + ["CD"] = 0, + }, + [58] = { + ["X"] = 68.08, + ["Y"] = 59.34, + ["CD"] = 0, + }, + [59] = { + ["X"] = 74.01, + ["Y"] = 66.75, + ["CD"] = 0, + }, + [60] = { + ["X"] = 69.82, + ["Y"] = 71.33, + ["CD"] = 0, + }, + [61] = { + ["X"] = 20.47, + ["Y"] = 42.43, + ["CD"] = 0, + }, + [62] = { + ["X"] = 20.16, + ["Y"] = 54.01, + ["CD"] = 0, + }, + [63] = { + ["X"] = 32.08, + ["Y"] = 91.43, + ["CD"] = 0, + }, + [64] = { + ["X"] = 29.65, + ["Y"] = 85.18, + ["CD"] = 0, + }, + [65] = { + ["X"] = 32.85, + ["Y"] = 80.52, + ["CD"] = 0, + }, + [66] = { + ["X"] = 33.88, + ["Y"] = 70.43, + ["CD"] = 0, + }, + [67] = { + ["X"] = 29.16, + ["Y"] = 72.54, + ["CD"] = 0, + }, + [68] = { + ["X"] = 31.51, + ["Y"] = 64.57, + ["CD"] = 0, + }, + [69] = { + ["X"] = 29.82, + ["Y"] = 61.9, + ["CD"] = 0, + }, + [70] = { + ["X"] = 25.5, + ["Y"] = 60.09, + ["CD"] = 0, + }, + [71] = { + ["X"] = 25.74, + ["Y"] = 56.11, + ["CD"] = 0, + }, + [72] = { + ["X"] = 22.37, + ["Y"] = 64.38, + ["CD"] = 0, + }, + [73] = { + ["X"] = 21.06, + ["Y"] = 60.1, + ["CD"] = 0, + }, + [74] = { + ["X"] = 24.73, + ["Y"] = 54.01, + ["CD"] = 0, + }, + [75] = { + ["X"] = 29.03, + ["Y"] = 53.49, + ["CD"] = 0, + }, + [76] = { + ["X"] = 30.74, + ["Y"] = 55.76, + ["CD"] = 0, + }, + [77] = { + ["X"] = 34.72, + ["Y"] = 47.72, + ["CD"] = 0, + }, + [78] = { + ["X"] = 21.1, + ["Y"] = 63.87, + ["CD"] = 0, + }, + [79] = { + ["X"] = 20.39, + ["Y"] = 36.64, + ["CD"] = 0, + }, + [80] = { + ["X"] = 23.69, + ["Y"] = 38.3, + ["CD"] = 0, + }, + [81] = { + ["X"] = 15.95, + ["Y"] = 37.5, + ["CD"] = 0, + }, + [82] = { + ["X"] = 18.94, + ["Y"] = 32.37, + ["CD"] = 0, + }, + [83] = { + ["X"] = 20.5, + ["Y"] = 16.44, + ["CD"] = 0, + }, + [84] = { + ["X"] = 23.5, + ["Y"] = 15.71, + ["CD"] = 0, + }, + [85] = { + ["X"] = 26.93, + ["Y"] = 25.97, + ["CD"] = 0, + }, + [86] = { + ["X"] = 30.68, + ["Y"] = 26.77, + ["CD"] = 0, + }, + [87] = { + ["X"] = 27.52, + ["Y"] = 9.17, + ["CD"] = 0, + }, + [88] = { + ["X"] = 27.84, + ["Y"] = 15.94, + ["CD"] = 0, + }, + [89] = { + ["X"] = 35.65, + ["Y"] = 15.53, + ["CD"] = 0, + }, + [90] = { + ["X"] = 39.68, + ["Y"] = 26.62, + ["CD"] = 0, + }, + [91] = { + ["X"] = 44.32, + ["Y"] = 26.72, + ["CD"] = 0, + }, + [92] = { + ["X"] = 47.84, + ["Y"] = 33.66, + ["CD"] = 0, + }, + [93] = { + ["X"] = 45.96, + ["Y"] = 36.33, + ["CD"] = 0, + }, + [94] = { + ["X"] = 49.84, + ["Y"] = 41.71, + ["CD"] = 0, + }, + [95] = { + ["X"] = 59.39, + ["Y"] = 40.58, + ["CD"] = 0, + }, + [96] = { + ["X"] = 77.48, + ["Y"] = 50.54, + ["CD"] = 0, + }, + [97] = { + ["X"] = 73.17, + ["Y"] = 62.35, + ["CD"] = 0, + }, + [98] = { + ["X"] = 82.88, + ["Y"] = 70.91, + ["CD"] = 0, + }, + [99] = { + ["X"] = 68.25, + ["Y"] = 61.21, + ["CD"] = 0, + }, + [100] = { + ["X"] = 62.18, + ["Y"] = 52.65, + ["CD"] = 0, + }, + [101] = { + ["X"] = 48.69, + ["Y"] = 47.83, + ["CD"] = 0, + }, + [102] = { + ["X"] = 24.53, + ["Y"] = 37.78, + ["CD"] = 0, + }, + [103] = { + ["X"] = 19.65, + ["Y"] = 47.77, + ["CD"] = 0, + }, + [104] = { + ["X"] = 18.49, + ["Y"] = 45.55, + ["CD"] = 0, + }, + [105] = { + ["X"] = 20.68, + ["Y"] = 44.68, + ["CD"] = 0, + }, + [106] = { + ["X"] = 19.49, + ["Y"] = 52.02, + ["CD"] = 0, + }, + [107] = { + ["X"] = 19.7, + ["Y"] = 58.21, + ["CD"] = 0, + }, + [108] = { + ["X"] = 24.22, + ["Y"] = 53.2, + ["CD"] = 0, + }, + [109] = { + ["X"] = 28.18, + ["Y"] = 47.69, + ["CD"] = 0, + }, + [110] = { + ["X"] = 39.27, + ["Y"] = 59.32, + ["CD"] = 0, + }, + [111] = { + ["X"] = 56.48, + ["Y"] = 41.59, + ["CD"] = 0, + }, + [112] = { + ["X"] = 48.13, + ["Y"] = 46.16, + ["CD"] = 0, + }, + [113] = { + ["X"] = 54.39, + ["Y"] = 47.68, + ["CD"] = 0, + }, + [114] = { + ["X"] = 35.05, + ["Y"] = 48.64, + ["CD"] = 0, + }, + [115] = { + ["X"] = 39.5, + ["Y"] = 33.82, + ["CD"] = 0, + }, + [116] = { + ["X"] = 38.81, + ["Y"] = 40.55, + ["CD"] = 0, + }, + [117] = { + ["X"] = 42.89, + ["Y"] = 42.23, + ["CD"] = 0, + }, + [118] = { + ["X"] = 37.23, + ["Y"] = 54.85, + ["CD"] = 0, + }, + [119] = { + ["X"] = 31.41, + ["Y"] = 49.38, + ["CD"] = 0, + }, + [120] = { + ["X"] = 22.49, + ["Y"] = 32.72, + ["CD"] = 0, + }, + [121] = { + ["X"] = 29.51, + ["Y"] = 30.95, + ["CD"] = 0, + }, + [122] = { + ["X"] = 18.84, + ["Y"] = 20.09, + ["CD"] = 0, + }, + [123] = { + ["X"] = 20.25, + ["Y"] = 19.61, + ["CD"] = 0, + }, + [124] = { + ["X"] = 30.95, + ["Y"] = 24.64, + ["CD"] = 0, + }, + [125] = { + ["X"] = 32.82, + ["Y"] = 23.71, + ["CD"] = 0, + }, + [126] = { + ["X"] = 22.62, + ["Y"] = 34.77, + ["CD"] = 0, + }, + [127] = { + ["X"] = 18.07, + ["Y"] = 44.18, + ["CD"] = 0, + }, + [128] = { + ["X"] = 45.77, + ["Y"] = 48.17, + ["CD"] = 0, + }, + [129] = { + ["X"] = 64.31, + ["Y"] = 45.08, + ["CD"] = 0, + }, + [130] = { + ["X"] = 40.17, + ["Y"] = 80.26, + ["CD"] = 0, + }, + [131] = { + ["X"] = 39.96, + ["Y"] = 85.87, + ["CD"] = 0, + }, + [132] = { + ["X"] = 37.11, + ["Y"] = 56.73, + ["CD"] = 0, + }, + [133] = { + ["X"] = 15.9, + ["Y"] = 23.89, + ["CD"] = 0, + }, + [134] = { + ["X"] = 17.71, + ["Y"] = 29.63, + ["CD"] = 0, + }, + [135] = { + ["X"] = 17.15, + ["Y"] = 32.49, + ["CD"] = 0, + }, + [136] = { + ["X"] = 16.04, + ["Y"] = 38.11, + ["CD"] = 0, + }, + [137] = { + ["X"] = 15.86, + ["Y"] = 43.89, + ["CD"] = 0, + }, + [138] = { + ["X"] = 19.44, + ["Y"] = 54.05, + ["CD"] = 0, + }, + [139] = { + ["X"] = 20.11, + ["Y"] = 59.42, + ["CD"] = 0, + }, + [140] = { + ["X"] = 29.69, + ["Y"] = 52.54, + ["CD"] = 0, + }, + [141] = { + ["X"] = 35.03, + ["Y"] = 49.63, + ["CD"] = 0, + }, + [142] = { + ["X"] = 39.56, + ["Y"] = 79.48, + ["CD"] = 0, + }, + [143] = { + ["X"] = 37.08, + ["Y"] = 55.71, + ["CD"] = 0, + }, + [144] = { + ["X"] = 35.94, + ["Y"] = 61.69, + ["CD"] = 0, + }, + [145] = { + ["X"] = 39.48, + ["Y"] = 54.31, + ["CD"] = 0, + }, + [146] = { + ["X"] = 35.36, + ["Y"] = 64.78, + ["CD"] = 0, + }, + [147] = { + ["X"] = 36.15, + ["Y"] = 53.17, + ["CD"] = 0, + }, + [148] = { + ["X"] = 34.77, + ["Y"] = 58.4, + ["CD"] = 0, + }, + [149] = { + ["X"] = 55.37, + ["Y"] = 47.1, + ["CD"] = 0, + }, + [150] = { + ["X"] = 65.94, + ["Y"] = 44.49, + ["CD"] = 0, + }, + [151] = { + ["X"] = 64.11, + ["Y"] = 48.12, + ["CD"] = 0, + }, + [152] = { + ["X"] = 69.31, + ["Y"] = 50.72, + ["CD"] = 0, + }, + [153] = { + ["X"] = 71.5, + ["Y"] = 47.68, + ["CD"] = 0, + }, + [154] = { + ["X"] = 71.16, + ["Y"] = 53.76, + ["CD"] = 0, + }, + [155] = { + ["X"] = 82.35, + ["Y"] = 61.92, + ["CD"] = 0, + }, + [156] = { + ["X"] = 69.83, + ["Y"] = 56.77, + ["CD"] = 0, + }, + [157] = { + ["X"] = 65.37, + ["Y"] = 53.31, + ["CD"] = 0, + }, + [158] = { + ["X"] = 67.47, + ["Y"] = 56.97, + ["CD"] = 0, + }, + [159] = { + ["X"] = 69.22, + ["Y"] = 60.75, + ["CD"] = 0, + }, + [160] = { + ["X"] = 71.06, + ["Y"] = 63.75, + ["CD"] = 0, + }, + [161] = { + ["X"] = 67.54, + ["Y"] = 65.61, + ["CD"] = 0, + }, + [162] = { + ["X"] = 36.42, + ["Y"] = 50.76, + ["CD"] = 0, + }, + [163] = { + ["X"] = 40.25, + ["Y"] = 55.26, + ["CD"] = 0, + }, + [164] = { + ["X"] = 38.11, + ["Y"] = 49.95, + ["CD"] = 0, + }, + [165] = { + ["X"] = 38.88, + ["Y"] = 59.22, + ["CD"] = 0, + }, + [166] = { + ["X"] = 32.61, + ["Y"] = 50.54, + ["CD"] = 0, + }, + [167] = { + ["X"] = 40.85, + ["Y"] = 41.79, + ["CD"] = 0, + }, + [168] = { + ["X"] = 47.83, + ["Y"] = 43.4, + ["CD"] = 0, + }, + [169] = { + ["X"] = 46.68, + ["Y"] = 36.54, + ["CD"] = 0, + }, + [170] = { + ["X"] = 47.01, + ["Y"] = 34.18, + ["CD"] = 0, + }, + [171] = { + ["X"] = 49.86, + ["Y"] = 30.62, + ["CD"] = 0, + }, + [172] = { + ["X"] = 52.29, + ["Y"] = 31.86, + ["CD"] = 0, + }, + [173] = { + ["X"] = 52.33, + ["Y"] = 31.71, + ["CD"] = 0, + }, + [174] = { + ["X"] = 44.76, + ["Y"] = 23.99, + ["CD"] = 0, + }, + [175] = { + ["X"] = 38.29, + ["Y"] = 47.08, + ["CD"] = 0, + }, + [176] = { + ["X"] = 34.22, + ["Y"] = 43.33, + ["CD"] = 0, + }, + [177] = { + ["X"] = 33.4, + ["Y"] = 82.6, + ["CD"] = 0, + }, + [178] = { + ["X"] = 33.6, + ["Y"] = 78.87, + ["CD"] = 0, + }, + [179] = { + ["X"] = 28.59, + ["Y"] = 58.98, + ["CD"] = 0, + }, + [180] = { + ["X"] = 25.83, + ["Y"] = 62.95, + ["CD"] = 0, + }, + [181] = { + ["X"] = 23.24, + ["Y"] = 65.23, + ["CD"] = 0, + }, + [182] = { + ["X"] = 26.47, + ["Y"] = 27.13, + ["CD"] = 0, + }, + [183] = { + ["X"] = 23.85, + ["Y"] = 26.83, + ["CD"] = 0, + }, + [184] = { + ["X"] = 28.57, + ["Y"] = 20.59, + ["CD"] = 0, + }, + [185] = { + ["X"] = 22.34, + ["Y"] = 24.28, + ["CD"] = 0, + }, + [186] = { + ["X"] = 18.53, + ["Y"] = 19.76, + ["CD"] = 0, + }, + [187] = { + ["X"] = 21.01, + ["Y"] = 19.95, + ["CD"] = 0, + }, + [188] = { + ["X"] = 22.81, + ["Y"] = 31.33, + ["CD"] = 0, + }, + [189] = { + ["X"] = 35.35, + ["Y"] = 30.57, + ["CD"] = 0, + }, + [190] = { + ["X"] = 37.71, + ["Y"] = 29.33, + ["CD"] = 0, + }, + [191] = { + ["X"] = 61.86, + ["Y"] = 43.15, + ["CD"] = 0, + }, + [192] = { + ["X"] = 64.98, + ["Y"] = 61.25, + ["CD"] = 0, + }, + [193] = { + ["X"] = 63.31, + ["Y"] = 53.33, + ["CD"] = 0, + }, + [194] = { + ["X"] = 64.97, + ["Y"] = 46.49, + ["CD"] = 0, + }, + [195] = { + ["X"] = 24.21, + ["Y"] = 39.75, + ["CD"] = 0, + }, + [196] = { + ["X"] = 29.8, + ["Y"] = 70.65, + ["CD"] = 0, + }, + [197] = { + ["X"] = 31.03, + ["Y"] = 63.89, + ["CD"] = 0, + }, + [198] = { + ["X"] = 26.49, + ["Y"] = 61.9, + ["CD"] = 0, + }, + [199] = { + ["X"] = 25.91, + ["Y"] = 58.23, + ["CD"] = 0, + }, + [200] = { + ["X"] = 26.96, + ["Y"] = 57.49, + ["CD"] = 0, + }, + [201] = { + ["X"] = 30.02, + ["Y"] = 79.88, + ["CD"] = 0, + }, + [202] = { + ["X"] = 32.64, + ["Y"] = 74.92, + ["CD"] = 0, + }, + [203] = { + ["X"] = 27.82, + ["Y"] = 81.19, + ["CD"] = 0, + }, + [204] = { + ["X"] = 30.97, + ["Y"] = 71.46, + ["CD"] = 0, + }, + [205] = { + ["X"] = 31.95, + ["Y"] = 65.81, + ["CD"] = 0, + }, + [206] = { + ["X"] = 29.98, + ["Y"] = 59.94, + ["CD"] = 0, + }, + [207] = { + ["X"] = 27.95, + ["Y"] = 65.06, + ["CD"] = 0, + }, + [208] = { + ["X"] = 30.76, + ["Y"] = 67.04, + ["CD"] = 0, + }, + [209] = { + ["X"] = 29.52, + ["Y"] = 80.42, + ["CD"] = 0, + }, + [210] = { + ["X"] = 32.39, + ["Y"] = 80.05, + ["CD"] = 0, + }, + [211] = { + ["X"] = 34.55, + ["Y"] = 47.69, + ["CD"] = 0, + }, + [212] = { + ["X"] = 37.76, + ["Y"] = 48.59, + ["CD"] = 0, + }, + [213] = { + ["X"] = 22.32, + ["Y"] = 40.27, + ["CD"] = 0, + }, + [214] = { + ["X"] = 20.51, + ["Y"] = 41.42, + ["CD"] = 0, + }, + [215] = { + ["X"] = 18.9, + ["Y"] = 41.86, + ["CD"] = 0, + }, + [216] = { + ["X"] = 21.55, + ["Y"] = 45.65, + ["CD"] = 0, + }, + [217] = { + ["X"] = 21.86, + ["Y"] = 44.84, + ["CD"] = 0, + }, + [218] = { + ["X"] = 33.38, + ["Y"] = 39.67, + ["CD"] = 0, + }, + [219] = { + ["X"] = 19.91, + ["Y"] = 20.35, + ["CD"] = 0, + }, + [220] = { + ["X"] = 34.34, + ["Y"] = 20.87, + ["CD"] = 0, + }, + [221] = { + ["X"] = 33.52, + ["Y"] = 24.37, + ["CD"] = 0, + }, + [222] = { + ["X"] = 28.32, + ["Y"] = 14.3, + ["CD"] = 0, + }, + [223] = { + ["X"] = 33.53, + ["Y"] = 50.99, + ["CD"] = 0, + }, + [224] = { + ["X"] = 32.31, + ["Y"] = 48.2, + ["CD"] = 0, + }, + [225] = { + ["X"] = 41.94, + ["Y"] = 18.89, + ["CD"] = 0, + }, + [226] = { + ["X"] = 36.5, + ["Y"] = 25.72, + ["CD"] = 0, + }, + [227] = { + ["X"] = 25.01, + ["Y"] = 35.96, + ["CD"] = 0, + }, + [228] = { + ["X"] = 33.53, + ["Y"] = 44.13, + ["CD"] = 0, + }, + [229] = { + ["X"] = 33.96, + ["Y"] = 47.92, + ["CD"] = 0, + }, + [230] = { + ["X"] = 46.05, + ["Y"] = 49.39, + ["CD"] = 0, + }, + [231] = { + ["X"] = 47.52, + ["Y"] = 48.56, + ["CD"] = 0, + }, + [232] = { + ["X"] = 56.74, + ["Y"] = 46.21, + ["CD"] = 0, + }, + [233] = { + ["X"] = 61.18, + ["Y"] = 43.25, + ["CD"] = 0, + }, + [234] = { + ["X"] = 44.06, + ["Y"] = 41.95, + ["CD"] = 0, + }, + [235] = { + ["X"] = 35.22, + ["Y"] = 51.04, + ["CD"] = 0, + }, + [236] = { + ["X"] = 43.2, + ["Y"] = 40.81, + ["CD"] = 0, + }, + [237] = { + ["X"] = 42.26, + ["Y"] = 32.86, + ["CD"] = 0, + }, + [238] = { + ["X"] = 36.88, + ["Y"] = 52.87, + ["CD"] = 0, + }, + [239] = { + ["X"] = 40.1, + ["Y"] = 53.5, + ["CD"] = 0, + }, + [240] = { + ["X"] = 63.85, + ["Y"] = 43.39, + ["CD"] = 0, + }, + [241] = { + ["X"] = 64.08, + ["Y"] = 61.32, + ["CD"] = 0, + }, + [242] = { + ["X"] = 65.67, + ["Y"] = 56.11, + ["CD"] = 0, + }, + [243] = { + ["X"] = 46.08, + ["Y"] = 34.3, + ["CD"] = 0, + }, + [244] = { + ["X"] = 46.79, + ["Y"] = 32.81, + ["CD"] = 0, + }, + [245] = { + ["X"] = 50.39, + ["Y"] = 40.72, + ["CD"] = 0, + }, + [246] = { + ["X"] = 70.84, + ["Y"] = 60.17, + ["CD"] = 0, + }, + [247] = { + ["X"] = 69.51, + ["Y"] = 67.83, + ["CD"] = 0, + }, + [248] = { + ["X"] = 69.36, + ["Y"] = 69.51, + ["CD"] = 0, + }, + [249] = { + ["X"] = 67.23, + ["Y"] = 66.87, + ["CD"] = 0, + }, + [250] = { + ["X"] = 74.66, + ["Y"] = 68.83, + ["CD"] = 0, + }, + [251] = { + ["X"] = 70.56, + ["Y"] = 71.34, + ["CD"] = 0, + }, + [252] = { + ["X"] = 24.79, + ["Y"] = 57.99, + ["CD"] = 0, + }, + [253] = { + ["X"] = 23.91, + ["Y"] = 67.46, + ["CD"] = 0, + }, + [254] = { + ["X"] = 27.52, + ["Y"] = 67.32, + ["CD"] = 0, + }, + [255] = { + ["X"] = 27.77, + ["Y"] = 73.57, + ["CD"] = 0, + }, + [256] = { + ["X"] = 32.17, + ["Y"] = 77.78, + ["CD"] = 0, + }, + [257] = { + ["X"] = 19.31, + ["Y"] = 46.46, + ["CD"] = 0, + }, + [258] = { + ["X"] = 17.28, + ["Y"] = 45.92, + ["CD"] = 0, + }, + [259] = { + ["X"] = 21.39, + ["Y"] = 43.53, + ["CD"] = 0, + }, + [260] = { + ["X"] = 34.14, + ["Y"] = 45.78, + ["CD"] = 0, + }, + [261] = { + ["X"] = 46.06, + ["Y"] = 26.26, + ["CD"] = 0, + }, + [262] = { + ["X"] = 33.9, + ["Y"] = 41.67, + ["CD"] = 0, + }, + [263] = { + ["X"] = 69.33, + ["Y"] = 71.36, + ["CD"] = 0, + }, + [264] = { + ["X"] = 70.11, + ["Y"] = 68.95, + ["CD"] = 0, + }, + [265] = { + ["X"] = 45.95, + ["Y"] = 29.55, + ["CD"] = 0, + }, + [266] = { + ["X"] = 71.31, + ["Y"] = 71.78, + ["CD"] = 0, + }, + [267] = { + ["X"] = 24.46, + ["Y"] = 54.16, + ["CD"] = 0, + }, + [268] = { + ["X"] = 30.88, + ["Y"] = 54.62, + ["CD"] = 0, + }, + [269] = { + ["X"] = 19.96, + ["Y"] = 16, + ["CD"] = 0, + }, + [270] = { + ["X"] = 72.22, + ["Y"] = 69.78, + ["CD"] = 0, + }, + [271] = { + ["X"] = 62.56, + ["Y"] = 52.21, + ["CD"] = 0, + }, + [272] = { + ["X"] = 24.32, + ["Y"] = 52.38, + ["CD"] = 0, + }, + [273] = { + ["X"] = 37.31, + ["Y"] = 35.96, + ["CD"] = 0, + }, + [274] = { + ["X"] = 43.49, + ["Y"] = 31.39, + ["CD"] = 0, + }, + [275] = { + ["X"] = 32.66, + ["Y"] = 25.11, + ["CD"] = 0, + }, + [276] = { + ["X"] = 51.53, + ["Y"] = 32.25, + ["CD"] = 0, + }, + [277] = { + ["X"] = 52.83, + ["Y"] = 31.34, + ["CD"] = 0, + }, + [278] = { + ["X"] = 44.45, + ["Y"] = 31.35, + ["CD"] = 0, + }, + [279] = { + ["X"] = 23.79, + ["Y"] = 30.99, + ["CD"] = 0, + }, + [280] = { + ["X"] = 63.19, + ["Y"] = 52.61, + ["CD"] = 0, + }, + [281] = { + ["X"] = 32.7, + ["Y"] = 24.23, + ["CD"] = 0, + }, + [282] = { + ["X"] = 36.74, + ["Y"] = 50.84, + ["CD"] = 0, + }, + [283] = { + ["X"] = 62.48, + ["Y"] = 53.74, + ["CD"] = 0, + }, + [284] = { + ["X"] = 69.88, + ["Y"] = 66.33, + ["CD"] = 0, + }, + [285] = { + ["X"] = 30.67, + ["Y"] = 55.81, + ["CD"] = 0, + }, + [286] = { + ["X"] = 25.26, + ["Y"] = 53.34, + ["CD"] = 0, + }, + [287] = { + ["X"] = 46.54, + ["Y"] = 33.81, + ["CD"] = 0, + }, + [288] = { + ["X"] = 38.55, + ["Y"] = 27.71, + ["CD"] = 0, + }, + [289] = { + ["X"] = 18.49, + ["Y"] = 45.55, + ["CD"] = 0, + }, + [290] = { + ["X"] = 71.94, + ["Y"] = 68.81, + ["CD"] = 0, + }, + [291] = { + ["X"] = 71.92, + ["Y"] = 63.63, + ["CD"] = 0, + }, + [292] = { + ["X"] = 29.79, + ["Y"] = 44.61, + ["CD"] = 0, + }, + [293] = { + ["X"] = 30.02, + ["Y"] = 29.48, + ["CD"] = 0, + }, + [294] = { + ["X"] = 31.59, + ["Y"] = 48.32, + ["CD"] = 0, + }, + [295] = { + ["X"] = 37.14, + ["Y"] = 49.13, + ["CD"] = 0, + }, + [296] = { + ["X"] = 33.63, + ["Y"] = 57.28, + ["CD"] = 0, + }, + [297] = { + ["X"] = 36.3, + ["Y"] = 27.92, + ["CD"] = 0, + }, + [298] = { + ["X"] = 18.9, + ["Y"] = 41.86, + ["CD"] = 0, + }, + [299] = { + ["X"] = 32.85, + ["Y"] = 80.52, + ["CD"] = 0, + }, + [300] = { + ["X"] = 25.64, + ["Y"] = 24.21, + ["CD"] = 0, + }, + [301] = { + ["X"] = 62.91, + ["Y"] = 45.74, + ["CD"] = 0, + }, + [302] = { + ["X"] = 38.29, + ["Y"] = 47.08, + ["CD"] = 0, + }, + [303] = { + ["X"] = 65.94, + ["Y"] = 44.49, + ["CD"] = 0, + }, + [304] = { + ["X"] = 63.96, + ["Y"] = 50.46, + ["CD"] = 0, + }, + [305] = { + ["X"] = 30.36, + ["Y"] = 55.61, + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 15 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() - aura_env.minID = - { - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 - } - local pX = GetPlayerMapPosition("player") or 0 - local pY = select(2, GetPlayerMapPosition("player")) or 0 - pX, pY = pX * 100, pY * 100 - for k, v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k - end - end - end - return aura_env.minID["ID"] + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end + end + end + return aura_env.minID["ID"] end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Rich Leystone Deposit.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Rich Leystone Deposit.lua index 30a4795..c461e10 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Rich Leystone Deposit.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Rich Leystone Deposit.lua @@ -1,1233 +1,1031 @@ -aura_env.herbs = -{ - [1] = - { - ["X"] = 42.63, - ["Y"] = 34.55, - ["CD"] = 0 - }, - [2] = - { - ["X"] = 43.99, - ["Y"] = 33.06, - ["CD"] = 0 - }, - [3] = - { - ["X"] = 43.05, - ["Y"] = 31.79, - ["CD"] = 0 - }, - [4] = - { - ["X"] = 43.99, - ["Y"] = 31.16, - ["CD"] = 0 - }, - [5] = - { - ["X"] = 26.64, - ["Y"] = 23.15, - ["CD"] = 0 - }, - [6] = - { - ["X"] = 28.32, - ["Y"] = 23.6, - ["CD"] = 0 - }, - [7] = - { - ["X"] = 28.88, - ["Y"] = 24.6, - ["CD"] = 0 - }, - [8] = - { - ["X"] = 33.61, - ["Y"] = 36.03, - ["CD"] = 0 - }, - [9] = - { - ["X"] = 30.99, - ["Y"] = 39.39, - ["CD"] = 0 - }, - [10] = - { - ["X"] = 26.18, - ["Y"] = 43.14, - ["CD"] = 0 - }, - [11] = - { - ["X"] = 22.71, - ["Y"] = 45.34, - ["CD"] = 0 - }, - [12] = - { - ["X"] = 22.81, - ["Y"] = 49.38, - ["CD"] = 0 - }, - [13] = - { - ["X"] = 21.55, - ["Y"] = 50.1, - ["CD"] = 0 - }, - [14] = - { - ["X"] = 22.18, - ["Y"] = 52.8, - ["CD"] = 0 - }, - [15] = - { - ["X"] = 21.47, - ["Y"] = 56.31, - ["CD"] = 0 - }, - [16] = - { - ["X"] = 20.22, - ["Y"] = 60.26, - ["CD"] = 0 - }, - [17] = - { - ["X"] = 24.53, - ["Y"] = 60.54, - ["CD"] = 0 - }, - [18] = - { - ["X"] = 24.59, - ["Y"] = 62.52, - ["CD"] = 0 - }, - [19] = - { - ["X"] = 26.87, - ["Y"] = 72.95, - ["CD"] = 0 - }, - [20] = - { - ["X"] = 27.78, - ["Y"] = 72.71, - ["CD"] = 0 - }, - [21] = - { - ["X"] = 29.27, - ["Y"] = 71.58, - ["CD"] = 0 - }, - [22] = - { - ["X"] = 30.54, - ["Y"] = 76.06, - ["CD"] = 0 - }, - [23] = - { - ["X"] = 32.41, - ["Y"] = 79.52, - ["CD"] = 0 - }, - [24] = - { - ["X"] = 32.6, - ["Y"] = 74.97, - ["CD"] = 0 - }, - [25] = - { - ["X"] = 33.1, - ["Y"] = 72.68, - ["CD"] = 0 - }, - [26] = - { - ["X"] = 34.44, - ["Y"] = 74.65, - ["CD"] = 0 - }, - [27] = - { - ["X"] = 34.74, - ["Y"] = 82.73, - ["CD"] = 0 - }, - [28] = - { - ["X"] = 29.22, - ["Y"] = 78.87, - ["CD"] = 0 - }, - [29] = - { - ["X"] = 31.67, - ["Y"] = 84.04, - ["CD"] = 0 - }, - [30] = - { - ["X"] = 33.47, - ["Y"] = 80.66, - ["CD"] = 0 - }, - [31] = - { - ["X"] = 36.84, - ["Y"] = 81.04, - ["CD"] = 0 - }, - [32] = - { - ["X"] = 33.58, - ["Y"] = 79.03, - ["CD"] = 0 - }, - [33] = - { - ["X"] = 31.74, - ["Y"] = 76.73, - ["CD"] = 0 - }, - [34] = - { - ["X"] = 31.59, - ["Y"] = 80.8, - ["CD"] = 0 - }, - [35] = - { - ["X"] = 29.41, - ["Y"] = 84.91, - ["CD"] = 0 - }, - [36] = - { - ["X"] = 30.69, - ["Y"] = 79.72, - ["CD"] = 0 - }, - [37] = - { - ["X"] = 31.6, - ["Y"] = 78.17, - ["CD"] = 0 - }, - [38] = - { - ["X"] = 33.91, - ["Y"] = 77.78, - ["CD"] = 0 - }, - [39] = - { - ["X"] = 25.75, - ["Y"] = 60.01, - ["CD"] = 0 - }, - [40] = - { - ["X"] = 25.14, - ["Y"] = 63.26, - ["CD"] = 0 - }, - [41] = - { - ["X"] = 30.02, - ["Y"] = 68.21, - ["CD"] = 0 - }, - [42] = - { - ["X"] = 32.72, - ["Y"] = 69.46, - ["CD"] = 0 - }, - [43] = - { - ["X"] = 27.93, - ["Y"] = 55.27, - ["CD"] = 0 - }, - [44] = - { - ["X"] = 28.97, - ["Y"] = 53.34, - ["CD"] = 0 - }, - [45] = - { - ["X"] = 30.03, - ["Y"] = 54.69, - ["CD"] = 0 - }, - [46] = - { - ["X"] = 34.28, - ["Y"] = 22.25, - ["CD"] = 0 - }, - [47] = - { - ["X"] = 36.44, - ["Y"] = 21.81, - ["CD"] = 0 - }, - [48] = - { - ["X"] = 36.55, - ["Y"] = 17.27, - ["CD"] = 0 - }, - [49] = - { - ["X"] = 34.94, - ["Y"] = 18.5, - ["CD"] = 0 - }, - [50] = - { - ["X"] = 33.19, - ["Y"] = 20.08, - ["CD"] = 0 - }, - [51] = - { - ["X"] = 32.41, - ["Y"] = 22.05, - ["CD"] = 0 - }, - [52] = - { - ["X"] = 31.76, - ["Y"] = 21.01, - ["CD"] = 0 - }, - [53] = - { - ["X"] = 30.89, - ["Y"] = 19.81, - ["CD"] = 0 - }, - [54] = - { - ["X"] = 29.46, - ["Y"] = 17.67, - ["CD"] = 0 - }, - [55] = - { - ["X"] = 27.11, - ["Y"] = 15.7, - ["CD"] = 0 - }, - [56] = - { - ["X"] = 26.68, - ["Y"] = 19.69, - ["CD"] = 0 - }, - [57] = - { - ["X"] = 28.25, - ["Y"] = 17.56, - ["CD"] = 0 - }, - [58] = - { - ["X"] = 30.34, - ["Y"] = 18.98, - ["CD"] = 0 - }, - [59] = - { - ["X"] = 31.53, - ["Y"] = 16.08, - ["CD"] = 0 - }, - [60] = - { - ["X"] = 31.54, - ["Y"] = 19.45, - ["CD"] = 0 - }, - [61] = - { - ["X"] = 32.72, - ["Y"] = 25.06, - ["CD"] = 0 - }, - [62] = - { - ["X"] = 34.2, - ["Y"] = 24.4, - ["CD"] = 0 - }, - [63] = - { - ["X"] = 34.04, - ["Y"] = 27.23, - ["CD"] = 0 - }, - [64] = - { - ["X"] = 32.99, - ["Y"] = 38.64, - ["CD"] = 0 - }, - [65] = - { - ["X"] = 31.15, - ["Y"] = 38.61, - ["CD"] = 0 - }, - [66] = - { - ["X"] = 32.04, - ["Y"] = 39.74, - ["CD"] = 0 - }, - [67] = - { - ["X"] = 32.65, - ["Y"] = 41.89, - ["CD"] = 0 - }, - [68] = - { - ["X"] = 33.1, - ["Y"] = 42.99, - ["CD"] = 0 - }, - [69] = - { - ["X"] = 36.86, - ["Y"] = 46.71, - ["CD"] = 0 - }, - [70] = - { - ["X"] = 37.81, - ["Y"] = 49.74, - ["CD"] = 0 - }, - [71] = - { - ["X"] = 42.95, - ["Y"] = 52.52, - ["CD"] = 0 - }, - [72] = - { - ["X"] = 42.35, - ["Y"] = 48.81, - ["CD"] = 0 - }, - [73] = - { - ["X"] = 69.72, - ["Y"] = 64.19, - ["CD"] = 0 - }, - [74] = - { - ["X"] = 68.37, - ["Y"] = 61.74, - ["CD"] = 0 - }, - [75] = - { - ["X"] = 69.51, - ["Y"] = 65.5, - ["CD"] = 0 - }, - [76] = - { - ["X"] = 70.29, - ["Y"] = 64.48, - ["CD"] = 0 - }, - [77] = - { - ["X"] = 69.13, - ["Y"] = 64.23, - ["CD"] = 0 - }, - [78] = - { - ["X"] = 69.15, - ["Y"] = 60.1, - ["CD"] = 0 - }, - [79] = - { - ["X"] = 67.97, - ["Y"] = 58.14, - ["CD"] = 0 - }, - [80] = - { - ["X"] = 67.14, - ["Y"] = 53.01, - ["CD"] = 0 - }, - [81] = - { - ["X"] = 73.12, - ["Y"] = 48.65, - ["CD"] = 0 - }, - [82] = - { - ["X"] = 73.12, - ["Y"] = 47.89, - ["CD"] = 0 - }, - [83] = - { - ["X"] = 72.19, - ["Y"] = 46.38, - ["CD"] = 0 - }, - [84] = - { - ["X"] = 70.51, - ["Y"] = 46.32, - ["CD"] = 0 - }, - [85] = - { - ["X"] = 68.65, - ["Y"] = 46.67, - ["CD"] = 0 - }, - [86] = - { - ["X"] = 68.55, - ["Y"] = 51.82, - ["CD"] = 0 - }, - [87] = - { - ["X"] = 64.71, - ["Y"] = 51.86, - ["CD"] = 0 - }, - [88] = - { - ["X"] = 63.71, - ["Y"] = 48.77, - ["CD"] = 0 - }, - [89] = - { - ["X"] = 63.62, - ["Y"] = 47.68, - ["CD"] = 0 - }, - [90] = - { - ["X"] = 64.8, - ["Y"] = 46.7, - ["CD"] = 0 - }, - [91] = - { - ["X"] = 66.58, - ["Y"] = 45.28, - ["CD"] = 0 - }, - [92] = - { - ["X"] = 63.34, - ["Y"] = 33.87, - ["CD"] = 0 - }, - [93] = - { - ["X"] = 63.01, - ["Y"] = 34.84, - ["CD"] = 0 - }, - [94] = - { - ["X"] = 61.77, - ["Y"] = 39.07, - ["CD"] = 0 - }, - [95] = - { - ["X"] = 59.21, - ["Y"] = 41.44, - ["CD"] = 0 - }, - [96] = - { - ["X"] = 56.78, - ["Y"] = 42.66, - ["CD"] = 0 - }, - [97] = - { - ["X"] = 55.53, - ["Y"] = 47.09, - ["CD"] = 0 - }, - [98] = - { - ["X"] = 59.44, - ["Y"] = 47.15, - ["CD"] = 0 - }, - [99] = - { - ["X"] = 61.51, - ["Y"] = 51.48, - ["CD"] = 0 - }, - [100] = - { - ["X"] = 63.82, - ["Y"] = 52.27, - ["CD"] = 0 - }, - [101] = - { - ["X"] = 62, - ["Y"] = 52.91, - ["CD"] = 0 - }, - [102] = - { - ["X"] = 61.35, - ["Y"] = 50.51, - ["CD"] = 0 - }, - [103] = - { - ["X"] = 61.74, - ["Y"] = 48.03, - ["CD"] = 0 - }, - [104] = - { - ["X"] = 58.77, - ["Y"] = 43.45, - ["CD"] = 0 - }, - [105] = - { - ["X"] = 58.41, - ["Y"] = 45.39, - ["CD"] = 0 - }, - [106] = - { - ["X"] = 54.5, - ["Y"] = 46.97, - ["CD"] = 0 - }, - [107] = - { - ["X"] = 55.89, - ["Y"] = 45.23, - ["CD"] = 0 - }, - [108] = - { - ["X"] = 56.05, - ["Y"] = 41.79, - ["CD"] = 0 - }, - [109] = - { - ["X"] = 57.41, - ["Y"] = 42.15, - ["CD"] = 0 - }, - [110] = - { - ["X"] = 57.21, - ["Y"] = 44.41, - ["CD"] = 0 - }, - [111] = - { - ["X"] = 57.77, - ["Y"] = 45.14, - ["CD"] = 0 - }, - [112] = - { - ["X"] = 59.3, - ["Y"] = 40.64, - ["CD"] = 0 - }, - [113] = - { - ["X"] = 60.35, - ["Y"] = 40.73, - ["CD"] = 0 - }, - [114] = - { - ["X"] = 61.12, - ["Y"] = 41.76, - ["CD"] = 0 - }, - [115] = - { - ["X"] = 31.67, - ["Y"] = 27.07, - ["CD"] = 0 - }, - [116] = - { - ["X"] = 30.98, - ["Y"] = 24.72, - ["CD"] = 0 - }, - [117] = - { - ["X"] = 29.82, - ["Y"] = 26.4, - ["CD"] = 0 - }, - [118] = - { - ["X"] = 27.29, - ["Y"] = 25.93, - ["CD"] = 0 - }, - [119] = - { - ["X"] = 26.05, - ["Y"] = 27.85, - ["CD"] = 0 - }, - [120] = - { - ["X"] = 26.76, - ["Y"] = 29.56, - ["CD"] = 0 - }, - [121] = - { - ["X"] = 28.39, - ["Y"] = 30.88, - ["CD"] = 0 - }, - [122] = - { - ["X"] = 28.45, - ["Y"] = 31.37, - ["CD"] = 0 - }, - [123] = - { - ["X"] = 29.25, - ["Y"] = 32.11, - ["CD"] = 0 - }, - [124] = - { - ["X"] = 29.96, - ["Y"] = 30.84, - ["CD"] = 0 - }, - [125] = - { - ["X"] = 32.9, - ["Y"] = 32.82, - ["CD"] = 0 - }, - [126] = - { - ["X"] = 31.92, - ["Y"] = 31.74, - ["CD"] = 0 - }, - [127] = - { - ["X"] = 30.75, - ["Y"] = 37.27, - ["CD"] = 0 - }, - [128] = - { - ["X"] = 31.63, - ["Y"] = 37.6, - ["CD"] = 0 - }, - [129] = - { - ["X"] = 27.94, - ["Y"] = 37.72, - ["CD"] = 0 - }, - [130] = - { - ["X"] = 28.17, - ["Y"] = 38.49, - ["CD"] = 0 - }, - [131] = - { - ["X"] = 26.32, - ["Y"] = 40.44, - ["CD"] = 0 - }, - [132] = - { - ["X"] = 24.49, - ["Y"] = 41.81, - ["CD"] = 0 - }, - [133] = - { - ["X"] = 18.08, - ["Y"] = 46.61, - ["CD"] = 0 - }, - [134] = - { - ["X"] = 17.59, - ["Y"] = 45.09, - ["CD"] = 0 - }, - [135] = - { - ["X"] = 18.4, - ["Y"] = 41, - ["CD"] = 0 - }, - [136] = - { - ["X"] = 17.48, - ["Y"] = 39.95, - ["CD"] = 0 - }, - [137] = - { - ["X"] = 18.65, - ["Y"] = 41.96, - ["CD"] = 0 - }, - [138] = - { - ["X"] = 20.95, - ["Y"] = 43.91, - ["CD"] = 0 - }, - [139] = - { - ["X"] = 22.97, - ["Y"] = 47.92, - ["CD"] = 0 - }, - [140] = - { - ["X"] = 19.09, - ["Y"] = 49.69, - ["CD"] = 0 - }, - [141] = - { - ["X"] = 22.03, - ["Y"] = 56.43, - ["CD"] = 0 - }, - [142] = - { - ["X"] = 22.31, - ["Y"] = 58.92, - ["CD"] = 0 - }, - [143] = - { - ["X"] = 25.31, - ["Y"] = 68.09, - ["CD"] = 0 - }, - [144] = - { - ["X"] = 21.62, - ["Y"] = 61.23, - ["CD"] = 0 - }, - [145] = - { - ["X"] = 21.35, - ["Y"] = 59.29, - ["CD"] = 0 - }, - [146] = - { - ["X"] = 19.87, - ["Y"] = 59.06, - ["CD"] = 0 - }, - [147] = - { - ["X"] = 19.27, - ["Y"] = 58.37, - ["CD"] = 0 - }, - [148] = - { - ["X"] = 18.91, - ["Y"] = 56.02, - ["CD"] = 0 - }, - [149] = - { - ["X"] = 20.58, - ["Y"] = 52.54, - ["CD"] = 0 - }, - [150] = - { - ["X"] = 20.05, - ["Y"] = 50.86, - ["CD"] = 0 - }, - [151] = - { - ["X"] = 22.43, - ["Y"] = 54.14, - ["CD"] = 0 - }, - [152] = - { - ["X"] = 23.28, - ["Y"] = 54.2, - ["CD"] = 0 - }, - [153] = - { - ["X"] = 26.01, - ["Y"] = 50.3, - ["CD"] = 0 - }, - [154] = - { - ["X"] = 27.47, - ["Y"] = 49.06, - ["CD"] = 0 - }, - [155] = - { - ["X"] = 28.48, - ["Y"] = 47.38, - ["CD"] = 0 - }, - [156] = - { - ["X"] = 27.49, - ["Y"] = 43.9, - ["CD"] = 0 - }, - [157] = - { - ["X"] = 27.59, - ["Y"] = 41.63, - ["CD"] = 0 - }, - [158] = - { - ["X"] = 29.31, - ["Y"] = 38.42, - ["CD"] = 0 - }, - [159] = - { - ["X"] = 37.52, - ["Y"] = 25.52, - ["CD"] = 0 - }, - [160] = - { - ["X"] = 35.96, - ["Y"] = 27.82, - ["CD"] = 0 - }, - [161] = - { - ["X"] = 34.07, - ["Y"] = 31.49, - ["CD"] = 0 - }, - [162] = - { - ["X"] = 35.03, - ["Y"] = 31.58, - ["CD"] = 0 - }, - [163] = - { - ["X"] = 34.02, - ["Y"] = 33.22, - ["CD"] = 0 - }, - [164] = - { - ["X"] = 33.82, - ["Y"] = 34.84, - ["CD"] = 0 - }, - [165] = - { - ["X"] = 34.21, - ["Y"] = 37.6, - ["CD"] = 0 - }, - [166] = - { - ["X"] = 47.11, - ["Y"] = 38.8, - ["CD"] = 0 - }, - [167] = - { - ["X"] = 44.32, - ["Y"] = 40.46, - ["CD"] = 0 - }, - [168] = - { - ["X"] = 42.59, - ["Y"] = 42.28, - ["CD"] = 0 - }, - [169] = - { - ["X"] = 42.94, - ["Y"] = 42.27, - ["CD"] = 0 - }, - [170] = - { - ["X"] = 45.1, - ["Y"] = 42.16, - ["CD"] = 0 - }, - [171] = - { - ["X"] = 46.25, - ["Y"] = 43.49, - ["CD"] = 0 - }, - [172] = - { - ["X"] = 45.88, - ["Y"] = 45.2, - ["CD"] = 0 - }, - [173] = - { - ["X"] = 45.17, - ["Y"] = 46.78, - ["CD"] = 0 - }, - [174] = - { - ["X"] = 43.62, - ["Y"] = 46.21, - ["CD"] = 0 - }, - [175] = - { - ["X"] = 43.43, - ["Y"] = 47.27, - ["CD"] = 0 - }, - [176] = - { - ["X"] = 43, - ["Y"] = 47.82, - ["CD"] = 0 - }, - [177] = - { - ["X"] = 41.94, - ["Y"] = 46.63, - ["CD"] = 0 - }, - [178] = - { - ["X"] = 40.91, - ["Y"] = 47.21, - ["CD"] = 0 - }, - [179] = - { - ["X"] = 39.44, - ["Y"] = 47.72, - ["CD"] = 0 - }, - [180] = - { - ["X"] = 36.48, - ["Y"] = 48.68, - ["CD"] = 0 - }, - [181] = - { - ["X"] = 35.38, - ["Y"] = 46.59, - ["CD"] = 0 - }, - [182] = - { - ["X"] = 35.17, - ["Y"] = 45.4, - ["CD"] = 0 - }, - [183] = - { - ["X"] = 39.19, - ["Y"] = 38.05, - ["CD"] = 0 - }, - [184] = - { - ["X"] = 41.12, - ["Y"] = 37.99, - ["CD"] = 0 - }, - [185] = - { - ["X"] = 40.16, - ["Y"] = 36.83, - ["CD"] = 0 - }, - [186] = - { - ["X"] = 39.98, - ["Y"] = 39.7, - ["CD"] = 0 - }, - [187] = - { - ["X"] = 38.39, - ["Y"] = 40.1, - ["CD"] = 0 - }, - [188] = - { - ["X"] = 37.24, - ["Y"] = 41.92, - ["CD"] = 0 - }, - [189] = - { - ["X"] = 36.93, - ["Y"] = 43.94, - ["CD"] = 0 - }, - [190] = - { - ["X"] = 36.15, - ["Y"] = 43.84, - ["CD"] = 0 - }, - [191] = - { - ["X"] = 36.94, - ["Y"] = 44.84, - ["CD"] = 0 - }, - [192] = - { - ["X"] = 38.61, - ["Y"] = 47.11, - ["CD"] = 0 - }, - [193] = - { - ["X"] = 37.74, - ["Y"] = 48.57, - ["CD"] = 0 - }, - [194] = - { - ["X"] = 38.21, - ["Y"] = 51.02, - ["CD"] = 0 - }, - [195] = - { - ["X"] = 37.57, - ["Y"] = 51.13, - ["CD"] = 0 - }, - [196] = - { - ["X"] = 34.62, - ["Y"] = 56.53, - ["CD"] = 0 - }, - [197] = - { - ["X"] = 33.91, - ["Y"] = 54.15, - ["CD"] = 0 - }, - [198] = - { - ["X"] = 35.96, - ["Y"] = 51.61, - ["CD"] = 0 - }, - [199] = - { - ["X"] = 35.55, - ["Y"] = 61.86, - ["CD"] = 0 - }, - [200] = - { - ["X"] = 68.25, - ["Y"] = 61.21, - ["CD"] = 0 -} +aura_env.herbs = { + [1] = { + ["X"] = 42.63, + ["Y"] = 34.55, + ["CD"] = 0, + }, + [2] = { + ["X"] = 43.99, + ["Y"] = 33.06, + ["CD"] = 0, + }, + [3] = { + ["X"] = 43.05, + ["Y"] = 31.79, + ["CD"] = 0, + }, + [4] = { + ["X"] = 43.99, + ["Y"] = 31.16, + ["CD"] = 0, + }, + [5] = { + ["X"] = 26.64, + ["Y"] = 23.15, + ["CD"] = 0, + }, + [6] = { + ["X"] = 28.32, + ["Y"] = 23.6, + ["CD"] = 0, + }, + [7] = { + ["X"] = 28.88, + ["Y"] = 24.6, + ["CD"] = 0, + }, + [8] = { + ["X"] = 33.61, + ["Y"] = 36.03, + ["CD"] = 0, + }, + [9] = { + ["X"] = 30.99, + ["Y"] = 39.39, + ["CD"] = 0, + }, + [10] = { + ["X"] = 26.18, + ["Y"] = 43.14, + ["CD"] = 0, + }, + [11] = { + ["X"] = 22.71, + ["Y"] = 45.34, + ["CD"] = 0, + }, + [12] = { + ["X"] = 22.81, + ["Y"] = 49.38, + ["CD"] = 0, + }, + [13] = { + ["X"] = 21.55, + ["Y"] = 50.1, + ["CD"] = 0, + }, + [14] = { + ["X"] = 22.18, + ["Y"] = 52.8, + ["CD"] = 0, + }, + [15] = { + ["X"] = 21.47, + ["Y"] = 56.31, + ["CD"] = 0, + }, + [16] = { + ["X"] = 20.22, + ["Y"] = 60.26, + ["CD"] = 0, + }, + [17] = { + ["X"] = 24.53, + ["Y"] = 60.54, + ["CD"] = 0, + }, + [18] = { + ["X"] = 24.59, + ["Y"] = 62.52, + ["CD"] = 0, + }, + [19] = { + ["X"] = 26.87, + ["Y"] = 72.95, + ["CD"] = 0, + }, + [20] = { + ["X"] = 27.78, + ["Y"] = 72.71, + ["CD"] = 0, + }, + [21] = { + ["X"] = 29.27, + ["Y"] = 71.58, + ["CD"] = 0, + }, + [22] = { + ["X"] = 30.54, + ["Y"] = 76.06, + ["CD"] = 0, + }, + [23] = { + ["X"] = 32.41, + ["Y"] = 79.52, + ["CD"] = 0, + }, + [24] = { + ["X"] = 32.6, + ["Y"] = 74.97, + ["CD"] = 0, + }, + [25] = { + ["X"] = 33.1, + ["Y"] = 72.68, + ["CD"] = 0, + }, + [26] = { + ["X"] = 34.44, + ["Y"] = 74.65, + ["CD"] = 0, + }, + [27] = { + ["X"] = 34.74, + ["Y"] = 82.73, + ["CD"] = 0, + }, + [28] = { + ["X"] = 29.22, + ["Y"] = 78.87, + ["CD"] = 0, + }, + [29] = { + ["X"] = 31.67, + ["Y"] = 84.04, + ["CD"] = 0, + }, + [30] = { + ["X"] = 33.47, + ["Y"] = 80.66, + ["CD"] = 0, + }, + [31] = { + ["X"] = 36.84, + ["Y"] = 81.04, + ["CD"] = 0, + }, + [32] = { + ["X"] = 33.58, + ["Y"] = 79.03, + ["CD"] = 0, + }, + [33] = { + ["X"] = 31.74, + ["Y"] = 76.73, + ["CD"] = 0, + }, + [34] = { + ["X"] = 31.59, + ["Y"] = 80.8, + ["CD"] = 0, + }, + [35] = { + ["X"] = 29.41, + ["Y"] = 84.91, + ["CD"] = 0, + }, + [36] = { + ["X"] = 30.69, + ["Y"] = 79.72, + ["CD"] = 0, + }, + [37] = { + ["X"] = 31.6, + ["Y"] = 78.17, + ["CD"] = 0, + }, + [38] = { + ["X"] = 33.91, + ["Y"] = 77.78, + ["CD"] = 0, + }, + [39] = { + ["X"] = 25.75, + ["Y"] = 60.01, + ["CD"] = 0, + }, + [40] = { + ["X"] = 25.14, + ["Y"] = 63.26, + ["CD"] = 0, + }, + [41] = { + ["X"] = 30.02, + ["Y"] = 68.21, + ["CD"] = 0, + }, + [42] = { + ["X"] = 32.72, + ["Y"] = 69.46, + ["CD"] = 0, + }, + [43] = { + ["X"] = 27.93, + ["Y"] = 55.27, + ["CD"] = 0, + }, + [44] = { + ["X"] = 28.97, + ["Y"] = 53.34, + ["CD"] = 0, + }, + [45] = { + ["X"] = 30.03, + ["Y"] = 54.69, + ["CD"] = 0, + }, + [46] = { + ["X"] = 34.28, + ["Y"] = 22.25, + ["CD"] = 0, + }, + [47] = { + ["X"] = 36.44, + ["Y"] = 21.81, + ["CD"] = 0, + }, + [48] = { + ["X"] = 36.55, + ["Y"] = 17.27, + ["CD"] = 0, + }, + [49] = { + ["X"] = 34.94, + ["Y"] = 18.5, + ["CD"] = 0, + }, + [50] = { + ["X"] = 33.19, + ["Y"] = 20.08, + ["CD"] = 0, + }, + [51] = { + ["X"] = 32.41, + ["Y"] = 22.05, + ["CD"] = 0, + }, + [52] = { + ["X"] = 31.76, + ["Y"] = 21.01, + ["CD"] = 0, + }, + [53] = { + ["X"] = 30.89, + ["Y"] = 19.81, + ["CD"] = 0, + }, + [54] = { + ["X"] = 29.46, + ["Y"] = 17.67, + ["CD"] = 0, + }, + [55] = { + ["X"] = 27.11, + ["Y"] = 15.7, + ["CD"] = 0, + }, + [56] = { + ["X"] = 26.68, + ["Y"] = 19.69, + ["CD"] = 0, + }, + [57] = { + ["X"] = 28.25, + ["Y"] = 17.56, + ["CD"] = 0, + }, + [58] = { + ["X"] = 30.34, + ["Y"] = 18.98, + ["CD"] = 0, + }, + [59] = { + ["X"] = 31.53, + ["Y"] = 16.08, + ["CD"] = 0, + }, + [60] = { + ["X"] = 31.54, + ["Y"] = 19.45, + ["CD"] = 0, + }, + [61] = { + ["X"] = 32.72, + ["Y"] = 25.06, + ["CD"] = 0, + }, + [62] = { + ["X"] = 34.2, + ["Y"] = 24.4, + ["CD"] = 0, + }, + [63] = { + ["X"] = 34.04, + ["Y"] = 27.23, + ["CD"] = 0, + }, + [64] = { + ["X"] = 32.99, + ["Y"] = 38.64, + ["CD"] = 0, + }, + [65] = { + ["X"] = 31.15, + ["Y"] = 38.61, + ["CD"] = 0, + }, + [66] = { + ["X"] = 32.04, + ["Y"] = 39.74, + ["CD"] = 0, + }, + [67] = { + ["X"] = 32.65, + ["Y"] = 41.89, + ["CD"] = 0, + }, + [68] = { + ["X"] = 33.1, + ["Y"] = 42.99, + ["CD"] = 0, + }, + [69] = { + ["X"] = 36.86, + ["Y"] = 46.71, + ["CD"] = 0, + }, + [70] = { + ["X"] = 37.81, + ["Y"] = 49.74, + ["CD"] = 0, + }, + [71] = { + ["X"] = 42.95, + ["Y"] = 52.52, + ["CD"] = 0, + }, + [72] = { + ["X"] = 42.35, + ["Y"] = 48.81, + ["CD"] = 0, + }, + [73] = { + ["X"] = 69.72, + ["Y"] = 64.19, + ["CD"] = 0, + }, + [74] = { + ["X"] = 68.37, + ["Y"] = 61.74, + ["CD"] = 0, + }, + [75] = { + ["X"] = 69.51, + ["Y"] = 65.5, + ["CD"] = 0, + }, + [76] = { + ["X"] = 70.29, + ["Y"] = 64.48, + ["CD"] = 0, + }, + [77] = { + ["X"] = 69.13, + ["Y"] = 64.23, + ["CD"] = 0, + }, + [78] = { + ["X"] = 69.15, + ["Y"] = 60.1, + ["CD"] = 0, + }, + [79] = { + ["X"] = 67.97, + ["Y"] = 58.14, + ["CD"] = 0, + }, + [80] = { + ["X"] = 67.14, + ["Y"] = 53.01, + ["CD"] = 0, + }, + [81] = { + ["X"] = 73.12, + ["Y"] = 48.65, + ["CD"] = 0, + }, + [82] = { + ["X"] = 73.12, + ["Y"] = 47.89, + ["CD"] = 0, + }, + [83] = { + ["X"] = 72.19, + ["Y"] = 46.38, + ["CD"] = 0, + }, + [84] = { + ["X"] = 70.51, + ["Y"] = 46.32, + ["CD"] = 0, + }, + [85] = { + ["X"] = 68.65, + ["Y"] = 46.67, + ["CD"] = 0, + }, + [86] = { + ["X"] = 68.55, + ["Y"] = 51.82, + ["CD"] = 0, + }, + [87] = { + ["X"] = 64.71, + ["Y"] = 51.86, + ["CD"] = 0, + }, + [88] = { + ["X"] = 63.71, + ["Y"] = 48.77, + ["CD"] = 0, + }, + [89] = { + ["X"] = 63.62, + ["Y"] = 47.68, + ["CD"] = 0, + }, + [90] = { + ["X"] = 64.8, + ["Y"] = 46.7, + ["CD"] = 0, + }, + [91] = { + ["X"] = 66.58, + ["Y"] = 45.28, + ["CD"] = 0, + }, + [92] = { + ["X"] = 63.34, + ["Y"] = 33.87, + ["CD"] = 0, + }, + [93] = { + ["X"] = 63.01, + ["Y"] = 34.84, + ["CD"] = 0, + }, + [94] = { + ["X"] = 61.77, + ["Y"] = 39.07, + ["CD"] = 0, + }, + [95] = { + ["X"] = 59.21, + ["Y"] = 41.44, + ["CD"] = 0, + }, + [96] = { + ["X"] = 56.78, + ["Y"] = 42.66, + ["CD"] = 0, + }, + [97] = { + ["X"] = 55.53, + ["Y"] = 47.09, + ["CD"] = 0, + }, + [98] = { + ["X"] = 59.44, + ["Y"] = 47.15, + ["CD"] = 0, + }, + [99] = { + ["X"] = 61.51, + ["Y"] = 51.48, + ["CD"] = 0, + }, + [100] = { + ["X"] = 63.82, + ["Y"] = 52.27, + ["CD"] = 0, + }, + [101] = { + ["X"] = 62, + ["Y"] = 52.91, + ["CD"] = 0, + }, + [102] = { + ["X"] = 61.35, + ["Y"] = 50.51, + ["CD"] = 0, + }, + [103] = { + ["X"] = 61.74, + ["Y"] = 48.03, + ["CD"] = 0, + }, + [104] = { + ["X"] = 58.77, + ["Y"] = 43.45, + ["CD"] = 0, + }, + [105] = { + ["X"] = 58.41, + ["Y"] = 45.39, + ["CD"] = 0, + }, + [106] = { + ["X"] = 54.5, + ["Y"] = 46.97, + ["CD"] = 0, + }, + [107] = { + ["X"] = 55.89, + ["Y"] = 45.23, + ["CD"] = 0, + }, + [108] = { + ["X"] = 56.05, + ["Y"] = 41.79, + ["CD"] = 0, + }, + [109] = { + ["X"] = 57.41, + ["Y"] = 42.15, + ["CD"] = 0, + }, + [110] = { + ["X"] = 57.21, + ["Y"] = 44.41, + ["CD"] = 0, + }, + [111] = { + ["X"] = 57.77, + ["Y"] = 45.14, + ["CD"] = 0, + }, + [112] = { + ["X"] = 59.3, + ["Y"] = 40.64, + ["CD"] = 0, + }, + [113] = { + ["X"] = 60.35, + ["Y"] = 40.73, + ["CD"] = 0, + }, + [114] = { + ["X"] = 61.12, + ["Y"] = 41.76, + ["CD"] = 0, + }, + [115] = { + ["X"] = 31.67, + ["Y"] = 27.07, + ["CD"] = 0, + }, + [116] = { + ["X"] = 30.98, + ["Y"] = 24.72, + ["CD"] = 0, + }, + [117] = { + ["X"] = 29.82, + ["Y"] = 26.4, + ["CD"] = 0, + }, + [118] = { + ["X"] = 27.29, + ["Y"] = 25.93, + ["CD"] = 0, + }, + [119] = { + ["X"] = 26.05, + ["Y"] = 27.85, + ["CD"] = 0, + }, + [120] = { + ["X"] = 26.76, + ["Y"] = 29.56, + ["CD"] = 0, + }, + [121] = { + ["X"] = 28.39, + ["Y"] = 30.88, + ["CD"] = 0, + }, + [122] = { + ["X"] = 28.45, + ["Y"] = 31.37, + ["CD"] = 0, + }, + [123] = { + ["X"] = 29.25, + ["Y"] = 32.11, + ["CD"] = 0, + }, + [124] = { + ["X"] = 29.96, + ["Y"] = 30.84, + ["CD"] = 0, + }, + [125] = { + ["X"] = 32.9, + ["Y"] = 32.82, + ["CD"] = 0, + }, + [126] = { + ["X"] = 31.92, + ["Y"] = 31.74, + ["CD"] = 0, + }, + [127] = { + ["X"] = 30.75, + ["Y"] = 37.27, + ["CD"] = 0, + }, + [128] = { + ["X"] = 31.63, + ["Y"] = 37.6, + ["CD"] = 0, + }, + [129] = { + ["X"] = 27.94, + ["Y"] = 37.72, + ["CD"] = 0, + }, + [130] = { + ["X"] = 28.17, + ["Y"] = 38.49, + ["CD"] = 0, + }, + [131] = { + ["X"] = 26.32, + ["Y"] = 40.44, + ["CD"] = 0, + }, + [132] = { + ["X"] = 24.49, + ["Y"] = 41.81, + ["CD"] = 0, + }, + [133] = { + ["X"] = 18.08, + ["Y"] = 46.61, + ["CD"] = 0, + }, + [134] = { + ["X"] = 17.59, + ["Y"] = 45.09, + ["CD"] = 0, + }, + [135] = { + ["X"] = 18.4, + ["Y"] = 41, + ["CD"] = 0, + }, + [136] = { + ["X"] = 17.48, + ["Y"] = 39.95, + ["CD"] = 0, + }, + [137] = { + ["X"] = 18.65, + ["Y"] = 41.96, + ["CD"] = 0, + }, + [138] = { + ["X"] = 20.95, + ["Y"] = 43.91, + ["CD"] = 0, + }, + [139] = { + ["X"] = 22.97, + ["Y"] = 47.92, + ["CD"] = 0, + }, + [140] = { + ["X"] = 19.09, + ["Y"] = 49.69, + ["CD"] = 0, + }, + [141] = { + ["X"] = 22.03, + ["Y"] = 56.43, + ["CD"] = 0, + }, + [142] = { + ["X"] = 22.31, + ["Y"] = 58.92, + ["CD"] = 0, + }, + [143] = { + ["X"] = 25.31, + ["Y"] = 68.09, + ["CD"] = 0, + }, + [144] = { + ["X"] = 21.62, + ["Y"] = 61.23, + ["CD"] = 0, + }, + [145] = { + ["X"] = 21.35, + ["Y"] = 59.29, + ["CD"] = 0, + }, + [146] = { + ["X"] = 19.87, + ["Y"] = 59.06, + ["CD"] = 0, + }, + [147] = { + ["X"] = 19.27, + ["Y"] = 58.37, + ["CD"] = 0, + }, + [148] = { + ["X"] = 18.91, + ["Y"] = 56.02, + ["CD"] = 0, + }, + [149] = { + ["X"] = 20.58, + ["Y"] = 52.54, + ["CD"] = 0, + }, + [150] = { + ["X"] = 20.05, + ["Y"] = 50.86, + ["CD"] = 0, + }, + [151] = { + ["X"] = 22.43, + ["Y"] = 54.14, + ["CD"] = 0, + }, + [152] = { + ["X"] = 23.28, + ["Y"] = 54.2, + ["CD"] = 0, + }, + [153] = { + ["X"] = 26.01, + ["Y"] = 50.3, + ["CD"] = 0, + }, + [154] = { + ["X"] = 27.47, + ["Y"] = 49.06, + ["CD"] = 0, + }, + [155] = { + ["X"] = 28.48, + ["Y"] = 47.38, + ["CD"] = 0, + }, + [156] = { + ["X"] = 27.49, + ["Y"] = 43.9, + ["CD"] = 0, + }, + [157] = { + ["X"] = 27.59, + ["Y"] = 41.63, + ["CD"] = 0, + }, + [158] = { + ["X"] = 29.31, + ["Y"] = 38.42, + ["CD"] = 0, + }, + [159] = { + ["X"] = 37.52, + ["Y"] = 25.52, + ["CD"] = 0, + }, + [160] = { + ["X"] = 35.96, + ["Y"] = 27.82, + ["CD"] = 0, + }, + [161] = { + ["X"] = 34.07, + ["Y"] = 31.49, + ["CD"] = 0, + }, + [162] = { + ["X"] = 35.03, + ["Y"] = 31.58, + ["CD"] = 0, + }, + [163] = { + ["X"] = 34.02, + ["Y"] = 33.22, + ["CD"] = 0, + }, + [164] = { + ["X"] = 33.82, + ["Y"] = 34.84, + ["CD"] = 0, + }, + [165] = { + ["X"] = 34.21, + ["Y"] = 37.6, + ["CD"] = 0, + }, + [166] = { + ["X"] = 47.11, + ["Y"] = 38.8, + ["CD"] = 0, + }, + [167] = { + ["X"] = 44.32, + ["Y"] = 40.46, + ["CD"] = 0, + }, + [168] = { + ["X"] = 42.59, + ["Y"] = 42.28, + ["CD"] = 0, + }, + [169] = { + ["X"] = 42.94, + ["Y"] = 42.27, + ["CD"] = 0, + }, + [170] = { + ["X"] = 45.1, + ["Y"] = 42.16, + ["CD"] = 0, + }, + [171] = { + ["X"] = 46.25, + ["Y"] = 43.49, + ["CD"] = 0, + }, + [172] = { + ["X"] = 45.88, + ["Y"] = 45.2, + ["CD"] = 0, + }, + [173] = { + ["X"] = 45.17, + ["Y"] = 46.78, + ["CD"] = 0, + }, + [174] = { + ["X"] = 43.62, + ["Y"] = 46.21, + ["CD"] = 0, + }, + [175] = { + ["X"] = 43.43, + ["Y"] = 47.27, + ["CD"] = 0, + }, + [176] = { + ["X"] = 43, + ["Y"] = 47.82, + ["CD"] = 0, + }, + [177] = { + ["X"] = 41.94, + ["Y"] = 46.63, + ["CD"] = 0, + }, + [178] = { + ["X"] = 40.91, + ["Y"] = 47.21, + ["CD"] = 0, + }, + [179] = { + ["X"] = 39.44, + ["Y"] = 47.72, + ["CD"] = 0, + }, + [180] = { + ["X"] = 36.48, + ["Y"] = 48.68, + ["CD"] = 0, + }, + [181] = { + ["X"] = 35.38, + ["Y"] = 46.59, + ["CD"] = 0, + }, + [182] = { + ["X"] = 35.17, + ["Y"] = 45.4, + ["CD"] = 0, + }, + [183] = { + ["X"] = 39.19, + ["Y"] = 38.05, + ["CD"] = 0, + }, + [184] = { + ["X"] = 41.12, + ["Y"] = 37.99, + ["CD"] = 0, + }, + [185] = { + ["X"] = 40.16, + ["Y"] = 36.83, + ["CD"] = 0, + }, + [186] = { + ["X"] = 39.98, + ["Y"] = 39.7, + ["CD"] = 0, + }, + [187] = { + ["X"] = 38.39, + ["Y"] = 40.1, + ["CD"] = 0, + }, + [188] = { + ["X"] = 37.24, + ["Y"] = 41.92, + ["CD"] = 0, + }, + [189] = { + ["X"] = 36.93, + ["Y"] = 43.94, + ["CD"] = 0, + }, + [190] = { + ["X"] = 36.15, + ["Y"] = 43.84, + ["CD"] = 0, + }, + [191] = { + ["X"] = 36.94, + ["Y"] = 44.84, + ["CD"] = 0, + }, + [192] = { + ["X"] = 38.61, + ["Y"] = 47.11, + ["CD"] = 0, + }, + [193] = { + ["X"] = 37.74, + ["Y"] = 48.57, + ["CD"] = 0, + }, + [194] = { + ["X"] = 38.21, + ["Y"] = 51.02, + ["CD"] = 0, + }, + [195] = { + ["X"] = 37.57, + ["Y"] = 51.13, + ["CD"] = 0, + }, + [196] = { + ["X"] = 34.62, + ["Y"] = 56.53, + ["CD"] = 0, + }, + [197] = { + ["X"] = 33.91, + ["Y"] = 54.15, + ["CD"] = 0, + }, + [198] = { + ["X"] = 35.96, + ["Y"] = 51.61, + ["CD"] = 0, + }, + [199] = { + ["X"] = 35.55, + ["Y"] = 61.86, + ["CD"] = 0, + }, + [200] = { + ["X"] = 68.25, + ["Y"] = 61.21, + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 15 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Titanium.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Titanium.lua index 89b4fdf..e3831f2 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Titanium.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Titanium.lua @@ -1,453 +1,381 @@ -aura_env.herbs = -{ - [1] = - { - ["X"] = 64.49, - ["Y"] = 56.55, - ["CD"] = 0 - }, - [2] = - { - ["X"] = 63.79, - ["Y"] = 54.73, - ["CD"] = 0 - }, - [3] = - { - ["X"] = 61.99, - ["Y"] = 53.82, - ["CD"] = 0 - }, - [4] = - { - ["X"] = 61.48, - ["Y"] = 49.4, - ["CD"] = 0 - }, - [5] = - { - ["X"] = 61.46, - ["Y"] = 47.17, - ["CD"] = 0 - }, - [6] = - { - ["X"] = 59.23, - ["Y"] = 46.84, - ["CD"] = 0 - }, - [7] = - { - ["X"] = 56.86, - ["Y"] = 45.6, - ["CD"] = 0 - }, - [8] = - { - ["X"] = 55.78, - ["Y"] = 44.91, - ["CD"] = 0 - }, - [9] = - { - ["X"] = 55.06, - ["Y"] = 34.48, - ["CD"] = 0 - }, - [10] = - { - ["X"] = 56.92, - ["Y"] = 34.22, - ["CD"] = 0 - }, - [11] = - { - ["X"] = 59, - ["Y"] = 34.83, - ["CD"] = 0 - }, - [12] = - { - ["X"] = 60.2, - ["Y"] = 36.57, - ["CD"] = 0 - }, - [13] = - { - ["X"] = 61.85, - ["Y"] = 36.99, - ["CD"] = 0 - }, - [14] = - { - ["X"] = 64.38, - ["Y"] = 35.48, - ["CD"] = 0 - }, - [15] = - { - ["X"] = 66.81, - ["Y"] = 36.14, - ["CD"] = 0 - }, - [16] = - { - ["X"] = 67.47, - ["Y"] = 35.67, - ["CD"] = 0 - }, - [17] = - { - ["X"] = 69.55, - ["Y"] = 37.38, - ["CD"] = 0 - }, - [18] = - { - ["X"] = 69.25, - ["Y"] = 37.57, - ["CD"] = 0 - }, - [19] = - { - ["X"] = 68.77, - ["Y"] = 39.03, - ["CD"] = 0 - }, - [20] = - { - ["X"] = 70.23, - ["Y"] = 39.53, - ["CD"] = 0 - }, - [21] = - { - ["X"] = 72.53, - ["Y"] = 40.98, - ["CD"] = 0 - }, - [22] = - { - ["X"] = 77.18, - ["Y"] = 44.12, - ["CD"] = 0 - }, - [23] = - { - ["X"] = 77.7, - ["Y"] = 50.51, - ["CD"] = 0 - }, - [24] = - { - ["X"] = 77.21, - ["Y"] = 49.87, - ["CD"] = 0 - }, - [25] = - { - ["X"] = 77.8, - ["Y"] = 48.72, - ["CD"] = 0 - }, - [26] = - { - ["X"] = 77.04, - ["Y"] = 47.98, - ["CD"] = 0 - }, - [27] = - { - ["X"] = 74.84, - ["Y"] = 48.86, - ["CD"] = 0 - }, - [28] = - { - ["X"] = 74.71, - ["Y"] = 49.87, - ["CD"] = 0 - }, - [29] = - { - ["X"] = 77.44, - ["Y"] = 51.67, - ["CD"] = 0 - }, - [30] = - { - ["X"] = 78.28, - ["Y"] = 52.79, - ["CD"] = 0 - }, - [31] = - { - ["X"] = 76.61, - ["Y"] = 56.1, - ["CD"] = 0 - }, - [32] = - { - ["X"] = 78.15, - ["Y"] = 58.13, - ["CD"] = 0 - }, - [33] = - { - ["X"] = 77.88, - ["Y"] = 59.33, - ["CD"] = 0 - }, - [34] = - { - ["X"] = 78.99, - ["Y"] = 59.38, - ["CD"] = 0 - }, - [35] = - { - ["X"] = 78.7, - ["Y"] = 61.8, - ["CD"] = 0 - }, - [36] = - { - ["X"] = 80.81, - ["Y"] = 62.57, - ["CD"] = 0 - }, - [37] = - { - ["X"] = 80.67, - ["Y"] = 63.24, - ["CD"] = 0 - }, - [38] = - { - ["X"] = 81.77, - ["Y"] = 64.74, - ["CD"] = 0 - }, - [39] = - { - ["X"] = 81.61, - ["Y"] = 67.37, - ["CD"] = 0 - }, - [40] = - { - ["X"] = 80.59, - ["Y"] = 69.27, - ["CD"] = 0 - }, - [41] = - { - ["X"] = 54.85, - ["Y"] = 78.82, - ["CD"] = 0 - }, - [42] = - { - ["X"] = 54.64, - ["Y"] = 77.06, - ["CD"] = 0 - }, - [43] = - { - ["X"] = 54.11, - ["Y"] = 76.34, - ["CD"] = 0 - }, - [44] = - { - ["X"] = 52.14, - ["Y"] = 71.88, - ["CD"] = 0 - }, - [45] = - { - ["X"] = 49.89, - ["Y"] = 61.13, - ["CD"] = 0 - }, - [46] = - { - ["X"] = 49.47, - ["Y"] = 56.45, - ["CD"] = 0 - }, - [47] = - { - ["X"] = 49.33, - ["Y"] = 52.48, - ["CD"] = 0 - }, - [48] = - { - ["X"] = 49.79, - ["Y"] = 47.5, - ["CD"] = 0 - }, - [49] = - { - ["X"] = 78.74, - ["Y"] = 32.35, - ["CD"] = 0 - }, - [50] = - { - ["X"] = 76.86, - ["Y"] = 33.06, - ["CD"] = 0 - }, - [51] = - { - ["X"] = 74.67, - ["Y"] = 37.87, - ["CD"] = 0 - }, - [52] = - { - ["X"] = 74.93, - ["Y"] = 41.16, - ["CD"] = 0 - }, - [53] = - { - ["X"] = 70.73, - ["Y"] = 43.54, - ["CD"] = 0 - }, - [54] = - { - ["X"] = 70.35, - ["Y"] = 45.76, - ["CD"] = 0 - }, - [55] = - { - ["X"] = 37.66, - ["Y"] = 22.47, - ["CD"] = 0 - }, - [56] = - { - ["X"] = 36.85, - ["Y"] = 26.28, - ["CD"] = 0 - }, - [57] = - { - ["X"] = 33.63, - ["Y"] = 29.7, - ["CD"] = 0 - }, - [58] = - { - ["X"] = 31.25, - ["Y"] = 33.5, - ["CD"] = 0 - }, - [59] = - { - ["X"] = 29, - ["Y"] = 41.91, - ["CD"] = 0 - }, - [60] = - { - ["X"] = 27.51, - ["Y"] = 43.03, - ["CD"] = 0 - }, - [61] = - { - ["X"] = 29.19, - ["Y"] = 44.39, - ["CD"] = 0 - }, - [62] = - { - ["X"] = 30.22, - ["Y"] = 46.68, - ["CD"] = 0 - }, - [63] = - { - ["X"] = 30.56, - ["Y"] = 60.35, - ["CD"] = 0 - }, - [64] = - { - ["X"] = 31.8, - ["Y"] = 62.23, - ["CD"] = 0 - }, - [65] = - { - ["X"] = 32.24, - ["Y"] = 64.21, - ["CD"] = 0 - }, - [66] = - { - ["X"] = 33, - ["Y"] = 66.87, - ["CD"] = 0 - }, - [67] = - { - ["X"] = 35.52, - ["Y"] = 69.32, - ["CD"] = 0 - }, - [68] = - { - ["X"] = 33.51, - ["Y"] = 70.23, - ["CD"] = 0 - }, - [69] = - { - ["X"] = 32.51, - ["Y"] = 67.22, - ["CD"] = 0 - }, - [70] = - { - ["X"] = 30.69, - ["Y"] = 67.28, - ["CD"] = 0 -} +aura_env.herbs = { + [1] = { + ["X"] = 64.49, + ["Y"] = 56.55, + ["CD"] = 0, + }, + [2] = { + ["X"] = 63.79, + ["Y"] = 54.73, + ["CD"] = 0, + }, + [3] = { + ["X"] = 61.99, + ["Y"] = 53.82, + ["CD"] = 0, + }, + [4] = { + ["X"] = 61.48, + ["Y"] = 49.4, + ["CD"] = 0, + }, + [5] = { + ["X"] = 61.46, + ["Y"] = 47.17, + ["CD"] = 0, + }, + [6] = { + ["X"] = 59.23, + ["Y"] = 46.84, + ["CD"] = 0, + }, + [7] = { + ["X"] = 56.86, + ["Y"] = 45.6, + ["CD"] = 0, + }, + [8] = { + ["X"] = 55.78, + ["Y"] = 44.91, + ["CD"] = 0, + }, + [9] = { + ["X"] = 55.06, + ["Y"] = 34.48, + ["CD"] = 0, + }, + [10] = { + ["X"] = 56.92, + ["Y"] = 34.22, + ["CD"] = 0, + }, + [11] = { + ["X"] = 59, + ["Y"] = 34.83, + ["CD"] = 0, + }, + [12] = { + ["X"] = 60.2, + ["Y"] = 36.57, + ["CD"] = 0, + }, + [13] = { + ["X"] = 61.85, + ["Y"] = 36.99, + ["CD"] = 0, + }, + [14] = { + ["X"] = 64.38, + ["Y"] = 35.48, + ["CD"] = 0, + }, + [15] = { + ["X"] = 66.81, + ["Y"] = 36.14, + ["CD"] = 0, + }, + [16] = { + ["X"] = 67.47, + ["Y"] = 35.67, + ["CD"] = 0, + }, + [17] = { + ["X"] = 69.55, + ["Y"] = 37.38, + ["CD"] = 0, + }, + [18] = { + ["X"] = 69.25, + ["Y"] = 37.57, + ["CD"] = 0, + }, + [19] = { + ["X"] = 68.77, + ["Y"] = 39.03, + ["CD"] = 0, + }, + [20] = { + ["X"] = 70.23, + ["Y"] = 39.53, + ["CD"] = 0, + }, + [21] = { + ["X"] = 72.53, + ["Y"] = 40.98, + ["CD"] = 0, + }, + [22] = { + ["X"] = 77.18, + ["Y"] = 44.12, + ["CD"] = 0, + }, + [23] = { + ["X"] = 77.7, + ["Y"] = 50.51, + ["CD"] = 0, + }, + [24] = { + ["X"] = 77.21, + ["Y"] = 49.87, + ["CD"] = 0, + }, + [25] = { + ["X"] = 77.8, + ["Y"] = 48.72, + ["CD"] = 0, + }, + [26] = { + ["X"] = 77.04, + ["Y"] = 47.98, + ["CD"] = 0, + }, + [27] = { + ["X"] = 74.84, + ["Y"] = 48.86, + ["CD"] = 0, + }, + [28] = { + ["X"] = 74.71, + ["Y"] = 49.87, + ["CD"] = 0, + }, + [29] = { + ["X"] = 77.44, + ["Y"] = 51.67, + ["CD"] = 0, + }, + [30] = { + ["X"] = 78.28, + ["Y"] = 52.79, + ["CD"] = 0, + }, + [31] = { + ["X"] = 76.61, + ["Y"] = 56.1, + ["CD"] = 0, + }, + [32] = { + ["X"] = 78.15, + ["Y"] = 58.13, + ["CD"] = 0, + }, + [33] = { + ["X"] = 77.88, + ["Y"] = 59.33, + ["CD"] = 0, + }, + [34] = { + ["X"] = 78.99, + ["Y"] = 59.38, + ["CD"] = 0, + }, + [35] = { + ["X"] = 78.7, + ["Y"] = 61.8, + ["CD"] = 0, + }, + [36] = { + ["X"] = 80.81, + ["Y"] = 62.57, + ["CD"] = 0, + }, + [37] = { + ["X"] = 80.67, + ["Y"] = 63.24, + ["CD"] = 0, + }, + [38] = { + ["X"] = 81.77, + ["Y"] = 64.74, + ["CD"] = 0, + }, + [39] = { + ["X"] = 81.61, + ["Y"] = 67.37, + ["CD"] = 0, + }, + [40] = { + ["X"] = 80.59, + ["Y"] = 69.27, + ["CD"] = 0, + }, + [41] = { + ["X"] = 54.85, + ["Y"] = 78.82, + ["CD"] = 0, + }, + [42] = { + ["X"] = 54.64, + ["Y"] = 77.06, + ["CD"] = 0, + }, + [43] = { + ["X"] = 54.11, + ["Y"] = 76.34, + ["CD"] = 0, + }, + [44] = { + ["X"] = 52.14, + ["Y"] = 71.88, + ["CD"] = 0, + }, + [45] = { + ["X"] = 49.89, + ["Y"] = 61.13, + ["CD"] = 0, + }, + [46] = { + ["X"] = 49.47, + ["Y"] = 56.45, + ["CD"] = 0, + }, + [47] = { + ["X"] = 49.33, + ["Y"] = 52.48, + ["CD"] = 0, + }, + [48] = { + ["X"] = 49.79, + ["Y"] = 47.5, + ["CD"] = 0, + }, + [49] = { + ["X"] = 78.74, + ["Y"] = 32.35, + ["CD"] = 0, + }, + [50] = { + ["X"] = 76.86, + ["Y"] = 33.06, + ["CD"] = 0, + }, + [51] = { + ["X"] = 74.67, + ["Y"] = 37.87, + ["CD"] = 0, + }, + [52] = { + ["X"] = 74.93, + ["Y"] = 41.16, + ["CD"] = 0, + }, + [53] = { + ["X"] = 70.73, + ["Y"] = 43.54, + ["CD"] = 0, + }, + [54] = { + ["X"] = 70.35, + ["Y"] = 45.76, + ["CD"] = 0, + }, + [55] = { + ["X"] = 37.66, + ["Y"] = 22.47, + ["CD"] = 0, + }, + [56] = { + ["X"] = 36.85, + ["Y"] = 26.28, + ["CD"] = 0, + }, + [57] = { + ["X"] = 33.63, + ["Y"] = 29.7, + ["CD"] = 0, + }, + [58] = { + ["X"] = 31.25, + ["Y"] = 33.5, + ["CD"] = 0, + }, + [59] = { + ["X"] = 29, + ["Y"] = 41.91, + ["CD"] = 0, + }, + [60] = { + ["X"] = 27.51, + ["Y"] = 43.03, + ["CD"] = 0, + }, + [61] = { + ["X"] = 29.19, + ["Y"] = 44.39, + ["CD"] = 0, + }, + [62] = { + ["X"] = 30.22, + ["Y"] = 46.68, + ["CD"] = 0, + }, + [63] = { + ["X"] = 30.56, + ["Y"] = 60.35, + ["CD"] = 0, + }, + [64] = { + ["X"] = 31.8, + ["Y"] = 62.23, + ["CD"] = 0, + }, + [65] = { + ["X"] = 32.24, + ["Y"] = 64.21, + ["CD"] = 0, + }, + [66] = { + ["X"] = 33, + ["Y"] = 66.87, + ["CD"] = 0, + }, + [67] = { + ["X"] = 35.52, + ["Y"] = 69.32, + ["CD"] = 0, + }, + [68] = { + ["X"] = 33.51, + ["Y"] = 70.23, + ["CD"] = 0, + }, + [69] = { + ["X"] = 32.51, + ["Y"] = 67.22, + ["CD"] = 0, + }, + [70] = { + ["X"] = 30.69, + ["Y"] = 67.28, + ["CD"] = 0, + }, } aura_env.cooldown = 600 aura_env.wipeDistance = 50 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Misc/Anna dogs.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Misc/Anna dogs.lua index 0222f06..d0d025f 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Misc/Anna dogs.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Misc/Anna dogs.lua @@ -1,435 +1,366 @@ -aura_env.herbs = -{ -[1] = -{ -["X"] = 55.21, -["Y"] = 29.38, -["CD"] = 0 -}, -[2] = -{ -["X"] = 56.38, -["Y"] = 30.8, -["CD"] = 0 -}, -[3] = -{ -["X"] = 54.25, -["Y"] = 31.3, -["CD"] = 0 -}, -[4] = -{ -["X"] = 56.5, -["Y"] = 32.12, -["CD"] = 0 -}, -[5] = -{ -["X"] = 58.44, -["Y"] = 35.06, -["CD"] = 0 -}, -[6] = -{ -["X"] = 53.05, -["Y"] = 37.22, -["CD"] = 0 -}, -[7] = -{ -["X"] = 52.92, -["Y"] = 37.71, -["CD"] = 0 -}, -[8] = -{ -["X"] = 56.85, -["Y"] = 37.89, -["CD"] = 0 -}, -[9] = -{ -["X"] = 59.32, -["Y"] = 39.96, -["CD"] = 0 -}, -[10] = -{ -["X"] = 60.24, -["Y"] = 43.26, -["CD"] = 0 -}, -[11] = -{ -["X"] = 62.38, -["Y"] = 44.15, -["CD"] = 0 -}, -[12] = -{ -["X"] = 60.31, -["Y"] = 44.75, -["CD"] = 0 -}, -[13] = -{ -["X"] = 62.63, -["Y"] = 45, -["CD"] = 0 -}, -[14] = -{ -["X"] = 58.79, -["Y"] = 66.11, -["CD"] = 0 -}, -[15] = -{ -["X"] = 58.07, -["Y"] = 67.24, -["CD"] = 0 -}, -[16] = -{ -["X"] = 58.8, -["Y"] = 68.04, -["CD"] = 0 -}, -[17] = -{ -["X"] = 56.18, -["Y"] = 68.4, -["CD"] = 0 -}, -[18] = -{ -["X"] = 56.89, -["Y"] = 68.83, -["CD"] = 0 -}, -[19] = -{ -["X"] = 55.99, -["Y"] = 68.92, -["CD"] = 0 -}, -[20] = -{ -["X"] = 54.79, -["Y"] = 69.16, -["CD"] = 0 -}, -[21] = -{ -["X"] = 78.12, -["Y"] = 69.46, -["CD"] = 0 -}, -[22] = -{ -["X"] = 55.23, -["Y"] = 69.82, -["CD"] = 0 -}, -[23] = -{ -["X"] = 56.47, -["Y"] = 69.86, -["CD"] = 0 -}, -[24] = -{ -["X"] = 78.49, -["Y"] = 70, -["CD"] = 0 -}, -[25] = -{ -["X"] = 57.49, -["Y"] = 70.1, -["CD"] = 0 -}, -[26] = -{ -["X"] = 62.05, -["Y"] = 70.16, -["CD"] = 0 -}, -[27] = -{ -["X"] = 53.23, -["Y"] = 70.74, -["CD"] = 0 -}, -[28] = -{ -["X"] = 55.72, -["Y"] = 70.85, -["CD"] = 0 -}, -[29] = -{ -["X"] = 60.45, -["Y"] = 70.99, -["CD"] = 0 -}, -[30] = -{ -["X"] = 78.71, -["Y"] = 71.05, -["CD"] = 0 -}, -[31] = -{ -["X"] = 59.93, -["Y"] = 71.54, -["CD"] = 0 -}, -[32] = -{ -["X"] = 60.96, -["Y"] = 71.64, -["CD"] = 0 -}, -[33] = -{ -["X"] = 78.05, -["Y"] = 71.69, -["CD"] = 0 -}, -[34] = -{ -["X"] = 53.97, -["Y"] = 71.7, -["CD"] = 0 -}, -[35] = -{ -["X"] = 58.78, -["Y"] = 71.92, -["CD"] = 0 -}, -[36] = -{ -["X"] = 59.19, -["Y"] = 72.7, -["CD"] = 0 -}, -[37] = -{ -["X"] = 57.1, -["Y"] = 72.76, -["CD"] = 0 -}, -[38] = -{ -["X"] = 63.61, -["Y"] = 73.32, -["CD"] = 0 -}, -[39] = -{ -["X"] = 57.6, -["Y"] = 73.39, -["CD"] = 0 -}, -[40] = -{ -["X"] = 55.82, -["Y"] = 73.97, -["CD"] = 0 -}, -[41] = -{ -["X"] = 56.83, -["Y"] = 74.09, -["CD"] = 0 -}, -[42] = -{ -["X"] = 59.48, -["Y"] = 75.05, -["CD"] = 0 -}, -[43] = -{ -["X"] = 57.28, -["Y"] = 75.33, -["CD"] = 0 -}, -[44] = -{ -["X"] = 56.2, -["Y"] = 75.37, -["CD"] = 0 -}, -[45] = -{ -["X"] = 65.04, -["Y"] = 75.73, -["CD"] = 0 -}, -[46] = -{ -["X"] = 57.1, -["Y"] = 75.83, -["CD"] = 0 -}, -[47] = -{ -["X"] = 64.03, -["Y"] = 76.03, -["CD"] = 0 -}, -[48] = -{ -["X"] = 65.94, -["Y"] = 76.67, -["CD"] = 0 -}, -[49] = -{ -["X"] = 60.04, -["Y"] = 76.75, -["CD"] = 0 -}, -[50] = -{ -["X"] = 51.69, -["Y"] = 77.08, -["CD"] = 0 -}, -[51] = -{ -["X"] = 66.38, -["Y"] = 77.13, -["CD"] = 0 -}, -[52] = -{ -["X"] = 61.34, -["Y"] = 77.69, -["CD"] = 0 -}, -[53] = -{ -["X"] = 56.96, -["Y"] = 77.71, -["CD"] = 0 -}, -[54] = -{ -["X"] = 63.81, -["Y"] = 77.73, -["CD"] = 0 -}, -[55] = -{ -["X"] = 65.79, -["Y"] = 77.78, -["CD"] = 0 -}, -[56] = -{ -["X"] = 66.91, -["Y"] = 78.43, -["CD"] = 0 -}, -[57] = -{ -["X"] = 64.63, -["Y"] = 79.29, -["CD"] = 0 -}, -[58] = -{ -["X"] = 63.47, -["Y"] = 79.63, -["CD"] = 0 -}, -[59] = -{ -["X"] = 61.37, -["Y"] = 79.81, -["CD"] = 0 -}, -[60] = -{ -["X"] = 60.47, -["Y"] = 80.35, -["CD"] = 0 -}, -[61] = -{ -["X"] = 62.7, -["Y"] = 80.54, -["CD"] = 0 -}, -[62] = -{ -["X"] = 70.7, -["Y"] = 80.98, -["CD"] = 0 -}, -[63] = -{ -["X"] = 60.52, -["Y"] = 81.06, -["CD"] = 0 -}, -[64] = -{ -["X"] = 72.19, -["Y"] = 82.3, -["CD"] = 0 -}, -[65] = -{ -["X"] = 71.35, -["Y"] = 82.53, -["CD"] = 0 -}, -[66] = -{ -["X"] = 67.39, -["Y"] = 83.15, -["CD"] = 0 -}, -[67] = -{ -["X"] = 71.42, -["Y"] = 84.27, -["CD"] = 0 -} +aura_env.herbs = { + [1] = { + ["X"] = 55.21, + ["Y"] = 29.38, + ["CD"] = 0, + }, + [2] = { + ["X"] = 56.38, + ["Y"] = 30.8, + ["CD"] = 0, + }, + [3] = { + ["X"] = 54.25, + ["Y"] = 31.3, + ["CD"] = 0, + }, + [4] = { + ["X"] = 56.5, + ["Y"] = 32.12, + ["CD"] = 0, + }, + [5] = { + ["X"] = 58.44, + ["Y"] = 35.06, + ["CD"] = 0, + }, + [6] = { + ["X"] = 53.05, + ["Y"] = 37.22, + ["CD"] = 0, + }, + [7] = { + ["X"] = 52.92, + ["Y"] = 37.71, + ["CD"] = 0, + }, + [8] = { + ["X"] = 56.85, + ["Y"] = 37.89, + ["CD"] = 0, + }, + [9] = { + ["X"] = 59.32, + ["Y"] = 39.96, + ["CD"] = 0, + }, + [10] = { + ["X"] = 60.24, + ["Y"] = 43.26, + ["CD"] = 0, + }, + [11] = { + ["X"] = 62.38, + ["Y"] = 44.15, + ["CD"] = 0, + }, + [12] = { + ["X"] = 60.31, + ["Y"] = 44.75, + ["CD"] = 0, + }, + [13] = { + ["X"] = 62.63, + ["Y"] = 45, + ["CD"] = 0, + }, + [14] = { + ["X"] = 58.79, + ["Y"] = 66.11, + ["CD"] = 0, + }, + [15] = { + ["X"] = 58.07, + ["Y"] = 67.24, + ["CD"] = 0, + }, + [16] = { + ["X"] = 58.8, + ["Y"] = 68.04, + ["CD"] = 0, + }, + [17] = { + ["X"] = 56.18, + ["Y"] = 68.4, + ["CD"] = 0, + }, + [18] = { + ["X"] = 56.89, + ["Y"] = 68.83, + ["CD"] = 0, + }, + [19] = { + ["X"] = 55.99, + ["Y"] = 68.92, + ["CD"] = 0, + }, + [20] = { + ["X"] = 54.79, + ["Y"] = 69.16, + ["CD"] = 0, + }, + [21] = { + ["X"] = 78.12, + ["Y"] = 69.46, + ["CD"] = 0, + }, + [22] = { + ["X"] = 55.23, + ["Y"] = 69.82, + ["CD"] = 0, + }, + [23] = { + ["X"] = 56.47, + ["Y"] = 69.86, + ["CD"] = 0, + }, + [24] = { + ["X"] = 78.49, + ["Y"] = 70, + ["CD"] = 0, + }, + [25] = { + ["X"] = 57.49, + ["Y"] = 70.1, + ["CD"] = 0, + }, + [26] = { + ["X"] = 62.05, + ["Y"] = 70.16, + ["CD"] = 0, + }, + [27] = { + ["X"] = 53.23, + ["Y"] = 70.74, + ["CD"] = 0, + }, + [28] = { + ["X"] = 55.72, + ["Y"] = 70.85, + ["CD"] = 0, + }, + [29] = { + ["X"] = 60.45, + ["Y"] = 70.99, + ["CD"] = 0, + }, + [30] = { + ["X"] = 78.71, + ["Y"] = 71.05, + ["CD"] = 0, + }, + [31] = { + ["X"] = 59.93, + ["Y"] = 71.54, + ["CD"] = 0, + }, + [32] = { + ["X"] = 60.96, + ["Y"] = 71.64, + ["CD"] = 0, + }, + [33] = { + ["X"] = 78.05, + ["Y"] = 71.69, + ["CD"] = 0, + }, + [34] = { + ["X"] = 53.97, + ["Y"] = 71.7, + ["CD"] = 0, + }, + [35] = { + ["X"] = 58.78, + ["Y"] = 71.92, + ["CD"] = 0, + }, + [36] = { + ["X"] = 59.19, + ["Y"] = 72.7, + ["CD"] = 0, + }, + [37] = { + ["X"] = 57.1, + ["Y"] = 72.76, + ["CD"] = 0, + }, + [38] = { + ["X"] = 63.61, + ["Y"] = 73.32, + ["CD"] = 0, + }, + [39] = { + ["X"] = 57.6, + ["Y"] = 73.39, + ["CD"] = 0, + }, + [40] = { + ["X"] = 55.82, + ["Y"] = 73.97, + ["CD"] = 0, + }, + [41] = { + ["X"] = 56.83, + ["Y"] = 74.09, + ["CD"] = 0, + }, + [42] = { + ["X"] = 59.48, + ["Y"] = 75.05, + ["CD"] = 0, + }, + [43] = { + ["X"] = 57.28, + ["Y"] = 75.33, + ["CD"] = 0, + }, + [44] = { + ["X"] = 56.2, + ["Y"] = 75.37, + ["CD"] = 0, + }, + [45] = { + ["X"] = 65.04, + ["Y"] = 75.73, + ["CD"] = 0, + }, + [46] = { + ["X"] = 57.1, + ["Y"] = 75.83, + ["CD"] = 0, + }, + [47] = { + ["X"] = 64.03, + ["Y"] = 76.03, + ["CD"] = 0, + }, + [48] = { + ["X"] = 65.94, + ["Y"] = 76.67, + ["CD"] = 0, + }, + [49] = { + ["X"] = 60.04, + ["Y"] = 76.75, + ["CD"] = 0, + }, + [50] = { + ["X"] = 51.69, + ["Y"] = 77.08, + ["CD"] = 0, + }, + [51] = { + ["X"] = 66.38, + ["Y"] = 77.13, + ["CD"] = 0, + }, + [52] = { + ["X"] = 61.34, + ["Y"] = 77.69, + ["CD"] = 0, + }, + [53] = { + ["X"] = 56.96, + ["Y"] = 77.71, + ["CD"] = 0, + }, + [54] = { + ["X"] = 63.81, + ["Y"] = 77.73, + ["CD"] = 0, + }, + [55] = { + ["X"] = 65.79, + ["Y"] = 77.78, + ["CD"] = 0, + }, + [56] = { + ["X"] = 66.91, + ["Y"] = 78.43, + ["CD"] = 0, + }, + [57] = { + ["X"] = 64.63, + ["Y"] = 79.29, + ["CD"] = 0, + }, + [58] = { + ["X"] = 63.47, + ["Y"] = 79.63, + ["CD"] = 0, + }, + [59] = { + ["X"] = 61.37, + ["Y"] = 79.81, + ["CD"] = 0, + }, + [60] = { + ["X"] = 60.47, + ["Y"] = 80.35, + ["CD"] = 0, + }, + [61] = { + ["X"] = 62.7, + ["Y"] = 80.54, + ["CD"] = 0, + }, + [62] = { + ["X"] = 70.7, + ["Y"] = 80.98, + ["CD"] = 0, + }, + [63] = { + ["X"] = 60.52, + ["Y"] = 81.06, + ["CD"] = 0, + }, + [64] = { + ["X"] = 72.19, + ["Y"] = 82.3, + ["CD"] = 0, + }, + [65] = { + ["X"] = 71.35, + ["Y"] = 82.53, + ["CD"] = 0, + }, + [66] = { + ["X"] = 67.39, + ["Y"] = 83.15, + ["CD"] = 0, + }, + [67] = { + ["X"] = 71.42, + ["Y"] = 84.27, + ["CD"] = 0, + }, } aura_env.cooldown = 92 aura_env.wipeDistance = 15 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Durotar.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Durotar.lua index 8708322..3c88128 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Durotar.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Durotar.lua @@ -1,124 +1,103 @@ -aura_env.herbs = -{ - [1] = - { +aura_env.herbs = { + [1] = { ["X"] = 51.58, ["Y"] = 43.53, - ["CD"] = 0 + ["CD"] = 0, }, - [2] = - { + [2] = { ["X"] = 51.71, ["Y"] = 43.97, - ["CD"] = 0 + ["CD"] = 0, }, - [3] = - { + [3] = { ["X"] = 52.19, ["Y"] = 43.75, - ["CD"] = 0 + ["CD"] = 0, }, - [4] = - { + [4] = { ["X"] = 53.1, ["Y"] = 43.07, - ["CD"] = 0 + ["CD"] = 0, }, - [5] = - { + [5] = { ["X"] = 53.56, ["Y"] = 43.28, - ["CD"] = 0 + ["CD"] = 0, }, - [6] = - { + [6] = { ["X"] = 54.06, ["Y"] = 43.34, - ["CD"] = 0 + ["CD"] = 0, }, - [7] = - { + [7] = { ["X"] = 54.63, ["Y"] = 43.33, - ["CD"] = 0 + ["CD"] = 0, }, - [8] = - { + [8] = { ["X"] = 54.84, ["Y"] = 42.4, - ["CD"] = 0 + ["CD"] = 0, }, - [9] = - { + [9] = { ["X"] = 54.89, ["Y"] = 41.74, - ["CD"] = 0 + ["CD"] = 0, }, - [10] = - { + [10] = { ["X"] = 54.53, ["Y"] = 41.47, - ["CD"] = 0 + ["CD"] = 0, }, - [11] = - { + [11] = { ["X"] = 54.27, ["Y"] = 41.65, - ["CD"] = 0 + ["CD"] = 0, }, - [12] = - { + [12] = { ["X"] = 53.86, ["Y"] = 41.66, - ["CD"] = 0 + ["CD"] = 0, }, - [13] = - { + [13] = { ["X"] = 53.74, ["Y"] = 40.67, - ["CD"] = 0 + ["CD"] = 0, }, - [14] = - { + [14] = { ["X"] = 52.95, ["Y"] = 40.72, - ["CD"] = 0 + ["CD"] = 0, }, - [15] = - { + [15] = { ["X"] = 52.78, ["Y"] = 40.24, - ["CD"] = 0 + ["CD"] = 0, }, - [16] = - { + [16] = { ["X"] = 47.99, ["Y"] = 45.57, - ["CD"] = 0 + ["CD"] = 0, }, - [17] = - { + [17] = { ["X"] = 47.57, ["Y"] = 45.29, - ["CD"] = 0 + ["CD"] = 0, }, - [18] = - { + [18] = { ["X"] = 47.57, ["Y"] = 45.38, - ["CD"] = 0 + ["CD"] = 0, }, - [19] = - { + [19] = { ["X"] = 48.18, ["Y"] = 46.31, - ["CD"] = 0 + ["CD"] = 0, }, - [20] = - { + [20] = { ["X"] = 47.05, ["Y"] = 46.63, - ["CD"] = 0 + ["CD"] = 0, }, } aura_env.cooldown = 120 @@ -126,28 +105,27 @@ aura_env.wipeDistance = 15 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Eversong Woods.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Eversong Woods.lua index a7d9076..733f916 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Eversong Woods.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Eversong Woods.lua @@ -1,124 +1,103 @@ -aura_env.herbs = -{ - [1] = - { +aura_env.herbs = { + [1] = { ["X"] = 47.45, ["Y"] = 45.25, - ["CD"] = 0 + ["CD"] = 0, }, - [2] = - { + [2] = { ["X"] = 47.1, ["Y"] = 45.39, - ["CD"] = 0 + ["CD"] = 0, }, - [3] = - { + [3] = { ["X"] = 46.85, ["Y"] = 45.64, - ["CD"] = 0 + ["CD"] = 0, }, - [4] = - { + [4] = { ["X"] = 47.26, ["Y"] = 46.21, - ["CD"] = 0 + ["CD"] = 0, }, - [5] = - { + [5] = { ["X"] = 46.37, ["Y"] = 46.44, - ["CD"] = 0 + ["CD"] = 0, }, - [6] = - { + [6] = { ["X"] = 46.23, ["Y"] = 47.2, - ["CD"] = 0 + ["CD"] = 0, }, - [7] = - { + [7] = { ["X"] = 46.35, ["Y"] = 48, - ["CD"] = 0 + ["CD"] = 0, }, - [8] = - { + [8] = { ["X"] = 46.92, ["Y"] = 48.29, - ["CD"] = 0 + ["CD"] = 0, }, - [9] = - { + [9] = { ["X"] = 47.02, ["Y"] = 47.71, - ["CD"] = 0 + ["CD"] = 0, }, - [10] = - { + [10] = { ["X"] = 47.28, ["Y"] = 47.65, - ["CD"] = 0 + ["CD"] = 0, }, - [11] = - { + [11] = { ["X"] = 47.45, ["Y"] = 47.47, - ["CD"] = 0 + ["CD"] = 0, }, - [12] = - { + [12] = { ["X"] = 47.55, ["Y"] = 47.42, - ["CD"] = 0 + ["CD"] = 0, }, - [13] = - { + [13] = { ["X"] = 47.84, ["Y"] = 46.89, - ["CD"] = 0 + ["CD"] = 0, }, - [14] = - { + [14] = { ["X"] = 48.13, ["Y"] = 46.47, - ["CD"] = 0 + ["CD"] = 0, }, - [15] = - { + [15] = { ["X"] = 48.24, ["Y"] = 45.63, - ["CD"] = 0 + ["CD"] = 0, }, - [16] = - { + [16] = { ["X"] = 47.99, ["Y"] = 45.57, - ["CD"] = 0 + ["CD"] = 0, }, - [17] = - { + [17] = { ["X"] = 47.57, ["Y"] = 45.29, - ["CD"] = 0 + ["CD"] = 0, }, - [18] = - { + [18] = { ["X"] = 47.57, ["Y"] = 45.38, - ["CD"] = 0 + ["CD"] = 0, }, - [19] = - { + [19] = { ["X"] = 48.18, ["Y"] = 46.31, - ["CD"] = 0 + ["CD"] = 0, }, - [20] = - { + [20] = { ["X"] = 47.05, ["Y"] = 46.63, - ["CD"] = 0 + ["CD"] = 0, }, } aura_env.cooldown = 120 @@ -126,28 +105,27 @@ aura_env.wipeDistance = 15 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Mulgore.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Mulgore.lua index a4496da..34afcf8 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Mulgore.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Mulgore.lua @@ -1,124 +1,103 @@ -aura_env.herbs = -{ - [1] = - { +aura_env.herbs = { + [1] = { ["X"] = 47.58, ["Y"] = 61.98, - ["CD"] = 0 + ["CD"] = 0, }, - [2] = - { + [2] = { ["X"] = 47.75, ["Y"] = 61.61, - ["CD"] = 0 + ["CD"] = 0, }, - [3] = - { + [3] = { ["X"] = 49.39, ["Y"] = 61.5, - ["CD"] = 0 + ["CD"] = 0, }, - [4] = - { + [4] = { ["X"] = 48.9, ["Y"] = 60.63, - ["CD"] = 0 + ["CD"] = 0, }, - [5] = - { + [5] = { ["X"] = 49.1, ["Y"] = 59.96, - ["CD"] = 0 + ["CD"] = 0, }, - [6] = - { + [6] = { ["X"] = 49.51, ["Y"] = 60.13, - ["CD"] = 0 + ["CD"] = 0, }, - [7] = - { + [7] = { ["X"] = 49.15, ["Y"] = 58.8, - ["CD"] = 0 + ["CD"] = 0, }, - [8] = - { + [8] = { ["X"] = 49.67, ["Y"] = 58.14, - ["CD"] = 0 + ["CD"] = 0, }, - [9] = - { + [9] = { ["X"] = 48.5, ["Y"] = 58.18, - ["CD"] = 0 + ["CD"] = 0, }, - [10] = - { + [10] = { ["X"] = 48.18, ["Y"] = 58.23, - ["CD"] = 0 + ["CD"] = 0, }, - [11] = - { + [11] = { ["X"] = 48.13, ["Y"] = 58.66, - ["CD"] = 0 + ["CD"] = 0, }, - [12] = - { + [12] = { ["X"] = 47.72, ["Y"] = 58.57, - ["CD"] = 0 + ["CD"] = 0, }, - [13] = - { + [13] = { ["X"] = 47.55, ["Y"] = 59.51, - ["CD"] = 0 + ["CD"] = 0, }, - [14] = - { + [14] = { ["X"] = 47.97, ["Y"] = 60.7, - ["CD"] = 0 + ["CD"] = 0, }, - [15] = - { + [15] = { ["X"] = 47.95, ["Y"] = 60.92, - ["CD"] = 0 + ["CD"] = 0, }, - [16] = - { + [16] = { ["X"] = 47.99, ["Y"] = 45.57, - ["CD"] = 0 + ["CD"] = 0, }, - [17] = - { + [17] = { ["X"] = 47.57, ["Y"] = 45.29, - ["CD"] = 0 + ["CD"] = 0, }, - [18] = - { + [18] = { ["X"] = 47.57, ["Y"] = 45.38, - ["CD"] = 0 + ["CD"] = 0, }, - [19] = - { + [19] = { ["X"] = 48.18, ["Y"] = 46.31, - ["CD"] = 0 + ["CD"] = 0, }, - [20] = - { + [20] = { ["X"] = 47.05, ["Y"] = 46.63, - ["CD"] = 0 + ["CD"] = 0, }, } aura_env.cooldown = 120 @@ -126,28 +105,27 @@ aura_env.wipeDistance = 15 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Tirisfal Glades.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Tirisfal Glades.lua index 6c2f537..14d4eee 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Tirisfal Glades.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Tirisfal Glades.lua @@ -1,124 +1,103 @@ -aura_env.herbs = -{ - [1] = - { +aura_env.herbs = { + [1] = { ["X"] = 62.88, ["Y"] = 54.49, - ["CD"] = 0 + ["CD"] = 0, }, - [2] = - { + [2] = { ["X"] = 62.75, ["Y"] = 54, - ["CD"] = 0 + ["CD"] = 0, }, - [3] = - { + [3] = { ["X"] = 62.88, ["Y"] = 53.13, - ["CD"] = 0 + ["CD"] = 0, }, - [4] = - { + [4] = { ["X"] = 62.88, ["Y"] = 51.82, - ["CD"] = 0 + ["CD"] = 0, }, - [5] = - { + [5] = { ["X"] = 62.78, ["Y"] = 51.54, - ["CD"] = 0 + ["CD"] = 0, }, - [6] = - { + [6] = { ["X"] = 62.44, ["Y"] = 50.9, - ["CD"] = 0 + ["CD"] = 0, }, - [7] = - { + [7] = { ["X"] = 61.85, ["Y"] = 50.94, - ["CD"] = 0 + ["CD"] = 0, }, - [8] = - { + [8] = { ["X"] = 61.45, ["Y"] = 51.58, - ["CD"] = 0 + ["CD"] = 0, }, - [9] = - { + [9] = { ["X"] = 61.14, ["Y"] = 51.67, - ["CD"] = 0 + ["CD"] = 0, }, - [10] = - { + [10] = { ["X"] = 61.08, ["Y"] = 52.31, - ["CD"] = 0 + ["CD"] = 0, }, - [11] = - { + [11] = { ["X"] = 60.35, ["Y"] = 51.69, - ["CD"] = 0 + ["CD"] = 0, }, - [12] = - { + [12] = { ["X"] = 60.05, ["Y"] = 51.23, - ["CD"] = 0 + ["CD"] = 0, }, - [13] = - { + [13] = { ["X"] = 60.05, ["Y"] = 52.29, - ["CD"] = 0 + ["CD"] = 0, }, - [14] = - { + [14] = { ["X"] = 59.53, ["Y"] = 52.96, - ["CD"] = 0 + ["CD"] = 0, }, - [15] = - { + [15] = { ["X"] = 59.53, ["Y"] = 53.51, - ["CD"] = 0 + ["CD"] = 0, }, - [16] = - { + [16] = { ["X"] = 47.99, ["Y"] = 45.57, - ["CD"] = 0 + ["CD"] = 0, }, - [17] = - { + [17] = { ["X"] = 47.57, ["Y"] = 45.29, - ["CD"] = 0 + ["CD"] = 0, }, - [18] = - { + [18] = { ["X"] = 47.57, ["Y"] = 45.38, - ["CD"] = 0 + ["CD"] = 0, }, - [19] = - { + [19] = { ["X"] = 48.18, ["Y"] = 46.31, - ["CD"] = 0 + ["CD"] = 0, }, - [20] = - { + [20] = { ["X"] = 47.05, ["Y"] = 46.63, - ["CD"] = 0 + ["CD"] = 0, }, } aura_env.cooldown = 120 @@ -126,28 +105,27 @@ aura_env.wipeDistance = 15 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Skinning/Some apes.lua b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Skinning/Some apes.lua index 969d56e..2e27ed7 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Skinning/Some apes.lua +++ b/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Skinning/Some apes.lua @@ -1,279 +1,236 @@ -aura_env.herbs = -{ - [1] = - { - ["X"] = 57.62, - ["Y"] = 72.45, - ["CD"] = 0 +aura_env.herbs = { + [1] = { + ["X"] = 57.62, + ["Y"] = 72.45, + ["CD"] = 0, }, - [2] = - { - ["X"] = 57.57, - ["Y"] = 72.49, - ["CD"] = 0 + [2] = { + ["X"] = 57.57, + ["Y"] = 72.49, + ["CD"] = 0, }, - [3] = - { - ["X"] = 60.72, - ["Y"] = 70.21, - ["CD"] = 0 + [3] = { + ["X"] = 60.72, + ["Y"] = 70.21, + ["CD"] = 0, }, - [4] = - { - ["X"] = 57.63, - ["Y"] = 72.53, - ["CD"] = 0 + [4] = { + ["X"] = 57.63, + ["Y"] = 72.53, + ["CD"] = 0, }, - [5] = - { - ["X"] = 57.74, - ["Y"] = 72.2, - ["CD"] = 0 + [5] = { + ["X"] = 57.74, + ["Y"] = 72.2, + ["CD"] = 0, }, - [6] = - { - ["X"] = 60.67, - ["Y"] = 70.3, - ["CD"] = 0 + [6] = { + ["X"] = 60.67, + ["Y"] = 70.3, + ["CD"] = 0, }, - [7] = - { - ["X"] = 57.84, - ["Y"] = 72.45, - ["CD"] = 0 + [7] = { + ["X"] = 57.84, + ["Y"] = 72.45, + ["CD"] = 0, }, - [8] = - { - ["X"] = 60.66, - ["Y"] = 70.92, - ["CD"] = 0 + [8] = { + ["X"] = 60.66, + ["Y"] = 70.92, + ["CD"] = 0, }, - [9] = - { - ["X"] = 60.71, - ["Y"] = 70.26, - ["CD"] = 0 + [9] = { + ["X"] = 60.71, + ["Y"] = 70.26, + ["CD"] = 0, }, - [10] = - { - ["X"] = 60.67, - ["Y"] = 70.19, - ["CD"] = 0 + [10] = { + ["X"] = 60.67, + ["Y"] = 70.19, + ["CD"] = 0, }, - [11] = - { - ["X"] = 60.71, - ["Y"] = 70.31, - ["CD"] = 0 + [11] = { + ["X"] = 60.71, + ["Y"] = 70.31, + ["CD"] = 0, }, - [12] = - { - ["X"] = 60.64, - ["Y"] = 70.15, - ["CD"] = 0 + [12] = { + ["X"] = 60.64, + ["Y"] = 70.15, + ["CD"] = 0, }, - [13] = - { - ["X"] = 60.73, - ["Y"] = 70.37, - ["CD"] = 0 + [13] = { + ["X"] = 60.73, + ["Y"] = 70.37, + ["CD"] = 0, }, - [14] = - { - ["X"] = 60.14, - ["Y"] = 70.54, - ["CD"] = 0 + [14] = { + ["X"] = 60.14, + ["Y"] = 70.54, + ["CD"] = 0, }, - [15] = - { - ["X"] = 71.7, - ["Y"] = 70.48, - ["CD"] = 0 + [15] = { + ["X"] = 71.7, + ["Y"] = 70.48, + ["CD"] = 0, }, - [16] = - { - ["X"] = 72.11, - ["Y"] = 71.16, - ["CD"] = 0 + [16] = { + ["X"] = 72.11, + ["Y"] = 71.16, + ["CD"] = 0, }, - [17] = - { - ["X"] = 71.94, - ["Y"] = 70.56, - ["CD"] = 0 + [17] = { + ["X"] = 71.94, + ["Y"] = 70.56, + ["CD"] = 0, }, - [18] = - { - ["X"] = 72.01, - ["Y"] = 70.35, - ["CD"] = 0 + [18] = { + ["X"] = 72.01, + ["Y"] = 70.35, + ["CD"] = 0, }, - [19] = - { - ["X"] = 66.58, - ["Y"] = 69.36, - ["CD"] = 0 + [19] = { + ["X"] = 66.58, + ["Y"] = 69.36, + ["CD"] = 0, }, - [20] = - { - ["X"] = 72.16, - ["Y"] = 70.51, - ["CD"] = 0 + [20] = { + ["X"] = 72.16, + ["Y"] = 70.51, + ["CD"] = 0, }, - [21] = - { - ["X"] = 66.99, - ["Y"] = 68.62, - ["CD"] = 0 + [21] = { + ["X"] = 66.99, + ["Y"] = 68.62, + ["CD"] = 0, }, - [22] = - { - ["X"] = 65.63, - ["Y"] = 69.87, - ["CD"] = 0 + [22] = { + ["X"] = 65.63, + ["Y"] = 69.87, + ["CD"] = 0, }, - [23] = - { - ["X"] = 57.32, - ["Y"] = 76.15, - ["CD"] = 0 + [23] = { + ["X"] = 57.32, + ["Y"] = 76.15, + ["CD"] = 0, }, - [24] = - { - ["X"] = 65.54, - ["Y"] = 69.99, - ["CD"] = 0 + [24] = { + ["X"] = 65.54, + ["Y"] = 69.99, + ["CD"] = 0, }, - [25] = - { - ["X"] = 65.66, - ["Y"] = 69.51, - ["CD"] = 0 + [25] = { + ["X"] = 65.66, + ["Y"] = 69.51, + ["CD"] = 0, }, - [26] = - { - ["X"] = 57.68, - ["Y"] = 72.53, - ["CD"] = 0 + [26] = { + ["X"] = 57.68, + ["Y"] = 72.53, + ["CD"] = 0, }, - [27] = - { - ["X"] = 56.46, - ["Y"] = 73.39, - ["CD"] = 0 + [27] = { + ["X"] = 56.46, + ["Y"] = 73.39, + ["CD"] = 0, }, - [28] = - { - ["X"] = 64.03, - ["Y"] = 73.84, - ["CD"] = 0 + [28] = { + ["X"] = 64.03, + ["Y"] = 73.84, + ["CD"] = 0, }, - [29] = - { - ["X"] = 71.66, - ["Y"] = 70.86, - ["CD"] = 0 + [29] = { + ["X"] = 71.66, + ["Y"] = 70.86, + ["CD"] = 0, }, - [30] = - { - ["X"] = 56.82, - ["Y"] = 75.45, - ["CD"] = 0 + [30] = { + ["X"] = 56.82, + ["Y"] = 75.45, + ["CD"] = 0, }, - [31] = - { - ["X"] = 56.21, - ["Y"] = 76.01, - ["CD"] = 0 + [31] = { + ["X"] = 56.21, + ["Y"] = 76.01, + ["CD"] = 0, }, - [32] = - { - ["X"] = 48.26, - ["Y"] = 79.27, - ["CD"] = 0 + [32] = { + ["X"] = 48.26, + ["Y"] = 79.27, + ["CD"] = 0, }, - [33] = - { - ["X"] = 55.4, - ["Y"] = 73.17, - ["CD"] = 0 + [33] = { + ["X"] = 55.4, + ["Y"] = 73.17, + ["CD"] = 0, }, - [34] = - { - ["X"] = 56.71, - ["Y"] = 78.07, - ["CD"] = 0 + [34] = { + ["X"] = 56.71, + ["Y"] = 78.07, + ["CD"] = 0, }, - [35] = - { - ["X"] = 56.45, - ["Y"] = 76.92, - ["CD"] = 0 + [35] = { + ["X"] = 56.45, + ["Y"] = 76.92, + ["CD"] = 0, }, - [36] = - { - ["X"] = 50.67, - ["Y"] = 80.17, - ["CD"] = 0 + [36] = { + ["X"] = 50.67, + ["Y"] = 80.17, + ["CD"] = 0, }, - [37] = - { - ["X"] = 55.33, - ["Y"] = 76.05, - ["CD"] = 0 + [37] = { + ["X"] = 55.33, + ["Y"] = 76.05, + ["CD"] = 0, }, - [38] = - { - ["X"] = 49.13, - ["Y"] = 78.84, - ["CD"] = 0 + [38] = { + ["X"] = 49.13, + ["Y"] = 78.84, + ["CD"] = 0, }, - [39] = - { - ["X"] = 50.61, - ["Y"] = 78.54, - ["CD"] = 0 + [39] = { + ["X"] = 50.61, + ["Y"] = 78.54, + ["CD"] = 0, }, - [40] = - { - ["X"] = 46.32, - ["Y"] = 78.96, - ["CD"] = 0 + [40] = { + ["X"] = 46.32, + ["Y"] = 78.96, + ["CD"] = 0, + }, + [41] = { + ["X"] = 47.29, + ["Y"] = 79.19, + ["CD"] = 0, }, - [41] = - { - ["X"] = 47.29, - ["Y"] = 79.19, - ["CD"] = 0 -} } aura_env.cooldown = 91 aura_env.wipeDistance = 15 aura_env.angle = 0 aura_env.hyp = 0 aura_env.GetClosestHerb = function() -aura_env.minID = -{ - ["X"] = 0, - ["Y"] = 0, - ["D"] = 1000, - ["ID"] = 0 -} -local pX = GetPlayerMapPosition("player") or 0 -local pY = select(2, GetPlayerMapPosition("player")) or 0 -pX, pY = pX * 100, pY * 100 -for k,v in ipairs(aura_env.herbs) do - local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] - if cd == 0 then - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < aura_env.minID["D"] then - aura_env.minID["X"] = hX - aura_env.minID["Y"] = hY - aura_env.minID["D"] = hyp - aura_env.minID["ID"] = k + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 1000, + ["ID"] = 0, + } + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + for k, v in ipairs(aura_env.herbs) do + local hX, hY, cd = aura_env.herbs[k]["X"], aura_env.herbs[k]["Y"], aura_env.herbs[k]["CD"] + if cd == 0 then + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) + if hyp < aura_env.minID["D"] then + aura_env.minID["X"] = hX + aura_env.minID["Y"] = hY + aura_env.minID["D"] = hyp + aura_env.minID["ID"] = k + end end end + return aura_env.minID["ID"] end -return aura_env.minID["ID"] -end \ No newline at end of file diff --git a/FreshShit/Absorbs/init.lua b/FreshShit/Absorbs/init.lua index 27d73ca..a9018c5 100644 --- a/FreshShit/Absorbs/init.lua +++ b/FreshShit/Absorbs/init.lua @@ -8,12 +8,12 @@ aura_env.Colorer = { colors = { { r = 0.62, g = 0.62, b = 0.62 }, -- Grey -- { r = 1, g = 1, b = 1 }, -- White - { r = 0.12, g = 1, b = 0 }, -- Green - { r = 0, g = 0.44, b = 0.87 }, -- Blue + { r = 0.12, g = 1, b = 0 }, -- Green + { r = 0, g = 0.44, b = 0.87 }, -- Blue { r = 0.64, g = 0.21, b = 0.93 }, -- Purple - { r = 1, g = 0.5, b = 0 }, -- Orange - { r = 0.9, g = 0.8, b = 0.5 }, -- Light Gold - { r = 0, g = 0.8, b = 1.0 }, -- Blizzard Blue + { r = 1, g = 0.5, b = 0 }, -- Orange + { r = 0.9, g = 0.8, b = 0.5 }, -- Light Gold + { r = 0, g = 0.8, b = 1.0 }, -- Blizzard Blue }, breakpoints = { 0.0, 0.2, 0.4, 0.6, 0.8, 1.0, 1000.0 }, @@ -37,9 +37,7 @@ aura_env.Colorer = { ---@type Color local endColor = aura_env.Colorer.colors[bracket[2][1]] - if startColor == nil or endColor == nil then - return color, "Color not found" - end + if startColor == nil or endColor == nil then return color, "Color not found" end local fraction = (value - bracket[1][2]) / (bracket[2][2] - bracket[1][2]) @@ -54,9 +52,7 @@ aura_env.Colorer = { ---@param b number ---@param t number ---@return number - lerp = function(a, b, t) - return a * (1 - t) + b * t - end + lerp = function(a, b, t) return a * (1 - t) + b * t end, } setmetatable(aura_env.Colorer, { __index = aura_env.Colorer }) @@ -69,7 +65,7 @@ aura_env.ShieldBuffer = { ---@return ShieldBuffer new = function(recordsToKeep) local self = setmetatable({}, { - __index = aura_env.ShieldBuffer + __index = aura_env.ShieldBuffer, }) self.recordsToKeep = recordsToKeep self.records = {} @@ -92,9 +88,7 @@ aura_env.ShieldBuffer = { GetMax = function(self) local max = 0 for _, value in pairs(self.records) do - if value > max then - max = value - end + if value > max then max = value end end if max == nil then return 0 end return max @@ -105,7 +99,7 @@ aura_env.ShieldBuffer = { local val = self.records[(self.pointer + self.recordsToKeep - 2) % self.recordsToKeep + 1] if val == nil then return 0 end return val - end + end, } ---@class Shield @@ -117,7 +111,7 @@ aura_env.Shield = { ---@return Shield new = function(name) local self = setmetatable({}, { - __index = aura_env.Shield + __index = aura_env.Shield, }) self.name = name self.value = 0 @@ -135,7 +129,7 @@ aura_env.Shield = { self.value = 0 end self.buffer:Append(self.value) - end + end, } ---@class ShieldManager @@ -177,7 +171,7 @@ aura_env.ShieldManager = { return string.format("%.1fM", current / 1e6), string.format("%.1fM", max / 1e6), current, max end return string.format("%.0fk", current / 1000), string.format("%.0fk", max / 1000), current, max - end + end, } ---@class Display @@ -202,7 +196,7 @@ aura_env.Display = { aura_env.Display.ofHp = string.format("%.0f%%", aura_env.Display.ofHpRaw) aura_env.Display.color = aura_env.Colorer.Interpolate(aura_env.Display.ofHpRawFraction) return nil - end + end, } ---@type table diff --git a/FreshShit/Absorbs/scratch.lua b/FreshShit/Absorbs/scratch.lua index fd364d6..d0aba94 100644 --- a/FreshShit/Absorbs/scratch.lua +++ b/FreshShit/Absorbs/scratch.lua @@ -1,15 +1,13 @@ ---@param table table ---@param depth number? function DumpTable(table, depth) - if depth == nil then - depth = 0 - end - if (depth > 200) then + if depth == nil then depth = 0 end + if depth > 200 then print("Error: Depth > 200 in dumpTable()") return end for k, v in pairs(table) do - if (type(v) == "table") then + if type(v) == "table" then print(string.rep(" ", depth) .. k .. ":") DumpTable(v, depth + 1) else @@ -18,7 +16,6 @@ function DumpTable(table, depth) end end - local colorer = Colorer.new() local value = 1.21 diff --git a/FreshShit/AchievementSniffer/event.lua b/FreshShit/AchievementSniffer/event.lua index 972e439..854642b 100644 --- a/FreshShit/AchievementSniffer/event.lua +++ b/FreshShit/AchievementSniffer/event.lua @@ -2,4 +2,4 @@ --- Deprecated in favor of Heimdall.AchievementSniffer --function(allstates) -- aura_env.TryInspect() ---end \ No newline at end of file +--end diff --git a/FreshShit/AchievementSniffer/event2.lua b/FreshShit/AchievementSniffer/event2.lua index f30f938..ab96e90 100644 --- a/FreshShit/AchievementSniffer/event2.lua +++ b/FreshShit/AchievementSniffer/event2.lua @@ -13,4 +13,4 @@ -- if not should then return end -- -- aura_env.Scan(targetName) ---end \ No newline at end of file +--end diff --git a/FreshShit/AchievementSniffer/init.lua b/FreshShit/AchievementSniffer/init.lua index d6667fd..b95ecf2 100644 --- a/FreshShit/AchievementSniffer/init.lua +++ b/FreshShit/AchievementSniffer/init.lua @@ -9,10 +9,8 @@ if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end if not WeakAurasSaved.Cyka.AchievementSniffer then WeakAurasSaved.Cyka.AchievementSniffer = {} end if not WeakAurasSaved.Cyka.AchievementSniffer2 then WeakAurasSaved.Cyka.AchievementSniffer2 = {} end -for k,v in pairs(WeakAurasSaved.Cyka.AchievementSniffer2) do - if WeakAurasSaved.Cyka.AchievementSniffer[k] then - WeakAurasSaved.Cyka.AchievementSniffer[k] = nil - end +for k, v in pairs(WeakAurasSaved.Cyka.AchievementSniffer2) do + if WeakAurasSaved.Cyka.AchievementSniffer[k] then WeakAurasSaved.Cyka.AchievementSniffer[k] = nil end end aura_env.achievements = { @@ -196,9 +194,7 @@ aura_env.TryInspect = function() if not should then return end local canInspect = CheckInteractDistance("target", 1) - if canInspect then - SetAchievementComparisonUnit("target") - end + if canInspect then SetAchievementComparisonUnit("target") end end ---@param playerName string diff --git a/FreshShit/AchievementSniffer/scratch.lua b/FreshShit/AchievementSniffer/scratch.lua index 30860b8..aa8a0c6 100644 --- a/FreshShit/AchievementSniffer/scratch.lua +++ b/FreshShit/AchievementSniffer/scratch.lua @@ -2,8 +2,6 @@ local year = 20 local month = 7 local day = 12 -if year < 100 then - year = "20" .. year -end +if year < 100 then year = "20" .. year end -print(string.format("%4d-%02d-%02d", year, month, day)) \ No newline at end of file +print(string.format("%4d-%02d-%02d", year, month, day)) diff --git a/FreshShit/AfkTimer/init.lua b/FreshShit/AfkTimer/init.lua index 201406d..b60c33e 100644 --- a/FreshShit/AfkTimer/init.lua +++ b/FreshShit/AfkTimer/init.lua @@ -2,5 +2,5 @@ aura_env.KickTime = 0 aura_env.AfkSince = 0 WeakAurasSaved.Cyka.LoginInfo = { - [Today] = WeakAurasSaved.Cyka.LoginInfo[Today] or {} -} \ No newline at end of file + [Today] = WeakAurasSaved.Cyka.LoginInfo[Today] or {}, +} diff --git a/FreshShit/AutoLoot/AutoLootDisplay/Init.lua b/FreshShit/AutoLoot/AutoLootDisplay/Init.lua index cd2bc9c..1272159 100644 --- a/FreshShit/AutoLoot/AutoLootDisplay/Init.lua +++ b/FreshShit/AutoLoot/AutoLootDisplay/Init.lua @@ -5,44 +5,42 @@ local iconDisplayDuration = 3 ---@param msg string ---@return CItemInfo, string | nil GetItemInfo = function(msg) - local itemInfo = {name = "", icon = 134400, quantity = 0, color = ""} - local name = msg:match("h%[(.+)%]") - if not name then return itemInfo, "No item name found" end - local quantity = msg:match("x(%d+)") or 1 - itemInfo.name = name - itemInfo.quantity = quantity + local itemInfo = { name = "", icon = 134400, quantity = 0, color = "" } + local name = msg:match("h%[(.+)%]") + if not name then return itemInfo, "No item name found" end + local quantity = msg:match("x(%d+)") or 1 + itemInfo.name = name + itemInfo.quantity = quantity - if WeakAurasSaved.Cyka.ItemCache[name] then - itemInfo.icon = WeakAurasSaved.Cyka.ItemCache[name].icon - end - local color = msg:match("cff(%w%w%w%w%w%w)") or "ffffff" - itemInfo.color = color + if WeakAurasSaved.Cyka.ItemCache[name] then itemInfo.icon = WeakAurasSaved.Cyka.ItemCache[name].icon end + local color = msg:match("cff(%w%w%w%w%w%w)") or "ffffff" + itemInfo.color = color - return itemInfo, nil + return itemInfo, nil end ---@param msg string ---@param allstates allstates DrawIcon = function(msg, allstates) - local info, err = GetItemInfo(msg) - if err then - print(err) - return - end + local info, err = GetItemInfo(msg) + if err then + print(err) + return + end - local formattedName = "\124cff" .. info.color .. "[" .. info.name .. "]\124r x" .. info.quantity - allstates[#aura_env.allstates + 1] = { - show = true, - changed = true, - index = GetTime(), - resort = true, + local formattedName = "\124cff" .. info.color .. "[" .. info.name .. "]\124r x" .. info.quantity + allstates[#aura_env.allstates + 1] = { + show = true, + changed = true, + index = GetTime(), + resort = true, - icon = info.icon, - name = formattedName, + icon = info.icon, + name = formattedName, - progressType = "timed", - expirationTime = GetTime() + iconDisplayDuration, - duration = iconDisplayDuration, - autoHide = true, - } -end \ No newline at end of file + progressType = "timed", + expirationTime = GetTime() + iconDisplayDuration, + duration = iconDisplayDuration, + autoHide = true, + } +end diff --git a/FreshShit/AutoLoot/Init.lua b/FreshShit/AutoLoot/Init.lua index e4194ae..00f662e 100644 --- a/FreshShit/AutoLoot/Init.lua +++ b/FreshShit/AutoLoot/Init.lua @@ -6,814 +6,824 @@ if not WeakAurasSaved.Cyka.ItemCache then WeakAurasSaved.Cyka.ItemCache = {} end ---@param slot number ---@return string, string|nil local function getItemLink(slot) - if slot == nil then return "", string.format("Slot can not be nil") end - local link = GetLootSlotLink(slot) - if link == nil then return "", string.format("GetLootSlotLink returned nil for slot %d", slot) end - return link, nil + if slot == nil then return "", string.format("Slot can not be nil") end + local link = GetLootSlotLink(slot) + if link == nil then return "", string.format("GetLootSlotLink returned nil for slot %d", slot) end + return link, nil end ---@param slot number ---@return string, string|nil local function getItemName(slot) - if slot == nil then return "", string.format("Slot can not be null") end - local name = select(2, GetLootSlotInfo(slot)) - if name == nil then return "", string.format("GetLootSlotInfo returned nil for slot %d", slot) end - return name, nil + if slot == nil then return "", string.format("Slot can not be null") end + local name = select(2, GetLootSlotInfo(slot)) + if name == nil then return "", string.format("GetLootSlotInfo returned nil for slot %d", slot) end + return name, nil end ---@param slot number ---@return string, string|nil local function getItemType(slot) - if slot == nil then return "", string.format("Slot can not be nil") end - local itemLink, err = getItemLink(slot) - if err then return "", err end - local itemType = select(6, GetItemInfo(itemLink)) - if itemType == nil then return "", string.format("GetItemInfo returned nil for slot %d", slot) end - return itemType, nil + if slot == nil then return "", string.format("Slot can not be nil") end + local itemLink, err = getItemLink(slot) + if err then return "", err end + local itemType = select(6, GetItemInfo(itemLink)) + if itemType == nil then return "", string.format("GetItemInfo returned nil for slot %d", slot) end + return itemType, nil end ---@param slot number ---@return string, string|nil local function getItemSubtype(slot) - if slot == nil then return "", string.format("Slot can not be nil") end - local itemLink, err = getItemLink(slot) - if err then return "", err end - local itemSubtype = select(7, GetItemInfo(itemLink)) - if itemSubtype == nil then return "", string.format("GetItemInfo returned nil for slot %d", slot) end - return itemSubtype, nil + if slot == nil then return "", string.format("Slot can not be nil") end + local itemLink, err = getItemLink(slot) + if err then return "", err end + local itemSubtype = select(7, GetItemInfo(itemLink)) + if itemSubtype == nil then return "", string.format("GetItemInfo returned nil for slot %d", slot) end + return itemSubtype, nil end ---@param slot number ---@return number, string|nil local function getItemLevel(slot) - if slot == nil then return 0, string.format("Slot can not be nil") end - local itemLink, err = getItemLink(slot) - if err then return 0, err end - local itemLevel = select(4, GetItemInfo(itemLink)) - if itemLevel == nil then return 0, string.format("GetItemInfo returned nil for slot %d", slot) end - return itemLevel, nil + if slot == nil then return 0, string.format("Slot can not be nil") end + local itemLink, err = getItemLink(slot) + if err then return 0, err end + local itemLevel = select(4, GetItemInfo(itemLink)) + if itemLevel == nil then return 0, string.format("GetItemInfo returned nil for slot %d", slot) end + return itemLevel, nil end ---The vendor price in copper, or 0 for items that cannot be sold ---@param slot number ---@return number, string|nil local function getItemValue(slot) - if slot == nil then return 0, string.format("Slot can not be nil") end - local itemLink, err = getItemLink(slot) - if err then return 0, err end - local value = select(11, GetItemInfo(itemLink)) - if value == nil then return 0, string.format("GetItemInfo returned nil for slot %d", slot) end - return value, nil + if slot == nil then return 0, string.format("Slot can not be nil") end + local itemLink, err = getItemLink(slot) + if err then return 0, err end + local value = select(11, GetItemInfo(itemLink)) + if value == nil then return 0, string.format("GetItemInfo returned nil for slot %d", slot) end + return value, nil end ---@param slot number ---@return number, string|nil local function getItemSubclassId(slot) - if slot == nil then return 0, string.format("Slot can not be nil") end - local itemLink, err = getItemLink(slot) - if err then return 0, err end - local subclassId = select(13, GetItemInfo(itemLink)) - if subclassId == nil then return 0, string.format("GetItemInfo returned nil for slot %d", slot) end - return subclassId, nil + if slot == nil then return 0, string.format("Slot can not be nil") end + local itemLink, err = getItemLink(slot) + if err then return 0, err end + local subclassId = select(13, GetItemInfo(itemLink)) + if subclassId == nil then return 0, string.format("GetItemInfo returned nil for slot %d", slot) end + return subclassId, nil end ---@param slot number ---@return number, string|nil local function getItemQuantity(slot) - if slot == nil then return 0, string.format("Slot can not be nil") end - local quantity = select(3, GetLootSlotInfo(slot)) - if quantity == nil then return 0, string.format("GetLootSlotInfo returned nil for slot %d", slot) end - return quantity, nil + if slot == nil then return 0, string.format("Slot can not be nil") end + local quantity = select(3, GetLootSlotInfo(slot)) + if quantity == nil then return 0, string.format("GetLootSlotInfo returned nil for slot %d", slot) end + return quantity, nil end ---@param slot number ---@return Enum.ItemQuality, string|nil local function getItemQuality(slot) - if slot == nil then return 0, string.format("Slot can not be nil") end - local itemLink, err = getItemLink(slot) - if err then return 0, err end - local quality = select(3, GetItemInfo(itemLink)) - if quality == nil then return 0, string.format("GetItemInfo returned nil for slot %d", slot) end - return quality, nil + if slot == nil then return 0, string.format("Slot can not be nil") end + local itemLink, err = getItemLink(slot) + if err then return 0, err end + local quality = select(3, GetItemInfo(itemLink)) + if quality == nil then return 0, string.format("GetItemInfo returned nil for slot %d", slot) end + return quality, nil end ---@param slot number ---@return string, string|nil local function getItemEquipLocation(slot) - if slot == nil then return "", string.format("Slot can not be nil") end - local itemLink, err = getItemLink(slot) - if err then return "", err end - local equipLoc = select(9, GetItemInfo(itemLink)) - if equipLoc == nil then return "", string.format("GetItemInfo returned nil for slot %d", slot) end - return equipLoc, nil + if slot == nil then return "", string.format("Slot can not be nil") end + local itemLink, err = getItemLink(slot) + if err then return "", err end + local equipLoc = select(9, GetItemInfo(itemLink)) + if equipLoc == nil then return "", string.format("GetItemInfo returned nil for slot %d", slot) end + return equipLoc, nil end ---@param slot number ---@return number, string|nil local function getItemIcon(slot) - if slot == nil then return 134400, string.format("Slot can not be nil") end - local itemLink, err = getItemLink(slot) - if err then return 134400, err end - local icon = select(10, GetItemInfo(itemLink)) - if icon == nil then return 134400, string.format("GetItemInfo returned nil for slot %d", slot) end - return icon, nil + if slot == nil then return 134400, string.format("Slot can not be nil") end + local itemLink, err = getItemLink(slot) + if err then return 134400, err end + local icon = select(10, GetItemInfo(itemLink)) + if icon == nil then return 134400, string.format("GetItemInfo returned nil for slot %d", slot) end + return icon, nil end ---@param slot number ---@return number, string|nil local function getBindType(slot) - if slot == nil then return 0, string.format("Slot can not be nil") end - local itemLink, err = getItemLink(slot) - if err then return 0, err end - local bindType = select(14, GetItemInfo(itemLink)) - if bindType == nil then return 0, string.format("GetItemInfo returned nil for slot %d", slot) end - return bindType, nil + if slot == nil then return 0, string.format("Slot can not be nil") end + local itemLink, err = getItemLink(slot) + if err then return 0, err end + local bindType = select(14, GetItemInfo(itemLink)) + if bindType == nil then return 0, string.format("GetItemInfo returned nil for slot %d", slot) end + return bindType, nil end ---@class Filter ---@field requires table | nil ---@field filter fun(slot: number, provided: table): boolean Filter = { - ---@param requires table | nil - ---@param filter fun(slot: number, provided: table): boolean - ---@return Filter - new = function(requires, filter) - local self = setmetatable({}, { - __index = Filter - }) - self.requires = requires - self.filter = filter - return self - end, + ---@param requires table | nil + ---@param filter fun(slot: number, provided: table): boolean + ---@return Filter + new = function(requires, filter) + local self = setmetatable({}, { + __index = Filter, + }) + self.requires = requires + self.filter = filter + return self + end, - ---@param self Filter - ---@param slot number - ---@return boolean, string|nil - Run = function(self, slot) - ---@type table - local provided = {} - if self.requires then - for k, v in pairs(self.requires) do - local res, err = v(slot) - if err ~= nil then - if debug then print(err) end - return false, err - end - provided[k] = res - end - end - local res, err = self.filter(slot, provided) - if err ~= nil then - if debug then print(err) end - end - return res, nil - end + ---@param self Filter + ---@param slot number + ---@return boolean, string|nil + Run = function(self, slot) + ---@type table + local provided = {} + if self.requires then + for k, v in pairs(self.requires) do + local res, err = v(slot) + if err ~= nil then + if debug then print(err) end + return false, err + end + provided[k] = res + end + end + local res, err = self.filter(slot, provided) + if err ~= nil then + if debug then print(err) end + end + return res, nil + end, } -local goldFilter = Filter.new({ ["name"] = getItemName }, - function(slot, provided) - ---@cast provided { name: string } - if not aura_env.config.goldFilter then return false end - if string.find(provided.name, "Gold") or - string.find(provided.name, "Silver") or - string.find(provided.name, "Copper") then - if debug then print(string.format("Gold filter pass for %s", provided.name)) end - return true - end - if debug then print(string.format("Gold filter fail for %s", provided.name)) end - return false - end) -local orderResourcesFilter = Filter.new({ ["name"] = getItemName }, - function(slot, provided) - ---@cast provided { name: string } - if not aura_env.config.orderResourcesFilter then return false end - if string.find(provided.name, "Order Resources") then - if debug then print(string.format("Order resource filter pass for %s", provided.name)) end - return true - end - if debug then print(string.format("Order resource filter fail for %s", provided.name)) end - return false - end) -local mountFilter = Filter.new({ ["type"] = getItemType }, - function(slot, provided) - ---@cast provided { type: string } - if not aura_env.config.mountFilter then return false end - if provided.type == "Mount" then - if debug then print(string.format("Mount filter pass for type %s", provided.type)) end - return true - end - if debug then print(string.format("Mount filter fail for type %s", provided.type)) end - return false - end) -local ilvlFilter = Filter.new({ ["ilvl"] = getItemLevel }, - function(slot, provided) - ---@cast provided { ilvl: number } - if not aura_env.config.ilvlFilter then return false end - if provided.ilvl and provided.ilvl > aura_env.config.ilvlFilterThreshold then - if debug then print(string.format("ilvl filter pass for ilvl %d", provided.ilvl)) end - return true - end - if debug then print(string.format("ilvl filter fail for ilvl %d", provided.ilvl)) end - return false - end) -local professionFilter = Filter.new({ - ["type"] = getItemType, - ["subtype"] = getItemSubtype - }, - function(slot, provided) - ---@cast provided { type: string, subtype: string } - if not aura_env.config.professionFilter then return false end - - local enabled = { - ["Cloth"] = aura_env.config.professionFilterProfessions[1], - ["Cooking"] = aura_env.config.professionFilterProfessions[2], - ["Enchanting"] = aura_env.config.professionFilterProfessions[3], - ["Herb"] = aura_env.config.professionFilterProfessions[4], - ["Inscription"] = aura_env.config.professionFilterProfessions[5], - ["Jewelcrafting"] = aura_env.config.professionFilterProfessions[6], - ["Leather"] = aura_env.config.professionFilterProfessions[7], - ["Metal & Stone"] = aura_env.config.professionFilterProfessions[8], - ["Ore"] = aura_env.config.professionFilterProfessions[9], - } - - -- Maybe implement an expansion based filter - if provided.type == "Tradeskill" then - if enabled[provided.subtype] then - if debug then print(string.format("Profession filter pass for type %s", provided.type)) end - return true - end - end - if debug then print(string.format("Profession filter fail for type %s", provided.type)) end - return false - end) -local valueFilter = Filter.new({ - ["value"] = getItemValue, - ["quantity"] = getItemQuality - }, - function(slot, provided) - ---@cast provided { value: number, quantity: number } - if not aura_env.config.valueFilter then return false end - - local valueThreshold = aura_env.config.valueFilterThreshold - - local value = provided.value - if aura_env.config.valueFilterApplyValueToStack then value = value * provided.quantity end - - if value > valueThreshold then - if debug then print(string.format("Value filter pass for value %d", value)) end - return true - end - if debug then print(string.format("Value filter fail for value %d", value)) end - return false - end) -local greyValueFilter = Filter.new({ - ["quality"] = getItemQuality, - ["value"] = getItemValue, - ["quantity"] = getItemQuantity - }, - function(slot, provided) - ---@cast provided { quality: number, value: number, quantity: number } - if not aura_env.config.greyValueFilter then return false end - - local valueThreshold = aura_env.config.greyValueFilterThreshold - - if provided.quality == 0 then - local value = provided.value - if aura_env.config.greyValueFilterApplyValueToStack then value = value * provided.quantity end - - if value > valueThreshold then - if debug then - print(string.format("Grey value filter pass for value %d of %s quality items", value, - provided.quality)) - end - return true - end - end - if debug then - print(string.format("Grey value filter fail for value %d of %s quality items", provided.value, - provided.quality)) - end - return false - end) -local questItemFilter = Filter.new({ - ["type"] = getItemType, - ["subtype"] = getItemSubtype - }, - function(slot, provided) - ---@cast provided { type: string, subtype: string } - if not aura_env.config.questItemsFilter then return false end - - if provided.type == "Quest" and provided.subtype == "Quest" then - if debug then - print(string.format("Quest item filter pass for type %s and subtype", provided.type, - provided.subtype)) - end - return true - end - if debug then - print(string.format("Quest item filter fail for type %s and subtype", provided.type, - provided.subtype)) - end - return false - end) -local classGearFilter = Filter.new({ - ["ilvl"] = getItemLevel, - ["quality"] = getItemQuality, - ["type"] = getItemType, - ["subtype"] = getItemSubtype, - ["equiploc"] = getItemEquipLocation - }, - function(slot, provided) - ---@cast provided { ilvl: number, quality: number, type: string, subtype: string, equiploc: string } - if not aura_env.config.classGearFilter then return false end - - local ilvlThreshold = aura_env.config.classGearFilterIlvlThreshold - local qualityThreshold = aura_env.config.classGearFilterQualityThreshold - - local isEquippable = aura_env.skills[select(3, UnitClass("player"))][provided.subtype] == 1 - - if isEquippable and provided.ilvl > ilvlThreshold and provided.quality > qualityThreshold then - if debug then - print(string.format("Class gear filter pass for ilvl %d and quality %d", provided.ilvl, - provided.quality)) - end - return true - end - if debug then - print(string.format("Class gear filter fail for ilvl %d and quality %d", provided.ilvl, - provided.quality)) - end - return false - end) -local nameFilter = Filter.new({ ["name"] = getItemName }, - function(slot, provided) - ---@cast provided { name: string } - if not aura_env.config.nameFilter then return false end - - local names = string.split(",", aura_env.config.nameFilterNames or "") - if #names == 0 then return false end - for _, name in ipairs(names) do - name = string.trim(name) - - if aura_env.config.nameFilterIgnoreCase then - name = string.lower(name) - provided.name = string.lower(provided.name) - end - - if provided.name == name then - if debug then print(string.format("Name filter pass for %s", provided.name)) end - return true - end - end - if debug then print(string.format("Name filter fail for %s", provided.name)) end - return false - end) -local reicpeFilter = Filter.new({ ["name"] = getItemName }, - function(slot, provided) - ---@cast provided { name: string } - if string.find(provided.name, "Recipe") or string.find(provided.name, "Technique") then - if debug then print(string.format("Recipe filter pass for %s", provided.name)) end - return true - end - if debug then print(string.format("Recipe filter fail for %s", provided.name)) end - return false - end) -local boeFilter = Filter.new({ - ["ilvl"] = getItemLevel, - ["type"] = getItemType, - ["quality"] = getItemQuality, - ["equiploc"] = getItemEquipLocation, - ["bindtype"] = getBindType - }, - function(slot, provided) - ---@cast provided { ilvl: number, type: string, quality: number, equiploc: string, bindtype: number } - aura_env.config.boeFilter = true - - local ilvlThreshold = aura_env.config.boeFilterIlvlThreshold - local qualityThreshold = aura_env.config.boeFilterQualityThreshold - - local itemType = provided.type - local itemEquipLoc = provided.equiploc - if (itemType == "Armor" - or itemType == "Weapon" - or itemEquipLoc == "INVTYPE_FINGER" - or itemEquipLoc == "INVTYPE_TRINKET" - or itemEquipLoc == "INVTYPE_CLOAK" - or itemEquipLoc == "INVTYPE_NECK") then - local itemLevel = provided.ilvl - local itemQuality = provided.quality - local bindType = provided.bindtype - - if itemLevel > ilvlThreshold and itemQuality > qualityThreshold and bindType == 1 then - if debug then print(string.format("BoE filter pass for ilvl %d and quality %d", itemLevel, itemQuality)) end - return true - end - end - if debug then print(string.format("BoE filter fail for ilvl %d and quality %d", provided.ilvl, provided.quality)) end - return false - end) -local artifactPowerFilter = Filter.new({ - ["type"] = getItemType, - ["subtype"] = getItemSubtype, - ["subclassid"] = getItemSubclassId, - ["value"] = getItemValue -}, function(slot, provided) - ---@cast provided { type: string, subtype: string, subclassid: number, value: number } - if not aura_env.config.artifactPowerFilter then return false end - if provided.value == 0 and provided.type == "Consumable" and provided.subtype == "Other" and provided.subclassid == 8 then - if debug then - print(string.format("Artifact power filter pass for type %s and subtype %s and subclassid %d with value %d", - provided.type, provided.subtype, provided.subclassid, provided.value)) - end - return true - end - if debug then - DevTools_Dump(provided) - print(string.format("Artifact power filter fail for type %s and subtype %s and subclassid %d with value %d", - provided.type, provided.subtype, provided.subclassid, provided.value)) - end - return false +local goldFilter = Filter.new({ ["name"] = getItemName }, function(slot, provided) + ---@cast provided { name: string } + if not aura_env.config.goldFilter then return false end + if + string.find(provided.name, "Gold") + or string.find(provided.name, "Silver") + or string.find(provided.name, "Copper") + then + if debug then print(string.format("Gold filter pass for %s", provided.name)) end + return true + end + if debug then print(string.format("Gold filter fail for %s", provided.name)) end + return false +end) +local orderResourcesFilter = Filter.new({ ["name"] = getItemName }, function(slot, provided) + ---@cast provided { name: string } + if not aura_env.config.orderResourcesFilter then return false end + if string.find(provided.name, "Order Resources") then + if debug then print(string.format("Order resource filter pass for %s", provided.name)) end + return true + end + if debug then print(string.format("Order resource filter fail for %s", provided.name)) end + return false +end) +local mountFilter = Filter.new({ ["type"] = getItemType }, function(slot, provided) + ---@cast provided { type: string } + if not aura_env.config.mountFilter then return false end + if provided.type == "Mount" then + if debug then print(string.format("Mount filter pass for type %s", provided.type)) end + return true + end + if debug then print(string.format("Mount filter fail for type %s", provided.type)) end + return false +end) +local ilvlFilter = Filter.new({ ["ilvl"] = getItemLevel }, function(slot, provided) + ---@cast provided { ilvl: number } + if not aura_env.config.ilvlFilter then return false end + if provided.ilvl and provided.ilvl > aura_env.config.ilvlFilterThreshold then + if debug then print(string.format("ilvl filter pass for ilvl %d", provided.ilvl)) end + return true + end + if debug then print(string.format("ilvl filter fail for ilvl %d", provided.ilvl)) end + return false +end) +local professionFilter = Filter.new({ + ["type"] = getItemType, + ["subtype"] = getItemSubtype, +}, function(slot, provided) + ---@cast provided { type: string, subtype: string } + if not aura_env.config.professionFilter then return false end + + local enabled = { + ["Cloth"] = aura_env.config.professionFilterProfessions[1], + ["Cooking"] = aura_env.config.professionFilterProfessions[2], + ["Enchanting"] = aura_env.config.professionFilterProfessions[3], + ["Herb"] = aura_env.config.professionFilterProfessions[4], + ["Inscription"] = aura_env.config.professionFilterProfessions[5], + ["Jewelcrafting"] = aura_env.config.professionFilterProfessions[6], + ["Leather"] = aura_env.config.professionFilterProfessions[7], + ["Metal & Stone"] = aura_env.config.professionFilterProfessions[8], + ["Ore"] = aura_env.config.professionFilterProfessions[9], + } + + -- Maybe implement an expansion based filter + if provided.type == "Tradeskill" then + if enabled[provided.subtype] then + if debug then print(string.format("Profession filter pass for type %s", provided.type)) end + return true + end + end + if debug then print(string.format("Profession filter fail for type %s", provided.type)) end + return false +end) +local valueFilter = Filter.new({ + ["value"] = getItemValue, + ["quantity"] = getItemQuality, +}, function(slot, provided) + ---@cast provided { value: number, quantity: number } + if not aura_env.config.valueFilter then return false end + + local valueThreshold = aura_env.config.valueFilterThreshold + + local value = provided.value + if aura_env.config.valueFilterApplyValueToStack then value = value * provided.quantity end + + if value > valueThreshold then + if debug then print(string.format("Value filter pass for value %d", value)) end + return true + end + if debug then print(string.format("Value filter fail for value %d", value)) end + return false +end) +local greyValueFilter = Filter.new({ + ["quality"] = getItemQuality, + ["value"] = getItemValue, + ["quantity"] = getItemQuantity, +}, function(slot, provided) + ---@cast provided { quality: number, value: number, quantity: number } + if not aura_env.config.greyValueFilter then return false end + + local valueThreshold = aura_env.config.greyValueFilterThreshold + + if provided.quality == 0 then + local value = provided.value + if aura_env.config.greyValueFilterApplyValueToStack then value = value * provided.quantity end + + if value > valueThreshold then + if debug then + print(string.format("Grey value filter pass for value %d of %s quality items", value, provided.quality)) + end + return true + end + end + if debug then + print( + string.format("Grey value filter fail for value %d of %s quality items", provided.value, provided.quality) + ) + end + return false +end) +local questItemFilter = Filter.new({ + ["type"] = getItemType, + ["subtype"] = getItemSubtype, +}, function(slot, provided) + ---@cast provided { type: string, subtype: string } + if not aura_env.config.questItemsFilter then return false end + + if provided.type == "Quest" and provided.subtype == "Quest" then + if debug then + print(string.format("Quest item filter pass for type %s and subtype", provided.type, provided.subtype)) + end + return true + end + if debug then + print(string.format("Quest item filter fail for type %s and subtype", provided.type, provided.subtype)) + end + return false +end) +local classGearFilter = Filter.new({ + ["ilvl"] = getItemLevel, + ["quality"] = getItemQuality, + ["type"] = getItemType, + ["subtype"] = getItemSubtype, + ["equiploc"] = getItemEquipLocation, +}, function(slot, provided) + ---@cast provided { ilvl: number, quality: number, type: string, subtype: string, equiploc: string } + if not aura_env.config.classGearFilter then return false end + + local ilvlThreshold = aura_env.config.classGearFilterIlvlThreshold + local qualityThreshold = aura_env.config.classGearFilterQualityThreshold + + local isEquippable = aura_env.skills[select(3, UnitClass("player"))][provided.subtype] == 1 + + if isEquippable and provided.ilvl > ilvlThreshold and provided.quality > qualityThreshold then + if debug then + print(string.format("Class gear filter pass for ilvl %d and quality %d", provided.ilvl, provided.quality)) + end + return true + end + if debug then + print(string.format("Class gear filter fail for ilvl %d and quality %d", provided.ilvl, provided.quality)) + end + return false +end) +local nameFilter = Filter.new({ ["name"] = getItemName }, function(slot, provided) + ---@cast provided { name: string } + if not aura_env.config.nameFilter then return false end + + local names = string.split(",", aura_env.config.nameFilterNames or "") + if #names == 0 then return false end + for _, name in ipairs(names) do + name = string.trim(name) + + if aura_env.config.nameFilterIgnoreCase then + name = string.lower(name) + provided.name = string.lower(provided.name) + end + + if provided.name == name then + if debug then print(string.format("Name filter pass for %s", provided.name)) end + return true + end + end + if debug then print(string.format("Name filter fail for %s", provided.name)) end + return false +end) +local reicpeFilter = Filter.new({ ["name"] = getItemName }, function(slot, provided) + ---@cast provided { name: string } + if string.find(provided.name, "Recipe") or string.find(provided.name, "Technique") then + if debug then print(string.format("Recipe filter pass for %s", provided.name)) end + return true + end + if debug then print(string.format("Recipe filter fail for %s", provided.name)) end + return false +end) +local boeFilter = Filter.new({ + ["ilvl"] = getItemLevel, + ["type"] = getItemType, + ["quality"] = getItemQuality, + ["equiploc"] = getItemEquipLocation, + ["bindtype"] = getBindType, +}, function(slot, provided) + ---@cast provided { ilvl: number, type: string, quality: number, equiploc: string, bindtype: number } + aura_env.config.boeFilter = true + + local ilvlThreshold = aura_env.config.boeFilterIlvlThreshold + local qualityThreshold = aura_env.config.boeFilterQualityThreshold + + local itemType = provided.type + local itemEquipLoc = provided.equiploc + if + itemType == "Armor" + or itemType == "Weapon" + or itemEquipLoc == "INVTYPE_FINGER" + or itemEquipLoc == "INVTYPE_TRINKET" + or itemEquipLoc == "INVTYPE_CLOAK" + or itemEquipLoc == "INVTYPE_NECK" + then + local itemLevel = provided.ilvl + local itemQuality = provided.quality + local bindType = provided.bindtype + + if itemLevel > ilvlThreshold and itemQuality > qualityThreshold and bindType == 1 then + if debug then print(string.format("BoE filter pass for ilvl %d and quality %d", itemLevel, itemQuality)) end + return true + end + end + if debug then + print(string.format("BoE filter fail for ilvl %d and quality %d", provided.ilvl, provided.quality)) + end + return false +end) +local artifactPowerFilter = Filter.new({ + ["type"] = getItemType, + ["subtype"] = getItemSubtype, + ["subclassid"] = getItemSubclassId, + ["value"] = getItemValue, +}, function(slot, provided) + ---@cast provided { type: string, subtype: string, subclassid: number, value: number } + if not aura_env.config.artifactPowerFilter then return false end + if + provided.value == 0 + and provided.type == "Consumable" + and provided.subtype == "Other" + and provided.subclassid == 8 + then + if debug then + print( + string.format( + "Artifact power filter pass for type %s and subtype %s and subclassid %d with value %d", + provided.type, + provided.subtype, + provided.subclassid, + provided.value + ) + ) + end + return true + end + if debug then + DevTools_Dump(provided) + print( + string.format( + "Artifact power filter fail for type %s and subtype %s and subclassid %d with value %d", + provided.type, + provided.subtype, + provided.subclassid, + provided.value + ) + ) + end + return false +end) +local everythingFilter = Filter.new({ ["name"] = getItemName }, function(slot, provided) + ---@cast provided { name: string } + return aura_env.config.everythingFilter end) -local everythingFilter = Filter.new({ ["name"] = getItemName }, - function(slot, provided) - ---@cast provided { name: string } - return aura_env.config.everythingFilter - end) ---@type table local filters = { - everythingFilter, - artifactPowerFilter, - boeFilter, - classGearFilter, - goldFilter, - greyValueFilter, - ilvlFilter, - mountFilter, - orderResourcesFilter, - professionFilter, - questItemFilter, - -- reicpeFilter, - valueFilter, - nameFilter, + everythingFilter, + artifactPowerFilter, + boeFilter, + classGearFilter, + goldFilter, + greyValueFilter, + ilvlFilter, + mountFilter, + orderResourcesFilter, + professionFilter, + questItemFilter, + -- reicpeFilter, + valueFilter, + nameFilter, } ---@class FilterService aura_env.FilterService = { - ---@param lootInfo table - Run = function(lootInfo) - ---@type table - local slotsToLoot = {} - for slot, item in pairs(lootInfo) do - if debug then - local itemname = getItemName(slot) - print(string.format("Checking slot %d for %s", slot, itemname)) - end - for _, filter in ipairs(filters) do - local res, err = filter:Run(slot) - if err then - if debug then print(err) end - end - if res then - slotsToLoot[#slotsToLoot + 1] = slot - break - end - end - end + ---@param lootInfo table + Run = function(lootInfo) + ---@type table + local slotsToLoot = {} + for slot, item in pairs(lootInfo) do + if debug then + local itemname = getItemName(slot) + print(string.format("Checking slot %d for %s", slot, itemname)) + end + for _, filter in ipairs(filters) do + local res, err = filter:Run(slot) + if err then + if debug then print(err) end + end + if res then + slotsToLoot[#slotsToLoot + 1] = slot + break + end + end + end - aura_env.FilterService.doLoot(slotsToLoot) - end, + aura_env.FilterService.doLoot(slotsToLoot) + end, - ---@param slots table - ---@return nil - doLoot = function(slots) - for i = #slots, 1, -1 do - aura_env.FilterService.lootslot(slots[i]) - end - end, + ---@param slots table + ---@return nil + doLoot = function(slots) + for i = #slots, 1, -1 do + aura_env.FilterService.lootslot(slots[i]) + end + end, - ---@param slot number - ---@return nil - lootslot = function(slot) - LootSlot(slot) + ---@param slot number + ---@return nil + lootslot = function(slot) + LootSlot(slot) - local itemIcon = getItemIcon(slot) or 134400 - local itemName = getItemName(slot) or "Unknown" - itemName = itemName:gsub("\n", ", ") - local itemQuality = getItemQuality(slot) or 0 + local itemIcon = getItemIcon(slot) or 134400 + local itemName = getItemName(slot) or "Unknown" + itemName = itemName:gsub("\n", ", ") + local itemQuality = getItemQuality(slot) or 0 - if string.find(itemName, "Gold") == nil - and string.find(itemName, "Silver") == nil - and string.find(itemName, "Copper") == nil then - if not WeakAurasSaved.Cyka.ItemCache[itemName] then - WeakAurasSaved.Cyka.ItemCache[itemName] = { - icon = itemIcon, - quality = itemQuality, - } - end - end - end + if + string.find(itemName, "Gold") == nil + and string.find(itemName, "Silver") == nil + and string.find(itemName, "Copper") == nil + then + if not WeakAurasSaved.Cyka.ItemCache[itemName] then + WeakAurasSaved.Cyka.ItemCache[itemName] = { + icon = itemIcon, + quality = itemQuality, + } + end + end + end, } aura_env.skills = { - --Warrior - [1] = { - --Armor Skills - ["Cloth"] = 0, - ["Leather"] = 0, - ["Mail"] = 0, - ["Plate"] = 1, - ["Shields"] = 1, - --Weapon Skills - ["One-Handed Axes"] = 1, - ["Two-Handed Axes"] = 1, - ["Bows"] = 1, - ["Guns"] = 1, - ["One-Handed Maces"] = 1, - ["Two-Handed Maces"] = 1, - ["Polearms"] = 1, - ["One-Handed Swords"] = 1, - ["Two-Handed Swords"] = 1, - ["Warglaives"] = 1, - ["Staves"] = 1, - ["Fist Weapons"] = 1, - ["Daggers"] = 1, - ["Crossbows"] = 1, - ["Wands"] = 0, - }, - --Paladin - [2] = { - --Armor Skills - ["Cloth"] = 0, - ["Leather"] = 0, - ["Mail"] = 0, - ["Plate"] = 1, - ["Shields"] = 1, - --Weapon Skills - ["One-Handed Axes"] = 1, - ["Two-Handed Axes"] = 1, - ["Bows"] = 0, - ["Guns"] = 0, - ["One-Handed Maces"] = 1, - ["Two-Handed Maces"] = 1, - ["Polearms"] = 1, - ["One-Handed Swords"] = 1, - ["Two-Handed Swords"] = 1, - ["Warglaives"] = 0, - ["Staves"] = 0, - ["Fist Weapons"] = 0, - ["Daggers"] = 0, - ["Crossbows"] = 0, - ["Wands"] = 0, - }, - --Hunter - [3] = { - --Armor Skills - ["Cloth"] = 0, - ["Leather"] = 0, - ["Mail"] = 1, - ["Plate"] = 0, - ["Shields"] = 0, - --Weapon Skills - ["One-Handed Axes"] = 1, - ["Two-Handed Axes"] = 1, - ["Bows"] = 1, - ["Guns"] = 1, - ["One-Handed Maces"] = 0, - ["Two-Handed Maces"] = 0, - ["Polearms"] = 1, - ["One-Handed Swords"] = 1, - ["Two-Handed Swords"] = 1, - ["Warglaives"] = 0, - ["Staves"] = 1, - ["Fist Weapons"] = 1, - ["Daggers"] = 1, - ["Crossbows"] = 1, - ["Wands"] = 0, - }, - --Rogue - [4] = { - --Armor Skills - ["Cloth"] = 0, - ["Leather"] = 1, - ["Mail"] = 0, - ["Plate"] = 0, - ["Shields"] = 0, - --Weapon Skills - ["One-Handed Axes"] = 1, - ["Two-Handed Axes"] = 0, - ["Bows"] = 0, - ["Guns"] = 0, - ["One-Handed Maces"] = 1, - ["Two-Handed Maces"] = 0, - ["Polearms"] = 0, - ["One-Handed Swords"] = 1, - ["Two-Handed Swords"] = 0, - ["Warglaives"] = 0, - ["Staves"] = 0, - ["Fist Weapons"] = 1, - ["Daggers"] = 1, - ["Crossbows"] = 0, - ["Wands"] = 0, - }, - --Priest - [5] = { - --Armor Skills - ["Cloth"] = 1, - ["Leather"] = 0, - ["Mail"] = 0, - ["Plate"] = 0, - ["Shields"] = 0, - --Weapon Skills - ["One-Handed Axes"] = 0, - ["Two-Handed Axes"] = 0, - ["Bows"] = 0, - ["Guns"] = 0, - ["One-Handed Maces"] = 1, - ["Two-Handed Maces"] = 0, - ["Polearms"] = 0, - ["One-Handed Swords"] = 0, - ["Two-Handed Swords"] = 0, - ["Warglaives"] = 0, - ["Staves"] = 1, - ["Fist Weapons"] = 0, - ["Daggers"] = 1, - ["Crossbows"] = 0, - ["Wands"] = 1, - }, - --Death Knight - [6] = { - --Armor Skills - ["Cloth"] = 0, - ["Leather"] = 0, - ["Mail"] = 0, - ["Plate"] = 1, - ["Shields"] = 0, - --Weapon Skills - ["One-Handed Axes"] = 1, - ["Two-Handed Axes"] = 1, - ["Bows"] = 0, - ["Guns"] = 0, - ["One-Handed Maces"] = 1, - ["Two-Handed Maces"] = 1, - ["Polearms"] = 1, - ["One-Handed Swords"] = 1, - ["Two-Handed Swords"] = 1, - ["Warglaives"] = 0, - ["Staves"] = 0, - ["Fist Weapons"] = 0, - ["Daggers"] = 0, - ["Crossbows"] = 0, - ["Wands"] = 0, - }, - --Shaman - [7] = { - --Armor Skills - ["Cloth"] = 0, - ["Leather"] = 0, - ["Mail"] = 1, - ["Plate"] = 0, - ["Shields"] = 1, - --Weapon Skills - ["One-Handed Axes"] = 1, - ["Two-Handed Axes"] = 0, - ["Bows"] = 0, - ["Guns"] = 0, - ["One-Handed Maces"] = 1, - ["Two-Handed Maces"] = 0, - ["Polearms"] = 0, - ["One-Handed Swords"] = 0, - ["Two-Handed Swords"] = 0, - ["Warglaives"] = 0, - ["Staves"] = 1, - ["Fist Weapons"] = 1, - ["Daggers"] = 1, - ["Crossbows"] = 0, - ["Wands"] = 0, - }, - --Mage - [8] = { - --Armor Skills - ["Cloth"] = 1, - ["Leather"] = 0, - ["Mail"] = 0, - ["Plate"] = 0, - ["Shields"] = 0, - --Weapon Skills - ["One-Handed Axes"] = 0, - ["Two-Handed Axes"] = 0, - ["Bows"] = 0, - ["Guns"] = 0, - ["One-Handed Maces"] = 0, - ["Two-Handed Maces"] = 0, - ["Polearms"] = 0, - ["One-Handed Swords"] = 1, - ["Two-Handed Swords"] = 0, - ["Warglaives"] = 0, - ["Staves"] = 1, - ["Fist Weapons"] = 0, - ["Daggers"] = 1, - ["Crossbows"] = 0, - ["Wands"] = 1, - }, - --Warlock - [9] = { - --Armor Skills - ["Cloth"] = 1, - ["Leather"] = 0, - ["Mail"] = 0, - ["Plate"] = 0, - ["Shields"] = 0, - --Weapon Skills - ["One-Handed Axes"] = 0, - ["Two-Handed Axes"] = 0, - ["Bows"] = 0, - ["Guns"] = 0, - ["One-Handed Maces"] = 0, - ["Two-Handed Maces"] = 0, - ["Polearms"] = 0, - ["One-Handed Swords"] = 1, - ["Two-Handed Swords"] = 0, - ["Warglaives"] = 0, - ["Staves"] = 1, - ["Fist Weapons"] = 0, - ["Daggers"] = 1, - ["Crossbows"] = 0, - ["Wands"] = 1, - }, - --Monk - [10] = { - --Armor Skills - ["Cloth"] = 0, - ["Leather"] = 1, - ["Mail"] = 0, - ["Plate"] = 1, - ["Shields"] = 1, - --Weapon Skills - ["One-Handed Axes"] = 1, - ["Two-Handed Axes"] = 0, - ["Bows"] = 0, - ["Guns"] = 0, - ["One-Handed Maces"] = 1, - ["Two-Handed Maces"] = 0, - ["Polearms"] = 1, - ["One-Handed Swords"] = 1, - ["Two-Handed Swords"] = 0, - ["Warglaives"] = 0, - ["Staves"] = 1, - ["Fist Weapons"] = 1, - ["Daggers"] = 0, - ["Crossbows"] = 0, - ["Wands"] = 0, - }, - --Druid - [11] = { - --Armor Skills - ["Cloth"] = 0, - ["Leather"] = 1, - ["Mail"] = 0, - ["Plate"] = 0, - ["Shields"] = 0, - --Weapon Skills - ["One-Handed Axes"] = 0, - ["Two-Handed Axes"] = 0, - ["Bows"] = 0, - ["Guns"] = 0, - ["One-Handed Maces"] = 1, - ["Two-Handed Maces"] = 0, - ["Polearms"] = 1, - ["One-Handed Swords"] = 0, - ["Two-Handed Swords"] = 0, - ["Warglaives"] = 0, - ["Staves"] = 1, - ["Fist Weapons"] = 1, - ["Daggers"] = 1, - ["Crossbows"] = 0, - ["Wands"] = 0, - }, - --Demon Hunter - [12] = { - --Armor Skills - ["Cloth"] = 0, - ["Leather"] = 1, - ["Mail"] = 0, - ["Plate"] = 0, - ["Shields"] = 0, - --Weapon Skills - ["One-Handed Axes"] = 1, - ["Two-Handed Axes"] = 0, - ["Bows"] = 0, - ["Guns"] = 0, - ["One-Handed Maces"] = 0, - ["Two-Handed Maces"] = 0, - ["Polearms"] = 0, - ["One-Handed Swords"] = 1, - ["Two-Handed Swords"] = 0, - ["Warglaives"] = 1, - ["Staves"] = 0, - ["Fist Weapons"] = 1, - ["Daggers"] = 0, - ["Crossbows"] = 0, - ["Wands"] = 0, - }, + --Warrior + [1] = { + --Armor Skills + ["Cloth"] = 0, + ["Leather"] = 0, + ["Mail"] = 0, + ["Plate"] = 1, + ["Shields"] = 1, + --Weapon Skills + ["One-Handed Axes"] = 1, + ["Two-Handed Axes"] = 1, + ["Bows"] = 1, + ["Guns"] = 1, + ["One-Handed Maces"] = 1, + ["Two-Handed Maces"] = 1, + ["Polearms"] = 1, + ["One-Handed Swords"] = 1, + ["Two-Handed Swords"] = 1, + ["Warglaives"] = 1, + ["Staves"] = 1, + ["Fist Weapons"] = 1, + ["Daggers"] = 1, + ["Crossbows"] = 1, + ["Wands"] = 0, + }, + --Paladin + [2] = { + --Armor Skills + ["Cloth"] = 0, + ["Leather"] = 0, + ["Mail"] = 0, + ["Plate"] = 1, + ["Shields"] = 1, + --Weapon Skills + ["One-Handed Axes"] = 1, + ["Two-Handed Axes"] = 1, + ["Bows"] = 0, + ["Guns"] = 0, + ["One-Handed Maces"] = 1, + ["Two-Handed Maces"] = 1, + ["Polearms"] = 1, + ["One-Handed Swords"] = 1, + ["Two-Handed Swords"] = 1, + ["Warglaives"] = 0, + ["Staves"] = 0, + ["Fist Weapons"] = 0, + ["Daggers"] = 0, + ["Crossbows"] = 0, + ["Wands"] = 0, + }, + --Hunter + [3] = { + --Armor Skills + ["Cloth"] = 0, + ["Leather"] = 0, + ["Mail"] = 1, + ["Plate"] = 0, + ["Shields"] = 0, + --Weapon Skills + ["One-Handed Axes"] = 1, + ["Two-Handed Axes"] = 1, + ["Bows"] = 1, + ["Guns"] = 1, + ["One-Handed Maces"] = 0, + ["Two-Handed Maces"] = 0, + ["Polearms"] = 1, + ["One-Handed Swords"] = 1, + ["Two-Handed Swords"] = 1, + ["Warglaives"] = 0, + ["Staves"] = 1, + ["Fist Weapons"] = 1, + ["Daggers"] = 1, + ["Crossbows"] = 1, + ["Wands"] = 0, + }, + --Rogue + [4] = { + --Armor Skills + ["Cloth"] = 0, + ["Leather"] = 1, + ["Mail"] = 0, + ["Plate"] = 0, + ["Shields"] = 0, + --Weapon Skills + ["One-Handed Axes"] = 1, + ["Two-Handed Axes"] = 0, + ["Bows"] = 0, + ["Guns"] = 0, + ["One-Handed Maces"] = 1, + ["Two-Handed Maces"] = 0, + ["Polearms"] = 0, + ["One-Handed Swords"] = 1, + ["Two-Handed Swords"] = 0, + ["Warglaives"] = 0, + ["Staves"] = 0, + ["Fist Weapons"] = 1, + ["Daggers"] = 1, + ["Crossbows"] = 0, + ["Wands"] = 0, + }, + --Priest + [5] = { + --Armor Skills + ["Cloth"] = 1, + ["Leather"] = 0, + ["Mail"] = 0, + ["Plate"] = 0, + ["Shields"] = 0, + --Weapon Skills + ["One-Handed Axes"] = 0, + ["Two-Handed Axes"] = 0, + ["Bows"] = 0, + ["Guns"] = 0, + ["One-Handed Maces"] = 1, + ["Two-Handed Maces"] = 0, + ["Polearms"] = 0, + ["One-Handed Swords"] = 0, + ["Two-Handed Swords"] = 0, + ["Warglaives"] = 0, + ["Staves"] = 1, + ["Fist Weapons"] = 0, + ["Daggers"] = 1, + ["Crossbows"] = 0, + ["Wands"] = 1, + }, + --Death Knight + [6] = { + --Armor Skills + ["Cloth"] = 0, + ["Leather"] = 0, + ["Mail"] = 0, + ["Plate"] = 1, + ["Shields"] = 0, + --Weapon Skills + ["One-Handed Axes"] = 1, + ["Two-Handed Axes"] = 1, + ["Bows"] = 0, + ["Guns"] = 0, + ["One-Handed Maces"] = 1, + ["Two-Handed Maces"] = 1, + ["Polearms"] = 1, + ["One-Handed Swords"] = 1, + ["Two-Handed Swords"] = 1, + ["Warglaives"] = 0, + ["Staves"] = 0, + ["Fist Weapons"] = 0, + ["Daggers"] = 0, + ["Crossbows"] = 0, + ["Wands"] = 0, + }, + --Shaman + [7] = { + --Armor Skills + ["Cloth"] = 0, + ["Leather"] = 0, + ["Mail"] = 1, + ["Plate"] = 0, + ["Shields"] = 1, + --Weapon Skills + ["One-Handed Axes"] = 1, + ["Two-Handed Axes"] = 0, + ["Bows"] = 0, + ["Guns"] = 0, + ["One-Handed Maces"] = 1, + ["Two-Handed Maces"] = 0, + ["Polearms"] = 0, + ["One-Handed Swords"] = 0, + ["Two-Handed Swords"] = 0, + ["Warglaives"] = 0, + ["Staves"] = 1, + ["Fist Weapons"] = 1, + ["Daggers"] = 1, + ["Crossbows"] = 0, + ["Wands"] = 0, + }, + --Mage + [8] = { + --Armor Skills + ["Cloth"] = 1, + ["Leather"] = 0, + ["Mail"] = 0, + ["Plate"] = 0, + ["Shields"] = 0, + --Weapon Skills + ["One-Handed Axes"] = 0, + ["Two-Handed Axes"] = 0, + ["Bows"] = 0, + ["Guns"] = 0, + ["One-Handed Maces"] = 0, + ["Two-Handed Maces"] = 0, + ["Polearms"] = 0, + ["One-Handed Swords"] = 1, + ["Two-Handed Swords"] = 0, + ["Warglaives"] = 0, + ["Staves"] = 1, + ["Fist Weapons"] = 0, + ["Daggers"] = 1, + ["Crossbows"] = 0, + ["Wands"] = 1, + }, + --Warlock + [9] = { + --Armor Skills + ["Cloth"] = 1, + ["Leather"] = 0, + ["Mail"] = 0, + ["Plate"] = 0, + ["Shields"] = 0, + --Weapon Skills + ["One-Handed Axes"] = 0, + ["Two-Handed Axes"] = 0, + ["Bows"] = 0, + ["Guns"] = 0, + ["One-Handed Maces"] = 0, + ["Two-Handed Maces"] = 0, + ["Polearms"] = 0, + ["One-Handed Swords"] = 1, + ["Two-Handed Swords"] = 0, + ["Warglaives"] = 0, + ["Staves"] = 1, + ["Fist Weapons"] = 0, + ["Daggers"] = 1, + ["Crossbows"] = 0, + ["Wands"] = 1, + }, + --Monk + [10] = { + --Armor Skills + ["Cloth"] = 0, + ["Leather"] = 1, + ["Mail"] = 0, + ["Plate"] = 1, + ["Shields"] = 1, + --Weapon Skills + ["One-Handed Axes"] = 1, + ["Two-Handed Axes"] = 0, + ["Bows"] = 0, + ["Guns"] = 0, + ["One-Handed Maces"] = 1, + ["Two-Handed Maces"] = 0, + ["Polearms"] = 1, + ["One-Handed Swords"] = 1, + ["Two-Handed Swords"] = 0, + ["Warglaives"] = 0, + ["Staves"] = 1, + ["Fist Weapons"] = 1, + ["Daggers"] = 0, + ["Crossbows"] = 0, + ["Wands"] = 0, + }, + --Druid + [11] = { + --Armor Skills + ["Cloth"] = 0, + ["Leather"] = 1, + ["Mail"] = 0, + ["Plate"] = 0, + ["Shields"] = 0, + --Weapon Skills + ["One-Handed Axes"] = 0, + ["Two-Handed Axes"] = 0, + ["Bows"] = 0, + ["Guns"] = 0, + ["One-Handed Maces"] = 1, + ["Two-Handed Maces"] = 0, + ["Polearms"] = 1, + ["One-Handed Swords"] = 0, + ["Two-Handed Swords"] = 0, + ["Warglaives"] = 0, + ["Staves"] = 1, + ["Fist Weapons"] = 1, + ["Daggers"] = 1, + ["Crossbows"] = 0, + ["Wands"] = 0, + }, + --Demon Hunter + [12] = { + --Armor Skills + ["Cloth"] = 0, + ["Leather"] = 1, + ["Mail"] = 0, + ["Plate"] = 0, + ["Shields"] = 0, + --Weapon Skills + ["One-Handed Axes"] = 1, + ["Two-Handed Axes"] = 0, + ["Bows"] = 0, + ["Guns"] = 0, + ["One-Handed Maces"] = 0, + ["Two-Handed Maces"] = 0, + ["Polearms"] = 0, + ["One-Handed Swords"] = 1, + ["Two-Handed Swords"] = 0, + ["Warglaives"] = 1, + ["Staves"] = 0, + ["Fist Weapons"] = 1, + ["Daggers"] = 0, + ["Crossbows"] = 0, + ["Wands"] = 0, + }, } aura_env.qualityColors = { - "\124cff9d9d9d", -- Poor - "\124cffffffff", -- Common - "\124cff1eff00", -- Uncommon - "\124cff0070dd", -- Rare - "\124cffa335ee", -- Epic - "\124cffff8000", -- Legendary - "\124cffe6cc80", -- Artifact - "\124cff00ccff", -- Heirloom + "\124cff9d9d9d", -- Poor + "\124cffffffff", -- Common + "\124cff1eff00", -- Uncommon + "\124cff0070dd", -- Rare + "\124cffa335ee", -- Epic + "\124cffff8000", -- Legendary + "\124cffe6cc80", -- Artifact + "\124cff00ccff", -- Heirloom } diff --git a/FreshShit/AutoVendor/Init.lua b/FreshShit/AutoVendor/Init.lua index 32a0ab4..42d63fa 100644 --- a/FreshShit/AutoVendor/Init.lua +++ b/FreshShit/AutoVendor/Init.lua @@ -5,262 +5,255 @@ local iconDisplayDuration = 3 ---@param slot number ---@return string, string|nil local function getItemLink(container, slot) - if container == nil then return "", string.format("Container is nil") end - if slot == nil then return "", string.format("Slot is nil") end - local link = select(7, GetContainerItemInfo(container, slot)) - if link == nil then return "", string.format("GetContainerItemInfo returned nil for link (arg 7)") end - return link + if container == nil then return "", string.format("Container is nil") end + if slot == nil then return "", string.format("Slot is nil") end + local link = select(7, GetContainerItemInfo(container, slot)) + if link == nil then return "", string.format("GetContainerItemInfo returned nil for link (arg 7)") end + return link end ---@param container number ---@param slot number ---@return string, string|nil local function getItemQuantity(container, slot) - if container == nil then return "", string.format("Container is nil") end - if slot == nil then return "", string.format("Slot is nil") end - local quantity = select(2, GetContainerItemInfo(container, slot)) - if quantity == nil then - return "", - string.format("GetContainerItemInfo returned nil for quantity (arg 2)") - end - return quantity + if container == nil then return "", string.format("Container is nil") end + if slot == nil then return "", string.format("Slot is nil") end + local quantity = select(2, GetContainerItemInfo(container, slot)) + if quantity == nil then return "", string.format("GetContainerItemInfo returned nil for quantity (arg 2)") end + return quantity end ---@param container number ---@param slot number ---@return string, string|nil local function getItemName(container, slot) - if container == nil then return "", string.format("Container is nil") end - if slot == nil then return "", string.format("Slot is nil") end - local name = select(1, GetItemInfo(getItemLink(container, slot))) - if name == nil then return "", string.format("GetItemInfo returned nil for name (arg 1)") end - return name + if container == nil then return "", string.format("Container is nil") end + if slot == nil then return "", string.format("Slot is nil") end + local name = select(1, GetItemInfo(getItemLink(container, slot))) + if name == nil then return "", string.format("GetItemInfo returned nil for name (arg 1)") end + return name end ---@param container number ---@param slot number ---@return string, string|nil local function getItemType(container, slot) - if container == nil then return "", string.format("Container is nil") end - if slot == nil then return "", string.format("Slot is nil") end - local type = select(6, GetItemInfo(getItemLink(container, slot))) - if type == nil then return "", string.format("GetItemInfo returned nil for type (arg 6)") end - return type + if container == nil then return "", string.format("Container is nil") end + if slot == nil then return "", string.format("Slot is nil") end + local type = select(6, GetItemInfo(getItemLink(container, slot))) + if type == nil then return "", string.format("GetItemInfo returned nil for type (arg 6)") end + return type end ---@param container number ---@param slot number ---@return string, string|nil local function getItemSubtype(container, slot) - if container == nil then return "", string.format("Container is nil") end - if slot == nil then return "", string.format("Slot is nil") end - local subtype = select(7, GetItemInfo(getItemLink(container, slot))) - if subtype == nil then return "", string.format("GetItemInfo returned nil for subtype (arg 7)") end - return subtype + if container == nil then return "", string.format("Container is nil") end + if slot == nil then return "", string.format("Slot is nil") end + local subtype = select(7, GetItemInfo(getItemLink(container, slot))) + if subtype == nil then return "", string.format("GetItemInfo returned nil for subtype (arg 7)") end + return subtype end ---@param container number ---@param slot number ---@return string, string|nil local function getItemLevel(container, slot) - if container == nil then return "", string.format("Container is nil") end - if slot == nil then return "", string.format("Slot is nil") end - local level = select(4, GetItemInfo(getItemLink(container, slot))) - if level == nil then return "", string.format("GetItemInfo returned nil for level (arg 4)") end - return level + if container == nil then return "", string.format("Container is nil") end + if slot == nil then return "", string.format("Slot is nil") end + local level = select(4, GetItemInfo(getItemLink(container, slot))) + if level == nil then return "", string.format("GetItemInfo returned nil for level (arg 4)") end + return level end ---@param container number ---@param slot number ---@return string, string|nil local function getItemValue(container, slot) - if container == nil then return "", string.format("Container is nil") end - if slot == nil then return "", string.format("Slot is nil") end - local value = select(11, GetItemInfo(getItemLink(container, slot))) - if value == nil then return "", string.format("GetItemInfo returned nil for value (arg 11)") end - return value + if container == nil then return "", string.format("Container is nil") end + if slot == nil then return "", string.format("Slot is nil") end + local value = select(11, GetItemInfo(getItemLink(container, slot))) + if value == nil then return "", string.format("GetItemInfo returned nil for value (arg 11)") end + return value end ---@param container number ---@param slot number ---@return string, string|nil local function getItemQuality(container, slot) - if container == nil then return "", string.format("Container is nil") end - if slot == nil then return "", string.format("Slot is nil") end - local quality = select(3, GetItemInfo(getItemLink(container, slot))) - if quality == nil then return "", string.format("GetItemInfo returned nil for quality (arg 3)") end - return quality + if container == nil then return "", string.format("Container is nil") end + if slot == nil then return "", string.format("Slot is nil") end + local quality = select(3, GetItemInfo(getItemLink(container, slot))) + if quality == nil then return "", string.format("GetItemInfo returned nil for quality (arg 3)") end + return quality end ---@param container number ---@param slot number ---@return string, string|nil local function getItemEquipLocation(container, slot) - if container == nil then return "", string.format("Container is nil") end - if slot == nil then return "", string.format("Slot is nil") end - local equipLoc = select(9, GetItemInfo(getItemLink(container, slot))) - if equipLoc == nil then return "", string.format("GetItemInfo returned nil for equipLoc (arg 9)") end - return equipLoc + if container == nil then return "", string.format("Container is nil") end + if slot == nil then return "", string.format("Slot is nil") end + local equipLoc = select(9, GetItemInfo(getItemLink(container, slot))) + if equipLoc == nil then return "", string.format("GetItemInfo returned nil for equipLoc (arg 9)") end + return equipLoc end ---@param container number ---@param slot number ---@return string, string|nil local function getItemIcon(container, slot) - if container == nil then return "", string.format("Container is nil") end - if slot == nil then return "", string.format("Slot is nil") end - local icon = select(10, GetItemInfo(getItemLink(container, slot))) - if icon == nil then return "", string.format("GetItemInfo returned nil for icon (arg 10)") end - return icon + if container == nil then return "", string.format("Container is nil") end + if slot == nil then return "", string.format("Slot is nil") end + local icon = select(10, GetItemInfo(getItemLink(container, slot))) + if icon == nil then return "", string.format("GetItemInfo returned nil for icon (arg 10)") end + return icon end ---@param container number ---@param slot number ---@return string, string|nil local function getBindType(container, slot) - if container == nil then return "", string.format("Container is nil") end - if slot == nil then return "", string.format("Slot is nil") end - local bindType = select(14, GetItemInfo(getItemLink(container, slot))) - if bindType == nil then return "", string.format("GetItemInfo returned nil for bindType (arg 14)") end - return bindType + if container == nil then return "", string.format("Container is nil") end + if slot == nil then return "", string.format("Slot is nil") end + local bindType = select(14, GetItemInfo(getItemLink(container, slot))) + if bindType == nil then return "", string.format("GetItemInfo returned nil for bindType (arg 14)") end + return bindType end ---@class Filter ---@field requires table | nil ---@field filter fun(container: number, slot: number, provided: table): boolean Filter = { - ---@param requires table | nil - ---@param filter fun(container: number, slot: number, provided: table): boolean - ---@return Filter - new = function(requires, filter) - local self = setmetatable({}, { - __index = Filter - }) - self.requires = requires - self.filter = filter - return self - end, + ---@param requires table | nil + ---@param filter fun(container: number, slot: number, provided: table): boolean + ---@return Filter + new = function(requires, filter) + local self = setmetatable({}, { + __index = Filter, + }) + self.requires = requires + self.filter = filter + return self + end, - ---@param self Filter - ---@param container number - ---@param slot number - ---@return boolean, string|nil - Run = function(self, container, slot) - ---@type table - local provided = {} - if self.requires then - for k, v in pairs(self.requires) do - local res, err = v(container, slot) - if err then - if debug then print(err) end - return false, err - end - provided[k] = res - end - end - local res, err = self.filter(container, slot, provided) - if err then - if debug then print(err) end - end - return res, nil - end + ---@param self Filter + ---@param container number + ---@param slot number + ---@return boolean, string|nil + Run = function(self, container, slot) + ---@type table + local provided = {} + if self.requires then + for k, v in pairs(self.requires) do + local res, err = v(container, slot) + if err then + if debug then print(err) end + return false, err + end + provided[k] = res + end + end + local res, err = self.filter(container, slot, provided) + if err then + if debug then print(err) end + end + return res, nil + end, } local grayFilter = Filter.new({ - ["quality"] = getItemQuality - }, - function(container, slot, provided) - if not aura_env.config.grayFilter then return false end - if provided.quality == 0 then - return true - end - return false - end) + ["quality"] = getItemQuality, +}, function(container, slot, provided) + if not aura_env.config.grayFilter then return false end + if provided.quality == 0 then return true end + return false +end) local gearFilter = Filter.new({ - ["ilvl"] = getItemLevel, - ["bindType"] = getBindType, - ["type"] = getItemType, - ["equipLoc"] = getItemEquipLocation - }, - function(container, slot, provided) - if not aura_env.config.gearFilter then return false end - local ilvlThreshold = aura_env.config.gearFilterIlvlFilterThreshold - local sellBoe = aura_env.config.gearFilterSellBoe + ["ilvl"] = getItemLevel, + ["bindType"] = getBindType, + ["type"] = getItemType, + ["equipLoc"] = getItemEquipLocation, +}, function(container, slot, provided) + if not aura_env.config.gearFilter then return false end + local ilvlThreshold = aura_env.config.gearFilterIlvlFilterThreshold + local sellBoe = aura_env.config.gearFilterSellBoe - if provided.type == "Armor" - or provided.type == "Weapon" - or provided.equipLoc == "INVTYPE_FINGER" - or provided.equipLoc == "INVTYPE_TRINKET" - or provided.equipLoc == "INVTYPE_CLOAK" - or provided.equipLoc == "INVTYPE_NECK" then - if provided.ilvl < ilvlThreshold and (provided.bindType == 1 or sellBoe) then - return true - end - end - return false - end) + if + provided.type == "Armor" + or provided.type == "Weapon" + or provided.equipLoc == "INVTYPE_FINGER" + or provided.equipLoc == "INVTYPE_TRINKET" + or provided.equipLoc == "INVTYPE_CLOAK" + or provided.equipLoc == "INVTYPE_NECK" + then + if provided.ilvl < ilvlThreshold and (provided.bindType == 1 or sellBoe) then return true end + end + return false +end) ---@param container number ---@param slot number ---@return nil, string|nil local function doSell(container, slot) - local itemIcon, err = getItemIcon(container, slot) - if err then return nil, string.format("Error getting item icon: %s", err) end - local itemName, err = getItemName(container, slot) - if err then return nil, string.format("Error getting item name: %s", err) end - local itemQuantity, err = getItemQuantity(container, slot) - if err then return nil, string.format("Error getting item quantity: %s", err) end - local itemQuality, err = getItemQuality(container, slot) - if err then return nil, string.format("Error getting item quality: %s", err) end + local itemIcon, err = getItemIcon(container, slot) + if err then return nil, string.format("Error getting item icon: %s", err) end + local itemName, err = getItemName(container, slot) + if err then return nil, string.format("Error getting item name: %s", err) end + local itemQuantity, err = getItemQuantity(container, slot) + if err then return nil, string.format("Error getting item quantity: %s", err) end + local itemQuality, err = getItemQuality(container, slot) + if err then return nil, string.format("Error getting item quality: %s", err) end - local nameWithColor = string.format("%s[%s]\124r", aura_env.qualityColors[itemQuality + 1], itemName) - local nameWithQuantity = string.format("%s x%s", nameWithColor, itemQuantity) + local nameWithColor = string.format("%s[%s]\124r", aura_env.qualityColors[itemQuality + 1], itemName) + local nameWithQuantity = string.format("%s x%s", nameWithColor, itemQuantity) - aura_env.allstates[#aura_env.allstates + 1] = { - show = true, - changed = true, - index = GetTime(), - resort = true, + aura_env.allstates[#aura_env.allstates + 1] = { + show = true, + changed = true, + index = GetTime(), + resort = true, - icon = itemIcon, - name = nameWithQuantity, - amount = itemQuantity, + icon = itemIcon, + name = nameWithQuantity, + amount = itemQuantity, - progressType = "timed", - expirationTime = GetTime() + iconDisplayDuration, - duration = iconDisplayDuration, - autoHide = true, - } + progressType = "timed", + expirationTime = GetTime() + iconDisplayDuration, + duration = iconDisplayDuration, + autoHide = true, + } - UseContainerItem(container, slot) - return nil, nil + UseContainerItem(container, slot) + return nil, nil end ---@type table local filters = { - grayFilter, - gearFilter + grayFilter, + gearFilter, } ---@class FilterService aura_env.FilterService = { - ---@param container number - ---@param slot number - ---@return nil, nil - Run = function(container, slot) - local itemLink, err = getItemLink(container, slot) - if err then return nil, string.format("Err: slot empty (%d-%d) - %s", container, slot, err) end - for k, filter in pairs(filters) do - local res, err = filter:Run(container, slot) - if err then - if debug then print(err) end - else - if res then - doSell(container, slot) - return - end - end - end - end, + ---@param container number + ---@param slot number + ---@return nil, nil + Run = function(container, slot) + local itemLink, err = getItemLink(container, slot) + if err then return nil, string.format("Err: slot empty (%d-%d) - %s", container, slot, err) end + for k, filter in pairs(filters) do + local res, err = filter:Run(container, slot) + if err then + if debug then print(err) end + else + if res then + doSell(container, slot) + return + end + end + end + end, } aura_env.qualityColors = { - "\124cff9d9d9d", -- Poor - "\124cffffffff", -- Common - "\124cff1eff00", -- Uncommon - "\124cff0070dd", -- Rare - "\124cffa335ee", -- Epic - "\124cffff8000", -- Legendary - "\124cffe6cc80", -- Artifact - "\124cff00ccff", -- Heirloom + "\124cff9d9d9d", -- Poor + "\124cffffffff", -- Common + "\124cff1eff00", -- Uncommon + "\124cff0070dd", -- Rare + "\124cffa335ee", -- Epic + "\124cffff8000", -- Legendary + "\124cffe6cc80", -- Artifact + "\124cff00ccff", -- Heirloom } diff --git a/FreshShit/BattlePassTimer/init.lua b/FreshShit/BattlePassTimer/init.lua index 7d27b62..ed429de 100644 --- a/FreshShit/BattlePassTimer/init.lua +++ b/FreshShit/BattlePassTimer/init.lua @@ -26,14 +26,14 @@ local function UpdateAccountInfo() BattlepassAccountInfo = table.concat(ret, "\n") end --- [02:37 PM] Bluepotato --- [02:37 PM] onlineTimeInMinutes=120, --- [02:37 PM] claimed=1 --- [02:37 PM] Smolpotato --- [02:37 PM] onlineTimeInMinutes=120, --- [02:37 PM] claimed=1 --- [02:37 PM] Thiccpotato --- [02:37 PM] onlineTimeInMinutes=57, +-- [02:37 PM] Bluepotato +-- [02:37 PM] onlineTimeInMinutes=120, +-- [02:37 PM] claimed=1 +-- [02:37 PM] Smolpotato +-- [02:37 PM] onlineTimeInMinutes=120, +-- [02:37 PM] claimed=1 +-- [02:37 PM] Thiccpotato +-- [02:37 PM] onlineTimeInMinutes=57, -- [02:37 PM] claimed=0 ---@param input string @@ -57,7 +57,7 @@ end ---@field currentDayOnlineTimeMilliseconds number BattlepassInfo = { PingApi = function() - SendAddonMessage('UIMSG_TO_SERVER', "UIMSG_GET_ONLINETIME_DAY" .. "\t", 'WHISPER', UnitName('player')) + SendAddonMessage("UIMSG_TO_SERVER", "UIMSG_GET_ONLINETIME_DAY" .. "\t", "WHISPER", UnitName("player")) end, ParseApi = function(msg) local packets = aura_env.Split(msg, ":") @@ -71,24 +71,22 @@ BattlepassInfo = { BattlepassInfo.cost = tonumber(packets[7]) BattlepassInfo.currentDayOnlineTimeMinutes = math.floor(BattlepassInfo.currentDayOnlineTimeMilliseconds / 60000) - WeakAurasSaved.Cyka.LoginInfo[Today][UnitName("player")].onlineTimeInMinutes = BattlepassInfo - .currentDayOnlineTimeMinutes + WeakAurasSaved.Cyka.LoginInfo[Today][UnitName("player")].onlineTimeInMinutes = + BattlepassInfo.currentDayOnlineTimeMinutes WeakAurasSaved.Cyka.LoginInfo[Today][UnitName("player")].claimed = BattlepassInfo.dayRewardComplete if BattlepassInfo.dayRewardComplete == 0 and BattlepassInfo.currentDayOnlineTimeMinutes >= 120 then BattlepassInfo.DoClaim() - C_Timer.After(0.2, function() - BattlepassInfo.PingApi() - end) + C_Timer.After(0.2, function() BattlepassInfo.PingApi() end) end UpdateAccountInfo() end, DoClaim = function() - SendAddonMessage('UIMSG_TO_SERVER', "UIMSG_WEEKLY_REW_GET" .. "\t", 'WHISPER', UnitName('player')) + SendAddonMessage("UIMSG_TO_SERVER", "UIMSG_WEEKLY_REW_GET" .. "\t", "WHISPER", UnitName("player")) WeakAuras.ScanEvents("PLAY_SOUND", "Interface\\Sounds\\quack.ogg") SendChatMessage("YEEE", "WHISPER", nil, UnitName("player")) - end + end, } setmetatable(BattlepassInfo, { __call = BattlepassInfo.PingApi, @@ -99,16 +97,13 @@ setmetatable(BattlepassInfo, { table.insert(ret, k .. ": " .. tostring(v)) end return table.concat(ret, "\n") - end + end, }) for k, v in pairs(BattlepassInfo) do - if type(v) == "number" then - BattlepassInfo[k] = 0 - end + if type(v) == "number" then BattlepassInfo[k] = 0 end end BattlepassInfo() - -- Claiming rewards works fine --- But the bar does not hide once rewards are claimed \ No newline at end of file +-- But the bar does not hide once rewards are claimed diff --git a/FreshShit/CLEUSaver/init.lua b/FreshShit/CLEUSaver/init.lua index 405ff1d..7a693db 100644 --- a/FreshShit/CLEUSaver/init.lua +++ b/FreshShit/CLEUSaver/init.lua @@ -1,10 +1,10 @@ local function varargToString(...) - local output = {} - for i = 1, select("#", ...) do - local value = select(i, ...) - output[#output + 1] = "\"" .. tostring(value) .. "\"" - end - return table.concat(output, ",") + local output = {} + for i = 1, select("#", ...) do + local value = select(i, ...) + output[#output + 1] = '"' .. tostring(value) .. '"' + end + return table.concat(output, ",") end if not WeakAurasSaved then WeakAurasSaved = {} end @@ -16,7 +16,7 @@ if not WeakAurasSaved.Cyka.CombatLog then WeakAurasSaved.Cyka.CombatLog = {} end ---@param ... any aura_env.LogSpell = function(subevent, ...) print(varargToString(subevent, ...)) - table.insert(WeakAurasSaved.Cyka.CombatLog, varargToString(subevent, ...)) + table.insert(WeakAurasSaved.Cyka.CombatLog, varargToString(subevent, ...)) end -- /dump WeakAurasSaved.Cyka.CombatLog -- /run WeakAurasSaved.Cyka.CombatLog = {} diff --git a/FreshShit/ChannelDinger/init.lua b/FreshShit/ChannelDinger/init.lua index deb7553..a279740 100644 --- a/FreshShit/ChannelDinger/init.lua +++ b/FreshShit/ChannelDinger/init.lua @@ -20,9 +20,9 @@ aura_env.tick:onChange(function(ticks) if ticks == aura_env.totalTicks - 1 then -- WeakAuras.ScanEvents("PLAY_SOUND", "Interface\\AddOns\\WeakAuras\\Media\\Sounds\\RobotBlip.ogg") PlaySoundFile("Interface\\AddOns\\WeakAuras\\Media\\Sounds\\RobotBlip.ogg", "Master") - -- elseif ticks == aura_env.totalTicks - 2 then - -- -- WeakAuras.ScanEvents("PLAY_SOUND", "Interface\\AddOns\\WeakAuras\\Media\\Sounds\\WaterDrop.ogg") - -- PlaySoundFile("Interface\\AddOns\\WeakAuras\\Media\\Sounds\\WaterDrop.ogg", "Master") + -- elseif ticks == aura_env.totalTicks - 2 then + -- -- WeakAuras.ScanEvents("PLAY_SOUND", "Interface\\AddOns\\WeakAuras\\Media\\Sounds\\WaterDrop.ogg") + -- PlaySoundFile("Interface\\AddOns\\WeakAuras\\Media\\Sounds\\WaterDrop.ogg", "Master") end end end) diff --git a/FreshShit/ChannelJoiner/init.lua b/FreshShit/ChannelJoiner/init.lua index c532747..00967ba 100644 --- a/FreshShit/ChannelJoiner/init.lua +++ b/FreshShit/ChannelJoiner/init.lua @@ -52,9 +52,7 @@ aura_env.JoinChannels = function() for i, channelName in ipairs(channelNames) do channelName = strtrim(channelName) local password = nil - if i <= #channelPasswords then - password = strtrim(channelPasswords[i]) - end + if i <= #channelPasswords then password = strtrim(channelPasswords[i]) end JoinPermanentChannel(channelName, password) end end diff --git a/FreshShit/ChatKeyScanner/init.lua b/FreshShit/ChatKeyScanner/init.lua index 9702b01..23711fc 100644 --- a/FreshShit/ChatKeyScanner/init.lua +++ b/FreshShit/ChatKeyScanner/init.lua @@ -6,13 +6,13 @@ aura_env.Colorer = { ---@type table colors = { { r = 0.62, g = 0.62, b = 0.62 }, -- Grey - { r = 1, g = 1, b = 1 }, -- White - { r = 0.12, g = 1, b = 0 }, -- Green - { r = 0, g = 0.44, b = 0.87 }, -- Blue + { r = 1, g = 1, b = 1 }, -- White + { r = 0.12, g = 1, b = 0 }, -- Green + { r = 0, g = 0.44, b = 0.87 }, -- Blue { r = 0.64, g = 0.21, b = 0.93 }, -- Purple - { r = 1, g = 0.5, b = 0 }, -- Orange - { r = 1, g = 0.2, b = 0.23 }, - { r = 0, g = 0.8, b = 1.0 }, -- Blizzard Blue + { r = 1, g = 0.5, b = 0 }, -- Orange + { r = 1, g = 0.2, b = 0.23 }, + { r = 0, g = 0.8, b = 1.0 }, -- Blizzard Blue }, breakpoints = { -999, -10, -5, -2, 2, 5, 10, 999 }, @@ -49,9 +49,7 @@ aura_env.Colorer = { ---@param b number ---@param t number ---@return number - lerp = function(a, b, t) - return a * (1 - t) + b * t - end + lerp = function(a, b, t) return a * (1 - t) + b * t end, } setmetatable(aura_env.Colorer, { __index = aura_env.Colorer }) @@ -70,5 +68,5 @@ aura_env.KeystoneIdMap = { [227] = "Return to Karazhan: Lower", [233] = "Cathedral of Eternal Night", [234] = "Return to Karazhan: Upper", - [239] = "Seat of the Triumvirate" + [239] = "Seat of the Triumvirate", } diff --git a/FreshShit/DuelerAccepter/init.lua b/FreshShit/DuelerAccepter/init.lua index 3beec3e..3d1ff45 100644 --- a/FreshShit/DuelerAccepter/init.lua +++ b/FreshShit/DuelerAccepter/init.lua @@ -11,7 +11,7 @@ local function StrSplit(input, deliminer) return parts, nil end -aura_env.whitelist = {} +aura_env.whitelist = {} local swhitelist = StrSplit(aura_env.config.whitelist, ",") for _, name in ipairs(swhitelist) do aura_env.whitelist[name] = true diff --git a/FreshShit/FriendTracker/init.lua b/FreshShit/FriendTracker/init.lua index 4f36ff9..b5b4fe0 100644 --- a/FreshShit/FriendTracker/init.lua +++ b/FreshShit/FriendTracker/init.lua @@ -15,4 +15,4 @@ aura_env.FileFriends = function() }) end WeakAurasSaved.Cyka.Friends[now] = info -end \ No newline at end of file +end diff --git a/FreshShit/Incoming/export b/FreshShit/Incoming/export new file mode 100644 index 0000000..61e35b2 --- /dev/null +++ b/FreshShit/Incoming/export @@ -0,0 +1 @@ +!T31cxjoYY)VlCoEw5Uits4H4CU7EoOIkUk41GZS7)5SOHKaKRHeojbFmRRF2)xv)kpGabuNRZSr31jPt1vxv1vxD3v)lqF5(96RoPVQb(FWLU3z6zR9OpCDhz6FW)tPFhP(DQq(BvSKa4x1h6oCOVzq)o7jj1x9r(D7ixPwFvnh9XUEx4A5auEqRo9ADzFv)PAE3EPBGwGLRdYn1zE29vhhem1)JF4d3RnYTSL7hmpv)Wzx9Fc8(qL(Qd00VDKN7mhJdCTD9ycL0CcLu5AOqzP76CTEekPIVmHszH4RoZ3SNRRDG10(7dcMP9WeY6anVf0GLRPixREJ6k7wTM0Ensyuunm91cM5Pfy2FqF1HUidpYZ6RpFZ)zMMbuU2Z30RhZqqny)bXoy7Qr6a8NAQt6tMbIgCbXq75ABsEOLZi4k1En78BHKqVDFkP62A((ZXaFRVAMSqQnOPX)DMFGPHPX5woOm7zoc6B694uOD0anbmdc3cDBQ1kW8bqjbco2ZYq55BoYwlGPt94pcnpY7H8iWLuhxDGj(K(9DLQGEmA2thRHgo1zwGd4JsdpD3zF62MFcQ(qRhmn(SLrWyWUJe7olW2YbEs3R6Dw7oTIzd)9(DaxUm0RRdkR7euiHMyMJo6hUDXNp95BO)An85BqT(AtN7k7d(PMpFtWytNqk4)A7QRz)8nJTcE(MF55B2UWw(pFZw(fk(XHUEt0c2ooBkRnbCHdkLK9LNA6PB6euC(wWZeSKoKMy(Q5OnXmSkMogpFk8NeJWo31amynVQxxA)aiww6uJQAtSFrnWZA0iOBHpENxa5sIpa1IX)3RPfsKHztnq)C2t(KMNL2aBt)(Q)vOG5dbbCTjwO)AEn0WYFk4wrECHd1MOncm3QSQGAyHsZxjucO1WhewNrrP5VlLSPB7yy(Wg1(wynxUa4mBYatV0eanddlSxqZ(cp3rEM((KAjhHedtTGXzt6qkxU0mae7KYYFd3s(TVQ5DMy0Otm1SX()zowWDyda92Q(ZgqEU6SHWiV(QxFqt1ExdrwUSx4dVWZK8q1lAD2zKqv22Tn8jXtuXUl2L6Jn1Vv0GChiXWnIZJp4stia(3aOKjtHlao4d9bLqFEdZd0GatEWn(E6hFv7dPx1bAh6vquNr(0lVKFne)nGrlEjJy8YOuiiVC5Yjg8tKjWEIg0Ux0RD3oQfwria6iBzsNWL48uBFfyBP25TlqTWfk(bzjP)LsTIRGnkzHnYlInuZ6xku4ptZHI)lj2bXL5IMxE5FSiVkHjbMnLqA9QvR0yVLqjv8PSDzCKfVB1egj0rHzo364EVZsLuXa9klHQ70SNr19qJ75ApeAFxsDdGOQ2ByDNYIa0lsWlmy8Y0imI9jW4ac9bEZmxcT6J1CgzAKfs9h7E)YO7Vt11sEn8SADNfyRoYYdJOIbkE19YetiYNVLomSyw99(IsTT(Zv7agobs1m59PSMEFjgAxt6nYdmLzJ(lrVQb0xrcqtnpGv9EnpdWaDZ94kgO2CQn(V)7F0D1vwBxD1XAgyR9T0zxj7o7YRPZEfLm5Tl)Y82Ru79V3UYp(E7vwdVDSFiXQU)(0dFV9Y9W)HZdpzvsDX2mVTyUEZt9bx3ZAIPx5MdHDISTuzWz4MiPniYMYD9cA6yqZgX2O4vKSR8LSTEKOe7GFEXo5wsoO7573S31N194RB9PwD6D9vDoQ9z9ADzRdHTPObmrSfiAn(SP2TnbP0V8KhPLsic24Zk2vJE8rLWq6HwJMNAuazBBJjIQFUDNJV(WMN384wCzsVS)9qqJ0AYfUtiWuJPD6wlB7s8rVLqZNVfMWk4Yba93sUsBa0bmGCPUhmSaydC5iBnhDOzjLoZFmrc(fQYN(i)HHHLwU0MmtqKHVhmZZJUR2X8HZPgGOuQJ7ZCJgmgShJDTnImC(FbXD(qyRVswHACe(8R)c2FfPGSzfsiy0(l)4orKmgOYEY6Yr1dkH)PnHLWQKVrk7SavrMe9f6)(NRREX)nMyKGNqS3sZxiSwYm3kXddSooExqNm8mxF6eI0KJXNnTWwLLhU1wy0FrpBXS3s7SdLpbyCAA7THIjjs6jSKMYhFdoDy3jnwb8VUEjgoTdBe5MjWRBL5raX0jNWbM0LsowGiosivfgs(PWA3ktjjvJ0m8qxmdrHN0pc(5qy48bx2U3hFYBn4okt84FZZVJpRzNdAT(Cmmm68s4vQNS(mmchozDvrMb8OilIKMfEKNB5VL)tEp5eMpEQHUeRFTuAR4S4MoSGoh0gi(S5UOEAIBig4TJyFAUVA3l3V1HGrIQI0FsQMZPvmoc6f1Ixyd1pYSTRV6XMKMODIRNt52)SUh8BRTUX43lw1ORPy91n(Arikx4nZPDx2sTTAV1w94C8fRFI4SRTgggHoTW1r1ZUFQ1L)w7ZoBb6z6AjNRBIwYfZal22t3(NcLgiwqHN8(jrdJNwfeG4KpU15FCl1cRZaDE7i2gm7GisydMxzz0vms0UbKFUQZV1P7N7Srb8SCg6Yc3f2UNBABAsoSq04)LT8)ZqPq9a6AZ59zI8Ptfl1d2atHb74YeIHKe()O6t8psw02B5xmDNGyZ2xCbbNJV6HILwWYE2eLWmqZITkvCUd(VHc6rInJCuKnzCu4wpokYgsedxwFrjGIfHyNL8top5G)LFvePcD4lXCilXCjkj6vkfQARVK4yE)QYg0QZs0YsoWktBKCLAk7wDd4az)fwg8DiS21FLPJQ4gW0OzPA7cXhyoVp8MO1HhugU5KnS(Hjgd2CZM07jQ)My5dZKwSib04tqS8nGLHjxlYoX3C2fEu9XNgCJKSWX6SR3ebcHzep9E6L53UbCY8HPw0k3Jpp6XMb41yoU(5xi3x3evI49kTmvU0ev(AMaZxJeBUPzXCv)UgjmndhbqQoPwo(MEbHO1aMxynMmzios7wOA3HHgGobnlpFgZaNkd3fLC2vgLOCyugX1G)P8MWQKMXniK3WiIXVIdtSTMyXZBiSeCDBxhWvHw6AZ(qrv4XmuZ2FdeumRs38gLeQfNo7nI1l8HMGgNwsMpVTQAyIV1lpXIpkpt5zMto4LA53D4Wta2uk2QaYCMIjca)gAgujCpmlQ44bh3GVNsUC0mRetr3EU02K9T7jYYsM3S3B9M8(F7M7wX6)tBdE0YLKOBVA57oiIFoRln7wLny3ac7yy7E6B)Ea201(NMpEk(TC321OfYmI3EHiGBvRRFDSkB2Q5Ffxf)R0Q3Fzl1(LVe73MLwVYLuVwRt(1y9XVK1fVPRhEdwhCww)7PVrRm(vDfXVcRe(LSc434v(U5R4nJR0nBRW90xN1(UglRTvNp1(YUDoVvNEnpBomuqWRc3cd3y55obcVQzVYv6ceZwaqo2kYXwro2kYWVVdrHroEnYXRX3X41ihzh5i7ihzh5i74nkyrogqoQfzpbo0nfKddKCyGSjWazTLztCRLj2ncBdN(VHn7Rbove7lEZbRcv7)cJtSvxkxrzV9QNJGLCeSKJGL)5HGLL8Q2LdGLVzayjhQl5qD5hbOUe)mbEHqEj8GaYb)Y3fGF5Di8yy(qRCFVm6(gbpM5277BoczYSW)c3G07DO686SdOC87KJFNC87KJFNC87KJFNxh878kGoh(X3dwQTd)WPSahzoffld3fmCERAzT7Sd5totwTF(g6Dx06Y2DpS9bIIVSzNJBXVBvlONnTzj2v8pDmdbdY7bm)STo(Pwl(5klZGjMS)5NqS(QuvPwTi7sqqEXeBUih0q5Gg6hpqd9TYfnhXs5iwkhXs5iwkhXs5iwkhXs5iw6DaILOGc6lHrjJaTaXgAyIryk0eHnZr0031iAI(niXHFm0OYdeToODsSzsEMD)gJ)PxdGifzZ7BouKo2mG8Ppo77GNTzgMIVqCijsXqoAKYrJuoAKYrJuoAKYrJuoAK(NcAKs7mqoPvZZw3ta57PdTqV8y6x1f5Nbb)mig)speI5oYG92lpN5zoz2tSC2wOTLIzh(5SJAPFWsb933FcINNkO3SubLNdOe5aAUC)KNmN8K5KNmN8K5KNmN8K5KNmN8K5KNmN)XMmh2RvwX1(9kJJPvkdMdtR8IPyALD3gMEiEYFEfEZ12u8OM10E8n5TJ79uErEV82YLJfJxN3Mo62At(k0L(w8w2w7IoioYy3Wr5R)2r)FY262G3rUVV2v3BZRp3l(1O7v61P7141Q7Fk7NlFtyB(RJx(wRY3Av(wR(h0wRIwi5g4p9vjFRT73xDjFJT)8nnV6YMx3Ut7E9vnmhmB4qmyrF1tAD2fhD1z9d6Rct66zHB9OFp4wOan9aR7m7rl8CxdZ(D2rwcFILtGPhee7tME(q0S(DQ0aQVVztJ)7m8WYp3YP)aGbowtirkboQc(7Eb4fbKg2bCharxZ3unaMsAuWyGlGSXITEnLkFty5mg(uc7fwrqgMOzr4l5uzUSFhzGAybyMpqUuZE6ynAf0brYDcJW9jpLC5XHeE0mh9(QIVU95XtXLoIsDjmTJ2bAfx03B(8oDcLSEeWuCnHXOviP(grnOs8JHcs)os9vFK83hi)LiPnjeWnn9vHB8CXWhesYQneSzWMXT8h)61jaSe)ouZWZDABNJ8CDcqf2FQM3TNB5556rUfMj62hpKl9qj3jCBGNoBWLMJG78bXcutHSHllCGM31W)dTthfYtG1YET)ynd37)Dy74(MbeldPy8p9v3sxogzKZwMYzWwbCb)BfYFRIfgWP20E4fUGFDF1Mx1RlRuCYq0dw)ZygqHhb3ZE0qRhmnOf3PEv0xhwSN3FWLkjgz44bRHpcdoHbKTUK3X1JiSD62PfxDb7avdOnmHBcDuHvSEeTrMOnYeTroH2qLqYYPVwx2NDjV)osl8hjTIdH(qAxC3R6DwBI8HLFVRNXN90M2x9ZIRip4olFRb2M93FHnD6TmZyFwRJ6fPPbtSUoS6dYx1a3Cbc(g4g9hJqIQ1xb)EfjUj)3tAYPD8cnBh0SagPm6(O8sDFUS9XN0713)HX2nY9rAnDFYqpX8g510pjMxq7oDAD51rTCP5hgZ9szrUxzYhzoV)a0ean(aqQn9U2NWazX9u6XODEIYCd9GyLOVAVfgLrSgSsmngbAGmyQbhd7iDR0Ntd2o20A04aQMrIYUVnmFdzQz19pRvNddJhFWs7RjZIhAPKvy8ld1cMlyO1i0wrWHhQc(3B5mICHLb1SXtGbgTNHTn85HO6QFNArMrRtDjYceiR(aNYmgzK1mccavPre2rN3Z5oKNmxarRgwvKExVac9kKv4ezfkApGnKHLpMiY26eHOA1kn2JzjqwhHErnODh8z7aIwKhpMeMRjgd(4wX4yAaplyrcTD0DNqa9hhdiK0HGMlMmCcR7UcOjwJCC9m7ofTx(TWv81cNG1Nic0WivKKeAencXwtXzVNaZ3cUwLLkRqxuhDY2WvKXxHuiUSaZwthd6WJTlcC19Agr7tx)N1IRO4ZAQeza7lfo0Z9EhqBl8NSV01uQOOukkfhPzBhsq1As7jvlbbbwJMzYiqPYU1QLGalptb)R1ir1pt7oTi1TrLypf9YcRSISud4X4UjpDXFegKqb3zhFq2Tnd)0piK3892x4IXp6Jasdptv5OB0h)CcGsYjU2pIpwj2JRYFmrdHhxn2JBWFChnmvFibnIrGCDbd8C9diTF9yuuribQKi7ijvIle1fsrtpDnhsZupMGSZogUZgSyJqLOAiE2q3cKTnEZpZnlfrokfRnRjKBBTjMIQHMHLvnH6EPMHLgMVlAvWMBbKVNq3dGGjIwHAnxw7ilfxRGAhwVuAmzLODMjQdw0IQZUX6)cTd4DlvaBevah6rGrkRAPiFksXARHGejQskINs1eIhvNO1HQzlOwvQe3LtOv0BxMAvr0G9U3YgdsgwTuuRk1J3AdTjjBNxRu0SQcJXf2AJMfPcPQwvBKOHygDEdH3UixwHRojR9cJbDS2sD2fA2Hw3z5ePsPykQ3iwtX6Hz1jfdXUcV2MGOHljKxHunenKI3mm7aVDsXoSx942bIvlSAuR481BNDad2uB(KOtMzhyTOWqkcDVLTj7R0S4EQPogm0l)GXE0L1NuU(5SXiHkEU2OSWK0dLSBOiP56NroTaNPet0fbw2ZntoRxLdq7sOTVJR4mtMBApcHssuc5T88t9bKzwVbJmukNF6pGKgsCoHAZ8tbwOM0WH1LzsfrVxW0GfAifk7eB0cMjeicjJse1EUGjdjYeNkQXpQZmBMLcssH2a8TzjPfFI2d0ZgpXjON8OYpnXHLrZekpVvKt7jssQWKYsoTF2XaH5Hg3xbNqkgek4mBYaG)8C1YtOv8uqgJPcPGUzGqHbx8uAGkGKIyQG8R4RJb7NvHbHWJWAU39bLH7JMucfFqwI)tX0bLsY2)f14NpxJxmTtwiL2)f08d)T4TEwv6xqtkV(T5)Mct(S2KsloN3rmOC(VmpqL3mpqWkyuAlPkr(tiyegA766T9CoJGfBbpP4w4fl4zIhqkAl53k)54QYs1IIVUI5giJPlEfxtr41XH80fFmnZDMaugDkLQtzaeH76gdF7INIB9woEyDTsdkgYtTYKtomYzTniEjKwlc3uwdU9Vxm3wCIbIZxxAQjI0fiWyNMo)vHm5WwXZWPMuMRQ6ceJW4oB5DY0kinxfcyNI(I6uw8XW(ztTBBcsLFzYju6)fHiAz8N0tNDXXrOMjMaXUJD6KXkIzhxUhxGgST5YSJzgpVP7kUzEElk2iljyRy6zQiG0seaIFyXvh4ngZvwdMRuCLkdPhZI8s4oIaUJWUTGL01qPUCGRkP3itVNWpeXLwALu)y2OEH2lk2kI0taljSx3lw95fhVrXZ6FBMMstlmPi2akW68V4dFs)mMtRlviIkHI4(D71R75RTuUZlxkx6jWFA6Nfp2OFu1eIxH5UF7c0tGdxbt4yEkvXh0ZkebRmRkfZsZWswkZrQKWsSKkhgEJD1IXVrkh7FICYgE2URkDU4Crj)nj7c4PG2YWW0PVANwFcp9sA2V3NDgd9v3326RFvZdc31JIDlqo80MGhNSwGg9CTjM)JWsPhOJ6bx2QvhAsYXSxtBvmH1xnfH9kdqdywMXdkMCgcF1fKlmH(UEw4M2PNd(jDVS9)xx8lReYXsqHwv45iRp2u)wY5(XW1qNDu6RENMNfgnQVAt88sief5SN5KkhLY5HTv4rshPcOf5x(LOvmccaXIHvdGNEFa1atrDtyBtF(8h(sKJpAky1HPiEeAlW2a7l0VmNDuX5DQoRKDDwQ8EsY7vxA3gvRixz3kutq5AjkmlwKkVJTivxhlsTfyrYMjO67ytqJSycKkJ6SsTQuVIgrhxuUsdPk7PixREJ6k7wlBwKAVNdnupBMKK(dl6K8xMnO(7yBqfLn2gSWbkz0KS77yts9xAWImAdA8o2giTUZAMrDEVfRZlrUeIe7ndy1UQvJgcJ3nLSWklQW51GbAEuqAWKFzPykaxOxshu2S37Th1ChEBAvicVxPLi0XevYyXYJejVATv35r9JwG)pNDkvQPSxvz5DRxDxP6lIFrq8cBXcbCNmTzbWIwzOTibWehBQHaYrLI3k(lU0rhDyB1loR5F88nQT61RDNJvFYJaHe89rkcknucheWqxPTPEaIk3HAZSdyJHa1I1UQHVauW(z9cmDiFmGiRu52IeKbg(8Z08gzYFAPQ1QxKaXYqc(SfOwZci7SEIwaskqjqiQZ3A(OannQ4RIeSQFYjdWjNGKgUAebvDu1a2sNzOpcfzB7hczj5i1eTkmSTmqSifF3HbiUHjy0IWsp0tc84Tgb26PyNkIXhneGVse8cjkmKZtyCGOmHWicSU(69vb(Bnz2KWxaj3HIVcaUzlC794rug4(8nmy0WelrBcc(HiN2NBH4NAtKpUQ2ksFPKyfhma3smOX4drHe5IMRwPRuXb5etXocZuIFWSHdri2JhC8Wz4Nmc0pOY85s75w4lCsa7LTncpIkU1df3a3rJWX7Cc2NjduaFXyAppy7G4xLK2MaBhBfGFQg1tgg(TB1pk9uqCp)Dxn3rGDfN3Mr)g3leVup1JcKN5BLgRUvOOxlE7qq4Zh8yVmeHndIMOQ1NVz2B1nJajCXBjA3ZKi9hBB4AmY8dqmjVh)G1KjZCmlxUCrAZROuFV5BEAS)L3(C03fV5pHxAm2rcYnzrJbJ4HeXXNK3VEX88dhEsB9iEzjDSPTPs6QWaU3gdyGIrnd4crBcO4a7ORZT)Kpbd(03DAQnRrTfyZQelytL0c2ic1OiTirNAMQWKWqO5hgUqryQ2xZteqj8vvlAeFY4o54HbLxLKvBjcMmtWOqNmuQQjek425dfclUWpr8VKczTvpr4fDvB3RD3ozAMq56B0uH96EbW04t)rtr5tEIjZOiWKQVh75EpgOw8PCIqmGvDreKDxIGOKQG00x30XagjmN4GUQIhjejgGuzsLkp75tmHzMnIit1jYuK4yyGEpRPurNAYfTnoJ)ok7uzNQ7uR4ZNg2YWdQbfwbEOCXii(vDIPH1SjXNnxEVSnpC4SWP7aYdaWbSB05rfkpUKbWPZm4EtmjZuVpso(rmq7hZrGI65mVCdLOsu4Yn2NWh5xf(Wtrkde)kKvxccTsz56LHid3HdPjL2)))d \ No newline at end of file diff --git a/FreshShit/Incoming/sct b/FreshShit/Incoming/sct new file mode 100644 index 0000000..8575e72 --- /dev/null +++ b/FreshShit/Incoming/sct @@ -0,0 +1 @@ +!T3ZcxnUnZ(FjNdNpslK125bHE62ZjaHDdfcCXz72E37MetItWxCSZ12HhTB53(Dg9Ws(TdKLUTLUTBDKhnZOrJMzKK1OHQdhmuFXq9P4)cp6ERPNTXd(WZ9vP)f(VAd7RmSFDYF3a(7A71Cya8h97pF2mFZaO09vgQ)a)xWZgotU217cxlhaSd72Fq3lhQ7V0W7MlDdmcSCDiGTYZEO(1bbl9)H38M7mM7wZY9nVRN6mLUN2Q5BAmu)kJj3m3ZDLZ0dDTD9ymLskmfYt6wtCDgnrcsk7RsGuLaPkc3kFZbUU2bwlhEaWyM2ZIXRxz4fHG12VU8)qPFT9B3OUA990Accank3uB)MA73qvDVwn2tP5(mMtJWDtn9Nmu)m3PwZSmN(4yqC7dIIhhpZZDXJJh4z44BBf4)44)tpNjUlSCM)44PglmMB(4y)jEU22KIcmVp4)84jXfC86CePgd1N5ITOJ9S(9hh)FTYyQNrGbqLbSEcA31Vr6iSDniAaajmX)VpGg4j9bD6)ZGkYkqsHft(5b0oFqeoYXeAcdVcrO5eIYedscetSn89tuQV1VBgVqk66m9)DLFG5uZPNz5Gy1ZCoiEg8WsGtmw5zaDkHkPtSP9DOSyLhaWbgobUhGqqADd4L3ZjW0BMXeZ)Ndn8dG2faZ)Zh6TR4x7QJvajrGlbLUty9md7VNsDfuF2E51gOMaf5hwSg2mR7nN(rRPbxdVhrH7QaO3dyOZ)WGt71VBKEHFL0lucf3jGeYDb24asSYzcouA7QpEYJJP)XA2JJrr1itNBR5dd1anNGRnDeqW)JT7edBq1BKXcy4vWJJFB8AwJ9MevfjIeWWyUzwZRzSCYiB35bq3fGmaBQamotLjXJFbkUsLSyPyS21wuUA7kBbdj2YVs1FyMR3cJGT5yCNeS8stVjMobvZg5EMGEbmMRYxMC8XaRuRwcKauXK0xqFlHpWhQ8fVkjjPJXcZKKZ023CtYecHybCsgumfoe6BojYpOLa)jMTAWIfO325ddoNoib6cSMq1T17GdA0d8SMphgZW9CWlG8iz8lvXL))hrlKW2Rwof(B(B(fdplJRSn9hQ)hc2ZhCN4At0g(JKTKPw(lbtcKxx5iM9sDwvqHciRsujMEkudFGzDMldZFUtCs3ZzQ59pj6BH1mFgWz1IRm9YKbwAABpXiOuu)Nbr5CxplZNdfnMo1c73nSVWZDUNPVpPwQsGm10i46YjpqiZNBUceuX5L)KQjI6IGtg0r27nnSrnUvowWVqcyIg7xDf596RMbMChQp6Wo6dgbEQUCG4Lx4zsEP(fDp9uI3kB7Et9jEF0rfe2JtU2CYnHeKRYgANLOU6dJ7iaa))aOKflHham4d967GglMAIUwm9GF47n5DFO3r0N6d0H(0X2gZ9PpEj)zi2GagS4JmGXhLHie8A1QfZQpHNOgERC(fd6DEF9kfy7NArrL0jCjgJ12FaKTu582vOs4kvFJQIY3P1SAbOrRmOrnn0qfRFQsLpNLcf)pudCylCW1go3aQLbUI4MstjlucnbJZcQzRgnQ3E)CGuYDyL8WiZttXakz7QYkNBCCVZjxWLhURKxtk0KuJ8qNRxq5G8wd7vuPRO77mJ7f9G5u3aWtH9tSUso6qrKzl8p5k5zgLgizbh9iLxDq3wVhgAsGpWBLzoWob0TMJXNxmO(x7ExEW9NzQTRUgk7x05Yl)T)1QDxV0A31Fv7(BeTBT1q7U7TwGW9ylpmOju9yJRPhgMmB6dm)EvlR()N0AU1NlEqqVYzqwEeq9YneqR0db0wZHaX8p3u5LzyWSzTvuuYvLo9yq)JqdNtbfgsyzmm66DNH3uCwr3HZmH2Xt7O)Z)8F6J3QV2J30V2yksTxYrCALFeN6AoIRU2gEiNAPhYP(8gYvV5lZqU2kTvMn7fAiN2)GhYXN1dtfpI(EsOpC0aRfME16mdMs42k1aTLXslCN0s4akvDCMsxpWTr2Pkzzzszct8vpcbk2s4KC5EyS7KOJlPRzxcOc4ZIecolXlHPRU0KhsyI3Enr58WvEECmKMkFgvd0PZtlpjFEnO)CTR90myvkwVGAs5ux)GCHJ038ERSaYcxxDYIXNqISAXcdVhIor8jPUsO4WWuEJwwtrxq0Xuei1rJlT44IQIsgAgzWIAzYInYIf5T(sZGYvqPqfxKr5RkcLt(OPXnDany)AlEGwkz9LLB3uwjD(vs5UEuMfjfBTAwhkPuckPwaLqnE8xGYUzqLQpDcPLI8MpGTY3vjwVtEyQCDnYR30fN2536E5Ol7(UU9hDup9ohCA3J4R(uUlcDObjy8SzqaUYVSLzRA677Gqhkp5sc0d(2Kr(oyCq4o9bgOp)Sd6maDIHZZfNtAI)lIPTDKSzbp3sTD7M7JawTOLyN19NPGRB)Yl32SIIt725x6(SffQ7PwVr76pvzbL6Jo983nQ7VaDoJ(q)J7Dk0hrejKHfCL0FI0Ejfvd3oKmA5Pk1ylvlJO6FSx)3n6OoN15DD5uHAd0)o6ETwMDQkC3OWnN8glB7D4rOUd6T23c3wt4XRa4VH8KXvG)(RipoXdI6cqd84CBdNjazjLUY)AUTCSrMDmRZeHENqXjxXrAykqQlPohH7U7JJ7jmjvoSfAzjIVAkN(DqKVVr46V04kD)60nWHpxJkBvtD2wBHAWHKU66sIiHeW7vJO4PqDygzaXUzTJP5oyi3UdHW7NElx1uQqKf4Dz)OOhR0T2YdjpKhIATFSTlgNGLo7nRlgNfosH9KyQveRoLhHeJIuU4tsS0NxBHcFguzZzPrgyEs7KXB0(C5PEP0nEY9FZWfcGULpvoZ020KS)2STGMfWWtcN09)Pcw82m0X3il2EwxTYxZ2vKj5RQ81Gu54cLkw5pOX8wMUc0osomsyqRiFS1BQTxJDKAVv)A0stFgMpjn2uFj3)FAoJpRNUUWLp1I3cl(QfqkC9I8HPHWXbi8S8HPz)Eav7ezvRkTBwctW)HWUmHcrTn74gKJ35VjCbuSzyPn2zSYlJTjrhoX0becYJJF1C16rkmQTcxtVCxOUxna(YAaSB)FP3LN3)my2pDon1zLqwWrEq5WpS8CxacjqLQiZFaWmRFFBnBLxNvYRZkjlvwuHn2unyQXR)0mmXv0mCZSOO(tmS9zklRwxB)9B96uI(37uIy6dpRqkE5cBq7V(z5eoQ6RIZ(Oy)F6(7)AnXhHN)VrMc0RU8F1L)FVD5)T1KL5ET2utk(V7EW(lEIV)tXN43EEp52xbH42IJCrf(mLRgDd8qztrMH2DxYzcHHHhht)1fDVS35h17WWIVSt)31L)RI83siSf6yL8e)CFic(9BH5GVntifyGNtlE4fuoNDq9u1AO1SPKt8ivPASyaE1Z(RE2FDwY)RywYHM1(h2YWx)V(5tl8DS5JCq5FmZIoR4ayZGU6MBk084dOyor8b8IPXhW(1tm(aE39gys6pxF7RJ38xKfe4f9tI5R(u9w)iXxR9jLV7OppR0BO5h(SBRpDl0pzs)3Fl2p5M(6zbFTI8yZBU)9D7CAmJ9O0ReF3MCZ6igsyuNu4gDsEHkgBYDpTCgClPTVxN42tCIBVo5SxNC2Rto7fyYznEDYzFtn5SIZVuf49UhE(BU8dxm45SUTHi5VboSlN5QnNf5nML4nLf4xwlVLZI7jphlSN8xG10tEswpBQSjq9FFTwEYMX6y5m8LwI1JLvX8hQF4PD)aW(PEMjJxo7ibIPo0RwnBgnvy((UNEXXF4uswZ0rKO9iPrtJjbw3AoGwijV91FxvfsQrfZdMog2)cp1wwVDKSUjlNBA4yTGMGwhqYpFEbIC4NJlM)knn8n1dGoL5yUTSoWBGwbwdEs9ZCIRZuFkGdeve4Hfgwe8sslbxsZNMGYQ59KhjjzZbrZwGiGhqEl5X3ja84votKYnB8CkWoKCIHxajHPzhyunTZVkVZMajR7bZNP0085vjBVsndkh)GGriPUZhi)99I04zhcaCrZqDvm5QIdwiGuwzijrI6y5F9MRtiGMuDN65USNZXEyoIftGRGxUBE4io7cLeMcuBqYJExsYfRsj4r5SY6imZSgGzS0b0mY6iFs6f5x5PeyvwXbKex6wtuJaw(P2xsEpLcTip9stgLKsZiJuIVsojS2QbpTe)BsjQycy4aaRzpiY(V0EkAwwT)5yUALjvxDfTfqQwjsxRuUGKhEvuuGb3hR))TYWZe4e)l8C39mZPwRweryeYD7Yfs356n9JEglhQ)XWNcrmTVnmNYsLiYzF5E97dMtoT7X8UMBT8Tat38KNlbl6ys5TVQkxe9RXfrmiXjrpAIk7PqDkOvxYoETx74Fz74VS37E)MRNxlrpFdSN)kG9m9g5kQkReFk2d)nLgK0RDmzzqimtkwPGbPu7HvI5umXxdHPDbOayl17rFp1831MwZVg1nBZYZThydEayj52JosyFm)08mXRQKiudT8JzvfuIezzAOPeDrE1GytnXA1fcfeGf2KWhHx5UcckYN4AwAZS4aW6oioJW5orYmrZrELYcgEZndWiY4iGe0eV2Hj0hbcWxFkZTIcVmJjeKYGzj0hZra3HrFTM0sylalhaOJ22AHvGaa2wmfYp3rHoG1xGL)7UGVFs(Hxk8eJ7XxTYcCvxv)6tVZ0(6FEBOhlCmm1ehesTraYvKwmTBN7N7G4PzCkojjnEFlS7NIdKgDUatHVHPC9dDxCfgkn10WDS86Dtfgx)EMkvDOaR5oUEMNVeLl(DXG(665565JKhjfr0qK6(rIXIhZtgzeOQqBZDedOdOr0zLEfd)GjJLtW(uLJ8CVZbt2X0pco16A11KZCwFQYXgKwmdGgnv2xPzmacSMVYKbGw99A2mgaGsvi(B2ow1p14wdP62UEK3QdklIkRPQ0MNkGtFoWXAG7UlnX1lM(Sa38V7VkxC9d(4u6Xfbwv(JammRfw59U2pGVwlYRBWFnPfcVUrKx3M)6(OcibG2raqTvic8GP4qOFRiqupKdOPNneK6rzIwHCrhVjgoeY0kcJS7UtDxDv6cH6YTqCHzUbaBB8hFpxSuLSBMrOzZq(2gZvY8QHIH8QwyZ9sJPwg4kGqRcsUuaF)W2EayulKkuPzE0rvjARcQTOEzqmvn5oZy1blkT6SxK(pHCa)vUmyBzgCMhzVjyvld(ttjcTMrYoMSQKb7P1ig7rBt06qBzPuR61JQYf2QO)mVMv9qco4olB0aOOAz0SQ3kk1Mztw9dETYOL1iuyCHTX8vsviZMvJ2XietOZje(Z0uzdv1j5fXqHbDSwUk7HTSJSU1YrQszikA1ocPy9WS6KHGyVqT2oaRHRYdVczkiAReLmm5aNozih2Vvu5alzrYRgvkMSE7UliWwAZ)uBixXhPzgslST312KD(vJQPM5yqHw(Hx7rd)poF99LdrHnXZmMxgKKTPK9eSKHRFjXukktXC0reBKyqt6jN1Rwzg5FqmS7U9DdthZjC7raKKXvba5uoPRVkhFC3wTzGHCzs3FIC3kacjR9MWfyLMkZM1sLXvK2DkUbRG5JsoVtKrP4juK2kXL8NQgM0ziHN4qrf(XLMlmUNMyblipdEsSuxkb8WvzIKppJL49jFotSe9jz7yHqV4aYUXtyx3c8TmNV8t5KD1s7YvjKHYlj3HvMXm)0JJ3N)pfTu9IevAInmxB2bOGLabMXsz)t1S3XN40)zr8Zsq8QfTJtXO)ZG8Z(5OuVSn6NbjvxFA(JL5lzuqsL0xY6XjtpBfPfQ9vtleKet3zlL6s)L01)JTRR32juiX9ei5BQUf(qkVl8fKI2s9RLoD0MsUTIQBw28jWJzZEvxtwyZOuwuMOKBkLIi(nyukzvYO2XNnkrsMCgA7(gSrIPFZhhV0WYZxcWXtDtZMdm2iw2gonyW0m8BNzK(DcvQxctj2QT0BaOcZiXEVnkC33MnsA)3gj2aUrr3boPBsRzJsBx44Lk2hoEj0DIB2OihiTrPSPCRvgiE2OWdSPsAV0X2kZS57SrbwSSCo(W2vtfbHB(DkVLkmMroiozacFjVsJ60Ruq6UeZ7wYgoTIGJVNwPXORcCXRAOuELu2jpT3gpLfh(MW8fUAKqltM0Jt9ltqoy1ts7dhiIMxMF6ajyJmQEbzZ2KTgY9UHzLsLABL0PzrWPKn)gQUkxReEsdhowW5oqcF0mDuAOs(CnxsK9oZaYm5yxlIBhYpvlwuMnhLNim88kav0XI)b9e9(gujxCi95arxr6ihoowGt2MOXq6qOQeasPAzQRj9rDqrN)QR2wYGk(FjWxv2NRrTAvY1sEETkXcZxa3fZib7UaK9QIhfKckkptgphMNfJgZQzyxCHSxSkcbwKgujZS85cipxYhbO1RT(esg6clRJFRAQVwYSmvkf(b6Kc0HEzYi2ijpaeKzKHeoIlj8I08lor)p5lvtbWSdtY2vOQBH2UavEYYvu5qSJ7hcpRj44KkNz5ikj(nacVZUkbsJ7ljKDUDEjGSegXYi3ZNA)twGePtHQCKmAGm6HY5UAGAVmTpF9CVTuLIpiEMnOyXXYN7n8bqKYA1lreeoM3L11vt41uJiu2KtUu4XLg2zYeFFOV2ibcNeoXLxMig5mGsCxZelg60Po)dVtmmpfiZ5gZrAuqgvtm3jrq8jav(w1z7kFAl)plpGpHoxAu72fwofrMBxyCFHWyC78IGzsO8iTBvNiF4Qjf7rgalnGovEri7I5EHKvyusJaIlJNiUAYUcrVbEKJjnlTMyZFjvMGyJMHrUf7uamIXkHTRuG08(Lw0xoGtEiCXb0zqn(7JBQlnfY0t2kcZmPPzUgxcqrU8FegwttkwW95tzUAGe3dTzhDBQNIyYzHActrknTHcxGHtYlL2G3d(lzkk(5)jNZ2MC(0nK8GtIDM9AM22BfZCUCFp33wlUfOyL89PfeyrylvZGrqC1YGmHjKWN)(ixdlzx1eoFybcDpl(doclbQYnsINYAiLY0YelfsjADpXL3QmTWWNlNCwAvXIyXoYVxxuT(cWOdxyK9NKwIiw26ETpFzx5zACZ6DWWgVHondfqA(xV(jLc5udDHAzLz5CHEpFtVa5vNeI1RAU3rDBcTYNH24tr1jUkd1)i)tDt4myITl(HaqlDDgxWDIL1kgVEQqjp0cL7Y5jMxovzVCjwgXnIxU8DD9VBNtHHphR58M1WVev(sdO)NKxloAhl)vYRHt5pQYyTX4H)X0rCSjiuseFBn5aEl9syOT(lHbtiw4czqfsfVmg02CXlIbTNTA1VnctOeEqE17XtRljtzxU7dyb32O83JHoPgDlcn25QQIni1OgrQihJfyb4QKLsORew1wtS(JzJ1OFEtYFDZrPHl9BNUAolHe7BspTTuSM03SoD25Aj3lYq7WmAXMye7I6m5((fWwAT0yP0vdfxHKKWa8)uiBAn9Zz4hK5)dfEIzQrfLKqcIuKCyQzpMc364ASbwOXTBR(02O9S(CqyN4GIU6njSbclHjiARvl33BsecOTgeqRAHnkspNfjJBoNSujIUVGC6IOqdEM0j9kLkjCFVKIUsHq)q5GolzM8Y4gnYTbNFrXw1IsD0u42SMm9OZqkIncdetFhF8u2M(YP)ngVQj41doFWGZpBTz3DF(SBUrMCs2hHyKO)GUjyxdpMtBxHESYWOnewdOqf1CaRqsuj0QuTmKHDYqyQw7ekjYPYcdF5g(zghH5yhafXrtTOZUc12F0)ehD4jaYCXTMEd1vRPuRo)07Ca70ynu)aBRF)3n8aBGdOH5Xp9nwtNA6muVF3FbpeFtT8XpOt6r1zlaOzEglWtlRrGb9qmr6EoglLEk60p8YUD7ZBgyf)WYP4riIEOThQN2jXZYbpISKJzeJI9Wt3tF69K)qDxpl8lBME8FF)5x27)(Cmn)toLy0LlvCAANCT5KBiNHs2X5U)UAd1V1WZcTRnuVt)JyajDcC5GcTiu6823kxd(UoGLbZtaKPkezCaIhmKfbIOaiFm3uQP0ypLMTBRvVP2(nu1KoaEk10AIyzj0LaovEGCy(ONuok(PNc4xGwK2A1IA2wP((AQnB1UL2EnxRgu9xOgu9s1Gu4niL9fnP6YhmXcBqnEHAqnwJge9OvQutTX(kQ73szV2nQR2OKnOMVqnOMRLkx7iDrS2xJWgx99GMv4zAn7gxRxOgx56SQX4CA3eVPgVW6PvyHnvmbwSkaSnZo9KXY2axBAGhIxD6rX(ltog(hfLJp(OE6ywZ4XX6DhmOx)3P)fpYj9etTk4PTKFCnfPOawosWgI8apYOZmwztpeTKMkJU6HP1oY5Pvkj3Ptx9lsIx48vbZDjW0q8dbia(VX8HOh)xK3oY0Fc66GC2CX6TCL4GLQkot9e4dCNph7Y4C6bsifpnUjriWS2RWnm7cmWOTDDSF4XXCURAursJ1qKGcDuKF8XqSVEbMoFbIGEBvT63uLiKeV)u8lCI)2DA0SvvI4saWhTGE6vbKOWxyeGGcqcagrMfEEZjnR(KdsbVkKJ6CezgXoGV7SamBMqoc7KMLhQpdABwZbDNLKgYcJ7bWXZVlVKqrI(cwLdzc5tfnf98ANqWJbpaHXZGnuoQeoqMjOHWrnfJgPPQGdKoB6sTlKiSdy8viA2RCnsWukRzQQe2ojfkWCIwQ4mRJNK6jd1bAyTy1cX3QG7mEQ45XXBHtybxFNaxy2s0GGKeqe6YLqhWLq8JHJuwmCR4sQ2s57esxEe8qAuHhQGKDHP1WIEu7znUJX5)5hSA2mCv6Xt63Sv43Ig9UwWNZXNzHBOn9JalIasML3VCdxPN3DUYIheBlEPqXVytbY8Lb0pZYFq5lbrhNcrWvksG5pGOeGErr6WpPDtnwqUdQ(Ya6rWofsPwYwdjBceLyKYEJhBzXe0cpm4nALcT0khTct9brjhThBHux02tDNo38nWmd8E4nwlwSYXSwTAvP8GMwR9tHhkPXwE2niLX9uUjeGiyVr2y)k5bFIS1qscWwRbci0VtQyePz5iIiLsKzJieeqw(XExunQnw1wLJq8e9qkoNizibOtZ15M)JpjnmrZ640oO2ntPdkQrV6fzzhZ2ezzzVUetksqtHwTWQs5Zdm8cnRj(GAK9osg5R2ocVP(C4nvjElm3zKgVb)mPDzOg(XmghNx3V4WPU4C9Ed6DE)YfpLYtk6HbNFbG0OrmqxVNV4fX)VifLWA4VZZ9o09H0ly8deWjHJuZHJ0YKJ64pXeMxUZ8e8fQ8g(kzEJNTv4Jq5Ru5ctiYMPs8vlcFjzNdD)4zTKY(u5Fi9XiM2vB3672y3MvF8eb1Hx0ekSo8s1QsPEg9fSKjK8OuT6RxOqQLouiAYGr2lFOaadQb0cndUZexcpQ6iznvX0XJFendKhBu(aI0K5krarhmKMAz2e4HNcAy5nkAAZdyATAQTWLJ6w0sUgY5d)))d \ No newline at end of file diff --git a/FreshShit/PersonalAnnouncer/init.lua b/FreshShit/PersonalAnnouncer/init.lua index 3608343..d6360bc 100644 --- a/FreshShit/PersonalAnnouncer/init.lua +++ b/FreshShit/PersonalAnnouncer/init.lua @@ -14,7 +14,7 @@ aura_env.BaseCooldown = { ---@return BaseCooldown new = function(id, name, playbackSpeed) local self = setmetatable({}, { - __index = aura_env.BaseCooldown + __index = aura_env.BaseCooldown, }) self.id = id self.name = name @@ -58,8 +58,7 @@ aura_env.BaseCooldown = { playComplete = function(self) local soundFile = string.format("Interface\\Sounds\\alerts\\%s.ogg", self.filename) if aura_env.debug then - print(string.format("%s is off cooldown, playing sound file at %s", self.filename, - soundFile)) + print(string.format("%s is off cooldown, playing sound file at %s", self.filename, soundFile)) end WeakAuras.ScanEvents("PLAY_SOUND", soundFile) end, @@ -68,11 +67,10 @@ aura_env.BaseCooldown = { playSoon = function(self) local soundFile = string.format("Interface\\Sounds\\alerts\\%s_soon.ogg", self.filename) if aura_env.debug then - print(string.format("%s is almost off cooldown, playing sound file at %s", self.filename, - soundFile)) + print(string.format("%s is almost off cooldown, playing sound file at %s", self.filename, soundFile)) end WeakAuras.ScanEvents("PLAY_SOUND", soundFile) - end + end, } ---@class Spell:BaseCooldown @@ -85,15 +83,13 @@ aura_env.Spell = { local obj = aura_env.BaseCooldown.new(id, name, playbackSpeed) ---@cast obj Spell setmetatable(obj, { - __index = aura_env.Spell + __index = aura_env.Spell, }) return obj end, - Update = function(self) - aura_env.BaseCooldown.Update(self, GetSpellCooldown) - end, + Update = function(self) aura_env.BaseCooldown.Update(self, GetSpellCooldown) end, playComplete = aura_env.BaseCooldown.playComplete, - playSoon = aura_env.BaseCooldown.playSoon + playSoon = aura_env.BaseCooldown.playSoon, } ---@class Item:BaseCooldown aura_env.Item = { @@ -105,15 +101,13 @@ aura_env.Item = { local obj = aura_env.BaseCooldown.new(id, name, playbackSpeed) ---@cast obj Item setmetatable(obj, { - __index = aura_env.Item + __index = aura_env.Item, }) return obj end, - Update = function(self) - aura_env.BaseCooldown.Update(self, GetItemCooldown) - end, + Update = function(self) aura_env.BaseCooldown.Update(self, GetItemCooldown) end, playComplete = aura_env.BaseCooldown.playComplete, - playSoon = aura_env.BaseCooldown.playSoon + playSoon = aura_env.BaseCooldown.playSoon, } ---@class Buff:BaseCooldown ---@field isActive boolean @@ -126,7 +120,7 @@ aura_env.Buff = { local obj = aura_env.BaseCooldown.new(id, name, playbackSpeed) ---@cast obj Buff setmetatable(obj, { - __index = aura_env.Buff + __index = aura_env.Buff, }) obj.isActive = false return obj @@ -156,15 +150,19 @@ aura_env.Buff = { ---@param self Buff playComplete = function(self) local soundFile = string.format("Interface\\Sounds\\alerts\\%s_expired.ogg", self.filename) - if aura_env.debug then print(string.format("%s expired, playing sound file at %s", self.filename, soundFile)) end + if aura_env.debug then + print(string.format("%s expired, playing sound file at %s", self.filename, soundFile)) + end WeakAuras.ScanEvents("PLAY_SOUND", soundFile) end, ---@param self Buff playSoon = function(self) local soundFile = string.format("Interface\\Sounds\\alerts\\%s_expiring.ogg", self.filename) - if aura_env.debug then print(string.format("%s expiring, playing sound file at %s", self.filename, soundFile)) end + if aura_env.debug then + print(string.format("%s expiring, playing sound file at %s", self.filename, soundFile)) + end WeakAuras.ScanEvents("PLAY_SOUND", soundFile) - end + end, } ---@type table|nil @@ -185,5 +183,5 @@ aura_env.Cooldowns = { aura_env.Spell.new(196098, "Soul Harvest", 1.6), aura_env.Item.new(5512, "Healthstone", 1.6), aura_env.Buff.new(0, "Deadwind Harvester", 1.6), - } + }, } diff --git a/FreshShit/RIOChecker/init.lua b/FreshShit/RIOChecker/init.lua index 842d88d..5e2fefe 100644 --- a/FreshShit/RIOChecker/init.lua +++ b/FreshShit/RIOChecker/init.lua @@ -13,13 +13,13 @@ aura_env.ScoreColorer = { ---@type table colors = { { r = 0.62, g = 0.62, b = 0.62 }, -- Grey - { r = 1, g = 1, b = 1 }, -- White - { r = 0.12, g = 1, b = 0 }, -- Green - { r = 0, g = 0.44, b = 0.87 }, -- Blue + { r = 1, g = 1, b = 1 }, -- White + { r = 0.12, g = 1, b = 0 }, -- Green + { r = 0, g = 0.44, b = 0.87 }, -- Blue { r = 0.64, g = 0.21, b = 0.93 }, -- Purple - { r = 1, g = 0.5, b = 0 }, -- Orange - { r = 1, g = 0.2, b = 0.23 }, - { r = 0, g = 0.8, b = 1.0 }, -- Blizzard Blue + { r = 1, g = 0.5, b = 0 }, -- Orange + { r = 1, g = 0.2, b = 0.23 }, + { r = 0, g = 0.8, b = 1.0 }, -- Blizzard Blue }, breakpoints = { 0, 100, 200, 300, 400, 550, 750, 9999 }, @@ -56,9 +56,7 @@ aura_env.ScoreColorer = { ---@param b number ---@param t number ---@return number - lerp = function(a, b, t) - return a * (1 - t) + b * t - end + lerp = function(a, b, t) return a * (1 - t) + b * t end, } ---@class KeyLevel ---@field colors table @@ -68,13 +66,13 @@ aura_env.KeyLevel = { ---@type table colors = { { r = 0.62, g = 0.62, b = 0.62 }, -- Grey - { r = 1, g = 1, b = 1 }, -- White - { r = 0.12, g = 1, b = 0 }, -- Green - { r = 0, g = 0.44, b = 0.87 }, -- Blue + { r = 1, g = 1, b = 1 }, -- White + { r = 0.12, g = 1, b = 0 }, -- Green + { r = 0, g = 0.44, b = 0.87 }, -- Blue { r = 0.64, g = 0.21, b = 0.93 }, -- Purple - { r = 1, g = 0.5, b = 0 }, -- Orange - { r = 1, g = 0.2, b = 0.23 }, - { r = 0, g = 0.8, b = 1.0 }, -- Blizzard Blue + { r = 1, g = 0.5, b = 0 }, -- Orange + { r = 1, g = 0.2, b = 0.23 }, + { r = 0, g = 0.8, b = 1.0 }, -- Blizzard Blue }, breakpoints = { 1, 10, 15, 20, 25, 29, 33, 9999 }, @@ -111,9 +109,7 @@ aura_env.KeyLevel = { ---@param b number ---@param t number ---@return number - lerp = function(a, b, t) - return a * (1 - t) + b * t - end + lerp = function(a, b, t) return a * (1 - t) + b * t end, } ---@class Key @@ -138,18 +134,27 @@ Key = { local formattedScore, err = aura_env.ScoreColorer.Interpolate(self.score) if not err then - score = string.format("|cff%02x%02x%02x%d|r", formattedScore.r * 255, formattedScore.g * 255, - formattedScore.b * 255, self.score) + score = string.format( + "|cff%02x%02x%02x%d|r", + formattedScore.r * 255, + formattedScore.g * 255, + formattedScore.b * 255, + self.score + ) end local formattedLevel, err = aura_env.KeyLevel.Interpolate(keyLevel) if not err then - level = string.format("|cff%02x%02x%02x%s|r", formattedLevel.r * 255, formattedLevel.g * 255, - formattedLevel.b * 255, self.level) + level = string.format( + "|cff%02x%02x%02x%s|r", + formattedLevel.r * 255, + formattedLevel.g * 255, + formattedLevel.b * 255, + self.level + ) end - return string.format("%-30s %-10s %-10s %-10s %-10s", self.name, self.role, level, self.time, - score) + return string.format("%-30s %-10s %-10s %-10s %-10s", self.name, self.role, level, self.time, score) end, }) self.name = name @@ -160,9 +165,7 @@ Key = { return self end, ---@return string - hash = function(self) - return table.concat({ self.name, self.role, self.level, self.time, self.score }, "/") - end, + hash = function(self) return table.concat({ self.name, self.role, self.level, self.time, self.score }, "/") end, ---@param self Key ---@param other Key @@ -170,9 +173,7 @@ Key = { compareTo = function(self, other) if not self then return true end if not other then return false end - if self.name <= other.name then - return true - end + if self.name <= other.name then return true end return false end, ---@param self Key @@ -180,7 +181,7 @@ Key = { if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end if not WeakAurasSaved.Cyka.MData then WeakAurasSaved.Cyka.MData = {} end WeakAurasSaved.Cyka.MData[self:hash()] = self - end + end, } ---@param keys Key[] @@ -207,9 +208,7 @@ function aura_env.Process() local keyObj = Key.new(key, role, level, time, score) keyObj:register() - if key then - keys[#keys + 1] = keyObj - end + if key then keys[#keys + 1] = keyObj end end table.sort(keys, Key.compareTo) render(keys) @@ -217,4 +216,4 @@ end -- /run WeakAurasSaved.Cyka.MData = {} -- /dump WeakAurasSaved.Cyka.MData --- /dump InterfaceGUI.Cashe_1[UnitGUID("player")] \ No newline at end of file +-- /dump InterfaceGUI.Cashe_1[UnitGUID("player")] diff --git a/FreshShit/RaiderlosSA/init.lua b/FreshShit/RaiderlosSA/init.lua index d19743f..aeceac2 100644 --- a/FreshShit/RaiderlosSA/init.lua +++ b/FreshShit/RaiderlosSA/init.lua @@ -147,7 +147,7 @@ local function GetCastInfoForGuid(guid) name = "", startms = 0, endms = 0, - spellid = 0 + spellid = 0, } local unit, err = GetUnitFromGuid(guid) @@ -179,7 +179,7 @@ aura_env.Alert = { ---@return Alert new = function(id, name, events, instruction, afflictedInstruction) local self = setmetatable({}, { - __index = aura_env.Alert + __index = aura_env.Alert, }) self.id = id name = string.gsub(name, " ", "_") @@ -234,9 +234,7 @@ aura_env.Alert = { end local displayText = self.instruction - if err == nil and targetInfo.target == PlayerName then - displayText = self.afflictedInstruction - end + if err == nil and targetInfo.target == PlayerName then displayText = self.afflictedInstruction end local castEnd = math.max(GetTime() + 5, castInfo.endms / 1000) local castDuration = math.max(5, (castInfo.endms - castInfo.startms) / 1000) @@ -259,7 +257,7 @@ aura_env.Alert = { allstates[string.format("%d-%d", self.id, self.iterator)] = state self.iterator = self.iterator + 1 return nil - end + end, } local alerts = { @@ -274,7 +272,13 @@ local alerts = { -- Felhounds aura_env.Alert.new(244086, "Molten Touch", { "SPELL_CAST_SUCCESS" }, "", "Run away"), aura_env.Alert.new(244768, "Desolate Gaze", { "SPELL_AURA_APPLIED" }, "", "Move away"), - aura_env.Alert.new(244057, "Enflame Corruption", { "SPELL_CAST_START", "SPELL_AURA_APPLIED" }, "Spread", "Spread!!"), + aura_env.Alert.new( + 244057, + "Enflame Corruption", + { "SPELL_CAST_START", "SPELL_AURA_APPLIED" }, + "Spread", + "Spread!!" + ), aura_env.Alert.new(244131, "Consuming Sphere", { "SPELL_AURA_APPLIED" }, "Move", ""), aura_env.Alert.new(244056, "Siphon Corruption", { "SPELL_CAST_START", "SPELL_AURA_APPLIED" }, "Stack", "Stack!!"), -- Antoran High Command @@ -288,7 +292,7 @@ local alerts = { -- aura_env.Alert.new(247552, "Sleep Canister"), -- Need more info aura_env.Alert.new(247367, "Shock Lance", { "SPELL_CAST_SUCCESS" }, "", ""), aura_env.Alert.new(248068, "Empowered Pulse Grenade", { "SPELL_CAST_SUCCESS" }, "", ""), -- Need more info - aura_env.Alert.new(247376, "Pulse Grenade", { "SPELL_CAST_SUCCESS" }, "", ""), -- Need more info + aura_env.Alert.new(247376, "Pulse Grenade", { "SPELL_CAST_SUCCESS" }, "", ""), -- Need more info aura_env.Alert.new(247716, "Charged Blasts", { "SPELL_AURA_APPLIED" }, "", "Move!!"), aura_env.Alert.new(247687, "Sever", { "SPELL_CAST_SUCCESS" }, "", ""), aura_env.Alert.new(248070, "Empowered Shrapnel Blast", { "SPELL_CAST_START" }, "Mines", ""), @@ -504,9 +508,7 @@ local alerts = { aura_env.EventMap = {} for _, alert in ipairs(alerts) do for event, _ in pairs(alert.events) do - if not aura_env.EventMap[event] then - aura_env.EventMap[event] = {} - end + if not aura_env.EventMap[event] then aura_env.EventMap[event] = {} end aura_env.EventMap[event][alert.id] = alert end end diff --git a/FreshShit/ShardCounter/init.lua b/FreshShit/ShardCounter/init.lua index adf195f..e827276 100644 --- a/FreshShit/ShardCounter/init.lua +++ b/FreshShit/ShardCounter/init.lua @@ -6,7 +6,7 @@ aura_env.Stack = { ---@return Stack new = function(maxSize) local self = setmetatable({}, { - __index = aura_env.Stack + __index = aura_env.Stack, }) self.maxSize = maxSize self.values = {} @@ -16,9 +16,7 @@ aura_env.Stack = { ---@param value number Push = function(self, value) table.insert(self.values, 0, value) - if #self.values > self.maxSize then - table.remove(self.values, #self.values) - end + if #self.values > self.maxSize then table.remove(self.values, #self.values) end end, ---@param self Stack ---@return number @@ -26,9 +24,7 @@ aura_env.Stack = { local first = self.values[#self.values] local last = time() - if first and last then - return #self.values / (math.max(last - first, 1)) - end + if first and last then return #self.values / (math.max(last - first, 1)) end return 0 end, ---@param self Stack @@ -37,9 +33,7 @@ aura_env.Stack = { local timeThresh = time() - (threshold or aura_env.config.combatMemoryTime) -- print(string.format("Clean %d %d", #self.values, timeThresh)) for i = #self.values, 1, -1 do - if self.values[i] < timeThresh then - table.remove(self.values, i) - end + if self.values[i] < timeThresh then table.remove(self.values, i) end end -- print(string.format("Clean after %d", #self.values)) end, diff --git a/FreshShit/Spotter/init.lua b/FreshShit/Spotter/init.lua index 2251373..2afaa47 100644 --- a/FreshShit/Spotter/init.lua +++ b/FreshShit/Spotter/init.lua @@ -8,27 +8,27 @@ aura_env.messageQueue = {} ---@type table aura_env.raceMap = { - ["Orc"] = "Horde", - ["Undead"] = "Horde", - ["Tauren"] = "Horde", - ["Troll"] = "Horde", - ["Blood Elf"] = "Horde", - ["Goblin"] = "Horde", - ["Human"] = "Alliance", - ["Dwarf"] = "Alliance", - ["Night Elf"] = "Alliance", - ["Gnome"] = "Alliance", - ["Draenei"] = "Alliance", - ["Worgen"] = "Alliance", - ["Vulpera"] = "Horde", - ["Nightborne"] = "Horde", - ["Zandalari Troll"] = "Horde", - ["Kul Tiran"] = "Alliance", - ["Dark Iron Dwarf"] = "Alliance", - ["Void Elf"] = "Alliance", - ["Lightforged Draenei"] = "Alliance", - ["Mechagnome"] = "Alliance", - ["Mag'har Orc"] = "Horde" + ["Orc"] = "Horde", + ["Undead"] = "Horde", + ["Tauren"] = "Horde", + ["Troll"] = "Horde", + ["Blood Elf"] = "Horde", + ["Goblin"] = "Horde", + ["Human"] = "Alliance", + ["Dwarf"] = "Alliance", + ["Night Elf"] = "Alliance", + ["Gnome"] = "Alliance", + ["Draenei"] = "Alliance", + ["Worgen"] = "Alliance", + ["Vulpera"] = "Horde", + ["Nightborne"] = "Horde", + ["Zandalari Troll"] = "Horde", + ["Kul Tiran"] = "Alliance", + ["Dark Iron Dwarf"] = "Alliance", + ["Void Elf"] = "Alliance", + ["Lightforged Draenei"] = "Alliance", + ["Mechagnome"] = "Alliance", + ["Mag'har Orc"] = "Horde", } local throttleTimer = aura_env.config.throttle or 10 @@ -40,20 +40,16 @@ local throttleMap = {} aura_env.NotifySpotted = function(playerName, race) local now = GetTime() local throttleTime = throttleMap[playerName] or 0 - if now - throttleTime < throttleTimer then - return - end + if now - throttleTime < throttleTimer then return end throttleMap[playerName] = now local zone = aura_env.config.zone - if not zone or zone == "" then - zone = GetZoneText() .. " " .. GetSubZoneText() - end + if not zone or zone == "" then zone = GetZoneText() .. " " .. GetSubZoneText() end local message = { channel = "CHANNEL", data = aura_env.config.channel, - message = string.format("I see %s at %s!", playerName, zone) + message = string.format("I see %s at %s!", playerName, zone), } table.insert(WeakAurasSaved.Cyka.MessageQueue, message) -end \ No newline at end of file +end diff --git a/FreshShit/SpySatellite/init.lua b/FreshShit/SpySatellite/init.lua index 55f2713..9e88f70 100644 --- a/FreshShit/SpySatellite/init.lua +++ b/FreshShit/SpySatellite/init.lua @@ -26,7 +26,7 @@ Player = { ---@return Player new = function(name) local self = setmetatable({}, { - __index = Player + __index = Player, }) self.name = name self.whoQueued = false @@ -41,21 +41,19 @@ Player = { QueryWho = function(self) if aura_env.whoQueued then print(string.format("There is already a who query queued, waiting for player %s", self.name)) - C_Timer.After(0.5, function() - self:QueryWho() - end) + C_Timer.After(0.5, function() self:QueryWho() end) return end if self.whoQueued then print(string.format("Player %s is already queued", self.name)) return end - local query = string.format("n-\"%s\"", self.name) + local query = string.format('n-"%s"', self.name) print(string.format("Queueing who query for player %s: %s", self.name, query)) self.whoQueued = true aura_env.whoQueued = true SendWho(query) - end + end, } --[09:01 PM] Dump: value=GetChannelList() diff --git a/FreshShit/UwowLadderboardScraper/init.lua b/FreshShit/UwowLadderboardScraper/init.lua index b1ecbbf..7790117 100644 --- a/FreshShit/UwowLadderboardScraper/init.lua +++ b/FreshShit/UwowLadderboardScraper/init.lua @@ -1,22 +1,21 @@ aura_env.challengeNameMap = { - [165] = "Graimrail Depot", - [166] = "Shadowmoon Burial Grounds", - [197] = "Eye of Azshara", - [198] = "Darkheart Thicket", - [199] = "Black Rook Hold", - [200] = "Halls of Valor", - [206] = "Neltharion's Lair", - [207] = "Vault of the Wardens", - [208] = "Maw of Souls", - [209] = "The Arcway", - [210] = "Court of Stars", - [227] = "Return to Karazhan: Lower", - [233] = "Cathedral of Eternal Night", - [234] = "Return to Karazhan: Upper", - [239] = "Seat of the Triumvirate" + [165] = "Graimrail Depot", + [166] = "Shadowmoon Burial Grounds", + [197] = "Eye of Azshara", + [198] = "Darkheart Thicket", + [199] = "Black Rook Hold", + [200] = "Halls of Valor", + [206] = "Neltharion's Lair", + [207] = "Vault of the Wardens", + [208] = "Maw of Souls", + [209] = "The Arcway", + [210] = "Court of Stars", + [227] = "Return to Karazhan: Lower", + [233] = "Cathedral of Eternal Night", + [234] = "Return to Karazhan: Upper", + [239] = "Seat of the Triumvirate", } - ---@class Key ---@field name string ---@field role string @@ -39,18 +38,27 @@ aura_env.Key = { local formattedScore, err = aura_env.ScoreColorer.Interpolate(self.score) if not err then - score = string.format("|cff%02x%02x%02x%d|r", formattedScore.r * 255, formattedScore.g * 255, - formattedScore.b * 255, self.score) + score = string.format( + "|cff%02x%02x%02x%d|r", + formattedScore.r * 255, + formattedScore.g * 255, + formattedScore.b * 255, + self.score + ) end local formattedLevel, err = aura_env.KeyLevel.Interpolate(keyLevel) if not err then - level = string.format("|cff%02x%02x%02x%s|r", formattedLevel.r * 255, formattedLevel.g * 255, - formattedLevel.b * 255, self.level) + level = string.format( + "|cff%02x%02x%02x%s|r", + formattedLevel.r * 255, + formattedLevel.g * 255, + formattedLevel.b * 255, + self.level + ) end - return string.format("%-30s %-8s %-8s %-10s %-10s", self.name, self.role, level, self.time, - score) + return string.format("%-30s %-8s %-8s %-10s %-10s", self.name, self.role, level, self.time, score) end, }) self.name = name @@ -61,9 +69,7 @@ aura_env.Key = { return self end, ---@return string - hash = function(self) - return table.concat({ self.name, self.role, self.level, self.time, self.score }, "/") - end, + hash = function(self) return table.concat({ self.name, self.role, self.level, self.time, self.score }, "/") end, ---@param self Key ---@param other Key @@ -71,9 +77,7 @@ aura_env.Key = { compareTo = function(self, other) if not self then return true end if not other then return false end - if self.name <= other.name then - return true - end + if self.name <= other.name then return true end return false end, ---@param self Key @@ -81,5 +85,5 @@ aura_env.Key = { if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end if not WeakAurasSaved.Cyka.MData then WeakAurasSaved.Cyka.MData = {} end WeakAurasSaved.Cyka.MData[self:hash()] = self - end -} \ No newline at end of file + end, +} diff --git a/FreshShit/WarlockDispelMaster/init.lua b/FreshShit/WarlockDispelMaster/init.lua index c814da5..2f815e6 100644 --- a/FreshShit/WarlockDispelMaster/init.lua +++ b/FreshShit/WarlockDispelMaster/init.lua @@ -16,12 +16,8 @@ aura_env.Units = { aura_env.HasDispellableDebuff = function(unit) for i = 1, 20 do local debuff, _, _, _, type = UnitDebuff(unit, i) - if debuff == nil then - return false, nil - end - if type == "Magic" then - return true, nil - end + if debuff == nil then return false, nil end + if type == "Magic" then return true, nil end end return false, nil @@ -30,33 +26,23 @@ end ---@param frame Frame ---@return string, nil|string aura_env.GetNameFromFrame = function(frame) - if frame == nil then - return "", "Frame is nil" - end + if frame == nil then return "", "Frame is nil" end ---@diagnostic disable-next-line: undefined-field - if frame.Name == nil then - return "", "Frame.Name is nil" - end + if frame.Name == nil then return "", "Frame.Name is nil" end ---@diagnostic disable-next-line: undefined-field local name = frame.Name:GetText() - if name == nil then - return "", "Frame.Name.GetText is nil" - end + if name == nil then return "", "Frame.Name.GetText is nil" end return name, nil end ---@param name string ---@return Frame|nil -aura_env.GetFrameFromName = function(name) - return aura_env.PartyCache[name] -end +aura_env.GetFrameFromName = function(name) return aura_env.PartyCache[name] end ---@param name string ---@return string ---@return number -aura_env.RemoveNamePadding = function(name) - return string.gsub(name, "|c%w%w%w%w%w%w%w%w", "", 1) -end +aura_env.RemoveNamePadding = function(name) return string.gsub(name, "|c%w%w%w%w%w%w%w%w", "", 1) end aura_env.MakeFrameGlow = function(frame) local frameName = frame:GetName() diff --git a/FreshShit/WhoSniffer/allstates.lua b/FreshShit/WhoSniffer/allstates.lua index f8a2af8..6bd8751 100644 --- a/FreshShit/WhoSniffer/allstates.lua +++ b/FreshShit/WhoSniffer/allstates.lua @@ -19,4 +19,4 @@ ---@field remaining number Only used with paused, gives WA the info needed to show paused progress at the current point. state = {} ----@alias allstates table \ No newline at end of file +---@alias allstates table diff --git a/FreshShit/WhoSniffer/init.lua b/FreshShit/WhoSniffer/init.lua index 4148ec5..e24dde2 100644 --- a/FreshShit/WhoSniffer/init.lua +++ b/FreshShit/WhoSniffer/init.lua @@ -1,11 +1,7 @@ -if not WeakAurasSaved.Cyka then - WeakAurasSaved.Cyka = {} -end -if not WeakAurasSaved.Cyka.WhoSniffer then - WeakAurasSaved.Cyka.WhoSniffer = {} -end +if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end +if not WeakAurasSaved.Cyka.WhoSniffer then WeakAurasSaved.Cyka.WhoSniffer = {} end -aura_env.ignored = {"Maritza", "Goodbones"} +aura_env.ignored = { "Maritza", "Goodbones" } ---@class aura_env ---@field raceMap table @@ -23,80 +19,72 @@ aura_env.ignored = {"Maritza", "Goodbones"} ---@param input string ---@return number local function utf8len(input) - if not input then - return 0 - end - local len = 0 - local i = 1 - local n = #input - while i <= n do - local c = input:byte(i) - if c >= 0 and c <= 127 then - i = i + 1 - elseif c >= 194 and c <= 223 then - i = i + 2 - elseif c >= 224 and c <= 239 then - i = i + 3 - elseif c >= 240 and c <= 244 then - i = i + 4 - else - i = i + 1 - end - len = len + 1 - end - return len + if not input then return 0 end + local len = 0 + local i = 1 + local n = #input + while i <= n do + local c = input:byte(i) + if c >= 0 and c <= 127 then + i = i + 1 + elseif c >= 194 and c <= 223 then + i = i + 2 + elseif c >= 224 and c <= 239 then + i = i + 3 + elseif c >= 240 and c <= 244 then + i = i + 4 + else + i = i + 1 + end + len = len + 1 + end + return len end ---@param input string ---@param targetLength number ---@param left boolean ---@return string local function padString(input, targetLength, left) - left = left or false - local len = utf8len(input) - if len < targetLength then - if left then - input = input .. string.rep(" ", targetLength - len) - else - input = string.rep(" ", targetLength - len) .. input - end - end - return input + left = left or false + local len = utf8len(input) + if len < targetLength then + if left then + input = input .. string.rep(" ", targetLength - len) + else + input = string.rep(" ", targetLength - len) .. input + end + end + return input end ---@class WHOQuery ---@field query string ---@field filters WHOFilter[] WHOQuery = { - ---@param query string - ---@param filters WHOFilter[] - ---@return WHOQuery - new = function(query, filters) - local self = setmetatable({}, { - __index = WHOQuery - }) - self.query = query - self.filters = filters - return self - end + ---@param query string + ---@param filters WHOFilter[] + ---@return WHOQuery + new = function(query, filters) + local self = setmetatable({}, { + __index = WHOQuery, + }) + self.query = query + self.filters = filters + return self + end, } ---@alias WHOFilter fun(name: string, guild: string, level: number, race: string, class: string, zone: string): boolean ---@type WHOFilter local NotSiegeOfOrgrimmarFilter = function(name, guild, level, race, class, zone) - if not zone then - return false - end - return zone ~= "Siege of Orgrimmar" + if not zone then return false end + return zone ~= "Siege of Orgrimmar" end ---@type WHOFilter local AllianceFilter = function(name, guild, level, race, class, zone) - if not race then - return false - end - if not aura_env.raceMap[race] then - return false - end - return aura_env.raceMap[race] == "Alliance" + if not race then return false end + if not aura_env.raceMap[race] then return false end + return aura_env.raceMap[race] == "Alliance" end ---@class Message @@ -104,25 +92,27 @@ end ---@field channel string ---@field data string -if not WeakAurasSaved.Cyka.MessageQueue then - WeakAurasSaved.Cyka.MessageQueue = {} -end +if not WeakAurasSaved.Cyka.MessageQueue then WeakAurasSaved.Cyka.MessageQueue = {} end aura_env.whoQueryIdx = 1 ---@type table aura_env.whoQueries = {} -aura_env.whoQueries[1] = WHOQuery.new("g-\"БеспредеЛ\"", {}) +aura_env.whoQueries[1] = WHOQuery.new('g-"БеспредеЛ"', {}) aura_env.whoQueries[2] = WHOQuery.new( - "z-\"Orgrimmar\" z-\"Durotar\" z-\"Valley of Trials\" z-\"Echo Isles\" r-\"Human\" r-\"Dwarf\" r-\"Night Elf\"", - {NotSiegeOfOrgrimmarFilter, AllianceFilter}) + 'z-"Orgrimmar" z-"Durotar" z-"Valley of Trials" z-"Echo Isles" r-"Human" r-"Dwarf" r-"Night Elf"', + { NotSiegeOfOrgrimmarFilter, AllianceFilter } +) aura_env.whoQueries[3] = WHOQuery.new( - "z-\"Orgrimmar\" z-\"Durotar\" z-\"Valley of Trials\" z-\"Echo Isles\" r-\"Gnome\" r-\"Draenei\" r-\"Worgen\"", - {NotSiegeOfOrgrimmarFilter, AllianceFilter}) + 'z-"Orgrimmar" z-"Durotar" z-"Valley of Trials" z-"Echo Isles" r-"Gnome" r-"Draenei" r-"Worgen"', + { NotSiegeOfOrgrimmarFilter, AllianceFilter } +) aura_env.whoQueries[4] = WHOQuery.new( - "z-\"Orgrimmar\" z-\"Durotar\" z-\"Valley of Trials\" z-\"Echo Isles\" r-\"Kul Tiran\" r-\"Dark Iron Dwarf\" r-\"Void Elf\"", - {NotSiegeOfOrgrimmarFilter, AllianceFilter}) + 'z-"Orgrimmar" z-"Durotar" z-"Valley of Trials" z-"Echo Isles" r-"Kul Tiran" r-"Dark Iron Dwarf" r-"Void Elf"', + { NotSiegeOfOrgrimmarFilter, AllianceFilter } +) aura_env.whoQueries[5] = WHOQuery.new( - "z-\"Orgrimmar\" z-\"Durotar\" z-\"Valley of Trials\" z-\"Echo Isles\" r-\"Lightforged Draenei\" r-\"Mechagnome\"", - {NotSiegeOfOrgrimmarFilter, AllianceFilter}) + 'z-"Orgrimmar" z-"Durotar" z-"Valley of Trials" z-"Echo Isles" r-"Lightforged Draenei" r-"Mechagnome"', + { NotSiegeOfOrgrimmarFilter, AllianceFilter } +) aura_env.whoQueries[6] = WHOQuery.new("Kekv Demonboo Dotmada Firobot Verminal", {}) aura_env.queryPending = false aura_env.ttl = #aura_env.whoQueries * 2 @@ -130,27 +120,27 @@ aura_env.lastQuery = nil ---@type table aura_env.raceMap = { - ["Orc"] = "Horde", - ["Undead"] = "Horde", - ["Tauren"] = "Horde", - ["Troll"] = "Horde", - ["Blood Elf"] = "Horde", - ["Goblin"] = "Horde", - ["Human"] = "Alliance", - ["Dwarf"] = "Alliance", - ["Night Elf"] = "Alliance", - ["Gnome"] = "Alliance", - ["Draenei"] = "Alliance", - ["Worgen"] = "Alliance", - ["Vulpera"] = "Horde", - ["Nightborne"] = "Horde", - ["Zandalari Troll"] = "Horde", - ["Kul Tiran"] = "Alliance", - ["Dark Iron Dwarf"] = "Alliance", - ["Void Elf"] = "Alliance", - ["Lightforged Draenei"] = "Alliance", - ["Mechagnome"] = "Alliance", - ["Mag'har Orc"] = "Horde" + ["Orc"] = "Horde", + ["Undead"] = "Horde", + ["Tauren"] = "Horde", + ["Troll"] = "Horde", + ["Blood Elf"] = "Horde", + ["Goblin"] = "Horde", + ["Human"] = "Alliance", + ["Dwarf"] = "Alliance", + ["Night Elf"] = "Alliance", + ["Gnome"] = "Alliance", + ["Draenei"] = "Alliance", + ["Worgen"] = "Alliance", + ["Vulpera"] = "Horde", + ["Nightborne"] = "Horde", + ["Zandalari Troll"] = "Horde", + ["Kul Tiran"] = "Alliance", + ["Dark Iron Dwarf"] = "Alliance", + ["Void Elf"] = "Alliance", + ["Lightforged Draenei"] = "Alliance", + ["Mechagnome"] = "Alliance", + ["Mag'har Orc"] = "Horde", } ---@type table @@ -167,167 +157,169 @@ aura_env.stinkies = {} ---@field firstSeen string ---@field seenCount number Player = { - ---@param name string - ---@param guild string - ---@param race string - ---@param class string - ---@param zone string - ---@return Player - new = function(name, guild, race, class, zone) - local self = setmetatable({}, { - __index = Player - }) - self.name = name - self.guild = guild - self.race = race - self.class = class - self.zone = zone - self.lastSeenInternal = GetTime() - self.lastSeen = "never" - self.firstSeen = "never" - self.seenCount = 0 - return self - end, - ToString = function(self) - local out = string.format("%s %s %s\nFirst: %s Last: %s Seen: %3d", padString(self.name, 16, true), - padString(self.guild, 26, false), padString(self.zone, 26, false), padString(self.firstSeen, 10, true), - padString(self.lastSeen, 10, true), self.seenCount) - return string.format("|cFF%s%s|r", aura_env.classColors[self.class], out) - end + ---@param name string + ---@param guild string + ---@param race string + ---@param class string + ---@param zone string + ---@return Player + new = function(name, guild, race, class, zone) + local self = setmetatable({}, { + __index = Player, + }) + self.name = name + self.guild = guild + self.race = race + self.class = class + self.zone = zone + self.lastSeenInternal = GetTime() + self.lastSeen = "never" + self.firstSeen = "never" + self.seenCount = 0 + return self + end, + ToString = function(self) + local out = string.format( + "%s %s %s\nFirst: %s Last: %s Seen: %3d", + padString(self.name, 16, true), + padString(self.guild, 26, false), + padString(self.zone, 26, false), + padString(self.firstSeen, 10, true), + padString(self.lastSeen, 10, true), + self.seenCount + ) + return string.format("|cFF%s%s|r", aura_env.classColors[self.class], out) + end, } ---@type table aura_env.classColors = { - ["Warrior"] = "C69B6D", - ["Paladin"] = "F48CBA", - ["Hunter"] = "AAD372", - ["Rogue"] = "FFF468", - ["Priest"] = "FFFFFF", - ["Death Knight"] = "C41E3A", - ["Shaman"] = "0070DD", - ["Mage"] = "3FC7EB", - ["Warlock"] = "8788EE", - ["Monk"] = "00FF98", - ["Druid"] = "FF7C0A", - ["Demon Hunter"] = "A330C9" + ["Warrior"] = "C69B6D", + ["Paladin"] = "F48CBA", + ["Hunter"] = "AAD372", + ["Rogue"] = "FFF468", + ["Priest"] = "FFFFFF", + ["Death Knight"] = "C41E3A", + ["Shaman"] = "0070DD", + ["Mage"] = "3FC7EB", + ["Warlock"] = "8788EE", + ["Monk"] = "00FF98", + ["Druid"] = "FF7C0A", + ["Demon Hunter"] = "A330C9", } ---@param input string ---@param deliminer string ---@return string[], string|nil local function StrSplit(input, deliminer) - if not deliminer then - return {}, "deliminer is nil" - end - if not input then - return {}, "input is nil" - end - local parts = {} - for part in string.gmatch(input, "([^" .. deliminer .. "]+)") do - table.insert(parts, strtrim(part)) - end - return parts, nil + if not deliminer then return {}, "deliminer is nil" end + if not input then return {}, "input is nil" end + local parts = {} + for part in string.gmatch(input, "([^" .. deliminer .. "]+)") do + table.insert(parts, strtrim(part)) + end + return parts, nil end ---@type string[] local toNotify = StrSplit(aura_env.config.notify, ",") for i, part in ipairs(toNotify) do - toNotify[i] = strtrim(part) + toNotify[i] = strtrim(part) end ---@type table local notifyFor = {} local notifyForD = StrSplit(aura_env.config.notifyFor, ",") for i, part in ipairs(notifyForD) do - notifyFor[part] = true + notifyFor[part] = true end ---@param player Player ---@return string aura_env.MakeNotifyMessage = function(player) - return string.format("%s of class %s and guild %s in %s, first seen: %s, last seen: %s, times seen: %d", - player.name, player.class, player.guild, player.zone, player.firstSeen, player.lastSeen, player.seenCount) + return string.format( + "%s of class %s and guild %s in %s, first seen: %s, last seen: %s, times seen: %d", + player.name, + player.class, + player.guild, + player.zone, + player.firstSeen, + player.lastSeen, + player.seenCount + ) end ---@param msg string local NotifyAll = function(msg) - for _, rec in ipairs(toNotify) do - ---@type Message - local message = { - channel = "WHISPER", - data = rec, - message = msg - } - table.insert(WeakAurasSaved.Cyka.MessageQueue, message) - end + for _, rec in ipairs(toNotify) do + ---@type Message + local message = { + channel = "WHISPER", + data = rec, + message = msg, + } + table.insert(WeakAurasSaved.Cyka.MessageQueue, message) + end end ---@param msg string local NotifyChannel = function(msg) - local message = { - channel = "CHANNEL", - data = aura_env.config.channel, - message = msg - } - table.insert(WeakAurasSaved.Cyka.MessageQueue, message) + local message = { + channel = "CHANNEL", + data = aura_env.config.channel, + message = msg, + } + table.insert(WeakAurasSaved.Cyka.MessageQueue, message) end ---@param player Player ---@return nil aura_env.Notify = function(player) - if not notifyFor[player.zone] then - return - end - local msg = aura_env.MakeNotifyMessage(player) - NotifyAll(msg) - aura_env.NotifyChannel(player) + if not notifyFor[player.zone] then return end + local msg = aura_env.MakeNotifyMessage(player) + NotifyAll(msg) + aura_env.NotifyChannel(player) end ---@param player Player ---@param newzone string ---@return nil aura_env.NotifyZoneChanged = function(player, newzone) - if not notifyFor[newzone] then - return - end - local msg = string.format("%s of class %s and guild %s moved to %s", player.name, player.class, player.guild, - newzone) - NotifyAll(msg) - NotifyChannel(msg) + if not notifyFor[newzone] then return end + local msg = + string.format("%s of class %s and guild %s moved to %s", player.name, player.class, player.guild, newzone) + NotifyAll(msg) + NotifyChannel(msg) end ---@param player Player ---@return nil aura_env.NotifyGone = function(player) - if not notifyFor[player.zone] then - return - end - local msg = string.format("%s of class %s and guild %s left %s", player.name, player.class, player.guild, - player.zone) - NotifyAll(msg) - aura_env.NotifyChannelGone(player) + if not notifyFor[player.zone] then return end + local msg = + string.format("%s of class %s and guild %s left %s", player.name, player.class, player.guild, player.zone) + NotifyAll(msg) + aura_env.NotifyChannelGone(player) end ---@param player Player ---@return nil aura_env.NotifyChannel = function(player) - local msg = aura_env.MakeNotifyMessage(player) - NotifyChannel(msg) + local msg = aura_env.MakeNotifyMessage(player) + NotifyChannel(msg) end ---@param player Player ---@return nil aura_env.NotifyChannelGone = function(player) - local msg = string.format("%s of class %s and guild %s left %s", player.name, player.class, player.guild, - player.zone) - NotifyChannel(msg) + local msg = + string.format("%s of class %s and guild %s left %s", player.name, player.class, player.guild, player.zone) + NotifyChannel(msg) end -aura_env.GetChannelName= function(channelId) - local channels = {GetChannelList()} - for i = 1, #channels, 2 do - local id = channels[i] - local name = channels[i + 1] - if id == channelId then - return name - end - end - return nil -end \ No newline at end of file +aura_env.GetChannelName = function(channelId) + local channels = { GetChannelList() } + for i = 1, #channels, 2 do + local id = channels[i] + local name = channels[i + 1] + if id == channelId then return name end + end + return nil +end diff --git a/FreshShit/WhoSniffer/plan.lua b/FreshShit/WhoSniffer/plan.lua index 0603b69..ba03744 100644 --- a/FreshShit/WhoSniffer/plan.lua +++ b/FreshShit/WhoSniffer/plan.lua @@ -1,12 +1,12 @@ --Integrate into a channel instead of whispers --But probably also keep whispers, do both ---So for channel see +--So for channel see JoinPermanentChannel("foo") LeaveChannelByName("foo") --For existing channels see: -local foo = {GetChannelList()} +local foo = { GetChannelList() } --There is also: GetChannelName(0) @@ -35,4 +35,4 @@ ChannelUnmoderator("foobar", "Succpotato") --/pass foobar secret --Wiki: ---You can only be in ten chat channels at any given time. This does not include other chat types such as say, yell, party, raid, guild, officer, or whisper which are not considered channels. \ No newline at end of file +--You can only be in ten chat channels at any given time. This does not include other chat types such as say, yell, party, raid, guild, officer, or whisper which are not considered channels. diff --git a/FreshShit/_Shared/Colorer.lua b/FreshShit/_Shared/Colorer.lua index 96a7f78..30a7554 100644 --- a/FreshShit/_Shared/Colorer.lua +++ b/FreshShit/_Shared/Colorer.lua @@ -7,13 +7,13 @@ Colorer = { ---@type table colors = { { r = 0.62, g = 0.62, b = 0.62 }, -- Grey - { r = 1, g = 1, b = 1 }, -- White - { r = 0.12, g = 1, b = 0 }, -- Green - { r = 0, g = 0.44, b = 0.87 }, -- Blue + { r = 1, g = 1, b = 1 }, -- White + { r = 0.12, g = 1, b = 0 }, -- Green + { r = 0, g = 0.44, b = 0.87 }, -- Blue { r = 0.64, g = 0.21, b = 0.93 }, -- Purple - { r = 1, g = 0.5, b = 0 }, -- Orange - { r = 0.9, g = 0.8, b = 0.5 }, -- Light Gold - { r = 0, g = 0.8, b = 1.0 }, -- Blizzard Blue + { r = 1, g = 0.5, b = 0 }, -- Orange + { r = 0.9, g = 0.8, b = 0.5 }, -- Light Gold + { r = 0, g = 0.8, b = 1.0 }, -- Blizzard Blue }, breakpoints = { -999, -10, -5, -2, 2, 5, 10, 999 }, @@ -59,8 +59,6 @@ Colorer = { ---@param b number ---@param t number ---@return number - lerp = function(a, b, t) - return a * (1 - t) + b * t - end + lerp = function(a, b, t) return a * (1 - t) + b * t end, } -setmetatable(Colorer, { __index = Colorer }) \ No newline at end of file +setmetatable(Colorer, { __index = Colorer }) diff --git a/FreshShit/__Ascension/Cooldowner/init.lua b/FreshShit/__Ascension/Cooldowner/init.lua index 58a237d..9b1ef82 100644 --- a/FreshShit/__Ascension/Cooldowner/init.lua +++ b/FreshShit/__Ascension/Cooldowner/init.lua @@ -1,49 +1,55 @@ aura_env.keybind = "" aura_env.scanned = false aura_env.bars = { - "ElvUI_Bar1", "ElvUI_Bar2", "ElvUI_Bar3", "ElvUI_Bar4", "ElvUI_Bar5", - "ElvUI_Bar6", "ElvUI_Bar7", "ElvUI_Bar8", "ElvUI_Bar9", "ElvUI_Bar10" + "ElvUI_Bar1", + "ElvUI_Bar2", + "ElvUI_Bar3", + "ElvUI_Bar4", + "ElvUI_Bar5", + "ElvUI_Bar6", + "ElvUI_Bar7", + "ElvUI_Bar8", + "ElvUI_Bar9", + "ElvUI_Bar10", } aura_env.lookup = function() - local spellid = 0 - if not aura_env.states or aura_env.states == nil then - print("No states") - return - end + local spellid = 0 + if not aura_env.states or aura_env.states == nil then + print("No states") + return + end - local triggerInfo = aura_env.states[2] - if not triggerInfo then - triggerInfo = aura_env.states[1] - end - if triggerInfo then spellid = triggerInfo.trigger.spellName end - if spellid == 0 then return end + local triggerInfo = aura_env.states[2] + if not triggerInfo then triggerInfo = aura_env.states[1] end + if triggerInfo then spellid = triggerInfo.trigger.spellName end + if spellid == 0 then return end - for _, bar in pairs(aura_env.bars) do - for i = 1, 12 do - local button = _G[bar .. "Button" .. i] - local slot = button:GetAttribute("action") - if slot then - local type, _, _, id = GetActionInfo(slot) - if type == "spell" then - if id == spellid then - local bindid = button.keyBoundTarget - local keybind = GetBindingKey(bindid) - aura_env.keybind = keybind - break - end - end - end - end - end + for _, bar in pairs(aura_env.bars) do + for i = 1, 12 do + local button = _G[bar .. "Button" .. i] + local slot = button:GetAttribute("action") + if slot then + local type, _, _, id = GetActionInfo(slot) + if type == "spell" then + if id == spellid then + local bindid = button.keyBoundTarget + local keybind = GetBindingKey(bindid) + aura_env.keybind = keybind + break + end + end + end + end + end - if aura_env.keybind then - aura_env.keybind = string.gsub(aura_env.keybind, "BUTTON", "B") - aura_env.keybind = string.gsub(aura_env.keybind, "SHIFT%-", "S") - aura_env.keybind = string.gsub(aura_env.keybind, "CTRL%-", "C") - aura_env.keybind = string.gsub(aura_env.keybind, "ALT%-", "A") - aura_env.keybind = string.gsub(aura_env.keybind, "SPACE", "Spb") - end + if aura_env.keybind then + aura_env.keybind = string.gsub(aura_env.keybind, "BUTTON", "B") + aura_env.keybind = string.gsub(aura_env.keybind, "SHIFT%-", "S") + aura_env.keybind = string.gsub(aura_env.keybind, "CTRL%-", "C") + aura_env.keybind = string.gsub(aura_env.keybind, "ALT%-", "A") + aura_env.keybind = string.gsub(aura_env.keybind, "SPACE", "Spb") + end - aura_env.scanned = true + aura_env.scanned = true end diff --git a/FreshShit/__Ascension/TooltipItemInfo/init.lua b/FreshShit/__Ascension/TooltipItemInfo/init.lua index e2a1006..8611eef 100644 --- a/FreshShit/__Ascension/TooltipItemInfo/init.lua +++ b/FreshShit/__Ascension/TooltipItemInfo/init.lua @@ -1,21 +1,21 @@ if not _G.tooltipItemInfoHooked then - local function iteminfo(self, bag, slot) - local itemLink = GetContainerItemLink(bag, slot) - if itemLink then - local _, _, _, ilvl, reqLevel, class, subclass, maxStack, equipSlot = GetItemInfo(itemLink) - self:AddLine("") - self:AddLine("Req Level: " .. reqLevel) - self:AddLine("Item Level: " .. ilvl) - self:AddLine("Class: " .. class) - self:AddLine("Subclass: " .. subclass) - self:AddLine("Max Stack: " .. maxStack) - self:AddLine("Equip Slot: " .. equipSlot) - end - self:Show() - end + local function iteminfo(self, bag, slot) + local itemLink = GetContainerItemLink(bag, slot) + if itemLink then + local _, _, _, ilvl, reqLevel, class, subclass, maxStack, equipSlot = GetItemInfo(itemLink) + self:AddLine("") + self:AddLine("Req Level: " .. reqLevel) + self:AddLine("Item Level: " .. ilvl) + self:AddLine("Class: " .. class) + self:AddLine("Subclass: " .. subclass) + self:AddLine("Max Stack: " .. maxStack) + self:AddLine("Equip Slot: " .. equipSlot) + end + self:Show() + end - -- hooksecurefunc(GameTooltip, "SetInventoryItem", iteminfo) - hooksecurefunc(GameTooltip, "SetBagItem", iteminfo) + -- hooksecurefunc(GameTooltip, "SetInventoryItem", iteminfo) + hooksecurefunc(GameTooltip, "SetBagItem", iteminfo) - _G.tooltipItemInfoHooked = true + _G.tooltipItemInfoHooked = true end diff --git a/FreshShit/__Ascension/TotemTicker/init.lua b/FreshShit/__Ascension/TotemTicker/init.lua index eb50d02..fcfb800 100644 --- a/FreshShit/__Ascension/TotemTicker/init.lua +++ b/FreshShit/__Ascension/TotemTicker/init.lua @@ -1,2 +1,2 @@ aura_env.alive = false -aura_env.totem = aura_env.config.totem or "Tremor Totem" \ No newline at end of file +aura_env.totem = aura_env.config.totem or "Tremor Totem" diff --git a/NewAge b/NewAge index 37df5a0..3fa9e6c 160000 --- a/NewAge +++ b/NewAge @@ -1 +1 @@ -Subproject commit 37df5a06107bfd0bfbfbb1a0f2a63eb1c8d4319c +Subproject commit 3fa9e6c087bbbed3439c83153d42ff834efcb0ee diff --git a/Random Trash/Hashing/1.lua b/Random Trash/Hashing/1.lua index 4a23680..365f6db 100644 --- a/Random Trash/Hashing/1.lua +++ b/Random Trash/Hashing/1.lua @@ -1,6 +1,60 @@ -local cc = -{ - "Gnaw", "Hungering Cold", "Bash", "Cyclone", "Entangling Roots", "Hibernate", "Maim", "Pounce", "Entrapment", "Freezing Trap", "Pin", "Scare Beast", "Scatter Shot", "Intimidation", "Ravage", "Sonic Blast", "Wyvern Sting", "Deep Freeze", "Dragon's Breath", "Frost Nova", "Polymorph", "Shattered Barrier", "Slow", "Frostbolt", "Hammer of Justice", "Holy Wrath", "Repentance", "Seal of Justice", "Turn Evil", "Mind Control", "Psychic Horror", "Psychic Scream", "Shackle Undead", "Holy Word: Chastise", "Sin and Punishment", "Blind", "Cheap Shot", "Gouge", "Kidney Shot", "Sap", "Earthbind Totem", "Stoneclaw Totem", "Hex", "Banish", "Death Coil", "Fear", "Howl of Terror", "Intercept", "Seduction", "Shadowfury", "Charge", "Concussion Blow", "Hamstring", "Improved Hamstring", "Intimidating Shout", "Shockwave" +local cc = { + "Gnaw", + "Hungering Cold", + "Bash", + "Cyclone", + "Entangling Roots", + "Hibernate", + "Maim", + "Pounce", + "Entrapment", + "Freezing Trap", + "Pin", + "Scare Beast", + "Scatter Shot", + "Intimidation", + "Ravage", + "Sonic Blast", + "Wyvern Sting", + "Deep Freeze", + "Dragon's Breath", + "Frost Nova", + "Polymorph", + "Shattered Barrier", + "Slow", + "Frostbolt", + "Hammer of Justice", + "Holy Wrath", + "Repentance", + "Seal of Justice", + "Turn Evil", + "Mind Control", + "Psychic Horror", + "Psychic Scream", + "Shackle Undead", + "Holy Word: Chastise", + "Sin and Punishment", + "Blind", + "Cheap Shot", + "Gouge", + "Kidney Shot", + "Sap", + "Earthbind Totem", + "Stoneclaw Totem", + "Hex", + "Banish", + "Death Coil", + "Fear", + "Howl of Terror", + "Intercept", + "Seduction", + "Shadowfury", + "Charge", + "Concussion Blow", + "Hamstring", + "Improved Hamstring", + "Intimidating Shout", + "Shockwave", } local hashtable = {} local spellarray = {} @@ -78,7 +132,7 @@ end local function findcollision(hash_table, array) local collisions = 0 - for k,v in ipairs(hash_table) do + for k, v in ipairs(hash_table) do for i = 1, table.getn(hash_table) do if i ~= k then if hash_table[i] == hash_table[k] then @@ -98,7 +152,7 @@ local function tohash(tempvar) charTable[#charTable + 1] = char hash = hash + tonum(char) hash = hash / table.getn(charTable) - end + end hash = math.floor(hash * 10000) return hash --print(spellarray[hash], hash) @@ -109,9 +163,9 @@ local function checkbase(spell) if spellarray[tohash(spell)] == spell then return 1 end end -for k,v in ipairs(cc) do +for k, v in ipairs(cc) do local hash = tohash(v) hashtable[#hashtable] = hash spellarray[hash] = v end -findcollision(hashtable, cc) \ No newline at end of file +findcollision(hashtable, cc) diff --git a/Random Trash/TomTom/2.lua b/Random Trash/TomTom/2.lua index eb0b5c5..4937ff0 100644 --- a/Random Trash/TomTom/2.lua +++ b/Random Trash/TomTom/2.lua @@ -1,51 +1,46 @@ -- TODO: Make this not suck function TomTom:AddWaypoint(x, y, desc, persistent, minimap, world, silent) - local c,z = GetCurrentMapContinent(), GetCurrentMapZone() + local c, z = GetCurrentMapContinent(), GetCurrentMapZone() - if not c or not z or c < 1 then - --self:Print("Cannot find a valid zone to place the coordinates") - return - end + if not c or not z or c < 1 then + --self:Print("Cannot find a valid zone to place the coordinates") + return + end - return self:AddZWaypoint(c, z, x, y, desc, persistent, minimap, world, nil, silent) + return self:AddZWaypoint(c, z, x, y, desc, persistent, minimap, world, nil, silent) end function TomTom:AddZWaypoint(c, z, x, y, desc, persistent, minimap, world, callbacks, silent, crazy) - -- Convert the c,z,x,y tuple to m,f,x,y and pass the work off to AddMFWaypoint() - local mapId, floor = hbd:GetMapIDFromCZ(c, z) - if not mapId then - return - end + -- Convert the c,z,x,y tuple to m,f,x,y and pass the work off to AddMFWaypoint() + local mapId, floor = hbd:GetMapIDFromCZ(c, z) + if not mapId then return end - return self:AddMFWaypoint(mapId, floor, x/100, y/100, { - title = desc, - persistent = persistent, - minimap = minimap, - world = world, - callbacks = callbacks, - silent = silent, - crazy = crazy, - }) + return self:AddMFWaypoint(mapId, floor, x / 100, y / 100, { + title = desc, + persistent = persistent, + minimap = minimap, + world = world, + callbacks = callbacks, + silent = silent, + crazy = crazy, + }) end function TomTom:AddWaypointToCurrentZone(x, y, desc) - local m, f = TomTom:GetCurrentPlayerPosition() - if not m then - return - end + local m, f = TomTom:GetCurrentPlayerPosition() + if not m then return end - return self:AddMFWaypoint(m, f, x/100, y/100, { - title = desc, - }) + return self:AddMFWaypoint(m, f, x / 100, y / 100, { + title = desc, + }) end -function TomTom:SetCustomWaypoint(c,z,x,y,callback,minimap,world,silent) - return self:AddZWaypoint(c, z, x, y, nil, false, minimap, world, callback, silent) +function TomTom:SetCustomWaypoint(c, z, x, y, callback, minimap, world, silent) + return self:AddZWaypoint(c, z, x, y, nil, false, minimap, world, callback, silent) end - function TomTom:SetCustomMFWaypoint(m, f, x, y, opts) - opts.persistent = false + opts.persistent = false - return self:AddMFWaypoint(m, f, x, y, opts) -end \ No newline at end of file + return self:AddMFWaypoint(m, f, x, y, opts) +end diff --git a/Random Trash/TomTom/3.lua b/Random Trash/TomTom/3.lua index bacbadf..9e0b7f3 100644 --- a/Random Trash/TomTom/3.lua +++ b/Random Trash/TomTom/3.lua @@ -2,67 +2,57 @@ function TomTom:AddMFWaypoint(m, f, x, y, opts) opts = opts or {} -- Default values - if opts.persistent == nil then opts.persistent = self.profile.persistence.savewaypoints end - if opts.minimap == nil then opts.minimap = self.profile.minimap.enable end - if opts.world == nil then opts.world = self.profile.worldmap.enable end - if opts.crazy == nil then opts.crazy = self.profile.arrow.autoqueue end + if opts.persistent == nil then opts.persistent = self.profile.persistence.savewaypoints end + if opts.minimap == nil then opts.minimap = self.profile.minimap.enable end + if opts.world == nil then opts.world = self.profile.worldmap.enable end + if opts.crazy == nil then opts.crazy = self.profile.arrow.autoqueue end if opts.cleardistance == nil then opts.cleardistance = self.profile.persistence.cleardistance end if opts.arrivaldistance == nil then opts.arrivaldistance = self.profile.arrow.arrival end - if not opts.callbacks then - opts.callbacks = TomTom:DefaultCallbacks(opts) + if not opts.callbacks then opts.callbacks = TomTom:DefaultCallbacks(opts) end + + local zoneName = hbd:GetLocalizedMap(m) + + -- Get the default map floor, if necessary + if not f then + local floors = hbd:GetNumFloors(m) + f = floors == 0 and 0 or 1 end - local zoneName = hbd:GetLocalizedMap(m) + -- Ensure there isn't already a waypoint at this location + local key = self:GetKey({ m, f, x, y, title = opts.title }) + if waypoints[m] and waypoints[m][key] then return waypoints[m][key] end - -- Get the default map floor, if necessary - if not f then - local floors = hbd:GetNumFloors(m) - f = floors == 0 and 0 or 1 - end + -- uid is the 'new waypoint' called this for historical reasons + local uid = { m, f, x, y, title = opts.title } - -- Ensure there isn't already a waypoint at this location - local key = self:GetKey({m, f, x, y, title = opts.title}) - if waypoints[m] and waypoints[m][key] then - return waypoints[m][key] - end + -- Copy over any options, so we have em + for k, v in pairs(opts) do + if not uid[k] then uid[k] = v end + end - -- uid is the 'new waypoint' called this for historical reasons - local uid = {m, f, x, y, title = opts.title} + -- No need to convert x and y because they're already 0-1 instead of 0-100 + self:SetWaypoint(uid, opts.callbacks, opts.minimap, opts.world) + if opts.crazy then self:SetCrazyArrow(uid, opts.arrivaldistance, opts.title) end - -- Copy over any options, so we have em - for k,v in pairs(opts) do - if not uid[k] then - uid[k] = v - end - end + waypoints[m] = waypoints[m] or {} + waypoints[m][key] = uid - -- No need to convert x and y because they're already 0-1 instead of 0-100 - self:SetWaypoint(uid, opts.callbacks, opts.minimap, opts.world) - if opts.crazy then - self:SetCrazyArrow(uid, opts.arrivaldistance, opts.title) - end + -- If this is a persistent waypoint, then add it to the waypoints table + if opts.persistent then self.waypointprofile[m][key] = uid end - waypoints[m] = waypoints[m] or {} - waypoints[m][key] = uid - - -- If this is a persistent waypoint, then add it to the waypoints table - if opts.persistent then - self.waypointprofile[m][key] = uid - end - - if not opts.silent and self.profile.general.announce then - local ctxt = RoundCoords(x, y, 2) - local desc = opts.title and opts.title or "" - local sep = opts.title and " - " or "" - local msg = string.format(L["|cffffff78TomTom:|r Added a waypoint (%s%s%s) in %s"], desc, sep, ctxt, zoneName) - ChatFrame1:AddMessage(msg) - end - return uid + if not opts.silent and self.profile.general.announce then + local ctxt = RoundCoords(x, y, 2) + local desc = opts.title and opts.title or "" + local sep = opts.title and " - " or "" + local msg = string.format(L["|cffffff78TomTom:|r Added a waypoint (%s%s%s) in %s"], desc, sep, ctxt, zoneName) + ChatFrame1:AddMessage(msg) + end + return uid end local coord_fmt = "%%.%df, %%.%df" -function RoundCoords(x,y,prec) - local fmt = coord_fmt:format(prec, prec) - return fmt:format(x*100, y*100) -end \ No newline at end of file +function RoundCoords(x, y, prec) + local fmt = coord_fmt:format(prec, prec) + return fmt:format(x * 100, y * 100) +end diff --git a/Random Trash/TomTom/TomTom.lua b/Random Trash/TomTom/TomTom.lua index 61c434e..ff04df5 100644 --- a/Random Trash/TomTom/TomTom.lua +++ b/Random Trash/TomTom/TomTom.lua @@ -17,174 +17,170 @@ addon.hbd = hbd -- Local definitions local GetCurrentCursorPosition local WorldMap_OnUpdate -local Block_OnClick,Block_OnUpdate,Block_OnEnter,Block_OnLeave -local Block_OnDragStart,Block_OnDragStop +local Block_OnClick, Block_OnUpdate, Block_OnEnter, Block_OnLeave +local Block_OnDragStart, Block_OnDragStop local callbackTbl local RoundCoords local waypoints = {} function TomTom:Initialize(event, addon) - self.defaults = { - profile = { - general = { - confirmremoveall = true, - announce = false, - corpse_arrow = true, - }, - block = { - enable = true, - accuracy = 2, - bordercolor = {1, 0.8, 0, 0.8}, - bgcolor = {0, 0, 0, 0.4}, - lock = false, - height = 30, - width = 100, - fontsize = 12, - throttle = 0.2, - }, - mapcoords = { - playerenable = true, - playeraccuracy = 2, - cursorenable = true, - cursoraccuracy = 2, + self.defaults = { + profile = { + general = { + confirmremoveall = true, + announce = false, + corpse_arrow = true, + }, + block = { + enable = true, + accuracy = 2, + bordercolor = { 1, 0.8, 0, 0.8 }, + bgcolor = { 0, 0, 0, 0.4 }, + lock = false, + height = 30, + width = 100, + fontsize = 12, + throttle = 0.2, + }, + mapcoords = { + playerenable = true, + playeraccuracy = 2, + cursorenable = true, + cursoraccuracy = 2, throttle = 0.1, - }, - arrow = { - enable = true, - goodcolor = {0, 1, 0}, - badcolor = {1, 0, 0}, - middlecolor = {1, 1, 0}, - exactcolor = {0, 1, 0}, - arrival = 15, - lock = false, - noclick = false, - showtta = true, + }, + arrow = { + enable = true, + goodcolor = { 0, 1, 0 }, + badcolor = { 1, 0, 0 }, + middlecolor = { 1, 1, 0 }, + exactcolor = { 0, 1, 0 }, + arrival = 15, + lock = false, + noclick = false, + showtta = true, showdistance = true, stickycorpse = false, - autoqueue = true, - menu = true, - scale = 1.0, - alpha = 1.0, - title_width = 0, - title_height = 0, - title_scale = 1, - title_alpha = 1, - setclosest = true, + autoqueue = true, + menu = true, + scale = 1.0, + alpha = 1.0, + title_width = 0, + title_height = 0, + title_scale = 1, + title_alpha = 1, + setclosest = true, closestusecontinent = false, - enablePing = false, + enablePing = false, hideDuringPetBattles = true, - }, - minimap = { - enable = true, - otherzone = true, - tooltip = true, - menu = true, - }, - worldmap = { - enable = true, - tooltip = true, - otherzone = true, - clickcreate = true, - menu = true, - create_modifier = "C", - }, - comm = { - enable = true, - prompt = false, - }, - persistence = { - cleardistance = 10, - savewaypoints = true, - }, - feeds = { - coords = false, - coords_throttle = 0.3, - coords_accuracy = 2, - arrow = false, - arrow_throttle = 0.1, - }, - poi = { - enable = true, - modifier = "C", - setClosest = false, - arrival = 0, - }, - }, - } + }, + minimap = { + enable = true, + otherzone = true, + tooltip = true, + menu = true, + }, + worldmap = { + enable = true, + tooltip = true, + otherzone = true, + clickcreate = true, + menu = true, + create_modifier = "C", + }, + comm = { + enable = true, + prompt = false, + }, + persistence = { + cleardistance = 10, + savewaypoints = true, + }, + feeds = { + coords = false, + coords_throttle = 0.3, + coords_accuracy = 2, + arrow = false, + arrow_throttle = 0.1, + }, + poi = { + enable = true, + modifier = "C", + setClosest = false, + arrival = 0, + }, + }, + } - self.waydefaults = { - global = { - converted = { - ["*"] = {}, - }, - }, - profile = { - ["*"] = {}, - }, - } + self.waydefaults = { + global = { + converted = { + ["*"] = {}, + }, + }, + profile = { + ["*"] = {}, + }, + } - self.db = LibStub("AceDB-3.0"):New("TomTomDB", self.defaults, "Default") - self.waydb = LibStub("AceDB-3.0"):New("TomTomWaypointsMF", self.waydefaults) + self.db = LibStub("AceDB-3.0"):New("TomTomDB", self.defaults, "Default") + self.waydb = LibStub("AceDB-3.0"):New("TomTomWaypointsMF", self.waydefaults) - self.db.RegisterCallback(self, "OnProfileChanged", "ReloadOptions") - self.db.RegisterCallback(self, "OnProfileCopied", "ReloadOptions") - self.db.RegisterCallback(self, "OnProfileReset", "ReloadOptions") - self.waydb.RegisterCallback(self, "OnProfileChanged", "ReloadWaypoints") - self.waydb.RegisterCallback(self, "OnProfileCopied", "ReloadWaypoints") - self.waydb.RegisterCallback(self, "OnProfileReset", "ReloadWaypoints") + self.db.RegisterCallback(self, "OnProfileChanged", "ReloadOptions") + self.db.RegisterCallback(self, "OnProfileCopied", "ReloadOptions") + self.db.RegisterCallback(self, "OnProfileReset", "ReloadOptions") + self.waydb.RegisterCallback(self, "OnProfileChanged", "ReloadWaypoints") + self.waydb.RegisterCallback(self, "OnProfileCopied", "ReloadWaypoints") + self.waydb.RegisterCallback(self, "OnProfileReset", "ReloadWaypoints") - self.tooltip = CreateFrame("GameTooltip", "TomTomTooltip", nil, "GameTooltipTemplate") - self.tooltip:SetFrameStrata("DIALOG") + self.tooltip = CreateFrame("GameTooltip", "TomTomTooltip", nil, "GameTooltipTemplate") + self.tooltip:SetFrameStrata("DIALOG") - self.dropdown = CreateFrame("Frame", "TomTomDropdown", nil, "UIDropDownMenuTemplate") + self.dropdown = CreateFrame("Frame", "TomTomDropdown", nil, "UIDropDownMenuTemplate") - -- Both the waypoints and waypointprofile tables are going to contain subtables for each - -- of the mapids that might exist. Under these will be a hash of key/waypoint pairs consisting - -- of the waypoints for the given map file. - self.waypoints = waypoints - self.waypointprofile = self.waydb.profile + -- Both the waypoints and waypointprofile tables are going to contain subtables for each + -- of the mapids that might exist. Under these will be a hash of key/waypoint pairs consisting + -- of the waypoints for the given map file. + self.waypoints = waypoints + self.waypointprofile = self.waydb.profile - self:RegisterEvent("PLAYER_LEAVING_WORLD") - self:RegisterEvent("CHAT_MSG_ADDON") + self:RegisterEvent("PLAYER_LEAVING_WORLD") + self:RegisterEvent("CHAT_MSG_ADDON") RegisterAddonMessagePrefix("TOMTOM3") -- Watch for pet battle start/end so we can hide/show the arrow self:RegisterEvent("PET_BATTLE_OPENING_START", "ShowHideCrazyArrow") self:RegisterEvent("PET_BATTLE_CLOSE", "ShowHideCrazyArrow") - self:ReloadOptions() - self:ReloadWaypoints() + self:ReloadOptions() + self:ReloadWaypoints() - if self.db.profile.feeds.coords then - -- Create a data feed for coordinates - local feed_coords = ldb:NewDataObject("TomTom_Coords", { - type = "data source", - icon = "Interface\\Icons\\INV_Misc_Map_01", - text = "", - }) + if self.db.profile.feeds.coords then + -- Create a data feed for coordinates + local feed_coords = ldb:NewDataObject("TomTom_Coords", { + type = "data source", + icon = "Interface\\Icons\\INV_Misc_Map_01", + text = "", + }) - local coordFeedFrame = CreateFrame("Frame") - local throttle, counter = self.db.profile.feeds.coords_throttle, 0 - function TomTom:_privateupdatecoordthrottle(x) - throttle = x - end + local coordFeedFrame = CreateFrame("Frame") + local throttle, counter = self.db.profile.feeds.coords_throttle, 0 + function TomTom:_privateupdatecoordthrottle(x) throttle = x end - coordFeedFrame:SetScript("OnUpdate", function(self, elapsed) - counter = counter + elapsed - if counter < throttle then - return - end + coordFeedFrame:SetScript("OnUpdate", function(self, elapsed) + counter = counter + elapsed + if counter < throttle then return end - counter = 0 - local m, f, x, y = TomTom:GetCurrentPlayerPosition() + counter = 0 + local m, f, x, y = TomTom:GetCurrentPlayerPosition() - if x and y then - local opt = TomTom.db.profile.feeds - feed_coords.text = string.format("%s", RoundCoords(x, y, opt.coords_accuracy)) - end - end) - end + if x and y then + local opt = TomTom.db.profile.feeds + feed_coords.text = string.format("%s", RoundCoords(x, y, opt.coords_accuracy)) + end + end) + end end -- Some utility functions that can pack/unpack data from a waypoint @@ -193,21 +189,21 @@ end -- map, floor, x, y and the waypoints title. This isn't truly -- unique, but should be close enough to determine duplicates, etc. function TomTom:GetKey(waypoint) - local m,f,x,y = unpack(waypoint) - return self:GetKeyArgs(m, f, x, y, waypoint.title) + local m, f, x, y = unpack(waypoint) + return self:GetKeyArgs(m, f, x, y, waypoint.title) end function TomTom:GetKeyArgs(m, f, x, y, title) - if not f then - local floors = hbd:GetNumFloors(m) - f = floors == 0 and 0 or 1 - end + if not f then + local floors = hbd:GetNumFloors(m) + f = floors == 0 and 0 or 1 + end -- Fudge the x/y values so they avoid precision/printf issues local x = x * 10000 local y = y * 10000 - local key = string.format("%d:%d:%s:%s:%s", m, f, x*10e4, y*10e4, tostring(title)) + local key = string.format("%d:%d:%s:%s:%s", m, f, x * 10e4, y * 10e4, tostring(title)) return key end @@ -216,41 +212,39 @@ end -- weird if you zoom the map out to your parent, but there is no way to -- recover this without changing/setting the map zoom. Deal with it =) function TomTom:GetCurrentCoords() - local x, y = GetPlayerMapPosition("player"); - if x and y and x > 0 and y > 0 then - return x, y - end + local x, y = GetPlayerMapPosition("player") + if x and y and x > 0 and y > 0 then return x, y end end function TomTom:GetCurrentPlayerPosition() - local x, y, mapID, mapFloor = hbd:GetPlayerZonePosition() - return mapID, mapFloor, x, y + local x, y, mapID, mapFloor = hbd:GetPlayerZonePosition() + return mapID, mapFloor, x, y end function TomTom:ReloadOptions() - -- This handles the reloading of all options - self.profile = self.db.profile + -- This handles the reloading of all options + self.profile = self.db.profile - self:ShowHideWorldCoords() - self:ShowHideCoordBlock() - self:ShowHideCrazyArrow() - self:EnableDisablePOIIntegration() + self:ShowHideWorldCoords() + self:ShowHideCoordBlock() + self:ShowHideCrazyArrow() + self:EnableDisablePOIIntegration() end function TomTom:ClearAllWaypoints() - for mapId, entries in pairs(waypoints) do - for key, waypoint in pairs(entries) do - -- The waypoint IS the UID now - self:ClearWaypoint(waypoint) - end - end + for mapId, entries in pairs(waypoints) do + for key, waypoint in pairs(entries) do + -- The waypoint IS the UID now + self:ClearWaypoint(waypoint) + end + end end function TomTom:ResetWaypointOptions() local minimap = self.profile.minimap.enable local world = self.profile.worldmap.enable - local cleardistance = self.profile.persistence.cleardistance - local arrivaldistance = self.profile.arrow.arrival + local cleardistance = self.profile.persistence.cleardistance + local arrivaldistance = self.profile.arrow.arrival for map, data in pairs(self.waypointprofile) do for key, waypoint in pairs(data) do @@ -263,21 +257,21 @@ function TomTom:ResetWaypointOptions() end function TomTom:ReloadWaypoints() - self:ClearAllWaypoints() + self:ClearAllWaypoints() - waypoints = {} - self.waypoints = waypoints - self.waypointprofile = self.waydb.profile + waypoints = {} + self.waypoints = waypoints + self.waypointprofile = self.waydb.profile - local cm, cf, cx, cy = TomTom:GetCurrentPlayerPosition() + local cm, cf, cx, cy = TomTom:GetCurrentPlayerPosition() - for mapId,data in pairs(self.waypointprofile) do - local same = mapId == cm - local minimap = self.profile.minimap.enable and (self.profile.minimap.otherzone or same) - local world = self.profile.worldmap.enable and (self.profile.worldmap.otherzone or same) - for key,waypoint in pairs(data) do - local m,f,x,y = unpack(waypoint) - local title = waypoint.title + for mapId, data in pairs(self.waypointprofile) do + local same = mapId == cm + local minimap = self.profile.minimap.enable and (self.profile.minimap.otherzone or same) + local world = self.profile.worldmap.enable and (self.profile.worldmap.otherzone or same) + for key, waypoint in pairs(data) do + local m, f, x, y = unpack(waypoint) + local title = waypoint.title -- Set up default options local options = { @@ -291,7 +285,7 @@ function TomTom:ReloadWaypoints() } -- Override options with what is stored in the profile - for k,v in pairs(waypoint) do + for k, v in pairs(waypoint) do if type(k) == "string" then if k ~= "callbacks" then -- we can never import callbacks, so ditch them @@ -300,538 +294,501 @@ function TomTom:ReloadWaypoints() end end - self:AddMFWaypoint(m, f, x, y, options) - end - end + self:AddMFWaypoint(m, f, x, y, options) + end + end end -function TomTom:UpdateCoordFeedThrottle() - self:_privateupdatecoordthrottle(self.db.profile.feeds.coords_throttle) -end +function TomTom:UpdateCoordFeedThrottle() self:_privateupdatecoordthrottle(self.db.profile.feeds.coords_throttle) end -- Hook some global functions so we know when the world map size changes -local mapSizedUp = not (WORLDMAP_SETTINGS.size == WORLDMAP_WINDOWED_SIZE); +local mapSizedUp = not (WORLDMAP_SETTINGS.size == WORLDMAP_WINDOWED_SIZE) hooksecurefunc("WorldMap_ToggleSizeUp", function() - mapSizedUp = true - TomTom:ShowHideWorldCoords() + mapSizedUp = true + TomTom:ShowHideWorldCoords() end) hooksecurefunc("WorldMap_ToggleSizeDown", function() - mapSizedUp = false - TomTom:ShowHideWorldCoords() + mapSizedUp = false + TomTom:ShowHideWorldCoords() end) function TomTom:ShowHideWorldCoords() - -- Bail out if we're not supposed to be showing this frame - if self.profile.mapcoords.playerenable or self.db.profile.mapcoords.cursorenable then - -- Create the frame if it doesn't exist - if not TomTomWorldFrame then - TomTomWorldFrame = CreateFrame("Frame", nil, WorldMapFrame) - TomTomWorldFrame.Player = TomTomWorldFrame:CreateFontString(nil, "OVERLAY", "GameFontHighlightSmall") - TomTomWorldFrame.Cursor = TomTomWorldFrame:CreateFontString(nil, "OVERLAY", "GameFontHighlightSmall") - TomTomWorldFrame:SetScript("OnUpdate", WorldMap_OnUpdate) - end + -- Bail out if we're not supposed to be showing this frame + if self.profile.mapcoords.playerenable or self.db.profile.mapcoords.cursorenable then + -- Create the frame if it doesn't exist + if not TomTomWorldFrame then + TomTomWorldFrame = CreateFrame("Frame", nil, WorldMapFrame) + TomTomWorldFrame.Player = TomTomWorldFrame:CreateFontString(nil, "OVERLAY", "GameFontHighlightSmall") + TomTomWorldFrame.Cursor = TomTomWorldFrame:CreateFontString(nil, "OVERLAY", "GameFontHighlightSmall") + TomTomWorldFrame:SetScript("OnUpdate", WorldMap_OnUpdate) + end - TomTomWorldFrame.Player:ClearAllPoints() - TomTomWorldFrame.Cursor:ClearAllPoints() + TomTomWorldFrame.Player:ClearAllPoints() + TomTomWorldFrame.Cursor:ClearAllPoints() - if mapSizedUp then - TomTomWorldFrame.Player:SetPoint("TOPLEFT", WorldMapFrame.BorderFrame, "TOPLEFT", 30, -6) - TomTomWorldFrame.Cursor:SetPoint("TOPLEFT", WorldMapFrame.BorderFrame, "TOPRIGHT", -170, -6) - else - TomTomWorldFrame.Player:SetPoint("TOPLEFT", WorldMapFrame.BorderFrame, "TOPLEFT", 100, -6) - TomTomWorldFrame.Cursor:SetPoint("TOPLEFT", WorldMapFrame.BorderFrame, "TOPRIGHT", -170, -6) - end + if mapSizedUp then + TomTomWorldFrame.Player:SetPoint("TOPLEFT", WorldMapFrame.BorderFrame, "TOPLEFT", 30, -6) + TomTomWorldFrame.Cursor:SetPoint("TOPLEFT", WorldMapFrame.BorderFrame, "TOPRIGHT", -170, -6) + else + TomTomWorldFrame.Player:SetPoint("TOPLEFT", WorldMapFrame.BorderFrame, "TOPLEFT", 100, -6) + TomTomWorldFrame.Cursor:SetPoint("TOPLEFT", WorldMapFrame.BorderFrame, "TOPRIGHT", -170, -6) + end - TomTomWorldFrame.Player:Hide() - TomTomWorldFrame.Cursor:Hide() + TomTomWorldFrame.Player:Hide() + TomTomWorldFrame.Cursor:Hide() - if self.profile.mapcoords.playerenable then - TomTomWorldFrame.Player:Show() - end + if self.profile.mapcoords.playerenable then TomTomWorldFrame.Player:Show() end - if self.profile.mapcoords.cursorenable then - TomTomWorldFrame.Cursor:Show() - end + if self.profile.mapcoords.cursorenable then TomTomWorldFrame.Cursor:Show() end - -- Show the frame - TomTomWorldFrame:Show() - elseif TomTomWorldFrame then - TomTomWorldFrame:Hide() - end + -- Show the frame + TomTomWorldFrame:Show() + elseif TomTomWorldFrame then + TomTomWorldFrame:Hide() + end end function TomTom:ShowHideCoordBlock() - -- Bail out if we're not supposed to be showing this frame - if self.profile.block.enable then - -- Create the frame if it doesn't exist - if not TomTomBlock then - -- Create the coordinate display - TomTomBlock = CreateFrame("Button", "TomTomBlock", UIParent) - TomTomBlock:SetWidth(120) - TomTomBlock:SetHeight(32) - TomTomBlock:SetToplevel(1) - TomTomBlock:SetFrameStrata("LOW") - TomTomBlock:SetMovable(true) - TomTomBlock:EnableMouse(true) - TomTomBlock:SetClampedToScreen() - TomTomBlock:RegisterForDrag("LeftButton") - TomTomBlock:RegisterForClicks("RightButtonUp") - TomTomBlock:SetPoint("TOP", Minimap, "BOTTOM", -20, -10) + -- Bail out if we're not supposed to be showing this frame + if self.profile.block.enable then + -- Create the frame if it doesn't exist + if not TomTomBlock then + -- Create the coordinate display + TomTomBlock = CreateFrame("Button", "TomTomBlock", UIParent) + TomTomBlock:SetWidth(120) + TomTomBlock:SetHeight(32) + TomTomBlock:SetToplevel(1) + TomTomBlock:SetFrameStrata("LOW") + TomTomBlock:SetMovable(true) + TomTomBlock:EnableMouse(true) + TomTomBlock:SetClampedToScreen() + TomTomBlock:RegisterForDrag("LeftButton") + TomTomBlock:RegisterForClicks("RightButtonUp") + TomTomBlock:SetPoint("TOP", Minimap, "BOTTOM", -20, -10) - TomTomBlock.Text = TomTomBlock:CreateFontString(nil, "OVERLAY", "GameFontNormal") - TomTomBlock.Text:SetJustifyH("CENTER") - TomTomBlock.Text:SetPoint("CENTER", 0, 0) + TomTomBlock.Text = TomTomBlock:CreateFontString(nil, "OVERLAY", "GameFontNormal") + TomTomBlock.Text:SetJustifyH("CENTER") + TomTomBlock.Text:SetPoint("CENTER", 0, 0) - TomTomBlock:SetBackdrop({ - bgFile = "Interface\\ChatFrame\\ChatFrameBackground", - edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", - edgeSize = 16, - insets = {left = 4, right = 4, top = 4, bottom = 4}, - }) - TomTomBlock:SetBackdropColor(0,0,0,0.4) - TomTomBlock:SetBackdropBorderColor(1,0.8,0,0.8) + TomTomBlock:SetBackdrop({ + bgFile = "Interface\\ChatFrame\\ChatFrameBackground", + edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", + edgeSize = 16, + insets = { left = 4, right = 4, top = 4, bottom = 4 }, + }) + TomTomBlock:SetBackdropColor(0, 0, 0, 0.4) + TomTomBlock:SetBackdropBorderColor(1, 0.8, 0, 0.8) - -- Set behavior scripts - TomTomBlock:SetScript("OnUpdate", Block_OnUpdate) - TomTomBlock:SetScript("OnClick", Block_OnClick) - TomTomBlock:SetScript("OnEnter", Block_OnEnter) - TomTomBlock:SetScript("OnLeave", Block_OnLeave) - TomTomBlock:SetScript("OnDragStop", Block_OnDragStop) - TomTomBlock:SetScript("OnDragStart", Block_OnDragStart) - end - -- Show the frame - TomTomBlock:Show() + -- Set behavior scripts + TomTomBlock:SetScript("OnUpdate", Block_OnUpdate) + TomTomBlock:SetScript("OnClick", Block_OnClick) + TomTomBlock:SetScript("OnEnter", Block_OnEnter) + TomTomBlock:SetScript("OnLeave", Block_OnLeave) + TomTomBlock:SetScript("OnDragStop", Block_OnDragStop) + TomTomBlock:SetScript("OnDragStart", Block_OnDragStart) + end + -- Show the frame + TomTomBlock:Show() - local opt = self.profile.block + local opt = self.profile.block - -- Update the backdrop color, and border color - TomTomBlock:SetBackdropColor(unpack(opt.bgcolor)) - TomTomBlock:SetBackdropBorderColor(unpack(opt.bordercolor)) + -- Update the backdrop color, and border color + TomTomBlock:SetBackdropColor(unpack(opt.bgcolor)) + TomTomBlock:SetBackdropBorderColor(unpack(opt.bordercolor)) - -- Update the height and width - TomTomBlock:SetHeight(opt.height) - TomTomBlock:SetWidth(opt.width) + -- Update the height and width + TomTomBlock:SetHeight(opt.height) + TomTomBlock:SetWidth(opt.width) - -- Update the font size - local font,height = TomTomBlock.Text:GetFont() - TomTomBlock.Text:SetFont(font, opt.fontsize, select(3, TomTomBlock.Text:GetFont())) - - elseif TomTomBlock then - TomTomBlock:Hide() - end + -- Update the font size + local font, height = TomTomBlock.Text:GetFont() + TomTomBlock.Text:SetFont(font, opt.fontsize, select(3, TomTomBlock.Text:GetFont())) + elseif TomTomBlock then + TomTomBlock:Hide() + end end -- Hook the WorldMap OnClick local world_click_verify = { - ["A"] = function() return IsAltKeyDown() end, - ["C"] = function() return IsControlKeyDown() end, - ["S"] = function() return IsShiftKeyDown() end, + ["A"] = function() return IsAltKeyDown() end, + ["C"] = function() return IsControlKeyDown() end, + ["S"] = function() return IsShiftKeyDown() end, } local origScript = WorldMapButton_OnClick WorldMapButton_OnClick = function(self, ...) - if WorldMapButton.ignoreClick then - WorldMapButton.ignoreClick = false; - return; - end + if WorldMapButton.ignoreClick then + WorldMapButton.ignoreClick = false + return + end - local mouseButton, button = ... - if mouseButton == "RightButton" then - -- Check for all the modifiers that are currently set - for mod in TomTom.db.profile.worldmap.create_modifier:gmatch("[ACS]") do - if not world_click_verify[mod] or not world_click_verify[mod]() then - return origScript and origScript(self, ...) or true - end - end + local mouseButton, button = ... + if mouseButton == "RightButton" then + -- Check for all the modifiers that are currently set + for mod in TomTom.db.profile.worldmap.create_modifier:gmatch("[ACS]") do + if not world_click_verify[mod] or not world_click_verify[mod]() then + return origScript and origScript(self, ...) or true + end + end - local m,f = GetCurrentMapAreaID() - local x,y = GetCurrentCursorPosition() + local m, f = GetCurrentMapAreaID() + local x, y = GetCurrentCursorPosition() - if not m or m == WORLDMAP_COSMIC_ID then - return origScript and origScript(self, ...) or true - end + if not m or m == WORLDMAP_COSMIC_ID then return origScript and origScript(self, ...) or true end - local uid = TomTom:AddMFWaypoint(m, f, x, y, { - title = L["TomTom waypoint"], - }) - else - return origScript and origScript(self, ...) or true - end + local uid = TomTom:AddMFWaypoint(m, f, x, y, { + title = L["TomTom waypoint"], + }) + else + return origScript and origScript(self, ...) or true + end end if WorldMapButton:GetScript("OnClick") == origScript then - WorldMapButton:SetScript("OnClick", WorldMapButton_OnClick) + WorldMapButton:SetScript("OnClick", WorldMapButton_OnClick) end local function WaypointCallback(event, arg1, arg2, arg3) - if event == "OnDistanceArrive" then - TomTom:ClearWaypoint(arg1) - elseif event == "OnTooltipShown" then - local tooltip = arg1 - if arg3 then - tooltip:SetText(L["TomTom waypoint"]) - tooltip:AddLine(string.format(L["%s yards away"], math.floor(arg2)), 1, 1 ,1) - tooltip:Show() - else - tooltip.lines[2]:SetFormattedText(L["%s yards away"], math.floor(arg2), 1, 1, 1) - end - end + if event == "OnDistanceArrive" then + TomTom:ClearWaypoint(arg1) + elseif event == "OnTooltipShown" then + local tooltip = arg1 + if arg3 then + tooltip:SetText(L["TomTom waypoint"]) + tooltip:AddLine(string.format(L["%s yards away"], math.floor(arg2)), 1, 1, 1) + tooltip:Show() + else + tooltip.lines[2]:SetFormattedText(L["%s yards away"], math.floor(arg2), 1, 1, 1) + end + end end --[[------------------------------------------------------------------- -- Dropdown menu code --------------------------------------------------------------------]]-- +-------------------------------------------------------------------]] +-- StaticPopupDialogs["TOMTOM_REMOVE_ALL_CONFIRM"] = { preferredIndex = STATICPOPUPS_NUMDIALOGS, - text = L["Are you sure you would like to remove ALL TomTom waypoints?"], - button1 = L["Yes"], - button2 = L["No"], - OnAccept = function() - TomTom.waydb:ResetProfile() - TomTom:ReloadWaypoints() - end, - timeout = 30, - whileDead = 1, - hideOnEscape = 1, + text = L["Are you sure you would like to remove ALL TomTom waypoints?"], + button1 = L["Yes"], + button2 = L["No"], + OnAccept = function() + TomTom.waydb:ResetProfile() + TomTom:ReloadWaypoints() + end, + timeout = 30, + whileDead = 1, + hideOnEscape = 1, } local dropdown_info = { - -- Define level one elements here - [1] = { - { -- Title - text = L["Waypoint Options"], - isTitle = 1, - }, - { - -- set as crazy arrow - text = L["Set as waypoint arrow"], - func = function() - local uid = TomTom.dropdown.uid - local data = uid - TomTom:SetCrazyArrow(uid, TomTom.profile.arrow.arrival, data.title or L["TomTom waypoint"]) - end, - }, - { - -- Send waypoint - text = L["Send waypoint to"], - hasArrow = true, - value = "send", - }, - { -- Remove waypoint - text = L["Remove waypoint"], - func = function() - local uid = TomTom.dropdown.uid - local data = uid - TomTom:RemoveWaypoint(uid) - --TomTom:PrintF("Removing waypoint %0.2f, %0.2f in %s", data.x, data.y, data.zone) - end, -}, -{ -- Remove all waypoints from this zone -text = L["Remove all waypoints from this zone"], -func = function() - local uid = TomTom.dropdown.uid - local data = uid - local mapId = data[1] - for key, waypoint in pairs(waypoints[mapId]) do - TomTom:RemoveWaypoint(waypoint) - end -end, - }, - { -- Remove ALL waypoints - text = L["Remove all waypoints"], - func = function() - if TomTom.db.profile.general.confirmremoveall then - StaticPopup_Show("TOMTOM_REMOVE_ALL_CONFIRM") - else - StaticPopupDialogs["TOMTOM_REMOVE_ALL_CONFIRM"].OnAccept() - return - end - end, - }, - { -- Save this waypoint - text = L["Save this waypoint between sessions"], - checked = function() - return TomTom:UIDIsSaved(TomTom.dropdown.uid) - end, - func = function() - -- Add/remove it from the SV file - local uid = TomTom.dropdown.uid - local data = waypoints[uid] - if data then - local key = TomTom:GetKey(data) - local mapId = data[1] + -- Define level one elements here + [1] = { + { -- Title + text = L["Waypoint Options"], + isTitle = 1, + }, + { + -- set as crazy arrow + text = L["Set as waypoint arrow"], + func = function() + local uid = TomTom.dropdown.uid + local data = uid + TomTom:SetCrazyArrow(uid, TomTom.profile.arrow.arrival, data.title or L["TomTom waypoint"]) + end, + }, + { + -- Send waypoint + text = L["Send waypoint to"], + hasArrow = true, + value = "send", + }, + { -- Remove waypoint + text = L["Remove waypoint"], + func = function() + local uid = TomTom.dropdown.uid + local data = uid + TomTom:RemoveWaypoint(uid) + --TomTom:PrintF("Removing waypoint %0.2f, %0.2f in %s", data.x, data.y, data.zone) + end, + }, + { -- Remove all waypoints from this zone + text = L["Remove all waypoints from this zone"], + func = function() + local uid = TomTom.dropdown.uid + local data = uid + local mapId = data[1] + for key, waypoint in pairs(waypoints[mapId]) do + TomTom:RemoveWaypoint(waypoint) + end + end, + }, + { -- Remove ALL waypoints + text = L["Remove all waypoints"], + func = function() + if TomTom.db.profile.general.confirmremoveall then + StaticPopup_Show("TOMTOM_REMOVE_ALL_CONFIRM") + else + StaticPopupDialogs["TOMTOM_REMOVE_ALL_CONFIRM"].OnAccept() + return + end + end, + }, + { -- Save this waypoint + text = L["Save this waypoint between sessions"], + checked = function() return TomTom:UIDIsSaved(TomTom.dropdown.uid) end, + func = function() + -- Add/remove it from the SV file + local uid = TomTom.dropdown.uid + local data = waypoints[uid] + if data then + local key = TomTom:GetKey(data) + local mapId = data[1] - if mapId then - if UIDIsSavedTomTom.waypointprofile[mapId][key] then - TomTom.waypointprofile[mapId][key] = nil - else - TomTom.waypointprofile[mapId][key] = data - end - end - end - end, -}, - }, - [2] = { - send = { - { - -- Title - text = L["Waypoint communication"], - isTitle = true, - }, - { - -- Party - text = L["Send to party"], - func = function() - TomTom:SendWaypoint(TomTom.dropdown.uid, "PARTY") - end - }, - { - -- Raid - text = L["Send to raid"], - func = function() - TomTom:SendWaypoint(TomTom.dropdown.uid, "RAID") - end - }, - { - -- Battleground - text = L["Send to battleground"], - func = function() - TomTom:SendWaypoint(TomTom.dropdown.uid, "BATTLEGROUND") - end - }, - { - -- Guild - text = L["Send to guild"], - func = function() - TomTom:SendWaypoint(TomTom.dropdown.uid, "GUILD") - end - }, - }, - }, + if mapId then + if UIDIsSavedTomTom.waypointprofile[mapId][key] then + TomTom.waypointprofile[mapId][key] = nil + else + TomTom.waypointprofile[mapId][key] = data + end + end + end + end, + }, + }, + [2] = { + send = { + { + -- Title + text = L["Waypoint communication"], + isTitle = true, + }, + { + -- Party + text = L["Send to party"], + func = function() TomTom:SendWaypoint(TomTom.dropdown.uid, "PARTY") end, + }, + { + -- Raid + text = L["Send to raid"], + func = function() TomTom:SendWaypoint(TomTom.dropdown.uid, "RAID") end, + }, + { + -- Battleground + text = L["Send to battleground"], + func = function() TomTom:SendWaypoint(TomTom.dropdown.uid, "BATTLEGROUND") end, + }, + { + -- Guild + text = L["Send to guild"], + func = function() TomTom:SendWaypoint(TomTom.dropdown.uid, "GUILD") end, + }, + }, + }, } local function init_dropdown(self, level) - -- Make sure level is set to 1, if not supplied - level = level or 1 + -- Make sure level is set to 1, if not supplied + level = level or 1 - -- Get the current level from the info table - local info = dropdown_info[level] + -- Get the current level from the info table + local info = dropdown_info[level] - -- If a value has been set, try to find it at the current level - if level > 1 and UIDROPDOWNMENU_MENU_VALUE then - if info[UIDROPDOWNMENU_MENU_VALUE] then - info = info[UIDROPDOWNMENU_MENU_VALUE] - end - end + -- If a value has been set, try to find it at the current level + if level > 1 and UIDROPDOWNMENU_MENU_VALUE then + if info[UIDROPDOWNMENU_MENU_VALUE] then info = info[UIDROPDOWNMENU_MENU_VALUE] end + end - -- Add the buttons to the menu - for idx,entry in ipairs(info) do - if type(entry.checked) == "function" then - -- Make this button dynamic - local new = {} - for k,v in pairs(entry) do new[k] = v end - new.checked = new.checked() - entry = new - else - entry.checked = nil - end + -- Add the buttons to the menu + for idx, entry in ipairs(info) do + if type(entry.checked) == "function" then + -- Make this button dynamic + local new = {} + for k, v in pairs(entry) do + new[k] = v + end + new.checked = new.checked() + entry = new + else + entry.checked = nil + end - UIDropDownMenu_AddButton(entry, level) - end + UIDropDownMenu_AddButton(entry, level) + end end function TomTom:InitializeDropdown(uid) - self.dropdown.uid = uid - UIDropDownMenu_Initialize(self.dropdown, init_dropdown) + self.dropdown.uid = uid + UIDropDownMenu_Initialize(self.dropdown, init_dropdown) end function TomTom:UIDIsSaved(uid) - local data = uid - if data then - local key = TomTom:GetKey(data) - local mapId = data[1] + local data = uid + if data then + local key = TomTom:GetKey(data) + local mapId = data[1] - if data then - return not not TomTom.waypointprofile[mapId][key] - end - end - return false + if data then return not not TomTom.waypointprofile[mapId][key] end + end + return false end function TomTom:SendWaypoint(uid, channel) - local data = uid - local m, f, x, y = unpack(data) - local msg = string.format("%d:%d:%f:%f:%s", m, f, x, y, data.title or "") - SendAddonMessage("TOMTOM3", msg, channel) + local data = uid + local m, f, x, y = unpack(data) + local msg = string.format("%d:%d:%f:%f:%s", m, f, x, y, data.title or "") + SendAddonMessage("TOMTOM3", msg, channel) end function TomTom:CHAT_MSG_ADDON(event, prefix, data, channel, sender) - if prefix ~= "TOMTOM3" then return end - if sender == UnitName("player") then return end + if prefix ~= "TOMTOM3" then return end + if sender == UnitName("player") then return end - local m,f,x,y,title = string.split(":", data) - if not title:match("%S") then - title = string.format(L["Waypoint from %s"], sender) - end + local m, f, x, y, title = string.split(":", data) + if not title:match("%S") then title = string.format(L["Waypoint from %s"], sender) end - m = tonumber(m) - f = tonumber(f) - x = tonumber(x) - y = tonumber(y) + m = tonumber(m) + f = tonumber(f) + x = tonumber(x) + y = tonumber(y) - local zoneName = hbd:GetLocalizedMap(m) - self:AddMFWaypoint(m, f, x, y, {title = title}) - local msg = string.format(L["|cffffff78TomTom|r: Added '%s' (sent from %s) to zone %s"], title, sender, zoneName) - ChatFrame1:AddMessage(msg) + local zoneName = hbd:GetLocalizedMap(m) + self:AddMFWaypoint(m, f, x, y, { title = title }) + local msg = string.format(L["|cffffff78TomTom|r: Added '%s' (sent from %s) to zone %s"], title, sender, zoneName) + ChatFrame1:AddMessage(msg) end --[[------------------------------------------------------------------- -- Define callback functions --------------------------------------------------------------------]]-- +-------------------------------------------------------------------]] +-- local function _minimap_onclick(event, uid, self, button) - if TomTom.db.profile.minimap.menu then - TomTom:InitializeDropdown(uid) - ToggleDropDownMenu(1, nil, TomTom.dropdown, "cursor", 0, 0) - end + if TomTom.db.profile.minimap.menu then + TomTom:InitializeDropdown(uid) + ToggleDropDownMenu(1, nil, TomTom.dropdown, "cursor", 0, 0) + end end local function _world_onclick(event, uid, self, button) - if TomTom.db.profile.worldmap.menu then - TomTom:InitializeDropdown(uid) - ToggleDropDownMenu(1, nil, TomTom.dropdown, "cursor", 0, 0) - end + if TomTom.db.profile.worldmap.menu then + TomTom:InitializeDropdown(uid) + ToggleDropDownMenu(1, nil, TomTom.dropdown, "cursor", 0, 0) + end end local function _both_tooltip_show(event, tooltip, uid, dist) - local data = uid + local data = uid - tooltip:SetText(data.title or L["Unknown waypoint"]) - if dist and tonumber(dist) then - tooltip:AddLine(string.format(L["%s yards away"], math.floor(dist)), 1, 1, 1) - else - tooltip:AddLine(L["Unknown distance"]) - end - local m,f,x,y = unpack(data) - local zoneName = hbd:GetLocalizedMap(m) + tooltip:SetText(data.title or L["Unknown waypoint"]) + if dist and tonumber(dist) then + tooltip:AddLine(string.format(L["%s yards away"], math.floor(dist)), 1, 1, 1) + else + tooltip:AddLine(L["Unknown distance"]) + end + local m, f, x, y = unpack(data) + local zoneName = hbd:GetLocalizedMap(m) - tooltip:AddLine(string.format(L["%s (%.2f, %.2f)"], zoneName, x*100, y*100), 0.7, 0.7, 0.7) - tooltip:Show() + tooltip:AddLine(string.format(L["%s (%.2f, %.2f)"], zoneName, x * 100, y * 100), 0.7, 0.7, 0.7) + tooltip:Show() end local function _minimap_tooltip_show(event, tooltip, uid, dist) - if not TomTom.db.profile.minimap.tooltip then - tooltip:Hide() - return - end - return _both_tooltip_show(event, tooltip, uid, dist) + if not TomTom.db.profile.minimap.tooltip then + tooltip:Hide() + return + end + return _both_tooltip_show(event, tooltip, uid, dist) end local function _world_tooltip_show(event, tooltip, uid, dist) - if not TomTom.db.profile.worldmap.tooltip then - tooltip:Hide() - return - end - return _both_tooltip_show(event, tooltip, uid, dist) + if not TomTom.db.profile.worldmap.tooltip then + tooltip:Hide() + return + end + return _both_tooltip_show(event, tooltip, uid, dist) end local function _both_tooltip_update(event, tooltip, uid, dist) - if dist and tonumber(dist) then - tooltip.lines[2]:SetFormattedText(L["%s yards away"], math.floor(dist), 1, 1, 1) - else - tooltip.lines[2]:SetText(L["Unknown distance"]) - end + if dist and tonumber(dist) then + tooltip.lines[2]:SetFormattedText(L["%s yards away"], math.floor(dist), 1, 1, 1) + else + tooltip.lines[2]:SetText(L["Unknown distance"]) + end end local function _both_clear_distance(event, uid, range, distance, lastdistance) -- Only clear the waypoint if we weren't inside it when it was set - if lastdistance and not UnitOnTaxi("player") then - TomTom:RemoveWaypoint(uid) - end + if lastdistance and not UnitOnTaxi("player") then TomTom:RemoveWaypoint(uid) end end local function _both_ping_arrival(event, uid, range, distance, lastdistance) - if TomTom.profile.arrow.enablePing then - PlaySoundFile("Interface\\AddOns\\TomTom\\Media\\ping.mp3") - end + if TomTom.profile.arrow.enablePing then PlaySoundFile("Interface\\AddOns\\TomTom\\Media\\ping.mp3") end end local function _remove(event, uid) - local data = uid - local key = TomTom:GetKey(data) - local mapId = data[1] - local sv = TomTom.waypointprofile[mapId] + local data = uid + local key = TomTom:GetKey(data) + local mapId = data[1] + local sv = TomTom.waypointprofile[mapId] - if sv and sv[key] then - sv[key] = nil - end + if sv and sv[key] then sv[key] = nil end - -- Remove this entry from the waypoints table - if waypoints[mapId] then - waypoints[mapId][key] = nil - end + -- Remove this entry from the waypoints table + if waypoints[mapId] then waypoints[mapId][key] = nil end end local function noop() end function TomTom:RemoveWaypoint(uid) - local data = uid - self:ClearWaypoint(uid) + local data = uid + self:ClearWaypoint(uid) - local key = TomTom:GetKey(data) - local mapId = data[1] - local sv = TomTom.waypointprofile[mapId] + local key = TomTom:GetKey(data) + local mapId = data[1] + local sv = TomTom.waypointprofile[mapId] - if sv and sv[key] then - sv[key] = nil - end + if sv and sv[key] then sv[key] = nil end - -- Remove this entry from the waypoints table - if waypoints[mapId] then - waypoints[mapId][key] = nil - end + -- Remove this entry from the waypoints table + if waypoints[mapId] then waypoints[mapId][key] = nil end end -- TODO: Make this not suck function TomTom:AddWaypoint(x, y, desc, persistent, minimap, world, silent) - local c,z = GetCurrentMapContinent(), GetCurrentMapZone() + local c, z = GetCurrentMapContinent(), GetCurrentMapZone() - if not c or not z or c < 1 then - --self:Print("Cannot find a valid zone to place the coordinates") - return - end + if not c or not z or c < 1 then + --self:Print("Cannot find a valid zone to place the coordinates") + return + end - return self:AddZWaypoint(c, z, x, y, desc, persistent, minimap, world, nil, silent) + return self:AddZWaypoint(c, z, x, y, desc, persistent, minimap, world, nil, silent) end function TomTom:AddZWaypoint(c, z, x, y, desc, persistent, minimap, world, callbacks, silent, crazy) - -- Convert the c,z,x,y tuple to m,f,x,y and pass the work off to AddMFWaypoint() - local mapId, floor = hbd:GetMapIDFromCZ(c, z) - if not mapId then - return - end + -- Convert the c,z,x,y tuple to m,f,x,y and pass the work off to AddMFWaypoint() + local mapId, floor = hbd:GetMapIDFromCZ(c, z) + if not mapId then return end - return self:AddMFWaypoint(mapId, floor, x/100, y/100, { - title = desc, - persistent = persistent, - minimap = minimap, - world = world, - callbacks = callbacks, - silent = silent, - crazy = crazy, - }) + return self:AddMFWaypoint(mapId, floor, x / 100, y / 100, { + title = desc, + persistent = persistent, + minimap = minimap, + world = world, + callbacks = callbacks, + silent = silent, + crazy = crazy, + }) end function TomTom:AddWaypointToCurrentZone(x, y, desc) - local m, f = TomTom:GetCurrentPlayerPosition() - if not m then - return - end + local m, f = TomTom:GetCurrentPlayerPosition() + if not m then return end - return self:AddMFWaypoint(m, f, x/100, y/100, { - title = desc, - }) + return self:AddMFWaypoint(m, f, x / 100, y / 100, { + title = desc, + }) end -- Return a set of default callbacks that can be used by addons to provide @@ -846,7 +803,7 @@ end -- the player has arrived. function TomTom:DefaultCallbacks(opts) - opts = opts or {} + opts = opts or {} local callbacks = { minimap = { @@ -859,34 +816,25 @@ function TomTom:DefaultCallbacks(opts) tooltip_show = _world_tooltip_show, tooltip_update = _both_tooltip_show, }, - distance = { - }, + distance = {}, } - local cleardistance = self.profile.persistence.cleardistance - local arrivaldistance = self.profile.arrow.arrival + local cleardistance = self.profile.persistence.cleardistance + local arrivaldistance = self.profile.arrow.arrival - -- Allow both of these to be overriden by options - if opts.cleardistance then - cleardistance = opts.cleardistance - end - if opts.arrivaldistance then - arrivaldistance = opts.arrivaldistance - end + -- Allow both of these to be overriden by options + if opts.cleardistance then cleardistance = opts.cleardistance end + if opts.arrivaldistance then arrivaldistance = opts.arrivaldistance end - if cleardistance == arrivaldistance then - callbacks.distance[cleardistance] = function(...) - _both_clear_distance(...); - _both_ping_arrival(...); - end - else - if cleardistance > 0 then - callbacks.distance[cleardistance] = _both_clear_distance - end - if arrivaldistance > 0 then - callbacks.distance[arrivaldistance] = _both_ping_arrival - end - end + if cleardistance == arrivaldistance then + callbacks.distance[cleardistance] = function(...) + _both_clear_distance(...) + _both_ping_arrival(...) + end + else + if cleardistance > 0 then callbacks.distance[cleardistance] = _both_clear_distance end + if arrivaldistance > 0 then callbacks.distance[arrivaldistance] = _both_ping_arrival end + end return callbacks end @@ -895,227 +843,210 @@ function TomTom:AddMFWaypoint(m, f, x, y, opts) opts = opts or {} -- Default values - if opts.persistent == nil then opts.persistent = self.profile.persistence.savewaypoints end - if opts.minimap == nil then opts.minimap = self.profile.minimap.enable end - if opts.world == nil then opts.world = self.profile.worldmap.enable end - if opts.crazy == nil then opts.crazy = self.profile.arrow.autoqueue end + if opts.persistent == nil then opts.persistent = self.profile.persistence.savewaypoints end + if opts.minimap == nil then opts.minimap = self.profile.minimap.enable end + if opts.world == nil then opts.world = self.profile.worldmap.enable end + if opts.crazy == nil then opts.crazy = self.profile.arrow.autoqueue end if opts.cleardistance == nil then opts.cleardistance = self.profile.persistence.cleardistance end if opts.arrivaldistance == nil then opts.arrivaldistance = self.profile.arrow.arrival end - if not opts.callbacks then - opts.callbacks = TomTom:DefaultCallbacks(opts) + if not opts.callbacks then opts.callbacks = TomTom:DefaultCallbacks(opts) end + + local zoneName = hbd:GetLocalizedMap(m) + + -- Get the default map floor, if necessary + if not f then + local floors = hbd:GetNumFloors(m) + f = floors == 0 and 0 or 1 end - local zoneName = hbd:GetLocalizedMap(m) + -- Ensure there isn't already a waypoint at this location + local key = self:GetKey({ m, f, x, y, title = opts.title }) + if waypoints[m] and waypoints[m][key] then return waypoints[m][key] end - -- Get the default map floor, if necessary - if not f then - local floors = hbd:GetNumFloors(m) - f = floors == 0 and 0 or 1 - end + -- uid is the 'new waypoint' called this for historical reasons + local uid = { m, f, x, y, title = opts.title } - -- Ensure there isn't already a waypoint at this location - local key = self:GetKey({m, f, x, y, title = opts.title}) - if waypoints[m] and waypoints[m][key] then - return waypoints[m][key] - end + -- Copy over any options, so we have em + for k, v in pairs(opts) do + if not uid[k] then uid[k] = v end + end - -- uid is the 'new waypoint' called this for historical reasons - local uid = {m, f, x, y, title = opts.title} + -- No need to convert x and y because they're already 0-1 instead of 0-100 + self:SetWaypoint(uid, opts.callbacks, opts.minimap, opts.world) + if opts.crazy then self:SetCrazyArrow(uid, opts.arrivaldistance, opts.title) end - -- Copy over any options, so we have em - for k,v in pairs(opts) do - if not uid[k] then - uid[k] = v - end - end + waypoints[m] = waypoints[m] or {} + waypoints[m][key] = uid - -- No need to convert x and y because they're already 0-1 instead of 0-100 - self:SetWaypoint(uid, opts.callbacks, opts.minimap, opts.world) - if opts.crazy then - self:SetCrazyArrow(uid, opts.arrivaldistance, opts.title) - end + -- If this is a persistent waypoint, then add it to the waypoints table + if opts.persistent then self.waypointprofile[m][key] = uid end - waypoints[m] = waypoints[m] or {} - waypoints[m][key] = uid + if not opts.silent and self.profile.general.announce then + local ctxt = RoundCoords(x, y, 2) + local desc = opts.title and opts.title or "" + local sep = opts.title and " - " or "" + local msg = string.format(L["|cffffff78TomTom:|r Added a waypoint (%s%s%s) in %s"], desc, sep, ctxt, zoneName) + ChatFrame1:AddMessage(msg) + end - -- If this is a persistent waypoint, then add it to the waypoints table - if opts.persistent then - self.waypointprofile[m][key] = uid - end - - if not opts.silent and self.profile.general.announce then - local ctxt = RoundCoords(x, y, 2) - local desc = opts.title and opts.title or "" - local sep = opts.title and " - " or "" - local msg = string.format(L["|cffffff78TomTom:|r Added a waypoint (%s%s%s) in %s"], desc, sep, ctxt, zoneName) - ChatFrame1:AddMessage(msg) - end - - return uid + return uid end -- Check to see if a given uid/waypoint is actually set somewhere function TomTom:IsValidWaypoint(waypoint) - local m = waypoint[1] - local key = self:GetKey(waypoint) - if waypoints[m] and waypoints[m][key] then - return true - else - return false - end + local m = waypoint[1] + local key = self:GetKey(waypoint) + if waypoints[m] and waypoints[m][key] then + return true + else + return false + end end function TomTom:WaypointMFExists(m, f, x, y, desc) - local key = self:GetKeyArgs(m, f, x, y, desc) - if waypoints[m] and waypoints[m][key] then - return true - else - return false - end + local key = self:GetKeyArgs(m, f, x, y, desc) + if waypoints[m] and waypoints[m][key] then + return true + else + return false + end end function TomTom:WaypointExists(c, z, x, y, desc) - local m, f = hbd:GetMapIDFromCZ(c, z) - return self:WaypointMFExists(m, f, x, y, desc) + local m, f = hbd:GetMapIDFromCZ(c, z) + return self:WaypointMFExists(m, f, x, y, desc) end -function TomTom:SetCustomWaypoint(c,z,x,y,callback,minimap,world,silent) - return self:AddZWaypoint(c, z, x, y, nil, false, minimap, world, callback, silent) +function TomTom:SetCustomWaypoint(c, z, x, y, callback, minimap, world, silent) + return self:AddZWaypoint(c, z, x, y, nil, false, minimap, world, callback, silent) end function TomTom:SetCustomMFWaypoint(m, f, x, y, opts) - opts.persistent = false + opts.persistent = false - return self:AddMFWaypoint(m, f, x, y, opts) + return self:AddMFWaypoint(m, f, x, y, opts) end do - -- Code courtesy ckknight - function GetCurrentCursorPosition() - local x, y = GetCursorPosition() - local left, top = WorldMapDetailFrame:GetLeft(), WorldMapDetailFrame:GetTop() - local width = WorldMapDetailFrame:GetWidth() - local height = WorldMapDetailFrame:GetHeight() - local scale = WorldMapDetailFrame:GetEffectiveScale() - local cx = (x/scale - left) / width - local cy = (top - y/scale) / height + -- Code courtesy ckknight + function GetCurrentCursorPosition() + local x, y = GetCursorPosition() + local left, top = WorldMapDetailFrame:GetLeft(), WorldMapDetailFrame:GetTop() + local width = WorldMapDetailFrame:GetWidth() + local height = WorldMapDetailFrame:GetHeight() + local scale = WorldMapDetailFrame:GetEffectiveScale() + local cx = (x / scale - left) / width + local cy = (top - y / scale) / height - if cx < 0 or cx > 1 or cy < 0 or cy > 1 then - return nil, nil - end + if cx < 0 or cx > 1 or cy < 0 or cy > 1 then return nil, nil end - return cx, cy - end - - local coord_fmt = "%%.%df, %%.%df" - function RoundCoords(x,y,prec) - local fmt = coord_fmt:format(prec, prec) - return fmt:format(x*100, y*100) - end + return cx, cy + end + local coord_fmt = "%%.%df, %%.%df" + function RoundCoords(x, y, prec) + local fmt = coord_fmt:format(prec, prec) + return fmt:format(x * 100, y * 100) + end local coord_throttle = 0 - function WorldMap_OnUpdate(self, elapsed) + function WorldMap_OnUpdate(self, elapsed) coord_throttle = coord_throttle + elapsed - if coord_throttle <= TomTom.profile.mapcoords.throttle then - return - end + if coord_throttle <= TomTom.profile.mapcoords.throttle then return end coord_throttle = 0 - local x,y = TomTom:GetCurrentCoords() - local opt = TomTom.db.profile + local x, y = TomTom:GetCurrentCoords() + local opt = TomTom.db.profile - if not x or not y then - self.Player:SetText("Player: ---") - else - self.Player:SetFormattedText("Player: %s", RoundCoords(x, y, opt.mapcoords.playeraccuracy)) - end + if not x or not y then + self.Player:SetText("Player: ---") + else + self.Player:SetFormattedText("Player: %s", RoundCoords(x, y, opt.mapcoords.playeraccuracy)) + end - local cX, cY = GetCurrentCursorPosition() + local cX, cY = GetCurrentCursorPosition() - if not cX or not cY then - self.Cursor:SetText("Cursor: ---") - else - self.Cursor:SetFormattedText("Cursor: %s", RoundCoords(cX, cY, opt.mapcoords.cursoraccuracy)) - end - end + if not cX or not cY then + self.Cursor:SetText("Cursor: ---") + else + self.Cursor:SetFormattedText("Cursor: %s", RoundCoords(cX, cY, opt.mapcoords.cursoraccuracy)) + end + end end do - local bcounter = 0 - function Block_OnUpdate(self, elapsed) - bcounter = bcounter + elapsed - if bcounter > TomTom.profile.block.throttle then - bcounter = bcounter - TomTom.profile.block.throttle + local bcounter = 0 + function Block_OnUpdate(self, elapsed) + bcounter = bcounter + elapsed + if bcounter > TomTom.profile.block.throttle then + bcounter = bcounter - TomTom.profile.block.throttle - local x,y = TomTom:GetCurrentCoords() + local x, y = TomTom:GetCurrentCoords() - local opt = TomTom.db.profile - if not x or not y then - local blank = ("-"):rep(8) - self.Text:SetText(blank) - else - self.Text:SetFormattedText("%s", RoundCoords(x, y, opt.block.accuracy)) - end - end - end + local opt = TomTom.db.profile + if not x or not y then + local blank = ("-"):rep(8) + self.Text:SetText(blank) + else + self.Text:SetFormattedText("%s", RoundCoords(x, y, opt.block.accuracy)) + end + end + end - function Block_OnDragStart(self, button, down) - if not TomTom.db.profile.block.lock then - self:StartMoving() - end - end + function Block_OnDragStart(self, button, down) + if not TomTom.db.profile.block.lock then self:StartMoving() end + end - function Block_OnDragStop(self, button, down) - self:StopMovingOrSizing() - end + function Block_OnDragStop(self, button, down) self:StopMovingOrSizing() end - function Block_OnClick(self, button, down) - local m,f,x,y = TomTom:GetCurrentPlayerPosition() - local zoneName = hbd:GetLocalizedMap(m) - local desc = string.format("%s: %.2f, %.2f", zoneName, x*100, y*100) - TomTom:AddMFWaypoint(m, f, x, y, { - title = desc, - }) - end + function Block_OnClick(self, button, down) + local m, f, x, y = TomTom:GetCurrentPlayerPosition() + local zoneName = hbd:GetLocalizedMap(m) + local desc = string.format("%s: %.2f, %.2f", zoneName, x * 100, y * 100) + TomTom:AddMFWaypoint(m, f, x, y, { + title = desc, + }) + end end function TomTom:DebugListWaypoints() - local m,f,x,y = self:GetCurrentPlayerPosition() - local ctxt = RoundCoords(x, y, 2) - local czone = hbd:GetLocalizedMap(m) - self:Printf(L["You are at (%s) in '%s' (map: %d, floor: %d)"], ctxt, czone or "UNKNOWN", m, f) - if waypoints[m] then - for key, wp in pairs(waypoints[m]) do - local ctxt = RoundCoords(wp[3], wp[4], 2) - local desc = wp.title and wp.title or L["Unknown waypoint"] - local indent = " " - self:Printf(L["%s%s - %s (map: %d, floor: %d)"], indent, desc, ctxt, wp[1], wp[2]) - end - else - local indent = " " - self:Printf(L["%sNo waypoints in this zone"], indent) - end + local m, f, x, y = self:GetCurrentPlayerPosition() + local ctxt = RoundCoords(x, y, 2) + local czone = hbd:GetLocalizedMap(m) + self:Printf(L["You are at (%s) in '%s' (map: %d, floor: %d)"], ctxt, czone or "UNKNOWN", m, f) + if waypoints[m] then + for key, wp in pairs(waypoints[m]) do + local ctxt = RoundCoords(wp[3], wp[4], 2) + local desc = wp.title and wp.title or L["Unknown waypoint"] + local indent = " " + self:Printf(L["%s%s - %s (map: %d, floor: %d)"], indent, desc, ctxt, wp[1], wp[2]) + end + else + local indent = " " + self:Printf(L["%sNo waypoints in this zone"], indent) + end end local function usage() - ChatFrame1:AddMessage(L["|cffffff78TomTom |r/way |cffffff78Usage:|r"]) - ChatFrame1:AddMessage(L["|cffffff78/way [desc]|r - Adds a waypoint at x,y with descrtiption desc"]) - ChatFrame1:AddMessage(L["|cffffff78/way [desc]|r - Adds a waypoint at x,y in zone with description desc"]) - ChatFrame1:AddMessage(L["|cffffff78/way reset all|r - Resets all waypoints"]) - ChatFrame1:AddMessage(L["|cffffff78/way reset |r - Resets all waypoints in zone"]) - ChatFrame1:AddMessage(L["|cffffff78/way list|r - Lists active waypoints in current zone"]) + ChatFrame1:AddMessage(L["|cffffff78TomTom |r/way |cffffff78Usage:|r"]) + ChatFrame1:AddMessage(L["|cffffff78/way [desc]|r - Adds a waypoint at x,y with descrtiption desc"]) + ChatFrame1:AddMessage( + L["|cffffff78/way [desc]|r - Adds a waypoint at x,y in zone with description desc"] + ) + ChatFrame1:AddMessage(L["|cffffff78/way reset all|r - Resets all waypoints"]) + ChatFrame1:AddMessage(L["|cffffff78/way reset |r - Resets all waypoints in zone"]) + ChatFrame1:AddMessage(L["|cffffff78/way list|r - Lists active waypoints in current zone"]) end function TomTom:GetClosestWaypoint() - local m,f,x,y = self:GetCurrentPlayerPosition() + local m, f, x, y = self:GetCurrentPlayerPosition() local c = hbd:GetCZFromMapID(m) - local closest_waypoint = nil - local closest_dist = nil + local closest_waypoint = nil + local closest_dist = nil - if not self.profile.arrow.closestusecontinent then + if not self.profile.arrow.closestusecontinent then -- Simple search within this zone if waypoints[m] then for key, waypoint in pairs(waypoints[m]) do @@ -1141,37 +1072,31 @@ function TomTom:GetClosestWaypoint() end end - if closest_dist then - return closest_waypoint - end + if closest_dist then return closest_waypoint end end function TomTom:SetClosestWaypoint() - local uid = self:GetClosestWaypoint() - if uid then - local data = uid - TomTom:SetCrazyArrow(uid, TomTom.profile.arrow.arrival, data.title) - end + local uid = self:GetClosestWaypoint() + if uid then + local data = uid + TomTom:SetCrazyArrow(uid, TomTom.profile.arrow.arrival, data.title) + end end SLASH_TOMTOM_CLOSEST_WAYPOINT1 = "/cway" SLASH_TOMTOM_CLOSEST_WAYPOINT2 = "/closestway" -SlashCmdList["TOMTOM_CLOSEST_WAYPOINT"] = function(msg) - TomTom:SetClosestWaypoint() -end +SlashCmdList["TOMTOM_CLOSEST_WAYPOINT"] = function(msg) TomTom:SetClosestWaypoint() end SLASH_TOMTOM_WAYBACK1 = "/wayb" SLASH_TOMTOM_WAYBACK2 = "/wayback" SlashCmdList["TOMTOM_WAYBACK"] = function(msg) - local title = L["Wayback"] - if msg and msg:match("%S") then - title = msg - end + local title = L["Wayback"] + if msg and msg:match("%S") then title = msg end - local backm,backf,backx,backy = TomTom:GetCurrentPlayerPosition() - TomTom:AddMFWaypoint(backm, backf, backx, backy, { - title = title, - }) + local backm, backf, backx, backy = TomTom:GetCurrentPlayerPosition() + TomTom:AddMFWaypoint(backm, backf, backx, backy, { + title = title, + }) end SLASH_TOMTOM_WAY1 = "/way" @@ -1180,232 +1105,240 @@ SLASH_TOMTOM_WAY3 = "/tomtomway" local nameToMapId = {} do - -- Fetch the names of the continents - local continentNames = {} - local continentData = {GetMapContinents()} + -- Fetch the names of the continents + local continentNames = {} + local continentData = { GetMapContinents() } - for c = 1, (#continentData / 2) do - local index = (c*2) - 1 - local areaId, name = continentData[index], continentData[index+1] - local instanceId = GetAreaMapInfo(areaId) - continentNames[instanceId] = name - end + for c = 1, (#continentData / 2) do + local index = (c * 2) - 1 + local areaId, name = continentData[index], continentData[index + 1] + local instanceId = GetAreaMapInfo(areaId) + continentNames[instanceId] = name + end - for idx, areaMapId in pairs(GetAreaMaps()) do - local name = GetMapNameByID(areaMapId) - local a,b,c = GetAreaMapInfo(areaMapId) - local parent = (c == -1 and a or c) - local parentName = continentNames[parent] or GetMapNameByID(parent) + for idx, areaMapId in pairs(GetAreaMaps()) do + local name = GetMapNameByID(areaMapId) + local a, b, c = GetAreaMapInfo(areaMapId) + local parent = (c == -1 and a or c) + local parentName = continentNames[parent] or GetMapNameByID(parent) - if name and nameToMapId[name] then - if type(nameToMapId[name]) ~= "table" then - -- convert to a table - nameToMapId[name] = {nameToMapId[name]} - end + if name and nameToMapId[name] then + if type(nameToMapId[name]) ~= "table" then + -- convert to a table + nameToMapId[name] = { nameToMapId[name] } + end - table.insert(nameToMapId[name], areaMapId) - else - nameToMapId[name] = areaMapId - end - end + table.insert(nameToMapId[name], areaMapId) + else + nameToMapId[name] = areaMapId + end + end - -- Handle any duplicates - local newEntries = {} - for name, areaId in pairs(nameToMapId) do - if type(areaId) == "table" then - nameToMapId[name] = nil - for idx, areaId in pairs(areaId) do - local a,b,c = GetAreaMapInfo(areaId) - local parent = (c == -1 and a or c) - local parentName = continentNames[parent] or GetMapNameByID(parent) - if parentName then - local newName = name .. ':' .. parentName - newEntries[newName] = areaId - end - end - end - end + -- Handle any duplicates + local newEntries = {} + for name, areaId in pairs(nameToMapId) do + if type(areaId) == "table" then + nameToMapId[name] = nil + for idx, areaId in pairs(areaId) do + local a, b, c = GetAreaMapInfo(areaId) + local parent = (c == -1 and a or c) + local parentName = continentNames[parent] or GetMapNameByID(parent) + if parentName then + local newName = name .. ":" .. parentName + newEntries[newName] = areaId + end + end + end + end - -- Add the de-duplicated entries - for name, areaId in pairs(newEntries) do - nameToMapId[name] = areaId - end + -- Add the de-duplicated entries + for name, areaId in pairs(newEntries) do + nameToMapId[name] = areaId + end end local wrongseparator = "(%d)" .. (tonumber("1.1") and "," or ".") .. "(%d)" -local rightseparator = "%1" .. (tonumber("1.1") and "." or ",") .. "%2" +local rightseparator = "%1" .. (tonumber("1.1") and "." or ",") .. "%2" -- Make comparison only lowercase letters and numbers local function lowergsub(s) return s:lower():gsub("[^%a%d]", "") end SlashCmdList["TOMTOM_WAY"] = function(msg) - msg = msg:gsub("(%d)[%.,] (%d)", "%1 %2"):gsub(wrongseparator, rightseparator) - local tokens = {} - for token in msg:gmatch("%S+") do table.insert(tokens, token) end + msg = msg:gsub("(%d)[%.,] (%d)", "%1 %2"):gsub(wrongseparator, rightseparator) + local tokens = {} + for token in msg:gmatch("%S+") do + table.insert(tokens, token) + end - -- Lower the first token - local ltoken = tokens[1] and tokens[1]:lower() + -- Lower the first token + local ltoken = tokens[1] and tokens[1]:lower() - if ltoken == "list" then - TomTom:DebugListWaypoints() - return - elseif ltoken == "reset" then - local ltoken2 = tokens[2] and tokens[2]:lower() - if ltoken2 == "all" then - if TomTom.db.profile.general.confirmremoveall then - StaticPopup_Show("TOMTOM_REMOVE_ALL_CONFIRM") - else - StaticPopupDialogs["TOMTOM_REMOVE_ALL_CONFIRM"].OnAccept() - return - end + if ltoken == "list" then + TomTom:DebugListWaypoints() + return + elseif ltoken == "reset" then + local ltoken2 = tokens[2] and tokens[2]:lower() + if ltoken2 == "all" then + if TomTom.db.profile.general.confirmremoveall then + StaticPopup_Show("TOMTOM_REMOVE_ALL_CONFIRM") + else + StaticPopupDialogs["TOMTOM_REMOVE_ALL_CONFIRM"].OnAccept() + return + end + elseif tokens[2] then + -- Reset the named zone + local zone = table.concat(tokens, " ", 2) + -- Find a fuzzy match for the zone - elseif tokens[2] then - -- Reset the named zone - local zone = table.concat(tokens, " ", 2) - -- Find a fuzzy match for the zone + local matches = {} + local lzone = lowergsub(zone) - local matches = {} - local lzone = lowergsub(zone) + for name, mapId in pairs(nameToMapId) do + local lname = lowergsub(name) + if lname == lzone then + -- We have an exact match + matches = { name } + break + elseif lname:match(lzone) then + table.insert(matches, name) + end + end - for name, mapId in pairs(nameToMapId) do - local lname = lowergsub(name) - if lname == lzone then - -- We have an exact match - matches = {name} - break - elseif lname:match(lzone) then - table.insert(matches, name) - end - end + if #matches > 5 then + local msg = + string.format(L["Found %d possible matches for zone %s. Please be more specific"], #matches, zone) + ChatFrame1:AddMessage(msg) + return + elseif #matches > 1 then + table.sort(matches) - if #matches > 5 then - local msg = string.format(L["Found %d possible matches for zone %s. Please be more specific"], #matches, zone) - ChatFrame1:AddMessage(msg) - return - elseif #matches > 1 then - table.sort(matches) + ChatFrame1:AddMessage( + string.format( + L["Found multiple matches for zone '%s'. Did you mean: %s"], + zone, + table.concat(matches, ", ") + ) + ) + return + elseif #matches == 0 then + local msg = string.format(L["Could not find any matches for zone %s."], zone) + ChatFrame1:AddMessage(msg) + return + end - ChatFrame1:AddMessage(string.format(L["Found multiple matches for zone '%s'. Did you mean: %s"], zone, table.concat(matches, ", "))) - return - elseif #matches == 0 then - local msg = string.format(L["Could not find any matches for zone %s."], zone) - ChatFrame1:AddMessage(msg) - return - end + local zoneName = matches[1] + local mapId = nameToMapId[zoneName] - local zoneName = matches[1] - local mapId = nameToMapId[zoneName] + local numRemoved = 0 + if waypoints[mapId] then + for key, uid in pairs(waypoints[mapId]) do + TomTom:RemoveWaypoint(uid) + numRemoved = numRemoved + 1 + end + ChatFrame1:AddMessage(L["Removed %d waypoints from %s"]:format(numRemoved, zoneName)) + else + ChatFrame1:AddMessage(L["There were no waypoints to remove in %s"]:format(zoneName)) + end + end + elseif tokens[1] and not tonumber(tokens[1]) then + -- Example: /way Elwynn Forest 34.2 50.7 Party in the forest! + -- tokens[1] = Elwynn + -- tokens[2] = Forest + -- tokens[3] = 34.2 + -- tokens[4] = 50.7 + -- tokens[5] = Party + -- ... + -- + -- Find the first numeric token + local zoneEnd + for idx = 1, #tokens do + local token = tokens[idx] + if tonumber(token) then + -- We've encountered a number, so the zone name must have + -- ended at the prior token + zoneEnd = idx - 1 + break + end + end - local numRemoved = 0 - if waypoints[mapId] then - for key, uid in pairs(waypoints[mapId]) do - TomTom:RemoveWaypoint(uid) - numRemoved = numRemoved + 1 - end - ChatFrame1:AddMessage(L["Removed %d waypoints from %s"]:format(numRemoved, zoneName)) - else - ChatFrame1:AddMessage(L["There were no waypoints to remove in %s"]:format(zoneName)) - end - end - elseif tokens[1] and not tonumber(tokens[1]) then - -- Example: /way Elwynn Forest 34.2 50.7 Party in the forest! - -- tokens[1] = Elwynn - -- tokens[2] = Forest - -- tokens[3] = 34.2 - -- tokens[4] = 50.7 - -- tokens[5] = Party - -- ... - -- - -- Find the first numeric token - local zoneEnd - for idx = 1, #tokens do - local token = tokens[idx] - if tonumber(token) then - -- We've encountered a number, so the zone name must have - -- ended at the prior token - zoneEnd = idx - 1 - break - end - end + if not zoneEnd then + usage() + return + end - if not zoneEnd then - usage() - return - end + -- This is a waypoint set, with a zone before the coords + local zone = table.concat(tokens, " ", 1, zoneEnd) + local x, y, desc = select(zoneEnd + 1, unpack(tokens)) - -- This is a waypoint set, with a zone before the coords - local zone = table.concat(tokens, " ", 1, zoneEnd) - local x,y,desc = select(zoneEnd + 1, unpack(tokens)) + if desc then desc = table.concat(tokens, " ", zoneEnd + 3) end - if desc then desc = table.concat(tokens, " ", zoneEnd + 3) end + -- Find a fuzzy match for the zone + local matches = {} + local lzone = lowergsub(zone) - -- Find a fuzzy match for the zone - local matches = {} - local lzone = lowergsub(zone) + for name, mapId in pairs(nameToMapId) do + local lname = lowergsub(name) + if lname == lzone then + -- We have an exact match + matches = { name } + break + elseif lname:match(lzone) then + table.insert(matches, name) + end + end - for name,mapId in pairs(nameToMapId) do - local lname = lowergsub(name) - if lname == lzone then - -- We have an exact match - matches = {name} - break - elseif lname:match(lzone) then - table.insert(matches, name) - end - end + if #matches > 5 then + local msg = + string.format(L["Found %d possible matches for zone %s. Please be more specific"], #matches, zone) + ChatFrame1:AddMessage(msg) + return + elseif #matches > 1 then + local msg = string.format( + L["Found multiple matches for zone '%s'. Did you mean: %s"], + zone, + table.concat(matches, ", ") + ) + ChatFrame1:AddMessage(msg) + return + elseif #matches == 0 then + local msg = string.format(L["Could not find any matches for zone %s."], zone) + ChatFrame1:AddMessage(msg) + return + end - if #matches > 5 then - local msg = string.format(L["Found %d possible matches for zone %s. Please be more specific"], #matches, zone) - ChatFrame1:AddMessage(msg) - return - elseif #matches > 1 then - local msg = string.format(L["Found multiple matches for zone '%s'. Did you mean: %s"], zone, table.concat(matches, ", ")) - ChatFrame1:AddMessage(msg) - return - elseif #matches == 0 then - local msg = string.format(L["Could not find any matches for zone %s."], zone) - ChatFrame1:AddMessage(msg) - return - end + -- There was only one match, so proceed + local zoneName = matches[1] + local mapId = nameToMapId[zoneName] - -- There was only one match, so proceed - local zoneName = matches[1] - local mapId = nameToMapId[zoneName] + x = x and tonumber(x) + y = y and tonumber(y) - x = x and tonumber(x) - y = y and tonumber(y) + if not x or not y then return usage() end - if not x or not y then - return usage() - end + x = tonumber(x) + y = tonumber(y) + TomTom:AddMFWaypoint(mapId, nil, x / 100, y / 100, { + title = desc or L["TomTom waypoint"], + }) + elseif tonumber(tokens[1]) then + -- A vanilla set command + local x, y, desc = unpack(tokens) + if not x or not tonumber(x) then + return usage() + elseif not y or not tonumber(y) then + return usage() + end + if desc then desc = table.concat(tokens, " ", 3) end + x = tonumber(x) + y = tonumber(y) - x = tonumber(x) - y = tonumber(y) - TomTom:AddMFWaypoint(mapId, nil, x/100, y/100, { - title = desc or L["TomTom waypoint"], - }) - elseif tonumber(tokens[1]) then - -- A vanilla set command - local x,y,desc = unpack(tokens) - if not x or not tonumber(x) then - return usage() - elseif not y or not tonumber(y) then - return usage() - end - if desc then - desc = table.concat(tokens, " ", 3) - end - x = tonumber(x) - y = tonumber(y) - - local m, f = TomTom:GetCurrentPlayerPosition() - if m and x and y then - TomTom:AddMFWaypoint(m, f, x/100, y/100, { - title = desc or L["TomTom waypoint"], - }) - end - else - return usage() - end + local m, f = TomTom:GetCurrentPlayerPosition() + if m and x and y then + TomTom:AddMFWaypoint(m, f, x / 100, y / 100, { + title = desc or L["TomTom waypoint"], + }) + end + else + return usage() + end end - diff --git a/Sort Array.lua b/Sort Array.lua index 6244ae8..e4ec0a2 100644 --- a/Sort Array.lua +++ b/Sort Array.lua @@ -1,19 +1,19 @@ -local array = {13, 14, 52, 63, 764, 12342, 143, 2, 54, 63, 25, 15} -local sortedarray = {0} +local array = { 13, 14, 52, 63, 764, 12342, 143, 2, 54, 63, 25, 15 } +local sortedarray = { 0 } for ka, va in ipairs(array) do - for j = 1, #sortedarray do - if va > sortedarray[j] then - if sortedarray[j] > 0 then - for i = #sortedarray, j, -1 do - sortedarray[i + 1] = sortedarray[i] - end - end - sortedarray[j] = va - end - end + for j = 1, #sortedarray do + if va > sortedarray[j] then + if sortedarray[j] > 0 then + for i = #sortedarray, j, -1 do + sortedarray[i + 1] = sortedarray[i] + end + end + sortedarray[j] = va + end + end end for k, v in ipairs(sortedarray) do - print(k, v) + print(k, v) end diff --git a/WA snippets/Add Strings.lua b/WA snippets/Add Strings.lua index 78b9ca6..0259bbd 100644 --- a/WA snippets/Add Strings.lua +++ b/WA snippets/Add Strings.lua @@ -1,10 +1,9 @@ - aura_env.addtostring = function(s, ...) - local i = 1 - while select(i, ...) do - s = s .. select(i, ...) .. " " - i = i + 1 - end - s = s .. "\n" - return s + local i = 1 + while select(i, ...) do + s = s .. select(i, ...) .. " " + i = i + 1 + end + s = s .. "\n" + return s end diff --git a/WA snippets/Anchor to nameplate.lua b/WA snippets/Anchor to nameplate.lua index a810dc5..4731d60 100644 --- a/WA snippets/Anchor to nameplate.lua +++ b/WA snippets/Anchor to nameplate.lua @@ -1,5 +1,5 @@ local plate = C_NamePlate.GetNamePlateForUnit("target") if plate then - aura_env.region:ClearAllPoints() - aura_env.region:SetPoint("BOTTOM", plate, "BOTTOM", 0, 0) + aura_env.region:ClearAllPoints() + aura_env.region:SetPoint("BOTTOM", plate, "BOTTOM", 0, 0) end diff --git a/WA snippets/Class Colors.lua b/WA snippets/Class Colors.lua index f25a3cd..6b1ce77 100644 --- a/WA snippets/Class Colors.lua +++ b/WA snippets/Class Colors.lua @@ -1,48 +1,90 @@ aura_env.classColor = function(class) - if class == 6 then return "\124cFFC41F3B" elseif - class == 12 then return "\124cFFA330C9" elseif - class == 11 then return "\124cFFFF7D0A" elseif - class == 3 then return "\124cFFABD473" elseif - class == 8 then return "\124cFF40C7EB" elseif - class == 10 then return "\124cFF00FF96" elseif - class == 2 then return "\124cFFF58CBA" elseif - class == 5 then return "\124cFFFFFFFF" elseif - class == 4 then return "\124cFFFFF569" elseif - class == 7 then return "\124cFF0070DE" elseif - class == 9 then return "\124cFF8787ED" elseif - class == 1 then return "\124cFFC79C6E" else - return "\124cFFFFFFFF" end + if class == 6 then + return "\124cFFC41F3B" + elseif class == 12 then + return "\124cFFA330C9" + elseif class == 11 then + return "\124cFFFF7D0A" + elseif class == 3 then + return "\124cFFABD473" + elseif class == 8 then + return "\124cFF40C7EB" + elseif class == 10 then + return "\124cFF00FF96" + elseif class == 2 then + return "\124cFFF58CBA" + elseif class == 5 then + return "\124cFFFFFFFF" + elseif class == 4 then + return "\124cFFFFF569" + elseif class == 7 then + return "\124cFF0070DE" + elseif class == 9 then + return "\124cFF8787ED" + elseif class == 1 then + return "\124cFFC79C6E" + else + return "\124cFFFFFFFF" + end end aura_env.classColor = function(name) - local class = UnitClass(name) or "" - if class == "Death Knight" then return 0.77, 0.12, 0.23, 1 elseif - class == "Demon Hunter" then return 0.64, 0.19, 0.79, 1 elseif - class == "Druid" then return 1, 0.49, 0.04, 1 elseif - class == "Hunter" then return 0.67, 0.83, 0.45, 1 elseif - class == "Mage" then return 0.25, 0.78, 0.92, 1 elseif - class == "Monk" then return 0, 1, 0.59, 1 elseif - class == "Paladin" then return 0.96, 0.55, 0.73, 1 elseif - class == "Priest" then return 1, 1, 1, 1 elseif - class == "Rogue" then return 1, 0.96, 0.41, 1 elseif - class == "Shaman" then return 0, 0.44, 0.87, 1 elseif - class == "Warlock" then return 0.53, 0.53, 0.93, 1 elseif - class == "Warrior" then return 0.78, 0.61, 0.43, 1 else - return 0, 0, 0, 0 end + local class = UnitClass(name) or "" + if class == "Death Knight" then + return 0.77, 0.12, 0.23, 1 + elseif class == "Demon Hunter" then + return 0.64, 0.19, 0.79, 1 + elseif class == "Druid" then + return 1, 0.49, 0.04, 1 + elseif class == "Hunter" then + return 0.67, 0.83, 0.45, 1 + elseif class == "Mage" then + return 0.25, 0.78, 0.92, 1 + elseif class == "Monk" then + return 0, 1, 0.59, 1 + elseif class == "Paladin" then + return 0.96, 0.55, 0.73, 1 + elseif class == "Priest" then + return 1, 1, 1, 1 + elseif class == "Rogue" then + return 1, 0.96, 0.41, 1 + elseif class == "Shaman" then + return 0, 0.44, 0.87, 1 + elseif class == "Warlock" then + return 0.53, 0.53, 0.93, 1 + elseif class == "Warrior" then + return 0.78, 0.61, 0.43, 1 + else + return 0, 0, 0, 0 + end end aura_env.classColor = function(class) - if class == 1 then return 0.78, 0.61, 0.43, 1 elseif - class == 2 then return 0.96, 0.55, 0.73, 1 elseif - class == 3 then return 0.67, 0.83, 0.45, 1 elseif - class == 4 then return 1, 0.96, 0.41, 1 elseif - class == 5 then return 1, 1, 1, 1 elseif - class == 6 then return 0.77, 0.12, 0.23, 1 elseif - class == 7 then return 0, 0.44, 0.87, 1 elseif - class == 8 then return 0.25, 0.78, 0.92, 1 elseif - class == 9 then return 0.53, 0.53, 0.93, 1 elseif - class == 10 then return 0, 1, 0.59, 1 elseif - class == 11 then return 1, 0.49, 0.04, 1 elseif - class == 12 then return 0.64, 0.19, 0.79, 1 else - return 1, 1, 1, 1 end + if class == 1 then + return 0.78, 0.61, 0.43, 1 + elseif class == 2 then + return 0.96, 0.55, 0.73, 1 + elseif class == 3 then + return 0.67, 0.83, 0.45, 1 + elseif class == 4 then + return 1, 0.96, 0.41, 1 + elseif class == 5 then + return 1, 1, 1, 1 + elseif class == 6 then + return 0.77, 0.12, 0.23, 1 + elseif class == 7 then + return 0, 0.44, 0.87, 1 + elseif class == 8 then + return 0.25, 0.78, 0.92, 1 + elseif class == 9 then + return 0.53, 0.53, 0.93, 1 + elseif class == 10 then + return 0, 1, 0.59, 1 + elseif class == 11 then + return 1, 0.49, 0.04, 1 + elseif class == 12 then + return 0.64, 0.19, 0.79, 1 + else + return 1, 1, 1, 1 + end end diff --git a/WA snippets/Color Gradient.lua b/WA snippets/Color Gradient.lua index 7141260..c9f2a2e 100644 --- a/WA snippets/Color Gradient.lua +++ b/WA snippets/Color Gradient.lua @@ -1,60 +1,59 @@ aura_env.grad = function(c) - --c expected as [0, 1] - if c > 0.5 then - c = 1 - (2 * (c - 0.5)) - return c, 1, 0, 1 - else - c = c * 2 - return 1, c, 0, 1 - end + --c expected as [0, 1] + if c > 0.5 then + c = 1 - (2 * (c - 0.5)) + return c, 1, 0, 1 + else + c = c * 2 + return 1, c, 0, 1 + end end local function hexgrad(val, min, max) - local function tohex(input) - local output = string.format("%x", input * 255) - return output - end - local function grad(c, min, max) - c = (((max - c) / (max - min)) * 1) - if c > 0.5 then - c = 1 - (2 * (c - 0.5)) - return c, 1, 0, 1 - else - c = c * 2 - return 1, c, 0, 1 - end - end - local color1, color2, color3, color4 = 0, 0, 0, 0 - color1, color2, color3, color4 = grad(val, min, max) - color1, color2, color3, color4 = tohex(color1), tohex(color2), tohex(color3), tohex(color4) - color1, color2, color3, color4 = tostring(color1), tostring(color2), tostring(color3), tostring(color4) - if string.len(color1) == 1 then color1 = "0" .. color1 end - if string.len(color2) == 1 then color2 = "0" .. color2 end - if string.len(color3) == 1 then color3 = "0" .. color3 end - if string.len(color4) == 1 then color4 = "0" .. color4 end - local color = "\124c" .. color4 .. color1 .. color2 .. color3 - return color + local function tohex(input) + local output = string.format("%x", input * 255) + return output + end + local function grad(c, min, max) + c = (((max - c) / (max - min)) * 1) + if c > 0.5 then + c = 1 - (2 * (c - 0.5)) + return c, 1, 0, 1 + else + c = c * 2 + return 1, c, 0, 1 + end + end + local color1, color2, color3, color4 = 0, 0, 0, 0 + color1, color2, color3, color4 = grad(val, min, max) + color1, color2, color3, color4 = tohex(color1), tohex(color2), tohex(color3), tohex(color4) + color1, color2, color3, color4 = tostring(color1), tostring(color2), tostring(color3), tostring(color4) + if string.len(color1) == 1 then color1 = "0" .. color1 end + if string.len(color2) == 1 then color2 = "0" .. color2 end + if string.len(color3) == 1 then color3 = "0" .. color3 end + if string.len(color4) == 1 then color4 = "0" .. color4 end + local color = "\124c" .. color4 .. color1 .. color2 .. color3 + return color end local function RGBtoHex(rgb) - local hexadecimal = 'FF' - for key, value in pairs(rgb) do - local hex = '' - - while(value > 0)do - local index = math.fmod(value, 16) + 1 - value = math.floor(value / 16) - hex = string.sub('0123456789ABCDEF', index, index) .. hex - end - - if(string.len(hex) == 0)then - hex = '00' - - elseif(string.len(hex) == 1)then - hex = '0' .. hex - end - - hexadecimal = hexadecimal .. hex - end - return hexadecimal + local hexadecimal = "FF" + for key, value in pairs(rgb) do + local hex = "" + + while value > 0 do + local index = math.fmod(value, 16) + 1 + value = math.floor(value / 16) + hex = string.sub("0123456789ABCDEF", index, index) .. hex + end + + if string.len(hex) == 0 then + hex = "00" + elseif string.len(hex) == 1 then + hex = "0" .. hex + end + + hexadecimal = hexadecimal .. hex + end + return hexadecimal end diff --git a/WA snippets/Date and Time.lua b/WA snippets/Date and Time.lua index 7b34278..e4de7ae 100644 --- a/WA snippets/Date and Time.lua +++ b/WA snippets/Date and Time.lua @@ -4,12 +4,8 @@ aura_env.getDate = function() local month = date:match("(%d%d)") --(01)/07/19 14:36:42 local day = date:match("%d%d%/(%d%d)") --01/(07)/19 14:36:42 --Remove first place zeros - if day:find("0") == 1 then - day = day:gsub("0", "") - end - if month:find("0") == 1 then - month = month:gsub("0", "") - end + if day:find("0") == 1 then day = day:gsub("0", "") end + if month:find("0") == 1 then month = month:gsub("0", "") end local localdate = day .. "." .. month .. "." .. year return localdate end @@ -26,12 +22,8 @@ local function getDate() local month = date:match("(%d%d)") --(01)/07/19 14:36:42 local day = date:match("%d%d%/(%d%d)") --01/(07)/19 14:36:42 --Remove first place zeros - if day:find("0") == 1 then - day = day:gsub("0", "") - end - if month:find("0") == 1 then - month = month:gsub("0", "") - end + if day:find("0") == 1 then day = day:gsub("0", "") end + if month:find("0") == 1 then month = month:gsub("0", "") end local localdate = day .. "." .. month .. "." .. year return localdate end @@ -40,4 +32,4 @@ local function getTime() local date = date() local localtime = date:match("%d%d%/%d%d%/%d%d%s(%d%d%p%d%d%p%d%d)") return localtime -end \ No newline at end of file +end diff --git a/WA snippets/DefStack.lua b/WA snippets/DefStack.lua index 20187b6..ab68c0a 100644 --- a/WA snippets/DefStack.lua +++ b/WA snippets/DefStack.lua @@ -1,6 +1,6 @@ aura_env.stackDef = function(def1, def2) - local x = 1 - def1 - local y = 1 - def2 - local var = x * y - return 1 - var + local x = 1 - def1 + local y = 1 - def2 + local var = x * y + return 1 - var end diff --git a/WA snippets/Find Aura ID.lua b/WA snippets/Find Aura ID.lua index b089b12..0d2a838 100644 --- a/WA snippets/Find Aura ID.lua +++ b/WA snippets/Find Aura ID.lua @@ -2,11 +2,9 @@ aura_env.auraID = function(spell) for i = 1, 40 do local name = UnitBuff("player", i) if name then - if name == spell then - return i - end + if name == spell then return i end else break end end -end \ No newline at end of file +end diff --git a/WA snippets/FormatTime.lua b/WA snippets/FormatTime.lua index 1f9d202..4687bb3 100644 --- a/WA snippets/FormatTime.lua +++ b/WA snippets/FormatTime.lua @@ -5,9 +5,7 @@ local function formatTime(time) res = res - 60 end s = res - if s < 10 then - s = string.format("0%d", s) - end + if s < 10 then s = string.format("0%d", s) end if type(s) ~= "string" then tostring(s) end return string.format("%d:%s", m, s) -end \ No newline at end of file +end diff --git a/WA snippets/Functions.lua b/WA snippets/Functions.lua index 8f95647..0aaf934 100644 --- a/WA snippets/Functions.lua +++ b/WA snippets/Functions.lua @@ -1,5 +1,3 @@ -local function name(arguments) -end +local function name(arguments) end -aura_env.name = function(arguments) -end +aura_env.name = function(arguments) end diff --git a/WA snippets/Get Item Link from chat link.lua b/WA snippets/Get Item Link from chat link.lua index 8ed35f7..4473421 100644 --- a/WA snippets/Get Item Link from chat link.lua +++ b/WA snippets/Get Item Link from chat link.lua @@ -1,5 +1,4 @@ - for itemLink in msg:gmatch("|%x+|Hitem:.-|h.-|h|r") do - itemID = itemLink:match("item:(%d+):") - icon = select(10, GetItemInfo(itemLink)) + itemID = itemLink:match("item:(%d+):") + icon = select(10, GetItemInfo(itemLink)) end diff --git a/WA snippets/GetSpellWithCooldown.lua b/WA snippets/GetSpellWithCooldown.lua index 2de3a00..803f976 100644 --- a/WA snippets/GetSpellWithCooldown.lua +++ b/WA snippets/GetSpellWithCooldown.lua @@ -4,16 +4,14 @@ while true do local spellName, spellSubName = GetSpellBookItemName(i, BOOKTYPE_SPELL) local type, ID = GetSpellBookItemInfo(i, BOOKTYPE_SPELL) if not spellName then - do break end + do + break + end end - if spellName:match("Mastery:") then - break - end + if spellName:match("Mastery:") then break end if spellName ~= "Revive Battle Pets" and spellName ~= "Mobile Banking" then - if (GetSpellBaseCooldown(ID) or 0) > 20000 then - print(spellName, ID, GetSpellBaseCooldown(ID) / 1000) - end + if (GetSpellBaseCooldown(ID) or 0) > 20000 then print(spellName, ID, GetSpellBaseCooldown(ID) / 1000) end end i = i + 1 @@ -23,19 +21,15 @@ for row = 1, 7 do for column = 1, 3 do local ID = select(6, GetTalentInfo(row, column, 1)) local spellName = select(2, GetTalentInfo(row, column, 1)) - if GetSpellBaseCooldown(ID) > 20000 then - print(spellName, ID, GetSpellBaseCooldown(ID) / 1000) - end - end + if GetSpellBaseCooldown(ID) > 20000 then print(spellName, ID, GetSpellBaseCooldown(ID) / 1000) end + end end for row = 1, 7 do for column = 1, 3 do local ID = select(6, GetPvpTalentInfo(row, column, 1)) if ID then local spellName = select(2, GetPvpTalentInfo(row, column, 1)) - if GetSpellBaseCooldown(ID) > 20000 then - print(spellName, ID, GetSpellBaseCooldown(ID) / 1000) - end + if GetSpellBaseCooldown(ID) > 20000 then print(spellName, ID, GetSpellBaseCooldown(ID) / 1000) end end - end -end \ No newline at end of file + end +end diff --git a/WA snippets/Hashing.lua b/WA snippets/Hashing.lua index ea8c29e..a4cce31 100644 --- a/WA snippets/Hashing.lua +++ b/WA snippets/Hashing.lua @@ -71,7 +71,7 @@ local function tonum(cchar) end local function findcollision(hash_table, array) local collisions = 0 - for k,v in ipairs(hash_table) do + for k, v in ipairs(hash_table) do for i = 1, table.getn(hash_table) do if i ~= k then if hash_table[i] == hash_table[k] then @@ -83,14 +83,14 @@ local function findcollision(hash_table, array) end return collisions end -aura_env.tohash = function(tempvar) +aura_env.tohash = function(tempvar) local charTable = {} local hash = 0 for char in tempvar:gmatch("%a") do charTable[#charTable + 1] = char hash = hash + tonum(char) hash = hash / table.getn(charTable) - end + end hash = math.floor(hash * 10000) return hash --print(aura_env.spellarray[hash], hash) @@ -98,4 +98,4 @@ end aura_env.checkbase = function(spell) if aura_env.spellarray[aura_env.tohash(spell)] == nil then return 0 end if aura_env.spellarray[aura_env.tohash(spell)] == spell then return 1 end -end \ No newline at end of file +end diff --git a/WA snippets/Jump God.lua b/WA snippets/Jump God.lua index c872aef..2f1e439 100644 --- a/WA snippets/Jump God.lua +++ b/WA snippets/Jump God.lua @@ -1,3 +1 @@ -hooksecurefunc( "JumpOrAscendStart", function() - DEFAULT_CHAT_FRAME:AddMessage( "Jump" ); -end ); \ No newline at end of file +hooksecurefunc("JumpOrAscendStart", function() DEFAULT_CHAT_FRAME:AddMessage("Jump") end) diff --git a/WA snippets/NameplateGlow.lua b/WA snippets/NameplateGlow.lua index de439df..7900cf9 100644 --- a/WA snippets/NameplateGlow.lua +++ b/WA snippets/NameplateGlow.lua @@ -1,8 +1,8 @@ aura_env.glow = function(unit, s) - local nameplate = C_NamePlate.GetNamePlateForUnit(unit) - if nameplate and s == 1 then - ActionButton_ShowOverlayGlow(nameplate.UnitFrame.HealthBar) - else - ActionButton_HideOverlayGlow(nameplate.UnitFrame.HealthBar) - end + local nameplate = C_NamePlate.GetNamePlateForUnit(unit) + if nameplate and s == 1 then + ActionButton_ShowOverlayGlow(nameplate.UnitFrame.HealthBar) + else + ActionButton_HideOverlayGlow(nameplate.UnitFrame.HealthBar) + end end diff --git a/WA snippets/New Texture and Anchor.lua b/WA snippets/New Texture and Anchor.lua index e34515e..adf8cfb 100644 --- a/WA snippets/New Texture and Anchor.lua +++ b/WA snippets/New Texture and Anchor.lua @@ -1,7 +1,7 @@ --INIT if not aura_env.region.texture then - local texture = aura_env.region:CreateTexture(nil, "OVERLAY") - aura_env.region.texture = texture + local texture = aura_env.region:CreateTexture(nil, "OVERLAY") + aura_env.region.texture = texture end aura_env.region:SetHeight(128) aura_env.region:SetWidth(128) @@ -12,6 +12,6 @@ aura_env.region.texture:SetAllPoints(aura_env.region) aura_env.region.texture:Show() local plate = C_NamePlate.GetNamePlateForUnit("target") if plate then - aura_env.region.texture:ClearAllPoints() - aura_env.region.texture:SetPoint("BOTTOM", plate, "BOTTOM", 0, 0) + aura_env.region.texture:ClearAllPoints() + aura_env.region.texture:SetPoint("BOTTOM", plate, "BOTTOM", 0, 0) end diff --git a/WA snippets/Print Table.lua b/WA snippets/Print Table.lua index 64f051f..c547e4d 100644 --- a/WA snippets/Print Table.lua +++ b/WA snippets/Print Table.lua @@ -1,6 +1,6 @@ local function printTable(table, n) if not n then n = 0 end - for k,v in pairs(table) do + for k, v in pairs(table) do local printText = "" for i = 1, n do printText = printText .. " " @@ -12,4 +12,4 @@ local function printTable(table, n) printTable(v, n) end end -end \ No newline at end of file +end diff --git a/WA snippets/Registers.lua b/WA snippets/Registers.lua index dd63ea6..e02f7d5 100644 --- a/WA snippets/Registers.lua +++ b/WA snippets/Registers.lua @@ -58,7 +58,7 @@ for i = 1, 10 do print(registers.lifo.push(i)) end print("") -for k,v in ipairs(registers.lifostack) do +for k, v in ipairs(registers.lifostack) do print(v) end print("") @@ -74,11 +74,11 @@ for i = 1, 4 do print(registers.lilo.push(i)) end print("") -for k,v in ipairs(registers.lilostack) do +for k, v in ipairs(registers.lilostack) do print(v) end print("") for i = 1, #registers.lilostack do print("pop") print(registers.lilo.pop()) -end \ No newline at end of file +end diff --git a/WA snippets/Round.lua b/WA snippets/Round.lua index 397e737..dcb8538 100644 --- a/WA snippets/Round.lua +++ b/WA snippets/Round.lua @@ -1,8 +1,8 @@ aura_env.round = function(var, n) - if (n) then + if n then var = math.floor((var * 10 ^ n) + 0.5) / (10 ^ n) else var = math.floor(var + 0.5) end return var -end \ No newline at end of file +end diff --git a/WA snippets/Shorten Number.lua b/WA snippets/Shorten Number.lua index 764f7bb..a02db57 100644 --- a/WA snippets/Shorten Number.lua +++ b/WA snippets/Shorten Number.lua @@ -1,20 +1,20 @@ aura_env.shorten = function(val) - local function round(var, n) - if (n) then - var = math.floor((var * 10 ^ n) + 0.5) / (10 ^ n) - else - var = math.floor(var + 0.5) - end - return var - end - local n = 2 - if val < 1e3 then - return round(val, n) - elseif val > 1e3 and val < 1e6 then - return round(val / 1e3, n) .. "k" - elseif val > 1e6 and val < 1e9 then - return round(val / 1e6, n) .. "M" - elseif val > 1e9 then - return round(val / 1e9, n) .. "G" - end + local function round(var, n) + if n then + var = math.floor((var * 10 ^ n) + 0.5) / (10 ^ n) + else + var = math.floor(var + 0.5) + end + return var + end + local n = 2 + if val < 1e3 then + return round(val, n) + elseif val > 1e3 and val < 1e6 then + return round(val / 1e3, n) .. "k" + elseif val > 1e6 and val < 1e9 then + return round(val / 1e6, n) .. "M" + elseif val > 1e9 then + return round(val / 1e9, n) .. "G" + end end diff --git a/WA snippets/Size to range.lua b/WA snippets/Size to range.lua index 38cccdb..4f00d6b 100644 --- a/WA snippets/Size to range.lua +++ b/WA snippets/Size to range.lua @@ -1,4 +1,4 @@ aura_env.range = function(val, min, max, max2) val = 1 - (((max - val) / (max - min)) * max2) return val -end \ No newline at end of file +end diff --git a/WA snippets/TableSort.lua b/WA snippets/TableSort.lua index 0c5b180..450df5f 100644 --- a/WA snippets/TableSort.lua +++ b/WA snippets/TableSort.lua @@ -1,22 +1,22 @@ local function sortArray(array) - local lastMax = 1000 - local maxv, maxk = 0, 0 - local temparray = {} - for k, v in ipairs(array) do - temparray[k] = v - end - local sorted = {} - for k, v in ipairs(array) do - maxv, maxk = 0, 0 - for k2, v2 in ipairs(temparray) do - if lastMax and v2 > maxv and v2 <= lastMax then - maxv = v2 - maxk = k2 - end - end - sorted[k] = maxv - table.remove(temparray, maxk) - lastMax = maxv - end - return sorted + local lastMax = 1000 + local maxv, maxk = 0, 0 + local temparray = {} + for k, v in ipairs(array) do + temparray[k] = v + end + local sorted = {} + for k, v in ipairs(array) do + maxv, maxk = 0, 0 + for k2, v2 in ipairs(temparray) do + if lastMax and v2 > maxv and v2 <= lastMax then + maxv = v2 + maxk = k2 + end + end + sorted[k] = maxv + table.remove(temparray, maxk) + lastMax = maxv + end + return sorted end diff --git a/WA snippets/UnitBuff.lua b/WA snippets/UnitBuff.lua index a111360..b2bda16 100644 --- a/WA snippets/UnitBuff.lua +++ b/WA snippets/UnitBuff.lua @@ -1,12 +1,10 @@ aura_env.CUnitBuff = function(spell) - for i = 1, 40 do - local name = UnitBuff("player", i) - if name then - if name == spell then - return UnitBuff("player", i) - end - else - break - end - end + for i = 1, 40 do + local name = UnitBuff("player", i) + if name then + if name == spell then return UnitBuff("player", i) end + else + break + end + end end diff --git a/WA snippets/UnitDebuffC.lua b/WA snippets/UnitDebuffC.lua index eae402c..611da16 100644 --- a/WA snippets/UnitDebuffC.lua +++ b/WA snippets/UnitDebuffC.lua @@ -1,25 +1,20 @@ - aura_env.UnitDebuffC = function(unit, spell) - for i = 1, 40 do - local name = UnitDebuff(unit, i) - if name then - if name == spell then - return UnitDebuff(unit, i) - end - else - return nil - end - end + for i = 1, 40 do + local name = UnitDebuff(unit, i) + if name then + if name == spell then return UnitDebuff(unit, i) end + else + return nil + end + end end aura_env.UnitBuffC = function(unit, spell) - for i = 1, 40 do - local name = UnitBuff(unit, i) - if name then - if name == spell then - return UnitBuff(unit, i) - end - else - return nil - end - end + for i = 1, 40 do + local name = UnitBuff(unit, i) + if name then + if name == spell then return UnitBuff(unit, i) end + else + return nil + end + end end diff --git a/WIP/Some Premade Documentation.lua b/WIP/Some Premade Documentation.lua index 2b3f0df..11510e3 100644 --- a/WIP/Some Premade Documentation.lua +++ b/WIP/Some Premade Documentation.lua @@ -1,11 +1,11 @@ ------------------------------------------------------- ----------Constants ------------------------------------------------------- -MAX_LFG_LIST_APPLICATIONS = 5; -MAX_LFG_LIST_SEARCH_AUTOCOMPLETE_ENTRIES = 6; -MAX_LFG_LIST_GROUP_DROPDOWN_ENTRIES = 10; -LFG_LIST_DELISTED_FONT_COLOR = {r=0.3, g=0.3, b=0.3}; -LFG_LIST_COMMENT_FONT_COLOR = {r=0.6, g=0.6, b=0.6}; +MAX_LFG_LIST_APPLICATIONS = 5 +MAX_LFG_LIST_SEARCH_AUTOCOMPLETE_ENTRIES = 6 +MAX_LFG_LIST_GROUP_DROPDOWN_ENTRIES = 10 +LFG_LIST_DELISTED_FONT_COLOR = { r = 0.3, g = 0.3, b = 0.3 } +LFG_LIST_COMMENT_FONT_COLOR = { r = 0.6, g = 0.6, b = 0.6 } ACTIVITY_RETURN_VALUES = { fullName = 1, @@ -19,7 +19,7 @@ ACTIVITY_RETURN_VALUES = { displayType = 9, orderIndex = 10, useHonorLevel = 11, -}; +} --Hard-coded values. Should probably make these part of the DB, but it gets a little more complicated with the per-expansion textures LFG_LIST_CATEGORY_TEXTURES = { @@ -33,7 +33,7 @@ LFG_LIST_CATEGORY_TEXTURES = { [8] = "battlegrounds", [9] = "ratedbgs", [10] = "ashran", -}; +} LFG_LIST_PER_EXPANSION_TEXTURES = { [0] = "classic", @@ -50,21 +50,24 @@ LFG_LIST_GROUP_DATA_ATLASES = { TANK = "groupfinder-icon-role-large-tank", HEALER = "groupfinder-icon-role-large-heal", DAMAGER = "groupfinder-icon-role-large-dps", -}; +} --Fill out classes -for i=1, #CLASS_SORT_ORDER do - LFG_LIST_GROUP_DATA_ATLASES[CLASS_SORT_ORDER[i]] = "groupfinder-icon-class-"..string.lower(CLASS_SORT_ORDER[i]); +for i = 1, #CLASS_SORT_ORDER do + LFG_LIST_GROUP_DATA_ATLASES[CLASS_SORT_ORDER[i]] = "groupfinder-icon-class-" .. string.lower(CLASS_SORT_ORDER[i]) end -LFG_LIST_GROUP_DATA_ROLE_ORDER = { "TANK", "HEALER", "DAMAGER" }; -LFG_LIST_GROUP_DATA_CLASS_ORDER = CLASS_SORT_ORDER; +LFG_LIST_GROUP_DATA_ROLE_ORDER = { "TANK", "HEALER", "DAMAGER" } +LFG_LIST_GROUP_DATA_CLASS_ORDER = CLASS_SORT_ORDER StaticPopupDialogs["LFG_LIST_INVITING_CONVERT_TO_RAID"] = { text = LFG_LIST_CONVERT_TO_RAID_WARNING, button1 = INVITE, button2 = CANCEL, - OnAccept = function(self, applicantID) ConvertToRaid(); C_LFGList.InviteApplicant(applicantID) end, + OnAccept = function(self, applicantID) + ConvertToRaid() + C_LFGList.InviteApplicant(applicantID) + end, timeout = 0, whileDead = 1, hideOnEscape = 1, @@ -73,230 +76,226 @@ StaticPopupDialogs["LFG_LIST_INVITING_CONVERT_TO_RAID"] = { ------------------------------------------------------- ----------Base Frame ------------------------------------------------------- -LFG_LIST_EDIT_BOX_TAB_CATEGORIES = {}; +LFG_LIST_EDIT_BOX_TAB_CATEGORIES = {} function LFGListFrame_OnLoad(self) - self:RegisterEvent("PARTY_LEADER_CHANGED"); - self:RegisterEvent("GROUP_ROSTER_UPDATE"); - self:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED"); - self:RegisterEvent("PLAYER_ROLES_ASSIGNED"); - self:RegisterEvent("LFG_LIST_AVAILABILITY_UPDATE"); - self:RegisterEvent("LFG_LIST_ACTIVE_ENTRY_UPDATE"); - self:RegisterEvent("LFG_LIST_ENTRY_CREATION_FAILED"); - self:RegisterEvent("LFG_LIST_SEARCH_RESULTS_RECEIVED"); - self:RegisterEvent("LFG_LIST_SEARCH_RESULT_UPDATED"); - self:RegisterEvent("LFG_LIST_SEARCH_FAILED"); - self:RegisterEvent("LFG_LIST_APPLICANT_LIST_UPDATED"); - self:RegisterEvent("LFG_LIST_APPLICANT_UPDATED"); - self:RegisterEvent("LFG_LIST_ENTRY_EXPIRED_TOO_MANY_PLAYERS"); - self:RegisterEvent("LFG_LIST_ENTRY_EXPIRED_TIMEOUT"); - self:RegisterEvent("LFG_LIST_APPLICATION_STATUS_UPDATED"); - self:RegisterEvent("VARIABLES_LOADED"); - self:RegisterEvent("ADDON_LOADED"); - self:RegisterEvent("UNIT_CONNECTION"); - for i=1, #LFG_LIST_ACTIVE_QUEUE_MESSAGE_EVENTS do - self:RegisterEvent(LFG_LIST_ACTIVE_QUEUE_MESSAGE_EVENTS[i]); + self:RegisterEvent("PARTY_LEADER_CHANGED") + self:RegisterEvent("GROUP_ROSTER_UPDATE") + self:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED") + self:RegisterEvent("PLAYER_ROLES_ASSIGNED") + self:RegisterEvent("LFG_LIST_AVAILABILITY_UPDATE") + self:RegisterEvent("LFG_LIST_ACTIVE_ENTRY_UPDATE") + self:RegisterEvent("LFG_LIST_ENTRY_CREATION_FAILED") + self:RegisterEvent("LFG_LIST_SEARCH_RESULTS_RECEIVED") + self:RegisterEvent("LFG_LIST_SEARCH_RESULT_UPDATED") + self:RegisterEvent("LFG_LIST_SEARCH_FAILED") + self:RegisterEvent("LFG_LIST_APPLICANT_LIST_UPDATED") + self:RegisterEvent("LFG_LIST_APPLICANT_UPDATED") + self:RegisterEvent("LFG_LIST_ENTRY_EXPIRED_TOO_MANY_PLAYERS") + self:RegisterEvent("LFG_LIST_ENTRY_EXPIRED_TIMEOUT") + self:RegisterEvent("LFG_LIST_APPLICATION_STATUS_UPDATED") + self:RegisterEvent("VARIABLES_LOADED") + self:RegisterEvent("ADDON_LOADED") + self:RegisterEvent("UNIT_CONNECTION") + for i = 1, #LFG_LIST_ACTIVE_QUEUE_MESSAGE_EVENTS do + self:RegisterEvent(LFG_LIST_ACTIVE_QUEUE_MESSAGE_EVENTS[i]) end - LFGListFrame_SetBaseFilters(self, LE_LFG_LIST_FILTER_PVE); - LFGListFrame_SetActivePanel(self, self.NothingAvailable); + LFGListFrame_SetBaseFilters(self, LE_LFG_LIST_FILTER_PVE) + LFGListFrame_SetActivePanel(self, self.NothingAvailable) self.EventsInBackground = { - LFG_LIST_SEARCH_FAILED = { self.SearchPanel }; - }; + LFG_LIST_SEARCH_FAILED = { self.SearchPanel }, + } end function LFGListFrame_OnEvent(self, event, ...) - if ( event == "LFG_LIST_AVAILABILITY_UPDATE" ) then - LFGListFrame_FixPanelValid(self); - elseif ( event == "LFG_LIST_ACTIVE_ENTRY_UPDATE" ) then - local createdNew = ...; - LFGListFrame_FixPanelValid(self); --If our current panel isn't valid, change it. - if ( C_LFGList.GetActiveEntryInfo() ) then - self.EntryCreation.WorkingCover:Hide(); - end - if ( createdNew ) then - PlaySound("PVPEnterQueue"); - end - elseif ( event == "LFG_LIST_ENTRY_CREATION_FAILED" ) then - self.EntryCreation.WorkingCover:Hide(); - elseif ( event == "LFG_LIST_APPLICANT_LIST_UPDATED" ) then - local hasNewPending, hasNewPendingWithData = ...; - if ( hasNewPending and hasNewPendingWithData and LFGListUtil_IsEntryEmpowered() ) then - local isLeader = UnitIsGroupLeader("player", LE_PARTY_CATEGORY_HOME); - local autoAccept = select(9, C_LFGList.GetActiveEntryInfo()); - local numPings = nil; - if ( not isLeader ) then - numPings = 6; - end + if event == "LFG_LIST_AVAILABILITY_UPDATE" then + LFGListFrame_FixPanelValid(self) + elseif event == "LFG_LIST_ACTIVE_ENTRY_UPDATE" then + local createdNew = ... + LFGListFrame_FixPanelValid(self) --If our current panel isn't valid, change it. + if C_LFGList.GetActiveEntryInfo() then self.EntryCreation.WorkingCover:Hide() end + if createdNew then PlaySound("PVPEnterQueue") end + elseif event == "LFG_LIST_ENTRY_CREATION_FAILED" then + self.EntryCreation.WorkingCover:Hide() + elseif event == "LFG_LIST_APPLICANT_LIST_UPDATED" then + local hasNewPending, hasNewPendingWithData = ... + if hasNewPending and hasNewPendingWithData and LFGListUtil_IsEntryEmpowered() then + local isLeader = UnitIsGroupLeader("player", LE_PARTY_CATEGORY_HOME) + local autoAccept = select(9, C_LFGList.GetActiveEntryInfo()) + local numPings = nil + if not isLeader then numPings = 6 end --Non-leaders don't get another ping until they open the panel or we reset the count to 0 - if ( isLeader or not self.stopAssistPings ) then - if ( autoAccept ) then + if isLeader or not self.stopAssistPings then + if autoAccept then --Check if we would be auto-inviting more people if we were in a raid - if ( not IsInRaid(LE_PARTY_CATEGORY_HOME) and - GetNumGroupMembers(LE_PARTY_CATEGORY_HOME) + C_LFGList.GetNumInvitedApplicantMembers() + C_LFGList.GetNumPendingApplicantMembers() > (MAX_PARTY_MEMBERS+1) ) then - if ( self.displayedAutoAcceptConvert ) then - QueueStatusMinimapButton_SetGlowLock(QueueStatusMinimapButton, "lfglist-applicant", true, numPings); - self.stopAssistPings = true; + if + not IsInRaid(LE_PARTY_CATEGORY_HOME) + and GetNumGroupMembers(LE_PARTY_CATEGORY_HOME) + + C_LFGList.GetNumInvitedApplicantMembers() + + C_LFGList.GetNumPendingApplicantMembers() + > (MAX_PARTY_MEMBERS + 1) + then + if self.displayedAutoAcceptConvert then + QueueStatusMinimapButton_SetGlowLock( + QueueStatusMinimapButton, + "lfglist-applicant", + true, + numPings + ) + self.stopAssistPings = true else - self.displayedAutoAcceptConvert = true; - StaticPopup_Show("LFG_LIST_AUTO_ACCEPT_CONVERT_TO_RAID"); + self.displayedAutoAcceptConvert = true + StaticPopup_Show("LFG_LIST_AUTO_ACCEPT_CONVERT_TO_RAID") end end - elseif ( not self:IsVisible() ) then - QueueStatusMinimapButton_SetGlowLock(QueueStatusMinimapButton, "lfglist-applicant", true, numPings); - self.stopAssistPings = true; + elseif not self:IsVisible() then + QueueStatusMinimapButton_SetGlowLock(QueueStatusMinimapButton, "lfglist-applicant", true, numPings) + self.stopAssistPings = true end end end - elseif ( event == "LFG_LIST_APPLICANT_UPDATED" ) then - local numApps, numActiveApps = C_LFGList.GetNumApplicants(); - if ( numActiveApps == 0 ) then - QueueStatusMinimapButton_SetGlowLock(QueueStatusMinimapButton, "lfglist-applicant", false); - self.stopAssistPings = false; + elseif event == "LFG_LIST_APPLICANT_UPDATED" then + local numApps, numActiveApps = C_LFGList.GetNumApplicants() + if numActiveApps == 0 then + QueueStatusMinimapButton_SetGlowLock(QueueStatusMinimapButton, "lfglist-applicant", false) + self.stopAssistPings = false end - elseif ( event == "LFG_LIST_ENTRY_EXPIRED_TOO_MANY_PLAYERS" ) then - if ( UnitIsGroupLeader("player", LE_PARTY_CATEGORY_HOME) ) then - StaticPopup_Show("LFG_LIST_ENTRY_EXPIRED_TOO_MANY_PLAYERS"); + elseif event == "LFG_LIST_ENTRY_EXPIRED_TOO_MANY_PLAYERS" then + if UnitIsGroupLeader("player", LE_PARTY_CATEGORY_HOME) then + StaticPopup_Show("LFG_LIST_ENTRY_EXPIRED_TOO_MANY_PLAYERS") end - elseif ( event == "LFG_LIST_ENTRY_EXPIRED_TIMEOUT" ) then - if ( UnitIsGroupLeader("player", LE_PARTY_CATEGORY_HOME) ) then - StaticPopup_Show("LFG_LIST_ENTRY_EXPIRED_TIMEOUT"); + elseif event == "LFG_LIST_ENTRY_EXPIRED_TIMEOUT" then + if UnitIsGroupLeader("player", LE_PARTY_CATEGORY_HOME) then + StaticPopup_Show("LFG_LIST_ENTRY_EXPIRED_TIMEOUT") end - elseif ( event == "LFG_LIST_APPLICATION_STATUS_UPDATED" ) then - local id, newStatus, oldStatus = ...; - if ( newStatus == "declined" ) then - local info = ChatTypeInfo["SYSTEM"]; - local id, activity, name = C_LFGList.GetSearchResultInfo(id); - DEFAULT_CHAT_FRAME:AddMessage(string.format(LFG_LIST_APP_DECLINED_MESSAGE, name), info.r, info.g, info.b); - elseif ( newStatus == "timedout" ) then - local info = ChatTypeInfo["SYSTEM"]; - local id, activity, name = C_LFGList.GetSearchResultInfo(id); - DEFAULT_CHAT_FRAME:AddMessage(string.format(LFG_LIST_APP_TIMED_OUT_MESSAGE, name), info.r, info.g, info.b); + elseif event == "LFG_LIST_APPLICATION_STATUS_UPDATED" then + local id, newStatus, oldStatus = ... + if newStatus == "declined" then + local info = ChatTypeInfo["SYSTEM"] + local id, activity, name = C_LFGList.GetSearchResultInfo(id) + DEFAULT_CHAT_FRAME:AddMessage(string.format(LFG_LIST_APP_DECLINED_MESSAGE, name), info.r, info.g, info.b) + elseif newStatus == "timedout" then + local info = ChatTypeInfo["SYSTEM"] + local id, activity, name = C_LFGList.GetSearchResultInfo(id) + DEFAULT_CHAT_FRAME:AddMessage(string.format(LFG_LIST_APP_TIMED_OUT_MESSAGE, name), info.r, info.g, info.b) end - elseif ( event == "VARIABLES_LOADED" or event == "ADDON_LOADED" ) then - if ( not GetCVarBitfield("closedInfoFrames", LE_FRAME_TUTORIAL_LFG_LIST) and UnitLevel("player") >= 90 ) then - PremadeGroupsPvETutorialAlert:Show(); - if ( PremadeGroupsPvPTutorialAlert ) then - PremadeGroupsPvPTutorialAlert:Show(); - end + elseif event == "VARIABLES_LOADED" or event == "ADDON_LOADED" then + if not GetCVarBitfield("closedInfoFrames", LE_FRAME_TUTORIAL_LFG_LIST) and UnitLevel("player") >= 90 then + PremadeGroupsPvETutorialAlert:Show() + if PremadeGroupsPvPTutorialAlert then PremadeGroupsPvPTutorialAlert:Show() end end - elseif ( event == "GROUP_ROSTER_UPDATE" ) then - if ( not IsInGroup(LE_PARTY_CATEGORY_HOME) ) then - self.displayedAutoAcceptConvert = false; - end - end - - --Dispatch the event to our currently active panel - local onEvent = self.activePanel and self.activePanel:GetScript("OnEvent"); - if ( onEvent ) then - onEvent(self.activePanel, event, ...); + elseif event == "GROUP_ROSTER_UPDATE" then + if not IsInGroup(LE_PARTY_CATEGORY_HOME) then self.displayedAutoAcceptConvert = false end end + --Dispatch the event to our currently active panel + local onEvent = self.activePanel and self.activePanel:GetScript("OnEvent") + if onEvent then onEvent(self.activePanel, event, ...) end + --Dispatch the event to any panels that want the event in the background - local bg = self.EventsInBackground[event]; - if ( bg ) then - for i=1, #bg do - if ( bg[i] ~= self.activePanel ) then - bg[i]:GetScript("OnEvent")(bg[i], event, ...); - end + local bg = self.EventsInBackground[event] + if bg then + for i = 1, #bg do + if bg[i] ~= self.activePanel then bg[i]:GetScript("OnEvent")(bg[i], event, ...) end end end end function LFGListFrame_OnShow(self) - LFGListFrame_FixPanelValid(self); - C_LFGList.RequestAvailableActivities(); - self.stopAssistPings = false; - QueueStatusMinimapButton_SetGlowLock(QueueStatusMinimapButton, "lfglist-applicant", false); - PlaySound("igCharacterInfoOpen"); + LFGListFrame_FixPanelValid(self) + C_LFGList.RequestAvailableActivities() + self.stopAssistPings = false + QueueStatusMinimapButton_SetGlowLock(QueueStatusMinimapButton, "lfglist-applicant", false) + PlaySound("igCharacterInfoOpen") end function LFGListFrame_SetActivePanel(self, panel) - if ( self.activePanel ) then - self.activePanel:Hide(); - end - self.activePanel = panel; - self.activePanel:Show(); + if self.activePanel then self.activePanel:Hide() end + self.activePanel = panel + self.activePanel:Show() end function LFGListFrame_IsPanelValid(self, panel) - local listed = C_LFGList.GetActiveEntryInfo(); + local listed = C_LFGList.GetActiveEntryInfo() --If we're listed, make sure we're either viewing applicants or editing our group - if ( listed and panel ~= self.ApplicationViewer and not (panel == self.EntryCreation and LFGListEntryCreation_IsEditMode(self.EntryCreation)) ) then - return false; + if + listed + and panel ~= self.ApplicationViewer + and not (panel == self.EntryCreation and LFGListEntryCreation_IsEditMode(self.EntryCreation)) + then + return false end --If we're not listed, we can't be viewing applicants or editing our group - if ( not listed and (panel == self.ApplicationViewer or - (panel == self.EntryCreation and LFGListEntryCreation_IsEditMode(self.EntryCreation)) ) ) then - return false; + if + not listed + and ( + panel == self.ApplicationViewer + or (panel == self.EntryCreation and LFGListEntryCreation_IsEditMode(self.EntryCreation)) + ) + then + return false end --Make sure we aren't creating a new entry with different baseFilters - if ( panel == self.EntryCreation ) then - if ( not LFGListEntryCreation_IsEditMode(self.EntryCreation) and self.baseFilters ~= self.EntryCreation.baseFilters ) then - return false; + if panel == self.EntryCreation then + if + not LFGListEntryCreation_IsEditMode(self.EntryCreation) + and self.baseFilters ~= self.EntryCreation.baseFilters + then + return false end end --Make sure we aren't searching with different baseFilters - if ( panel == self.SearchPanel ) then - if ( self.baseFilters ~= self.SearchPanel.preferredFilters ) then - return false; - end + if panel == self.SearchPanel then + if self.baseFilters ~= self.SearchPanel.preferredFilters then return false end end --If we're a trial account, we can only see the NothingAvailable and ApplicationViewer - if ( IsRestrictedAccount() ) then - if ( panel ~= self.NothingAvailable and panel ~= self.ApplicationViewer ) then - return false; - end + if IsRestrictedAccount() then + if panel ~= self.NothingAvailable and panel ~= self.ApplicationViewer then return false end end --If we don't have any available activities, say so - if ( #C_LFGList.GetAvailableCategories(self.baseFilters) == 0 ) then - if ( panel == self.CategorySelection ) then - return false; - end + if #C_LFGList.GetAvailableCategories(self.baseFilters) == 0 then + if panel == self.CategorySelection then return false end else - if ( panel == self.NothingAvailable and not IsRestrictedAccount() ) then - return false; - end + if panel == self.NothingAvailable and not IsRestrictedAccount() then return false end end - return true; + return true end function LFGListFrame_GetBestPanel(self) - local listed = C_LFGList.GetActiveEntryInfo(); + local listed = C_LFGList.GetActiveEntryInfo() - if ( listed ) then - return self.ApplicationViewer; - elseif ( IsRestrictedAccount() ) then - return self.NothingAvailable; - elseif ( #C_LFGList.GetAvailableCategories(self.baseFilters) == 0 ) then - return self.NothingAvailable; + if listed then + return self.ApplicationViewer + elseif IsRestrictedAccount() then + return self.NothingAvailable + elseif #C_LFGList.GetAvailableCategories(self.baseFilters) == 0 then + return self.NothingAvailable else - return self.CategorySelection; + return self.CategorySelection end end function LFGListFrame_FixPanelValid(self) - if ( not LFGListFrame_IsPanelValid(self, self.activePanel) ) then - LFGListFrame_SetActivePanel(self, LFGListFrame_GetBestPanel(self)); + if not LFGListFrame_IsPanelValid(self, self.activePanel) then + LFGListFrame_SetActivePanel(self, LFGListFrame_GetBestPanel(self)) end end function LFGListFrame_SetBaseFilters(self, filters) - self.baseFilters = filters; + self.baseFilters = filters --If we need to change panels, do so - LFGListFrame_FixPanelValid(self); + LFGListFrame_FixPanelValid(self) --Update the current panel - if ( self.activePanel and self.activePanel.updateAll ) then - self.activePanel.updateAll(self.activePanel); - end + if self.activePanel and self.activePanel.updateAll then self.activePanel.updateAll(self.activePanel) end end ------------------------------------------------------- @@ -304,881 +303,908 @@ end ------------------------------------------------------- function LFGListNothingAvailable_OnEvent(self, event, ...) --Note: events are dispatched from the base frame. Add RegisterEvent there. - if ( event == "LFG_LIST_AVAILABILITY_UPDATE" ) then - LFGListNothingAvailable_Update(self); - end + if event == "LFG_LIST_AVAILABILITY_UPDATE" then LFGListNothingAvailable_Update(self) end end function LFGListNothingAvailable_Update(self) - if ( IsRestrictedAccount() ) then - self.Label:SetText(ERR_RESTRICTED_ACCOUNT_LFG_LIST_TRIAL); - elseif ( C_LFGList.HasActivityList() ) then - self.Label:SetText(NO_LFG_LIST_AVAILABLE); + if IsRestrictedAccount() then + self.Label:SetText(ERR_RESTRICTED_ACCOUNT_LFG_LIST_TRIAL) + elseif C_LFGList.HasActivityList() then + self.Label:SetText(NO_LFG_LIST_AVAILABLE) else - self.Label:SetText(LFG_LIST_LOADING); + self.Label:SetText(LFG_LIST_LOADING) end end ------------------------------------------------------- ----------Category selection ------------------------------------------------------- -function LFGListCategorySelection_OnLoad(self) - LFGListCategorySelection_UpdateNavButtons(self); -end +function LFGListCategorySelection_OnLoad(self) LFGListCategorySelection_UpdateNavButtons(self) end function LFGListCategorySelection_OnEvent(self, event, ...) --Note: events are dispatched from the base frame. Add RegisterEvent there. - if ( event == "LFG_LIST_AVAILABILITY_UPDATE" ) then - LFGListCategorySelection_UpdateCategoryButtons(self); - end + if event == "LFG_LIST_AVAILABILITY_UPDATE" then LFGListCategorySelection_UpdateCategoryButtons(self) end - if ( tContains(LFG_LIST_ACTIVE_QUEUE_MESSAGE_EVENTS, event) ) then - LFGListCategorySelection_UpdateNavButtons(self); - end + if tContains(LFG_LIST_ACTIVE_QUEUE_MESSAGE_EVENTS, event) then LFGListCategorySelection_UpdateNavButtons(self) end end function LFGListCategorySelection_OnShow(self) - LFGListCategorySelection_UpdateCategoryButtons(self); - LFGListCategorySelection_UpdateNavButtons(self); + LFGListCategorySelection_UpdateCategoryButtons(self) + LFGListCategorySelection_UpdateNavButtons(self) end function LFGListCategorySelection_UpdateCategoryButtons(self) - local baseFilters = self:GetParent().baseFilters; - local categories = C_LFGList.GetAvailableCategories(baseFilters); + local baseFilters = self:GetParent().baseFilters + local categories = C_LFGList.GetAvailableCategories(baseFilters) - local nextBtn = 1; - local hasSelected = false; + local nextBtn = 1 + local hasSelected = false --Update category buttons - for i=1, #categories do - local isSelected = false; - local categoryID = categories[i]; - local name, separateRecommended = C_LFGList.GetCategoryInfo(categoryID); + for i = 1, #categories do + local isSelected = false + local categoryID = categories[i] + local name, separateRecommended = C_LFGList.GetCategoryInfo(categoryID) - if ( separateRecommended ) then - nextBtn, isSelected = LFGListCategorySelection_AddButton(self, nextBtn, categoryID, LE_LFG_LIST_FILTER_RECOMMENDED); - hasSelected = hasSelected or isSelected; - nextBtn, isSelected = LFGListCategorySelection_AddButton(self, nextBtn, categoryID, LE_LFG_LIST_FILTER_NOT_RECOMMENDED); + if separateRecommended then + nextBtn, isSelected = + LFGListCategorySelection_AddButton(self, nextBtn, categoryID, LE_LFG_LIST_FILTER_RECOMMENDED) + hasSelected = hasSelected or isSelected + nextBtn, isSelected = + LFGListCategorySelection_AddButton(self, nextBtn, categoryID, LE_LFG_LIST_FILTER_NOT_RECOMMENDED) else - nextBtn, isSelected = LFGListCategorySelection_AddButton(self, nextBtn, categoryID, 0); + nextBtn, isSelected = LFGListCategorySelection_AddButton(self, nextBtn, categoryID, 0) end - hasSelected = hasSelected or isSelected; + hasSelected = hasSelected or isSelected end --Hide any extra buttons - for i=nextBtn, #self.CategoryButtons do - self.CategoryButtons[i]:Hide(); + for i = nextBtn, #self.CategoryButtons do + self.CategoryButtons[i]:Hide() end --If the selected item isn't in the list, deselect it - if ( self.selectedCategory and not hasSelected ) then - LFGListCategorySelection_SelectCategory(self, nil, nil); - end + if self.selectedCategory and not hasSelected then LFGListCategorySelection_SelectCategory(self, nil, nil) end end function LFGListCategorySelection_AddButton(self, btnIndex, categoryID, filters) --Check that we have activities with this filter - local baseFilters = self:GetParent().baseFilters; - local allFilters = bit.bor(baseFilters, filters); + local baseFilters = self:GetParent().baseFilters + local allFilters = bit.bor(baseFilters, filters) - if ( filters ~= 0 and #C_LFGList.GetAvailableActivities(categoryID, nil, allFilters) == 0) then - return btnIndex, false; + if filters ~= 0 and #C_LFGList.GetAvailableActivities(categoryID, nil, allFilters) == 0 then + return btnIndex, false end - local name, separateRecommended = C_LFGList.GetCategoryInfo(categoryID); + local name, separateRecommended = C_LFGList.GetCategoryInfo(categoryID) - local button = self.CategoryButtons[btnIndex]; - if ( not button ) then - self.CategoryButtons[btnIndex] = CreateFrame("BUTTON", nil, self, "LFGListCategoryTemplate"); - self.CategoryButtons[btnIndex]:SetPoint("TOP", self.CategoryButtons[btnIndex - 1], "BOTTOM", 0, -3); - button = self.CategoryButtons[btnIndex]; + local button = self.CategoryButtons[btnIndex] + if not button then + self.CategoryButtons[btnIndex] = CreateFrame("BUTTON", nil, self, "LFGListCategoryTemplate") + self.CategoryButtons[btnIndex]:SetPoint("TOP", self.CategoryButtons[btnIndex - 1], "BOTTOM", 0, -3) + button = self.CategoryButtons[btnIndex] end - button:SetText(LFGListUtil_GetDecoratedCategoryName(name, filters, true)); - button.categoryID = categoryID; - button.filters = filters; + button:SetText(LFGListUtil_GetDecoratedCategoryName(name, filters, true)) + button.categoryID = categoryID + button.filters = filters - local atlasName = nil; - if ( bit.band(allFilters, LE_LFG_LIST_FILTER_RECOMMENDED) ~= 0 ) then - atlasName = "groupfinder-button-"..(LFG_LIST_CATEGORY_TEXTURES[categoryID] or "raids").."-"..LFG_LIST_PER_EXPANSION_TEXTURES[LFGListUtil_GetCurrentExpansion()]; - elseif ( bit.band(allFilters, LE_LFG_LIST_FILTER_NOT_RECOMMENDED) ~= 0 ) then - atlasName = "groupfinder-button-"..(LFG_LIST_CATEGORY_TEXTURES[categoryID] or "raids").."-"..LFG_LIST_PER_EXPANSION_TEXTURES[math.max(0,LFGListUtil_GetCurrentExpansion() - 1)]; + local atlasName = nil + if bit.band(allFilters, LE_LFG_LIST_FILTER_RECOMMENDED) ~= 0 then + atlasName = "groupfinder-button-" + .. (LFG_LIST_CATEGORY_TEXTURES[categoryID] or "raids") + .. "-" + .. LFG_LIST_PER_EXPANSION_TEXTURES[LFGListUtil_GetCurrentExpansion()] + elseif bit.band(allFilters, LE_LFG_LIST_FILTER_NOT_RECOMMENDED) ~= 0 then + atlasName = "groupfinder-button-" + .. (LFG_LIST_CATEGORY_TEXTURES[categoryID] or "raids") + .. "-" + .. LFG_LIST_PER_EXPANSION_TEXTURES[math.max(0, LFGListUtil_GetCurrentExpansion() - 1)] else - atlasName = "groupfinder-button-"..(LFG_LIST_CATEGORY_TEXTURES[categoryID] or "questing"); + atlasName = "groupfinder-button-" .. (LFG_LIST_CATEGORY_TEXTURES[categoryID] or "questing") end - local suffix = ""; - if ( bit.band(allFilters, LE_LFG_LIST_FILTER_PVE) ~= 0 ) then - suffix = "-pve"; - elseif ( bit.band(allFilters, LE_LFG_LIST_FILTER_PVP) ~= 0 ) then - suffix = "-pvp"; + local suffix = "" + if bit.band(allFilters, LE_LFG_LIST_FILTER_PVE) ~= 0 then + suffix = "-pve" + elseif bit.band(allFilters, LE_LFG_LIST_FILTER_PVP) ~= 0 then + suffix = "-pvp" end --Try with the suffix and then without it - if ( not button.Icon:SetAtlas(atlasName..suffix) ) then - button.Icon:SetAtlas(atlasName); - end + if not button.Icon:SetAtlas(atlasName .. suffix) then button.Icon:SetAtlas(atlasName) end - local selected = self.selectedCategory == categoryID and self.selectedFilters == filters; - button.SelectedTexture:SetShown(selected); - button:Show(); + local selected = self.selectedCategory == categoryID and self.selectedFilters == filters + button.SelectedTexture:SetShown(selected) + button:Show() - return btnIndex + 1, selected; + return btnIndex + 1, selected end function LFGListCategorySelection_SelectCategory(self, categoryID, filters) - self.selectedCategory = categoryID; - self.selectedFilters = filters; - LFGListCategorySelection_UpdateCategoryButtons(self); - LFGListCategorySelection_UpdateNavButtons(self); + self.selectedCategory = categoryID + self.selectedFilters = filters + LFGListCategorySelection_UpdateCategoryButtons(self) + LFGListCategorySelection_UpdateNavButtons(self) end function LFGListCategorySelection_UpdateNavButtons(self) - local findEnabled, startEnabled = true, true; - self.FindGroupButton.tooltip = nil; - self.StartGroupButton.tooltip = nil; + local findEnabled, startEnabled = true, true + self.FindGroupButton.tooltip = nil + self.StartGroupButton.tooltip = nil --Check if the user needs to select a category - if ( not self.selectedCategory ) then - findEnabled = false; - self.FindGroupButton.tooltip = LFG_LIST_SELECT_A_CATEGORY; - startEnabled = false; - self.StartGroupButton.tooltip = LFG_LIST_SELECT_A_CATEGORY; + if not self.selectedCategory then + findEnabled = false + self.FindGroupButton.tooltip = LFG_LIST_SELECT_A_CATEGORY + startEnabled = false + self.StartGroupButton.tooltip = LFG_LIST_SELECT_A_CATEGORY end --Check if the user can't start a group due to not being a leader - if ( IsInGroup(LE_PARTY_CATEGORY_HOME) and not UnitIsGroupLeader("player", LE_PARTY_CATEGORY_HOME) ) then - startEnabled = false; - self.StartGroupButton.tooltip = LFG_LIST_NOT_LEADER; + if IsInGroup(LE_PARTY_CATEGORY_HOME) and not UnitIsGroupLeader("player", LE_PARTY_CATEGORY_HOME) then + startEnabled = false + self.StartGroupButton.tooltip = LFG_LIST_NOT_LEADER end --Check if the player is currently in some incompatible queue - local messageStart = LFGListUtil_GetActiveQueueMessage(false); - if ( messageStart ) then - startEnabled = false; - self.StartGroupButton.tooltip = messageStart; + local messageStart = LFGListUtil_GetActiveQueueMessage(false) + if messageStart then + startEnabled = false + self.StartGroupButton.tooltip = messageStart end - self.FindGroupButton:SetEnabled(findEnabled); - self.StartGroupButton:SetEnabled(startEnabled); + self.FindGroupButton:SetEnabled(findEnabled) + self.StartGroupButton:SetEnabled(startEnabled) end function LFGListCategorySelectionStartGroupButton_OnClick(self) - local panel = self:GetParent(); - if ( not panel.selectedCategory ) then - return; - end + local panel = self:GetParent() + if not panel.selectedCategory then return end - PlaySound("igMainMenuOptionCheckBoxOn"); + PlaySound("igMainMenuOptionCheckBoxOn") - local baseFilters = panel:GetParent().baseFilters; + local baseFilters = panel:GetParent().baseFilters - local entryCreation = panel:GetParent().EntryCreation; + local entryCreation = panel:GetParent().EntryCreation - LFGListEntryCreation_Show(entryCreation, baseFilters, panel.selectedCategory, panel.selectedFilters); + LFGListEntryCreation_Show(entryCreation, baseFilters, panel.selectedCategory, panel.selectedFilters) end function LFGListCategorySelectionFindGroupButton_OnClick(self) - local panel = self:GetParent(); - if ( not panel.selectedCategory ) then - return; - end + local panel = self:GetParent() + if not panel.selectedCategory then return end - PlaySound("igMainMenuOptionCheckBoxOn"); + PlaySound("igMainMenuOptionCheckBoxOn") - local baseFilters = panel:GetParent().baseFilters; + local baseFilters = panel:GetParent().baseFilters - local searchPanel = panel:GetParent().SearchPanel; - LFGListSearchPanel_Clear(searchPanel); - LFGListSearchPanel_SetCategory(searchPanel, panel.selectedCategory, panel.selectedFilters, baseFilters); - LFGListSearchPanel_DoSearch(searchPanel); - LFGListFrame_SetActivePanel(panel:GetParent(), searchPanel); + local searchPanel = panel:GetParent().SearchPanel + LFGListSearchPanel_Clear(searchPanel) + LFGListSearchPanel_SetCategory(searchPanel, panel.selectedCategory, panel.selectedFilters, baseFilters) + LFGListSearchPanel_DoSearch(searchPanel) + LFGListFrame_SetActivePanel(panel:GetParent(), searchPanel) end --The individual category buttons function LFGListCategorySelectionButton_OnClick(self) - local panel = self:GetParent(); - PlaySound("igMainMenuOptionCheckBoxOn"); - LFGListCategorySelection_SelectCategory(panel, self.categoryID, self.filters); + local panel = self:GetParent() + PlaySound("igMainMenuOptionCheckBoxOn") + LFGListCategorySelection_SelectCategory(panel, self.categoryID, self.filters) end ------------------------------------------------------- ----------List Entry Creation ------------------------------------------------------- function LFGListEntryCreation_OnLoad(self) - self.Name.Instructions:SetText(LFG_LIST_ENTER_NAME); - self.Description.EditBox:SetScript("OnEnterPressed", nop); - LFGListUtil_SetUpDropDown(self, self.CategoryDropDown, LFGListEntryCreation_PopulateCategories, LFGListEntryCreation_OnCategorySelected); - LFGListUtil_SetUpDropDown(self, self.GroupDropDown, LFGListEntryCreation_PopulateGroups, LFGListEntryCreation_OnGroupSelected); - LFGListUtil_SetUpDropDown(self, self.ActivityDropDown, LFGListEntryCreation_PopulateActivities, LFGListEntryCreation_OnActivitySelected); - LFGListEntryCreation_SetBaseFilters(self, 0); + self.Name.Instructions:SetText(LFG_LIST_ENTER_NAME) + self.Description.EditBox:SetScript("OnEnterPressed", nop) + LFGListUtil_SetUpDropDown( + self, + self.CategoryDropDown, + LFGListEntryCreation_PopulateCategories, + LFGListEntryCreation_OnCategorySelected + ) + LFGListUtil_SetUpDropDown( + self, + self.GroupDropDown, + LFGListEntryCreation_PopulateGroups, + LFGListEntryCreation_OnGroupSelected + ) + LFGListUtil_SetUpDropDown( + self, + self.ActivityDropDown, + LFGListEntryCreation_PopulateActivities, + LFGListEntryCreation_OnActivitySelected + ) + LFGListEntryCreation_SetBaseFilters(self, 0) end function LFGListEntryCreation_OnEvent(self, event, ...) - if ( event == "GROUP_ROSTER_UPDATE" ) then - LFGListEntryCreation_UpdateValidState(self); - elseif ( tContains(LFG_LIST_ACTIVE_QUEUE_MESSAGE_EVENTS, event) ) then - LFGListEntryCreation_UpdateValidState(self); + if event == "GROUP_ROSTER_UPDATE" then + LFGListEntryCreation_UpdateValidState(self) + elseif tContains(LFG_LIST_ACTIVE_QUEUE_MESSAGE_EVENTS, event) then + LFGListEntryCreation_UpdateValidState(self) end end -function LFGListEntryCreation_OnShow(self) - LFGListEntryCreation_UpdateValidState(self); -end +function LFGListEntryCreation_OnShow(self) LFGListEntryCreation_UpdateValidState(self) end function LFGListEntryCreation_Show(self, baseFilters, selectedCategory, selectedFilters) --If this was what the player selected last time, just leave it filled out with the same info. --Also don't save it for categories that try to set it to the current area. - local _, _, _, preferCurrentArea = C_LFGList.GetCategoryInfo(selectedCategory); - local keepOldData = not preferCurrentArea and self.selectedCategory == selectedCategory and baseFilters == self.baseFilters and self.selectedFilters == selectedFilters; - LFGListEntryCreation_SetBaseFilters(self, baseFilters); - if ( not keepOldData ) then - LFGListEntryCreation_Clear(self); - LFGListEntryCreation_Select(self, selectedFilters, selectedCategory); + local _, _, _, preferCurrentArea = C_LFGList.GetCategoryInfo(selectedCategory) + local keepOldData = not preferCurrentArea + and self.selectedCategory == selectedCategory + and baseFilters == self.baseFilters + and self.selectedFilters == selectedFilters + LFGListEntryCreation_SetBaseFilters(self, baseFilters) + if not keepOldData then + LFGListEntryCreation_Clear(self) + LFGListEntryCreation_Select(self, selectedFilters, selectedCategory) end - LFGListEntryCreation_SetEditMode(self, false); + LFGListEntryCreation_SetEditMode(self, false) - LFGListEntryCreation_UpdateValidState(self); + LFGListEntryCreation_UpdateValidState(self) - LFGListFrame_SetActivePanel(self:GetParent(), self); - self.Name:SetFocus(); + LFGListFrame_SetActivePanel(self:GetParent(), self) + self.Name:SetFocus() end function LFGListEntryCreation_Clear(self) --Clear selections - self.selectedCategory = nil; - self.selectedGroup = nil; - self.selectedActivity = nil; - self.selectedFilters = nil; + self.selectedCategory = nil + self.selectedGroup = nil + self.selectedActivity = nil + self.selectedFilters = nil --Reset widgets - self.Name:SetText(""); - self.ItemLevel.CheckButton:SetChecked(false); - self.ItemLevel.EditBox:SetText(""); - self.HonorLevel.CheckButton:SetChecked(false); - self.HonorLevel.EditBox:SetText(""); - self.VoiceChat.CheckButton:SetChecked(false); - self.VoiceChat.EditBox:SetText(""); - self.Description.EditBox:SetText(""); + self.Name:SetText("") + self.ItemLevel.CheckButton:SetChecked(false) + self.ItemLevel.EditBox:SetText("") + self.HonorLevel.CheckButton:SetChecked(false) + self.HonorLevel.EditBox:SetText("") + self.VoiceChat.CheckButton:SetChecked(false) + self.VoiceChat.EditBox:SetText("") + self.Description.EditBox:SetText("") - self.ActivityFinder:Hide(); + self.ActivityFinder:Hide() end function LFGListEntryCreation_ClearFocus(self) - self.Name:ClearFocus(); - self.ItemLevel.EditBox:ClearFocus(); - self.HonorLevel.EditBox:ClearFocus(); - self.VoiceChat.EditBox:ClearFocus(); - self.Description.EditBox:ClearFocus(); + self.Name:ClearFocus() + self.ItemLevel.EditBox:ClearFocus() + self.HonorLevel.EditBox:ClearFocus() + self.VoiceChat.EditBox:ClearFocus() + self.Description.EditBox:ClearFocus() end --This function accepts any or all of categoryID, groupId, and activityID function LFGListEntryCreation_Select(self, filters, categoryID, groupID, activityID) - filters, categoryID, groupID, activityID = LFGListUtil_AugmentWithBest(bit.bor(self.baseFilters,filters or 0), categoryID, groupID, activityID); - self.selectedCategory = categoryID; - self.selectedGroup = groupID; - self.selectedActivity = activityID; - self.selectedFilters = filters; + filters, categoryID, groupID, activityID = + LFGListUtil_AugmentWithBest(bit.bor(self.baseFilters, filters or 0), categoryID, groupID, activityID) + self.selectedCategory = categoryID + self.selectedGroup = groupID + self.selectedActivity = activityID + self.selectedFilters = filters --Update the category dropdown - local categoryName, _, autoChoose = C_LFGList.GetCategoryInfo(categoryID); - UIDropDownMenu_SetText(self.CategoryDropDown, LFGListUtil_GetDecoratedCategoryName(categoryName, filters, false)); + local categoryName, _, autoChoose = C_LFGList.GetCategoryInfo(categoryID) + UIDropDownMenu_SetText(self.CategoryDropDown, LFGListUtil_GetDecoratedCategoryName(categoryName, filters, false)) --Update the activity dropdown - local _, shortName, _, _, iLevel, _, _, _, _, _, useHonorLevel = C_LFGList.GetActivityInfo(activityID); - UIDropDownMenu_SetText(self.ActivityDropDown, shortName); + local _, shortName, _, _, iLevel, _, _, _, _, _, useHonorLevel = C_LFGList.GetActivityInfo(activityID) + UIDropDownMenu_SetText(self.ActivityDropDown, shortName) --Update the group dropdown. If the group dropdown is showing an activity, hide the activity dropdown - local groupName = C_LFGList.GetActivityGroupInfo(groupID); - UIDropDownMenu_SetText(self.GroupDropDown, groupName or shortName); - self.ActivityDropDown:SetShown(groupName and not autoChoose); - self.GroupDropDown:SetShown(not autoChoose); + local groupName = C_LFGList.GetActivityGroupInfo(groupID) + UIDropDownMenu_SetText(self.GroupDropDown, groupName or shortName) + self.ActivityDropDown:SetShown(groupName and not autoChoose) + self.GroupDropDown:SetShown(not autoChoose) --Update the recommended item level box - if ( iLevel ~= 0 ) then - self.ItemLevel.EditBox.Instructions:SetFormattedText(LFG_LIST_RECOMMENDED_ILVL, iLevel); + if iLevel ~= 0 then + self.ItemLevel.EditBox.Instructions:SetFormattedText(LFG_LIST_RECOMMENDED_ILVL, iLevel) else - self.ItemLevel.EditBox.Instructions:SetText(LFG_LIST_ITEM_LEVEL_INSTR_SHORT); + self.ItemLevel.EditBox.Instructions:SetText(LFG_LIST_ITEM_LEVEL_INSTR_SHORT) end - if ( useHonorLevel ) then - self.HonorLevel:Show(); - self.VoiceChat:SetPoint("TOPLEFT", self.HonorLevel, "BOTTOMLEFT", 0, -5); + if useHonorLevel then + self.HonorLevel:Show() + self.VoiceChat:SetPoint("TOPLEFT", self.HonorLevel, "BOTTOMLEFT", 0, -5) else - self.HonorLevel:Hide(); - self.VoiceChat:SetPoint("TOPLEFT", self.ItemLevel, "BOTTOMLEFT", 0, -5); + self.HonorLevel:Hide() + self.VoiceChat:SetPoint("TOPLEFT", self.ItemLevel, "BOTTOMLEFT", 0, -5) end - LFGListRequirement_Validate(self.ItemLevel, self.ItemLevel.EditBox:GetText()); - if ( useHonorLevel ) then - LFGListRequirement_Validate(self.HonorLevel, self.HonorLevel.EditBox:GetText()); - end - LFGListEntryCreation_UpdateValidState(self); + LFGListRequirement_Validate(self.ItemLevel, self.ItemLevel.EditBox:GetText()) + if useHonorLevel then LFGListRequirement_Validate(self.HonorLevel, self.HonorLevel.EditBox:GetText()) end + LFGListEntryCreation_UpdateValidState(self) end function LFGListEntryCreation_PopulateCategories(self, dropDown, info) - local categories = C_LFGList.GetAvailableCategories(self.baseFilters); - for i=1, #categories do - local categoryID = categories[i]; - local name, separateRecommended = C_LFGList.GetCategoryInfo(categoryID); - if ( separateRecommended ) then - LFGListEntryCreation_AddCategoryEntry(self, info, categoryID, name, LE_LFG_LIST_FILTER_RECOMMENDED); - LFGListEntryCreation_AddCategoryEntry(self, info, categoryID, name, LE_LFG_LIST_FILTER_NOT_RECOMMENDED); + local categories = C_LFGList.GetAvailableCategories(self.baseFilters) + for i = 1, #categories do + local categoryID = categories[i] + local name, separateRecommended = C_LFGList.GetCategoryInfo(categoryID) + if separateRecommended then + LFGListEntryCreation_AddCategoryEntry(self, info, categoryID, name, LE_LFG_LIST_FILTER_RECOMMENDED) + LFGListEntryCreation_AddCategoryEntry(self, info, categoryID, name, LE_LFG_LIST_FILTER_NOT_RECOMMENDED) else - LFGListEntryCreation_AddCategoryEntry(self, info, categoryID, name, 0); + LFGListEntryCreation_AddCategoryEntry(self, info, categoryID, name, 0) end end end function LFGListEntryCreation_AddCategoryEntry(self, info, categoryID, name, filters) - if ( filters ~= 0 and #C_LFGList.GetAvailableActivities(categoryID, nil, filters) == 0 ) then - return; - end + if filters ~= 0 and #C_LFGList.GetAvailableActivities(categoryID, nil, filters) == 0 then return end - info.text = LFGListUtil_GetDecoratedCategoryName(name, filters, false); - info.value = categoryID; - info.arg1 = filters; - info.checked = (self.selectedCategory == categoryID and self.selectedFilters == filters); - info.isRadio = true; - UIDropDownMenu_AddButton(info); + info.text = LFGListUtil_GetDecoratedCategoryName(name, filters, false) + info.value = categoryID + info.arg1 = filters + info.checked = (self.selectedCategory == categoryID and self.selectedFilters == filters) + info.isRadio = true + UIDropDownMenu_AddButton(info) end function LFGListEntryCreation_OnCategorySelected(self, categoryID, filters) - LFGListEntryCreation_Select(self, filters, categoryID, nil, nil); + LFGListEntryCreation_Select(self, filters, categoryID, nil, nil) end function LFGListEntryCreation_PopulateGroups(self, dropDown, info) - if ( not self.selectedCategory ) then + if not self.selectedCategory then --We don't have a category, so we can't fill out groups. - return; + return end - local useMore = false; + local useMore = false --Start out displaying everything - local groups = C_LFGList.GetAvailableActivityGroups(self.selectedCategory, bit.bor(self.baseFilters, self.selectedFilters)); - local activities = C_LFGList.GetAvailableActivities(self.selectedCategory, 0, bit.bor(self.baseFilters, self.selectedFilters)); - if ( self.selectedFilters == 0 ) then + local groups = + C_LFGList.GetAvailableActivityGroups(self.selectedCategory, bit.bor(self.baseFilters, self.selectedFilters)) + local activities = + C_LFGList.GetAvailableActivities(self.selectedCategory, 0, bit.bor(self.baseFilters, self.selectedFilters)) + if self.selectedFilters == 0 then --We don't bother filtering if we have less than 5 items anyway - if ( #groups + #activities > 5 ) then + if #groups + #activities > 5 then --Try just displaying the recommended - local filters = bit.bor(self.selectedFilters, self.baseFilters, LE_LFG_LIST_FILTER_RECOMMENDED); - local recGroups = C_LFGList.GetAvailableActivityGroups(self.selectedCategory, filters); - local recActivities = C_LFGList.GetAvailableActivities(self.selectedCategory, 0, filters); - + local filters = bit.bor(self.selectedFilters, self.baseFilters, LE_LFG_LIST_FILTER_RECOMMENDED) + local recGroups = C_LFGList.GetAvailableActivityGroups(self.selectedCategory, filters) + local recActivities = C_LFGList.GetAvailableActivities(self.selectedCategory, 0, filters) --If we have some recommended, just display those - if ( #recGroups + #recActivities > 0 ) then + if #recGroups + #recActivities > 0 then --If we still have just as many, we don't need to display more - useMore = #recGroups ~= #groups or #recActivities ~= #activities; - groups = recGroups; - activities = recActivities; + useMore = #recGroups ~= #groups or #recActivities ~= #activities + groups = recGroups + activities = recActivities end end end - local groupOrder = groups[1] and select(2, C_LFGList.GetActivityGroupInfo(groups[1])); - local activityOrder = activities[1] and select(10, C_LFGList.GetActivityInfo(activities[1])); + local groupOrder = groups[1] and select(2, C_LFGList.GetActivityGroupInfo(groups[1])) + local activityOrder = activities[1] and select(10, C_LFGList.GetActivityInfo(activities[1])) - local groupIndex, activityIndex = 1, 1; + local groupIndex, activityIndex = 1, 1 --Start merging - for i=1, MAX_LFG_LIST_GROUP_DROPDOWN_ENTRIES do - if ( not groupOrder and not activityOrder ) then - break; - end + for i = 1, MAX_LFG_LIST_GROUP_DROPDOWN_ENTRIES do + if not groupOrder and not activityOrder then break end - if ( activityOrder and (not groupOrder or activityOrder < groupOrder) ) then - local activityID = activities[activityIndex]; - local name = select(ACTIVITY_RETURN_VALUES.shortName, C_LFGList.GetActivityInfo(activityID)); + if activityOrder and (not groupOrder or activityOrder < groupOrder) then + local activityID = activities[activityIndex] + local name = select(ACTIVITY_RETURN_VALUES.shortName, C_LFGList.GetActivityInfo(activityID)) - info.text = name; - info.value = activityID; - info.arg1 = "activity"; - info.checked = (self.selectedActivity == activityID); - info.isRadio = true; - UIDropDownMenu_AddButton(info); + info.text = name + info.value = activityID + info.arg1 = "activity" + info.checked = (self.selectedActivity == activityID) + info.isRadio = true + UIDropDownMenu_AddButton(info) - activityIndex = activityIndex + 1; - activityOrder = activities[activityIndex] and select(10, C_LFGList.GetActivityInfo(activities[activityIndex])); + activityIndex = activityIndex + 1 + activityOrder = activities[activityIndex] + and select(10, C_LFGList.GetActivityInfo(activities[activityIndex])) else - local groupID = groups[groupIndex]; - local name = C_LFGList.GetActivityGroupInfo(groupID); + local groupID = groups[groupIndex] + local name = C_LFGList.GetActivityGroupInfo(groupID) - info.text = name; - info.value = groupID; - info.arg1 = "group"; - info.checked = (self.selectedGroup == groupID); - info.isRadio = true; - UIDropDownMenu_AddButton(info); + info.text = name + info.value = groupID + info.arg1 = "group" + info.checked = (self.selectedGroup == groupID) + info.isRadio = true + UIDropDownMenu_AddButton(info) - groupIndex = groupIndex + 1; - groupOrder = groups[groupIndex] and select(2, C_LFGList.GetActivityGroupInfo(groups[groupIndex])); + groupIndex = groupIndex + 1 + groupOrder = groups[groupIndex] and select(2, C_LFGList.GetActivityGroupInfo(groups[groupIndex])) end end - if ( #activities + #groups > MAX_LFG_LIST_GROUP_DROPDOWN_ENTRIES ) then - useMore = true; - end + if #activities + #groups > MAX_LFG_LIST_GROUP_DROPDOWN_ENTRIES then useMore = true end - if ( useMore ) then - info.text = LFG_LIST_MORE; - info.value = nil; - info.arg1 = "more"; - info.notCheckable = true; - info.checked = false; - info.isRadio = false; - UIDropDownMenu_AddButton(info); + if useMore then + info.text = LFG_LIST_MORE + info.value = nil + info.arg1 = "more" + info.notCheckable = true + info.checked = false + info.isRadio = false + UIDropDownMenu_AddButton(info) end end function LFGListEntryCreation_OnGroupSelected(self, id, buttonType) - if ( buttonType == "activity" ) then - LFGListEntryCreation_Select(self, nil, nil, nil, id); - elseif ( buttonType == "group" ) then - LFGListEntryCreation_Select(self, self.selectedFilters, self.selectedCategory, id, nil); - elseif ( buttonType == "more" ) then - LFGListEntryCreationActivityFinder_Show(self.ActivityFinder, self.selectedCategory, nil, bit.bor(self.baseFilters, self.selectedFilters)); + if buttonType == "activity" then + LFGListEntryCreation_Select(self, nil, nil, nil, id) + elseif buttonType == "group" then + LFGListEntryCreation_Select(self, self.selectedFilters, self.selectedCategory, id, nil) + elseif buttonType == "more" then + LFGListEntryCreationActivityFinder_Show( + self.ActivityFinder, + self.selectedCategory, + nil, + bit.bor(self.baseFilters, self.selectedFilters) + ) end end function LFGListEntryCreation_PopulateActivities(self, dropDown, info) - local useMore = self.selectedFilters == 0; + local useMore = self.selectedFilters == 0 - local filters = bit.bor(self.baseFilters, self.selectedFilters); + local filters = bit.bor(self.baseFilters, self.selectedFilters) --Start out displaying everything - local activities = C_LFGList.GetAvailableActivities(self.selectedCategory, self.selectedGroup, filters); + local activities = C_LFGList.GetAvailableActivities(self.selectedCategory, self.selectedGroup, filters) --If we're displaying more than 5, see if we can just display recommended - if ( useMore ) then - if ( #activities > 5 ) then - filters = bit.bor(filters, LE_LFG_LIST_FILTER_RECOMMENDED); - local recActivities = C_LFGList.GetAvailableActivities(self.selectedCategory, self.selectedGroup, filters); + if useMore then + if #activities > 5 then + filters = bit.bor(filters, LE_LFG_LIST_FILTER_RECOMMENDED) + local recActivities = C_LFGList.GetAvailableActivities(self.selectedCategory, self.selectedGroup, filters) - useMore = #recActivities ~= #activities; - if ( #recActivities > 0 ) then - activities = recActivities; + useMore = #recActivities ~= #activities + if #recActivities > 0 then + activities = recActivities else --Just display up to 5 non-recommended activities - for i=#activities, 5, -1 do - activities[i] = nil; + for i = #activities, 5, -1 do + activities[i] = nil end end else - useMore = false; + useMore = false end end - for i=1, #activities do - local activityID = activities[i]; - local shortName = select(ACTIVITY_RETURN_VALUES.shortName, C_LFGList.GetActivityInfo(activityID)); + for i = 1, #activities do + local activityID = activities[i] + local shortName = select(ACTIVITY_RETURN_VALUES.shortName, C_LFGList.GetActivityInfo(activityID)) - info.text = shortName; - info.value = activityID; - info.arg1 = "activity"; - info.checked = (self.selectedActivity == activityID); - info.isRadio = true; - UIDropDownMenu_AddButton(info); + info.text = shortName + info.value = activityID + info.arg1 = "activity" + info.checked = (self.selectedActivity == activityID) + info.isRadio = true + UIDropDownMenu_AddButton(info) end - if ( useMore ) then - info.text = LFG_LIST_MORE; - info.value = nil; - info.arg1 = "more"; - info.notCheckable = true; - info.checked = false; - info.isRadio = false; - UIDropDownMenu_AddButton(info); + if useMore then + info.text = LFG_LIST_MORE + info.value = nil + info.arg1 = "more" + info.notCheckable = true + info.checked = false + info.isRadio = false + UIDropDownMenu_AddButton(info) end end function LFGListEntryCreation_OnActivitySelected(self, activityID, buttonType) - if ( buttonType == "activity" ) then - LFGListEntryCreation_Select(self, nil, nil, nil, activityID); - elseif ( buttonType == "more" ) then - LFGListEntryCreationActivityFinder_Show(self.ActivityFinder, self.selectedCategory, self.selectedGroup, bit.bor(self.baseFilters, self.selectedFilters)); + if buttonType == "activity" then + LFGListEntryCreation_Select(self, nil, nil, nil, activityID) + elseif buttonType == "more" then + LFGListEntryCreationActivityFinder_Show( + self.ActivityFinder, + self.selectedCategory, + self.selectedGroup, + bit.bor(self.baseFilters, self.selectedFilters) + ) end end -function LFGListEntryCreation_GetSanitizedName(self) - return string.match(self.Name:GetText(), "^%s*(.-)%s*$"); -end +function LFGListEntryCreation_GetSanitizedName(self) return string.match(self.Name:GetText(), "^%s*(.-)%s*$") end function LFGListEntryCreation_ListGroup(self) - local name = LFGListEntryCreation_GetSanitizedName(self); - local iLevel = tonumber(self.ItemLevel.EditBox:GetText()) or 0; - local honorLevel = tonumber(self.HonorLevel.EditBox:GetText()) or 0; + local name = LFGListEntryCreation_GetSanitizedName(self) + local iLevel = tonumber(self.ItemLevel.EditBox:GetText()) or 0 + local honorLevel = tonumber(self.HonorLevel.EditBox:GetText()) or 0 - if ( LFGListEntryCreation_IsEditMode(self) ) then - local autoAccept = select(9, C_LFGList.GetActiveEntryInfo()); - C_LFGList.UpdateListing(self.selectedActivity, name, iLevel, honorLevel, self.VoiceChat.EditBox:GetText(), self.Description.EditBox:GetText(), autoAccept); - LFGListFrame_SetActivePanel(self:GetParent(), self:GetParent().ApplicationViewer); + if LFGListEntryCreation_IsEditMode(self) then + local autoAccept = select(9, C_LFGList.GetActiveEntryInfo()) + C_LFGList.UpdateListing( + self.selectedActivity, + name, + iLevel, + honorLevel, + self.VoiceChat.EditBox:GetText(), + self.Description.EditBox:GetText(), + autoAccept + ) + LFGListFrame_SetActivePanel(self:GetParent(), self:GetParent().ApplicationViewer) else - - if(C_LFGList.CreateListing(self.selectedActivity, name, iLevel, honorLevel, self.VoiceChat.EditBox:GetText(), self.Description.EditBox:GetText(), false)) then - self.WorkingCover:Show(); - LFGListEntryCreation_ClearFocus(self); + if + C_LFGList.CreateListing( + self.selectedActivity, + name, + iLevel, + honorLevel, + self.VoiceChat.EditBox:GetText(), + self.Description.EditBox:GetText(), + false + ) + then + self.WorkingCover:Show() + LFGListEntryCreation_ClearFocus(self) end end end function LFGListEntryCreation_UpdateValidState(self) - local errorText; - local maxPlayers, _, _, useHonorLevel = select(ACTIVITY_RETURN_VALUES.maxPlayers, C_LFGList.GetActivityInfo(self.selectedActivity)); - if ( maxPlayers > 0 and GetNumGroupMembers(LE_PARTY_CATEGORY_HOME) >= maxPlayers ) then - errorText = string.format(LFG_LIST_TOO_MANY_FOR_ACTIVITY, maxPlayers); - elseif ( LFGListEntryCreation_GetSanitizedName(self) == "" ) then - errorText = LFG_LIST_MUST_HAVE_NAME; - elseif ( self.ItemLevel.warningText ) then - errorText = self.ItemLevel.warningText; - elseif ( useHonorLevel and self.HonorLevel.warningText ) then - errorText = self.HonorLevel.warningText; + local errorText + local maxPlayers, _, _, useHonorLevel = + select(ACTIVITY_RETURN_VALUES.maxPlayers, C_LFGList.GetActivityInfo(self.selectedActivity)) + if maxPlayers > 0 and GetNumGroupMembers(LE_PARTY_CATEGORY_HOME) >= maxPlayers then + errorText = string.format(LFG_LIST_TOO_MANY_FOR_ACTIVITY, maxPlayers) + elseif LFGListEntryCreation_GetSanitizedName(self) == "" then + errorText = LFG_LIST_MUST_HAVE_NAME + elseif self.ItemLevel.warningText then + errorText = self.ItemLevel.warningText + elseif useHonorLevel and self.HonorLevel.warningText then + errorText = self.HonorLevel.warningText else - errorText = LFGListUtil_GetActiveQueueMessage(false); + errorText = LFGListUtil_GetActiveQueueMessage(false) end - self.ListGroupButton:SetEnabled(not errorText); - self.ListGroupButton.errorText = errorText; + self.ListGroupButton:SetEnabled(not errorText) + self.ListGroupButton.errorText = errorText end - -function LFGListEntryCreation_SetBaseFilters(self, baseFilters) - self.baseFilters = baseFilters; -end +function LFGListEntryCreation_SetBaseFilters(self, baseFilters) self.baseFilters = baseFilters end function LFGListEntryCreation_SetEditMode(self, editMode) - self.editMode = editMode; - if ( editMode ) then - local active, activityID, ilvl, honorLevel, name, comment, voiceChat = C_LFGList.GetActiveEntryInfo(); - assert(active); + self.editMode = editMode + if editMode then + local active, activityID, ilvl, honorLevel, name, comment, voiceChat = C_LFGList.GetActiveEntryInfo() + assert(active) --Update the dropdowns - LFGListEntryCreation_Select(self, nil, nil, nil, activityID); - UIDropDownMenu_DisableDropDown(self.CategoryDropDown); - UIDropDownMenu_DisableDropDown(self.GroupDropDown); - UIDropDownMenu_DisableDropDown(self.ActivityDropDown); + LFGListEntryCreation_Select(self, nil, nil, nil, activityID) + UIDropDownMenu_DisableDropDown(self.CategoryDropDown) + UIDropDownMenu_DisableDropDown(self.GroupDropDown) + UIDropDownMenu_DisableDropDown(self.ActivityDropDown) --Update edit boxes - self.Name:SetText(name); - self.ItemLevel.EditBox:SetText(ilvl ~= 0 and ilvl or ""); + self.Name:SetText(name) + self.ItemLevel.EditBox:SetText(ilvl ~= 0 and ilvl or "") self.HonorLevel.EditBox:SetText(honorLevel ~= 0 and honorLevel or "") - self.VoiceChat.EditBox:SetText(voiceChat); - self.Description.EditBox:SetText(comment); + self.VoiceChat.EditBox:SetText(voiceChat) + self.Description.EditBox:SetText(comment) - self.ListGroupButton:SetText(DONE_EDITING); + self.ListGroupButton:SetText(DONE_EDITING) else - UIDropDownMenu_EnableDropDown(self.CategoryDropDown); - UIDropDownMenu_EnableDropDown(self.GroupDropDown); - UIDropDownMenu_EnableDropDown(self.ActivityDropDown); - self.ListGroupButton:SetText(LIST_GROUP); + UIDropDownMenu_EnableDropDown(self.CategoryDropDown) + UIDropDownMenu_EnableDropDown(self.GroupDropDown) + UIDropDownMenu_EnableDropDown(self.ActivityDropDown) + self.ListGroupButton:SetText(LIST_GROUP) end end -function LFGListEntryCreation_IsEditMode(self) - return self.editMode; -end +function LFGListEntryCreation_IsEditMode(self) return self.editMode end function LFGListEntryCreationCancelButton_OnClick(self) - local panel = self:GetParent(); - PlaySound("igMainMenuOptionCheckBoxOn"); - if ( LFGListEntryCreation_IsEditMode(panel) ) then - LFGListFrame_SetActivePanel(panel:GetParent(), panel:GetParent().ApplicationViewer); + local panel = self:GetParent() + PlaySound("igMainMenuOptionCheckBoxOn") + if LFGListEntryCreation_IsEditMode(panel) then + LFGListFrame_SetActivePanel(panel:GetParent(), panel:GetParent().ApplicationViewer) else - LFGListFrame_SetActivePanel(panel:GetParent(), panel:GetParent().CategorySelection); + LFGListFrame_SetActivePanel(panel:GetParent(), panel:GetParent().CategorySelection) end end function LFGListEntryCreationListGroupButton_OnClick(self) - PlaySound("igMainMenuOptionCheckBoxOn"); - LFGListEntryCreation_ListGroup(self:GetParent()); + PlaySound("igMainMenuOptionCheckBoxOn") + LFGListEntryCreation_ListGroup(self:GetParent()) end function LFGListEntryCreationActivityFinder_OnLoad(self) - self.Dialog.ScrollFrame.update = function() LFGListEntryCreationActivityFinder_Update(self); end; - self.Dialog.ScrollFrame.scrollBar.doNotHide = true; - HybridScrollFrame_CreateButtons(self.Dialog.ScrollFrame, "LFGListEntryCreationActivityListTemplate"); + self.Dialog.ScrollFrame.update = function() LFGListEntryCreationActivityFinder_Update(self) end + self.Dialog.ScrollFrame.scrollBar.doNotHide = true + HybridScrollFrame_CreateButtons(self.Dialog.ScrollFrame, "LFGListEntryCreationActivityListTemplate") - self.matchingActivities = {}; + self.matchingActivities = {} end function LFGListEntryCreationActivityFinder_Show(self, categoryID, groupID, filters) - self.Dialog.EntryBox:SetText(""); - self.categoryID = categoryID; - self.groupID = groupID; - self.filters = filters; - self.selectedActivity = nil; - LFGListEntryCreationActivityFinder_UpdateMatching(self); - self:Show(); - self.Dialog.EntryBox:SetFocus(); + self.Dialog.EntryBox:SetText("") + self.categoryID = categoryID + self.groupID = groupID + self.filters = filters + self.selectedActivity = nil + LFGListEntryCreationActivityFinder_UpdateMatching(self) + self:Show() + self.Dialog.EntryBox:SetFocus() end function LFGListEntryCreationActivityFinder_UpdateMatching(self) - self.matchingActivities = C_LFGList.GetAvailableActivities(self.categoryID, self.groupID, self.filters, self.Dialog.EntryBox:GetText()); - LFGListUtil_SortActivitiesByRelevancy(self.matchingActivities); - if ( not self.selectedActivity or not tContains(self.matchingActivities, self.selectedActivity) ) then - self.selectedActivity = self.matchingActivities[1]; + self.matchingActivities = + C_LFGList.GetAvailableActivities(self.categoryID, self.groupID, self.filters, self.Dialog.EntryBox:GetText()) + LFGListUtil_SortActivitiesByRelevancy(self.matchingActivities) + if not self.selectedActivity or not tContains(self.matchingActivities, self.selectedActivity) then + self.selectedActivity = self.matchingActivities[1] end - LFGListEntryCreationActivityFinder_Update(self); + LFGListEntryCreationActivityFinder_Update(self) end function LFGListEntryCreationActivityFinder_Update(self) - local actitivities = self.matchingActivities; + local actitivities = self.matchingActivities - local offset = HybridScrollFrame_GetOffset(self.Dialog.ScrollFrame); + local offset = HybridScrollFrame_GetOffset(self.Dialog.ScrollFrame) - for i=1, #self.Dialog.ScrollFrame.buttons do - local button = self.Dialog.ScrollFrame.buttons[i]; - local idx = i + offset; - local id = actitivities[idx]; - if ( id ) then - button:SetText( (C_LFGList.GetActivityInfo(id)) ); - button.activityID = id; - button.Selected:SetShown(self.selectedActivity == id); - if ( self.selectedActivity == id ) then - button:LockHighlight(); + for i = 1, #self.Dialog.ScrollFrame.buttons do + local button = self.Dialog.ScrollFrame.buttons[i] + local idx = i + offset + local id = actitivities[idx] + if id then + button:SetText((C_LFGList.GetActivityInfo(id))) + button.activityID = id + button.Selected:SetShown(self.selectedActivity == id) + if self.selectedActivity == id then + button:LockHighlight() else - button:UnlockHighlight(); + button:UnlockHighlight() end - button:Show(); + button:Show() else - button:Hide(); + button:Hide() end end - HybridScrollFrame_Update(self.Dialog.ScrollFrame, self.Dialog.ScrollFrame.buttons[1]:GetHeight() * #actitivities, self.Dialog.ScrollFrame:GetHeight()); + HybridScrollFrame_Update( + self.Dialog.ScrollFrame, + self.Dialog.ScrollFrame.buttons[1]:GetHeight() * #actitivities, + self.Dialog.ScrollFrame:GetHeight() + ) end function LFGListEntryCreationActivityFinder_Accept(self) - if ( self.selectedActivity ) then - LFGListEntryCreation_Select(self:GetParent(), nil, nil, nil, self.selectedActivity); + if self.selectedActivity then + LFGListEntryCreation_Select(self:GetParent(), nil, nil, nil, self.selectedActivity) end - self:Hide(); + self:Hide() end -function LFGListEntryCreationActivityFinder_Cancel(self) - self:Hide(); -end +function LFGListEntryCreationActivityFinder_Cancel(self) self:Hide() end function LFGListEntryCreationActivityFinder_Select(self, activityID) - self.selectedActivity = activityID; - LFGListEntryCreationActivityFinder_Update(self); + self.selectedActivity = activityID + LFGListEntryCreationActivityFinder_Update(self) end ------------------------------------------------------- ----------Application Viewing ------------------------------------------------------- function LFGListApplicationViewer_OnLoad(self) - self.ScrollFrame.update = function() LFGListApplicationViewer_UpdateResults(self); end; + self.ScrollFrame.update = function() LFGListApplicationViewer_UpdateResults(self) end self.ScrollFrame.dynamic = function(offset) return LFGListApplicationViewer_GetScrollOffset(self, offset) end - self.ScrollFrame.scrollBar.doNotHide = true; - self.NameColumnHeader:Disable(); - self.RoleColumnHeader:Disable(); - self.ItemLevelColumnHeader:Disable(); - HybridScrollFrame_CreateButtons(self.ScrollFrame, "LFGListApplicantTemplate"); + self.ScrollFrame.scrollBar.doNotHide = true + self.NameColumnHeader:Disable() + self.RoleColumnHeader:Disable() + self.ItemLevelColumnHeader:Disable() + HybridScrollFrame_CreateButtons(self.ScrollFrame, "LFGListApplicantTemplate") end function LFGListApplicationViewer_OnEvent(self, event, ...) - if ( event == "LFG_LIST_ACTIVE_ENTRY_UPDATE" ) then - LFGListApplicationViewer_UpdateInfo(self); - elseif ( event == "PARTY_LEADER_CHANGED" ) then - LFGListApplicationViewer_UpdateAvailability(self); - LFGListApplicationViewer_UpdateInfo(self); - elseif ( event == "LFG_LIST_APPLICANT_LIST_UPDATED" ) then - LFGListApplicationViewer_UpdateResultList(self); - LFGListApplicationViewer_UpdateResults(self); - elseif ( event == "LFG_LIST_APPLICANT_UPDATED" ) then + if event == "LFG_LIST_ACTIVE_ENTRY_UPDATE" then + LFGListApplicationViewer_UpdateInfo(self) + elseif event == "PARTY_LEADER_CHANGED" then + LFGListApplicationViewer_UpdateAvailability(self) + LFGListApplicationViewer_UpdateInfo(self) + elseif event == "LFG_LIST_APPLICANT_LIST_UPDATED" then + LFGListApplicationViewer_UpdateResultList(self) + LFGListApplicationViewer_UpdateResults(self) + elseif event == "LFG_LIST_APPLICANT_UPDATED" then --If we can't make changes, we just remove people immediately - local id = ...; - if ( not LFGListUtil_IsEntryEmpowered() ) then - C_LFGList.RemoveApplicant(id); - end + local id = ... + if not LFGListUtil_IsEntryEmpowered() then C_LFGList.RemoveApplicant(id) end --Update whether we can invite people - LFGListApplicationViewer_UpdateInviteState(self); - elseif ( event == "GROUP_ROSTER_UPDATE" ) then - LFGListApplicationViewer_UpdateAvailability(self); - LFGListApplicationViewer_UpdateGroupData(self); - LFGListApplicationViewer_UpdateInviteState(self); - LFGListApplicationViewer_UpdateInfo(self); - elseif ( event == "PLAYER_ROLES_ASSIGNED") then - LFGListApplicationViewer_UpdateGroupData(self); + LFGListApplicationViewer_UpdateInviteState(self) + elseif event == "GROUP_ROSTER_UPDATE" then + LFGListApplicationViewer_UpdateAvailability(self) + LFGListApplicationViewer_UpdateGroupData(self) + LFGListApplicationViewer_UpdateInviteState(self) + LFGListApplicationViewer_UpdateInfo(self) + elseif event == "PLAYER_ROLES_ASSIGNED" then + LFGListApplicationViewer_UpdateGroupData(self) end end function LFGListApplicationViewer_OnShow(self) - C_LFGList.RefreshApplicants(); - LFGListApplicationViewer_UpdateResultList(self); - LFGListApplicationViewer_UpdateResults(self); - LFGListApplicationViewer_UpdateInfo(self); - LFGListApplicationViewer_UpdateAvailability(self); - LFGListApplicationViewer_UpdateGroupData(self); + C_LFGList.RefreshApplicants() + LFGListApplicationViewer_UpdateResultList(self) + LFGListApplicationViewer_UpdateResults(self) + LFGListApplicationViewer_UpdateInfo(self) + LFGListApplicationViewer_UpdateAvailability(self) + LFGListApplicationViewer_UpdateGroupData(self) end function LFGListApplicationViewer_UpdateGroupData(self) - local active, activityID = C_LFGList.GetActiveEntryInfo(); - if ( not active ) then - return; - end + local active, activityID = C_LFGList.GetActiveEntryInfo() + if not active then return end - local data = GetGroupMemberCounts(); - data.DAMAGER = data.DAMAGER + data.NOROLE; --People without a role count as damage - data.NOROLE = 0; - LFGListGroupDataDisplay_Update(self.DataDisplay, activityID, data); + local data = GetGroupMemberCounts() + data.DAMAGER = data.DAMAGER + data.NOROLE --People without a role count as damage + data.NOROLE = 0 + LFGListGroupDataDisplay_Update(self.DataDisplay, activityID, data) end function LFGListApplicationViewer_UpdateInfo(self) - local active, activityID, ilvl, honorLevel, name, comment, voiceChat, duration, autoAccept = C_LFGList.GetActiveEntryInfo(); - local fullName, shortName, categoryID, groupID, iLevel, filters, minLevel, maxPlayers, displayType = C_LFGList.GetActivityInfo(activityID); - local _, separateRecommended = C_LFGList.GetCategoryInfo(categoryID); - assert(active); - self.EntryName:SetWidth(0); - self.EntryName:SetText(name); - self.DescriptionFrame.activityName = C_LFGList.GetActivityInfo(activityID); - self.DescriptionFrame.comment = comment; - if ( comment == "" ) then - self.DescriptionFrame.Text:SetText(self.DescriptionFrame.activityName); + local active, activityID, ilvl, honorLevel, name, comment, voiceChat, duration, autoAccept = + C_LFGList.GetActiveEntryInfo() + local fullName, shortName, categoryID, groupID, iLevel, filters, minLevel, maxPlayers, displayType = + C_LFGList.GetActivityInfo(activityID) + local _, separateRecommended = C_LFGList.GetCategoryInfo(categoryID) + assert(active) + self.EntryName:SetWidth(0) + self.EntryName:SetText(name) + self.DescriptionFrame.activityName = C_LFGList.GetActivityInfo(activityID) + self.DescriptionFrame.comment = comment + if comment == "" then + self.DescriptionFrame.Text:SetText(self.DescriptionFrame.activityName) else - self.DescriptionFrame.Text:SetFormattedText("%s |cff888888- %s|r", self.DescriptionFrame.activityName, self.DescriptionFrame.comment); + self.DescriptionFrame.Text:SetFormattedText( + "%s |cff888888- %s|r", + self.DescriptionFrame.activityName, + self.DescriptionFrame.comment + ) end - local hasRestrictions = false; - if ( ilvl == 0 ) then - self.ItemLevel:SetText(""); + local hasRestrictions = false + if ilvl == 0 then + self.ItemLevel:SetText("") else - self.ItemLevel:SetFormattedText(LFG_LIST_ITEM_LEVEL_CURRENT, ilvl); + self.ItemLevel:SetFormattedText(LFG_LIST_ITEM_LEVEL_CURRENT, ilvl) end - if ( voiceChat == "" ) then - self.VoiceChatFrame.tooltip = nil; - self.VoiceChatFrame:Hide(); + if voiceChat == "" then + self.VoiceChatFrame.tooltip = nil + self.VoiceChatFrame:Hide() else - self.VoiceChatFrame.tooltip = voiceChat; - self.VoiceChatFrame:Show(); + self.VoiceChatFrame.tooltip = voiceChat + self.VoiceChatFrame:Show() end - if ( self.EntryName:GetWidth() > 290 ) then - self.EntryName:SetWidth(290); - end + if self.EntryName:GetWidth() > 290 then self.EntryName:SetWidth(290) end --Set the background - local atlasName = nil; - if ( separateRecommended and bit.band(filters, LE_LFG_LIST_FILTER_RECOMMENDED) ~= 0 ) then - atlasName = "groupfinder-background-"..(LFG_LIST_CATEGORY_TEXTURES[categoryID] or "raids").."-"..LFG_LIST_PER_EXPANSION_TEXTURES[LFGListUtil_GetCurrentExpansion()]; - elseif ( separateRecommended and bit.band(filters, LE_LFG_LIST_FILTER_NOT_RECOMMENDED) ~= 0 ) then - atlasName = "groupfinder-background-"..(LFG_LIST_CATEGORY_TEXTURES[categoryID] or "raids").."-"..LFG_LIST_PER_EXPANSION_TEXTURES[math.max(0,LFGListUtil_GetCurrentExpansion() - 1)]; + local atlasName = nil + if separateRecommended and bit.band(filters, LE_LFG_LIST_FILTER_RECOMMENDED) ~= 0 then + atlasName = "groupfinder-background-" + .. (LFG_LIST_CATEGORY_TEXTURES[categoryID] or "raids") + .. "-" + .. LFG_LIST_PER_EXPANSION_TEXTURES[LFGListUtil_GetCurrentExpansion()] + elseif separateRecommended and bit.band(filters, LE_LFG_LIST_FILTER_NOT_RECOMMENDED) ~= 0 then + atlasName = "groupfinder-background-" + .. (LFG_LIST_CATEGORY_TEXTURES[categoryID] or "raids") + .. "-" + .. LFG_LIST_PER_EXPANSION_TEXTURES[math.max(0, LFGListUtil_GetCurrentExpansion() - 1)] else - atlasName = "groupfinder-background-"..(LFG_LIST_CATEGORY_TEXTURES[categoryID] or "questing"); + atlasName = "groupfinder-background-" .. (LFG_LIST_CATEGORY_TEXTURES[categoryID] or "questing") end - local suffix = ""; - if ( bit.band(filters, LE_LFG_LIST_FILTER_PVE) ~= 0 ) then - suffix = "-pve"; - elseif ( bit.band(filters, LE_LFG_LIST_FILTER_PVP) ~= 0 ) then - suffix = "-pvp"; + local suffix = "" + if bit.band(filters, LE_LFG_LIST_FILTER_PVE) ~= 0 then + suffix = "-pve" + elseif bit.band(filters, LE_LFG_LIST_FILTER_PVP) ~= 0 then + suffix = "-pvp" end --Try with the suffix and then without it - if ( not self.InfoBackground:SetAtlas(atlasName..suffix) ) then - self.InfoBackground:SetAtlas(atlasName); - end + if not self.InfoBackground:SetAtlas(atlasName .. suffix) then self.InfoBackground:SetAtlas(atlasName) end --Update the AutoAccept button - self.AutoAcceptButton:SetChecked(autoAccept); - if ( UnitIsGroupLeader("player", LE_PARTY_CATEGORY_HOME) ) then - self.AutoAcceptButton:Show(); - self.AutoAcceptButton:Enable(); - self.AutoAcceptButton.Label:SetFontObject(GameFontHighlightSmall); - elseif ( UnitIsGroupAssistant("player", LE_PARTY_CATEGORY_HOME) ) then - self.AutoAcceptButton:Show(); - self.AutoAcceptButton:Disable(); - self.AutoAcceptButton.Label:SetFontObject(GameFontDisableSmall); + self.AutoAcceptButton:SetChecked(autoAccept) + if UnitIsGroupLeader("player", LE_PARTY_CATEGORY_HOME) then + self.AutoAcceptButton:Show() + self.AutoAcceptButton:Enable() + self.AutoAcceptButton.Label:SetFontObject(GameFontHighlightSmall) + elseif UnitIsGroupAssistant("player", LE_PARTY_CATEGORY_HOME) then + self.AutoAcceptButton:Show() + self.AutoAcceptButton:Disable() + self.AutoAcceptButton.Label:SetFontObject(GameFontDisableSmall) else - self.AutoAcceptButton:SetShown(autoAccept); - self.AutoAcceptButton:Disable(); - self.AutoAcceptButton.Label:SetFontObject(GameFontDisableSmall); + self.AutoAcceptButton:SetShown(autoAccept) + self.AutoAcceptButton:Disable() + self.AutoAcceptButton.Label:SetFontObject(GameFontDisableSmall) end end function LFGListApplicationViewer_UpdateAvailability(self) - if ( UnitIsGroupLeader("player", LE_PARTY_CATEGORY_HOME) ) then - self.RemoveEntryButton:Show(); - self.EditButton:Show(); + if UnitIsGroupLeader("player", LE_PARTY_CATEGORY_HOME) then + self.RemoveEntryButton:Show() + self.EditButton:Show() else - self.RemoveEntryButton:Hide(); - self.EditButton:Hide(); + self.RemoveEntryButton:Hide() + self.EditButton:Hide() end - if ( IsRestrictedAccount() ) then - self.EditButton:Disable(); - self.EditButton.tooltip = ERR_RESTRICTED_ACCOUNT_LFG_LIST_TRIAL; + if IsRestrictedAccount() then + self.EditButton:Disable() + self.EditButton.tooltip = ERR_RESTRICTED_ACCOUNT_LFG_LIST_TRIAL else - self.EditButton:Enable(); - self.EditButton.tooltip = nil; + self.EditButton:Enable() + self.EditButton.tooltip = nil end - local empowered = LFGListUtil_IsEntryEmpowered(); - self.UnempoweredCover:SetShown(not empowered); - self.ScrollFrame.NoApplicants:SetShown(empowered and (not self.applicants or #self.applicants == 0)); + local empowered = LFGListUtil_IsEntryEmpowered() + self.UnempoweredCover:SetShown(not empowered) + self.ScrollFrame.NoApplicants:SetShown(empowered and (not self.applicants or #self.applicants == 0)) end function LFGListApplicationViewer_UpdateResultList(self) - self.applicants = C_LFGList.GetApplicants(); - + self.applicants = C_LFGList.GetApplicants() + --Filter applicants. Don't worry about order. - LFGListUtil_FilterApplicants(self.applicants); + LFGListUtil_FilterApplicants(self.applicants) --Sort applicants - LFGListUtil_SortApplicants(self.applicants); + LFGListUtil_SortApplicants(self.applicants) --Cache off the group sizes for the scroll frame and the total height - local totalHeight = 0; - self.applicantSizes = {}; - for i=1, #self.applicants do - local _, _, _, numMembers = C_LFGList.GetApplicantInfo(self.applicants[i]); - self.applicantSizes[i] = numMembers; - totalHeight = totalHeight + LFGListApplicationViewerUtil_GetButtonHeight(numMembers); + local totalHeight = 0 + self.applicantSizes = {} + for i = 1, #self.applicants do + local _, _, _, numMembers = C_LFGList.GetApplicantInfo(self.applicants[i]) + self.applicantSizes[i] = numMembers + totalHeight = totalHeight + LFGListApplicationViewerUtil_GetButtonHeight(numMembers) end - self.totalApplicantHeight = totalHeight; + self.totalApplicantHeight = totalHeight - LFGListApplicationViewer_UpdateAvailability(self); + LFGListApplicationViewer_UpdateAvailability(self) end function LFGListApplicationViewer_UpdateInviteState(self) - local active, activityID, ilvl, honorLevel, name, comment, voiceChat = C_LFGList.GetActiveEntryInfo(); - if ( not active ) then - return; - end + local active, activityID, ilvl, honorLevel, name, comment, voiceChat = C_LFGList.GetActiveEntryInfo() + if not active then return end - local numAllowed = select(ACTIVITY_RETURN_VALUES.maxPlayers, C_LFGList.GetActivityInfo(activityID)); - if ( numAllowed == 0 ) then - numAllowed = MAX_RAID_MEMBERS; - end + local numAllowed = select(ACTIVITY_RETURN_VALUES.maxPlayers, C_LFGList.GetActivityInfo(activityID)) + if numAllowed == 0 then numAllowed = MAX_RAID_MEMBERS end - local currentCount = GetNumGroupMembers(LE_PARTY_CATEGORY_HOME); - local numInvited = C_LFGList.GetNumInvitedApplicantMembers(); + local currentCount = GetNumGroupMembers(LE_PARTY_CATEGORY_HOME) + local numInvited = C_LFGList.GetNumInvitedApplicantMembers() - local buttons = self.ScrollFrame.buttons; - for i=1, #buttons do - local button = buttons[i]; - if ( button.applicantID ) then - if ( button.numMembers + currentCount > numAllowed ) then - button.InviteButton:Disable(); - button.InviteButton.tooltip = LFG_LIST_GROUP_TOO_FULL; - elseif ( button.numMembers + currentCount + numInvited > numAllowed ) then - button.InviteButton:Disable(); - button.InviteButton.tooltip = LFG_LIST_INVITED_APP_FILLS_GROUP; + local buttons = self.ScrollFrame.buttons + for i = 1, #buttons do + local button = buttons[i] + if button.applicantID then + if button.numMembers + currentCount > numAllowed then + button.InviteButton:Disable() + button.InviteButton.tooltip = LFG_LIST_GROUP_TOO_FULL + elseif button.numMembers + currentCount + numInvited > numAllowed then + button.InviteButton:Disable() + button.InviteButton.tooltip = LFG_LIST_INVITED_APP_FILLS_GROUP else - button.InviteButton:Enable(); - button.InviteButton.tooltip = nil; + button.InviteButton:Enable() + button.InviteButton.tooltip = nil end --If our mouse is already over the button, update the tooltip - if ( button.InviteButton:IsMouseOver() ) then - if ( button.InviteButton.tooltip ) then - button.InviteButton:GetScript("OnEnter")(button.InviteButton); + if button.InviteButton:IsMouseOver() then + if button.InviteButton.tooltip then + button.InviteButton:GetScript("OnEnter")(button.InviteButton) else - GameTooltip:Hide(); + GameTooltip:Hide() end end end @@ -1186,1290 +1212,1295 @@ function LFGListApplicationViewer_UpdateInviteState(self) end function LFGListApplicationViewer_UpdateResults(self) - local offset = HybridScrollFrame_GetOffset(self.ScrollFrame); - local buttons = self.ScrollFrame.buttons; + local offset = HybridScrollFrame_GetOffset(self.ScrollFrame) + local buttons = self.ScrollFrame.buttons --If the mouse is over something in this frame, update it - local mouseover = GetMouseFocus(); - local mouseoverParent = mouseover and mouseover:GetParent(); - local parentParent = mouseoverParent and mouseoverParent:GetParent(); - if ( mouseoverParent == self.ScrollFrame or parentParent == self.ScrollFrame ) then + local mouseover = GetMouseFocus() + local mouseoverParent = mouseover and mouseover:GetParent() + local parentParent = mouseoverParent and mouseoverParent:GetParent() + if mouseoverParent == self.ScrollFrame or parentParent == self.ScrollFrame then --Just hide the tooltip. We should show it again inside the update function. - GameTooltip:Hide(); + GameTooltip:Hide() end - for i=1, #buttons do - local button = buttons[i]; - local idx = i + offset; - local id = self.applicants[idx]; + for i = 1, #buttons do + local button = buttons[i] + local idx = i + offset + local id = self.applicants[idx] - if ( id ) then - button.applicantID = id; - LFGListApplicationViewer_UpdateApplicant(button, id); - button.Background:SetAlpha(idx % 2 == 0 and 0.1 or 0.05); - button:Show(); + if id then + button.applicantID = id + LFGListApplicationViewer_UpdateApplicant(button, id) + button.Background:SetAlpha(idx % 2 == 0 and 0.1 or 0.05) + button:Show() else - button.applicantID = nil; - button:Hide(); + button.applicantID = nil + button:Hide() end end - HybridScrollFrame_Update(self.ScrollFrame, self.totalApplicantHeight, self.ScrollFrame:GetHeight()); - LFGListApplicationViewer_UpdateInviteState(self); + HybridScrollFrame_Update(self.ScrollFrame, self.totalApplicantHeight, self.ScrollFrame:GetHeight()) + LFGListApplicationViewer_UpdateInviteState(self) end function LFGListApplicationViewer_UpdateApplicant(button, id) - local id, status, pendingStatus, numMembers, isNew = C_LFGList.GetApplicantInfo(id); - button:SetHeight(LFGListApplicationViewerUtil_GetButtonHeight(numMembers)); + local id, status, pendingStatus, numMembers, isNew = C_LFGList.GetApplicantInfo(id) + button:SetHeight(LFGListApplicationViewerUtil_GetButtonHeight(numMembers)) --Update individual members - for i=1, numMembers do - local member = button.Members[i]; - if ( not member ) then - member = CreateFrame("BUTTON", nil, button, "LFGListApplicantMemberTemplate"); - member:SetPoint("TOPLEFT", button.Members[i-1], "BOTTOMLEFT", 0, 0); - button.Members[i] = member; + for i = 1, numMembers do + local member = button.Members[i] + if not member then + member = CreateFrame("BUTTON", nil, button, "LFGListApplicantMemberTemplate") + member:SetPoint("TOPLEFT", button.Members[i - 1], "BOTTOMLEFT", 0, 0) + button.Members[i] = member end - LFGListApplicationViewer_UpdateApplicantMember(member, id, i, status, pendingStatus); - member:Show(); + LFGListApplicationViewer_UpdateApplicantMember(member, id, i, status, pendingStatus) + member:Show() end --Hide extra member buttons - for i=numMembers+1, #button.Members do - button.Members[i]:Hide(); + for i = numMembers + 1, #button.Members do + button.Members[i]:Hide() end --Update the Invite and Decline buttons based on group size - if ( numMembers > 1 ) then - button.DeclineButton:SetHeight(36); - button.InviteButton:SetHeight(36); - button.InviteButton:SetFormattedText(LFG_LIST_INVITE_GROUP, numMembers); + if numMembers > 1 then + button.DeclineButton:SetHeight(36) + button.InviteButton:SetHeight(36) + button.InviteButton:SetFormattedText(LFG_LIST_INVITE_GROUP, numMembers) else - button.DeclineButton:SetHeight(22); - button.InviteButton:SetHeight(22); - button.InviteButton:SetText(INVITE); + button.DeclineButton:SetHeight(22) + button.InviteButton:SetHeight(22) + button.InviteButton:SetText(INVITE) end - if ( pendingStatus or status == "applied" ) then - button.Status:Hide(); - elseif ( status == "invited" ) then - button.Status:Show(); - button.Status:SetText(LFG_LIST_APP_INVITED); - button.Status:SetTextColor(GREEN_FONT_COLOR.r, GREEN_FONT_COLOR.g, GREEN_FONT_COLOR.b); - elseif ( status == "failed" or status == "cancelled" ) then - button.Status:Show(); - button.Status:SetText(LFG_LIST_APP_CANCELLED); - button.Status:SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b); - elseif ( status == "declined" ) then - button.Status:Show(); - button.Status:SetText(LFG_LIST_APP_DECLINED); - button.Status:SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b); - elseif ( status == "timedout" ) then - button.Status:Show(); - button.Status:SetText(LFG_LIST_APP_TIMED_OUT); - button.Status:SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b); - elseif ( status == "inviteaccepted" ) then - button.Status:Show(); - button.Status:SetText(LFG_LIST_APP_INVITE_ACCEPTED); - button.Status:SetTextColor(GREEN_FONT_COLOR.r, GREEN_FONT_COLOR.g, GREEN_FONT_COLOR.b); - elseif ( status == "invitedeclined" ) then - button.Status:Show(); - button.Status:SetText(LFG_LIST_APP_INVITE_DECLINED); - button.Status:SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b); + if pendingStatus or status == "applied" then + button.Status:Hide() + elseif status == "invited" then + button.Status:Show() + button.Status:SetText(LFG_LIST_APP_INVITED) + button.Status:SetTextColor(GREEN_FONT_COLOR.r, GREEN_FONT_COLOR.g, GREEN_FONT_COLOR.b) + elseif status == "failed" or status == "cancelled" then + button.Status:Show() + button.Status:SetText(LFG_LIST_APP_CANCELLED) + button.Status:SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b) + elseif status == "declined" then + button.Status:Show() + button.Status:SetText(LFG_LIST_APP_DECLINED) + button.Status:SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b) + elseif status == "timedout" then + button.Status:Show() + button.Status:SetText(LFG_LIST_APP_TIMED_OUT) + button.Status:SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b) + elseif status == "inviteaccepted" then + button.Status:Show() + button.Status:SetText(LFG_LIST_APP_INVITE_ACCEPTED) + button.Status:SetTextColor(GREEN_FONT_COLOR.r, GREEN_FONT_COLOR.g, GREEN_FONT_COLOR.b) + elseif status == "invitedeclined" then + button.Status:Show() + button.Status:SetText(LFG_LIST_APP_INVITE_DECLINED) + button.Status:SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b) end - button.numMembers = numMembers; - button.InviteButton:SetShown(not pendingStatus and status == "applied" and LFGListUtil_IsEntryEmpowered()); - button.DeclineButton:SetShown(not pendingStatus and status ~= "invited" and LFGListUtil_IsEntryEmpowered()); - button.DeclineButton.isAck = (status ~= "applied" and status ~= "invited"); - button.Spinner:SetShown(pendingStatus); + button.numMembers = numMembers + button.InviteButton:SetShown(not pendingStatus and status == "applied" and LFGListUtil_IsEntryEmpowered()) + button.DeclineButton:SetShown(not pendingStatus and status ~= "invited" and LFGListUtil_IsEntryEmpowered()) + button.DeclineButton.isAck = (status ~= "applied" and status ~= "invited") + button.Spinner:SetShown(pendingStatus) end function LFGListApplicationViewer_UpdateApplicantMember(member, appID, memberIdx, status, pendingStatus) - local grayedOut = not pendingStatus and (status == "failed" or status == "cancelled" or status == "declined" or status == "invitedeclined" or status == "timedout"); - local noTouchy = (status == "invited" or status == "inviteaccepted" or status == "invitedeclined"); + local grayedOut = not pendingStatus + and ( + status == "failed" + or status == "cancelled" + or status == "declined" + or status == "invitedeclined" + or status == "timedout" + ) + local noTouchy = (status == "invited" or status == "inviteaccepted" or status == "invitedeclined") - local name, class, localizedClass, level, itemLevel, honorLevel, tank, healer, damage, assignedRole, relationship = C_LFGList.GetApplicantMemberInfo(appID, memberIdx); + local name, class, localizedClass, level, itemLevel, honorLevel, tank, healer, damage, assignedRole, relationship = + C_LFGList.GetApplicantMemberInfo(appID, memberIdx) - member.memberIdx = memberIdx; + member.memberIdx = memberIdx - member.Name:SetWidth(0); - if ( name ) then - local displayName = Ambiguate(name, "short"); - if ( memberIdx > 1 ) then - member.Name:SetText(" "..displayName); + member.Name:SetWidth(0) + if name then + local displayName = Ambiguate(name, "short") + if memberIdx > 1 then + member.Name:SetText(" " .. displayName) else - member.Name:SetText(displayName); + member.Name:SetText(displayName) end - local classTextColor = grayedOut and GRAY_FONT_COLOR or RAID_CLASS_COLORS[class]; - member.Name:SetTextColor(classTextColor.r, classTextColor.g, classTextColor.b); + local classTextColor = grayedOut and GRAY_FONT_COLOR or RAID_CLASS_COLORS[class] + member.Name:SetTextColor(classTextColor.r, classTextColor.g, classTextColor.b) else --We might still be requesting the name and class from the server. - member.Name:SetText(""); + member.Name:SetText("") end - member.FriendIcon:SetShown(relationship); - member.FriendIcon.relationship = relationship; - member.FriendIcon.Icon:SetDesaturated(grayedOut); - member.FriendIcon:SetAlpha(grayedOut and 0.5 or 1.0); + member.FriendIcon:SetShown(relationship) + member.FriendIcon.relationship = relationship + member.FriendIcon.Icon:SetDesaturated(grayedOut) + member.FriendIcon:SetAlpha(grayedOut and 0.5 or 1.0) --Adjust name width depending on whether we have the friend icon - local nameLength = 100; - if ( relationship ) then - nameLength = nameLength - 22; - end - if ( member.Name:GetWidth() > nameLength ) then - member.Name:SetWidth(nameLength); - end + local nameLength = 100 + if relationship then nameLength = nameLength - 22 end + if member.Name:GetWidth() > nameLength then member.Name:SetWidth(nameLength) end --Update the roles. - if ( grayedOut ) then - member.RoleIcon1:Hide(); - member.RoleIcon2:Hide(); + if grayedOut then + member.RoleIcon1:Hide() + member.RoleIcon2:Hide() else - local role1 = tank and "TANK" or (healer and "HEALER" or (damage and "DAMAGER")); - local role2 = (tank and healer and "HEALER") or ((tank or healer) and damage and "DAMAGER"); - member.RoleIcon1:GetNormalTexture():SetAtlas(LFG_LIST_GROUP_DATA_ATLASES[role1]); - member.RoleIcon1:GetHighlightTexture():SetAtlas(LFG_LIST_GROUP_DATA_ATLASES[role1]); - if ( role2 ) then - member.RoleIcon2:GetNormalTexture():SetAtlas(LFG_LIST_GROUP_DATA_ATLASES[role2]); - member.RoleIcon2:GetHighlightTexture():SetAtlas(LFG_LIST_GROUP_DATA_ATLASES[role2]); + local role1 = tank and "TANK" or (healer and "HEALER" or (damage and "DAMAGER")) + local role2 = (tank and healer and "HEALER") or ((tank or healer) and damage and "DAMAGER") + member.RoleIcon1:GetNormalTexture():SetAtlas(LFG_LIST_GROUP_DATA_ATLASES[role1]) + member.RoleIcon1:GetHighlightTexture():SetAtlas(LFG_LIST_GROUP_DATA_ATLASES[role1]) + if role2 then + member.RoleIcon2:GetNormalTexture():SetAtlas(LFG_LIST_GROUP_DATA_ATLASES[role2]) + member.RoleIcon2:GetHighlightTexture():SetAtlas(LFG_LIST_GROUP_DATA_ATLASES[role2]) end - member.RoleIcon1:SetEnabled(not noTouchy and role1 ~= assignedRole); - member.RoleIcon1:SetAlpha(role1 == assignedRole and 1 or 0.3); - member.RoleIcon1:Show(); - member.RoleIcon2:SetEnabled(not noTouchy and role2 ~= assignedRole); - member.RoleIcon2:SetAlpha(role2 == assignedRole and 1 or 0.3); - member.RoleIcon2:SetShown(role2); - member.RoleIcon1.role = role1; - member.RoleIcon2.role = role2; + member.RoleIcon1:SetEnabled(not noTouchy and role1 ~= assignedRole) + member.RoleIcon1:SetAlpha(role1 == assignedRole and 1 or 0.3) + member.RoleIcon1:Show() + member.RoleIcon2:SetEnabled(not noTouchy and role2 ~= assignedRole) + member.RoleIcon2:SetAlpha(role2 == assignedRole and 1 or 0.3) + member.RoleIcon2:SetShown(role2) + member.RoleIcon1.role = role1 + member.RoleIcon2.role = role2 end - member.ItemLevel:SetShown(not grayedOut); - member.ItemLevel:SetText(math.floor(itemLevel)); + member.ItemLevel:SetShown(not grayedOut) + member.ItemLevel:SetText(math.floor(itemLevel)) - local mouseFocus = GetMouseFocus(); - if ( mouseFocus == member ) then - LFGListApplicantMember_OnEnter(member); - elseif ( mouseFocus == member.FriendIcon ) then - member.FriendIcon:GetScript("OnEnter")(member.FriendIcon); + local mouseFocus = GetMouseFocus() + if mouseFocus == member then + LFGListApplicantMember_OnEnter(member) + elseif mouseFocus == member.FriendIcon then + member.FriendIcon:GetScript("OnEnter")(member.FriendIcon) end end function LFGListApplicationViewer_GetScrollOffset(self, offset) - local acum = 0; - for i=1, #self.applicantSizes do - local height = LFGListApplicationViewerUtil_GetButtonHeight(self.applicantSizes[i]); - acum = acum + height; - if ( acum > offset ) then - return i - 1, height + offset - acum; - end + local acum = 0 + for i = 1, #self.applicantSizes do + local height = LFGListApplicationViewerUtil_GetButtonHeight(self.applicantSizes[i]) + acum = acum + height + if acum > offset then return i - 1, height + offset - acum end end --We're scrolled completely off the bottom - return #self.applicantSizes, 0; + return #self.applicantSizes, 0 end -function LFGListApplicationViewerUtil_GetButtonHeight(numApplicants) - return 20 * numApplicants + 6; -end +function LFGListApplicationViewerUtil_GetButtonHeight(numApplicants) return 20 * numApplicants + 6 end function LFGListApplicationViewerEditButton_OnClick(self) - PlaySound("igMainMenuOptionCheckBoxOn"); + PlaySound("igMainMenuOptionCheckBoxOn") - local panel = self:GetParent(); - local entryCreation = panel:GetParent().EntryCreation; - LFGListEntryCreation_SetEditMode(entryCreation, true); - LFGListFrame_SetActivePanel(panel:GetParent(), entryCreation); + local panel = self:GetParent() + local entryCreation = panel:GetParent().EntryCreation + LFGListEntryCreation_SetEditMode(entryCreation, true) + LFGListFrame_SetActivePanel(panel:GetParent(), entryCreation) end --Applicant members function LFGListApplicantMember_OnEnter(self) - local applicantID = self:GetParent().applicantID; - local memberIdx = self.memberIdx; - - local active, activityID = C_LFGList.GetActiveEntryInfo(); - if ( not active ) then - return; - end + local applicantID = self:GetParent().applicantID + local memberIdx = self.memberIdx + local active, activityID = C_LFGList.GetActiveEntryInfo() + if not active then return end - local useHonorLevel = select(11, C_LFGList.GetActivityInfo(activityID)); - local id, status, pendingStatus, numMembers, isNew, comment = C_LFGList.GetApplicantInfo(applicantID); - local name, class, localizedClass, level, itemLevel, honorLevel, tank, healer, damage, assignedRole = C_LFGList.GetApplicantMemberInfo(applicantID, memberIdx); + local useHonorLevel = select(11, C_LFGList.GetActivityInfo(activityID)) + local id, status, pendingStatus, numMembers, isNew, comment = C_LFGList.GetApplicantInfo(applicantID) + local name, class, localizedClass, level, itemLevel, honorLevel, tank, healer, damage, assignedRole = + C_LFGList.GetApplicantMemberInfo(applicantID, memberIdx) - GameTooltip:SetOwner(self, "ANCHOR_NONE"); - GameTooltip:SetPoint("BOTTOMLEFT", self, "TOPLEFT", 105, 0); - if ( name ) then - local classTextColor = RAID_CLASS_COLORS[class]; - GameTooltip:SetText(name, classTextColor.r, classTextColor.g, classTextColor.b); - GameTooltip:AddLine(string.format(UNIT_TYPE_LEVEL_TEMPLATE, level, localizedClass), 1, 1, 1); + GameTooltip:SetOwner(self, "ANCHOR_NONE") + GameTooltip:SetPoint("BOTTOMLEFT", self, "TOPLEFT", 105, 0) + if name then + local classTextColor = RAID_CLASS_COLORS[class] + GameTooltip:SetText(name, classTextColor.r, classTextColor.g, classTextColor.b) + GameTooltip:AddLine(string.format(UNIT_TYPE_LEVEL_TEMPLATE, level, localizedClass), 1, 1, 1) else - GameTooltip:SetText(" "); --Just make it empty until we get the name update + GameTooltip:SetText(" ") --Just make it empty until we get the name update end - GameTooltip:AddLine(string.format(LFG_LIST_ITEM_LEVEL_CURRENT, itemLevel), 1, 1, 1); - if ( useHonorLevel ) then - GameTooltip:AddLine(string.format(LFG_LIST_HONOR_LEVEL_CURRENT_PVP, honorLevel), 1, 1, 1); - end - if ( comment and comment ~= "" ) then - GameTooltip:AddLine(" "); - GameTooltip:AddLine(string.format(LFG_LIST_COMMENT_FORMAT, comment), LFG_LIST_COMMENT_FONT_COLOR.r, LFG_LIST_COMMENT_FONT_COLOR.g, LFG_LIST_COMMENT_FONT_COLOR.b, true); + GameTooltip:AddLine(string.format(LFG_LIST_ITEM_LEVEL_CURRENT, itemLevel), 1, 1, 1) + if useHonorLevel then GameTooltip:AddLine(string.format(LFG_LIST_HONOR_LEVEL_CURRENT_PVP, honorLevel), 1, 1, 1) end + if comment and comment ~= "" then + GameTooltip:AddLine(" ") + GameTooltip:AddLine( + string.format(LFG_LIST_COMMENT_FORMAT, comment), + LFG_LIST_COMMENT_FONT_COLOR.r, + LFG_LIST_COMMENT_FONT_COLOR.g, + LFG_LIST_COMMENT_FONT_COLOR.b, + true + ) end --Add statistics - local stats = C_LFGList.GetApplicantMemberStats(applicantID, memberIdx); - local lastTitle = nil; + local stats = C_LFGList.GetApplicantMemberStats(applicantID, memberIdx) + local lastTitle = nil --Tank proving ground - if ( stats[23690] and stats[23690] > 0 ) then - LFGListUtil_AppendStatistic(LFG_LIST_PROVING_TANK_GOLD, nil, LFG_LIST_PROVING_GROUND_TITLE, lastTitle); - lastTitle = LFG_LIST_PROVING_GROUND_TITLE; - elseif ( stats[23687] and stats[23687] > 0 ) then - LFGListUtil_AppendStatistic(LFG_LIST_PROVING_TANK_SILVER, nil, LFG_LIST_PROVING_GROUND_TITLE, lastTitle); - lastTitle = LFG_LIST_PROVING_GROUND_TITLE; - elseif ( stats[23684] and stats[23684] > 0 ) then - LFGListUtil_AppendStatistic(LFG_LIST_PROVING_TANK_BRONZE, nil, LFG_LIST_PROVING_GROUND_TITLE, lastTitle); - lastTitle = LFG_LIST_PROVING_GROUND_TITLE; + if stats[23690] and stats[23690] > 0 then + LFGListUtil_AppendStatistic(LFG_LIST_PROVING_TANK_GOLD, nil, LFG_LIST_PROVING_GROUND_TITLE, lastTitle) + lastTitle = LFG_LIST_PROVING_GROUND_TITLE + elseif stats[23687] and stats[23687] > 0 then + LFGListUtil_AppendStatistic(LFG_LIST_PROVING_TANK_SILVER, nil, LFG_LIST_PROVING_GROUND_TITLE, lastTitle) + lastTitle = LFG_LIST_PROVING_GROUND_TITLE + elseif stats[23684] and stats[23684] > 0 then + LFGListUtil_AppendStatistic(LFG_LIST_PROVING_TANK_BRONZE, nil, LFG_LIST_PROVING_GROUND_TITLE, lastTitle) + lastTitle = LFG_LIST_PROVING_GROUND_TITLE end --Healer proving ground - if ( stats[23691] and stats[23691] > 0 ) then - LFGListUtil_AppendStatistic(LFG_LIST_PROVING_HEALER_GOLD, nil, LFG_LIST_PROVING_GROUND_TITLE, lastTitle); - lastTitle = LFG_LIST_PROVING_GROUND_TITLE; - elseif ( stats[23688] and stats[23688] > 0 ) then - LFGListUtil_AppendStatistic(LFG_LIST_PROVING_HEALER_SILVER, nil, LFG_LIST_PROVING_GROUND_TITLE, lastTitle); - lastTitle = LFG_LIST_PROVING_GROUND_TITLE; - elseif ( stats[23685] and stats[23685] > 0 ) then - LFGListUtil_AppendStatistic(LFG_LIST_PROVING_HEALER_BRONZE, nil, LFG_LIST_PROVING_GROUND_TITLE, lastTitle); - lastTitle = LFG_LIST_PROVING_GROUND_TITLE; + if stats[23691] and stats[23691] > 0 then + LFGListUtil_AppendStatistic(LFG_LIST_PROVING_HEALER_GOLD, nil, LFG_LIST_PROVING_GROUND_TITLE, lastTitle) + lastTitle = LFG_LIST_PROVING_GROUND_TITLE + elseif stats[23688] and stats[23688] > 0 then + LFGListUtil_AppendStatistic(LFG_LIST_PROVING_HEALER_SILVER, nil, LFG_LIST_PROVING_GROUND_TITLE, lastTitle) + lastTitle = LFG_LIST_PROVING_GROUND_TITLE + elseif stats[23685] and stats[23685] > 0 then + LFGListUtil_AppendStatistic(LFG_LIST_PROVING_HEALER_BRONZE, nil, LFG_LIST_PROVING_GROUND_TITLE, lastTitle) + lastTitle = LFG_LIST_PROVING_GROUND_TITLE end --Damage proving ground - if ( stats[23689] and stats[23689] > 0 ) then - LFGListUtil_AppendStatistic(LFG_LIST_PROVING_DAMAGER_GOLD, nil, LFG_LIST_PROVING_GROUND_TITLE, lastTitle); - lastTitle = LFG_LIST_PROVING_GROUND_TITLE; - elseif ( stats[23686] and stats[23686] > 0 ) then - LFGListUtil_AppendStatistic(LFG_LIST_PROVING_DAMAGER_SILVER, nil, LFG_LIST_PROVING_GROUND_TITLE, lastTitle); - lastTitle = LFG_LIST_PROVING_GROUND_TITLE; - elseif ( stats[23683] and stats[23683] > 0 ) then - LFGListUtil_AppendStatistic(LFG_LIST_PROVING_DAMAGER_BRONZE, nil, LFG_LIST_PROVING_GROUND_TITLE, lastTitle); - lastTitle = LFG_LIST_PROVING_GROUND_TITLE; + if stats[23689] and stats[23689] > 0 then + LFGListUtil_AppendStatistic(LFG_LIST_PROVING_DAMAGER_GOLD, nil, LFG_LIST_PROVING_GROUND_TITLE, lastTitle) + lastTitle = LFG_LIST_PROVING_GROUND_TITLE + elseif stats[23686] and stats[23686] > 0 then + LFGListUtil_AppendStatistic(LFG_LIST_PROVING_DAMAGER_SILVER, nil, LFG_LIST_PROVING_GROUND_TITLE, lastTitle) + lastTitle = LFG_LIST_PROVING_GROUND_TITLE + elseif stats[23683] and stats[23683] > 0 then + LFGListUtil_AppendStatistic(LFG_LIST_PROVING_DAMAGER_BRONZE, nil, LFG_LIST_PROVING_GROUND_TITLE, lastTitle) + lastTitle = LFG_LIST_PROVING_GROUND_TITLE end - GameTooltip:Show(); + GameTooltip:Show() end ------------------------------------------------------- ----------Searching ------------------------------------------------------- function LFGListSearchPanel_OnLoad(self) - self.SearchBox.Instructions:SetText(FILTER); - self.ScrollFrame.update = function() LFGListSearchPanel_UpdateResults(self); end; - self.ScrollFrame.scrollBar.doNotHide = true; - HybridScrollFrame_CreateButtons(self.ScrollFrame, "LFGListSearchEntryTemplate"); + self.SearchBox.Instructions:SetText(FILTER) + self.ScrollFrame.update = function() LFGListSearchPanel_UpdateResults(self) end + self.ScrollFrame.scrollBar.doNotHide = true + HybridScrollFrame_CreateButtons(self.ScrollFrame, "LFGListSearchEntryTemplate") self.SearchBox.clearButton:SetScript("OnClick", function(btn) - SearchBoxTemplateClearButton_OnClick(btn); - LFGListSearchPanel_DoSearch(self); - end); + SearchBoxTemplateClearButton_OnClick(btn) + LFGListSearchPanel_DoSearch(self) + end) end function LFGListSearchPanel_OnEvent(self, event, ...) --Note: events are dispatched from the base frame. Add RegisterEvent there. - if ( event == "LFG_LIST_SEARCH_RESULTS_RECEIVED" ) then - StaticPopupSpecial_Hide(LFGListApplicationDialog); - self.searching = false; - self.searchFailed = false; - LFGListSearchPanel_UpdateResultList(self); - LFGListSearchPanel_UpdateResults(self); - elseif ( event == "LFG_LIST_SEARCH_FAILED" ) then - self.searching = false; - self.searchFailed = true; - LFGListSearchPanel_UpdateResultList(self); - LFGListSearchPanel_UpdateResults(self); - elseif ( event == "LFG_LIST_SEARCH_RESULT_UPDATED" ) then - local id = ...; - if ( self.selectedResult == id ) then - LFGListSearchPanel_ValidateSelected(self); - if ( self.selectedResult ~= id ) then - LFGListSearchPanel_UpdateResults(self); - end + if event == "LFG_LIST_SEARCH_RESULTS_RECEIVED" then + StaticPopupSpecial_Hide(LFGListApplicationDialog) + self.searching = false + self.searchFailed = false + LFGListSearchPanel_UpdateResultList(self) + LFGListSearchPanel_UpdateResults(self) + elseif event == "LFG_LIST_SEARCH_FAILED" then + self.searching = false + self.searchFailed = true + LFGListSearchPanel_UpdateResultList(self) + LFGListSearchPanel_UpdateResults(self) + elseif event == "LFG_LIST_SEARCH_RESULT_UPDATED" then + local id = ... + if self.selectedResult == id then + LFGListSearchPanel_ValidateSelected(self) + if self.selectedResult ~= id then LFGListSearchPanel_UpdateResults(self) end end - LFGListSearchPanel_UpdateButtonStatus(self); - elseif ( event == "LFG_LIST_SEARCH_RESULT_UPDATED" ) then - LFGListSearchPanel_UpdateButtonStatus(self); - elseif ( event == "PARTY_LEADER_CHANGED" ) then - LFGListSearchPanel_UpdateButtonStatus(self); - elseif ( event == "GROUP_ROSTER_UPDATE" ) then - LFGListSearchPanel_UpdateButtonStatus(self); - elseif ( event == "PLAYER_SPECIALIZATION_CHANGED" ) then - local unit = ...; - if ( unit == "player" ) then - LFGListSearchPanel_UpdateButtonStatus(self); - end - elseif ( event == "UNIT_CONNECTION" ) then - LFGListSearchPanel_UpdateButtonStatus(self); + LFGListSearchPanel_UpdateButtonStatus(self) + elseif event == "LFG_LIST_SEARCH_RESULT_UPDATED" then + LFGListSearchPanel_UpdateButtonStatus(self) + elseif event == "PARTY_LEADER_CHANGED" then + LFGListSearchPanel_UpdateButtonStatus(self) + elseif event == "GROUP_ROSTER_UPDATE" then + LFGListSearchPanel_UpdateButtonStatus(self) + elseif event == "PLAYER_SPECIALIZATION_CHANGED" then + local unit = ... + if unit == "player" then LFGListSearchPanel_UpdateButtonStatus(self) end + elseif event == "UNIT_CONNECTION" then + LFGListSearchPanel_UpdateButtonStatus(self) end - if ( tContains(LFG_LIST_ACTIVE_QUEUE_MESSAGE_EVENTS, event) ) then - LFGListSearchPanel_UpdateButtonStatus(self); - end + if tContains(LFG_LIST_ACTIVE_QUEUE_MESSAGE_EVENTS, event) then LFGListSearchPanel_UpdateButtonStatus(self) end end function LFGListSearchPanel_OnShow(self) - LFGListSearchPanel_UpdateResultList(self); - LFGListSearchPanel_UpdateResults(self); + LFGListSearchPanel_UpdateResultList(self) + LFGListSearchPanel_UpdateResults(self) --LFGListSearchPanel_UpdateButtonStatus(self); --Called by UpdateResults - - local availableLanguages = C_LFGList.GetAvailableLanguageSearchFilter(); - local defaultLanguages = C_LFGList.GetDefaultLanguageSearchFilter(); - local canChangeLanguages = false; - for i=1, #availableLanguages do - if ( not defaultLanguages[availableLanguages[i]] ) then - canChangeLanguages = true; - break; + local availableLanguages = C_LFGList.GetAvailableLanguageSearchFilter() + local defaultLanguages = C_LFGList.GetDefaultLanguageSearchFilter() + + local canChangeLanguages = false + for i = 1, #availableLanguages do + if not defaultLanguages[availableLanguages[i]] then + canChangeLanguages = true + break end end - if ( canChangeLanguages ) then - self.SearchBox:SetWidth(228); - self.FilterButton:Show(); + if canChangeLanguages then + self.SearchBox:SetWidth(228) + self.FilterButton:Show() else - self.SearchBox:SetWidth(319); - self.FilterButton:Hide(); + self.SearchBox:SetWidth(319) + self.FilterButton:Hide() end end function LFGListSearchPanel_Clear(self) - C_LFGList.ClearSearchResults(); - self.SearchBox:SetText(""); - self.selectedResult = nil; - LFGListSearchPanel_UpdateResultList(self); - LFGListSearchPanel_UpdateResults(self); + C_LFGList.ClearSearchResults() + self.SearchBox:SetText("") + self.selectedResult = nil + LFGListSearchPanel_UpdateResultList(self) + LFGListSearchPanel_UpdateResults(self) end function LFGListSearchPanel_SetCategory(self, categoryID, filters, preferredFilters) - self.categoryID = categoryID; - self.filters = filters; - self.preferredFilters = preferredFilters; + self.categoryID = categoryID + self.filters = filters + self.preferredFilters = preferredFilters - local name = LFGListUtil_GetDecoratedCategoryName(C_LFGList.GetCategoryInfo(categoryID), filters, false); - self.CategoryName:SetText(name); + local name = LFGListUtil_GetDecoratedCategoryName(C_LFGList.GetCategoryInfo(categoryID), filters, false) + self.CategoryName:SetText(name) end function LFGListSearchPanel_DoSearch(self) - local searchText = self.SearchBox:GetText(); - local languages = C_LFGList.GetLanguageSearchFilter(); - C_LFGList.Search(self.categoryID, searchText, self.filters, self.preferredFilters, languages); - self.searching = true; - self.searchFailed = false; - self.selectedResult = nil; - LFGListSearchPanel_UpdateResultList(self); - LFGListSearchPanel_UpdateResults(self); + local searchText = self.SearchBox:GetText() + local languages = C_LFGList.GetLanguageSearchFilter() + C_LFGList.Search(self.categoryID, searchText, self.filters, self.preferredFilters, languages) + self.searching = true + self.searchFailed = false + self.selectedResult = nil + LFGListSearchPanel_UpdateResultList(self) + LFGListSearchPanel_UpdateResults(self) end function LFGListSearchPanel_CreateGroupInstead(self) - LFGListEntryCreation_Show(self:GetParent().EntryCreation, self.preferredFilters, self.categoryID, self.filters); + LFGListEntryCreation_Show(self:GetParent().EntryCreation, self.preferredFilters, self.categoryID, self.filters) end function LFGListSearchPanel_UpdateResultList(self) - self.totalResults, self.results = C_LFGList.GetSearchResults(); - self.applications = C_LFGList.GetApplications(); - LFGListUtil_SortSearchResults(self.results); + self.totalResults, self.results = C_LFGList.GetSearchResults() + self.applications = C_LFGList.GetApplications() + LFGListUtil_SortSearchResults(self.results) end function LFGListSearchPanel_ValidateSelected(self) - if ( self.selectedResult and not LFGListSearchPanelUtil_CanSelectResult(self.selectedResult)) then - self.selectedResult = nil; + if self.selectedResult and not LFGListSearchPanelUtil_CanSelectResult(self.selectedResult) then + self.selectedResult = nil end end function LFGListSearchPanelUtil_CanSelectResult(resultID) - local _, appStatus, pendingStatus, appDuration = C_LFGList.GetApplicationInfo(resultID); - local id, activityID, name, comment, voiceChat, iLvl, honorLevel, age, numBNetFriends, numCharFriends, numGuildMates, isDelisted = C_LFGList.GetSearchResultInfo(resultID); - if ( appStatus ~= "none" or pendingStatus or isDelisted ) then - return false; - end - return true; + local _, appStatus, pendingStatus, appDuration = C_LFGList.GetApplicationInfo(resultID) + local id, activityID, name, comment, voiceChat, iLvl, honorLevel, age, numBNetFriends, numCharFriends, numGuildMates, isDelisted = + C_LFGList.GetSearchResultInfo(resultID) + if appStatus ~= "none" or pendingStatus or isDelisted then return false end + return true end function LFGListSearchPanel_UpdateResults(self) - local offset = HybridScrollFrame_GetOffset(self.ScrollFrame); - local buttons = self.ScrollFrame.buttons; + local offset = HybridScrollFrame_GetOffset(self.ScrollFrame) + local buttons = self.ScrollFrame.buttons --If we have an application selected, deselect it. - LFGListSearchPanel_ValidateSelected(self); + LFGListSearchPanel_ValidateSelected(self) - if ( self.searching ) then - self.SearchingSpinner:Show(); - self.ScrollFrame.NoResultsFound:Hide(); - self.ScrollFrame.StartGroupButton:Hide(); - for i=1, #buttons do - buttons[i]:Hide(); + if self.searching then + self.SearchingSpinner:Show() + self.ScrollFrame.NoResultsFound:Hide() + self.ScrollFrame.StartGroupButton:Hide() + for i = 1, #buttons do + buttons[i]:Hide() end else - self.SearchingSpinner:Hide(); - local results = self.results; - local apps = self.applications; + self.SearchingSpinner:Hide() + local results = self.results + local apps = self.applications - for i=1, #buttons do - local button = buttons[i]; - local idx = i + offset; - local result = (idx <= #apps) and apps[idx] or results[idx - #apps]; + for i = 1, #buttons do + local button = buttons[i] + local idx = i + offset + local result = (idx <= #apps) and apps[idx] or results[idx - #apps] - if ( result ) then - button.resultID = result; - LFGListSearchEntry_Update(button); - button:Show(); + if result then + button.resultID = result + LFGListSearchEntry_Update(button) + button:Show() else - button.resultID = nil; - button:Hide(); + button.resultID = nil + button:Hide() end end - local totalHeight = buttons[1]:GetHeight() * (#results + #apps); + local totalHeight = buttons[1]:GetHeight() * (#results + #apps) --Reanchor the errors to not overlap applications - if ( totalHeight < self.ScrollFrame:GetHeight() ) then - self.ScrollFrame.NoResultsFound:SetPoint("TOP", self.ScrollFrame, "TOP", 0, -totalHeight - 27); + if totalHeight < self.ScrollFrame:GetHeight() then + self.ScrollFrame.NoResultsFound:SetPoint("TOP", self.ScrollFrame, "TOP", 0, -totalHeight - 27) end - self.ScrollFrame.NoResultsFound:SetShown(self.totalResults == 0); - self.ScrollFrame.StartGroupButton:SetShown(self.totalResults == 0 and not self.searchFailed); - self.ScrollFrame.NoResultsFound:SetText(self.searchFailed and LFG_LIST_SEARCH_FAILED or LFG_LIST_NO_RESULTS_FOUND); + self.ScrollFrame.NoResultsFound:SetShown(self.totalResults == 0) + self.ScrollFrame.StartGroupButton:SetShown(self.totalResults == 0 and not self.searchFailed) + self.ScrollFrame.NoResultsFound:SetText( + self.searchFailed and LFG_LIST_SEARCH_FAILED or LFG_LIST_NO_RESULTS_FOUND + ) - HybridScrollFrame_Update(self.ScrollFrame, totalHeight, self.ScrollFrame:GetHeight()); + HybridScrollFrame_Update(self.ScrollFrame, totalHeight, self.ScrollFrame:GetHeight()) end - LFGListSearchPanel_UpdateButtonStatus(self); + LFGListSearchPanel_UpdateButtonStatus(self) end function LFGListSearchPanel_SelectResult(self, resultID) - self.selectedResult = resultID; - LFGListSearchPanel_UpdateResults(self); + self.selectedResult = resultID + LFGListSearchPanel_UpdateResults(self) end function LFGListSearchPanel_UpdateButtonStatus(self) --Update the SignUpButton - local resultID = self.selectedResult; - local numApplications, numActiveApplications = C_LFGList.GetNumApplications(); - local messageApply = LFGListUtil_GetActiveQueueMessage(true); - local availTank, availHealer, availDPS = C_LFGList.GetAvailableRoles(); - if ( messageApply ) then - self.SignUpButton:Disable(); - self.SignUpButton.tooltip = messageApply; - elseif ( not LFGListUtil_IsAppEmpowered() ) then - self.SignUpButton:Disable(); - self.SignUpButton.tooltip = LFG_LIST_APP_UNEMPOWERED; - elseif ( IsInGroup(LE_PARTY_CATEGORY_HOME) and C_LFGList.IsCurrentlyApplying() ) then - self.SignUpButton:Disable(); - self.SignUpButton.tooltip = LFG_LIST_APP_CURRENTLY_APPLYING; - elseif ( numActiveApplications >= MAX_LFG_LIST_APPLICATIONS ) then - self.SignUpButton:Disable(); - self.SignUpButton.tooltip = string.format(LFG_LIST_HIT_MAX_APPLICATIONS, MAX_LFG_LIST_APPLICATIONS); - elseif ( GetNumGroupMembers(LE_PARTY_CATEGORY_HOME) > MAX_PARTY_MEMBERS + 1 ) then - self.SignUpButton:Disable(); - self.SignUpButton.tooltip = LFG_LIST_MAX_MEMBERS; - elseif ( not (availTank or availHealer or availDPS) ) then - self.SignUpButton:Disable(); - self.SignUpButton.tooltip = LFG_LIST_MUST_CHOOSE_SPEC; - elseif ( GroupHasOfflineMember(LE_PARTY_CATEGORY_HOME) ) then - self.SignUpButton:Disable(); - self.SignUpButton.tooltip = LFG_LIST_OFFLINE_MEMBER; - elseif ( resultID ) then - self.SignUpButton:Enable(); - self.SignUpButton.tooltip = nil; + local resultID = self.selectedResult + local numApplications, numActiveApplications = C_LFGList.GetNumApplications() + local messageApply = LFGListUtil_GetActiveQueueMessage(true) + local availTank, availHealer, availDPS = C_LFGList.GetAvailableRoles() + if messageApply then + self.SignUpButton:Disable() + self.SignUpButton.tooltip = messageApply + elseif not LFGListUtil_IsAppEmpowered() then + self.SignUpButton:Disable() + self.SignUpButton.tooltip = LFG_LIST_APP_UNEMPOWERED + elseif IsInGroup(LE_PARTY_CATEGORY_HOME) and C_LFGList.IsCurrentlyApplying() then + self.SignUpButton:Disable() + self.SignUpButton.tooltip = LFG_LIST_APP_CURRENTLY_APPLYING + elseif numActiveApplications >= MAX_LFG_LIST_APPLICATIONS then + self.SignUpButton:Disable() + self.SignUpButton.tooltip = string.format(LFG_LIST_HIT_MAX_APPLICATIONS, MAX_LFG_LIST_APPLICATIONS) + elseif GetNumGroupMembers(LE_PARTY_CATEGORY_HOME) > MAX_PARTY_MEMBERS + 1 then + self.SignUpButton:Disable() + self.SignUpButton.tooltip = LFG_LIST_MAX_MEMBERS + elseif not (availTank or availHealer or availDPS) then + self.SignUpButton:Disable() + self.SignUpButton.tooltip = LFG_LIST_MUST_CHOOSE_SPEC + elseif GroupHasOfflineMember(LE_PARTY_CATEGORY_HOME) then + self.SignUpButton:Disable() + self.SignUpButton.tooltip = LFG_LIST_OFFLINE_MEMBER + elseif resultID then + self.SignUpButton:Enable() + self.SignUpButton.tooltip = nil else - self.SignUpButton:Disable(); - self.SignUpButton.tooltip = LFG_LIST_SELECT_A_SEARCH_RESULT; + self.SignUpButton:Disable() + self.SignUpButton.tooltip = LFG_LIST_SELECT_A_SEARCH_RESULT end --Update the StartGroupButton - if ( IsInGroup(LE_PARTY_CATEGORY_HOME) and not UnitIsGroupLeader("player", LE_PARTY_CATEGORY_HOME) ) then - self.ScrollFrame.StartGroupButton:Disable(); - self.ScrollFrame.StartGroupButton.tooltip = LFG_LIST_NOT_LEADER; + if IsInGroup(LE_PARTY_CATEGORY_HOME) and not UnitIsGroupLeader("player", LE_PARTY_CATEGORY_HOME) then + self.ScrollFrame.StartGroupButton:Disable() + self.ScrollFrame.StartGroupButton.tooltip = LFG_LIST_NOT_LEADER else - local messageStart = LFGListUtil_GetActiveQueueMessage(false); - if ( messageStart ) then - self.ScrollFrame.StartGroupButton:Disable(); - self.ScrollFrame.StartGroupButton.tooltip = messageStart; + local messageStart = LFGListUtil_GetActiveQueueMessage(false) + if messageStart then + self.ScrollFrame.StartGroupButton:Disable() + self.ScrollFrame.StartGroupButton.tooltip = messageStart else - self.ScrollFrame.StartGroupButton:Enable(); - self.ScrollFrame.StartGroupButton.tooltip = nil; + self.ScrollFrame.StartGroupButton:Enable() + self.ScrollFrame.StartGroupButton.tooltip = nil end end end -function LFGListSearchPanel_SignUp(self) - LFGListApplicationDialog_Show(LFGListApplicationDialog, self.selectedResult); -end +function LFGListSearchPanel_SignUp(self) LFGListApplicationDialog_Show(LFGListApplicationDialog, self.selectedResult) end function LFGListSearchPanelSearchBox_OnEnterPressed(self) - local parent = self:GetParent(); - if ( parent.AutoCompleteFrame:IsShown() and parent.AutoCompleteFrame.selected ) then - self:SetText( (C_LFGList.GetActivityInfo(parent.AutoCompleteFrame.selected)) ); + local parent = self:GetParent() + if parent.AutoCompleteFrame:IsShown() and parent.AutoCompleteFrame.selected then + self:SetText((C_LFGList.GetActivityInfo(parent.AutoCompleteFrame.selected))) end - LFGListSearchPanel_DoSearch(self:GetParent()); - self:ClearFocus(); + LFGListSearchPanel_DoSearch(self:GetParent()) + self:ClearFocus() end function LFGListSearchPanelSearchBox_OnTabPressed(self) - if ( IsShiftKeyDown() ) then - LFGListSearchPanel_AutoCompleteAdvance(self:GetParent(), -1); + if IsShiftKeyDown() then + LFGListSearchPanel_AutoCompleteAdvance(self:GetParent(), -1) else - LFGListSearchPanel_AutoCompleteAdvance(self:GetParent(), 1); + LFGListSearchPanel_AutoCompleteAdvance(self:GetParent(), 1) end end function LFGListSearchPanelSearchBox_OnArrowPressed(self, key) - if ( key == "UP" ) then - LFGListSearchPanel_AutoCompleteAdvance(self:GetParent(), -1); - elseif ( key == "DOWN" ) then - LFGListSearchPanel_AutoCompleteAdvance(self:GetParent(), 1); + if key == "UP" then + LFGListSearchPanel_AutoCompleteAdvance(self:GetParent(), -1) + elseif key == "DOWN" then + LFGListSearchPanel_AutoCompleteAdvance(self:GetParent(), 1) end end function LFGListSearchPanelSearchBox_OnTextChanged(self) - SearchBoxTemplate_OnTextChanged(self); - LFGListSearchPanel_UpdateAutoComplete(self:GetParent()); + SearchBoxTemplate_OnTextChanged(self) + LFGListSearchPanel_UpdateAutoComplete(self:GetParent()) end function LFGListSearchAutoCompleteButton_OnClick(self) - local panel = self:GetParent():GetParent(); - PlaySound("igMainMenuOptionCheckBoxOn"); - panel.SearchBox:SetText( (C_LFGList.GetActivityInfo(self.activityID)) ); - LFGListSearchPanel_DoSearch(panel); - panel.SearchBox:ClearFocus(); + local panel = self:GetParent():GetParent() + PlaySound("igMainMenuOptionCheckBoxOn") + panel.SearchBox:SetText((C_LFGList.GetActivityInfo(self.activityID))) + LFGListSearchPanel_DoSearch(panel) + panel.SearchBox:ClearFocus() end function LFGListSearchPanel_AutoCompleteAdvance(self, offset) - local selected = self.AutoCompleteFrame.selected; + local selected = self.AutoCompleteFrame.selected --Find the index of the current selection and how many results we have displayed - local idx = nil; - local numDisplayed = 0; - for i=1, #self.AutoCompleteFrame.Results do - local btn = self.AutoCompleteFrame.Results[i]; - if ( btn:IsShown() and btn.activityID ) then - numDisplayed = i; - if ( btn.activityID == selected ) then - idx = i; - end + local idx = nil + local numDisplayed = 0 + for i = 1, #self.AutoCompleteFrame.Results do + local btn = self.AutoCompleteFrame.Results[i] + if btn:IsShown() and btn.activityID then + numDisplayed = i + if btn.activityID == selected then idx = i end else - break; + break end end - local newIndex = nil; - if ( not idx ) then + local newIndex = nil + if not idx then --We had nothing selected, advance from the front or back - if ( offset > 0 ) then - newIndex = offset; + if offset > 0 then + newIndex = offset else - newIndex = numDisplayed + 1 + offset; + newIndex = numDisplayed + 1 + offset end else --Advance from our old location - newIndex = ((idx - 1 + offset + numDisplayed) % numDisplayed) + 1; + newIndex = ((idx - 1 + offset + numDisplayed) % numDisplayed) + 1 end - self.AutoCompleteFrame.selected = self.AutoCompleteFrame.Results[newIndex].activityID; - LFGListSearchPanel_UpdateAutoComplete(self); + self.AutoCompleteFrame.selected = self.AutoCompleteFrame.Results[newIndex].activityID + LFGListSearchPanel_UpdateAutoComplete(self) end function LFGListSearchPanel_UpdateAutoComplete(self) - local text = self.SearchBox:GetText(); - if ( text == "" or not self.SearchBox:HasFocus() ) then - self.AutoCompleteFrame:Hide(); - self.AutoCompleteFrame.selected = nil; - return; + local text = self.SearchBox:GetText() + if text == "" or not self.SearchBox:HasFocus() then + self.AutoCompleteFrame:Hide() + self.AutoCompleteFrame.selected = nil + return end --Choose the autocomplete results - local matchingActivities = C_LFGList.GetAvailableActivities(self.categoryID, nil, self.filters, text); - LFGListUtil_SortActivitiesByRelevancy(matchingActivities); + local matchingActivities = C_LFGList.GetAvailableActivities(self.categoryID, nil, self.filters, text) + LFGListUtil_SortActivitiesByRelevancy(matchingActivities) - local numResults = math.min(#matchingActivities, MAX_LFG_LIST_SEARCH_AUTOCOMPLETE_ENTRIES); + local numResults = math.min(#matchingActivities, MAX_LFG_LIST_SEARCH_AUTOCOMPLETE_ENTRIES) - if ( numResults == 0 ) then - self.AutoCompleteFrame:Hide(); - self.AutoCompleteFrame.selected = nil; - return; + if numResults == 0 then + self.AutoCompleteFrame:Hide() + self.AutoCompleteFrame.selected = nil + return end --Update the buttons - local foundSelected = false; - for i=1, numResults do - local id = matchingActivities[i]; + local foundSelected = false + for i = 1, numResults do + local id = matchingActivities[i] - local button = self.AutoCompleteFrame.Results[i]; - if ( not button ) then - button = CreateFrame("BUTTON", nil, self.AutoCompleteFrame, "LFGListSearchAutoCompleteButtonTemplate"); - button:SetPoint("TOPLEFT", self.AutoCompleteFrame.Results[i-1], "BOTTOMLEFT", 0, 0); - button:SetPoint("TOPRIGHT", self.AutoCompleteFrame.Results[i-1], "BOTTOMRIGHT", 0, 0); - self.AutoCompleteFrame.Results[i] = button; + local button = self.AutoCompleteFrame.Results[i] + if not button then + button = CreateFrame("BUTTON", nil, self.AutoCompleteFrame, "LFGListSearchAutoCompleteButtonTemplate") + button:SetPoint("TOPLEFT", self.AutoCompleteFrame.Results[i - 1], "BOTTOMLEFT", 0, 0) + button:SetPoint("TOPRIGHT", self.AutoCompleteFrame.Results[i - 1], "BOTTOMRIGHT", 0, 0) + self.AutoCompleteFrame.Results[i] = button end - if ( i == numResults and numResults < #matchingActivities ) then + if i == numResults and numResults < #matchingActivities then --This is just a "x more" button - button:SetFormattedText(LFG_LIST_AND_MORE, #matchingActivities - numResults + 1); - button:Disable(); - button.Selected:Hide(); - button.activityID = nil; + button:SetFormattedText(LFG_LIST_AND_MORE, #matchingActivities - numResults + 1) + button:Disable() + button.Selected:Hide() + button.activityID = nil else --This is an actual activity - button:SetText( (C_LFGList.GetActivityInfo(id)) ); - button:Enable(); - button.activityID = id; + button:SetText((C_LFGList.GetActivityInfo(id))) + button:Enable() + button.activityID = id - if ( id == self.AutoCompleteFrame.selected ) then - button.Selected:Show(); - foundSelected = true; + if id == self.AutoCompleteFrame.selected then + button.Selected:Show() + foundSelected = true else - button.Selected:Hide(); + button.Selected:Hide() end end - button:Show(); + button:Show() end - if ( not foundSelected ) then - self.selected = nil; - end + if not foundSelected then self.selected = nil end --Hide unused buttons - for i=numResults + 1, #self.AutoCompleteFrame.Results do - self.AutoCompleteFrame.Results[i]:Hide(); + for i = numResults + 1, #self.AutoCompleteFrame.Results do + self.AutoCompleteFrame.Results[i]:Hide() end --Update the frames height and show it - self.AutoCompleteFrame:SetHeight(numResults * self.AutoCompleteFrame.Results[1]:GetHeight() + 8); - self.AutoCompleteFrame:Show(); + self.AutoCompleteFrame:SetHeight(numResults * self.AutoCompleteFrame.Results[1]:GetHeight() + 8) + self.AutoCompleteFrame:Show() end function LFGListSearchEntry_OnLoad(self) - self:RegisterEvent("LFG_LIST_SEARCH_RESULT_UPDATED"); - self:RegisterEvent("LFG_ROLE_CHECK_UPDATE"); - self:RegisterForClicks("LeftButtonUp", "RightButtonUp"); + self:RegisterEvent("LFG_LIST_SEARCH_RESULT_UPDATED") + self:RegisterEvent("LFG_ROLE_CHECK_UPDATE") + self:RegisterForClicks("LeftButtonUp", "RightButtonUp") end function LFGListSearchEntry_Update(self) - local resultID = self.resultID; - local _, appStatus, pendingStatus, appDuration = C_LFGList.GetApplicationInfo(resultID); - local isApplication = (appStatus ~= "none" or pendingStatus); - local isAppFinished = LFGListUtil_IsStatusInactive(appStatus) or LFGListUtil_IsStatusInactive(pendingStatus); + local resultID = self.resultID + local _, appStatus, pendingStatus, appDuration = C_LFGList.GetApplicationInfo(resultID) + local isApplication = (appStatus ~= "none" or pendingStatus) + local isAppFinished = LFGListUtil_IsStatusInactive(appStatus) or LFGListUtil_IsStatusInactive(pendingStatus) --Update visibility based on whether we're an application or not - self.isApplication = isApplication; - self.ApplicationBG:SetShown(isApplication and not isAppFinished); - self.ResultBG:SetShown(not isApplication or isAppFinished); - self.DataDisplay:SetShown(not isApplication); - self.CancelButton:SetShown(isApplication and pendingStatus ~= "applied"); - self.CancelButton:SetEnabled(LFGListUtil_IsAppEmpowered()); - self.CancelButton.Icon:SetDesaturated(not LFGListUtil_IsAppEmpowered()); - self.CancelButton.tooltip = (not LFGListUtil_IsAppEmpowered()) and LFG_LIST_APP_UNEMPOWERED; - self.Spinner:SetShown(pendingStatus == "applied"); + self.isApplication = isApplication + self.ApplicationBG:SetShown(isApplication and not isAppFinished) + self.ResultBG:SetShown(not isApplication or isAppFinished) + self.DataDisplay:SetShown(not isApplication) + self.CancelButton:SetShown(isApplication and pendingStatus ~= "applied") + self.CancelButton:SetEnabled(LFGListUtil_IsAppEmpowered()) + self.CancelButton.Icon:SetDesaturated(not LFGListUtil_IsAppEmpowered()) + self.CancelButton.tooltip = (not LFGListUtil_IsAppEmpowered()) and LFG_LIST_APP_UNEMPOWERED + self.Spinner:SetShown(pendingStatus == "applied") - if ( pendingStatus == "applied" and C_LFGList.GetRoleCheckInfo() ) then - self.PendingLabel:SetText(LFG_LIST_ROLE_CHECK); - self.PendingLabel:SetTextColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b); - self.PendingLabel:Show(); - self.ExpirationTime:Hide(); - self.CancelButton:Hide(); - elseif ( pendingStatus == "cancelled" or appStatus == "cancelled" or appStatus == "failed" ) then - self.PendingLabel:SetText(LFG_LIST_APP_CANCELLED); - self.PendingLabel:SetTextColor(RED_FONT_COLOR.r, RED_FONT_COLOR.g, RED_FONT_COLOR.b); - self.PendingLabel:Show(); - self.ExpirationTime:Hide(); - self.CancelButton:Hide(); - elseif ( appStatus == "declined" ) then - self.PendingLabel:SetText(LFG_LIST_APP_DECLINED); - self.PendingLabel:SetTextColor(RED_FONT_COLOR.r, RED_FONT_COLOR.g, RED_FONT_COLOR.b); - self.PendingLabel:Show(); - self.ExpirationTime:Hide(); - self.CancelButton:Hide(); - elseif ( appStatus == "timedout" ) then - self.PendingLabel:SetText(LFG_LIST_APP_TIMED_OUT); - self.PendingLabel:SetTextColor(RED_FONT_COLOR.r, RED_FONT_COLOR.g, RED_FONT_COLOR.b); - self.PendingLabel:Show(); - self.ExpirationTime:Hide(); - self.CancelButton:Hide(); - elseif ( appStatus == "invited" ) then - self.PendingLabel:SetText(LFG_LIST_APP_INVITED); - self.PendingLabel:SetTextColor(GREEN_FONT_COLOR.r, GREEN_FONT_COLOR.g, GREEN_FONT_COLOR.b); - self.PendingLabel:Show(); - self.ExpirationTime:Hide(); - self.CancelButton:Hide(); - elseif ( appStatus == "inviteaccepted" ) then - self.PendingLabel:SetText(LFG_LIST_APP_INVITE_ACCEPTED); - self.PendingLabel:SetTextColor(GREEN_FONT_COLOR.r, GREEN_FONT_COLOR.g, GREEN_FONT_COLOR.b); - self.PendingLabel:Show(); - self.ExpirationTime:Hide(); - self.CancelButton:Hide(); - elseif ( appStatus == "invitedeclined" ) then - self.PendingLabel:SetText(LFG_LIST_APP_INVITE_DECLINED); - self.PendingLabel:SetTextColor(RED_FONT_COLOR.r, RED_FONT_COLOR.g, RED_FONT_COLOR.b); - self.PendingLabel:Show(); - self.ExpirationTime:Hide(); - self.CancelButton:Hide(); - elseif ( isApplication and pendingStatus ~= "applied" ) then - self.PendingLabel:SetText(LFG_LIST_PENDING); - self.PendingLabel:SetTextColor(GREEN_FONT_COLOR.r, GREEN_FONT_COLOR.g, GREEN_FONT_COLOR.b); - self.PendingLabel:Show(); - self.ExpirationTime:Show(); - self.CancelButton:Show(); + if pendingStatus == "applied" and C_LFGList.GetRoleCheckInfo() then + self.PendingLabel:SetText(LFG_LIST_ROLE_CHECK) + self.PendingLabel:SetTextColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b) + self.PendingLabel:Show() + self.ExpirationTime:Hide() + self.CancelButton:Hide() + elseif pendingStatus == "cancelled" or appStatus == "cancelled" or appStatus == "failed" then + self.PendingLabel:SetText(LFG_LIST_APP_CANCELLED) + self.PendingLabel:SetTextColor(RED_FONT_COLOR.r, RED_FONT_COLOR.g, RED_FONT_COLOR.b) + self.PendingLabel:Show() + self.ExpirationTime:Hide() + self.CancelButton:Hide() + elseif appStatus == "declined" then + self.PendingLabel:SetText(LFG_LIST_APP_DECLINED) + self.PendingLabel:SetTextColor(RED_FONT_COLOR.r, RED_FONT_COLOR.g, RED_FONT_COLOR.b) + self.PendingLabel:Show() + self.ExpirationTime:Hide() + self.CancelButton:Hide() + elseif appStatus == "timedout" then + self.PendingLabel:SetText(LFG_LIST_APP_TIMED_OUT) + self.PendingLabel:SetTextColor(RED_FONT_COLOR.r, RED_FONT_COLOR.g, RED_FONT_COLOR.b) + self.PendingLabel:Show() + self.ExpirationTime:Hide() + self.CancelButton:Hide() + elseif appStatus == "invited" then + self.PendingLabel:SetText(LFG_LIST_APP_INVITED) + self.PendingLabel:SetTextColor(GREEN_FONT_COLOR.r, GREEN_FONT_COLOR.g, GREEN_FONT_COLOR.b) + self.PendingLabel:Show() + self.ExpirationTime:Hide() + self.CancelButton:Hide() + elseif appStatus == "inviteaccepted" then + self.PendingLabel:SetText(LFG_LIST_APP_INVITE_ACCEPTED) + self.PendingLabel:SetTextColor(GREEN_FONT_COLOR.r, GREEN_FONT_COLOR.g, GREEN_FONT_COLOR.b) + self.PendingLabel:Show() + self.ExpirationTime:Hide() + self.CancelButton:Hide() + elseif appStatus == "invitedeclined" then + self.PendingLabel:SetText(LFG_LIST_APP_INVITE_DECLINED) + self.PendingLabel:SetTextColor(RED_FONT_COLOR.r, RED_FONT_COLOR.g, RED_FONT_COLOR.b) + self.PendingLabel:Show() + self.ExpirationTime:Hide() + self.CancelButton:Hide() + elseif isApplication and pendingStatus ~= "applied" then + self.PendingLabel:SetText(LFG_LIST_PENDING) + self.PendingLabel:SetTextColor(GREEN_FONT_COLOR.r, GREEN_FONT_COLOR.g, GREEN_FONT_COLOR.b) + self.PendingLabel:Show() + self.ExpirationTime:Show() + self.CancelButton:Show() else - self.PendingLabel:Hide(); - self.ExpirationTime:Hide(); - self.CancelButton:Hide(); + self.PendingLabel:Hide() + self.ExpirationTime:Hide() + self.CancelButton:Hide() end --Center justify if we're on more than one line - if ( self.PendingLabel:GetHeight() > 15 ) then - self.PendingLabel:SetJustifyH("CENTER"); + if self.PendingLabel:GetHeight() > 15 then + self.PendingLabel:SetJustifyH("CENTER") else - self.PendingLabel:SetJustifyH("RIGHT"); + self.PendingLabel:SetJustifyH("RIGHT") end --Change the anchor of the label depending on whether we have the expiration time - if ( self.ExpirationTime:IsShown() ) then - self.PendingLabel:SetPoint("RIGHT", self.ExpirationTime, "LEFT", -3, 0); + if self.ExpirationTime:IsShown() then + self.PendingLabel:SetPoint("RIGHT", self.ExpirationTime, "LEFT", -3, 0) else - self.PendingLabel:SetPoint("RIGHT", self.ExpirationTime, "RIGHT", -3, 0); + self.PendingLabel:SetPoint("RIGHT", self.ExpirationTime, "RIGHT", -3, 0) end - self.expiration = GetTime() + appDuration; + self.expiration = GetTime() + appDuration - local panel = self:GetParent():GetParent():GetParent(); + local panel = self:GetParent():GetParent():GetParent() - local id, activityID, name, comment, voiceChat, iLvl, honorLevel, age, numBNetFriends, numCharFriends, numGuildMates, isDelisted = C_LFGList.GetSearchResultInfo(resultID); - local activityName = C_LFGList.GetActivityInfo(activityID); + local id, activityID, name, comment, voiceChat, iLvl, honorLevel, age, numBNetFriends, numCharFriends, numGuildMates, isDelisted = + C_LFGList.GetSearchResultInfo(resultID) + local activityName = C_LFGList.GetActivityInfo(activityID) - self.resultID = resultID; - self.Selected:SetShown(panel.selectedResult == resultID and not isApplication and not isDelisted); - self.Highlight:SetShown(panel.selectedResult ~= resultID and not isApplication and not isDelisted); - local nameColor = NORMAL_FONT_COLOR; - local activityColor = GRAY_FONT_COLOR; - if ( isDelisted or isAppFinished ) then - nameColor = LFG_LIST_DELISTED_FONT_COLOR; - activityColor = LFG_LIST_DELISTED_FONT_COLOR; - elseif ( numBNetFriends > 0 or numCharFriends > 0 or numGuildMates > 0 ) then - nameColor = BATTLENET_FONT_COLOR; + self.resultID = resultID + self.Selected:SetShown(panel.selectedResult == resultID and not isApplication and not isDelisted) + self.Highlight:SetShown(panel.selectedResult ~= resultID and not isApplication and not isDelisted) + local nameColor = NORMAL_FONT_COLOR + local activityColor = GRAY_FONT_COLOR + if isDelisted or isAppFinished then + nameColor = LFG_LIST_DELISTED_FONT_COLOR + activityColor = LFG_LIST_DELISTED_FONT_COLOR + elseif numBNetFriends > 0 or numCharFriends > 0 or numGuildMates > 0 then + nameColor = BATTLENET_FONT_COLOR end - self.Name:SetWidth(0); - self.Name:SetText(name); - self.Name:SetTextColor(nameColor.r, nameColor.g, nameColor.b); - self.ActivityName:SetText(activityName); - self.ActivityName:SetTextColor(activityColor.r, activityColor.g, activityColor.b); - self.VoiceChat:SetShown(voiceChat ~= ""); - self.VoiceChat.tooltip = voiceChat; + self.Name:SetWidth(0) + self.Name:SetText(name) + self.Name:SetTextColor(nameColor.r, nameColor.g, nameColor.b) + self.ActivityName:SetText(activityName) + self.ActivityName:SetTextColor(activityColor.r, activityColor.g, activityColor.b) + self.VoiceChat:SetShown(voiceChat ~= "") + self.VoiceChat.tooltip = voiceChat - local displayData = C_LFGList.GetSearchResultMemberCounts(resultID); - LFGListGroupDataDisplay_Update(self.DataDisplay, activityID, displayData, isDelisted); + local displayData = C_LFGList.GetSearchResultMemberCounts(resultID) + LFGListGroupDataDisplay_Update(self.DataDisplay, activityID, displayData, isDelisted) - local nameWidth = isApplication and 165 or 176; - if ( voiceChat ~= "" ) then - nameWidth = nameWidth - 22; - end - if ( self.Name:GetWidth() > nameWidth ) then - self.Name:SetWidth(nameWidth); - end - self.ActivityName:SetWidth(nameWidth); + local nameWidth = isApplication and 165 or 176 + if voiceChat ~= "" then nameWidth = nameWidth - 22 end + if self.Name:GetWidth() > nameWidth then self.Name:SetWidth(nameWidth) end + self.ActivityName:SetWidth(nameWidth) - local mouseFocus = GetMouseFocus(); - if ( mouseFocus == self ) then - LFGListSearchEntry_OnEnter(self); - end - if ( mouseFocus == self.VoiceChat ) then - mouseFocus:GetScript("OnEnter")(mouseFocus); - end + local mouseFocus = GetMouseFocus() + if mouseFocus == self then LFGListSearchEntry_OnEnter(self) end + if mouseFocus == self.VoiceChat then mouseFocus:GetScript("OnEnter")(mouseFocus) end - if ( isApplication ) then - self:SetScript("OnUpdate", LFGListSearchEntry_UpdateExpiration); - LFGListSearchEntry_UpdateExpiration(self); + if isApplication then + self:SetScript("OnUpdate", LFGListSearchEntry_UpdateExpiration) + LFGListSearchEntry_UpdateExpiration(self) else - self:SetScript("OnUpdate", nil); + self:SetScript("OnUpdate", nil) end end function LFGListSearchEntry_UpdateExpiration(self) - local duration = 0; - local now = GetTime(); - if ( self.expiration and self.expiration > now ) then - duration = self.expiration - now; - end - - local minutes = math.floor(duration / 60); - local seconds = duration % 60; - self.ExpirationTime:SetFormattedText("%d:%.2d", minutes, seconds); + local duration = 0 + local now = GetTime() + if self.expiration and self.expiration > now then duration = self.expiration - now end + + local minutes = math.floor(duration / 60) + local seconds = duration % 60 + self.ExpirationTime:SetFormattedText("%d:%.2d", minutes, seconds) end function LFGListSearchEntry_OnEvent(self, event, ...) - if ( event == "LFG_LIST_SEARCH_RESULT_UPDATED" ) then - local id = ...; - if ( id == self.resultID ) then - LFGListSearchEntry_Update(self); - end - elseif ( event == "LFG_ROLE_CHECK_UPDATE" ) then - if ( self.resultID ) then - LFGListSearchEntry_Update(self); - end + if event == "LFG_LIST_SEARCH_RESULT_UPDATED" then + local id = ... + if id == self.resultID then LFGListSearchEntry_Update(self) end + elseif event == "LFG_ROLE_CHECK_UPDATE" then + if self.resultID then LFGListSearchEntry_Update(self) end end end function LFGListSearchEntry_OnClick(self, button) - local scrollFrame = self:GetParent():GetParent(); - if ( button == "RightButton" ) then - PlaySound("igMainMenuOptionCheckBoxOn"); - EasyMenu(LFGListUtil_GetSearchEntryMenu(self.resultID), LFGListFrameDropDown, self, 0, -2, "MENU"); - elseif ( scrollFrame:GetParent().selectedResult ~= self.resultID and LFGListSearchPanelUtil_CanSelectResult(self.resultID) ) then - PlaySound("igMainMenuOptionCheckBoxOn"); - LFGListSearchPanel_SelectResult(scrollFrame:GetParent(), self.resultID); + local scrollFrame = self:GetParent():GetParent() + if button == "RightButton" then + PlaySound("igMainMenuOptionCheckBoxOn") + EasyMenu(LFGListUtil_GetSearchEntryMenu(self.resultID), LFGListFrameDropDown, self, 0, -2, "MENU") + elseif + scrollFrame:GetParent().selectedResult ~= self.resultID + and LFGListSearchPanelUtil_CanSelectResult(self.resultID) + then + PlaySound("igMainMenuOptionCheckBoxOn") + LFGListSearchPanel_SelectResult(scrollFrame:GetParent(), self.resultID) end end function LFGListSearchEntry_OnEnter(self) - local resultID = self.resultID; - local id, activityID, name, comment, voiceChat, iLvl, honorLevel, age, numBNetFriends, numCharFriends, numGuildMates, isDelisted, leaderName, numMembers = C_LFGList.GetSearchResultInfo(resultID); - local activityName, shortName, categoryID, groupID, minItemLevel, filters, minLevel, maxPlayers, displayType, _, useHonorLevel = C_LFGList.GetActivityInfo(activityID); - local memberCounts = C_LFGList.GetSearchResultMemberCounts(resultID); - GameTooltip:SetOwner(self, "ANCHOR_RIGHT", 25, 0); - GameTooltip:SetText(name, 1, 1, 1, true); - GameTooltip:AddLine(activityName); - if ( comment ~= "" ) then - GameTooltip:AddLine(string.format(LFG_LIST_COMMENT_FORMAT, comment), LFG_LIST_COMMENT_FONT_COLOR.r, LFG_LIST_COMMENT_FONT_COLOR.g, LFG_LIST_COMMENT_FONT_COLOR.b, true); + local resultID = self.resultID + local id, activityID, name, comment, voiceChat, iLvl, honorLevel, age, numBNetFriends, numCharFriends, numGuildMates, isDelisted, leaderName, numMembers = + C_LFGList.GetSearchResultInfo(resultID) + local activityName, shortName, categoryID, groupID, minItemLevel, filters, minLevel, maxPlayers, displayType, _, useHonorLevel = + C_LFGList.GetActivityInfo(activityID) + local memberCounts = C_LFGList.GetSearchResultMemberCounts(resultID) + GameTooltip:SetOwner(self, "ANCHOR_RIGHT", 25, 0) + GameTooltip:SetText(name, 1, 1, 1, true) + GameTooltip:AddLine(activityName) + if comment ~= "" then + GameTooltip:AddLine( + string.format(LFG_LIST_COMMENT_FORMAT, comment), + LFG_LIST_COMMENT_FONT_COLOR.r, + LFG_LIST_COMMENT_FONT_COLOR.g, + LFG_LIST_COMMENT_FONT_COLOR.b, + true + ) end - GameTooltip:AddLine(" "); - if ( iLvl > 0 ) then - GameTooltip:AddLine(string.format(LFG_LIST_TOOLTIP_ILVL, iLvl)); + GameTooltip:AddLine(" ") + if iLvl > 0 then GameTooltip:AddLine(string.format(LFG_LIST_TOOLTIP_ILVL, iLvl)) end + if useHonorLevel and honorLevel > 0 then + GameTooltip:AddLine(string.format(LFG_LIST_TOOLTIP_HONOR_LEVEL, honorLevel)) end - if ( useHonorLevel and honorLevel > 0 ) then - GameTooltip:AddLine(string.format(LFG_LIST_TOOLTIP_HONOR_LEVEL, honorLevel)); + if voiceChat ~= "" then + GameTooltip:AddLine(string.format(LFG_LIST_TOOLTIP_VOICE_CHAT, voiceChat), nil, nil, nil, true) end - if ( voiceChat ~= "" ) then - GameTooltip:AddLine(string.format(LFG_LIST_TOOLTIP_VOICE_CHAT, voiceChat), nil, nil, nil, true); - end - if ( iLvl > 0 or (useHonorLevel and honorLevel > 0) or voiceChat ~= "" ) then - GameTooltip:AddLine(" "); + if iLvl > 0 or (useHonorLevel and honorLevel > 0) or voiceChat ~= "" then GameTooltip:AddLine(" ") end + + if leaderName then GameTooltip:AddLine(string.format(LFG_LIST_TOOLTIP_LEADER, leaderName)) end + if age > 0 then + GameTooltip:AddLine(string.format(LFG_LIST_TOOLTIP_AGE, SecondsToTime(age, false, false, 1, false))) end - if ( leaderName ) then - GameTooltip:AddLine(string.format(LFG_LIST_TOOLTIP_LEADER, leaderName)); - end - if ( age > 0 ) then - GameTooltip:AddLine(string.format(LFG_LIST_TOOLTIP_AGE, SecondsToTime(age, false, false, 1, false))); - end + if leaderName or age > 0 then GameTooltip:AddLine(" ") end - if ( leaderName or age > 0 ) then - GameTooltip:AddLine(" "); - end - - if ( displayType == LE_LFG_LIST_DISPLAY_TYPE_CLASS_ENUMERATE ) then - GameTooltip:AddLine(string.format(LFG_LIST_TOOLTIP_MEMBERS_SIMPLE, numMembers)); - for i=1, numMembers do - local role, class, classLocalized = C_LFGList.GetSearchResultMemberInfo(resultID, i); - local classColor = RAID_CLASS_COLORS[class] or NORMAL_FONT_COLOR; - GameTooltip:AddLine(string.format(LFG_LIST_TOOLTIP_CLASS_ROLE, classLocalized, _G[role]), classColor.r, classColor.g, classColor.b); + if displayType == LE_LFG_LIST_DISPLAY_TYPE_CLASS_ENUMERATE then + GameTooltip:AddLine(string.format(LFG_LIST_TOOLTIP_MEMBERS_SIMPLE, numMembers)) + for i = 1, numMembers do + local role, class, classLocalized = C_LFGList.GetSearchResultMemberInfo(resultID, i) + local classColor = RAID_CLASS_COLORS[class] or NORMAL_FONT_COLOR + GameTooltip:AddLine( + string.format(LFG_LIST_TOOLTIP_CLASS_ROLE, classLocalized, _G[role]), + classColor.r, + classColor.g, + classColor.b + ) end else - GameTooltip:AddLine(string.format(LFG_LIST_TOOLTIP_MEMBERS, numMembers, memberCounts.TANK, memberCounts.HEALER, memberCounts.DAMAGER)); + GameTooltip:AddLine( + string.format( + LFG_LIST_TOOLTIP_MEMBERS, + numMembers, + memberCounts.TANK, + memberCounts.HEALER, + memberCounts.DAMAGER + ) + ) end - if ( numBNetFriends + numCharFriends + numGuildMates > 0 ) then - GameTooltip:AddLine(" "); - GameTooltip:AddLine(LFG_LIST_TOOLTIP_FRIENDS_IN_GROUP); - GameTooltip:AddLine(LFGListSearchEntryUtil_GetFriendList(resultID), 1, 1, 1, true); + if numBNetFriends + numCharFriends + numGuildMates > 0 then + GameTooltip:AddLine(" ") + GameTooltip:AddLine(LFG_LIST_TOOLTIP_FRIENDS_IN_GROUP) + GameTooltip:AddLine(LFGListSearchEntryUtil_GetFriendList(resultID), 1, 1, 1, true) end - local completedEncounters = C_LFGList.GetSearchResultEncounterInfo(resultID); - if ( completedEncounters and #completedEncounters > 0 ) then - GameTooltip:AddLine(" "); - GameTooltip:AddLine(LFG_LIST_BOSSES_DEFEATED); - for i=1, #completedEncounters do - GameTooltip:AddLine(completedEncounters[i], RED_FONT_COLOR.r, RED_FONT_COLOR.g, RED_FONT_COLOR.b); + local completedEncounters = C_LFGList.GetSearchResultEncounterInfo(resultID) + if completedEncounters and #completedEncounters > 0 then + GameTooltip:AddLine(" ") + GameTooltip:AddLine(LFG_LIST_BOSSES_DEFEATED) + for i = 1, #completedEncounters do + GameTooltip:AddLine(completedEncounters[i], RED_FONT_COLOR.r, RED_FONT_COLOR.g, RED_FONT_COLOR.b) end end - if ( isDelisted ) then - GameTooltip:AddLine(" "); - GameTooltip:AddLine(LFG_LIST_ENTRY_DELISTED, RED_FONT_COLOR.r, RED_FONT_COLOR.g, RED_FONT_COLOR.b, true); + if isDelisted then + GameTooltip:AddLine(" ") + GameTooltip:AddLine(LFG_LIST_ENTRY_DELISTED, RED_FONT_COLOR.r, RED_FONT_COLOR.g, RED_FONT_COLOR.b, true) end - GameTooltip:Show(); + GameTooltip:Show() end function LFGListSearchEntryUtil_GetFriendList(resultID) - local list = ""; - local bNetFriends, charFriends, guildMates = C_LFGList.GetSearchResultFriends(resultID); - local displayedFirst = false; + local list = "" + local bNetFriends, charFriends, guildMates = C_LFGList.GetSearchResultFriends(resultID) + local displayedFirst = false --BNet friends - for i=1, #bNetFriends do - if ( displayedFirst ) then - list = list..PLAYER_LIST_DELIMITER; + for i = 1, #bNetFriends do + if displayedFirst then + list = list .. PLAYER_LIST_DELIMITER else - displayedFirst = true; + displayedFirst = true end - list = list..FRIENDS_BNET_NAME_COLOR_CODE..bNetFriends[i]..FONT_COLOR_CODE_CLOSE; + list = list .. FRIENDS_BNET_NAME_COLOR_CODE .. bNetFriends[i] .. FONT_COLOR_CODE_CLOSE end --Character friends - for i=1, #charFriends do - if ( displayedFirst ) then - list = list..PLAYER_LIST_DELIMITER; + for i = 1, #charFriends do + if displayedFirst then + list = list .. PLAYER_LIST_DELIMITER else - displayedFirst = true; + displayedFirst = true end - list = list..FRIENDS_WOW_NAME_COLOR_CODE..charFriends[i]..FONT_COLOR_CODE_CLOSE; + list = list .. FRIENDS_WOW_NAME_COLOR_CODE .. charFriends[i] .. FONT_COLOR_CODE_CLOSE end --Guild mates - for i=1, #guildMates do - if ( displayedFirst ) then - list = list..PLAYER_LIST_DELIMITER; + for i = 1, #guildMates do + if displayedFirst then + list = list .. PLAYER_LIST_DELIMITER else - displayedFirst = true; + displayedFirst = true end - list = list..RGBTableToColorCode(ChatTypeInfo.GUILD)..guildMates[i]..FONT_COLOR_CODE_CLOSE; + list = list .. RGBTableToColorCode(ChatTypeInfo.GUILD) .. guildMates[i] .. FONT_COLOR_CODE_CLOSE end - return list; + return list end ------------------------------------------------------- ----------Application dialog functions ------------------------------------------------------- function LFGListApplicationDialog_OnLoad(self) - self:RegisterEvent("LFG_ROLE_UPDATE"); - self.Description.EditBox:SetScript("OnEnterPressed", nop); - self.hideOnEscape = true; + self:RegisterEvent("LFG_ROLE_UPDATE") + self.Description.EditBox:SetScript("OnEnterPressed", nop) + self.hideOnEscape = true end function LFGListApplicationDialog_OnEvent(self, event) - if ( event == "LFG_ROLE_UPDATE" ) then - LFGListApplicationDialog_UpdateRoles(self); - end + if event == "LFG_ROLE_UPDATE" then LFGListApplicationDialog_UpdateRoles(self) end end function LFGListApplicationDialog_Show(self, resultID) - self.resultID = resultID; - self.Description.EditBox:SetText(""); - LFGListApplicationDialog_UpdateRoles(self); - StaticPopupSpecial_Show(self); + self.resultID = resultID + self.Description.EditBox:SetText("") + LFGListApplicationDialog_UpdateRoles(self) + StaticPopupSpecial_Show(self) end function LFGListApplicationDialog_UpdateRoles(self) - local availTank, availHealer, availDPS = C_LFGList.GetAvailableRoles(); + local availTank, availHealer, availDPS = C_LFGList.GetAvailableRoles() - local avail1, avail2; - if ( availTank ) then - avail1 = self.TankButton; - end - if ( availHealer ) then - if ( avail1 ) then - avail2 = self.HealerButton; + local avail1, avail2 + if availTank then avail1 = self.TankButton end + if availHealer then + if avail1 then + avail2 = self.HealerButton else - avail1 = self.HealerButton; + avail1 = self.HealerButton end end - if ( availDPS ) then - if ( avail1 ) then - avail2 = self.DamagerButton; + if availDPS then + if avail1 then + avail2 = self.DamagerButton else - avail1 = self.DamagerButton; + avail1 = self.DamagerButton end end - self.TankButton:SetShown(availTank); - self.HealerButton:SetShown(availHealer); - self.DamagerButton:SetShown(availDPS); + self.TankButton:SetShown(availTank) + self.HealerButton:SetShown(availHealer) + self.DamagerButton:SetShown(availDPS) - if ( avail2 ) then - avail1:ClearAllPoints(); - avail1:SetPoint("TOPRIGHT", self, "TOP", -5, -35); - avail2:ClearAllPoints(); - avail2:SetPoint("TOPLEFT", self, "TOP", 5, -35); - elseif ( avail1 ) then - avail1:ClearAllPoints(); - avail1:SetPoint("TOP", self, "TOP", 0, -35); + if avail2 then + avail1:ClearAllPoints() + avail1:SetPoint("TOPRIGHT", self, "TOP", -5, -35) + avail2:ClearAllPoints() + avail2:SetPoint("TOPLEFT", self, "TOP", 5, -35) + elseif avail1 then + avail1:ClearAllPoints() + avail1:SetPoint("TOP", self, "TOP", 0, -35) end - local _, tank, healer, dps = GetLFGRoles(); - self.TankButton.CheckButton:SetChecked(tank); - self.HealerButton.CheckButton:SetChecked(healer); - self.DamagerButton.CheckButton:SetChecked(dps); + local _, tank, healer, dps = GetLFGRoles() + self.TankButton.CheckButton:SetChecked(tank) + self.HealerButton.CheckButton:SetChecked(healer) + self.DamagerButton.CheckButton:SetChecked(dps) - LFGListApplicationDialog_UpdateValidState(self); + LFGListApplicationDialog_UpdateValidState(self) end function LFGListApplicationDialog_UpdateValidState(self) - if ( ( self.TankButton:IsShown() and self.TankButton.CheckButton:GetChecked()) - or ( self.HealerButton:IsShown() and self.HealerButton.CheckButton:GetChecked()) - or ( self.DamagerButton:IsShown() and self.DamagerButton.CheckButton:GetChecked()) ) then - self.SignUpButton:Enable(); - self.SignUpButton.errorText = nil; + if + (self.TankButton:IsShown() and self.TankButton.CheckButton:GetChecked()) + or (self.HealerButton:IsShown() and self.HealerButton.CheckButton:GetChecked()) + or (self.DamagerButton:IsShown() and self.DamagerButton.CheckButton:GetChecked()) + then + self.SignUpButton:Enable() + self.SignUpButton.errorText = nil else - self.SignUpButton:Disable(); - self.SignUpButton.errorText = LFG_LIST_MUST_SELECT_ROLE; + self.SignUpButton:Disable() + self.SignUpButton.errorText = LFG_LIST_MUST_SELECT_ROLE end end function LFGListRoleButtonCheckButton_OnClick(self) - if ( self:GetChecked() ) then - PlaySound("igMainMenuOptionCheckBoxOn"); + if self:GetChecked() then + PlaySound("igMainMenuOptionCheckBoxOn") else - PlaySound("igMainMenuOptionCheckBoxOff"); + PlaySound("igMainMenuOptionCheckBoxOff") end - local dialog = self:GetParent():GetParent(); - local leader, tank, healer, dps = GetLFGRoles(); - SetLFGRoles(leader, dialog.TankButton.CheckButton:GetChecked(), dialog.HealerButton.CheckButton:GetChecked(), dialog.DamagerButton.CheckButton:GetChecked()); + local dialog = self:GetParent():GetParent() + local leader, tank, healer, dps = GetLFGRoles() + SetLFGRoles( + leader, + dialog.TankButton.CheckButton:GetChecked(), + dialog.HealerButton.CheckButton:GetChecked(), + dialog.DamagerButton.CheckButton:GetChecked() + ) end ------------------------------------------------------- ----------Invite dialog functions ------------------------------------------------------- function LFGListInviteDialog_OnLoad(self) - self:RegisterEvent("LFG_LIST_SEARCH_RESULTS_RECEIVED"); - self:RegisterEvent("LFG_LIST_SEARCH_RESULT_UPDATED"); - self:RegisterEvent("LFG_LIST_JOINED_GROUP"); - self:RegisterEvent("PARTY_LEADER_CHANGED"); - self:RegisterEvent("UNIT_CONNECTION"); + self:RegisterEvent("LFG_LIST_SEARCH_RESULTS_RECEIVED") + self:RegisterEvent("LFG_LIST_SEARCH_RESULT_UPDATED") + self:RegisterEvent("LFG_LIST_JOINED_GROUP") + self:RegisterEvent("PARTY_LEADER_CHANGED") + self:RegisterEvent("UNIT_CONNECTION") end function LFGListInviteDialog_OnEvent(self, event, ...) - if ( event == "LFG_LIST_SEARCH_RESULTS_RECEIVED" ) then - LFGListInviteDialog_CheckPending(self); - elseif ( event == "LFG_LIST_SEARCH_RESULT_UPDATED" ) then - local id = ...; - local _, status, pendingStatus = C_LFGList.GetApplicationInfo(id); + if event == "LFG_LIST_SEARCH_RESULTS_RECEIVED" then + LFGListInviteDialog_CheckPending(self) + elseif event == "LFG_LIST_SEARCH_RESULT_UPDATED" then + local id = ... + local _, status, pendingStatus = C_LFGList.GetApplicationInfo(id) - local empowered = LFGListUtil_IsAppEmpowered(); - if ( self.resultID == id and not self.informational and (status ~= "invited" or not empowered) ) then + local empowered = LFGListUtil_IsAppEmpowered() + if self.resultID == id and not self.informational and (status ~= "invited" or not empowered) then --Check if we need to hide the panel - StaticPopupSpecial_Hide(self); - LFGListInviteDialog_CheckPending(self); - elseif ( status == "invited" and not pendingStatus ) then + StaticPopupSpecial_Hide(self) + LFGListInviteDialog_CheckPending(self) + elseif status == "invited" and not pendingStatus then --Check if we need to show this result - LFGListInviteDialog_CheckPending(self); + LFGListInviteDialog_CheckPending(self) end - elseif ( event == "PARTY_LEADER_CHANGED" ) then + elseif event == "PARTY_LEADER_CHANGED" then --Check if we need to hide the current panel - if ( not LFGListUtil_IsAppEmpowered() and self:IsShown() and not self.informational ) then - StaticPopupSpecial_Hide(self); + if not LFGListUtil_IsAppEmpowered() and self:IsShown() and not self.informational then + StaticPopupSpecial_Hide(self) end --Check if we need to show any panels - LFGListInviteDialog_CheckPending(self); - elseif ( event == "LFG_LIST_JOINED_GROUP" ) then - if ( not LFGListUtil_IsAppEmpowered() ) then + LFGListInviteDialog_CheckPending(self) + elseif event == "LFG_LIST_JOINED_GROUP" then + if not LFGListUtil_IsAppEmpowered() then --Show the informational dialog, regardless of whether we already had something up - local id = ...; - StaticPopupSpecial_Hide(self); - LFGListInviteDialog_Show(self, id); + local id = ... + StaticPopupSpecial_Hide(self) + LFGListInviteDialog_Show(self, id) end - elseif ( event == "UNIT_CONNECTION" ) then - LFGListInviteDialog_UpdateOfflineNotice(self); + elseif event == "UNIT_CONNECTION" then + LFGListInviteDialog_UpdateOfflineNotice(self) end end function LFGListInviteDialog_CheckPending(self) --If we're already showing one, don't replace it - if ( self:IsShown() ) then - return; - end + if self:IsShown() then return end --If we're not empowered to make changes to applications, don't pop up anything. - if ( not LFGListUtil_IsAppEmpowered() ) then - return; - end + if not LFGListUtil_IsAppEmpowered() then return end - local apps = C_LFGList.GetApplications(); - for i=1, #apps do - local id, status, pendingStatus = C_LFGList.GetApplicationInfo(apps[i]); - if ( status == "invited" and not pendingStatus ) then - LFGListInviteDialog_Show(self, apps[i]); - return; + local apps = C_LFGList.GetApplications() + for i = 1, #apps do + local id, status, pendingStatus = C_LFGList.GetApplicationInfo(apps[i]) + if status == "invited" and not pendingStatus then + LFGListInviteDialog_Show(self, apps[i]) + return end end end function LFGListInviteDialog_Show(self, resultID) - local id, activityID, name, comment, voiceChat, iLvl, honorLevel, age, numBNetFriends, numCharFriends, numGuildMates, isDelisted = C_LFGList.GetSearchResultInfo(resultID); - local activityName = C_LFGList.GetActivityInfo(activityID); - local _, status, _, _, role = C_LFGList.GetApplicationInfo(resultID); + local id, activityID, name, comment, voiceChat, iLvl, honorLevel, age, numBNetFriends, numCharFriends, numGuildMates, isDelisted = + C_LFGList.GetSearchResultInfo(resultID) + local activityName = C_LFGList.GetActivityInfo(activityID) + local _, status, _, _, role = C_LFGList.GetApplicationInfo(resultID) - local informational = (status ~= "invited"); - assert(not informational or status == "inviteaccepted"); + local informational = (status ~= "invited") + assert(not informational or status == "inviteaccepted") - self.resultID = resultID; - self.GroupName:SetText(name); - self.ActivityName:SetText(activityName); - self.Role:SetText(_G[role]); - self.RoleIcon:SetTexCoord(GetTexCoordsForRole(role)); - self.Label:SetText(informational and LFG_LIST_JOINED_GROUP_NOTICE or LFG_LIST_INVITED_TO_GROUP); + self.resultID = resultID + self.GroupName:SetText(name) + self.ActivityName:SetText(activityName) + self.Role:SetText(_G[role]) + self.RoleIcon:SetTexCoord(GetTexCoordsForRole(role)) + self.Label:SetText(informational and LFG_LIST_JOINED_GROUP_NOTICE or LFG_LIST_INVITED_TO_GROUP) - self.informational = informational; - self.AcceptButton:SetShown(not informational); - self.DeclineButton:SetShown(not informational); - self.AcknowledgeButton:SetShown(informational); + self.informational = informational + self.AcceptButton:SetShown(not informational) + self.DeclineButton:SetShown(not informational) + self.AcknowledgeButton:SetShown(informational) - if ( not informational and GroupHasOfflineMember(LE_PARTY_CATEGORY_HOME) ) then - self:SetHeight(250); - self.OfflineNotice:Show(); - LFGListInviteDialog_UpdateOfflineNotice(self); + if not informational and GroupHasOfflineMember(LE_PARTY_CATEGORY_HOME) then + self:SetHeight(250) + self.OfflineNotice:Show() + LFGListInviteDialog_UpdateOfflineNotice(self) else - self:SetHeight(210); - self.OfflineNotice:Hide(); + self:SetHeight(210) + self.OfflineNotice:Hide() end - StaticPopupSpecial_Show(self); + StaticPopupSpecial_Show(self) - PlaySound("ReadyCheck"); - FlashClientIcon(); + PlaySound("ReadyCheck") + FlashClientIcon() end function LFGListInviteDialog_UpdateOfflineNotice(self) - if ( GroupHasOfflineMember(LE_PARTY_CATEGORY_HOME) ) then - self.OfflineNotice:SetText(LFG_LIST_OFFLINE_MEMBER_NOTICE); - self.OfflineNotice:SetFontObject(GameFontRed); + if GroupHasOfflineMember(LE_PARTY_CATEGORY_HOME) then + self.OfflineNotice:SetText(LFG_LIST_OFFLINE_MEMBER_NOTICE) + self.OfflineNotice:SetFontObject(GameFontRed) else - self.OfflineNotice:SetText(LFG_LIST_OFFLINE_MEMBER_NOTICE_GONE); - self.OfflineNotice:SetFontObject(GameFontGreen); + self.OfflineNotice:SetText(LFG_LIST_OFFLINE_MEMBER_NOTICE_GONE) + self.OfflineNotice:SetFontObject(GameFontGreen) end end function LFGListInviteDialog_Accept(self) - C_LFGList.AcceptInvite(self.resultID); - StaticPopupSpecial_Hide(self); - LFGListInviteDialog_CheckPending(self); + C_LFGList.AcceptInvite(self.resultID) + StaticPopupSpecial_Hide(self) + LFGListInviteDialog_CheckPending(self) end function LFGListInviteDialog_Decline(self) - C_LFGList.DeclineInvite(self.resultID); - StaticPopupSpecial_Hide(self); - LFGListInviteDialog_CheckPending(self); + C_LFGList.DeclineInvite(self.resultID) + StaticPopupSpecial_Hide(self) + LFGListInviteDialog_CheckPending(self) end function LFGListInviteDialog_Acknowledge(self) - StaticPopupSpecial_Hide(self); - LFGListInviteDialog_CheckPending(self); + StaticPopupSpecial_Hide(self) + LFGListInviteDialog_CheckPending(self) end ------------------------------------------------------- ----------Group Data Display functions ------------------------------------------------------- function LFGListGroupDataDisplay_Update(self, activityID, displayData, disabled) - local fullName, shortName, categoryID, groupID, iLevel, filters, minLevel, maxPlayers, displayType = C_LFGList.GetActivityInfo(activityID); - if ( displayType == LE_LFG_LIST_DISPLAY_TYPE_ROLE_COUNT ) then - self.RoleCount:Show(); - self.Enumerate:Hide(); - self.PlayerCount:Hide(); - LFGListGroupDataDisplayRoleCount_Update(self.RoleCount, displayData, disabled); - elseif ( displayType == LE_LFG_LIST_DISPLAY_TYPE_ROLE_ENUMERATE ) then - self.RoleCount:Hide(); - self.Enumerate:Show(); - self.PlayerCount:Hide(); - LFGListGroupDataDisplayEnumerate_Update(self.Enumerate, maxPlayers, displayData, disabled, LFG_LIST_GROUP_DATA_ROLE_ORDER); - elseif ( displayType == LE_LFG_LIST_DISPLAY_TYPE_CLASS_ENUMERATE ) then - self.RoleCount:Hide(); - self.Enumerate:Show(); - self.PlayerCount:Hide(); - LFGListGroupDataDisplayEnumerate_Update(self.Enumerate, maxPlayers, displayData, disabled, LFG_LIST_GROUP_DATA_CLASS_ORDER); - elseif ( displayType == LE_LFG_LIST_DISPLAY_TYPE_PLAYER_COUNT ) then - self.RoleCount:Hide(); - self.Enumerate:Hide(); - self.PlayerCount:Show(); - LFGListGroupDataDisplayPlayerCount_Update(self.PlayerCount, displayData, disabled); - elseif ( displayType == LE_LFG_LIST_DISPLAY_TYPE_HIDE_ALL ) then - self.RoleCount:Hide(); - self.Enumerate:Hide(); - self.PlayerCount:Hide(); + local fullName, shortName, categoryID, groupID, iLevel, filters, minLevel, maxPlayers, displayType = + C_LFGList.GetActivityInfo(activityID) + if displayType == LE_LFG_LIST_DISPLAY_TYPE_ROLE_COUNT then + self.RoleCount:Show() + self.Enumerate:Hide() + self.PlayerCount:Hide() + LFGListGroupDataDisplayRoleCount_Update(self.RoleCount, displayData, disabled) + elseif displayType == LE_LFG_LIST_DISPLAY_TYPE_ROLE_ENUMERATE then + self.RoleCount:Hide() + self.Enumerate:Show() + self.PlayerCount:Hide() + LFGListGroupDataDisplayEnumerate_Update( + self.Enumerate, + maxPlayers, + displayData, + disabled, + LFG_LIST_GROUP_DATA_ROLE_ORDER + ) + elseif displayType == LE_LFG_LIST_DISPLAY_TYPE_CLASS_ENUMERATE then + self.RoleCount:Hide() + self.Enumerate:Show() + self.PlayerCount:Hide() + LFGListGroupDataDisplayEnumerate_Update( + self.Enumerate, + maxPlayers, + displayData, + disabled, + LFG_LIST_GROUP_DATA_CLASS_ORDER + ) + elseif displayType == LE_LFG_LIST_DISPLAY_TYPE_PLAYER_COUNT then + self.RoleCount:Hide() + self.Enumerate:Hide() + self.PlayerCount:Show() + LFGListGroupDataDisplayPlayerCount_Update(self.PlayerCount, displayData, disabled) + elseif displayType == LE_LFG_LIST_DISPLAY_TYPE_HIDE_ALL then + self.RoleCount:Hide() + self.Enumerate:Hide() + self.PlayerCount:Hide() else - GMError("Unknown display type"); - self.RoleCount:Hide(); - self.Enumerate:Hide(); - self.PlayerCount:Hide(); + GMError("Unknown display type") + self.RoleCount:Hide() + self.Enumerate:Hide() + self.PlayerCount:Hide() end end function LFGListGroupDataDisplayRoleCount_Update(self, displayData, disabled) - self.TankCount:SetText(displayData.TANK); - self.HealerCount:SetText(displayData.HEALER); - self.DamagerCount:SetText(displayData.DAMAGER); + self.TankCount:SetText(displayData.TANK) + self.HealerCount:SetText(displayData.HEALER) + self.DamagerCount:SetText(displayData.DAMAGER) --Update for the disabled state - local r = disabled and LFG_LIST_DELISTED_FONT_COLOR.r or HIGHLIGHT_FONT_COLOR.r; - local g = disabled and LFG_LIST_DELISTED_FONT_COLOR.g or HIGHLIGHT_FONT_COLOR.g; - local b = disabled and LFG_LIST_DELISTED_FONT_COLOR.b or HIGHLIGHT_FONT_COLOR.b; - self.TankCount:SetTextColor(r, g, b); - self.HealerCount:SetTextColor(r, g, b); - self.DamagerCount:SetTextColor(r, g, b); - self.TankIcon:SetDesaturated(disabled); - self.HealerIcon:SetDesaturated(disabled); - self.DamagerIcon:SetDesaturated(disabled); - self.TankIcon:SetAlpha(disabled and 0.5 or 0.70); - self.HealerIcon:SetAlpha(disabled and 0.5 or 0.70); - self.DamagerIcon:SetAlpha(disabled and 0.5 or 0.70); + local r = disabled and LFG_LIST_DELISTED_FONT_COLOR.r or HIGHLIGHT_FONT_COLOR.r + local g = disabled and LFG_LIST_DELISTED_FONT_COLOR.g or HIGHLIGHT_FONT_COLOR.g + local b = disabled and LFG_LIST_DELISTED_FONT_COLOR.b or HIGHLIGHT_FONT_COLOR.b + self.TankCount:SetTextColor(r, g, b) + self.HealerCount:SetTextColor(r, g, b) + self.DamagerCount:SetTextColor(r, g, b) + self.TankIcon:SetDesaturated(disabled) + self.HealerIcon:SetDesaturated(disabled) + self.DamagerIcon:SetDesaturated(disabled) + self.TankIcon:SetAlpha(disabled and 0.5 or 0.70) + self.HealerIcon:SetAlpha(disabled and 0.5 or 0.70) + self.DamagerIcon:SetAlpha(disabled and 0.5 or 0.70) end function LFGListGroupDataDisplayEnumerate_Update(self, numPlayers, displayData, disabled, iconOrder) --Show/hide the required icons - for i=1, #self.Icons do - if ( i > numPlayers ) then - self.Icons[i]:Hide(); + for i = 1, #self.Icons do + if i > numPlayers then + self.Icons[i]:Hide() else - self.Icons[i]:Show(); - self.Icons[i]:SetDesaturated(disabled); - self.Icons[i]:SetAlpha(disabled and 0.5 or 1.0); + self.Icons[i]:Show() + self.Icons[i]:SetDesaturated(disabled) + self.Icons[i]:SetAlpha(disabled and 0.5 or 1.0) end end --Note that icons are numbered from right to left - local iconIndex = numPlayers; - for i=1, #iconOrder do - for j=1, displayData[iconOrder[i]] do - self.Icons[iconIndex]:SetAtlas(LFG_LIST_GROUP_DATA_ATLASES[iconOrder[i]], false); - iconIndex = iconIndex - 1; - if ( iconIndex < 1 ) then - return; - end + local iconIndex = numPlayers + for i = 1, #iconOrder do + for j = 1, displayData[iconOrder[i]] do + self.Icons[iconIndex]:SetAtlas(LFG_LIST_GROUP_DATA_ATLASES[iconOrder[i]], false) + iconIndex = iconIndex - 1 + if iconIndex < 1 then return end end end - for i=1, iconIndex do - self.Icons[i]:SetAtlas("groupfinder-icon-emptyslot", false); + for i = 1, iconIndex do + self.Icons[i]:SetAtlas("groupfinder-icon-emptyslot", false) end end function LFGListGroupDataDisplayPlayerCount_Update(self, displayData, disabled) - local numPlayers = displayData.TANK + displayData.HEALER + displayData.DAMAGER + displayData.NOROLE; + local numPlayers = displayData.TANK + displayData.HEALER + displayData.DAMAGER + displayData.NOROLE - local color = disabled and LFG_LIST_DELISTED_FONT_COLOR or HIGHLIGHT_FONT_COLOR; - self.Count:SetText(numPlayers); - self.Count:SetTextColor(color.r, color.g, color.b); - self.Icon:SetDesaturated(disabled); - self.Icon:SetAlpha(disabled and 0.5 or 1); + local color = disabled and LFG_LIST_DELISTED_FONT_COLOR or HIGHLIGHT_FONT_COLOR + self.Count:SetText(numPlayers) + self.Count:SetTextColor(color.r, color.g, color.b) + self.Icon:SetDesaturated(disabled) + self.Icon:SetAlpha(disabled and 0.5 or 1) end ------------------------------------------------------- ----------Edit Box functions ------------------------------------------------------- function LFGListEditBox_AddToTabCategory(self, tabCategory) - self.tabCategory = tabCategory; - local cat = LFG_LIST_EDIT_BOX_TAB_CATEGORIES[tabCategory]; - if ( not cat ) then - cat = {}; - LFG_LIST_EDIT_BOX_TAB_CATEGORIES[tabCategory] = cat; + self.tabCategory = tabCategory + local cat = LFG_LIST_EDIT_BOX_TAB_CATEGORIES[tabCategory] + if not cat then + cat = {} + LFG_LIST_EDIT_BOX_TAB_CATEGORIES[tabCategory] = cat end - self.tabCategoryIndex = #cat+1; - cat[self.tabCategoryIndex] = self; + self.tabCategoryIndex = #cat + 1 + cat[self.tabCategoryIndex] = self end function LFGListEditBox_OnTabPressed(self) - if ( self.tabCategory ) then - local offset = IsShiftKeyDown() and -1 or 1; - local cat = LFG_LIST_EDIT_BOX_TAB_CATEGORIES[self.tabCategory]; - if ( cat ) then + if self.tabCategory then + local offset = IsShiftKeyDown() and -1 or 1 + local cat = LFG_LIST_EDIT_BOX_TAB_CATEGORIES[self.tabCategory] + if cat then --It's times like this when I wish Lua was 0-based... - cat[((self.tabCategoryIndex - 1 + offset + #cat) % #cat) + 1]:SetFocus(); + cat[((self.tabCategoryIndex - 1 + offset + #cat) % #cat) + 1]:SetFocus() end end end @@ -2478,167 +2509,152 @@ end ----------Requirement functions ------------------------------------------------------- function LFGListRequirement_Validate(self, text) - if ( self.validateFunc ) then - self.warningText = self:validateFunc(text); - self.WarningFrame:SetShown(self.warningText); - self.CheckButton:SetShown(not self.warningText); + if self.validateFunc then + self.warningText = self:validateFunc(text) + self.WarningFrame:SetShown(self.warningText) + self.CheckButton:SetShown(not self.warningText) end - LFGListEntryCreation_UpdateValidState(self:GetParent()); + LFGListEntryCreation_UpdateValidState(self:GetParent()) end ------------------------------------------------------- ----------Utility functions ------------------------------------------------------- function LFGListUtil_AugmentWithBest(filters, categoryID, groupID, activityID) - local myNumMembers = math.max(GetNumGroupMembers(LE_PARTY_CATEGORY_HOME), 1); - local myItemLevel = GetAverageItemLevel(); - if ( not activityID ) then + local myNumMembers = math.max(GetNumGroupMembers(LE_PARTY_CATEGORY_HOME), 1) + local myItemLevel = GetAverageItemLevel() + if not activityID then --Find the best activity by iLevel and recommended flag - local activities = C_LFGList.GetAvailableActivities(categoryID, groupID, filters); - local bestItemLevel, bestRecommended, bestCurrentArea, bestMinLevel, bestMaxPlayers; - for i=1, #activities do - local fullName, shortName, categoryID, groupID, iLevel, filters, minLevel, maxPlayers, displayType, orderIndex, useHonorLevel = C_LFGList.GetActivityInfo(activities[i]); - local isRecommended = bit.band(filters, LE_LFG_LIST_FILTER_RECOMMENDED) ~= 0; - local currentArea = C_LFGList.GetActivityInfoExpensive(activities[i]); + local activities = C_LFGList.GetAvailableActivities(categoryID, groupID, filters) + local bestItemLevel, bestRecommended, bestCurrentArea, bestMinLevel, bestMaxPlayers + for i = 1, #activities do + local fullName, shortName, categoryID, groupID, iLevel, filters, minLevel, maxPlayers, displayType, orderIndex, useHonorLevel = + C_LFGList.GetActivityInfo(activities[i]) + local isRecommended = bit.band(filters, LE_LFG_LIST_FILTER_RECOMMENDED) ~= 0 + local currentArea = C_LFGList.GetActivityInfoExpensive(activities[i]) - local usedItemLevel = myItemLevel; - local isBetter = false; - if ( not activityID ) then - isBetter = true; - elseif ( currentArea ~= bestCurrentArea ) then - isBetter = currentArea; - elseif ( bestRecommended ~= isRecommended ) then - isBetter = isRecommended; - elseif ( bestMinLevel ~= minLevel ) then - isBetter = minLevel > bestMinLevel; - elseif ( iLevel ~= bestItemLevel ) then - isBetter = (iLevel > bestItemLevel and iLevel <= usedItemLevel) or - (iLevel <= usedItemLevel and bestItemLevel > usedItemLevel) or - (iLevel < bestItemLevel and iLevel > usedItemLevel); - elseif ( (myNumMembers < maxPlayers) ~= (myNumMembers < bestMaxPlayers) ) then - isBetter = myNumMembers < maxPlayers; + local usedItemLevel = myItemLevel + local isBetter = false + if not activityID then + isBetter = true + elseif currentArea ~= bestCurrentArea then + isBetter = currentArea + elseif bestRecommended ~= isRecommended then + isBetter = isRecommended + elseif bestMinLevel ~= minLevel then + isBetter = minLevel > bestMinLevel + elseif iLevel ~= bestItemLevel then + isBetter = (iLevel > bestItemLevel and iLevel <= usedItemLevel) + or (iLevel <= usedItemLevel and bestItemLevel > usedItemLevel) + or (iLevel < bestItemLevel and iLevel > usedItemLevel) + elseif (myNumMembers < maxPlayers) ~= (myNumMembers < bestMaxPlayers) then + isBetter = myNumMembers < maxPlayers end - if ( isBetter ) then - activityID = activities[i]; - bestItemLevel = iLevel; - bestRecommended = isRecommended; - bestCurrentArea = currentArea; - bestMinLevel = minLevel; - bestMaxPlayers = maxPlayers; + if isBetter then + activityID = activities[i] + bestItemLevel = iLevel + bestRecommended = isRecommended + bestCurrentArea = currentArea + bestMinLevel = minLevel + bestMaxPlayers = maxPlayers end end end - assert(activityID); + assert(activityID) --Update the categoryID and groupID with what we get from the activity - categoryID, groupID, _, filters = select(ACTIVITY_RETURN_VALUES.categoryID, C_LFGList.GetActivityInfo(activityID)); + categoryID, groupID, _, filters = select(ACTIVITY_RETURN_VALUES.categoryID, C_LFGList.GetActivityInfo(activityID)) --Update the filters if needed - local _, separateRecommended = C_LFGList.GetCategoryInfo(categoryID); - if ( separateRecommended ) then - if ( bit.band(filters, LE_LFG_LIST_FILTER_RECOMMENDED) == 0 ) then - filters = LE_LFG_LIST_FILTER_NOT_RECOMMENDED; + local _, separateRecommended = C_LFGList.GetCategoryInfo(categoryID) + if separateRecommended then + if bit.band(filters, LE_LFG_LIST_FILTER_RECOMMENDED) == 0 then + filters = LE_LFG_LIST_FILTER_NOT_RECOMMENDED else - filters = LE_LFG_LIST_FILTER_RECOMMENDED; + filters = LE_LFG_LIST_FILTER_RECOMMENDED end else - filters = 0; + filters = 0 end - return filters, categoryID, groupID, activityID; + return filters, categoryID, groupID, activityID end function LFGListUtil_SetUpDropDown(context, dropdown, populateFunc, onClickFunc) - local onClick = function(self, ...) - onClickFunc(context, self.value, ...); - end + local onClick = function(self, ...) onClickFunc(context, self.value, ...) end local initialize = function(self) - local info = UIDropDownMenu_CreateInfo(); - info.func = onClick; - populateFunc(context, dropdown, info); + local info = UIDropDownMenu_CreateInfo() + info.func = onClick + populateFunc(context, dropdown, info) end dropdown:SetScript("OnShow", function(self) - UIDropDownMenu_SetWidth(self, dropdown:GetWidth() - 50); - UIDropDownMenu_Initialize(self, initialize); - end); - UIDropDownMenu_JustifyText(dropdown, "LEFT"); - UIDropDownMenu_SetAnchor(dropdown, -20, 7, "TOPRIGHT", dropdown, "BOTTOMRIGHT"); + UIDropDownMenu_SetWidth(self, dropdown:GetWidth() - 50) + UIDropDownMenu_Initialize(self, initialize) + end) + UIDropDownMenu_JustifyText(dropdown, "LEFT") + UIDropDownMenu_SetAnchor(dropdown, -20, 7, "TOPRIGHT", dropdown, "BOTTOMRIGHT") end function LFGListUtil_ValidateLevelReq(self, text) - local myItemLevel = GetAverageItemLevel(); - if ( text ~= "" and tonumber(text) > myItemLevel) then - return LFG_LIST_ILVL_ABOVE_YOURS; - end + local myItemLevel = GetAverageItemLevel() + if text ~= "" and tonumber(text) > myItemLevel then return LFG_LIST_ILVL_ABOVE_YOURS end end function LFGListUtil_ValidateHonorLevelReq(self, text) - local myHonorLevel = UnitHonorLevel("player"); - if (text ~= "" and tonumber(text) > myHonorLevel) then - return LFG_LIST_HONOR_LEVEL_ABOVE_YOURS; - end + local myHonorLevel = UnitHonorLevel("player") + if text ~= "" and tonumber(text) > myHonorLevel then return LFG_LIST_HONOR_LEVEL_ABOVE_YOURS end end function LFGListUtil_GetCurrentExpansion() - for i=0, #MAX_PLAYER_LEVEL_TABLE do - if ( UnitLevel("player") <= MAX_PLAYER_LEVEL_TABLE[i] ) then - return i; - end + for i = 0, #MAX_PLAYER_LEVEL_TABLE do + if UnitLevel("player") <= MAX_PLAYER_LEVEL_TABLE[i] then return i end end --We're higher than the highest level. Weird. - return #MAX_PLAYER_LEVEL_TABLE; + return #MAX_PLAYER_LEVEL_TABLE end function LFGListUtil_GetDecoratedCategoryName(categoryName, filter, useColors) - if ( filter == 0 ) then - return categoryName; + if filter == 0 then return categoryName end + + local colorStart = "" + local colorEnd = "" + if useColors then + colorStart = "|cffffffff" + colorEnd = "|r" end - local colorStart = ""; - local colorEnd = ""; - if ( useColors ) then - colorStart = "|cffffffff"; - colorEnd = "|r"; + local extraName = "" + if filter == LE_LFG_LIST_FILTER_NOT_RECOMMENDED then + extraName = LFG_LIST_LEGACY + elseif filter == LE_LFG_LIST_FILTER_RECOMMENDED then + local exp = LFGListUtil_GetCurrentExpansion() + extraName = _G["EXPANSION_NAME" .. exp] end - local extraName = ""; - if ( filter == LE_LFG_LIST_FILTER_NOT_RECOMMENDED ) then - extraName = LFG_LIST_LEGACY; - elseif ( filter == LE_LFG_LIST_FILTER_RECOMMENDED ) then - local exp = LFGListUtil_GetCurrentExpansion(); - extraName = _G["EXPANSION_NAME"..exp]; - end - - return string.format(LFG_LIST_CATEGORY_FORMAT, categoryName, colorStart, extraName, colorEnd); + return string.format(LFG_LIST_CATEGORY_FORMAT, categoryName, colorStart, extraName, colorEnd) end function LFGListUtil_SortSearchResultsCB(id1, id2) - local id1, activityID1, name1, comment1, voiceChat1, iLvl1, honorLevel1, age1, numBNetFriends1, numCharFriends1, numGuildMates1, isDelisted1 = C_LFGList.GetSearchResultInfo(id1); - local id2, activityID2, name2, comment2, voiceChat2, iLvl2, honorLevel2, age2, numBNetFriends2, numCharFriends2, numGuildMates2, isDelisted2 = C_LFGList.GetSearchResultInfo(id2); + local id1, activityID1, name1, comment1, voiceChat1, iLvl1, honorLevel1, age1, numBNetFriends1, numCharFriends1, numGuildMates1, isDelisted1 = + C_LFGList.GetSearchResultInfo(id1) + local id2, activityID2, name2, comment2, voiceChat2, iLvl2, honorLevel2, age2, numBNetFriends2, numCharFriends2, numGuildMates2, isDelisted2 = + C_LFGList.GetSearchResultInfo(id2) --If one has more friends, do that one first - if ( numBNetFriends1 ~= numBNetFriends2 ) then - return numBNetFriends1 > numBNetFriends2; - end + if numBNetFriends1 ~= numBNetFriends2 then return numBNetFriends1 > numBNetFriends2 end - if ( numCharFriends1 ~= numCharFriends2 ) then - return numCharFriends1 > numCharFriends2; - end + if numCharFriends1 ~= numCharFriends2 then return numCharFriends1 > numCharFriends2 end - if ( numGuildMates1 ~= numGuildMates2 ) then - return numGuildMates1 > numGuildMates2; - end + if numGuildMates1 ~= numGuildMates2 then return numGuildMates1 > numGuildMates2 end --If we aren't sorting by anything else, just go by ID - return id1 < id2; + return id1 < id2 end -function LFGListUtil_SortSearchResults(results) - table.sort(results, LFGListUtil_SortSearchResultsCB); -end +function LFGListUtil_SortSearchResults(results) table.sort(results, LFGListUtil_SortSearchResultsCB) end function LFGListUtil_FilterApplicants(applicants) --[[for i=#applicants, 1, -1 do @@ -2652,47 +2668,43 @@ function LFGListUtil_FilterApplicants(applicants) end function LFGListUtil_SortApplicantsCB(id1, id2) - local _, _, _, _, isNew1, _, orderID1 = C_LFGList.GetApplicantInfo(id1); - local _, _, _, _, isNew2, _, orderID2 = C_LFGList.GetApplicantInfo(id2); + local _, _, _, _, isNew1, _, orderID1 = C_LFGList.GetApplicantInfo(id1) + local _, _, _, _, isNew2, _, orderID2 = C_LFGList.GetApplicantInfo(id2) --New items go to the bottom - if ( isNew1 ~= isNew2 ) then - return isNew2; - end + if isNew1 ~= isNew2 then return isNew2 end - return orderID1 < orderID2; + return orderID1 < orderID2 end -function LFGListUtil_SortApplicants(applicants) - table.sort(applicants, LFGListUtil_SortApplicantsCB); -end +function LFGListUtil_SortApplicants(applicants) table.sort(applicants, LFGListUtil_SortApplicantsCB) end function LFGListUtil_IsAppEmpowered() - return not IsInGroup(LE_PARTY_CATEGORY_HOME) or UnitIsGroupLeader("player", LE_PARTY_CATEGORY_HOME); + return not IsInGroup(LE_PARTY_CATEGORY_HOME) or UnitIsGroupLeader("player", LE_PARTY_CATEGORY_HOME) end function LFGListUtil_IsEntryEmpowered() - return UnitIsGroupLeader("player", LE_PARTY_CATEGORY_HOME) or UnitIsGroupAssistant("player", LE_PARTY_CATEGORY_HOME); + return UnitIsGroupLeader("player", LE_PARTY_CATEGORY_HOME) or UnitIsGroupAssistant("player", LE_PARTY_CATEGORY_HOME) end function LFGListUtil_AppendStatistic(label, value, title, lastTitle) - if ( title ~= lastTitle ) then - GameTooltip:AddLine(" "); - GameTooltip:AddLine(title, 1, 1, 1); + if title ~= lastTitle then + GameTooltip:AddLine(" ") + GameTooltip:AddLine(title, 1, 1, 1) end - GameTooltip:AddLine(string.format(label, value)); + GameTooltip:AddLine(string.format(label, value)) end local LFG_LIST_SEARCH_ENTRY_MENU = { { - text = nil, --Group name goes here + text = nil, --Group name goes here isTitle = true, notCheckable = true, }, { text = WHISPER_LEADER, - func = function(_, name) ChatFrame_SendTell(name); end, + func = function(_, name) ChatFrame_SendTell(name) end, notCheckable = true, arg1 = nil, --Leader name goes here disabled = nil, --Disabled if we don't have a leader name yet or you haven't applied @@ -2708,30 +2720,30 @@ local LFG_LIST_SEARCH_ENTRY_MENU = { menuList = { { text = LFG_LIST_BAD_NAME, - func = function(_, id) C_LFGList.ReportSearchResult(id, "lfglistname"); end, + func = function(_, id) C_LFGList.ReportSearchResult(id, "lfglistname") end, arg1 = nil, --Search result ID goes here notCheckable = true, }, { text = LFG_LIST_BAD_DESCRIPTION, - func = function(_, id) C_LFGList.ReportSearchResult(id, "lfglistcomment"); end, + func = function(_, id) C_LFGList.ReportSearchResult(id, "lfglistcomment") end, arg1 = nil, --Search reuslt ID goes here notCheckable = true, - disabled = nil, --Disabled if the description is just an empty string + disabled = nil, --Disabled if the description is just an empty string }, { text = LFG_LIST_BAD_VOICE_CHAT_COMMENT, - func = function(_, id) C_LFGList.ReportSearchResult(id, "lfglistvoicechat"); end, + func = function(_, id) C_LFGList.ReportSearchResult(id, "lfglistvoicechat") end, arg1 = nil, --Search reuslt ID goes here notCheckable = true, - disabled = nil, --Disabled if the description is just an empty string + disabled = nil, --Disabled if the description is just an empty string }, { text = LFG_LIST_BAD_LEADER_NAME, - func = function(_, id) C_LFGList.ReportSearchResult(id, "badplayername"); end, + func = function(_, id) C_LFGList.ReportSearchResult(id, "badplayername") end, arg1 = nil, --Search reuslt ID goes here notCheckable = true, - disabled = nil, --Disabled if we don't have a name for the leader + disabled = nil, --Disabled if we don't have a name for the leader }, }, }, @@ -2739,36 +2751,37 @@ local LFG_LIST_SEARCH_ENTRY_MENU = { text = CANCEL, notCheckable = true, }, -}; +} function LFGListUtil_GetSearchEntryMenu(resultID) - local id, activityID, name, comment, voiceChat, iLvl, honorLevel, age, numBNetFriends, numCharFriends, numGuildMates, isDelisted, leaderName = C_LFGList.GetSearchResultInfo(resultID); - local _, appStatus, pendingStatus, appDuration = C_LFGList.GetApplicationInfo(resultID); - LFG_LIST_SEARCH_ENTRY_MENU[1].text = name; - LFG_LIST_SEARCH_ENTRY_MENU[2].arg1 = leaderName; - local applied = (appStatus == "applied" or appStatus == "invited"); - LFG_LIST_SEARCH_ENTRY_MENU[2].disabled = not leaderName or not applied; + local id, activityID, name, comment, voiceChat, iLvl, honorLevel, age, numBNetFriends, numCharFriends, numGuildMates, isDelisted, leaderName = + C_LFGList.GetSearchResultInfo(resultID) + local _, appStatus, pendingStatus, appDuration = C_LFGList.GetApplicationInfo(resultID) + LFG_LIST_SEARCH_ENTRY_MENU[1].text = name + LFG_LIST_SEARCH_ENTRY_MENU[2].arg1 = leaderName + local applied = (appStatus == "applied" or appStatus == "invited") + LFG_LIST_SEARCH_ENTRY_MENU[2].disabled = not leaderName or not applied LFG_LIST_SEARCH_ENTRY_MENU[2].tooltipTitle = (not applied) and WHISPER - LFG_LIST_SEARCH_ENTRY_MENU[2].tooltipText = (not applied) and LFG_LIST_MUST_SIGN_UP_TO_WHISPER; - LFG_LIST_SEARCH_ENTRY_MENU[3].menuList[1].arg1 = resultID; - LFG_LIST_SEARCH_ENTRY_MENU[3].menuList[2].arg1 = resultID; - LFG_LIST_SEARCH_ENTRY_MENU[3].menuList[2].disabled = (comment == ""); - LFG_LIST_SEARCH_ENTRY_MENU[3].menuList[3].arg1 = resultID; - LFG_LIST_SEARCH_ENTRY_MENU[3].menuList[3].disabled = (voiceChat == ""); - LFG_LIST_SEARCH_ENTRY_MENU[3].menuList[4].arg1 = resultID; - LFG_LIST_SEARCH_ENTRY_MENU[3].menuList[4].disabled = not leaderName; - return LFG_LIST_SEARCH_ENTRY_MENU; + LFG_LIST_SEARCH_ENTRY_MENU[2].tooltipText = (not applied) and LFG_LIST_MUST_SIGN_UP_TO_WHISPER + LFG_LIST_SEARCH_ENTRY_MENU[3].menuList[1].arg1 = resultID + LFG_LIST_SEARCH_ENTRY_MENU[3].menuList[2].arg1 = resultID + LFG_LIST_SEARCH_ENTRY_MENU[3].menuList[2].disabled = (comment == "") + LFG_LIST_SEARCH_ENTRY_MENU[3].menuList[3].arg1 = resultID + LFG_LIST_SEARCH_ENTRY_MENU[3].menuList[3].disabled = (voiceChat == "") + LFG_LIST_SEARCH_ENTRY_MENU[3].menuList[4].arg1 = resultID + LFG_LIST_SEARCH_ENTRY_MENU[3].menuList[4].disabled = not leaderName + return LFG_LIST_SEARCH_ENTRY_MENU end local LFG_LIST_APPLICANT_MEMBER_MENU = { { - text = nil, --Player name goes here + text = nil, --Player name goes here isTitle = true, notCheckable = true, }, { text = WHISPER, - func = function(_, name) ChatFrame_SendTell(name); end, + func = function(_, name) ChatFrame_SendTell(name) end, notCheckable = true, arg1 = nil, --Player name goes here disabled = nil, --Disabled if we don't have a name yet @@ -2781,14 +2794,14 @@ local LFG_LIST_APPLICANT_MEMBER_MENU = { { text = LFG_LIST_BAD_PLAYER_NAME, notCheckable = true, - func = function(_, id, memberIdx) C_LFGList.ReportApplicant(id, "badplayername", memberIdx); end, + func = function(_, id, memberIdx) C_LFGList.ReportApplicant(id, "badplayername", memberIdx) end, arg1 = nil, --Applicant ID goes here arg2 = nil, --Applicant Member index goes here }, { text = LFG_LIST_BAD_DESCRIPTION, notCheckable = true, - func = function(_, id) C_LFGList.ReportApplicant(id, "lfglistappcomment"); end, + func = function(_, id) C_LFGList.ReportApplicant(id, "lfglistappcomment") end, arg1 = nil, --Applicant ID goes here }, }, @@ -2796,7 +2809,10 @@ local LFG_LIST_APPLICANT_MEMBER_MENU = { { text = IGNORE_PLAYER, notCheckable = true, - func = function(_, name, applicantID) AddIgnore(name); C_LFGList.DeclineApplicant(applicantID); end, + func = function(_, name, applicantID) + AddIgnore(name) + C_LFGList.DeclineApplicant(applicantID) + end, arg1 = nil, --Player name goes here arg2 = nil, --Applicant ID goes here disabled = nil, --Disabled if we don't have a name yet @@ -2805,87 +2821,91 @@ local LFG_LIST_APPLICANT_MEMBER_MENU = { text = CANCEL, notCheckable = true, }, -}; +} function LFGListUtil_GetApplicantMemberMenu(applicantID, memberIdx) - local name, class, localizedClass, level, itemLevel, honorLevel, tank, healer, damage, assignedRole = C_LFGList.GetApplicantMemberInfo(applicantID, memberIdx); - local id, status, pendingStatus, numMembers, isNew, comment = C_LFGList.GetApplicantInfo(applicantID); - LFG_LIST_APPLICANT_MEMBER_MENU[1].text = name or " "; - LFG_LIST_APPLICANT_MEMBER_MENU[2].arg1 = name; - LFG_LIST_APPLICANT_MEMBER_MENU[2].disabled = not name or (status ~= "applied" and status ~= "invited"); - LFG_LIST_APPLICANT_MEMBER_MENU[3].menuList[1].arg1 = applicantID; - LFG_LIST_APPLICANT_MEMBER_MENU[3].menuList[1].arg2 = memberIdx; - LFG_LIST_APPLICANT_MEMBER_MENU[3].menuList[2].arg1 = applicantID; - LFG_LIST_APPLICANT_MEMBER_MENU[3].menuList[2].disabled = (comment == ""); - LFG_LIST_APPLICANT_MEMBER_MENU[4].arg1 = name; - LFG_LIST_APPLICANT_MEMBER_MENU[4].arg2 = applicantID; - LFG_LIST_APPLICANT_MEMBER_MENU[4].disabled = not name; - return LFG_LIST_APPLICANT_MEMBER_MENU; + local name, class, localizedClass, level, itemLevel, honorLevel, tank, healer, damage, assignedRole = + C_LFGList.GetApplicantMemberInfo(applicantID, memberIdx) + local id, status, pendingStatus, numMembers, isNew, comment = C_LFGList.GetApplicantInfo(applicantID) + LFG_LIST_APPLICANT_MEMBER_MENU[1].text = name or " " + LFG_LIST_APPLICANT_MEMBER_MENU[2].arg1 = name + LFG_LIST_APPLICANT_MEMBER_MENU[2].disabled = not name or (status ~= "applied" and status ~= "invited") + LFG_LIST_APPLICANT_MEMBER_MENU[3].menuList[1].arg1 = applicantID + LFG_LIST_APPLICANT_MEMBER_MENU[3].menuList[1].arg2 = memberIdx + LFG_LIST_APPLICANT_MEMBER_MENU[3].menuList[2].arg1 = applicantID + LFG_LIST_APPLICANT_MEMBER_MENU[3].menuList[2].disabled = (comment == "") + LFG_LIST_APPLICANT_MEMBER_MENU[4].arg1 = name + LFG_LIST_APPLICANT_MEMBER_MENU[4].arg2 = applicantID + LFG_LIST_APPLICANT_MEMBER_MENU[4].disabled = not name + return LFG_LIST_APPLICANT_MEMBER_MENU end function LFGListUtil_InitializeLangaugeFilter(dropdown) - local info = UIDropDownMenu_CreateInfo(); - local languages = C_LFGList.GetAvailableLanguageSearchFilter(); - local enabled = C_LFGList.GetLanguageSearchFilter(); - local defaults = C_LFGList.GetDefaultLanguageSearchFilter(); - local entry = UIDropDownMenu_CreateInfo(); - for i=1, #languages do - local lang = languages[i]; - entry.text = _G["LFG_LIST_LANGUAGE_"..string.upper(lang)]; - entry.checked = enabled[lang] or defaults[lang]; - entry.disabled = defaults[lang]; - entry.isNotRadio = true; - entry.keepShownOnClick = true; - entry.func = function(self,_,_,checked) enabled[lang] = checked; C_LFGList.SaveLanguageSearchFilter(enabled); end - UIDropDownMenu_AddButton(entry); + local info = UIDropDownMenu_CreateInfo() + local languages = C_LFGList.GetAvailableLanguageSearchFilter() + local enabled = C_LFGList.GetLanguageSearchFilter() + local defaults = C_LFGList.GetDefaultLanguageSearchFilter() + local entry = UIDropDownMenu_CreateInfo() + for i = 1, #languages do + local lang = languages[i] + entry.text = _G["LFG_LIST_LANGUAGE_" .. string.upper(lang)] + entry.checked = enabled[lang] or defaults[lang] + entry.disabled = defaults[lang] + entry.isNotRadio = true + entry.keepShownOnClick = true + entry.func = function(self, _, _, checked) + enabled[lang] = checked + C_LFGList.SaveLanguageSearchFilter(enabled) + end + UIDropDownMenu_AddButton(entry) end end function LFGListUtil_OpenBestWindow(toggle) - local func = toggle and PVEFrame_ToggleFrame or PVEFrame_ShowFrame; - local active, activityID, ilvl, honorLevel, name, comment, voiceChat = C_LFGList.GetActiveEntryInfo(); - if ( active ) then + local func = toggle and PVEFrame_ToggleFrame or PVEFrame_ShowFrame + local active, activityID, ilvl, honorLevel, name, comment, voiceChat = C_LFGList.GetActiveEntryInfo() + if active then --Open to the window of our active activity - local fullName, shortName, categoryID, groupID, iLevel, filters = C_LFGList.GetActivityInfo(activityID); + local fullName, shortName, categoryID, groupID, iLevel, filters = C_LFGList.GetActivityInfo(activityID) - if ( bit.band(filters, LE_LFG_LIST_FILTER_PVE) ~= 0 ) then - func("GroupFinderFrame", "LFGListPVEStub"); + if bit.band(filters, LE_LFG_LIST_FILTER_PVE) ~= 0 then + func("GroupFinderFrame", "LFGListPVEStub") else - func("PVPUIFrame", "LFGListPVPStub"); + func("PVPUIFrame", "LFGListPVPStub") end else --Open to the last window we had open - if ( bit.band(LFGListFrame.baseFilters, LE_LFG_LIST_FILTER_PVE) ~= 0 ) then - func("GroupFinderFrame", "LFGListPVEStub"); + if bit.band(LFGListFrame.baseFilters, LE_LFG_LIST_FILTER_PVE) ~= 0 then + func("GroupFinderFrame", "LFGListPVEStub") else - func("PVPUIFrame", "LFGListPVPStub"); + func("PVPUIFrame", "LFGListPVPStub") end end end function LFGListUtil_SortActivitiesByRelevancyCB(id1, id2) - local fullName1, _, _, _, iLevel1, _, minLevel1 = C_LFGList.GetActivityInfo(id1); - local fullName2, _, _, _, iLevel2, _, minLevel2 = C_LFGList.GetActivityInfo(id2); + local fullName1, _, _, _, iLevel1, _, minLevel1 = C_LFGList.GetActivityInfo(id1) + local fullName2, _, _, _, iLevel2, _, minLevel2 = C_LFGList.GetActivityInfo(id2) - if ( minLevel1 ~= minLevel2 ) then - return minLevel1 > minLevel2; - elseif ( iLevel1 ~= iLevel2 ) then - local myILevel = GetAverageItemLevel(); - - if ((iLevel1 <= myILevel) ~= (iLevel2 <= myILevel) ) then + if minLevel1 ~= minLevel2 then + return minLevel1 > minLevel2 + elseif iLevel1 ~= iLevel2 then + local myILevel = GetAverageItemLevel() + + if (iLevel1 <= myILevel) ~= (iLevel2 <= myILevel) then --If one is below our item level and the other above, choose the one we meet - return iLevel1 < myILevel; + return iLevel1 < myILevel else --If both are above or both are below, choose the one closest to our iLevel - return math.abs(iLevel1 - myILevel) < math.abs(iLevel2 - myILevel); + return math.abs(iLevel1 - myILevel) < math.abs(iLevel2 - myILevel) end else - return strcmputf8i(fullName1, fullName2) < 0; + return strcmputf8i(fullName1, fullName2) < 0 end end function LFGListUtil_SortActivitiesByRelevancy(activities) - table.sort(activities, LFGListUtil_SortActivitiesByRelevancyCB); + table.sort(activities, LFGListUtil_SortActivitiesByRelevancyCB) end LFG_LIST_ACTIVE_QUEUE_MESSAGE_EVENTS = { @@ -2900,42 +2920,38 @@ LFG_LIST_ACTIVE_QUEUE_MESSAGE_EVENTS = { "LFG_PROPOSAL_SUCCEEDED", "LFG_PROPOSAL_SHOW", "LFG_QUEUE_STATUS_UPDATE", -}; +} function LFGListUtil_GetActiveQueueMessage(isApplication) --Check for applications if we're trying to list - if ( not isApplication and select(2,C_LFGList.GetNumApplications()) > 0 ) then - return CANNOT_DO_THIS_WITH_LFGLIST_APP; + if not isApplication and select(2, C_LFGList.GetNumApplications()) > 0 then + return CANNOT_DO_THIS_WITH_LFGLIST_APP end --Check for listings if we have an application - if ( isApplication and C_LFGList.GetActiveEntryInfo() ) then - return CANNOT_DO_THIS_WHILE_LFGLIST_LISTED; - end + if isApplication and C_LFGList.GetActiveEntryInfo() then return CANNOT_DO_THIS_WHILE_LFGLIST_LISTED end --Check all LFG categories - for category=1, NUM_LE_LFG_CATEGORYS do - local mode = GetLFGMode(category); - if ( mode ) then - if ( mode == "lfgparty" ) then - return CANNOT_DO_THIS_IN_LFG_PARTY; - elseif ( mode == "rolecheck" or (mode and not isApplication) ) then - return CANNOT_DO_THIS_IN_PVE_QUEUE; + for category = 1, NUM_LE_LFG_CATEGORYS do + local mode = GetLFGMode(category) + if mode then + if mode == "lfgparty" then + return CANNOT_DO_THIS_IN_LFG_PARTY + elseif mode == "rolecheck" or (mode and not isApplication) then + return CANNOT_DO_THIS_IN_PVE_QUEUE end end end --Check PvP role check - local inProgress, _, _, _, _, isBattleground = GetLFGRoleUpdate(); - if ( inProgress ) then - return isBattleground and CANNOT_DO_THIS_WHILE_PVP_QUEUING or CANNOT_DO_THIS_WHILE_PVE_QUEUING; + local inProgress, _, _, _, _, isBattleground = GetLFGRoleUpdate() + if inProgress then + return isBattleground and CANNOT_DO_THIS_WHILE_PVP_QUEUING or CANNOT_DO_THIS_WHILE_PVE_QUEUING end - for i=1, GetMaxBattlefieldID() do - local status, mapName, teamSize, registeredMatch, suspend = GetBattlefieldStatus(i); - if ( status and status ~= "none" ) then - return CANNOT_DO_THIS_IN_BATTLEGROUND; - end + for i = 1, GetMaxBattlefieldID() do + local status, mapName, teamSize, registeredMatch, suspend = GetBattlefieldStatus(i) + if status and status ~= "none" then return CANNOT_DO_THIS_IN_BATTLEGROUND end end end @@ -2947,16 +2963,15 @@ local LFG_LIST_INACTIVE_STATUSES = { invitedeclined = true, } -function LFGListUtil_IsStatusInactive(status) - return LFG_LIST_INACTIVE_STATUSES[status]; -end +function LFGListUtil_IsStatusInactive(status) return LFG_LIST_INACTIVE_STATUSES[status] end function LFGListUtil_SetAutoAccept(autoAccept) - local active, activityID, iLevel, honorLevel, name, comment, voiceChat, expiration, oldAutoAccept = C_LFGList.GetActiveEntryInfo(); - if ( not active ) then + local active, activityID, iLevel, honorLevel, name, comment, voiceChat, expiration, oldAutoAccept = + C_LFGList.GetActiveEntryInfo() + if not active then --If we're not listed, we can't change the value. - return; + return end - C_LFGList.UpdateListing(activityID, name, iLevel, honorLevel, voiceChat, comment, autoAccept); + C_LFGList.UpdateListing(activityID, name, iLevel, honorLevel, voiceChat, comment, autoAccept) end diff --git a/WIP/ToDissect.lua b/WIP/ToDissect.lua index b85b469..c76cc77 100644 --- a/WIP/ToDissect.lua +++ b/WIP/ToDissect.lua @@ -19,9 +19,12 @@ frenzyRegenFrame:SetSize(100, 26) frenzyRegenFrame:ClearAllPoints() frenzyRegenFrame:SetPoint("CENTER", UIParent) frenzyRegenFrame:SetBackdrop({ - bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", tile = true, tileSize = 16, - edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", edgeSize = 12, - insets = {left = 3, right = 3, top = 3, bottom = 3, }, + bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", + tile = true, + tileSize = 16, + edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", + edgeSize = 12, + insets = { left = 3, right = 3, top = 3, bottom = 3 }, }) frenzyRegenFrame:SetBackdropColor(0, 0, 0, 0.4) frenzyRegenFrame:SetBackdropBorderColor(0, 0, 0, 1) @@ -30,7 +33,7 @@ frenzyRegenFrame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED") frenzyRegenFrame:RegisterEvent("ADDON_LOADED") frenzyRegenFrame:RegisterEvent("ACTIVE_TALENT_GROUP_CHANGED") frenzyRegenFrame:RegisterEvent("UPDATE_SHAPESHIFT_FORM") -frenzyRegenFrame:RegisterEvent("PLAYER_REGEN_DISABLED"); +frenzyRegenFrame:RegisterEvent("PLAYER_REGEN_DISABLED") frenzyRegenFrame:RegisterEvent("PLAYER_REGEN_ENABLED") frenzyRegenFrame:RegisterEvent("ARTIFACT_UPDATE") frenzyRegenFrame:RegisterEvent("PET_BATTLE_CLOSE") @@ -41,9 +44,9 @@ frenzyRegenFrame:SetMovable(true) frenzyRegenFrame:RegisterForDrag("LeftButton") frenzyRegenFrame:SetScript("OnDragStart", frenzyRegenFrame.StartMoving) frenzyRegenFrame:SetScript("OnDragStop", function(self) - self:StopMovingOrSizing() - settingsFR.XPos = self:GetLeft() - settingsFR.YPos = self:GetBottom() + self:StopMovingOrSizing() + settingsFR.XPos = self:GetLeft() + settingsFR.YPos = self:GetBottom() end) frenzyRegenFrame.damageTakenBar = CreateFrame("StatusBar", nil, frenzyRegenFrame) @@ -69,500 +72,493 @@ frenzyRegenFrame.damageTakenBar.value:SetShadowOffset(1, -1) frenzyRegenFrame.damageTakenBar.value:SetTextColor(0, 1, 0) function frenzyRegenFrame:getShortNumber(num) - if settingsFR.shortNumFlag then - if not num then - return 0 - elseif num >= 1e6 then - return format("%.1fM", num / 1e6) - elseif num >= 1e3 then - return format("%.1fK", num / 1e3) - else - return format("%d", num) - end - else - return format("%d", num) - end + if settingsFR.shortNumFlag then + if not num then + return 0 + elseif num >= 1e6 then + return format("%.1fM", num / 1e6) + elseif num >= 1e3 then + return format("%.1fK", num / 1e3) + else + return format("%d", num) + end + else + return format("%d", num) + end end function frenzyRegenFrame:countHealing() - maxHP = UnitHealthMax("player") - - versatilityBonus = GetCombatRatingBonus(CR_VERSATILITY_DAMAGE_DONE) + GetVersatilityBonus(CR_VERSATILITY_DAMAGE_DONE) - expectedHealing = math.max(maxHP * 0.05, damageTP5S * 0.5) * (1 + versatilityBonus / 100) - legendaryHealing = 0 - - if IsEquippedItem(137025) and settingsFR.legendaryFlag then -- Skysec's Hold - legendaryHealing = maxHP * 0.12 * (1 + versatilityBonus / 100) - end - - local t18set = {124246, 124255, 124261, 124267, 124272} - local t18items = 0 - for i = 1, 5, 1 do - if IsEquippedItem(t18set[i]) then - t18items = t18items + 1 - end - end - isT18eq = t18items > 1 - - local idx = 1 - repeat - local name, _, _, _, _, _, _, _, _, _, spellID = UnitAura("player", idx, nil, "PLAYER|HELPFUL|CANCELABLE") - if spellID and spellID == 213680 then -- Guardian of Elune - expectedHealing = expectedHealing * 1.2 - elseif isT18eq and spellID and spellID == 192081 then -- Ironfur id - expectedHealing = expectedHealing * 1.2 - elseif spellID and spellID == 47788 then -- Guardian Spirit - expectedHealing = expectedHealing * 1.4 - elseif spellID and spellID == 64844 then -- Divine Hymn - expectedHealing = expectedHealing * 1.1 - elseif spellID and spellID == 116849 then -- Life Cocoon - expectedHealing = expectedHealing * 1.5 - elseif spellID and spellID == 199368 then -- Legacy of the Ravencrest - expectedHealing = expectedHealing * 4 - end - idx = idx + 1 - until name == nil - - if IsEquippedItem(128821) then - expectedHealing = expectedHealing * (1 + settingsFR.artifactBonus) - end - - ratioHP = (expectedHealing + legendaryHealing) / maxHP * 100 - anouncedHealing = format("Self healing %d%% over 3 sec", ratioHP) - - charges, maxcharges = GetSpellCharges(idFR) - if settingsFR.statusTypeFlag == 1 then - frenzyRegenFrame.damageTakenBar:SetValue(charges * 100 / maxcharges) - else - frenzyRegenFrame.damageTakenBar:SetValue(ratioHP) - end - - if settingsFR.displayFlag == 0 then - frenzyRegenFrame.damageTakenBar.value:SetText(self:getShortNumber(expectedHealing + legendaryHealing)) - anouncedHealing = format("Self healing %s over 3 sec", self:getShortNumber(expectedHealing + legendaryHealing)) - elseif settingsFR.displayFlag == 1 then - frenzyRegenFrame.damageTakenBar.value:SetText(self:getShortNumber(expectedHealing / 6)) - else if settingsFR.displayFlag == 2 then - frenzyRegenFrame.damageTakenBar.value:SetText(format("%d%%", ratioHP)) - end - end - - if settingsFR.showValueOnlyFlag then - transparency = 0 - frenzyRegenFrame:SetBackdropColor(0, 0, 0, 0) - frenzyRegenFrame:SetBackdropBorderColor(0, 0, 0, 0) - else - transparency = settingsFR.transparencyFlag - frenzyRegenFrame:SetBackdropColor(0, 0, 0, 0.4) - frenzyRegenFrame:SetBackdropBorderColor(0, 0, 0, 1) - end - start = GetSpellCooldown(idFR) - if start ~= 0 and settingsFR.greyOutFlag then - frenzyRegenFrame.damageTakenBar:SetStatusBarColor(0.212, 0.212, 0.212, transparency) - frenzyRegenFrame.damageTakenBar.bg:SetVertexColor(0.1, 0.1, 0.1, transparency) - frenzyRegenFrame.damageTakenBar.value:SetTextColor(0.5, 0.5, 0.5, settingsFR.transparencyFlag) - else - frenzyRegenFrame.damageTakenBar:SetStatusBarColor(0, 0.65, 0, transparency / 1.5) - if charges < maxcharges and settingsFR.statusTypeFlag == 1 then - frenzyRegenFrame.damageTakenBar:SetStatusBarColor(0.6, 0.65, 0, transparency / 1.5) - end - frenzyRegenFrame.damageTakenBar.bg:SetVertexColor(0, 0.35, 0, transparency) - frenzyRegenFrame.damageTakenBar.value:SetTextColor(0, 1, 0, settingsFR.transparencyFlag) - end + maxHP = UnitHealthMax("player") + + versatilityBonus = GetCombatRatingBonus(CR_VERSATILITY_DAMAGE_DONE) + + GetVersatilityBonus(CR_VERSATILITY_DAMAGE_DONE) + expectedHealing = math.max(maxHP * 0.05, damageTP5S * 0.5) * (1 + versatilityBonus / 100) + legendaryHealing = 0 + + if IsEquippedItem(137025) and settingsFR.legendaryFlag then -- Skysec's Hold + legendaryHealing = maxHP * 0.12 * (1 + versatilityBonus / 100) + end + + local t18set = { 124246, 124255, 124261, 124267, 124272 } + local t18items = 0 + for i = 1, 5, 1 do + if IsEquippedItem(t18set[i]) then t18items = t18items + 1 end + end + isT18eq = t18items > 1 + + local idx = 1 + repeat + local name, _, _, _, _, _, _, _, _, _, spellID = UnitAura("player", idx, nil, "PLAYER|HELPFUL|CANCELABLE") + if spellID and spellID == 213680 then -- Guardian of Elune + expectedHealing = expectedHealing * 1.2 + elseif isT18eq and spellID and spellID == 192081 then -- Ironfur id + expectedHealing = expectedHealing * 1.2 + elseif spellID and spellID == 47788 then -- Guardian Spirit + expectedHealing = expectedHealing * 1.4 + elseif spellID and spellID == 64844 then -- Divine Hymn + expectedHealing = expectedHealing * 1.1 + elseif spellID and spellID == 116849 then -- Life Cocoon + expectedHealing = expectedHealing * 1.5 + elseif spellID and spellID == 199368 then -- Legacy of the Ravencrest + expectedHealing = expectedHealing * 4 + end + idx = idx + 1 + until name == nil + + if IsEquippedItem(128821) then expectedHealing = expectedHealing * (1 + settingsFR.artifactBonus) end + + ratioHP = (expectedHealing + legendaryHealing) / maxHP * 100 + anouncedHealing = format("Self healing %d%% over 3 sec", ratioHP) + + charges, maxcharges = GetSpellCharges(idFR) + if settingsFR.statusTypeFlag == 1 then + frenzyRegenFrame.damageTakenBar:SetValue(charges * 100 / maxcharges) + else + frenzyRegenFrame.damageTakenBar:SetValue(ratioHP) + end + + if settingsFR.displayFlag == 0 then + frenzyRegenFrame.damageTakenBar.value:SetText(self:getShortNumber(expectedHealing + legendaryHealing)) + anouncedHealing = format("Self healing %s over 3 sec", self:getShortNumber(expectedHealing + legendaryHealing)) + elseif settingsFR.displayFlag == 1 then + frenzyRegenFrame.damageTakenBar.value:SetText(self:getShortNumber(expectedHealing / 6)) + else + if settingsFR.displayFlag == 2 then frenzyRegenFrame.damageTakenBar.value:SetText(format("%d%%", ratioHP)) end + end + + if settingsFR.showValueOnlyFlag then + transparency = 0 + frenzyRegenFrame:SetBackdropColor(0, 0, 0, 0) + frenzyRegenFrame:SetBackdropBorderColor(0, 0, 0, 0) + else + transparency = settingsFR.transparencyFlag + frenzyRegenFrame:SetBackdropColor(0, 0, 0, 0.4) + frenzyRegenFrame:SetBackdropBorderColor(0, 0, 0, 1) + end + start = GetSpellCooldown(idFR) + if start ~= 0 and settingsFR.greyOutFlag then + frenzyRegenFrame.damageTakenBar:SetStatusBarColor(0.212, 0.212, 0.212, transparency) + frenzyRegenFrame.damageTakenBar.bg:SetVertexColor(0.1, 0.1, 0.1, transparency) + frenzyRegenFrame.damageTakenBar.value:SetTextColor(0.5, 0.5, 0.5, settingsFR.transparencyFlag) + else + frenzyRegenFrame.damageTakenBar:SetStatusBarColor(0, 0.65, 0, transparency / 1.5) + if charges < maxcharges and settingsFR.statusTypeFlag == 1 then + frenzyRegenFrame.damageTakenBar:SetStatusBarColor(0.6, 0.65, 0, transparency / 1.5) + end + frenzyRegenFrame.damageTakenBar.bg:SetVertexColor(0, 0.35, 0, transparency) + frenzyRegenFrame.damageTakenBar.value:SetTextColor(0, 1, 0, settingsFR.transparencyFlag) + end end function frenzyRegenFrame:updateVisibility() - if IsPlayerSpell(idFR) then - self:Show() - else - self:Hide() - return - end - if C_PetBattles.IsInBattle() then - self:Hide() - return - else - self:Show() - end - if settingsFR.hideOutOfBearFlag then - if GetShapeshiftFormID() == 5 then - self:Show() - else - self:Hide() - return - end - end - if settingsFR.hideOutOfCombatFlag then - if UnitAffectingCombat("player") then - self:Show() - else - self:Hide() - end - end - if settingsFR.ignoreMouseFlag and UnitAffectingCombat("player") then - frenzyRegenFrame:EnableMouse(false) - else - frenzyRegenFrame:EnableMouse(true) - end + if IsPlayerSpell(idFR) then + self:Show() + else + self:Hide() + return + end + if C_PetBattles.IsInBattle() then + self:Hide() + return + else + self:Show() + end + if settingsFR.hideOutOfBearFlag then + if GetShapeshiftFormID() == 5 then + self:Show() + else + self:Hide() + return + end + end + if settingsFR.hideOutOfCombatFlag then + if UnitAffectingCombat("player") then + self:Show() + else + self:Hide() + end + end + if settingsFR.ignoreMouseFlag and UnitAffectingCombat("player") then + frenzyRegenFrame:EnableMouse(false) + else + frenzyRegenFrame:EnableMouse(true) + end end function frenzyRegenFrame:initFlags() - if settingsFR.displayFlag == nil then - settingsFR.displayFlag = 0; - end - if settingsFR.greyOutFlag == nil then - settingsFR.greyOutFlag = true; - end - if settingsFR.movableFlag == nil then - settingsFR.movableFlag = true; - end - if settingsFR.shortNumFlag == nil then - settingsFR.shortNumFlag = true; - end - if settingsFR.hideOutOfCombatFlag == nil then - settingsFR.hideOutOfCombatFlag = false; - end - if settingsFR.hideOutOfBearFlag == nil then - settingsFR.hideOutOfBearFlag = false; - end - if settingsFR.legendaryFlag == nil then - settingsFR.legendaryFlag = false; - end - if settingsFR.artifactBonus == nil then - settingsFR.artifactBonus = 0; - end - if settingsFR.transparencyFlag == nil then - settingsFR.transparencyFlag = 1; - end - if settingsFR.ignoreMouseFlag == nil then - settingsFR.ignoreMouseFlag = false; - end - if settingsFR.announceFlag == nil then - settingsFR.announceFlag = false; - end - if settingsFR.announceChannel == nil then - settingsFR.announceChannel = "SAY"; - end - if settingsFR.statusTypeFlag == nil then - settingsFR.statusTypeFlag = 0; - end - if settingsFR.showValueOnlyFlag == nil then - settingsFR.showValueOnlyFlag = false; - end + if settingsFR.displayFlag == nil then settingsFR.displayFlag = 0 end + if settingsFR.greyOutFlag == nil then settingsFR.greyOutFlag = true end + if settingsFR.movableFlag == nil then settingsFR.movableFlag = true end + if settingsFR.shortNumFlag == nil then settingsFR.shortNumFlag = true end + if settingsFR.hideOutOfCombatFlag == nil then settingsFR.hideOutOfCombatFlag = false end + if settingsFR.hideOutOfBearFlag == nil then settingsFR.hideOutOfBearFlag = false end + if settingsFR.legendaryFlag == nil then settingsFR.legendaryFlag = false end + if settingsFR.artifactBonus == nil then settingsFR.artifactBonus = 0 end + if settingsFR.transparencyFlag == nil then settingsFR.transparencyFlag = 1 end + if settingsFR.ignoreMouseFlag == nil then settingsFR.ignoreMouseFlag = false end + if settingsFR.announceFlag == nil then settingsFR.announceFlag = false end + if settingsFR.announceChannel == nil then settingsFR.announceChannel = "SAY" end + if settingsFR.statusTypeFlag == nil then settingsFR.statusTypeFlag = 0 end + if settingsFR.showValueOnlyFlag == nil then settingsFR.showValueOnlyFlag = false end end function frenzyRegenFrame:updateArtifactBonus() - if IsEquippedItem(128821) then - local powers = C_ArtifactUI.GetPowers() - if powers ~= nil then - for i = 1, #powers do - local id, _, rank = C_ArtifactUI.GetPowerInfo(powers[i]) - if id == 200400 then -- Wildflesh id - settingsFR.artifactBonus = rank * 0.05 - end - end - end - end + if IsEquippedItem(128821) then + local powers = C_ArtifactUI.GetPowers() + if powers ~= nil then + for i = 1, #powers do + local id, _, rank = C_ArtifactUI.GetPowerInfo(powers[i]) + if id == 200400 then -- Wildflesh id + settingsFR.artifactBonus = rank * 0.05 + end + end + end + end end -frenzyRegenFrame:SetScript("OnEvent", - function(self, event, ...) - if event == "ADDON_LOADED" then - playerGUID = UnitGUID("player") - if settingsFR.XPos then - frenzyRegenFrame:ClearAllPoints() - frenzyRegenFrame:SetPoint("BOTTOMLEFT", settingsFR.XPos, settingsFR.YPos) - end - frenzyRegenFrame:initFlags() - if not settingsFR.movableFlag then - frenzyRegenFrame:SetMovable(false) - end - frenzyRegenFrame:updateVisibility() - elseif self:IsShown() and event == "COMBAT_LOG_EVENT_UNFILTERED" then - - local _, eventType, _, sourceGUID, _, _, _, destGUID = ... - if settingsFR.announceFlag and sourceGUID == playerGUID and eventType == "SPELL_CAST_SUCCESS" then - local spellId = select(12, ...) - if spellId == idFR then -- Frenzied Regeneration - SendChatMessage(anouncedHealing, settingsFR.announceChannel, "Common") - end - end - if destGUID == playerGUID then - eventIndex = eventIndex + 1 - if eventType == "SWING_DAMAGE" then - local _, _, _, _, _, _, _, _, _, _, _, amount, _, _, _, _, absorbed = ... - if absorbed == nil then - absorbed = 0; - end - damageTable[eventIndex] = {time(), amount + absorbed} - elseif eventType == "SPELL_DAMAGE" or eventType == "SPELL_PERIODIC_DAMAGE" or eventType == "RANGE_DAMAGE" then - local _, _, _, _, _, _, _, _, _, _, _, _, _, _, amount, _, _, _, _, absorbed = ... - if absorbed == nil then - absorbed = 0; - end - damageTable[eventIndex] = {time(), amount + absorbed} - end - end - elseif event == "ACTIVE_TALENT_GROUP_CHANGED" or event == "UPDATE_SHAPESHIFT_FORM" or event == "PLAYER_REGEN_DISABLED" or event == "PLAYER_REGEN_ENABLED" or - event == "PET_BATTLE_CLOSE" or event == "PET_BATTLE_OPENING_START" then - frenzyRegenFrame:updateVisibility() - elseif event == "ARTIFACT_UPDATE" then - frenzyRegenFrame:updateArtifactBonus() - end - end) - - frenzyRegenFrame:SetScript("OnUpdate", function(self, elapsed) - timeElapsed = timeElapsed + elapsed - if timeElapsed >= updateInterval then - local t = time() - 5 - for k, v in pairs(damageTable) do - if v[1] <= t then - damageTable[k] = nil - else - damageTP5S = damageTP5S + v[2] - end - end - self:countHealing() - damageTP5S = 0 - timeElapsed = 0 - end - end) - - local dropDown = CreateFrame("Frame", "FRContextMenu", frenzyRegenFrame, "UIDropDownMenuTemplate") - UIDropDownMenu_Initialize(dropDown, function(self, level, menuList) - local info = UIDropDownMenu_CreateInfo() - if (level or 1) == 1 then - info.text = " Frame settings" - info.notCheckable = true - info.hasArrow = true - info.value = "position_submenu" - UIDropDownMenu_AddButton(info) - info.text = " Transparency" - info.value = "position_submenu2" - UIDropDownMenu_AddButton(info) - info.text = " Status bar shows..." - info.value = "position_submenu3" - UIDropDownMenu_AddButton(info) - info.text = " Announce healing..." - info.value = "position_submenu4" - UIDropDownMenu_AddButton(info) - info.hasArrow = false - info.isTitle = true - info.icon = "Interface\\Common\\UI-TooltipDivider-Transparent" - info.tSizeX = 0 - info.tSizeY = 8 - info.text = "" - info.iconOnly = true - info.iconInfo = {tFitDropDownSizeX = true} - UIDropDownMenu_AddButton(info) - info = UIDropDownMenu_CreateInfo() - info.notCheckable = false - info.hasArrow = false - info.text = "Show total heal" - info.func = function() settingsFR.displayFlag = 0 end - info.checked = function() return settingsFR.displayFlag == 0 end - UIDropDownMenu_AddButton(info) - info.text = "Show heal per tick" - info.func = function() settingsFR.displayFlag = 1 end - info.checked = function() return settingsFR.displayFlag == 1 end - UIDropDownMenu_AddButton(info) - info.text = "Show % of HP" - info.func = function() settingsFR.displayFlag = 2 end - info.checked = function() return settingsFR.displayFlag == 2 end - UIDropDownMenu_AddButton(info) - elseif level == 2 then - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then - info.text = "Block position" - info.func = function() frenzyRegenFrame:SetMovable(not frenzyRegenFrame:IsMovable()) settingsFR.movableFlag = frenzyRegenFrame:IsMovable() end - info.checked = function() return not frenzyRegenFrame:IsMovable() end - info.isNotRadio = true - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then - info.text = "Ignore clicks in combat" - info.func = function() settingsFR.ignoreMouseFlag = not settingsFR.ignoreMouseFlag frenzyRegenFrame:updateVisibility() end - info.checked = function() return settingsFR.ignoreMouseFlag end - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then - info.hasArrow = false - info.isTitle = true - info.notCheckable = true - info.icon = "Interface\\Common\\UI-TooltipDivider-Transparent" - info.tSizeX = 0 - info.tSizeY = 8 - info.text = "" - info.iconOnly = true - info.iconInfo = {tFitDropDownSizeX = true} - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then - info = UIDropDownMenu_CreateInfo() - info.notCheckable = false - info.isNotRadio = true - info.text = "Grey-out if FR's on cd" - info.func = function() settingsFR.greyOutFlag = not settingsFR.greyOutFlag end - info.checked = function() return settingsFR.greyOutFlag end - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then - info.text = "Short numbers format" - info.func = function() settingsFR.shortNumFlag = not settingsFR.shortNumFlag end - info.checked = function() return settingsFR.shortNumFlag end - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then - info.hasArrow = false - info.isTitle = true - info.notCheckable = true - info.icon = "Interface\\Common\\UI-TooltipDivider-Transparent" - info.tSizeX = 0 - info.tSizeY = 8 - info.text = "" - info.iconOnly = true - info.iconInfo = {tFitDropDownSizeX = true} - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then - info = UIDropDownMenu_CreateInfo() - info.notCheckable = false - info.isNotRadio = true - info.text = "Include Skysec's Hold" - info.func = function() settingsFR.legendaryFlag = not settingsFR.legendaryFlag end - info.checked = function() return settingsFR.legendaryFlag end - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then - info.hasArrow = false - info.isTitle = true - info.notCheckable = true - info.icon = "Interface\\Common\\UI-TooltipDivider-Transparent" - info.tSizeX = 0 - info.tSizeY = 8 - info.text = "" - info.iconOnly = true - info.iconInfo = {tFitDropDownSizeX = true} - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then - info = UIDropDownMenu_CreateInfo() - info.notCheckable = false - info.text = "Hide when not in Bear form" - info.func = function() settingsFR.hideOutOfBearFlag = not settingsFR.hideOutOfBearFlag frenzyRegenFrame:updateVisibility() print("To turn off this setting type '/frshow bear'") end - info.checked = function() return settingsFR.hideOutOfBearFlag end - info.isNotRadio = true - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then - info.text = "Hide when out of combat" - info.func = function() settingsFR.hideOutOfCombatFlag = not settingsFR.hideOutOfCombatFlag frenzyRegenFrame:updateVisibility() print("To turn off this setting type '/frshow combat'") end - info.checked = function() return settingsFR.hideOutOfCombatFlag end - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu2" then - info.text = "Show value only" - info.func = function() settingsFR.showValueOnlyFlag = not settingsFR.showValueOnlyFlag end - info.checked = function() return settingsFR.showValueOnlyFlag end - info.isNotRadio = true - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu2" then - info.hasArrow = false - info.isTitle = true - info.notCheckable = true - info.icon = "Interface\\Common\\UI-TooltipDivider-Transparent" - info.tSizeX = 0 - info.tSizeY = 8 - info.text = "" - info.iconOnly = true - info.iconInfo = {tFitDropDownSizeX = true} - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu2" then - info = UIDropDownMenu_CreateInfo() - info.text = "OFF" - info.notCheckable = false - info.func = function() settingsFR.transparencyFlag = 1 end - info.checked = function() return settingsFR.transparencyFlag == 1 end - info.isNotRadio = false - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu2" then - info.text = "Low" - info.func = function() settingsFR.transparencyFlag = lowTransparency end - info.checked = function() return settingsFR.transparencyFlag == lowTransparency end - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu2" then - info.text = "Medium" - info.func = function() settingsFR.transparencyFlag = mediumTransparency end - info.checked = function() return settingsFR.transparencyFlag == mediumTransparency end - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu2" then - info.text = "High" - info.func = function() settingsFR.transparencyFlag = highTransparency end - info.checked = function() return settingsFR.transparencyFlag == highTransparency end - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu3" then - info.text = "% of HP" - info.func = function() settingsFR.statusTypeFlag = 0 end - info.checked = function() return settingsFR.statusTypeFlag == 0 end - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu3" then - info.text = "Number of charges" - info.func = function() settingsFR.statusTypeFlag = 1 end - info.checked = function() return settingsFR.statusTypeFlag == 1 end - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu4" then - info.text = "OFF" - info.func = function() settingsFR.announceFlag = false end - info.checked = function() return not settingsFR.announceFlag end - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu4" then - info.text = "/Say" - info.func = function() settingsFR.announceChannel = "SAY" settingsFR.announceFlag = true end - info.checked = function() return settingsFR.announceFlag and settingsFR.announceChannel == "SAY" end - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu4" then - info.text = "/Yell" - info.func = function() settingsFR.announceChannel = "YELL" settingsFR.announceFlag = true end - info.checked = function() return settingsFR.announceFlag and settingsFR.announceChannel == "YELL" end - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu4" then - info.text = "/Party" - info.func = function() settingsFR.announceChannel = "PARTY" settingsFR.announceFlag = true end - info.checked = function() return settingsFR.announceFlag and settingsFR.announceChannel == "PARTY" end - UIDropDownMenu_AddButton(info, level) - end - if UIDROPDOWNMENU_MENU_VALUE == "position_submenu4" then - info.text = "/Raid" - info.func = function() settingsFR.announceChannel = "RAID" settingsFR.announceFlag = true end - info.checked = function() return settingsFR.announceFlag and settingsFR.announceChannel == "RAID" end - UIDropDownMenu_AddButton(info, level) - end - end - end) - - frenzyRegenFrame:SetScript("OnMouseDown", function(self, button) - if button == "RightButton" then - ToggleDropDownMenu(1, nil, dropDown, "cursor", 3, -3) - end - end) - - SLASH_FRENZYREGEN1 = "/frshow"; - function SlashCmdList.FRENZYREGEN(msg, editbox) - if msg == "bear" then - settingsFR.hideOutOfBearFlag = not settingsFR.hideOutOfBearFlag - elseif msg == "combat" then - settingsFR.hideOutOfCombatFlag = not settingsFR.hideOutOfCombatFlag - end - frenzyRegenFrame:updateVisibility() - end - +frenzyRegenFrame:SetScript("OnEvent", function(self, event, ...) + if event == "ADDON_LOADED" then + playerGUID = UnitGUID("player") + if settingsFR.XPos then + frenzyRegenFrame:ClearAllPoints() + frenzyRegenFrame:SetPoint("BOTTOMLEFT", settingsFR.XPos, settingsFR.YPos) + end + frenzyRegenFrame:initFlags() + if not settingsFR.movableFlag then frenzyRegenFrame:SetMovable(false) end + frenzyRegenFrame:updateVisibility() + elseif self:IsShown() and event == "COMBAT_LOG_EVENT_UNFILTERED" then + local _, eventType, _, sourceGUID, _, _, _, destGUID = ... + if settingsFR.announceFlag and sourceGUID == playerGUID and eventType == "SPELL_CAST_SUCCESS" then + local spellId = select(12, ...) + if spellId == idFR then -- Frenzied Regeneration + SendChatMessage(anouncedHealing, settingsFR.announceChannel, "Common") + end + end + if destGUID == playerGUID then + eventIndex = eventIndex + 1 + if eventType == "SWING_DAMAGE" then + local _, _, _, _, _, _, _, _, _, _, _, amount, _, _, _, _, absorbed = ... + if absorbed == nil then absorbed = 0 end + damageTable[eventIndex] = { time(), amount + absorbed } + elseif + eventType == "SPELL_DAMAGE" + or eventType == "SPELL_PERIODIC_DAMAGE" + or eventType == "RANGE_DAMAGE" + then + local _, _, _, _, _, _, _, _, _, _, _, _, _, _, amount, _, _, _, _, absorbed = ... + if absorbed == nil then absorbed = 0 end + damageTable[eventIndex] = { time(), amount + absorbed } + end + end + elseif + event == "ACTIVE_TALENT_GROUP_CHANGED" + or event == "UPDATE_SHAPESHIFT_FORM" + or event == "PLAYER_REGEN_DISABLED" + or event == "PLAYER_REGEN_ENABLED" + or event == "PET_BATTLE_CLOSE" + or event == "PET_BATTLE_OPENING_START" + then + frenzyRegenFrame:updateVisibility() + elseif event == "ARTIFACT_UPDATE" then + frenzyRegenFrame:updateArtifactBonus() + end +end) + +frenzyRegenFrame:SetScript("OnUpdate", function(self, elapsed) + timeElapsed = timeElapsed + elapsed + if timeElapsed >= updateInterval then + local t = time() - 5 + for k, v in pairs(damageTable) do + if v[1] <= t then + damageTable[k] = nil + else + damageTP5S = damageTP5S + v[2] + end + end + self:countHealing() + damageTP5S = 0 + timeElapsed = 0 + end +end) + +local dropDown = CreateFrame("Frame", "FRContextMenu", frenzyRegenFrame, "UIDropDownMenuTemplate") +UIDropDownMenu_Initialize(dropDown, function(self, level, menuList) + local info = UIDropDownMenu_CreateInfo() + if (level or 1) == 1 then + info.text = " Frame settings" + info.notCheckable = true + info.hasArrow = true + info.value = "position_submenu" + UIDropDownMenu_AddButton(info) + info.text = " Transparency" + info.value = "position_submenu2" + UIDropDownMenu_AddButton(info) + info.text = " Status bar shows..." + info.value = "position_submenu3" + UIDropDownMenu_AddButton(info) + info.text = " Announce healing..." + info.value = "position_submenu4" + UIDropDownMenu_AddButton(info) + info.hasArrow = false + info.isTitle = true + info.icon = "Interface\\Common\\UI-TooltipDivider-Transparent" + info.tSizeX = 0 + info.tSizeY = 8 + info.text = "" + info.iconOnly = true + info.iconInfo = { tFitDropDownSizeX = true } + UIDropDownMenu_AddButton(info) + info = UIDropDownMenu_CreateInfo() + info.notCheckable = false + info.hasArrow = false + info.text = "Show total heal" + info.func = function() settingsFR.displayFlag = 0 end + info.checked = function() return settingsFR.displayFlag == 0 end + UIDropDownMenu_AddButton(info) + info.text = "Show heal per tick" + info.func = function() settingsFR.displayFlag = 1 end + info.checked = function() return settingsFR.displayFlag == 1 end + UIDropDownMenu_AddButton(info) + info.text = "Show % of HP" + info.func = function() settingsFR.displayFlag = 2 end + info.checked = function() return settingsFR.displayFlag == 2 end + UIDropDownMenu_AddButton(info) + elseif level == 2 then + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then + info.text = "Block position" + info.func = function() + frenzyRegenFrame:SetMovable(not frenzyRegenFrame:IsMovable()) + settingsFR.movableFlag = frenzyRegenFrame:IsMovable() + end + info.checked = function() return not frenzyRegenFrame:IsMovable() end + info.isNotRadio = true + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then + info.text = "Ignore clicks in combat" + info.func = function() + settingsFR.ignoreMouseFlag = not settingsFR.ignoreMouseFlag + frenzyRegenFrame:updateVisibility() + end + info.checked = function() return settingsFR.ignoreMouseFlag end + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then + info.hasArrow = false + info.isTitle = true + info.notCheckable = true + info.icon = "Interface\\Common\\UI-TooltipDivider-Transparent" + info.tSizeX = 0 + info.tSizeY = 8 + info.text = "" + info.iconOnly = true + info.iconInfo = { tFitDropDownSizeX = true } + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then + info = UIDropDownMenu_CreateInfo() + info.notCheckable = false + info.isNotRadio = true + info.text = "Grey-out if FR's on cd" + info.func = function() settingsFR.greyOutFlag = not settingsFR.greyOutFlag end + info.checked = function() return settingsFR.greyOutFlag end + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then + info.text = "Short numbers format" + info.func = function() settingsFR.shortNumFlag = not settingsFR.shortNumFlag end + info.checked = function() return settingsFR.shortNumFlag end + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then + info.hasArrow = false + info.isTitle = true + info.notCheckable = true + info.icon = "Interface\\Common\\UI-TooltipDivider-Transparent" + info.tSizeX = 0 + info.tSizeY = 8 + info.text = "" + info.iconOnly = true + info.iconInfo = { tFitDropDownSizeX = true } + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then + info = UIDropDownMenu_CreateInfo() + info.notCheckable = false + info.isNotRadio = true + info.text = "Include Skysec's Hold" + info.func = function() settingsFR.legendaryFlag = not settingsFR.legendaryFlag end + info.checked = function() return settingsFR.legendaryFlag end + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then + info.hasArrow = false + info.isTitle = true + info.notCheckable = true + info.icon = "Interface\\Common\\UI-TooltipDivider-Transparent" + info.tSizeX = 0 + info.tSizeY = 8 + info.text = "" + info.iconOnly = true + info.iconInfo = { tFitDropDownSizeX = true } + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then + info = UIDropDownMenu_CreateInfo() + info.notCheckable = false + info.text = "Hide when not in Bear form" + info.func = function() + settingsFR.hideOutOfBearFlag = not settingsFR.hideOutOfBearFlag + frenzyRegenFrame:updateVisibility() + print("To turn off this setting type '/frshow bear'") + end + info.checked = function() return settingsFR.hideOutOfBearFlag end + info.isNotRadio = true + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then + info.text = "Hide when out of combat" + info.func = function() + settingsFR.hideOutOfCombatFlag = not settingsFR.hideOutOfCombatFlag + frenzyRegenFrame:updateVisibility() + print("To turn off this setting type '/frshow combat'") + end + info.checked = function() return settingsFR.hideOutOfCombatFlag end + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu2" then + info.text = "Show value only" + info.func = function() settingsFR.showValueOnlyFlag = not settingsFR.showValueOnlyFlag end + info.checked = function() return settingsFR.showValueOnlyFlag end + info.isNotRadio = true + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu2" then + info.hasArrow = false + info.isTitle = true + info.notCheckable = true + info.icon = "Interface\\Common\\UI-TooltipDivider-Transparent" + info.tSizeX = 0 + info.tSizeY = 8 + info.text = "" + info.iconOnly = true + info.iconInfo = { tFitDropDownSizeX = true } + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu2" then + info = UIDropDownMenu_CreateInfo() + info.text = "OFF" + info.notCheckable = false + info.func = function() settingsFR.transparencyFlag = 1 end + info.checked = function() return settingsFR.transparencyFlag == 1 end + info.isNotRadio = false + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu2" then + info.text = "Low" + info.func = function() settingsFR.transparencyFlag = lowTransparency end + info.checked = function() return settingsFR.transparencyFlag == lowTransparency end + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu2" then + info.text = "Medium" + info.func = function() settingsFR.transparencyFlag = mediumTransparency end + info.checked = function() return settingsFR.transparencyFlag == mediumTransparency end + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu2" then + info.text = "High" + info.func = function() settingsFR.transparencyFlag = highTransparency end + info.checked = function() return settingsFR.transparencyFlag == highTransparency end + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu3" then + info.text = "% of HP" + info.func = function() settingsFR.statusTypeFlag = 0 end + info.checked = function() return settingsFR.statusTypeFlag == 0 end + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu3" then + info.text = "Number of charges" + info.func = function() settingsFR.statusTypeFlag = 1 end + info.checked = function() return settingsFR.statusTypeFlag == 1 end + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu4" then + info.text = "OFF" + info.func = function() settingsFR.announceFlag = false end + info.checked = function() return not settingsFR.announceFlag end + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu4" then + info.text = "/Say" + info.func = function() + settingsFR.announceChannel = "SAY" + settingsFR.announceFlag = true + end + info.checked = function() return settingsFR.announceFlag and settingsFR.announceChannel == "SAY" end + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu4" then + info.text = "/Yell" + info.func = function() + settingsFR.announceChannel = "YELL" + settingsFR.announceFlag = true + end + info.checked = function() return settingsFR.announceFlag and settingsFR.announceChannel == "YELL" end + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu4" then + info.text = "/Party" + info.func = function() + settingsFR.announceChannel = "PARTY" + settingsFR.announceFlag = true + end + info.checked = function() return settingsFR.announceFlag and settingsFR.announceChannel == "PARTY" end + UIDropDownMenu_AddButton(info, level) + end + if UIDROPDOWNMENU_MENU_VALUE == "position_submenu4" then + info.text = "/Raid" + info.func = function() + settingsFR.announceChannel = "RAID" + settingsFR.announceFlag = true + end + info.checked = function() return settingsFR.announceFlag and settingsFR.announceChannel == "RAID" end + UIDropDownMenu_AddButton(info, level) + end + end +end) + +frenzyRegenFrame:SetScript("OnMouseDown", function(self, button) + if button == "RightButton" then ToggleDropDownMenu(1, nil, dropDown, "cursor", 3, -3) end +end) + +SLASH_FRENZYREGEN1 = "/frshow" +function SlashCmdList.FRENZYREGEN(msg, editbox) + if msg == "bear" then + settingsFR.hideOutOfBearFlag = not settingsFR.hideOutOfBearFlag + elseif msg == "combat" then + settingsFR.hideOutOfCombatFlag = not settingsFR.hideOutOfCombatFlag + end + frenzyRegenFrame:updateVisibility() +end