diff --git a/AttackSpeedTest.lua b/AttackSpeedTest.lua deleted file mode 100644 index ec62382..0000000 --- a/AttackSpeedTest.lua +++ /dev/null @@ -1,58 +0,0 @@ ---Guess attack speed by taking entire data set and comparing 2 - 4 intervals then storing the n into seperate array and incrementing it ---Attack speed with most counts in latter array is the best guess by m% ---Correct this by repeating step on exit combat maybe? ---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, -} -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, -} -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 - 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 - ) - 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 diff --git a/Complete Projects/Legion/RaiderSA b/Complete Projects/Legion/RaiderSA deleted file mode 160000 index 7a3f912..0000000 --- a/Complete Projects/Legion/RaiderSA +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7a3f9125490399d579b71d2a4427b0707aa695f5 diff --git a/Complete Projects/trash/Button b/Complete Projects/trash/Button deleted file mode 100644 index 790f4be..0000000 --- a/Complete Projects/trash/Button +++ /dev/null @@ -1,11 +0,0 @@ - - -local Button = CreateFrame("Button", "MyButton", UIParent, "UIPanelButtonTemplate") -Button:SetWidth(150) -Button:SetHeight(25) -Button:SetPoint("TOP") -Button:SetText("Dance") -Button:RegisterForClicks("AnyUp") -Button:SetScript("OnClick", function() - DoEmote("dance", UnitName("target")) -end ) \ No newline at end of file diff --git a/Complete Projects/trash/Cunting shit 2.lua b/Complete Projects/trash/Cunting shit 2.lua deleted file mode 100644 index 1fa3ef7..0000000 --- a/Complete Projects/trash/Cunting shit 2.lua +++ /dev/null @@ -1,38 +0,0 @@ -EVERY FRAME -function() - local function range (val, min, max, max2) - val = 1 - (((max - val) / (max - min)) * max2) - return val - end - local pX = UnitPosition("player") or 0 - local pY = select(2,UnitPosition("player")) or 0 - local tX = UnitPosition("Alurielle") or 0 - local tY = select(2,UnitPosition("Alurielle")) or 0 - local X = pX - tX - local Y = pY - tY - local playerFace = GetPlayerFacing() or 0 - local playerA = math.floor(playerFace * 100) - playerA = range(playerA, 0, 630, 360) - 1 - playerA = - playerA - playerA = playerA - 90 - if playerA < 0 then playerA = playerA + 360 end - aura_env.hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - aura_env.angle = math.deg(math.atan2(X,Y)) - if aura_env.angle < 0 then aura_env.angle = aura_env.angle + 360 end - aura_env.angle = aura_env.angle - playerA -end - -DISPLAY -function() - local pX = UnitPosition("player") or 0 - local pY = select(2,UnitPosition("player")) or 0 - local tX = UnitPosition("Alurielle") or 0 - local tY = select(2,UnitPosition("Alurielle")) or 0 - local X = pX - tX - local Y = pY - tY - local hyp = math.floor(math.sqrt((math.abs(X^2)) + (math.abs(Y^2)))) - return hyp -end - -INIT -aura_env.angle = 0 \ No newline at end of file diff --git a/Complete Projects/trash/Cunting shit.lua b/Complete Projects/trash/Cunting shit.lua deleted file mode 100644 index 89ab85c..0000000 --- a/Complete Projects/trash/Cunting shit.lua +++ /dev/null @@ -1,31 +0,0 @@ -EVERY FRAME -function() - local function range (val, min, max, max2) - val = 1 - (((max - val) / (max - min)) * max2) - return val - end - local pX = UnitPosition("player") or 0 - local pY = select(2,UnitPosition("player")) or 0 - local tX = UnitPosition("Alurielle") or 0 - local tY = select(2,UnitPosition("Alurielle")) or 0 - local X = pX - tX - local Y = pY - tY - local playerFace = GetPlayerFacing() or 0 - local playerA = math.floor(playerFace * 100) - playerA = range(playerA, 0, 630, 360) - 1 - playerA = - playerA - playerA = playerA - 90 - if playerA < 0 then playerA = playerA + 360 end - aura_env.hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - aura_env.angle = math.deg(math.atan2(X,Y)) - if aura_env.angle < 0 then aura_env.angle = aura_env.angle + 360 end - aura_env.angle = aura_env.angle - playerA -end - -ANIMATION -function() - return - aura_env.angle -end - -INIT -aura_env.angle = 0 \ No newline at end of file diff --git a/LegionWA/.gitignore b/LegionWA/.gitignore deleted file mode 100644 index b4fa2c9..0000000 --- a/LegionWA/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.vscode diff --git a/Metadata for userdata!!.txt b/Metadata for userdata!!.txt deleted file mode 100644 index 6e5fd06..0000000 --- a/Metadata for userdata!!.txt +++ /dev/null @@ -1 +0,0 @@ -/dump getmetatable(LFGListApplicationViewerScrollFrameButton3.Member1.Name) \ No newline at end of file diff --git a/ModelResearch.lua b/ModelResearch.lua deleted file mode 100644 index 483b540..0000000 --- a/ModelResearch.lua +++ /dev/null @@ -1,24 +0,0 @@ ---MODEL_TEST -function() - frame:SetAlpha(1); - frame:SetFrameStrata("DIALOG"); - local model = CreateFrame("PlayerModel", "QCP", QCQuestTitleFrame); - model:SetFrameStrata("DIALOG"); - model:SetUnit("TARGET"); - model:ClearModel(); - model:SetPortraitZoom(0.3); - model:SetPosition(-1.6, 0, 0); - model:SetScale(0.8); - model:SetFacing(-(math.pi / -26)) - model:SetAlpha(1); - model:SetScript("OnAnimStarted", function() model:SetAnimation(60); end); - model:SetScript("OnAnimFinished", function() model:SetAnimation(60); end); - model:SetAllPoints(frame); - model:RegisterEvent("PLAYER_TARGET_CHANGED"); - model:RegisterEvent("UNIT_PORTRAIT_UPDATE"); - model:RegisterEvent("UNIT_MODEL_CHANGED"); - model:SetScript("OnEvent", TargetPortrait_EventHandler); - --yeet_env.region:SetSequenceTime(120) - --aura_env.region:SetOffsetAnim(120) - return true -end diff --git a/Sort Array.lua b/Sort Array.lua deleted file mode 100644 index e4ec0a2..0000000 --- a/Sort Array.lua +++ /dev/null @@ -1,19 +0,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 -end - -for k, v in ipairs(sortedarray) do - print(k, v) -end diff --git a/WA codes/BossHpNameplate (WA CODE).txt b/WeakAuras/Exports/BossHpNameplate (WA CODE).txt similarity index 100% rename from WA codes/BossHpNameplate (WA CODE).txt rename to WeakAuras/Exports/BossHpNameplate (WA CODE).txt diff --git a/WA codes/Bulwark of Order (WA CODE).txt b/WeakAuras/Exports/Bulwark of Order (WA CODE).txt similarity index 100% rename from WA codes/Bulwark of Order (WA CODE).txt rename to WeakAuras/Exports/Bulwark of Order (WA CODE).txt diff --git a/WA codes/Dumpy Fuckery(WA CODE).txt b/WeakAuras/Exports/Dumpy Fuckery(WA CODE).txt similarity index 100% rename from WA codes/Dumpy Fuckery(WA CODE).txt rename to WeakAuras/Exports/Dumpy Fuckery(WA CODE).txt diff --git a/WA codes/HoTP Heal bars(WA CODE).txt b/WeakAuras/Exports/HoTP Heal bars(WA CODE).txt similarity index 100% rename from WA codes/HoTP Heal bars(WA CODE).txt rename to WeakAuras/Exports/HoTP Heal bars(WA CODE).txt diff --git a/WA codes/Holy Pala Crap (WA CODE).txt b/WeakAuras/Exports/Holy Pala Crap (WA CODE).txt similarity index 99% rename from WA codes/Holy Pala Crap (WA CODE).txt rename to WeakAuras/Exports/Holy Pala Crap (WA CODE).txt index b5030e8..29adb98 100644 --- a/WA codes/Holy Pala Crap (WA CODE).txt +++ b/WeakAuras/Exports/Holy Pala Crap (WA CODE).txt @@ -1 +1 @@ -da1F)aqissyrkjDjssQpPKsgLiPtjszvkufnlLuDlssTlvLFPqvyyqLJPQAzOQEMcLPbjDnQK2MsIVbPQXjsCovPsRJQkUNsk2NcvLdIkSqfYdHQAIku5IQs2iQsFujLAKKeojKyLkHxQqv1mrfDtrQ2PI(jvQHss0sPQQEQWuH4QqQSvss0xrvmwvPI3svLMlKYDPQk7v6VIyWuLddAXQIhtftgkxMyZkvFMeJgv60KA1KKKxtvz2aUTsz3O8BKgUcoUcvPLRYZrmDkxxuBNK67ujgVs05HQSEvPmFvPQ9d09VinGfPwdsd(FJ9H(gBnWAGvKgyAIQkZCmTAPbeaOXjkAkdbVbPHYrZdnGoMwTGCAff5sNIjDQ6FCnKLdqgMG1Ng45EFNiwNQ()hxdIaSRsQMzng5gbXD6C(IxKgASgQGcGhO3aeac69KbaiC1MjhEny5nKtROihPZ)gauiwrAyqaHzfPXwgW0fPwTgy69DTtgWWRin2YaMUi1Q14GosrASLbmDrQvRHdaKqksdIMPainujhCYX4qzwRXG6bdcimRin2YaMUi1Q14OasrASLbmDrQvRrMijoaqcPHDzPXo0X0uwrASLbmDrQvRwTgofPZ)I0WKLgVaqfsd3OdHtuMVAS09(orSovTR8BGN79DIyDQA(8BODOS(0yNYmEbGkKgUrhcNOmF1Gia7QKQzwde3QSXd8WNcqVI0j)oX9HE()UUskRWh9O6kU3nLAngoQYjeIkpXrt0uwNO2aGcXksddcimJFrASLbmDrQvRrMijdI9andq6tJmrsyIA56tddcimRin2YaMUi1Q1itKe1cxTdG0NgoaqcPiniAMcG0qLCWjhJdLzTgKbXPiniAMcG05FTgy69DTtgWWRin2YaMUi1Q1itKehaiH0rnoOJuKgBzatxKA1AKjscdUj9PrMijKbXPJASdDmnLvKgBzatxKA1AmOEWGacZksJTmGPlsTAnokGuKgBzatxKA1Q14efnLHG3G0aMp4d8AqmOJpsFAyYslFsdEuaGesdtwA8szwJxlhoHqCbIxJ3O0ToX9nwdYa881rnm9MC8szwdoWulmlFsdYa88HpfGEfPZ)oX1j)oX15yDIRwdNmXOBiYsRXEM5yAkl1K1twFinWfGEGEGEGE6DqVbqpidd0Ba0d89Rb0dhOhKHb6na6b((18d6zCfgO3jw(yGEdGEcddCbOhOhOhO3jw(yGER1AbUqyyGlaxaUaCb4cWfGlax0iZStROixrAq4sDXnRbHl1f3m8PuamQlSgKbbayc3Ko5Jdv0pwTgqhtRwqoTIICPtXKov9pUgMS0c9BsN)OVHDAff5ksdNmXOBjgEdsdIbTmPrMijBqZHRG5)mt6tJmrsC4cpfH0NgKbbayc3Ko5Jdv0pwJmrsozdQzAMsFA4WvC81ipGbnPHH3G0GyqltAiQfMrAGV70hXbscNUx7KxQYxtKe0n5fforE5)xJRHtMy0TeUAmPHtMy0TgoCHNIqsOdYbn61y8TMgoCHNIqA83iZe1cZAaZgTrMijeUuxCZ6OgIAHznWNsbWOUWa9u5rvoHqa9sngeaG0ACceigeaGjCtAOckaEGEbxQJVgzIKqgeaGjCt6OgzIKKzARJAq4sDXnRbHl1f3m8PuamQlSAnidWZx667OxFAqgGNpezPLpPbkmtUDOJGghyyUze04rG(4iFqcAPlyAiAiYslFcbTy8MHNKWdxTjnW0KbaiEiYsJtz3Aa6PQhAOXAOckaEGEeUuhFn0mTLqm4zcwN)n4kAfUw5nfurfv(UUsk)O31F(Oo2F3vnQVBdtVjhVaqfsJ0DpDJVk8V70F9EevGc(JF3OdHtuMVAqgGNVracdlDkM0yeNVMJRXd0Xh2rhWNcqVI05FN46KFN46CSoX1jQD(xRblVHCAff5iD(3a6yAkJuKgAM2ksdmAItMy0T(0Wjtm6wdEeOpoYhK8DIIMYi(fMpyIWu)PX833jkAk77bEF7k(jedrwA5tsDvuyMC7qhbn0gLnJYiOHgpQafKxP8oPSAAGl4rG(4iFqY3jkAkJ4xy(Gjct9NgZFFNOOPSVh499O4NqmezPLpj1vrHzYTdDe0qBu2mkJGgA8OcuqELY7KYQPbUaMpyIWu)Ttz26W8bteM6VDkZsi63K1H5dMim1F7uMLSdaviGERb0Jhb6JJ8bjFNOOPmIFH5dMim1FAm)9DIIMY(mzP5N1wmEPml10axWJa9Xr(GKVtu0ugXVW8bteM6pnM)(orrtzFMS08tigVuMLkmFWeHP(BNYS1H5dMim1F7uMLq0VjRVQB0HWjkZxRMg4cEeOpoYhK8DIIMYi(fMpyIWu)PX833jkAk7ZKLMFcXcUqmQlU33jILk)1b9u9FA1Q1WfnMXTZFC4A8qpm56Ogp0dtUxyksJra63EdEyGE4ZfAGEJYppasdmnrvLzoMwT0aYWRXd9WKl0VjDYVH2HYsiAmPbNV4fPXd0XNYrZmm8Pa0RiD(35FN878VZX68VtulVUI(vqDLFCR87kQ)4wjfx7UQDDLAnidWZNkeTcxRt(8BqgGNpE0yg3o534HEyYnc64d7OdnckGgRHP3KRpnGyyAttzqGe70kkYrksTgoua6vKAn2p4Me2bnyNJ14HEyYHcJiwN)nEOhMC4tbOxr68VtCDYVtCDowN46e1o)R1qZulhr6Ogp0dto377eX6e1ADYVinidWZhpAmJBN8BS09(orSovTR8BGN79DIyDQA(8BaDmnLrksdntBfPbgnXjtm6wFA4KjgDRbpc0hh5ds(orrtze)cZhmryQ)0y(77efnL99aVVDf)eIHilT8jPUkkmtUDOJGgAJYMrze0qJhvGcYRuENuwnnWf8iqFCKpi57efnLr8lmFWeHP(tJ5VVtu0u23d8(Eu8tigIS0YNK6QOWm52HocAOnkBgLrqdnEubkiVs5Dsz10axaZhmryQ)2PmBDy(Gjct93oLzje9BY6W8bteM6VDkZs2bGkeqV1a6XJa9Xr(GKVtu0ugXVW8bteM6pnM)(orrtzFMS08ZAlgVuMLAAGl4rG(4iFqY3jkAkJ4xy(Gjct9NgZFFNOOPSptwA(jeJxkZsfMpyIWu)Ttz26W8bteM6VDkZsi63K1x1n6q4eL5RvtdCbpc0hh5ds(orrtze)cZhmryQ)0y(77efnL9zYsZpHybxig1f377eXsL)6GEQ(pTA1AStzgVaqfsd3OdHtuMVAqeGDvs1mRbIBv24bE4tbOxr68VtCFON)VRRKYk8rpQUI7DtPt(D(xRXWrvoHqu5joAIMY6e1gauiwrAyqaHz8lsJTmGPlsTAnYejzqShOzasFAKjsctulxFAyqaHzfPXwgW0fPwTgzIKOw4QDaK(0WbasifPbrZuaKgQKdo5yCOmR1GmiofPbrZuaKo)R1itKegCt6tJmrsCaGesh14GosrASLbmDrQvRbMEFx7Kbm8ksJTmGPlsTAnYejHmioDuJb1dgeqywrASLbmDrQvRXo0X0uwrASLbmDrQvRXrbKI0yldy6IuRwTgNOOPme8gKgW8bFGxdIbD8r6tdtwA5tAWJcaKqAyYsJxkZA8A5WjeIlq8A8gLU1jUVXAqgGNVoQHP3KJxkZAWbMAHz5tAqgGNp8Pa0RiD(3jUo53jUohRtC1AGPjQQmZX0QLgqgEnCYeJUHilTg7zMJPPSutwpz9H0axa6b6b6b6P3b9ga9GmmqVbqpW3VgqpCGEqggO3aOh47xZpONXvyGENy5Jb6na6jmmWfGEGEGEGENy5Jb6TwRf4cHHbUaCb4cWfGlaxaUaCrdOJPvliNwrrU0PysNQ(hxdtwAH(nPZF03WoTIICfPHtMy0TedVbPbXGwM0itKKnO5WvW8FMj9PrMijoCHNIq6tJmrsYmT1rniCPU4M1GWL6IBM)figEnidcaWeUjDYhhQOFSgoCHNIqsOdYbn61y8TMgoCHNIqA83itKKt2GAMMP0NgzMOwywdy2OnYejHWL6IBwh14eiqmiaat4M0qfua8a9cUuhFne1cZAGpLcGrDHb6PYJQCcHa6LAmiaaP1itKeYGaamHBsh1qulmJ0aF3PpIdKeoDV2jVuLVMijOBYlkCI8Y)VgxdhUIJVg5bmOjnm8gKgedAzsdNmXOBjC1ysdNmXOB1AqgGNV013rV(04HEyY5EFNiwNO2GROv4AL3uqfvu576kP8JEx)5J6y)Dx1O(Unm9MC8cavins390n(QW)Ut)17rubk4p(DJoeorz(QXd0XNYrZmm8Pa0RiD(35FN878VZX68VtulVUI(vqDLFCR87kQ)4wjfx7UQDDLAnidWZ3iaHHLoftAmIZxZX14b64d7Od4tbOxr68VtCDYVtCDowN46e1o)R1qZulhr6Ogp0dto8Pa0RiD(3jUo53jUohRtCDIAN)1A8qpm5qHreRZ)gp0dtUoQXd9WK7fMI0yeG(T3GhgOh(CHgO3O8ZdG0WHcqVIuRXd9WKl0VjDYVbedtBAkdcKyNwrrosrQ1q7qzjenM0GZx8I0W0BY1NgKb45tfIwHR1jF(nmzPXlauH0Wn6q4eL5Rgp0dtUrqhFyhDOrqb0yn0ynubfapqpcxQJpqp)3iZStROixrAq4sDXnRbHl1f3m)lqm8AqgeaGjCt6Kpour)y1ASFWnjSdAWohRHlAmJBN)4W1q7qz9PblVHCAff5iD(3qZ0wcXGNjyD(3GmapFiYslFsduyMC7qhbnoWWCZiOXJa9Xr(Ge0sxW0q0qKLw(ecAX4ndpjHhUAtAGPjdaq8qKLgNYU1qfua8a9cUuhF16CSI0GmapF8OXmUDYVXs377eX60v(nWZ9(orSovnF(nGoMMYifPHMPTI0aJM4KjgDRpnCYeJU1Ghb6JJ8bjFNOOPmIFH5dMim1FAm)9DIIMY(EG33UIFcXqKLw(KuxffMj3o0rqdTrzZOmcAOXJkqb5vkVtkRMg4cEeOpoYhK8DIIMYi(fMpyIWu)PX833jkAk77bEFpk(jedrwA5tsDvuyMC7qhbn0gLnJYiOHgpQafKxP8oPSAAGlG5dMim1F7uMTomFWeHP(BNYSeI(nzDy(Gjct93oLzj7aqfcO3Aa94rG(4iFqY3jkAkJ4xy(Gjct9NgZFFNOOPSptwA(zTfJxkZsnnWf8iqFCKpi57efnLr8lmFWeHP(tJ5VVtu0u2Njln)eIXlLzPcZhmryQ)2PmBDy(Gjct93oLzje9BY6R6gDiCIY81QPbUGhb6JJ8bjFNOOPmIFH5dMim1FAm)9DIIMY(mzP5NqSGleJ6I79DIyPYFDqpv)NwTAn2PmJxaOcPHB0HWjkZxnicWUkPAM1aXTkB8ap8Pa0RiDYVtCFON)VRRKYk8rpQUI7DtPZXkVPm2yRGd9OUcouhlf0JEurF3vTRUwRXWrvoHqu5joAIMY6e1gauiwrAyqaHz8lsJTmGPlsTAnYejzqShOzasFAKjsctulxFAyqaHzfPXwgW0fPwTgzIKOw4QDaK(0WbasifPbrZuaKgQKdo5yCOmR1GmiofPbrZuaKo)R1itKegCt6tJmrsCaGesh14GosrASLbmDrQvRbMEFx7Kbm8ksJTmGPlsTAnYejHmioDuJb1dgeqywrASLbmDrQvRXo0X0uwrASLbmDrQvRXrbKI0yldy6IuRwTgNOOPme8gKgW8bFGxdIbD8r6tdtwA5tAWJcaKqAyYsJxkZA8A5WjeIlq8A8gLU1jUVXAqgGNVoQHP3KJxkZAWbMAHz5tAqgGNp8Pa0RiD(3jUo53jUohRtC1AGPjQQmZX0QLgqgEnCYeJUHilTg7zMJPPSutwpz9H0axa6b6b6b6P3b9ga9GmmqVbqpW3VgqpCGEqggO3aOh47xZpONXvyGENy5Jb6na6jmmWfGEGEGEGENy5Jb6TwRf4cHHbUaCb4cWfGlaxaUaCrdOJPvliNwrrU0PysNQ(hxdtwAH(nPZF03WoTIICfPHtMy0TedVbPbXGwM0itKKnO5WvW8FMj9PrMijoCHNIq6tJmrsYmT1rniCPU4M1GWL6IBg(ukag1fwdYGaamHBsNP4kF(8B4WfEkcjHoih0OxJX3AA4WfEkcPXFJmrsozdQzAMsFAKzIAHznGzJ2itKecxQlUzDuJtGaXGaamHBsdo1kCnqp6oO34GUWAiQfM1aFkfaJ6cd0tLhv5ecb0l1yqaasRrMijKbbayc3KoQHOwygPb(UtFehijC6ETtEPkFnrsq3Kxu4e5L)FnUgoCfhFnYdyqtAy4ninig0YKgozIr3s4QXKgozIr3Q1GmapFPRVJE9PXd9WKZ9(orSorTbxrRW1kVPGkQOY31vs5h9U(Zh1X(7UQr9DBy6n54faQqAKU7PB8vH)DN(R3JOcuWF87gDiCIY8vJhOJpLJMzy4tbOxr68VZ)o535FNJ15FNOwEDf9RG6k)4w53vu)XTskU2Dv76k1AqgGNVracdlDkM0yeNVMJRXd0Xh2rhWNcqVI05FN46KFN46CSoX1jQD(xRHMPwoI0rnEOhMC4tbOxr68VtCDYVtCDowN46e1o)R14HEyYHcJiwN)nEOhMCDuJh6Hj3lmfPXia9BVbpmqp85cnqVr5NhaPHdfGEfPwJh6HjxOFt6KFdigM20ugeiXoTIICKIuRH2HYsiAmPbNV4fPHP3KRpnidWZNkeTcxRt(8ByYsJxaOcPHB0HWjkZxnEOhMCJGo(Wo6qJGcOXAOXAWjDCnYm70kkYvKgeUuxCZAq4sDXndFkfaJ6cRbzqaaMWnPZuCLpF(1ASFWnjSdAWohRHlAmJBN)4W1q7qz9PblVHCAff5iD(3qZ0wcXGNjyD(3GmapFiYslFsduyMC7qhbnoWWCZiOXJa9Xr(Ge0sxW0q0qKLw(ecAX4ndpjHhUAtAGPjdaq8qKLgNYU1a0tvpuRtulsdtwA8cavinCJoeorz(QXs377eX60v(nWZ9(orSovnF(nEOhMC4tbOxr68VtCDYVtCDowN46e1o)R1a6yAkJuKgAM2ksdmAItMy0T(0Wjtm6wdEeOpoYhK8DIIMYi(fMpyIWu)PX833jkAk77bEF7k(jedrwA5tsDvuyMC7qhbn0gLnJYiOHgpQafKxP8oPSAAGl4rG(4iFqY3jkAkJ4xy(Gjct9NgZFFNOOPSVh499O4NqmezPLpj1vrHzYTdDe0qBu2mkJGgA8OcuqELY7KYQPbUaMpyIWu)Ttz26W8bteM6VDkZsi63K1H5dMim1F7uMLSdaviGERb0Jhb6JJ8bjFNOOPmIFH5dMim1FAm)9DIIMY(mzP5N1wmEPml10axWJa9Xr(GKVtu0ugXVW8bteM6pnM)(orrtzFMS08tigVuMLkmFWeHP(BNYS1H5dMim1F7uMLq0VjRVQB0HWjkZxRMg4cEeOpoYhK8DIIMYi(fMpyIWu)PX833jkAk7ZKLMFcXcUqmQlU33jILk)1b9u9FA1Q1yNYmEbGkKgUrhcNOmF1Gia7QKQzwde3QSXd8WNcqVI05FN4(qp)FxxjLv4JEuDf37MsN878VwJHJQCcHOYtC0enL1jQnaOqSI0WGacZ4xKgBzatxKA1AKjsYGypqZaK(0itKeMOwU(0WGacZksJTmGPlsTAnYejrTWv7ai9PHdaKqksdIMPainujhCYX4qzwRbzqCksdIMPaiD(xRbMEFx7Kbm8ksJTmGPlsTAnYejXbasiDuJJcifPXwgW0fPwTgzIKWGBsFAKjsczqC6Og7qhttzfPXwgW0fPwTgdQhmiGWSI0yldy6IuRwJd6ifPXwgW0fPwTAnorrtzi4ninG5d(aVged64J0NgMS0YN0GhfaiH0WKLgVuM141YHtiexG414nkDRtCFJ1W0BYXlLzn4atTWS8jnidWZh(ua6vKo)7exN87exNJ1jUAnCOa0Ri1A4KjgDdrwAn2ZmhttzPMSEY6dPbUa0d0d0d0tVd6na6bzyGEdGEGVFnGE4a9GmmqVbqpW3VMFqpJRWa9oXYhd0Ba0tyyGla9a9a9a9oXYhd0BTwlWfcddCb4cWfGlaxaUaCb4IgqhtRwqoTIICPtXKov9pUgMS0c9BsN)OVHDAff5ksdNmXOBjgEdsdIbTmPrMijBqZHRG5)mt6tJmrsC4cpfH0NgozIr3s4QXKgozIr3Ay4ninig0YKgoCfhFnYdyqtA4WfEkcPXFdrTWmsd8DN(ioqs409AN8sv(AIKGUjVOWjYl))ACnC4cpfHKqhKdA0RX4BnnYej5KnOMPzk9PrMjQfM1aMnAJmrsiCPU4M1rne1cZAGpLcGrDHb6PYJQCcHa6LAmiaaP14eiqmiaat4M0GtTcxd0JUd6noOlSgzIKqgeaGjCt6OgeUuxCZAq4sDXnZ)cedVgKbbayc3KotXv(853itKKmtBDuTgKb45lD9D0RpnW0KbaiEiYsJtz3AWjDCnidWZhIS0YN0afMj3o0rqJdmm3mcA8iqFCKpibT0fmnenezPLpHGwmEZWts4HR2KgAM2sig8mbRZ)gCfTcxR8McQOIkFxxjLF076pFuh7V7Qg13THP3KJxaOcPr6UNUXxf(3D6VEpIkqb)XVB0HWjkZxnEOhMCU33jI1jQnidWZ3iaHHLoftAmIZxZX14b64d7Od4tbOxr68VtCDYVtCDowN46e1o)R1GL3qoTIICKo)BODOS(0WfnMXTZFC4A8qpm56Ogp0dtUxyksJra63EdEyGE4ZfAGEJYppasJmZoTIICfPbHl1f3SgeUuxCZ8VaXWRbzqaaMWnPZuCLpF(1A8qpm5c9BsN8BOXAWjDCGE(VH2HYsiAmPbNV4fPbzaE(uHOv4ADYNFdYa88XJgZ42j)gp0dtUrqhFyhDOrqb0ynW0evvM5yA1sdidVgpqhFkhnZWWNcqVI05FN)DYVZ)ohRZ)orT86k6xb1v(XTYVRO(JBLuCT7Q21vQ1y)GBsyh0GDowdtVjxFAaXW0MMYGaj2PvuKJuKAn0m1YrKoQXd9WKdfgrSo)BqgGNVoQwNUwKgMS04faQqA4gDiCIY8vJhOJpLJMzy4tbOxr68VZ)o535FNJ15FNOwEDf9RG6k)4w53vu)XTskU2Dv76k1AStzgVaqfsd3OdHtuMVAqeGDvs1mRbIBv24bE4tbOxr6KFN4(qp)FxxjLv4JEuDf37MsTgdhv5ecrLN4OjAkRtuBaqHyfPHbbeMXVin2YaMUi1Q1itKKbXEGMbi9PrMijmrTC9PHbbeMvKgBzatxKA1AKjsIAHR2bq6tdhaiHuKgentbqAOso4KJXHYSwdYG4uKgentbq68VwJmrsyWnPpnYejXbasiDuJd6ifPXwgW0fPwTgy69DTtgWWRin2YaMUi1Q1itKeYG40rngupyqaHzfPXwgW0fPwTg7qhttzfPXwgW0fPwTghfqksJTmGPlsTA1ACIIMYqWBqAaZh8bEnig0XhPpnmzPLpPbpkaqcPHjlnEPmRXRLdNqiUaXRbzaE(6OgMEtoEPmRbhyQfMLpPbzaE(WNcqVI05FN46KFN46CSoXvRbMMOQYmhtRwAaz41Wjtm6gIS0ASNzoMMYsnz9K1hsdCbOhOhOhONEh0Ba0dYWa9ga9aF)Aa9Wb6bzyGEdGEGVFn)GEgxHb6DILpgO3aONWWaxa6b6b6b6DILpgO3ATwGlegg4cWfGlaxaUaCb4cWfnYm70kkYvKgeUuxCZAq4sDXndFkfaJ6cRbzqaaMWnPt(4WHJVR1AaDmTAb50kkYLoft6u1)4AyYsl0VjD(J(g2PvuKRinYejzdAoCfm)NzsFAKjsIdx4PiK(0Wjtm6wIH3G0GyqltAKjssMPToQHdx4PiKg)nC4ko(AKhWGM0WWBqAqmOLjne1cZinW3D6J4ajHt3RDYlv5Rjsc6M8IcNiV8)RX1Gmiaat4M0jFC4WX31goCHNIqsOdYbn61y8TMgzIKCYguZ0mL(0iZe1cZAaZgTrMijeUuxCZ6OgIAHznWNsbWOUWa9u5rvoHqa9sngeaG0ACceigeaGjCtAmsGougOhDh0tvQpllnYejHmiaat4M0rniCPU4M1GWL6IBg(ukag1fwdNmXOBjC1ysdNmXOB1AqgGNV013rV(04HEyY5EFNiwNO24HEyYHcJiwN)n0mTLqm4zcwN)nm9MC8cavins390n(QW)Ut)17rubk4p(DJoeorz(QbedtBAkdcKyNwrrosrQ1GmapFJaegw6umPXioFnhxJhOJpSJoGpfGEfPZ)oX1j)oX15yDIRtu78VwdwEd50kkYr68Vb0X0ugPin0mTvKgy0eNmXOB9PHtMy0Tg8iqFCKpi57efnLr8lmFWeHP(tJ5VVtu0u23d8(2v8tigIS0YNK6QOWm52HocAOnkBgLrqdnEubkiVs5Dsz10axWJa9Xr(GKVtu0ugXVW8bteM6pnM)(orrtzFpW77rXpHyiYslFsQRIcZKBh6iOH2OSzugbn04rfOG8kL3jLvtdCbmFWeHP(BNYS1H5dMim1F7uMLq0VjRdZhmryQ)2PmlzhaQqa9wdOhpc0hh5ds(orrtze)cZhmryQ)0y(77efnL9zYsZpRTy8szwQPbUGhb6JJ8bjFNOOPmIFH5dMim1FAm)9DIIMY(mzP5NqmEPmlvy(Gjct93oLzRdZhmryQ)2PmlHOFtwFv3OdHtuMVwnnWf8iqFCKpi57efnLr8lmFWeHP(tJ5VVtu0u2Njln)eIfCHyuxCVVtelv(Rd6P6)0QvRHlAmJBN)RGRXd9WKRJA8qpm5EHPingbOF7n4Hb6HpxOb6nk)8ainEOhMCH(nPt(n0ouwcrJjn48fVinidWZhIS0YN0afMj3o0rqJdmm3mcA8iqFCKpibT0fmnenezPLpHGwmEZWts4HR2KgKb45tfIwHR1jF(nidWZhpAmJBN8B8qpm5gbD8HD0HgbfqJ1W0BY1NgASgJeOdLb6H)4A4qbOxrQ1y)GBsyh0GDowJh6Hjh(ua6vKo)7exN87exNJ1jUorTZ)An0ouwFAOzQLJiDudmnzaaIhIS04u2TgGEQ6HgVrPBDI7BSADUsrAyYsJxaOcPHB0HWjkZxnEOhMC4tbOxr68VtCDYVtCDowN46e1o)R1a6yAkJuKgAM2ksdmAItMy0T(0Wjtm6wdEeOpoYhK8DIIMYi(fMpyIWu)PX833jkAk77bEF7k(jedrwA5tsDvuyMC7qhbn0gLnJYiOHgpQafKxP8oPSAAGl4rG(4iFqY3jkAkJ4xy(Gjct9NgZFFNOOPSVh499O4NqmezPLpj1vrHzYTdDe0qBu2mkJGgA8OcuqELY7KYQPbUaMpyIWu)Ttz26W8bteM6VDkZsi63K1H5dMim1F7uMLSdaviGERb0Jhb6JJ8bjFNOOPmIFH5dMim1FAm)9DIIMY(mzP5N1wmEPml10axWJa9Xr(GKVtu0ugXVW8bteM6pnM)(orrtzFMS08tigVuMLkmFWeHP(BNYS1H5dMim1F7uMLq0VjRVQB0HWjkZxRMg4cEeOpoYhK8DIIMYi(fMpyIWu)PX833jkAk7ZKLMFcXcUqmQlU33jILk)1b9u9FA1Q1yNYmEbGkKgUrhcNOmF1Gia7QKQzwde3QSXd8WNcqVI05FN4(qp)FxxjLv4JEuDf37MsN878VwJHJQCcHOYtC0enL1jQnaOqSI0WGacZ4xKgBzatxKA1AKjsYGypqZaK(0itKeMOwU(0WGacZksJTmGPlsTAnYejrTWv7ai9PHdaKqksdIMPainujhCYX4qzwRbzqCksdIMPaiD(xRbMEFx7Kbm8ksJTmGPlsTAnYejXbasiDuJd6ifPXwgW0fPwTgzIKWGBsFAKjsczqC6Og7qhttzfPXwgW0fPwTgdQhmiGWSI0yldy6IuRwJJcifPXwgW0fPwTAnorrtzi4ninG5d(aVged64J0NgMS0YN0GhfaiH0WKLgVuM141YHtiexG41W0BYXlLzn4atTWS8jnidWZh(ua6vKo)7exN87exNJ1jUAnCYeJUHilTg7zMJPPSutwpz9H0axa6b6b6b6P3b9ga9GmmqVbqpW3VgqpCGEqggO3aOh47xZpONXvyGENy5Jb6na6jmmWfGEGEGEGENy5Jb6TwRf4cHHbUaCb4cWfGlaxaUaCrJmZoTIICfPbHl1f3SgeUuxCZ8VaXWRbzqaaMWnPt(4WHJVR1AaDmTAb50kkYLoft6u1)4AyYsl0VjD(J(g2PvuKRinYejzdAoCfm)NzsFAKjsIdx4PiK(0Wjtm6wIH3G0GyqltAKjssMPToQbHl1f3SgeUuxCZ8VaXWRHtMy0TeUAmPHtMy0TgoCHNIqsOdYbn61y8TMggEdsdIbTmPrMijNSb1mntPpnYmrTWSgWSrBKjscHl1f3SoQXjqGyqaaMWnPXib6qzGE0DqpvP(SS0qulmRb(ukag1fgONkpQYjecOxQXGaaKwJmrsidcaWeUjDudrTWmsd8DN(ioqs409AN8sv(AIKGUjVOWjYl))ACnC4ko(AKhWGM0WHl8uesJ)gKbbayc3Ko5Jdho(UwRbzaE(sxFh96tJ3O0ToX9nwdYa88HilT8jnqHzYTdDe04adZnJGgpc0hh5dsqlDbtdrdrwA5tiOfJ3m8KeE4QnPbzaE(6OgMEtoEbGkKgP7E6gFv4F3P)69iQaf8h)UrhcNOmF1qJ1yKaDOmqp)3GmapFJaegw6umPXioFnhxJhOJpSJoGpfGEfPZ)oX1j)oX15yDIRtu78VwdntTCePJA8aD8PC0mddFka9ksN)D(3j)o)7CSo)7e1YRROFfux5h3k)UI6pUvsX1URAxxPwJh6Hjxh14HEyY9ctrAmcq)2BWdd0dFUqd0Bu(5bqA8qpm5CVVteRtuB8qpm5c9BsN8BaXW0MMYGaj2PvuKJuKAn0ouwcrJjn48fVinidWZhpAmJBN8BqgGNpviAfUwN853W0BY1Ngp0dtUrqhFyhDOrqb0ynW0evvM5yA1sdidVg7hCtc7GgSZXA4IgZ425)k4AODOS(0WHcqVIuRblVHCAff5iD(3qZ0wcXGNjyD(3attgaG4HilnoLDRXib6qznEOhMCOWiI15FTorFrAyYsJxaOcPHB0HWjkZxnWZ9(orSovTRP0yNYmEbGkKgUrhcNOmF14bE4tbOxr68VtCDYVtCFON)VRRKYk8rpQUI7DtPZX68VwdakeRinmiGWSI0yldy6IuRwdYG4uKgentbq68VXwgW0fPt(DuTAngupyqaHzfPXwgW0fPwTgzIK4aajKoQXrbKI0yldy6IuRwJmrsidIth1yh6yAkRin2YaMUi1Q1WbasifPbrZuaKgQKdo5yCOmR1atVVRDYagEfPXwgW0fPwTgh0rksJTmGPlsTA1ACIIMYqWBqAaZh8bEnig0XhPpn0mTL4q3gaetW68VHjlT8jn4rbasinmzPXlLznETC4ecXfiEnidWZxh1W0BYXlLznETC4ecXfiEnEOhMCOWiI15FdNmXOBiYsRXEM5yAkl10axa6b6b6b6DILpgOxQRQQ)WT7d0B8a0tv)HB33QP5ND6TbTurhtBPdzWuxDaaINCRMgO34bO3poC4wh0dDmTLoKbthUm1vhaG4j3QPb6nEa69JdhU0aximmqpWfGlAaDmTAb50kkYLoft6u1)4AGPjdaq8qKLgNYU1qv70WoTIICfPHH3G0Wjtm6wdNmXOBjC1ysdtVjynCYeJULy4ninig0YKgozIr3ASNzoMMYsnnWfGEGEGEGENy5Jb6zxwaximmWfGlaxaUaCrdNmXOBJlFqttzn2ZmhttzPMg4cqpqpqpqpaQdea0BBa0BnGEBqJ73gCzQ4wh0dDmTLoKbtD1baiEYTAAPb6nEa6TbnUFBWLP(VoOh6yAlDidMoCzQRoaaXtUvtlnqVXtqVFC4axa6b6b6b6DILpgO32W6)4WTUDzbCHWWA4KjgDBc3Kg7zMJPPSutdCbOhOhOhOha1bca6Tna6TgqVnOX9BdUmvCRd6HoM2shYGPU6aaep5wnT0a9gpa92Gg3Vn4Yu)xh0dDmTLoKbthUm1vhaG4j3QPLgO34jO3poCGla9a9a9a9oXYhd0JyNMP8TtVnOL6QQ6V9vxh0BBinWfcdRHOwygPb6MOGKOs388Y)nC4ko(AiQfMvRbzaE(WNcqVI05FN46KFN46CSoXvRbzaE(qKLw(KgOWm52HocACGH5MrqJhb6JJ8bjOLUGPHOHilT8je0IXBgEscpC1M0GROv4ADogUgMEtoEbGkKgUrhcNOmF14b64d7Od4tbOxr68VtCDYVtCDowN46e1o)R1GL3qoTIICKo)B8qpm5gbD8HD0HgbfqJ14HEyY1rnEOhMCVWuKgJa0V9g8Wa9WNl0a9gLFEaKgUOXmUDYhvCnEOhMCH(nPt(nmzPf63Ko5JAdnwdvHQqvOkufQcvHQqvKoKbBqgGNpE0yg3o53W0BYf63Ko5JAdmnzaaIhIS08VwHR1qvZAGPjQQmZX0QLgqaGgqmmTPPmiqIDAff5ifPwJh6Hjh(ua6vKo)7exN87exNJ1jUorTZ)An2p4Me2bnyNJ1q7qz9PXd9WKZ9(orSorTwTgQ78hv()1Ab +da1F)aqissyrkjDjssQpPKsgLiPtjszvkufnlLuDlssTlvLFPqvyyqLJPQAzOQEMcLPbjDnQK2MsIVbPQXjsCovPsRJQkUNsk2NcvLdIkSqfYdHQAIku5IQs2iQsFujLAKKeojKyLkHxQqv1mrfDtrQ2PI(jvQHss0sPQQEQWuH4QqQSvss0xrvmwvPI3svLMlKYDPQk7v6VIyWuLddAXQIhtftgkxMyZkvFMeJgv60KA1KKKxtvz2aUTsz3O8BKgUcoUcvPLRYZrmDkxxuBNK67ujgVs05HQSEvPmFvPQ9d09VinGfPwdsd(FJ9H(gBnWAGvKgyAIQkZCmTAPbeaOXjkAkdbVbPHYrZdnGoMwTGCAff5sNIjDQ6FCnKLdqgMG1Ng45EFNiwNQ()hxdIaSRsQMzng5gbXD6C(IxKgASgQGcGhO3aeac69KbaiC1MjhEny5nKtROihPZ)gauiwrAyqaHzfPXwgW0fPwTgy69DTtgWWRin2YaMUi1Q14GosrASLbmDrQvRHdaKqksdIMPainujhCYX4qzwRXG6bdcimRin2YaMUi1Q14OasrASLbmDrQvRrMijoaqcPHDzPXo0X0uwrASLbmDrQvRwTgofPZ)I0WKLgVaqfsd3OdHtuMVAS09(orSovTR8BGN79DIyDQA(8BODOS(0yNYmEbGkKgUrhcNOmF1Gia7QKQzwde3QSXd8WNcqVI0j)oX9HE()UUskRWh9O6kU3nLAngoQYjeIkpXrt0uwNO2aGcXksddcimJFrASLbmDrQvRrMijdI9andq6tJmrsyIA56tddcimRin2YaMUi1Q1itKe1cxTdG0NgoaqcPiniAMcG0qLCWjhJdLzTgKbXPiniAMcG05FTgy69DTtgWWRin2YaMUi1Q1itKehaiH0rnoOJuKgBzatxKA1AKjscdUj9PrMijKbXPJASdDmnLvKgBzatxKA1AmOEWGacZksJTmGPlsTAnokGuKgBzatxKA1Q14efnLHG3G0aMp4d8AqmOJpsFAyYslFsdEuaGesdtwA8szwJxlhoHqCbIxJ3O0ToX9nwdYa881rnm9MC8szwdoWulmlFsdYa88HpfGEfPZ)oX1j)oX15yDIRwdNmXOBiYsRXEM5yAkl1K1twFinWfGEGEGEGE6DqVbqpidd0Ba0d89Rb0dhOhKHb6na6b((18d6zCfgO3jw(yGEdGEcddCbOhOhOhO3jw(yGER1AbUqyyGlaxaUaCb4cWfGlax0iZStROixrAq4sDXnRbHl1f3m8PuamQlSgKbbayc3Ko5Jdv0pwTgqhtRwqoTIICPtXKov9pUgMS0c9BsN)OVHDAff5ksdNmXOBjgEdsdIbTmPrMijBqZHRG5)mt6tJmrsC4cpfH0NgKbbayc3Ko5Jdv0pwJmrsozdQzAMsFA4WvC81ipGbnPHH3G0GyqltAiQfMrAGV70hXbscNUx7KxQYxtKe0n5fforE5)xJRHtMy0TeUAmPHtMy0TgoCHNIqsOdYbn61y8TMgoCHNIqA83iZe1cZAaZgTrMijeUuxCZ6OgIAHznWNsbWOUWa9u5rvoHqa9sngeaG0ACceigeaGjCtAOckaEGEbxQJVgzIKqgeaGjCt6OgzIKKzARJAq4sDXnRbHl1f3m8PuamQlSAnidWZx667OxFAqgGNpezPLpPbkmtUDOJGghyyUze04rG(4iFqcAPlyAiAiYslFcbTy8MHNKWdxTjnW0KbaiEiYsJtz3Aa6PQhAOXAOckaEGEeUuhFn0mTLqm4zcwN)n4kAfUw5nfurfv(UUsk)O31F(Oo2F3vnQVBdtVjhVaqfsJ0DpDJVk8V70F9EevGc(JF3OdHtuMVAqgGNVracdlDkM0yeNVMJRXd0Xh2rhWNcqVI05FN46KFN46CSoX1jQD(xRblVHCAff5iD(3a6yAkJuKgAM2ksdmAItMy0T(0Wjtm6wdEeOpoYhK8DIIMYi(fMpyIWu)PX833jkAk77bEF7k(jedrwA5tsDvuyMC7qhbn0gLnJYiOHgpQafKxP8oPSAAGl4rG(4iFqY3jkAkJ4xy(Gjct9NgZFFNOOPSVh499O4NqmezPLpj1vrHzYTdDe0qBu2mkJGgA8OcuqELY7KYQPbUaMpyIWu)Ttz26W8bteM6VDkZsi63K1H5dMim1F7uMLSdaviGERb0Jhb6JJ8bjFNOOPmIFH5dMim1FAm)9DIIMY(mzP5N1wmEPml10axWJa9Xr(GKVtu0ugXVW8bteM6pnM)(orrtzFMS08tigVuMLkmFWeHP(BNYS1H5dMim1F7uMLq0VjRVQB0HWjkZxRMg4cEeOpoYhK8DIIMYi(fMpyIWu)PX833jkAk7ZKLMFcXcUqmQlU33jILk)1b9u9FA1Q1WfnMXTZFC4A8qpm56Ogp0dtUxyksJra63EdEyGE4ZfAGEJYppasdmnrvLzoMwT0aYWRXd9WKl0VjDYVH2HYsiAmPbNV4fPXd0XNYrZmm8Pa0RiD(35FN878VZX68VtulVUI(vqDLFCR87kQ)4wjfx7UQDDLAnidWZNkeTcxRt(8BqgGNpE0yg3o534HEyYnc64d7OdnckGgRHP3KRpnGyyAttzqGe70kkYrksTgoua6vKAn2p4Me2bnyNJ14HEyYHcJiwN)nEOhMC4tbOxr68VtCDYVtCDowN46e1o)R1qZulhr6Ogp0dto377eX6e1ADYVinidWZhpAmJBN8BS09(orSovTR8BGN79DIyDQA(8BaDmnLrksdntBfPbgnXjtm6wFA4KjgDRbpc0hh5ds(orrtze)cZhmryQ)0y(77efnL99aVVDf)eIHilT8jPUkkmtUDOJGgAJYMrze0qJhvGcYRuENuwnnWf8iqFCKpi57efnLr8lmFWeHP(tJ5VVtu0u23d8(Eu8tigIS0YNK6QOWm52HocAOnkBgLrqdnEubkiVs5Dsz10axaZhmryQ)2PmBDy(Gjct93oLzje9BY6W8bteM6VDkZs2bGkeqV1a6XJa9Xr(GKVtu0ugXVW8bteM6pnM)(orrtzFMS08ZAlgVuMLAAGl4rG(4iFqY3jkAkJ4xy(Gjct9NgZFFNOOPSptwA(jeJxkZsfMpyIWu)Ttz26W8bteM6VDkZsi63K1x1n6q4eL5RvtdCbpc0hh5ds(orrtze)cZhmryQ)0y(77efnL9zYsZpHybxig1f377eXsL)6GEQ(pTA1AStzgVaqfsd3OdHtuMVAqeGDvs1mRbIBv24bE4tbOxr68VtCFON)VRRKYk8rpQUI7DtPt(D(xRXWrvoHqu5joAIMY6e1gauiwrAyqaHz8lsJTmGPlsTAnYejzqShOzasFAKjsctulxFAyqaHzfPXwgW0fPwTgzIKOw4QDaK(0WbasifPbrZuaKgQKdo5yCOmR1GmiofPbrZuaKo)R1itKegCt6tJmrsCaGesh14GosrASLbmDrQvRbMEFx7Kbm8ksJTmGPlsTAnYejHmioDuJb1dgeqywrASLbmDrQvRXo0X0uwrASLbmDrQvRXrbKI0yldy6IuRwTgNOOPme8gKgW8bFGxdIbD8r6tdtwA5tAWJcaKqAyYsJxkZA8A5WjeIlq8A8gLU1jUVXAqgGNVoQHP3KJxkZAWbMAHz5tAqgGNp8Pa0RiD(3jUo53jUohRtC1AGPjQQmZX0QLgqgEnCYeJUHilTg7zMJPPSutwpz9H0axa6b6b6b6P3b9ga9GmmqVbqpW3VgqpCGEqggO3aOh47xZpONXvyGENy5Jb6na6jmmWfGEGEGEGENy5Jb6TwRf4cHHbUaCb4cWfGlaxaUaCrdOJPvliNwrrU0PysNQ(hxdtwAH(nPZF03WoTIICfPHtMy0TedVbPbXGwM0itKKnO5WvW8FMj9PrMijoCHNIq6tJmrsYmT1rniCPU4M1GWL6IBM)figEnidcaWeUjDYhhQOFSgoCHNIqsOdYbn61y8TMgoCHNIqA83itKKt2GAMMP0NgzMOwywdy2OnYejHWL6IBwh14eiqmiaat4M0qfua8a9cUuhFne1cZAGpLcGrDHb6PYJQCcHa6LAmiaaP1itKeYGaamHBsh1qulmJ0aF3PpIdKeoDV2jVuLVMijOBYlkCI8Y)VgxdhUIJVg5bmOjnm8gKgedAzsdNmXOBjC1ysdNmXOB1AqgGNV013rV(04HEyY5EFNiwNO2GROv4AL3uqfvu576kP8JEx)5J6y)Dx1O(Unm9MC8cavins390n(QW)Ut)17rubk4p(DJoeorz(QXd0XNYrZmm8Pa0RiD(35FN878VZX68VtulVUI(vqDLFCR87kQ)4wjfx7UQDDLAnidWZ3iaHHLoftAmIZxZX14b64d7Od4tbOxr68VtCDYVtCDowN46e1o)R1qZulhr6Ogp0dto8Pa0RiD(3jUo53jUohRtCDIAN)1A8qpm5qHreRZ)gp0dtUoQXd9WK7fMI0yeG(T3GhgOh(CHgO3O8ZdG0WHcqVIuRXd9WKl0VjDYVbedtBAkdcKyNwrrosrQ1q7qzjenM0GZx8I0W0BY1NgKb45tfIwHR1jF(nmzPXlauH0Wn6q4eL5Rgp0dtUrqhFyhDOrqb0yn0ynubfapqpcxQJpqp)3iZStROixrAq4sDXnRbHl1f3m)lqm8AqgeaGjCt6Kpour)y1ASFWnjSdAWohRHlAmJBN)4W1q7qz9PblVHCAff5iD(3qZ0wcXGNjyD(3GmapFiYslFsduyMC7qhbnoWWCZiOXJa9Xr(Ge0sxW0q0qKLw(ecAX4ndpjHhUAtAGPjdaq8qKLgNYU1qfua8a9cUuhF16CSI0GmapF8OXmUDYVXs377eX60v(nWZ9(orSovnF(nGoMMYifPHMPTI0aJM4KjgDRpnCYeJU1Ghb6JJ8bjFNOOPmIFH5dMim1FAm)9DIIMY(EG33UIFcXqKLw(KuxffMj3o0rqdTrzZOmcAOXJkqb5vkVtkRMg4cEeOpoYhK8DIIMYi(fMpyIWu)PX833jkAk77bEFpk(jedrwA5tsDvuyMC7qhbn0gLnJYiOHgpQafKxP8oPSAAGlG5dMim1F7uMTomFWeHP(BNYSeI(nzDy(Gjct93oLzj7aqfcO3Aa94rG(4iFqY3jkAkJ4xy(Gjct9NgZFFNOOPSptwA(zTfJxkZsnnWf8iqFCKpi57efnLr8lmFWeHP(tJ5VVtu0u2Njln)eIXlLzPcZhmryQ)2PmBDy(Gjct93oLzje9BY6R6gDiCIY81QPbUGhb6JJ8bjFNOOPmIFH5dMim1FAm)9DIIMY(mzP5NqSGleJ6I79DIyPYFDqpv)NwTAn2PmJxaOcPHB0HWjkZxnicWUkPAM1aXTkB8ap8Pa0RiDYVtCFON)VRRKYk8rpQUI7DtPZXkVPm2yRGd9OUcouhlf0JEurF3vTRUwRXWrvoHqu5joAIMY6e1gauiwrAyqaHz8lsJTmGPlsTAnYejzqShOzasFAKjsctulxFAyqaHzfPXwgW0fPwTgzIKOw4QDaK(0WbasifPbrZuaKgQKdo5yCOmR1GmiofPbrZuaKo)R1itKegCt6tJmrsCaGesh14GosrASLbmDrQvRbMEFx7Kbm8ksJTmGPlsTAnYejHmioDuJb1dgeqywrASLbmDrQvRXo0X0uwrASLbmDrQvRXrbKI0yldy6IuRwTgNOOPme8gKgW8bFGxdIbD8r6tdtwA5tAWJcaKqAyYsJxkZA8A5WjeIlq8A8gLU1jUVXAqgGNVoQHP3KJxkZAWbMAHz5tAqgGNp8Pa0RiD(3jUo53jUohRtC1AGPjQQmZX0QLgqgEnCYeJUHilTg7zMJPPSutwpz9H0axa6b6b6b6P3b9ga9GmmqVbqpW3VgqpCGEqggO3aOh47xZpONXvyGENy5Jb6na6jmmWfGEGEGEGENy5Jb6TwRf4cHHbUaCb4cWfGlaxaUaCrdOJPvliNwrrU0PysNQ(hxdtwAH(nPZF03WoTIICfPHtMy0TedVbPbXGwM0itKKnO5WvW8FMj9PrMijoCHNIq6tJmrsYmT1rniCPU4M1GWL6IBg(ukag1fwdYGaamHBsNP4kF(8B4WfEkcjHoih0OxJX3AA4WfEkcPXFJmrsozdQzAMsFAKzIAHznGzJ2itKecxQlUzDuJtGaXGaamHBsdo1kCnqp6oO34GUWAiQfM1aFkfaJ6cd0tLhv5ecb0l1yqaasRrMijKbbayc3KoQHOwygPb(UtFehijC6ETtEPkFnrsq3Kxu4e5L)FnUgoCfhFnYdyqtAy4ninig0YKgozIr3s4QXKgozIr3Q1GmapFPRVJE9PXd9WKZ9(orSorTbxrRW1kVPGkQOY31vs5h9U(Zh1X(7UQr9DBy6n54faQqAKU7PB8vH)DN(R3JOcuWF87gDiCIY8vJhOJpLJMzy4tbOxr68VZ)o535FNJ15FNOwEDf9RG6k)4w53vu)XTskU2Dv76k1AqgGNVracdlDkM0yeNVMJRXd0Xh2rhWNcqVI05FN46KFN46CSoX1jQD(xRHMPwoI0rnEOhMC4tbOxr68VtCDYVtCDowN46e1o)R14HEyYHcJiwN)nEOhMCDuJh6Hj3lmfPXia9BVbpmqp85cnqVr5NhaPHdfGEfPwJh6HjxOFt6KFdigM20ugeiXoTIICKIuRH2HYsiAmPbNV4fPHP3KRpnidWZNkeTcxRt(8ByYsJxaOcPHB0HWjkZxnEOhMCJGo(Wo6qJGcOXAOXAWjDCnYm70kkYvKgeUuxCZAq4sDXndFkfaJ6cRbzqaaMWnPZuCLpF(1ASFWnjSdAWohRHlAmJBN)4W1q7qz9PblVHCAff5iD(3qZ0wcXGNjyD(3GmapFiYslFsduyMC7qhbnoWWCZiOXJa9Xr(Ge0sxW0q0qKLw(ecAX4ndpjHhUAtAGPjdaq8qKLgNYU1a0tvpuRtulsdtwA8cavinCJoeorz(QXs377eX60v(nWZ9(orSovnF(nEOhMC4tbOxr68VtCDYVtCDowN46e1o)R1a6yAkJuKgAM2ksdmAItMy0T(0Wjtm6wdEeOpoYhK8DIIMYi(fMpyIWu)PX833jkAk77bEF7k(jedrwA5tsDvuyMC7qhbn0gLnJYiOHgpQafKxP8oPSAAGl4rG(4iFqY3jkAkJ4xy(Gjct9NgZFFNOOPSVh499O4NqmezPLpj1vrHzYTdDe0qBu2mkJGgA8OcuqELY7KYQPbUaMpyIWu)Ttz26W8bteM6VDkZsi63K1H5dMim1F7uMLSdaviGERb0Jhb6JJ8bjFNOOPmIFH5dMim1FAm)9DIIMY(mzP5N1wmEPml10axWJa9Xr(GKVtu0ugXVW8bteM6pnM)(orrtzFMS08tigVuMLkmFWeHP(BNYS1H5dMim1F7uMLq0VjRVQB0HWjkZxRMg4cEeOpoYhK8DIIMYi(fMpyIWu)PX833jkAk7ZKLMFcXcUqmQlU33jILk)1b9u9FA1Q1yNYmEbGkKgUrhcNOmF1Gia7QKQzwde3QSXd8WNcqVI05FN4(qp)FxxjLv4JEuDf37MsN878VwJHJQCcHOYtC0enL1jQnaOqSI0WGacZ4xKgBzatxKA1AKjsYGypqZaK(0itKeMOwU(0WGacZksJTmGPlsTAnYejrTWv7ai9PHdaKqksdIMPainujhCYX4qzwRbzqCksdIMPaiD(xRbMEFx7Kbm8ksJTmGPlsTAnYejXbasiDuJJcifPXwgW0fPwTgzIKWGBsFAKjsczqC6Og7qhttzfPXwgW0fPwTgdQhmiGWSI0yldy6IuRwJd6ifPXwgW0fPwTAnorrtzi4ninG5d(aVged64J0NgMS0YN0GhfaiH0WKLgVuM141YHtiexG414nkDRtCFJ1W0BYXlLzn4atTWS8jnidWZh(ua6vKo)7exN87exNJ1jUAnCOa0Ri1A4KjgDdrwAn2ZmhttzPMSEY6dPbUa0d0d0d0tVd6na6bzyGEdGEGVFnGE4a9GmmqVbqpW3VMFqpJRWa9oXYhd0Ba0tyyGla9a9a9a9oXYhd0BTwlWfcddCb4cWfGlaxaUaCb4IgqhtRwqoTIICPtXKov9pUgMS0c9BsN)OVHDAff5ksdNmXOBjgEdsdIbTmPrMijBqZHRG5)mt6tJmrsC4cpfH0NgozIr3s4QXKgozIr3Ay4ninig0YKgoCfhFnYdyqtA4WfEkcPXFdrTWmsd8DN(ioqs409AN8sv(AIKGUjVOWjYl))ACnC4cpfHKqhKdA0RX4BnnYej5KnOMPzk9PrMjQfM1aMnAJmrsiCPU4M1rne1cZAGpLcGrDHb6PYJQCcHa6LAmiaaP14eiqmiaat4M0GtTcxd0JUd6noOlSgzIKqgeaGjCt6OgeUuxCZAq4sDXnZ)cedVgKbbayc3KotXv(853itKKmtBDuTgKb45lD9D0RpnW0KbaiEiYsJtz3AWjDCnidWZhIS0YN0afMj3o0rqJdmm3mcA8iqFCKpibT0fmnenezPLpHGwmEZWts4HR2KgAM2sig8mbRZ)gCfTcxR8McQOIkFxxjLF076pFuh7V7Qg13THP3KJxaOcPr6UNUXxf(3D6VEpIkqb)XVB0HWjkZxnEOhMCU33jI1jQnidWZ3iaHHLoftAmIZxZX14b64d7Od4tbOxr68VtCDYVtCDowN46e1o)R1GL3qoTIICKo)BODOS(0WfnMXTZFC4A8qpm56Ogp0dtUxyksJra63EdEyGE4ZfAGEJYppasJmZoTIICfPbHl1f3SgeUuxCZ8VaXWRbzqaaMWnPZuCLpF(1A8qpm5c9BsN8BOXAWjDCGE(VH2HYsiAmPbNV4fPbzaE(uHOv4ADYNFdYa88XJgZ42j)gp0dtUrqhFyhDOrqb0ynW0evvM5yA1sdidVgpqhFkhnZWWNcqVI05FN)DYVZ)ohRZ)orT86k6xb1v(XTYVRO(JBLuCT7Q21vQ1y)GBsyh0GDowdtVjxFAaXW0MMYGaj2PvuKJuKAn0m1YrKoQXd9WKdfgrSo)BqgGNVoQwNUwKgMS04faQqA4gDiCIY8vJhOJpLJMzy4tbOxr68VZ)o535FNJ15FNOwEDf9RG6k)4w53vu)XTskU2Dv76k1AStzgVaqfsd3OdHtuMVAqeGDvs1mRbIBv24bE4tbOxr6KFN4(qp)FxxjLv4JEuDf37MsTgdhv5ecrLN4OjAkRtuBaqHyfPHbbeMXVin2YaMUi1Q1itKKbXEGMbi9PrMijmrTC9PHbbeMvKgBzatxKA1AKjsIAHR2bq6tdhaiHuKgentbqAOso4KJXHYSwdYG4uKgentbq68VwJmrsyWnPpnYejXbasiDuJd6ifPXwgW0fPwTgy69DTtgWWRin2YaMUi1Q1itKeYG40rngupyqaHzfPXwgW0fPwTg7qhttzfPXwgW0fPwTghfqksJTmGPlsTA1ACIIMYqWBqAaZh8bEnig0XhPpnmzPLpPbpkaqcPHjlnEPmRXRLdNqiUaXRbzaE(6OgMEtoEPmRbhyQfMLpPbzaE(WNcqVI05FN46KFN46CSoXvRbMMOQYmhtRwAaz41Wjtm6gIS0ASNzoMMYsnz9K1hsdCbOhOhOhONEh0Ba0dYWa9ga9aF)Aa9Wb6bzyGEdGEGVFn)GEgxHb6DILpgO3aONWWaxa6b6b6b6DILpgO3ATwGlegg4cWfGlaxaUaCb4cWfnYm70kkYvKgeUuxCZAq4sDXndFkfaJ6cRbzqaaMWnPt(4WHJVR1AaDmTAb50kkYLoft6u1)4AyYsl0VjD(J(g2PvuKRinYejzdAoCfm)NzsFAKjsIdx4PiK(0Wjtm6wIH3G0GyqltAKjssMPToQHdx4PiKg)nC4ko(AKhWGM0WWBqAqmOLjne1cZinW3D6J4ajHt3RDYlv5Rjsc6M8IcNiV8)RX1Gmiaat4M0jFC4WX31goCHNIqsOdYbn61y8TMgzIKCYguZ0mL(0iZe1cZAaZgTrMijeUuxCZ6OgIAHznWNsbWOUWa9u5rvoHqa9sngeaG0ACceigeaGjCtAmsGougOhDh0tvQpllnYejHmiaat4M0rniCPU4M1GWL6IBg(ukag1fwdNmXOBjC1ysdNmXOB1AqgGNV013rV(04HEyY5EFNiwNO24HEyYHcJiwN)n0mTLqm4zcwN)nm9MC8cavins390n(QW)Ut)17rubk4p(DJoeorz(QbedtBAkdcKyNwrrosrQ1GmapFJaegw6umPXioFnhxJhOJpSJoGpfGEfPZ)oX1j)oX15yDIRtu78VwdwEd50kkYr68Vb0X0ugPin0mTvKgy0eNmXOB9PHtMy0Tg8iqFCKpi57efnLr8lmFWeHP(tJ5VVtu0u23d8(2v8tigIS0YNK6QOWm52HocAOnkBgLrqdnEubkiVs5Dsz10axWJa9Xr(GKVtu0ugXVW8bteM6pnM)(orrtzFpW77rXpHyiYslFsQRIcZKBh6iOH2OSzugbn04rfOG8kL3jLvtdCbmFWeHP(BNYS1H5dMim1F7uMLq0VjRdZhmryQ)2PmlzhaQqa9wdOhpc0hh5ds(orrtze)cZhmryQ)0y(77efnL9zYsZpRTy8szwQPbUGhb6JJ8bjFNOOPmIFH5dMim1FAm)9DIIMY(mzP5NqmEPmlvy(Gjct93oLzRdZhmryQ)2PmlHOFtwFv3OdHtuMVwnnWf8iqFCKpi57efnLr8lmFWeHP(tJ5VVtu0u2Njln)eIfCHyuxCVVtelv(Rd6P6)0QvRHlAmJBN)RGRXd9WKRJA8qpm5EHPingbOF7n4Hb6HpxOb6nk)8ainEOhMCH(nPt(n0ouwcrJjn48fVinidWZhIS0YN0afMj3o0rqJdmm3mcA8iqFCKpibT0fmnenezPLpHGwmEZWts4HR2KgKb45tfIwHR1jF(nidWZhpAmJBN8B8qpm5gbD8HD0HgbfqJ1W0BY1NgASgJeOdLb6H)4A4qbOxrQ1y)GBsyh0GDowJh6Hjh(ua6vKo)7exN87exNJ1jUorTZ)An0ouwFAOzQLJiDudmnzaaIhIS04u2TgGEQ6HgVrPBDI7BSADUsrAyYsJxaOcPHB0HWjkZxnEOhMC4tbOxr68VtCDYVtCDowN46e1o)R1a6yAkJuKgAM2ksdmAItMy0T(0Wjtm6wdEeOpoYhK8DIIMYi(fMpyIWu)PX833jkAk77bEF7k(jedrwA5tsDvuyMC7qhbn0gLnJYiOHgpQafKxP8oPSAAGl4rG(4iFqY3jkAkJ4xy(Gjct9NgZFFNOOPSVh499O4NqmezPLpj1vrHzYTdDe0qBu2mkJGgA8OcuqELY7KYQPbUaMpyIWu)Ttz26W8bteM6VDkZsi63K1H5dMim1F7uMLSdaviGERb0Jhb6JJ8bjFNOOPmIFH5dMim1FAm)9DIIMY(mzP5N1wmEPml10axWJa9Xr(GKVtu0ugXVW8bteM6pnM)(orrtzFMS08tigVuMLkmFWeHP(BNYS1H5dMim1F7uMLq0VjRVQB0HWjkZxRMg4cEeOpoYhK8DIIMYi(fMpyIWu)PX833jkAk7ZKLMFcXcUqmQlU33jILk)1b9u9FA1Q1yNYmEbGkKgUrhcNOmF1Gia7QKQzwde3QSXd8WNcqVI05FN4(qp)FxxjLv4JEuDf37MsN878VwJHJQCcHOYtC0enL1jQnaOqSI0WGacZ4xKgBzatxKA1AKjsYGypqZaK(0itKeMOwU(0WGacZksJTmGPlsTAnYejrTWv7ai9PHdaKqksdIMPainujhCYX4qzwRbzqCksdIMPaiD(xRbMEFx7Kbm8ksJTmGPlsTAnYejXbasiDuJd6ifPXwgW0fPwTgzIKWGBsFAKjsczqC6Og7qhttzfPXwgW0fPwTgdQhmiGWSI0yldy6IuRwJJcifPXwgW0fPwTAnorrtzi4ninG5d(aVged64J0NgMS0YN0GhfaiH0WKLgVuM141YHtiexG41W0BYXlLzn4atTWS8jnidWZh(ua6vKo)7exN87exNJ1jUAnCYeJUHilTg7zMJPPSutwpz9H0axa6b6b6b6P3b9ga9GmmqVbqpW3VgqpCGEqggO3aOh47xZpONXvyGENy5Jb6na6jmmWfGEGEGEGENy5Jb6TwRf4cHHbUaCb4cWfGlaxaUaCrJmZoTIICfPbHl1f3SgeUuxCZ8VaXWRbzqaaMWnPt(4WHJVR1AaDmTAb50kkYLoft6u1)4AyYsl0VjD(J(g2PvuKRinYejzdAoCfm)NzsFAKjsIdx4PiK(0Wjtm6wIH3G0GyqltAKjssMPToQbHl1f3SgeUuxCZ8VaXWRHtMy0TeUAmPHtMy0TgoCHNIqsOdYbn61y8TMggEdsdIbTmPrMijNSb1mntPpnYmrTWSgWSrBKjscHl1f3SoQXjqGyqaaMWnPXib6qzGE0DqpvP(SS0qulmRb(ukag1fgONkpQYjecOxQXGaaKwJmrsidcaWeUjDudrTWmsd8DN(ioqs409AN8sv(AIKGUjVOWjYl))ACnC4ko(AKhWGM0WHl8uesJ)gKbbayc3Ko5Jdho(UwRbzaE(sxFh96tJ3O0ToX9nwdYa88HilT8jnqHzYTdDe04adZnJGgpc0hh5dsqlDbtdrdrwA5tiOfJ3m8KeE4QnPbzaE(6OgMEtoEbGkKgP7E6gFv4F3P)69iQaf8h)UrhcNOmF1qJ1yKaDOmqp)3GmapFJaegw6umPXioFnhxJhOJpSJoGpfGEfPZ)oX1j)oX15yDIRtu78VwdntTCePJA8aD8PC0mddFka9ksN)D(3j)o)7CSo)7e1YRROFfux5h3k)UI6pUvsX1URAxxPwJh6Hjxh14HEyY9ctrAmcq)2BWdd0dFUqd0Bu(5bqA8qpm5CVVteRtuB8qpm5c9BsN8BaXW0MMYGaj2PvuKJuKAn0ouwcrJjn48fVinidWZhpAmJBN8BqgGNpviAfUwN853W0BY1Ngp0dtUrqhFyhDOrqb0ynW0evvM5yA1sdidVg7hCtc7GgSZXA4IgZ425)k4AODOS(0WHcqVIuRblVHCAff5iD(3qZ0wcXGNjyD(3attgaG4HilnoLDRXib6qznEOhMCOWiI15FTorFrAyYsJxaOcPHB0HWjkZxnWZ9(orSovTRP0yNYmEbGkKgUrhcNOmF14bE4tbOxr68VtCDYVtCFON)VRRKYk8rpQUI7DtPZX68VwdakeRinmiGWSI0yldy6IuRwdYG4uKgentbq68VXwgW0fPt(DuTAngupyqaHzfPXwgW0fPwTgzIK4aajKoQXrbKI0yldy6IuRwJmrsidIth1yh6yAkRin2YaMUi1Q1WbasifPbrZuaKgQKdo5yCOmR1atVVRDYagEfPXwgW0fPwTgh0rksJTmGPlsTA1ACIIMYqWBqAaZh8bEnig0XhPpn0mTL4q3gaetW68VHjlT8jn4rbasinmzPXlLznETC4ecXfiEnidWZxh1W0BYXlLznETC4ecXfiEnEOhMCOWiI15FdNmXOBiYsRXEM5yAkl10axa6b6b6b6DILpgOxQRQQ)WT7d0B8a0tv)HB33QP5ND6TbTurhtBPdzWuxDaaINCRMgO34bO3poC4wh0dDmTLoKbthUm1vhaG4j3QPb6nEa69JdhU0aximmqpWfGlAaDmTAb50kkYLoft6u1)4AGPjdaq8qKLgNYU1qv70WoTIICfPHH3G0Wjtm6wdNmXOBjC1ysdtVjynCYeJULy4ninig0YKgozIr3ASNzoMMYsnnWfGEGEGEGENy5Jb6zxwaximmWfGlaxaUaCrdNmXOBJlFqttzn2ZmhttzPMg4cqpqpqpqpaQdea0BBa0BnGEBqJ73gCzQ4wh0dDmTLoKbtD1baiEYTAAPb6nEa6TbnUFBWLP(VoOh6yAlDidMoCzQRoaaXtUvtlnqVXtqVFC4axa6b6b6b6DILpgO32W6)4WTUDzbCHWWA4KjgDBc3Kg7zMJPPSutdCbOhOhOhOha1bca6Tna6TgqVnOX9BdUmvCRd6HoM2shYGPU6aaep5wnT0a9gpa92Gg3Vn4Yu)xh0dDmTLoKbthUm1vhaG4j3QPLgO34jO3poCGla9a9a9a9oXYhd0JyNMP8TtVnOL6QQ6V9vxh0BBinWfcdRHOwygPb6MOGKOs388Y)nC4ko(AiQfMvRbzaE(WNcqVI05FN46KFN46CSoXvRbzaE(qKLw(KgOWm52HocACGH5MrqJhb6JJ8bjOLUGPHOHilT8je0IXBgEscpC1M0GROv4ADogUgMEtoEbGkKgUrhcNOmF14b64d7Od4tbOxr68VtCDYVtCDowN46e1o)R1GL3qoTIICKo)B8qpm5gbD8HD0HgbfqJ14HEyY1rnEOhMCVWuKgJa0V9g8Wa9WNl0a9gLFEaKgUOXmUDYhvCnEOhMCH(nPt(nmzPf63Ko5JAdnwdvHQqvOkufQcvHQqvKoKbBqgGNpE0yg3o53W0BYf63Ko5JAdmnzaaIhIS08VwHR1qvZAGPjQQmZX0QLgqaGgqmmTPPmiqIDAff5ifPwJh6Hjh(ua6vKo)7exN87exNJ1jUorTZ)An2p4Me2bnyNJ1q7qz9PXd9WKZ9(orSorTwTgQ78hv()1Ab diff --git a/WA codes/Hunter Focus (WA CODE).txt b/WeakAuras/Exports/Hunter Focus (WA CODE).txt similarity index 99% rename from WA codes/Hunter Focus (WA CODE).txt rename to WeakAuras/Exports/Hunter Focus (WA CODE).txt index 20555b0..e01cb77 100644 --- a/WA codes/Hunter Focus (WA CODE).txt +++ b/WeakAuras/Exports/Hunter Focus (WA CODE).txt @@ -1 +1 @@ -dye0taqicOfPcDjcGrbGtPsAvkQOzPs0Tae7sO4xkQWWuPoMQyzcQNrGMMkQRHuABeQ6BQeACkQ05aOCpvcoOa1crQ8qaPjcqLlsOSrfvnsHsDsbPvQImtck3eGStL6NkkgQIslvOKNsAQsCva1xjuzUcK9s9xKQgmrhgvlwf8yKmzGUSuBwv6ZkYOjKtJYQja9AKIzlYTvv7wj)wHHlKJdqvlh0ZL00HUUO2ob57cIXlGZluTEcQ2pI9Jlw5Uy0A1A4yemMlA9Bf0kOlw5uitOUazttneqdW2BG8CBTdeXxGnOPZA8zEFRn6nqcFFBf2tSXQepQTobh5iR1o9o7GTqR0ntPmdGeMyZxSYaTkqbkqbkqbkqbkqbkqRGSQaMxuitO2kpLSUY)cKnn1WQ3pwtdoOlwrEQxOlw)5eYCXOrRujET6I1kBnLARXg4DrSyz0AU20tL41QveMBRqov7I1FoHmxmA0AKqrip1l0fR)CczUy0O1xofYglxS(ZjK5IrJwHJu7I1FoHmxmA0ki79LrLtyCxS(ZjK5IrJgnALYfVFCXAnIdPrCmquK3HT(ow48j(u16maxewOBXSEGdb6inGU4Dyp)CbS7NWcgo89zXpxAd)iE)ceAp7TGE(5cy3pHfmC47ZIFU0g(r8(fi0sRrRPbh0fRip1l0fR)CczUy0O1Aut5I1kBnLAVFS(ZjK5I3pMoVdB6mA0AU20tL41QPZkKt1Uy9NtiZfJgTgjueYt9cDX6pNqMlgnA9LtHSXYfR)CczUy0OvQeVwDXALTMsT1yd8UiwSS(ZjK5I1zdwybd4cDB6mA0ki79LrLtyCxS(ZjK5IrJwHJu7I1FoHmxmA0OvypXgRs8O2kpd5h4qRvKtrt1hSYwmKEQXpk1yd69JvSdGzyBvSKqahkrUhWVvSdGZpwO1GHmEIi3CiCeI1ddiydN59T2O3NTwJ4qAmDwr2VHZpwOvXceb7AneECR1ioKgGosdOlE)49T3H9(2Bb9(2O1ddiydPJtrdiCezvhjgOvQCfh)shaT(MxuiBSa4k5ersKejrcBmdxe5rIKijsIKijsIKijsIKijsI8irgtmejWlgo7iKgcWXOepEdpELCQxGw5uitOUazttneqdW2BG8CBfKvJs84LoakS(fTkauwriBAQHUyfJh1wPYvC8TsLR44tVigyBfz)g0kvUIJp9y8O2Af5yUATfQxy1kW7ql0p7mItSyzLkxXXhWLHCKnwwFZlkKnwaCLCIijsIKitdkEIi)re5fiYphffZNhaG7ljsGxmC2rineGJrjE8gE86vICoiYphffZNhaGNljsGxmC2rineq8aaCmkXJ3WJxVsKZjr(CFtorKejrsKPbfprK1OoL28FtKxGibEXqGYRiBnf66DaWXOepEdpELCIijsIKizVeznQtPn)3e5fUarEmy2Vbjsv0apsKOOErK)iI8ce5pIibcrs7nr2lqYjIKijsIe2ygUiYF0Lp33xIWCto1lqRu5ko(B(VT(MxuiBSa4k5ersKejrMgu8er(JiYlqKFokkMppaa3xsKaVy4SJqAiahJs84n841Re5CqKFokkMppaapxsKaVy4SJqAiG4ba4yuIhVHhVELiNtI85(MCIijsIKiHnMHlISIq2AkM3b8ZraokaX8E8sI8hDLCQxGwPYvC8T(MxuiBSa4k5ersKejrcBmdxejcZn5uVajNiNiNiNiNSsjQPOXAocKJTrRi73qLj827WNTwJ4qAkDamdBRHUWg(YP6GcgeCMvniX1CAcod51GaudY4bv6ayg21GuaFMdB6fNig2wr2VH(GvK9B48j(u16maxewOBXSEGtrdiCeb0rAaDX7hVV9oS33ElO33EF27hJwzGwJDEHnKiXUIejkITMSUY)cKnn1WQ3pwXoaQmH3Eh(Svg1y5dwpmGGnumWP2kDjMWfohcsKavehjs6YhoKARHWarrE)ay0A9Wac2qLj827WwpmGGneOJ0a6I3pEF7DyVV9wqVV9(S3pgTYbbziBS4j6riBAQHvxmAf7a48j(u16maxewOBXScYQrjE8shaJfBseAvawwbzvbmVOqMqTvEkz9fY)TIqoY9(S1dCkAMGJ8ceOJ0a6I3N9(2OvrnBse6D4BRhgqWgg6Q2O3pg9oSlwRrCinIJbII8oS13XcNpXNQwNb4IWcDlM1dCiqhPb0fVF88NPfWEaSBAP9o85hXdyxu8(fi0E27WEEXh(r8xuqbf)TGHVy4WpN9lqOvqVf0ZpxANRGck4ZnTNP95IZDUI3VaHwb9(S33XqRrRPbh0fRip1l0fR)CczUy0O1Aut5I1kBnLAVFS(ZjK5I3pMoVdB6mA0ki79LrLtyCxS(ZjK5IrJwHCQ2fR)CczUy0O1xofYglxS(ZjK5IrJwJekc5PEHUy9NtiZfJgTchP2fR)CczUy0O1CTPNkXRvtNvQeVwDXALTMsT1yd8UiwSS(ZjK5I1zdwybd4cDB6mA0OvypXgRs8O2kpd5h4qRvKtrt1hSYwmKEQXpk1yd69JvSdGzyBvSKqahkrUhWVvSdGZpwOvXceb7AneECRhgqWgoZ7BTrVpBTgXH0y6SISFdNFSqRIfic21Ai84wpmGGnm0vTrVFSEyabBiDCkAaHJiR6iXaTsLR44x6aO138IczJfaxjNisIKijsyJz4IipsKejrsKejrsKejrsKejrsKhjYyIHibEXWzhH0qaogL4XB4XRKt9c0kNczc1fiBAQHaAa2EdKNBRGSAuIhV0bqH1VOvbGYkczttn0fRy8O2kvUIJVvQCfhF6fXaBRi73GwPYvC8PhJh1wRihZvRTq9cRwbEhAH(zNrCIflRu5ko(aUmKJSXY6BErHSXcGRKtejrsKezAqXte5pIiVar(5OOy(8aaCFjrc8IHZocPHaCmkXJ3WJxVsKZbr(5OOy(8aa8Cjrc8IHZocPHaIhaGJrjE8gE86vICojYN7BYjIKijsIe2ygUiYF0Lp33xIWCto1lqRu5ko(B(VT(MxuiBSa4k5ersKejrMgu8er(JiYlqKFokkMppaa3xsKaVy4SJqAiahJs84n841Re5CqKFokkMppaapxsKaVy4SJqAiG4ba4yuIhVHhVELiNtI85(MCIijsIKiHnMHlISIq2AkM3b8ZraokaX8E8sI8hDLCQxGwPYvC8T(MxuiBSa4k5ersKejrcBmdxejcZn5uVajNiNiNiNiNSsjQPOXAocKJTrRyha9bRCqqgYglEIEeYMMAy1fJwzuJLpyfz)g6dwr2VHZN4tvRZaCryHUfZ6bofnGWreqhPb0fVF8(27WEF7TGEF79zVFmAvuZMeHEh(2AnIdPbOJ0a6I3pEF7DyVV9wqVVnADL)fiBAQHvVFSIDauzcV9o8zRhgqWgA6SEyabBOyGtTv6smHlCoeKibQiosK0LpCi1wdHbII8(bWO16HbeSHkt4T3HTcYQcyErHmHAR8uYkd0ASZlSHej2vKirrS1erkOvSdGZN4tvRZaCryHUfZkiRgL4XlDamwSjrOvbyzfz)gQmH3Eh(S1xi)3kc5i3BbTEyabBiqhPb0fVF8(27WEF7TGEF79zVFmA9aNIMj4iVab6inGU49zVVnATgXH0u6ayg2wdDHn8Lt1bfmi4mRAqIR50eCgYRbbOgKXdQ0bWmSRbPa(mh20lormSn6TGUynWmVV1g9giHP1kd0ASZlSHej2vKirrS1er(yf2tSXQepQTIDamdBRuJ0a6I3N9(XOvofYeQlq20udb0aS9gip3wXoaMHT1qxydF5uDqbdcow1GexZPj4mKxdA2rinm4mKxbudY4bfCgYRbfCgYV4zRGSQaMxuitO2kpLSIq20udDXkgpQTwroMRwPYvC8PhJh1wRihZvR5vluVqR8moSsLR44tVigyBfz)g0kLOMIgR5iqo2wZ1M(8IHMoJwFH8FRiKJCVpBnegikYBATUY)cKnn1WQ3pwf1SjrO30EBnn4GUyf5PEHUy9NtiZfJgTsL41QlwRS1uQTgBG3fXILrR5AtpvIxRMoRqov7I1FoHmxmA0AKqrip1l0fR)CczUy0O1xofYglxS(ZjK5IrJwHJu7I1FoHmxmA0ki79LrLtyCxS(ZjK5IrJgn69zxScYQcyErHmHAR8uYkd0ASZlSHej2vKirrS1erg2kSNyJvjEuBf7ayg2wPgPb0fVp79JrRCkKjuxGSPPgcOby7nqEUTIDamdBRHUWg(YP6GcgeCSQbjUMttWziVg0SJqAyWziVcOgKXdk4mKxdk4mKFXZwdmZ7BTrVP92kczttn0fRy8O2Af5yUAnVAH6fALNXHvQCfhF6X4rT1kYXC1kvUIJp9IyGTvK9BqRuIAkASMJa5yBnxB6ZlgA6mA9fY)TIqoY9(S1qyGOiVP16k)lq20udRE)yvuZMeHEt7T10Gd6IvKN6f6I1FoHmxmA0kvIxRUyTYwtP2ASbExelwgTMRn9ujETA6SchP2fR)CczUy0O1iHIqEQxOlw)5eYCXOrRVCkKnwUy9NtiZfJgTc5uTlw)5eYCXOrRGS3xgvoHXDX6pNqMlgnA0OrRc59Z5WpgTb +dye0taqicOfPcDjcGrbGtPsAvkQOzPs0Tae7sO4xkQWWuPoMQyzcQNrGMMkQRHuABeQ6BQeACkQ05aOCpvcoOa1crQ8qaPjcqLlsOSrfvnsHsDsbPvQImtck3eGStL6NkkgQIslvOKNsAQsCva1xjuzUcK9s9xKQgmrhgvlwf8yKmzGUSuBwv6ZkYOjKtJYQja9AKIzlYTvv7wj)wHHlKJdqvlh0ZL00HUUO2ob57cIXlGZluTEcQ2pI9Jlw5Uy0A1A4yemMlA9Bf0kOlw5uitOUazttneqdW2BG8CBTdeXxGnOPZA8zEFRn6nqcFFBf2tSXQepQTobh5iR1o9o7GTqR0ntPmdGeMyZxSYaTkqbkqbkqbkqbkqbkqRGSQaMxuitO2kpLSUY)cKnn1WQ3pwtdoOlwrEQxOlw)5eYCXOrRujET6I1kBnLARXg4DrSyz0AU20tL41QveMBRqov7I1FoHmxmA0AKqrip1l0fR)CczUy0O1xofYglxS(ZjK5IrJwHJu7I1FoHmxmA0ki79LrLtyCxS(ZjK5IrJgnALYfVFCXAnIdPrCmquK3HT(ow48j(u16maxewOBXSEGdb6inGU4Dyp)CbS7NWcgo89zXpxAd)iE)ceAp7TGE(5cy3pHfmC47ZIFU0g(r8(fi0sRrRPbh0fRip1l0fR)CczUy0O1Aut5I1kBnLAVFS(ZjK5I3pMoVdB6mA0AU20tL41QPZkKt1Uy9NtiZfJgTgjueYt9cDX6pNqMlgnA9LtHSXYfR)CczUy0OvQeVwDXALTMsT1yd8UiwSS(ZjK5I1zdwybd4cDB6mA0ki79LrLtyCxS(ZjK5IrJwHJu7I1FoHmxmA0OvypXgRs8O2kpd5h4qRvKtrt1hSYwmKEQXpk1yd69JvSdGzyBvSKqahkrUhWVvSdGZpwO1GHmEIi3CiCeI1ddiydN59T2O3NTwJ4qAmDwr2VHZpwOvXceb7AneECR1ioKgGosdOlE)49T3H9(2Bb9(2O1ddiydPJtrdiCezvhjgOvQCfh)shaT(MxuiBSa4k5ersKejrcBmdxe5rIKijsIKijsIKijsIKijsI8irgtmejWlgo7iKgcWXOepEdpELCQxGw5uitOUazttneqdW2BG8CBfKvJs84LoakS(fTkauwriBAQHUyfJh1wPYvC8TsLR44tVigyBfz)g0kvUIJp9y8O2Af5yUATfQxy1kW7ql0p7mItSyzLkxXXhWLHCKnwwFZlkKnwaCLCIijsIKitdkEIi)re5fiYphffZNhaG7ljsGxmC2rineGJrjE8gE86vICoiYphffZNhaGNljsGxmC2rineq8aaCmkXJ3WJxVsKZjr(CFtorKejrsKPbfprK1OoL28FtKxGibEXqGYRiBnf66DaWXOepEdpELCIijsIKizVeznQtPn)3e5fUarEmy2Vbjsv0apsKOOErK)iI8ce5pIibcrs7nr2lqYjIKijsIe2ygUiYF0Lp33xIWCto1lqRu5ko(B(VT(MxuiBSa4k5ersKejrMgu8er(JiYlqKFokkMppaa3xsKaVy4SJqAiahJs84n841Re5CqKFokkMppaapxsKaVy4SJqAiG4ba4yuIhVHhVELiNtI85(MCIijsIKiHnMHlISIq2AkM3b8ZraokaX8E8sI8hDLCQxGwPYvC8T(MxuiBSa4k5ersKejrcBmdxejcZn5uVajNiNiNiNiNSsjQPOXAocKJTrRi73qLj827WNTwJ4qAkDamdBRHUWg(YP6GcgeCMvniX1CAcod51GaudY4bv6ayg21GuaFMdB6fNig2wr2VH(GvK9B48j(u16maxewOBXSEGtrdiCeb0rAaDX7hVV9oS33ElO33EF27hJwzGwJDEHnKiXUIejkITMSUY)cKnn1WQ3pwXoaQmH3Eh(Svg1y5dwpmGGnumWP2kDjMWfohcsKavehjs6YhoKARHWarrE)ay0A9Wac2qLj827WwpmGGneOJ0a6I3pEF7DyVV9wqVV9(S3pgTYbbziBS4j6riBAQHvxmAf7a48j(u16maxewOBXScYQrjE8shaJfBseAvawwbzvbmVOqMqTvEkz9fY)TIqoY9(S1dCkAMGJ8ceOJ0a6I3N9(2OvrnBse6D4BRhgqWgg6Q2O3pg9oSlwRrCinIJbII8oS13XcNpXNQwNb4IWcDlM1dCiqhPb0fVF88NPfWEaSBAP9o85hXdyxu8(fi0E27WEEXh(r8xuqbf)TGHVy4WpN9lqOvqVf0ZpxANRGck4ZnTNP95IZDUI3VaHwb9(S33XqRrRPbh0fRip1l0fR)CczUy0O1Aut5I1kBnLAVFS(ZjK5I3pMoVdB6mA0ki79LrLtyCxS(ZjK5IrJwHCQ2fR)CczUy0O1xofYglxS(ZjK5IrJwJekc5PEHUy9NtiZfJgTchP2fR)CczUy0O1CTPNkXRvtNvQeVwDXALTMsT1yd8UiwSS(ZjK5I1zdwybd4cDB6mA0OvypXgRs8O2kpd5h4qRvKtrt1hSYwmKEQXpk1yd69JvSdGzyBvSKqahkrUhWVvSdGZpwOvXceb7AneECRhgqWgoZ7BTrVpBTgXH0y6SISFdNFSqRIfic21Ai84wpmGGnm0vTrVFSEyabBiDCkAaHJiR6iXaTsLR44x6aO138IczJfaxjNisIKijsyJz4IipsKejrsKejrsKejrsKejrsKhjYyIHibEXWzhH0qaogL4XB4XRKt9c0kNczc1fiBAQHaAa2EdKNBRGSAuIhV0bqH1VOvbGYkczttn0fRy8O2kvUIJVvQCfhF6fXaBRi73GwPYvC8PhJh1wRihZvRTq9cRwbEhAH(zNrCIflRu5ko(aUmKJSXY6BErHSXcGRKtejrsKezAqXte5pIiVar(5OOy(8aaCFjrc8IHZocPHaCmkXJ3WJxVsKZbr(5OOy(8aa8Cjrc8IHZocPHaIhaGJrjE8gE86vICojYN7BYjIKijsIe2ygUiYF0Lp33xIWCto1lqRu5ko(B(VT(MxuiBSa4k5ersKejrMgu8er(JiYlqKFokkMppaa3xsKaVy4SJqAiahJs84n841Re5CqKFokkMppaapxsKaVy4SJqAiG4ba4yuIhVHhVELiNtI85(MCIijsIKiHnMHlISIq2AkM3b8ZraokaX8E8sI8hDLCQxGwPYvC8T(MxuiBSa4k5ersKejrcBmdxejcZn5uVajNiNiNiNiNSsjQPOXAocKJTrRyha9bRCqqgYglEIEeYMMAy1fJwzuJLpyfz)g6dwr2VHZN4tvRZaCryHUfZ6bofnGWreqhPb0fVF8(27WEF7TGEF79zVFmAvuZMeHEh(2AnIdPbOJ0a6I3pEF7DyVV9wqVVnADL)fiBAQHvVFSIDauzcV9o8zRhgqWgA6SEyabBOyGtTv6smHlCoeKibQiosK0LpCi1wdHbII8(bWO16HbeSHkt4T3HTcYQcyErHmHAR8uYkd0ASZlSHej2vKirrS1erkOvSdGZN4tvRZaCryHUfZkiRgL4XlDamwSjrOvbyzfz)gQmH3Eh(S1xi)3kc5i3BbTEyabBiqhPb0fVF8(27WEF7TGEF79zVFmA9aNIMj4iVab6inGU49zVVnATgXH0u6ayg2wdDHn8Lt1bfmi4mRAqIR50eCgYRbbOgKXdQ0bWmSRbPa(mh20lormSn6TGUynWmVV1g9giHP1kd0ASZlSHej2vKirrS1er(yf2tSXQepQTIDamdBRuJ0a6I3N9(XOvofYeQlq20udb0aS9gip3wXoaMHT1qxydF5uDqbdcow1GexZPj4mKxdA2rinm4mKxbudY4bfCgYRbfCgYV4zRGSQaMxuitO2kpLSIq20udDXkgpQTwroMRwPYvC8PhJh1wRihZvR5vluVqR8moSsLR44tVigyBfz)g0kLOMIgR5iqo2wZ1M(8IHMoJwFH8FRiKJCVpBnegikYBATUY)cKnn1WQ3pwf1SjrO30EBnn4GUyf5PEHUy9NtiZfJgTsL41QlwRS1uQTgBG3fXILrR5AtpvIxRMoRqov7I1FoHmxmA0AKqrip1l0fR)CczUy0O1xofYglxS(ZjK5IrJwHJu7I1FoHmxmA0ki79LrLtyCxS(ZjK5IrJgn69zxScYQcyErHmHAR8uYkd0ASZlSHej2vKirrS1erg2kSNyJvjEuBf7ayg2wPgPb0fVp79JrRCkKjuxGSPPgcOby7nqEUTIDamdBRHUWg(YP6GcgeCSQbjUMttWziVg0SJqAyWziVcOgKXdk4mKxdk4mKFXZwdmZ7BTrVP92kczttn0fRy8O2Af5yUAnVAH6fALNXHvQCfhF6X4rT1kYXC1kvUIJp9IyGTvK9BqRuIAkASMJa5yBnxB6ZlgA6mA9fY)TIqoY9(S1qyGOiVP16k)lq20udRE)yvuZMeHEt7T10Gd6IvKN6f6I1FoHmxmA0kvIxRUyTYwtP2ASbExelwgTMRn9ujETA6SchP2fR)CczUy0O1iHIqEQxOlw)5eYCXOrRVCkKnwUy9NtiZfJgTc5uTlw)5eYCXOrRGS3xgvoHXDX6pNqMlgnA0OrRc59Z5WpgTb diff --git a/WA codes/Icey bog(WA CODE).txt b/WeakAuras/Exports/Icey bog(WA CODE).txt similarity index 100% rename from WA codes/Icey bog(WA CODE).txt rename to WeakAuras/Exports/Icey bog(WA CODE).txt diff --git a/WA codes/JulijaButtons(WA CODE).txt b/WeakAuras/Exports/JulijaButtons(WA CODE).txt similarity index 100% rename from WA codes/JulijaButtons(WA CODE).txt rename to WeakAuras/Exports/JulijaButtons(WA CODE).txt diff --git a/WA codes/Necrotic Rot(WA CODE).txt b/WeakAuras/Exports/Necrotic Rot(WA CODE).txt similarity index 100% rename from WA codes/Necrotic Rot(WA CODE).txt rename to WeakAuras/Exports/Necrotic Rot(WA CODE).txt diff --git a/WA codes/Neki Bog(WA CODE).txt b/WeakAuras/Exports/Neki Bog(WA CODE).txt similarity index 100% rename from WA codes/Neki Bog(WA CODE).txt rename to WeakAuras/Exports/Neki Bog(WA CODE).txt diff --git a/WA codes/Prot Pala Crap (WA CODE).txt b/WeakAuras/Exports/Prot Pala Crap (WA CODE).txt similarity index 100% rename from WA codes/Prot Pala Crap (WA CODE).txt rename to WeakAuras/Exports/Prot Pala Crap (WA CODE).txt diff --git a/WA codes/Prot pala CD popups (WA CODE).txt b/WeakAuras/Exports/Prot pala CD popups (WA CODE).txt similarity index 100% rename from WA codes/Prot pala CD popups (WA CODE).txt rename to WeakAuras/Exports/Prot pala CD popups (WA CODE).txt diff --git a/WA codes/Prot pala CDS (WA CODE).txt b/WeakAuras/Exports/Prot pala CDS (WA CODE).txt similarity index 100% rename from WA codes/Prot pala CDS (WA CODE).txt rename to WeakAuras/Exports/Prot pala CDS (WA CODE).txt diff --git a/WA codes/Prydaz (WA CODE).txt b/WeakAuras/Exports/Prydaz (WA CODE).txt similarity index 99% rename from WA codes/Prydaz (WA CODE).txt rename to WeakAuras/Exports/Prydaz (WA CODE).txt index e59da27..820f835 100644 --- a/WA codes/Prydaz (WA CODE).txt +++ b/WeakAuras/Exports/Prydaz (WA CODE).txt @@ -1 +1 @@ -dWe3DaGiHkxsirFIqvgLqCksQvri5vsPQzPQ0Tqq2LqPFriLHHIogIwgQ0ZekMMuY1qq12KsfFtvrJtOkNtiPUhcK9HavCqeQfIcEOqQMiHQ6IiKnIs8reOmscPYjvvyLOqZKqCtPk2PQ8tcLHkKYsrq5PuMkKUQuL2kcu1xLsLgRqsMlcyVk)fLAWGomulwkEmetMexwYMvv9zu1OrjDArwTqcVwkLzlQBtWUj1VrA4sLJtivTCvEortNQRly7sv9DcvgpQ48KK1luvZhbQ0(bEKdDgEOZNjNXn2yI9ZzcZuMPm0zxXNOAuvD1m(Jg6MHr8u)c9s8811dvP2JqKmNvC6WALszmmtjjJIGgXt9Rz4CEwszw0ovk44ptLy))YY3JqrnZz6Ga6L45RtUh5mzL)JgnP9zmigkQy9icrSGoltXkdDMJZL2h6mHq2tdD(8zkP))esi7Qg6mHq2tdD(8zhgPg6mHq2tdD(8z)yepr1dDMqi7PHoF(SU(DooxAFOZeczpn05ZND0Cn0zcHSNg685ZcYInsglLRz(8zidDpYHoliRJTQ9yot6yK2Kwk(1EKXBwqwhBo7XCMss2LXQqlo(SOebW4SF6v8hnOvIontVHUh5EK7XDpY9IzpY9ATh58zsSqHwC8WvJHz)uTZsgZlNjwVOI8XJOzn4l60m9g6EC3JC(SJ6ypr17XCwMIvg6mhNlTp0zcHSNg685Zus))jKq2vn0zcHSNg685ZoAUg6mHq2tdD(8zD97CCU0(qNjeYEAOZNp7hJ4jQEOZeczpn05ZNDyKAOZeczpn05ZNpt64ZjwZNR9yod5OD7Xm2wKZKogPn5AM1KlTspuLAgdIq0t8NL0jNncvOlxEPSh5mV44HRM1U8zSuoZlooluTpRPWANkoDSxXhY4BM0XiTjzHQ9znfw7uXPJ9k(qgFZqOcDxjLRzMNeQJfQ2N1uyTtfNo2R4dz8nRbJ0g)rdAfX()LLVh3z0GNt6AMy9IkYhpIMHqZ0BO7rUh5EC3JCVy2JCVw7roFMssgfbnIN6xZW58mKG0PcOfhF2FqJ4jQoIAaJaiacGayMIGZaOaMdBCJKEnaibbGcyN1y)Zu6fPxDYfDfo7S2dMtK46Yyv1fNAau0aWwQbmcGaiacGzkcodG4gj9AaqccaLvUq8iKF(fa7vNCgc))rIRlJvvxCFbW4IkCF8Lqepja2dMxheaqX6cY4uRgaPhaYeWiacGaiaELhonakGDwJ9ptPxKi4gj9AaqrdafWCyJBK0RrnakkaKKjt1aglTYmV44wk(1EKXBMsjXE4WEXagPn(Jg0kRzMoiGEjE(6K7XDggXt9l0lXZxxpuLApMZusYUmwfAXXfP(9zrjcGXzLwHynFU2lM2H5mXLuCw3JlHZCgwNeWEIQh6mbCsp0zi0m9iEpYzbzXgHMP3yygN9yotIGZfN9iNHZDSI3J5meAMEOQ6QzibPtfMPApMZqOz6XWEKZqOz6rW2JCgcntpcBpYzi0m9yjOrMbGaiacGx5HtdG)bnINO6iDhL)kP8laEKFbqEYVayd5xaet(fapUFbqEUFbWgUFbqmx1agbqaeabqaeaVYdNgapsaS9ayKUJYFLucGIcaJCCbqcbGhPA1FbqEsaS9ayKUJYFLucGIcaJWZfajeaYtQw9xaSHeaBpagP7O8xjLaOOaWinCbqcbGnKQv)faXKay7bWiDhL)kPeaffagbZfajeaIjvRgWiacGaiawAfaJaiao7Oo2R9yotIGZLQ9iNpFMFjE(6g6SGSyh0jFmmZv1vZqcsNkmlil2Sw4SZ6yygRfo7SYM2vh2P3mcoZyTWzN1zmNHeKovWCmsBYzZqcsNki(Hd7jQE2FqJ4jQoIAaJaiacGayMIGZaOaMdBCJKEnaibbGcyN1y)Zu6fPxDYfDfo7S2dMtK46Yyv1fNAau0aWwQbmcGaiacGzkcodG4gj9AaqccaLvUq8iKF(fa7vNCgc))rIRlJvvxCFbW4IkCF8Lqepja2dMxheaqX6cY4uRgaPhaYeWiacGaiaMPi4ma2vhsPDmFbGeeakGDwJ9ptPxKi4gj9AaqrdafWCyJBK0RrnakkaKKjt1agbqaeabWR8WPbWU6qkTJ5RVaijtMFbq)cfGXsRmdjiDQaBxvxnt6ypiNv9lTlNfDX6HbIrzlIyem2erWt0dLDVpw(qeuIimIe)zibPtfM9h0iEIQJOgWiacGaiaMPi4ma2e()bqcca7vNCgc))rIRlJvvxCFbW4IkCF8Lqepja2dMxheaqX6cY4udG0dazcyeabqaeat)ayt4)habeCjiauNYaOZAPbWR8WPbq)cfawzzbGx5HtdG)4SSaWsRayS0kZqyTqABwOtb71SGU6xAFgo40zibPtfyZAsPM5jHsz(mSIsYtunoZ2VepFDYHUh5qN5xINVUHoZv1vZKo2dYzYqt1V0Uf()tCMXo6eBOSnuIjm0zbzXo5LWdluJHzv)s7Z(WlbaKirFi11vkZKHMQFP9OD1FIZmlAejIiZsEj8Wc1EKXWTvRwZcYIDqN8XWSGU6xAFgo40zbDYN1LXQQB(SG2VepFDdDwYlHhwO2JmgUTA1A(85ZusYUmwfAXXjSepR(SOuoZloolzmVCMy9IkYhpIM5jH6yjJ5LZeRxur(4r0SgmsB8hnOvqloE4QzOfhpCLKawxLZeJ4P(ypr1I1VUmwLKaeHKtDYITf0Z8KqDRzwcHQxZmH0D0BnZsiunBzsPMjcrSGoRbJ0g)rdALOtZ0BO7rowAr4Cj52omJhtUX8zu)zu)5(jeHhZEChlTiCUKCBhMXJj3y(mQ)mQ)C)eIWJzVyglTiCUKCBhMXJj3y(mQ)mQ)C)eIWJzVw7XC(mKJ2Xw1EmJTf5mLsI9WH9If6v8hnOvwZmpjuNLIFThz8MLuMfTtLwbhF5SR4tunQQUAgoC4g8n7)WcL5h2X71AwueKE6x1mriIf0z)0R4pAqRGwC8WvZ(q719JrkcqSIcvljq7w42ioCyjbIgvC1rC4WYEkLeMaehoSKaeho8NTMHC0o2C2JzSTiNVh3HoliRJTQ9yot6yK2Kwk(1EKXBwqwhBo7XCMss2LXQqlo(SOebW4SF6v8hnOvIontVHUh5EK7XDpY9IzpY9ATh58zsSqHwC8WvJHz)uTZsgZlNjwVOI8XJOzn4l60m9g6EC3JCVw7XC(SJ6ypr17XCwMIvg6SGSyRR(1TMzooxAFOZeczpn05ZNPK()tiHSRAOZeczpn05ZND0Cn0zcHSNg685Z66354CP9HotiK90qNpF2HrQHotiK90qNpF2pgXtu9qNjeYEAOZNpF2v8jQgvvxndhoCd(MjDmsBY1mRjxALEOk1mgeHON4plPtoBeQqxU8szpYzEXXdxnRD5ZyPCMxCCwOAFwtH1ovC6yVIpKX3mPJrAtYcv7ZAkS2PIth7v8Hm(MHqf6UskxZmpjuhluTpRPWANkoDSxXhY4BwdgPn(Jg0kI9)llFpUZObpN01mX6fvKpEendHMP3q3JCpY94Uh5EXSh5ET2JC(mLKmkcAep1VMHZ5zihTBpMX2ICgsq6ub0IJp7pOr8evhrnGraeabqamtrWzauaZHnUrsVgaKGaqbSZAS)zk9I0Ro5IUcNDw7bZjsCDzSQ6ItnakAayl1agbqaeabWmfbNbqCJKEnaibbGYkxiEeYp)cG9QtodH))iX1LXQQlUVayCrfUp(siINea7bZRdcaOyDbzCQvdG0dazcyeabqaeaVYdNgafWoRX(NP0lseCJKEnaOObGcyoSXns61OgaffasYKPAaJLwzM0XNtSMpx7XCMsjXE4WEXagPn(Jg0kRzggXt9l0lXZxxpuLApcrYCMss2LXQqloUi1Vplk1agNvAfI185AVyAhMZ8IJZsgZlNjwVOI8XJOzyDsa7jQEOZeWj9qNjrW5IZEKZKi4CPApYzi0m9yypYzbzXgHMP3yygo3XkEpMZqOz6HQQRMHeKovyMQ9yoJZEmNHqZ0JGTh5meAMEe2EKZqOz6XsqJmdabqaeaVYdNga)dAepr1r6ok)vs5xa8i)cG8KFbWgYVaiM8laEC)cG8C)cGnC)cGyUQbmcGaiacGaiaELhonaEKay7bWiDhL)kPeaffag54cGecaps1Q)cG8Kay7bWiDhL)kPeaffagHNlasiaKNuT6Vaydja2Eams3r5VskbqrbGrA4cGecaBivR(laIjbW2dGr6ok)vsjakkamcMlasiaetQwnGraeabqaS0kagbqaC2rDSx7XCgcntpI3JC(8z(L45RBOZCvD1mPJ9GCwqwStEj8Wc1yyw1V0(Sp8saajs0hsDDLYSKxcpSqThzmCB1Q1SGSyh0jFmmlOR(L2NHdoDgsq6ub2SMuQzEsOuMpZlo(AM9tVI)ObTcAXXdxn7dTx3pgPiaXkkuTKaTBHBJ4WHLeiAuXvhXHdl7PusycqC4WscqC4WF2Agwrj5jQgNz7xINVo5qNplPmlANkTco(saK7SOii90VQzIqelOZyTs8S67XnMzbTFjE(6g6SKxcpSqThzmCB1Q18znyK24pAqRGwC8WvZqloE4kjbSUkNjgXt9XEIQfRFDzSkjbicjN6KfBlONPusShoSxSqVI)ObTYAMHC0o2Q2JzSTiNLqO61mtiDh9wZSgmsB8hnOvIontVHUxR9iNplHq1SLjLAMieXc6mpju3AM5jH6Su8R9iJ3S)dluMFyhVxmZexsXzDpUeE8M5fh3sXV2JmEZ0bb0lXZxNCpYzihTJnN9ygBlY57fZqNfK1Xw1EmNjDmsBslf)ApY4nliRJnN9yotjj7YyvOfhFwuIayC2p9k(Jg0krNMP3q3JCpY94Uh5EXSh5ET2JC(mjwOqloE4QXWSFQ2zjJ5LZeRxur(4r0Sg8fDAMEdDVw7XC(SJ6ypr17XCwMIvg6mhNlTp0zcHSNg685Zus))jKq2vn0zcHSNg685ZoAUg6mHq2tdD(8zD97CCU0(qNjeYEAOZNp7Wi1qNjeYEAOZNp7hJ4jQEOZeczpn05ZNpt64ZjwZNR9yod5OD7Xm2wKZKogPn5AM1KlTspuLAgdIq0t8NL0jNncvOlxEPSh5mV44HRM1U8zSuoZlooluTpRPWANkoDSxXhY4BgcvO7kPCnZ8KqDSq1(SMcRDQ40XEfFiJVznyK24pAqRi2)VS894oJg8CsxZeRxur(4r0meAMEdDpY9i3J7EK7fZEK71ApY5ZusYOiOr8u)AgoNNHeKovaT44Z(dAepr1rudyeabqaeaZueCgafWCyJBK0Rbajiaua7Sg7FMsVi9QtUORWzN1EWCIexxgRQU4udGIga2snGraeabqamtrWzae3iPxdasqaOSYfIhH8ZVayV6KZq4)psCDzSQ6I7lagxuH7JVeI4jbWEW86GaakwxqgNA1ai9aqMagbqaeabWR8WPbqbSZAS)zk9Ieb3iPxdakAaOaMdBCJKEnQbqrbGKmzQgWyPvMPusShoSxmGrAJ)ObTYAMPdcOxINVo5ECNHr8u)c9s8811dvP2JqKmNPKKDzSk0IJls97ZIseaJZ8IJBP4x7rgVzEXXzjJ5LZeRxur(4r0SsRqSMpx7ft7WCM4skoR7XLWzoZtc1zP4x7rgVzyDsa7jQEOZeWj9qNHqZ0J49iNHqZ0dvvxndjiDQWmjcoxQ2JCgo3XkEpMZ4ShZzQ2J5meAMEmSh5meAMEeS9iNHqZ0JW2JCgcntpwcAKzaiacGa4vE40a4FqJ4jQos3r5Vsk)cGh5xaKN8la2q(faXKFbWJ7xaKN7xaSH7xaeZvnGraeabqaeabWR8WPbWJeaBpagP7O8xjLaOOaWihxaKqa4rQw9xaKNeaBpagP7O8xjLaOOaWi8CbqcbG8KQv)faBibW2dGr6ok)vsjakkamsdxaKqaydPA1Fbqmja2Eams3r5VskbqrbGrWCbqcbGys1QbmcGaiacGLwbWiacGZoQJ9ApMZcYIncntVXWmjcoxC2JC(8z(L45RBOZKDvo)HYmUm)S1NCNPusVxDYN1LXQQBwqwSrYuD9HYyygsq6ub2SMuQzibPtfMHeKovGTRQRMv9lTptgAQ(L2TW)FIZm2e3lHrmBIJw0e5dIe)zbD1V0(mpjukZs6(1jRXWSQFPD5SOlwpmqmkBreJGXMicEIEOS79XYhIGseHrK4pR6xAFw0PcnyhafHYplil2YUkN)qzmmt2v58hkYHUh5ECz(zRp5oFMgluZIkCF8Lqepja2dMxheaqX6cYzASqjh6EKZIkCF8Lqepja2dMxheaqX6cY5ZcYITsj9E1jFnZN5fhFnZWkkjpr14mB)s881jh6EKdDMFjE(6g6mxvxnt6ypiNjdnv)s7w4)pXzg7OtSHY2qjMWqNfKf7KxcpSqngMf0jFwxgRQUzv)s7Z(WlbaKirFi11vkZKHMQFP9OD1FIZmlAejIiZsEj8Wc1EKXWTvRwZcYIDqN8XWSGU6xAFgo40zibPtfyZAsPM5jHsz(SG2VepFDdDwYlHhwO2JmgUTA1A(85ZAWiTXF0GwbT44HRMHwC8WvscyDvotmIN6J9evlw)6Yyvscqeso1jl2wqpZtc1TMzjeQEnZes3rV1mlHq1SLjLAMieXc6SgmsB8hnOvIontVHUh5EK71ApY5ZqoAhBv7Xm2wKZukj2dh2lwOxXF0GwznZIIG0t)QMjcrSGolPmlANkTco(samMz)hwOm)WoEVyM9tVI)ObTcAXXdxn7dTx3pgPiaXkkuTKaTBHBJ4WHLeiAuXvhXHdl7PusycqC4WscqC4WF2A2v8jQgvvxndhoCd(ML09RtwJHzihTJnN9ygBlYzshJ0MKfQ2N1uyTtfNo2R4dz8nF(S(7r2Il58na +dWe3DaGiHkxsirFIqvgLqCksQvri5vsPQzPQ0Tqq2LqPFriLHHIogIwgQ0ZekMMuY1qq12KsfFtvrJtOkNtiPUhcK9HavCqeQfIcEOqQMiHQ6IiKnIs8reOmscPYjvvyLOqZKqCtPk2PQ8tcLHkKYsrq5PuMkKUQuL2kcu1xLsLgRqsMlcyVk)fLAWGomulwkEmetMexwYMvv9zu1OrjDArwTqcVwkLzlQBtWUj1VrA4sLJtivTCvEortNQRly7sv9DcvgpQ48KK1luvZhbQ0(bEKdDgEOZNjNXn2yI9ZzcZuMPm0zxXNOAuvD1m(Jg6MHr8u)c9s8811dvP2JqKmNvC6WALszmmtjjJIGgXt9Rz4CEwszw0ovk44ptLy))YY3JqrnZz6Ga6L45RtUh5mzL)JgnP9zmigkQy9icrSGoltXkdDMJZL2h6mHq2tdD(8zkP))esi7Qg6mHq2tdD(8zhgPg6mHq2tdD(8z)yepr1dDMqi7PHoF(SU(DooxAFOZeczpn05ZND0Cn0zcHSNg685ZcYInsglLRz(8zidDpYHoliRJTQ9yot6yK2Kwk(1EKXBwqwhBo7XCMss2LXQqlo(SOebW4SF6v8hnOvIontVHUh5EK7XDpY9IzpY9ATh58zsSqHwC8WvJHz)uTZsgZlNjwVOI8XJOzn4l60m9g6EC3JC(SJ6ypr17XCwMIvg6mhNlTp0zcHSNg685Zus))jKq2vn0zcHSNg685ZoAUg6mHq2tdD(8zD97CCU0(qNjeYEAOZNp7hJ4jQEOZeczpn05ZNDyKAOZeczpn05ZNpt64ZjwZNR9yod5OD7Xm2wKZKogPn5AM1KlTspuLAgdIq0t8NL0jNncvOlxEPSh5mV44HRM1U8zSuoZlooluTpRPWANkoDSxXhY4BM0XiTjzHQ9znfw7uXPJ9k(qgFZqOcDxjLRzMNeQJfQ2N1uyTtfNo2R4dz8nRbJ0g)rdAfX()LLVh3z0GNt6AMy9IkYhpIMHqZ0BO7rUh5EC3JCVy2JCVw7roFMssgfbnIN6xZW58mKG0PcOfhF2FqJ4jQoIAaJaiacGayMIGZaOaMdBCJKEnaibbGcyN1y)Zu6fPxDYfDfo7S2dMtK46Yyv1fNAau0aWwQbmcGaiacGzkcodG4gj9AaqccaLvUq8iKF(fa7vNCgc))rIRlJvvxCFbW4IkCF8Lqepja2dMxheaqX6cY4uRgaPhaYeWiacGaiaELhonakGDwJ9ptPxKi4gj9AaqrdafWCyJBK0RrnakkaKKjt1aglTYmV44wk(1EKXBMsjXE4WEXagPn(Jg0kRzMoiGEjE(6K7XDggXt9l0lXZxxpuLApMZusYUmwfAXXfP(9zrjcGXzLwHynFU2lM2H5mXLuCw3JlHZCgwNeWEIQh6mbCsp0zi0m9iEpYzbzXgHMP3yygN9yotIGZfN9iNHZDSI3J5meAMEOQ6QzibPtfMPApMZqOz6XWEKZqOz6rW2JCgcntpcBpYzi0m9yjOrMbGaiacGx5HtdG)bnINO6iDhL)kP8laEKFbqEYVayd5xaet(fapUFbqEUFbWgUFbqmx1agbqaeabqaeaVYdNgapsaS9ayKUJYFLucGIcaJCCbqcbGhPA1FbqEsaS9ayKUJYFLucGIcaJWZfajeaYtQw9xaSHeaBpagP7O8xjLaOOaWinCbqcbGnKQv)faXKay7bWiDhL)kPeaffagbZfajeaIjvRgWiacGaiawAfaJaiao7Oo2R9yotIGZLQ9iNpFMFjE(6g6SGSyh0jFmmZv1vZqcsNkmlil2Sw4SZ6yygRfo7SYM2vh2P3mcoZyTWzN1zmNHeKovWCmsBYzZqcsNki(Hd7jQE2FqJ4jQoIAaJaiacGayMIGZaOaMdBCJKEnaibbGcyN1y)Zu6fPxDYfDfo7S2dMtK46Yyv1fNAau0aWwQbmcGaiacGzkcodG4gj9AaqccaLvUq8iKF(fa7vNCgc))rIRlJvvxCFbW4IkCF8Lqepja2dMxheaqX6cY4uRgaPhaYeWiacGaiaMPi4ma2vhsPDmFbGeeakGDwJ9ptPxKi4gj9AaqrdafWCyJBK0RrnakkaKKjt1agbqaeabWR8WPbWU6qkTJ5RVaijtMFbq)cfGXsRmdjiDQaBxvxnt6ypiNv9lTlNfDX6HbIrzlIyem2erWt0dLDVpw(qeuIimIe)zibPtfM9h0iEIQJOgWiacGaiaMPi4ma2e()bqcca7vNCgc))rIRlJvvxCFbW4IkCF8Lqepja2dMxheaqX6cY4udG0dazcyeabqaeat)ayt4)habeCjiauNYaOZAPbWR8WPbq)cfawzzbGx5HtdG)4SSaWsRayS0kZqyTqABwOtb71SGU6xAFgo40zibPtfyZAsPM5jHsz(mSIsYtunoZ2VepFDYHUh5qN5xINVUHoZv1vZKo2dYzYqt1V0Uf()tCMXo6eBOSnuIjm0zbzXo5LWdluJHzv)s7Z(WlbaKirFi11vkZKHMQFP9OD1FIZmlAejIiZsEj8Wc1EKXWTvRwZcYIDqN8XWSGU6xAFgo40zbDYN1LXQQB(SG2VepFDdDwYlHhwO2JmgUTA1A(85ZusYUmwfAXXjSepR(SOuoZloolzmVCMy9IkYhpIM5jH6yjJ5LZeRxur(4r0SgmsB8hnOvqloE4QzOfhpCLKawxLZeJ4P(ypr1I1VUmwLKaeHKtDYITf0Z8KqDRzwcHQxZmH0D0BnZsiunBzsPMjcrSGoRbJ0g)rdALOtZ0BO7rowAr4Cj52omJhtUX8zu)zu)5(jeHhZEChlTiCUKCBhMXJj3y(mQ)mQ)C)eIWJzVyglTiCUKCBhMXJj3y(mQ)mQ)C)eIWJzVw7XC(mKJ2Xw1EmJTf5mLsI9WH9If6v8hnOvwZmpjuNLIFThz8MLuMfTtLwbhF5SR4tunQQUAgoC4g8n7)WcL5h2X71AwueKE6x1mriIf0z)0R4pAqRGwC8WvZ(q719JrkcqSIcvljq7w42ioCyjbIgvC1rC4WYEkLeMaehoSKaeho8NTMHC0o2C2JzSTiNVh3HoliRJTQ9yot6yK2Kwk(1EKXBwqwhBo7XCMss2LXQqlo(SOebW4SF6v8hnOvIontVHUh5EK7XDpY9IzpY9ATh58zsSqHwC8WvJHz)uTZsgZlNjwVOI8XJOzn4l60m9g6EC3JCVw7XC(SJ6ypr17XCwMIvg6SGSyRR(1TMzooxAFOZeczpn05ZNPK()tiHSRAOZeczpn05ZND0Cn0zcHSNg685Z66354CP9HotiK90qNpF2HrQHotiK90qNpF2pgXtu9qNjeYEAOZNpF2v8jQgvvxndhoCd(MjDmsBY1mRjxALEOk1mgeHON4plPtoBeQqxU8szpYzEXXdxnRD5ZyPCMxCCwOAFwtH1ovC6yVIpKX3mPJrAtYcv7ZAkS2PIth7v8Hm(MHqf6UskxZmpjuhluTpRPWANkoDSxXhY4BwdgPn(Jg0kI9)llFpUZObpN01mX6fvKpEendHMP3q3JCpY94Uh5EXSh5ET2JC(mLKmkcAep1VMHZ5zihTBpMX2ICgsq6ub0IJp7pOr8evhrnGraeabqamtrWzauaZHnUrsVgaKGaqbSZAS)zk9I0Ro5IUcNDw7bZjsCDzSQ6ItnakAayl1agbqaeabWmfbNbqCJKEnaibbGYkxiEeYp)cG9QtodH))iX1LXQQlUVayCrfUp(siINea7bZRdcaOyDbzCQvdG0dazcyeabqaeaVYdNgafWoRX(NP0lseCJKEnaOObGcyoSXns61OgaffasYKPAaJLwzM0XNtSMpx7XCMsjXE4WEXagPn(Jg0kRzggXt9l0lXZxxpuLApcrYCMss2LXQqloUi1Vplk1agNvAfI185AVyAhMZ8IJZsgZlNjwVOI8XJOzyDsa7jQEOZeWj9qNjrW5IZEKZKi4CPApYzi0m9yypYzbzXgHMP3yygo3XkEpMZqOz6HQQRMHeKovyMQ9yoJZEmNHqZ0JGTh5meAMEe2EKZqOz6XsqJmdabqaeaVYdNga)dAepr1r6ok)vs5xa8i)cG8KFbWgYVaiM8laEC)cG8C)cGnC)cGyUQbmcGaiacGaiaELhonaEKay7bWiDhL)kPeaffag54cGecaps1Q)cG8Kay7bWiDhL)kPeaffagHNlasiaKNuT6Vaydja2Eams3r5VskbqrbGrA4cGecaBivR(laIjbW2dGr6ok)vsjakkamcMlasiaetQwnGraeabqaS0kagbqaC2rDSx7XCgcntpI3JC(8z(L45RBOZCvD1mPJ9GCwqwStEj8Wc1yyw1V0(Sp8saajs0hsDDLYSKxcpSqThzmCB1Q1SGSyh0jFmmlOR(L2NHdoDgsq6ub2SMuQzEsOuMpZlo(AM9tVI)ObTcAXXdxn7dTx3pgPiaXkkuTKaTBHBJ4WHLeiAuXvhXHdl7PusycqC4WscqC4WF2Agwrj5jQgNz7xINVo5qNplPmlANkTco(saK7SOii90VQzIqelOZyTs8S67XnMzbTFjE(6g6SKxcpSqThzmCB1Q18znyK24pAqRGwC8WvZqloE4kjbSUkNjgXt9XEIQfRFDzSkjbicjN6KfBlONPusShoSxSqVI)ObTYAMHC0o2Q2JzSTiNLqO61mtiDh9wZSgmsB8hnOvIontVHUxR9iNplHq1SLjLAMieXc6mpju3AM5jH6Su8R9iJ3S)dluMFyhVxmZexsXzDpUeE8M5fh3sXV2JmEZ0bb0lXZxNCpYzihTJnN9ygBlY57fZqNfK1Xw1EmNjDmsBslf)ApY4nliRJnN9yotjj7YyvOfhFwuIayC2p9k(Jg0krNMP3q3JCpY94Uh5EXSh5ET2JC(mjwOqloE4QXWSFQ2zjJ5LZeRxur(4r0Sg8fDAMEdDVw7XC(SJ6ypr17XCwMIvg6mhNlTp0zcHSNg685Zus))jKq2vn0zcHSNg685ZoAUg6mHq2tdD(8zD97CCU0(qNjeYEAOZNp7Wi1qNjeYEAOZNp7hJ4jQEOZeczpn05ZNpt64ZjwZNR9yod5OD7Xm2wKZKogPn5AM1KlTspuLAgdIq0t8NL0jNncvOlxEPSh5mV44HRM1U8zSuoZlooluTpRPWANkoDSxXhY4BgcvO7kPCnZ8KqDSq1(SMcRDQ40XEfFiJVznyK24pAqRi2)VS894oJg8CsxZeRxur(4r0meAMEdDpY9i3J7EK7fZEK71ApY5ZusYOiOr8u)AgoNNHeKovaT44Z(dAepr1rudyeabqaeaZueCgafWCyJBK0Rbajiaua7Sg7FMsVi9QtUORWzN1EWCIexxgRQU4udGIga2snGraeabqamtrWzae3iPxdasqaOSYfIhH8ZVayV6KZq4)psCDzSQ6I7lagxuH7JVeI4jbWEW86GaakwxqgNA1ai9aqMagbqaeabWR8WPbqbSZAS)zk9Ieb3iPxdakAaOaMdBCJKEnQbqrbGKmzQgWyPvMPusShoSxmGrAJ)ObTYAMPdcOxINVo5ECNHr8u)c9s8811dvP2JqKmNPKKDzSk0IJls97ZIseaJZ8IJBP4x7rgVzEXXzjJ5LZeRxur(4r0SsRqSMpx7ft7WCM4skoR7XLWzoZtc1zP4x7rgVzyDsa7jQEOZeWj9qNHqZ0J49iNHqZ0dvvxndjiDQWmjcoxQ2JCgo3XkEpMZ4ShZzQ2J5meAMEmSh5meAMEeS9iNHqZ0JW2JCgcntpwcAKzaiacGa4vE40a4FqJ4jQos3r5Vsk)cGh5xaKN8la2q(faXKFbWJ7xaKN7xaSH7xaeZvnGraeabqaeabWR8WPbWJeaBpagP7O8xjLaOOaWihxaKqa4rQw9xaKNeaBpagP7O8xjLaOOaWi8CbqcbG8KQv)faBibW2dGr6ok)vsjakkamsdxaKqaydPA1Fbqmja2Eams3r5VskbqrbGrWCbqcbGys1QbmcGaiacGLwbWiacGZoQJ9ApMZcYIncntVXWmjcoxC2JC(8z(L45RBOZKDvo)HYmUm)S1NCNPusVxDYN1LXQQBwqwSrYuD9HYyygsq6ub2SMuQzibPtfMHeKovGTRQRMv9lTptgAQ(L2TW)FIZm2e3lHrmBIJw0e5dIe)zbD1V0(mpjukZs6(1jRXWSQFPD5SOlwpmqmkBreJGXMicEIEOS79XYhIGseHrK4pR6xAFw0PcnyhafHYplil2YUkN)qzmmt2v58hkYHUh5ECz(zRp5oFMgluZIkCF8Lqepja2dMxheaqX6cYzASqjh6EKZIkCF8Lqepja2dMxheaqX6cY5ZcYITsj9E1jFnZN5fhFnZWkkjpr14mB)s881jh6EKdDMFjE(6g6mxvxnt6ypiNjdnv)s7w4)pXzg7OtSHY2qjMWqNfKf7KxcpSqngMf0jFwxgRQUzv)s7Z(WlbaKirFi11vkZKHMQFP9OD1FIZmlAejIiZsEj8Wc1EKXWTvRwZcYIDqN8XWSGU6xAFgo40zibPtfyZAsPM5jHsz(SG2VepFDdDwYlHhwO2JmgUTA1A(85ZAWiTXF0GwbT44HRMHwC8WvscyDvotmIN6J9evlw)6Yyvscqeso1jl2wqpZtc1TMzjeQEnZes3rV1mlHq1SLjLAMieXc6SgmsB8hnOvIontVHUh5EK71ApY5ZqoAhBv7Xm2wKZukj2dh2lwOxXF0GwznZIIG0t)QMjcrSGolPmlANkTco(samMz)hwOm)WoEVyM9tVI)ObTcAXXdxn7dTx3pgPiaXkkuTKaTBHBJ4WHLeiAuXvhXHdl7PusycqC4WscqC4WF2A2v8jQgvvxndhoCd(ML09RtwJHzihTJnN9ygBlYzshJ0MKfQ2N1uyTtfNo2R4dz8nF(S(7r2Il58na diff --git a/WA codes/Prydaz Bars (WA CODE).txt b/WeakAuras/Exports/Prydaz Bars (WA CODE).txt similarity index 100% rename from WA codes/Prydaz Bars (WA CODE).txt rename to WeakAuras/Exports/Prydaz Bars (WA CODE).txt diff --git a/WA codes/Random Number Crap (WA CODE).txt b/WeakAuras/Exports/Random Number Crap (WA CODE).txt similarity index 100% rename from WA codes/Random Number Crap (WA CODE).txt rename to WeakAuras/Exports/Random Number Crap (WA CODE).txt diff --git a/WA codes/Rogue Sniffer 9000(WA CODE).txt b/WeakAuras/Exports/Rogue Sniffer 9000(WA CODE).txt similarity index 100% rename from WA codes/Rogue Sniffer 9000(WA CODE).txt rename to WeakAuras/Exports/Rogue Sniffer 9000(WA CODE).txt diff --git a/WA codes/Trinket procs (WA CODE).txt b/WeakAuras/Exports/Trinket procs (WA CODE).txt similarity index 100% rename from WA codes/Trinket procs (WA CODE).txt rename to WeakAuras/Exports/Trinket procs (WA CODE).txt diff --git a/Complete Projects/Legion/ABS.lua b/WeakAuras/Projects/ABS.lua similarity index 97% rename from Complete Projects/Legion/ABS.lua rename to WeakAuras/Projects/ABS.lua index be0e916..d78b1bc 100644 --- a/Complete Projects/Legion/ABS.lua +++ b/WeakAuras/Projects/ABS.lua @@ -1,239 +1,239 @@ ---UPDATE_BIND_TABLE UPDATE_BINDS UPDATE_BAR_TABLE UPDATE_BARS DELETE_SET LIST_SETS ---[[ -UPDATE_BIND_TABLE saves current binds -UPDATE_BINDS restores saved binds -UPDATE_BAR_TABLE saves current bar layout also supports sets -UPDATE_BARS restores bar layout; defaults to the "default" set -DELETE_SET deletes a specified set -LIST_SETS lists all sets -DELETE and LIST only work for bar layouts - - - -/run WeakAuras.ScanEvents("UPDATE_BINDS") -/run WeakAuras.ScanEvents("UPDATE_BIND_TABLE") - -]] -function(e, ...) - if InCombatLockdown() ~= 1 then - if e == "UPDATE_BIND_TABLE" then - if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end - if not WeakAurasSaved.CustomTrash.BindTableTwo then WeakAurasSaved.CustomTrash.BindTableTwo = {} end - for i = 1, GetNumBindings() do - local comm, bind, bind2 = GetBinding(i) - if comm and bind2 and not WeakAurasSaved.CustomTrash.BindTableTwo[comm] then - print("Adding", comm, "with bind", bind2, "to bind table") - WeakAurasSaved.CustomTrash.BindTableTwo[comm] = {} - WeakAurasSaved.CustomTrash.BindTableTwo[comm].bind = bind2 - WeakAurasSaved.CustomTrash.BindTableTwo[comm].index = i - end - if comm and not bind2 and WeakAurasSaved.CustomTrash.BindTableTwo[comm] then - print("Removing", comm, "with no bind from the bind table") - WeakAurasSaved.CustomTrash.BindTableTwo[comm] = nil - end - end - elseif e == "UPDATE_BINDS" then - for k, v in pairs(WeakAurasSaved.CustomTrash.BindTableTwo) do - local command, bind, bind2 = GetBinding(v.index) - if bind2 ~= v.bind then - --The key should be aura_env.keyBinds[command] but the key is bind2 - print("Key", command, "has bind", bind2, "but should have", v.bind) - if bind2 then SetBinding(bind2) end - if v.bind then SetBinding(v.bind, command) end - end - end - SaveBindings(1) - elseif e == "UPDATE_BAR_TABLE" then - local arg2 = "default" - if ... then arg2 = ... end - if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end - if not WeakAurasSaved.CustomTrash.BarTable then WeakAurasSaved.CustomTrash.BarTable = {} end - if not WeakAurasSaved.CustomTrash.BarTable[arg2] then WeakAurasSaved.CustomTrash.BarTable[arg2] = {} end - for i = 1, 72 do - PickupAction(i) - if GetCursorInfo() then - local type = GetCursorInfo() - local id, name = nil, nil - if not type then WeakAurasSaved.CustomTrash.BarTable[arg2][i] = nil end - if type == "spell" then - id = select(4, GetCursorInfo()) - elseif type == "mount" then - id = select(2, GetCursorInfo()) - elseif type == "macro" then - id = select(2, GetCursorInfo()) - name = select(1, GetMacroInfo(id)) - elseif type == "item" then - id = select(2, GetCursorInfo()) - elseif type == "equipmentset" then - name = select(2, GetCursorInfo()) - end --elseif end - if not WeakAurasSaved.CustomTrash.BarTable[arg2][i] then WeakAurasSaved.CustomTrash.BarTable[arg2][i] = {} end - if id ~= WeakAurasSaved.CustomTrash.BarTable[arg2][i].id or type ~= WeakAurasSaved.CustomTrash.BarTable[arg2][i].type then - WeakAurasSaved.CustomTrash.BarTable[arg2][i].type = type - WeakAurasSaved.CustomTrash.BarTable[arg2][i].id = id - WeakAurasSaved.CustomTrash.BarTable[arg2][i].name = name - if not name then - print("Adding", type, "by id", id, "on slot", i, "to the table") - elseif name then - print("Adding", type, "by id", id, "and name", name, "on slot", i, "to the table") - end - end - end - PickupAction(i) - end - elseif e == "UPDATE_BARS" then - local arg2 = "default" - if ... then arg2 = ... end - for k, v in pairs(WeakAurasSaved.CustomTrash.BarTable[arg2]) do - if v.type == "spell" then - if GetCursorInfo() then ClearCursor() end - PickupAction(k) - if GetCursorInfo() then - local id = select(4, GetCursorInfo()) - if id ~= v.id then - ClearCursor() - PickupSpell(v.id) - PickupAction(k) - ClearCursor() - end - PickupAction(k) - else - ClearCursor() - PickupSpell(v.id) - PickupAction(k) - ClearCursor() - end - elseif v.type == "mount" then - local mid, mindex - --Looking for mount in mount journal - for i = 1, C_MountJournal.GetNumMounts() do - mid = select(12, C_MountJournal.GetDisplayedMountInfo(i)) - local ishave = select(11, C_MountJournal.GetDisplayedMountInfo(i)) - if mid == v.id then - mindex = i - break - end - if ishave == false then - break - end - end - - --Checking what's on the bar - if GetCursorInfo() then ClearCursor() end - PickupAction(k) - if GetCursorInfo() then - local id = select(2, GetCursorInfo()) - if id ~= v.id and mindex then - ClearCursor() - C_MountJournal.Pickup(mindex) - PickupAction(k) - ClearCursor() - end - PickupAction(k) - elseif not GetCursorInfo() and mindex then - ClearCursor() - C_MountJournal.Pickup(mindex) - PickupAction(k) - ClearCursor() - end - elseif v.type == "macro" then - if GetCursorInfo() then ClearCursor() end - PickupAction(k) - if GetCursorInfo() then - local id = select(2, GetCursorInfo()) - local name = select(1, GetMacroInfo(id)) - if id ~= v.id or name ~= v.name then - ClearCursor() - PickupMacro(v.id) - PickupAction(k) - ClearCursor() - end - PickupAction(k) - else - ClearCursor() - local name = GetMacroInfo(v.id) - if name == v.name then - PickupMacro(v.id) - PickupAction(k) - ClearCursor() - end - end - elseif v.type == "equipmentset" then - if GetCursorInfo() then ClearCursor() end - local eqindex - for i = 1, GetNumEquipmentSets() do - local nam = GetEquipmentSetInfo(i) - if nam == v.name then - eqindex = i - break - end - end - if eqindex then - PickupAction(k) - if GetCursorInfo() then - local name = select(2, GetCursorInfo()) - if name ~= v.name then - ClearCursor() - PickupEquipmentSet(eqindex) - PickupAction(k) - ClearCursor() - end - PickupAction(k) - else - ClearCursor() - PickupEquipmentSet(eqindex) - PickupAction(k) - ClearCursor() - end - end - elseif v.type == "item" then - if GetCursorInfo() then ClearCursor() end - local ios, jos - for i = 0, 4 do - for j = 1, GetContainerNumSlots(i) do - local link = select(7, GetContainerItemInfo(i, j)) - if link then - local id = link:match("item:(%d+):") - if id then - id = tonumber(id) - if id == v.id then - ios = i - jos = j - break - end - end - end - end - end - if ios and jos then - PickupAction(k) - if GetCursorInfo() then - local id = select(2, GetCursorInfo()) - if id ~= v.id then - ClearCursor() - PickupContainerItem(ios, jos) - PickupAction(k) - ClearCursor() - end - PickupAction(k) - else - ClearCursor() - PickupContainerItem(ios, jos) - PickupAction(k) - ClearCursor() - end - end - end --elseif end - end - elseif e == "DELETE_SET" then - local arg2 = ... - if arg2 and WeakAurasSaved.CustomTrash.BarTable[arg2] then - WeakAurasSaved.CustomTrash.BarTable[arg2] = nil - end - elseif e == "LIST_SETS" then - for k, v in pairs(WeakAurasSaved.CustomTrash.BarTable) do - print(k) - end - end --elseif end - end -end +--UPDATE_BIND_TABLE UPDATE_BINDS UPDATE_BAR_TABLE UPDATE_BARS DELETE_SET LIST_SETS +--[[ +UPDATE_BIND_TABLE saves current binds +UPDATE_BINDS restores saved binds +UPDATE_BAR_TABLE saves current bar layout also supports sets +UPDATE_BARS restores bar layout; defaults to the "default" set +DELETE_SET deletes a specified set +LIST_SETS lists all sets +DELETE and LIST only work for bar layouts + + + +/run WeakAuras.ScanEvents("UPDATE_BINDS") +/run WeakAuras.ScanEvents("UPDATE_BIND_TABLE") + +]] +function(e, ...) + if InCombatLockdown() ~= 1 then + if e == "UPDATE_BIND_TABLE" then + if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end + if not WeakAurasSaved.CustomTrash.BindTableTwo then WeakAurasSaved.CustomTrash.BindTableTwo = {} end + for i = 1, GetNumBindings() do + local comm, bind, bind2 = GetBinding(i) + if comm and bind2 and not WeakAurasSaved.CustomTrash.BindTableTwo[comm] then + print("Adding", comm, "with bind", bind2, "to bind table") + WeakAurasSaved.CustomTrash.BindTableTwo[comm] = {} + WeakAurasSaved.CustomTrash.BindTableTwo[comm].bind = bind2 + WeakAurasSaved.CustomTrash.BindTableTwo[comm].index = i + end + if comm and not bind2 and WeakAurasSaved.CustomTrash.BindTableTwo[comm] then + print("Removing", comm, "with no bind from the bind table") + WeakAurasSaved.CustomTrash.BindTableTwo[comm] = nil + end + end + elseif e == "UPDATE_BINDS" then + for k, v in pairs(WeakAurasSaved.CustomTrash.BindTableTwo) do + local command, bind, bind2 = GetBinding(v.index) + if bind2 ~= v.bind then + --The key should be aura_env.keyBinds[command] but the key is bind2 + print("Key", command, "has bind", bind2, "but should have", v.bind) + if bind2 then SetBinding(bind2) end + if v.bind then SetBinding(v.bind, command) end + end + end + SaveBindings(1) + elseif e == "UPDATE_BAR_TABLE" then + local arg2 = "default" + if ... then arg2 = ... end + if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end + if not WeakAurasSaved.CustomTrash.BarTable then WeakAurasSaved.CustomTrash.BarTable = {} end + if not WeakAurasSaved.CustomTrash.BarTable[arg2] then WeakAurasSaved.CustomTrash.BarTable[arg2] = {} end + for i = 1, 72 do + PickupAction(i) + if GetCursorInfo() then + local type = GetCursorInfo() + local id, name = nil, nil + if not type then WeakAurasSaved.CustomTrash.BarTable[arg2][i] = nil end + if type == "spell" then + id = select(4, GetCursorInfo()) + elseif type == "mount" then + id = select(2, GetCursorInfo()) + elseif type == "macro" then + id = select(2, GetCursorInfo()) + name = select(1, GetMacroInfo(id)) + elseif type == "item" then + id = select(2, GetCursorInfo()) + elseif type == "equipmentset" then + name = select(2, GetCursorInfo()) + end --elseif end + if not WeakAurasSaved.CustomTrash.BarTable[arg2][i] then WeakAurasSaved.CustomTrash.BarTable[arg2][i] = {} end + if id ~= WeakAurasSaved.CustomTrash.BarTable[arg2][i].id or type ~= WeakAurasSaved.CustomTrash.BarTable[arg2][i].type then + WeakAurasSaved.CustomTrash.BarTable[arg2][i].type = type + WeakAurasSaved.CustomTrash.BarTable[arg2][i].id = id + WeakAurasSaved.CustomTrash.BarTable[arg2][i].name = name + if not name then + print("Adding", type, "by id", id, "on slot", i, "to the table") + elseif name then + print("Adding", type, "by id", id, "and name", name, "on slot", i, "to the table") + end + end + end + PickupAction(i) + end + elseif e == "UPDATE_BARS" then + local arg2 = "default" + if ... then arg2 = ... end + for k, v in pairs(WeakAurasSaved.CustomTrash.BarTable[arg2]) do + if v.type == "spell" then + if GetCursorInfo() then ClearCursor() end + PickupAction(k) + if GetCursorInfo() then + local id = select(4, GetCursorInfo()) + if id ~= v.id then + ClearCursor() + PickupSpell(v.id) + PickupAction(k) + ClearCursor() + end + PickupAction(k) + else + ClearCursor() + PickupSpell(v.id) + PickupAction(k) + ClearCursor() + end + elseif v.type == "mount" then + local mid, mindex + --Looking for mount in mount journal + for i = 1, C_MountJournal.GetNumMounts() do + mid = select(12, C_MountJournal.GetDisplayedMountInfo(i)) + local ishave = select(11, C_MountJournal.GetDisplayedMountInfo(i)) + if mid == v.id then + mindex = i + break + end + if ishave == false then + break + end + end + + --Checking what's on the bar + if GetCursorInfo() then ClearCursor() end + PickupAction(k) + if GetCursorInfo() then + local id = select(2, GetCursorInfo()) + if id ~= v.id and mindex then + ClearCursor() + C_MountJournal.Pickup(mindex) + PickupAction(k) + ClearCursor() + end + PickupAction(k) + elseif not GetCursorInfo() and mindex then + ClearCursor() + C_MountJournal.Pickup(mindex) + PickupAction(k) + ClearCursor() + end + elseif v.type == "macro" then + if GetCursorInfo() then ClearCursor() end + PickupAction(k) + if GetCursorInfo() then + local id = select(2, GetCursorInfo()) + local name = select(1, GetMacroInfo(id)) + if id ~= v.id or name ~= v.name then + ClearCursor() + PickupMacro(v.id) + PickupAction(k) + ClearCursor() + end + PickupAction(k) + else + ClearCursor() + local name = GetMacroInfo(v.id) + if name == v.name then + PickupMacro(v.id) + PickupAction(k) + ClearCursor() + end + end + elseif v.type == "equipmentset" then + if GetCursorInfo() then ClearCursor() end + local eqindex + for i = 1, GetNumEquipmentSets() do + local nam = GetEquipmentSetInfo(i) + if nam == v.name then + eqindex = i + break + end + end + if eqindex then + PickupAction(k) + if GetCursorInfo() then + local name = select(2, GetCursorInfo()) + if name ~= v.name then + ClearCursor() + PickupEquipmentSet(eqindex) + PickupAction(k) + ClearCursor() + end + PickupAction(k) + else + ClearCursor() + PickupEquipmentSet(eqindex) + PickupAction(k) + ClearCursor() + end + end + elseif v.type == "item" then + if GetCursorInfo() then ClearCursor() end + local ios, jos + for i = 0, 4 do + for j = 1, GetContainerNumSlots(i) do + local link = select(7, GetContainerItemInfo(i, j)) + if link then + local id = link:match("item:(%d+):") + if id then + id = tonumber(id) + if id == v.id then + ios = i + jos = j + break + end + end + end + end + end + if ios and jos then + PickupAction(k) + if GetCursorInfo() then + local id = select(2, GetCursorInfo()) + if id ~= v.id then + ClearCursor() + PickupContainerItem(ios, jos) + PickupAction(k) + ClearCursor() + end + PickupAction(k) + else + ClearCursor() + PickupContainerItem(ios, jos) + PickupAction(k) + ClearCursor() + end + end + end --elseif end + end + elseif e == "DELETE_SET" then + local arg2 = ... + if arg2 and WeakAurasSaved.CustomTrash.BarTable[arg2] then + WeakAurasSaved.CustomTrash.BarTable[arg2] = nil + end + elseif e == "LIST_SETS" then + for k, v in pairs(WeakAurasSaved.CustomTrash.BarTable) do + print(k) + end + end --elseif end + end +end diff --git a/NewAge/AHBot/AUCTION_HOUSE_BROWSE_RESULTS_UPDATED.lua b/WeakAuras/Projects/AHBot/AUCTION_HOUSE_BROWSE_RESULTS_UPDATED.lua similarity index 97% rename from NewAge/AHBot/AUCTION_HOUSE_BROWSE_RESULTS_UPDATED.lua rename to WeakAuras/Projects/AHBot/AUCTION_HOUSE_BROWSE_RESULTS_UPDATED.lua index 85ef8c0..c3898d1 100644 --- a/NewAge/AHBot/AUCTION_HOUSE_BROWSE_RESULTS_UPDATED.lua +++ b/WeakAuras/Projects/AHBot/AUCTION_HOUSE_BROWSE_RESULTS_UPDATED.lua @@ -1,19 +1,19 @@ -function() - results = C_AuctionHouse.GetBrowseResults() - -- DevTools_Dump(results) - for k,v in ipairs(results) do - local itemID = v.itemKey.itemID - local itemName = GetItemInfo(itemID) - if aura_env.sellPriceThresholds[itemID] then - if v.minPrice > aura_env.sellPriceThresholds[itemID] then - print(itemName, "too expensive") - SendChatMessage("POKE", "WHISPER", nil, UnitName("player")) - end - elseif aura_env.buyPriceThresholds[itemID] then - if v.minPrice < aura_env.buyPriceThresholds[itemID] then - print(itemName, "too cheap") - SendChatMessage("POKE", "WHISPER", nil, UnitName("player")) - end - end - end +function() + results = C_AuctionHouse.GetBrowseResults() + -- DevTools_Dump(results) + for k,v in ipairs(results) do + local itemID = v.itemKey.itemID + local itemName = GetItemInfo(itemID) + if aura_env.sellPriceThresholds[itemID] then + if v.minPrice > aura_env.sellPriceThresholds[itemID] then + print(itemName, "too expensive") + SendChatMessage("POKE", "WHISPER", nil, UnitName("player")) + end + elseif aura_env.buyPriceThresholds[itemID] then + if v.minPrice < aura_env.buyPriceThresholds[itemID] then + print(itemName, "too cheap") + SendChatMessage("POKE", "WHISPER", nil, UnitName("player")) + end + end + end end \ No newline at end of file diff --git a/NewAge/AHBot/EveryFrameThrottled.lua b/WeakAuras/Projects/AHBot/EveryFrameThrottled.lua similarity index 97% rename from NewAge/AHBot/EveryFrameThrottled.lua rename to WeakAuras/Projects/AHBot/EveryFrameThrottled.lua index 2fafe3f..6e30da2 100644 --- a/NewAge/AHBot/EveryFrameThrottled.lua +++ b/WeakAuras/Projects/AHBot/EveryFrameThrottled.lua @@ -1,6 +1,6 @@ -function() - if not aura_env.last or aura_env.last < GetTime() - aura_env.throttleTime then - aura_env.last = GetTime() - AuctionHouseFrame.SearchBar.FavoritesSearchButton:Click() - end +function() + if not aura_env.last or aura_env.last < GetTime() - aura_env.throttleTime then + aura_env.last = GetTime() + AuctionHouseFrame.SearchBar.FavoritesSearchButton:Click() + end end \ No newline at end of file diff --git a/NewAge/AHBot/INIT.lua b/WeakAuras/Projects/AHBot/INIT.lua similarity index 97% rename from NewAge/AHBot/INIT.lua rename to WeakAuras/Projects/AHBot/INIT.lua index bdd5d98..f6fb62b 100644 --- a/NewAge/AHBot/INIT.lua +++ b/WeakAuras/Projects/AHBot/INIT.lua @@ -1,17 +1,17 @@ -aura_env.throttleTime = 10 - -aura_env.sellPriceThresholds = { - [168446] = 5000 * 100 * 100, -- Accord of Critical Strike - [168447] = 5000 * 100 * 100, -- Accord of Haste - [168448] = 5000 * 100 * 100, -- Accord of Mastery - [168449] = 5000 * 100 * 100, -- Accord of Versatility - [168592] = 4500 * 100 * 100, -- Oceanic Restoration - [168496] = 4500 * 100 * 100, -- Force Multiplier - [168593] = 4500 * 100 * 100, -- Machinist's Brilliance - [168598] = 4500 * 100 * 100, -- Naga Hide -} - -aura_env.buyPriceThresholds = { - [152576] = 5 * 100 * 100, -- Tidesrpay Linen - [152877] = 500 * 100 * 100, -- Veiled Crystal -} +aura_env.throttleTime = 10 + +aura_env.sellPriceThresholds = { + [168446] = 5000 * 100 * 100, -- Accord of Critical Strike + [168447] = 5000 * 100 * 100, -- Accord of Haste + [168448] = 5000 * 100 * 100, -- Accord of Mastery + [168449] = 5000 * 100 * 100, -- Accord of Versatility + [168592] = 4500 * 100 * 100, -- Oceanic Restoration + [168496] = 4500 * 100 * 100, -- Force Multiplier + [168593] = 4500 * 100 * 100, -- Machinist's Brilliance + [168598] = 4500 * 100 * 100, -- Naga Hide +} + +aura_env.buyPriceThresholds = { + [152576] = 5 * 100 * 100, -- Tidesrpay Linen + [152877] = 500 * 100 * 100, -- Veiled Crystal +} diff --git a/NewAge/AHBot/Info.txt b/WeakAuras/Projects/AHBot/Info.txt similarity index 98% rename from NewAge/AHBot/Info.txt rename to WeakAuras/Projects/AHBot/Info.txt index d4a3b55..599f3f8 100644 --- a/NewAge/AHBot/Info.txt +++ b/WeakAuras/Projects/AHBot/Info.txt @@ -1,3 +1,3 @@ -/run AuctionHouseFrame.SearchBar.FavoritesSearchButton:Click() - +/run AuctionHouseFrame.SearchBar.FavoritesSearchButton:Click() + /dump C_AuctionHouse.GetBrowseResults() \ No newline at end of file diff --git a/FreshShit/Absorbs/color.lua b/WeakAuras/Projects/Absorbs/color.lua similarity index 97% rename from FreshShit/Absorbs/color.lua rename to WeakAuras/Projects/Absorbs/color.lua index af02e43..81ecc1e 100644 --- a/FreshShit/Absorbs/color.lua +++ b/WeakAuras/Projects/Absorbs/color.lua @@ -1,3 +1,3 @@ -function(progress) - return aura_env.Display.color.r, aura_env.Display.color.g, aura_env.Display.color.b, 1 - end +function(progress) + return aura_env.Display.color.r, aura_env.Display.color.g, aura_env.Display.color.b, 1 + end diff --git a/FreshShit/Absorbs/duration.lua b/WeakAuras/Projects/Absorbs/duration.lua similarity index 96% rename from FreshShit/Absorbs/duration.lua rename to WeakAuras/Projects/Absorbs/duration.lua index 2e57a3e..6558a26 100644 --- a/FreshShit/Absorbs/duration.lua +++ b/WeakAuras/Projects/Absorbs/duration.lua @@ -1,4 +1,4 @@ -function() - local current, max = aura_env.ShieldManager.GetStats() - return current, max, 1 +function() + local current, max = aura_env.ShieldManager.GetStats() + return current, max, 1 end \ No newline at end of file diff --git a/FreshShit/Absorbs/event.lua b/WeakAuras/Projects/Absorbs/event.lua similarity index 95% rename from FreshShit/Absorbs/event.lua rename to WeakAuras/Projects/Absorbs/event.lua index 041aee8..e2d2668 100644 --- a/FreshShit/Absorbs/event.lua +++ b/WeakAuras/Projects/Absorbs/event.lua @@ -1,8 +1,8 @@ --- TICKER_500 -function() - for _, shield in pairs(aura_env.Shields) do - shield:Update() - end - aura_env.Display.Update() - return true +-- TICKER_500 +function() + for _, shield in pairs(aura_env.Shields) do + shield:Update() + end + aura_env.Display.Update() + return true end \ No newline at end of file diff --git a/FreshShit/Absorbs/export b/WeakAuras/Projects/Absorbs/export similarity index 100% rename from FreshShit/Absorbs/export rename to WeakAuras/Projects/Absorbs/export diff --git a/FreshShit/Absorbs/init.lua b/WeakAuras/Projects/Absorbs/init.lua similarity index 100% rename from FreshShit/Absorbs/init.lua rename to WeakAuras/Projects/Absorbs/init.lua diff --git a/FreshShit/Absorbs/scratch.lua b/WeakAuras/Projects/Absorbs/scratch.lua similarity index 95% rename from FreshShit/Absorbs/scratch.lua rename to WeakAuras/Projects/Absorbs/scratch.lua index d0aba94..fa480df 100644 --- a/FreshShit/Absorbs/scratch.lua +++ b/WeakAuras/Projects/Absorbs/scratch.lua @@ -1,28 +1,28 @@ ----@param table table ----@param depth number? -function DumpTable(table, depth) - 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 - print(string.rep(" ", depth) .. k .. ":") - DumpTable(v, depth + 1) - else - print(string.rep(" ", depth) .. k .. ": ", v) - end - end -end - -local colorer = Colorer.new() - -local value = 1.21 -local rgb = colorer:Interpolate(value) - -for i = 1, 150 do - local value = i / 100 - local rgb = colorer:Interpolate(value) - print(value, rgb.r, rgb.g, rgb.b) -end +---@param table table +---@param depth number? +function DumpTable(table, depth) + 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 + print(string.rep(" ", depth) .. k .. ":") + DumpTable(v, depth + 1) + else + print(string.rep(" ", depth) .. k .. ": ", v) + end + end +end + +local colorer = Colorer.new() + +local value = 1.21 +local rgb = colorer:Interpolate(value) + +for i = 1, 150 do + local value = i / 100 + local rgb = colorer:Interpolate(value) + print(value, rgb.r, rgb.g, rgb.b) +end diff --git a/FreshShit/Absorbs/text.lua b/WeakAuras/Projects/Absorbs/text.lua similarity index 97% rename from FreshShit/Absorbs/text.lua rename to WeakAuras/Projects/Absorbs/text.lua index 9a4fb30..660d4fb 100644 --- a/FreshShit/Absorbs/text.lua +++ b/WeakAuras/Projects/Absorbs/text.lua @@ -1,3 +1,3 @@ -function() - return aura_env.Display.current, aura_env.Display.max, aura_env.Display.ofHp +function() + return aura_env.Display.current, aura_env.Display.max, aura_env.Display.ofHp end \ No newline at end of file diff --git a/FreshShit/AchievementSniffer/event.lua b/WeakAuras/Projects/AchievementSniffer/event.lua similarity index 96% rename from FreshShit/AchievementSniffer/event.lua rename to WeakAuras/Projects/AchievementSniffer/event.lua index 854642b..d6aa2cd 100644 --- a/FreshShit/AchievementSniffer/event.lua +++ b/WeakAuras/Projects/AchievementSniffer/event.lua @@ -1,5 +1,5 @@ ---- PLAYER_TARGET_CHANGED ---- Deprecated in favor of Heimdall.AchievementSniffer ---function(allstates) --- aura_env.TryInspect() ---end +--- PLAYER_TARGET_CHANGED +--- Deprecated in favor of Heimdall.AchievementSniffer +--function(allstates) +-- aura_env.TryInspect() +--end diff --git a/FreshShit/AchievementSniffer/event2.lua b/WeakAuras/Projects/AchievementSniffer/event2.lua similarity index 97% rename from FreshShit/AchievementSniffer/event2.lua rename to WeakAuras/Projects/AchievementSniffer/event2.lua index ab96e90..7874343 100644 --- a/FreshShit/AchievementSniffer/event2.lua +++ b/WeakAuras/Projects/AchievementSniffer/event2.lua @@ -1,16 +1,16 @@ ---- INSPECT_ACHIEVEMENT_READY ---- Deprecated in favor of Heimdall.AchievementSniffer ---function() --- local targetGuid = UnitGUID("target") --- if not targetGuid then return end --- if not string.match(targetGuid, "Player") then return end --- local targetName = UnitName("target") --- --- local should = false --- if not WeakAurasSaved.Cyka.AchievementSniffer[targetName] then should = true end --- if WeakAurasSaved.Cyka.AchievementSniffer2[targetName] then should = false end --- if aura_env.config.rescan then should = true end --- if not should then return end --- --- aura_env.Scan(targetName) ---end +--- INSPECT_ACHIEVEMENT_READY +--- Deprecated in favor of Heimdall.AchievementSniffer +--function() +-- local targetGuid = UnitGUID("target") +-- if not targetGuid then return end +-- if not string.match(targetGuid, "Player") then return end +-- local targetName = UnitName("target") +-- +-- local should = false +-- if not WeakAurasSaved.Cyka.AchievementSniffer[targetName] then should = true end +-- if WeakAurasSaved.Cyka.AchievementSniffer2[targetName] then should = false end +-- if aura_env.config.rescan then should = true end +-- if not should then return end +-- +-- aura_env.Scan(targetName) +--end diff --git a/FreshShit/AchievementSniffer/event3.lua b/WeakAuras/Projects/AchievementSniffer/event3.lua similarity index 94% rename from FreshShit/AchievementSniffer/event3.lua rename to WeakAuras/Projects/AchievementSniffer/event3.lua index 98988f9..986edaf 100644 --- a/FreshShit/AchievementSniffer/event3.lua +++ b/WeakAuras/Projects/AchievementSniffer/event3.lua @@ -1,4 +1,4 @@ --- TICKER_500 -function() - aura_env.TryInspect() +-- TICKER_500 +function() + aura_env.TryInspect() end \ No newline at end of file diff --git a/FreshShit/AchievementSniffer/event4.lua b/WeakAuras/Projects/AchievementSniffer/event4.lua similarity index 95% rename from FreshShit/AchievementSniffer/event4.lua rename to WeakAuras/Projects/AchievementSniffer/event4.lua index 8bfa7d8..12d087e 100644 --- a/FreshShit/AchievementSniffer/event4.lua +++ b/WeakAuras/Projects/AchievementSniffer/event4.lua @@ -1,32 +1,32 @@ ---- TICKER_200 -function(allstates) - for i = 0, 40 do - local unit = "nameplate" .. i - if UnitIsPlayer(unit) then - local name = UnitName(unit) - local seen = false - if not Heimdall_Achievements then return end - if not Heimdall_Achievements.players then return end - if not Heimdall_Achievements.alreadySeen then return end - - if Heimdall_Achievements.players[name] then seen = true end - if Heimdall_Achievements.alreadySeen[name] then seen = true end - - allstates[unit] = { - show = true, - changed = true, - name = name, - unit = unit, - seen = seen, - } - else - allstates[unit] = { - show = false, - changed = true, - seen = false, - } - end - end - - return true +--- TICKER_200 +function(allstates) + for i = 0, 40 do + local unit = "nameplate" .. i + if UnitIsPlayer(unit) then + local name = UnitName(unit) + local seen = false + if not Heimdall_Achievements then return end + if not Heimdall_Achievements.players then return end + if not Heimdall_Achievements.alreadySeen then return end + + if Heimdall_Achievements.players[name] then seen = true end + if Heimdall_Achievements.alreadySeen[name] then seen = true end + + allstates[unit] = { + show = true, + changed = true, + name = name, + unit = unit, + seen = seen, + } + else + allstates[unit] = { + show = false, + changed = true, + seen = false, + } + end + end + + return true end \ No newline at end of file diff --git a/FreshShit/AchievementSniffer/event4_variables.lua b/WeakAuras/Projects/AchievementSniffer/event4_variables.lua similarity index 90% rename from FreshShit/AchievementSniffer/event4_variables.lua rename to WeakAuras/Projects/AchievementSniffer/event4_variables.lua index e457baa..021dd8e 100644 --- a/FreshShit/AchievementSniffer/event4_variables.lua +++ b/WeakAuras/Projects/AchievementSniffer/event4_variables.lua @@ -1,3 +1,3 @@ -{ - seen = "bool", +{ + seen = "bool", } \ No newline at end of file diff --git a/FreshShit/AchievementSniffer/export b/WeakAuras/Projects/AchievementSniffer/export similarity index 100% rename from FreshShit/AchievementSniffer/export rename to WeakAuras/Projects/AchievementSniffer/export diff --git a/FreshShit/AchievementSniffer/info b/WeakAuras/Projects/AchievementSniffer/info similarity index 97% rename from FreshShit/AchievementSniffer/info rename to WeakAuras/Projects/AchievementSniffer/info index a9e972f..f0389e8 100644 --- a/FreshShit/AchievementSniffer/info +++ b/WeakAuras/Projects/AchievementSniffer/info @@ -1,135 +1,135 @@ -main achievement frame is AchievementFrame -The tabs are -AchievementFrameTab1 2 3 -First is "Achievements", 2nd guild and 3rd statistics -Statistics might also be useful but that would be hard to tell, for now - -AchievementFrame > AchievementFrameComparison -The comparison frame is AchievementFrameComparisonContainer (N/A) -Scroll buttons are AchievementFrameComparisonContainerScrollBarScrollDownButton (scrollDown) and AchievementFrameComparisonContainerScrollBarScrollUpButton (scrollUp) - -The actual individual achievement data is in -AchievementFrameComparisonContainerScrollChild (ScrollChild) (not a typo) -It has achievements listed as: -AchievementFrameComparisonContainerButton1 .. 10 -Always seems to be 10 -Scrolling should move 1 new into the view and 1 old out of view - -The buttons themselves represent one row (one achievement) -Our achievement is found in -AchievementFrameComparisonContainerButton1Player (player) -AchievementFrameComparisonContainerButton1Friend (friend) -Ours has names while friend has no names -So we will have to use names from Player and dates from Friend - -Name, title, is under AchievementFrameComparisonContainerButton1PlayerLabel (label) -Friend date achieved is under AchievementFrameComparisonContainerButton1FriendStatus (status) - -We can also get achievement ID from the button frame -AchievementFrameComparisonContainerButton1P under the "id" property - -Categories are under -AchievementFrameCategories (N/A) > AchievementFrameCategoriesContainer (N/A) - -Structure is the same as AchievementFrameComparisonContainer -We have scroll child and scroll up/down -Although there's no scrolling so I'm not sure what we scroll -Not true - the buttons are categories to be expanded into -And clicking one does expand -So after we click we have to recalculate their positions - -In AchievementFrameCategoriesContainer we have many buttons which correspond to categories -The best way of browsing them that I can see is reading the title of each -Since we are only interested in a few -AchievementFrameCategoriesContainerButton1 .. n - -The title is the same structure as the achievement title -AchievementFrameCategoriesContainerButton1Label (label) -Under each button of course - -We can also get the category ID and name from the button frame -AchievementFrameCategoriesContainerButton1 -Under "categoryID" and "name" - - -[11:20 PM] [Virag's DT]: 23:20:04 INSPECT_ACHIEVEMENT_READY - (2) table: 000001AF07021540 -Fires when the achievement frame is ready -Argument #2 is the GUID of the player -None is fired when the frame is closed... -I guess we'll have to check each frame we go over - -See -canInspect = CanInspect("unit", showError) -Arguments: - unit - A unit to inspect (string, unitID) - showError - True to fire a UI_ERROR_MESSAGE event (causing the default UI to display an error message) if the unit cannot be inspected; otherwise false (boolean) -Returns: - canInspect - 1 if the unit can be inspected; otherwise nil (1nil) - -Actually nevermind, this seems much easier and simpler: -completed, month, day, year = GetAchievementComparisonInfo(achievementID) - completed - boolean - Returns true/false depending on whether the unit has completed the achievement or not. - month - number - Month in which the unit has completed the achievement. Returns nil if completed is false. - day - number - Day of the month in which the unit has completed the achievement. Returns nil if completed is false. - year - number - Year (two digits, 21st century is assumed) in which the unit has completed the achievement. Returns nil if completed is false. -Only accurate after the after SetAchievementComparisonUnit is called and the INSPECT_ACHIEVEMENT_READY event has fired. - -success = SetAchievementComparisonUnit(unit) - success - boolean - Returns true/false depending on whether the unit is valid. --> INSPECT_ACHIEVEMENT_READY - -522 -- Somebody Likes Me -523 -- 5 Exalted Reputations -524 -- 10 Exalted Reputations -521 -- 15 Exalted Reputations -520 -- 20 Exalted Reputations -519 -- 25 Exalted Reputations -518 -- 30 Exalted Reputations -1556 -- 25 Fish -1557 -- 50 Fish -1558 -- 100 Fish -238 -- An Honorable Kill -513 -- 100 Honorable Kills -515 -- 500 Honorable Kills -516 -- 1000 Honorable Kills -512 -- 5000 Honorable Kills -509 -- 10000 Honorable Kills -239 -- 25000 Honorable Kills -503 -- 50 Quests Completed -504 -- 100 Quests Completed -505 -- 250 Quests Completed -506 -- 500 Quests Completed -507 -- 1000 Quests Completed -1017 -- Can I Keep Him? -15 -- Plenty of Pets -1248 -- Plethora of Pets -1250 -- Shop Smart, Shop Pet...Smart -2516 -- Lil' Game Hunter -5876 -- Petting Zoo -11188 -- Broken Isles Explorer -11190 -- Broken Isles Pathfinder, Part One -11157 -- Loremaster of Legion -10763 -- Azsuna Matata -10790 -- Vrykul Story, Bro -11124 -- Good Suramaritan -10059 -- Ain't No Mountain High Enough -10698 -- That's Val'sharah Folks! -10672 -- Broken Isles Diplomat -10665 -- Explore Azsuna -10666 -- Explore Val'sharah -10667 -- Explore Highmountain -10668 -- Explore Stormheim -10669 -- Explore Suramar -12069 -- Explore Argus -2141 -- Stable Keeper -2142 -- Filling Up The Barn -2143 -- Leading the Cavalry -7382 -- Dynamic Duo -7383 -- Terrific Trio -7384 -- Quintessential Quintet +main achievement frame is AchievementFrame +The tabs are +AchievementFrameTab1 2 3 +First is "Achievements", 2nd guild and 3rd statistics +Statistics might also be useful but that would be hard to tell, for now + +AchievementFrame > AchievementFrameComparison +The comparison frame is AchievementFrameComparisonContainer (N/A) +Scroll buttons are AchievementFrameComparisonContainerScrollBarScrollDownButton (scrollDown) and AchievementFrameComparisonContainerScrollBarScrollUpButton (scrollUp) + +The actual individual achievement data is in +AchievementFrameComparisonContainerScrollChild (ScrollChild) (not a typo) +It has achievements listed as: +AchievementFrameComparisonContainerButton1 .. 10 +Always seems to be 10 +Scrolling should move 1 new into the view and 1 old out of view + +The buttons themselves represent one row (one achievement) +Our achievement is found in +AchievementFrameComparisonContainerButton1Player (player) +AchievementFrameComparisonContainerButton1Friend (friend) +Ours has names while friend has no names +So we will have to use names from Player and dates from Friend + +Name, title, is under AchievementFrameComparisonContainerButton1PlayerLabel (label) +Friend date achieved is under AchievementFrameComparisonContainerButton1FriendStatus (status) + +We can also get achievement ID from the button frame +AchievementFrameComparisonContainerButton1P under the "id" property + +Categories are under +AchievementFrameCategories (N/A) > AchievementFrameCategoriesContainer (N/A) + +Structure is the same as AchievementFrameComparisonContainer +We have scroll child and scroll up/down +Although there's no scrolling so I'm not sure what we scroll +Not true - the buttons are categories to be expanded into +And clicking one does expand +So after we click we have to recalculate their positions + +In AchievementFrameCategoriesContainer we have many buttons which correspond to categories +The best way of browsing them that I can see is reading the title of each +Since we are only interested in a few +AchievementFrameCategoriesContainerButton1 .. n + +The title is the same structure as the achievement title +AchievementFrameCategoriesContainerButton1Label (label) +Under each button of course + +We can also get the category ID and name from the button frame +AchievementFrameCategoriesContainerButton1 +Under "categoryID" and "name" + + +[11:20 PM] [Virag's DT]: 23:20:04 INSPECT_ACHIEVEMENT_READY - (2) table: 000001AF07021540 +Fires when the achievement frame is ready +Argument #2 is the GUID of the player +None is fired when the frame is closed... +I guess we'll have to check each frame we go over + +See +canInspect = CanInspect("unit", showError) +Arguments: + unit - A unit to inspect (string, unitID) + showError - True to fire a UI_ERROR_MESSAGE event (causing the default UI to display an error message) if the unit cannot be inspected; otherwise false (boolean) +Returns: + canInspect - 1 if the unit can be inspected; otherwise nil (1nil) + +Actually nevermind, this seems much easier and simpler: +completed, month, day, year = GetAchievementComparisonInfo(achievementID) + completed + boolean - Returns true/false depending on whether the unit has completed the achievement or not. + month + number - Month in which the unit has completed the achievement. Returns nil if completed is false. + day + number - Day of the month in which the unit has completed the achievement. Returns nil if completed is false. + year + number - Year (two digits, 21st century is assumed) in which the unit has completed the achievement. Returns nil if completed is false. +Only accurate after the after SetAchievementComparisonUnit is called and the INSPECT_ACHIEVEMENT_READY event has fired. + +success = SetAchievementComparisonUnit(unit) + success + boolean - Returns true/false depending on whether the unit is valid. +-> INSPECT_ACHIEVEMENT_READY + +522 -- Somebody Likes Me +523 -- 5 Exalted Reputations +524 -- 10 Exalted Reputations +521 -- 15 Exalted Reputations +520 -- 20 Exalted Reputations +519 -- 25 Exalted Reputations +518 -- 30 Exalted Reputations +1556 -- 25 Fish +1557 -- 50 Fish +1558 -- 100 Fish +238 -- An Honorable Kill +513 -- 100 Honorable Kills +515 -- 500 Honorable Kills +516 -- 1000 Honorable Kills +512 -- 5000 Honorable Kills +509 -- 10000 Honorable Kills +239 -- 25000 Honorable Kills +503 -- 50 Quests Completed +504 -- 100 Quests Completed +505 -- 250 Quests Completed +506 -- 500 Quests Completed +507 -- 1000 Quests Completed +1017 -- Can I Keep Him? +15 -- Plenty of Pets +1248 -- Plethora of Pets +1250 -- Shop Smart, Shop Pet...Smart +2516 -- Lil' Game Hunter +5876 -- Petting Zoo +11188 -- Broken Isles Explorer +11190 -- Broken Isles Pathfinder, Part One +11157 -- Loremaster of Legion +10763 -- Azsuna Matata +10790 -- Vrykul Story, Bro +11124 -- Good Suramaritan +10059 -- Ain't No Mountain High Enough +10698 -- That's Val'sharah Folks! +10672 -- Broken Isles Diplomat +10665 -- Explore Azsuna +10666 -- Explore Val'sharah +10667 -- Explore Highmountain +10668 -- Explore Stormheim +10669 -- Explore Suramar +12069 -- Explore Argus +2141 -- Stable Keeper +2142 -- Filling Up The Barn +2143 -- Leading the Cavalry +7382 -- Dynamic Duo +7383 -- Terrific Trio +7384 -- Quintessential Quintet 245 -- That Takes Class \ No newline at end of file diff --git a/FreshShit/AchievementSniffer/init.lua b/WeakAuras/Projects/AchievementSniffer/init.lua similarity index 93% rename from FreshShit/AchievementSniffer/init.lua rename to WeakAuras/Projects/AchievementSniffer/init.lua index b95ecf2..fbe1c7f 100644 --- a/FreshShit/AchievementSniffer/init.lua +++ b/WeakAuras/Projects/AchievementSniffer/init.lua @@ -1,223 +1,223 @@ ----@class aura_env ----@field achievements table ----@field Scan fun(playerName: string) ----@field TryInspect fun() - ----@class WeakAurasSaved ----@field Cyka table>> - -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 -end - -aura_env.achievements = { - 15, - 153, - 245, - 506, - 507, - 513, - 524, - 648, - 649, - 651, - 655, - 657, - 660, - 661, - 667, - 668, - 669, - 671, - 676, - 678, - 681, - 682, - 697, - 777, - 958, - 974, - 975, - 1017, - 1266, - 1556, - 1557, - 1558, - 1576, - 2078, - 2141, - 2200, - 4477, - 4478, - 4624, - 4914, - 4958, - 4960, - 5455, - 5456, - 5749, - 5752, - 6456, - 6460, - 6753, - 6757, - 6758, - 6835, - 7382, - 7383, - 7384, - 7437, - 7948, - 8929, - 8952, - 8956, - 8966, - 8967, - 8969, - 8978, - 8979, - 8980, - 8981, - 8982, - 8983, - 9017, - 9038, - 9132, - 9493, - 9507, - 10059, - 10079, - 10278, - 10460, - 10581, - 10585, - 10595, - 10597, - 10617, - 10657, - 10666, - 10667, - 10668, - 10672, - 10682, - 10684, - 10688, - 10689, - 10692, - 10693, - 10698, - 10706, - 10746, - 10755, - 10756, - 10763, - 10772, - 10775, - 10790, - 10800, - 10818, - 10819, - 10820, - 10875, - 10994, - 11124, - 11126, - 11127, - 11128, - 11153, - 11157, - 11164, - 11188, - 11189, - 11190, - 11214, - 11220, - 11298, - 11338, - 11394, - 11446, - 11473, - 11545, - 11559, - 11610, - 11611, - 11653, - 11657, - 11658, - 11659, - 11660, - 11674, - 11773, - 11787, - 11789, - 11790, - 11796, - 11992, - 11993, - 11994, - 11995, - 11996, - 11997, - 11998, - 11999, - 12000, - 12001, - 12008, - 12015, - 12020, - 12026, - 12028, - 12030, - 12072, - 12074, - 12085, - 12086, - 12103, - 12110, - 12445, - 12447, - 12448, -} - -aura_env.TryInspect = function() - local targetPlayer = UnitIsPlayer("target") - if not targetPlayer then return end - local targetName = UnitName("target") - - local should = false - if not WeakAurasSaved.Cyka.AchievementSniffer[targetName] then should = true end - if WeakAurasSaved.Cyka.AchievementSniffer2[targetName] then should = false end - if aura_env.config.rescan then should = true end - if not should then return end - - local canInspect = CheckInteractDistance("target", 1) - if canInspect then SetAchievementComparisonUnit("target") end -end - ----@param playerName string -aura_env.Scan = function(playerName) - WeakAurasSaved.Cyka.AchievementSniffer[playerName] = {} - for i, aid in ipairs(aura_env.achievements) do - local completed, month, day, year = GetAchievementComparisonInfo(aid) - if completed then - ---@type string - local yearstr = "" .. year - if year < 100 then yearstr = "20" .. year end - - local date = string.format("%04d-%02d-%02d", yearstr, month, day) - - local data = { - id = aid, - date = date, - completed = completed, - } - WeakAurasSaved.Cyka.AchievementSniffer[playerName][aid] = data - end - end -end - ---/run WeakAurasSaved.Cyka.AchievementSniffer = {} ---/dump WeakAurasSaved.Cyka.AchievementSniffer["Pinkleta"] +---@class aura_env +---@field achievements table +---@field Scan fun(playerName: string) +---@field TryInspect fun() + +---@class WeakAurasSaved +---@field Cyka table>> + +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 +end + +aura_env.achievements = { + 15, + 153, + 245, + 506, + 507, + 513, + 524, + 648, + 649, + 651, + 655, + 657, + 660, + 661, + 667, + 668, + 669, + 671, + 676, + 678, + 681, + 682, + 697, + 777, + 958, + 974, + 975, + 1017, + 1266, + 1556, + 1557, + 1558, + 1576, + 2078, + 2141, + 2200, + 4477, + 4478, + 4624, + 4914, + 4958, + 4960, + 5455, + 5456, + 5749, + 5752, + 6456, + 6460, + 6753, + 6757, + 6758, + 6835, + 7382, + 7383, + 7384, + 7437, + 7948, + 8929, + 8952, + 8956, + 8966, + 8967, + 8969, + 8978, + 8979, + 8980, + 8981, + 8982, + 8983, + 9017, + 9038, + 9132, + 9493, + 9507, + 10059, + 10079, + 10278, + 10460, + 10581, + 10585, + 10595, + 10597, + 10617, + 10657, + 10666, + 10667, + 10668, + 10672, + 10682, + 10684, + 10688, + 10689, + 10692, + 10693, + 10698, + 10706, + 10746, + 10755, + 10756, + 10763, + 10772, + 10775, + 10790, + 10800, + 10818, + 10819, + 10820, + 10875, + 10994, + 11124, + 11126, + 11127, + 11128, + 11153, + 11157, + 11164, + 11188, + 11189, + 11190, + 11214, + 11220, + 11298, + 11338, + 11394, + 11446, + 11473, + 11545, + 11559, + 11610, + 11611, + 11653, + 11657, + 11658, + 11659, + 11660, + 11674, + 11773, + 11787, + 11789, + 11790, + 11796, + 11992, + 11993, + 11994, + 11995, + 11996, + 11997, + 11998, + 11999, + 12000, + 12001, + 12008, + 12015, + 12020, + 12026, + 12028, + 12030, + 12072, + 12074, + 12085, + 12086, + 12103, + 12110, + 12445, + 12447, + 12448, +} + +aura_env.TryInspect = function() + local targetPlayer = UnitIsPlayer("target") + if not targetPlayer then return end + local targetName = UnitName("target") + + local should = false + if not WeakAurasSaved.Cyka.AchievementSniffer[targetName] then should = true end + if WeakAurasSaved.Cyka.AchievementSniffer2[targetName] then should = false end + if aura_env.config.rescan then should = true end + if not should then return end + + local canInspect = CheckInteractDistance("target", 1) + if canInspect then SetAchievementComparisonUnit("target") end +end + +---@param playerName string +aura_env.Scan = function(playerName) + WeakAurasSaved.Cyka.AchievementSniffer[playerName] = {} + for i, aid in ipairs(aura_env.achievements) do + local completed, month, day, year = GetAchievementComparisonInfo(aid) + if completed then + ---@type string + local yearstr = "" .. year + if year < 100 then yearstr = "20" .. year end + + local date = string.format("%04d-%02d-%02d", yearstr, month, day) + + local data = { + id = aid, + date = date, + completed = completed, + } + WeakAurasSaved.Cyka.AchievementSniffer[playerName][aid] = data + end + end +end + +--/run WeakAurasSaved.Cyka.AchievementSniffer = {} +--/dump WeakAurasSaved.Cyka.AchievementSniffer["Pinkleta"] diff --git a/FreshShit/AchievementSniffer/scratch.lua b/WeakAuras/Projects/AchievementSniffer/scratch.lua similarity index 95% rename from FreshShit/AchievementSniffer/scratch.lua rename to WeakAuras/Projects/AchievementSniffer/scratch.lua index aa8a0c6..56fc449 100644 --- a/FreshShit/AchievementSniffer/scratch.lua +++ b/WeakAuras/Projects/AchievementSniffer/scratch.lua @@ -1,7 +1,7 @@ -local year = 20 -local month = 7 -local day = 12 - -if year < 100 then year = "20" .. year end - -print(string.format("%4d-%02d-%02d", year, month, day)) +local year = 20 +local month = 7 +local day = 12 + +if year < 100 then year = "20" .. year end + +print(string.format("%4d-%02d-%02d", year, month, day)) diff --git a/Complete Projects/Legion/Achiv Inspector.lua b/WeakAuras/Projects/Achiv Inspector.lua similarity index 94% rename from Complete Projects/Legion/Achiv Inspector.lua rename to WeakAuras/Projects/Achiv Inspector.lua index e643bdb..0b7ab06 100644 --- a/Complete Projects/Legion/Achiv Inspector.lua +++ b/WeakAuras/Projects/Achiv Inspector.lua @@ -1,318 +1,318 @@ ---UPDATE_MOUSEOVER_UNIT PLAYER_TARGET_CHANGED -function() - if not UnitExists("target") and UnitExists("mouseover") and UnitIsPlayer("mouseover") then - aura_env.output = "Boss RF NM HC Myth" .. "\n" - bossKills = - { - { - [1] = 0, - [2] = 0, - [3] = 0, - [4] = 0 - }, - { - [1] = 0, - [2] = 0, - [3] = 0, - [4] = 0 - }, - { - [1] = 0, - [2] = 0, - [3] = 0, - [4] = 0 - }, - { - [1] = 0, - [2] = 0, - [3] = 0, - [4] = 0 - }, - { - [1] = 0, - [2] = 0, - [3] = 0, - [4] = 0 - }, - { - [1] = 0, - [2] = 0, - [3] = 0, - [4] = 0 - }, - { - [1] = 0, - [2] = 0, - [3] = 0, - [4] = 0 - }, - { - [1] = 0, - [2] = 0, - [3] = 0, - [4] = 0 - }, - { - [1] = 0, - [2] = 0, - [3] = 0, - [4] = 0 - }, - } - SetAchievementComparisonUnit("mouseover") - end - if not UnitExists("mouseover") and UnitExists("target") and UnitIsPlayer("target") then - aura_env.output = "Boss RF NM HC Myth" .. "\n" - bossKills = - { - { - [1] = 0, - [2] = 0, - [3] = 0, - [4] = 0 - }, - { - [1] = 0, - [2] = 0, - [3] = 0, - [4] = 0 - }, - { - [1] = 0, - [2] = 0, - [3] = 0, - [4] = 0 - }, - { - [1] = 0, - [2] = 0, - [3] = 0, - [4] = 0 - }, - { - [1] = 0, - [2] = 0, - [3] = 0, - [4] = 0 - }, - { - [1] = 0, - [2] = 0, - [3] = 0, - [4] = 0 - }, - { - [1] = 0, - [2] = 0, - [3] = 0, - [4] = 0 - }, - { - [1] = 0, - [2] = 0, - [3] = 0, - [4] = 0 - }, - { - [1] = 0, - [2] = 0, - [3] = 0, - [4] = 0 - }, - } - SetAchievementComparisonUnit("target") - end -end - ---INSPECT_ACHIEVEMENT_READY -function() - aura_env.output = "Boss RF NM HC Myth" .. "\n" - for k,v in ipairs(aura_env.TOS) do - if GetComparisonStatistic(aura_env.TOS[k][1]) ~= "--" or GetComparisonStatistic(aura_env.TOS[k][2]) ~= "--" or GetComparisonStatistic(aura_env.TOS[k][3]) ~= "--" or GetComparisonStatistic(aura_env.TOS[k][4]) ~= "--" then - local bossname = select(2, GetAchievementInfo(aura_env.TOS[k][1])) - bossname = bossname:match("[a-zA-Z' ]*kills") - bossname = bossname:gsub(" kills", "") - aura_env.output = aura_env.output .. bossname .. "\n" - if GetComparisonStatistic(aura_env.TOS[k][1]) ~= "--" then - bossKills[k][1] = GetComparisonStatistic(aura_env.TOS[k][1]) - end - if GetComparisonStatistic(aura_env.TOS[k][2]) ~= "--" then - bossKills[k][2] = GetComparisonStatistic(aura_env.TOS[k][2]) - end - if GetComparisonStatistic(aura_env.TOS[k][3]) ~= "--" then - bossKills[k][3] = GetComparisonStatistic(aura_env.TOS[k][3]) - end - if GetComparisonStatistic(aura_env.TOS[k][4]) ~= "--" then - bossKills[k][4] = GetComparisonStatistic(aura_env.TOS[k][4]) - end - end - end - ClearAchievementComparisonUnit() -end - ---WEAKAURA 2 DISPLAY -- RF BOSSES -function() - local output = "" - for k,v in ipairs(bossKills) do - if tonumber(bossKills[k][1]) > 0 then - output = output .. bossKills[k][1] .. "\n" - end - end - return output -end - ---WEAKAURA 2 DISPLAY -- NM BOSSES -function() - local output = "" - for k,v in ipairs(bossKills) do - if tonumber(bossKills[k][2]) > 0 then - output = output .. bossKills[k][2] .. "\n" - end - end - return output -end - ---WEAKAURA 2 DISPLAY -- HC BOSSES -function() - local output = "" - for k,v in ipairs(bossKills) do - if tonumber(bossKills[k][3]) > 0 then - output = output .. bossKills[k][3] .. "\n" - end - end - return output -end - ---WEAKAURA 2 DISPLAY -- Myth BOSSES -function() - local output = "" - for k,v in ipairs(bossKills) do - if tonumber(bossKills[k][4]) > 0 then - output = output .. bossKills[k][4] .. "\n" - end - end - return output -end - ---INIT -aura_env.TOS = -{ - { --Goroth - 11877, -- [1] - 11878, -- [2] - 11879, -- [3] - 11880, -- [4] - }, -- [1] - { --Inquisition - 11881, -- [1] - 11882, -- [2] - 11883, -- [3] - 11884, -- [4] - }, -- [2] - { --Harjatan - 11885, -- [1] - 11886, -- [2] - 11887, -- [3] - 11888, -- [4] - }, -- [3] - { --Sisters - 11889, -- [1] - 11890, -- [2] - 11891, -- [3] - 11892, -- [4] - }, -- [4] - { --Mistress - 11893, -- [1] - 11894, -- [2] - 11895, -- [3] - 11896, -- [4] - }, -- [5] - { --Host - 11897, -- [1] - 11898, -- [2] - 11899, -- [3] - 11900, -- [4] - }, -- [6] - { --Maiden - 11901, -- [1] - 11902, -- [2] - 11903, -- [3] - 11904, -- [4] - }, -- [7] - { --Avatar - 11905, -- [1] - 11906, -- [2] - 11907, -- [3] - 11908, -- [4] - }, -- [8] - { --Kil'jaeden - 11909, -- [1] - 11910, -- [2] - 11911, -- [3] - 11912, -- [4] - }, -- [9] -} -aura_env.NH = -{ - { --Skorp - 10940, -- [1] - 10941, -- [2] - 10942, -- [3] - 10943, -- [4] - }, -- [1] - { --Anomaly - 10944, -- [1] - 10945, -- [2] - 10946, -- [3] - 10947, -- [4] - }, -- [2] - { --Trilliax - 10948, -- [1] - 10949, -- [2] - 10950, -- [3] - 10951, -- [4] - }, -- [3] - { --Aluriel - 10952, -- [1] - 10953, -- [2] - 10954, -- [3] - 10955, -- [4] - }, -- [4] - { --Augur - 10956, -- [1] - 10957, -- [2] - 10959, -- [3] - 10960, -- [4] - }, -- [5] - { --Botanist - 10961, -- [1] - 10962, -- [2] - 10963, -- [3] - 10964, -- [4] - }, -- [6] - { --Tich - 10965, -- [1] - 10966, -- [2] - 10967, -- [3] - 10968, -- [4] - }, -- [7] - { --Krosus - 10969, -- [1] - 10970, -- [2] - 10971, -- [3] - 10972, -- [4] - }, -- [8] - { --Elisande - 10973, -- [1] - 10974, -- [2] - 10975, -- [3] - 10976, -- [4] - }, -- [9] - { --Gul'dan - 10977, -- [1] - 10978, -- [2] - 10979, -- [3] - 10980, -- [4] - }, -- [10] -} +--UPDATE_MOUSEOVER_UNIT PLAYER_TARGET_CHANGED +function() + if not UnitExists("target") and UnitExists("mouseover") and UnitIsPlayer("mouseover") then + aura_env.output = "Boss RF NM HC Myth" .. "\n" + bossKills = + { + { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0 + }, + { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0 + }, + { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0 + }, + { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0 + }, + { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0 + }, + { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0 + }, + { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0 + }, + { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0 + }, + { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0 + }, + } + SetAchievementComparisonUnit("mouseover") + end + if not UnitExists("mouseover") and UnitExists("target") and UnitIsPlayer("target") then + aura_env.output = "Boss RF NM HC Myth" .. "\n" + bossKills = + { + { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0 + }, + { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0 + }, + { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0 + }, + { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0 + }, + { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0 + }, + { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0 + }, + { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0 + }, + { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0 + }, + { + [1] = 0, + [2] = 0, + [3] = 0, + [4] = 0 + }, + } + SetAchievementComparisonUnit("target") + end +end + +--INSPECT_ACHIEVEMENT_READY +function() + aura_env.output = "Boss RF NM HC Myth" .. "\n" + for k,v in ipairs(aura_env.TOS) do + if GetComparisonStatistic(aura_env.TOS[k][1]) ~= "--" or GetComparisonStatistic(aura_env.TOS[k][2]) ~= "--" or GetComparisonStatistic(aura_env.TOS[k][3]) ~= "--" or GetComparisonStatistic(aura_env.TOS[k][4]) ~= "--" then + local bossname = select(2, GetAchievementInfo(aura_env.TOS[k][1])) + bossname = bossname:match("[a-zA-Z' ]*kills") + bossname = bossname:gsub(" kills", "") + aura_env.output = aura_env.output .. bossname .. "\n" + if GetComparisonStatistic(aura_env.TOS[k][1]) ~= "--" then + bossKills[k][1] = GetComparisonStatistic(aura_env.TOS[k][1]) + end + if GetComparisonStatistic(aura_env.TOS[k][2]) ~= "--" then + bossKills[k][2] = GetComparisonStatistic(aura_env.TOS[k][2]) + end + if GetComparisonStatistic(aura_env.TOS[k][3]) ~= "--" then + bossKills[k][3] = GetComparisonStatistic(aura_env.TOS[k][3]) + end + if GetComparisonStatistic(aura_env.TOS[k][4]) ~= "--" then + bossKills[k][4] = GetComparisonStatistic(aura_env.TOS[k][4]) + end + end + end + ClearAchievementComparisonUnit() +end + +--WEAKAURA 2 DISPLAY -- RF BOSSES +function() + local output = "" + for k,v in ipairs(bossKills) do + if tonumber(bossKills[k][1]) > 0 then + output = output .. bossKills[k][1] .. "\n" + end + end + return output +end + +--WEAKAURA 2 DISPLAY -- NM BOSSES +function() + local output = "" + for k,v in ipairs(bossKills) do + if tonumber(bossKills[k][2]) > 0 then + output = output .. bossKills[k][2] .. "\n" + end + end + return output +end + +--WEAKAURA 2 DISPLAY -- HC BOSSES +function() + local output = "" + for k,v in ipairs(bossKills) do + if tonumber(bossKills[k][3]) > 0 then + output = output .. bossKills[k][3] .. "\n" + end + end + return output +end + +--WEAKAURA 2 DISPLAY -- Myth BOSSES +function() + local output = "" + for k,v in ipairs(bossKills) do + if tonumber(bossKills[k][4]) > 0 then + output = output .. bossKills[k][4] .. "\n" + end + end + return output +end + +--INIT +aura_env.TOS = +{ + { --Goroth + 11877, -- [1] + 11878, -- [2] + 11879, -- [3] + 11880, -- [4] + }, -- [1] + { --Inquisition + 11881, -- [1] + 11882, -- [2] + 11883, -- [3] + 11884, -- [4] + }, -- [2] + { --Harjatan + 11885, -- [1] + 11886, -- [2] + 11887, -- [3] + 11888, -- [4] + }, -- [3] + { --Sisters + 11889, -- [1] + 11890, -- [2] + 11891, -- [3] + 11892, -- [4] + }, -- [4] + { --Mistress + 11893, -- [1] + 11894, -- [2] + 11895, -- [3] + 11896, -- [4] + }, -- [5] + { --Host + 11897, -- [1] + 11898, -- [2] + 11899, -- [3] + 11900, -- [4] + }, -- [6] + { --Maiden + 11901, -- [1] + 11902, -- [2] + 11903, -- [3] + 11904, -- [4] + }, -- [7] + { --Avatar + 11905, -- [1] + 11906, -- [2] + 11907, -- [3] + 11908, -- [4] + }, -- [8] + { --Kil'jaeden + 11909, -- [1] + 11910, -- [2] + 11911, -- [3] + 11912, -- [4] + }, -- [9] +} +aura_env.NH = +{ + { --Skorp + 10940, -- [1] + 10941, -- [2] + 10942, -- [3] + 10943, -- [4] + }, -- [1] + { --Anomaly + 10944, -- [1] + 10945, -- [2] + 10946, -- [3] + 10947, -- [4] + }, -- [2] + { --Trilliax + 10948, -- [1] + 10949, -- [2] + 10950, -- [3] + 10951, -- [4] + }, -- [3] + { --Aluriel + 10952, -- [1] + 10953, -- [2] + 10954, -- [3] + 10955, -- [4] + }, -- [4] + { --Augur + 10956, -- [1] + 10957, -- [2] + 10959, -- [3] + 10960, -- [4] + }, -- [5] + { --Botanist + 10961, -- [1] + 10962, -- [2] + 10963, -- [3] + 10964, -- [4] + }, -- [6] + { --Tich + 10965, -- [1] + 10966, -- [2] + 10967, -- [3] + 10968, -- [4] + }, -- [7] + { --Krosus + 10969, -- [1] + 10970, -- [2] + 10971, -- [3] + 10972, -- [4] + }, -- [8] + { --Elisande + 10973, -- [1] + 10974, -- [2] + 10975, -- [3] + 10976, -- [4] + }, -- [9] + { --Gul'dan + 10977, -- [1] + 10978, -- [2] + 10979, -- [3] + 10980, -- [4] + }, -- [10] +} aura_env.output = "" \ No newline at end of file diff --git a/Complete Projects/Legion/Active Seeds.lua b/WeakAuras/Projects/Active Seeds.lua similarity index 95% rename from Complete Projects/Legion/Active Seeds.lua rename to WeakAuras/Projects/Active Seeds.lua index 05e1cd6..bac117b 100644 --- a/Complete Projects/Legion/Active Seeds.lua +++ b/WeakAuras/Projects/Active Seeds.lua @@ -1,9 +1,9 @@ -function() - local seeds = 0 - for i = 1, 100 do - if UnitDebuff("nameplate" .. i, "Seed of Corruption") then - seeds = seeds + 1 - end - end - return seeds +function() + local seeds = 0 + for i = 1, 100 do + if UnitDebuff("nameplate" .. i, "Seed of Corruption") then + seeds = seeds + 1 + end + end + return seeds end \ No newline at end of file diff --git a/FreshShit/AfkTimer/event.lua b/WeakAuras/Projects/AfkTimer/event.lua similarity index 96% rename from FreshShit/AfkTimer/event.lua rename to WeakAuras/Projects/AfkTimer/event.lua index cac64b6..d57aa3e 100644 --- a/FreshShit/AfkTimer/event.lua +++ b/WeakAuras/Projects/AfkTimer/event.lua @@ -1,14 +1,14 @@ --- CHAT_MSG_SYSTEM -function(e, msg) - if msg == nil then return false end - if string.find(msg, "You are now Away") then - aura_env.KickTime = time() + 30 * 60 - aura_env.AfkSince = time() - return true - end - if string.find(msg, "You are no longer Away") then - aura_env.KickTime = 0 - aura_env.AfkSince = 0 - return false - end +-- CHAT_MSG_SYSTEM +function(e, msg) + if msg == nil then return false end + if string.find(msg, "You are now Away") then + aura_env.KickTime = time() + 30 * 60 + aura_env.AfkSince = time() + return true + end + if string.find(msg, "You are no longer Away") then + aura_env.KickTime = 0 + aura_env.AfkSince = 0 + return false + end end \ No newline at end of file diff --git a/FreshShit/AfkTimer/event2.lua b/WeakAuras/Projects/AfkTimer/event2.lua similarity index 97% rename from FreshShit/AfkTimer/event2.lua rename to WeakAuras/Projects/AfkTimer/event2.lua index 3c12bb8..5265ce2 100644 --- a/FreshShit/AfkTimer/event2.lua +++ b/WeakAuras/Projects/AfkTimer/event2.lua @@ -1,16 +1,16 @@ --- TICKER_500 -function(e) - local timeToKick = aura_env.KickTime - time() - if timeToKick > 0 and timeToKick < 10 * 60 then - WeakAuras.ScanEvents("PLAY_SOUND", "Interface\\Sounds\\quack.ogg") - -- SendChatMessage("QUACK", "WHISPER", nil, UnitName("player")) - end - - local rewardClaimed = WeakAurasSaved.Cyka.LoginInfo[Today][UnitName("player")].claimed - local onlineTime = WeakAurasSaved.Cyka.LoginInfo[Today][UnitName("player")].onlineTimeInMinutes - if rewardClaimed == 0 and onlineTime >= 120 then - WeakAuras.ScanEvents("PLAY_SOUND", "Interface\\Sounds\\quack.ogg") - end - - return aura_env.KickTime > 0 +-- TICKER_500 +function(e) + local timeToKick = aura_env.KickTime - time() + if timeToKick > 0 and timeToKick < 10 * 60 then + WeakAuras.ScanEvents("PLAY_SOUND", "Interface\\Sounds\\quack.ogg") + -- SendChatMessage("QUACK", "WHISPER", nil, UnitName("player")) + end + + local rewardClaimed = WeakAurasSaved.Cyka.LoginInfo[Today][UnitName("player")].claimed + local onlineTime = WeakAurasSaved.Cyka.LoginInfo[Today][UnitName("player")].onlineTimeInMinutes + if rewardClaimed == 0 and onlineTime >= 120 then + WeakAuras.ScanEvents("PLAY_SOUND", "Interface\\Sounds\\quack.ogg") + end + + return aura_env.KickTime > 0 end \ No newline at end of file diff --git a/FreshShit/AfkTimer/event2duration.lua b/WeakAuras/Projects/AfkTimer/event2duration.lua similarity index 98% rename from FreshShit/AfkTimer/event2duration.lua rename to WeakAuras/Projects/AfkTimer/event2duration.lua index 261af4a..1b71db7 100644 --- a/FreshShit/AfkTimer/event2duration.lua +++ b/WeakAuras/Projects/AfkTimer/event2duration.lua @@ -1,3 +1,3 @@ -function(e) - return math.floor(time() - aura_env.AfkSince), math.floor(aura_env.KickTime - aura_env.AfkSince), 1 +function(e) + return math.floor(time() - aura_env.AfkSince), math.floor(aura_env.KickTime - aura_env.AfkSince), 1 end \ No newline at end of file diff --git a/FreshShit/AfkTimer/export b/WeakAuras/Projects/AfkTimer/export similarity index 100% rename from FreshShit/AfkTimer/export rename to WeakAuras/Projects/AfkTimer/export diff --git a/FreshShit/AfkTimer/init.lua b/WeakAuras/Projects/AfkTimer/init.lua similarity index 95% rename from FreshShit/AfkTimer/init.lua rename to WeakAuras/Projects/AfkTimer/init.lua index b60c33e..411c10d 100644 --- a/FreshShit/AfkTimer/init.lua +++ b/WeakAuras/Projects/AfkTimer/init.lua @@ -1,6 +1,6 @@ -aura_env.KickTime = 0 -aura_env.AfkSince = 0 - -WeakAurasSaved.Cyka.LoginInfo = { - [Today] = WeakAurasSaved.Cyka.LoginInfo[Today] or {}, -} +aura_env.KickTime = 0 +aura_env.AfkSince = 0 + +WeakAurasSaved.Cyka.LoginInfo = { + [Today] = WeakAurasSaved.Cyka.LoginInfo[Today] or {}, +} diff --git a/FreshShit/AfkTimer/trigger.lua b/WeakAuras/Projects/AfkTimer/trigger.lua similarity index 93% rename from FreshShit/AfkTimer/trigger.lua rename to WeakAuras/Projects/AfkTimer/trigger.lua index 1527e31..817313e 100644 --- a/FreshShit/AfkTimer/trigger.lua +++ b/WeakAuras/Projects/AfkTimer/trigger.lua @@ -1,3 +1,3 @@ -function(t) - return t[2] +function(t) + return t[2] end \ No newline at end of file diff --git a/Complete Projects/Legion/AntorusQuestlineThing.lua b/WeakAuras/Projects/AntorusQuestlineThing.lua similarity index 96% rename from Complete Projects/Legion/AntorusQuestlineThing.lua rename to WeakAuras/Projects/AntorusQuestlineThing.lua index 833bd06..6fb43cf 100644 --- a/Complete Projects/Legion/AntorusQuestlineThing.lua +++ b/WeakAuras/Projects/AntorusQuestlineThing.lua @@ -1,305 +1,305 @@ ---QUEST_ACCEPTED QUEST_TURNED_IN -function(e) - for k, v in ipairs(aura_env.questDatabase) do - if IsQuestFlaggedCompleted(v) == false then - --print(aura_env.TESTCOMPLETION[k]) - --if aura_env.TESTCOMPLETION[k] == false then - --print(k, IsQuestFlaggedCompleted(v)) - if k < 36 or k > 37 then - aura_env.currentQuest = k - break - elseif (k == 36 and IsQuestFlaggedCompleted(aura_env.questDatabase[37]) == true) or (k == 37 and IsQuestFlaggedCompleted(aura_env.questDatabase[36]) == true) then - --elseif (k == 36 and aura_env.TESTCOMPLETION[37] == true) or (k == 37 and aura_env.TESTCOMPLETION[36] == true) then - k = 38 - end - end - end - --print(aura_env.currentQuest) - return true -end - ---DISPLAY -function() - if aura_env.currentQuest < 89 then - return "Progress: " .. aura_env.currentQuest .. "/" .. #aura_env.questDatabase .. "\nCurrent quest: " .. aura_env.questNames[aura_env.currentQuest] .. "\nNext Quest: " .. aura_env.questNames[aura_env.currentQuest + 1] - else - return "Progress: " .. aura_env.currentQuest .. "/" .. #aura_env.questDatabase .. "\nCurrent quest: " .. aura_env.questNames[aura_env.currentQuest] - end -end - ---INIT -aura_env.currentQuest = 1 -aura_env.questDatabase = { - [1] = 47835, - [2] = 47867, - [3] = 47223, - [4] = 47224, - [5] = 48440, - [6] = 46938, - [7] = 47589, - [8] = 46297, - [9] = 48483, - [10] = 47627, - [11] = 47641, - [12] = 46732, - [13] = 46816, - [14] = 46839, - [15] = 46840, - [16] = 46841, - [17] = 46842, - [18] = 46843, - [19] = 48500, - [20] = 47431, - [21] = 46213, - [22] = 40238, - [23] = 47541, - [24] = 47508, - [25] = 47771, - [26] = 47526, - [27] = 47754, - [28] = 47652, - [29] = 47653, - [30] = 47743, - [31] = 49143, - [32] = 47287, - [33] = 48559, - [34] = 48199, - [35] = 48200, - [36] = 48201, - [37] = 48202, - [38] = 47473, - [39] = 47889, - [40] = 47890, - [41] = 47891, - [42] = 47892, - [43] = 47986, - [44] = 47987, - [45] = 47988, - [46] = 47991, - [47] = 47990, - [48] = 47989, - [49] = 47992, - [50] = 47993, - [51] = 47994, - [52] = 48081, - [53] = 46815, - [54] = 46818, - [55] = 46834, - [56] = 47066, - [57] = 46941, - [58] = 47686, - [59] = 47882, - [60] = 47688, - [61] = 47883, - [62] = 47689, - [63] = 47685, - [64] = 47687, - [65] = 47690, - [66] = 48107, - [67] = 48461, - [68] = 48344, - [69] = 47691, - [70] = 47854, - [71] = 47995, - [72] = 47853, - [73] = 48345, - [74] = 47855, - [75] = 47856, - [76] = 47416, - [77] = 47238, - [78] = 40761, - [79] = 47101, - [80] = 47180, - [81] = 47100, - [82] = 47183, - [83] = 47184, - [84] = 47203, - [85] = 47217, - [86] = 47218, - [87] = 47219, - [88] = 47220, - [89] = 48560, -} -aura_env.questNames = { - [1] = "The Hand of Fate", - [2] = "Two If By Sea", - [3] = "Light's Exodus", - [4] = "The Vindicaar", - [5] = "Into the Night", - [6] = "Alone in the Abyss", - [7] = "Righteous Fury", - [8] = "Overwhelming Power", - [9] = "A Stranger's Plea", - [10] = "Vengeance", - [11] = "Sign of Resistance", - [12] = "The Prophet's Gambit", - [13] = "Rendezvous", - [14] = "From Darkness", - [15] = "Prisoners No More", - [16] = "Threat Reduction", - [17] = "A Strike at the Heart", - [18] = "Return to the Vindicaar", - [19] = "A Moment of Respite", - [20] = "Gathering Light", - [21] = "Crystals Not Included", - [22] = "A Grim Equation", - [23] = "The Best Prevention", - [24] = "Fire at Will", - [25] = "Locating the Longshot", - [26] = "Bringing the Big Guns", - [27] = "Lightly Roasted", - [28] = "The Light Mother", - [29] = "Light's Return", - [30] = "The Child of Light and Shadow", - [31] = "Essence of the Light Mother", - [32] = "The Vindicaar Matrix Core", - [33] = "An Offering of Light", - [34] = "The Burning Heart", - [35] = "Securing a Foothold", - [36] = "Reinforce Light's Purchase", - [37] = "Reinforce the Veiled Den", - [38] = "Sizing Up The Opposition", - [39] = "The Speaker Calls", - [40] = "Visions of Torment", - [41] = "Dire News", - [42] = "Storming the Citadel", - [43] = "Scars of the Past", - [44] = "Preventive Measures", - [45] = "Chaos Theory", - [46] = "Dark Machinations", - [47] = "A Touch of Fel", - [48] = "Heralds of Apocalypse", - [49] = "Dawn of Justice", - [50] = "Lord of the Spire", - [51] = "Forming a Bond", - [52] = "A Floating Ruin", - [53] = "Mac'Aree, Jewel of Argus", - [54] = "Defenseless and Afraid", - [55] = "Khazaduum, First of His Name", - [56] = "Consecrating Ground", - [57] = "The Path Forward", - [58] = "Not-So-Humble Beginnings", - [59] = "Conservation of Magic", - [60] = "Invasive Species", - [61] = "The Longest Vigil", - [62] = "Gatekeeper's Challenge: Tenacity", - [63] = "Gatekeeper's Challenge: Cunning", - [64] = "Gatekeeper's Challenge: Mastery", - [65] = "The Defiler's Legacy", - [66] = "The Sigil of Awakening", - [67] = "Where They Least Expect It", - [68] = "We Have a Problem", - [69] = "A Non-Prophet Organization", - [70] = "Wrath of the Hight Exarch", - [71] = "Overt Ops", - [72] = "Flanking Maneuvers", - [73] = "Talgath's Forces", - [74] = "What Might Have Been", - [75] = "Across the Universe", - [76] = "Shadow of the Triumvirate", - [77] = "The Seat of the Triumvirate", - [78] = "Whispers from Oronaar", - [79] = "Arkhaan's Prayers", - [80] = "The Pulsing Madness", - [81] = "Arkhaan's Pain", - [82] = "Arkhaan's Plan", - [83] = "Arkhaan's Peril", - [84] = "Throwing Shade", - [85] = "Sources of Darkness", - [86] = "The Shadowguard Incursion", - [87] = "A Vessel Made Ready", - [88] = "A Beacon in the Dark", - [89] = "An Offering of Shadow", -} -aura_env.TESTCOMPLETION = { - [1] = true, - [2] = true, - [3] = true, - [4] = true, - [5] = true, - [6] = true, - [7] = true, - [8] = true, - [9] = true, - [10] = true, - [11] = true, - [12] = true, - [13] = true, - [14] = true, - [15] = true, - [16] = true, - [17] = true, - [18] = true, - [19] = true, - [20] = true, - [21] = true, - [22] = true, - [23] = true, - [24] = true, - [25] = true, - [26] = true, - [27] = true, - [28] = true, - [29] = true, - [30] = true, - [31] = true, - [32] = true, - [33] = true, - [34] = true, - [35] = true, - [36] = false, - [37] = true, - [38] = true, - [39] = true, - [40] = true, - [41] = true, - [42] = true, - [43] = true, - [44] = true, - [45] = true, - [46] = true, - [47] = true, - [48] = true, - [49] = false, - [50] = false, - [51] = false, - [52] = false, - [53] = false, - [54] = false, - [55] = false, - [56] = false, - [57] = false, - [58] = false, - [59] = false, - [60] = false, - [61] = false, - [62] = false, - [63] = false, - [64] = false, - [65] = false, - [66] = false, - [67] = false, - [68] = false, - [69] = false, - [70] = false, - [71] = false, - [72] = false, - [73] = false, - [74] = false, - [75] = false, - [76] = false, - [77] = false, - [78] = false, - [79] = false, - [80] = false, - [81] = false, - [82] = false, - [83] = false, - [84] = false, - [85] = false, - [86] = false, - [87] = false, - [88] = false, - [89] = false, -} -WeakAuras.ScanEvents("QUEST_TURNED_IN") +--QUEST_ACCEPTED QUEST_TURNED_IN +function(e) + for k, v in ipairs(aura_env.questDatabase) do + if IsQuestFlaggedCompleted(v) == false then + --print(aura_env.TESTCOMPLETION[k]) + --if aura_env.TESTCOMPLETION[k] == false then + --print(k, IsQuestFlaggedCompleted(v)) + if k < 36 or k > 37 then + aura_env.currentQuest = k + break + elseif (k == 36 and IsQuestFlaggedCompleted(aura_env.questDatabase[37]) == true) or (k == 37 and IsQuestFlaggedCompleted(aura_env.questDatabase[36]) == true) then + --elseif (k == 36 and aura_env.TESTCOMPLETION[37] == true) or (k == 37 and aura_env.TESTCOMPLETION[36] == true) then + k = 38 + end + end + end + --print(aura_env.currentQuest) + return true +end + +--DISPLAY +function() + if aura_env.currentQuest < 89 then + return "Progress: " .. aura_env.currentQuest .. "/" .. #aura_env.questDatabase .. "\nCurrent quest: " .. aura_env.questNames[aura_env.currentQuest] .. "\nNext Quest: " .. aura_env.questNames[aura_env.currentQuest + 1] + else + return "Progress: " .. aura_env.currentQuest .. "/" .. #aura_env.questDatabase .. "\nCurrent quest: " .. aura_env.questNames[aura_env.currentQuest] + end +end + +--INIT +aura_env.currentQuest = 1 +aura_env.questDatabase = { + [1] = 47835, + [2] = 47867, + [3] = 47223, + [4] = 47224, + [5] = 48440, + [6] = 46938, + [7] = 47589, + [8] = 46297, + [9] = 48483, + [10] = 47627, + [11] = 47641, + [12] = 46732, + [13] = 46816, + [14] = 46839, + [15] = 46840, + [16] = 46841, + [17] = 46842, + [18] = 46843, + [19] = 48500, + [20] = 47431, + [21] = 46213, + [22] = 40238, + [23] = 47541, + [24] = 47508, + [25] = 47771, + [26] = 47526, + [27] = 47754, + [28] = 47652, + [29] = 47653, + [30] = 47743, + [31] = 49143, + [32] = 47287, + [33] = 48559, + [34] = 48199, + [35] = 48200, + [36] = 48201, + [37] = 48202, + [38] = 47473, + [39] = 47889, + [40] = 47890, + [41] = 47891, + [42] = 47892, + [43] = 47986, + [44] = 47987, + [45] = 47988, + [46] = 47991, + [47] = 47990, + [48] = 47989, + [49] = 47992, + [50] = 47993, + [51] = 47994, + [52] = 48081, + [53] = 46815, + [54] = 46818, + [55] = 46834, + [56] = 47066, + [57] = 46941, + [58] = 47686, + [59] = 47882, + [60] = 47688, + [61] = 47883, + [62] = 47689, + [63] = 47685, + [64] = 47687, + [65] = 47690, + [66] = 48107, + [67] = 48461, + [68] = 48344, + [69] = 47691, + [70] = 47854, + [71] = 47995, + [72] = 47853, + [73] = 48345, + [74] = 47855, + [75] = 47856, + [76] = 47416, + [77] = 47238, + [78] = 40761, + [79] = 47101, + [80] = 47180, + [81] = 47100, + [82] = 47183, + [83] = 47184, + [84] = 47203, + [85] = 47217, + [86] = 47218, + [87] = 47219, + [88] = 47220, + [89] = 48560, +} +aura_env.questNames = { + [1] = "The Hand of Fate", + [2] = "Two If By Sea", + [3] = "Light's Exodus", + [4] = "The Vindicaar", + [5] = "Into the Night", + [6] = "Alone in the Abyss", + [7] = "Righteous Fury", + [8] = "Overwhelming Power", + [9] = "A Stranger's Plea", + [10] = "Vengeance", + [11] = "Sign of Resistance", + [12] = "The Prophet's Gambit", + [13] = "Rendezvous", + [14] = "From Darkness", + [15] = "Prisoners No More", + [16] = "Threat Reduction", + [17] = "A Strike at the Heart", + [18] = "Return to the Vindicaar", + [19] = "A Moment of Respite", + [20] = "Gathering Light", + [21] = "Crystals Not Included", + [22] = "A Grim Equation", + [23] = "The Best Prevention", + [24] = "Fire at Will", + [25] = "Locating the Longshot", + [26] = "Bringing the Big Guns", + [27] = "Lightly Roasted", + [28] = "The Light Mother", + [29] = "Light's Return", + [30] = "The Child of Light and Shadow", + [31] = "Essence of the Light Mother", + [32] = "The Vindicaar Matrix Core", + [33] = "An Offering of Light", + [34] = "The Burning Heart", + [35] = "Securing a Foothold", + [36] = "Reinforce Light's Purchase", + [37] = "Reinforce the Veiled Den", + [38] = "Sizing Up The Opposition", + [39] = "The Speaker Calls", + [40] = "Visions of Torment", + [41] = "Dire News", + [42] = "Storming the Citadel", + [43] = "Scars of the Past", + [44] = "Preventive Measures", + [45] = "Chaos Theory", + [46] = "Dark Machinations", + [47] = "A Touch of Fel", + [48] = "Heralds of Apocalypse", + [49] = "Dawn of Justice", + [50] = "Lord of the Spire", + [51] = "Forming a Bond", + [52] = "A Floating Ruin", + [53] = "Mac'Aree, Jewel of Argus", + [54] = "Defenseless and Afraid", + [55] = "Khazaduum, First of His Name", + [56] = "Consecrating Ground", + [57] = "The Path Forward", + [58] = "Not-So-Humble Beginnings", + [59] = "Conservation of Magic", + [60] = "Invasive Species", + [61] = "The Longest Vigil", + [62] = "Gatekeeper's Challenge: Tenacity", + [63] = "Gatekeeper's Challenge: Cunning", + [64] = "Gatekeeper's Challenge: Mastery", + [65] = "The Defiler's Legacy", + [66] = "The Sigil of Awakening", + [67] = "Where They Least Expect It", + [68] = "We Have a Problem", + [69] = "A Non-Prophet Organization", + [70] = "Wrath of the Hight Exarch", + [71] = "Overt Ops", + [72] = "Flanking Maneuvers", + [73] = "Talgath's Forces", + [74] = "What Might Have Been", + [75] = "Across the Universe", + [76] = "Shadow of the Triumvirate", + [77] = "The Seat of the Triumvirate", + [78] = "Whispers from Oronaar", + [79] = "Arkhaan's Prayers", + [80] = "The Pulsing Madness", + [81] = "Arkhaan's Pain", + [82] = "Arkhaan's Plan", + [83] = "Arkhaan's Peril", + [84] = "Throwing Shade", + [85] = "Sources of Darkness", + [86] = "The Shadowguard Incursion", + [87] = "A Vessel Made Ready", + [88] = "A Beacon in the Dark", + [89] = "An Offering of Shadow", +} +aura_env.TESTCOMPLETION = { + [1] = true, + [2] = true, + [3] = true, + [4] = true, + [5] = true, + [6] = true, + [7] = true, + [8] = true, + [9] = true, + [10] = true, + [11] = true, + [12] = true, + [13] = true, + [14] = true, + [15] = true, + [16] = true, + [17] = true, + [18] = true, + [19] = true, + [20] = true, + [21] = true, + [22] = true, + [23] = true, + [24] = true, + [25] = true, + [26] = true, + [27] = true, + [28] = true, + [29] = true, + [30] = true, + [31] = true, + [32] = true, + [33] = true, + [34] = true, + [35] = true, + [36] = false, + [37] = true, + [38] = true, + [39] = true, + [40] = true, + [41] = true, + [42] = true, + [43] = true, + [44] = true, + [45] = true, + [46] = true, + [47] = true, + [48] = true, + [49] = false, + [50] = false, + [51] = false, + [52] = false, + [53] = false, + [54] = false, + [55] = false, + [56] = false, + [57] = false, + [58] = false, + [59] = false, + [60] = false, + [61] = false, + [62] = false, + [63] = false, + [64] = false, + [65] = false, + [66] = false, + [67] = false, + [68] = false, + [69] = false, + [70] = false, + [71] = false, + [72] = false, + [73] = false, + [74] = false, + [75] = false, + [76] = false, + [77] = false, + [78] = false, + [79] = false, + [80] = false, + [81] = false, + [82] = false, + [83] = false, + [84] = false, + [85] = false, + [86] = false, + [87] = false, + [88] = false, + [89] = false, +} +WeakAuras.ScanEvents("QUEST_TURNED_IN") diff --git a/WIP/Atrigan Interrupt/Display.lua b/WeakAuras/Projects/Atrigan Interrupt/Display.lua similarity index 97% rename from WIP/Atrigan Interrupt/Display.lua rename to WeakAuras/Projects/Atrigan Interrupt/Display.lua index 6de7af8..ddf810f 100644 --- a/WIP/Atrigan Interrupt/Display.lua +++ b/WeakAuras/Projects/Atrigan Interrupt/Display.lua @@ -1,26 +1,26 @@ ---Display every frame for text ---Every frame -function() - print(aura_env.peopleList[aura_env.currentInterrupt]) - if aura_env.peopleList[aura_env.currentInterrupt] == UnitName("player") then - if UnitCastingInfo("Belac") then - local sname = UnitCastingInfo("Belac") - if sname == "Phangs of Guilt" then - return "Interrupt it reeee" - end - end - if UnitDebuff("player", "Belac's Prisoner") or UnitIsDead("player") then --If is in cage - local msg = aura_env.messages["Cannot Interrupt"] - local msg = aura_env.encode(msg) - SendChatMessage(msg, "RAID") - aura_env.currentInterrupt = aura_env.currentInterrupt + 1 - end - if GetTime() < aura_env.interruptTime then --If is on cooldown - local msg = aura_env.messages["Cannot Interrupt"] - local msg = aura_env.encode(msg) - SendChatMessage(msg, "RAID") - aura_env.currentInterrupt = aura_env.currentInterrupt + 1 - end - return "You're next" - end +--Display every frame for text +--Every frame +function() + print(aura_env.peopleList[aura_env.currentInterrupt]) + if aura_env.peopleList[aura_env.currentInterrupt] == UnitName("player") then + if UnitCastingInfo("Belac") then + local sname = UnitCastingInfo("Belac") + if sname == "Phangs of Guilt" then + return "Interrupt it reeee" + end + end + if UnitDebuff("player", "Belac's Prisoner") or UnitIsDead("player") then --If is in cage + local msg = aura_env.messages["Cannot Interrupt"] + local msg = aura_env.encode(msg) + SendChatMessage(msg, "RAID") + aura_env.currentInterrupt = aura_env.currentInterrupt + 1 + end + if GetTime() < aura_env.interruptTime then --If is on cooldown + local msg = aura_env.messages["Cannot Interrupt"] + local msg = aura_env.encode(msg) + SendChatMessage(msg, "RAID") + aura_env.currentInterrupt = aura_env.currentInterrupt + 1 + end + return "You're next" + end end \ No newline at end of file diff --git a/WIP/Atrigan Interrupt/INIT.lua b/WeakAuras/Projects/Atrigan Interrupt/INIT.lua similarity index 96% rename from WIP/Atrigan Interrupt/INIT.lua rename to WeakAuras/Projects/Atrigan Interrupt/INIT.lua index 2c0af31..03c38cb 100644 --- a/WIP/Atrigan Interrupt/INIT.lua +++ b/WeakAuras/Projects/Atrigan Interrupt/INIT.lua @@ -1,40 +1,40 @@ -aura_env.interruptTime = 0 -aura_env.interruptCD = 24 -aura_env.peopleList = {} -aura_env.currentInterrupt = 1 -local playerClass = UnitClass("player") -if playerClass == "Hunter" then - aura_env.classInterrupt = "Counter Shot" elseif - playerClass == "Mage" then - aura_env.classInterrupt = "Counterspell" elseif - playerClass == "Warlock" then - aura.classInterrupt = "Spell Lock" -end -aura_env.messages = -{ - ["Interrupted"] = 9461, - ["Cannot Interrupt"] = 9462, - ["Initialized"] = 9451, - ["Added to interrupt list"], = 9452, - ["Cycle Interrupt DEBUG"] = 9551 -} -aura_env.encode = function(msg) - local date = date() - local localtime = date:match("%d%d%/%d%d%/%d%d%s(%d%d%p%d%d%p%d%d)") --15:37:43 - local hr = localtime:match("(%d%d)") - local min = localtime:match("%d%d%p(%d%d)") - - local retmsg = msg - (hr * min) - retmsg = tostring(retmsg) - return retmsg -end -aura_env.decode = function(msg) - local date = date() - local localtime = date:match("%d%d%/%d%d%/%d%d%s(%d%d%p%d%d%p%d%d)") --15:37:43 - local hr = localtime:match("(%d%d)") - local min = localtime:match("%d%d%p(%d%d)") - - tonumber(msg) - local retint = msg + (hr * min) - return retint +aura_env.interruptTime = 0 +aura_env.interruptCD = 24 +aura_env.peopleList = {} +aura_env.currentInterrupt = 1 +local playerClass = UnitClass("player") +if playerClass == "Hunter" then + aura_env.classInterrupt = "Counter Shot" elseif + playerClass == "Mage" then + aura_env.classInterrupt = "Counterspell" elseif + playerClass == "Warlock" then + aura.classInterrupt = "Spell Lock" +end +aura_env.messages = +{ + ["Interrupted"] = 9461, + ["Cannot Interrupt"] = 9462, + ["Initialized"] = 9451, + ["Added to interrupt list"], = 9452, + ["Cycle Interrupt DEBUG"] = 9551 +} +aura_env.encode = function(msg) + local date = date() + local localtime = date:match("%d%d%/%d%d%/%d%d%s(%d%d%p%d%d%p%d%d)") --15:37:43 + local hr = localtime:match("(%d%d)") + local min = localtime:match("%d%d%p(%d%d)") + + local retmsg = msg - (hr * min) + retmsg = tostring(retmsg) + return retmsg +end +aura_env.decode = function(msg) + local date = date() + local localtime = date:match("%d%d%/%d%d%/%d%d%s(%d%d%p%d%d%p%d%d)") --15:37:43 + local hr = localtime:match("(%d%d)") + local min = localtime:match("%d%d%p(%d%d)") + + tonumber(msg) + local retint = msg + (hr * min) + return retint end \ No newline at end of file diff --git a/WIP/Atrigan Interrupt/Libs.lua b/WeakAuras/Projects/Atrigan Interrupt/Libs.lua similarity index 97% rename from WIP/Atrigan Interrupt/Libs.lua rename to WeakAuras/Projects/Atrigan Interrupt/Libs.lua index e85e7f0..d1fefd5 100644 --- a/WIP/Atrigan Interrupt/Libs.lua +++ b/WeakAuras/Projects/Atrigan Interrupt/Libs.lua @@ -1,28 +1,28 @@ -[02:39 PM] [Virags DT]: 14:35:39 UNIT_SPELLCAST_INTERRUPTED - (6) table: 000000004830D3C0 --seems to only work on player -[02:39 PM] [Virags DT]: 1 - UNIT_SPELLCAST_INTERRUPTED -[02:39 PM] [Virags DT]: 2 - player -[02:39 PM] [Virags DT]: 3 - Flash of Light -[02:39 PM] [Virags DT]: 5 - 3-5-1-0-19750-00000056B2 -[02:39 PM] [Virags DT]: 6 - 19750 - - - -[02:40 PM] [Virags DT]: 14:35:50 COMBAT_LOG_EVENT_UNFILTERED - (18) table: 00000000543D23B0 -- realistically the only important one since the only interrupts are outgoing -[02:40 PM] [Virags DT]: 1 - COMBAT_LOG_EVENT_UNFILTERED -[02:40 PM] [Virags DT]: 2 - 1549632949.728 -[02:40 PM] [Virags DT]: 3 - SPELL_INTERRUPT -[02:40 PM] [Virags DT]: 4 - false -[02:40 PM] [Virags DT]: 5 - Player-5-000AD3B6 -[02:40 PM] [Virags DT]: 6 - Pinkiepiie -[02:40 PM] [Virags DT]: 7 - 1297 -[02:40 PM] [Virags DT]: 8 - 0 -[02:40 PM] [Virags DT]: 9 - Player-5-000A70EF -[02:40 PM] [Virags DT]: 10 - Lilithiy -[02:40 PM] [Virags DT]: 11 - 66888 -[02:40 PM] [Virags DT]: 12 - 0 -[02:40 PM] [Virags DT]: 13 - 96231 -[02:40 PM] [Virags DT]: 14 - Rebuke -[02:40 PM] [Virags DT]: 15 - 1 -[02:40 PM] [Virags DT]: 16 - 116 -[02:40 PM] [Virags DT]: 17 - Frostbolt +[02:39 PM] [Virags DT]: 14:35:39 UNIT_SPELLCAST_INTERRUPTED - (6) table: 000000004830D3C0 --seems to only work on player +[02:39 PM] [Virags DT]: 1 - UNIT_SPELLCAST_INTERRUPTED +[02:39 PM] [Virags DT]: 2 - player +[02:39 PM] [Virags DT]: 3 - Flash of Light +[02:39 PM] [Virags DT]: 5 - 3-5-1-0-19750-00000056B2 +[02:39 PM] [Virags DT]: 6 - 19750 + + + +[02:40 PM] [Virags DT]: 14:35:50 COMBAT_LOG_EVENT_UNFILTERED - (18) table: 00000000543D23B0 -- realistically the only important one since the only interrupts are outgoing +[02:40 PM] [Virags DT]: 1 - COMBAT_LOG_EVENT_UNFILTERED +[02:40 PM] [Virags DT]: 2 - 1549632949.728 +[02:40 PM] [Virags DT]: 3 - SPELL_INTERRUPT +[02:40 PM] [Virags DT]: 4 - false +[02:40 PM] [Virags DT]: 5 - Player-5-000AD3B6 +[02:40 PM] [Virags DT]: 6 - Pinkiepiie +[02:40 PM] [Virags DT]: 7 - 1297 +[02:40 PM] [Virags DT]: 8 - 0 +[02:40 PM] [Virags DT]: 9 - Player-5-000A70EF +[02:40 PM] [Virags DT]: 10 - Lilithiy +[02:40 PM] [Virags DT]: 11 - 66888 +[02:40 PM] [Virags DT]: 12 - 0 +[02:40 PM] [Virags DT]: 13 - 96231 +[02:40 PM] [Virags DT]: 14 - Rebuke +[02:40 PM] [Virags DT]: 15 - 1 +[02:40 PM] [Virags DT]: 16 - 116 +[02:40 PM] [Virags DT]: 17 - Frostbolt [02:40 PM] [Virags DT]: 18 - 16 \ No newline at end of file diff --git a/WIP/Atrigan Interrupt/Trigger1.lua b/WeakAuras/Projects/Atrigan Interrupt/Trigger1.lua similarity index 97% rename from WIP/Atrigan Interrupt/Trigger1.lua rename to WeakAuras/Projects/Atrigan Interrupt/Trigger1.lua index 8f7e797..9f0d54b 100644 --- a/WIP/Atrigan Interrupt/Trigger1.lua +++ b/WeakAuras/Projects/Atrigan Interrupt/Trigger1.lua @@ -1,18 +1,18 @@ ---The interrupt detection trigger ---COMBAT_LOG_EVENT_UNFILTERED -function(...) - local subevent = select(3, ...) - if subevent == "SPELL_INTERRUPT" then - local playerName = select(6, ...) - local targetName = select(10, ...) - local spellName = select(14, ...) - local interruptedSpellName = select(17, ...) - if playerName == UnitName("player") and targetName == "Belac" and and interruptedSpellName == "Phangs of Guilt" then - local msg = aura_env.messages["Interrupted"] - local msg = aura_env.encode(msg) - SendChatMessage(msg, "RAID") - aura_env.currentInterrupt = aura_env.currentInterrupt + 1 - aura_env.interruptTime = GetTime() + aura_env.interruptCD - end - end +--The interrupt detection trigger +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local subevent = select(3, ...) + if subevent == "SPELL_INTERRUPT" then + local playerName = select(6, ...) + local targetName = select(10, ...) + local spellName = select(14, ...) + local interruptedSpellName = select(17, ...) + if playerName == UnitName("player") and targetName == "Belac" and and interruptedSpellName == "Phangs of Guilt" then + local msg = aura_env.messages["Interrupted"] + local msg = aura_env.encode(msg) + SendChatMessage(msg, "RAID") + aura_env.currentInterrupt = aura_env.currentInterrupt + 1 + aura_env.interruptTime = GetTime() + aura_env.interruptCD + end + end end \ No newline at end of file diff --git a/WIP/Atrigan Interrupt/Trigger2.lua b/WeakAuras/Projects/Atrigan Interrupt/Trigger2.lua similarity index 96% rename from WIP/Atrigan Interrupt/Trigger2.lua rename to WeakAuras/Projects/Atrigan Interrupt/Trigger2.lua index 9c2b332..e821465 100644 --- a/WIP/Atrigan Interrupt/Trigger2.lua +++ b/WeakAuras/Projects/Atrigan Interrupt/Trigger2.lua @@ -1,40 +1,40 @@ ---The encoding trigger ---CHAT_MSG_RAID, CHAT_MSG_RAID_LEADER -function(_,msg,sender) - local sender = string.match(sender, "%a+") - local returnMessage = aura_env.decode(msg) - if returnMessage == aura_env.messages["Initialized"] then - local isfound = 0 - for k,v in pairs(aura_env.peopleList) do - if v == UnitName("player") then - isfound = 1 - break - end - end - if isfound == 0 then - aura_env.peopleList[#aura_env.peopleList + 1] = UnitName("player") - end - local msg = aura_env.messages["Added to interrupt list"] - local msg = aura_env.encode(msg) - SendChatMessage(msg, "RAID") - end - if returnMessage == aura_env.messages["Added to interrupt list"] then - local isfound = 0 - for k,v in pairs(aura_env.peopleList) do - if v == sender then - isfound = 1 - break - end - end - if isfound == 0 then - aura_env.peopleList[#aura_env.peopleList + 1] = sender - end - end - if returnMessage == aura_env.messages["Interrupted"] then - aura_env.currentInterrupt = aura_env.currentInterrupt + 1 - end - if returnMessage == aura_env.messages["Cycle Interrupt DEBUG"] then - aura_env.currentInterrupt = aura_env.currentInterrupt + 1 - end - return true +--The encoding trigger +--CHAT_MSG_RAID, CHAT_MSG_RAID_LEADER +function(_,msg,sender) + local sender = string.match(sender, "%a+") + local returnMessage = aura_env.decode(msg) + if returnMessage == aura_env.messages["Initialized"] then + local isfound = 0 + for k,v in pairs(aura_env.peopleList) do + if v == UnitName("player") then + isfound = 1 + break + end + end + if isfound == 0 then + aura_env.peopleList[#aura_env.peopleList + 1] = UnitName("player") + end + local msg = aura_env.messages["Added to interrupt list"] + local msg = aura_env.encode(msg) + SendChatMessage(msg, "RAID") + end + if returnMessage == aura_env.messages["Added to interrupt list"] then + local isfound = 0 + for k,v in pairs(aura_env.peopleList) do + if v == sender then + isfound = 1 + break + end + end + if isfound == 0 then + aura_env.peopleList[#aura_env.peopleList + 1] = sender + end + end + if returnMessage == aura_env.messages["Interrupted"] then + aura_env.currentInterrupt = aura_env.currentInterrupt + 1 + end + if returnMessage == aura_env.messages["Cycle Interrupt DEBUG"] then + aura_env.currentInterrupt = aura_env.currentInterrupt + 1 + end + return true end \ No newline at end of file diff --git a/WIP/Atrigan Interrupt/Trigger3.lua b/WeakAuras/Projects/Atrigan Interrupt/Trigger3.lua similarity index 97% rename from WIP/Atrigan Interrupt/Trigger3.lua rename to WeakAuras/Projects/Atrigan Interrupt/Trigger3.lua index df52ac5..ed6eb0e 100644 --- a/WIP/Atrigan Interrupt/Trigger3.lua +++ b/WeakAuras/Projects/Atrigan Interrupt/Trigger3.lua @@ -1,15 +1,15 @@ ---Trigger for raid wide initialization ---CHAT_MSG_WHISPER -function(_,msg,sender) - local sender = string.match(sender, "%a+") - if sender == "Pinkiepiie" and msg == "init_the_thing_i_guess_101_?" then - local msg = aura_env.messages["Initialized"] - local msg = aura_env.encode(msg) - SendChatMessage(msg, "RAID") - end - if sender == "Pinkiepiie" and msg == "cycle_interrupt_debug" then - local msg = aura_env.messages["Cycle Interrupt DEBUG"] - local msg = aura_env.encode(msg) - SendChatMessage(msg, "RAID") - end +--Trigger for raid wide initialization +--CHAT_MSG_WHISPER +function(_,msg,sender) + local sender = string.match(sender, "%a+") + if sender == "Pinkiepiie" and msg == "init_the_thing_i_guess_101_?" then + local msg = aura_env.messages["Initialized"] + local msg = aura_env.encode(msg) + SendChatMessage(msg, "RAID") + end + if sender == "Pinkiepiie" and msg == "cycle_interrupt_debug" then + local msg = aura_env.messages["Cycle Interrupt DEBUG"] + local msg = aura_env.encode(msg) + SendChatMessage(msg, "RAID") + end end \ No newline at end of file diff --git a/Complete Projects/Legion/AutoAttackInterval.lua b/WeakAuras/Projects/AutoAttackInterval.lua similarity index 97% rename from Complete Projects/Legion/AutoAttackInterval.lua rename to WeakAuras/Projects/AutoAttackInterval.lua index acd77df..5747304 100644 --- a/Complete Projects/Legion/AutoAttackInterval.lua +++ b/WeakAuras/Projects/AutoAttackInterval.lua @@ -1,56 +1,56 @@ ---make auto attack speed predictor thing please ---COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED -function(allstates, e, ...) - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - local time = debugprofilestop() - local subevent = select(2, ...) - if subevent == "SWING_DAMAGE" or subevent == "SWING_MISSED" then - local source = select(4, ...) - local destination = select(9, ...) - if source == UnitGUID("target") and destination == UnitName("player") then - if #aura_env.swings == aura_env.lines * 2 then - for k,v in ipairs(aura_env.swings) do - if k > 1 then - aura_env.swings[k - 1] = v - end - end - table.remove(aura_env.swings, (aura_env.lines * 2)) - table.insert(aura_env.swings, time) - else - table.insert(aura_env.swings, time) - end - local avgTime = 0 - for k,v in ipairs(aura_env.swings) do - if k > 1 then - if avgTime == 0 then - avgTime = aura_env.swings[k] - aura_env.swings[k - 1] - else - avgTime = (avgTime + (aura_env.swings[k] - aura_env.swings[k - 1])) / 2 - end - end - end - allstates[1] = { - show = true, - changed = true, - progressType = "timed", - avgTime = string.format("%.2f", avgTime / 1000), - expirationTime = GetTime() + (avgTime / 1000), - duration = avgTime / 1000, - } - print("return true", allstates[1].expirationTime, allstates[1].duration) - return true - end - end - elseif e == "PLAYER_REGEN_DISABLED" or e == "PLAYER_REGEN_ENABLED" then - aura_env.swings = {} - if allstates[1] then - allstates[1].show = false - allstates[1].changed = true - end - return true - end -end - ---INIT -aura_env.swings = {} +--make auto attack speed predictor thing please +--COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED +function(allstates, e, ...) + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + local time = debugprofilestop() + local subevent = select(2, ...) + if subevent == "SWING_DAMAGE" or subevent == "SWING_MISSED" then + local source = select(4, ...) + local destination = select(9, ...) + if source == UnitGUID("target") and destination == UnitName("player") then + if #aura_env.swings == aura_env.lines * 2 then + for k,v in ipairs(aura_env.swings) do + if k > 1 then + aura_env.swings[k - 1] = v + end + end + table.remove(aura_env.swings, (aura_env.lines * 2)) + table.insert(aura_env.swings, time) + else + table.insert(aura_env.swings, time) + end + local avgTime = 0 + for k,v in ipairs(aura_env.swings) do + if k > 1 then + if avgTime == 0 then + avgTime = aura_env.swings[k] - aura_env.swings[k - 1] + else + avgTime = (avgTime + (aura_env.swings[k] - aura_env.swings[k - 1])) / 2 + end + end + end + allstates[1] = { + show = true, + changed = true, + progressType = "timed", + avgTime = string.format("%.2f", avgTime / 1000), + expirationTime = GetTime() + (avgTime / 1000), + duration = avgTime / 1000, + } + print("return true", allstates[1].expirationTime, allstates[1].duration) + return true + end + end + elseif e == "PLAYER_REGEN_DISABLED" or e == "PLAYER_REGEN_ENABLED" then + aura_env.swings = {} + if allstates[1] then + allstates[1].show = false + allstates[1].changed = true + end + return true + end +end + +--INIT +aura_env.swings = {} aura_env.lines = 2 \ No newline at end of file diff --git a/FreshShit/AutoLoot/AutoLootDisplay/Event.lua b/WeakAuras/Projects/AutoLoot/AutoLootDisplay/Event.lua similarity index 95% rename from FreshShit/AutoLoot/AutoLootDisplay/Event.lua rename to WeakAuras/Projects/AutoLoot/AutoLootDisplay/Event.lua index 9f93ca0..e35b380 100644 --- a/FreshShit/AutoLoot/AutoLootDisplay/Event.lua +++ b/WeakAuras/Projects/AutoLoot/AutoLootDisplay/Event.lua @@ -1,7 +1,7 @@ --- CHAT_MSG_LOOT -function(allstates, e, msg) - if msg:match("You receive loot") then - DrawIcon(msg, allstates) - return true - end -end +-- CHAT_MSG_LOOT +function(allstates, e, msg) + if msg:match("You receive loot") then + DrawIcon(msg, allstates) + return true + end +end diff --git a/FreshShit/AutoLoot/AutoLootDisplay/Init.lua b/WeakAuras/Projects/AutoLoot/AutoLootDisplay/Init.lua similarity index 96% rename from FreshShit/AutoLoot/AutoLootDisplay/Init.lua rename to WeakAuras/Projects/AutoLoot/AutoLootDisplay/Init.lua index 1272159..4fab3d1 100644 --- a/FreshShit/AutoLoot/AutoLootDisplay/Init.lua +++ b/WeakAuras/Projects/AutoLoot/AutoLootDisplay/Init.lua @@ -1,46 +1,46 @@ -local iconDisplayDuration = 3 - ----@alias CItemInfo {name: string, icon: number, quantity: number, color: string} - ----@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 - - 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 -end - ----@param msg string ----@param allstates allstates -DrawIcon = function(msg, allstates) - 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, - - icon = info.icon, - name = formattedName, - - progressType = "timed", - expirationTime = GetTime() + iconDisplayDuration, - duration = iconDisplayDuration, - autoHide = true, - } -end +local iconDisplayDuration = 3 + +---@alias CItemInfo {name: string, icon: number, quantity: number, color: string} + +---@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 + + 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 +end + +---@param msg string +---@param allstates allstates +DrawIcon = function(msg, allstates) + 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, + + icon = info.icon, + name = formattedName, + + progressType = "timed", + expirationTime = GetTime() + iconDisplayDuration, + duration = iconDisplayDuration, + autoHide = true, + } +end diff --git a/FreshShit/AutoLoot/Event.lua b/WeakAuras/Projects/AutoLoot/Event.lua similarity index 95% rename from FreshShit/AutoLoot/Event.lua rename to WeakAuras/Projects/AutoLoot/Event.lua index ada64de..5cb25a8 100644 --- a/FreshShit/AutoLoot/Event.lua +++ b/WeakAuras/Projects/AutoLoot/Event.lua @@ -1,6 +1,6 @@ --- LOOT_READY -function(e) - C_Timer.After(0.1, function() - WeakAuras.ScanEvents("DO_AUTOLOOT") - end) -end +-- LOOT_READY +function(e) + C_Timer.After(0.1, function() + WeakAuras.ScanEvents("DO_AUTOLOOT") + end) +end diff --git a/FreshShit/AutoLoot/Event2.lua b/WeakAuras/Projects/AutoLoot/Event2.lua similarity index 95% rename from FreshShit/AutoLoot/Event2.lua rename to WeakAuras/Projects/AutoLoot/Event2.lua index a367e72..e4ffcb4 100644 --- a/FreshShit/AutoLoot/Event2.lua +++ b/WeakAuras/Projects/AutoLoot/Event2.lua @@ -1,6 +1,6 @@ --- DO_AUTOLOOT -function(e) - local lootInfo = GetLootInfo() - aura_env.FilterService.Run(lootInfo) - CloseLoot() -end +-- DO_AUTOLOOT +function(e) + local lootInfo = GetLootInfo() + aura_env.FilterService.Run(lootInfo) + CloseLoot() +end diff --git a/FreshShit/AutoLoot/Init.lua b/WeakAuras/Projects/AutoLoot/Init.lua similarity index 96% rename from FreshShit/AutoLoot/Init.lua rename to WeakAuras/Projects/AutoLoot/Init.lua index 00f662e..52feea2 100644 --- a/FreshShit/AutoLoot/Init.lua +++ b/WeakAuras/Projects/AutoLoot/Init.lua @@ -1,829 +1,829 @@ -local debug = false -if not WeakAurasSaved then WeakAurasSaved = {} end -if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 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 -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, -} - ----@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 - - 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 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 - - 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, - }, -} -aura_env.qualityColors = { - "\124cff9d9d9d", -- Poor - "\124cffffffff", -- Common - "\124cff1eff00", -- Uncommon - "\124cff0070dd", -- Rare - "\124cffa335ee", -- Epic - "\124cffff8000", -- Legendary - "\124cffe6cc80", -- Artifact - "\124cff00ccff", -- Heirloom -} +local debug = false +if not WeakAurasSaved then WeakAurasSaved = {} end +if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 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 +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, +} + +---@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 + + 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 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 + + 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, + }, +} +aura_env.qualityColors = { + "\124cff9d9d9d", -- Poor + "\124cffffffff", -- Common + "\124cff1eff00", -- Uncommon + "\124cff0070dd", -- Rare + "\124cffa335ee", -- Epic + "\124cffff8000", -- Legendary + "\124cffe6cc80", -- Artifact + "\124cff00ccff", -- Heirloom +} diff --git a/FreshShit/AutoLoot/export b/WeakAuras/Projects/AutoLoot/export similarity index 100% rename from FreshShit/AutoLoot/export rename to WeakAuras/Projects/AutoLoot/export diff --git a/LegionWA/AutoQuest/Event.lua b/WeakAuras/Projects/AutoQuest/Event.lua similarity index 97% rename from LegionWA/AutoQuest/Event.lua rename to WeakAuras/Projects/AutoQuest/Event.lua index b599f2c..54ed108 100644 --- a/LegionWA/AutoQuest/Event.lua +++ b/WeakAuras/Projects/AutoQuest/Event.lua @@ -1,42 +1,42 @@ --- QUEST_POI_UPDATE QUEST_DETAIL QUEST_COMPLETE QUEST_GREETING QUEST_PROGRESS GOSSIP_SHOW -function(e) - if e == "QUEST_POI_UPDATE" then - CloseGossip() - elseif e == "QUEST_DETAIL" then - AcceptQuest() - elseif e == "QUEST_COMPLETE" then - if GetNumQuestChoices() <= 1 then - GetQuestReward(1) - end - elseif e == "GOSSIP_SHOW" then - local quests = GetNumGossipAvailableQuests() - local completedQuests = GetNumGossipActiveQuests() - local options = GetNumGossipOptions() - if completedQuests > 0 and options == 0 then - for i = 1, completedQuests do - SelectGossipActiveQuest(i) - end - end - if quests > 0 and options == 0 then - SelectGossipAvailableQuest(1) - end - if options == 1 and quests + completedQuests == 0 then - SelectGossipOption(1) - end - elseif e == "QUEST_GREETING" then - local quests = GetNumGossipAvailableQuests() - local completedQuests = GetNumGossipActiveQuests() - if completedQuests > 0 then - for i = 1, completedQuests do - SelectActiveQuest(1) - end - end - if quests > 0 then - SelectAvailableQuest(1) - end - elseif e == "QUEST_PROGRESS" then - if IsQuestCompletable(i) then - CompleteQuest() - end - end +-- QUEST_POI_UPDATE QUEST_DETAIL QUEST_COMPLETE QUEST_GREETING QUEST_PROGRESS GOSSIP_SHOW +function(e) + if e == "QUEST_POI_UPDATE" then + CloseGossip() + elseif e == "QUEST_DETAIL" then + AcceptQuest() + elseif e == "QUEST_COMPLETE" then + if GetNumQuestChoices() <= 1 then + GetQuestReward(1) + end + elseif e == "GOSSIP_SHOW" then + local quests = GetNumGossipAvailableQuests() + local completedQuests = GetNumGossipActiveQuests() + local options = GetNumGossipOptions() + if completedQuests > 0 and options == 0 then + for i = 1, completedQuests do + SelectGossipActiveQuest(i) + end + end + if quests > 0 and options == 0 then + SelectGossipAvailableQuest(1) + end + if options == 1 and quests + completedQuests == 0 then + SelectGossipOption(1) + end + elseif e == "QUEST_GREETING" then + local quests = GetNumGossipAvailableQuests() + local completedQuests = GetNumGossipActiveQuests() + if completedQuests > 0 then + for i = 1, completedQuests do + SelectActiveQuest(1) + end + end + if quests > 0 then + SelectAvailableQuest(1) + end + elseif e == "QUEST_PROGRESS" then + if IsQuestCompletable(i) then + CompleteQuest() + end + end end \ No newline at end of file diff --git a/LegionWA/AutoQuest/Export b/WeakAuras/Projects/AutoQuest/Export similarity index 100% rename from LegionWA/AutoQuest/Export rename to WeakAuras/Projects/AutoQuest/Export diff --git a/FreshShit/AutoVendor/Event.lua b/WeakAuras/Projects/AutoVendor/Event.lua similarity index 96% rename from FreshShit/AutoVendor/Event.lua rename to WeakAuras/Projects/AutoVendor/Event.lua index 99f39b8..d958dfe 100644 --- a/FreshShit/AutoVendor/Event.lua +++ b/WeakAuras/Projects/AutoVendor/Event.lua @@ -1,15 +1,15 @@ --- MERCHANT_SHOW -function(allstates, e) - if (GetMerchantNumItems() > 0) then - aura_env.allstates = allstates - - if CanMerchantRepair() == true then RepairAllItems() end - - for container = 0, 4 do - for slot = 1, GetContainerNumSlots(container) do - aura_env.FilterService.Run(container, slot) - end - end - return true - end -end +-- MERCHANT_SHOW +function(allstates, e) + if (GetMerchantNumItems() > 0) then + aura_env.allstates = allstates + + if CanMerchantRepair() == true then RepairAllItems() end + + for container = 0, 4 do + for slot = 1, GetContainerNumSlots(container) do + aura_env.FilterService.Run(container, slot) + end + end + return true + end +end diff --git a/FreshShit/AutoVendor/Export b/WeakAuras/Projects/AutoVendor/Export similarity index 100% rename from FreshShit/AutoVendor/Export rename to WeakAuras/Projects/AutoVendor/Export diff --git a/FreshShit/AutoVendor/Init.lua b/WeakAuras/Projects/AutoVendor/Init.lua similarity index 97% rename from FreshShit/AutoVendor/Init.lua rename to WeakAuras/Projects/AutoVendor/Init.lua index 42d63fa..cd6a820 100644 --- a/FreshShit/AutoVendor/Init.lua +++ b/WeakAuras/Projects/AutoVendor/Init.lua @@ -1,259 +1,259 @@ -local debug = false -local iconDisplayDuration = 3 - ----@param container number ----@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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 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) -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 - - 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 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, - - icon = itemIcon, - name = nameWithQuantity, - amount = itemQuantity, - - progressType = "timed", - expirationTime = GetTime() + iconDisplayDuration, - duration = iconDisplayDuration, - autoHide = true, - } - - UseContainerItem(container, slot) - return nil, nil -end - ----@type table -local filters = { - 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, -} - -aura_env.qualityColors = { - "\124cff9d9d9d", -- Poor - "\124cffffffff", -- Common - "\124cff1eff00", -- Uncommon - "\124cff0070dd", -- Rare - "\124cffa335ee", -- Epic - "\124cffff8000", -- Legendary - "\124cffe6cc80", -- Artifact - "\124cff00ccff", -- Heirloom -} +local debug = false +local iconDisplayDuration = 3 + +---@param container number +---@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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 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) +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 + + 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 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, + + icon = itemIcon, + name = nameWithQuantity, + amount = itemQuantity, + + progressType = "timed", + expirationTime = GetTime() + iconDisplayDuration, + duration = iconDisplayDuration, + autoHide = true, + } + + UseContainerItem(container, slot) + return nil, nil +end + +---@type table +local filters = { + 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, +} + +aura_env.qualityColors = { + "\124cff9d9d9d", -- Poor + "\124cffffffff", -- Common + "\124cff1eff00", -- Uncommon + "\124cff0070dd", -- Rare + "\124cffa335ee", -- Epic + "\124cffff8000", -- Legendary + "\124cffe6cc80", -- Artifact + "\124cff00ccff", -- Heirloom +} diff --git a/Complete Projects/Legion/Autoloot.lua b/WeakAuras/Projects/Autoloot.lua similarity index 97% rename from Complete Projects/Legion/Autoloot.lua rename to WeakAuras/Projects/Autoloot.lua index 25f2f7f..b5feea5 100644 --- a/Complete Projects/Legion/Autoloot.lua +++ b/WeakAuras/Projects/Autoloot.lua @@ -1,698 +1,698 @@ ---LOOT_READY MERCHANT_SHOW QUEST_POI_UPDATE QUEST_DETAIL QUEST_COMPLETE QUEST_GREETING QUEST_PROGRESS GOSSIP_SHOW SCRAPPING_MACHINE_SHOW MERCHANT_CLOSED EQUIP_BIND_CONFIRM -function(e) - local aura_env = aura_env - if e == "LOOT_READY" then --Auto Loot - local slot = 1 - local lootinfo = GetLootInfo() - for k, v in pairs(lootinfo) do - if v.locked == false then - local link = GetLootSlotLink(slot) - local looted = false - if not link then link = GetLootSlotLink(slot) end - if aura_env.filter[1] == true and (v.item:match("%d+ Gold") or v.item:match("%d+ Silver") or v.item:match("%d+ Copper")) then - LootSlot(slot) - if aura_env.debug == true then - print("loot 1 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - elseif aura_env.filter[2] == true and link:match("Azerite") then - LootSlot(slot) - if aura_env.debug == true then - print("loot 2 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - elseif aura_env.filter[3] == true and v.item:match("War Resources") then - LootSlot(slot) - if aura_env.debug == true then - print("loot 3 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - elseif aura_env.filter[4] == true and v.item:match("Residuum") then - LootSlot(slot) - if aura_env.debug == true then - print("loot 4 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - elseif aura_env.filter[5] == true and v.item:match("Manapearl") then - LootSlot(slot) - if aura_env.debug == true then - print("loot 5 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - end - if link then - local icon = v.texture - local id = link:match("item:(%d+):") - if not WeakAurasSaved.CustomTrash.IconDatabase[v.item] and v.item and icon then - WeakAurasSaved.CustomTrash.IconDatabase[v.item] = icon - print("Adding ", v.item, " to the icon database") - end - if not WeakAurasSaved.CustomTrash.IDDatabase[v.item] and v.item and id then - WeakAurasSaved.CustomTrash.IDDatabase[v.item] = id - print("Adding ", v.item, " to the id database") - end - local type = select(6, GetItemInfo(link)) or "" - local subtype = select(7, GetItemInfo(link)) or "" - local ilvl = select(4, GetItemInfo(link)) or 0 - local equip = select(9, GetItemInfo(link)) - if aura_env.filter[6] == true and (select(7, GetItemInfo(link)) or 0) == "Mount" then - LootSlot(slot) - if aura_env.debug == true then - print("loot 6 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - elseif aura_env.filter[7] == true and ilvl > aura_env.ilvlFilter then - LootSlot(slot) - if aura_env.debug == true then - print("loot 7 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - elseif aura_env.filter[8] == true and (select(7, GetItemInfo(link)) or 0) == "Herb" then - LootSlot(slot) - if aura_env.debug == true then - print("loot 8 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - elseif aura_env.filter[9] == true and (select(7, GetItemInfo(link)) or 0) == "Cooking" then - LootSlot(slot) - if aura_env.debug == true then - print("loot 9 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - elseif aura_env.filter[10] == true and (select(7, GetItemInfo(link)) or 0) == "Cloth" and type == "Tradeskill" then - LootSlot(slot) - if aura_env.debug == true then - print("loot 10 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - elseif aura_env.filter[11] == true and (select(7, GetItemInfo(link)) or 0) == "Metal & Stone" then - LootSlot(slot) - if aura_env.debug == true then - print("loot 11 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - elseif aura_env.filter[12] == true and (select(11, GetItemInfo(link)) or 0) > aura_env.goldFilter and v.quality == 0 then - LootSlot(slot) - if aura_env.debug == true then - print("loot 12 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - elseif aura_env.filter[13] == true and v.quality > 1 and v.quality < 4 and type ~= "Weapon" and type ~= "Armor" then - LootSlot(slot) - if aura_env.debug == true then - print("loot 13 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - elseif aura_env.filter[14] == true and v.isQuestItem == true then - LootSlot(slot) - if aura_env.debug == true then - print("loot 14 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - elseif aura_env.filter[15] == true and v.quality == 0 then - LootSlot(slot) - if aura_env.debug == true then - print("loot 15 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - elseif aura_env.filter[16] == true and aura_env.whitelist[v.item] then - LootSlot(slot) - if aura_env.debug == true then - print("loot 16 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - elseif aura_env.filter[17] == true and type == "Quest" and subtype == "Quest" then - LootSlot(slot) - if aura_env.debug == true then - print("loot 17 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - elseif aura_env.filter[21] == true and type == "Consumable" and subtype == "Other" then - LootSlot(slot) - if aura_env.debug == true then - print("loot 21 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - else - if type == "Weapon" or type == "Armor" then - if aura_env.filter[18] == true and aura_env.skills[select(3, UnitClass("player"))][subtype] == 1 and v.quality > 2 then - LootSlot(slot) - if aura_env.debug == true then - print("loot 18 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - elseif aura_env.filter[19] == true and (equip == "INVTYPE_FINGER" or equip == "INVTYPE_TRINKET" or equip == "INVTYPE_CLOAK" or equip == "INVTYPE_NECK") and v.quality > 2 then - LootSlot(slot) - if aura_env.debug == true then - print("loot 19 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - end - elseif aura_env.filter[20] == true and type == "Miscellaneous" then - if subtype == "Mount" then - LootSlot(slot) - if aura_env.debug == true then - print("loot 20 ", v.item, type, subtype) - end - if link then - WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) - end - end - end - end - end - slot = slot + 1 - end - end - CloseLoot() - elseif e == "EQUIP_BIND_CONFIRM" then - StaticPopup1Button1:Click() - elseif e == "SCRAPPING_MACHINE_SHOW" then - for i = 0, 4 do - for j = 1, GetContainerNumSlots(i) do - local link = select(7, GetContainerItemInfo(i, j)) - if link then - local name = GetItemInfo(link) - local rarity = select(3, GetItemInfo(link)) - local ilvl = select(4, GetItemInfo(link)) or 0 - local type = select(6, GetItemInfo(link)) - local equip = select(9, GetItemInfo(link)) or "" - local price = select(11, GetItemInfo(link)) - if aura_env.sellWhitelist[name] ~= 1 then - if name and rarity and ilvl and type and equip and price then - if (type == "Armor" or type == "Weapon") and rarity <= 3 and aura_env.getequipID(equip) then - UseContainerItem(i, j) - elseif rarity > 3 and aura_env.getequipID(equip) then - if equip ~= "INVTYPE_FINGER" then - local eqID = aura_env.getequipID(equip) - local elink = GetInventoryItemLink("player", eqID) - local eilvl = select(4, GetItemInfo(elink)) or 0 - if eilvl > ilvl + 5 then - print("Scrapping " .. link .. "over " .. eilvl - ilvl .. " ilvl difference from " .. elink) - UseContainerItem(i, j) - end - elseif equip == "INVTYPE_FINGER" then - local eqID1, eqID2 = 11, 12 - local elink1, elink2 = GetInventoryItemLink("player", eqID1), GetInventoryItemLink("player", eqID2) - local eilvl1, eilvl2 = select(4, GetItemInfo(elink1)) or 0, select(4, GetItemInfo(elink2)) or 0 - if eilvl1 > ilvl + 5 then - print("Scrapping " .. link .. " over " .. eilvl1 - ilvl .. " ilvl difference from " .. elink1) - UseContainerItem(i, j) - elseif eilvl2 > ilvl + 5 then - print("Scrapping " .. link .. " over " .. eilvl2 - ilvl .. " ilvl difference from " .. elink2) - UseContainerItem(i, j) - end - end - end - end - end - end - end - end - elseif e == "MERCHANT_SHOW" then --Sell grey and white wepaon - if CanMerchantRepair() == true then RepairAllItems() end - local i, j = 0, 1 - for c = 0, 4 do - for s = 1, GetContainerNumSlots(c) do - local link = select(7, GetContainerItemInfo(c, s)) - if link then - local name = GetItemInfo(link) - local rarity = select(3, GetItemInfo(link)) - local ilvl = select(4, GetItemInfo(link)) or 0 - local type = select(6, GetItemInfo(link)) - local price = select(11, GetItemInfo(link)) - if price and price > 0 then - if aura_env.sellWhitelist[name] ~= 1 then - if rarity == 0 then - aura_env.toSell[#aura_env.toSell + 1] = {["c"] = c, ["s"] = s} - elseif (type == "Armor" or type == "Weapon") and ilvl < 350 then - aura_env.toSell[#aura_env.toSell + 1] = {["c"] = c, ["s"] = s} - end - end - end - end - end - end - aura_env.ticker = C_Timer.NewTicker(0.15, function() - if aura_env.toSell[1] then - UseContainerItem(aura_env.toSell[1].c, aura_env.toSell[1].s) - table.remove(aura_env.toSell, 1) - else - aura_env.ticker:Cancel() - end - if j >= GetContainerNumSlots(i) then i = i + 1 - j = 1 end - if i >= 4 then aura_env.ticker:Cancel() end - end) - elseif e == "MERCHANT_CLOSED" then - if aura_env.ticker then aura_env.ticker:Cancel() end - aura_env.toSell = {} - elseif e == "QUEST_POI_UPDATE" then - CloseGossip() - elseif e == "QUEST_DETAIL" then - AcceptQuest() - elseif e == "QUEST_COMPLETE" then - if GetNumQuestChoices() <= 1 then - GetQuestReward(1) - end - elseif e == "GOSSIP_SHOW" then - local quests = GetNumGossipAvailableQuests() - local complquests = GetNumGossipActiveQuests() - local opt = GetNumGossipOptions() - if complquests > 0 and opt == 0 then - for i = 1, complquests do - SelectGossipActiveQuest(i) - end - end - if quests > 0 and opt == 0 then - SelectGossipAvailableQuest(1) - end - if opt == 1 and quests + complquests == 0 then - SelectGossipOption(1) - end - elseif e == "QUEST_GREETING" then - local quests = GetNumGossipAvailableQuests() - local complquests = GetNumGossipActiveQuests() - if complquests > 0 then - for i = 1, complquests do - SelectActiveQuest(1) - end - end - if quests > 0 then - SelectAvailableQuest(1) - end - elseif e == "QUEST_PROGRESS" then - if IsQuestCompletable(i) then - CompleteQuest() - end - end -end - ---INIT -aura_env.debug = true -aura_env.filter = { - [1] = true, --Gold - [2] = true, --Azerite - [3] = true, --War resources - [4] = true, --Residuum - [5] = true, --Manapearls - [6] = true, --Mounts - [7] = true, --High ilvl - [8] = true, --Herbs - [9] = false, --Cooking - [10] = false, --Cloth - [11] = true, --Metal & Stone - [12] = true, --Gold filter greys - [13] = true, -- >1 && <4 quality items, no gear - [14] = true, --Quest items - [15] = false, --All greys - [16] = true, --Whitelist - [17] = true, --Quest items (different filter) - [18] = true, --Class aproperiate >2 items - [19] = true, --Jewelery >2 quality - [20] = true, --Additional mount filter - [21] = true, --Tradeskill // Elemental -} -aura_env.ilvlFilter = 940 -aura_env.goldFilter = 500000 - -aura_env.whitelist = { - ["Pygmy Suckerfish"] = 1, - ["Drakkari Offerings"] = 1, - ["Deepcoral Pod"] = 1, - ["Hardened Spring"] = 1, - ["Machined Gear Assembly"] = 1, - ["Tempered Plating"] = 1, - ["Hefty Glimmershell"] = 1, - ["Fresh Meat"] = 1, - ["Wood"] = 1, - - ["Blood of Sargeras"] = 1, - ["Primal Sargerite"] = 1, -} -aura_env.sellWhitelist = { - ["Blacksmith Hammer"] = 1, - ["Endless Tincture of Renewed Combat"] = 1, - ["Mr. Munchykins"] = 1, - ["Arclight Spanner"] = 1, - ["Runeblade of Baron Rivendare"] = 1, -} -aura_env.toSell = {} -aura_env.getequipID = function(equip) - if equip == "INVTYPE_HEAD" then return 1 - elseif equip == "INVTYPE_NECK" then return 2 - elseif equip == "INVTYPE_SHOULDER" then return 3 - elseif equip == "INVTYPE_BODY" then return 4 - elseif equip == "INVTYPE_CHEST" or equip == "INVTYPE_ROBE" then return 5 - elseif equip == "INVTYPE_WAIST" then return 6 - elseif equip == "INVTYPE_LEGS" then return 7 - elseif equip == "INVTYPE_FEET" then return 8 - elseif equip == "INVTYPE_WRIST" then return 9 - elseif equip == "INVTYPE_HAND" then return 10 - elseif equip == "INVTYPE_CLOAK" then return 15 - elseif equip == "INVTYPE_WEAPON" or equip == "INVTYPE_WEAPONMAINHAND" or equip == "INVTYPE_2HWEAPON" then return 16 - elseif equip == "INVTYPE_SHIELD" then return 17 - else return nil 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, - }, -} +--LOOT_READY MERCHANT_SHOW QUEST_POI_UPDATE QUEST_DETAIL QUEST_COMPLETE QUEST_GREETING QUEST_PROGRESS GOSSIP_SHOW SCRAPPING_MACHINE_SHOW MERCHANT_CLOSED EQUIP_BIND_CONFIRM +function(e) + local aura_env = aura_env + if e == "LOOT_READY" then --Auto Loot + local slot = 1 + local lootinfo = GetLootInfo() + for k, v in pairs(lootinfo) do + if v.locked == false then + local link = GetLootSlotLink(slot) + local looted = false + if not link then link = GetLootSlotLink(slot) end + if aura_env.filter[1] == true and (v.item:match("%d+ Gold") or v.item:match("%d+ Silver") or v.item:match("%d+ Copper")) then + LootSlot(slot) + if aura_env.debug == true then + print("loot 1 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + elseif aura_env.filter[2] == true and link:match("Azerite") then + LootSlot(slot) + if aura_env.debug == true then + print("loot 2 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + elseif aura_env.filter[3] == true and v.item:match("War Resources") then + LootSlot(slot) + if aura_env.debug == true then + print("loot 3 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + elseif aura_env.filter[4] == true and v.item:match("Residuum") then + LootSlot(slot) + if aura_env.debug == true then + print("loot 4 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + elseif aura_env.filter[5] == true and v.item:match("Manapearl") then + LootSlot(slot) + if aura_env.debug == true then + print("loot 5 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + end + if link then + local icon = v.texture + local id = link:match("item:(%d+):") + if not WeakAurasSaved.CustomTrash.IconDatabase[v.item] and v.item and icon then + WeakAurasSaved.CustomTrash.IconDatabase[v.item] = icon + print("Adding ", v.item, " to the icon database") + end + if not WeakAurasSaved.CustomTrash.IDDatabase[v.item] and v.item and id then + WeakAurasSaved.CustomTrash.IDDatabase[v.item] = id + print("Adding ", v.item, " to the id database") + end + local type = select(6, GetItemInfo(link)) or "" + local subtype = select(7, GetItemInfo(link)) or "" + local ilvl = select(4, GetItemInfo(link)) or 0 + local equip = select(9, GetItemInfo(link)) + if aura_env.filter[6] == true and (select(7, GetItemInfo(link)) or 0) == "Mount" then + LootSlot(slot) + if aura_env.debug == true then + print("loot 6 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + elseif aura_env.filter[7] == true and ilvl > aura_env.ilvlFilter then + LootSlot(slot) + if aura_env.debug == true then + print("loot 7 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + elseif aura_env.filter[8] == true and (select(7, GetItemInfo(link)) or 0) == "Herb" then + LootSlot(slot) + if aura_env.debug == true then + print("loot 8 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + elseif aura_env.filter[9] == true and (select(7, GetItemInfo(link)) or 0) == "Cooking" then + LootSlot(slot) + if aura_env.debug == true then + print("loot 9 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + elseif aura_env.filter[10] == true and (select(7, GetItemInfo(link)) or 0) == "Cloth" and type == "Tradeskill" then + LootSlot(slot) + if aura_env.debug == true then + print("loot 10 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + elseif aura_env.filter[11] == true and (select(7, GetItemInfo(link)) or 0) == "Metal & Stone" then + LootSlot(slot) + if aura_env.debug == true then + print("loot 11 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + elseif aura_env.filter[12] == true and (select(11, GetItemInfo(link)) or 0) > aura_env.goldFilter and v.quality == 0 then + LootSlot(slot) + if aura_env.debug == true then + print("loot 12 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + elseif aura_env.filter[13] == true and v.quality > 1 and v.quality < 4 and type ~= "Weapon" and type ~= "Armor" then + LootSlot(slot) + if aura_env.debug == true then + print("loot 13 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + elseif aura_env.filter[14] == true and v.isQuestItem == true then + LootSlot(slot) + if aura_env.debug == true then + print("loot 14 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + elseif aura_env.filter[15] == true and v.quality == 0 then + LootSlot(slot) + if aura_env.debug == true then + print("loot 15 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + elseif aura_env.filter[16] == true and aura_env.whitelist[v.item] then + LootSlot(slot) + if aura_env.debug == true then + print("loot 16 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + elseif aura_env.filter[17] == true and type == "Quest" and subtype == "Quest" then + LootSlot(slot) + if aura_env.debug == true then + print("loot 17 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + elseif aura_env.filter[21] == true and type == "Consumable" and subtype == "Other" then + LootSlot(slot) + if aura_env.debug == true then + print("loot 21 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + else + if type == "Weapon" or type == "Armor" then + if aura_env.filter[18] == true and aura_env.skills[select(3, UnitClass("player"))][subtype] == 1 and v.quality > 2 then + LootSlot(slot) + if aura_env.debug == true then + print("loot 18 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + elseif aura_env.filter[19] == true and (equip == "INVTYPE_FINGER" or equip == "INVTYPE_TRINKET" or equip == "INVTYPE_CLOAK" or equip == "INVTYPE_NECK") and v.quality > 2 then + LootSlot(slot) + if aura_env.debug == true then + print("loot 19 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + end + elseif aura_env.filter[20] == true and type == "Miscellaneous" then + if subtype == "Mount" then + LootSlot(slot) + if aura_env.debug == true then + print("loot 20 ", v.item, type, subtype) + end + if link then + WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) + end + end + end + end + end + slot = slot + 1 + end + end + CloseLoot() + elseif e == "EQUIP_BIND_CONFIRM" then + StaticPopup1Button1:Click() + elseif e == "SCRAPPING_MACHINE_SHOW" then + for i = 0, 4 do + for j = 1, GetContainerNumSlots(i) do + local link = select(7, GetContainerItemInfo(i, j)) + if link then + local name = GetItemInfo(link) + local rarity = select(3, GetItemInfo(link)) + local ilvl = select(4, GetItemInfo(link)) or 0 + local type = select(6, GetItemInfo(link)) + local equip = select(9, GetItemInfo(link)) or "" + local price = select(11, GetItemInfo(link)) + if aura_env.sellWhitelist[name] ~= 1 then + if name and rarity and ilvl and type and equip and price then + if (type == "Armor" or type == "Weapon") and rarity <= 3 and aura_env.getequipID(equip) then + UseContainerItem(i, j) + elseif rarity > 3 and aura_env.getequipID(equip) then + if equip ~= "INVTYPE_FINGER" then + local eqID = aura_env.getequipID(equip) + local elink = GetInventoryItemLink("player", eqID) + local eilvl = select(4, GetItemInfo(elink)) or 0 + if eilvl > ilvl + 5 then + print("Scrapping " .. link .. "over " .. eilvl - ilvl .. " ilvl difference from " .. elink) + UseContainerItem(i, j) + end + elseif equip == "INVTYPE_FINGER" then + local eqID1, eqID2 = 11, 12 + local elink1, elink2 = GetInventoryItemLink("player", eqID1), GetInventoryItemLink("player", eqID2) + local eilvl1, eilvl2 = select(4, GetItemInfo(elink1)) or 0, select(4, GetItemInfo(elink2)) or 0 + if eilvl1 > ilvl + 5 then + print("Scrapping " .. link .. " over " .. eilvl1 - ilvl .. " ilvl difference from " .. elink1) + UseContainerItem(i, j) + elseif eilvl2 > ilvl + 5 then + print("Scrapping " .. link .. " over " .. eilvl2 - ilvl .. " ilvl difference from " .. elink2) + UseContainerItem(i, j) + end + end + end + end + end + end + end + end + elseif e == "MERCHANT_SHOW" then --Sell grey and white wepaon + if CanMerchantRepair() == true then RepairAllItems() end + local i, j = 0, 1 + for c = 0, 4 do + for s = 1, GetContainerNumSlots(c) do + local link = select(7, GetContainerItemInfo(c, s)) + if link then + local name = GetItemInfo(link) + local rarity = select(3, GetItemInfo(link)) + local ilvl = select(4, GetItemInfo(link)) or 0 + local type = select(6, GetItemInfo(link)) + local price = select(11, GetItemInfo(link)) + if price and price > 0 then + if aura_env.sellWhitelist[name] ~= 1 then + if rarity == 0 then + aura_env.toSell[#aura_env.toSell + 1] = {["c"] = c, ["s"] = s} + elseif (type == "Armor" or type == "Weapon") and ilvl < 350 then + aura_env.toSell[#aura_env.toSell + 1] = {["c"] = c, ["s"] = s} + end + end + end + end + end + end + aura_env.ticker = C_Timer.NewTicker(0.15, function() + if aura_env.toSell[1] then + UseContainerItem(aura_env.toSell[1].c, aura_env.toSell[1].s) + table.remove(aura_env.toSell, 1) + else + aura_env.ticker:Cancel() + end + if j >= GetContainerNumSlots(i) then i = i + 1 + j = 1 end + if i >= 4 then aura_env.ticker:Cancel() end + end) + elseif e == "MERCHANT_CLOSED" then + if aura_env.ticker then aura_env.ticker:Cancel() end + aura_env.toSell = {} + elseif e == "QUEST_POI_UPDATE" then + CloseGossip() + elseif e == "QUEST_DETAIL" then + AcceptQuest() + elseif e == "QUEST_COMPLETE" then + if GetNumQuestChoices() <= 1 then + GetQuestReward(1) + end + elseif e == "GOSSIP_SHOW" then + local quests = GetNumGossipAvailableQuests() + local complquests = GetNumGossipActiveQuests() + local opt = GetNumGossipOptions() + if complquests > 0 and opt == 0 then + for i = 1, complquests do + SelectGossipActiveQuest(i) + end + end + if quests > 0 and opt == 0 then + SelectGossipAvailableQuest(1) + end + if opt == 1 and quests + complquests == 0 then + SelectGossipOption(1) + end + elseif e == "QUEST_GREETING" then + local quests = GetNumGossipAvailableQuests() + local complquests = GetNumGossipActiveQuests() + if complquests > 0 then + for i = 1, complquests do + SelectActiveQuest(1) + end + end + if quests > 0 then + SelectAvailableQuest(1) + end + elseif e == "QUEST_PROGRESS" then + if IsQuestCompletable(i) then + CompleteQuest() + end + end +end + +--INIT +aura_env.debug = true +aura_env.filter = { + [1] = true, --Gold + [2] = true, --Azerite + [3] = true, --War resources + [4] = true, --Residuum + [5] = true, --Manapearls + [6] = true, --Mounts + [7] = true, --High ilvl + [8] = true, --Herbs + [9] = false, --Cooking + [10] = false, --Cloth + [11] = true, --Metal & Stone + [12] = true, --Gold filter greys + [13] = true, -- >1 && <4 quality items, no gear + [14] = true, --Quest items + [15] = false, --All greys + [16] = true, --Whitelist + [17] = true, --Quest items (different filter) + [18] = true, --Class aproperiate >2 items + [19] = true, --Jewelery >2 quality + [20] = true, --Additional mount filter + [21] = true, --Tradeskill // Elemental +} +aura_env.ilvlFilter = 940 +aura_env.goldFilter = 500000 + +aura_env.whitelist = { + ["Pygmy Suckerfish"] = 1, + ["Drakkari Offerings"] = 1, + ["Deepcoral Pod"] = 1, + ["Hardened Spring"] = 1, + ["Machined Gear Assembly"] = 1, + ["Tempered Plating"] = 1, + ["Hefty Glimmershell"] = 1, + ["Fresh Meat"] = 1, + ["Wood"] = 1, + + ["Blood of Sargeras"] = 1, + ["Primal Sargerite"] = 1, +} +aura_env.sellWhitelist = { + ["Blacksmith Hammer"] = 1, + ["Endless Tincture of Renewed Combat"] = 1, + ["Mr. Munchykins"] = 1, + ["Arclight Spanner"] = 1, + ["Runeblade of Baron Rivendare"] = 1, +} +aura_env.toSell = {} +aura_env.getequipID = function(equip) + if equip == "INVTYPE_HEAD" then return 1 + elseif equip == "INVTYPE_NECK" then return 2 + elseif equip == "INVTYPE_SHOULDER" then return 3 + elseif equip == "INVTYPE_BODY" then return 4 + elseif equip == "INVTYPE_CHEST" or equip == "INVTYPE_ROBE" then return 5 + elseif equip == "INVTYPE_WAIST" then return 6 + elseif equip == "INVTYPE_LEGS" then return 7 + elseif equip == "INVTYPE_FEET" then return 8 + elseif equip == "INVTYPE_WRIST" then return 9 + elseif equip == "INVTYPE_HAND" then return 10 + elseif equip == "INVTYPE_CLOAK" then return 15 + elseif equip == "INVTYPE_WEAPON" or equip == "INVTYPE_WEAPONMAINHAND" or equip == "INVTYPE_2HWEAPON" then return 16 + elseif equip == "INVTYPE_SHIELD" then return 17 + else return nil 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, + }, +} diff --git a/NewAge/Automation/Eventz.lua b/WeakAuras/Projects/Automation/Eventz.lua similarity index 98% rename from NewAge/Automation/Eventz.lua rename to WeakAuras/Projects/Automation/Eventz.lua index a9c580b..007e5a0 100644 --- a/NewAge/Automation/Eventz.lua +++ b/WeakAuras/Projects/Automation/Eventz.lua @@ -1,205 +1,205 @@ ---- LOOT_READY LOOT_OPENED MERCHANT_SHOW QUEST_POI_UPDATE QUEST_DETAIL QUEST_COMPLETE QUEST_GREETING QUEST_PROGRESS GOSSIP_SHOW SCRAPPING_MACHINE_SHOW MERCHANT_CLOSED EQUIP_BIND_CONFIRM -function(e) - local aura_env = aura_env - if e == "LOOT_READY" or e == "LOOT_OPENED" then --Auto Loot - local slot = 1 - local lootinfo = GetLootInfo() - for k, v in pairs(lootinfo) do - if v.locked == false then - local link = GetLootSlotLink(slot) - local looted = false - if not link then link = GetLootSlotLink(slot) end - if aura_env.filter[1] == true and (v.item:match("%d+ Gold") or v.item:match("%d+ Silver") or v.item:match("%d+ Copper")) then - LootSlot(slot) - elseif aura_env.filter[2] == true and link:match("Azerite") then - LootSlot(slot) - elseif aura_env.filter[3] == true and v.item:match("War Resources") then - LootSlot(slot) - elseif aura_env.filter[4] == true and v.item:match("Residuum") then - LootSlot(slot) - elseif aura_env.filter[5] == true and v.item:match("Manapearl") then - LootSlot(slot) - end - if link then - local icon = v.texture - local id = link:match("item:(%d+):") - local type = select(6, GetItemInfo(link)) or "" - local subtype = select(7, GetItemInfo(link)) or "" - local ilvl = select(4, GetItemInfo(link)) or 0 - local equip = select(9, GetItemInfo(link)) - if aura_env.filter[6] == true and (select(7, GetItemInfo(link)) or 0) == "Mount" then - LootSlot(slot) - elseif aura_env.filter[7] == true and ilvl > aura_env.ilvlFilter then - LootSlot(slot) - elseif aura_env.filter[8] == true and (select(7, GetItemInfo(link)) or 0) == "Herb" then - LootSlot(slot) - elseif aura_env.filter[9] == true and (select(7, GetItemInfo(link)) or 0) == "Cooking" then - LootSlot(slot) - elseif aura_env.filter[10] == true and (select(7, GetItemInfo(link)) or 0) == "Cloth" and type == "Tradeskill" then - LootSlot(slot) - elseif aura_env.filter[11] == true and (select(7, GetItemInfo(link)) or 0) == "Metal & Stone" then - LootSlot(slot) - elseif aura_env.filter[12] == true and (select(11, GetItemInfo(link)) or 0) > aura_env.goldFilter and v.quality == 0 then - LootSlot(slot) - elseif aura_env.filter[13] == true and v.quality > 1 and v.quality < 4 and type ~= "Weapon" and type ~= "Armor" then - LootSlot(slot) - elseif aura_env.filter[14] == true and v.isQuestItem == true then - LootSlot(slot) - elseif aura_env.filter[15] == true and v.quality == 0 then - LootSlot(slot) - elseif aura_env.filter[16] == true and aura_env.whitelist[v.item] then - LootSlot(slot) - elseif aura_env.filter[17] == true and type == "Quest" and subtype == "Quest" then - LootSlot(slot) - elseif aura_env.filter[21] == true and type == "Tradeskill" and subtype == "Elemental" then - LootSlot(slot) - else - if type == "Weapon" or type == "Armor" then - if aura_env.filter[18] == true and aura_env.skills[select(3, UnitClass("player"))][subtype] == 1 and v.quality > 2 then - LootSlot(slot) - elseif aura_env.filter[19] == true and (equip == "INVTYPE_FINGER" or equip == "INVTYPE_TRINKET" or equip == "INVTYPE_CLOAK" or equip == "INVTYPE_NECK") and v.quality > 2 then - LootSlot(slot) - end - elseif aura_env.filter[20] == true and type == "Miscellaneous" then - if subtype == "Mount" then - LootSlot(slot) - end - end - end - end - slot = slot + 1 - end - end - --CloseLoot() - elseif e == "EQUIP_BIND_CONFIRM" then - StaticPopup1Button1:Click() - elseif e == "SCRAPPING_MACHINE_SHOW" then - for i = 0, 4 do - for j = 1, GetContainerNumSlots(i) do - local link = select(7, GetContainerItemInfo(i, j)) - if link then - local name = GetItemInfo(link) - local rarity = select(3, GetItemInfo(link)) - local ilvl = select(4, GetItemInfo(link)) or 0 - local type = select(6, GetItemInfo(link)) - local equip = select(9, GetItemInfo(link)) or "" - local price = select(11, GetItemInfo(link)) - if aura_env.sellWhitelist[name] ~= 1 then - if name and rarity and ilvl and type and equip and price then - if (type == "Armor" or type == "Weapon") and rarity <= 3 and aura_env.getequipID(equip) then - UseContainerItem(i, j) - elseif rarity > 3 and aura_env.getequipID(equip) then - if equip ~= "INVTYPE_FINGER" then - local eqID = aura_env.getequipID(equip) - local elink = GetInventoryItemLink("player", eqID) - local eilvl = select(4, GetItemInfo(elink)) or 0 - if eilvl > ilvl + 5 then - print("Scrapping " .. link .. "over " .. eilvl - ilvl .. " ilvl difference from " .. elink) - UseContainerItem(i, j) - end - elseif equip == "INVTYPE_FINGER" then - local eqID1, eqID2 = 11, 12 - local elink1, elink2 = GetInventoryItemLink("player", eqID1), GetInventoryItemLink("player", eqID2) - local eilvl1, eilvl2 = select(4, GetItemInfo(elink1)) or 0, select(4, GetItemInfo(elink2)) or 0 - if eilvl1 > ilvl + 5 then - print("Scrapping " .. link .. " over " .. eilvl1 - ilvl .. " ilvl difference from " .. elink1) - UseContainerItem(i, j) - elseif eilvl2 > ilvl + 5 then - print("Scrapping " .. link .. " over " .. eilvl2 - ilvl .. " ilvl difference from " .. elink2) - UseContainerItem(i, j) - end - end - end - end - end - end - end - end - elseif e == "MERCHANT_SHOW" then --Sell grey and white wepaon - if CanMerchantRepair() == true then RepairAllItems() end - local i, j = 0, 1 - for c = 0, 4 do - for s = 1, GetContainerNumSlots(c) do - local link = select(7, GetContainerItemInfo(c, s)) - if link then - local name = GetItemInfo(link) - local rarity = select(3, GetItemInfo(link)) - local ilvl = select(4, GetItemInfo(link)) or 0 - local type = select(6, GetItemInfo(link)) - local price = select(11, GetItemInfo(link)) - if price and price > 0 then - if aura_env.sellWhitelist[name] ~= 1 then - if rarity == 0 then - if aura_env.throttleSell == true then - aura_env.toSell[#aura_env.toSell + 1] = {["c"] = c, ["s"] = s} - else - UseContainerItem(c, s) - end - elseif (type == "Armor" or type == "Weapon") and ilvl < 200 then - if aura_env.throttleSell == true then - aura_env.toSell[#aura_env.toSell + 1] = {["c"] = c, ["s"] = s} - else - UseContainerItem(c, s) - end - end - end - end - end - end - end - if aura_env.throttleSell == true then - aura_env.ticker = C_Timer.NewTicker(0.05, function() - if aura_env.toSell[1] then - UseContainerItem(aura_env.toSell[1].c, aura_env.toSell[1].s) - table.remove(aura_env.toSell, 1) - else - aura_env.ticker:Cancel() - end - if j >= GetContainerNumSlots(i) then i = i + 1 - j = 1 end - if i >= 4 then aura_env.ticker:Cancel() end - end) - end - elseif e == "MERCHANT_CLOSED" then - if aura_env.ticker then aura_env.ticker:Cancel() end - aura_env.toSell = {} - elseif e == "QUEST_POI_UPDATE" then - CloseGossip() - elseif e == "QUEST_DETAIL" then - AcceptQuest() - elseif e == "QUEST_COMPLETE" then - if GetNumQuestChoices() <= 1 then - GetQuestReward(1) - end - elseif e == "GOSSIP_SHOW" then - local quests = GetNumGossipAvailableQuests() - local complquests = GetNumGossipActiveQuests() - local opt = GetNumGossipOptions() - if complquests > 0 and opt == 0 then - for i = 1, complquests do - SelectGossipActiveQuest(i) - end - end - if quests > 0 and opt == 0 then - SelectGossipAvailableQuest(1) - end - if opt == 1 and quests + complquests == 0 then - SelectGossipOption(1) - end - elseif e == "QUEST_GREETING" then - local quests = GetNumGossipAvailableQuests() - local complquests = GetNumGossipActiveQuests() - if complquests > 0 then - for i = 1, complquests do - SelectActiveQuest(1) - end - end - if quests > 0 then - SelectAvailableQuest(1) - end - elseif e == "QUEST_PROGRESS" then - if IsQuestCompletable(i) then - CompleteQuest() - end - end +--- LOOT_READY LOOT_OPENED MERCHANT_SHOW QUEST_POI_UPDATE QUEST_DETAIL QUEST_COMPLETE QUEST_GREETING QUEST_PROGRESS GOSSIP_SHOW SCRAPPING_MACHINE_SHOW MERCHANT_CLOSED EQUIP_BIND_CONFIRM +function(e) + local aura_env = aura_env + if e == "LOOT_READY" or e == "LOOT_OPENED" then --Auto Loot + local slot = 1 + local lootinfo = GetLootInfo() + for k, v in pairs(lootinfo) do + if v.locked == false then + local link = GetLootSlotLink(slot) + local looted = false + if not link then link = GetLootSlotLink(slot) end + if aura_env.filter[1] == true and (v.item:match("%d+ Gold") or v.item:match("%d+ Silver") or v.item:match("%d+ Copper")) then + LootSlot(slot) + elseif aura_env.filter[2] == true and link:match("Azerite") then + LootSlot(slot) + elseif aura_env.filter[3] == true and v.item:match("War Resources") then + LootSlot(slot) + elseif aura_env.filter[4] == true and v.item:match("Residuum") then + LootSlot(slot) + elseif aura_env.filter[5] == true and v.item:match("Manapearl") then + LootSlot(slot) + end + if link then + local icon = v.texture + local id = link:match("item:(%d+):") + local type = select(6, GetItemInfo(link)) or "" + local subtype = select(7, GetItemInfo(link)) or "" + local ilvl = select(4, GetItemInfo(link)) or 0 + local equip = select(9, GetItemInfo(link)) + if aura_env.filter[6] == true and (select(7, GetItemInfo(link)) or 0) == "Mount" then + LootSlot(slot) + elseif aura_env.filter[7] == true and ilvl > aura_env.ilvlFilter then + LootSlot(slot) + elseif aura_env.filter[8] == true and (select(7, GetItemInfo(link)) or 0) == "Herb" then + LootSlot(slot) + elseif aura_env.filter[9] == true and (select(7, GetItemInfo(link)) or 0) == "Cooking" then + LootSlot(slot) + elseif aura_env.filter[10] == true and (select(7, GetItemInfo(link)) or 0) == "Cloth" and type == "Tradeskill" then + LootSlot(slot) + elseif aura_env.filter[11] == true and (select(7, GetItemInfo(link)) or 0) == "Metal & Stone" then + LootSlot(slot) + elseif aura_env.filter[12] == true and (select(11, GetItemInfo(link)) or 0) > aura_env.goldFilter and v.quality == 0 then + LootSlot(slot) + elseif aura_env.filter[13] == true and v.quality > 1 and v.quality < 4 and type ~= "Weapon" and type ~= "Armor" then + LootSlot(slot) + elseif aura_env.filter[14] == true and v.isQuestItem == true then + LootSlot(slot) + elseif aura_env.filter[15] == true and v.quality == 0 then + LootSlot(slot) + elseif aura_env.filter[16] == true and aura_env.whitelist[v.item] then + LootSlot(slot) + elseif aura_env.filter[17] == true and type == "Quest" and subtype == "Quest" then + LootSlot(slot) + elseif aura_env.filter[21] == true and type == "Tradeskill" and subtype == "Elemental" then + LootSlot(slot) + else + if type == "Weapon" or type == "Armor" then + if aura_env.filter[18] == true and aura_env.skills[select(3, UnitClass("player"))][subtype] == 1 and v.quality > 2 then + LootSlot(slot) + elseif aura_env.filter[19] == true and (equip == "INVTYPE_FINGER" or equip == "INVTYPE_TRINKET" or equip == "INVTYPE_CLOAK" or equip == "INVTYPE_NECK") and v.quality > 2 then + LootSlot(slot) + end + elseif aura_env.filter[20] == true and type == "Miscellaneous" then + if subtype == "Mount" then + LootSlot(slot) + end + end + end + end + slot = slot + 1 + end + end + --CloseLoot() + elseif e == "EQUIP_BIND_CONFIRM" then + StaticPopup1Button1:Click() + elseif e == "SCRAPPING_MACHINE_SHOW" then + for i = 0, 4 do + for j = 1, GetContainerNumSlots(i) do + local link = select(7, GetContainerItemInfo(i, j)) + if link then + local name = GetItemInfo(link) + local rarity = select(3, GetItemInfo(link)) + local ilvl = select(4, GetItemInfo(link)) or 0 + local type = select(6, GetItemInfo(link)) + local equip = select(9, GetItemInfo(link)) or "" + local price = select(11, GetItemInfo(link)) + if aura_env.sellWhitelist[name] ~= 1 then + if name and rarity and ilvl and type and equip and price then + if (type == "Armor" or type == "Weapon") and rarity <= 3 and aura_env.getequipID(equip) then + UseContainerItem(i, j) + elseif rarity > 3 and aura_env.getequipID(equip) then + if equip ~= "INVTYPE_FINGER" then + local eqID = aura_env.getequipID(equip) + local elink = GetInventoryItemLink("player", eqID) + local eilvl = select(4, GetItemInfo(elink)) or 0 + if eilvl > ilvl + 5 then + print("Scrapping " .. link .. "over " .. eilvl - ilvl .. " ilvl difference from " .. elink) + UseContainerItem(i, j) + end + elseif equip == "INVTYPE_FINGER" then + local eqID1, eqID2 = 11, 12 + local elink1, elink2 = GetInventoryItemLink("player", eqID1), GetInventoryItemLink("player", eqID2) + local eilvl1, eilvl2 = select(4, GetItemInfo(elink1)) or 0, select(4, GetItemInfo(elink2)) or 0 + if eilvl1 > ilvl + 5 then + print("Scrapping " .. link .. " over " .. eilvl1 - ilvl .. " ilvl difference from " .. elink1) + UseContainerItem(i, j) + elseif eilvl2 > ilvl + 5 then + print("Scrapping " .. link .. " over " .. eilvl2 - ilvl .. " ilvl difference from " .. elink2) + UseContainerItem(i, j) + end + end + end + end + end + end + end + end + elseif e == "MERCHANT_SHOW" then --Sell grey and white wepaon + if CanMerchantRepair() == true then RepairAllItems() end + local i, j = 0, 1 + for c = 0, 4 do + for s = 1, GetContainerNumSlots(c) do + local link = select(7, GetContainerItemInfo(c, s)) + if link then + local name = GetItemInfo(link) + local rarity = select(3, GetItemInfo(link)) + local ilvl = select(4, GetItemInfo(link)) or 0 + local type = select(6, GetItemInfo(link)) + local price = select(11, GetItemInfo(link)) + if price and price > 0 then + if aura_env.sellWhitelist[name] ~= 1 then + if rarity == 0 then + if aura_env.throttleSell == true then + aura_env.toSell[#aura_env.toSell + 1] = {["c"] = c, ["s"] = s} + else + UseContainerItem(c, s) + end + elseif (type == "Armor" or type == "Weapon") and ilvl < 200 then + if aura_env.throttleSell == true then + aura_env.toSell[#aura_env.toSell + 1] = {["c"] = c, ["s"] = s} + else + UseContainerItem(c, s) + end + end + end + end + end + end + end + if aura_env.throttleSell == true then + aura_env.ticker = C_Timer.NewTicker(0.05, function() + if aura_env.toSell[1] then + UseContainerItem(aura_env.toSell[1].c, aura_env.toSell[1].s) + table.remove(aura_env.toSell, 1) + else + aura_env.ticker:Cancel() + end + if j >= GetContainerNumSlots(i) then i = i + 1 + j = 1 end + if i >= 4 then aura_env.ticker:Cancel() end + end) + end + elseif e == "MERCHANT_CLOSED" then + if aura_env.ticker then aura_env.ticker:Cancel() end + aura_env.toSell = {} + elseif e == "QUEST_POI_UPDATE" then + CloseGossip() + elseif e == "QUEST_DETAIL" then + AcceptQuest() + elseif e == "QUEST_COMPLETE" then + if GetNumQuestChoices() <= 1 then + GetQuestReward(1) + end + elseif e == "GOSSIP_SHOW" then + local quests = GetNumGossipAvailableQuests() + local complquests = GetNumGossipActiveQuests() + local opt = GetNumGossipOptions() + if complquests > 0 and opt == 0 then + for i = 1, complquests do + SelectGossipActiveQuest(i) + end + end + if quests > 0 and opt == 0 then + SelectGossipAvailableQuest(1) + end + if opt == 1 and quests + complquests == 0 then + SelectGossipOption(1) + end + elseif e == "QUEST_GREETING" then + local quests = GetNumGossipAvailableQuests() + local complquests = GetNumGossipActiveQuests() + if complquests > 0 then + for i = 1, complquests do + SelectActiveQuest(1) + end + end + if quests > 0 then + SelectAvailableQuest(1) + end + elseif e == "QUEST_PROGRESS" then + if IsQuestCompletable(i) then + CompleteQuest() + end + end end \ No newline at end of file diff --git a/NewAge/Automation/INIT.lua b/WeakAuras/Projects/Automation/INIT.lua similarity index 95% rename from NewAge/Automation/INIT.lua rename to WeakAuras/Projects/Automation/INIT.lua index bdec97a..98484c1 100644 --- a/NewAge/Automation/INIT.lua +++ b/WeakAuras/Projects/Automation/INIT.lua @@ -1,394 +1,394 @@ -aura_env.debug = true -aura_env.filter = { - [1] = true, --Gold - [2] = true, --Azerite - [3] = true, --War resources - [4] = true, --Residuum - [5] = true, --Manapearls - [6] = true, --Mounts - [7] = true, --High ilvl - [8] = false, --Herbs - [9] = true, --Cooking - [10] = true, --Cloth - [11] = false, --Metal & Stone - [12] = true, --Gold filter greys - [13] = true, -- >1 && <4 quality items, no gear - [14] = true, --Quest items - [15] = true, --All greys - [16] = true, --Whitelist - [17] = true, --Quest items (different filter) - [18] = true, --Class aproperiate >2 items - [19] = true, --Jewelery >2 quality - [20] = true, --Additional mount filter - [21] = true, --Tradeskill // Elemental -} -aura_env.ilvlFilter = 200 -aura_env.goldFilter = 0.5 -aura_env.goldFilter = aura_env.goldFilter * 10000 -aura_env.throttleSell = false - -aura_env.whitelist = { - ["Pygmy Suckerfish"] = 1, - ["Drakkari Offerings"] = 1, - ["Deepcoral Pod"] = 1, - ["Hardened Spring"] = 1, - ["Machined Gear Assembly"] = 1, - ["Tempered Plating"] = 1, - ["Hefty Glimmershell"] = 1, - ["Fresh Meat"] = 1, - ["Wood"] = 1, - - ["Gloom Dust"] = 1, - ["Veiled Crytal"] = 1, - ["Coalescing Visions"] = 1, - ["Echoes of Ny'alotha"] = 1, - ["Corrupted Mementos"] = 1, - - ["Blood of Sargeras"] = 1, - ["Primal Sargerite"] = 1, - - ["Chain Ignitercoil"] = 1, - ["Galvanic Oscillator"] = 1, - ["Corrupted Memento"] = 1, -} -aura_env.sellWhitelist = { - ["Blacksmith Hammer"] = 1, - ["Endless Tincture of Renewed Combat"] = 1, - ["Mr. Munchykins"] = 1, - ["Arclight Spanner"] = 1, - ["Runeblade of Baron Rivendare"] = 1, -} -aura_env.toSell = {} -aura_env.getequipID = function(equip) - if equip == "INVTYPE_HEAD" then - return 1 - elseif equip == "INVTYPE_NECK" then - return 2 - elseif equip == "INVTYPE_SHOULDER" then - return 3 - elseif equip == "INVTYPE_BODY" then - return 4 - elseif equip == "INVTYPE_CHEST" or equip == "INVTYPE_ROBE" then - return 5 - elseif equip == "INVTYPE_WAIST" then - return 6 - elseif equip == "INVTYPE_LEGS" then - return 7 - elseif equip == "INVTYPE_FEET" then - return 8 - elseif equip == "INVTYPE_WRIST" then - return 9 - elseif equip == "INVTYPE_HAND" then - return 10 - elseif equip == "INVTYPE_CLOAK" then - return 15 - elseif equip == "INVTYPE_WEAPON" or equip == "INVTYPE_WEAPONMAINHAND" or equip == "INVTYPE_2HWEAPON" then - return 16 - elseif equip == "INVTYPE_SHIELD" then - return 17 - else - return nil - 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, - }, -} +aura_env.debug = true +aura_env.filter = { + [1] = true, --Gold + [2] = true, --Azerite + [3] = true, --War resources + [4] = true, --Residuum + [5] = true, --Manapearls + [6] = true, --Mounts + [7] = true, --High ilvl + [8] = false, --Herbs + [9] = true, --Cooking + [10] = true, --Cloth + [11] = false, --Metal & Stone + [12] = true, --Gold filter greys + [13] = true, -- >1 && <4 quality items, no gear + [14] = true, --Quest items + [15] = true, --All greys + [16] = true, --Whitelist + [17] = true, --Quest items (different filter) + [18] = true, --Class aproperiate >2 items + [19] = true, --Jewelery >2 quality + [20] = true, --Additional mount filter + [21] = true, --Tradeskill // Elemental +} +aura_env.ilvlFilter = 200 +aura_env.goldFilter = 0.5 +aura_env.goldFilter = aura_env.goldFilter * 10000 +aura_env.throttleSell = false + +aura_env.whitelist = { + ["Pygmy Suckerfish"] = 1, + ["Drakkari Offerings"] = 1, + ["Deepcoral Pod"] = 1, + ["Hardened Spring"] = 1, + ["Machined Gear Assembly"] = 1, + ["Tempered Plating"] = 1, + ["Hefty Glimmershell"] = 1, + ["Fresh Meat"] = 1, + ["Wood"] = 1, + + ["Gloom Dust"] = 1, + ["Veiled Crytal"] = 1, + ["Coalescing Visions"] = 1, + ["Echoes of Ny'alotha"] = 1, + ["Corrupted Mementos"] = 1, + + ["Blood of Sargeras"] = 1, + ["Primal Sargerite"] = 1, + + ["Chain Ignitercoil"] = 1, + ["Galvanic Oscillator"] = 1, + ["Corrupted Memento"] = 1, +} +aura_env.sellWhitelist = { + ["Blacksmith Hammer"] = 1, + ["Endless Tincture of Renewed Combat"] = 1, + ["Mr. Munchykins"] = 1, + ["Arclight Spanner"] = 1, + ["Runeblade of Baron Rivendare"] = 1, +} +aura_env.toSell = {} +aura_env.getequipID = function(equip) + if equip == "INVTYPE_HEAD" then + return 1 + elseif equip == "INVTYPE_NECK" then + return 2 + elseif equip == "INVTYPE_SHOULDER" then + return 3 + elseif equip == "INVTYPE_BODY" then + return 4 + elseif equip == "INVTYPE_CHEST" or equip == "INVTYPE_ROBE" then + return 5 + elseif equip == "INVTYPE_WAIST" then + return 6 + elseif equip == "INVTYPE_LEGS" then + return 7 + elseif equip == "INVTYPE_FEET" then + return 8 + elseif equip == "INVTYPE_WRIST" then + return 9 + elseif equip == "INVTYPE_HAND" then + return 10 + elseif equip == "INVTYPE_CLOAK" then + return 15 + elseif equip == "INVTYPE_WEAPON" or equip == "INVTYPE_WEAPONMAINHAND" or equip == "INVTYPE_2HWEAPON" then + return 16 + elseif equip == "INVTYPE_SHIELD" then + return 17 + else + return nil + 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, + }, +} diff --git a/NewAge/Automation/LOOT_READY.lua b/WeakAuras/Projects/Automation/LOOT_READY.lua similarity index 98% rename from NewAge/Automation/LOOT_READY.lua rename to WeakAuras/Projects/Automation/LOOT_READY.lua index d4bb2e2..dc26120 100644 --- a/NewAge/Automation/LOOT_READY.lua +++ b/WeakAuras/Projects/Automation/LOOT_READY.lua @@ -1,69 +1,69 @@ --- LOOT_READY LOOT_OPENED - -function(e, ...) - local slot = 1 - local lootinfo = GetLootInfo() - for k, v in pairs(lootinfo) do - if v.locked == false then - local link = GetLootSlotLink(slot) - if not link then link = GetLootSlotLink(slot) end - if aura_env.filter[1] == true and (v.item:match("%d+ Gold") or v.item:match("%d+ Silver") or v.item:match("%d+ Copper")) then - LootSlot(slot) - elseif aura_env.filter[2] == true and link:match("Azerite") then - LootSlot(slot) - elseif aura_env.filter[3] == true and v.item:match("War Resources") then - LootSlot(slot) - elseif aura_env.filter[4] == true and v.item:match("Residuum") then - LootSlot(slot) - elseif aura_env.filter[5] == true and v.item:match("Manapearl") then - LootSlot(slot) - end - if link then - local type = select(6, GetItemInfo(link)) or "" - local subtype = select(7, GetItemInfo(link)) or "" - local ilvl = select(4, GetItemInfo(link)) or 0 - local equip = select(9, GetItemInfo(link)) - if aura_env.filter[6] == true and (select(7, GetItemInfo(link)) or 0) == "Mount" then - LootSlot(slot) - elseif aura_env.filter[7] == true and ilvl > aura_env.ilvlFilter then - LootSlot(slot) - elseif aura_env.filter[8] == true and (select(7, GetItemInfo(link)) or 0) == "Herb" then - LootSlot(slot) - elseif aura_env.filter[9] == true and (select(7, GetItemInfo(link)) or 0) == "Cooking" then - LootSlot(slot) - elseif aura_env.filter[10] == true and (select(7, GetItemInfo(link)) or 0) == "Cloth" and type == "Tradeskill" then - LootSlot(slot) - elseif aura_env.filter[11] == true and (select(7, GetItemInfo(link)) or 0) == "Metal & Stone" then - LootSlot(slot) - elseif aura_env.filter[12] == true and (select(11, GetItemInfo(link)) or 0) > aura_env.goldFilter and v.quality == 0 then - LootSlot(slot) - elseif aura_env.filter[13] == true and v.quality > 1 and v.quality < 4 and type ~= "Weapon" and type ~= "Armor" then - LootSlot(slot) - elseif aura_env.filter[14] == true and v.isQuestItem == true then - LootSlot(slot) - elseif aura_env.filter[15] == true and v.quality == 0 then - LootSlot(slot) - elseif aura_env.filter[16] == true and aura_env.whitelist[v.item] then - LootSlot(slot) - elseif aura_env.filter[17] == true and type == "Quest" and subtype == "Quest" then - LootSlot(slot) - elseif aura_env.filter[21] == true and type == "Tradeskill" and subtype == "Elemental" then - LootSlot(slot) - else - if type == "Weapon" or type == "Armor" then - if aura_env.filter[18] == true and aura_env.skills[select(3, UnitClass("player"))][subtype] == 1 and v.quality > 2 then - LootSlot(slot) - elseif aura_env.filter[19] == true and (equip == "INVTYPE_FINGER" or equip == "INVTYPE_TRINKET" or equip == "INVTYPE_CLOAK" or equip == "INVTYPE_NECK") and v.quality > 2 then - LootSlot(slot) - end - elseif aura_env.filter[20] == true and type == "Miscellaneous" then - if subtype == "Mount" then - LootSlot(slot) - end - end - end - end - slot = slot + 1 - end - end +-- LOOT_READY LOOT_OPENED + +function(e, ...) + local slot = 1 + local lootinfo = GetLootInfo() + for k, v in pairs(lootinfo) do + if v.locked == false then + local link = GetLootSlotLink(slot) + if not link then link = GetLootSlotLink(slot) end + if aura_env.filter[1] == true and (v.item:match("%d+ Gold") or v.item:match("%d+ Silver") or v.item:match("%d+ Copper")) then + LootSlot(slot) + elseif aura_env.filter[2] == true and link:match("Azerite") then + LootSlot(slot) + elseif aura_env.filter[3] == true and v.item:match("War Resources") then + LootSlot(slot) + elseif aura_env.filter[4] == true and v.item:match("Residuum") then + LootSlot(slot) + elseif aura_env.filter[5] == true and v.item:match("Manapearl") then + LootSlot(slot) + end + if link then + local type = select(6, GetItemInfo(link)) or "" + local subtype = select(7, GetItemInfo(link)) or "" + local ilvl = select(4, GetItemInfo(link)) or 0 + local equip = select(9, GetItemInfo(link)) + if aura_env.filter[6] == true and (select(7, GetItemInfo(link)) or 0) == "Mount" then + LootSlot(slot) + elseif aura_env.filter[7] == true and ilvl > aura_env.ilvlFilter then + LootSlot(slot) + elseif aura_env.filter[8] == true and (select(7, GetItemInfo(link)) or 0) == "Herb" then + LootSlot(slot) + elseif aura_env.filter[9] == true and (select(7, GetItemInfo(link)) or 0) == "Cooking" then + LootSlot(slot) + elseif aura_env.filter[10] == true and (select(7, GetItemInfo(link)) or 0) == "Cloth" and type == "Tradeskill" then + LootSlot(slot) + elseif aura_env.filter[11] == true and (select(7, GetItemInfo(link)) or 0) == "Metal & Stone" then + LootSlot(slot) + elseif aura_env.filter[12] == true and (select(11, GetItemInfo(link)) or 0) > aura_env.goldFilter and v.quality == 0 then + LootSlot(slot) + elseif aura_env.filter[13] == true and v.quality > 1 and v.quality < 4 and type ~= "Weapon" and type ~= "Armor" then + LootSlot(slot) + elseif aura_env.filter[14] == true and v.isQuestItem == true then + LootSlot(slot) + elseif aura_env.filter[15] == true and v.quality == 0 then + LootSlot(slot) + elseif aura_env.filter[16] == true and aura_env.whitelist[v.item] then + LootSlot(slot) + elseif aura_env.filter[17] == true and type == "Quest" and subtype == "Quest" then + LootSlot(slot) + elseif aura_env.filter[21] == true and type == "Tradeskill" and subtype == "Elemental" then + LootSlot(slot) + else + if type == "Weapon" or type == "Armor" then + if aura_env.filter[18] == true and aura_env.skills[select(3, UnitClass("player"))][subtype] == 1 and v.quality > 2 then + LootSlot(slot) + elseif aura_env.filter[19] == true and (equip == "INVTYPE_FINGER" or equip == "INVTYPE_TRINKET" or equip == "INVTYPE_CLOAK" or equip == "INVTYPE_NECK") and v.quality > 2 then + LootSlot(slot) + end + elseif aura_env.filter[20] == true and type == "Miscellaneous" then + if subtype == "Mount" then + LootSlot(slot) + end + end + end + end + slot = slot + 1 + end + end end \ No newline at end of file diff --git a/Complete Projects/Legion/Average Raid Health.lua b/WeakAuras/Projects/Average Raid Health.lua similarity index 97% rename from Complete Projects/Legion/Average Raid Health.lua rename to WeakAuras/Projects/Average Raid Health.lua index 5e1676d..4bf3be0 100644 --- a/Complete Projects/Legion/Average Raid Health.lua +++ b/WeakAuras/Projects/Average Raid Health.lua @@ -1,40 +1,40 @@ ---DISPLAY -function() - return aura_env.output -end - ---Try SPELL_RESSURECT -- RESSURECT event?? ---UNIT_HEALTH -function() - local healthP = 0 - local aliveMembers = GetNumGroupMembers() - if IsInRaid("player") == true then - for i = 1, GetNumGroupMembers() do - if UnitIsDeadOrGhost("raid" .. i) == false and UnitIsConnected("raid" .. i) == true then - healthP = healthP + math.floor(UnitHealth("raid" .. i) / UnitHealthMax("raid" .. i) * 10000) / 100 - end - if UnitIsDeadOrGhost("raid" .. i) == true or UnitIsConnected("raid" .. i) == false then - aliveMembers = aliveMembers - 1 - end - end - else - for i = 1, GetNumGroupMembers() - 1 do - if UnitIsDeadOrGhost("party" .. i) == false and UnitIsConnected("party" .. i) == true then - healthP = healthP + math.floor(UnitHealth("party" .. i) / UnitHealthMax("party" .. i) * 10000) / 100 - end - if UnitIsDeadOrGhost("party" .. i) == true or UnitIsConnected("party" .. i) == false then - aliveMembers = aliveMembers - 1 - end - end - if UnitIsDeadOrGhost("player") == false and UnitIsConnected("player") == true then - healthP = healthP + math.floor(UnitHealth("player") / UnitHealthMax("player") * 10000) / 100 - end - if UnitIsDeadOrGhost("player") == true or UnitIsConnected("player") == false then - aliveMembers = aliveMembers - 1 - end - end - aura_env.output = math.floor(healthP / aliveMembers * 100) / 100 .. "%%" -end - ---INIT -aura_env.output = 0 +--DISPLAY +function() + return aura_env.output +end + +--Try SPELL_RESSURECT -- RESSURECT event?? +--UNIT_HEALTH +function() + local healthP = 0 + local aliveMembers = GetNumGroupMembers() + if IsInRaid("player") == true then + for i = 1, GetNumGroupMembers() do + if UnitIsDeadOrGhost("raid" .. i) == false and UnitIsConnected("raid" .. i) == true then + healthP = healthP + math.floor(UnitHealth("raid" .. i) / UnitHealthMax("raid" .. i) * 10000) / 100 + end + if UnitIsDeadOrGhost("raid" .. i) == true or UnitIsConnected("raid" .. i) == false then + aliveMembers = aliveMembers - 1 + end + end + else + for i = 1, GetNumGroupMembers() - 1 do + if UnitIsDeadOrGhost("party" .. i) == false and UnitIsConnected("party" .. i) == true then + healthP = healthP + math.floor(UnitHealth("party" .. i) / UnitHealthMax("party" .. i) * 10000) / 100 + end + if UnitIsDeadOrGhost("party" .. i) == true or UnitIsConnected("party" .. i) == false then + aliveMembers = aliveMembers - 1 + end + end + if UnitIsDeadOrGhost("player") == false and UnitIsConnected("player") == true then + healthP = healthP + math.floor(UnitHealth("player") / UnitHealthMax("player") * 10000) / 100 + end + if UnitIsDeadOrGhost("player") == true or UnitIsConnected("player") == false then + aliveMembers = aliveMembers - 1 + end + end + aura_env.output = math.floor(healthP / aliveMembers * 100) / 100 .. "%%" +end + +--INIT +aura_env.output = 0 diff --git a/LegionWA/BagBoEGlow/Event.lua b/WeakAuras/Projects/BagBoEGlow/Event.lua similarity index 94% rename from LegionWA/BagBoEGlow/Event.lua rename to WeakAuras/Projects/BagBoEGlow/Event.lua index 365f687..2cbf14c 100644 --- a/LegionWA/BagBoEGlow/Event.lua +++ b/WeakAuras/Projects/BagBoEGlow/Event.lua @@ -1,4 +1,4 @@ --- BAG_UPDATE -function(e) - aura_env.update() +-- BAG_UPDATE +function(e) + aura_env.update() end \ No newline at end of file diff --git a/LegionWA/BagBoEGlow/Init.lua b/WeakAuras/Projects/BagBoEGlow/Init.lua similarity index 97% rename from LegionWA/BagBoEGlow/Init.lua rename to WeakAuras/Projects/BagBoEGlow/Init.lua index 15fa855..aeef3ab 100644 --- a/LegionWA/BagBoEGlow/Init.lua +++ b/WeakAuras/Projects/BagBoEGlow/Init.lua @@ -1,23 +1,23 @@ -local function getItemLink(container, slot) return select(7, GetContainerItemInfo(container, slot)) or "" end -local function getBindType(container, slot) return select(14, GetItemInfo(getItemLink(container, slot))) or 0 end -local function isBoe(container, slot) return getBindType(container, slot) == 1 end - -local showGlow = function(container, slot) - ActionButton_ShowOverlayGlow(_G["ElvUI_ContainerFrameBag" .. container .. "Slot" .. slot]) -end -local hideGlow = function(container, slot) - ActionButton_HideOverlayGlow(_G["ElvUI_ContainerFrameBag" .. container .. "Slot" .. slot]) -end - -aura_env.update = function() - for container = 0, 4 do - for slot = 1, GetContainerNumSlots(container) do - print(C_Item.IsBound(ItemLocation:CreateFromBagAndSlot(container, slot))) - if isBoe(container, slot) then - showGlow(container, slot) - else - hideGlow(container, slot) - end - end - end -end +local function getItemLink(container, slot) return select(7, GetContainerItemInfo(container, slot)) or "" end +local function getBindType(container, slot) return select(14, GetItemInfo(getItemLink(container, slot))) or 0 end +local function isBoe(container, slot) return getBindType(container, slot) == 1 end + +local showGlow = function(container, slot) + ActionButton_ShowOverlayGlow(_G["ElvUI_ContainerFrameBag" .. container .. "Slot" .. slot]) +end +local hideGlow = function(container, slot) + ActionButton_HideOverlayGlow(_G["ElvUI_ContainerFrameBag" .. container .. "Slot" .. slot]) +end + +aura_env.update = function() + for container = 0, 4 do + for slot = 1, GetContainerNumSlots(container) do + print(C_Item.IsBound(ItemLocation:CreateFromBagAndSlot(container, slot))) + if isBoe(container, slot) then + showGlow(container, slot) + else + hideGlow(container, slot) + end + end + end +end diff --git a/LegionWA/BagBoEGlow/README b/WeakAuras/Projects/BagBoEGlow/README similarity index 97% rename from LegionWA/BagBoEGlow/README rename to WeakAuras/Projects/BagBoEGlow/README index 2bf5842..434ab32 100644 --- a/LegionWA/BagBoEGlow/README +++ b/WeakAuras/Projects/BagBoEGlow/README @@ -1,18 +1,18 @@ -Haven't found a way of determining whether an item is soulbound or not without tooltip scanning which I don't want to do - -local cTip = CreateFrame("GameTooltip","PrivTooltip",nil,"GameTooltipTemplate") -local function IsSoulbound(bag, slot) - cTip:SetOwner(UIParent, "ANCHOR_NONE") - cTip:SetBagItem(bag, slot) - cTip:Show() - for i = 1,cTip:NumLines() do - if(_G[name.."TooltipTextLeft"..i]:GetText()==ITEM_SOULBOUND) then - cTip:Hide() - return true - end - end - cTip:Hide() - return false -end - +Haven't found a way of determining whether an item is soulbound or not without tooltip scanning which I don't want to do + +local cTip = CreateFrame("GameTooltip","PrivTooltip",nil,"GameTooltipTemplate") +local function IsSoulbound(bag, slot) + cTip:SetOwner(UIParent, "ANCHOR_NONE") + cTip:SetBagItem(bag, slot) + cTip:Show() + for i = 1,cTip:NumLines() do + if(_G[name.."TooltipTextLeft"..i]:GetText()==ITEM_SOULBOUND) then + cTip:Hide() + return true + end + end + cTip:Hide() + return false +end + Some guy says this is good \ No newline at end of file diff --git a/FreshShit/BattlePassTimer/duration.lua b/WeakAuras/Projects/BattlePassTimer/duration.lua similarity index 97% rename from FreshShit/BattlePassTimer/duration.lua rename to WeakAuras/Projects/BattlePassTimer/duration.lua index b760250..2676ae3 100644 --- a/FreshShit/BattlePassTimer/duration.lua +++ b/WeakAuras/Projects/BattlePassTimer/duration.lua @@ -1,3 +1,3 @@ -function() - return BattlepassInfo.currentDayOnlineTimeMinutes, 120, 1 +function() + return BattlepassInfo.currentDayOnlineTimeMinutes, 120, 1 end \ No newline at end of file diff --git a/FreshShit/BattlePassTimer/event.lua b/WeakAuras/Projects/BattlePassTimer/event.lua similarity index 100% rename from FreshShit/BattlePassTimer/event.lua rename to WeakAuras/Projects/BattlePassTimer/event.lua diff --git a/FreshShit/BattlePassTimer/event2.lua b/WeakAuras/Projects/BattlePassTimer/event2.lua similarity index 94% rename from FreshShit/BattlePassTimer/event2.lua rename to WeakAuras/Projects/BattlePassTimer/event2.lua index f0f76d8..574f81a 100644 --- a/FreshShit/BattlePassTimer/event2.lua +++ b/WeakAuras/Projects/BattlePassTimer/event2.lua @@ -1,4 +1,4 @@ ---- TICKER_10000 -function() - BattlepassInfo() +--- TICKER_10000 +function() + BattlepassInfo() end \ No newline at end of file diff --git a/FreshShit/BattlePassTimer/export b/WeakAuras/Projects/BattlePassTimer/export similarity index 100% rename from FreshShit/BattlePassTimer/export rename to WeakAuras/Projects/BattlePassTimer/export diff --git a/FreshShit/BattlePassTimer/init.lua b/WeakAuras/Projects/BattlePassTimer/init.lua similarity index 97% rename from FreshShit/BattlePassTimer/init.lua rename to WeakAuras/Projects/BattlePassTimer/init.lua index ed429de..7b30c82 100644 --- a/FreshShit/BattlePassTimer/init.lua +++ b/WeakAuras/Projects/BattlePassTimer/init.lua @@ -1,109 +1,109 @@ -if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end -if not WeakAurasSaved.Cyka.LoginInfo then WeakAurasSaved.Cyka.LoginInfo = {} end - -Today = date("%Y-%m-%d") -if not WeakAurasSaved.Cyka.LoginInfo[Today] then WeakAurasSaved.Cyka.LoginInfo[Today] = {} end -if not WeakAurasSaved.Cyka.LoginInfo[Today][UnitName("player")] then - WeakAurasSaved.Cyka.LoginInfo[Today][UnitName("player")] = { - onlineTimeInMinutes = 0, - claimed = 0, - } -end - -local greenColor = "|cff00ff00" -local noColor = "|r" -BattlepassAccountInfo = "" -local function UpdateAccountInfo() - local ret = {} - for char, info in pairs(WeakAurasSaved.Cyka.LoginInfo[Today]) do - if info.claimed == 1 then - char = string.format("%s%s %d%s", greenColor, char, info.onlineTimeInMinutes, noColor) - else - char = string.format("%s %d", char, info.onlineTimeInMinutes) - end - ret[#ret + 1] = char - end - 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] claimed=0 - ----@param input string ----@param deliminer string ----@return table -aura_env.Split = function(input, deliminer) - local ret = {} - for str in string.gmatch(input, "([^" .. deliminer .. "]+)") do - table.insert(ret, str) - end - return ret -end - ----@class BattlepassInfo ----@field week number ----@field getRew number ----@field dayRewardComplete number ----@field lostDay number ----@field cost number ----@field currentDayOnlineTimeMinutes number ----@field currentDayOnlineTimeMilliseconds number -BattlepassInfo = { - PingApi = function() - SendAddonMessage("UIMSG_TO_SERVER", "UIMSG_GET_ONLINETIME_DAY" .. "\t", "WHISPER", UnitName("player")) - end, - ParseApi = function(msg) - local packets = aura_env.Split(msg, ":") - if packets[1] ~= "UISMSG_EVT_WEEK_TIME" then return end - - BattlepassInfo.currentDayOnlineTimeMilliseconds = tonumber(packets[2]) - BattlepassInfo.week = tonumber(packets[3]) + 1 - BattlepassInfo.getRew = tonumber(packets[4]) - BattlepassInfo.dayRewardComplete = tonumber(packets[5]) - BattlepassInfo.lostDay = tonumber(packets[6]) - 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")].claimed = BattlepassInfo.dayRewardComplete - - if BattlepassInfo.dayRewardComplete == 0 and BattlepassInfo.currentDayOnlineTimeMinutes >= 120 then - BattlepassInfo.DoClaim() - 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")) - WeakAuras.ScanEvents("PLAY_SOUND", "Interface\\Sounds\\quack.ogg") - SendChatMessage("YEEE", "WHISPER", nil, UnitName("player")) - end, -} -setmetatable(BattlepassInfo, { - __call = BattlepassInfo.PingApi, - __index = BattlepassInfo, - __tostring = function() - local ret = {} - for k, v in pairs(BattlepassInfo) do - table.insert(ret, k .. ": " .. tostring(v)) - end - return table.concat(ret, "\n") - end, -}) - -for k, v in pairs(BattlepassInfo) do - 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 +if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end +if not WeakAurasSaved.Cyka.LoginInfo then WeakAurasSaved.Cyka.LoginInfo = {} end + +Today = date("%Y-%m-%d") +if not WeakAurasSaved.Cyka.LoginInfo[Today] then WeakAurasSaved.Cyka.LoginInfo[Today] = {} end +if not WeakAurasSaved.Cyka.LoginInfo[Today][UnitName("player")] then + WeakAurasSaved.Cyka.LoginInfo[Today][UnitName("player")] = { + onlineTimeInMinutes = 0, + claimed = 0, + } +end + +local greenColor = "|cff00ff00" +local noColor = "|r" +BattlepassAccountInfo = "" +local function UpdateAccountInfo() + local ret = {} + for char, info in pairs(WeakAurasSaved.Cyka.LoginInfo[Today]) do + if info.claimed == 1 then + char = string.format("%s%s %d%s", greenColor, char, info.onlineTimeInMinutes, noColor) + else + char = string.format("%s %d", char, info.onlineTimeInMinutes) + end + ret[#ret + 1] = char + end + 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] claimed=0 + +---@param input string +---@param deliminer string +---@return table +aura_env.Split = function(input, deliminer) + local ret = {} + for str in string.gmatch(input, "([^" .. deliminer .. "]+)") do + table.insert(ret, str) + end + return ret +end + +---@class BattlepassInfo +---@field week number +---@field getRew number +---@field dayRewardComplete number +---@field lostDay number +---@field cost number +---@field currentDayOnlineTimeMinutes number +---@field currentDayOnlineTimeMilliseconds number +BattlepassInfo = { + PingApi = function() + SendAddonMessage("UIMSG_TO_SERVER", "UIMSG_GET_ONLINETIME_DAY" .. "\t", "WHISPER", UnitName("player")) + end, + ParseApi = function(msg) + local packets = aura_env.Split(msg, ":") + if packets[1] ~= "UISMSG_EVT_WEEK_TIME" then return end + + BattlepassInfo.currentDayOnlineTimeMilliseconds = tonumber(packets[2]) + BattlepassInfo.week = tonumber(packets[3]) + 1 + BattlepassInfo.getRew = tonumber(packets[4]) + BattlepassInfo.dayRewardComplete = tonumber(packets[5]) + BattlepassInfo.lostDay = tonumber(packets[6]) + 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")].claimed = BattlepassInfo.dayRewardComplete + + if BattlepassInfo.dayRewardComplete == 0 and BattlepassInfo.currentDayOnlineTimeMinutes >= 120 then + BattlepassInfo.DoClaim() + 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")) + WeakAuras.ScanEvents("PLAY_SOUND", "Interface\\Sounds\\quack.ogg") + SendChatMessage("YEEE", "WHISPER", nil, UnitName("player")) + end, +} +setmetatable(BattlepassInfo, { + __call = BattlepassInfo.PingApi, + __index = BattlepassInfo, + __tostring = function() + local ret = {} + for k, v in pairs(BattlepassInfo) do + table.insert(ret, k .. ": " .. tostring(v)) + end + return table.concat(ret, "\n") + end, +}) + +for k, v in pairs(BattlepassInfo) do + 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 diff --git a/Complete Projects/Legion/Ben Paralytic.lua b/WeakAuras/Projects/Ben Paralytic.lua similarity index 96% rename from Complete Projects/Legion/Ben Paralytic.lua rename to WeakAuras/Projects/Ben Paralytic.lua index f9463aa..e957580 100644 --- a/Complete Projects/Legion/Ben Paralytic.lua +++ b/WeakAuras/Projects/Ben Paralytic.lua @@ -1,29 +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 -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 -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 -end +-- 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 +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 +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 +end diff --git a/WIP/Block.lua b/WeakAuras/Projects/Block.lua similarity index 95% rename from WIP/Block.lua rename to WeakAuras/Projects/Block.lua index d9e188d..8ff0024 100644 --- a/WIP/Block.lua +++ b/WeakAuras/Projects/Block.lua @@ -1,40 +1,40 @@ -COMBAT_LOG_EVENT_UNFILTERED -function(...) - local subevent = select(3, ...) - local target = select(10, ...) - if subevent == "SWING_DAMAGE" and target == UnitName("player") then - local dmg = select(13, ...) - local block = select(17, ...) or 0 - if block > 0 then - aura_env.overallBlock = aura_env.overallBlock + block - end - end -end - -DISPLAY -function() - local function shorten(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 -end - return shorten(aura_env.overallBlock) -end - -INIT +COMBAT_LOG_EVENT_UNFILTERED +function(...) + local subevent = select(3, ...) + local target = select(10, ...) + if subevent == "SWING_DAMAGE" and target == UnitName("player") then + local dmg = select(13, ...) + local block = select(17, ...) or 0 + if block > 0 then + aura_env.overallBlock = aura_env.overallBlock + block + end + end +end + +DISPLAY +function() + local function shorten(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 +end + return shorten(aura_env.overallBlock) +end + +INIT aura_env.overallBlock = 0 \ No newline at end of file diff --git a/Complete Projects/Legion/Boat Fish (Draenor).lua b/WeakAuras/Projects/Boat Fish (Draenor).lua similarity index 95% rename from Complete Projects/Legion/Boat Fish (Draenor).lua rename to WeakAuras/Projects/Boat Fish (Draenor).lua index 43dc1ef..31678a5 100644 --- a/Complete Projects/Legion/Boat Fish (Draenor).lua +++ b/WeakAuras/Projects/Boat Fish (Draenor).lua @@ -1,17 +1,17 @@ -LOOT_OPENED -function() - aura_env.lootTime = math.floor(GetTime()) + 300 -end - -DISPLAY -function() - local currentTime = math.floor(GetTime()) - if currentTime > aura_env.lootTime and aura_env.lootTime > 0 then - return "FISHING BOAT MOTHERFUCKERS" - else - return aura_env.lootTime - currentTime - end -end - -INTI -aura_env.lootTime = 0 +LOOT_OPENED +function() + aura_env.lootTime = math.floor(GetTime()) + 300 +end + +DISPLAY +function() + local currentTime = math.floor(GetTime()) + if currentTime > aura_env.lootTime and aura_env.lootTime > 0 then + return "FISHING BOAT MOTHERFUCKERS" + else + return aura_env.lootTime - currentTime + end +end + +INTI +aura_env.lootTime = 0 diff --git a/Complete Projects/Legion/BossHpNameplate(VERY INEFFICIENT!!).lua b/WeakAuras/Projects/BossHpNameplate(VERY INEFFICIENT!!).lua similarity index 97% rename from Complete Projects/Legion/BossHpNameplate(VERY INEFFICIENT!!).lua rename to WeakAuras/Projects/BossHpNameplate(VERY INEFFICIENT!!).lua index a90239e..f2b332c 100644 --- a/Complete Projects/Legion/BossHpNameplate(VERY INEFFICIENT!!).lua +++ b/WeakAuras/Projects/BossHpNameplate(VERY INEFFICIENT!!).lua @@ -1,275 +1,275 @@ ---TODO: FIX THE FUCKING THING ---I had no idea what I was doing lol - -TRIGGER FOR HP -function() - local bossList = - { - "Skorpyron", "Anomaly", "Trilliax", "Tichon", "Krosus", "Aluriel", "Botanist", "Augur", "Elisande", "Gul'dan", --Nighthold - "Amalgam of souls", "Illysanna", "Smashspite", "Kur'talos", --BRH - "Gerdo", "Flamewreath", "Advisor Melandrus", --CoS - "Glaidalis", "Oakheart", "Dresaron", "of Xavius", --DHT - "Parjesh", "Lady Hatecoil", "Deepbeard", "Serpentrix", "Wrath of Azshara", --EoA - "Hymdall", "Hyrja", "Fenryr", "Skovald", "Odyn", --HoV - "Ymiron", "Harbaron", "Helya", --MoS - "Rokmora", "Ularogg", "Naraxas", "Dargrul", --NL - "Ivanyr", "Corstilax", "Xakal", "Nal'tira", "Vandros", --Arcway - "Saltheril", "Inquisitor Tormen", "Ash'golm", "Glazer", "Cordana Fel" --VoTW - } - local output = "" - - for i = 1, 40 do - for j = 1, table.getn(bossList) do - --if UnitName("nameplate" .. i) == bossList[j] then - if UnitExists("nameplate" .. i) then - if string.match(string.lower(UnitName("nameplate" .. i)), string.lower(bossList[j])) then - return true - end - end - end - end -end - -TRIGGER FOR POWER -function() - local bossList = - { - "Skorpyron", "Anomaly", "Trilliax", "Tichon", "Krosus", "Aluriel", "Botanist", "Augur", "Elisande", "Gul'dan", --Nighthold - "Amalgam of souls", "Illysanna", "Smashspite", "Kur'talos", --BRH - "Gerdo", "Flamewreath", "Advisor Melandrus", --CoS - "Glaidalis", "Oakheart", "Dresaron", "of Xavius", --DHT - "Parjesh", "Lady Hatecoil", "Deepbeard", "Serpentrix", "Wrath of Azshara", --EoA - "Hymdall", "Hyrja", "Fenryr", "Skovald", "Odyn", --HoV - "Ymiron", "Harbaron", "Helya", --MoS - "Rokmora", "Ularogg", "Naraxas", "Dargrul", --NL - "Ivanyr", "Corstilax", "Xakal", "Nal'tira", "Vandros", --Arcway - "Saltheril", "Inquisitor Tormen", "Ash'golm", "Glazer", "Cordana Fel" --VoTW - } - - for i = 1, 40 do - for j = 1, table.getn(bossList) do - --if UnitName("nameplate" .. i) == bossList[j] then - if UnitExists("nameplate" .. i) then - if string.match(string.lower(UnitName("nameplate" .. i)), string.lower(bossList[j])) then - if UnitPower("nameplate" .. i) > 0 then - return true - end - end - end - end - end -end - -TRIGGER FOR CASTBAR -function() - local bossList = - { - "Skorpyron", "Anomaly", "Trilliax", "Tichon", "Krosus", "Aluriel", "Botanist", "Augur", "Elisande", "Gul'dan", --Nighthold - "Amalgam of souls", "Illysanna", "Smashspite", "Kur'talos", --BRH - "Gerdo", "Flamewreath", "Advisor Melandrus", --CoS - "Glaidalis", "Oakheart", "Dresaron", "of Xavius", --DHT - "Parjesh", "Lady Hatecoil", "Deepbeard", "Serpentrix", "Wrath of Azshara", --EoA - "Hymdall", "Hyrja", "Fenryr", "Skovald", "Odyn", --HoV - "Ymiron", "Harbaron", "Helya", --MoS - "Rokmora", "Ularogg", "Naraxas", "Dargrul", --NL - "Ivanyr", "Corstilax", "Xakal", "Nal'tira", "Vandros", --Arcway - "Saltheril", "Inquisitor Tormen", "Ash'golm", "Glazer", "Cordana Fel" --VoTW - } - local output = "" - - for i = 1, 40 do - for j = 1, table.getn(bossList) do - if UnitExists("nameplate" .. i) then - if string.match(string.lower(UnitName("nameplate" .. i)), string.lower(bossList[j])) then - if UnitCastingInfo("nameplate" .. i) then - return true - end - end - end - end - end -end - -DISPLAY FOR HP -function() - local bossList = - { - "Skorpyron", "Anomaly", "Trilliax", "Tichon", "Krosus", "Aluriel", "Botanist", "Augur", "Elisande", "Gul'dan", --Nighthold - "Amalgam of souls", "Illysanna", "Smashspite", "Kur'talos", --BRH - "Gerdo", "Flamewreath", "Advisor Melandrus", --CoS - "Glaidalis", "Oakheart", "Dresaron", "of Xavius", --DHT - "Parjesh", "Lady Hatecoil", "Deepbeard", "Serpentrix", "Wrath of Azshara", --EoA - "Hymdall", "Hyrja", "Fenryr", "Skovald", "Odyn", --HoV - "Ymiron", "Harbaron", "Helya", --MoS - "Rokmora", "Ularogg", "Naraxas", "Dargrul", --NL - "Ivanyr", "Corstilax", "Xakal", "Nal'tira", "Vandros", --Arcway - "Saltheril", "Inquisitor Tormen", "Ash'golm", "Glazer", "Cordana Fel" --VoTW - } - local output = "" - - for i = 1, 40 do - for j = 1, table.getn(bossList) do - --if UnitName("nameplate" .. i) == bossList[j] then - if UnitExists("nameplate" .. i) then - if string.match(string.lower(UnitName("nameplate" .. i)), string.lower(bossList[j])) then - aura_env.bossHp = UnitHealth("nameplate" .. i) - aura_env.bossMaxHp = UnitHealthMax("nameplate" .. i) - aura_env.bossPer = math.floor((aura_env.bossHp / aura_env.bossMaxHp) * 100) - output = math.floor(aura_env.bossHp / 1e6) .. "M%/" .. math.floor(aura_env.bossMaxHp / 1e6) .. "M - " .. aura_env.bossPer .. "%%" - break - end - end - end - end - return output -end - -DISPLAY FOR POWER -function() - local bossList = - { - "Skorpyron", "Anomaly", "Trilliax", "Tichon", "Krosus", "Aluriel", "Botanist", "Augur", "Elisande", "Gul'dan", --Nighthold - "Amalgam of souls", "Illysanna", "Smashspite", "Kur'talos", --BRH - "Gerdo", "Flamewreath", "Advisor Melandrus", --CoS - "Glaidalis", "Oakheart", "Dresaron", "of Xavius", --DHT - "Parjesh", "Lady Hatecoil", "Deepbeard", "Serpentrix", "Wrath of Azshara", --EoA - "Hymdall", "Hyrja", "Fenryr", "Skovald", "Odyn", --HoV - "Ymiron", "Harbaron", "Helya", --MoS - "Rokmora", "Ularogg", "Naraxas", "Dargrul", --NL - "Ivanyr", "Corstilax", "Xakal", "Nal'tira", "Vandros", --Arcway - "Saltheril", "Inquisitor Tormen", "Ash'golm", "Glazer", "Cordana Fel" --VoTW - } - local output = "" - - for i = 1, 40 do - for j = 1, table.getn(bossList) do - --if UnitName("nameplate" .. i) == bossList[j] then - if UnitExists("nameplate" .. i) then - if string.match(string.lower(UnitName("nameplate" .. i)), string.lower(bossList[j])) then - if UnitPower("nameplate" .. i) > 0 then - aura_env.bossPower = UnitPower("nameplate" .. i) - aura_env.bossPowerMax = UnitPowerMax("nameplate" .. i) - aura_env.bossPer = math.floor((aura_env.bossPower / aura_env.bossPowerMax) * 100) - output = aura_env.bossPower .. "%/" .. aura_env.bossPowerMax .. " " .. aura_env.bossPer .. "%%" - break - end - end - end - end - end - return output -end - -DISPLAY FOR CASTBAR -function() - local bossList = - { - "Skorpyron", "Anomaly", "Trilliax", "Tichon", "Krosus", "Aluriel", "Botanist", "Augur", "Elisande", "Gul'dan", --Nighthold - "Amalgam of souls", "Illysanna", "Smashspite", "Kur'talos", --BRH - "Gerdo", "Flamewreath", "Advisor Melandrus", --CoS - "Glaidalis", "Oakheart", "Dresaron", "of Xavius", --DHT - "Parjesh", "Lady Hatecoil", "Deepbeard", "Serpentrix", "Wrath of Azshara", --EoA - "Hymdall", "Hyrja", "Fenryr", "Skovald", "Odyn", --HoV - "Ymiron", "Harbaron", "Helya", --MoS - "Rokmora", "Ularogg", "Naraxas", "Dargrul", --NL - "Ivanyr", "Corstilax", "Xakal", "Nal'tira", "Vandros", --Arcway - "Saltheril", "Inquisitor Tormen", "Ash'golm", "Glazer", "Cordana Fel" --VoTW - } - local output = "" - - for i = 1, 40 do - for j = 1, table.getn(bossList) do - if UnitExists("nameplate" .. i) then - if string.match(string.lower(UnitName("nameplate" .. i)), string.lower(bossList[j])) then - if UnitCastingInfo("nameplate" .. i) then - aura_env.bossCast = UnitCastingInfo("nameplate" .. i) - aura_env.castEnd = select(6, UnitCastingInfo("nameplate" .. i)) - aura_env.castStart = select(5, UnitCastingInfo("nameplate" .. i)) - output = aura_env.bossCast .. " - " .. math.floor(((aura_env.castEnd - GetTime() * 1000) / 1000) * 100) / 100 - break - end - end - end - end - end - return output -end - -DURATION FOR HP -function() - return aura_env.bossHp, aura_env.bossMaxHp, 1 -end - -DURATION FOR POWER -function() - return aura_env.bossPower, aura_env.bossPowerMax, 1 -end - -DURATION FOR CASTBAR -function() - return aura_env.castEnd - GetTime() * 1000, aura_env.castEnd - aura_env.castStart, 1 -end - -DISPLAY FOR NAME -function() - local bossList = - { - "Skorpyron", "Anomaly", "Trilliax", "Tichon", "Krosus", "Aluriel", "Botanist", "Augur", "Elisande", "Gul'dan", --Nighthold - "Amalgam of souls", "Illysanna", "Smashspite", "Kur'talos", --BRH - "Gerdo", "Flamewreath", "Advisor Melandrus", --CoS - "Glaidalis", "Oakheart", "Dresaron", "of Xavius", --DHT - "Parjesh", "Lady Hatecoil", "Deepbeard", "Serpentrix", "Wrath of Azshara", --EoA - "Hymdall", "Hyrja", "Fenryr", "Skovald", "Odyn", --HoV - "Ymiron", "Harbaron", "Helya", --MoS - "Rokmora", "Ularogg", "Naraxas", "Dargrul", --NL - "Ivanyr", "Corstilax", "Xakal", "Nal'tira", "Vandros", --Arcway - "Saltheril", "Inquisitor Tormen", "Ash'golm", "Glazer", "Cordana Fel" --VoTW - } - local output = "" - - for i = 1, 40 do - for j = 1, table.getn(bossList) do - --if UnitName("nameplate" .. i) == bossList[j] then - if UnitExists("nameplate" .. i) then - if string.match(string.lower(UnitName("nameplate" .. i)), string.lower(bossList[j])) then - output = UnitName("nameplate" .. i) - break - end - end - end - end - return output -end - -ANIMATION FOR HP -function() - local function range (val, min, max, max2) - val = 1 - (((max - val) / (max - min)) * max2) - return val - end - local c = aura_env.bossHp / aura_env.bossMaxHp - c = 1 - 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 -end - -INIT FOR HP -aura_env.bossHp = 1 -aura_env.bossMaxHp = 1 -aura_env.bossPer = 1 - -INIT FOR POWER -aura_env.bossPower = 1 -aura_env.bossPowerMax = 1 -aura_env.bossPer = 1 - -INIT FOR CASTBAR -aura_env.castEnd = 0 -aura_env.castStart = 0 -aura_env.bossCast = "" +--TODO: FIX THE FUCKING THING +--I had no idea what I was doing lol + +TRIGGER FOR HP +function() + local bossList = + { + "Skorpyron", "Anomaly", "Trilliax", "Tichon", "Krosus", "Aluriel", "Botanist", "Augur", "Elisande", "Gul'dan", --Nighthold + "Amalgam of souls", "Illysanna", "Smashspite", "Kur'talos", --BRH + "Gerdo", "Flamewreath", "Advisor Melandrus", --CoS + "Glaidalis", "Oakheart", "Dresaron", "of Xavius", --DHT + "Parjesh", "Lady Hatecoil", "Deepbeard", "Serpentrix", "Wrath of Azshara", --EoA + "Hymdall", "Hyrja", "Fenryr", "Skovald", "Odyn", --HoV + "Ymiron", "Harbaron", "Helya", --MoS + "Rokmora", "Ularogg", "Naraxas", "Dargrul", --NL + "Ivanyr", "Corstilax", "Xakal", "Nal'tira", "Vandros", --Arcway + "Saltheril", "Inquisitor Tormen", "Ash'golm", "Glazer", "Cordana Fel" --VoTW + } + local output = "" + + for i = 1, 40 do + for j = 1, table.getn(bossList) do + --if UnitName("nameplate" .. i) == bossList[j] then + if UnitExists("nameplate" .. i) then + if string.match(string.lower(UnitName("nameplate" .. i)), string.lower(bossList[j])) then + return true + end + end + end + end +end + +TRIGGER FOR POWER +function() + local bossList = + { + "Skorpyron", "Anomaly", "Trilliax", "Tichon", "Krosus", "Aluriel", "Botanist", "Augur", "Elisande", "Gul'dan", --Nighthold + "Amalgam of souls", "Illysanna", "Smashspite", "Kur'talos", --BRH + "Gerdo", "Flamewreath", "Advisor Melandrus", --CoS + "Glaidalis", "Oakheart", "Dresaron", "of Xavius", --DHT + "Parjesh", "Lady Hatecoil", "Deepbeard", "Serpentrix", "Wrath of Azshara", --EoA + "Hymdall", "Hyrja", "Fenryr", "Skovald", "Odyn", --HoV + "Ymiron", "Harbaron", "Helya", --MoS + "Rokmora", "Ularogg", "Naraxas", "Dargrul", --NL + "Ivanyr", "Corstilax", "Xakal", "Nal'tira", "Vandros", --Arcway + "Saltheril", "Inquisitor Tormen", "Ash'golm", "Glazer", "Cordana Fel" --VoTW + } + + for i = 1, 40 do + for j = 1, table.getn(bossList) do + --if UnitName("nameplate" .. i) == bossList[j] then + if UnitExists("nameplate" .. i) then + if string.match(string.lower(UnitName("nameplate" .. i)), string.lower(bossList[j])) then + if UnitPower("nameplate" .. i) > 0 then + return true + end + end + end + end + end +end + +TRIGGER FOR CASTBAR +function() + local bossList = + { + "Skorpyron", "Anomaly", "Trilliax", "Tichon", "Krosus", "Aluriel", "Botanist", "Augur", "Elisande", "Gul'dan", --Nighthold + "Amalgam of souls", "Illysanna", "Smashspite", "Kur'talos", --BRH + "Gerdo", "Flamewreath", "Advisor Melandrus", --CoS + "Glaidalis", "Oakheart", "Dresaron", "of Xavius", --DHT + "Parjesh", "Lady Hatecoil", "Deepbeard", "Serpentrix", "Wrath of Azshara", --EoA + "Hymdall", "Hyrja", "Fenryr", "Skovald", "Odyn", --HoV + "Ymiron", "Harbaron", "Helya", --MoS + "Rokmora", "Ularogg", "Naraxas", "Dargrul", --NL + "Ivanyr", "Corstilax", "Xakal", "Nal'tira", "Vandros", --Arcway + "Saltheril", "Inquisitor Tormen", "Ash'golm", "Glazer", "Cordana Fel" --VoTW + } + local output = "" + + for i = 1, 40 do + for j = 1, table.getn(bossList) do + if UnitExists("nameplate" .. i) then + if string.match(string.lower(UnitName("nameplate" .. i)), string.lower(bossList[j])) then + if UnitCastingInfo("nameplate" .. i) then + return true + end + end + end + end + end +end + +DISPLAY FOR HP +function() + local bossList = + { + "Skorpyron", "Anomaly", "Trilliax", "Tichon", "Krosus", "Aluriel", "Botanist", "Augur", "Elisande", "Gul'dan", --Nighthold + "Amalgam of souls", "Illysanna", "Smashspite", "Kur'talos", --BRH + "Gerdo", "Flamewreath", "Advisor Melandrus", --CoS + "Glaidalis", "Oakheart", "Dresaron", "of Xavius", --DHT + "Parjesh", "Lady Hatecoil", "Deepbeard", "Serpentrix", "Wrath of Azshara", --EoA + "Hymdall", "Hyrja", "Fenryr", "Skovald", "Odyn", --HoV + "Ymiron", "Harbaron", "Helya", --MoS + "Rokmora", "Ularogg", "Naraxas", "Dargrul", --NL + "Ivanyr", "Corstilax", "Xakal", "Nal'tira", "Vandros", --Arcway + "Saltheril", "Inquisitor Tormen", "Ash'golm", "Glazer", "Cordana Fel" --VoTW + } + local output = "" + + for i = 1, 40 do + for j = 1, table.getn(bossList) do + --if UnitName("nameplate" .. i) == bossList[j] then + if UnitExists("nameplate" .. i) then + if string.match(string.lower(UnitName("nameplate" .. i)), string.lower(bossList[j])) then + aura_env.bossHp = UnitHealth("nameplate" .. i) + aura_env.bossMaxHp = UnitHealthMax("nameplate" .. i) + aura_env.bossPer = math.floor((aura_env.bossHp / aura_env.bossMaxHp) * 100) + output = math.floor(aura_env.bossHp / 1e6) .. "M%/" .. math.floor(aura_env.bossMaxHp / 1e6) .. "M - " .. aura_env.bossPer .. "%%" + break + end + end + end + end + return output +end + +DISPLAY FOR POWER +function() + local bossList = + { + "Skorpyron", "Anomaly", "Trilliax", "Tichon", "Krosus", "Aluriel", "Botanist", "Augur", "Elisande", "Gul'dan", --Nighthold + "Amalgam of souls", "Illysanna", "Smashspite", "Kur'talos", --BRH + "Gerdo", "Flamewreath", "Advisor Melandrus", --CoS + "Glaidalis", "Oakheart", "Dresaron", "of Xavius", --DHT + "Parjesh", "Lady Hatecoil", "Deepbeard", "Serpentrix", "Wrath of Azshara", --EoA + "Hymdall", "Hyrja", "Fenryr", "Skovald", "Odyn", --HoV + "Ymiron", "Harbaron", "Helya", --MoS + "Rokmora", "Ularogg", "Naraxas", "Dargrul", --NL + "Ivanyr", "Corstilax", "Xakal", "Nal'tira", "Vandros", --Arcway + "Saltheril", "Inquisitor Tormen", "Ash'golm", "Glazer", "Cordana Fel" --VoTW + } + local output = "" + + for i = 1, 40 do + for j = 1, table.getn(bossList) do + --if UnitName("nameplate" .. i) == bossList[j] then + if UnitExists("nameplate" .. i) then + if string.match(string.lower(UnitName("nameplate" .. i)), string.lower(bossList[j])) then + if UnitPower("nameplate" .. i) > 0 then + aura_env.bossPower = UnitPower("nameplate" .. i) + aura_env.bossPowerMax = UnitPowerMax("nameplate" .. i) + aura_env.bossPer = math.floor((aura_env.bossPower / aura_env.bossPowerMax) * 100) + output = aura_env.bossPower .. "%/" .. aura_env.bossPowerMax .. " " .. aura_env.bossPer .. "%%" + break + end + end + end + end + end + return output +end + +DISPLAY FOR CASTBAR +function() + local bossList = + { + "Skorpyron", "Anomaly", "Trilliax", "Tichon", "Krosus", "Aluriel", "Botanist", "Augur", "Elisande", "Gul'dan", --Nighthold + "Amalgam of souls", "Illysanna", "Smashspite", "Kur'talos", --BRH + "Gerdo", "Flamewreath", "Advisor Melandrus", --CoS + "Glaidalis", "Oakheart", "Dresaron", "of Xavius", --DHT + "Parjesh", "Lady Hatecoil", "Deepbeard", "Serpentrix", "Wrath of Azshara", --EoA + "Hymdall", "Hyrja", "Fenryr", "Skovald", "Odyn", --HoV + "Ymiron", "Harbaron", "Helya", --MoS + "Rokmora", "Ularogg", "Naraxas", "Dargrul", --NL + "Ivanyr", "Corstilax", "Xakal", "Nal'tira", "Vandros", --Arcway + "Saltheril", "Inquisitor Tormen", "Ash'golm", "Glazer", "Cordana Fel" --VoTW + } + local output = "" + + for i = 1, 40 do + for j = 1, table.getn(bossList) do + if UnitExists("nameplate" .. i) then + if string.match(string.lower(UnitName("nameplate" .. i)), string.lower(bossList[j])) then + if UnitCastingInfo("nameplate" .. i) then + aura_env.bossCast = UnitCastingInfo("nameplate" .. i) + aura_env.castEnd = select(6, UnitCastingInfo("nameplate" .. i)) + aura_env.castStart = select(5, UnitCastingInfo("nameplate" .. i)) + output = aura_env.bossCast .. " - " .. math.floor(((aura_env.castEnd - GetTime() * 1000) / 1000) * 100) / 100 + break + end + end + end + end + end + return output +end + +DURATION FOR HP +function() + return aura_env.bossHp, aura_env.bossMaxHp, 1 +end + +DURATION FOR POWER +function() + return aura_env.bossPower, aura_env.bossPowerMax, 1 +end + +DURATION FOR CASTBAR +function() + return aura_env.castEnd - GetTime() * 1000, aura_env.castEnd - aura_env.castStart, 1 +end + +DISPLAY FOR NAME +function() + local bossList = + { + "Skorpyron", "Anomaly", "Trilliax", "Tichon", "Krosus", "Aluriel", "Botanist", "Augur", "Elisande", "Gul'dan", --Nighthold + "Amalgam of souls", "Illysanna", "Smashspite", "Kur'talos", --BRH + "Gerdo", "Flamewreath", "Advisor Melandrus", --CoS + "Glaidalis", "Oakheart", "Dresaron", "of Xavius", --DHT + "Parjesh", "Lady Hatecoil", "Deepbeard", "Serpentrix", "Wrath of Azshara", --EoA + "Hymdall", "Hyrja", "Fenryr", "Skovald", "Odyn", --HoV + "Ymiron", "Harbaron", "Helya", --MoS + "Rokmora", "Ularogg", "Naraxas", "Dargrul", --NL + "Ivanyr", "Corstilax", "Xakal", "Nal'tira", "Vandros", --Arcway + "Saltheril", "Inquisitor Tormen", "Ash'golm", "Glazer", "Cordana Fel" --VoTW + } + local output = "" + + for i = 1, 40 do + for j = 1, table.getn(bossList) do + --if UnitName("nameplate" .. i) == bossList[j] then + if UnitExists("nameplate" .. i) then + if string.match(string.lower(UnitName("nameplate" .. i)), string.lower(bossList[j])) then + output = UnitName("nameplate" .. i) + break + end + end + end + end + return output +end + +ANIMATION FOR HP +function() + local function range (val, min, max, max2) + val = 1 - (((max - val) / (max - min)) * max2) + return val + end + local c = aura_env.bossHp / aura_env.bossMaxHp + c = 1 - 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 +end + +INIT FOR HP +aura_env.bossHp = 1 +aura_env.bossMaxHp = 1 +aura_env.bossPer = 1 + +INIT FOR POWER +aura_env.bossPower = 1 +aura_env.bossPowerMax = 1 +aura_env.bossPer = 1 + +INIT FOR CASTBAR +aura_env.castEnd = 0 +aura_env.castStart = 0 +aura_env.bossCast = "" diff --git a/Complete Projects/Legion/Bulwark of Order.lua b/WeakAuras/Projects/Bulwark of Order.lua similarity index 96% rename from Complete Projects/Legion/Bulwark of Order.lua rename to WeakAuras/Projects/Bulwark of Order.lua index 564b68c..1168c61 100644 --- a/Complete Projects/Legion/Bulwark of Order.lua +++ b/WeakAuras/Projects/Bulwark of Order.lua @@ -1,67 +1,67 @@ ---GET MAX SHIELD ABSORB AND BAR FOR ABSORB -TRIGGER -function() - local buff = UnitBuff("player", "Bulwark of Order") or "" - if buff ~= "" then return true else return false end -end - -DURATION -function() - local shieldAmount = select(17, UnitBuff("player", "Bulwark of Order")) - if shieldAmount > aura_env.maxShield then - aura_env.maxShield = shieldAmount - end - return shieldAmount, aura_env.maxShield, 1 -end - -DISPLAY -function() - local shield = select(17, UnitBuff("player", "Bulwark of Order")) or 0 - return math.floor(shield / 1000) .. "k" -end - -ANIMATION -function() - local function range(val, min, max, max2) - local val = 1 - (((max - val) / (max - min)) * max2) - return val - end - - local endTime = select(7, UnitBuff("player", "Bulwark of Order")) * 1000 - local time = GetTime() * 1000 - local maxDur = select(6, UnitBuff("player", "Bulwark of Order")) * 1000 - local duration = endTime - time - local c = range(duration, 0, maxDur, 1) - --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 - -ON SHOW -aura_env.maxShield = 0 - -TRIGGER -function() - local buff = UnitBuff("player", "Bulwark of Order") or "" - if buff ~= "" then return true else return false end -end - -DURATION -function() - local shieldAmount = select(17, UnitBuff("player", "Bulwark of Order")) - local maxShield = UnitHealth("player") / 5 - return shieldAmount, maxShield, 1 -end - -DISPLAY -function() - local shield = select(17, UnitBuff("player", "Bulwark of Order")) or 0 - local maxShield = UnitHealth("player") / 5 - local pp = (shield / maxShield) * 20 - return string.format("%2.1f", pp) -end +--GET MAX SHIELD ABSORB AND BAR FOR ABSORB +TRIGGER +function() + local buff = UnitBuff("player", "Bulwark of Order") or "" + if buff ~= "" then return true else return false end +end + +DURATION +function() + local shieldAmount = select(17, UnitBuff("player", "Bulwark of Order")) + if shieldAmount > aura_env.maxShield then + aura_env.maxShield = shieldAmount + end + return shieldAmount, aura_env.maxShield, 1 +end + +DISPLAY +function() + local shield = select(17, UnitBuff("player", "Bulwark of Order")) or 0 + return math.floor(shield / 1000) .. "k" +end + +ANIMATION +function() + local function range(val, min, max, max2) + local val = 1 - (((max - val) / (max - min)) * max2) + return val + end + + local endTime = select(7, UnitBuff("player", "Bulwark of Order")) * 1000 + local time = GetTime() * 1000 + local maxDur = select(6, UnitBuff("player", "Bulwark of Order")) * 1000 + local duration = endTime - time + local c = range(duration, 0, maxDur, 1) + --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 + +ON SHOW +aura_env.maxShield = 0 + +TRIGGER +function() + local buff = UnitBuff("player", "Bulwark of Order") or "" + if buff ~= "" then return true else return false end +end + +DURATION +function() + local shieldAmount = select(17, UnitBuff("player", "Bulwark of Order")) + local maxShield = UnitHealth("player") / 5 + return shieldAmount, maxShield, 1 +end + +DISPLAY +function() + local shield = select(17, UnitBuff("player", "Bulwark of Order")) or 0 + local maxShield = UnitHealth("player") / 5 + local pp = (shield / maxShield) * 20 + return string.format("%2.1f", pp) +end diff --git a/Complete Projects/Legion/Buttons.lua b/WeakAuras/Projects/Buttons.lua similarity index 97% rename from Complete Projects/Legion/Buttons.lua rename to WeakAuras/Projects/Buttons.lua index e828b75..f8612dc 100644 --- a/Complete Projects/Legion/Buttons.lua +++ b/WeakAuras/Projects/Buttons.lua @@ -1,40 +1,40 @@ -PLAYER_ENTERING_WORLD -function() - if aura_env.enabled == 1 then - local r = WeakAuras.regions['julijabutton0'].region - local b = CreateFrame("Button", "JulijaButton", r, "SecureActionButtonTemplate") - if aura_env.type:match("spell") then - b:SetAllPoints() - b:SetAttribute("unit", aura_env.target) - b:SetAttribute("spell", aura_env.name) - b:SetAttribute("type", "spell") - end - if aura_env.type:match("macro") then - b:SetAllPoints() - b:SetAttribute("macro", aura_env.name) - b:SetAttribute("type", "macro") - end - return true - else - return false - end -end - -INIT -aura_env.enabled = 0 -aura_env.target = "player" --UnitID; player, focus, target, partyn (where n is the number in order of the party member), raidn (For more elaborate UnitIDs look up UnitID API Wiki thing; NO DYNAMIC INFO); I don't think it works for macros though.... So I've disabled it for macros -aura_env.type = "spell" --"spell" or "macro" CASE SENSITIVE -aura_env.name = "Hand of the Protector" --Spell or Macro name CASE SENSITIVE - -if aura_env.enabled == 1 then - if not aura_env.type:match("spell") and not aura_env.type:match("macro") then - print("|cFFFF0000Error 'type' on julijabutton0") - aura_env.enabled = 0 - end - if aura_env.name == "" then - print("|cFFFF0000Error 'name' on julijabutton0") - end - if aura_env.target == "" and not aura_env.type:match("macro") then - print("|cFFFF0000Error 'target' on julijabutton0") - end -end +PLAYER_ENTERING_WORLD +function() + if aura_env.enabled == 1 then + local r = WeakAuras.regions['julijabutton0'].region + local b = CreateFrame("Button", "JulijaButton", r, "SecureActionButtonTemplate") + if aura_env.type:match("spell") then + b:SetAllPoints() + b:SetAttribute("unit", aura_env.target) + b:SetAttribute("spell", aura_env.name) + b:SetAttribute("type", "spell") + end + if aura_env.type:match("macro") then + b:SetAllPoints() + b:SetAttribute("macro", aura_env.name) + b:SetAttribute("type", "macro") + end + return true + else + return false + end +end + +INIT +aura_env.enabled = 0 +aura_env.target = "player" --UnitID; player, focus, target, partyn (where n is the number in order of the party member), raidn (For more elaborate UnitIDs look up UnitID API Wiki thing; NO DYNAMIC INFO); I don't think it works for macros though.... So I've disabled it for macros +aura_env.type = "spell" --"spell" or "macro" CASE SENSITIVE +aura_env.name = "Hand of the Protector" --Spell or Macro name CASE SENSITIVE + +if aura_env.enabled == 1 then + if not aura_env.type:match("spell") and not aura_env.type:match("macro") then + print("|cFFFF0000Error 'type' on julijabutton0") + aura_env.enabled = 0 + end + if aura_env.name == "" then + print("|cFFFF0000Error 'name' on julijabutton0") + end + if aura_env.target == "" and not aura_env.type:match("macro") then + print("|cFFFF0000Error 'target' on julijabutton0") + end +end diff --git a/Complete Projects/BFA Freakz/Grand Crusader Proc.lua b/WeakAuras/Projects/ByExp/BFA Freakz/Grand Crusader Proc.lua similarity index 98% rename from Complete Projects/BFA Freakz/Grand Crusader Proc.lua rename to WeakAuras/Projects/ByExp/BFA Freakz/Grand Crusader Proc.lua index 004db86..af55f9f 100644 --- a/Complete Projects/BFA Freakz/Grand Crusader Proc.lua +++ b/WeakAuras/Projects/ByExp/BFA Freakz/Grand Crusader Proc.lua @@ -1,16 +1,16 @@ ---COMBAT_LOG_EVENT_UNFILTERED UNIT_AURA -function(e, ...) - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, CombatLogGetCurrentEventInfo()) - local sid = select(12, CombatLogGetCurrentEventInfo()) - local caster = select(5, CombatLogGetCurrentEventInfo()) - if caster == UnitName("player") and se == "SPELL_CAST_SUCCESS" and sid == 53595 then - WeakAurasSaved.CustomTrash.ProcShit.casts = WeakAurasSaved.CustomTrash.ProcShit.casts + 1 - end - end -end - ---DISPLAY -function() - return WeakAurasSaved.CustomTrash.ProcShit.procs .. " / " .. WeakAurasSaved.CustomTrash.ProcShit.casts .. "\n" .. WeakAurasSaved.CustomTrash.ProcShit.procs / WeakAurasSaved.CustomTrash.ProcShit.casts +--COMBAT_LOG_EVENT_UNFILTERED UNIT_AURA +function(e, ...) + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, CombatLogGetCurrentEventInfo()) + local sid = select(12, CombatLogGetCurrentEventInfo()) + local caster = select(5, CombatLogGetCurrentEventInfo()) + if caster == UnitName("player") and se == "SPELL_CAST_SUCCESS" and sid == 53595 then + WeakAurasSaved.CustomTrash.ProcShit.casts = WeakAurasSaved.CustomTrash.ProcShit.casts + 1 + end + end +end + +--DISPLAY +function() + return WeakAurasSaved.CustomTrash.ProcShit.procs .. " / " .. WeakAurasSaved.CustomTrash.ProcShit.casts .. "\n" .. WeakAurasSaved.CustomTrash.ProcShit.procs / WeakAurasSaved.CustomTrash.ProcShit.casts end \ No newline at end of file diff --git a/Complete Projects/BFA Freakz/RareAlert.lua b/WeakAuras/Projects/ByExp/BFA Freakz/RareAlert.lua similarity index 96% rename from Complete Projects/BFA Freakz/RareAlert.lua rename to WeakAuras/Projects/ByExp/BFA Freakz/RareAlert.lua index 3cd3406..40b9497 100644 --- a/Complete Projects/BFA Freakz/RareAlert.lua +++ b/WeakAuras/Projects/ByExp/BFA Freakz/RareAlert.lua @@ -1,34 +1,34 @@ ---Custom text -function() - output = "" - for k, v in pairs(aura_env.elites) do - output = output .. aura_env.eliteColor .. k .. " " .. v .. "\124r\n" - end - for k, v in pairs(aura_env.rares) do - output = output .. aura_env.rareColor .. k .. " " .. v .. "\124r\n" - end - return output -end - ---NAME_PLATE_UNIT_ADDED -function(e, u) - class = UnitClassification(u) - -- use date() for time - if class == "elite" then - aura_env.elites[UnitName(u)] = aura_env.GetTime() - return true - elseif class == "rare" or class == "rareelite" then - aura_env.rares[UnitName(u)] = aura_env.GetTime() - return true - end -end - ---INIT -aura_env.elites = {} -aura_env.rares = {} -aura_env.eliteColor = "\124c" .. "ff3e3e3e" -aura_env.rareColor = "\124c" .. "ffffe72e" - -aura_env.GetTime = function() - return string.match(date(), "%d%d:%d%d:%d%d") +--Custom text +function() + output = "" + for k, v in pairs(aura_env.elites) do + output = output .. aura_env.eliteColor .. k .. " " .. v .. "\124r\n" + end + for k, v in pairs(aura_env.rares) do + output = output .. aura_env.rareColor .. k .. " " .. v .. "\124r\n" + end + return output +end + +--NAME_PLATE_UNIT_ADDED +function(e, u) + class = UnitClassification(u) + -- use date() for time + if class == "elite" then + aura_env.elites[UnitName(u)] = aura_env.GetTime() + return true + elseif class == "rare" or class == "rareelite" then + aura_env.rares[UnitName(u)] = aura_env.GetTime() + return true + end +end + +--INIT +aura_env.elites = {} +aura_env.rares = {} +aura_env.eliteColor = "\124c" .. "ff3e3e3e" +aura_env.rareColor = "\124c" .. "ffffe72e" + +aura_env.GetTime = function() + return string.match(date(), "%d%d:%d%d:%d%d") endee \ No newline at end of file diff --git a/Complete Projects/BFA/Adding text to texture.lua b/WeakAuras/Projects/ByExp/BFA/Adding text to texture.lua similarity index 97% rename from Complete Projects/BFA/Adding text to texture.lua rename to WeakAuras/Projects/ByExp/BFA/Adding text to texture.lua index 615eace..2ed0c47 100644 --- a/Complete Projects/BFA/Adding text to texture.lua +++ b/WeakAuras/Projects/ByExp/BFA/Adding text to texture.lua @@ -1,10 +1,10 @@ -if not aura_env.region.text then - 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) -aura_env.region.text:SetPoint("CENTER", aura_env.region, "CENTER", 1, 0) -aura_env.region.text:SetText("SW") -aura_env.region.text:Show() +if not aura_env.region.text then + 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) +aura_env.region.text:SetPoint("CENTER", aura_env.region, "CENTER", 1, 0) +aura_env.region.text:SetText("SW") +aura_env.region.text:Show() diff --git a/Complete Projects/BFA/Anna Arrow.lua b/WeakAuras/Projects/ByExp/BFA/Anna Arrow.lua similarity index 96% rename from Complete Projects/BFA/Anna Arrow.lua rename to WeakAuras/Projects/ByExp/BFA/Anna Arrow.lua index 2b797cf..6148f4f 100644 --- a/Complete Projects/BFA/Anna Arrow.lua +++ b/WeakAuras/Projects/ByExp/BFA/Anna Arrow.lua @@ -1,27 +1,27 @@ ---NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED -function(e, unit) - if e == "NAME_PLATE_UNIT_ADDED" then - if aura_env.altlist[UnitName(unit)] then - local plate = C_NamePlate.GetNamePlateForUnit(unit) - if plate then - aura_env.region:SetAnchor("CENTER", plate, "CENTER") - aura_env.region:SetOffset(0, 50) - aura_env.region:Color(1, 1, 1, 1) - return true - end - end - elseif e == "NAME_PLATE_UNIT_REMOVED" then - if aura_env.altlist[UnitName(unit)] then - aura_env.region:ClearAllPoints() - aura_env.region:Color(1, 1, 1, 0) - return false - end - end -end - ---INIT -aura_env.altlist = -{ - ["Elna"] = 1, - ["Melna"] = 1, +--NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED +function(e, unit) + if e == "NAME_PLATE_UNIT_ADDED" then + if aura_env.altlist[UnitName(unit)] then + local plate = C_NamePlate.GetNamePlateForUnit(unit) + if plate then + aura_env.region:SetAnchor("CENTER", plate, "CENTER") + aura_env.region:SetOffset(0, 50) + aura_env.region:Color(1, 1, 1, 1) + return true + end + end + elseif e == "NAME_PLATE_UNIT_REMOVED" then + if aura_env.altlist[UnitName(unit)] then + aura_env.region:ClearAllPoints() + aura_env.region:Color(1, 1, 1, 0) + return false + end + end +end + +--INIT +aura_env.altlist = +{ + ["Elna"] = 1, + ["Melna"] = 1, } \ No newline at end of file diff --git a/Complete Projects/BFA/Anna Trade.lua b/WeakAuras/Projects/ByExp/BFA/Anna Trade.lua similarity index 95% rename from Complete Projects/BFA/Anna Trade.lua rename to WeakAuras/Projects/ByExp/BFA/Anna Trade.lua index 1b32fee..2be18d2 100644 --- a/Complete Projects/BFA/Anna Trade.lua +++ b/WeakAuras/Projects/ByExp/BFA/Anna Trade.lua @@ -1,22 +1,22 @@ ---TRADE_SHOW -function() - if UnitName("target") == "Melna" then - local items = 0 - for i = 0, 4 do - for j = 1, GetContainerNumSlots(i) do - local link = select(7, GetContainerItemInfo(i, j)) - if link then - local type = select(7, GetItemInfo(link)) - if (type == "Cooking" or type == "Cloth") and items < 6 then - UseContainerItem(i, j) - items = items + 1 - elseif items >= 6 then - AcceptTrade() - return - end - end - end - end - AcceptTrade() - end +--TRADE_SHOW +function() + if UnitName("target") == "Melna" then + local items = 0 + for i = 0, 4 do + for j = 1, GetContainerNumSlots(i) do + local link = select(7, GetContainerItemInfo(i, j)) + if link then + local type = select(7, GetItemInfo(link)) + if (type == "Cooking" or type == "Cloth") and items < 6 then + UseContainerItem(i, j) + items = items + 1 + elseif items >= 6 then + AcceptTrade() + return + end + end + end + end + AcceptTrade() + end end \ No newline at end of file diff --git a/Complete Projects/BFA/Autoloot.lua b/WeakAuras/Projects/ByExp/BFA/Autoloot.lua similarity index 97% rename from Complete Projects/BFA/Autoloot.lua rename to WeakAuras/Projects/ByExp/BFA/Autoloot.lua index ca61293..f463d2d 100644 --- a/Complete Projects/BFA/Autoloot.lua +++ b/WeakAuras/Projects/ByExp/BFA/Autoloot.lua @@ -1,531 +1,531 @@ ---LOOT_READY MERCHANT_SHOW QUEST_POI_UPDATE QUEST_DETAIL QUEST_COMPLETE QUEST_GREETING QUEST_PROGRESS GOSSIP_SHOW SCRAPPING_MACHINE_SHOW MERCHANT_CLOSED EQUIP_BIND_CONFIRM -function(e) - local aura_env = aura_env - if e == "LOOT_READY" then --Auto Loot - local slot = 1 - local lootinfo = GetLootInfo() - for k, v in pairs(lootinfo) do - if v.locked == false then - local link = GetLootSlotLink(slot) - local looted = false - if not link then link = GetLootSlotLink(slot) end - if v.item:match("%d* Gold") or v.item:match("%d* Silver") or v.item:match("%d* Copper") then LootSlot(slot); print("|cff78cb00loot 1 |r", v.item, type, subtype) - elseif link:match("Azerite") then LootSlot(slot); print("|cff78cb00loot 2 |r", v.item, type, subtype) - elseif v.item:match("War Resources") then LootSlot(slot); print("|cff78cb00loot 3 |r", v.item, type, subtype) - elseif v.item:match("Residuum") then LootSlot(slot); print("|cff78cb00loot 4 |r", v.item, type, subtype) - elseif v.item:match("Manapearl") then LootSlot(slot); print("|cff78cb00loot 5 |r", v.item, type, subtype) - end - if link then - local icon = v.texture - local id = link:match("item:(%d+):") - if not WeakAurasSaved.CustomTrash.IconDatabase[v.item] and v.item and icon then WeakAurasSaved.CustomTrash.IconDatabase[v.item] = icon; print("Adding|cff78cb00 ", v.item, " |rto the icon database") end - if not WeakAurasSaved.CustomTrash.IDDatabase[v.item] and v.item and id then WeakAurasSaved.CustomTrash.IDDatabase[v.item] = id; print("Adding|cff3366ff ", v.item, " |rto the id database") end - local type = select(6, GetItemInfo(link)) or "" - local subtype = select(7, GetItemInfo(link)) or "" - local ilvl = select(4, GetItemInfo(link)) or 0 - local equip = select(9, GetItemInfo(link)) - if (select(7, GetItemInfo(link)) or 0) == "Mount" then LootSlot(slot); print("|cff78cb00loot 6 |r", v.item, type, subtype) - elseif ilvl > 390 then LootSlot(slot); print("|cff78cb00loot 7 |r", v.item, type, subtype) - elseif (select(7, GetItemInfo(link)) or 0) == "Herb" then LootSlot(slot); print("|cff78cb00loot 8 |r", v.item, type, subtype) - elseif (select(7, GetItemInfo(link)) or 0) == "Cooking" then LootSlot(slot); print("|cff78cb00loot 9 |r", v.item, type, subtype) - elseif (select(7, GetItemInfo(link)) or 0) == "Cloth" and type == "Tradeskill" then LootSlot(slot); print("|cff78cb00loot 10 |r", v.item, type, subtype) - elseif (select(7, GetItemInfo(link)) or 0) == "Metal & Stone" then LootSlot(slot); print("|cff78cb00loot 11 |r", v.item, type, subtype) - elseif (select(11, GetItemInfo(link)) or 0) > 150000 and v.quality == 0 then LootSlot(slot); print("|cff78cb00loot 12 |r", v.item, type, subtype) - elseif v.quality > 1 and v.quality < 4 and type ~= "Weapon" and type ~= "Armor" then LootSlot(slot); print("|cff78cb00loot 13 |r", v.item, type, subtype) - elseif v.isQuestItem == true then LootSlot(slot); print("|cff78cb00loot 14 |r", v.item, type, subtype) - elseif v.quality == 0 then LootSlot(slot); print("|cff78cb00loot 15 |r", v.item, type, subtype) - elseif aura_env.whitelist[v.item] then LootSlot(slot); print("|cff78cb00loot 16 |r", v.item, type, subtype) - --elseif type == "Quest" and subtype == "Quest" then LootSlot(slot); print("|cff78cb00loot 17 |r", v.item, type, subtype) - else - print(type, subtype) - if type == "Weapon" or type == "Armor" then - if aura_env.skills[select(3, UnitClass("player"))][subtype] == 1 then - LootSlot(slot); print("|cff78cb00loot 18 |r", v.item, type, subtype) - elseif equip == "INVTYPE_FINGER" or equip == "INVTYPE_TRINKET" or equip == "INVTYPE_CLOAK" or equip == "INVTYPE_NECK" then - LootSlot(slot); print("|cff78cb00loot 19 |r", v.item, type, subtype) - end - elseif type == "Miscellaneous" then - if subtype == "Mount" then - LootSlot(slot); print("|cff78cb00loot 20 |r", v.item, type, subtype) - end - end - end - end - if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity, looted) end - slot = slot + 1 - end - end - CloseLoot() - elseif e == "EQUIP_BIND_CONFIRM" then - StaticPopup1Button1:Click() - elseif e == "SCRAPPING_MACHINE_SHOW" then - for i = 0, 4 do - for j = 1, GetContainerNumSlots(i) do - local link = select(7, GetContainerItemInfo(i, j)) - if link then - local name = GetItemInfo(link) - local rarity = select(3, GetItemInfo(link)) - local ilvl = select(4, GetItemInfo(link)) or 0 - local type = select(6, GetItemInfo(link)) - local equip = select(9, GetItemInfo(link)) or "" - local price = select(11, GetItemInfo(link)) - if aura_env.sellWhitelist[name] ~= 1 then - if name and rarity and ilvl and type and equip and price then - if (type == "Armor" or type == "Weapon") and rarity <= 3 and aura_env.getequipID(equip) then - UseContainerItem(i, j) - elseif rarity > 3 and aura_env.getequipID(equip) then - if equip ~= "INVTYPE_FINGER" then - local eqID = aura_env.getequipID(equip) - local elink = GetInventoryItemLink("player", eqID) - local eilvl = select(4, GetItemInfo(elink)) or 0 - if eilvl > ilvl + 5 then - print("Scrapping " .. link .. "over |cFF780000" .. eilvl - ilvl .. "|r ilvl difference from " .. elink) - UseContainerItem(i, j) - end - elseif equip == "INVTYPE_FINGER" then - local eqID1, eqID2 = 11, 12 - local elink1, elink2 = GetInventoryItemLink("player", eqID1), GetInventoryItemLink("player", eqID2) - local eilvl1, eilvl2 = select(4, GetItemInfo(elink1)) or 0, select(4, GetItemInfo(elink2)) or 0 - if eilvl1 > ilvl + 5 then - print("Scrapping " .. link .. " over |cFF780000" .. eilvl1 - ilvl .. "|r ilvl difference from " .. elink1) - UseContainerItem(i, j) - elseif eilvl2 > ilvl + 5 then - print("Scrapping " .. link .. " over |cFF780000" .. eilvl2 - ilvl .. "|r ilvl difference from " .. elink2) - UseContainerItem(i, j) - end - end - end - end - end - end - end - end - elseif e == "MERCHANT_SHOW" then --Sell grey and white wepaon - if CanMerchantRepair() == true then RepairAllItems() end - local i, j = 0, 1 - for c = 0, 4 do - for s = 1, GetContainerNumSlots(c) do - local link = select(7, GetContainerItemInfo(c, s)) - if link then - local name = GetItemInfo(link) - local rarity = select(3, GetItemInfo(link)) - local ilvl = select(4, GetItemInfo(link)) or 0 - local type = select(6, GetItemInfo(link)) - local price = select(11, GetItemInfo(link)) - if price and price > 0 then - if aura_env.sellWhitelist[name] ~= 1 then - if rarity == 0 then - aura_env.toSell[#aura_env.toSell + 1] = {["c"] = c, ["s"] = s} - elseif (type == "Armor" or type == "Weapon") and ilvl < 350 then - aura_env.toSell[#aura_env.toSell + 1] = {["c"] = c, ["s"] = s} - end - end - end - end - end - end - aura_env.ticker = C_Timer.NewTicker(0.15, function() - if aura_env.toSell[1] then - UseContainerItem(aura_env.toSell[1].c, aura_env.toSell[1].s) - table.remove(aura_env.toSell, 1) - else - aura_env.ticker:Cancel() - end - if j >= GetContainerNumSlots(i) then i = i + 1; j = 1 end - if i >= 4 then aura_env.ticker:Cancel() end - end) - elseif e == "MERCHANT_CLOSED" then - if aura_env.ticker then aura_env.ticker:Cancel() end - aura_env.toSell = {} - elseif e == "QUEST_POI_UPDATE" then - CloseGossip() - elseif e == "QUEST_DETAIL" then - AcceptQuest() - elseif e == "QUEST_COMPLETE" then - if GetNumQuestChoices() <= 1 then - GetQuestReward(1) - end - elseif e == "GOSSIP_SHOW" then - local quests = GetNumGossipAvailableQuests() - local complquests = GetNumGossipActiveQuests() - local opt = GetNumGossipOptions() - if complquests > 0 and opt == 0 then - for i = 1, complquests do - SelectGossipActiveQuest(i) - end - end - if quests > 0 and opt == 0 then - SelectGossipAvailableQuest(1) - end - if opt == 1 and quests + complquests == 0 then - SelectGossipOption(1) - end - elseif e == "QUEST_GREETING" then - local quests = GetNumGossipAvailableQuests() - local complquests = GetNumGossipActiveQuests() - if complquests > 0 then - for i = 1, complquests do - SelectActiveQuest(1) - end - end - if quests > 0 then - SelectAvailableQuest(1) - end - elseif e == "QUEST_PROGRESS" then - if IsQuestCompletable(i) then - CompleteQuest() - end - end -end - ---INIT -aura_env.whitelist = -{ - ["Pygmy Suckerfish"] = 1, - ["Drakkari Offerings"] = 1, - ["Deepcoral Pod"] = 1, - ["Hardened Spring"] = 1, - ["Machined Gear Assembly"] = 1, - ["Tempered Plating"] = 1, - ["Hefty Glimmershell"] = 1, - ["Fresh Meat"] = 1, - ["Wood"] = 1, -} -aura_env.sellWhitelist = -{ - ["Blacksmith Hammer"] = 1, - ["Endless Tincture of Renewed Combat"] = 1, - ["Mr. Munchykins"] = 1, -} -aura_env.toSell = {} -aura_env.getequipID = function(equip) - if equip == "INVTYPE_HEAD" then return 1 - elseif equip == "INVTYPE_NECK" then return 2 - elseif equip == "INVTYPE_SHOULDER" then return 3 - elseif equip == "INVTYPE_BODY" then return 4 - elseif equip == "INVTYPE_CHEST" or equip == "INVTYPE_ROBE" then return 5 - elseif equip == "INVTYPE_WAIST" then return 6 - elseif equip == "INVTYPE_LEGS" then return 7 - elseif equip == "INVTYPE_FEET" then return 8 - elseif equip == "INVTYPE_WRIST" then return 9 - elseif equip == "INVTYPE_HAND" then return 10 - elseif equip == "INVTYPE_CLOAK" then return 15 - elseif equip == "INVTYPE_WEAPON" or equip == "INVTYPE_WEAPONMAINHAND" or equip == "INVTYPE_2HWEAPON" then return 16 - elseif equip == "INVTYPE_SHIELD" then return 17 - else return nil 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, - }, -} +--LOOT_READY MERCHANT_SHOW QUEST_POI_UPDATE QUEST_DETAIL QUEST_COMPLETE QUEST_GREETING QUEST_PROGRESS GOSSIP_SHOW SCRAPPING_MACHINE_SHOW MERCHANT_CLOSED EQUIP_BIND_CONFIRM +function(e) + local aura_env = aura_env + if e == "LOOT_READY" then --Auto Loot + local slot = 1 + local lootinfo = GetLootInfo() + for k, v in pairs(lootinfo) do + if v.locked == false then + local link = GetLootSlotLink(slot) + local looted = false + if not link then link = GetLootSlotLink(slot) end + if v.item:match("%d* Gold") or v.item:match("%d* Silver") or v.item:match("%d* Copper") then LootSlot(slot); print("|cff78cb00loot 1 |r", v.item, type, subtype) + elseif link:match("Azerite") then LootSlot(slot); print("|cff78cb00loot 2 |r", v.item, type, subtype) + elseif v.item:match("War Resources") then LootSlot(slot); print("|cff78cb00loot 3 |r", v.item, type, subtype) + elseif v.item:match("Residuum") then LootSlot(slot); print("|cff78cb00loot 4 |r", v.item, type, subtype) + elseif v.item:match("Manapearl") then LootSlot(slot); print("|cff78cb00loot 5 |r", v.item, type, subtype) + end + if link then + local icon = v.texture + local id = link:match("item:(%d+):") + if not WeakAurasSaved.CustomTrash.IconDatabase[v.item] and v.item and icon then WeakAurasSaved.CustomTrash.IconDatabase[v.item] = icon; print("Adding|cff78cb00 ", v.item, " |rto the icon database") end + if not WeakAurasSaved.CustomTrash.IDDatabase[v.item] and v.item and id then WeakAurasSaved.CustomTrash.IDDatabase[v.item] = id; print("Adding|cff3366ff ", v.item, " |rto the id database") end + local type = select(6, GetItemInfo(link)) or "" + local subtype = select(7, GetItemInfo(link)) or "" + local ilvl = select(4, GetItemInfo(link)) or 0 + local equip = select(9, GetItemInfo(link)) + if (select(7, GetItemInfo(link)) or 0) == "Mount" then LootSlot(slot); print("|cff78cb00loot 6 |r", v.item, type, subtype) + elseif ilvl > 390 then LootSlot(slot); print("|cff78cb00loot 7 |r", v.item, type, subtype) + elseif (select(7, GetItemInfo(link)) or 0) == "Herb" then LootSlot(slot); print("|cff78cb00loot 8 |r", v.item, type, subtype) + elseif (select(7, GetItemInfo(link)) or 0) == "Cooking" then LootSlot(slot); print("|cff78cb00loot 9 |r", v.item, type, subtype) + elseif (select(7, GetItemInfo(link)) or 0) == "Cloth" and type == "Tradeskill" then LootSlot(slot); print("|cff78cb00loot 10 |r", v.item, type, subtype) + elseif (select(7, GetItemInfo(link)) or 0) == "Metal & Stone" then LootSlot(slot); print("|cff78cb00loot 11 |r", v.item, type, subtype) + elseif (select(11, GetItemInfo(link)) or 0) > 150000 and v.quality == 0 then LootSlot(slot); print("|cff78cb00loot 12 |r", v.item, type, subtype) + elseif v.quality > 1 and v.quality < 4 and type ~= "Weapon" and type ~= "Armor" then LootSlot(slot); print("|cff78cb00loot 13 |r", v.item, type, subtype) + elseif v.isQuestItem == true then LootSlot(slot); print("|cff78cb00loot 14 |r", v.item, type, subtype) + elseif v.quality == 0 then LootSlot(slot); print("|cff78cb00loot 15 |r", v.item, type, subtype) + elseif aura_env.whitelist[v.item] then LootSlot(slot); print("|cff78cb00loot 16 |r", v.item, type, subtype) + --elseif type == "Quest" and subtype == "Quest" then LootSlot(slot); print("|cff78cb00loot 17 |r", v.item, type, subtype) + else + print(type, subtype) + if type == "Weapon" or type == "Armor" then + if aura_env.skills[select(3, UnitClass("player"))][subtype] == 1 then + LootSlot(slot); print("|cff78cb00loot 18 |r", v.item, type, subtype) + elseif equip == "INVTYPE_FINGER" or equip == "INVTYPE_TRINKET" or equip == "INVTYPE_CLOAK" or equip == "INVTYPE_NECK" then + LootSlot(slot); print("|cff78cb00loot 19 |r", v.item, type, subtype) + end + elseif type == "Miscellaneous" then + if subtype == "Mount" then + LootSlot(slot); print("|cff78cb00loot 20 |r", v.item, type, subtype) + end + end + end + end + if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity, looted) end + slot = slot + 1 + end + end + CloseLoot() + elseif e == "EQUIP_BIND_CONFIRM" then + StaticPopup1Button1:Click() + elseif e == "SCRAPPING_MACHINE_SHOW" then + for i = 0, 4 do + for j = 1, GetContainerNumSlots(i) do + local link = select(7, GetContainerItemInfo(i, j)) + if link then + local name = GetItemInfo(link) + local rarity = select(3, GetItemInfo(link)) + local ilvl = select(4, GetItemInfo(link)) or 0 + local type = select(6, GetItemInfo(link)) + local equip = select(9, GetItemInfo(link)) or "" + local price = select(11, GetItemInfo(link)) + if aura_env.sellWhitelist[name] ~= 1 then + if name and rarity and ilvl and type and equip and price then + if (type == "Armor" or type == "Weapon") and rarity <= 3 and aura_env.getequipID(equip) then + UseContainerItem(i, j) + elseif rarity > 3 and aura_env.getequipID(equip) then + if equip ~= "INVTYPE_FINGER" then + local eqID = aura_env.getequipID(equip) + local elink = GetInventoryItemLink("player", eqID) + local eilvl = select(4, GetItemInfo(elink)) or 0 + if eilvl > ilvl + 5 then + print("Scrapping " .. link .. "over |cFF780000" .. eilvl - ilvl .. "|r ilvl difference from " .. elink) + UseContainerItem(i, j) + end + elseif equip == "INVTYPE_FINGER" then + local eqID1, eqID2 = 11, 12 + local elink1, elink2 = GetInventoryItemLink("player", eqID1), GetInventoryItemLink("player", eqID2) + local eilvl1, eilvl2 = select(4, GetItemInfo(elink1)) or 0, select(4, GetItemInfo(elink2)) or 0 + if eilvl1 > ilvl + 5 then + print("Scrapping " .. link .. " over |cFF780000" .. eilvl1 - ilvl .. "|r ilvl difference from " .. elink1) + UseContainerItem(i, j) + elseif eilvl2 > ilvl + 5 then + print("Scrapping " .. link .. " over |cFF780000" .. eilvl2 - ilvl .. "|r ilvl difference from " .. elink2) + UseContainerItem(i, j) + end + end + end + end + end + end + end + end + elseif e == "MERCHANT_SHOW" then --Sell grey and white wepaon + if CanMerchantRepair() == true then RepairAllItems() end + local i, j = 0, 1 + for c = 0, 4 do + for s = 1, GetContainerNumSlots(c) do + local link = select(7, GetContainerItemInfo(c, s)) + if link then + local name = GetItemInfo(link) + local rarity = select(3, GetItemInfo(link)) + local ilvl = select(4, GetItemInfo(link)) or 0 + local type = select(6, GetItemInfo(link)) + local price = select(11, GetItemInfo(link)) + if price and price > 0 then + if aura_env.sellWhitelist[name] ~= 1 then + if rarity == 0 then + aura_env.toSell[#aura_env.toSell + 1] = {["c"] = c, ["s"] = s} + elseif (type == "Armor" or type == "Weapon") and ilvl < 350 then + aura_env.toSell[#aura_env.toSell + 1] = {["c"] = c, ["s"] = s} + end + end + end + end + end + end + aura_env.ticker = C_Timer.NewTicker(0.15, function() + if aura_env.toSell[1] then + UseContainerItem(aura_env.toSell[1].c, aura_env.toSell[1].s) + table.remove(aura_env.toSell, 1) + else + aura_env.ticker:Cancel() + end + if j >= GetContainerNumSlots(i) then i = i + 1; j = 1 end + if i >= 4 then aura_env.ticker:Cancel() end + end) + elseif e == "MERCHANT_CLOSED" then + if aura_env.ticker then aura_env.ticker:Cancel() end + aura_env.toSell = {} + elseif e == "QUEST_POI_UPDATE" then + CloseGossip() + elseif e == "QUEST_DETAIL" then + AcceptQuest() + elseif e == "QUEST_COMPLETE" then + if GetNumQuestChoices() <= 1 then + GetQuestReward(1) + end + elseif e == "GOSSIP_SHOW" then + local quests = GetNumGossipAvailableQuests() + local complquests = GetNumGossipActiveQuests() + local opt = GetNumGossipOptions() + if complquests > 0 and opt == 0 then + for i = 1, complquests do + SelectGossipActiveQuest(i) + end + end + if quests > 0 and opt == 0 then + SelectGossipAvailableQuest(1) + end + if opt == 1 and quests + complquests == 0 then + SelectGossipOption(1) + end + elseif e == "QUEST_GREETING" then + local quests = GetNumGossipAvailableQuests() + local complquests = GetNumGossipActiveQuests() + if complquests > 0 then + for i = 1, complquests do + SelectActiveQuest(1) + end + end + if quests > 0 then + SelectAvailableQuest(1) + end + elseif e == "QUEST_PROGRESS" then + if IsQuestCompletable(i) then + CompleteQuest() + end + end +end + +--INIT +aura_env.whitelist = +{ + ["Pygmy Suckerfish"] = 1, + ["Drakkari Offerings"] = 1, + ["Deepcoral Pod"] = 1, + ["Hardened Spring"] = 1, + ["Machined Gear Assembly"] = 1, + ["Tempered Plating"] = 1, + ["Hefty Glimmershell"] = 1, + ["Fresh Meat"] = 1, + ["Wood"] = 1, +} +aura_env.sellWhitelist = +{ + ["Blacksmith Hammer"] = 1, + ["Endless Tincture of Renewed Combat"] = 1, + ["Mr. Munchykins"] = 1, +} +aura_env.toSell = {} +aura_env.getequipID = function(equip) + if equip == "INVTYPE_HEAD" then return 1 + elseif equip == "INVTYPE_NECK" then return 2 + elseif equip == "INVTYPE_SHOULDER" then return 3 + elseif equip == "INVTYPE_BODY" then return 4 + elseif equip == "INVTYPE_CHEST" or equip == "INVTYPE_ROBE" then return 5 + elseif equip == "INVTYPE_WAIST" then return 6 + elseif equip == "INVTYPE_LEGS" then return 7 + elseif equip == "INVTYPE_FEET" then return 8 + elseif equip == "INVTYPE_WRIST" then return 9 + elseif equip == "INVTYPE_HAND" then return 10 + elseif equip == "INVTYPE_CLOAK" then return 15 + elseif equip == "INVTYPE_WEAPON" or equip == "INVTYPE_WEAPONMAINHAND" or equip == "INVTYPE_2HWEAPON" then return 16 + elseif equip == "INVTYPE_SHIELD" then return 17 + else return nil 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, + }, +} diff --git a/Complete Projects/BFA/Azerite Power Energize.lua b/WeakAuras/Projects/ByExp/BFA/Azerite Power Energize.lua similarity index 95% rename from Complete Projects/BFA/Azerite Power Energize.lua rename to WeakAuras/Projects/ByExp/BFA/Azerite Power Energize.lua index 2b16d0e..b71a60e 100644 --- a/Complete Projects/BFA/Azerite Power Energize.lua +++ b/WeakAuras/Projects/ByExp/BFA/Azerite Power Energize.lua @@ -1,27 +1,27 @@ ---COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_DISABLED -function(e, ...) - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, ...) - if se == "SPELL_ENERGIZE" then - local caster = select(9, ...) - if caster == UnitName("player") then - local spell = select(13, ...) - if spell == "Lucid Dreams" then - local amount = select(15, ...) - aura_env.amount = aura_env.amount + amount - return true - end - end - end - elseif e == "PLAYER_REGEN_DISABLED" then - aura_env.amount = 0 - end -end - ---DISPLAY -function() - return aura_env.amount -end - ---INIT +--COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_DISABLED +function(e, ...) + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, ...) + if se == "SPELL_ENERGIZE" then + local caster = select(9, ...) + if caster == UnitName("player") then + local spell = select(13, ...) + if spell == "Lucid Dreams" then + local amount = select(15, ...) + aura_env.amount = aura_env.amount + amount + return true + end + end + end + elseif e == "PLAYER_REGEN_DISABLED" then + aura_env.amount = 0 + end +end + +--DISPLAY +function() + return aura_env.amount +end + +--INIT aura_env.amount = 0 \ No newline at end of file diff --git a/Complete Projects/BFA/Block Ratio.lua b/WeakAuras/Projects/ByExp/BFA/Block Ratio.lua similarity index 96% rename from Complete Projects/BFA/Block Ratio.lua rename to WeakAuras/Projects/ByExp/BFA/Block Ratio.lua index ad3ece5..b79ebac 100644 --- a/Complete Projects/BFA/Block Ratio.lua +++ b/WeakAuras/Projects/ByExp/BFA/Block Ratio.lua @@ -1,64 +1,64 @@ ---COMBAT_LOG_EVENT_UNFILTERED -function(...) - local se = select(3, ...) - if se == "SWING_DAMAGE" then - local dest = select(10, ...) - if dest == UnitName("player") then - aura_env.nummelee = aura_env.nummelee + 1 - local bloq = select(17, ...) - if bloq then - aura_env.numbloq = aura_env.numbloq + 1 - local amount = select(13, ...) - local total = amount + bloq - local pbloq = bloq / total * 100 - aura_env.bloqs[#aura_env.bloqs + 1] = pbloq - local count = 1 - for k,v in ipairs(aura_env.bloqs) do - aura_env.pbloq = aura_env.pbloq + v - count = count + 1 - end - aura_env.pbloq = aura_env.pbloq / count - return true - end - end - elseif se == "SPELL_DAMAGE" then - local dest = select(10, ...) - if dest == UnitName("player") then - aura_env.nummelee = aura_env.nummelee + 1 - local bloq = select(20, ...) - if bloq then - aura_env.numbloq = aura_env.numbloq + 1 - local amount = select(16, ...) - local total = amount + bloq - local pbloq = bloq / total * 100 - aura_env.bloqs[#aura_env.bloqs + 1] = pbloq - local count = 1 - for k,v in ipairs(aura_env.bloqs) do - aura_env.pbloq = aura_env.pbloq + v - count = count + 1 - end - aura_env.pbloq = aura_env.pbloq / count - return true - end - end - end -end - ---DISPLAY -function() - return aura_env.round(aura_env.pbloq, 2) .. "\n" .. aura_env.round((aura_env.numbloq / aura_env.nummelee) * 100, 2) -end - ---INIT -aura_env.bloqs = {} -aura_env.numbloq = 0 -aura_env.nummelee = 0 -aura_env.pbloq = 0 -aura_env.round = function(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 +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local se = select(3, ...) + if se == "SWING_DAMAGE" then + local dest = select(10, ...) + if dest == UnitName("player") then + aura_env.nummelee = aura_env.nummelee + 1 + local bloq = select(17, ...) + if bloq then + aura_env.numbloq = aura_env.numbloq + 1 + local amount = select(13, ...) + local total = amount + bloq + local pbloq = bloq / total * 100 + aura_env.bloqs[#aura_env.bloqs + 1] = pbloq + local count = 1 + for k,v in ipairs(aura_env.bloqs) do + aura_env.pbloq = aura_env.pbloq + v + count = count + 1 + end + aura_env.pbloq = aura_env.pbloq / count + return true + end + end + elseif se == "SPELL_DAMAGE" then + local dest = select(10, ...) + if dest == UnitName("player") then + aura_env.nummelee = aura_env.nummelee + 1 + local bloq = select(20, ...) + if bloq then + aura_env.numbloq = aura_env.numbloq + 1 + local amount = select(16, ...) + local total = amount + bloq + local pbloq = bloq / total * 100 + aura_env.bloqs[#aura_env.bloqs + 1] = pbloq + local count = 1 + for k,v in ipairs(aura_env.bloqs) do + aura_env.pbloq = aura_env.pbloq + v + count = count + 1 + end + aura_env.pbloq = aura_env.pbloq / count + return true + end + end + end +end + +--DISPLAY +function() + return aura_env.round(aura_env.pbloq, 2) .. "\n" .. aura_env.round((aura_env.numbloq / aura_env.nummelee) * 100, 2) +end + +--INIT +aura_env.bloqs = {} +aura_env.numbloq = 0 +aura_env.nummelee = 0 +aura_env.pbloq = 0 +aura_env.round = function(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 \ No newline at end of file diff --git a/Complete Projects/BFA/Block and Absorb Melee.lua b/WeakAuras/Projects/ByExp/BFA/Block and Absorb Melee.lua similarity index 97% rename from Complete Projects/BFA/Block and Absorb Melee.lua rename to WeakAuras/Projects/ByExp/BFA/Block and Absorb Melee.lua index 3af0fb6..24063c3 100644 --- a/Complete Projects/BFA/Block and Absorb Melee.lua +++ b/WeakAuras/Projects/ByExp/BFA/Block and Absorb Melee.lua @@ -1,162 +1,162 @@ ---COMBAT_LOG_EVENT_UNFILTERED -function(...) - local se = select(3, ...) - if se == "SWING_DAMAGE" then - local dest = select(10, ...) - if dest == UnitName("player") then - local amount = select(13, ...) - local block = select(17, ...) or 0 - local absorb = select(18, ...) or 0 - if amount then - local output = amount - local total = amount - total = total + block + absorb - local rel = aura_env.round(((absorb + block) / total) * 100, 2) or 0 - output = output .. " " .. block .. " " .. absorb .. " " .. rel - if #aura_env.melee == aura_env.lines then - table.remove(aura_env.melee, 1) - table.insert(aura_env.melee, output) - else - table.insert(aura_env.melee, output) - end - return true - end - end - elseif se == "SPELL_DAMAGE" then - local dest = select(10, ...) - if dest == UnitName("player") then - local amount = select(16, ...) - local block = select(20, ...) or 0 - local absorb = select(21, ...) or 0 - if amount then - local output = amount - local total = amount - total = total + block + absorb - local rel = aura_env.round(((absorb + block) / total) * 100, 2) or 0 - output = output .. " " .. block .. " " .. absorb .. " " .. rel - if #aura_env.melee == aura_env.lines then - table.remove(aura_env.melee, 1) - table.insert(aura_env.melee, output) - else - table.insert(aura_env.melee, output) - end - return true - end - end - end -end - ---DISPLAY -function() - local meleeT, blockT, absorbT, perT = "", "", "", "" - local melee, block, absorb, per = 0, 0, 0, 0 - for i = #aura_env.melee, 1, -1 do - melee = aura_env.melee[i]:match("(%d+)") - if melee then - melee = tonumber(melee) - block = aura_env.melee[i]:match("%d+ (%d+)") or 0 - block = tonumber(block) - absorb = aura_env.melee[i]:match("%d+ %d+ (%d+)") or 0 - absorb = tonumber(absorb) - if block or absorb then - per = aura_env.melee[i]:match("%d+ %d+ %d+ (%d+%.?%d*)") or 0 - per = tonumber(per) - end - meleeT = meleeT .. aura_env.shorten(melee) .. "\n" - blockT = blockT .. aura_env.shorten(block) .. "\n" - absorbT = absorbT .. aura_env.shorten(absorb) .. "\n" - perT = perT .. aura_env.shorten(per) .. "\n" - end - end - aura_env.region.melee:SetText(meleeT) - aura_env.region.block:SetText(blockT) - aura_env.region.absorb:SetText(absorbT) - aura_env.region.percentage:SetText(perT) -end - ---INIT -aura_env.lines = 10 - ----------------------------------------- --- PLEASE DO NOT EDIT BELOW THIS LINE -- ----------------------------------------- -local fontsize = select(2, aura_env.region.text:GetFont()) -aura_env.region:SetWidth(fontsize * 20) -aura_env.region:SetHeight(fontsize * aura_env.lines) -aura_env.melee = {""} -aura_env.round = function(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 -if not aura_env.region.melee then - local melee = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.melee = melee -end -aura_env.region.melee:SetFont(aura_env.region.text:GetFont()) -aura_env.region.melee:SetTextColor(1, 1, 1) -aura_env.region.melee:SetPoint("CENTER", aura_env.region, "CENTER", -fontsize * 7.5, 0) -aura_env.region.melee:SetWidth(fontsize * 5) -aura_env.region.melee:SetJustifyH("LEFT") -aura_env.region.melee:SetText("") -aura_env.region.melee:Show() - -if not aura_env.region.block then - local block = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.block = block -end -aura_env.region.block:SetFont(aura_env.region.text:GetFont()) -aura_env.region.block:SetTextColor(0.75, 0.23, 0.23) -aura_env.region.block:SetPoint("CENTER", aura_env.region, "CENTER", -fontsize * 2.5, 0) -aura_env.region.block:SetWidth(fontsize * 5) -aura_env.region.block:SetJustifyH("LEFT") -aura_env.region.block:SetText("") -aura_env.region.block:Show() - -if not aura_env.region.absorb then - local absorb = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.absorb = absorb -end -aura_env.region.absorb:SetFont(aura_env.region.text:GetFont()) -aura_env.region.absorb:SetTextColor(0.1227, 0.4089, 0.65) -aura_env.region.absorb:SetPoint("CENTER", aura_env.region, "CENTER", fontsize * 2.5, 0) -aura_env.region.absorb:SetWidth(fontsize * 5) -aura_env.region.absorb:SetJustifyH("LEFT") -aura_env.region.absorb:SetText("") -aura_env.region.absorb:Show() - -if not aura_env.region.percentage then - local percentage = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.percentage = percentage -end -aura_env.region.percentage:SetFont(aura_env.region.text:GetFont()) -aura_env.region.percentage:SetTextColor(0.32, 0.32, 0.34) -aura_env.region.percentage:SetPoint("CENTER", aura_env.region, "CENTER", fontsize * 7.5, 0) -aura_env.region.percentage:SetWidth(fontsize * 5) -aura_env.region.percentage:SetJustifyH("LEFT") -aura_env.region.percentage:SetText("") -aura_env.region.percentage:Show() - -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 +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local se = select(3, ...) + if se == "SWING_DAMAGE" then + local dest = select(10, ...) + if dest == UnitName("player") then + local amount = select(13, ...) + local block = select(17, ...) or 0 + local absorb = select(18, ...) or 0 + if amount then + local output = amount + local total = amount + total = total + block + absorb + local rel = aura_env.round(((absorb + block) / total) * 100, 2) or 0 + output = output .. " " .. block .. " " .. absorb .. " " .. rel + if #aura_env.melee == aura_env.lines then + table.remove(aura_env.melee, 1) + table.insert(aura_env.melee, output) + else + table.insert(aura_env.melee, output) + end + return true + end + end + elseif se == "SPELL_DAMAGE" then + local dest = select(10, ...) + if dest == UnitName("player") then + local amount = select(16, ...) + local block = select(20, ...) or 0 + local absorb = select(21, ...) or 0 + if amount then + local output = amount + local total = amount + total = total + block + absorb + local rel = aura_env.round(((absorb + block) / total) * 100, 2) or 0 + output = output .. " " .. block .. " " .. absorb .. " " .. rel + if #aura_env.melee == aura_env.lines then + table.remove(aura_env.melee, 1) + table.insert(aura_env.melee, output) + else + table.insert(aura_env.melee, output) + end + return true + end + end + end +end + +--DISPLAY +function() + local meleeT, blockT, absorbT, perT = "", "", "", "" + local melee, block, absorb, per = 0, 0, 0, 0 + for i = #aura_env.melee, 1, -1 do + melee = aura_env.melee[i]:match("(%d+)") + if melee then + melee = tonumber(melee) + block = aura_env.melee[i]:match("%d+ (%d+)") or 0 + block = tonumber(block) + absorb = aura_env.melee[i]:match("%d+ %d+ (%d+)") or 0 + absorb = tonumber(absorb) + if block or absorb then + per = aura_env.melee[i]:match("%d+ %d+ %d+ (%d+%.?%d*)") or 0 + per = tonumber(per) + end + meleeT = meleeT .. aura_env.shorten(melee) .. "\n" + blockT = blockT .. aura_env.shorten(block) .. "\n" + absorbT = absorbT .. aura_env.shorten(absorb) .. "\n" + perT = perT .. aura_env.shorten(per) .. "\n" + end + end + aura_env.region.melee:SetText(meleeT) + aura_env.region.block:SetText(blockT) + aura_env.region.absorb:SetText(absorbT) + aura_env.region.percentage:SetText(perT) +end + +--INIT +aura_env.lines = 10 + +---------------------------------------- +-- PLEASE DO NOT EDIT BELOW THIS LINE -- +---------------------------------------- +local fontsize = select(2, aura_env.region.text:GetFont()) +aura_env.region:SetWidth(fontsize * 20) +aura_env.region:SetHeight(fontsize * aura_env.lines) +aura_env.melee = {""} +aura_env.round = function(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 +if not aura_env.region.melee then + local melee = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.melee = melee +end +aura_env.region.melee:SetFont(aura_env.region.text:GetFont()) +aura_env.region.melee:SetTextColor(1, 1, 1) +aura_env.region.melee:SetPoint("CENTER", aura_env.region, "CENTER", -fontsize * 7.5, 0) +aura_env.region.melee:SetWidth(fontsize * 5) +aura_env.region.melee:SetJustifyH("LEFT") +aura_env.region.melee:SetText("") +aura_env.region.melee:Show() + +if not aura_env.region.block then + local block = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.block = block +end +aura_env.region.block:SetFont(aura_env.region.text:GetFont()) +aura_env.region.block:SetTextColor(0.75, 0.23, 0.23) +aura_env.region.block:SetPoint("CENTER", aura_env.region, "CENTER", -fontsize * 2.5, 0) +aura_env.region.block:SetWidth(fontsize * 5) +aura_env.region.block:SetJustifyH("LEFT") +aura_env.region.block:SetText("") +aura_env.region.block:Show() + +if not aura_env.region.absorb then + local absorb = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.absorb = absorb +end +aura_env.region.absorb:SetFont(aura_env.region.text:GetFont()) +aura_env.region.absorb:SetTextColor(0.1227, 0.4089, 0.65) +aura_env.region.absorb:SetPoint("CENTER", aura_env.region, "CENTER", fontsize * 2.5, 0) +aura_env.region.absorb:SetWidth(fontsize * 5) +aura_env.region.absorb:SetJustifyH("LEFT") +aura_env.region.absorb:SetText("") +aura_env.region.absorb:Show() + +if not aura_env.region.percentage then + local percentage = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.percentage = percentage +end +aura_env.region.percentage:SetFont(aura_env.region.text:GetFont()) +aura_env.region.percentage:SetTextColor(0.32, 0.32, 0.34) +aura_env.region.percentage:SetPoint("CENTER", aura_env.region, "CENTER", fontsize * 7.5, 0) +aura_env.region.percentage:SetWidth(fontsize * 5) +aura_env.region.percentage:SetJustifyH("LEFT") +aura_env.region.percentage:SetText("") +aura_env.region.percentage:Show() + +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 end \ No newline at end of file diff --git a/Complete Projects/BFA/CD.lua b/WeakAuras/Projects/ByExp/BFA/CD.lua similarity index 97% rename from Complete Projects/BFA/CD.lua rename to WeakAuras/Projects/ByExp/BFA/CD.lua index 2f58ea9..e3589f7 100644 --- a/Complete Projects/BFA/CD.lua +++ b/WeakAuras/Projects/ByExp/BFA/CD.lua @@ -1,89 +1,89 @@ ---COMBAT_LOG_EVENT_UNFILTERED -function(...) - local se = select(3, ...) - if se == "SPELL_CAST_SUCCESS" then - local dest = select(6, ...) - if dest == UnitName("player") then - local name = select(14, ...) - if name == "Shield Block" or name == "Ignore Pain" then - local c1, c2, c3, c4 = "|cFFFFFFFF", "|cFFFFFFFF", "|cFFFFFFFF", "|cFFFFFFFF" - local Avatar = GetSpellCooldown("Avatar") - local AvatarD = select(2, GetSpellCooldown("Avatar")) - local LastStand = GetSpellCooldown("Last Stand") - local ShieldWall = GetSpellCooldown("Shield Wall") - local DemoralizingShout = GetSpellCooldown("Demoralizing Shout") - local DemoralizingShoutD = select(2, GetSpellCooldown("Demoralizing Shout")) - if Avatar > 0 and AvatarD > 2 then - if name == "Shield Block" then - aura_env.AvatarCD = aura_env.AvatarCD + 3 - else - aura_env.AvatarCD = aura_env.AvatarCD + 4 - end - end - if LastStand > 0 then - if name == "Shield Block" then - aura_env.LastStandCD = aura_env.LastStandCD + 3 - else - aura_env.LastStandCD = aura_env.LastStandCD + 4 - end - end - if ShieldWall > 0 then - if name == "Shield Block" then - aura_env.ShieldWallCD = aura_env.ShieldWallCD + 3 - else - aura_env.ShieldWallCD = aura_env.ShieldWallCD + 4 - end - end - if DemoralizingShout > 0 and DemoralizingShoutD > 2 then - if name == "Shield Block" then - aura_env.DemoralizingShoutCD = aura_env.DemoralizingShoutCD + 3 - else - aura_env.DemoralizingShoutCD = aura_env.DemoralizingShoutCD + 4 - end - end - if AvatarD < 2 then c1 = "|cFF0080FF" end - if LastStand == 0 then c2 = "|cFF0080FF" end - if ShieldWall == 0 then c3 = "|cFF0080FF" end - if DemoralizingShoutD < 2 then c4 = "|cFF0080FF" end - aura_env.region.text2:SetText(c1 .. aura_env.AvatarCD .. "|r\n" .. c2 .. aura_env.LastStandCD .. "|r\n" .. c3 .. aura_env.ShieldWallCD .. "|r\n" .. c4 .. aura_env.DemoralizingShoutCD .. "|r") - elseif name == "Avatar" then - aura_env.AvatarCD = 0 - elseif name == "Last Stand" then - aura_env.LastStandCD = 0 - elseif name == "Shield Wall" then - aura_env.ShieldWallCD = 0 - elseif name == "Demoralizing Shout" then - aura_env.DemoralizingShoutCD = 0 - end - end - end -end - ---INIT -aura_env.AvatarCD, aura_env.LastStandCD, aura_env.ShieldWallCD, aura_env.DemoralizingShoutCD = 0, 0, 0, 0 -local fontsize = 16 -local font, size, flags = aura_env.region.text:GetFont() -if not aura_env.region.text then - local text = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.text = text - print("ok!") -end -aura_env.region:SetWidth(128) -aura_env.region.text:SetFont(font, size, flags) -aura_env.region.text:SetTextColor(1,1,1,1) -aura_env.region.text:SetPoint("CENTER", aura_env.region, "CENTER") -aura_env.region.text:SetJustifyH("LEFT") -aura_env.region.text:SetText("Avatar\nLast Stand\nShield Wall\nDemoralizing Shout") -aura_env.region.text:Show() - -if not aura_env.region.text2 then - local text2 = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.text2 = text2 - print("ok!") -end -aura_env.region.text2:SetFont(font, size, flags) -aura_env.region.text2:SetTextColor(1,1,1,1) -aura_env.region.text2:SetPoint("RIGHT", aura_env.region, "RIGHT", 128, 0) -aura_env.region.text2:SetJustifyH("LEFT") -aura_env.region.text2:SetText("0" .. "\n" .. "0" .. "\n" .. "0" .. "\n" .. "0") +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local se = select(3, ...) + if se == "SPELL_CAST_SUCCESS" then + local dest = select(6, ...) + if dest == UnitName("player") then + local name = select(14, ...) + if name == "Shield Block" or name == "Ignore Pain" then + local c1, c2, c3, c4 = "|cFFFFFFFF", "|cFFFFFFFF", "|cFFFFFFFF", "|cFFFFFFFF" + local Avatar = GetSpellCooldown("Avatar") + local AvatarD = select(2, GetSpellCooldown("Avatar")) + local LastStand = GetSpellCooldown("Last Stand") + local ShieldWall = GetSpellCooldown("Shield Wall") + local DemoralizingShout = GetSpellCooldown("Demoralizing Shout") + local DemoralizingShoutD = select(2, GetSpellCooldown("Demoralizing Shout")) + if Avatar > 0 and AvatarD > 2 then + if name == "Shield Block" then + aura_env.AvatarCD = aura_env.AvatarCD + 3 + else + aura_env.AvatarCD = aura_env.AvatarCD + 4 + end + end + if LastStand > 0 then + if name == "Shield Block" then + aura_env.LastStandCD = aura_env.LastStandCD + 3 + else + aura_env.LastStandCD = aura_env.LastStandCD + 4 + end + end + if ShieldWall > 0 then + if name == "Shield Block" then + aura_env.ShieldWallCD = aura_env.ShieldWallCD + 3 + else + aura_env.ShieldWallCD = aura_env.ShieldWallCD + 4 + end + end + if DemoralizingShout > 0 and DemoralizingShoutD > 2 then + if name == "Shield Block" then + aura_env.DemoralizingShoutCD = aura_env.DemoralizingShoutCD + 3 + else + aura_env.DemoralizingShoutCD = aura_env.DemoralizingShoutCD + 4 + end + end + if AvatarD < 2 then c1 = "|cFF0080FF" end + if LastStand == 0 then c2 = "|cFF0080FF" end + if ShieldWall == 0 then c3 = "|cFF0080FF" end + if DemoralizingShoutD < 2 then c4 = "|cFF0080FF" end + aura_env.region.text2:SetText(c1 .. aura_env.AvatarCD .. "|r\n" .. c2 .. aura_env.LastStandCD .. "|r\n" .. c3 .. aura_env.ShieldWallCD .. "|r\n" .. c4 .. aura_env.DemoralizingShoutCD .. "|r") + elseif name == "Avatar" then + aura_env.AvatarCD = 0 + elseif name == "Last Stand" then + aura_env.LastStandCD = 0 + elseif name == "Shield Wall" then + aura_env.ShieldWallCD = 0 + elseif name == "Demoralizing Shout" then + aura_env.DemoralizingShoutCD = 0 + end + end + end +end + +--INIT +aura_env.AvatarCD, aura_env.LastStandCD, aura_env.ShieldWallCD, aura_env.DemoralizingShoutCD = 0, 0, 0, 0 +local fontsize = 16 +local font, size, flags = aura_env.region.text:GetFont() +if not aura_env.region.text then + local text = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.text = text + print("ok!") +end +aura_env.region:SetWidth(128) +aura_env.region.text:SetFont(font, size, flags) +aura_env.region.text:SetTextColor(1,1,1,1) +aura_env.region.text:SetPoint("CENTER", aura_env.region, "CENTER") +aura_env.region.text:SetJustifyH("LEFT") +aura_env.region.text:SetText("Avatar\nLast Stand\nShield Wall\nDemoralizing Shout") +aura_env.region.text:Show() + +if not aura_env.region.text2 then + local text2 = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.text2 = text2 + print("ok!") +end +aura_env.region.text2:SetFont(font, size, flags) +aura_env.region.text2:SetTextColor(1,1,1,1) +aura_env.region.text2:SetPoint("RIGHT", aura_env.region, "RIGHT", 128, 0) +aura_env.region.text2:SetJustifyH("LEFT") +aura_env.region.text2:SetText("0" .. "\n" .. "0" .. "\n" .. "0" .. "\n" .. "0") aura_env.region.text2:Show() \ No newline at end of file diff --git a/Complete Projects/BFA/CD2.lua b/WeakAuras/Projects/ByExp/BFA/CD2.lua similarity index 97% rename from Complete Projects/BFA/CD2.lua rename to WeakAuras/Projects/ByExp/BFA/CD2.lua index b985af3..debe9e1 100644 --- a/Complete Projects/BFA/CD2.lua +++ b/WeakAuras/Projects/ByExp/BFA/CD2.lua @@ -1,50 +1,50 @@ ---COMBAT_LOG_EVENT_UNFILTERED -function(...) - local se = select(3, ...) - if se == "SPELL_CAST_SUCCESS" then - local caster = select(6, ...) - if caster == UnitName("player") then - local name = select(14, ...) - if name == "Rampage" then - local c1 = "|cFFFFFFFF" - local Recklessness = GetSpellCooldown("Recklessness") - local RecklessnessD = select(2, GetSpellCooldown("Recklessness")) - if Recklessness > 0 and RecklessnessD > 2 then - aura_env.RecklessnessCD = aura_env.RecklessnessCD + 3.75 - end - if RecklessnessD < 2 then c1 = "|cFF0080FF" end - aura_env.region.text2:SetText(c1 .. aura_env.RecklessnessCD .. "|r") - elseif name == "Recklessness" then - aura_env.RecklessnessCD = 0 - end - end - end -end - ---INIT -aura_env.RecklessnessCD = 0 -local font, size, flags = aura_env.region.text:GetFont() -if not aura_env.region.text then - local text = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.text = text - print("ok!") -end -aura_env.region:SetWidth(128) -aura_env.region.text:SetFont(font, size, flags) -aura_env.region.text:SetTextColor(1,1,1,1) -aura_env.region.text:SetPoint("CENTER", aura_env.region, "CENTER") -aura_env.region.text:SetJustifyH("LEFT") -aura_env.region.text:SetText("Recklessness") -aura_env.region.text:Show() - -if not aura_env.region.text2 then - local text2 = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.text2 = text2 - print("ok!") -end -aura_env.region.text2:SetFont(font, size, flags) -aura_env.region.text2:SetTextColor(1,1,1,1) -aura_env.region.text2:SetPoint("RIGHT", aura_env.region, "RIGHT", 128, 0) -aura_env.region.text2:SetJustifyH("LEFT") -aura_env.region.text2:SetText("0") +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local se = select(3, ...) + if se == "SPELL_CAST_SUCCESS" then + local caster = select(6, ...) + if caster == UnitName("player") then + local name = select(14, ...) + if name == "Rampage" then + local c1 = "|cFFFFFFFF" + local Recklessness = GetSpellCooldown("Recklessness") + local RecklessnessD = select(2, GetSpellCooldown("Recklessness")) + if Recklessness > 0 and RecklessnessD > 2 then + aura_env.RecklessnessCD = aura_env.RecklessnessCD + 3.75 + end + if RecklessnessD < 2 then c1 = "|cFF0080FF" end + aura_env.region.text2:SetText(c1 .. aura_env.RecklessnessCD .. "|r") + elseif name == "Recklessness" then + aura_env.RecklessnessCD = 0 + end + end + end +end + +--INIT +aura_env.RecklessnessCD = 0 +local font, size, flags = aura_env.region.text:GetFont() +if not aura_env.region.text then + local text = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.text = text + print("ok!") +end +aura_env.region:SetWidth(128) +aura_env.region.text:SetFont(font, size, flags) +aura_env.region.text:SetTextColor(1,1,1,1) +aura_env.region.text:SetPoint("CENTER", aura_env.region, "CENTER") +aura_env.region.text:SetJustifyH("LEFT") +aura_env.region.text:SetText("Recklessness") +aura_env.region.text:Show() + +if not aura_env.region.text2 then + local text2 = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.text2 = text2 + print("ok!") +end +aura_env.region.text2:SetFont(font, size, flags) +aura_env.region.text2:SetTextColor(1,1,1,1) +aura_env.region.text2:SetPoint("RIGHT", aura_env.region, "RIGHT", 128, 0) +aura_env.region.text2:SetJustifyH("LEFT") +aura_env.region.text2:SetText("0") aura_env.region.text2:Show() \ No newline at end of file diff --git a/Complete Projects/BFA/Chat Macro b/WeakAuras/Projects/ByExp/BFA/Chat Macro similarity index 97% rename from Complete Projects/BFA/Chat Macro rename to WeakAuras/Projects/ByExp/BFA/Chat Macro index bbb68df..5503018 100644 --- a/Complete Projects/BFA/Chat Macro +++ b/WeakAuras/Projects/ByExp/BFA/Chat Macro @@ -1,15 +1,15 @@ -/click ChatFrame1Tab RightButton -DropDownList1Button4 - - -/click ChatFrame3Tab RightButton -/click DropDownList1Button10 -/click ChatConfigChatSettingsLeftCheckBox2Check -/click ChatConfigChatSettingsLeftCheckBox4Check -/click ChatConfigChatSettingsLeftCheckBox12Check -/click ChatConfigChatSettingsLeftCheckBox13Check -/click ChatConfigChatSettingsLeftCheckBox14Check -/click ChatConfigChatSettingsLeftCheckBox15Check -/click ChatConfigChatSettingsLeftCheckBox16Check - +/click ChatFrame1Tab RightButton +DropDownList1Button4 + + +/click ChatFrame3Tab RightButton +/click DropDownList1Button10 +/click ChatConfigChatSettingsLeftCheckBox2Check +/click ChatConfigChatSettingsLeftCheckBox4Check +/click ChatConfigChatSettingsLeftCheckBox12Check +/click ChatConfigChatSettingsLeftCheckBox13Check +/click ChatConfigChatSettingsLeftCheckBox14Check +/click ChatConfigChatSettingsLeftCheckBox15Check +/click ChatConfigChatSettingsLeftCheckBox16Check + /run local c="ChatConfigChatSettingsLeftCheckBox2Check";c:Click();c=c:gsub("%d","4");c:Click();for i=12,14 do c=c:gsub("%d", i); c:Click() end --no work \ No newline at end of file diff --git a/Complete Projects/BFA/Combat.lua b/WeakAuras/Projects/ByExp/BFA/Combat.lua similarity index 97% rename from Complete Projects/BFA/Combat.lua rename to WeakAuras/Projects/ByExp/BFA/Combat.lua index 9b337d5..8351930 100644 --- a/Complete Projects/BFA/Combat.lua +++ b/WeakAuras/Projects/ByExp/BFA/Combat.lua @@ -1,20 +1,20 @@ ---PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED UPDATE -function(e) - if e == "PLAYER_REGEN_DISABLED" then - if not aura_env.seconds then aura_env.seconds = 0 end - if not aura_env.minutes then aura_env.minutes = 0 end - local aura_env = aura_env - aura_env.ticker = C_Timer.NewTicker(1, function() aura_env.seconds = aura_env.seconds + 1; if aura_env.seconds > 59 then aura_env.seconds = 0; aura_env.minutes = aura_env.minutes + 1 end; WeakAuras.ScanEvents("UPDATE") end) - return true - elseif e == "PLAYER_REGEN_ENABLED" then - aura_env.minutes = 0; aura_env.seconds = 0 - if aura_env.ticker then aura_env.ticker:Cancel() end - elseif e == "UPDATE" then return true end -end - ---DISPLAY -function() - if aura_env.seconds and aura_env.minutes then - return aura_env.minutes .. ":" .. aura_env.seconds - end +--PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED UPDATE +function(e) + if e == "PLAYER_REGEN_DISABLED" then + if not aura_env.seconds then aura_env.seconds = 0 end + if not aura_env.minutes then aura_env.minutes = 0 end + local aura_env = aura_env + aura_env.ticker = C_Timer.NewTicker(1, function() aura_env.seconds = aura_env.seconds + 1; if aura_env.seconds > 59 then aura_env.seconds = 0; aura_env.minutes = aura_env.minutes + 1 end; WeakAuras.ScanEvents("UPDATE") end) + return true + elseif e == "PLAYER_REGEN_ENABLED" then + aura_env.minutes = 0; aura_env.seconds = 0 + if aura_env.ticker then aura_env.ticker:Cancel() end + elseif e == "UPDATE" then return true end +end + +--DISPLAY +function() + if aura_env.seconds and aura_env.minutes then + return aura_env.minutes .. ":" .. aura_env.seconds + end end \ No newline at end of file diff --git a/Complete Projects/BFA/Cooldown Gradient.lua b/WeakAuras/Projects/ByExp/BFA/Cooldown Gradient.lua similarity index 95% rename from Complete Projects/BFA/Cooldown Gradient.lua rename to WeakAuras/Projects/ByExp/BFA/Cooldown Gradient.lua index 994188d..aa33b2c 100644 --- a/Complete Projects/BFA/Cooldown Gradient.lua +++ b/WeakAuras/Projects/ByExp/BFA/Cooldown Gradient.lua @@ -1,27 +1,27 @@ ---ANIMATION -function() - if GetSpellCooldown("Memory of Lucid Dreams") then - local start, dur = GetSpellCooldown("Memory of Lucid Dreams") - local remcd = start + dur - GetTime() - if remcd > 0 then - remcd = 1 - aura_env.range(remcd, 0, 120, 1) - return aura_env.grad(remcd) - end - end -end - ---INIT -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 -end -aura_env.range = function(val, min, max, max2) - val = 1 - (((max - val) / (max - min)) * max2) - return val +--ANIMATION +function() + if GetSpellCooldown("Memory of Lucid Dreams") then + local start, dur = GetSpellCooldown("Memory of Lucid Dreams") + local remcd = start + dur - GetTime() + if remcd > 0 then + remcd = 1 - aura_env.range(remcd, 0, 120, 1) + return aura_env.grad(remcd) + end + end +end + +--INIT +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 +end +aura_env.range = function(val, min, max, max2) + val = 1 - (((max - val) / (max - min)) * max2) + return val end \ No newline at end of file diff --git a/Complete Projects/BFA/Deepcoral Bud Glow.lua b/WeakAuras/Projects/ByExp/BFA/Deepcoral Bud Glow.lua similarity index 97% rename from Complete Projects/BFA/Deepcoral Bud Glow.lua rename to WeakAuras/Projects/ByExp/BFA/Deepcoral Bud Glow.lua index d08a5b0..20c91db 100644 --- a/Complete Projects/BFA/Deepcoral Bud Glow.lua +++ b/WeakAuras/Projects/ByExp/BFA/Deepcoral Bud Glow.lua @@ -1,17 +1,17 @@ ---NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED -function(e, unit) - local LCG = LibStub("LibCustomGlow-1.0") - if e == "NAME_PLATE_UNIT_ADDED" then - local name = UnitName(unit) or "" - if name == "Deepcoral Bud" then - local nameplate = C_NamePlate.GetNamePlateForUnit(unit) - LCG.PixelGlow_Start(nameplate, {1,1,1,1}, nil, 0, 8, 2, 0, -4) - end - elseif e == "NAME_PLATE_UNIT_REMOVED" then - local name = UnitName(unit) or "" - if name == "Deepcoral Bud" then - local nameplate = C_NamePlate.GetNamePlateForUnit(unit) - LCG.PixelGlow_Stop(nameplate) - end - end +--NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED +function(e, unit) + local LCG = LibStub("LibCustomGlow-1.0") + if e == "NAME_PLATE_UNIT_ADDED" then + local name = UnitName(unit) or "" + if name == "Deepcoral Bud" then + local nameplate = C_NamePlate.GetNamePlateForUnit(unit) + LCG.PixelGlow_Start(nameplate, {1,1,1,1}, nil, 0, 8, 2, 0, -4) + end + elseif e == "NAME_PLATE_UNIT_REMOVED" then + local name = UnitName(unit) or "" + if name == "Deepcoral Bud" then + local nameplate = C_NamePlate.GetNamePlateForUnit(unit) + LCG.PixelGlow_Stop(nameplate) + end + end end \ No newline at end of file diff --git a/Complete Projects/BFA/Dodge Bog.lua b/WeakAuras/Projects/ByExp/BFA/Dodge Bog.lua similarity index 96% rename from Complete Projects/BFA/Dodge Bog.lua rename to WeakAuras/Projects/ByExp/BFA/Dodge Bog.lua index b1ca3fa..c9256d7 100644 --- a/Complete Projects/BFA/Dodge Bog.lua +++ b/WeakAuras/Projects/ByExp/BFA/Dodge Bog.lua @@ -1,19 +1,19 @@ ---COMBAT_LOG_EVENT_UNFILTERED -function(e, ...) - local se = select(2, ...) - if se == "SWING_MISSED" or se == "SPELL_MISSED" then - local target = select(9, ...) - local misstype = select(12, ...) - if misstype == "DODGE" and target == UnitName("player") then - if not aura_env.dodg then aura_env.dodg = 0 end - aura_env.dodg = aura_env.dodg + 1 - return true - end - end -end - ---DISPLAY -function() - if not aura_env.dodg then aura_env.dodg = 0 end - return aura_env.dodg +--COMBAT_LOG_EVENT_UNFILTERED +function(e, ...) + local se = select(2, ...) + if se == "SWING_MISSED" or se == "SPELL_MISSED" then + local target = select(9, ...) + local misstype = select(12, ...) + if misstype == "DODGE" and target == UnitName("player") then + if not aura_env.dodg then aura_env.dodg = 0 end + aura_env.dodg = aura_env.dodg + 1 + return true + end + end +end + +--DISPLAY +function() + if not aura_env.dodg then aura_env.dodg = 0 end + return aura_env.dodg end \ No newline at end of file diff --git a/Complete Projects/BFA/Drop Track/BAQS/BAQ farm.lua b/WeakAuras/Projects/ByExp/BFA/Drop Track/BAQS/BAQ farm.lua similarity index 96% rename from Complete Projects/BFA/Drop Track/BAQS/BAQ farm.lua rename to WeakAuras/Projects/ByExp/BFA/Drop Track/BAQS/BAQ farm.lua index bc56d03..ec8ccfd 100644 --- a/Complete Projects/BFA/Drop Track/BAQS/BAQ farm.lua +++ b/WeakAuras/Projects/ByExp/BFA/Drop Track/BAQS/BAQ farm.lua @@ -1,40 +1,40 @@ ---CLEU -function(...) - local se = select(3, ...) - if se == "PARTY_KILL" then - local name = select(10, ...) - if aura_env.mobs[name] then - Garbage.baqcrap.count = Garbage.baqcrap.count + aura_env.mobs[name] - return true - end - end -end - ---DISPLAY -function() - return Garbage.baqcrap.count .. "%" -end - ---INIT -if not Garbage.baqcrap then Garbage.baqcrap = {} end -if not Garbage.baqcrap.count then Garbage.baqcrap.count = 0 end -aura_env.mobs = -{ - ["Tidemistress Ethendriss"] = 3, - ["Shirakess Starseeker"] = 1.2, - ["Azsh'ari Siegemistress"] = 0.9, - ["Shirakess Voidtwister"] = 0.7, - ["Shadowbinder Athissa"] = 0.6, - ["Azsh'ari Invoker"] = 0.5, - ["Shirakess Apprentice"] = 0.5, - ["Shirakess Overseer"] = 0.5, - ["Incantatrix Vazina"] = 0.5, - ["Lady Naz'jess"] = 0.5, - ["Herald of the Queen"] = 0.5, - ["Shirakess Apprentice"] = 0.4, - ["Azsh'ari Stormsurger"] = 0.3, - ["Azsh'ari Stormsurger"] = 0.3, - ["Theurgist Nitara"] = 0.2, - ["Azsh'ari Oracle"] = 0.13, - ["Tidebinder Sarjezi"] = 0.09, +--CLEU +function(...) + local se = select(3, ...) + if se == "PARTY_KILL" then + local name = select(10, ...) + if aura_env.mobs[name] then + Garbage.baqcrap.count = Garbage.baqcrap.count + aura_env.mobs[name] + return true + end + end +end + +--DISPLAY +function() + return Garbage.baqcrap.count .. "%" +end + +--INIT +if not Garbage.baqcrap then Garbage.baqcrap = {} end +if not Garbage.baqcrap.count then Garbage.baqcrap.count = 0 end +aura_env.mobs = +{ + ["Tidemistress Ethendriss"] = 3, + ["Shirakess Starseeker"] = 1.2, + ["Azsh'ari Siegemistress"] = 0.9, + ["Shirakess Voidtwister"] = 0.7, + ["Shadowbinder Athissa"] = 0.6, + ["Azsh'ari Invoker"] = 0.5, + ["Shirakess Apprentice"] = 0.5, + ["Shirakess Overseer"] = 0.5, + ["Incantatrix Vazina"] = 0.5, + ["Lady Naz'jess"] = 0.5, + ["Herald of the Queen"] = 0.5, + ["Shirakess Apprentice"] = 0.4, + ["Azsh'ari Stormsurger"] = 0.3, + ["Azsh'ari Stormsurger"] = 0.3, + ["Theurgist Nitara"] = 0.2, + ["Azsh'ari Oracle"] = 0.13, + ["Tidebinder Sarjezi"] = 0.09, } \ No newline at end of file diff --git a/Complete Projects/BFA/Drop Track/BAQS/BAQ nameplate.lua b/WeakAuras/Projects/ByExp/BFA/Drop Track/BAQS/BAQ nameplate.lua similarity index 96% rename from Complete Projects/BFA/Drop Track/BAQS/BAQ nameplate.lua rename to WeakAuras/Projects/ByExp/BFA/Drop Track/BAQS/BAQ nameplate.lua index 87e467c..8056c59 100644 --- a/Complete Projects/BFA/Drop Track/BAQS/BAQ nameplate.lua +++ b/WeakAuras/Projects/ByExp/BFA/Drop Track/BAQS/BAQ nameplate.lua @@ -1,40 +1,40 @@ ---NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED -function(e, unit) - --handle death exception - local LCG = LibStub("LibCustomGlow-1.0") - if e == "NAME_PLATE_UNIT_ADDED" then - local name = UnitName(unit) or "" - if aura_env.mobs[name] then - local nameplate = C_NamePlate.GetNamePlateForUnit(unit) - LCG.PixelGlow_Start(nameplate, {1,1,1,1}, nil, 0, 8, 2, 0, -4) - end - elseif e == "NAME_PLATE_UNIT_REMOVED" then - local name = UnitName(unit) or "" - if aura_env.mobs[name] then - local nameplate = C_NamePlate.GetNamePlateForUnit(unit) - LCG.PixelGlow_Stop(nameplate) - end - end -end - ---INIT -aura_env.mobs = -{ - ["Tidemistress Ethendriss"] = 3, - ["Shirakess Starseeker"] = 1.2, - ["Azsh'ari Siegemistress"] = 0.9, - ["Shirakess Voidtwister"] = 0.7, - ["Shadowbinder Athissa"] = 0.6, - ["Azsh'ari Invoker"] = 0.5, - ["Shirakess Apprentice"] = 0.5, - ["Shirakess Overseer"] = 0.5, - ["Incantatrix Vazina"] = 0.5, - ["Lady Naz'jess"] = 0.5, - ["Herald of the Queen"] = 0.5, - ["Shirakess Apprentice"] = 0.4, - ["Azsh'ari Stormsurger"] = 0.3, - ["Azsh'ari Stormsurger"] = 0.3, - ["Theurgist Nitara"] = 0.2, - ["Azsh'ari Oracle"] = 0.13, - ["Tidebinder Sarjezi"] = 0.09, +--NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED +function(e, unit) + --handle death exception + local LCG = LibStub("LibCustomGlow-1.0") + if e == "NAME_PLATE_UNIT_ADDED" then + local name = UnitName(unit) or "" + if aura_env.mobs[name] then + local nameplate = C_NamePlate.GetNamePlateForUnit(unit) + LCG.PixelGlow_Start(nameplate, {1,1,1,1}, nil, 0, 8, 2, 0, -4) + end + elseif e == "NAME_PLATE_UNIT_REMOVED" then + local name = UnitName(unit) or "" + if aura_env.mobs[name] then + local nameplate = C_NamePlate.GetNamePlateForUnit(unit) + LCG.PixelGlow_Stop(nameplate) + end + end +end + +--INIT +aura_env.mobs = +{ + ["Tidemistress Ethendriss"] = 3, + ["Shirakess Starseeker"] = 1.2, + ["Azsh'ari Siegemistress"] = 0.9, + ["Shirakess Voidtwister"] = 0.7, + ["Shadowbinder Athissa"] = 0.6, + ["Azsh'ari Invoker"] = 0.5, + ["Shirakess Apprentice"] = 0.5, + ["Shirakess Overseer"] = 0.5, + ["Incantatrix Vazina"] = 0.5, + ["Lady Naz'jess"] = 0.5, + ["Herald of the Queen"] = 0.5, + ["Shirakess Apprentice"] = 0.4, + ["Azsh'ari Stormsurger"] = 0.3, + ["Azsh'ari Stormsurger"] = 0.3, + ["Theurgist Nitara"] = 0.2, + ["Azsh'ari Oracle"] = 0.13, + ["Tidebinder Sarjezi"] = 0.09, } \ No newline at end of file diff --git a/Complete Projects/BFA/Drop Track/Follower Garbage/Garbage Nameplate.lua b/WeakAuras/Projects/ByExp/BFA/Drop Track/Follower Garbage/Garbage Nameplate.lua similarity index 96% rename from Complete Projects/BFA/Drop Track/Follower Garbage/Garbage Nameplate.lua rename to WeakAuras/Projects/ByExp/BFA/Drop Track/Follower Garbage/Garbage Nameplate.lua index e990446..8019d8b 100644 --- a/Complete Projects/BFA/Drop Track/Follower Garbage/Garbage Nameplate.lua +++ b/WeakAuras/Projects/ByExp/BFA/Drop Track/Follower Garbage/Garbage Nameplate.lua @@ -1,51 +1,51 @@ ---NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED -function(e, unit) - --handle death exception - local LCG = LibStub("LibCustomGlow-1.0") - if e == "NAME_PLATE_UNIT_ADDED" then - local name = UnitName(unit) or "" - if aura_env.mobs[name] then - local nameplate = C_NamePlate.GetNamePlateForUnit(unit) - LCG.PixelGlow_Start(nameplate, {0,1,0,1}, nil, 0, 8, 2, 0, -4) - end - elseif e == "NAME_PLATE_UNIT_REMOVED" then - local name = UnitName(unit) or "" - if aura_env.mobs[name] then - local nameplate = C_NamePlate.GetNamePlateForUnit(unit) - LCG.PixelGlow_Stop(nameplate) - end - end -end - ---INIT -aura_env.mobs = -{ - ["Barnacled Reefwalker"] = 1.6, - ["Gloomchasm Reefwalker"] = 1.4, - ["Whitewave Reefwalker"] = 1.2, - ["Staghorn Reefwalker"] = 1.2, - ["Deep Reefwalker"] = 1.2, - ["Sunbleached Reefwalker"] = 1, - ["Kelpwillow"] = 1, - ["Anemonar"] = 0.9, - ["Seashelf Reefwalker"] = 0.8, - ["Murkbloom Reefwalker"] = 0.7, - ["Oronu"] = 0.6, - ["Urduu"] = 0.6, - ["Emorneth"] = 0.5, - ["Sandclaw Stoneshell"] = 6, - ["Chitterspine Ambusher"] = 0.8, - ["Chitterspine Crab"] = 0.5, - ["Chitterspine Lurker"] = 0.5, - ["Iridescent Glimmershell"] = 0.5, - ["Needlespine"] = 0.5, - ["Chitterspine Encroacher"] = 0.4, - ["Glimmershell Crab"] = 0.4, - ["Sandclaw Crab"] = 0.4, - ["Chitterspine Ambusher"] = 0.4, - ["Crackleclaw Crab"] = 0.3, - ["Glimmershell Hulk"] = 0.3, - ["Chitterspine Crab"] = 0.3, - ["Braxicus"] = 0.3, - ["Chitterspine Guillotine"] = 0.16, +--NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED +function(e, unit) + --handle death exception + local LCG = LibStub("LibCustomGlow-1.0") + if e == "NAME_PLATE_UNIT_ADDED" then + local name = UnitName(unit) or "" + if aura_env.mobs[name] then + local nameplate = C_NamePlate.GetNamePlateForUnit(unit) + LCG.PixelGlow_Start(nameplate, {0,1,0,1}, nil, 0, 8, 2, 0, -4) + end + elseif e == "NAME_PLATE_UNIT_REMOVED" then + local name = UnitName(unit) or "" + if aura_env.mobs[name] then + local nameplate = C_NamePlate.GetNamePlateForUnit(unit) + LCG.PixelGlow_Stop(nameplate) + end + end +end + +--INIT +aura_env.mobs = +{ + ["Barnacled Reefwalker"] = 1.6, + ["Gloomchasm Reefwalker"] = 1.4, + ["Whitewave Reefwalker"] = 1.2, + ["Staghorn Reefwalker"] = 1.2, + ["Deep Reefwalker"] = 1.2, + ["Sunbleached Reefwalker"] = 1, + ["Kelpwillow"] = 1, + ["Anemonar"] = 0.9, + ["Seashelf Reefwalker"] = 0.8, + ["Murkbloom Reefwalker"] = 0.7, + ["Oronu"] = 0.6, + ["Urduu"] = 0.6, + ["Emorneth"] = 0.5, + ["Sandclaw Stoneshell"] = 6, + ["Chitterspine Ambusher"] = 0.8, + ["Chitterspine Crab"] = 0.5, + ["Chitterspine Lurker"] = 0.5, + ["Iridescent Glimmershell"] = 0.5, + ["Needlespine"] = 0.5, + ["Chitterspine Encroacher"] = 0.4, + ["Glimmershell Crab"] = 0.4, + ["Sandclaw Crab"] = 0.4, + ["Chitterspine Ambusher"] = 0.4, + ["Crackleclaw Crab"] = 0.3, + ["Glimmershell Hulk"] = 0.3, + ["Chitterspine Crab"] = 0.3, + ["Braxicus"] = 0.3, + ["Chitterspine Guillotine"] = 0.16, } \ No newline at end of file diff --git a/Complete Projects/BFA/Drop Track/Follower Garbage/Garbage.lua b/WeakAuras/Projects/ByExp/BFA/Drop Track/Follower Garbage/Garbage.lua similarity index 96% rename from Complete Projects/BFA/Drop Track/Follower Garbage/Garbage.lua rename to WeakAuras/Projects/ByExp/BFA/Drop Track/Follower Garbage/Garbage.lua index 78d4b1b..d78c46f 100644 --- a/Complete Projects/BFA/Drop Track/Follower Garbage/Garbage.lua +++ b/WeakAuras/Projects/ByExp/BFA/Drop Track/Follower Garbage/Garbage.lua @@ -1,51 +1,51 @@ ---CLEU -function(...) - local se = select(3, ...) - if se == "PARTY_KILL" then - local name = select(10, ...) - if aura_env.mobs[name] then - Garbage.baqcrap.count3 = Garbage.baqcrap.count3 + aura_env.mobs[name] - return true - end - end -end - ---DISPLAY -function() - return Garbage.baqcrap.count3 .. "%" -end - ---INIT -if not Garbage.baqcrap then Garbage.baqcrap = {} end -if not Garbage.baqcrap.count3 then Garbage.baqcrap.count3 = 0 end -aura_env.mobs = -{ - ["Barnacled Reefwalker"] = 1.6, - ["Gloomchasm Reefwalker"] = 1.4, - ["Whitewave Reefwalker"] = 1.2, - ["Staghorn Reefwalker"] = 1.2, - ["Deep Reefwalker"] = 1.2, - ["Sunbleached Reefwalker"] = 1, - ["Kelpwillow"] = 1, - ["Anemonar"] = 0.9, - ["Seashelf Reefwalker"] = 0.8, - ["Murkbloom Reefwalker"] = 0.7, - ["Oronu"] = 0.6, - ["Urduu"] = 0.6, - ["Emorneth"] = 0.5, - ["Sandclaw Stoneshell"] = 6, - ["Chitterspine Ambusher"] = 0.8, - ["Chitterspine Crab"] = 0.5, - ["Chitterspine Lurker"] = 0.5, - ["Iridescent Glimmershell"] = 0.5, - ["Needlespine"] = 0.5, - ["Chitterspine Encroacher"] = 0.4, - ["Glimmershell Crab"] = 0.4, - ["Sandclaw Crab"] = 0.4, - ["Chitterspine Ambusher"] = 0.4, - ["Crackleclaw Crab"] = 0.3, - ["Glimmershell Hulk"] = 0.3, - ["Chitterspine Crab"] = 0.3, - ["Braxicus"] = 0.3, - ["Chitterspine Guillotine"] = 0.16, +--CLEU +function(...) + local se = select(3, ...) + if se == "PARTY_KILL" then + local name = select(10, ...) + if aura_env.mobs[name] then + Garbage.baqcrap.count3 = Garbage.baqcrap.count3 + aura_env.mobs[name] + return true + end + end +end + +--DISPLAY +function() + return Garbage.baqcrap.count3 .. "%" +end + +--INIT +if not Garbage.baqcrap then Garbage.baqcrap = {} end +if not Garbage.baqcrap.count3 then Garbage.baqcrap.count3 = 0 end +aura_env.mobs = +{ + ["Barnacled Reefwalker"] = 1.6, + ["Gloomchasm Reefwalker"] = 1.4, + ["Whitewave Reefwalker"] = 1.2, + ["Staghorn Reefwalker"] = 1.2, + ["Deep Reefwalker"] = 1.2, + ["Sunbleached Reefwalker"] = 1, + ["Kelpwillow"] = 1, + ["Anemonar"] = 0.9, + ["Seashelf Reefwalker"] = 0.8, + ["Murkbloom Reefwalker"] = 0.7, + ["Oronu"] = 0.6, + ["Urduu"] = 0.6, + ["Emorneth"] = 0.5, + ["Sandclaw Stoneshell"] = 6, + ["Chitterspine Ambusher"] = 0.8, + ["Chitterspine Crab"] = 0.5, + ["Chitterspine Lurker"] = 0.5, + ["Iridescent Glimmershell"] = 0.5, + ["Needlespine"] = 0.5, + ["Chitterspine Encroacher"] = 0.4, + ["Glimmershell Crab"] = 0.4, + ["Sandclaw Crab"] = 0.4, + ["Chitterspine Ambusher"] = 0.4, + ["Crackleclaw Crab"] = 0.3, + ["Glimmershell Hulk"] = 0.3, + ["Chitterspine Crab"] = 0.3, + ["Braxicus"] = 0.3, + ["Chitterspine Guillotine"] = 0.16, } \ No newline at end of file diff --git a/Complete Projects/BFA/Drop Track/STONES/Stone nameplates.lua b/WeakAuras/Projects/ByExp/BFA/Drop Track/STONES/Stone nameplates.lua similarity index 96% rename from Complete Projects/BFA/Drop Track/STONES/Stone nameplates.lua rename to WeakAuras/Projects/ByExp/BFA/Drop Track/STONES/Stone nameplates.lua index 36c48a9..70431fc 100644 --- a/Complete Projects/BFA/Drop Track/STONES/Stone nameplates.lua +++ b/WeakAuras/Projects/ByExp/BFA/Drop Track/STONES/Stone nameplates.lua @@ -1,80 +1,80 @@ ---NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED -function(e, unit) - --handle death exception - local LCG = LibStub("LibCustomGlow-1.0") - if e == "NAME_PLATE_UNIT_ADDED" then - local name = UnitName(unit) or "" - if aura_env.mobs[name] then - local nameplate = C_NamePlate.GetNamePlateForUnit(unit) - LCG.PixelGlow_Start(nameplate, {0,0,1,1}, nil, 0, 8, 2, 0, -4) - end - elseif e == "NAME_PLATE_UNIT_REMOVED" then - local name = UnitName(unit) or "" - if aura_env.mobs[name] then - local nameplate = C_NamePlate.GetNamePlateForUnit(unit) - LCG.PixelGlow_Stop(nameplate) - end - end -end - ---INIT -aura_env.mobs = -{ - ["Herald of Salgos"] = 33, - ["Spawn of Salgos"] = 33, - ["Osgen"] = 30, - ["Ungormath"] = 30, - ["Burning Amalgamation"] = 29, - ["Moghiea"] = 29, - ["Salgos the Eternal"] = 28, - ["Zomera"] = 27, - ["Arcane Amalgamation"] = 25, - ["Xue"] = 25, - ["Aldrantiss"] = 22, - ["Watery Amalgamation"] = 22, - ["Dusty Amalgamation"] = 22, - ["Alzana"] = 21, - ["Vyz'olgo the Mind-Taker"] = 20, - ["Qalina"] = 19, - ["Omus"] = 19, - ["Voice in the Deeps"] = 13, - ["King Gakula"] = 11, - ["Chasm-Haunter"] = 11, - ["Scale Matriarch Vynara"] = 11, - ["Anemonar"] = 10, - ["Sandcastle"] = 9, - ["Shiz'narasz the Consumer"] = 9, - ["Toxigore the Alpha"] = 9, - ["Needlespine"] = 9, - ["Siltstalker the Packmother"] = 9, - ["Urduu"] = 9, - ["Tidemistress Leth'sindra"] = 9, - ["Banescale the Packfather"] = 9, - ["Sandclaw Stoneshell"] = 8, - ["Garnetscale"] = 8, - ["Allseer Oma'kil"] = 8, - ["Vor'koth"] = 8, - ["Elder Unu"] = 8, - ["Caverndark Terror"] = 8, - ["Blindlight"] = 8, - ["Shassera"] = 8, - ["Soundless"] = 8, - ["Scale Matriarch Gratinax"] = 8, - ["Tidelord Aquatus"] = 8, - ["Tidelord Dispersius"] = 8, - ["Carnivorous Lasher"] = 7, - ["Mirecrawler"] = 7, - ["Daggertooth Terror"] = 7, - ["Amethyst Spireshell"] = 7, - ["Prince Typhonus"] = 7, - ["Alga the Eyeless"] = 7, - ["Prince Vortran"] = 7, - ["Kelpwillow"] = 7, - ["Deepglider"] = 7, - ["Scale Matriarch Zodia"] = 7, - ["Rockweed Shambler"] = 7, - ["Avarius"] = 6, - ["Iridescent Glimmershell"] = 6, - ["Oronu"] = 6, - ["Elderspawn Nalaada"] = 5, +--NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED +function(e, unit) + --handle death exception + local LCG = LibStub("LibCustomGlow-1.0") + if e == "NAME_PLATE_UNIT_ADDED" then + local name = UnitName(unit) or "" + if aura_env.mobs[name] then + local nameplate = C_NamePlate.GetNamePlateForUnit(unit) + LCG.PixelGlow_Start(nameplate, {0,0,1,1}, nil, 0, 8, 2, 0, -4) + end + elseif e == "NAME_PLATE_UNIT_REMOVED" then + local name = UnitName(unit) or "" + if aura_env.mobs[name] then + local nameplate = C_NamePlate.GetNamePlateForUnit(unit) + LCG.PixelGlow_Stop(nameplate) + end + end +end + +--INIT +aura_env.mobs = +{ + ["Herald of Salgos"] = 33, + ["Spawn of Salgos"] = 33, + ["Osgen"] = 30, + ["Ungormath"] = 30, + ["Burning Amalgamation"] = 29, + ["Moghiea"] = 29, + ["Salgos the Eternal"] = 28, + ["Zomera"] = 27, + ["Arcane Amalgamation"] = 25, + ["Xue"] = 25, + ["Aldrantiss"] = 22, + ["Watery Amalgamation"] = 22, + ["Dusty Amalgamation"] = 22, + ["Alzana"] = 21, + ["Vyz'olgo the Mind-Taker"] = 20, + ["Qalina"] = 19, + ["Omus"] = 19, + ["Voice in the Deeps"] = 13, + ["King Gakula"] = 11, + ["Chasm-Haunter"] = 11, + ["Scale Matriarch Vynara"] = 11, + ["Anemonar"] = 10, + ["Sandcastle"] = 9, + ["Shiz'narasz the Consumer"] = 9, + ["Toxigore the Alpha"] = 9, + ["Needlespine"] = 9, + ["Siltstalker the Packmother"] = 9, + ["Urduu"] = 9, + ["Tidemistress Leth'sindra"] = 9, + ["Banescale the Packfather"] = 9, + ["Sandclaw Stoneshell"] = 8, + ["Garnetscale"] = 8, + ["Allseer Oma'kil"] = 8, + ["Vor'koth"] = 8, + ["Elder Unu"] = 8, + ["Caverndark Terror"] = 8, + ["Blindlight"] = 8, + ["Shassera"] = 8, + ["Soundless"] = 8, + ["Scale Matriarch Gratinax"] = 8, + ["Tidelord Aquatus"] = 8, + ["Tidelord Dispersius"] = 8, + ["Carnivorous Lasher"] = 7, + ["Mirecrawler"] = 7, + ["Daggertooth Terror"] = 7, + ["Amethyst Spireshell"] = 7, + ["Prince Typhonus"] = 7, + ["Alga the Eyeless"] = 7, + ["Prince Vortran"] = 7, + ["Kelpwillow"] = 7, + ["Deepglider"] = 7, + ["Scale Matriarch Zodia"] = 7, + ["Rockweed Shambler"] = 7, + ["Avarius"] = 6, + ["Iridescent Glimmershell"] = 6, + ["Oronu"] = 6, + ["Elderspawn Nalaada"] = 5, } \ No newline at end of file diff --git a/Complete Projects/BFA/Drop Track/STONES/Stone.lua b/WeakAuras/Projects/ByExp/BFA/Drop Track/STONES/Stone.lua similarity index 96% rename from Complete Projects/BFA/Drop Track/STONES/Stone.lua rename to WeakAuras/Projects/ByExp/BFA/Drop Track/STONES/Stone.lua index a491bbd..4d5bf9d 100644 --- a/Complete Projects/BFA/Drop Track/STONES/Stone.lua +++ b/WeakAuras/Projects/ByExp/BFA/Drop Track/STONES/Stone.lua @@ -1,80 +1,80 @@ ---CLEU -function(...) - local se = select(3, ...) - if se == "PARTY_KILL" then - local name = select(10, ...) - if aura_env.mobs[name] then - Garbage.baqcrap.count2 = Garbage.baqcrap.count2 + aura_env.mobs[name] - return true - end - end -end - ---DISPLAY -function() - return Garbage.baqcrap.count2 .. "%" -end - ---INIT -if not Garbage.baqcrap then Garbage.baqcrap = {} end -if not Garbage.baqcrap.count2 then Garbage.baqcrap.count2 = 0 end -aura_env.mobs = -{ - ["Herald of Salgos"] = 33, - ["Spawn of Salgos"] = 33, - ["Osgen"] = 30, - ["Ungormath"] = 30, - ["Burning Amalgamation"] = 29, - ["Moghiea"] = 29, - ["Salgos the Eternal"] = 28, - ["Zomera"] = 27, - ["Arcane Amalgamation"] = 25, - ["Xue"] = 25, - ["Aldrantiss"] = 22, - ["Watery Amalgamation"] = 22, - ["Dusty Amalgamation"] = 22, - ["Alzana"] = 21, - ["Vyz'olgo the Mind-Taker"] = 20, - ["Qalina"] = 19, - ["Omus"] = 19, - ["Voice in the Deeps"] = 13, - ["King Gakula"] = 11, - ["Chasm-Haunter"] = 11, - ["Scale Matriarch Vynara"] = 11, - ["Anemonar"] = 10, - ["Sandcastle"] = 9, - ["Shiz'narasz the Consumer"] = 9, - ["Toxigore the Alpha"] = 9, - ["Needlespine"] = 9, - ["Siltstalker the Packmother"] = 9, - ["Urduu"] = 9, - ["Tidemistress Leth'sindra"] = 9, - ["Banescale the Packfather"] = 9, - ["Sandclaw Stoneshell"] = 8, - ["Garnetscale"] = 8, - ["Allseer Oma'kil"] = 8, - ["Vor'koth"] = 8, - ["Elder Unu"] = 8, - ["Caverndark Terror"] = 8, - ["Blindlight"] = 8, - ["Shassera"] = 8, - ["Soundless"] = 8, - ["Scale Matriarch Gratinax"] = 8, - ["Tidelord Aquatus"] = 8, - ["Tidelord Dispersius"] = 8, - ["Carnivorous Lasher"] = 7, - ["Mirecrawler"] = 7, - ["Daggertooth Terror"] = 7, - ["Amethyst Spireshell"] = 7, - ["Prince Typhonus"] = 7, - ["Alga the Eyeless"] = 7, - ["Prince Vortran"] = 7, - ["Kelpwillow"] = 7, - ["Deepglider"] = 7, - ["Scale Matriarch Zodia"] = 7, - ["Rockweed Shambler"] = 7, - ["Avarius"] = 6, - ["Iridescent Glimmershell"] = 6, - ["Oronu"] = 6, - ["Elderspawn Nalaada"] = 5, +--CLEU +function(...) + local se = select(3, ...) + if se == "PARTY_KILL" then + local name = select(10, ...) + if aura_env.mobs[name] then + Garbage.baqcrap.count2 = Garbage.baqcrap.count2 + aura_env.mobs[name] + return true + end + end +end + +--DISPLAY +function() + return Garbage.baqcrap.count2 .. "%" +end + +--INIT +if not Garbage.baqcrap then Garbage.baqcrap = {} end +if not Garbage.baqcrap.count2 then Garbage.baqcrap.count2 = 0 end +aura_env.mobs = +{ + ["Herald of Salgos"] = 33, + ["Spawn of Salgos"] = 33, + ["Osgen"] = 30, + ["Ungormath"] = 30, + ["Burning Amalgamation"] = 29, + ["Moghiea"] = 29, + ["Salgos the Eternal"] = 28, + ["Zomera"] = 27, + ["Arcane Amalgamation"] = 25, + ["Xue"] = 25, + ["Aldrantiss"] = 22, + ["Watery Amalgamation"] = 22, + ["Dusty Amalgamation"] = 22, + ["Alzana"] = 21, + ["Vyz'olgo the Mind-Taker"] = 20, + ["Qalina"] = 19, + ["Omus"] = 19, + ["Voice in the Deeps"] = 13, + ["King Gakula"] = 11, + ["Chasm-Haunter"] = 11, + ["Scale Matriarch Vynara"] = 11, + ["Anemonar"] = 10, + ["Sandcastle"] = 9, + ["Shiz'narasz the Consumer"] = 9, + ["Toxigore the Alpha"] = 9, + ["Needlespine"] = 9, + ["Siltstalker the Packmother"] = 9, + ["Urduu"] = 9, + ["Tidemistress Leth'sindra"] = 9, + ["Banescale the Packfather"] = 9, + ["Sandclaw Stoneshell"] = 8, + ["Garnetscale"] = 8, + ["Allseer Oma'kil"] = 8, + ["Vor'koth"] = 8, + ["Elder Unu"] = 8, + ["Caverndark Terror"] = 8, + ["Blindlight"] = 8, + ["Shassera"] = 8, + ["Soundless"] = 8, + ["Scale Matriarch Gratinax"] = 8, + ["Tidelord Aquatus"] = 8, + ["Tidelord Dispersius"] = 8, + ["Carnivorous Lasher"] = 7, + ["Mirecrawler"] = 7, + ["Daggertooth Terror"] = 7, + ["Amethyst Spireshell"] = 7, + ["Prince Typhonus"] = 7, + ["Alga the Eyeless"] = 7, + ["Prince Vortran"] = 7, + ["Kelpwillow"] = 7, + ["Deepglider"] = 7, + ["Scale Matriarch Zodia"] = 7, + ["Rockweed Shambler"] = 7, + ["Avarius"] = 6, + ["Iridescent Glimmershell"] = 6, + ["Oronu"] = 6, + ["Elderspawn Nalaada"] = 5, } \ No newline at end of file diff --git a/Complete Projects/BFA/Global Debug.lua b/WeakAuras/Projects/ByExp/BFA/Global Debug.lua similarity index 97% rename from Complete Projects/BFA/Global Debug.lua rename to WeakAuras/Projects/ByExp/BFA/Global Debug.lua index 036a72f..d21813a 100644 --- a/Complete Projects/BFA/Global Debug.lua +++ b/WeakAuras/Projects/ByExp/BFA/Global Debug.lua @@ -1,33 +1,33 @@ ---DEBUG_UPDATE DEBUG_ADD -function(e, m, t, c) - if e == "DEBUG_UPDATE" then - return true - elseif e == "DEBUG_ADD" and m and t then - if c then aura_env.DebugTextArray[#aura_env.DebugTextArray + 1] = {m, t, c} else aura_env.DebugTextArray[#aura_env.DebugTextArray + 1] = {m, t} end - WeakAuras.ScanEvents("DEBUG_UPDATE") - end -end - ---DISPLAY -function() - if aura_env.DebugTextArray then - aura_env.output = "" - if #aura_env.DebugTextArray > 0 then - for k,v in ipairs(aura_env.DebugTextArray) do - if v[3] then aura_env.output = aura_env.output .. "|c" .. v[3] end - aura_env.output = aura_env.output .. v[1] - if v[3] then aura_env.output = aura_env.output .. "|r" end - aura_env.output = aura_env.output .. "\n" - if v[2] > 0 then - local aura_env = aura_env - C_Timer.After(v[2], function() table.remove(aura_env.DebugTextArray, k); WeakAuras.ScanEvents("DEBUG_UPDATE") end) - end - end - end - return aura_env.output - end -end - ---INIT ---DevTools_Dump nice +--DEBUG_UPDATE DEBUG_ADD +function(e, m, t, c) + if e == "DEBUG_UPDATE" then + return true + elseif e == "DEBUG_ADD" and m and t then + if c then aura_env.DebugTextArray[#aura_env.DebugTextArray + 1] = {m, t, c} else aura_env.DebugTextArray[#aura_env.DebugTextArray + 1] = {m, t} end + WeakAuras.ScanEvents("DEBUG_UPDATE") + end +end + +--DISPLAY +function() + if aura_env.DebugTextArray then + aura_env.output = "" + if #aura_env.DebugTextArray > 0 then + for k,v in ipairs(aura_env.DebugTextArray) do + if v[3] then aura_env.output = aura_env.output .. "|c" .. v[3] end + aura_env.output = aura_env.output .. v[1] + if v[3] then aura_env.output = aura_env.output .. "|r" end + aura_env.output = aura_env.output .. "\n" + if v[2] > 0 then + local aura_env = aura_env + C_Timer.After(v[2], function() table.remove(aura_env.DebugTextArray, k); WeakAuras.ScanEvents("DEBUG_UPDATE") end) + end + end + end + return aura_env.output + end +end + +--INIT +--DevTools_Dump nice if not aura_env.DebugTextArray then aura_env.DebugTextArray = {} end \ No newline at end of file diff --git a/Complete Projects/BFA/Guild Spam.lua b/WeakAuras/Projects/ByExp/BFA/Guild Spam.lua similarity index 98% rename from Complete Projects/BFA/Guild Spam.lua rename to WeakAuras/Projects/ByExp/BFA/Guild Spam.lua index 8c39268..21caa1f 100644 --- a/Complete Projects/BFA/Guild Spam.lua +++ b/WeakAuras/Projects/ByExp/BFA/Guild Spam.lua @@ -1,25 +1,25 @@ ---[05:42 PM] [G] [Whispa]: is a newly created guild, we are looking for fun and social members. we are trying to get members to come into discord and we accept any levels. we are planning on making a raid team and hoping to get multiple teams for mythic dungeons ---/run WeakAuras.ScanEvents("BULLSHIT_BEGIN") ---BULLSHIT_BEGIN BULLSHIT_STOP PLAYER_ENTERING_WORLD -function(e) - if e == "BULLSHIT_BEGIN" then - if IsInInstance() == false then - aura_env.ticker = C_Timer.NewTicker(600, function() SendChatMessage(" is a newly created guild, we are looking for fun and social members. we are trying to get members to come into discord and we accept any levels. we are planning on making a raid team and hoping to get multiple teams for mythic dungeons", "CHANNEL", _, "1") end) - --aura_env.ticker = C_Timer.NewTicker(0.60, function() print(" is a newly created guild, we are looking for fun and social members. we are trying to get members to come into discord and we accept any levels. we are planning on making a raid team and hoping to get multiple teams for mythic dungeons") end) - else - if aura_env.ticker then - aura_env.ticker:Cancel() - end - end - elseif e == "BULLSHIT_STOP" then - if aura_env.ticker then - aura_env.ticker:Cancel() - end - elseif e == "PLAYER_ENTERING_WORLD" then - if IsInInstance() == true then - if aura_env.ticker then - aura_env.ticker:Cancel() - end - end - end +--[05:42 PM] [G] [Whispa]: is a newly created guild, we are looking for fun and social members. we are trying to get members to come into discord and we accept any levels. we are planning on making a raid team and hoping to get multiple teams for mythic dungeons +--/run WeakAuras.ScanEvents("BULLSHIT_BEGIN") +--BULLSHIT_BEGIN BULLSHIT_STOP PLAYER_ENTERING_WORLD +function(e) + if e == "BULLSHIT_BEGIN" then + if IsInInstance() == false then + aura_env.ticker = C_Timer.NewTicker(600, function() SendChatMessage(" is a newly created guild, we are looking for fun and social members. we are trying to get members to come into discord and we accept any levels. we are planning on making a raid team and hoping to get multiple teams for mythic dungeons", "CHANNEL", _, "1") end) + --aura_env.ticker = C_Timer.NewTicker(0.60, function() print(" is a newly created guild, we are looking for fun and social members. we are trying to get members to come into discord and we accept any levels. we are planning on making a raid team and hoping to get multiple teams for mythic dungeons") end) + else + if aura_env.ticker then + aura_env.ticker:Cancel() + end + end + elseif e == "BULLSHIT_STOP" then + if aura_env.ticker then + aura_env.ticker:Cancel() + end + elseif e == "PLAYER_ENTERING_WORLD" then + if IsInInstance() == true then + if aura_env.ticker then + aura_env.ticker:Cancel() + end + end + end end \ No newline at end of file diff --git a/Complete Projects/BFA/Icon Database Update.lua b/WeakAuras/Projects/ByExp/BFA/Icon Database Update.lua similarity index 98% rename from Complete Projects/BFA/Icon Database Update.lua rename to WeakAuras/Projects/ByExp/BFA/Icon Database Update.lua index ae63d44..54edfdf 100644 --- a/Complete Projects/BFA/Icon Database Update.lua +++ b/WeakAuras/Projects/ByExp/BFA/Icon Database Update.lua @@ -1,38 +1,38 @@ ---MERCHANT_SHOW PLAYER_ALIVE CHAT_MSG_LOOT -function(e, msg) - if e == "PLAYER_ALIVE" then - for c = 0, 5 do - for s = 1, GetContainerNumSlots(c) do - if GetContainerItemLink(c, s) then - local name = GetItemInfo(GetContainerItemLink(c, s)) - local icon = select(10, GetItemInfo(GetContainerItemLink(c, s))) - local link = GetContainerItemLink(c, s) - local id = link:match("item:(%d+):") - if not WeakAurasSaved.CustomTrash.IconDatabase[name] and name and icon then WeakAurasSaved.CustomTrash.IconDatabase[name] = icon; print("Adding|cff78cb00 ", name, " |rto the icon database") end - if not WeakAurasSaved.CustomTrash.IDDatabase[name] and name and id then WeakAurasSaved.CustomTrash.IDDatabase[name] = id; print("Adding|cff3366ff ", name, " |rto the id database") end - end - end - end - elseif e == "MERCHANT_SHOW" then - local i = 1 - C_Timer.After(0.2, function() - while GetMerchantItemInfo(i) do - local name, icon = GetMerchantItemInfo(i) - local link = GetMerchantItemLink(i) - local id = link:match("item:(%d+):") - if not WeakAurasSaved.CustomTrash.IconDatabase[name] and name and icon then WeakAurasSaved.CustomTrash.IconDatabase[name] = icon; print("Adding|cff78cb00 ", name, " |rto the icon database") end - if not WeakAurasSaved.CustomTrash.IDDatabase[name] and name and id then WeakAurasSaved.CustomTrash.IDDatabase[name] = id; print("Adding|cff3366ff ", name, " |rto the id database") end - i = i + 1 - end - end) - elseif e == "CHAT_MSG_LOOT" then - local itemID, icon, name - for itemLink in msg:gmatch("|%x+|Hitem:.-|h.-|h|r") do - itemID = itemLink:match("item:(%d+):") - icon = select(10, GetItemInfo(itemLink)) - name = GetItemInfo(itemLink) - end - if not WeakAurasSaved.CustomTrash.IconDatabase[name] and name and icon then WeakAurasSaved.CustomTrash.IconDatabase[name] = icon; print("Adding|cff78cb00 ", name, " |rto the icon database") end - if not WeakAurasSaved.CustomTrash.IDDatabase[name] and name and id then WeakAurasSaved.CustomTrash.IDDatabase[name] = id; print("Adding|cff3366ff ", name, " |rto the id database") end - end +--MERCHANT_SHOW PLAYER_ALIVE CHAT_MSG_LOOT +function(e, msg) + if e == "PLAYER_ALIVE" then + for c = 0, 5 do + for s = 1, GetContainerNumSlots(c) do + if GetContainerItemLink(c, s) then + local name = GetItemInfo(GetContainerItemLink(c, s)) + local icon = select(10, GetItemInfo(GetContainerItemLink(c, s))) + local link = GetContainerItemLink(c, s) + local id = link:match("item:(%d+):") + if not WeakAurasSaved.CustomTrash.IconDatabase[name] and name and icon then WeakAurasSaved.CustomTrash.IconDatabase[name] = icon; print("Adding|cff78cb00 ", name, " |rto the icon database") end + if not WeakAurasSaved.CustomTrash.IDDatabase[name] and name and id then WeakAurasSaved.CustomTrash.IDDatabase[name] = id; print("Adding|cff3366ff ", name, " |rto the id database") end + end + end + end + elseif e == "MERCHANT_SHOW" then + local i = 1 + C_Timer.After(0.2, function() + while GetMerchantItemInfo(i) do + local name, icon = GetMerchantItemInfo(i) + local link = GetMerchantItemLink(i) + local id = link:match("item:(%d+):") + if not WeakAurasSaved.CustomTrash.IconDatabase[name] and name and icon then WeakAurasSaved.CustomTrash.IconDatabase[name] = icon; print("Adding|cff78cb00 ", name, " |rto the icon database") end + if not WeakAurasSaved.CustomTrash.IDDatabase[name] and name and id then WeakAurasSaved.CustomTrash.IDDatabase[name] = id; print("Adding|cff3366ff ", name, " |rto the id database") end + i = i + 1 + end + end) + elseif e == "CHAT_MSG_LOOT" then + local itemID, icon, name + for itemLink in msg:gmatch("|%x+|Hitem:.-|h.-|h|r") do + itemID = itemLink:match("item:(%d+):") + icon = select(10, GetItemInfo(itemLink)) + name = GetItemInfo(itemLink) + end + if not WeakAurasSaved.CustomTrash.IconDatabase[name] and name and icon then WeakAurasSaved.CustomTrash.IconDatabase[name] = icon; print("Adding|cff78cb00 ", name, " |rto the icon database") end + if not WeakAurasSaved.CustomTrash.IDDatabase[name] and name and id then WeakAurasSaved.CustomTrash.IDDatabase[name] = id; print("Adding|cff3366ff ", name, " |rto the id database") end + end end \ No newline at end of file diff --git a/Complete Projects/BFA/Ignite.lua b/WeakAuras/Projects/ByExp/BFA/Ignite.lua similarity index 96% rename from Complete Projects/BFA/Ignite.lua rename to WeakAuras/Projects/ByExp/BFA/Ignite.lua index 4560059..7d4a206 100644 --- a/Complete Projects/BFA/Ignite.lua +++ b/WeakAuras/Projects/ByExp/BFA/Ignite.lua @@ -1,28 +1,28 @@ ---CLEU PLAYER_TARGET_CHANGED -function(e, ...) - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - if (select(2, ...) == "SPELL_AURA_APPLIED" or select(2, ...) == "SPELL_AURA_REFRESH" or select(2, ...) == "SPELL_PERIODIC_DAMAGE") and select(5, ...) == UnitName("player") and select(13, ...) == "Ignite" then - return true - end - elseif e == "PLAYER_TARGET_CHANGED" then - return true - end -end - ---DISPLAY -function() - local function UnitDebuffC(unit, spell) - for i = 1, 40 do - local name = UnitDebuff(unit, i, PLAYER) - if name then - if name == spell then - return UnitDebuff(unit, i, PLAYER) - end - else - return nil - end - end - end - local thing = select(16, UnitDebuffC("target", "Ignite")) - if thing then return thing else return 0 end +--CLEU PLAYER_TARGET_CHANGED +function(e, ...) + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + if (select(2, ...) == "SPELL_AURA_APPLIED" or select(2, ...) == "SPELL_AURA_REFRESH" or select(2, ...) == "SPELL_PERIODIC_DAMAGE") and select(5, ...) == UnitName("player") and select(13, ...) == "Ignite" then + return true + end + elseif e == "PLAYER_TARGET_CHANGED" then + return true + end +end + +--DISPLAY +function() + local function UnitDebuffC(unit, spell) + for i = 1, 40 do + local name = UnitDebuff(unit, i, PLAYER) + if name then + if name == spell then + return UnitDebuff(unit, i, PLAYER) + end + else + return nil + end + end + end + local thing = select(16, UnitDebuffC("target", "Ignite")) + if thing then return thing else return 0 end end \ No newline at end of file diff --git a/Complete Projects/BFA/Ignor Pain ALERT.lua b/WeakAuras/Projects/ByExp/BFA/Ignor Pain ALERT.lua similarity index 97% rename from Complete Projects/BFA/Ignor Pain ALERT.lua rename to WeakAuras/Projects/ByExp/BFA/Ignor Pain ALERT.lua index 17e2ef2..9aea6e6 100644 --- a/Complete Projects/BFA/Ignor Pain ALERT.lua +++ b/WeakAuras/Projects/ByExp/BFA/Ignor Pain ALERT.lua @@ -1,79 +1,79 @@ ---UNIT_AURA:player UNIT_POWER_UPDATE:player -function(e, ...) - if e == "UNIT_AURA" then - if aura_env.UnitBuffC("Ignore Pain") then - local expTime = math.floor((select(6, aura_env.UnitBuffC("Ignore Pain")) * 100)) - local ctime = math.floor((GetTime() * 100)) - if ctime + 1200 == expTime then aura_env.absorb = select(16, aura_env.UnitBuffC("Ignore Pain")) end - end - elseif e == "UNIT_POWER_UPDATE" then - local rage = UnitPower("player") - local time = GetTime() - if rage < 40 then - aura_env.region:Hide() - return false - elseif rage >= 40 and rage < 90 and not aura_env.UnitBuffC("player", "Ignore Pain") then - aura_env.region:SetIcon(GetSpellTexture("Ignore Pain")) - aura_env.region:SetOffset(128, 200) - aura_env.region:SetGlow(true) - aura_env.region:Color(1, 1, 1, 1) - aura_env.region:Show() - return true - elseif rage >= 40 and rage < 90 and aura_env.UnitBuffC("player", "Ignore Pain") then - local absorb = select(16, aura_env.UnitBuffC("player", "Ignore Pain")) or 0 - local expTime = select(6, aura_env.UnitBuffC("player", "Ignore Pain")) or 0 - if absorb > 0 and expTime > 0 then - if expTime - time <= 3 then - aura_env.region:SetIcon(GetSpellTexture("Ignore Pain")) - aura_env.region:SetOffset(128, 200) - aura_env.region:SetGlow(false) - aura_env.region:Color(1, 1, 1, 1) - aura_env.region:Show() - return true - elseif absorb <= 0.2 * aura_env.absorb then - aura_env.region:SetIcon(GetSpellTexture("Ignore Pain")) - aura_env.region:SetOffset(128, 200) - aura_env.region:SetGlow(false) - aura_env.region:Color(1, 1, 1, 1) - aura_env.region:Show() - return true - else - aura_env.region:Hide() - return false - end - end - elseif rage >= 90 and not aura_env.UnitBuffC("player", "Shield Block") then - aura_env.region:SetIcon(GetSpellTexture("Shield Block")) - aura_env.region:SetOffset(-128, 200) - aura_env.region:SetGlow(false) - aura_env.region:Color(1, 1, 1, 0.33) - aura_env.region:Show() - return true - elseif rage >= 90 and aura_env.UnitBuffC("player", "Shield Block") then - aura_env.region:SetIcon(GetSpellTexture("Ignore Pain")) - aura_env.region:SetOffset(128, 200) - aura_env.region:SetGlow(false) - aura_env.region:Color(1, 1, 1, 0.5) - aura_env.region:Show() - return true - else - aura_env.region:Hide()() - return false - end - end -end - ---INIT -aura_env.absorb = 0 -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 +--UNIT_AURA:player UNIT_POWER_UPDATE:player +function(e, ...) + if e == "UNIT_AURA" then + if aura_env.UnitBuffC("Ignore Pain") then + local expTime = math.floor((select(6, aura_env.UnitBuffC("Ignore Pain")) * 100)) + local ctime = math.floor((GetTime() * 100)) + if ctime + 1200 == expTime then aura_env.absorb = select(16, aura_env.UnitBuffC("Ignore Pain")) end + end + elseif e == "UNIT_POWER_UPDATE" then + local rage = UnitPower("player") + local time = GetTime() + if rage < 40 then + aura_env.region:Hide() + return false + elseif rage >= 40 and rage < 90 and not aura_env.UnitBuffC("player", "Ignore Pain") then + aura_env.region:SetIcon(GetSpellTexture("Ignore Pain")) + aura_env.region:SetOffset(128, 200) + aura_env.region:SetGlow(true) + aura_env.region:Color(1, 1, 1, 1) + aura_env.region:Show() + return true + elseif rage >= 40 and rage < 90 and aura_env.UnitBuffC("player", "Ignore Pain") then + local absorb = select(16, aura_env.UnitBuffC("player", "Ignore Pain")) or 0 + local expTime = select(6, aura_env.UnitBuffC("player", "Ignore Pain")) or 0 + if absorb > 0 and expTime > 0 then + if expTime - time <= 3 then + aura_env.region:SetIcon(GetSpellTexture("Ignore Pain")) + aura_env.region:SetOffset(128, 200) + aura_env.region:SetGlow(false) + aura_env.region:Color(1, 1, 1, 1) + aura_env.region:Show() + return true + elseif absorb <= 0.2 * aura_env.absorb then + aura_env.region:SetIcon(GetSpellTexture("Ignore Pain")) + aura_env.region:SetOffset(128, 200) + aura_env.region:SetGlow(false) + aura_env.region:Color(1, 1, 1, 1) + aura_env.region:Show() + return true + else + aura_env.region:Hide() + return false + end + end + elseif rage >= 90 and not aura_env.UnitBuffC("player", "Shield Block") then + aura_env.region:SetIcon(GetSpellTexture("Shield Block")) + aura_env.region:SetOffset(-128, 200) + aura_env.region:SetGlow(false) + aura_env.region:Color(1, 1, 1, 0.33) + aura_env.region:Show() + return true + elseif rage >= 90 and aura_env.UnitBuffC("player", "Shield Block") then + aura_env.region:SetIcon(GetSpellTexture("Ignore Pain")) + aura_env.region:SetOffset(128, 200) + aura_env.region:SetGlow(false) + aura_env.region:Color(1, 1, 1, 0.5) + aura_env.region:Show() + return true + else + aura_env.region:Hide()() + return false + end + end +end + +--INIT +aura_env.absorb = 0 +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 end \ No newline at end of file diff --git a/Complete Projects/BFA/Ignore Pain.lua b/WeakAuras/Projects/ByExp/BFA/Ignore Pain.lua similarity index 96% rename from Complete Projects/BFA/Ignore Pain.lua rename to WeakAuras/Projects/ByExp/BFA/Ignore Pain.lua index ba987c1..48997b4 100644 --- a/Complete Projects/BFA/Ignore Pain.lua +++ b/WeakAuras/Projects/ByExp/BFA/Ignore Pain.lua @@ -1,65 +1,65 @@ ---UNIT_COMBAT:player UNIT_AURA:player -function(e, ...) - if e == "UNIT_AURA" then - if aura_env.CUnitBuff("Ignore Pain") then - aura_env.amount = select(16, aura_env.CUnitBuff("Ignore Pain")) - local expTime = math.floor((select(6, aura_env.CUnitBuff("Ignore Pain")) * 100)) - local ctime = math.floor((GetTime() * 100)) - if ctime + 1200 == expTime then aura_env.lastTime = GetTime(); aura_env.maxamount = select(16, aura_env.CUnitBuff("Ignore Pain")) end - aura_env.region.text:SetText(aura_env.shorten(aura_env.amount)) - aura_env.region.timer:SetText(aura_env.shorten(aura_env.maxamount)) - else - aura_env.region.text:SetText("") - aura_env.region.timer:SetText("") - aura_env.maxamount = 0 - end - return true - elseif e == "UNIT_COMBAT" then - if aura_env.CUnitBuff("Ignore Pain") then - aura_env.amount = select(16, aura_env.CUnitBuff("Ignore Pain")) - aura_env.region.text:SetText(aura_env.shorten(aura_env.amount)) - aura_env.region.timer:SetText(aura_env.shorten(aura_env.maxamount)) - end - return true - end -end - ---DURATION -function() - return aura_env.amount, aura_env.maxamount, 1 -end - ---INIT -aura_env.absorb = 0 -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 -end -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 +--UNIT_COMBAT:player UNIT_AURA:player +function(e, ...) + if e == "UNIT_AURA" then + if aura_env.CUnitBuff("Ignore Pain") then + aura_env.amount = select(16, aura_env.CUnitBuff("Ignore Pain")) + local expTime = math.floor((select(6, aura_env.CUnitBuff("Ignore Pain")) * 100)) + local ctime = math.floor((GetTime() * 100)) + if ctime + 1200 == expTime then aura_env.lastTime = GetTime(); aura_env.maxamount = select(16, aura_env.CUnitBuff("Ignore Pain")) end + aura_env.region.text:SetText(aura_env.shorten(aura_env.amount)) + aura_env.region.timer:SetText(aura_env.shorten(aura_env.maxamount)) + else + aura_env.region.text:SetText("") + aura_env.region.timer:SetText("") + aura_env.maxamount = 0 + end + return true + elseif e == "UNIT_COMBAT" then + if aura_env.CUnitBuff("Ignore Pain") then + aura_env.amount = select(16, aura_env.CUnitBuff("Ignore Pain")) + aura_env.region.text:SetText(aura_env.shorten(aura_env.amount)) + aura_env.region.timer:SetText(aura_env.shorten(aura_env.maxamount)) + end + return true + end +end + +--DURATION +function() + return aura_env.amount, aura_env.maxamount, 1 +end + +--INIT +aura_env.absorb = 0 +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 +end +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 end \ No newline at end of file diff --git a/Complete Projects/BFA/Kindling.lua b/WeakAuras/Projects/ByExp/BFA/Kindling.lua similarity index 97% rename from Complete Projects/BFA/Kindling.lua rename to WeakAuras/Projects/ByExp/BFA/Kindling.lua index d826450..3eb2a71 100644 --- a/Complete Projects/BFA/Kindling.lua +++ b/WeakAuras/Projects/ByExp/BFA/Kindling.lua @@ -1,24 +1,24 @@ ---CLEU SPELL_UPDATE_COOLDOWN -function(e, ...) - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - if select(2, ...) == "SPELL_DAMAGE" and select(5, ...) == UnitName("player") and (select(13, ...) == "Fireball" or select(13, ...) == "Fire Blast" or select(13, ...) == "Pyroblast") and select(21, ...) == true and GetSpellCooldown("Combustion") > 0 then - if not aura_env.cd then aura_env.cd = 0 end - aura_env.cd = aura_env.cd + 1 - return true - end - if select(2, ...) == "SPELL_CAST_SUCCESS" and select(5, ...) == UnitName("player") and select(13, ...) == "Combustion" then - aura_env.cd = 0 - end - elseif e == "SPELL_UPDATE_COOLDOWN" then return true - end -end - ---DISPLAY -function() - if not aura_env.cd then aura_env.cd = 0 end - if GetSpellCooldown("Combustion") > 0 then - return "|cfffd477b" .. aura_env.cd - else - return "|cff78cb00" .. aura_env.cd - end +--CLEU SPELL_UPDATE_COOLDOWN +function(e, ...) + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + if select(2, ...) == "SPELL_DAMAGE" and select(5, ...) == UnitName("player") and (select(13, ...) == "Fireball" or select(13, ...) == "Fire Blast" or select(13, ...) == "Pyroblast") and select(21, ...) == true and GetSpellCooldown("Combustion") > 0 then + if not aura_env.cd then aura_env.cd = 0 end + aura_env.cd = aura_env.cd + 1 + return true + end + if select(2, ...) == "SPELL_CAST_SUCCESS" and select(5, ...) == UnitName("player") and select(13, ...) == "Combustion" then + aura_env.cd = 0 + end + elseif e == "SPELL_UPDATE_COOLDOWN" then return true + end +end + +--DISPLAY +function() + if not aura_env.cd then aura_env.cd = 0 end + if GetSpellCooldown("Combustion") > 0 then + return "|cfffd477b" .. aura_env.cd + else + return "|cff78cb00" .. aura_env.cd + end end \ No newline at end of file diff --git a/Complete Projects/BFA/Loot List.lua b/WeakAuras/Projects/ByExp/BFA/Loot List.lua similarity index 95% rename from Complete Projects/BFA/Loot List.lua rename to WeakAuras/Projects/ByExp/BFA/Loot List.lua index a2ea64a..38b2c5b 100644 --- a/Complete Projects/BFA/Loot List.lua +++ b/WeakAuras/Projects/ByExp/BFA/Loot List.lua @@ -1,34 +1,34 @@ ---CHAT_MSG_LOOT -function(_,msg,who) - local who = who:match(UnitName("player")) - local what = msg:match("%[([a-zA-Z ' -]+)%]") - if who == UnitName("player") then - local link = "" - for i = 0, 4 do - for j = 1, GetContainerNumSlots(i) do - if GetContainerItemLink(i,j) then - if GetItemInfo(GetContainerItemLink(i, j)) == what then - link = GetContainerItemLink(i, j) - end - end - end - end - table.insert(aura_env.loot, {["Who"] = who, ["What"] = what, ["When"] = GetTime() + 2.5, ["Link"] = link}) - end -end - ---DISPLAY -function() - local output = "" - for k,v in ipairs(aura_env.loot) do - if v.When < GetTime() then - table.remove(aura_env.loot, k) - else - output = output .. v.Link .. "\n" - end - end - return output -end - ---INIT +--CHAT_MSG_LOOT +function(_,msg,who) + local who = who:match(UnitName("player")) + local what = msg:match("%[([a-zA-Z ' -]+)%]") + if who == UnitName("player") then + local link = "" + for i = 0, 4 do + for j = 1, GetContainerNumSlots(i) do + if GetContainerItemLink(i,j) then + if GetItemInfo(GetContainerItemLink(i, j)) == what then + link = GetContainerItemLink(i, j) + end + end + end + end + table.insert(aura_env.loot, {["Who"] = who, ["What"] = what, ["When"] = GetTime() + 2.5, ["Link"] = link}) + end +end + +--DISPLAY +function() + local output = "" + for k,v in ipairs(aura_env.loot) do + if v.When < GetTime() then + table.remove(aura_env.loot, k) + else + output = output .. v.Link .. "\n" + end + end + return output +end + +--INIT aura_env.loot = {} \ No newline at end of file diff --git a/Complete Projects/BFA/Map.lua b/WeakAuras/Projects/ByExp/BFA/Map.lua similarity index 97% rename from Complete Projects/BFA/Map.lua rename to WeakAuras/Projects/ByExp/BFA/Map.lua index 9220b82..fa37846 100644 --- a/Complete Projects/BFA/Map.lua +++ b/WeakAuras/Projects/ByExp/BFA/Map.lua @@ -1,121 +1,121 @@ ---EVERY FRAME (Throttled) -function() - if aura_env.lastscan < GetTime() then - if UnitExists("focus") then - if UnitInParty("focus") then - --Get MapID for both - local myMapID = C_Map.GetBestMapForUnit("player") - local focusMapID = C_Map.GetBestMapForUnit("focus") - - --Get Coordinates for both within same map - local pX, pY, fX, fY = 0, 0, 0, 0 - if myMapID == focusMapID then - pX, pY = aura_env.round(C_Map.GetPlayerMapPosition(myMapID, "player").x, 4) * 10000, aura_env.round(C_Map.GetPlayerMapPosition(myMapID, "player").y, 4) * 10000 - fX, fY = aura_env.round(C_Map.GetPlayerMapPosition(myMapID, "focus").x, 4) * 10000, aura_env.round(C_Map.GetPlayerMapPosition(myMapID, "focus").y, 4) * 10000 - end - - if pX > 0 and pY > 0 and fX > 0 and fY > 0 then - --Get player direction facing and convert to angle - local playerFace = GetPlayerFacing() or 0 - local playerA = math.floor(playerFace * 100) - playerA = aura_env.range(playerA, 0, 630, 360) - 1 - playerA = - playerA - playerA = math.floor(playerA) - playerA = playerA - 90 - if playerA < 0 then playerA = playerA + 360 end - - --Get relative Coordinates - local X = fX - pX - local Y = fY - pY - local hyp = math.sqrt((X ^ 2) + (Y ^ 2)) - local a = math.atan2(Y, X) - a = a - math.rad(playerA) - local Y2, X2 = hyp * math.cos(a), hyp * math.sin(a) - local zoomout, zoomin = 100, 50 - if (math.abs((X2 * aura_env.zoom)) > zoomout or math.abs((Y2 * aura_env.zoom)) > zoomout) and aura_env.zoom > 0.3 then - aura_env.zoom = aura_env.zoom - 0.2 - elseif (math.abs((X2 * aura_env.zoom)) > zoomout or math.abs((Y2 * aura_env.zoom)) > zoomout) and aura_env.zoom <= 0.3 and aura_env.zoom > 0.1 then - aura_env.zoom = aura_env.zoom - 0.05 - elseif (math.abs((X2 * aura_env.zoom)) > zoomout or math.abs((Y2 * aura_env.zoom)) > zoomout) and aura_env.zoom <= 0.1 and aura_env.zoom > 0.0005 then - aura_env.zoom = aura_env.zoom - 0.0005 - elseif (math.abs((X2 * aura_env.zoom)) > zoomout or math.abs((Y2 * aura_env.zoom)) > zoomout) and aura_env.zoom < 0.001 then - aura_env.zoom = 1 - end - if (math.abs((X2 * aura_env.zoom)) < zoomin and math.abs((Y2 * aura_env.zoom)) < zoomin) and aura_env.zoom < 50 then - aura_env.zoom = aura_env.zoom + 0.2 - end - aura_env.region.text:SetText("Zoom: " .. aura_env.zoom .. "\nDistance: " .. aura_env.round(hyp, 0)) - aura_env.region.playerTexture:SetPoint("CENTER", aura_env.region, "CENTER", 0, 0) - aura_env.region.focusTexture:SetPoint("CENTER", aura_env.region, "CENTER", X2 * aura_env.zoom, Y2 * aura_env.zoom) - - --Get class to color - local pclass, fclass = select(3, UnitClass("player")), select(3, UnitClass("focus")) - aura_env.region.playerTexture:SetVertexColor(aura_env.classColor(pclass)) - aura_env.region.focusTexture:SetVertexColor(aura_env.classColor(fclass)) - return true - else - print("Focus not in map!") - end - aura_env.lastscan = GetTime() + aura_env.throttle / 1000 - else print("Focus not in party!"); aura_env.region.playerTexture:Hide(); aura_env.region.focusTexture:Hide(); aura_env.lastscan = GetTime() + 5 end - else print("No focus found!"); aura_env.region.playerTexture:Hide(); aura_env.region.focusTexture:Hide(); aura_env.lastscan = GetTime() + 5 end - end -end - ---INIT -aura_env.throttle = 250 -aura_env.lastscan = 0 -aura_env.zoom = 1 -aura_env.range = function(val, min, max, max2) - val = 1 - (((max - val) / (max - min)) * max2) - return val -end -aura_env.round = function(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 -aura_env.classColor = function(class) - if class == 1 then return 0.78, 0.61, 0.43, 0.75 elseif - class == 2 then return 0.96, 0.55, 0.73, 0.75 elseif - class == 3 then return 0.67, 0.83, 0.45, 0.75 elseif - class == 4 then return 1, 0.96, 0.41, 0.75 elseif - class == 5 then return 1, 1, 1, 0.75 elseif - class == 6 then return 0.77, 0.12, 0.23, 0.75 elseif - class == 7 then return 0, 0.44, 0.87, 0.75 elseif - class == 8 then return 0.25, 0.78, 0.92, 0.75 elseif - class == 9 then return 0.53, 0.53, 0.93, 0.75 elseif - class == 10 then return 0, 1, 0.59, 0.75 elseif - class == 11 then return 1, 0.49, 0.04, 0.75 elseif - class == 12 then return 0.64, 0.19, 0.79, 0.75 else - return 1, 1, 1, 1 end -end - -if not aura_env.region.playerTexture then - local playerTexture = aura_env.region:CreateTexture(nil, "OVERLAY") - aura_env.region.playerTexture = playerTexture -end -aura_env.region.playerTexture:SetTexture("Interface\\Addons\\WeakAuras\\PowerAurasMedia\\Auras\\Aura72") -aura_env.region.playerTexture:SetHeight(16) -aura_env.region.playerTexture:SetWidth(16) -aura_env.region.playerTexture:Show() -if not aura_env.region.focusTexture then - local focusTexture = aura_env.region:CreateTexture(nil, "OVERLAY") - aura_env.region.focusTexture = focusTexture -end -aura_env.region.focusTexture:SetTexture("Interface\\Addons\\WeakAuras\\PowerAurasMedia\\Auras\\Aura72") -aura_env.region.focusTexture:SetHeight(16) -aura_env.region.focusTexture:SetWidth(16) -aura_env.region.focusTexture:Show() -if not aura_env.region.text then - local text = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.text = text -end -aura_env.region.text:ClearAllPoints() -aura_env.region.text:SetPoint("CENTER", aura_env.region, "CENTER", 0, 500) -aura_env.region.text:SetFont("Interface\\AddOns\\SharedMedia_MyMedia\\font\\FiraCode-Medium.ttf", 16, "OUTLINE") -aura_env.region.text:SetJustifyH("CENTER") +--EVERY FRAME (Throttled) +function() + if aura_env.lastscan < GetTime() then + if UnitExists("focus") then + if UnitInParty("focus") then + --Get MapID for both + local myMapID = C_Map.GetBestMapForUnit("player") + local focusMapID = C_Map.GetBestMapForUnit("focus") + + --Get Coordinates for both within same map + local pX, pY, fX, fY = 0, 0, 0, 0 + if myMapID == focusMapID then + pX, pY = aura_env.round(C_Map.GetPlayerMapPosition(myMapID, "player").x, 4) * 10000, aura_env.round(C_Map.GetPlayerMapPosition(myMapID, "player").y, 4) * 10000 + fX, fY = aura_env.round(C_Map.GetPlayerMapPosition(myMapID, "focus").x, 4) * 10000, aura_env.round(C_Map.GetPlayerMapPosition(myMapID, "focus").y, 4) * 10000 + end + + if pX > 0 and pY > 0 and fX > 0 and fY > 0 then + --Get player direction facing and convert to angle + local playerFace = GetPlayerFacing() or 0 + local playerA = math.floor(playerFace * 100) + playerA = aura_env.range(playerA, 0, 630, 360) - 1 + playerA = - playerA + playerA = math.floor(playerA) + playerA = playerA - 90 + if playerA < 0 then playerA = playerA + 360 end + + --Get relative Coordinates + local X = fX - pX + local Y = fY - pY + local hyp = math.sqrt((X ^ 2) + (Y ^ 2)) + local a = math.atan2(Y, X) + a = a - math.rad(playerA) + local Y2, X2 = hyp * math.cos(a), hyp * math.sin(a) + local zoomout, zoomin = 100, 50 + if (math.abs((X2 * aura_env.zoom)) > zoomout or math.abs((Y2 * aura_env.zoom)) > zoomout) and aura_env.zoom > 0.3 then + aura_env.zoom = aura_env.zoom - 0.2 + elseif (math.abs((X2 * aura_env.zoom)) > zoomout or math.abs((Y2 * aura_env.zoom)) > zoomout) and aura_env.zoom <= 0.3 and aura_env.zoom > 0.1 then + aura_env.zoom = aura_env.zoom - 0.05 + elseif (math.abs((X2 * aura_env.zoom)) > zoomout or math.abs((Y2 * aura_env.zoom)) > zoomout) and aura_env.zoom <= 0.1 and aura_env.zoom > 0.0005 then + aura_env.zoom = aura_env.zoom - 0.0005 + elseif (math.abs((X2 * aura_env.zoom)) > zoomout or math.abs((Y2 * aura_env.zoom)) > zoomout) and aura_env.zoom < 0.001 then + aura_env.zoom = 1 + end + if (math.abs((X2 * aura_env.zoom)) < zoomin and math.abs((Y2 * aura_env.zoom)) < zoomin) and aura_env.zoom < 50 then + aura_env.zoom = aura_env.zoom + 0.2 + end + aura_env.region.text:SetText("Zoom: " .. aura_env.zoom .. "\nDistance: " .. aura_env.round(hyp, 0)) + aura_env.region.playerTexture:SetPoint("CENTER", aura_env.region, "CENTER", 0, 0) + aura_env.region.focusTexture:SetPoint("CENTER", aura_env.region, "CENTER", X2 * aura_env.zoom, Y2 * aura_env.zoom) + + --Get class to color + local pclass, fclass = select(3, UnitClass("player")), select(3, UnitClass("focus")) + aura_env.region.playerTexture:SetVertexColor(aura_env.classColor(pclass)) + aura_env.region.focusTexture:SetVertexColor(aura_env.classColor(fclass)) + return true + else + print("Focus not in map!") + end + aura_env.lastscan = GetTime() + aura_env.throttle / 1000 + else print("Focus not in party!"); aura_env.region.playerTexture:Hide(); aura_env.region.focusTexture:Hide(); aura_env.lastscan = GetTime() + 5 end + else print("No focus found!"); aura_env.region.playerTexture:Hide(); aura_env.region.focusTexture:Hide(); aura_env.lastscan = GetTime() + 5 end + end +end + +--INIT +aura_env.throttle = 250 +aura_env.lastscan = 0 +aura_env.zoom = 1 +aura_env.range = function(val, min, max, max2) + val = 1 - (((max - val) / (max - min)) * max2) + return val +end +aura_env.round = function(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 +aura_env.classColor = function(class) + if class == 1 then return 0.78, 0.61, 0.43, 0.75 elseif + class == 2 then return 0.96, 0.55, 0.73, 0.75 elseif + class == 3 then return 0.67, 0.83, 0.45, 0.75 elseif + class == 4 then return 1, 0.96, 0.41, 0.75 elseif + class == 5 then return 1, 1, 1, 0.75 elseif + class == 6 then return 0.77, 0.12, 0.23, 0.75 elseif + class == 7 then return 0, 0.44, 0.87, 0.75 elseif + class == 8 then return 0.25, 0.78, 0.92, 0.75 elseif + class == 9 then return 0.53, 0.53, 0.93, 0.75 elseif + class == 10 then return 0, 1, 0.59, 0.75 elseif + class == 11 then return 1, 0.49, 0.04, 0.75 elseif + class == 12 then return 0.64, 0.19, 0.79, 0.75 else + return 1, 1, 1, 1 end +end + +if not aura_env.region.playerTexture then + local playerTexture = aura_env.region:CreateTexture(nil, "OVERLAY") + aura_env.region.playerTexture = playerTexture +end +aura_env.region.playerTexture:SetTexture("Interface\\Addons\\WeakAuras\\PowerAurasMedia\\Auras\\Aura72") +aura_env.region.playerTexture:SetHeight(16) +aura_env.region.playerTexture:SetWidth(16) +aura_env.region.playerTexture:Show() +if not aura_env.region.focusTexture then + local focusTexture = aura_env.region:CreateTexture(nil, "OVERLAY") + aura_env.region.focusTexture = focusTexture +end +aura_env.region.focusTexture:SetTexture("Interface\\Addons\\WeakAuras\\PowerAurasMedia\\Auras\\Aura72") +aura_env.region.focusTexture:SetHeight(16) +aura_env.region.focusTexture:SetWidth(16) +aura_env.region.focusTexture:Show() +if not aura_env.region.text then + local text = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.text = text +end +aura_env.region.text:ClearAllPoints() +aura_env.region.text:SetPoint("CENTER", aura_env.region, "CENTER", 0, 500) +aura_env.region.text:SetFont("Interface\\AddOns\\SharedMedia_MyMedia\\font\\FiraCode-Medium.ttf", 16, "OUTLINE") +aura_env.region.text:SetJustifyH("CENTER") aura_env.region.text:Show() \ No newline at end of file diff --git a/Complete Projects/BFA/Mob Highlight.lua b/WeakAuras/Projects/ByExp/BFA/Mob Highlight.lua similarity index 96% rename from Complete Projects/BFA/Mob Highlight.lua rename to WeakAuras/Projects/ByExp/BFA/Mob Highlight.lua index a49913b..bea3079 100644 --- a/Complete Projects/BFA/Mob Highlight.lua +++ b/WeakAuras/Projects/ByExp/BFA/Mob Highlight.lua @@ -1,108 +1,108 @@ ---QUEST_LOG_UPDATE -function(e, unit) - if e == "QUEST_LOG_UPDATE" then - local entries = GetNumQuestLogEntries() - for i = 1, entries do - if GetQuestLogLeaderBoard(1, i) then - for j = 1, 40 do - local text, type, finished = GetQuestLogLeaderBoard(1, i) - if not text then - break - elseif text and not finished then - if type == "monster" and text:match("slain") then - local count, mcount = text:match("(%d*)%/(%d*)") - local rem = mcount - count - local mob = text:match("%d*%/%d* (.+) slain") - aura_env.mobs[mob] = rem - end - elseif finished and aura_env.mobs[mob] then - local mob = text:match("%d*%/%d* (.+) slain") - table.remove(aura_env.mobs, mob) - end - end - end - end - end -end - ---NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED ---TSU -function(allstates, e, unit) - if e == "NAME_PLATE_UNIT_ADDED" then - if UnitExists(unit) then - if aura_env.mobs[UnitName(unit)] then - local name = UnitName(unit) - allstates[unit] = - { - show = true, - changed = true, - unit = unit, - name = name, - count = aura_env.mobs[name], - } - return true - end - end - elseif e == "NAME_PLATE_UNIT_REMOVED" then - if allstates[unit] then - allstates[unit] = - { - show = false, - changed = true, - } - return true - end - end -end - ---ON SHOW -if not aura_env.region.text then - local text = aura_env.region:CreateFontString(nil, "OVERLAY") - aura_env.region.text = text -end -aura_env.region:SetHeight(128) -aura_env.region:SetWidth(512) -aura_env.region.text:SetFont("Interface\\AddOns\\SharedMedia_MyMedia\\font\\FiraCode-Regular.ttf", 18, "OUTLINE") -aura_env.region.text:SetTextColor(1,1,1,1) -aura_env.region.text:SetText(aura_env.statee.count) -if not aura_env.region.texture then - local texture = aura_env.region:CreateTexture(nil, "OVERLAY") - aura_env.region.texture = texture -end -aura_env.region.texture:SetTexture("Interface\\Addons\\WeakAuras\\PowerAurasMedia\\Auras\\Aura51") -aura_env.region.texture:SetHeight(32) -aura_env.region.texture:SetWidth(32) -local plate = C_NamePlate.GetNamePlateForUnit(aura_env.statee.unit) -if plate then - print("found plate pls work") - aura_env.region.texture:ClearAllPoints() - aura_env.region.texture:SetPoint("TOP", plate, "TOP", 0, 32) - aura_env.region.texture:Show() - aura_env.region.text:ClearAllPoints() - aura_env.region.text:SetPoint("CENTER", plate, "CENTER", 32, 48) - aura_env.region.text:Show() -end - ---INIT -aura_env.mobs = {} -local entries = GetNumQuestLogEntries() -for i = 1, entries do - if GetQuestLogLeaderBoard(1, i) then - for j = 1, 40 do - local text, type, finished = GetQuestLogLeaderBoard(1, i) - if not text then - break - elseif text and not finished then - if type == "monster" and text:match("slain") then - local count, mcount = text:match("(%d*)%/(%d*)") - local rem = mcount - count - local mob = text:match("%d*%/%d* (.+) slain") - aura_env.mobs[mob] = rem - end - elseif finished and aura_env.mobs[mob] then - local mob = text:match("%d*%/%d* (.+) slain") - table.remove(aura_env.mobs, mob) - end - end - end +--QUEST_LOG_UPDATE +function(e, unit) + if e == "QUEST_LOG_UPDATE" then + local entries = GetNumQuestLogEntries() + for i = 1, entries do + if GetQuestLogLeaderBoard(1, i) then + for j = 1, 40 do + local text, type, finished = GetQuestLogLeaderBoard(1, i) + if not text then + break + elseif text and not finished then + if type == "monster" and text:match("slain") then + local count, mcount = text:match("(%d*)%/(%d*)") + local rem = mcount - count + local mob = text:match("%d*%/%d* (.+) slain") + aura_env.mobs[mob] = rem + end + elseif finished and aura_env.mobs[mob] then + local mob = text:match("%d*%/%d* (.+) slain") + table.remove(aura_env.mobs, mob) + end + end + end + end + end +end + +--NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED +--TSU +function(allstates, e, unit) + if e == "NAME_PLATE_UNIT_ADDED" then + if UnitExists(unit) then + if aura_env.mobs[UnitName(unit)] then + local name = UnitName(unit) + allstates[unit] = + { + show = true, + changed = true, + unit = unit, + name = name, + count = aura_env.mobs[name], + } + return true + end + end + elseif e == "NAME_PLATE_UNIT_REMOVED" then + if allstates[unit] then + allstates[unit] = + { + show = false, + changed = true, + } + return true + end + end +end + +--ON SHOW +if not aura_env.region.text then + local text = aura_env.region:CreateFontString(nil, "OVERLAY") + aura_env.region.text = text +end +aura_env.region:SetHeight(128) +aura_env.region:SetWidth(512) +aura_env.region.text:SetFont("Interface\\AddOns\\SharedMedia_MyMedia\\font\\FiraCode-Regular.ttf", 18, "OUTLINE") +aura_env.region.text:SetTextColor(1,1,1,1) +aura_env.region.text:SetText(aura_env.statee.count) +if not aura_env.region.texture then + local texture = aura_env.region:CreateTexture(nil, "OVERLAY") + aura_env.region.texture = texture +end +aura_env.region.texture:SetTexture("Interface\\Addons\\WeakAuras\\PowerAurasMedia\\Auras\\Aura51") +aura_env.region.texture:SetHeight(32) +aura_env.region.texture:SetWidth(32) +local plate = C_NamePlate.GetNamePlateForUnit(aura_env.statee.unit) +if plate then + print("found plate pls work") + aura_env.region.texture:ClearAllPoints() + aura_env.region.texture:SetPoint("TOP", plate, "TOP", 0, 32) + aura_env.region.texture:Show() + aura_env.region.text:ClearAllPoints() + aura_env.region.text:SetPoint("CENTER", plate, "CENTER", 32, 48) + aura_env.region.text:Show() +end + +--INIT +aura_env.mobs = {} +local entries = GetNumQuestLogEntries() +for i = 1, entries do + if GetQuestLogLeaderBoard(1, i) then + for j = 1, 40 do + local text, type, finished = GetQuestLogLeaderBoard(1, i) + if not text then + break + elseif text and not finished then + if type == "monster" and text:match("slain") then + local count, mcount = text:match("(%d*)%/(%d*)") + local rem = mcount - count + local mob = text:match("%d*%/%d* (.+) slain") + aura_env.mobs[mob] = rem + end + elseif finished and aura_env.mobs[mob] then + local mob = text:match("%d*%/%d* (.+) slain") + table.remove(aura_env.mobs, mob) + end + end + end end \ No newline at end of file diff --git a/Complete Projects/BFA/Null Barrier.lua b/WeakAuras/Projects/ByExp/BFA/Null Barrier.lua similarity index 96% rename from Complete Projects/BFA/Null Barrier.lua rename to WeakAuras/Projects/ByExp/BFA/Null Barrier.lua index 9fc2edd..84efb55 100644 --- a/Complete Projects/BFA/Null Barrier.lua +++ b/WeakAuras/Projects/ByExp/BFA/Null Barrier.lua @@ -1,67 +1,67 @@ ---UNIT_COMBAT:player UNIT_AURA:player -function(e, ...) - if e == "UNIT_AURA" then - if aura_env.CUnitBuff("Null Barrier") then - aura_env.amount = select(16, aura_env.CUnitBuff("Null Barrier")) - local expTime = math.floor((select(6, aura_env.CUnitBuff("Null Barrier")) * 100)) - local ctime = math.floor((GetTime() * 100)) - if ctime + 1000 == expTime then aura_env.lastTime = GetTime(); aura_env.maxamount = select(16, aura_env.CUnitBuff("Null Barrier")) end - end - return true - elseif e == "UNIT_COMBAT" then - if aura_env.CUnitBuff("Null Barrier") then - aura_env.amount = select(16, aura_env.CUnitBuff("Null Barrier")) - end - return true - end -end - ---DURATION -function() - if aura_env.CUnitBuff("Null Barrier") then - aura_env.region:SetInverse(false) - aura_env.region:Color(0.5, 0, 0.5, 1) - return aura_env.amount, aura_env.maxamount, 1 - else - aura_env.region:SetInverse(true) - aura_env.region:Color(0.5, 0.5, 0.5, 1) - return 15, aura_env.lastTime + 15 - end -end - ---INIT -aura_env.maxamount = 0 -aura_env.amount = 0 -aura_env.lastTime = GetTime() -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 -end -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 +--UNIT_COMBAT:player UNIT_AURA:player +function(e, ...) + if e == "UNIT_AURA" then + if aura_env.CUnitBuff("Null Barrier") then + aura_env.amount = select(16, aura_env.CUnitBuff("Null Barrier")) + local expTime = math.floor((select(6, aura_env.CUnitBuff("Null Barrier")) * 100)) + local ctime = math.floor((GetTime() * 100)) + if ctime + 1000 == expTime then aura_env.lastTime = GetTime(); aura_env.maxamount = select(16, aura_env.CUnitBuff("Null Barrier")) end + end + return true + elseif e == "UNIT_COMBAT" then + if aura_env.CUnitBuff("Null Barrier") then + aura_env.amount = select(16, aura_env.CUnitBuff("Null Barrier")) + end + return true + end +end + +--DURATION +function() + if aura_env.CUnitBuff("Null Barrier") then + aura_env.region:SetInverse(false) + aura_env.region:Color(0.5, 0, 0.5, 1) + return aura_env.amount, aura_env.maxamount, 1 + else + aura_env.region:SetInverse(true) + aura_env.region:Color(0.5, 0.5, 0.5, 1) + return 15, aura_env.lastTime + 15 + end +end + +--INIT +aura_env.maxamount = 0 +aura_env.amount = 0 +aura_env.lastTime = GetTime() +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 +end +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 end \ No newline at end of file diff --git a/Complete Projects/BFA/Quest Fuckery.lua b/WeakAuras/Projects/ByExp/BFA/Quest Fuckery.lua similarity index 95% rename from Complete Projects/BFA/Quest Fuckery.lua rename to WeakAuras/Projects/ByExp/BFA/Quest Fuckery.lua index b56261f..929848e 100644 --- a/Complete Projects/BFA/Quest Fuckery.lua +++ b/WeakAuras/Projects/ByExp/BFA/Quest Fuckery.lua @@ -1,20 +1,20 @@ ---QUEST_POI_UPDATE UPDATE_Q_ITEM -function() - if InCombatLockdown() ~= 1 then - for i = 0, 4 do - for j = 1, GetContainerNumSlots(i) do - local link = select(7, GetContainerItemInfo(i, j)) - if link then - local type = select(6, GetItemInfo(link)) - if type == "Quest" then - PickupContainerItem(i, j) - if CursorHasItem() then - PickupAction(22) - ClearCursor() - end - end - end - end - end - end +--QUEST_POI_UPDATE UPDATE_Q_ITEM +function() + if InCombatLockdown() ~= 1 then + for i = 0, 4 do + for j = 1, GetContainerNumSlots(i) do + local link = select(7, GetContainerItemInfo(i, j)) + if link then + local type = select(6, GetItemInfo(link)) + if type == "Quest" then + PickupContainerItem(i, j) + if CursorHasItem() then + PickupAction(22) + ClearCursor() + end + end + end + end + end + end end \ No newline at end of file diff --git a/Complete Projects/BFA/Rare Tracc.lua b/WeakAuras/Projects/ByExp/BFA/Rare Tracc.lua similarity index 97% rename from Complete Projects/BFA/Rare Tracc.lua rename to WeakAuras/Projects/ByExp/BFA/Rare Tracc.lua index ac8e576..56e3623 100644 --- a/Complete Projects/BFA/Rare Tracc.lua +++ b/WeakAuras/Projects/ByExp/BFA/Rare Tracc.lua @@ -1,100 +1,100 @@ ---CHAT_MSG_CHANNEL -function(e, msg, _, _, channel) - if channel:match("General") and (channel:match("Nazjatar") or channel:match("Mechagon")) then - if msg:match("(KX%-T57 (%d+%.?%d*))") then msg = msg:gsub("(KX%-T57 (%d+%.?%d*))", "") end - local x, y = msg:match("(%d+%.?%d*)[ ,/]+(%d+%.?%d*)") - if x and y then - local command = x .. " " .. y - aura_env.waypoints[#aura_env.waypoints + 1] = {["x"] = x, ["y"] = y,} - WeakAuras.ScanEvents("NEW_ID") - end - end -end - ---EVERY FRAME -function() - if not aura_env.noidee then - local function range (val, min, max, max2) - val = 1 - (((max - val) / (max - min)) * max2) - return val - end - if not aura_env.idee then WeakAuras.ScanEvents("NEW_ID") - else - local hX, hY = aura_env.waypoints[aura_env.idee]["x"], aura_env.waypoints[aura_env.idee]["y"] - local myMapID = C_Map.GetBestMapForUnit("player") - local pX, pY = C_Map.GetPlayerMapPosition(myMapID, "player").x * 100, C_Map.GetPlayerMapPosition(myMapID, "player").y * 100 - local X = pX - hX - local Y = pY - hY - local playerFace = GetPlayerFacing() or 0 - local playerA = math.floor(playerFace * 100) - playerA = range(playerA, 0, 630, 360) - 1 - playerA = - playerA - playerA = playerA - 90 - if playerA < 0 then playerA = playerA + 360 end - aura_env.hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) * 100 - aura_env.region.distance:SetText(math.floor(aura_env.hyp)) - aura_env.angle = math.deg(math.atan2(Y, X)) - aura_env.angle = aura_env.angle - playerA - aura_env.angle = aura_env.angle - 180 - if aura_env.hyp < aura_env.wipeDistance then - table.remove(aura_env.waypoints, aura_env.idee) - aura_env.idee = nil - WeakAuras.ScanEvents("NEW_ID") - end - return true - end - end -end - ---NEW_ID REMOVE_ID -function(e) - if e == "NEW_ID" then - if not IsInInstance() then - local maxhyp = 100000 - local myMapID = C_Map.GetBestMapForUnit("player") - local pX, pY = C_Map.GetPlayerMapPosition(myMapID, "player").x * 100, C_Map.GetPlayerMapPosition(myMapID, "player").y * 100 - for k,v in ipairs(aura_env.waypoints) do - local hX, hY = aura_env.waypoints[k].x, aura_env.waypoints[k].y - local X, Y = pX - hX, pY - hY - local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - if hyp < maxhyp then - maxhyp = hyp - aura_env.idee = k - end - end - if not aura_env.idee then aura_env.noidee = true end - if aura_env.idee then aura_env.noidee = nil end - end - elseif e == "REMOVE_ID" then - if aura_env.idee then - table.remove(aura_env.waypoints, aura_env.idee) - aura_env.idee = nil - WeakAuras.ScanEvents("NEW_ID") - else - end - end -end - ---ANIMATION -function() - if aura_env.angle then - return - aura_env.angle - else - return 0 - end -end - ---INIT -aura_env.waypoints = {} -if not aura_env.region.distance then - local distance = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.distance = distance -end -aura_env.region.distance:ClearAllPoints() -aura_env.region.distance:SetFont("Interface\\AddOns\\SharedMedia_MyMedia\\font\\FiraCode-Bold.ttf", 16, "OUTLINE") -aura_env.region.distance:SetPoint("CENTER", aura_env.region, "CENTER") -aura_env.region.distance:SetJustifyH("CENTER") -aura_env.region.distance:SetJustifyV("CENTER") -aura_env.region.distance:Show() -aura_env.wipeDistance = 50 +--CHAT_MSG_CHANNEL +function(e, msg, _, _, channel) + if channel:match("General") and (channel:match("Nazjatar") or channel:match("Mechagon")) then + if msg:match("(KX%-T57 (%d+%.?%d*))") then msg = msg:gsub("(KX%-T57 (%d+%.?%d*))", "") end + local x, y = msg:match("(%d+%.?%d*)[ ,/]+(%d+%.?%d*)") + if x and y then + local command = x .. " " .. y + aura_env.waypoints[#aura_env.waypoints + 1] = {["x"] = x, ["y"] = y,} + WeakAuras.ScanEvents("NEW_ID") + end + end +end + +--EVERY FRAME +function() + if not aura_env.noidee then + local function range (val, min, max, max2) + val = 1 - (((max - val) / (max - min)) * max2) + return val + end + if not aura_env.idee then WeakAuras.ScanEvents("NEW_ID") + else + local hX, hY = aura_env.waypoints[aura_env.idee]["x"], aura_env.waypoints[aura_env.idee]["y"] + local myMapID = C_Map.GetBestMapForUnit("player") + local pX, pY = C_Map.GetPlayerMapPosition(myMapID, "player").x * 100, C_Map.GetPlayerMapPosition(myMapID, "player").y * 100 + local X = pX - hX + local Y = pY - hY + local playerFace = GetPlayerFacing() or 0 + local playerA = math.floor(playerFace * 100) + playerA = range(playerA, 0, 630, 360) - 1 + playerA = - playerA + playerA = playerA - 90 + if playerA < 0 then playerA = playerA + 360 end + aura_env.hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) * 100 + aura_env.region.distance:SetText(math.floor(aura_env.hyp)) + aura_env.angle = math.deg(math.atan2(Y, X)) + aura_env.angle = aura_env.angle - playerA + aura_env.angle = aura_env.angle - 180 + if aura_env.hyp < aura_env.wipeDistance then + table.remove(aura_env.waypoints, aura_env.idee) + aura_env.idee = nil + WeakAuras.ScanEvents("NEW_ID") + end + return true + end + end +end + +--NEW_ID REMOVE_ID +function(e) + if e == "NEW_ID" then + if not IsInInstance() then + local maxhyp = 100000 + local myMapID = C_Map.GetBestMapForUnit("player") + local pX, pY = C_Map.GetPlayerMapPosition(myMapID, "player").x * 100, C_Map.GetPlayerMapPosition(myMapID, "player").y * 100 + for k,v in ipairs(aura_env.waypoints) do + local hX, hY = aura_env.waypoints[k].x, aura_env.waypoints[k].y + local X, Y = pX - hX, pY - hY + local hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) + if hyp < maxhyp then + maxhyp = hyp + aura_env.idee = k + end + end + if not aura_env.idee then aura_env.noidee = true end + if aura_env.idee then aura_env.noidee = nil end + end + elseif e == "REMOVE_ID" then + if aura_env.idee then + table.remove(aura_env.waypoints, aura_env.idee) + aura_env.idee = nil + WeakAuras.ScanEvents("NEW_ID") + else + end + end +end + +--ANIMATION +function() + if aura_env.angle then + return - aura_env.angle + else + return 0 + end +end + +--INIT +aura_env.waypoints = {} +if not aura_env.region.distance then + local distance = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.distance = distance +end +aura_env.region.distance:ClearAllPoints() +aura_env.region.distance:SetFont("Interface\\AddOns\\SharedMedia_MyMedia\\font\\FiraCode-Bold.ttf", 16, "OUTLINE") +aura_env.region.distance:SetPoint("CENTER", aura_env.region, "CENTER") +aura_env.region.distance:SetJustifyH("CENTER") +aura_env.region.distance:SetJustifyV("CENTER") +aura_env.region.distance:Show() +aura_env.wipeDistance = 50 WeakAuras.ScanEvents("NEW_ID") \ No newline at end of file diff --git a/Complete Projects/BFA/Reset Custom Variable.lua b/WeakAuras/Projects/ByExp/BFA/Reset Custom Variable.lua similarity index 95% rename from Complete Projects/BFA/Reset Custom Variable.lua rename to WeakAuras/Projects/ByExp/BFA/Reset Custom Variable.lua index 79f4fa6..308908d 100644 --- a/Complete Projects/BFA/Reset Custom Variable.lua +++ b/WeakAuras/Projects/ByExp/BFA/Reset Custom Variable.lua @@ -1,4 +1,4 @@ ---PLAYER_ALIVE -function() - WeakAurasSaved["CustomTrash"] = "" +--PLAYER_ALIVE +function() + WeakAurasSaved["CustomTrash"] = "" end \ No newline at end of file diff --git a/Complete Projects/BFA/SCT ABANDONED.lua b/WeakAuras/Projects/ByExp/BFA/SCT ABANDONED.lua similarity index 96% rename from Complete Projects/BFA/SCT ABANDONED.lua rename to WeakAuras/Projects/ByExp/BFA/SCT ABANDONED.lua index 46d5774..7623d4b 100644 --- a/Complete Projects/BFA/SCT ABANDONED.lua +++ b/WeakAuras/Projects/ByExp/BFA/SCT ABANDONED.lua @@ -1,42 +1,42 @@ ---CLEU UPDATE_TEXT -function(e, ...) - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, ...) - local aura_env = aura_env - if se == "SPELL_DAMAGE" or se == "SPELL_PERIODIC_DAMAGE" then - local _, _, _, _, caster, _, _, _, target, _, _, sID, sName, sSchool, amount, overkill, school, resisted, blocked, absorbed, critical = ... - if caster == UnitName("player") and critical == false then - if not aura_env.hits then aura_env.hits = {} end - local ID = #aura_env.hits + 1 - aura_env.hits[ID] = - { - ["sID"] = sID, - ["sName"] = sName, - ["sSchool"] = sSchool, - ["amount"] = amount, - ["resisted"] = resisted, - ["blocked"] = blocked, - ["absorbed"] = absorbed, - ["target"] = target, - ["time"] = GetTime(), - } - WeakAuras.ScanEvents("UPDATE_TEXT") - C_Timer.After(2, function() table.remove(aura_env.hits, ID); WeakAuras.ScanEvents("UPDATE_TEXT") end) - return true - end - end - elseif e == "UPDATE_TEXT" then - aura_env.output = "" - print(#aura_env.hits) - for k,v in ipairs(aura_env.hits) do - print(k, v.amount) - aura_env.output = aura_env.output .. v.amount .. "\n" - end - print("") - end -end - ---DISPLAY -function() - return aura_env.output +--CLEU UPDATE_TEXT +function(e, ...) + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, ...) + local aura_env = aura_env + if se == "SPELL_DAMAGE" or se == "SPELL_PERIODIC_DAMAGE" then + local _, _, _, _, caster, _, _, _, target, _, _, sID, sName, sSchool, amount, overkill, school, resisted, blocked, absorbed, critical = ... + if caster == UnitName("player") and critical == false then + if not aura_env.hits then aura_env.hits = {} end + local ID = #aura_env.hits + 1 + aura_env.hits[ID] = + { + ["sID"] = sID, + ["sName"] = sName, + ["sSchool"] = sSchool, + ["amount"] = amount, + ["resisted"] = resisted, + ["blocked"] = blocked, + ["absorbed"] = absorbed, + ["target"] = target, + ["time"] = GetTime(), + } + WeakAuras.ScanEvents("UPDATE_TEXT") + C_Timer.After(2, function() table.remove(aura_env.hits, ID); WeakAuras.ScanEvents("UPDATE_TEXT") end) + return true + end + end + elseif e == "UPDATE_TEXT" then + aura_env.output = "" + print(#aura_env.hits) + for k,v in ipairs(aura_env.hits) do + print(k, v.amount) + aura_env.output = aura_env.output .. v.amount .. "\n" + end + print("") + end +end + +--DISPLAY +function() + return aura_env.output end \ No newline at end of file diff --git a/Complete Projects/BFA/Saved/TSU - Combat HP Bars b/WeakAuras/Projects/ByExp/BFA/Saved/TSU - Combat HP Bars similarity index 100% rename from Complete Projects/BFA/Saved/TSU - Combat HP Bars rename to WeakAuras/Projects/ByExp/BFA/Saved/TSU - Combat HP Bars diff --git a/Complete Projects/BFA/Saved/Warrior CDs b/WeakAuras/Projects/ByExp/BFA/Saved/Warrior CDs similarity index 100% rename from Complete Projects/BFA/Saved/Warrior CDs rename to WeakAuras/Projects/ByExp/BFA/Saved/Warrior CDs diff --git a/Complete Projects/BFA/Saved/Warrior Rage b/WeakAuras/Projects/ByExp/BFA/Saved/Warrior Rage similarity index 100% rename from Complete Projects/BFA/Saved/Warrior Rage rename to WeakAuras/Projects/ByExp/BFA/Saved/Warrior Rage diff --git a/Complete Projects/BFA/Second Wind.lua b/WeakAuras/Projects/ByExp/BFA/Second Wind.lua similarity index 94% rename from Complete Projects/BFA/Second Wind.lua rename to WeakAuras/Projects/ByExp/BFA/Second Wind.lua index b110d72..5a756c1 100644 --- a/Complete Projects/BFA/Second Wind.lua +++ b/WeakAuras/Projects/ByExp/BFA/Second Wind.lua @@ -1,22 +1,22 @@ ---UNIT_COMBAT -function(_, target, event, _, amount) - if target == "player" and event ~= "HEAL" and amount then - aura_env.lasthit = GetTime() - return true - end -end - ---UNTRIGGER -function() - if aura_env.lasthit + 5 < GetTime() then - return true - end -end - ---DURATION -function() - return 5, aura_env.lasthit + 5 -end - ---INIT +--UNIT_COMBAT +function(_, target, event, _, amount) + if target == "player" and event ~= "HEAL" and amount then + aura_env.lasthit = GetTime() + return true + end +end + +--UNTRIGGER +function() + if aura_env.lasthit + 5 < GetTime() then + return true + end +end + +--DURATION +function() + return 5, aura_env.lasthit + 5 +end + +--INIT aura_env.lasthit = 0 \ No newline at end of file diff --git a/Complete Projects/BFA/SetupChat.lua b/WeakAuras/Projects/ByExp/BFA/SetupChat.lua similarity index 97% rename from Complete Projects/BFA/SetupChat.lua rename to WeakAuras/Projects/ByExp/BFA/SetupChat.lua index f2423fe..95ae374 100644 --- a/Complete Projects/BFA/SetupChat.lua +++ b/WeakAuras/Projects/ByExp/BFA/SetupChat.lua @@ -1,132 +1,132 @@ ---CHAT_MSG_WHISPER ---/run SendChatMessage("hi", "WHISPER",_, UnitName("player")) -function(e,msg,sender) - sender = sender:gsub("-.+", "") - msg = msg:lower() - print(sender,msg) - if msg == "setup party" and sender == UnitName("player") then - aura_env.party() - end - if msg == "setup general" and sender == UnitName("player") then - aura_env.general() - end -end - ---INIT -aura_env.party = function() - print("Setting party up") - print("Check1 " .. ChatCOnfigChatSettingsLeftCheckBox1Check:GetChecked()) - if ChatConfigChatSettingsLeftCheckBox1Check:GetChecked() == false then --Say - ChatConfigChatSettingsLeftCheckBox1Check:Click() - end - print("Check4 " .. ChatCOnfigChatSettingsLeftCheckBox4Check:GetChecked()) - if ChatConfigChatSettingsLeftCheckBox2Check:GetChecked() == false then --Emote - ChatConfigChatSettingsLeftCheckBox2Check:Click() - end - print("Check5 " .. ChatCOnfigChatSettingsLeftCheckBox5Check:GetChecked()) - if ChatConfigChatSettingsLeftCheckBox3Check:GetChecked() == false then --Yell - ChatConfigChatSettingsLeftCheckBox3Check:Click() - end - print("Check6 " .. ChatCOnfigChatSettingsLeftCheckBox6Check:GetChecked()) - if ChatConfigChatSettingsLeftCheckBox4Check:GetChecked() == true then --Guild chat - ChatConfigChatSettingsLeftCheckBox4Check:Click() - end - print("Check7 " .. ChatCOnfigChatSettingsLeftCheckBox7Check:GetChecked()) - if ChatConfigChatSettingsLeftCheckBox5Check:GetChecked() == true then --Officer chat - ChatConfigChatSettingsLeftCheckBox5Check:Click() - end - print("Check8 " .. ChatCOnfigChatSettingsLeftCheckBox8Check:GetChecked()) - if ChatConfigChatSettingsLeftCheckBox6Check:GetChecked() == true then --Guild announce - ChatConfigChatSettingsLeftCheckBox6Check:Click() - end - print("Check9 " .. ChatCOnfigChatSettingsLeftCheckBox9Check:GetChecked()) - if ChatConfigChatSettingsLeftCheckBox7Check:GetChecked() == true then --Achievement announce - ChatConfigChatSettingsLeftCheckBox7Check:Click() - end - print("Check 10 " .. ChatCOnfigChatSettingsLeftCheckBox10Check:GetChecked()) - if ChatConfigChatSettingsLeftCheckBox8Check:GetChecked() == false then --Whisper - ChatConfigChatSettingsLeftCheckBox8Check:Click() - end - print("Check 11 " .. ChatCOnfigChatSettingsLeftCheckBox11Check:GetChecked()) - if ChatConfigChatSettingsLeftCheckBox9Check:GetChecked() == false then --Blizzard whisper - ChatConfigChatSettingsLeftCheckBox9Check:Click() - end - print("Check 12 " .. ChatCOnfigChatSettingsLeftCheckBox12Check:GetChecked()) - if ChatConfigChatSettingsLeftCheckBox10Check:GetChecked() == false then --Party - ChatConfigChatSettingsLeftCheckBox10Check:Click() - end - print("Check 13 " .. ChatCOnfigChatSettingsLeftCheckBox13Check:GetChecked()) - if ChatConfigChatSettingsLeftCheckBox11Check:GetChecked() == false then --Party leader - ChatConfigChatSettingsLeftCheckBox11Check:Click() - end - print("Check 14 " .. ChatCOnfigChatSettingsLeftCheckBox14Check:GetChecked()) - if ChatConfigChatSettingsLeftCheckBox12Check:GetChecked() == false then --Raid - ChatConfigChatSettingsLeftCheckBox12Check:Click() - end - print("Check 15 " .. ChatCOnfigChatSettingsLeftCheckBox15Check:GetChecked()) - if ChatConfigChatSettingsLeftCheckBox13Check:GetChecked() == false then --Raid leader - ChatConfigChatSettingsLeftCheckBox13Check:Click() - end - print("Check 16 " .. ChatCOnfigChatSettingsLeftCheckBox16Check:GetChecked()) - if ChatConfigChatSettingsLeftCheckBox14Check:GetChecked() == false then --Raid Warning - ChatConfigChatSettingsLeftCheckBox14Check:Click() - end - print("Check1 " .. ChatCOnfigChatSettingsLeftCheckBox1Check:GetChecked()) - if ChatConfigChatSettingsLeftCheckBox15Check:GetChecked() == false then --Instance - ChatConfigChatSettingsLeftCheckBox15Check:Click() - end - print("Check2 " .. ChatCOnfigChatSettingsLeftCheckBox2Check:GetChecked()) - if ChatConfigChatSettingsLeftCheckBox16Check:GetChecked() == false then --Instance leader - ChatConfigChatSettingsLeftCheckBox16Check:Click() - end -end -aura_env.general = function() - if ChatConfigChatSettingsLeftCheckBox1Check:GetChecked() == true then --Say - ChatConfigChatSettingsLeftCheckBox1Check:Click() - end - if ChatConfigChatSettingsLeftCheckBox2Check:GetChecked() == true then --Emote - ChatConfigChatSettingsLeftCheckBox2Check:Click() - end - if ChatConfigChatSettingsLeftCheckBox3Check:GetChecked() == true then --Yell - ChatConfigChatSettingsLeftCheckBox3Check:Click() - end - if ChatConfigChatSettingsLeftCheckBox4Check:GetChecked() == true then --Guild chat - ChatConfigChatSettingsLeftCheckBox4Check:Click() - end - if ChatConfigChatSettingsLeftCheckBox5Check:GetChecked() == true then --Officer chat - ChatConfigChatSettingsLeftCheckBox5Check:Click() - end - if ChatConfigChatSettingsLeftCheckBox6Check:GetChecked() == true then --Guild announce - ChatConfigChatSettingsLeftCheckBox6Check:Click() - end - if ChatConfigChatSettingsLeftCheckBox7Check:GetChecked() == true then --Achievement announce - ChatConfigChatSettingsLeftCheckBox7Check:Click() - end - if ChatConfigChatSettingsLeftCheckBox8Check:GetChecked() == true then --Whisper - ChatConfigChatSettingsLeftCheckBox8Check:Click() - end - if ChatConfigChatSettingsLeftCheckBox9Check:GetChecked() == true then --Blizzard whisper - ChatConfigChatSettingsLeftCheckBox9Check:Click() - end - if ChatConfigChatSettingsLeftCheckBox10Check:GetChecked() == true then --Party - ChatConfigChatSettingsLeftCheckBox10Check:Click() - end - if ChatConfigChatSettingsLeftCheckBox11Check:GetChecked() == true then --Party leader - ChatConfigChatSettingsLeftCheckBox11Check:Click() - end - if ChatConfigChatSettingsLeftCheckBox12Check:GetChecked() == true then --Raid - ChatConfigChatSettingsLeftCheckBox12Check:Click() - end - if ChatConfigChatSettingsLeftCheckBox13Check:GetChecked() == true then --Raid leader - ChatConfigChatSettingsLeftCheckBox13Check:Click() - end - if ChatConfigChatSettingsLeftCheckBox14Check:GetChecked() == true then --Raid Warning - ChatConfigChatSettingsLeftCheckBox14Check:Click() - end - if ChatConfigChatSettingsLeftCheckBox15Check:GetChecked() == true then --Instance - ChatConfigChatSettingsLeftCheckBox15Check:Click() - end - if ChatConfigChatSettingsLeftCheckBox16Check:GetChecked() == true then --Instance leader - ChatConfigChatSettingsLeftCheckBox16Check:Click() - end +--CHAT_MSG_WHISPER +--/run SendChatMessage("hi", "WHISPER",_, UnitName("player")) +function(e,msg,sender) + sender = sender:gsub("-.+", "") + msg = msg:lower() + print(sender,msg) + if msg == "setup party" and sender == UnitName("player") then + aura_env.party() + end + if msg == "setup general" and sender == UnitName("player") then + aura_env.general() + end +end + +--INIT +aura_env.party = function() + print("Setting party up") + print("Check1 " .. ChatCOnfigChatSettingsLeftCheckBox1Check:GetChecked()) + if ChatConfigChatSettingsLeftCheckBox1Check:GetChecked() == false then --Say + ChatConfigChatSettingsLeftCheckBox1Check:Click() + end + print("Check4 " .. ChatCOnfigChatSettingsLeftCheckBox4Check:GetChecked()) + if ChatConfigChatSettingsLeftCheckBox2Check:GetChecked() == false then --Emote + ChatConfigChatSettingsLeftCheckBox2Check:Click() + end + print("Check5 " .. ChatCOnfigChatSettingsLeftCheckBox5Check:GetChecked()) + if ChatConfigChatSettingsLeftCheckBox3Check:GetChecked() == false then --Yell + ChatConfigChatSettingsLeftCheckBox3Check:Click() + end + print("Check6 " .. ChatCOnfigChatSettingsLeftCheckBox6Check:GetChecked()) + if ChatConfigChatSettingsLeftCheckBox4Check:GetChecked() == true then --Guild chat + ChatConfigChatSettingsLeftCheckBox4Check:Click() + end + print("Check7 " .. ChatCOnfigChatSettingsLeftCheckBox7Check:GetChecked()) + if ChatConfigChatSettingsLeftCheckBox5Check:GetChecked() == true then --Officer chat + ChatConfigChatSettingsLeftCheckBox5Check:Click() + end + print("Check8 " .. ChatCOnfigChatSettingsLeftCheckBox8Check:GetChecked()) + if ChatConfigChatSettingsLeftCheckBox6Check:GetChecked() == true then --Guild announce + ChatConfigChatSettingsLeftCheckBox6Check:Click() + end + print("Check9 " .. ChatCOnfigChatSettingsLeftCheckBox9Check:GetChecked()) + if ChatConfigChatSettingsLeftCheckBox7Check:GetChecked() == true then --Achievement announce + ChatConfigChatSettingsLeftCheckBox7Check:Click() + end + print("Check 10 " .. ChatCOnfigChatSettingsLeftCheckBox10Check:GetChecked()) + if ChatConfigChatSettingsLeftCheckBox8Check:GetChecked() == false then --Whisper + ChatConfigChatSettingsLeftCheckBox8Check:Click() + end + print("Check 11 " .. ChatCOnfigChatSettingsLeftCheckBox11Check:GetChecked()) + if ChatConfigChatSettingsLeftCheckBox9Check:GetChecked() == false then --Blizzard whisper + ChatConfigChatSettingsLeftCheckBox9Check:Click() + end + print("Check 12 " .. ChatCOnfigChatSettingsLeftCheckBox12Check:GetChecked()) + if ChatConfigChatSettingsLeftCheckBox10Check:GetChecked() == false then --Party + ChatConfigChatSettingsLeftCheckBox10Check:Click() + end + print("Check 13 " .. ChatCOnfigChatSettingsLeftCheckBox13Check:GetChecked()) + if ChatConfigChatSettingsLeftCheckBox11Check:GetChecked() == false then --Party leader + ChatConfigChatSettingsLeftCheckBox11Check:Click() + end + print("Check 14 " .. ChatCOnfigChatSettingsLeftCheckBox14Check:GetChecked()) + if ChatConfigChatSettingsLeftCheckBox12Check:GetChecked() == false then --Raid + ChatConfigChatSettingsLeftCheckBox12Check:Click() + end + print("Check 15 " .. ChatCOnfigChatSettingsLeftCheckBox15Check:GetChecked()) + if ChatConfigChatSettingsLeftCheckBox13Check:GetChecked() == false then --Raid leader + ChatConfigChatSettingsLeftCheckBox13Check:Click() + end + print("Check 16 " .. ChatCOnfigChatSettingsLeftCheckBox16Check:GetChecked()) + if ChatConfigChatSettingsLeftCheckBox14Check:GetChecked() == false then --Raid Warning + ChatConfigChatSettingsLeftCheckBox14Check:Click() + end + print("Check1 " .. ChatCOnfigChatSettingsLeftCheckBox1Check:GetChecked()) + if ChatConfigChatSettingsLeftCheckBox15Check:GetChecked() == false then --Instance + ChatConfigChatSettingsLeftCheckBox15Check:Click() + end + print("Check2 " .. ChatCOnfigChatSettingsLeftCheckBox2Check:GetChecked()) + if ChatConfigChatSettingsLeftCheckBox16Check:GetChecked() == false then --Instance leader + ChatConfigChatSettingsLeftCheckBox16Check:Click() + end +end +aura_env.general = function() + if ChatConfigChatSettingsLeftCheckBox1Check:GetChecked() == true then --Say + ChatConfigChatSettingsLeftCheckBox1Check:Click() + end + if ChatConfigChatSettingsLeftCheckBox2Check:GetChecked() == true then --Emote + ChatConfigChatSettingsLeftCheckBox2Check:Click() + end + if ChatConfigChatSettingsLeftCheckBox3Check:GetChecked() == true then --Yell + ChatConfigChatSettingsLeftCheckBox3Check:Click() + end + if ChatConfigChatSettingsLeftCheckBox4Check:GetChecked() == true then --Guild chat + ChatConfigChatSettingsLeftCheckBox4Check:Click() + end + if ChatConfigChatSettingsLeftCheckBox5Check:GetChecked() == true then --Officer chat + ChatConfigChatSettingsLeftCheckBox5Check:Click() + end + if ChatConfigChatSettingsLeftCheckBox6Check:GetChecked() == true then --Guild announce + ChatConfigChatSettingsLeftCheckBox6Check:Click() + end + if ChatConfigChatSettingsLeftCheckBox7Check:GetChecked() == true then --Achievement announce + ChatConfigChatSettingsLeftCheckBox7Check:Click() + end + if ChatConfigChatSettingsLeftCheckBox8Check:GetChecked() == true then --Whisper + ChatConfigChatSettingsLeftCheckBox8Check:Click() + end + if ChatConfigChatSettingsLeftCheckBox9Check:GetChecked() == true then --Blizzard whisper + ChatConfigChatSettingsLeftCheckBox9Check:Click() + end + if ChatConfigChatSettingsLeftCheckBox10Check:GetChecked() == true then --Party + ChatConfigChatSettingsLeftCheckBox10Check:Click() + end + if ChatConfigChatSettingsLeftCheckBox11Check:GetChecked() == true then --Party leader + ChatConfigChatSettingsLeftCheckBox11Check:Click() + end + if ChatConfigChatSettingsLeftCheckBox12Check:GetChecked() == true then --Raid + ChatConfigChatSettingsLeftCheckBox12Check:Click() + end + if ChatConfigChatSettingsLeftCheckBox13Check:GetChecked() == true then --Raid leader + ChatConfigChatSettingsLeftCheckBox13Check:Click() + end + if ChatConfigChatSettingsLeftCheckBox14Check:GetChecked() == true then --Raid Warning + ChatConfigChatSettingsLeftCheckBox14Check:Click() + end + if ChatConfigChatSettingsLeftCheckBox15Check:GetChecked() == true then --Instance + ChatConfigChatSettingsLeftCheckBox15Check:Click() + end + if ChatConfigChatSettingsLeftCheckBox16Check:GetChecked() == true then --Instance leader + ChatConfigChatSettingsLeftCheckBox16Check:Click() + end end \ No newline at end of file diff --git a/Complete Projects/BFA/Shield Block.lua b/WeakAuras/Projects/ByExp/BFA/Shield Block.lua similarity index 97% rename from Complete Projects/BFA/Shield Block.lua rename to WeakAuras/Projects/ByExp/BFA/Shield Block.lua index 0fc88d0..2478707 100644 --- a/Complete Projects/BFA/Shield Block.lua +++ b/WeakAuras/Projects/ByExp/BFA/Shield Block.lua @@ -1,110 +1,110 @@ ---COMBAT_LOG_EVENT_UNFILTERED -function(...) - local se = select(3, ...) - if se == "SWING_DAMAGE" then - local dest = select(10, ...) - if dest == UnitName("player") then - local bloq = select(17, ...) - if bloq then - aura_env.dmgbloq = aura_env.dmgbloq + bloq - aura_env.numbloq = aura_env.numbloq + 1 - aura_env.region.blocks:SetText(aura_env.numbloq) - aura_env.region.damag:SetText(aura_env.color(aura_env.dmgbloq) .. aura_env.shorten(aura_env.dmgbloq)) - end - end - elseif se == "SPELL_DAMAGE" then - local dest = select(10, ...) - if dest == UnitName("player") then - local bloq = select(20, ...) - if bloq then - aura_env.dmgbloq = aura_env.dmgbloq + bloq - aura_env.numbloq = aura_env.numbloq + 1 - aura_env.region.blocks:SetText(aura_env.numbloq) - aura_env.region.damag:SetText(aura_env.color(aura_env.dmgbloq) .. aura_env.shorten(aura_env.dmgbloq)) - end - end - elseif se == "SPELL_AURA_APPLIED" then - local dest = select(6, ...) - if dest == UnitName("player") then - local name = select(14, ...) - if name == "Shield Block" or name == "Last Stand" then - aura_env.numbloq = 0 - aura_env.dmgbloq = 0 - aura_env.region.blocks:SetText(aura_env.numbloq) - aura_env.region.damag:SetText(aura_env.color(aura_env.dmgbloq) .. aura_env.shorten(aura_env.dmgbloq)) - end - end - end -end - ---INIT -aura_env.numbloq = 0 -aura_env.dmgbloq = 0 -aura_env.color = function(damag) - local damagcolor = "|cFFFFFFFF" - if damag <= 0.25 * UnitHealth("player") then damagcolor = "|cFFFF0000" - elseif damag > 0.25 * UnitHealth("player") and damag <= 0.5 * UnitHealth("player") then damagcolor = "|cFFFF8000" - elseif damag > 0.5 * UnitHealth("player") and damag <= 0.75 * UnitHealth("player") then damagcolor = "|cFF00FF00" - elseif damag > 0.75 * UnitHealth("player") and damag <= UnitHealth("player") then damagcolor = "|cFF00FFFF" - elseif damag > UnitHealth("player") and damag <= 1.33 * UnitHealth("player") then damagcolor = "|cFFFF00FF" - elseif damag > 1.33 * UnitHealth("player") and damag <= 1.66 * UnitHealth("player") then damagcolor = "|cFFFFFF00" - elseif damag > 1.66 * UnitHealth("player") then damagcolor = "|c" end - return damagcolor -end -local fontsize = 32 -if not aura_env.region.blocks then - local text = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.blocks = text - print("ok!") -end -aura_env.region.blocks:SetFont("Interface\\AddOns\\SharedMedia_MyMedia\\font\\FiraCode-Bold.ttf", fontsize, "OUTLINE") -aura_env.region.blocks:SetTextColor(1,1,1,1) -aura_env.region.blocks:SetPoint("CENTER", aura_env.region, "CENTER") -aura_env.region.blocks:SetJustifyH("LEFT") -aura_env.region.blocks:SetText("0") -aura_env.region.blocks:Show() - -if not aura_env.region.damag then - local text = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.damag = text - print("ok!") -end -aura_env.region.damag:SetFont("Interface\\AddOns\\SharedMedia_MyMedia\\font\\FiraCode-Bold.ttf", 16, "OUTLINE") -aura_env.region.damag:SetTextColor(1,1,1,1) -aura_env.region.damag:SetPoint("CENTER", aura_env.region, "CENTER", 0, -32) -aura_env.region.damag:SetJustifyH("LEFT") -aura_env.region.damag:SetText("0") -aura_env.region.damag:Show() - -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 -end -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 - else - break - end - end +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local se = select(3, ...) + if se == "SWING_DAMAGE" then + local dest = select(10, ...) + if dest == UnitName("player") then + local bloq = select(17, ...) + if bloq then + aura_env.dmgbloq = aura_env.dmgbloq + bloq + aura_env.numbloq = aura_env.numbloq + 1 + aura_env.region.blocks:SetText(aura_env.numbloq) + aura_env.region.damag:SetText(aura_env.color(aura_env.dmgbloq) .. aura_env.shorten(aura_env.dmgbloq)) + end + end + elseif se == "SPELL_DAMAGE" then + local dest = select(10, ...) + if dest == UnitName("player") then + local bloq = select(20, ...) + if bloq then + aura_env.dmgbloq = aura_env.dmgbloq + bloq + aura_env.numbloq = aura_env.numbloq + 1 + aura_env.region.blocks:SetText(aura_env.numbloq) + aura_env.region.damag:SetText(aura_env.color(aura_env.dmgbloq) .. aura_env.shorten(aura_env.dmgbloq)) + end + end + elseif se == "SPELL_AURA_APPLIED" then + local dest = select(6, ...) + if dest == UnitName("player") then + local name = select(14, ...) + if name == "Shield Block" or name == "Last Stand" then + aura_env.numbloq = 0 + aura_env.dmgbloq = 0 + aura_env.region.blocks:SetText(aura_env.numbloq) + aura_env.region.damag:SetText(aura_env.color(aura_env.dmgbloq) .. aura_env.shorten(aura_env.dmgbloq)) + end + end + end +end + +--INIT +aura_env.numbloq = 0 +aura_env.dmgbloq = 0 +aura_env.color = function(damag) + local damagcolor = "|cFFFFFFFF" + if damag <= 0.25 * UnitHealth("player") then damagcolor = "|cFFFF0000" + elseif damag > 0.25 * UnitHealth("player") and damag <= 0.5 * UnitHealth("player") then damagcolor = "|cFFFF8000" + elseif damag > 0.5 * UnitHealth("player") and damag <= 0.75 * UnitHealth("player") then damagcolor = "|cFF00FF00" + elseif damag > 0.75 * UnitHealth("player") and damag <= UnitHealth("player") then damagcolor = "|cFF00FFFF" + elseif damag > UnitHealth("player") and damag <= 1.33 * UnitHealth("player") then damagcolor = "|cFFFF00FF" + elseif damag > 1.33 * UnitHealth("player") and damag <= 1.66 * UnitHealth("player") then damagcolor = "|cFFFFFF00" + elseif damag > 1.66 * UnitHealth("player") then damagcolor = "|c" end + return damagcolor +end +local fontsize = 32 +if not aura_env.region.blocks then + local text = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.blocks = text + print("ok!") +end +aura_env.region.blocks:SetFont("Interface\\AddOns\\SharedMedia_MyMedia\\font\\FiraCode-Bold.ttf", fontsize, "OUTLINE") +aura_env.region.blocks:SetTextColor(1,1,1,1) +aura_env.region.blocks:SetPoint("CENTER", aura_env.region, "CENTER") +aura_env.region.blocks:SetJustifyH("LEFT") +aura_env.region.blocks:SetText("0") +aura_env.region.blocks:Show() + +if not aura_env.region.damag then + local text = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.damag = text + print("ok!") +end +aura_env.region.damag:SetFont("Interface\\AddOns\\SharedMedia_MyMedia\\font\\FiraCode-Bold.ttf", 16, "OUTLINE") +aura_env.region.damag:SetTextColor(1,1,1,1) +aura_env.region.damag:SetPoint("CENTER", aura_env.region, "CENTER", 0, -32) +aura_env.region.damag:SetJustifyH("LEFT") +aura_env.region.damag:SetText("0") +aura_env.region.damag:Show() + +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 +end +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 + else + break + end + end end \ No newline at end of file diff --git a/Complete Projects/BFA/Slabhide Farm.lua b/WeakAuras/Projects/ByExp/BFA/Slabhide Farm.lua similarity index 97% rename from Complete Projects/BFA/Slabhide Farm.lua rename to WeakAuras/Projects/ByExp/BFA/Slabhide Farm.lua index 58a6a13..994c4e0 100644 --- a/Complete Projects/BFA/Slabhide Farm.lua +++ b/WeakAuras/Projects/ByExp/BFA/Slabhide Farm.lua @@ -1,54 +1,54 @@ ---COMBAT_LOG_EVENT_UNFILTERED UPDATE REMOVE PLAYER_ALIVE -function(e, ...) - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, ...) - if se == "UNIT_DIED" then - local name = select(9, ...) - if name:match(aura_env.farmanimal) then - local date = date() - local h, m, s = date:match("%w+ %w+ %d* (%d*)%:(%d*)%:(%d*)") or 0, 0, 0 - WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal][#WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal] + 1] = {["h"] = h, ["m"] = m, ["s"] = s} - WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal].Count = WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal].Count + 1 - return true - end - end - elseif e == "UPDATE" then - return true - elseif e == "REMOVE" then - for i = 1, #WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal] do - WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal][i] = nil - end - return true - elseif e == "PLAYER_ALIVE" and IsInInstance() == false then - ResetInstances() - return true - end -end - ---DISPLAY -function() - local output = #WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal] .. " " .. WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal].Count .. " " .. WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal].Count * aura_env.prob .. "%\n" - local date = date() - local h, m, s = date:match("%w+ %w+ %d* (%d*)%:(%d*)%:(%d*)") or 0, 0, 0 - for k,v in ipairs(WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal]) do - output = output .. v.h .. ":" .. v.m .. ":" .. v.s .. " -" .. aura_env.round((s - v.s + (m - v.m) * 60 + (h - v.h) * 3600) / 60, 0) .. "m" .. "\n" - end - return output -end - ---INIT -aura_env.farmanimal = "Altairus" -aura_env.prob = 0.8 -if not WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal] then WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal] = {}; WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal].Count = 0 end -aura_env.ticker = C_Timer.NewTicker(10, function() WeakAuras.ScanEvents("UPDATE") end) -if WeakAuras.IsOptionsOpen() then - aura_env.ticker:Cancel() -end -aura_env.round = function(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 +--COMBAT_LOG_EVENT_UNFILTERED UPDATE REMOVE PLAYER_ALIVE +function(e, ...) + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, ...) + if se == "UNIT_DIED" then + local name = select(9, ...) + if name:match(aura_env.farmanimal) then + local date = date() + local h, m, s = date:match("%w+ %w+ %d* (%d*)%:(%d*)%:(%d*)") or 0, 0, 0 + WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal][#WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal] + 1] = {["h"] = h, ["m"] = m, ["s"] = s} + WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal].Count = WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal].Count + 1 + return true + end + end + elseif e == "UPDATE" then + return true + elseif e == "REMOVE" then + for i = 1, #WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal] do + WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal][i] = nil + end + return true + elseif e == "PLAYER_ALIVE" and IsInInstance() == false then + ResetInstances() + return true + end +end + +--DISPLAY +function() + local output = #WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal] .. " " .. WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal].Count .. " " .. WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal].Count * aura_env.prob .. "%\n" + local date = date() + local h, m, s = date:match("%w+ %w+ %d* (%d*)%:(%d*)%:(%d*)") or 0, 0, 0 + for k,v in ipairs(WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal]) do + output = output .. v.h .. ":" .. v.m .. ":" .. v.s .. " -" .. aura_env.round((s - v.s + (m - v.m) * 60 + (h - v.h) * 3600) / 60, 0) .. "m" .. "\n" + end + return output +end + +--INIT +aura_env.farmanimal = "Altairus" +aura_env.prob = 0.8 +if not WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal] then WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal] = {}; WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal].Count = 0 end +aura_env.ticker = C_Timer.NewTicker(10, function() WeakAuras.ScanEvents("UPDATE") end) +if WeakAuras.IsOptionsOpen() then + aura_env.ticker:Cancel() +end +aura_env.round = function(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 \ No newline at end of file diff --git a/Complete Projects/BFA/Stat Recap.lua b/WeakAuras/Projects/ByExp/BFA/Stat Recap.lua similarity index 98% rename from Complete Projects/BFA/Stat Recap.lua rename to WeakAuras/Projects/ByExp/BFA/Stat Recap.lua index e2b13d6..4529f79 100644 --- a/Complete Projects/BFA/Stat Recap.lua +++ b/WeakAuras/Projects/ByExp/BFA/Stat Recap.lua @@ -1,77 +1,77 @@ ---EVERY FRAME -function() - local crit, haste, mastery = aura_env.round(GetCritChance(), 2), aura_env.round(GetHaste(), 2), aura_env.round(GetMastery(), 2) - aura_env.region.crit:SetText(crit); aura_env.region.haste:SetText(haste); aura_env.region.mastery:SetText(mastery) - if crit >= 15 and crit < 20 then aura_env.region.crit:SetTextColor(aura_env.c11, aura_env.c12, aura_env.c13, 1) - elseif crit >= 20 and crit < 25 then aura_env.region.crit:SetTextColor(aura_env.c21, aura_env.c22, aura_env.c23, 1) - elseif crit >= 25 and crit < 30 then aura_env.region.crit:SetTextColor(aura_env.c31, aura_env.c32, aura_env.c33, 1) - elseif crit >= 30 and crit < 35 then aura_env.region.crit:SetTextColor(aura_env.c41, aura_env.c42, aura_env.c43, 1) - elseif crit >= 35 and crit < 40 then aura_env.region.crit:SetTextColor(aura_env.c51, aura_env.c52, aura_env.c53, 1) - elseif crit >= 40 then aura_env.region.crit:SetTextColor(aura_env.c61, aura_env.c62, aura_env.c63, 1) - end - if haste >= 10 and haste < 20 then aura_env.region.haste:SetTextColor(aura_env.c11, aura_env.c12, aura_env.c13, 1) - elseif haste >= 20 and haste < 30 then aura_env.region.haste:SetTextColor(aura_env.c21, aura_env.c22, aura_env.c23, 1) - elseif haste >= 30 and haste < 40 then aura_env.region.haste:SetTextColor(aura_env.c31, aura_env.c32, aura_env.c33, 1) - elseif haste >= 40 and haste < 50 then aura_env.region.haste:SetTextColor(aura_env.c41, aura_env.c42, aura_env.c43, 1) - elseif haste >= 50 and haste < 60 then aura_env.region.haste:SetTextColor(aura_env.c51, aura_env.c52, aura_env.c53, 1) - elseif haste >= 60 then aura_env.region.haste:SetTextColor(aura_env.c61, aura_env.c62, aura_env.c63, 1) - end - if mastery >= 15 and mastery < 20 then aura_env.region.mastery:SetTextColor(aura_env.c11, aura_env.c12, aura_env.c13, 1) - elseif mastery >= 20 and mastery < 25 then aura_env.region.mastery:SetTextColor(aura_env.c21, aura_env.c22, aura_env.c23, 1) - elseif mastery >= 25 and mastery < 35 then aura_env.region.mastery:SetTextColor(aura_env.c31, aura_env.c32, aura_env.c33, 1) - elseif mastery >= 35 and mastery < 40 then aura_env.region.mastery:SetTextColor(aura_env.c41, aura_env.c42, aura_env.c43, 1) - elseif mastery >= 40 and mastery < 45 then aura_env.region.mastery:SetTextColor(aura_env.c51, aura_env.c52, aura_env.c53, 1) - elseif mastery >= 45 then aura_env.region.mastery:SetTextColor(aura_env.c61, aura_env.c62, aura_env.c63, 1) - end - return "Crit\nHaste\nMastery" -end - ---INIT -local font, size, flags = aura_env.region.text:GetFont() -if not aura_env.region.crit then - local crit = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.crit = crit - print("ok!") -end -aura_env.region.crit:SetFont(font, size, flags) -aura_env.region.crit:SetTextColor(1,1,1,1) -aura_env.region.crit:SetPoint("RIGHT", aura_env.region, "CENTER", 96, size) -aura_env.region.crit:SetJustifyH("RIGHT") -aura_env.region.crit:SetText("11111111") -aura_env.region.crit:Show() -if not aura_env.region.haste then - local haste = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.haste = haste - print("ok!") -end -aura_env.region.haste:SetFont(font, size, flags) -aura_env.region.haste:SetTextColor(1,1,1,1) -aura_env.region.haste:SetPoint("RIGHT", aura_env.region, "CENTER", 96, 0) -aura_env.region.haste:SetJustifyH("RIGHT") -aura_env.region.haste:SetText("22222222") -aura_env.region.haste:Show() -if not aura_env.region.mastery then - local mastery = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.mastery = mastery - print("ok!") -end -aura_env.region.mastery:SetFont(font, size, flags) -aura_env.region.mastery:SetTextColor(1,1,1,1) -aura_env.region.mastery:SetPoint("RIGHT", aura_env.region, "CENTER", 96, - size) -aura_env.region.mastery:SetJustifyH("RIGHT") -aura_env.region.mastery:SetText("33333333") -aura_env.region.mastery:Show() -aura_env.round = function(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 -aura_env.c11, aura_env.c12, aura_env.c13 = 1, 0, 0 -aura_env.c21, aura_env.c22, aura_env.c23 = 1, 0.5, 0 -aura_env.c31, aura_env.c32, aura_env.c33 = 0, 1, 0 -aura_env.c41, aura_env.c42, aura_env.c43 = 0, 1, 1 -aura_env.c51, aura_env.c52, aura_env.c53 = 1, 0, 1 +--EVERY FRAME +function() + local crit, haste, mastery = aura_env.round(GetCritChance(), 2), aura_env.round(GetHaste(), 2), aura_env.round(GetMastery(), 2) + aura_env.region.crit:SetText(crit); aura_env.region.haste:SetText(haste); aura_env.region.mastery:SetText(mastery) + if crit >= 15 and crit < 20 then aura_env.region.crit:SetTextColor(aura_env.c11, aura_env.c12, aura_env.c13, 1) + elseif crit >= 20 and crit < 25 then aura_env.region.crit:SetTextColor(aura_env.c21, aura_env.c22, aura_env.c23, 1) + elseif crit >= 25 and crit < 30 then aura_env.region.crit:SetTextColor(aura_env.c31, aura_env.c32, aura_env.c33, 1) + elseif crit >= 30 and crit < 35 then aura_env.region.crit:SetTextColor(aura_env.c41, aura_env.c42, aura_env.c43, 1) + elseif crit >= 35 and crit < 40 then aura_env.region.crit:SetTextColor(aura_env.c51, aura_env.c52, aura_env.c53, 1) + elseif crit >= 40 then aura_env.region.crit:SetTextColor(aura_env.c61, aura_env.c62, aura_env.c63, 1) + end + if haste >= 10 and haste < 20 then aura_env.region.haste:SetTextColor(aura_env.c11, aura_env.c12, aura_env.c13, 1) + elseif haste >= 20 and haste < 30 then aura_env.region.haste:SetTextColor(aura_env.c21, aura_env.c22, aura_env.c23, 1) + elseif haste >= 30 and haste < 40 then aura_env.region.haste:SetTextColor(aura_env.c31, aura_env.c32, aura_env.c33, 1) + elseif haste >= 40 and haste < 50 then aura_env.region.haste:SetTextColor(aura_env.c41, aura_env.c42, aura_env.c43, 1) + elseif haste >= 50 and haste < 60 then aura_env.region.haste:SetTextColor(aura_env.c51, aura_env.c52, aura_env.c53, 1) + elseif haste >= 60 then aura_env.region.haste:SetTextColor(aura_env.c61, aura_env.c62, aura_env.c63, 1) + end + if mastery >= 15 and mastery < 20 then aura_env.region.mastery:SetTextColor(aura_env.c11, aura_env.c12, aura_env.c13, 1) + elseif mastery >= 20 and mastery < 25 then aura_env.region.mastery:SetTextColor(aura_env.c21, aura_env.c22, aura_env.c23, 1) + elseif mastery >= 25 and mastery < 35 then aura_env.region.mastery:SetTextColor(aura_env.c31, aura_env.c32, aura_env.c33, 1) + elseif mastery >= 35 and mastery < 40 then aura_env.region.mastery:SetTextColor(aura_env.c41, aura_env.c42, aura_env.c43, 1) + elseif mastery >= 40 and mastery < 45 then aura_env.region.mastery:SetTextColor(aura_env.c51, aura_env.c52, aura_env.c53, 1) + elseif mastery >= 45 then aura_env.region.mastery:SetTextColor(aura_env.c61, aura_env.c62, aura_env.c63, 1) + end + return "Crit\nHaste\nMastery" +end + +--INIT +local font, size, flags = aura_env.region.text:GetFont() +if not aura_env.region.crit then + local crit = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.crit = crit + print("ok!") +end +aura_env.region.crit:SetFont(font, size, flags) +aura_env.region.crit:SetTextColor(1,1,1,1) +aura_env.region.crit:SetPoint("RIGHT", aura_env.region, "CENTER", 96, size) +aura_env.region.crit:SetJustifyH("RIGHT") +aura_env.region.crit:SetText("11111111") +aura_env.region.crit:Show() +if not aura_env.region.haste then + local haste = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.haste = haste + print("ok!") +end +aura_env.region.haste:SetFont(font, size, flags) +aura_env.region.haste:SetTextColor(1,1,1,1) +aura_env.region.haste:SetPoint("RIGHT", aura_env.region, "CENTER", 96, 0) +aura_env.region.haste:SetJustifyH("RIGHT") +aura_env.region.haste:SetText("22222222") +aura_env.region.haste:Show() +if not aura_env.region.mastery then + local mastery = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.mastery = mastery + print("ok!") +end +aura_env.region.mastery:SetFont(font, size, flags) +aura_env.region.mastery:SetTextColor(1,1,1,1) +aura_env.region.mastery:SetPoint("RIGHT", aura_env.region, "CENTER", 96, - size) +aura_env.region.mastery:SetJustifyH("RIGHT") +aura_env.region.mastery:SetText("33333333") +aura_env.region.mastery:Show() +aura_env.round = function(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 +aura_env.c11, aura_env.c12, aura_env.c13 = 1, 0, 0 +aura_env.c21, aura_env.c22, aura_env.c23 = 1, 0.5, 0 +aura_env.c31, aura_env.c32, aura_env.c33 = 0, 1, 0 +aura_env.c41, aura_env.c42, aura_env.c43 = 0, 1, 1 +aura_env.c51, aura_env.c52, aura_env.c53 = 1, 0, 1 aura_env.c61, aura_env.c62, aura_env.c63 = 1, 1, 0 \ No newline at end of file diff --git a/Complete Projects/BFA/Stun Counter.lua b/WeakAuras/Projects/ByExp/BFA/Stun Counter.lua similarity index 96% rename from Complete Projects/BFA/Stun Counter.lua rename to WeakAuras/Projects/ByExp/BFA/Stun Counter.lua index c2db5f3..93e80b3 100644 --- a/Complete Projects/BFA/Stun Counter.lua +++ b/WeakAuras/Projects/ByExp/BFA/Stun Counter.lua @@ -1,160 +1,160 @@ ---COMBAT_LOG_EVENT_UNFILTERED RESET GROUP_ROSTER_UPDATE -function(...) - local e = select(1, ...) - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(3, ...) - if se == "SPELL_CAST_SUCCESS" then - local caster = select(6, ...) - if UnitName(caster) then - if UnitInParty(caster) or UnitName(caster) == UnitName("player") then - local spell = select(14, ...) - if aura_env.spells[spell] then - caster = caster:gsub("%-.+", "") - caster = caster:gsub(" ", "") - if not aura_env.stuns[caster] then aura_env.stuns[caster] = 1 else aura_env.stuns[caster] = aura_env.stuns[caster] + 1 end - local output1, output2 = "", "" - for k,v in pairs(aura_env.stuns) do - local class = UnitClass(k) or "" - output1 = output1 .. aura_env.classColor(class) .. k .. "|r\n" - output2 = output2 .. aura_env.classColor(class) .. v .. "|r\n" - end - aura_env.region.text2:SetText(output1) - aura_env.region.text3:SetText(output2) - end - end - end - end - elseif e == "GROUP_ROSTER_UPDATE" then - aura_env.stuns = nil - aura_env.stuns = {} - aura_env.region.text2:SetText("") - aura_env.region.text3:SetText("") - elseif e == "RESET" then - aura_env.stuns = nil - aura_env.stuns = {} - aura_env.region.text2:SetText("") - aura_env.region.text3:SetText("") - end -end - ---INIT -if not aura_env.region.text2 then - local text2 = aura_env.region:CreateFontString(nil, "OVERLAY") - aura_env.region.text2 = text2 -end -aura_env.region.text2:SetFont(aura_env.region.text:GetFont()) -aura_env.region.text2:SetTextColor(1,1,1,1) -aura_env.region.text2:SetPoint("CENTER", aura_env.region, "CENTER", 0, 0) -aura_env.region.text2:SetJustifyH("LEFT") -aura_env.region.text2:SetText("") -aura_env.region.text2:Show() - -if not aura_env.region.text3 then - local text3 = aura_env.region:CreateFontString(nil, "OVERLAY") - aura_env.region.text3 = text3 -end -aura_env.region.text3:SetFont(aura_env.region.text:GetFont()) -aura_env.region.text3:SetTextColor(1,1,1,1) -aura_env.region.text3:SetPoint("CENTER", aura_env.region, "CENTER", 100, 0) -aura_env.region.text3:SetJustifyH("LEFT") -aura_env.region.text3:SetText("") -aura_env.region.text3:Show() -aura_env.stuns = {} -aura_env.spells = -{ - --DK - ["Asphyxiate"] = 1, - ["Gnaw"] = 1, - ["Monstrous Blow"] = 1, - ["Blinding Sleet"] = 1, - ["Death Grip"] = 1, - ["Gorefiend's Grasp"] = 1, - ["Mind Freeze"] = 1, - ["Shambling Rush"] = 1, - - --DH - ["Chaos Nova"] = 1, - ["Fel Eruption"] = 1, - ["Sigil of Misery"] = 1, - ["Sigil of Chains"] = 1, - ["Disrupt"] = 1, - - --Druid - ["Maim"] = 1, - ["Mighty Bash"] = 1, - ["Rake"] = 1, - ["Typhoon"] = 1, - ["Ursol's Vortex"] = 1, - ["Skull Bash"] = 1, - - --Hunter - ["Intimidation"] = 1, - ["Bursting Shot"] = 1, - ["Muzzle"] = 1, - ["Counter Shot"] = 1, - - --Monk - ["Leg Sweep"] = 1, - ["Song of Chi-ji"] = 1, - ["Ring of Peace"] = 1, - ["Spear Hand Strike"] = 1, - - --Mage - ["Dragon's Breath"] = 1, - ["Blast Wave"] = 1, - ["Supernova"] = 1, - - --Paladin - ["Hammer of Justice"] = 1, - ["Blinding Light"] = 1, - ["Avenger's Shield"] = 1, - ["Rebuke"] = 1, - - --Priest - ["Holy Word: Chastise"] = 1, - ["Psychic Horror"] = 1, - ["Mind Bomb"] = 1, - ["Psychic Scream"] = 1, - ["Silence"] = 1, - - --Rogue - ["Between the Eyes"] = 1, - ["Cheap Shot"] = 1, - ["Kidney Shot"] = 1, - ["Blind"] = 1, - ["Kick"] = 1, - - --Shaman - ["Capacitor Totem"] = 1, - ["Pulverize"] = 1, - ["Thunderstorm"] = 1, - ["Wind Shear"] = 1, - - --Warlock - ["Axe Toss"] = 1, - ["Shadowfury"] = 1, - ["Summon Infernal"] = 1, - ["Seduction"] = 1, - ["Spell Lock"] = 1, - - --Warrior - ["Shockwave"] = 1, - ["Storm Bolt"] = 1, - ["Intimidating Shout"] = 1, - ["Pummel"] = 1, -} -aura_env.classColor = function(class) - if class == "Death Knight" then return "|cFFC41F3B" elseif - class == "Demon Hunter" then return "|cFFA330C9" elseif - class == "Druid" then return "|cFFFF7D0A" elseif - class == "Hunter" then return "|cFFABD473" elseif - class == "Mage" then return "|cFF40C7EB" elseif - class == "Monk" then return "|cFF00FF96" elseif - class == "Paladin" then return "|cFFF58CBA" elseif - class == "Priest" then return "|cFFFFFFFF" elseif - class == "Rogue" then return "|cFFFFF569" elseif - class == "Shaman" then return "|cFF0070DE" elseif - class == "Warlock" then return "|cFF8787ED" elseif - class == "Warrior" then return "|cFFC79C6E" else - return "|cFFFFFFFF" end +--COMBAT_LOG_EVENT_UNFILTERED RESET GROUP_ROSTER_UPDATE +function(...) + local e = select(1, ...) + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(3, ...) + if se == "SPELL_CAST_SUCCESS" then + local caster = select(6, ...) + if UnitName(caster) then + if UnitInParty(caster) or UnitName(caster) == UnitName("player") then + local spell = select(14, ...) + if aura_env.spells[spell] then + caster = caster:gsub("%-.+", "") + caster = caster:gsub(" ", "") + if not aura_env.stuns[caster] then aura_env.stuns[caster] = 1 else aura_env.stuns[caster] = aura_env.stuns[caster] + 1 end + local output1, output2 = "", "" + for k,v in pairs(aura_env.stuns) do + local class = UnitClass(k) or "" + output1 = output1 .. aura_env.classColor(class) .. k .. "|r\n" + output2 = output2 .. aura_env.classColor(class) .. v .. "|r\n" + end + aura_env.region.text2:SetText(output1) + aura_env.region.text3:SetText(output2) + end + end + end + end + elseif e == "GROUP_ROSTER_UPDATE" then + aura_env.stuns = nil + aura_env.stuns = {} + aura_env.region.text2:SetText("") + aura_env.region.text3:SetText("") + elseif e == "RESET" then + aura_env.stuns = nil + aura_env.stuns = {} + aura_env.region.text2:SetText("") + aura_env.region.text3:SetText("") + end +end + +--INIT +if not aura_env.region.text2 then + local text2 = aura_env.region:CreateFontString(nil, "OVERLAY") + aura_env.region.text2 = text2 +end +aura_env.region.text2:SetFont(aura_env.region.text:GetFont()) +aura_env.region.text2:SetTextColor(1,1,1,1) +aura_env.region.text2:SetPoint("CENTER", aura_env.region, "CENTER", 0, 0) +aura_env.region.text2:SetJustifyH("LEFT") +aura_env.region.text2:SetText("") +aura_env.region.text2:Show() + +if not aura_env.region.text3 then + local text3 = aura_env.region:CreateFontString(nil, "OVERLAY") + aura_env.region.text3 = text3 +end +aura_env.region.text3:SetFont(aura_env.region.text:GetFont()) +aura_env.region.text3:SetTextColor(1,1,1,1) +aura_env.region.text3:SetPoint("CENTER", aura_env.region, "CENTER", 100, 0) +aura_env.region.text3:SetJustifyH("LEFT") +aura_env.region.text3:SetText("") +aura_env.region.text3:Show() +aura_env.stuns = {} +aura_env.spells = +{ + --DK + ["Asphyxiate"] = 1, + ["Gnaw"] = 1, + ["Monstrous Blow"] = 1, + ["Blinding Sleet"] = 1, + ["Death Grip"] = 1, + ["Gorefiend's Grasp"] = 1, + ["Mind Freeze"] = 1, + ["Shambling Rush"] = 1, + + --DH + ["Chaos Nova"] = 1, + ["Fel Eruption"] = 1, + ["Sigil of Misery"] = 1, + ["Sigil of Chains"] = 1, + ["Disrupt"] = 1, + + --Druid + ["Maim"] = 1, + ["Mighty Bash"] = 1, + ["Rake"] = 1, + ["Typhoon"] = 1, + ["Ursol's Vortex"] = 1, + ["Skull Bash"] = 1, + + --Hunter + ["Intimidation"] = 1, + ["Bursting Shot"] = 1, + ["Muzzle"] = 1, + ["Counter Shot"] = 1, + + --Monk + ["Leg Sweep"] = 1, + ["Song of Chi-ji"] = 1, + ["Ring of Peace"] = 1, + ["Spear Hand Strike"] = 1, + + --Mage + ["Dragon's Breath"] = 1, + ["Blast Wave"] = 1, + ["Supernova"] = 1, + + --Paladin + ["Hammer of Justice"] = 1, + ["Blinding Light"] = 1, + ["Avenger's Shield"] = 1, + ["Rebuke"] = 1, + + --Priest + ["Holy Word: Chastise"] = 1, + ["Psychic Horror"] = 1, + ["Mind Bomb"] = 1, + ["Psychic Scream"] = 1, + ["Silence"] = 1, + + --Rogue + ["Between the Eyes"] = 1, + ["Cheap Shot"] = 1, + ["Kidney Shot"] = 1, + ["Blind"] = 1, + ["Kick"] = 1, + + --Shaman + ["Capacitor Totem"] = 1, + ["Pulverize"] = 1, + ["Thunderstorm"] = 1, + ["Wind Shear"] = 1, + + --Warlock + ["Axe Toss"] = 1, + ["Shadowfury"] = 1, + ["Summon Infernal"] = 1, + ["Seduction"] = 1, + ["Spell Lock"] = 1, + + --Warrior + ["Shockwave"] = 1, + ["Storm Bolt"] = 1, + ["Intimidating Shout"] = 1, + ["Pummel"] = 1, +} +aura_env.classColor = function(class) + if class == "Death Knight" then return "|cFFC41F3B" elseif + class == "Demon Hunter" then return "|cFFA330C9" elseif + class == "Druid" then return "|cFFFF7D0A" elseif + class == "Hunter" then return "|cFFABD473" elseif + class == "Mage" then return "|cFF40C7EB" elseif + class == "Monk" then return "|cFF00FF96" elseif + class == "Paladin" then return "|cFFF58CBA" elseif + class == "Priest" then return "|cFFFFFFFF" elseif + class == "Rogue" then return "|cFFFFF569" elseif + class == "Shaman" then return "|cFF0070DE" elseif + class == "Warlock" then return "|cFF8787ED" elseif + class == "Warrior" then return "|cFFC79C6E" else + return "|cFFFFFFFF" end end \ No newline at end of file diff --git a/Complete Projects/BFA/Stun Recap.lua b/WeakAuras/Projects/ByExp/BFA/Stun Recap.lua similarity index 96% rename from Complete Projects/BFA/Stun Recap.lua rename to WeakAuras/Projects/ByExp/BFA/Stun Recap.lua index 6c4e879..4ccd3d3 100644 --- a/Complete Projects/BFA/Stun Recap.lua +++ b/WeakAuras/Projects/ByExp/BFA/Stun Recap.lua @@ -1,137 +1,137 @@ ---CLEU -function(...) - local se = select(3, ...) - if se == "SPELL_CAST_SUCCESS" then - local spell = select(14, ...) - if aura_env.spells[spell] then - local caster = select(6, ...) - caster = caster:gsub("%-.+", "") - caster = caster:gsub(" ", "") - if #aura_env.stuns == 5 then - table.remove(aura_env.stuns, 1) - table.insert(aura_env.stuns, caster .. " - " .. spell) - else - table.insert(aura_env.stuns, caster .. " - " .. spell) - end - local output = "" - for k,v in ipairs(aura_env.stuns) do - local name = v:match("(.-) ") - local class = UnitClass(name) or "" - output = output .. aura_env.classColor(class) .. v .. "|r\n" - end - aura_env.region.text2:SetText(output) - aura_env.region.text2:Show() - end - end -end - ---INIT -if not aura_env.region.text2 then - local text2 = aura_env.region:CreateFontString(nil, "OVERLAY") - aura_env.region.text2 = text2 -end -aura_env.region.text2:SetFont(aura_env.region.text:GetFont()) -aura_env.region.text2:SetTextColor(1,1,1,1) -aura_env.region.text2:SetPoint("CENTER", aura_env.region, "CENTER", 0, 0) -aura_env.region.text2:SetJustifyH("CENTER") -aura_env.region.text2:SetText("") -aura_env.region.text2:Show() -aura_env.stuns = {} -aura_env.spells = -{ - --DK - ["Asphyxiate"] = 1, - ["Gnaw"] = 1, - ["Monstrous Blow"] = 1, - ["Blinding Sleet"] = 1, - ["Death Grip"] = 1, - ["Gorefiend's Grasp"] = 1, - ["Mind Freeze"] = 1, - ["Shambling Rush"] = 1, - - --DH - ["Chaos Nova"] = 1, - ["Fel Eruption"] = 1, - ["Sigil of Misery"] = 1, - ["Sigil of Chains"] = 1, - ["Disrupt"] = 1, - - --Druid - ["Maim"] = 1, - ["Mighty Bash"] = 1, - ["Rake"] = 1, - ["Typhoon"] = 1, - ["Ursol's Vortex"] = 1, - ["Skull Bash"] = 1, - - --Hunter - ["Intimidation"] = 1, - ["Bursting Shot"] = 1, - ["Muzzle"] = 1, - ["Counter Shot"] = 1, - - --Monk - ["Leg Sweep"] = 1, - ["Song of Chi-ji"] = 1, - ["Ring of Peace"] = 1, - ["Spear Hand Strike"] = 1, - - --Mage - ["Dragon's Breath"] = 1, - ["Blast Wave"] = 1, - ["Supernova"] = 1, - - --Paladin - ["Hammer of Justice"] = 1, - ["Blinding Light"] = 1, - ["Avenger's Shield"] = 1, - ["Rebuke"] = 1, - - --Priest - ["Holy Word: Chastise"] = 1, - ["Psychic Horror"] = 1, - ["Mind Bomb"] = 1, - ["Psychic Scream"] = 1, - ["Silence"] = 1, - - --Rogue - ["Between the Eyes"] = 1, - ["Cheap Shot"] = 1, - ["Kidney Shot"] = 1, - ["Blind"] = 1, - ["Kick"] = 1, - - --Shaman - ["Capacitor Totem"] = 1, - ["Pulverize"] = 1, - ["Thunderstorm"] = 1, - ["Wind Shear"] = 1, - - --Warlock - ["Axe Toss"] = 1, - ["Shadowfury"] = 1, - ["Summon Infernal"] = 1, - ["Seduction"] = 1, - ["Spell Lock"] = 1, - - --Warrior - ["Shockwave"] = 1, - ["Storm Bolt"] = 1, - ["Intimidating Shout"] = 1, - ["Pummel"] = 1, -} -aura_env.classColor = function(class) - if class == "Death Knight" then return "|cFFC41F3B" elseif - class == "Demon Hunter" then return "|cFFA330C9" elseif - class == "Druid" then return "|cFFFF7D0A" elseif - class == "Hunter" then return "|cFFABD473" elseif - class == "Mage" then return "|cFF40C7EB" elseif - class == "Monk" then return "|cFF00FF96" elseif - class == "Paladin" then return "|cFFF58CBA" elseif - class == "Priest" then return "|cFFFFFFFF" elseif - class == "Rogue" then return "|cFFFFF569" elseif - class == "Shaman" then return "|cFF0070DE" elseif - class == "Warlock" then return "|cFF8787ED" elseif - class == "Warrior" then return "|cFFC79C6E" else - return "|cFFFFFFFF" end +--CLEU +function(...) + local se = select(3, ...) + if se == "SPELL_CAST_SUCCESS" then + local spell = select(14, ...) + if aura_env.spells[spell] then + local caster = select(6, ...) + caster = caster:gsub("%-.+", "") + caster = caster:gsub(" ", "") + if #aura_env.stuns == 5 then + table.remove(aura_env.stuns, 1) + table.insert(aura_env.stuns, caster .. " - " .. spell) + else + table.insert(aura_env.stuns, caster .. " - " .. spell) + end + local output = "" + for k,v in ipairs(aura_env.stuns) do + local name = v:match("(.-) ") + local class = UnitClass(name) or "" + output = output .. aura_env.classColor(class) .. v .. "|r\n" + end + aura_env.region.text2:SetText(output) + aura_env.region.text2:Show() + end + end +end + +--INIT +if not aura_env.region.text2 then + local text2 = aura_env.region:CreateFontString(nil, "OVERLAY") + aura_env.region.text2 = text2 +end +aura_env.region.text2:SetFont(aura_env.region.text:GetFont()) +aura_env.region.text2:SetTextColor(1,1,1,1) +aura_env.region.text2:SetPoint("CENTER", aura_env.region, "CENTER", 0, 0) +aura_env.region.text2:SetJustifyH("CENTER") +aura_env.region.text2:SetText("") +aura_env.region.text2:Show() +aura_env.stuns = {} +aura_env.spells = +{ + --DK + ["Asphyxiate"] = 1, + ["Gnaw"] = 1, + ["Monstrous Blow"] = 1, + ["Blinding Sleet"] = 1, + ["Death Grip"] = 1, + ["Gorefiend's Grasp"] = 1, + ["Mind Freeze"] = 1, + ["Shambling Rush"] = 1, + + --DH + ["Chaos Nova"] = 1, + ["Fel Eruption"] = 1, + ["Sigil of Misery"] = 1, + ["Sigil of Chains"] = 1, + ["Disrupt"] = 1, + + --Druid + ["Maim"] = 1, + ["Mighty Bash"] = 1, + ["Rake"] = 1, + ["Typhoon"] = 1, + ["Ursol's Vortex"] = 1, + ["Skull Bash"] = 1, + + --Hunter + ["Intimidation"] = 1, + ["Bursting Shot"] = 1, + ["Muzzle"] = 1, + ["Counter Shot"] = 1, + + --Monk + ["Leg Sweep"] = 1, + ["Song of Chi-ji"] = 1, + ["Ring of Peace"] = 1, + ["Spear Hand Strike"] = 1, + + --Mage + ["Dragon's Breath"] = 1, + ["Blast Wave"] = 1, + ["Supernova"] = 1, + + --Paladin + ["Hammer of Justice"] = 1, + ["Blinding Light"] = 1, + ["Avenger's Shield"] = 1, + ["Rebuke"] = 1, + + --Priest + ["Holy Word: Chastise"] = 1, + ["Psychic Horror"] = 1, + ["Mind Bomb"] = 1, + ["Psychic Scream"] = 1, + ["Silence"] = 1, + + --Rogue + ["Between the Eyes"] = 1, + ["Cheap Shot"] = 1, + ["Kidney Shot"] = 1, + ["Blind"] = 1, + ["Kick"] = 1, + + --Shaman + ["Capacitor Totem"] = 1, + ["Pulverize"] = 1, + ["Thunderstorm"] = 1, + ["Wind Shear"] = 1, + + --Warlock + ["Axe Toss"] = 1, + ["Shadowfury"] = 1, + ["Summon Infernal"] = 1, + ["Seduction"] = 1, + ["Spell Lock"] = 1, + + --Warrior + ["Shockwave"] = 1, + ["Storm Bolt"] = 1, + ["Intimidating Shout"] = 1, + ["Pummel"] = 1, +} +aura_env.classColor = function(class) + if class == "Death Knight" then return "|cFFC41F3B" elseif + class == "Demon Hunter" then return "|cFFA330C9" elseif + class == "Druid" then return "|cFFFF7D0A" elseif + class == "Hunter" then return "|cFFABD473" elseif + class == "Mage" then return "|cFF40C7EB" elseif + class == "Monk" then return "|cFF00FF96" elseif + class == "Paladin" then return "|cFFF58CBA" elseif + class == "Priest" then return "|cFFFFFFFF" elseif + class == "Rogue" then return "|cFFFFF569" elseif + class == "Shaman" then return "|cFF0070DE" elseif + class == "Warlock" then return "|cFF8787ED" elseif + class == "Warrior" then return "|cFFC79C6E" else + return "|cFFFFFFFF" end end \ No newline at end of file diff --git a/Complete Projects/BFA/TSU - Combat HP Bars.lua b/WeakAuras/Projects/ByExp/BFA/TSU - Combat HP Bars.lua similarity index 96% rename from Complete Projects/BFA/TSU - Combat HP Bars.lua rename to WeakAuras/Projects/ByExp/BFA/TSU - Combat HP Bars.lua index 8dce339..b5b8eae 100644 --- a/Complete Projects/BFA/TSU - Combat HP Bars.lua +++ b/WeakAuras/Projects/ByExp/BFA/TSU - Combat HP Bars.lua @@ -1,106 +1,106 @@ ---UNIT_HEALTH NAME_PLATE_UNIT_REMOVED NAME_PLATE_UNIT_ADDED UNIT_THREAT_LIST_UPDATE PLAYER_TARGET_CHANGED -function(allstates, e, u) - if e == "PLAYER_TARGET_CHANGED" then - return true - elseif e == "UNIT_HEALTH" or e == "UNIT_THREAT_LIST_UPDATE" then - if u then - print(UnitDetailedThreatSituation("player", u)) - if UnitExists(u) and u:match("nameplate") and UnitDetailedThreatSituation("player", u) then - local threat = select(5, UnitDetailedThreatSituation("player", u)) - local tank = UnitDetailedThreatSituation("player", u) - local hp = UnitHealth(u) - local maxhp = UnitHealthMax(u) - local php = aura_env.round((hp / maxhp) * 100, 1) - local name = UnitName(u) - local target = false - if UnitIsUnit(u, "target") then target = true end - allstates[u] = - { - show = true, - changed = true, - name = name, - unit = u, - value = hp, - total = maxhp, - index = php, - shp = aura_env.shorten(hp), - tank = tank, - target = target, - resort = true, - progressType = "static", - } - return true - end - end - elseif e == "NAME_PLATE_UNIT_REMOVED" then - if allstates[u] then allstates[u].changed = true; allstates[u].show = false; return true end - elseif e == "NAME_PLATE_UNIT_ADDED" then - if not allstates[u] then - if u then - if UnitExists(u) and UnitDetailedThreatSituation("player", u) then - local threat = select(5, UnitDetailedThreatSituation("player", u)) - local tank = UnitDetailedThreatSituation("player", u) - local hp = UnitHealth(u) - local maxhp = UnitHealthMax(u) - local php = aura_env.round((hp / maxhp) * 100, 1) - local name = UnitName(u) - local target = false - if UnitIsUnit(u, "target") then target = true end - allstates[u] = - { - show = true, - changed = true, - name = name, - unit = u, - value = hp, - total = maxhp, - index = php, - shp = aura_env.shorten(hp), - tank = tank, - target = target, - resort = true, - progressType = "static", - } - return true - end - end - end - end -end - ---ADDITIONAL INFO -{ - tank = "bool", - target = "bool", - index = "number", -} - ---INIT -aura_env.round = function(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 -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 +--UNIT_HEALTH NAME_PLATE_UNIT_REMOVED NAME_PLATE_UNIT_ADDED UNIT_THREAT_LIST_UPDATE PLAYER_TARGET_CHANGED +function(allstates, e, u) + if e == "PLAYER_TARGET_CHANGED" then + return true + elseif e == "UNIT_HEALTH" or e == "UNIT_THREAT_LIST_UPDATE" then + if u then + print(UnitDetailedThreatSituation("player", u)) + if UnitExists(u) and u:match("nameplate") and UnitDetailedThreatSituation("player", u) then + local threat = select(5, UnitDetailedThreatSituation("player", u)) + local tank = UnitDetailedThreatSituation("player", u) + local hp = UnitHealth(u) + local maxhp = UnitHealthMax(u) + local php = aura_env.round((hp / maxhp) * 100, 1) + local name = UnitName(u) + local target = false + if UnitIsUnit(u, "target") then target = true end + allstates[u] = + { + show = true, + changed = true, + name = name, + unit = u, + value = hp, + total = maxhp, + index = php, + shp = aura_env.shorten(hp), + tank = tank, + target = target, + resort = true, + progressType = "static", + } + return true + end + end + elseif e == "NAME_PLATE_UNIT_REMOVED" then + if allstates[u] then allstates[u].changed = true; allstates[u].show = false; return true end + elseif e == "NAME_PLATE_UNIT_ADDED" then + if not allstates[u] then + if u then + if UnitExists(u) and UnitDetailedThreatSituation("player", u) then + local threat = select(5, UnitDetailedThreatSituation("player", u)) + local tank = UnitDetailedThreatSituation("player", u) + local hp = UnitHealth(u) + local maxhp = UnitHealthMax(u) + local php = aura_env.round((hp / maxhp) * 100, 1) + local name = UnitName(u) + local target = false + if UnitIsUnit(u, "target") then target = true end + allstates[u] = + { + show = true, + changed = true, + name = name, + unit = u, + value = hp, + total = maxhp, + index = php, + shp = aura_env.shorten(hp), + tank = tank, + target = target, + resort = true, + progressType = "static", + } + return true + end + end + end + end +end + +--ADDITIONAL INFO +{ + tank = "bool", + target = "bool", + index = "number", +} + +--INIT +aura_env.round = function(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 +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 end \ No newline at end of file diff --git a/Complete Projects/BFA/TSU - Enemy Health.lua b/WeakAuras/Projects/ByExp/BFA/TSU - Enemy Health.lua similarity index 96% rename from Complete Projects/BFA/TSU - Enemy Health.lua rename to WeakAuras/Projects/ByExp/BFA/TSU - Enemy Health.lua index 5eaea2e..d57495f 100644 --- a/Complete Projects/BFA/TSU - Enemy Health.lua +++ b/WeakAuras/Projects/ByExp/BFA/TSU - Enemy Health.lua @@ -1,121 +1,121 @@ ---TSU ---UNIT_HEALTH NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED -function(allstates) - for _,v in pairs(allstates) do - v.show = false - v.changed = true - end - - for i = 1, 40 do - local unit = "nameplate" .. i - if UnitExists(unit) then - if UnitIsPlayer(unit) then - print("3", unit) - if UnitIsEnemy("player", unit) then - print("4", unit) - local hp = UnitHealth(unit) - local maxHp = UnitHealthMax(unit) - local hppp = aura_env.round(hp / maxHp * 100, 2) - local shortHP = aura_env.shorten(hp) - local shortmaxHP = aura_env.shorten(maxHp) - local name = UnitName(unit) - local class = UnitClass(unit) - print(hp, maxHp, hppp, shortHP, shortmaxHP, name, class) - allstates[unit] = - { - changed = true, - show = true, - resort = true, - progressType = "static", - value = hp, - total = maxHp, - index = hppp, - name = name, - hppp = hppp, - shortHP = shortHP, - shortmaxHP = shortmaxHP, - class = class, - } - end - end - else - break - end - end - return true -end - ---INIT -aura_env.round = function(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 -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 -end -aura_env.classColor = function(class) - 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 1, 1, 1, 1 end -end -aura_env.round = function(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 -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 -end -aura_env.range = function(val, min, max, max2) - val = 1 - (((max - val) / (max - min)) * max2) - return val -end - ---ANIMATION -function() - if aura_env.statee then - -- print(aura_env.state.class) - return aura_env.classColor(aura_env.statee.class) - end +--TSU +--UNIT_HEALTH NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED +function(allstates) + for _,v in pairs(allstates) do + v.show = false + v.changed = true + end + + for i = 1, 40 do + local unit = "nameplate" .. i + if UnitExists(unit) then + if UnitIsPlayer(unit) then + print("3", unit) + if UnitIsEnemy("player", unit) then + print("4", unit) + local hp = UnitHealth(unit) + local maxHp = UnitHealthMax(unit) + local hppp = aura_env.round(hp / maxHp * 100, 2) + local shortHP = aura_env.shorten(hp) + local shortmaxHP = aura_env.shorten(maxHp) + local name = UnitName(unit) + local class = UnitClass(unit) + print(hp, maxHp, hppp, shortHP, shortmaxHP, name, class) + allstates[unit] = + { + changed = true, + show = true, + resort = true, + progressType = "static", + value = hp, + total = maxHp, + index = hppp, + name = name, + hppp = hppp, + shortHP = shortHP, + shortmaxHP = shortmaxHP, + class = class, + } + end + end + else + break + end + end + return true +end + +--INIT +aura_env.round = function(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 +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 +end +aura_env.classColor = function(class) + 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 1, 1, 1, 1 end +end +aura_env.round = function(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 +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 +end +aura_env.range = function(val, min, max, max2) + val = 1 - (((max - val) / (max - min)) * max2) + return val +end + +--ANIMATION +function() + if aura_env.statee then + -- print(aura_env.state.class) + return aura_env.classColor(aura_env.statee.class) + end end \ No newline at end of file diff --git a/Complete Projects/BFA/TSU - Enemy Nameplates Maybe.lua b/WeakAuras/Projects/ByExp/BFA/TSU - Enemy Nameplates Maybe.lua similarity index 97% rename from Complete Projects/BFA/TSU - Enemy Nameplates Maybe.lua rename to WeakAuras/Projects/ByExp/BFA/TSU - Enemy Nameplates Maybe.lua index 55efe2d..382c524 100644 --- a/Complete Projects/BFA/TSU - Enemy Nameplates Maybe.lua +++ b/WeakAuras/Projects/ByExp/BFA/TSU - Enemy Nameplates Maybe.lua @@ -1,58 +1,58 @@ ---NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED REMOVE_UNIT -function(allstates, e, unit) - if e == "NAME_PLATE_UNIT_ADDED" and unit then - if UnitIsPlayer(unit) then - if UnitIsEnemy("player", unit) then - local _, _, class = UnitClass(unit) - allstates[unit] = - { - changed = true, - show = true, - unit = unit, - class = class, - } - return true - end - end - elseif e == "NAME_PLATE_UNIT_REMOVED" and unit then - if allstates[unit] then - local LCG = LibStub("LibCustomGlow-1.0") - allstates[unit].show = false - allstates[unit].changed = true - local nameplate = C_NamePlate.GetNamePlateForUnit(unit) - LCG.PixelGlow_Stop(nameplate) - return true - end - elseif e == "REMOVE_UNIT" then - if allstates[unit] then - allstates[unit].show = false - allstates[unit].changed = true - return true - end - end -end - ---ON SHOW -local LCG = LibStub("LibCustomGlow-1.0") -local nameplate = C_NamePlate.GetNamePlateForUnit(aura_env.statee.unit) -local aura_env = aura_env -local unit = aura_env.statee.unit -LCG.PixelGlow_Start(nameplate, {aura_env.classColor(aura_env.statee.class)}, nil, 0, 8, 4, 0, -4) -C_Timer.After(4, function() WeakAuras.ScanEvents("REMOVE_UNIT", unit); LCG.PixelGlow_Stop(nameplate) end) - ---INIT -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 +--NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED REMOVE_UNIT +function(allstates, e, unit) + if e == "NAME_PLATE_UNIT_ADDED" and unit then + if UnitIsPlayer(unit) then + if UnitIsEnemy("player", unit) then + local _, _, class = UnitClass(unit) + allstates[unit] = + { + changed = true, + show = true, + unit = unit, + class = class, + } + return true + end + end + elseif e == "NAME_PLATE_UNIT_REMOVED" and unit then + if allstates[unit] then + local LCG = LibStub("LibCustomGlow-1.0") + allstates[unit].show = false + allstates[unit].changed = true + local nameplate = C_NamePlate.GetNamePlateForUnit(unit) + LCG.PixelGlow_Stop(nameplate) + return true + end + elseif e == "REMOVE_UNIT" then + if allstates[unit] then + allstates[unit].show = false + allstates[unit].changed = true + return true + end + end +end + +--ON SHOW +local LCG = LibStub("LibCustomGlow-1.0") +local nameplate = C_NamePlate.GetNamePlateForUnit(aura_env.statee.unit) +local aura_env = aura_env +local unit = aura_env.statee.unit +LCG.PixelGlow_Start(nameplate, {aura_env.classColor(aura_env.statee.class)}, nil, 0, 8, 4, 0, -4) +C_Timer.After(4, function() WeakAuras.ScanEvents("REMOVE_UNIT", unit); LCG.PixelGlow_Stop(nameplate) end) + +--INIT +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 end \ No newline at end of file diff --git a/Complete Projects/BFA/TSU - Herb Icons.lua b/WeakAuras/Projects/ByExp/BFA/TSU - Herb Icons.lua similarity index 95% rename from Complete Projects/BFA/TSU - Herb Icons.lua rename to WeakAuras/Projects/ByExp/BFA/TSU - Herb Icons.lua index 19c6182..1971507 100644 --- a/Complete Projects/BFA/TSU - Herb Icons.lua +++ b/WeakAuras/Projects/ByExp/BFA/TSU - Herb Icons.lua @@ -1,64 +1,64 @@ ---BAG_UPDATE UPDATE -function(allstates, e, id) - if e == "BAG_UPDATE" then - if id then - for i = 1, GetContainerNumSlots(id) do - local iid = GetContainerItemID(id, i) - if aura_env.herbIDs[iid] then - local texture = select(1, GetContainerItemInfo(id, i)) - local amount = GetItemCount(iid, false) - local bank = GetItemCount(iid, true) - amount - allstates[iid] = - { - show = true, - changed = true, - amount = amount, - bank = bank, - index = amount, - icon = texture, - itemId = iid, - resort = true, - } - return true - end - end - end - elseif e == "UPDATE" then - for i = 0, 4 do - for j = 1, GetContainerNumSlots(i) do - local iid = GetContainerItemID(i, j) - if aura_env.herbIDs[iid] then - local texture = select(1, GetContainerItemInfo(i, j)) - local amount = GetItemCount(iid, false) - local bank = GetItemCount(iid, true) - amount - allstates[iid] = - { - show = true, - changed = true, - amount = amount, - bank = bank, - index = amount, - icon = texture, - itemId = iid, - resort = true, - } - end - end - end - return true - end -end - ---INIT -aura_env.herbIDs = -{ - [168487] = "Zin'anthid", - [152511] = "Sea Stalk", - [152505] = "Riverbud", - [152506] = "Star Moss", - [152507] = "Akunda's Bite", - [152508] = "Winter's Kiss", - [152509] = "Siren's Pollen", - [152510] = "Anchor Weed", -} +--BAG_UPDATE UPDATE +function(allstates, e, id) + if e == "BAG_UPDATE" then + if id then + for i = 1, GetContainerNumSlots(id) do + local iid = GetContainerItemID(id, i) + if aura_env.herbIDs[iid] then + local texture = select(1, GetContainerItemInfo(id, i)) + local amount = GetItemCount(iid, false) + local bank = GetItemCount(iid, true) - amount + allstates[iid] = + { + show = true, + changed = true, + amount = amount, + bank = bank, + index = amount, + icon = texture, + itemId = iid, + resort = true, + } + return true + end + end + end + elseif e == "UPDATE" then + for i = 0, 4 do + for j = 1, GetContainerNumSlots(i) do + local iid = GetContainerItemID(i, j) + if aura_env.herbIDs[iid] then + local texture = select(1, GetContainerItemInfo(i, j)) + local amount = GetItemCount(iid, false) + local bank = GetItemCount(iid, true) - amount + allstates[iid] = + { + show = true, + changed = true, + amount = amount, + bank = bank, + index = amount, + icon = texture, + itemId = iid, + resort = true, + } + end + end + end + return true + end +end + +--INIT +aura_env.herbIDs = +{ + [168487] = "Zin'anthid", + [152511] = "Sea Stalk", + [152505] = "Riverbud", + [152506] = "Star Moss", + [152507] = "Akunda's Bite", + [152508] = "Winter's Kiss", + [152509] = "Siren's Pollen", + [152510] = "Anchor Weed", +} WeakAuras.ScanEvents("UPDATE") \ No newline at end of file diff --git a/Complete Projects/BFA/TSU - Loot Window.lua b/WeakAuras/Projects/ByExp/BFA/TSU - Loot Window.lua similarity index 95% rename from Complete Projects/BFA/TSU - Loot Window.lua rename to WeakAuras/Projects/ByExp/BFA/TSU - Loot Window.lua index c0c2886..37e0e4e 100644 --- a/Complete Projects/BFA/TSU - Loot Window.lua +++ b/WeakAuras/Projects/ByExp/BFA/TSU - Loot Window.lua @@ -1,371 +1,371 @@ ---REMOVE_ITEM_SHOW ADD_ITEM_SHOW -function(allstates, e, what, howmuch, looted) - if e == "ADD_ITEM_SHOW" then - if what then - --Get info about item - local icon = 0 - local name = GetItemInfo(what) - --Save icon to databases - if not WeakAurasSaved.CustomTrash.IconDatabase[name] then icon = select(10, GetItemInfo(name)) else icon = WeakAurasSaved.CustomTrash.IconDatabase[name] end - if name and icon and not WeakAurasSaved.CustomTrash.IconDatabase[name] then WeakAurasSaved.CustomTrash.IconDatabase[name] = icon; print("Adding|cff78cb00 ", name, " |rto the icon database") end - --Get ID for tooltip - local indexid = #allstates + 1 - local ID - if WeakAurasSaved.CustomTrash.IDDatabase[name] then ID = WeakAurasSaved.CustomTrash.IDDatabase[name] end - allstates[indexid] = - { - show = true, - changed = true, - index = GetTime(), - resort = true, - icon = icon, - name = what, - amount = howmuch, - looted = looted, - } - if ID then - allstates[indexid].itemId = ID - end - C_Timer.After(5, function() WeakAuras.ScanEvents("REMOVE_ITEM_SHOW", indexid) end) - return true - end - elseif e == "REMOVE_ITEM_SHOW" then - if allstates[what] then - allstates[what].show = false - allstates[what].changed = true - return true - end - end -end - ---ON SHOW -if aura_env.statee.looted == true then - if not aura_env.region.texture then - local texture = aura_env.region:CreateTexture(nil, aura_env.region) - aura_env.region.texture = texture - end - aura_env.region.texture:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\ok-icon.tga") - aura_env.region.texture:ClearAllPoints() - aura_env.region.texture:SetPoint("CENTER", aura_env.region, "CENTER") - aura_env.region.texture:Show() -end - ---ON HIDE -if aura_env.region.texture then aura_env.region.texture:Hide() end - ---INIT -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, - }, +--REMOVE_ITEM_SHOW ADD_ITEM_SHOW +function(allstates, e, what, howmuch, looted) + if e == "ADD_ITEM_SHOW" then + if what then + --Get info about item + local icon = 0 + local name = GetItemInfo(what) + --Save icon to databases + if not WeakAurasSaved.CustomTrash.IconDatabase[name] then icon = select(10, GetItemInfo(name)) else icon = WeakAurasSaved.CustomTrash.IconDatabase[name] end + if name and icon and not WeakAurasSaved.CustomTrash.IconDatabase[name] then WeakAurasSaved.CustomTrash.IconDatabase[name] = icon; print("Adding|cff78cb00 ", name, " |rto the icon database") end + --Get ID for tooltip + local indexid = #allstates + 1 + local ID + if WeakAurasSaved.CustomTrash.IDDatabase[name] then ID = WeakAurasSaved.CustomTrash.IDDatabase[name] end + allstates[indexid] = + { + show = true, + changed = true, + index = GetTime(), + resort = true, + icon = icon, + name = what, + amount = howmuch, + looted = looted, + } + if ID then + allstates[indexid].itemId = ID + end + C_Timer.After(5, function() WeakAuras.ScanEvents("REMOVE_ITEM_SHOW", indexid) end) + return true + end + elseif e == "REMOVE_ITEM_SHOW" then + if allstates[what] then + allstates[what].show = false + allstates[what].changed = true + return true + end + end +end + +--ON SHOW +if aura_env.statee.looted == true then + if not aura_env.region.texture then + local texture = aura_env.region:CreateTexture(nil, aura_env.region) + aura_env.region.texture = texture + end + aura_env.region.texture:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\ok-icon.tga") + aura_env.region.texture:ClearAllPoints() + aura_env.region.texture:SetPoint("CENTER", aura_env.region, "CENTER") + aura_env.region.texture:Show() +end + +--ON HIDE +if aura_env.region.texture then aura_env.region.texture:Hide() end + +--INIT +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, + }, } \ No newline at end of file diff --git a/Complete Projects/BFA/TSU - Loot.lua b/WeakAuras/Projects/ByExp/BFA/TSU - Loot.lua similarity index 96% rename from Complete Projects/BFA/TSU - Loot.lua rename to WeakAuras/Projects/ByExp/BFA/TSU - Loot.lua index 61b90d2..6c597cc 100644 --- a/Complete Projects/BFA/TSU - Loot.lua +++ b/WeakAuras/Projects/ByExp/BFA/TSU - Loot.lua @@ -1,58 +1,58 @@ ---CHAT_MSG_LOOT REMOVE_ITEM ADD_ITEM -function(allstates, e, msg, howmuch) - if e == "CHAT_MSG_LOOT" then - if msg then - local who = msg:match("%w+") - if who == "You" then - local howmuch = msg:match("(x%d+).$") - local what - for itemLink in msg:gmatch("|%x+|Hitem:.-|h.-|h|r") do - what = itemLink - end - --WeakAuras.ScanEvents("ADD_ITEM", what, howmuch) - C_Timer.After(0.05, function() WeakAuras.ScanEvents("ADD_ITEM", what, howmuch) end) - end - end - elseif e == "ADD_ITEM" then - local what = msg - if what then - local rarity = select(3, GetItemInfo(what)) - local icon = 0 - local name = GetItemInfo(what) - if not WeakAurasSaved.CustomTrash.IconDatabase[name] then icon = select(10, GetItemInfo(name)) else icon = WeakAurasSaved.CustomTrash.IconDatabase[name] end - if name and icon and not WeakAurasSaved.CustomTrash.IconDatabase[name] then WeakAurasSaved.CustomTrash.IconDatabase[name] = icon; print("Adding|cff78cb00 ", name, " |rto the icon database") end - local color = "ffffffff" - if rarity then - color = select(4, GetItemQualityColor(rarity)) - end - color = "|c" .. color - local indexid = #allstates + 1 - local ID - if WeakAurasSaved.CustomTrash.IDDatabase[name] then ID = WeakAurasSaved.CustomTrash.IDDatabase[name] end - allstates[indexid] = - { - show = true, - changed = true, - expirationTime = GetTime() + 1, - index = GetTime(), - autoHide = true, - resort = true, - icon = icon, - name = what, - color = color, - amount = howmuch, - } - if ID then - allstates[indexid].itemId = ID - end - C_Timer.After(1, function() WeakAuras.ScanEvents("REMOVE_ITEM", indexid) end) - return true - end - elseif e == "REMOVE_ITEM" then - if allstates[msg] then - allstates[msg].show = false - allstates[msg].changed = true - return true - end - end +--CHAT_MSG_LOOT REMOVE_ITEM ADD_ITEM +function(allstates, e, msg, howmuch) + if e == "CHAT_MSG_LOOT" then + if msg then + local who = msg:match("%w+") + if who == "You" then + local howmuch = msg:match("(x%d+).$") + local what + for itemLink in msg:gmatch("|%x+|Hitem:.-|h.-|h|r") do + what = itemLink + end + --WeakAuras.ScanEvents("ADD_ITEM", what, howmuch) + C_Timer.After(0.05, function() WeakAuras.ScanEvents("ADD_ITEM", what, howmuch) end) + end + end + elseif e == "ADD_ITEM" then + local what = msg + if what then + local rarity = select(3, GetItemInfo(what)) + local icon = 0 + local name = GetItemInfo(what) + if not WeakAurasSaved.CustomTrash.IconDatabase[name] then icon = select(10, GetItemInfo(name)) else icon = WeakAurasSaved.CustomTrash.IconDatabase[name] end + if name and icon and not WeakAurasSaved.CustomTrash.IconDatabase[name] then WeakAurasSaved.CustomTrash.IconDatabase[name] = icon; print("Adding|cff78cb00 ", name, " |rto the icon database") end + local color = "ffffffff" + if rarity then + color = select(4, GetItemQualityColor(rarity)) + end + color = "|c" .. color + local indexid = #allstates + 1 + local ID + if WeakAurasSaved.CustomTrash.IDDatabase[name] then ID = WeakAurasSaved.CustomTrash.IDDatabase[name] end + allstates[indexid] = + { + show = true, + changed = true, + expirationTime = GetTime() + 1, + index = GetTime(), + autoHide = true, + resort = true, + icon = icon, + name = what, + color = color, + amount = howmuch, + } + if ID then + allstates[indexid].itemId = ID + end + C_Timer.After(1, function() WeakAuras.ScanEvents("REMOVE_ITEM", indexid) end) + return true + end + elseif e == "REMOVE_ITEM" then + if allstates[msg] then + allstates[msg].show = false + allstates[msg].changed = true + return true + end + end end \ No newline at end of file diff --git a/Complete Projects/BFA/TSU - Spell Alert.lua b/WeakAuras/Projects/ByExp/BFA/TSU - Spell Alert.lua similarity index 95% rename from Complete Projects/BFA/TSU - Spell Alert.lua rename to WeakAuras/Projects/ByExp/BFA/TSU - Spell Alert.lua index f50b274..10727a3 100644 --- a/Complete Projects/BFA/TSU - Spell Alert.lua +++ b/WeakAuras/Projects/ByExp/BFA/TSU - Spell Alert.lua @@ -1,731 +1,731 @@ ---COMBAT_LOG_EVENT_UNFILTERED REMOVE_GUID NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED -function(allstates, e, ...) - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, CombatLogGetCurrentEventInfo()) - if se == "SPELL_CAST_START" or se == "SPELL_CAST_SUCCESS" then - local spell = select(13, CombatLogGetCurrentEventInfo()) - if aura_env.spells[spell] then - local ID = select(7, GetSpellInfo(aura_env.spells[spell].ID)) - if ID == aura_env.spells[spell].ID then - local castTime = select(4, GetSpellInfo(aura_env.spells[spell].ID)) - local GUID = select(4, CombatLogGetCurrentEventInfo()) - if GUID then allstates[GUID] = {} end - if allstates[GUID].timer then allstates[GUID].timer:Cancel() end - local unit = "" - local target = select(9, CombatLogGetCurrentEventInfo()) - if target and UnitIsPlayer(target) == true then - local targetClass = UnitClass(target) or "" - target = aura_env.classColor(targetClass) .. target - allstates[GUID].target = target - end - for i = 1, 30 do - if UnitExists("nameplate" .. i) then - if UnitGUID("nameplate" .. i) == GUID then - unit = "nameplate" .. i - break - end - end - end - -- unit = "player" - local LCG = LibStub("LibCustomGlow-1.0") - if castTime > 1000 and se == "SPELL_CAST_START" then - if unit == "player" or unit == "" then unit = "nameplate1" end - if allstates[GUID].timer then allstates[GUID].timer:Cancel() end - allstates[GUID].changed = true - allstates[GUID].show = true - allstates[GUID].showTime = GetTime() - allstates[GUID].ID = aura_env.spells[spell].ID - allstates[GUID].ins = aura_env.spells[spell].ins - allstates[GUID].unit = unit - allstates[GUID].GUID = GUID - allstates[GUID].progressType = "timed" - allstates[GUID].expirationTime = GetTime() + castTime / 1000 - allstates[GUID].duration = castTime / 1000 - allstates[GUID].timer = C_Timer.NewTimer(castTime / 1000, function() WeakAuras.ScanEvents("REMOVE_GUID", GUID); LCG.PixelGlow_Stop(nameplate); end) - return true - elseif castTime == 0 and se == "SPELL_CAST_SUCCESS" then - if unit == "player" or unit == "" then unit = "nameplate1" end - if allstates[GUID].timer then allstates[GUID].timer:Cancel() end - allstates[GUID].changed = true - allstates[GUID].show = true - allstates[GUID].showTime = GetTime() - allstates[GUID].ID = aura_env.spells[spell].ID - allstates[GUID].ins = aura_env.spells[spell].ins - allstates[GUID].unit = unit - allstates[GUID].GUID = GUID - allstates[GUID].expirationTime = GetTime() + 2 - allstates[GUID].timer = C_Timer.NewTimer(2, function() WeakAuras.ScanEvents("REMOVE_GUID", GUID); LCG.PixelGlow_Stop(nameplate); end) - return true - end - end - end - elseif se == "SPELL_CAST_FAILED" then - local spell = select(13, CombatLogGetCurrentEventInfo()) - if aura_env.spells[spell] then - local ID = select(7, GetSpellInfo(aura_env.spells[spell].ID)) - if ID == aura_env.spells[spell].ID then - local LCG = LibStub("LibCustomGlow-1.0") - local GUID = select(4, CombatLogGetCurrentEventInfo()) - if allstates[GUID].timer then allstates[GUID].timer:Cancel() end - local unit = "" - for i = 1, 30 do - if UnitExists("nameplate" .. i) then - if UnitGUID("nameplate" .. i) == GUID then - unit = "nameplate" .. i - break - end - end - end - --WeakAuras.ScanEvents("REMOVE_GUID", GUID) - local rem = allstates[GUID].expirationTime - GetTime() - local maxrem = allstates[GUID].expirationTime - allstates[GUID].showTime - allstates[GUID].changed = true - allstates[GUID].show = true - allstates[GUID].progressType = "static" - allstates[GUID].value = string.format("%.1f", rem) - allstates[GUID].total = maxrem - allstates[GUID].interrupted = true - allstates[GUID].timer = C_Timer.NewTimer(1, function() WeakAuras.ScanEvents("REMOVE_GUID", GUID) end) - if unit ~= "" then - local nameplate = C_NamePlate.GetNamePlateForUnit(unit) - LCG.PixelGlow_Stop(nameplate) - end - return true - end - end - elseif se == "UNIT_DIED" then - local GUID = select(8, CombatLogGetCurrentEventInfo()) - if allstates[GUID] and allstates[GUID].expirationTime and not allstates[GUID].interrupted then - local rem = allstates[GUID].expirationTime - GetTime() - local maxrem = allstates[GUID].expirationTime - allstates[GUID].showTime - allstates[GUID].changed = true - allstates[GUID].show = true - allstates[GUID].progressType = "static" - allstates[GUID].value = rem - allstates[GUID].total = maxrem - allstates[GUID].interrupted = true - allstates[GUID].timer = C_Timer.NewTimer(1, function() WeakAuras.ScanEvents("REMOVE_GUID", GUID) end) - return true - end - end - elseif e == "REMOVE_GUID" then - local GUID = select(1, ...) - if allstates[GUID] then - allstates[GUID].show = false - allstates[GUID].changed = true - return true - end - elseif e == "NAME_PLATE_UNIT_ADDED" then - local u = select(1, ...) - if u then - local GUID = UnitGUID(u) - if allstates[GUID] then - local LCG = LibStub("LibCustomGlow-1.0") - local nameplate = C_NamePlate.GetNamePlateForUnit(u) - LCG.PixelGlow_Start(nameplate, {1, 1, 0, 1}, 100, 0, 200, 4, 0, -4) - end - end - elseif e == "NAME_PLATE_UNIT_REMOVED" then - local u = select(1, ...) - if u then - local GUID = UnitGUID(u) - local LCG = LibStub("LibCustomGlow-1.0") - local nameplate = C_NamePlate.GetNamePlateForUnit(u) - LCG.PixelGlow_Stop(nameplate) - end - end -end - ---ON SHOW -local LCG = LibStub("LibCustomGlow-1.0") -local font, size, flags = aura_env.region.text:GetFont() -PlaySoundFile("Interface\\AddOns\\WeakAuras\\Media\\Sounds\\RobotBlip.ogg", "Master") -if not aura_env.region.text then - local text = aura_env.region:CreateFontString(nil, "OVERLAY") - aura_env.region.text = text -end -aura_env.region.text:SetFont(font, size, flags) -aura_env.region.text:SetTextColor(1,1,1,1) -aura_env.region.text:ClearAllPoints() -aura_env.region.text:SetPoint("CENTER", aura_env.region, "CENTER") -aura_env.region.text:SetJustifyH("CENTER") -aura_env.region.text:SetJustifyV("CENTER") -local output = aura_env.statee.ins -if aura_env.statee.target then output = output .. " > " .. aura_env.statee.target end -aura_env.region.text:SetText(output) -aura_env.region.text:Show() -local aura_env = aura_env -local nameplate = C_NamePlate.GetNamePlateForUnit(aura_env.statee.unit, true) -LCG.PixelGlow_Start(nameplate, {1, 1, 0, 1}, 100, 0, 200, 4, 0, -4) -local GUID = aura_env.statee.GUID - ---ON HIDE -local LCG = LibStub("LibCustomGlow-1.0") -local nameplate = C_NamePlate.GetNamePlateForUnit(aura_env.statee.unit, true) -if nameplate then - LCG.PixelGlow_Stop(nameplate) -end - ---ANIMATION -function() - if aura_env.statee and aura_env.statee.interrupted then return 0, 1, 0, 1 end -end - ---INIT -aura_env.spells = { - -- ["Vivify"] = - -- { - -- ["ID"] = 116670, - -- ["ins"] = "Test", - -- }, - ["Brutal Backhand"] = - { - ["ID"] = 257426, - ["ins"] = "Brutal Backhand - Sidestep", - }, - ["Shattering Toss"] = - { - ["ID"] = 274860, - ["ins"] = "Shattering Toss - Brace" - }, - ["Suppression Slam"] = - { - ["ID"] = 270003, - ["ins"] = "Suppression Slam - Sidestep" - }, - ["Axe Barrage"] = - { - ["ID"] = 270084, - ["ins"] = "Axe Barrage - Stun" - }, - ["Poison Barrage"] = - { - ["ID"] = 270507, - ["ins"] = "Poison Barrage - Move with" - }, - ["Slobber Knocker"] = - { - ["ID"] = 256627, - ["ins"] = "Slobber Knocker - Sidestep" - }, - ["Heavy Slash"] = - { - ["ID"] = 257292, - ["ins"] = "Heavy Slash - Sidestep" - }, - ["Singing Steel"] = - { - ["ID"] = 256709, - ["ins"] = "Singing Steel - Sidestep" - }, - ["Crimson Swipe"] = - { - ["ID"] = 268230, - ["ins"] = "Crimson Swipe - Sidestep" - }, - ["Tail Thrash"] = - { - ["ID"] = 265910, - ["ins"] = "Tail Thrash - Mitigation" - }, - ["Debilitating Backhand"] = - { - ["ID"] = 266237, - ["ins"] = "Debilitating Backhand - Sidestep" - }, - ["Poison Nova"] = - { - ["ID"] = 267273, - ["ins"] = "Poison Nova - Interrupt" - }, - ["Blade Combo"] = - { - ["ID"] = 268586, - ["ins"] = "Blade Combo - Mitigation" - }, - ["Clear the Deck"] = - { - ["ID"] = 269029, - ["ins"] = "Clear the Deck - Sidestep" - }, - ["Viscous Slobber"] = - { - ["ID"] = 272827, - ["ins"] = "Viscous Slobber - Place out of group" - }, - ["Crashing Tide"] = - { - ["ID"] = 261563, - ["ins"] = "Crashing Tide - Face to wall" - }, - ["Noxious Breath"] = - { - ["ID"] = 272657, - ["ins"] = "Noxious Breath - Sidestep" - }, - ["Dust Cloud"] = - { - ["ID"] = 268705, - ["ins"] = "Dust Cloud - Move enemies" - }, - ["Shocking Claw"] = - { - ["ID"] = 257337, - ["ins"] = "Shocking Claw - Sidestep" - }, - ["Power Through"] = - { - ["ID"] = 268415, - ["ins"] = "Power Through - Face away" - }, - ["Cover"] = - { - ["ID"] = 263275, - ["ins"] = "Cover - Move enemies" - }, - ["Desperate Measures"] = - { - ["ID"] = 263601, - ["ins"] = "Desperate Measures - Mitigation" - }, - ["Blowtorch"] = - { - ["ID"] = 263103, - ["ins"] = "Blowtorch - Face away" - }, - ["Echo Blade"] = - { - ["ID"] = 268846, - ["ins"] = "Echo Blade - Face away" - }, - ["Charged Shot"] = - { - ["ID"] = 269429, - ["ins"] = "Charged Shot - Mitigation" - }, - ["Shockwave"] = - { - ["ID"] = 272457, - ["ins"] = "Shockwave - Mitigation" - }, - ["Maddening Gaze"] = - { - ["ID"] = 272609, - ["ins"] = "Maddening Gaze - Sidestep" - }, - ["Suppression Fire"] = - { - ["ID"] = 258864, - ["ins"] = "Suppression Fire - Face away" - }, - ["Shadow Cleave"] = - { - ["ID"] = 265372, - ["ins"] = "Shadow Cleave - Face away" - }, - ["Thorned Barrage"] = - { - ["ID"] = 265760, - ["ins"] = "Thorned Barrage - Mitigation" - }, - ["Crush"] = - { - ["ID"] = 260508, - ["ins"] = "Crush - Mitigation" - }, - ["Marking Cleave"] = - { - ["ID"] = 263905, - ["ins"] = "Marking Cleave - Sidestep" - }, - ["Warding Candles"] = - { - ["ID"] = 263961, - ["ins"] = "Warding Candles - Move enemies" - }, - ["Tectonic Smash"] = - { - ["ID"] = 275907, - ["ins"] = "Tectonic Smash - Sidestep" - }, - ["Heaving Blow"] = - { - ["ID"] = 276268, - ["ins"] = "Heaving Blow - Sidestep" - }, - ["Hindering Cleave"] = - { - ["ID"] = 267899, - ["ins"] = "Hindering Cleave - Sidestep" - }, - ["Mental Assault"] = - { - ["ID"] = 268391, - ["ins"] = "Mental Assault - Sidestep" - }, - ["Rotten Bile"] = - { - ["ID"] = 265540, - ["ins"] = "Rotten Bile - MOVE CUNT" - }, - ["Blade Barrage"] = - { - ["ID"] = 257870, - ["ins"] = "Blade Barrage - Mitigation" - }, - ["Skewer"] = - { - ["ID"] = 249919, - ["ins"] = "Skewer - Mitigation" - }, - ["Heavy Slash"] = - { - ["ID"] = 257292, - ["ins"] = "Heavy Slash - Sidestep" - }, - ["Broadside"] = - { - ["ID"] = 268260, - ["ins"] = "Broadside - Sidestep" - }, - ["Crushing Slam"] = - { - ["ID"] = 272711, - ["ins"] = "Crushing Slam - Sidestep" - }, - ["Slam"] = - { - ["ID"] = 269266, - ["ins"] = "Slam - Sidestep" - }, - ["Energy Lash"] = - { - ["ID"] = 262794, - ["ins"] = "Energy Lash - Reflect" - }, - ["Grasping Hex"] = - { - ["ID"] = 300436, - ["ins"] = "Grasping Hex - Interrupt", - }, - ["Stoneskin"] = - { - ["ID"] = 300514, - ["ins"] = "Stoneskin - Interrupt", - }, - ["Shockwave"] = - { - ["ID"] = 300424, - ["ins"] = "Shockwave - Sidestep", - }, - ["Charged Smash"] = - { - ["ID"] = 297254, - ["ins"] = "Charged Smash - Stack on tank", - }, - ["Rapid Fire"] = - { - ["ID"] = 301667, - ["ins"] = "Rapid Fire - Sidestep", - }, - ["Enlarge"] = - { - ["ID"] = 301629, - ["ins"] = "Enlarge - Interrupt", - }, - ["Shrink"] = - { - ["ID"] = 284219, - ["ins"] = "Shrink - Interrupt", - }, - ["Wreck"] = - { - ["ID"] = 302279, - ["ins"] = "Wreck - Mitigation", - }, - ["Pedal to the Metal"] = - { - ["ID"] = 299164, - ["ins"] = "Pedal to the Metal - Sidestep", - }, - ["Burnout"] = - { - ["ID"] = 298571, - ["ins"] = "Burnout - move from smoke", - }, - ["Bolt Buster"] = - { - ["ID"] = 298940, - ["ins"] = "Bolt Buster - Sidestep", - }, - ["Mega Taze"] = - { - ["ID"] = 298718, - ["ins"] = "Mega Taze - Run into smoke", - }, - ["Slimewave"] = - { - ["ID"] = 300777, - ["ins"] = "Slimewave - Sidestep", - }, - ["Toxic Wave"] = - { - ["ID"] = 297834, - ["ins"] = "Toxic Wave - Run to robot", - }, - ["Disassembling Protocol"] = - { - ["ID"] = 301990, - ["ins"] = "Disassembling Protocol - Mitigation", - }, - ["Gyro-Scrap"] = - { - ["ID"] = 300159, - ["ins"] = "Gyro-Scrap - Run away", - }, - ["Exhaust"] = - { - ["ID"] = 300177, - ["ins"] = "Exhaust - Move from smoke", - }, - ["Repair Protocol"] = - { - ["ID"] = 300171, - ["ins"] = "Repair Protocol - Interrupt", - }, - ["Shield Bash"] = - { - ["ID"] = 273185, - ["ins"] = "Shield Bash - Mitigation", - }, - ["Overclock"] = - { - ["ID"] = 299588, - ["ins"] = "Overclock - Interrupt", - }, - ["Repair"] = - { - ["ID"] = 300087, - ["ins"] = "Repair - Interrupt", - }, - ["Scrap Cannon"] = - { - ["ID"] = 300188, - ["ins"] = "Scrap Cannon - Sidestep", - }, - ["Detonate"] = - { - ["ID"] = 301088, - ["ins"] = "Detonate - Interrupt", - }, - ["Whirling Edge"] = - { - ["ID"] = 285020, - ["ins"] = "Whirling Edge - Run away", - }, - ["Maximum Thrust"] = - { - ["ID"] = 283421, - ["ins"] = "Maximum Thrust - Sidestep", - }, - ["Process Waste"] = - { - ["ID"] = 294290, - ["ins"] = "Process Waste - Sidestep", - }, - ["Venting Flames"] = - { - ["ID"] = 291946, - ["ins"] = "Venting Flames - Go behind cool cube", - }, - ["Capacitor Discharge"] = - { - ["ID"] = 295169, - ["ins"] = "Capacitor Discharge - Run to free floor", - }, - ["Tune-Up"] = - { - ["ID"] = 293729, - ["ins"] = "Tune-Up - Interrupt", - }, - ["Sonic Pulse"] = - { - ["ID"] = 293986, - ["ins"] = "Sonic Pulse - Sidestep", - }, - ["Skullcracker"] = - { - ["ID"] = 300296, - ["ins"] = "Skullcracker - Mitigation", - }, - ["Coalesce"] = - { - ["ID"] = 297835, - ["ins"] = "Coalesce - Run to robot", - }, - ["Maximum Thrust"] = - { - ["ID"] = 283421, - ["ins"] = "Maximum Thrust - Sidestep", - }, - ["Vent Jets"] = - { - ["ID"] = 285388, - ["ins"] = "Vent Jets - Run Away", - }, - ["Giga-Zap"] = - { - ["ID"] = 291939, - ["ins"] = "Giga-Zap - Face Away", - }, - ["Rock Lance"] = - { - ["ID"] = 263202, - ["ins"] = "Rock Lance - Send Help", - }, - ["Azerite Heartseeker"] = - { - ["ID"] = 262513, - ["ins"] = "Azerite Heartseeker - Help", - }, - ["Savage Cleave"] = - { - ["ID"] = 265019, - ["ins"] = "Savage Cleave - Sidestep", - }, - ["Decaying Mind"] = - { - ["ID"] = 278961, - ["ins"] = "Decaying Mind - Interrupt", - }, - ["Short Out"] = - { - ["ID"] = 297128, - ["ins"] = "Short Out - Run to bubble", - }, - ["Cyclone Strike"] = - { - ["ID"] = 263573, - ["ins"] = "Cyclone Strike - Sidestep", - }, - ["Power Shot"] = - { - ["ID"] = 264574, - ["ins"] = "Power Shot - Sidestep", - }, - ["Overflow"] = - { - ["ID"] = 295346, - ["ins"] = "Overflow - Run cunt", - }, - ["Crushing Reverberation"] = - { - ["ID"] = 295332, - ["ins"] = "Crushing Reverberation - Stack on tank cunt", - }, - ["Overwhelming Barrage"] = - { - ["ID"] = 295138, - ["ins"] = "Overwhelming Barrage - Dodge cunt", - }, - ["Frostshock Bolts"] = - { - ["ID"] = 295601, - ["ins"] = "Frostshock Bolts - Dodge cunt", - }, - ["Inversion"] = - { - ["ID"] = 295791, - ["ins"] = "Inversion - Spread cunt", - }, - ["Bioluminescent Cloud"] = - { - ["ID"] = 292205, - ["ins"] = "Bioluminescent Cloud - Get glowing cunt", - }, - ["Shock Pulse"] = - { - ["ID"] = 292279, - ["ins"] = "Shock Pulse - Run cunt", - }, - ["Arcane Bomb"] = - { - ["ID"] = 296746, - ["ins"] = "Arcane Bomb - Run cunt", - }, - ["Gale Buffet"] = - { - ["ID"] = 296701, - ["ins"] = "Gale Buffet - Run to stormy cunt", - }, - ["Arcanado Burst"] = - { - ["ID"] = 296701, - ["ins"] = "Arcanado Burst - Tornados cunt", - }, - ["Coral Growth"] = - { - ["ID"] = 296555, - ["ins"] = "Coral Growth - Run cunt", - }, - ["Briny Bubble"] = - { - ["ID"] = 297333, - ["ins"] = "Briny Bubble - Help cunt-s", - }, - ["Rippling Wave"] = - { - ["ID"] = 296688, - ["ins"] = "Rippling Wave - Soak - s l o w l y - cunt", - }, - ["Arcing Azerite"] = - { - ["ID"] = 296944, - ["ins"] = "Arcing Azerite - Destroy Corals cunt", - }, - ["Conductive Pulse"] = - { - ["ID"] = 295822, - ["ins"] = "Conductive Pulse - Interrupt cunt", - }, - ["Frenetic Charge"] = - { - ["ID"] = 299914, - ["ins"] = "Frenetic Charge - Soak cunt", - }, - ["Zealous Eruption"] = - { - ["ID"] = 301807, - ["ins"] = "Zealous Eruption - Run to safe boss cunt", - }, - ["Fanatical Verdict"] = - { - ["ID"] = 296850, - ["ins"] = "Fanatical Verdict - Spread cunt", - }, - ["Potent Spark"] = - { - ["ID"] = 301947, - ["ins"] = "Potent Spark - Botanist orbs cunt", - }, - ["Violent Outburst"] = - { - ["ID"] = 297325, - ["ins"] = "Violent Outburst - Run cunt", - }, -} -aura_env.classColor = function(class) - if class == "Death Knight" then return "|cFFC41F3B" elseif - class == "Demon Hunter" then return "|cFFA330C9" elseif - class == "Druid" then return "|cFFFF7D0A" elseif - class == "Hunter" then return "|cFFABD473" elseif - class == "Mage" then return "|cFF40C7EB" elseif - class == "Monk" then return "|cFF00FF96" elseif - class == "Paladin" then return "|cFFF58CBA" elseif - class == "Priest" then return "|cFFFFFFFF" elseif - class == "Rogue" then return "|cFFFFF569" elseif - class == "Shaman" then return "|cFF0070DE" elseif - class == "Warlock" then return "|cFF8787ED" elseif - class == "Warrior" then return "|cFFC79C6E" else - return "|cFFFFFFFF" end +--COMBAT_LOG_EVENT_UNFILTERED REMOVE_GUID NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED +function(allstates, e, ...) + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, CombatLogGetCurrentEventInfo()) + if se == "SPELL_CAST_START" or se == "SPELL_CAST_SUCCESS" then + local spell = select(13, CombatLogGetCurrentEventInfo()) + if aura_env.spells[spell] then + local ID = select(7, GetSpellInfo(aura_env.spells[spell].ID)) + if ID == aura_env.spells[spell].ID then + local castTime = select(4, GetSpellInfo(aura_env.spells[spell].ID)) + local GUID = select(4, CombatLogGetCurrentEventInfo()) + if GUID then allstates[GUID] = {} end + if allstates[GUID].timer then allstates[GUID].timer:Cancel() end + local unit = "" + local target = select(9, CombatLogGetCurrentEventInfo()) + if target and UnitIsPlayer(target) == true then + local targetClass = UnitClass(target) or "" + target = aura_env.classColor(targetClass) .. target + allstates[GUID].target = target + end + for i = 1, 30 do + if UnitExists("nameplate" .. i) then + if UnitGUID("nameplate" .. i) == GUID then + unit = "nameplate" .. i + break + end + end + end + -- unit = "player" + local LCG = LibStub("LibCustomGlow-1.0") + if castTime > 1000 and se == "SPELL_CAST_START" then + if unit == "player" or unit == "" then unit = "nameplate1" end + if allstates[GUID].timer then allstates[GUID].timer:Cancel() end + allstates[GUID].changed = true + allstates[GUID].show = true + allstates[GUID].showTime = GetTime() + allstates[GUID].ID = aura_env.spells[spell].ID + allstates[GUID].ins = aura_env.spells[spell].ins + allstates[GUID].unit = unit + allstates[GUID].GUID = GUID + allstates[GUID].progressType = "timed" + allstates[GUID].expirationTime = GetTime() + castTime / 1000 + allstates[GUID].duration = castTime / 1000 + allstates[GUID].timer = C_Timer.NewTimer(castTime / 1000, function() WeakAuras.ScanEvents("REMOVE_GUID", GUID); LCG.PixelGlow_Stop(nameplate); end) + return true + elseif castTime == 0 and se == "SPELL_CAST_SUCCESS" then + if unit == "player" or unit == "" then unit = "nameplate1" end + if allstates[GUID].timer then allstates[GUID].timer:Cancel() end + allstates[GUID].changed = true + allstates[GUID].show = true + allstates[GUID].showTime = GetTime() + allstates[GUID].ID = aura_env.spells[spell].ID + allstates[GUID].ins = aura_env.spells[spell].ins + allstates[GUID].unit = unit + allstates[GUID].GUID = GUID + allstates[GUID].expirationTime = GetTime() + 2 + allstates[GUID].timer = C_Timer.NewTimer(2, function() WeakAuras.ScanEvents("REMOVE_GUID", GUID); LCG.PixelGlow_Stop(nameplate); end) + return true + end + end + end + elseif se == "SPELL_CAST_FAILED" then + local spell = select(13, CombatLogGetCurrentEventInfo()) + if aura_env.spells[spell] then + local ID = select(7, GetSpellInfo(aura_env.spells[spell].ID)) + if ID == aura_env.spells[spell].ID then + local LCG = LibStub("LibCustomGlow-1.0") + local GUID = select(4, CombatLogGetCurrentEventInfo()) + if allstates[GUID].timer then allstates[GUID].timer:Cancel() end + local unit = "" + for i = 1, 30 do + if UnitExists("nameplate" .. i) then + if UnitGUID("nameplate" .. i) == GUID then + unit = "nameplate" .. i + break + end + end + end + --WeakAuras.ScanEvents("REMOVE_GUID", GUID) + local rem = allstates[GUID].expirationTime - GetTime() + local maxrem = allstates[GUID].expirationTime - allstates[GUID].showTime + allstates[GUID].changed = true + allstates[GUID].show = true + allstates[GUID].progressType = "static" + allstates[GUID].value = string.format("%.1f", rem) + allstates[GUID].total = maxrem + allstates[GUID].interrupted = true + allstates[GUID].timer = C_Timer.NewTimer(1, function() WeakAuras.ScanEvents("REMOVE_GUID", GUID) end) + if unit ~= "" then + local nameplate = C_NamePlate.GetNamePlateForUnit(unit) + LCG.PixelGlow_Stop(nameplate) + end + return true + end + end + elseif se == "UNIT_DIED" then + local GUID = select(8, CombatLogGetCurrentEventInfo()) + if allstates[GUID] and allstates[GUID].expirationTime and not allstates[GUID].interrupted then + local rem = allstates[GUID].expirationTime - GetTime() + local maxrem = allstates[GUID].expirationTime - allstates[GUID].showTime + allstates[GUID].changed = true + allstates[GUID].show = true + allstates[GUID].progressType = "static" + allstates[GUID].value = rem + allstates[GUID].total = maxrem + allstates[GUID].interrupted = true + allstates[GUID].timer = C_Timer.NewTimer(1, function() WeakAuras.ScanEvents("REMOVE_GUID", GUID) end) + return true + end + end + elseif e == "REMOVE_GUID" then + local GUID = select(1, ...) + if allstates[GUID] then + allstates[GUID].show = false + allstates[GUID].changed = true + return true + end + elseif e == "NAME_PLATE_UNIT_ADDED" then + local u = select(1, ...) + if u then + local GUID = UnitGUID(u) + if allstates[GUID] then + local LCG = LibStub("LibCustomGlow-1.0") + local nameplate = C_NamePlate.GetNamePlateForUnit(u) + LCG.PixelGlow_Start(nameplate, {1, 1, 0, 1}, 100, 0, 200, 4, 0, -4) + end + end + elseif e == "NAME_PLATE_UNIT_REMOVED" then + local u = select(1, ...) + if u then + local GUID = UnitGUID(u) + local LCG = LibStub("LibCustomGlow-1.0") + local nameplate = C_NamePlate.GetNamePlateForUnit(u) + LCG.PixelGlow_Stop(nameplate) + end + end +end + +--ON SHOW +local LCG = LibStub("LibCustomGlow-1.0") +local font, size, flags = aura_env.region.text:GetFont() +PlaySoundFile("Interface\\AddOns\\WeakAuras\\Media\\Sounds\\RobotBlip.ogg", "Master") +if not aura_env.region.text then + local text = aura_env.region:CreateFontString(nil, "OVERLAY") + aura_env.region.text = text +end +aura_env.region.text:SetFont(font, size, flags) +aura_env.region.text:SetTextColor(1,1,1,1) +aura_env.region.text:ClearAllPoints() +aura_env.region.text:SetPoint("CENTER", aura_env.region, "CENTER") +aura_env.region.text:SetJustifyH("CENTER") +aura_env.region.text:SetJustifyV("CENTER") +local output = aura_env.statee.ins +if aura_env.statee.target then output = output .. " > " .. aura_env.statee.target end +aura_env.region.text:SetText(output) +aura_env.region.text:Show() +local aura_env = aura_env +local nameplate = C_NamePlate.GetNamePlateForUnit(aura_env.statee.unit, true) +LCG.PixelGlow_Start(nameplate, {1, 1, 0, 1}, 100, 0, 200, 4, 0, -4) +local GUID = aura_env.statee.GUID + +--ON HIDE +local LCG = LibStub("LibCustomGlow-1.0") +local nameplate = C_NamePlate.GetNamePlateForUnit(aura_env.statee.unit, true) +if nameplate then + LCG.PixelGlow_Stop(nameplate) +end + +--ANIMATION +function() + if aura_env.statee and aura_env.statee.interrupted then return 0, 1, 0, 1 end +end + +--INIT +aura_env.spells = { + -- ["Vivify"] = + -- { + -- ["ID"] = 116670, + -- ["ins"] = "Test", + -- }, + ["Brutal Backhand"] = + { + ["ID"] = 257426, + ["ins"] = "Brutal Backhand - Sidestep", + }, + ["Shattering Toss"] = + { + ["ID"] = 274860, + ["ins"] = "Shattering Toss - Brace" + }, + ["Suppression Slam"] = + { + ["ID"] = 270003, + ["ins"] = "Suppression Slam - Sidestep" + }, + ["Axe Barrage"] = + { + ["ID"] = 270084, + ["ins"] = "Axe Barrage - Stun" + }, + ["Poison Barrage"] = + { + ["ID"] = 270507, + ["ins"] = "Poison Barrage - Move with" + }, + ["Slobber Knocker"] = + { + ["ID"] = 256627, + ["ins"] = "Slobber Knocker - Sidestep" + }, + ["Heavy Slash"] = + { + ["ID"] = 257292, + ["ins"] = "Heavy Slash - Sidestep" + }, + ["Singing Steel"] = + { + ["ID"] = 256709, + ["ins"] = "Singing Steel - Sidestep" + }, + ["Crimson Swipe"] = + { + ["ID"] = 268230, + ["ins"] = "Crimson Swipe - Sidestep" + }, + ["Tail Thrash"] = + { + ["ID"] = 265910, + ["ins"] = "Tail Thrash - Mitigation" + }, + ["Debilitating Backhand"] = + { + ["ID"] = 266237, + ["ins"] = "Debilitating Backhand - Sidestep" + }, + ["Poison Nova"] = + { + ["ID"] = 267273, + ["ins"] = "Poison Nova - Interrupt" + }, + ["Blade Combo"] = + { + ["ID"] = 268586, + ["ins"] = "Blade Combo - Mitigation" + }, + ["Clear the Deck"] = + { + ["ID"] = 269029, + ["ins"] = "Clear the Deck - Sidestep" + }, + ["Viscous Slobber"] = + { + ["ID"] = 272827, + ["ins"] = "Viscous Slobber - Place out of group" + }, + ["Crashing Tide"] = + { + ["ID"] = 261563, + ["ins"] = "Crashing Tide - Face to wall" + }, + ["Noxious Breath"] = + { + ["ID"] = 272657, + ["ins"] = "Noxious Breath - Sidestep" + }, + ["Dust Cloud"] = + { + ["ID"] = 268705, + ["ins"] = "Dust Cloud - Move enemies" + }, + ["Shocking Claw"] = + { + ["ID"] = 257337, + ["ins"] = "Shocking Claw - Sidestep" + }, + ["Power Through"] = + { + ["ID"] = 268415, + ["ins"] = "Power Through - Face away" + }, + ["Cover"] = + { + ["ID"] = 263275, + ["ins"] = "Cover - Move enemies" + }, + ["Desperate Measures"] = + { + ["ID"] = 263601, + ["ins"] = "Desperate Measures - Mitigation" + }, + ["Blowtorch"] = + { + ["ID"] = 263103, + ["ins"] = "Blowtorch - Face away" + }, + ["Echo Blade"] = + { + ["ID"] = 268846, + ["ins"] = "Echo Blade - Face away" + }, + ["Charged Shot"] = + { + ["ID"] = 269429, + ["ins"] = "Charged Shot - Mitigation" + }, + ["Shockwave"] = + { + ["ID"] = 272457, + ["ins"] = "Shockwave - Mitigation" + }, + ["Maddening Gaze"] = + { + ["ID"] = 272609, + ["ins"] = "Maddening Gaze - Sidestep" + }, + ["Suppression Fire"] = + { + ["ID"] = 258864, + ["ins"] = "Suppression Fire - Face away" + }, + ["Shadow Cleave"] = + { + ["ID"] = 265372, + ["ins"] = "Shadow Cleave - Face away" + }, + ["Thorned Barrage"] = + { + ["ID"] = 265760, + ["ins"] = "Thorned Barrage - Mitigation" + }, + ["Crush"] = + { + ["ID"] = 260508, + ["ins"] = "Crush - Mitigation" + }, + ["Marking Cleave"] = + { + ["ID"] = 263905, + ["ins"] = "Marking Cleave - Sidestep" + }, + ["Warding Candles"] = + { + ["ID"] = 263961, + ["ins"] = "Warding Candles - Move enemies" + }, + ["Tectonic Smash"] = + { + ["ID"] = 275907, + ["ins"] = "Tectonic Smash - Sidestep" + }, + ["Heaving Blow"] = + { + ["ID"] = 276268, + ["ins"] = "Heaving Blow - Sidestep" + }, + ["Hindering Cleave"] = + { + ["ID"] = 267899, + ["ins"] = "Hindering Cleave - Sidestep" + }, + ["Mental Assault"] = + { + ["ID"] = 268391, + ["ins"] = "Mental Assault - Sidestep" + }, + ["Rotten Bile"] = + { + ["ID"] = 265540, + ["ins"] = "Rotten Bile - MOVE CUNT" + }, + ["Blade Barrage"] = + { + ["ID"] = 257870, + ["ins"] = "Blade Barrage - Mitigation" + }, + ["Skewer"] = + { + ["ID"] = 249919, + ["ins"] = "Skewer - Mitigation" + }, + ["Heavy Slash"] = + { + ["ID"] = 257292, + ["ins"] = "Heavy Slash - Sidestep" + }, + ["Broadside"] = + { + ["ID"] = 268260, + ["ins"] = "Broadside - Sidestep" + }, + ["Crushing Slam"] = + { + ["ID"] = 272711, + ["ins"] = "Crushing Slam - Sidestep" + }, + ["Slam"] = + { + ["ID"] = 269266, + ["ins"] = "Slam - Sidestep" + }, + ["Energy Lash"] = + { + ["ID"] = 262794, + ["ins"] = "Energy Lash - Reflect" + }, + ["Grasping Hex"] = + { + ["ID"] = 300436, + ["ins"] = "Grasping Hex - Interrupt", + }, + ["Stoneskin"] = + { + ["ID"] = 300514, + ["ins"] = "Stoneskin - Interrupt", + }, + ["Shockwave"] = + { + ["ID"] = 300424, + ["ins"] = "Shockwave - Sidestep", + }, + ["Charged Smash"] = + { + ["ID"] = 297254, + ["ins"] = "Charged Smash - Stack on tank", + }, + ["Rapid Fire"] = + { + ["ID"] = 301667, + ["ins"] = "Rapid Fire - Sidestep", + }, + ["Enlarge"] = + { + ["ID"] = 301629, + ["ins"] = "Enlarge - Interrupt", + }, + ["Shrink"] = + { + ["ID"] = 284219, + ["ins"] = "Shrink - Interrupt", + }, + ["Wreck"] = + { + ["ID"] = 302279, + ["ins"] = "Wreck - Mitigation", + }, + ["Pedal to the Metal"] = + { + ["ID"] = 299164, + ["ins"] = "Pedal to the Metal - Sidestep", + }, + ["Burnout"] = + { + ["ID"] = 298571, + ["ins"] = "Burnout - move from smoke", + }, + ["Bolt Buster"] = + { + ["ID"] = 298940, + ["ins"] = "Bolt Buster - Sidestep", + }, + ["Mega Taze"] = + { + ["ID"] = 298718, + ["ins"] = "Mega Taze - Run into smoke", + }, + ["Slimewave"] = + { + ["ID"] = 300777, + ["ins"] = "Slimewave - Sidestep", + }, + ["Toxic Wave"] = + { + ["ID"] = 297834, + ["ins"] = "Toxic Wave - Run to robot", + }, + ["Disassembling Protocol"] = + { + ["ID"] = 301990, + ["ins"] = "Disassembling Protocol - Mitigation", + }, + ["Gyro-Scrap"] = + { + ["ID"] = 300159, + ["ins"] = "Gyro-Scrap - Run away", + }, + ["Exhaust"] = + { + ["ID"] = 300177, + ["ins"] = "Exhaust - Move from smoke", + }, + ["Repair Protocol"] = + { + ["ID"] = 300171, + ["ins"] = "Repair Protocol - Interrupt", + }, + ["Shield Bash"] = + { + ["ID"] = 273185, + ["ins"] = "Shield Bash - Mitigation", + }, + ["Overclock"] = + { + ["ID"] = 299588, + ["ins"] = "Overclock - Interrupt", + }, + ["Repair"] = + { + ["ID"] = 300087, + ["ins"] = "Repair - Interrupt", + }, + ["Scrap Cannon"] = + { + ["ID"] = 300188, + ["ins"] = "Scrap Cannon - Sidestep", + }, + ["Detonate"] = + { + ["ID"] = 301088, + ["ins"] = "Detonate - Interrupt", + }, + ["Whirling Edge"] = + { + ["ID"] = 285020, + ["ins"] = "Whirling Edge - Run away", + }, + ["Maximum Thrust"] = + { + ["ID"] = 283421, + ["ins"] = "Maximum Thrust - Sidestep", + }, + ["Process Waste"] = + { + ["ID"] = 294290, + ["ins"] = "Process Waste - Sidestep", + }, + ["Venting Flames"] = + { + ["ID"] = 291946, + ["ins"] = "Venting Flames - Go behind cool cube", + }, + ["Capacitor Discharge"] = + { + ["ID"] = 295169, + ["ins"] = "Capacitor Discharge - Run to free floor", + }, + ["Tune-Up"] = + { + ["ID"] = 293729, + ["ins"] = "Tune-Up - Interrupt", + }, + ["Sonic Pulse"] = + { + ["ID"] = 293986, + ["ins"] = "Sonic Pulse - Sidestep", + }, + ["Skullcracker"] = + { + ["ID"] = 300296, + ["ins"] = "Skullcracker - Mitigation", + }, + ["Coalesce"] = + { + ["ID"] = 297835, + ["ins"] = "Coalesce - Run to robot", + }, + ["Maximum Thrust"] = + { + ["ID"] = 283421, + ["ins"] = "Maximum Thrust - Sidestep", + }, + ["Vent Jets"] = + { + ["ID"] = 285388, + ["ins"] = "Vent Jets - Run Away", + }, + ["Giga-Zap"] = + { + ["ID"] = 291939, + ["ins"] = "Giga-Zap - Face Away", + }, + ["Rock Lance"] = + { + ["ID"] = 263202, + ["ins"] = "Rock Lance - Send Help", + }, + ["Azerite Heartseeker"] = + { + ["ID"] = 262513, + ["ins"] = "Azerite Heartseeker - Help", + }, + ["Savage Cleave"] = + { + ["ID"] = 265019, + ["ins"] = "Savage Cleave - Sidestep", + }, + ["Decaying Mind"] = + { + ["ID"] = 278961, + ["ins"] = "Decaying Mind - Interrupt", + }, + ["Short Out"] = + { + ["ID"] = 297128, + ["ins"] = "Short Out - Run to bubble", + }, + ["Cyclone Strike"] = + { + ["ID"] = 263573, + ["ins"] = "Cyclone Strike - Sidestep", + }, + ["Power Shot"] = + { + ["ID"] = 264574, + ["ins"] = "Power Shot - Sidestep", + }, + ["Overflow"] = + { + ["ID"] = 295346, + ["ins"] = "Overflow - Run cunt", + }, + ["Crushing Reverberation"] = + { + ["ID"] = 295332, + ["ins"] = "Crushing Reverberation - Stack on tank cunt", + }, + ["Overwhelming Barrage"] = + { + ["ID"] = 295138, + ["ins"] = "Overwhelming Barrage - Dodge cunt", + }, + ["Frostshock Bolts"] = + { + ["ID"] = 295601, + ["ins"] = "Frostshock Bolts - Dodge cunt", + }, + ["Inversion"] = + { + ["ID"] = 295791, + ["ins"] = "Inversion - Spread cunt", + }, + ["Bioluminescent Cloud"] = + { + ["ID"] = 292205, + ["ins"] = "Bioluminescent Cloud - Get glowing cunt", + }, + ["Shock Pulse"] = + { + ["ID"] = 292279, + ["ins"] = "Shock Pulse - Run cunt", + }, + ["Arcane Bomb"] = + { + ["ID"] = 296746, + ["ins"] = "Arcane Bomb - Run cunt", + }, + ["Gale Buffet"] = + { + ["ID"] = 296701, + ["ins"] = "Gale Buffet - Run to stormy cunt", + }, + ["Arcanado Burst"] = + { + ["ID"] = 296701, + ["ins"] = "Arcanado Burst - Tornados cunt", + }, + ["Coral Growth"] = + { + ["ID"] = 296555, + ["ins"] = "Coral Growth - Run cunt", + }, + ["Briny Bubble"] = + { + ["ID"] = 297333, + ["ins"] = "Briny Bubble - Help cunt-s", + }, + ["Rippling Wave"] = + { + ["ID"] = 296688, + ["ins"] = "Rippling Wave - Soak - s l o w l y - cunt", + }, + ["Arcing Azerite"] = + { + ["ID"] = 296944, + ["ins"] = "Arcing Azerite - Destroy Corals cunt", + }, + ["Conductive Pulse"] = + { + ["ID"] = 295822, + ["ins"] = "Conductive Pulse - Interrupt cunt", + }, + ["Frenetic Charge"] = + { + ["ID"] = 299914, + ["ins"] = "Frenetic Charge - Soak cunt", + }, + ["Zealous Eruption"] = + { + ["ID"] = 301807, + ["ins"] = "Zealous Eruption - Run to safe boss cunt", + }, + ["Fanatical Verdict"] = + { + ["ID"] = 296850, + ["ins"] = "Fanatical Verdict - Spread cunt", + }, + ["Potent Spark"] = + { + ["ID"] = 301947, + ["ins"] = "Potent Spark - Botanist orbs cunt", + }, + ["Violent Outburst"] = + { + ["ID"] = 297325, + ["ins"] = "Violent Outburst - Run cunt", + }, +} +aura_env.classColor = function(class) + if class == "Death Knight" then return "|cFFC41F3B" elseif + class == "Demon Hunter" then return "|cFFA330C9" elseif + class == "Druid" then return "|cFFFF7D0A" elseif + class == "Hunter" then return "|cFFABD473" elseif + class == "Mage" then return "|cFF40C7EB" elseif + class == "Monk" then return "|cFF00FF96" elseif + class == "Paladin" then return "|cFFF58CBA" elseif + class == "Priest" then return "|cFFFFFFFF" elseif + class == "Rogue" then return "|cFFFFF569" elseif + class == "Shaman" then return "|cFF0070DE" elseif + class == "Warlock" then return "|cFF8787ED" elseif + class == "Warrior" then return "|cFFC79C6E" else + return "|cFFFFFFFF" end end \ No newline at end of file diff --git a/Complete Projects/BFA/Tank Taunt UNTESTED.lua b/WeakAuras/Projects/ByExp/BFA/Tank Taunt UNTESTED.lua similarity index 97% rename from Complete Projects/BFA/Tank Taunt UNTESTED.lua rename to WeakAuras/Projects/ByExp/BFA/Tank Taunt UNTESTED.lua index 278feea..2ef3bfc 100644 --- a/Complete Projects/BFA/Tank Taunt UNTESTED.lua +++ b/WeakAuras/Projects/ByExp/BFA/Tank Taunt UNTESTED.lua @@ -1,69 +1,69 @@ ---COMBAT_LOG_EVENT_UNFILTERED GROUP_ROSTER_UPDATE UNTRIGGER -function(e, ...) - if e == "COMBAT_LOG_EVENT_UNFILTERED" then --CLEU - if not aura_env.tank then aura_env.tank = "" end - local se = select(2, ...) - if se == "SPELL_AURA_APPLIED" then - local type = select(15, ...) - if type == "DEBUFF" then - local caster = select(5, ...) - local target = select(9, ...) - local name = select(13, ...) - --If selected debuff is cast on other tank, get other tank from other trigger - if (target == aura_env.tank or target == UnitName("player")) and aura_env.auras[name] then - --Get stacks duration and expiry time for duration control and trigger - local stacks, dur = select(3, aura_env.unitDebuffC(target, name)), select(5, aura_env.unitDebuffC(target, name)) - if stacks > aura_env.auras[name] then - --If I have too many stacks and I am tanking then -- other taunts - if target == UnitName("player") and select(1, UnitDetailedThreatSituation("player", "target")) then - aura_env.returnName = "DEBIL TAUNT" - aura_env.region:Color(0.3715, 0.6285, 0, 1) - --If other tank has too many stacks and other tank is tanking then -- I taunt - elseif target == aura_env.tank and select(1, UnitDetailedThreatSituation(target, "target")) then - aura_env.returnName = "TAUNT DEBIL" - aura_env.region:Color(0.5660, 0.1588, 0.2752, 1) - end - if aura_env.timer then aura_env.timer:Cancel() end - aura_env.timer = C_Timer.NewTimer(dur, function() WeakAuras.ScanEvents("UNTRIGGER") end) - return true - end - end - end - end - elseif e == "GROUP_ROSTER_UPDATE" then --Find other tank - if IsInRaid() then - for i = 1, GetNumGroupMembers() do - if UnitGroupRolesAssigned("raid" .. i) == "TANK" and UnitName("raid" .. i) ~= UnitName("player") then - aura_env.tank = UnitName("raid" .. i) - end - end - end - elseif e == "UNTRIGGER" then - return false - end -end - ---NAME INFO -function() - return aura_env.returnName -end - ---INIT -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 -end -aura_env.auras = -{ - ["Rimefrost"] = 5, - ["Septic Taint"] = 5, - +--COMBAT_LOG_EVENT_UNFILTERED GROUP_ROSTER_UPDATE UNTRIGGER +function(e, ...) + if e == "COMBAT_LOG_EVENT_UNFILTERED" then --CLEU + if not aura_env.tank then aura_env.tank = "" end + local se = select(2, ...) + if se == "SPELL_AURA_APPLIED" then + local type = select(15, ...) + if type == "DEBUFF" then + local caster = select(5, ...) + local target = select(9, ...) + local name = select(13, ...) + --If selected debuff is cast on other tank, get other tank from other trigger + if (target == aura_env.tank or target == UnitName("player")) and aura_env.auras[name] then + --Get stacks duration and expiry time for duration control and trigger + local stacks, dur = select(3, aura_env.unitDebuffC(target, name)), select(5, aura_env.unitDebuffC(target, name)) + if stacks > aura_env.auras[name] then + --If I have too many stacks and I am tanking then -- other taunts + if target == UnitName("player") and select(1, UnitDetailedThreatSituation("player", "target")) then + aura_env.returnName = "DEBIL TAUNT" + aura_env.region:Color(0.3715, 0.6285, 0, 1) + --If other tank has too many stacks and other tank is tanking then -- I taunt + elseif target == aura_env.tank and select(1, UnitDetailedThreatSituation(target, "target")) then + aura_env.returnName = "TAUNT DEBIL" + aura_env.region:Color(0.5660, 0.1588, 0.2752, 1) + end + if aura_env.timer then aura_env.timer:Cancel() end + aura_env.timer = C_Timer.NewTimer(dur, function() WeakAuras.ScanEvents("UNTRIGGER") end) + return true + end + end + end + end + elseif e == "GROUP_ROSTER_UPDATE" then --Find other tank + if IsInRaid() then + for i = 1, GetNumGroupMembers() do + if UnitGroupRolesAssigned("raid" .. i) == "TANK" and UnitName("raid" .. i) ~= UnitName("player") then + aura_env.tank = UnitName("raid" .. i) + end + end + end + elseif e == "UNTRIGGER" then + return false + end +end + +--NAME INFO +function() + return aura_env.returnName +end + +--INIT +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 +end +aura_env.auras = +{ + ["Rimefrost"] = 5, + ["Septic Taint"] = 5, + } \ No newline at end of file diff --git a/Complete Projects/BFA/Taunt Cunt UNFINISHED.lua b/WeakAuras/Projects/ByExp/BFA/Taunt Cunt UNFINISHED.lua similarity index 95% rename from Complete Projects/BFA/Taunt Cunt UNFINISHED.lua rename to WeakAuras/Projects/ByExp/BFA/Taunt Cunt UNFINISHED.lua index c28e09e..87bcd73 100644 --- a/Complete Projects/BFA/Taunt Cunt UNFINISHED.lua +++ b/WeakAuras/Projects/ByExp/BFA/Taunt Cunt UNFINISHED.lua @@ -1,33 +1,33 @@ ---UNIT_AURA -function(_,unit) - if UnitGroupRolesAssigned(unit) == "TANK" and UnitName(unit) ~= UnitName("player") then - local tank = UnitDetailedThreatSituation(unit, "boss1") - if not tank then - for k,v in pairs(aura_env.debuffs) do - if aura_env.UnitDebuffC(k, unit) then - return true - end - end - else - return false - end - end -end - ---INIT -aura_env.debuffs = -{ - ["Sacred Blade"] = 1 -} -aura_env.UnitDebuffC = function(spell, unit) - 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 +--UNIT_AURA +function(_,unit) + if UnitGroupRolesAssigned(unit) == "TANK" and UnitName(unit) ~= UnitName("player") then + local tank = UnitDetailedThreatSituation(unit, "boss1") + if not tank then + for k,v in pairs(aura_env.debuffs) do + if aura_env.UnitDebuffC(k, unit) then + return true + end + end + else + return false + end + end +end + +--INIT +aura_env.debuffs = +{ + ["Sacred Blade"] = 1 +} +aura_env.UnitDebuffC = function(spell, unit) + 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 \ No newline at end of file diff --git a/Complete Projects/BFA/Taunterino.lua b/WeakAuras/Projects/ByExp/BFA/Taunterino.lua similarity index 98% rename from Complete Projects/BFA/Taunterino.lua rename to WeakAuras/Projects/ByExp/BFA/Taunterino.lua index 44756e0..55f6416 100644 --- a/Complete Projects/BFA/Taunterino.lua +++ b/WeakAuras/Projects/ByExp/BFA/Taunterino.lua @@ -1,62 +1,62 @@ ---COMBAT_LOG_EVENT_UNFILTERED UPDATE_TAUNT_GOD -function(...) - local e = select(1, ...) - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - local spellName = select(14, ...) - if (spellName == "Taunt" - or spellName == "Provoke" - or spellName == "Dark Command" - or spellName == "Torment" - or spellName == "Hand of Reckoning" - or spellName == "Growl") - and subEvent == "SPELL_CAST_SUCCESS" then - local target = select(10, ...) - local source = select(6, ...) - local subEvent = select(3, ...) - aura_env.spellName = spellName - aura_env.caster = source - aura_env.target = target - aura_env.cast_time = GetTime() - if aura_env.ticker then aura_env.ticker:Cancel() end - if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(1, function() WeakAuras.ScanEvents("UPDATE_TAUNT_GOD") end) - return true - else - return false - end - end - elseif e == "UPDATE_TAUNT_GOD" then - return true - end -end - ---DISPLAY -function() - if aura_env.caster then - local source_class = UnitClass(aura_env.caster) - local source_class_color = "|cFFFFFFFF" - local time_color = "|cFFFFFFFF" - local target_color = "|cFFFFFFFF" - if aura_env.spellName == "Taunt" - or aura_env.spellName == "Provoke" - or aura_env.spellName == "Hand of Reckoning" - or aura_env.spellName == "Dark Command" - or aura_env.spellName == "Torment" - or aura_env.spellName == "Growl" - then cooldown_time = aura_env.cast_time + 8 else cooldown_time = 0 end - if (cooldown_time / GetTime()) < 1 then time_color = "|cFF00FF00" else time_color = "|cFFFF0000" end - if source_class == "Death Knight" then source_class_color = "|cFFC41F3B" - elseif source_class == "Demon Hunter" then source_class_color = "|cFFA330C9" - elseif source_class == "Druid" then source_class_color = "|cFFFF7D0A" - elseif source_class == "Hunter" then source_class_color = "|cFFABD473" - elseif source_class == "Mage" then source_class_color = "|cFF40C7EB" - elseif source_class == "Monk" then source_class_color = "|cFF00FF96" - elseif source_class == "Paladin" then source_class_color = "|cFFF58CBA" - elseif source_class == "Priest" then source_class_color = "|cFFFFFFFF" - elseif source_class == "Rogue" then source_class_color = "|cFFFFF569" - elseif source_class == "Shaman" then source_class_color = "|cFF0070DE" - elseif source_class == "Warlock" then source_class_color = "|cFF8787ED" - elseif source_class == "Warrior" then source_class_color = "|cFFC79C6E" end - if aura_env.target == UnitName("target") then target_color = "|cFF00FF00" else target_color = "|cFFFF0000" end - return source_class_color .. aura_env.caster .. "\n" .. target_color .. aura_env.target .. "\n" .. source_class_color .. aura_env.spellName .. "\n" .. time_color .. math.floor(GetTime() - aura_env.cast_time) - end -end +--COMBAT_LOG_EVENT_UNFILTERED UPDATE_TAUNT_GOD +function(...) + local e = select(1, ...) + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + local spellName = select(14, ...) + if (spellName == "Taunt" + or spellName == "Provoke" + or spellName == "Dark Command" + or spellName == "Torment" + or spellName == "Hand of Reckoning" + or spellName == "Growl") + and subEvent == "SPELL_CAST_SUCCESS" then + local target = select(10, ...) + local source = select(6, ...) + local subEvent = select(3, ...) + aura_env.spellName = spellName + aura_env.caster = source + aura_env.target = target + aura_env.cast_time = GetTime() + if aura_env.ticker then aura_env.ticker:Cancel() end + if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(1, function() WeakAuras.ScanEvents("UPDATE_TAUNT_GOD") end) + return true + else + return false + end + end + elseif e == "UPDATE_TAUNT_GOD" then + return true + end +end + +--DISPLAY +function() + if aura_env.caster then + local source_class = UnitClass(aura_env.caster) + local source_class_color = "|cFFFFFFFF" + local time_color = "|cFFFFFFFF" + local target_color = "|cFFFFFFFF" + if aura_env.spellName == "Taunt" + or aura_env.spellName == "Provoke" + or aura_env.spellName == "Hand of Reckoning" + or aura_env.spellName == "Dark Command" + or aura_env.spellName == "Torment" + or aura_env.spellName == "Growl" + then cooldown_time = aura_env.cast_time + 8 else cooldown_time = 0 end + if (cooldown_time / GetTime()) < 1 then time_color = "|cFF00FF00" else time_color = "|cFFFF0000" end + if source_class == "Death Knight" then source_class_color = "|cFFC41F3B" + elseif source_class == "Demon Hunter" then source_class_color = "|cFFA330C9" + elseif source_class == "Druid" then source_class_color = "|cFFFF7D0A" + elseif source_class == "Hunter" then source_class_color = "|cFFABD473" + elseif source_class == "Mage" then source_class_color = "|cFF40C7EB" + elseif source_class == "Monk" then source_class_color = "|cFF00FF96" + elseif source_class == "Paladin" then source_class_color = "|cFFF58CBA" + elseif source_class == "Priest" then source_class_color = "|cFFFFFFFF" + elseif source_class == "Rogue" then source_class_color = "|cFFFFF569" + elseif source_class == "Shaman" then source_class_color = "|cFF0070DE" + elseif source_class == "Warlock" then source_class_color = "|cFF8787ED" + elseif source_class == "Warrior" then source_class_color = "|cFFC79C6E" end + if aura_env.target == UnitName("target") then target_color = "|cFF00FF00" else target_color = "|cFFFF0000" end + return source_class_color .. aura_env.caster .. "\n" .. target_color .. aura_env.target .. "\n" .. source_class_color .. aura_env.spellName .. "\n" .. time_color .. math.floor(GetTime() - aura_env.cast_time) + end +end diff --git a/Complete Projects/BFA/UnitDebuff.lua b/WeakAuras/Projects/ByExp/BFA/UnitDebuff.lua similarity index 96% rename from Complete Projects/BFA/UnitDebuff.lua rename to WeakAuras/Projects/ByExp/BFA/UnitDebuff.lua index da1389a..93455da 100644 --- a/Complete Projects/BFA/UnitDebuff.lua +++ b/WeakAuras/Projects/ByExp/BFA/UnitDebuff.lua @@ -1,58 +1,58 @@ ---UNIT_AURA COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_ENABLED PLAYER_REGEN_DISABLED -function(e, unit, ...) - if e == "UNIT_AURA" then - if UnitExists(unit) then - if aura_env.UnitDebuffC(aura_env.debuff, unit) and not aura_env.auras[UnitGUID(unit)] and select(7, aura_env.UnitDebuffC(aura_env.debuff, unit)) == "player" then - aura_env.auras[UnitGUID(unit)] = 1 - aura_env.count = aura_env.count + 1 - return true - elseif not aura_env.UnitDebuffC(aura_env.debuff, unit) and aura_env.auras[UnitGUID(unit)] then - aura_env.auras[UnitGUID(unit)] = nil - aura_env.count = aura_env.count - 1 - return true - end - end - elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(1, ...) - if se == "UNIT_DIED" then - local GUID = select(7, ...) - if aura_env.auras[GUID] then - aura_env.auras[GUID] = nil - aura_env.count = aura_env.count - 1 - return true - end - end - elseif e == "PLAYER_REGEN_ENABLED" or e == "PLAYER_REGEN_DISABLED" then - for k,v in pairs(aura_env.auras) do - k = nil - v = nil - end - end -end - ---UNTRIGGER -function() - if aura_env.count == 0 then return true end -end - ---DISPLAY -function() - if aura_env.count > 0 then return aura_env.count else return "" end -end - ---INIT -aura_env.debuff = "Dagger in the Back" -aura_env.count = 0 -aura_env.auras = {} -aura_env.UnitDebuffC = function(spell, unit) - 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 +--UNIT_AURA COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_ENABLED PLAYER_REGEN_DISABLED +function(e, unit, ...) + if e == "UNIT_AURA" then + if UnitExists(unit) then + if aura_env.UnitDebuffC(aura_env.debuff, unit) and not aura_env.auras[UnitGUID(unit)] and select(7, aura_env.UnitDebuffC(aura_env.debuff, unit)) == "player" then + aura_env.auras[UnitGUID(unit)] = 1 + aura_env.count = aura_env.count + 1 + return true + elseif not aura_env.UnitDebuffC(aura_env.debuff, unit) and aura_env.auras[UnitGUID(unit)] then + aura_env.auras[UnitGUID(unit)] = nil + aura_env.count = aura_env.count - 1 + return true + end + end + elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(1, ...) + if se == "UNIT_DIED" then + local GUID = select(7, ...) + if aura_env.auras[GUID] then + aura_env.auras[GUID] = nil + aura_env.count = aura_env.count - 1 + return true + end + end + elseif e == "PLAYER_REGEN_ENABLED" or e == "PLAYER_REGEN_DISABLED" then + for k,v in pairs(aura_env.auras) do + k = nil + v = nil + end + end +end + +--UNTRIGGER +function() + if aura_env.count == 0 then return true end +end + +--DISPLAY +function() + if aura_env.count > 0 then return aura_env.count else return "" end +end + +--INIT +aura_env.debuff = "Dagger in the Back" +aura_env.count = 0 +aura_env.auras = {} +aura_env.UnitDebuffC = function(spell, unit) + 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 \ No newline at end of file diff --git a/Complete Projects/BFA/Vaultbot Beep.lua b/WeakAuras/Projects/ByExp/BFA/Vaultbot Beep.lua similarity index 97% rename from Complete Projects/BFA/Vaultbot Beep.lua rename to WeakAuras/Projects/ByExp/BFA/Vaultbot Beep.lua index 0deb985..23b27a2 100644 --- a/Complete Projects/BFA/Vaultbot Beep.lua +++ b/WeakAuras/Projects/ByExp/BFA/Vaultbot Beep.lua @@ -1,33 +1,33 @@ ---NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED PLAYER_REGEN_DISABLED PLAYER_TARGET_CHANGED -function(e, u) - --local mname = "Armored Vaultbot" - local mname = "Sickly Saurid" - local LCG = LibStub("LibCustomGlow-1.0") - if e == "NAME_PLATE_UNIT_ADDED" then - local name = UnitName(u) - if name == mname then - PlaySoundFile("Interface\\AddOns\\WeakAuras\\PowerAurasMedia\\Sounds\\sonar.ogg", "master") - aura_env.ticker = C_Timer.NewTicker(1, function() PlaySoundFile("Interface\\AddOns\\WeakAuras\\PowerAurasMedia\\Sounds\\sonar.ogg", "master"); end) - local nameplate = C_NamePlate.GetNamePlateForUnit(u) - LCG.PixelGlow_Start(nameplate, {1,1,1,1}, nil, 0, 8, 2, 0, -4) - end - elseif e == "NAME_PLATE_UNIT_REMOVED" then - local name = UnitName(u) - if name == mname then - if aura_env.ticker then - aura_env.ticker:Cancel() - aura_env.ticker = nil - end - local nameplate = C_NamePlate.GetNamePlateForUnit(u) - LCG.PixelGlow_Stop() - end - elseif e == "PLAYER_REGEN_DISABLED" and aura_env.ticker then - aura_env.ticker:Cancel() - aura_env.ticker = nil - elseif e == "PLAYER_TARGET_CHANGED" and aura_env.ticker then - if UnitName("target") == mname then - aura_env.ticker:Cancel() - aura_env.ticker = nil - end - end +--NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED PLAYER_REGEN_DISABLED PLAYER_TARGET_CHANGED +function(e, u) + --local mname = "Armored Vaultbot" + local mname = "Sickly Saurid" + local LCG = LibStub("LibCustomGlow-1.0") + if e == "NAME_PLATE_UNIT_ADDED" then + local name = UnitName(u) + if name == mname then + PlaySoundFile("Interface\\AddOns\\WeakAuras\\PowerAurasMedia\\Sounds\\sonar.ogg", "master") + aura_env.ticker = C_Timer.NewTicker(1, function() PlaySoundFile("Interface\\AddOns\\WeakAuras\\PowerAurasMedia\\Sounds\\sonar.ogg", "master"); end) + local nameplate = C_NamePlate.GetNamePlateForUnit(u) + LCG.PixelGlow_Start(nameplate, {1,1,1,1}, nil, 0, 8, 2, 0, -4) + end + elseif e == "NAME_PLATE_UNIT_REMOVED" then + local name = UnitName(u) + if name == mname then + if aura_env.ticker then + aura_env.ticker:Cancel() + aura_env.ticker = nil + end + local nameplate = C_NamePlate.GetNamePlateForUnit(u) + LCG.PixelGlow_Stop() + end + elseif e == "PLAYER_REGEN_DISABLED" and aura_env.ticker then + aura_env.ticker:Cancel() + aura_env.ticker = nil + elseif e == "PLAYER_TARGET_CHANGED" and aura_env.ticker then + if UnitName("target") == mname then + aura_env.ticker:Cancel() + aura_env.ticker = nil + end + end end \ No newline at end of file diff --git a/Complete Projects/BFA/Whoa/CTRL c to copy wowhead link to quest.lua b/WeakAuras/Projects/ByExp/BFA/Whoa/CTRL c to copy wowhead link to quest.lua similarity index 96% rename from Complete Projects/BFA/Whoa/CTRL c to copy wowhead link to quest.lua rename to WeakAuras/Projects/ByExp/BFA/Whoa/CTRL c to copy wowhead link to quest.lua index a4b9f1f..014daae 100644 --- a/Complete Projects/BFA/Whoa/CTRL c to copy wowhead link to quest.lua +++ b/WeakAuras/Projects/ByExp/BFA/Whoa/CTRL c to copy wowhead link to quest.lua @@ -1,60 +1,60 @@ -local baseUrl = "https://www.wowhead.com/" -local keybind = "CTRL-C" -local popupText = "Wowhead %s Link\n" .. keybind .. " to copy" - -local typeAttributeMap = { - 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) -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()) -end - -local function run() - 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, -} - -local btn = CreateFrame("BUTTON", "KeybindBtn") -SetBindingClick(keybind, btn:GetName()) -btn:SetScript("OnClick", run) +local baseUrl = "https://www.wowhead.com/" +local keybind = "CTRL-C" +local popupText = "Wowhead %s Link\n" .. keybind .. " to copy" + +local typeAttributeMap = { + 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) +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()) +end + +local function run() + 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, +} + +local btn = CreateFrame("BUTTON", "KeybindBtn") +SetBindingClick(keybind, btn:GetName()) +btn:SetScript("OnClick", run) diff --git a/Complete Projects/BFA/Whoa/Events.lua b/WeakAuras/Projects/ByExp/BFA/Whoa/Events.lua similarity index 100% rename from Complete Projects/BFA/Whoa/Events.lua rename to WeakAuras/Projects/ByExp/BFA/Whoa/Events.lua diff --git a/Complete Projects/BFA/Whoa/Nnoga's Hide Guild Chat.lua b/WeakAuras/Projects/ByExp/BFA/Whoa/Nnoga's Hide Guild Chat.lua similarity index 97% rename from Complete Projects/BFA/Whoa/Nnoga's Hide Guild Chat.lua rename to WeakAuras/Projects/ByExp/BFA/Whoa/Nnoga's Hide Guild Chat.lua index 69d7d21..4356139 100644 --- a/Complete Projects/BFA/Whoa/Nnoga's Hide Guild Chat.lua +++ b/WeakAuras/Projects/ByExp/BFA/Whoa/Nnoga's Hide Guild Chat.lua @@ -1,45 +1,45 @@ -function(event,addonName) - if event == "ADDON_LOADED" and addonName == "Blizzard_Communities" then - --create overlay - local f = CreateFrame("Button",nil,UIParent) - f:SetFrameStrata("HIGH") - f.tex = f:CreateTexture(nil, "BACKGROUND") - f.tex:SetAllPoints() - f.tex:SetColorTexture(0.1,0.1,0.1,1) - f.text = f:CreateFontString() - f.text:SetFontObject("GameFontNormalMed3") - f.text:SetText("Chat Hidden. Click to show") - f.text:SetTextColor(1, 1, 1, 1) - f.text:SetJustifyH("CENTER") - f.text:SetJustifyV("CENTER") - f.text:SetHeight(20) - f.text:SetPoint("CENTER",f,"CENTER",0,0) - f:EnableMouse(true) - f:RegisterForClicks("AnyUp") - f:SetScript("OnClick",function(...) - f:Hide() - end) - --toggle - local function toggleOverlay() - if CommunitiesFrame:GetDisplayMode() == COMMUNITIES_FRAME_DISPLAY_MODES.CHAT then - f:SetAllPoints(CommunitiesFrame.Chat.InsetFrame) - f:Show() - elseif CommunitiesFrame:GetDisplayMode() == COMMUNITIES_FRAME_DISPLAY_MODES.MINIMIZED then - f:SetAllPoints(CommunitiesFrameInset) - f:Show() - else - f:Hide() - end - end - local function hideOverlay() - f:Hide() - end - toggleOverlay() --run once - - --hook - hooksecurefunc(CommunitiesFrame,"SetDisplayMode", toggleOverlay) - hooksecurefunc(CommunitiesFrame,"Show",toggleOverlay) - hooksecurefunc(CommunitiesFrame,"Hide",hideOverlay) - hooksecurefunc(CommunitiesFrame,"OnClubSelected", toggleOverlay) - end +function(event,addonName) + if event == "ADDON_LOADED" and addonName == "Blizzard_Communities" then + --create overlay + local f = CreateFrame("Button",nil,UIParent) + f:SetFrameStrata("HIGH") + f.tex = f:CreateTexture(nil, "BACKGROUND") + f.tex:SetAllPoints() + f.tex:SetColorTexture(0.1,0.1,0.1,1) + f.text = f:CreateFontString() + f.text:SetFontObject("GameFontNormalMed3") + f.text:SetText("Chat Hidden. Click to show") + f.text:SetTextColor(1, 1, 1, 1) + f.text:SetJustifyH("CENTER") + f.text:SetJustifyV("CENTER") + f.text:SetHeight(20) + f.text:SetPoint("CENTER",f,"CENTER",0,0) + f:EnableMouse(true) + f:RegisterForClicks("AnyUp") + f:SetScript("OnClick",function(...) + f:Hide() + end) + --toggle + local function toggleOverlay() + if CommunitiesFrame:GetDisplayMode() == COMMUNITIES_FRAME_DISPLAY_MODES.CHAT then + f:SetAllPoints(CommunitiesFrame.Chat.InsetFrame) + f:Show() + elseif CommunitiesFrame:GetDisplayMode() == COMMUNITIES_FRAME_DISPLAY_MODES.MINIMIZED then + f:SetAllPoints(CommunitiesFrameInset) + f:Show() + else + f:Hide() + end + end + local function hideOverlay() + f:Hide() + end + toggleOverlay() --run once + + --hook + hooksecurefunc(CommunitiesFrame,"SetDisplayMode", toggleOverlay) + hooksecurefunc(CommunitiesFrame,"Show",toggleOverlay) + hooksecurefunc(CommunitiesFrame,"Hide",hideOverlay) + hooksecurefunc(CommunitiesFrame,"OnClubSelected", toggleOverlay) + end end \ No newline at end of file diff --git a/Complete Projects/BFA/Withdraw Guild Bank.lua b/WeakAuras/Projects/ByExp/BFA/Withdraw Guild Bank.lua similarity index 96% rename from Complete Projects/BFA/Withdraw Guild Bank.lua rename to WeakAuras/Projects/ByExp/BFA/Withdraw Guild Bank.lua index af56f21..422481e 100644 --- a/Complete Projects/BFA/Withdraw Guild Bank.lua +++ b/WeakAuras/Projects/ByExp/BFA/Withdraw Guild Bank.lua @@ -1,45 +1,45 @@ ---START DEPOSIT GUILDBANKFRAME_CLOSED -function(e) - local interval = 0.5 - local item = "U'taka" - if e == "START" then - for t = 1, GetNumGuildBankTabs() do - for s = 1, 98 do - local l = GetGuildBankItemLink(t, s) - if l then - local name = GetItemInfo(l) - if name:match(item) then - SetCurrentGuildBankTab(t) - aura_env.tab = t - break - end - end - end - end - if not aura_env.tab then print("NO FISH FOUND CUNT") else - local s = 1 - local aura_env = aura_env - aura_env.ticker = C_Timer.NewTicker(interval, function() - print(aura_env.tab, s) - AutoStoreGuildBankItem(aura_env.tab, s) - s = s + 1 - end) - end - elseif e == "DEPOSIT" then - local b = 0 - local s = 1 - local bs = 1 - local stage = 1 - local aura_env = aura_env - aura_env.ticker = C_Timer.NewTicker(interval, function() - if stage == 1 then SplitContainerItem(b, s, 1); print(stage); stage = stage + 1 - elseif stage == 2 then PickupGuildBankItem(6, bs); print(stage); stage = stage + 1 - elseif stage == 3 then PickupContainerItem(b, s); print(stage); stage = stage + 1 - elseif stage == 4 then PickupGuildBankItem(6, bs); print(stage); stage = stage + 1 - elseif stage == 5 then s = s + 1; bs = bs + 1; stage = 1 end - if s >= GetContainerNumSlots(b) then s = 1; b = b + 1 end - end) - elseif e == "GUILDBANKFRAME_CLOSED" then - if aura_env.ticker then aura_env.ticker:Cancel() end - end +--START DEPOSIT GUILDBANKFRAME_CLOSED +function(e) + local interval = 0.5 + local item = "U'taka" + if e == "START" then + for t = 1, GetNumGuildBankTabs() do + for s = 1, 98 do + local l = GetGuildBankItemLink(t, s) + if l then + local name = GetItemInfo(l) + if name:match(item) then + SetCurrentGuildBankTab(t) + aura_env.tab = t + break + end + end + end + end + if not aura_env.tab then print("NO FISH FOUND CUNT") else + local s = 1 + local aura_env = aura_env + aura_env.ticker = C_Timer.NewTicker(interval, function() + print(aura_env.tab, s) + AutoStoreGuildBankItem(aura_env.tab, s) + s = s + 1 + end) + end + elseif e == "DEPOSIT" then + local b = 0 + local s = 1 + local bs = 1 + local stage = 1 + local aura_env = aura_env + aura_env.ticker = C_Timer.NewTicker(interval, function() + if stage == 1 then SplitContainerItem(b, s, 1); print(stage); stage = stage + 1 + elseif stage == 2 then PickupGuildBankItem(6, bs); print(stage); stage = stage + 1 + elseif stage == 3 then PickupContainerItem(b, s); print(stage); stage = stage + 1 + elseif stage == 4 then PickupGuildBankItem(6, bs); print(stage); stage = stage + 1 + elseif stage == 5 then s = s + 1; bs = bs + 1; stage = 1 end + if s >= GetContainerNumSlots(b) then s = 1; b = b + 1 end + end) + elseif e == "GUILDBANKFRAME_CLOSED" then + if aura_env.ticker then aura_env.ticker:Cancel() end + end end \ No newline at end of file diff --git a/Complete Projects/BFA/__GOOD SHIT b/WeakAuras/Projects/ByExp/BFA/__GOOD SHIT similarity index 100% rename from Complete Projects/BFA/__GOOD SHIT rename to WeakAuras/Projects/ByExp/BFA/__GOOD SHIT diff --git a/Complete Projects/Classic/Warrior Heroic Strike.lua b/WeakAuras/Projects/ByExp/Classic/Warrior Heroic Strike.lua similarity index 96% rename from Complete Projects/Classic/Warrior Heroic Strike.lua rename to WeakAuras/Projects/ByExp/Classic/Warrior Heroic Strike.lua index 217fab6..2e547c9 100644 --- a/Complete Projects/Classic/Warrior Heroic Strike.lua +++ b/WeakAuras/Projects/ByExp/Classic/Warrior Heroic Strike.lua @@ -1,7 +1,7 @@ ---UPDATE_RAGE -function(e, ...) - if e == "UPDATE_RAGE" then - local hs = IsCurrentSpell("Cleave") - if hs == true then return true else return false end - end +--UPDATE_RAGE +function(e, ...) + if e == "UPDATE_RAGE" then + local hs = IsCurrentSpell("Cleave") + if hs == true then return true else return false end + end end \ No newline at end of file diff --git a/Complete Projects/Classic/Warrior Rage.lua b/WeakAuras/Projects/ByExp/Classic/Warrior Rage.lua similarity index 97% rename from Complete Projects/Classic/Warrior Rage.lua rename to WeakAuras/Projects/ByExp/Classic/Warrior Rage.lua index 1c7eec6..86e17a9 100644 --- a/Complete Projects/Classic/Warrior Rage.lua +++ b/WeakAuras/Projects/ByExp/Classic/Warrior Rage.lua @@ -1,36 +1,36 @@ ---UPDATE_RAGE -function(e, ...) - if e == "UPDATE_RAGE" then - return true - elseif e == "PLAYER_REGEN_DISABLED" then - if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(0.05, function() WeakAuras.ScanEvents("UPDATE_RAGE") end) end - end -end - ---DURATION -function() - local rage, maxrage = UnitPower("player"), UnitPowerMax("player") - WeakAurasSaved.CustomTrash.CustomRage = rage - return rage, maxrage, 1 -end - ---DURATION2 ---Other aura -function() - local hs = IsCurrentSpell("Heroic Strike") - local cleave = IsCurrentSpell("Cleave") - if hs then return WeakAurasSaved.CustomTrash.CustomRage - 15, UnitPowerMax("player"), 1 elseif cleave then return WeakAurasSaved.CustomTrash.CustomRage - 20, UnitPowerMax("player"), 1 else return WeakAurasSaved.CustomTrash.CustomRage, UnitPowerMax("player"), 1 end -end - ---TEXT -function() - return WeakAurasSaved.CustomTrash.CustomRage -end - ---INIT -if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end -if WeakAuras.IsOptionsOpen() and aura_env.ticker then - aura_env.ticker:Cancel() -else - if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(0.05, function() WeakAuras.ScanEvents("UPDATE_RAGE") end) end +--UPDATE_RAGE +function(e, ...) + if e == "UPDATE_RAGE" then + return true + elseif e == "PLAYER_REGEN_DISABLED" then + if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(0.05, function() WeakAuras.ScanEvents("UPDATE_RAGE") end) end + end +end + +--DURATION +function() + local rage, maxrage = UnitPower("player"), UnitPowerMax("player") + WeakAurasSaved.CustomTrash.CustomRage = rage + return rage, maxrage, 1 +end + +--DURATION2 +--Other aura +function() + local hs = IsCurrentSpell("Heroic Strike") + local cleave = IsCurrentSpell("Cleave") + if hs then return WeakAurasSaved.CustomTrash.CustomRage - 15, UnitPowerMax("player"), 1 elseif cleave then return WeakAurasSaved.CustomTrash.CustomRage - 20, UnitPowerMax("player"), 1 else return WeakAurasSaved.CustomTrash.CustomRage, UnitPowerMax("player"), 1 end +end + +--TEXT +function() + return WeakAurasSaved.CustomTrash.CustomRage +end + +--INIT +if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end +if WeakAuras.IsOptionsOpen() and aura_env.ticker then + aura_env.ticker:Cancel() +else + if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(0.05, function() WeakAuras.ScanEvents("UPDATE_RAGE") end) end end \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/Aura Uptime.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/Aura Uptime.lua similarity index 97% rename from Complete Projects/Fivver Stuff/Aura Uptime.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/Aura Uptime.lua index 68d9f3e..c6c8772 100644 --- a/Complete Projects/Fivver Stuff/Aura Uptime.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/Aura Uptime.lua @@ -1,199 +1,199 @@ ---PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED UPDATE --- look for auras every frame --- or maybe look for combatlog ? --- get time when each aura is applied/expires --- calculate uptime based on the log ? --- alternatively sample each frame and add up # of frames aura was active and # of frames combat was ongoing --- bad solution though -function(e) - if e == "PLAYER_REGEN_DISABLED" then - local aura_env = aura_env - aura_env.ticker = C_Timer.NewTicker(1, function() WeakAuras.ScanEvents("UPDATE") end) - aura_env.startCombat = debugprofilestop() - aura_env.buffs = {} - aura_env.debuffs = {} - return true - elseif e == "PLAYER_REGEN_ENABLED" then - if aura_env.ticker then aura_env.ticker:Cancel() end - elseif e == "UPDATE" then return true end -end - ---CLEU ---COMBAT_LOG_EVENT_UNFILTERED -function(e) - if not aura_env.buffs then aura_env.buffs = {} end - if not aura_env.debuffs then aura_env.debuffs = {} end - - local timestamp, subEvent, _, _, caster, _, _, _, target = CombatLogGetCurrentEventInfo() - -- print(CombatLogGetCurrentEventInfo()) - - -- if "buff" is selected in the menu and - -- there has been an aura applied or removed and - -- the aura has been cast by the player on the player then - -- do fancy data stuff pls - if InCombatLockdown() ~= false then - local targetUnit = "boss1" - if UnitExists(targetUnit) == false then targetUnit = "target" end - if (aura_env.config.menu == 1 or aura_env.config.menu == 3) and (subEvent == "SPELL_AURA_REMOVED" or subEvent == "SPELL_AURA_APPLIED") and (caster == target and caster == UnitName("player")) then - local spell = select(12, CombatLogGetCurrentEventInfo()) - print("SPell", spell) - if not aura_env.buffs[spell] then - aura_env.buffs[spell] = { - ["timeActive"] = 0, - ["timeInactive"] = 0, - ["active"] = false, - ["lastSwitch"] = debugprofilestop(), - } - -- print("OPA; NEW SPELL") - end - if subEvent == "SPELL_AURA_APPLIED" and aura_env.buffs[spell] then - aura_env.buffs[spell].active = true - aura_env.buffs[spell].timeInactive = aura_env.buffs[spell].timeInactive + debugprofilestop() - aura_env.buffs[spell].lastSwitch - aura_env.buffs[spell].lastSwitch = debugprofilestop() - elseif subEvent == "SPELL_AURA_REMOVED" and aura_env.buffs[spell] then - aura_env.buffs[spell].active = false - aura_env.buffs[spell].timeActive = aura_env.buffs[spell].timeActive + debugprofilestop() - aura_env.buffs[spell].lastSwitch - aura_env.buffs[spell].lastSwitch = debugprofilestop() - end - elseif (aura_env.config.menu == 2 or aura_env.config.menu == 3) and (subEvent == "SPELL_AURA_REMOVED" or subEvent == "SPELL_AURA_APPLIED") and (caster == UnitName("player") and target == UnitName(targetUnit)) then - local spell = select(12, CombatLogGetCurrentEventInfo()) - if not aura_env.debuffs[spell] then - aura_env.debuffs[spell] = { - ["timeActive"] = 0, - ["timeInactive"] = 0, - ["active"] = false, - ["lastSwitch"] = debugprofilestop(), - } - -- print("OPA; NEW SPELL") - end - if subEvent == "SPELL_AURA_APPLIED" and aura_env.debuffs[spell] then - aura_env.debuffs[spell].active = true - aura_env.debuffs[spell].timeInactive = aura_env.debuffs[spell].timeInactive + debugprofilestop() - aura_env.debuffs[spell].lastSwitch - aura_env.debuffs[spell].lastSwitch = debugprofilestop() - elseif subEvent == "SPELL_AURA_REMOVED" and aura_env.debuffs[spell] then - aura_env.debuffs[spell].active = false - aura_env.debuffs[spell].timeActive = aura_env.debuffs[spell].timeActive + debugprofilestop() - aura_env.debuffs[spell].lastSwitch - aura_env.debuffs[spell].lastSwitch = debugprofilestop() - end - end - end - - -- debug print pls - for k,v in pairs(aura_env.buffs) do - -- print(k,v) - if type(v) == "table" then - for k2,v2 in pairs(v) do - -- print(k2,v2) - if type(v2) == "table" then - for k3,v3 in pairs(v2) do - -- print(k3,v3) - end - end - end - end - end - -end - ---DISPLAY -function() - aura_env.combatTime = (debugprofilestop() - aura_env.startCombat) / 1000 - local output = aura_env.formatTime(aura_env.combatTime) .. "\n" - aura_env.getColor(1) - for k,v in pairs(aura_env.buffs) do - - -- DEBUG - -- print(k) - -- for k2,v2 in pairs(v) do - -- print(k2, v2) - -- end - -- print("DEBUG TIME", debugprofilestop()) - -- print("END" .. "\n") - - local totalActiveTime = 0 - if v.active == true then - totalActiveTime = totalActiveTime + debugprofilestop() - v.lastSwitch + v.timeActive - else - totalActiveTime = totalActiveTime + v.timeActive - end - - output = string.format("%s %s%20s %10s %10s\n", output, aura_env.getColor(1), GetSpellInfo(k), aura_env.formatTime(totalActiveTime / 1000), string.format("%.2f%%", ((totalActiveTime / 1000) / aura_env.combatTime) * 100)) - -- output = output .. aura_env.getColor(1) .. GetSpellInfo(k) .. " " .. aura_env.formatTime(totalActiveTime / 1000) .. " " .. string.format("%.2f%%", ((totalActiveTime / 1000) / aura_env.combatTime) * 100) .. "\n" - end - - for k,v in pairs(aura_env.debuffs) do - - -- DEBUG - -- print(k) - for k2,v2 in pairs(v) do - -- print(k2, v2) - end - -- print("DEBUG TIME", debugprofilestop()) - -- print("END" .. "\n") - - local totalActiveTime = 0 - if v.active == true then - totalActiveTime = totalActiveTime + debugprofilestop() - v.lastSwitch + v.timeActive - else - totalActiveTime = totalActiveTime + v.timeActive - end - output = output .. aura_env.getColor(2) - if k == 233490 or (k >= 233496 and k <= 233499) then - if k == 233490 then - output = output .. GetSpellInfo(k) .. " 1" - elseif k >= 233496 and k <= 233499 then - output = output .. GetSpellInfo(k) .. " " .. (k % 233496) + 2 - end - else - output = output .. GetSpellInfo(k) - end - output = output .. " " .. aura_env.formatTime(totalActiveTime / 1000) .. " " .. string.format("%.2f%%", ((totalActiveTime / 1000) / aura_env.combatTime) * 100) .. "\n" - end - return output -end - ---INIT -aura_env.buffs = {} -aura_env.debuffs = {} -aura_env.combatTime = 0 -aura_env.startCombat = 0 - -aura_env.formatTime = function(time) - local res, m, s = tonumber(string.format("%d", time)), 0, 0 - while res >= 60 do - m = m + 1 - res = res - 60 - end - s = res - 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 - -aura_env.getColor = function(mode) - -- ff78cb00 - local output = "\124c" - local colors = {} - if mode == 1 then - colors = {aura_env.config.bcolor[4], aura_env.config.bcolor[1], aura_env.config.bcolor[2], aura_env.config.bcolor[3]} - elseif mode == 2 then - colors = {aura_env.config.dcolor[4], aura_env.config.dcolor[1], aura_env.config.dcolor[2], aura_env.config.dcolor[3]} - end - local a, r, g, b = "00", "00", "00", "00" - - a = string.format("%x", colors[1] * 255) - r = string.format("%x", colors[2] * 255) - g = string.format("%x", colors[3] * 255) - b = string.format("%x", colors[4] * 255) - - - if string.len(a) == 1 then a = "0" .. a end - if string.len(r) == 1 then r = "0" .. r end - if string.len(g) == 1 then g = "0" .. g end - if string.len(b) == 1 then b = "0" .. b end - - output = output .. a .. r .. g .. b - return output +--PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED UPDATE +-- look for auras every frame +-- or maybe look for combatlog ? +-- get time when each aura is applied/expires +-- calculate uptime based on the log ? +-- alternatively sample each frame and add up # of frames aura was active and # of frames combat was ongoing +-- bad solution though +function(e) + if e == "PLAYER_REGEN_DISABLED" then + local aura_env = aura_env + aura_env.ticker = C_Timer.NewTicker(1, function() WeakAuras.ScanEvents("UPDATE") end) + aura_env.startCombat = debugprofilestop() + aura_env.buffs = {} + aura_env.debuffs = {} + return true + elseif e == "PLAYER_REGEN_ENABLED" then + if aura_env.ticker then aura_env.ticker:Cancel() end + elseif e == "UPDATE" then return true end +end + +--CLEU +--COMBAT_LOG_EVENT_UNFILTERED +function(e) + if not aura_env.buffs then aura_env.buffs = {} end + if not aura_env.debuffs then aura_env.debuffs = {} end + + local timestamp, subEvent, _, _, caster, _, _, _, target = CombatLogGetCurrentEventInfo() + -- print(CombatLogGetCurrentEventInfo()) + + -- if "buff" is selected in the menu and + -- there has been an aura applied or removed and + -- the aura has been cast by the player on the player then + -- do fancy data stuff pls + if InCombatLockdown() ~= false then + local targetUnit = "boss1" + if UnitExists(targetUnit) == false then targetUnit = "target" end + if (aura_env.config.menu == 1 or aura_env.config.menu == 3) and (subEvent == "SPELL_AURA_REMOVED" or subEvent == "SPELL_AURA_APPLIED") and (caster == target and caster == UnitName("player")) then + local spell = select(12, CombatLogGetCurrentEventInfo()) + print("SPell", spell) + if not aura_env.buffs[spell] then + aura_env.buffs[spell] = { + ["timeActive"] = 0, + ["timeInactive"] = 0, + ["active"] = false, + ["lastSwitch"] = debugprofilestop(), + } + -- print("OPA; NEW SPELL") + end + if subEvent == "SPELL_AURA_APPLIED" and aura_env.buffs[spell] then + aura_env.buffs[spell].active = true + aura_env.buffs[spell].timeInactive = aura_env.buffs[spell].timeInactive + debugprofilestop() - aura_env.buffs[spell].lastSwitch + aura_env.buffs[spell].lastSwitch = debugprofilestop() + elseif subEvent == "SPELL_AURA_REMOVED" and aura_env.buffs[spell] then + aura_env.buffs[spell].active = false + aura_env.buffs[spell].timeActive = aura_env.buffs[spell].timeActive + debugprofilestop() - aura_env.buffs[spell].lastSwitch + aura_env.buffs[spell].lastSwitch = debugprofilestop() + end + elseif (aura_env.config.menu == 2 or aura_env.config.menu == 3) and (subEvent == "SPELL_AURA_REMOVED" or subEvent == "SPELL_AURA_APPLIED") and (caster == UnitName("player") and target == UnitName(targetUnit)) then + local spell = select(12, CombatLogGetCurrentEventInfo()) + if not aura_env.debuffs[spell] then + aura_env.debuffs[spell] = { + ["timeActive"] = 0, + ["timeInactive"] = 0, + ["active"] = false, + ["lastSwitch"] = debugprofilestop(), + } + -- print("OPA; NEW SPELL") + end + if subEvent == "SPELL_AURA_APPLIED" and aura_env.debuffs[spell] then + aura_env.debuffs[spell].active = true + aura_env.debuffs[spell].timeInactive = aura_env.debuffs[spell].timeInactive + debugprofilestop() - aura_env.debuffs[spell].lastSwitch + aura_env.debuffs[spell].lastSwitch = debugprofilestop() + elseif subEvent == "SPELL_AURA_REMOVED" and aura_env.debuffs[spell] then + aura_env.debuffs[spell].active = false + aura_env.debuffs[spell].timeActive = aura_env.debuffs[spell].timeActive + debugprofilestop() - aura_env.debuffs[spell].lastSwitch + aura_env.debuffs[spell].lastSwitch = debugprofilestop() + end + end + end + + -- debug print pls + for k,v in pairs(aura_env.buffs) do + -- print(k,v) + if type(v) == "table" then + for k2,v2 in pairs(v) do + -- print(k2,v2) + if type(v2) == "table" then + for k3,v3 in pairs(v2) do + -- print(k3,v3) + end + end + end + end + end + +end + +--DISPLAY +function() + aura_env.combatTime = (debugprofilestop() - aura_env.startCombat) / 1000 + local output = aura_env.formatTime(aura_env.combatTime) .. "\n" + aura_env.getColor(1) + for k,v in pairs(aura_env.buffs) do + + -- DEBUG + -- print(k) + -- for k2,v2 in pairs(v) do + -- print(k2, v2) + -- end + -- print("DEBUG TIME", debugprofilestop()) + -- print("END" .. "\n") + + local totalActiveTime = 0 + if v.active == true then + totalActiveTime = totalActiveTime + debugprofilestop() - v.lastSwitch + v.timeActive + else + totalActiveTime = totalActiveTime + v.timeActive + end + + output = string.format("%s %s%20s %10s %10s\n", output, aura_env.getColor(1), GetSpellInfo(k), aura_env.formatTime(totalActiveTime / 1000), string.format("%.2f%%", ((totalActiveTime / 1000) / aura_env.combatTime) * 100)) + -- output = output .. aura_env.getColor(1) .. GetSpellInfo(k) .. " " .. aura_env.formatTime(totalActiveTime / 1000) .. " " .. string.format("%.2f%%", ((totalActiveTime / 1000) / aura_env.combatTime) * 100) .. "\n" + end + + for k,v in pairs(aura_env.debuffs) do + + -- DEBUG + -- print(k) + for k2,v2 in pairs(v) do + -- print(k2, v2) + end + -- print("DEBUG TIME", debugprofilestop()) + -- print("END" .. "\n") + + local totalActiveTime = 0 + if v.active == true then + totalActiveTime = totalActiveTime + debugprofilestop() - v.lastSwitch + v.timeActive + else + totalActiveTime = totalActiveTime + v.timeActive + end + output = output .. aura_env.getColor(2) + if k == 233490 or (k >= 233496 and k <= 233499) then + if k == 233490 then + output = output .. GetSpellInfo(k) .. " 1" + elseif k >= 233496 and k <= 233499 then + output = output .. GetSpellInfo(k) .. " " .. (k % 233496) + 2 + end + else + output = output .. GetSpellInfo(k) + end + output = output .. " " .. aura_env.formatTime(totalActiveTime / 1000) .. " " .. string.format("%.2f%%", ((totalActiveTime / 1000) / aura_env.combatTime) * 100) .. "\n" + end + return output +end + +--INIT +aura_env.buffs = {} +aura_env.debuffs = {} +aura_env.combatTime = 0 +aura_env.startCombat = 0 + +aura_env.formatTime = function(time) + local res, m, s = tonumber(string.format("%d", time)), 0, 0 + while res >= 60 do + m = m + 1 + res = res - 60 + end + s = res + 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 + +aura_env.getColor = function(mode) + -- ff78cb00 + local output = "\124c" + local colors = {} + if mode == 1 then + colors = {aura_env.config.bcolor[4], aura_env.config.bcolor[1], aura_env.config.bcolor[2], aura_env.config.bcolor[3]} + elseif mode == 2 then + colors = {aura_env.config.dcolor[4], aura_env.config.dcolor[1], aura_env.config.dcolor[2], aura_env.config.dcolor[3]} + end + local a, r, g, b = "00", "00", "00", "00" + + a = string.format("%x", colors[1] * 255) + r = string.format("%x", colors[2] * 255) + g = string.format("%x", colors[3] * 255) + b = string.format("%x", colors[4] * 255) + + + if string.len(a) == 1 then a = "0" .. a end + if string.len(r) == 1 then r = "0" .. r end + if string.len(g) == 1 then g = "0" .. g end + if string.len(b) == 1 then b = "0" .. b end + + output = output .. a .. r .. g .. b + return output end \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/Buff Me Daddy.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/Buff Me Daddy.lua similarity index 97% rename from Complete Projects/Fivver Stuff/Buff Me Daddy.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/Buff Me Daddy.lua index 7e25ec7..c3f2aa4 100644 --- a/Complete Projects/Fivver Stuff/Buff Me Daddy.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/Buff Me Daddy.lua @@ -1,127 +1,127 @@ ---COMBAT_LOG_EVENT_UNFILTERED ADD_BUFF REMOVE_BUFF ---https://pastebin.com/4xyHRftN -function(e, ...) - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, ...) - if se == "SPELL_AURA_APPLIED" or se == "SPELL_AURA_REMOVED" then - aura_env.scanBuffs() - end - elseif e == "ADD_BUFF" then - local msg = select(1, ...) - local arg = select(2, ...) - if msg then - if not WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg] then - WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg] = {["active"] = false} - if arg then - WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg].group = arg - if not WeakAurasSaved.CustomTrash.BuffButtons.Groups[arg] then WeakAurasSaved.CustomTrash.BuffButtons.Groups[arg] = {["active"] = 0, ["shown"] = true} end - end - print(msg, "added") - else - print(msg, "already exists") - end - end - aura_env.scanBuffs() - elseif e == "REMOVE_BUFF" then - local msg = select(1, ...) - if msg and WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg] then - WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg] = nil - print(msg, "removed") - else - print(msg, WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg]) - print("Cannot remove", msg) - end - aura_env.scanBuffs() - end -end - ---INIT -if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end -if not WeakAurasSaved.CustomTrash.BuffButtons then WeakAurasSaved.CustomTrash.BuffButtons = {} end -if not WeakAurasSaved.CustomTrash.BuffButtons.Buffs then WeakAurasSaved.CustomTrash.BuffButtons.Buffs = {} end -if not WeakAurasSaved.CustomTrash.BuffButtons.Buttons then WeakAurasSaved.CustomTrash.BuffButtons.Buttons = {} end -if not WeakAurasSaved.CustomTrash.BuffButtons.Groups then WeakAurasSaved.CustomTrash.BuffButtons.Groups = {} end -aura_env.buttons = 0 - -aura_env.scanBuffs = function() - for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buffs) do - v.active = false - end - for i = 1, 40 do - local name = UnitBuff("player", i) - print(name) - if WeakAurasSaved.CustomTrash.BuffButtons.Buffs[name] then - WeakAurasSaved.CustomTrash.BuffButtons.Buffs[name].active = true - end - if not name then break end - end - aura_env.refreshButtons() -end - -aura_env.resortButtons = function() - aura_env.buttons = 0 - for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buttons) do - if v:IsShown() == true then - if not WeakAurasSaved.CustomTrash.BuffButtons.Buffs[k] then - v:Hide() - else - v:SetPoint("CENTER", aura_env.region, "CENTER", aura_env.buttons * aura_env.config.size, 0) - aura_env.buttons = aura_env.buttons + 1 - end - end - end -end - -aura_env.refreshButtons = function() - for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buffs) do - if not WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k] or not WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k][0] then - WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k] = CreateFrame("Button", "buton", aura_env.region, "SecureActionButtonTemplate") - WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetAttribute("type", "macro") - WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:RegisterForClicks("LeftButtonDown") - WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:Show() - WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetPoint("CENTER", aura_env.region, "CENTER", aura_env.buttons * aura_env.config.size, 0) - end - WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetAttribute("macrotext", format("/use %s", k)) - WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetSize(aura_env.config.size, aura_env.config.size) - end - for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buffs) do - if v.active == false then - local texture = GetItemIcon(k) or GetSpellTexture(k) - if not GetSpellTexture(k) then - local count = GetItemCount(k) - if not WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text then WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text = WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:CreateFontString("ItemCount", "ARTWORK") end - WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text:SetFont("Fonts\\FRIZQT__.TTF", aura_env.config.size / 2, "OUTLINE, MONOCHROME") - WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text:SetPoint("CENTER", WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k], "CENTER") - WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text:SetText(count) - WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text:Show() - end - WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetNormalTexture(texture) - WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:Show() - ActionButton_ShowOverlayGlow(WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]) - else - WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:Hide() - end - end - aura_env.resortButtons() -end - -for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buttons) do - if k[0] then - print(k,v) - v:SetSize(aura_env.config.size, aura_env.config.size) - ActionButton_HideOverlayGlow(k) - end -end -aura_env.scanBuffs() - - ---INIT -local xsize, ysize = aura_env.region:GetSize() -if not aura_env.button then aura_env.button = CreateFrame("Button", "buton", aura_env.region, "SecureActionButtonTemplate") end -if aura_env.button then - aura_env.button:SetPoint("CENTER", aura_env.region, "CENTER") - aura_env.button:SetSize(xsize, ysize) - aura_env.button:SetAttribute("type", "macro") - aura_env.button:RegisterForClicks("LeftButtonDown") - aura_env.button:SetAttribute("macrotext", format("/use %s", aura_env.id)) +--COMBAT_LOG_EVENT_UNFILTERED ADD_BUFF REMOVE_BUFF +--https://pastebin.com/4xyHRftN +function(e, ...) + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, ...) + if se == "SPELL_AURA_APPLIED" or se == "SPELL_AURA_REMOVED" then + aura_env.scanBuffs() + end + elseif e == "ADD_BUFF" then + local msg = select(1, ...) + local arg = select(2, ...) + if msg then + if not WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg] then + WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg] = {["active"] = false} + if arg then + WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg].group = arg + if not WeakAurasSaved.CustomTrash.BuffButtons.Groups[arg] then WeakAurasSaved.CustomTrash.BuffButtons.Groups[arg] = {["active"] = 0, ["shown"] = true} end + end + print(msg, "added") + else + print(msg, "already exists") + end + end + aura_env.scanBuffs() + elseif e == "REMOVE_BUFF" then + local msg = select(1, ...) + if msg and WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg] then + WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg] = nil + print(msg, "removed") + else + print(msg, WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg]) + print("Cannot remove", msg) + end + aura_env.scanBuffs() + end +end + +--INIT +if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end +if not WeakAurasSaved.CustomTrash.BuffButtons then WeakAurasSaved.CustomTrash.BuffButtons = {} end +if not WeakAurasSaved.CustomTrash.BuffButtons.Buffs then WeakAurasSaved.CustomTrash.BuffButtons.Buffs = {} end +if not WeakAurasSaved.CustomTrash.BuffButtons.Buttons then WeakAurasSaved.CustomTrash.BuffButtons.Buttons = {} end +if not WeakAurasSaved.CustomTrash.BuffButtons.Groups then WeakAurasSaved.CustomTrash.BuffButtons.Groups = {} end +aura_env.buttons = 0 + +aura_env.scanBuffs = function() + for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buffs) do + v.active = false + end + for i = 1, 40 do + local name = UnitBuff("player", i) + print(name) + if WeakAurasSaved.CustomTrash.BuffButtons.Buffs[name] then + WeakAurasSaved.CustomTrash.BuffButtons.Buffs[name].active = true + end + if not name then break end + end + aura_env.refreshButtons() +end + +aura_env.resortButtons = function() + aura_env.buttons = 0 + for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buttons) do + if v:IsShown() == true then + if not WeakAurasSaved.CustomTrash.BuffButtons.Buffs[k] then + v:Hide() + else + v:SetPoint("CENTER", aura_env.region, "CENTER", aura_env.buttons * aura_env.config.size, 0) + aura_env.buttons = aura_env.buttons + 1 + end + end + end +end + +aura_env.refreshButtons = function() + for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buffs) do + if not WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k] or not WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k][0] then + WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k] = CreateFrame("Button", "buton", aura_env.region, "SecureActionButtonTemplate") + WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetAttribute("type", "macro") + WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:RegisterForClicks("LeftButtonDown") + WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:Show() + WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetPoint("CENTER", aura_env.region, "CENTER", aura_env.buttons * aura_env.config.size, 0) + end + WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetAttribute("macrotext", format("/use %s", k)) + WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetSize(aura_env.config.size, aura_env.config.size) + end + for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buffs) do + if v.active == false then + local texture = GetItemIcon(k) or GetSpellTexture(k) + if not GetSpellTexture(k) then + local count = GetItemCount(k) + if not WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text then WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text = WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:CreateFontString("ItemCount", "ARTWORK") end + WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text:SetFont("Fonts\\FRIZQT__.TTF", aura_env.config.size / 2, "OUTLINE, MONOCHROME") + WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text:SetPoint("CENTER", WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k], "CENTER") + WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text:SetText(count) + WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text:Show() + end + WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetNormalTexture(texture) + WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:Show() + ActionButton_ShowOverlayGlow(WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]) + else + WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:Hide() + end + end + aura_env.resortButtons() +end + +for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buttons) do + if k[0] then + print(k,v) + v:SetSize(aura_env.config.size, aura_env.config.size) + ActionButton_HideOverlayGlow(k) + end +end +aura_env.scanBuffs() + + +--INIT +local xsize, ysize = aura_env.region:GetSize() +if not aura_env.button then aura_env.button = CreateFrame("Button", "buton", aura_env.region, "SecureActionButtonTemplate") end +if aura_env.button then + aura_env.button:SetPoint("CENTER", aura_env.region, "CENTER") + aura_env.button:SetSize(xsize, ysize) + aura_env.button:SetAttribute("type", "macro") + aura_env.button:RegisterForClicks("LeftButtonDown") + aura_env.button:SetAttribute("macrotext", format("/use %s", aura_env.id)) end \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/FO1B8D1F40B6 - Conductive Ink.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/FO1B8D1F40B6 - Conductive Ink.lua similarity index 97% rename from Complete Projects/Fivver Stuff/FO1B8D1F40B6 - Conductive Ink.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/FO1B8D1F40B6 - Conductive Ink.lua index 45569ee..44be28d 100644 --- a/Complete Projects/Fivver Stuff/FO1B8D1F40B6 - Conductive Ink.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/FO1B8D1F40B6 - Conductive Ink.lua @@ -1,357 +1,357 @@ ---CLEU PLAYER_TARGET_CHANGED PLAYER_FOCUS_CHANGED -function(e, ...) - if aura_env.config.tsuenable == false then - local se = select(2, ...) - if se == "SPELL_AURA_APPLIED_DOSE" or e == "PLAYER_TARGET_CHANGED" then - aura_env.owndebuff = {["stacks"] = 0, ["damage"] = 0,} - aura_env.totaldebuff = {["stacks"] = 0, ["damage"] = 0,} - aura_env.damagepercentage = 0 - local unit = "target" - if aura_env.config.tar == 2 then unit = "focus" elseif aura_env.config.tar == 3 then unit = "Boss1" end - local bossmax = UnitHealthMax(unit) - if aura_env.config.pdmg == true then - for i = 1, 200 do - local name = UnitDebuff(unit, i) - if name == "Conductive Ink" then - local caster = select(7, UnitDebuff(unit, i)) - local stacks = select(3, UnitDebuff(unit, i)) - aura_env.totaldebuff.stacks = aura_env.totaldebuff.stacks + stacks - aura_env.myTooltip:SetUnitDebuff(unit, i) - local text = _G["MyAddOnTooltipTextLeft2"]:GetText() - if text:match("Falling below %d*%% health will cause") then - local damage = text:match("inflict (%d+%,?%d*)") - damage = damage:gsub("%,", "") - damage = damage:gsub(" ", "") - damage = tonumber(damage) - aura_env.totaldebuff.damage = aura_env.totaldebuff.damage + damage - if caster == "player" then aura_env.owndebuff.damage = damage; aura_env.owndebuff.stacks = stacks end - end - elseif not name then break end - end - else - for i = 1, 200 do - local name = UnitDebuff(unit, i) - if name == "Conductive Ink" then - aura_env.totaldebuff.stacks = aura_env.totaldebuff.stacks + select(3, UnitDebuff(unit, i)) - aura_env.myTooltip:SetUnitDebuff(unit, i) - local text = _G["MyAddOnTooltipTextLeft2"]:GetText() - if text:match("Falling below %d*%% health will cause") then - aura_env.totaldebuff.damage = text:match("inflict (%d+%,?%d*)") - aura_env.totaldebuff.damage = aura_env.totaldebuff.damage:gsub("%,", "") - aura_env.totaldebuff.damage = aura_env.totaldebuff.damage:gsub(" ", "") - aura_env.totaldebuff.damage = tonumber(aura_env.totaldebuff.damage) - end - break - elseif not name then break end - end - end - aura_env.damagepercentage = aura_env.round(((aura_env.totaldebuff.damage / bossmax) * 100), 2) - return true - end - end -end - ---TSU ---CLEU PLAYER_TARGET_CHANGED PLAYER_FOCUS_CHANGED -function(allstates, e, ...) - if aura_env.config.tsuenable == true then - if InCombatLockdown() == true then - --Base setup - local unit = "target" - if not aura_env.data then aura_env.data = {} end - local crit = false - local function update_allstates(data, unit) - local maxdmg, maxstack = 0, 0 - local totaldmg, totalstack = 0, 0 - --Get max and total damage - for k,v in pairs(data) do - if v.d > maxdmg then - maxdmg = v.d - end - if v.s > maxstack then - maxstack = v.s - end - totaldmg = totaldmg + v.d - totalstack = totalstack + v.s - end - --Get damage in boss % - local perc = 0 - local pp = 0 - local islow = false - if UnitExists(unit) then - local hp, maxhp = UnitHealth(unit), UnitHealthMax(unit) - pp = hp/maxhp - if pp < 0.3 then islow = true end - perc = aura_env.round(((totaldmg / maxhp) * 100), 2) - end - --Store all members in allstates - for k,v in pairs(data) do - allstates[k] = { - show = true, - changed = true, - resort = true, - progressType = "static", - caster = k, - class = v.c, - value = v.d, - total = maxdmg, - index = v.d, - stacks = v.s, - crit = v.cr, - } - end - --Total bar control - if UnitExists(unit) then - allstates[1] = { - show = true, - changed = true, - resort = true, - progressType = "static", - caster = "Total", - class = 5, --priest; White - value = totaldmg, - total = totaldmg, - index = totaldmg + 1, - stacks = totalstack, - percent = perc, - } - if islow == true then - allstates[1].class = 15 - end - end - end - --Debug and options - local command = UnitDebuff; if aura_env.config.debug == true then command = aura_env.UnitDebuffC end - if aura_env.config.tar == 2 then unit = "focus" elseif aura_env.config.tar == 3 then unit = "Boss1" end - --Trying to store info of debuff into data table from , looking for damage, stacks and caster, also included debug - if UnitExists(unit) then - if e == "PLAYER_TARGET_CHANGED" or e == "PLAYER_FOCUS_CHANGED" then - for k,v in pairs(allstates) do - v.show = false - v.changed = true - end - aura_env.data = {} - if UnitExists(unit) then - local hp, maxhp = UnitHealth(unit), UnitHealthMax(unit) - for i = 1, 100 do - local name = command(unit, i) - if name == "Conductive Ink" then - local caster = select(7, command(unit, i)) - caster = UnitName(caster) - local stacks = select(3, command(unit, i)) - if aura_env.config.debug == false then - aura_env.myTooltip:SetUnitDebuff(unit, i) - local text = _G["MyAddOnTooltipTextLeft2"]:GetText() - if text:match("Falling below %d*%% health will cause") then - local damage = text:match("inflict (%d+%,?%d*)") - damage = damage:gsub("%,", "") - damage = damage:gsub(" ", "") - damage = tonumber(damage) - aura_env.data[caster] = { - ["d"] = damage, - ["s"] = stacks, - ["c"] = select(3, UnitClass(caster)), - } - end - else - local damage = i * 523427 - aura_env.data[caster] = { - ["d"] = damage, - ["s"] = stacks, - ["c"] = select(4, command(unit, i)), - } - end - elseif not name then - break - end - end - update_allstates(aura_env.data, unit) - end - elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, ...) - local hp, maxhp = UnitHealth(unit), UnitHealthMax(unit) - --Looking for debuff info upon applying new stack, to update data table - if se == "SPELL_AURA_APPLIED_DOSE" then - for i = 1, 100 do - local name = command(unit, i) - if name == "Conductive Ink" then - local caster = select(7, command(unit, i)) - caster = UnitName(caster) - local stacks = select(3, command(unit, i)) - if aura_env.config.debug == false then - aura_env.myTooltip:SetUnitDebuff(unit, i) - local text = _G["MyAddOnTooltipTextLeft2"]:GetText() - if text:match("Falling below %d*%% health will cause") then - local damage = text:match("inflict (%d+%,?%d*)") - damage = damage:gsub("%,", "") - damage = damage:gsub(" ", "") - damage = tonumber(damage) - aura_env.data[caster] = { - ["d"] = damage, - ["s"] = stacks, - ["c"] = select(3, UnitClass(caster)), - } - end - else - local damage = i * 12312 - aura_env.data[caster] = { - ["d"] = damage, - ["s"] = stacks, - ["c"] = select(4, command(unit, i)), - } - end - elseif not name then - break - end - update_allstates(aura_env.data, unit) - end - --Looking for damage done by debuff at 30% and storing into data as new damage - elseif se == "SPELL_DAMAGE" and select(13, ...) == "Conductive Ink" then - local caster = select(5, ...) - local hit = select(15, ...) - local crit = select(21, ...) - if aura_env.data[caster] then - aura_env.data[caster].d = hit - aura_env.data[caster].cr = crit - update_allstates(aura_env.data, unit) - end - end - end - end - return true - end - end -end - ---CUSTOM TRIGGER -function(t) - if aura_env.config.tsuenable == false then return t[1] and t[2] elseif aura_env.config.tsuenable == true then return t[3] and t[2] end -end - ---COLOR ANIMATION -function() - if aura_env.statee then - return aura_env.classColor(aura_env.statee.class) - end -end - ---DISPLAY -function() - if aura_env.config.tsuenable == false then - if aura_env.config.pdmg == true then - if aura_env.config.sh == true then aura_env.owndebuff.damage = aura_env.shorten(aura_env.owndebuff.damage); aura_env.totaldebuff.damage = aura_env.shorten(aura_env.totaldebuff.damage) end - aura_env.region.text2:SetText(aura_env.owndebuff.stacks .. "\n" .. aura_env.owndebuff.damage .. "\n" .. aura_env.totaldebuff.stacks .. "\n" .. aura_env.totaldebuff.damage .. "\n" .. aura_env.damagepercentage .. "%") - if aura_env.config.stext == true then aura_env.region.text3:SetText("Player stacks\nPlayer damage\nTotal stacks\nTotal damage\nDamage in %") else aura_env.region.text3:SetText("") end - else - if aura_env.config.sh == true then aura_env.totaldebuff.damage = aura_env.shorten(aura_env.totaldebuff.damage) end - aura_env.region.text2:SetText(aura_env.totaldebuff.stacks .. "\n" .. aura_env.totaldebuff.damage .. "\n" .. aura_env.damagepercentage .. "%") - if aura_env.config.stext == true then aura_env.region.text3:SetText("Total stacks\nTotal damage\nDamage in %") else aura_env.region.text3:SetText("") end - end - else - if aura_env.statee.caster == "Total" then - return aura_env.shorten(aura_env.statee.value) .. " - " .. aura_env.statee.stacks .. " - " .. aura_env.statee.percent .. "%" - else - if aura_env.statee.crit == true then - return aura_env.statee.stacks .. " - " .. aura_env.shorten(aura_env.statee.value) .. "(C)" - else - return aura_env.statee.stacks .. " - " .. aura_env.shorten(aura_env.statee.value) - end - end - end -end - ---INIT -aura_env.myTooltip = CreateFrame("GameTooltip", "MyAddOnTooltip", UIParent, "GameTooltipTemplate") -aura_env.myTooltip:SetOwner(UIParent, "ANCHOR_NONE") -aura_env.owndebuff = {["stacks"] = 0, ["damage"] = 0,} -aura_env.totaldebuff = {["stacks"] = 0, ["damage"] = 0,} - -if aura_env.config.tsuenable == false then - if not aura_env.region.text2 then - local text2 = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.text2 = text2 - end - local font, size, flags = aura_env.region.text:GetFont() - aura_env.region.text2:SetFont(font, size, flags) - aura_env.region.text2:SetTextColor(aura_env.config.color[1], aura_env.config.color[2], aura_env.config.color[3], aura_env.config.color[4]) - aura_env.region.text2:SetPoint("CENTER", aura_env.region, "CENTER", aura_env.config.x, 0) - aura_env.region.text2:SetText("") - aura_env.region.text2:Show() - - if not aura_env.region.text3 then - local text3 = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.text3 = text3 - end - local font, size, flags = aura_env.region.text:GetFont() - aura_env.region.text3:SetFont(font, size, flags) - aura_env.region.text3:SetTextColor(aura_env.config.color[1], aura_env.config.color[2], aura_env.config.color[3], aura_env.config.color[4]) - aura_env.region.text3:SetPoint("CENTER", aura_env.region, "CENTER", - aura_env.config.x, 0) - aura_env.region.text3:SetText("") - aura_env.region.text3:Show() - aura_env.region.bar:Hide() -end - -if aura_env.config.tsuenable == true and aura_env.region.text2 then aura_env.region.text2:Hide() end -if aura_env.config.tsuenable == true and aura_env.region.text3 then aura_env.region.text3:Hide() end -if aura_env.config.tsuenable == true and aura_env.region.bar then aura_env.region.bar:Show() end - -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 -end -aura_env.round = function(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 -aura_env.classColor = function(class) - if class == 1 then return 0.78, 0.61, 0.43 - elseif class == 2 then return 0.96, 0.55, 0.73 - elseif class == 3 then return 0.67, 0.83, 0.45 - elseif class == 4 then return 1, 0.96, 0.41, 1 - elseif class == 5 then return 1, 1, 1 - elseif class == 6 then return 0.77, 0.12, 0.23 - elseif class == 7 then return 0, 0.44, 0.87 - elseif class == 8 then return 0.25, 0.78, 0.92 - elseif class == 9 then return 0.53, 0.53, 0.93 - elseif class == 10 then return 0, 1, 0.59 - elseif class == 11 then return 1, 0.49, 0.04 - elseif class == 12 then return 0.64, 0.19, 0.79 - elseif class == 15 then return 0, 1, 0 - else return 1, 1, 1 end -end ---TESTING ---Conductive Ink 1500960 1 Magic 120 119774.845 player false false 302565 false false true false 1 -aura_env.UnitDebuffC = function(unit, i) - if i == 1 then return "Conductive Ink", 1500960, 1, 2, 120, 119774.845, "Pinko" - elseif i == 1 then return "Conductive Ink", 1500960, 3, 4, 120, 119774.845, "Billy" - elseif i == 2 then return "Conductive Ink", 1500960, 7, 7, 120, 119774.845, "Mary" - elseif i == 3 then return "Conductive Ink", 1500960, 35, 11, 120, 119774.845, "Anna" - elseif i == 4 then return "Conductive Ink", 1500960, 8, 6, 120, 119774.845, "John" - elseif i == 5 then return "Conductive Ink", 1500960, 72, 2, 120, 119774.845, "Frank" - elseif i == 6 then return "Conductive Ink", 1500960, 25, 7, 120, 119774.845, "Emma" - elseif i == 7 then return "Conductive Ink", 1500960, 45, 8, 120, 119774.845, "Sophia" - elseif i == 8 then return "Conductive Ink", 1500960, 37, 5, 120, 119774.845, "Henry" - elseif i == 9 then return "Conductive Ink", 1500960, 4, 3, 120, 119774.845, "Ethan" - elseif i == 10 then return "Conductive Ink", 1500960, 1, 1, 120, 119774.845, "Michael" - end +--CLEU PLAYER_TARGET_CHANGED PLAYER_FOCUS_CHANGED +function(e, ...) + if aura_env.config.tsuenable == false then + local se = select(2, ...) + if se == "SPELL_AURA_APPLIED_DOSE" or e == "PLAYER_TARGET_CHANGED" then + aura_env.owndebuff = {["stacks"] = 0, ["damage"] = 0,} + aura_env.totaldebuff = {["stacks"] = 0, ["damage"] = 0,} + aura_env.damagepercentage = 0 + local unit = "target" + if aura_env.config.tar == 2 then unit = "focus" elseif aura_env.config.tar == 3 then unit = "Boss1" end + local bossmax = UnitHealthMax(unit) + if aura_env.config.pdmg == true then + for i = 1, 200 do + local name = UnitDebuff(unit, i) + if name == "Conductive Ink" then + local caster = select(7, UnitDebuff(unit, i)) + local stacks = select(3, UnitDebuff(unit, i)) + aura_env.totaldebuff.stacks = aura_env.totaldebuff.stacks + stacks + aura_env.myTooltip:SetUnitDebuff(unit, i) + local text = _G["MyAddOnTooltipTextLeft2"]:GetText() + if text:match("Falling below %d*%% health will cause") then + local damage = text:match("inflict (%d+%,?%d*)") + damage = damage:gsub("%,", "") + damage = damage:gsub(" ", "") + damage = tonumber(damage) + aura_env.totaldebuff.damage = aura_env.totaldebuff.damage + damage + if caster == "player" then aura_env.owndebuff.damage = damage; aura_env.owndebuff.stacks = stacks end + end + elseif not name then break end + end + else + for i = 1, 200 do + local name = UnitDebuff(unit, i) + if name == "Conductive Ink" then + aura_env.totaldebuff.stacks = aura_env.totaldebuff.stacks + select(3, UnitDebuff(unit, i)) + aura_env.myTooltip:SetUnitDebuff(unit, i) + local text = _G["MyAddOnTooltipTextLeft2"]:GetText() + if text:match("Falling below %d*%% health will cause") then + aura_env.totaldebuff.damage = text:match("inflict (%d+%,?%d*)") + aura_env.totaldebuff.damage = aura_env.totaldebuff.damage:gsub("%,", "") + aura_env.totaldebuff.damage = aura_env.totaldebuff.damage:gsub(" ", "") + aura_env.totaldebuff.damage = tonumber(aura_env.totaldebuff.damage) + end + break + elseif not name then break end + end + end + aura_env.damagepercentage = aura_env.round(((aura_env.totaldebuff.damage / bossmax) * 100), 2) + return true + end + end +end + +--TSU +--CLEU PLAYER_TARGET_CHANGED PLAYER_FOCUS_CHANGED +function(allstates, e, ...) + if aura_env.config.tsuenable == true then + if InCombatLockdown() == true then + --Base setup + local unit = "target" + if not aura_env.data then aura_env.data = {} end + local crit = false + local function update_allstates(data, unit) + local maxdmg, maxstack = 0, 0 + local totaldmg, totalstack = 0, 0 + --Get max and total damage + for k,v in pairs(data) do + if v.d > maxdmg then + maxdmg = v.d + end + if v.s > maxstack then + maxstack = v.s + end + totaldmg = totaldmg + v.d + totalstack = totalstack + v.s + end + --Get damage in boss % + local perc = 0 + local pp = 0 + local islow = false + if UnitExists(unit) then + local hp, maxhp = UnitHealth(unit), UnitHealthMax(unit) + pp = hp/maxhp + if pp < 0.3 then islow = true end + perc = aura_env.round(((totaldmg / maxhp) * 100), 2) + end + --Store all members in allstates + for k,v in pairs(data) do + allstates[k] = { + show = true, + changed = true, + resort = true, + progressType = "static", + caster = k, + class = v.c, + value = v.d, + total = maxdmg, + index = v.d, + stacks = v.s, + crit = v.cr, + } + end + --Total bar control + if UnitExists(unit) then + allstates[1] = { + show = true, + changed = true, + resort = true, + progressType = "static", + caster = "Total", + class = 5, --priest; White + value = totaldmg, + total = totaldmg, + index = totaldmg + 1, + stacks = totalstack, + percent = perc, + } + if islow == true then + allstates[1].class = 15 + end + end + end + --Debug and options + local command = UnitDebuff; if aura_env.config.debug == true then command = aura_env.UnitDebuffC end + if aura_env.config.tar == 2 then unit = "focus" elseif aura_env.config.tar == 3 then unit = "Boss1" end + --Trying to store info of debuff into data table from , looking for damage, stacks and caster, also included debug + if UnitExists(unit) then + if e == "PLAYER_TARGET_CHANGED" or e == "PLAYER_FOCUS_CHANGED" then + for k,v in pairs(allstates) do + v.show = false + v.changed = true + end + aura_env.data = {} + if UnitExists(unit) then + local hp, maxhp = UnitHealth(unit), UnitHealthMax(unit) + for i = 1, 100 do + local name = command(unit, i) + if name == "Conductive Ink" then + local caster = select(7, command(unit, i)) + caster = UnitName(caster) + local stacks = select(3, command(unit, i)) + if aura_env.config.debug == false then + aura_env.myTooltip:SetUnitDebuff(unit, i) + local text = _G["MyAddOnTooltipTextLeft2"]:GetText() + if text:match("Falling below %d*%% health will cause") then + local damage = text:match("inflict (%d+%,?%d*)") + damage = damage:gsub("%,", "") + damage = damage:gsub(" ", "") + damage = tonumber(damage) + aura_env.data[caster] = { + ["d"] = damage, + ["s"] = stacks, + ["c"] = select(3, UnitClass(caster)), + } + end + else + local damage = i * 523427 + aura_env.data[caster] = { + ["d"] = damage, + ["s"] = stacks, + ["c"] = select(4, command(unit, i)), + } + end + elseif not name then + break + end + end + update_allstates(aura_env.data, unit) + end + elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, ...) + local hp, maxhp = UnitHealth(unit), UnitHealthMax(unit) + --Looking for debuff info upon applying new stack, to update data table + if se == "SPELL_AURA_APPLIED_DOSE" then + for i = 1, 100 do + local name = command(unit, i) + if name == "Conductive Ink" then + local caster = select(7, command(unit, i)) + caster = UnitName(caster) + local stacks = select(3, command(unit, i)) + if aura_env.config.debug == false then + aura_env.myTooltip:SetUnitDebuff(unit, i) + local text = _G["MyAddOnTooltipTextLeft2"]:GetText() + if text:match("Falling below %d*%% health will cause") then + local damage = text:match("inflict (%d+%,?%d*)") + damage = damage:gsub("%,", "") + damage = damage:gsub(" ", "") + damage = tonumber(damage) + aura_env.data[caster] = { + ["d"] = damage, + ["s"] = stacks, + ["c"] = select(3, UnitClass(caster)), + } + end + else + local damage = i * 12312 + aura_env.data[caster] = { + ["d"] = damage, + ["s"] = stacks, + ["c"] = select(4, command(unit, i)), + } + end + elseif not name then + break + end + update_allstates(aura_env.data, unit) + end + --Looking for damage done by debuff at 30% and storing into data as new damage + elseif se == "SPELL_DAMAGE" and select(13, ...) == "Conductive Ink" then + local caster = select(5, ...) + local hit = select(15, ...) + local crit = select(21, ...) + if aura_env.data[caster] then + aura_env.data[caster].d = hit + aura_env.data[caster].cr = crit + update_allstates(aura_env.data, unit) + end + end + end + end + return true + end + end +end + +--CUSTOM TRIGGER +function(t) + if aura_env.config.tsuenable == false then return t[1] and t[2] elseif aura_env.config.tsuenable == true then return t[3] and t[2] end +end + +--COLOR ANIMATION +function() + if aura_env.statee then + return aura_env.classColor(aura_env.statee.class) + end +end + +--DISPLAY +function() + if aura_env.config.tsuenable == false then + if aura_env.config.pdmg == true then + if aura_env.config.sh == true then aura_env.owndebuff.damage = aura_env.shorten(aura_env.owndebuff.damage); aura_env.totaldebuff.damage = aura_env.shorten(aura_env.totaldebuff.damage) end + aura_env.region.text2:SetText(aura_env.owndebuff.stacks .. "\n" .. aura_env.owndebuff.damage .. "\n" .. aura_env.totaldebuff.stacks .. "\n" .. aura_env.totaldebuff.damage .. "\n" .. aura_env.damagepercentage .. "%") + if aura_env.config.stext == true then aura_env.region.text3:SetText("Player stacks\nPlayer damage\nTotal stacks\nTotal damage\nDamage in %") else aura_env.region.text3:SetText("") end + else + if aura_env.config.sh == true then aura_env.totaldebuff.damage = aura_env.shorten(aura_env.totaldebuff.damage) end + aura_env.region.text2:SetText(aura_env.totaldebuff.stacks .. "\n" .. aura_env.totaldebuff.damage .. "\n" .. aura_env.damagepercentage .. "%") + if aura_env.config.stext == true then aura_env.region.text3:SetText("Total stacks\nTotal damage\nDamage in %") else aura_env.region.text3:SetText("") end + end + else + if aura_env.statee.caster == "Total" then + return aura_env.shorten(aura_env.statee.value) .. " - " .. aura_env.statee.stacks .. " - " .. aura_env.statee.percent .. "%" + else + if aura_env.statee.crit == true then + return aura_env.statee.stacks .. " - " .. aura_env.shorten(aura_env.statee.value) .. "(C)" + else + return aura_env.statee.stacks .. " - " .. aura_env.shorten(aura_env.statee.value) + end + end + end +end + +--INIT +aura_env.myTooltip = CreateFrame("GameTooltip", "MyAddOnTooltip", UIParent, "GameTooltipTemplate") +aura_env.myTooltip:SetOwner(UIParent, "ANCHOR_NONE") +aura_env.owndebuff = {["stacks"] = 0, ["damage"] = 0,} +aura_env.totaldebuff = {["stacks"] = 0, ["damage"] = 0,} + +if aura_env.config.tsuenable == false then + if not aura_env.region.text2 then + local text2 = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.text2 = text2 + end + local font, size, flags = aura_env.region.text:GetFont() + aura_env.region.text2:SetFont(font, size, flags) + aura_env.region.text2:SetTextColor(aura_env.config.color[1], aura_env.config.color[2], aura_env.config.color[3], aura_env.config.color[4]) + aura_env.region.text2:SetPoint("CENTER", aura_env.region, "CENTER", aura_env.config.x, 0) + aura_env.region.text2:SetText("") + aura_env.region.text2:Show() + + if not aura_env.region.text3 then + local text3 = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.text3 = text3 + end + local font, size, flags = aura_env.region.text:GetFont() + aura_env.region.text3:SetFont(font, size, flags) + aura_env.region.text3:SetTextColor(aura_env.config.color[1], aura_env.config.color[2], aura_env.config.color[3], aura_env.config.color[4]) + aura_env.region.text3:SetPoint("CENTER", aura_env.region, "CENTER", - aura_env.config.x, 0) + aura_env.region.text3:SetText("") + aura_env.region.text3:Show() + aura_env.region.bar:Hide() +end + +if aura_env.config.tsuenable == true and aura_env.region.text2 then aura_env.region.text2:Hide() end +if aura_env.config.tsuenable == true and aura_env.region.text3 then aura_env.region.text3:Hide() end +if aura_env.config.tsuenable == true and aura_env.region.bar then aura_env.region.bar:Show() end + +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 +end +aura_env.round = function(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 +aura_env.classColor = function(class) + if class == 1 then return 0.78, 0.61, 0.43 + elseif class == 2 then return 0.96, 0.55, 0.73 + elseif class == 3 then return 0.67, 0.83, 0.45 + elseif class == 4 then return 1, 0.96, 0.41, 1 + elseif class == 5 then return 1, 1, 1 + elseif class == 6 then return 0.77, 0.12, 0.23 + elseif class == 7 then return 0, 0.44, 0.87 + elseif class == 8 then return 0.25, 0.78, 0.92 + elseif class == 9 then return 0.53, 0.53, 0.93 + elseif class == 10 then return 0, 1, 0.59 + elseif class == 11 then return 1, 0.49, 0.04 + elseif class == 12 then return 0.64, 0.19, 0.79 + elseif class == 15 then return 0, 1, 0 + else return 1, 1, 1 end +end +--TESTING +--Conductive Ink 1500960 1 Magic 120 119774.845 player false false 302565 false false true false 1 +aura_env.UnitDebuffC = function(unit, i) + if i == 1 then return "Conductive Ink", 1500960, 1, 2, 120, 119774.845, "Pinko" + elseif i == 1 then return "Conductive Ink", 1500960, 3, 4, 120, 119774.845, "Billy" + elseif i == 2 then return "Conductive Ink", 1500960, 7, 7, 120, 119774.845, "Mary" + elseif i == 3 then return "Conductive Ink", 1500960, 35, 11, 120, 119774.845, "Anna" + elseif i == 4 then return "Conductive Ink", 1500960, 8, 6, 120, 119774.845, "John" + elseif i == 5 then return "Conductive Ink", 1500960, 72, 2, 120, 119774.845, "Frank" + elseif i == 6 then return "Conductive Ink", 1500960, 25, 7, 120, 119774.845, "Emma" + elseif i == 7 then return "Conductive Ink", 1500960, 45, 8, 120, 119774.845, "Sophia" + elseif i == 8 then return "Conductive Ink", 1500960, 37, 5, 120, 119774.845, "Henry" + elseif i == 9 then return "Conductive Ink", 1500960, 4, 3, 120, 119774.845, "Ethan" + elseif i == 10 then return "Conductive Ink", 1500960, 1, 1, 120, 119774.845, "Michael" + end end \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/FO1F38C4D1A8 - Magus Portals.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/FO1F38C4D1A8 - Magus Portals.lua similarity index 96% rename from Complete Projects/Fivver Stuff/FO1F38C4D1A8 - Magus Portals.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/FO1F38C4D1A8 - Magus Portals.lua index 865731c..2c8a245 100644 --- a/Complete Projects/Fivver Stuff/FO1F38C4D1A8 - Magus Portals.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/FO1F38C4D1A8 - Magus Portals.lua @@ -1,87 +1,87 @@ ---CHAT_MSG_SAY CHAT_MSG_YELL CHAT_MSG_WHISPER ADD_KEYWORD REMOVE_KEYWORD LIST_KEYWORDS TOGGLE_MAGUS -function(e, msg, sender, ...) - if not aura_env.toggle then aura_env.toggle = 1 end - if not WeakAurasSaved.MagusKeywords then WeakAurasSaved.MagusKeywords = { - ["port"] = 1, - ["portal"] = 1, - ["org"] = 1, - ["og"] = 1, - ["uc"] = 1, - ["under"] = 1, - ["thunder"] = 1, - ["tb"] = 1, - ["wtb"] = 1, - } - end - if e == "CHAT_MSG_SAY" or e == "CHAT_MSG_YELL" or e == "CHAT_MSG_WHISPER" then - local class = select(2, GetPlayerInfoByGUID(select(10, ...))) - if msg and aura_env.toggle == 1 then - msg = msg:lower() - local noRealmSender = sender:match("(.+)-%w+") - for k,v in pairs(WeakAurasSaved.MagusKeywords) do - if msg:match(k) then - local st, en = msg:find(k) - if not (st > 1 and msg:match(".", st - 1) ~= " ") and not (en < strlen(msg) and msg:match(".", en + 1) ~= " ") and class ~= "MAGE" then - InviteUnit(sender) - return true - end - end - end - end - elseif e == "TOGGLE_MAGUS" then - if aura_env.toggle == 0 then - print("Toggling script on") - aura_env.toggle = 1 - else - print("Toggling script off") - aura_env.toggle = 0 - end - elseif e == "ADD_KEYWORD" then - if msg then - print("Adding", msg) - msg = msg:lower() - WeakAurasSaved.MagusKeywords[msg] = 1 - else - print("No keyword provided") - end - elseif e == "LIST_KEYWORDS" then - local test = "" - for k,v in pairs(WeakAurasSaved.MagusKeywords) do - print(k) - test = test .. k .. "\n" - end - message(test) - elseif e == "REMOVE_KEYWORD" then - if msg then - if WeakAurasSaved.MagusKeywords[msg] then - print("Removing", msg) - WeakAurasSaved.MagusKeywords[msg] = nil - else - print(msg, "does not exist in the keyword table") - end - else - print("No keyword provided") - end - end -end - ---INIT -aura_env.button = CreateFrame("Button", "buton", UIParent, "SecureActionButtonTemplate") -aura_env.button:SetAttribute("type", "macro") -aura_env.button:SetPoint("CENTER", UIParent, "CENTER") -aura_env.button:SetWidth(128) -aura_env.button:SetHeight(128) -aura_env.button:SetNormalTexture("interface/icons/inv_misc_enggizmos_rocketchicken.blp") -aura_env.button:SetPushedTexture("interface/icons/inv_misc_enggizmos_rocketchicken.blp") -if not aura_env.toggle then aura_env.toggle = 1 end -if not WeakAurasSaved.MagusKeywords then WeakAurasSaved.MagusKeywords = { - "port", - "portal", - "org", - "og", - "UC", - "under", - "thunder", - "tb", - "wtb", +--CHAT_MSG_SAY CHAT_MSG_YELL CHAT_MSG_WHISPER ADD_KEYWORD REMOVE_KEYWORD LIST_KEYWORDS TOGGLE_MAGUS +function(e, msg, sender, ...) + if not aura_env.toggle then aura_env.toggle = 1 end + if not WeakAurasSaved.MagusKeywords then WeakAurasSaved.MagusKeywords = { + ["port"] = 1, + ["portal"] = 1, + ["org"] = 1, + ["og"] = 1, + ["uc"] = 1, + ["under"] = 1, + ["thunder"] = 1, + ["tb"] = 1, + ["wtb"] = 1, + } + end + if e == "CHAT_MSG_SAY" or e == "CHAT_MSG_YELL" or e == "CHAT_MSG_WHISPER" then + local class = select(2, GetPlayerInfoByGUID(select(10, ...))) + if msg and aura_env.toggle == 1 then + msg = msg:lower() + local noRealmSender = sender:match("(.+)-%w+") + for k,v in pairs(WeakAurasSaved.MagusKeywords) do + if msg:match(k) then + local st, en = msg:find(k) + if not (st > 1 and msg:match(".", st - 1) ~= " ") and not (en < strlen(msg) and msg:match(".", en + 1) ~= " ") and class ~= "MAGE" then + InviteUnit(sender) + return true + end + end + end + end + elseif e == "TOGGLE_MAGUS" then + if aura_env.toggle == 0 then + print("Toggling script on") + aura_env.toggle = 1 + else + print("Toggling script off") + aura_env.toggle = 0 + end + elseif e == "ADD_KEYWORD" then + if msg then + print("Adding", msg) + msg = msg:lower() + WeakAurasSaved.MagusKeywords[msg] = 1 + else + print("No keyword provided") + end + elseif e == "LIST_KEYWORDS" then + local test = "" + for k,v in pairs(WeakAurasSaved.MagusKeywords) do + print(k) + test = test .. k .. "\n" + end + message(test) + elseif e == "REMOVE_KEYWORD" then + if msg then + if WeakAurasSaved.MagusKeywords[msg] then + print("Removing", msg) + WeakAurasSaved.MagusKeywords[msg] = nil + else + print(msg, "does not exist in the keyword table") + end + else + print("No keyword provided") + end + end +end + +--INIT +aura_env.button = CreateFrame("Button", "buton", UIParent, "SecureActionButtonTemplate") +aura_env.button:SetAttribute("type", "macro") +aura_env.button:SetPoint("CENTER", UIParent, "CENTER") +aura_env.button:SetWidth(128) +aura_env.button:SetHeight(128) +aura_env.button:SetNormalTexture("interface/icons/inv_misc_enggizmos_rocketchicken.blp") +aura_env.button:SetPushedTexture("interface/icons/inv_misc_enggizmos_rocketchicken.blp") +if not aura_env.toggle then aura_env.toggle = 1 end +if not WeakAurasSaved.MagusKeywords then WeakAurasSaved.MagusKeywords = { + "port", + "portal", + "org", + "og", + "UC", + "under", + "thunder", + "tb", + "wtb", } \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/FO2BF89E3995 - Warrior Stuff.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/FO2BF89E3995 - Warrior Stuff.lua similarity index 96% rename from Complete Projects/Fivver Stuff/FO2BF89E3995 - Warrior Stuff.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/FO2BF89E3995 - Warrior Stuff.lua index ff3856d..134a837 100644 --- a/Complete Projects/Fivver Stuff/FO2BF89E3995 - Warrior Stuff.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/FO2BF89E3995 - Warrior Stuff.lua @@ -1,84 +1,84 @@ ---COMBAT_LOG_EVENT_UNFILTERED UNIT_STATS PLAYER_TARGET_CHANGED -function(e, ...) - local function updateStats() - aura_env.output = "BUFFS " - local noBuffs = 0 - local hitPercent = 0 - local critPercent = 0 - local attackPower = 0 - local effArmor = 0 - local armorPercent = 0 - - for i = 1, 40 do - if UnitBuff("player", i) then - noBuffs = noBuffs + 1 - end - end - hitPercent = GetCombatRatingBonus(6) + GetHitModifier() - critPercent = GetCritChance() - local base, pos, neg = UnitAttackPower("player") - attackPower = base + pos - neg - effArmor = select(2, UnitArmor("player")) - if UnitExists("target") then - local tlevel = UnitLevel("target") - if tlevel < 60 then - armorPercent = (effArmor / ((85 * tlevel) + effArmor + 400)) * 100 - elseif tlevel >= 60 then - armorPercent = (effArmor / ((467.5 * tlevel) + effArmor - 22167.5)) * 100 - end - end - - -- BUFFS %d%d (5 + 2 + 1 = 8 + 4) - aura_env.output = aura_env.output .. noBuffs - while string.len(aura_env.output) < 12 do - aura_env.output = aura_env.output .. " " - end - -- BUFFS %d%d<4>HIT %d%d.%d (12 + 3 + 1 + 4 = 20 + 4) - aura_env.output = aura_env.output .. "HIT " .. math.ceil((hitPercent * 10)) / 10 .. "%" - while string.len(aura_env.output) < 24 do - aura_env.output = aura_env.output .. " " - end - -- BUFFS %d%d<4>HIT %d%d.%d<4>CRIT %d%d.%d (24 + 4 + 1 + 4 = 33 + 4) - aura_env.output = aura_env.output .. "CRIT " .. math.ceil((critPercent * 10)) / 10 .. "%" - while string.len(aura_env.output) < 37 do - aura_env.output = aura_env.output .. " " - end - -- BUFFS %d%d<4>HIT %d%d.%d<4>CRIT %d%d.%d<4>AP %d+ - -- APPEND AP - -- 37 + 3 + 8 = 48 - aura_env.output = aura_env.output .. "AP " .. attackPower - while string.len(aura_env.output) < 48 do - aura_env.output = aura_env.output .. " " - end - aura_env.output = aura_env.output .. "A " .. effArmor .. " " .. math.ceil((armorPercent * 10)) / 10 .. "%" - end - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, ...) - local subevents = { - ["SPELL_AURA_APPLIED"] = true, - ["SPELL_AURA_APPLIED_DOSE"] = true, - ["SPELL_AURA_REMOVED"] = true, - ["SPELL_AURA_REMOVED_DOSE"] = true, - ["SPELL_AURA_REFRESH"] = true, - } - if subevents[se] then - local target = select(9, ...) - if target == UnitName("player") then - updateStats() - return true - end - end - elseif e == "UNIT_STATS" or e == "PLAYER_TARGET_CHANGED" then - updateStats() - return true - end -end - ---DISPLAY -function() - return aura_env.output or "" -end - ---INIT -aura_env.output = "" +--COMBAT_LOG_EVENT_UNFILTERED UNIT_STATS PLAYER_TARGET_CHANGED +function(e, ...) + local function updateStats() + aura_env.output = "BUFFS " + local noBuffs = 0 + local hitPercent = 0 + local critPercent = 0 + local attackPower = 0 + local effArmor = 0 + local armorPercent = 0 + + for i = 1, 40 do + if UnitBuff("player", i) then + noBuffs = noBuffs + 1 + end + end + hitPercent = GetCombatRatingBonus(6) + GetHitModifier() + critPercent = GetCritChance() + local base, pos, neg = UnitAttackPower("player") + attackPower = base + pos - neg + effArmor = select(2, UnitArmor("player")) + if UnitExists("target") then + local tlevel = UnitLevel("target") + if tlevel < 60 then + armorPercent = (effArmor / ((85 * tlevel) + effArmor + 400)) * 100 + elseif tlevel >= 60 then + armorPercent = (effArmor / ((467.5 * tlevel) + effArmor - 22167.5)) * 100 + end + end + + -- BUFFS %d%d (5 + 2 + 1 = 8 + 4) + aura_env.output = aura_env.output .. noBuffs + while string.len(aura_env.output) < 12 do + aura_env.output = aura_env.output .. " " + end + -- BUFFS %d%d<4>HIT %d%d.%d (12 + 3 + 1 + 4 = 20 + 4) + aura_env.output = aura_env.output .. "HIT " .. math.ceil((hitPercent * 10)) / 10 .. "%" + while string.len(aura_env.output) < 24 do + aura_env.output = aura_env.output .. " " + end + -- BUFFS %d%d<4>HIT %d%d.%d<4>CRIT %d%d.%d (24 + 4 + 1 + 4 = 33 + 4) + aura_env.output = aura_env.output .. "CRIT " .. math.ceil((critPercent * 10)) / 10 .. "%" + while string.len(aura_env.output) < 37 do + aura_env.output = aura_env.output .. " " + end + -- BUFFS %d%d<4>HIT %d%d.%d<4>CRIT %d%d.%d<4>AP %d+ + -- APPEND AP + -- 37 + 3 + 8 = 48 + aura_env.output = aura_env.output .. "AP " .. attackPower + while string.len(aura_env.output) < 48 do + aura_env.output = aura_env.output .. " " + end + aura_env.output = aura_env.output .. "A " .. effArmor .. " " .. math.ceil((armorPercent * 10)) / 10 .. "%" + end + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, ...) + local subevents = { + ["SPELL_AURA_APPLIED"] = true, + ["SPELL_AURA_APPLIED_DOSE"] = true, + ["SPELL_AURA_REMOVED"] = true, + ["SPELL_AURA_REMOVED_DOSE"] = true, + ["SPELL_AURA_REFRESH"] = true, + } + if subevents[se] then + local target = select(9, ...) + if target == UnitName("player") then + updateStats() + return true + end + end + elseif e == "UNIT_STATS" or e == "PLAYER_TARGET_CHANGED" then + updateStats() + return true + end +end + +--DISPLAY +function() + return aura_env.output or "" +end + +--INIT +aura_env.output = "" WeakAuras.ScanEvents("UNIT_STATS") \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/FO2C01B46B55 - Monk Tutor.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/FO2C01B46B55 - Monk Tutor.lua similarity index 96% rename from Complete Projects/Fivver Stuff/FO2C01B46B55 - Monk Tutor.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/FO2C01B46B55 - Monk Tutor.lua index 7459c09..024906d 100644 --- a/Complete Projects/Fivver Stuff/FO2C01B46B55 - Monk Tutor.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/FO2C01B46B55 - Monk Tutor.lua @@ -1,81 +1,81 @@ ---UNIT_HEALTH UNIT_AURA PLAYER_REGEN_DISABLED -function(e, u) - if e == "PLAYER_REGEN_DISABLED" then - aura_env.lowppl = 0 - aura_env.renw = 0 - elseif e == "UNIT_AURA" then - if u == "player" then - local i = 1 - while UnitBuff(u, i) do - local name = UnitBuff(u, i) - if name == "Mana Tea" then - aura_env.manaTea = true - break - end - i = i + 1 - end - elseif u:match("raid") then - if not aura_env.people[u] then aura_env.people[u] = {} end - aura_env.people[u].buff = false - local i = 1 - while UnitBuff(u, i) do - local caster = select(8, UnitBuff(u, i)) - local name = UnitBuff(u, i) - if name == "Renewing Mist" and caster == "player" then - aura_env.people[u].buff = true - break - end - i = i + 1 - end - aura_env.renw = 0 - for k,v in pairs(aura_env.people) do - if v.buff == true then - aura_env.renw = aura_env.renw + 1 - end - end - end - return true - elseif e == "UNIT_HEALTH" then - if u:match("raid") then - if not aura_env.people[u] then aura_env.people[u] = {} end - aura_env.people[u].hp = UnitHealth(u) - aura_env.people[u].mhp = UnitHealthMax(u) - aura_env.people[u].php = UnitHealth(u) / UnitHealthMax(u) - if aura_env.people[u].php < aura_env.config.low then - aura_env.people[u].low = true - else - aura_env.people[u].low = false - end - end - aura_env.lowppl = 0 - for k,v in pairs(aura_env.people) do - if v.low == true then - aura_env.lowppl = aura_env.lowppl + 1 - end - end - return true - end - return true -end - ---ICON -function() - if aura_env.manaTea == true then - return 1360980 - elseif aura_env.lowppl < 6 or aura_env.renw >= 5 then - return 1360980 - elseif aura_env.lowppl >= 6 and aura_env.renw < 5 then - return 1360978 - end -end - ---DISPLAY -function() - return format("Renewing mists active: %d\nPeople on low health: %d", aura_env.renw, aura_env.lowppl) -end - ---INIT -aura_env.manaTea = false -aura_env.lowppl = 0 -aura_env.renw = 0 +--UNIT_HEALTH UNIT_AURA PLAYER_REGEN_DISABLED +function(e, u) + if e == "PLAYER_REGEN_DISABLED" then + aura_env.lowppl = 0 + aura_env.renw = 0 + elseif e == "UNIT_AURA" then + if u == "player" then + local i = 1 + while UnitBuff(u, i) do + local name = UnitBuff(u, i) + if name == "Mana Tea" then + aura_env.manaTea = true + break + end + i = i + 1 + end + elseif u:match("raid") then + if not aura_env.people[u] then aura_env.people[u] = {} end + aura_env.people[u].buff = false + local i = 1 + while UnitBuff(u, i) do + local caster = select(8, UnitBuff(u, i)) + local name = UnitBuff(u, i) + if name == "Renewing Mist" and caster == "player" then + aura_env.people[u].buff = true + break + end + i = i + 1 + end + aura_env.renw = 0 + for k,v in pairs(aura_env.people) do + if v.buff == true then + aura_env.renw = aura_env.renw + 1 + end + end + end + return true + elseif e == "UNIT_HEALTH" then + if u:match("raid") then + if not aura_env.people[u] then aura_env.people[u] = {} end + aura_env.people[u].hp = UnitHealth(u) + aura_env.people[u].mhp = UnitHealthMax(u) + aura_env.people[u].php = UnitHealth(u) / UnitHealthMax(u) + if aura_env.people[u].php < aura_env.config.low then + aura_env.people[u].low = true + else + aura_env.people[u].low = false + end + end + aura_env.lowppl = 0 + for k,v in pairs(aura_env.people) do + if v.low == true then + aura_env.lowppl = aura_env.lowppl + 1 + end + end + return true + end + return true +end + +--ICON +function() + if aura_env.manaTea == true then + return 1360980 + elseif aura_env.lowppl < 6 or aura_env.renw >= 5 then + return 1360980 + elseif aura_env.lowppl >= 6 and aura_env.renw < 5 then + return 1360978 + end +end + +--DISPLAY +function() + return format("Renewing mists active: %d\nPeople on low health: %d", aura_env.renw, aura_env.lowppl) +end + +--INIT +aura_env.manaTea = false +aura_env.lowppl = 0 +aura_env.renw = 0 aura_env.people = {} \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/FO3BCAB05F84 - Magus Portals.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/FO3BCAB05F84 - Magus Portals.lua similarity index 96% rename from Complete Projects/Fivver Stuff/FO3BCAB05F84 - Magus Portals.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/FO3BCAB05F84 - Magus Portals.lua index 7f4480d..ecd56e8 100644 --- a/Complete Projects/Fivver Stuff/FO3BCAB05F84 - Magus Portals.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/FO3BCAB05F84 - Magus Portals.lua @@ -1,54 +1,54 @@ ---CHAT_MSG_SAY CHAT_MSG_YELL CHAT_MSG_CHANNEL CHAT_MSG_WHISPER ADD_KEYWORD REMOVE_KEYWORD LIST_KEYWORDS TOGGLE_MAGUS -function(e, msg, sender, ...) - if not WeakAurasSaved.MagusKeywords then WeakAurasSaved.MagusKeywords = {} end - if e == "CHAT_MSG_SAY" or e == "CHAT_MSG_YELL" or e == "CHAT_MSG_WHISPER" or e == "CHAT_MSG_CHANNEL" then - local class = select(2, GetPlayerInfoByGUID(select(10, ...))) - if msg and aura_env.toggle == 1 then - msg = msg:lower() - local noRealmSender = sender:match("(.+)-%w+") - for k,v in pairs(WeakAurasSaved.MagusKeywords) do - if msg:match(k) then - local st, en = msg:find(k) - if not (st > 1 and msg:match(".", st - 1) ~= " ") and not (en < strlen(msg) and msg:match(".", en + 1) ~= " ") and class ~= "MAGE" then - InviteUnit(sender) - end - end - end - end - elseif e == "TOGGLE_MAGUS" then - if aura_env.toggle == 0 then - print("Toggling script on") - aura_env.toggle = 1 - else - print("Toggling script off") - aura_env.toggle = 0 - end - elseif e == "ADD_KEYWORD" then - if msg then - print("Adding", msg) - msg = msg:lower() - WeakAurasSaved.MagusKeywords[msg] = 1 - else - print("No keyword provided") - end - elseif e == "LIST_KEYWORDS" then - for k,v in pairs(WeakAurasSaved.MagusKeywords) do - print(k) - end - elseif e == "REMOVE_KEYWORD" then - if msg then - if WeakAurasSaved.MagusKeywords[msg] then - print("Removing", msg) - WeakAurasSaved.MagusKeywords[msg] = nil - else - print(msg, "does not exist in the keyword table") - end - else - print("No keyword provided") - end - end -end - ---INIT -aura_env.toggle = 0 +--CHAT_MSG_SAY CHAT_MSG_YELL CHAT_MSG_CHANNEL CHAT_MSG_WHISPER ADD_KEYWORD REMOVE_KEYWORD LIST_KEYWORDS TOGGLE_MAGUS +function(e, msg, sender, ...) + if not WeakAurasSaved.MagusKeywords then WeakAurasSaved.MagusKeywords = {} end + if e == "CHAT_MSG_SAY" or e == "CHAT_MSG_YELL" or e == "CHAT_MSG_WHISPER" or e == "CHAT_MSG_CHANNEL" then + local class = select(2, GetPlayerInfoByGUID(select(10, ...))) + if msg and aura_env.toggle == 1 then + msg = msg:lower() + local noRealmSender = sender:match("(.+)-%w+") + for k,v in pairs(WeakAurasSaved.MagusKeywords) do + if msg:match(k) then + local st, en = msg:find(k) + if not (st > 1 and msg:match(".", st - 1) ~= " ") and not (en < strlen(msg) and msg:match(".", en + 1) ~= " ") and class ~= "MAGE" then + InviteUnit(sender) + end + end + end + end + elseif e == "TOGGLE_MAGUS" then + if aura_env.toggle == 0 then + print("Toggling script on") + aura_env.toggle = 1 + else + print("Toggling script off") + aura_env.toggle = 0 + end + elseif e == "ADD_KEYWORD" then + if msg then + print("Adding", msg) + msg = msg:lower() + WeakAurasSaved.MagusKeywords[msg] = 1 + else + print("No keyword provided") + end + elseif e == "LIST_KEYWORDS" then + for k,v in pairs(WeakAurasSaved.MagusKeywords) do + print(k) + end + elseif e == "REMOVE_KEYWORD" then + if msg then + if WeakAurasSaved.MagusKeywords[msg] then + print("Removing", msg) + WeakAurasSaved.MagusKeywords[msg] = nil + else + print(msg, "does not exist in the keyword table") + end + else + print("No keyword provided") + end + end +end + +--INIT +aura_env.toggle = 0 if not WeakAurasSaved.MagusKeywords then WeakAurasSaved.MagusKeywords = {} end \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/FO3BE740D804 - BG Q.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/FO3BE740D804 - BG Q.lua similarity index 98% rename from Complete Projects/Fivver Stuff/FO3BE740D804 - BG Q.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/FO3BE740D804 - BG Q.lua index 075cba6..f2dac6a 100644 --- a/Complete Projects/Fivver Stuff/FO3BE740D804 - BG Q.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/FO3BE740D804 - BG Q.lua @@ -1,12 +1,12 @@ ---GOSSIP_SHOW UPDATE_BATTLEFIELD_STATUS -function(e, ...) - if e == "GOSSIP_SHOW" then - local target = UnitName("target") - if target:match("Grizzle Halfmane") or target:match("Kartra Bloodsnarl") or target:match("Glordrum Steelbeard") or target:match("Thelman Slatefist") or target:match(" Taim Ragetotem") or target:match("Brogun Stoneshield") or target:match("Innkeeper Gryshka") then - GossipTitleButton1:Click() - BattlefieldFrameJoinButton:Click() - end - elseif e == "UPDATE_BATTLEFIELD_STATUS" then - StaticPopup1Button1:Click() - end +--GOSSIP_SHOW UPDATE_BATTLEFIELD_STATUS +function(e, ...) + if e == "GOSSIP_SHOW" then + local target = UnitName("target") + if target:match("Grizzle Halfmane") or target:match("Kartra Bloodsnarl") or target:match("Glordrum Steelbeard") or target:match("Thelman Slatefist") or target:match(" Taim Ragetotem") or target:match("Brogun Stoneshield") or target:match("Innkeeper Gryshka") then + GossipTitleButton1:Click() + BattlefieldFrameJoinButton:Click() + end + elseif e == "UPDATE_BATTLEFIELD_STATUS" then + StaticPopup1Button1:Click() + end end \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/FO3BE740D804 - Magus Portals.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/FO3BE740D804 - Magus Portals.lua similarity index 97% rename from Complete Projects/Fivver Stuff/FO3BE740D804 - Magus Portals.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/FO3BE740D804 - Magus Portals.lua index 58b8fa1..3965457 100644 --- a/Complete Projects/Fivver Stuff/FO3BE740D804 - Magus Portals.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/FO3BE740D804 - Magus Portals.lua @@ -1,277 +1,277 @@ ---CHAT_MSG_SAY CHAT_MSG_YELL CHAT_MSG_WHISPER ADD_KEYWORD REMOVE_KEYWORD LIST_KEYWORDS TOGGLE_MAGUS CHAT_MSG_SYSTEM COMBAT_LOG_EVENT_UNFILTERED TRADE_SHOW TRADE_MONEY_CHANGED PLAYER_TRADE_MONEY TRADE_ACCEPT_UPDATE TRADE_CLOSED -function(e, msg, sender, ...) - local function updateText() - local texts = {[1] = {}, [2] = {}, [3] = {}, [4] = {}} - for k,v in pairs(aura_env.people) do - if v.state == 5 then - if v.kw == "uc" or v.kw == "under" or v.kw == "undercity" then - texts[1][#texts[1] + 1] = k - elseif v.kw == "org" or v.kw == "og" or v.kw == "orgrimmar" then - texts[2][#texts[2] + 1] = k - elseif v.kw == "tb" or v.kw == "thunder" or v.kw == "thunderbluff" then - texts[3][#texts[3] + 1] = k - elseif v.kw == "test" then - texts[4][#texts[4] + 1] = k - end - end - end - for k,v in pairs(texts) do - local text = "" - for k2,v2 in pairs(v) do - text = text .. v2 .. "\n" - end - WeakAurasSaved.MagusKeywords.buttons[k].text:SetText(text) - end - end - - local aura_env = aura_env - if not aura_env.toggle then aura_env.toggle = 1 end - if not WeakAurasSaved.MagusKeywords then WeakAurasSaved.MagusKeywords = { - ["port"] = 1, - ["portal"] = 1, - ["org"] = 1, - ["og"] = 1, - ["uc"] = 1, - ["under"] = 1, - ["thunder"] = 1, - ["tb"] = 1, - ["wtb"] = 1, - ["test"] = 1, - } end - if e == "CHAT_MSG_SAY" or e == "CHAT_MSG_YELL" or e == "CHAT_MSG_WHISPER" then - local class = select(2, GetPlayerInfoByGUID(select(10, ...))) - if msg and aura_env.toggle == 1 then - msg = msg:lower() - local noRealmSender = sender:match("(.+)-?%w*") or sender - for k,v in pairs(WeakAurasSaved.MagusKeywords) do - if msg:match(k) then - local st, en = msg:find(k) - if not (st > 1 and msg:match(".", st - 1) ~= " ") and not (en < strlen(msg) and msg:match(".", en + 1) ~= " ") and class ~= "MAGE" then - InviteUnit(sender) - if not aura_env.people[noRealmSender] then aura_env.people[noRealmSender] = {["state"] = 0, ["kw"] = k} end - return true - end - end - end - end - elseif e == "CHAT_MSG_SYSTEM" then - if msg:match("You have invited") then - local sender = msg:match("You have invited (.+) to join your group") - local noRealmSender = sender:match("(.+)-%w+") or sender - if aura_env.people[noRealmSender] then - aura_env.people[noRealmSender].state = 0 - end - elseif msg:match("joins the party") then - local sender = msg:match("(.+) joins the party") - local noRealmSender = sender:match("(.+)-%w+") or sender - if aura_env.people[noRealmSender] and aura_env.people[noRealmSender].state == 0 then - aura_env.people[noRealmSender].state = 1 - for i = 1, GetNumGroupMembers() do - if UnitName("party" .. i) == sender then - aura_env.people[noRealmSender].unitID = "party" .. i - break - end - end - --If not tradeable create ticker and do other stuff - if CheckInteractDistance(aura_env.people[noRealmSender].unitID, 2) then - InitiateTrade(aura_env.people[noRealmSender].unitID) - aura_env.people[noRealmSender].state = 2 - end - end - elseif msg:match("leaves the party") then - local sender = msg:match("(.+) leaves the party") - local noRealmSender = sender:match("(.+)-%w+") or sender - if aura_env.people[noRealmSender] and aura_env[noRealmSender].state == 6 then - aura_env.people[noRealmSender] = nil - end - end - elseif e == "TRADE_SHOW" then - for k,v in pairs(aura_env.people) do - if v.state == 2 then - aura_env.isTrade = true - aura_env.tradee = k - aura_env.people[k].state = 3 - end - end - elseif e == "TRADE_ACCEPT_UPDATE" then - if msg == 1 and sender == 1 then - if aura_env.isTrade == true then - aura_env.people[aura_env.tradee].state = 4 - if aura_env.people[aura_env.tradee].kw == "uc" or aura_env.people[aura_env.tradee].kw == "under" or aura_env.people[aura_env.tradee].kw == "undercity" then - ActionButton_ShowOverlayGlow(WeakAurasSaved.MagusKeywords.buttons[3]) - aura_env.castQueue["Portal: Undercity"] = true - aura_env.people[aura_env.tradee]["Portal: Undercity"] = true - aura_env.people[aura_env.tradee].state = 5 - elseif aura_env.people[aura_env.tradee].kw == "org" or aura_env.people[aura_env.tradee].kw == "og" or aura_env.people[aura_env.tradee].kw == "orgrimmar" then - ActionButton_ShowOverlayGlow(WeakAurasSaved.MagusKeywords.buttons[2]) - aura_env.castQueue["Portal: Orgrimmar"] = true - aura_env.people[aura_env.tradee]["Portal: Orgrimmar"] = true - aura_env.people[aura_env.tradee].state = 5 - elseif aura_env.people[aura_env.tradee].kw == "tb" or aura_env.people[aura_env.tradee].kw == "thunder" or aura_env.people[aura_env.tradee].kw == "thunderbluff" then - ActionButton_ShowOverlayGlow(WeakAurasSaved.MagusKeywords.buttons[1]) - aura_env.castQueue["Portal: Thunder Bluff"] = true - aura_env.people[aura_env.tradee]["Portal: Thunder Bluff"] = true - aura_env.people[aura_env.tradee].state = 5 - elseif aura_env.people[aura_env.tradee].kw == "test" then - ActionButton_ShowOverlayGlow(WeakAurasSaved.MagusKeywords.buttons[4]) - aura_env.castQueue["Consecration"] = true - aura_env.people[aura_env.tradee]["Consecration"] = true - aura_env.people[aura_env.tradee].state = 5 - end - aura_env.isTrade = false - aura_env.tradee = "" - updateText() - end - end - elseif e == "TRADE_CLOSED" then - if aura_env.isTrade == true then - aura_env.people[aura_env.tradee].state = 2 - aura_env.isTrade = false - aura_env.tradee = "" - end - elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = sender - local caster = select(3, ...) - if se == "SPELL_CAST_SUCCESS" and caster == UnitName("player") then - local spell = select(11, ...) - if aura_env.castQueue[spell] == true then aura_env.castQueue[spell] = false end - if spell == "Portal: Undercity" then - ActionButton_HideOverlayGlow(WeakAurasSaved.MagusKeywords.buttons[3]) - elseif spell == "Portal: Orgrimmar" then - ActionButton_HideOverlayGlow(WeakAurasSaved.MagusKeywords.buttons[2]) - elseif spell == "Portal: Thunder Bluff" then - ActionButton_HideOverlayGlow(WeakAurasSaved.MagusKeywords.buttons[1]) - elseif spell == "Consecration" then - ActionButton_HideOverlayGlow(WeakAurasSaved.MagusKeywords.buttons[4]) - end - for k,v in pairs(aura_env.people) do - if v[spell] and v.state == 5 then - v[spell] = false - aura_env.people[k] = nil - updateText() - end - end - end - elseif e == "TOGGLE_MAGUS" then - if aura_env.toggle == 0 then - print("Toggling script on") - aura_env.toggle = 1 - for i = 1, 3 do - WeakAurasSaved.MagusKeywords.buttons[i]:Show() - end - else - print("Toggling script off") - aura_env.toggle = 0 - for i = 1, 3 do - WeakAurasSaved.MagusKeywords.buttons[i]:Hide() - end - end - elseif e == "ADD_KEYWORD" then - if msg then - print("Adding", msg) - msg = msg:lower() - WeakAurasSaved.MagusKeywords[msg] = 1 - else - print("No keyword provided") - end - elseif e == "LIST_KEYWORDS" then - local test = "" - for k,v in pairs(WeakAurasSaved.MagusKeywords) do - print(k) - test = test .. k .. "\n" - end - message(test) - elseif e == "REMOVE_KEYWORD" then - if msg then - if WeakAurasSaved.MagusKeywords[msg] then - print("Removing", msg) - WeakAurasSaved.MagusKeywords[msg] = nil - else - print(msg, "does not exist in the keyword table") - end - else - print("No keyword provided") - end - end -end - ---INIT -if not aura_env.toggle then aura_env.toggle = 1 end -if not WeakAurasSaved.MagusKeywords then WeakAurasSaved.MagusKeywords = { - ["port"] = 1, - ["portal"] = 1, - ["org"] = 1, - ["og"] = 1, - ["uc"] = 1, - ["under"] = 1, - ["thunder"] = 1, - ["tb"] = 1, - ["wtb"] = 1, -} end - ---[[ -Player state table -0 - invited -1 - joined -2 - trade queue -3 - trading -4 - trade complete -5 - light up portal -6 - portal cast -7 - left? clean table - -Cancel everything if person leave -]] -aura_env.people = {} -aura_env.castQueue = {} -aura_env.isTrade = false -aura_env.tradee = "" - ---[[local function hideButon(self) - ActionButton_HideOverlayGlow(self) -end--]] - -if not WeakAurasSaved.MagusKeywords.buttons or not WeakAurasSaved.MagusKeywords.buttons[1][0] then WeakAurasSaved.MagusKeywords.buttons = { - [1] = CreateFrame("Button", "buton", aura_env.region, "SecureActionButtonTemplate"), - [2] = CreateFrame("Button", "buton", aura_env.region, "SecureActionButtonTemplate"), - [3] = CreateFrame("Button", "buton", aura_env.region, "SecureActionButtonTemplate"), - [4] = CreateFrame("Button", "buton", aura_env.region, "SecureActionButtonTemplate"), -} end - -for i = 1, 4 do - WeakAurasSaved.MagusKeywords.buttons[i]:SetAttribute("type", "macro") - WeakAurasSaved.MagusKeywords.buttons[i]:SetSize(aura_env.config.size, aura_env.config.size) - WeakAurasSaved.MagusKeywords.buttons[i]:SetPoint("CENTER", aura_env.region, "CENTER", (i - 1) * aura_env.config.size, 0) - WeakAurasSaved.MagusKeywords.buttons[i]:RegisterForClicks("LeftButtonDown") - --WeakAurasSaved.MagusKeywords.buttons[i]:SetScript("PreClick", hideButon) - WeakAurasSaved.MagusKeywords.buttons[i].text = WeakAurasSaved.MagusKeywords.buttons[i]:CreateFontString("text", "ARTWORK") - WeakAurasSaved.MagusKeywords.buttons[i].text:SetFont("Fonts\\FRIZQT__.TTF", 14, "OUTLINE, MONOCHROME") - WeakAurasSaved.MagusKeywords.buttons[i].text:SetPoint("CENTER", WeakAurasSaved.MagusKeywords.buttons[i], "CENTER", 0, -aura_env.config.size / 2 - 14) - WeakAurasSaved.MagusKeywords.buttons[i].text:Show() - WeakAurasSaved.MagusKeywords.buttons[i]:Show() -end - -WeakAurasSaved.MagusKeywords.buttons[1]:SetNormalTexture(135750) -WeakAurasSaved.MagusKeywords.buttons[1]:SetAttribute("macrotext", format("/cast Portal: Thunder Bluff")) -WeakAurasSaved.MagusKeywords.buttons[2]:SetNormalTexture(135744) -WeakAurasSaved.MagusKeywords.buttons[2]:SetAttribute("macrotext", format("/cast Portal: Orgrimmar")) -WeakAurasSaved.MagusKeywords.buttons[3]:SetNormalTexture(135751) -WeakAurasSaved.MagusKeywords.buttons[3]:SetAttribute("macrotext", format("/cast Portal: Undercity")) -WeakAurasSaved.MagusKeywords.buttons[4]:SetNormalTexture(135926) -WeakAurasSaved.MagusKeywords.buttons[4]:SetAttribute("macrotext", format("/cast Consecration")) - -aura_env.printTable = function(table, n) - if not n then n = 0 end - for k,v in pairs(table) do - local printText = "" - for i = 1, n do - printText = printText .. " " - end - printText = printText .. "[" .. k .. "] = " .. tostring(v) - print(printText) - if type(v) == "table" then - n = n + 1 - aura_env.printTable(v, n) - end - end +--CHAT_MSG_SAY CHAT_MSG_YELL CHAT_MSG_WHISPER ADD_KEYWORD REMOVE_KEYWORD LIST_KEYWORDS TOGGLE_MAGUS CHAT_MSG_SYSTEM COMBAT_LOG_EVENT_UNFILTERED TRADE_SHOW TRADE_MONEY_CHANGED PLAYER_TRADE_MONEY TRADE_ACCEPT_UPDATE TRADE_CLOSED +function(e, msg, sender, ...) + local function updateText() + local texts = {[1] = {}, [2] = {}, [3] = {}, [4] = {}} + for k,v in pairs(aura_env.people) do + if v.state == 5 then + if v.kw == "uc" or v.kw == "under" or v.kw == "undercity" then + texts[1][#texts[1] + 1] = k + elseif v.kw == "org" or v.kw == "og" or v.kw == "orgrimmar" then + texts[2][#texts[2] + 1] = k + elseif v.kw == "tb" or v.kw == "thunder" or v.kw == "thunderbluff" then + texts[3][#texts[3] + 1] = k + elseif v.kw == "test" then + texts[4][#texts[4] + 1] = k + end + end + end + for k,v in pairs(texts) do + local text = "" + for k2,v2 in pairs(v) do + text = text .. v2 .. "\n" + end + WeakAurasSaved.MagusKeywords.buttons[k].text:SetText(text) + end + end + + local aura_env = aura_env + if not aura_env.toggle then aura_env.toggle = 1 end + if not WeakAurasSaved.MagusKeywords then WeakAurasSaved.MagusKeywords = { + ["port"] = 1, + ["portal"] = 1, + ["org"] = 1, + ["og"] = 1, + ["uc"] = 1, + ["under"] = 1, + ["thunder"] = 1, + ["tb"] = 1, + ["wtb"] = 1, + ["test"] = 1, + } end + if e == "CHAT_MSG_SAY" or e == "CHAT_MSG_YELL" or e == "CHAT_MSG_WHISPER" then + local class = select(2, GetPlayerInfoByGUID(select(10, ...))) + if msg and aura_env.toggle == 1 then + msg = msg:lower() + local noRealmSender = sender:match("(.+)-?%w*") or sender + for k,v in pairs(WeakAurasSaved.MagusKeywords) do + if msg:match(k) then + local st, en = msg:find(k) + if not (st > 1 and msg:match(".", st - 1) ~= " ") and not (en < strlen(msg) and msg:match(".", en + 1) ~= " ") and class ~= "MAGE" then + InviteUnit(sender) + if not aura_env.people[noRealmSender] then aura_env.people[noRealmSender] = {["state"] = 0, ["kw"] = k} end + return true + end + end + end + end + elseif e == "CHAT_MSG_SYSTEM" then + if msg:match("You have invited") then + local sender = msg:match("You have invited (.+) to join your group") + local noRealmSender = sender:match("(.+)-%w+") or sender + if aura_env.people[noRealmSender] then + aura_env.people[noRealmSender].state = 0 + end + elseif msg:match("joins the party") then + local sender = msg:match("(.+) joins the party") + local noRealmSender = sender:match("(.+)-%w+") or sender + if aura_env.people[noRealmSender] and aura_env.people[noRealmSender].state == 0 then + aura_env.people[noRealmSender].state = 1 + for i = 1, GetNumGroupMembers() do + if UnitName("party" .. i) == sender then + aura_env.people[noRealmSender].unitID = "party" .. i + break + end + end + --If not tradeable create ticker and do other stuff + if CheckInteractDistance(aura_env.people[noRealmSender].unitID, 2) then + InitiateTrade(aura_env.people[noRealmSender].unitID) + aura_env.people[noRealmSender].state = 2 + end + end + elseif msg:match("leaves the party") then + local sender = msg:match("(.+) leaves the party") + local noRealmSender = sender:match("(.+)-%w+") or sender + if aura_env.people[noRealmSender] and aura_env[noRealmSender].state == 6 then + aura_env.people[noRealmSender] = nil + end + end + elseif e == "TRADE_SHOW" then + for k,v in pairs(aura_env.people) do + if v.state == 2 then + aura_env.isTrade = true + aura_env.tradee = k + aura_env.people[k].state = 3 + end + end + elseif e == "TRADE_ACCEPT_UPDATE" then + if msg == 1 and sender == 1 then + if aura_env.isTrade == true then + aura_env.people[aura_env.tradee].state = 4 + if aura_env.people[aura_env.tradee].kw == "uc" or aura_env.people[aura_env.tradee].kw == "under" or aura_env.people[aura_env.tradee].kw == "undercity" then + ActionButton_ShowOverlayGlow(WeakAurasSaved.MagusKeywords.buttons[3]) + aura_env.castQueue["Portal: Undercity"] = true + aura_env.people[aura_env.tradee]["Portal: Undercity"] = true + aura_env.people[aura_env.tradee].state = 5 + elseif aura_env.people[aura_env.tradee].kw == "org" or aura_env.people[aura_env.tradee].kw == "og" or aura_env.people[aura_env.tradee].kw == "orgrimmar" then + ActionButton_ShowOverlayGlow(WeakAurasSaved.MagusKeywords.buttons[2]) + aura_env.castQueue["Portal: Orgrimmar"] = true + aura_env.people[aura_env.tradee]["Portal: Orgrimmar"] = true + aura_env.people[aura_env.tradee].state = 5 + elseif aura_env.people[aura_env.tradee].kw == "tb" or aura_env.people[aura_env.tradee].kw == "thunder" or aura_env.people[aura_env.tradee].kw == "thunderbluff" then + ActionButton_ShowOverlayGlow(WeakAurasSaved.MagusKeywords.buttons[1]) + aura_env.castQueue["Portal: Thunder Bluff"] = true + aura_env.people[aura_env.tradee]["Portal: Thunder Bluff"] = true + aura_env.people[aura_env.tradee].state = 5 + elseif aura_env.people[aura_env.tradee].kw == "test" then + ActionButton_ShowOverlayGlow(WeakAurasSaved.MagusKeywords.buttons[4]) + aura_env.castQueue["Consecration"] = true + aura_env.people[aura_env.tradee]["Consecration"] = true + aura_env.people[aura_env.tradee].state = 5 + end + aura_env.isTrade = false + aura_env.tradee = "" + updateText() + end + end + elseif e == "TRADE_CLOSED" then + if aura_env.isTrade == true then + aura_env.people[aura_env.tradee].state = 2 + aura_env.isTrade = false + aura_env.tradee = "" + end + elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = sender + local caster = select(3, ...) + if se == "SPELL_CAST_SUCCESS" and caster == UnitName("player") then + local spell = select(11, ...) + if aura_env.castQueue[spell] == true then aura_env.castQueue[spell] = false end + if spell == "Portal: Undercity" then + ActionButton_HideOverlayGlow(WeakAurasSaved.MagusKeywords.buttons[3]) + elseif spell == "Portal: Orgrimmar" then + ActionButton_HideOverlayGlow(WeakAurasSaved.MagusKeywords.buttons[2]) + elseif spell == "Portal: Thunder Bluff" then + ActionButton_HideOverlayGlow(WeakAurasSaved.MagusKeywords.buttons[1]) + elseif spell == "Consecration" then + ActionButton_HideOverlayGlow(WeakAurasSaved.MagusKeywords.buttons[4]) + end + for k,v in pairs(aura_env.people) do + if v[spell] and v.state == 5 then + v[spell] = false + aura_env.people[k] = nil + updateText() + end + end + end + elseif e == "TOGGLE_MAGUS" then + if aura_env.toggle == 0 then + print("Toggling script on") + aura_env.toggle = 1 + for i = 1, 3 do + WeakAurasSaved.MagusKeywords.buttons[i]:Show() + end + else + print("Toggling script off") + aura_env.toggle = 0 + for i = 1, 3 do + WeakAurasSaved.MagusKeywords.buttons[i]:Hide() + end + end + elseif e == "ADD_KEYWORD" then + if msg then + print("Adding", msg) + msg = msg:lower() + WeakAurasSaved.MagusKeywords[msg] = 1 + else + print("No keyword provided") + end + elseif e == "LIST_KEYWORDS" then + local test = "" + for k,v in pairs(WeakAurasSaved.MagusKeywords) do + print(k) + test = test .. k .. "\n" + end + message(test) + elseif e == "REMOVE_KEYWORD" then + if msg then + if WeakAurasSaved.MagusKeywords[msg] then + print("Removing", msg) + WeakAurasSaved.MagusKeywords[msg] = nil + else + print(msg, "does not exist in the keyword table") + end + else + print("No keyword provided") + end + end +end + +--INIT +if not aura_env.toggle then aura_env.toggle = 1 end +if not WeakAurasSaved.MagusKeywords then WeakAurasSaved.MagusKeywords = { + ["port"] = 1, + ["portal"] = 1, + ["org"] = 1, + ["og"] = 1, + ["uc"] = 1, + ["under"] = 1, + ["thunder"] = 1, + ["tb"] = 1, + ["wtb"] = 1, +} end + +--[[ +Player state table +0 - invited +1 - joined +2 - trade queue +3 - trading +4 - trade complete +5 - light up portal +6 - portal cast +7 - left? clean table + +Cancel everything if person leave +]] +aura_env.people = {} +aura_env.castQueue = {} +aura_env.isTrade = false +aura_env.tradee = "" + +--[[local function hideButon(self) + ActionButton_HideOverlayGlow(self) +end--]] + +if not WeakAurasSaved.MagusKeywords.buttons or not WeakAurasSaved.MagusKeywords.buttons[1][0] then WeakAurasSaved.MagusKeywords.buttons = { + [1] = CreateFrame("Button", "buton", aura_env.region, "SecureActionButtonTemplate"), + [2] = CreateFrame("Button", "buton", aura_env.region, "SecureActionButtonTemplate"), + [3] = CreateFrame("Button", "buton", aura_env.region, "SecureActionButtonTemplate"), + [4] = CreateFrame("Button", "buton", aura_env.region, "SecureActionButtonTemplate"), +} end + +for i = 1, 4 do + WeakAurasSaved.MagusKeywords.buttons[i]:SetAttribute("type", "macro") + WeakAurasSaved.MagusKeywords.buttons[i]:SetSize(aura_env.config.size, aura_env.config.size) + WeakAurasSaved.MagusKeywords.buttons[i]:SetPoint("CENTER", aura_env.region, "CENTER", (i - 1) * aura_env.config.size, 0) + WeakAurasSaved.MagusKeywords.buttons[i]:RegisterForClicks("LeftButtonDown") + --WeakAurasSaved.MagusKeywords.buttons[i]:SetScript("PreClick", hideButon) + WeakAurasSaved.MagusKeywords.buttons[i].text = WeakAurasSaved.MagusKeywords.buttons[i]:CreateFontString("text", "ARTWORK") + WeakAurasSaved.MagusKeywords.buttons[i].text:SetFont("Fonts\\FRIZQT__.TTF", 14, "OUTLINE, MONOCHROME") + WeakAurasSaved.MagusKeywords.buttons[i].text:SetPoint("CENTER", WeakAurasSaved.MagusKeywords.buttons[i], "CENTER", 0, -aura_env.config.size / 2 - 14) + WeakAurasSaved.MagusKeywords.buttons[i].text:Show() + WeakAurasSaved.MagusKeywords.buttons[i]:Show() +end + +WeakAurasSaved.MagusKeywords.buttons[1]:SetNormalTexture(135750) +WeakAurasSaved.MagusKeywords.buttons[1]:SetAttribute("macrotext", format("/cast Portal: Thunder Bluff")) +WeakAurasSaved.MagusKeywords.buttons[2]:SetNormalTexture(135744) +WeakAurasSaved.MagusKeywords.buttons[2]:SetAttribute("macrotext", format("/cast Portal: Orgrimmar")) +WeakAurasSaved.MagusKeywords.buttons[3]:SetNormalTexture(135751) +WeakAurasSaved.MagusKeywords.buttons[3]:SetAttribute("macrotext", format("/cast Portal: Undercity")) +WeakAurasSaved.MagusKeywords.buttons[4]:SetNormalTexture(135926) +WeakAurasSaved.MagusKeywords.buttons[4]:SetAttribute("macrotext", format("/cast Consecration")) + +aura_env.printTable = function(table, n) + if not n then n = 0 end + for k,v in pairs(table) do + local printText = "" + for i = 1, n do + printText = printText .. " " + end + printText = printText .. "[" .. k .. "] = " .. tostring(v) + print(printText) + if type(v) == "table" then + n = n + 1 + aura_env.printTable(v, n) + end + end end \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/FO4DBEE93B84 - Raid Scan Frames.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/FO4DBEE93B84 - Raid Scan Frames.lua similarity index 97% rename from Complete Projects/Fivver Stuff/FO4DBEE93B84 - Raid Scan Frames.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/FO4DBEE93B84 - Raid Scan Frames.lua index db314a4..c859ce6 100644 --- a/Complete Projects/Fivver Stuff/FO4DBEE93B84 - Raid Scan Frames.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/FO4DBEE93B84 - Raid Scan Frames.lua @@ -1,234 +1,234 @@ ---GROUP_ROSTER_UPDATE INSPECT_READY -function(e) - if e == "GROUP_ROSTER_UPDATE" then - for i = 1, 40 do - local u = "raid" .. i - if UnitExists(u) and not UnitIsUnit(u, "player") then - if not aura_env.data[u] then - aura_env.data[u] = { - ["name"] = UnitName(u), - ["class"] = select(3, UnitClass(u)), - ["neckilvl"] = 0, - ["backilvl"] = 0, - ["corruption"] = 0, - ["inspectQueue"] = false, - ["inspected"] = false - } - end - if aura_env.data[u] then - if aura_env.data[u].name ~= UnitName(u) then - aura_env.data[u] = { - ["name"] = UnitName(u), - ["class"] = select(3, UnitClass(u)), - ["neckilvl"] = 0, - ["backilvl"] = 0, - ["corruption"] = 0, - ["inspectQueue"] = false, - ["inspected"] = false - } - end - end - elseif not UnitExists(u) and aura_env.data[u] then - if aura_env.data[u] then - aura_env.data[u] = nil - end - for k,v in pairs(aura_env.inspectQueue) do - if v == u then - table.remove(aura_env.inspectQueue, k) - end - end - end - end - elseif e == "INSPECT_READY" then - if aura_env.notifyInspect ~= false and aura_env.inspecting == false then - InspectUnit(aura_env.notifyInspect) - aura_env.inspecting = true - elseif aura_env.notifyInspect ~= false and aura_env.inspecting == true then - for i = 1, 17 do - local link = GetInventoryItemLink(aura_env.notifyInspect, i) or 0 - if link ~= 0 then - local stats = {} - GetItemStats(link, stats) - local rarity = select(3, GetItemInfo(link)) - local ilvl = select(4, GetItemInfo(link)) - if aura_env.config.debug == true then - for k,v in pairs(stats) do - end - end - if i == 2 then - aura_env.data[aura_env.notifyInspect].neckilvl = ilvl - elseif i == 15 and rarity == 5 then - aura_env.data[aura_env.notifyInspect].backilvl = ilvl - end - if stats["ITEM_MOD_CORRUPTION"] then - --print("Item", link, "adds", stats["ITEM_MOD_CORRUPTION"], "corruption") - aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption + stats["ITEM_MOD_CORRUPTION"] - end - if stats["ITEM_MOD_CORRUPTION_RESISTANCE"] then - --print("Item", link, "reduces corruption by", stats["ITEM_MOD_CORRUPTION_RESISTANCE"]) - aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption - stats["ITEM_MOD_CORRUPTION_RESISTANCE"] - end - end - end - aura_env.data[aura_env.notifyInspect].inspectQueue = false - aura_env.data[aura_env.notifyInspect].inspected = true - aura_env.notifyInspect = false - if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(0.5, aura_env.inspectPing) end - ClearInspectPlayer() - end - end - - for k,v in pairs(aura_env.data) do - if v.inspected == false and v.inspectQueue == false then - aura_env.inspectQueue[#aura_env.inspectQueue + 1] = k - v.inspectQueue = true - end - if v.neckilvl == 0 and v.inspectQueue == false then - aura_env.inspectQueue[#aura_env.inspectQueue + 1] = k - v.inspectQueue = true - end - end - - local text = {"", "", "", ""} - for k,v in pairs(aura_env.data) do - text[1] = text[1] .. aura_env.classColor(v.class) .. v.name .. "\n" - text[2] = text[2] .. "|cff" .. aura_env.config.ncolor .. v.neckilvl .. "\n" - text[3] = text[3] .. "|cff" .. aura_env.config.ccolor .. v.backilvl .. "\n" - text[4] = text[4] .. "|cff" .. aura_env.config.cocolor .. v.corruption .. "\n" - end - - aura_env.text = text[1] - aura_env.randomFrame.text2:SetText(text[2]) - aura_env.randomFrame.text3:SetText(text[3]) - aura_env.randomFrame.text4:SetText(text[4]) - - return true -end - ---DISPLAY -function() - return aura_env.text -end - ---INIT -if WeakAuras.IsOptionsOpen() then - if aura_env.ticker then - aura_env.ticker:Cancel() - aura_env.ticker = nil - end -end -local aura_env = aura_env -aura_env.data = {} -aura_env.text = "" -aura_env.inspectQueue = {} -aura_env.insIndex = 1 -aura_env.notifyInspect = false -aura_env.inspecting = false -aura_env.output = "" -if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end -if not WeakAurasSaved.CustomTrash.Debug then WeakAurasSaved.CustomTrash.Debug = {} end - -aura_env.printTable = function(table, n) - if not n then n = 0 end - for k,v in pairs(table) do - local printText = "" - for i = 1, n do - printText = printText .. " " - end - printText = printText .. "[" .. k .. "] = " .. tostring(v) - print(printText) - if type(v) == "table" then - n = n + 1 - aura_env.printTable(v, n) - end - end -end - -local function uninspect() - aura_env.inspecting = false -end -hooksecurefunc("ClearInspectPlayer", uninspect) - -aura_env.classColor = function(class) - if class == 6 then return "|cFFC41F3B" elseif - class == 12 then return "|cFFA330C9" elseif - class == 11 then return "|cFFFF7D0A" elseif - class == 3 then return "|cFFABD473" elseif - class == 8 then return "|cFF40C7EB" elseif - class == 10 then return "|cFF00FF96" elseif - class == 2 then return "|cFFF58CBA" elseif - class == 5 then return "|cFFFFFFFF" elseif - class == 4 then return "|cFFFFF569" elseif - class == 7 then return "|cFF0070DE" elseif - class == 9 then return "|cFF8787ED" elseif - class == 1 then return "|cFFC79C6E" else - return "|cFF000000" end -end - -aura_env.inspectPing = function() - if aura_env.inspecting == false and aura_env.notifyInspect == false then - if #aura_env.inspectQueue > 0 then - if aura_env.insIndex >= #aura_env.inspectQueue then - aura_env.insIndex = 1 - end - for i = aura_env.insIndex, #aura_env.inspectQueue do - if CheckInteractDistance(aura_env.inspectQueue[i], 2) == true then - ClearInspectPlayer() - NotifyInspect(aura_env.inspectQueue[i]) - aura_env.notifyInspect = aura_env.inspectQueue[i] - if aura_env.ticker then aura_env.ticker:Cancel(); aura_env.ticker = nil end - table.remove(aura_env.inspectQueue, i) - break - end - end - end - end - for k,v in pairs(aura_env.data) do - if v.neckilvl == 0 and v.inspectQueue == false then - aura_env.inspectQueue[#aura_env.inspectQueue + 1] = k - v.inspectQueue = true - end - end -end - -if not aura_env.ticker then - aura_env.ticker = C_Timer.NewTicker(0.5, aura_env.inspectPing) -end - -local font, fontSize, fontFlags = aura_env.region.text:GetFont() -local charWidth = fontSize * 0.6 -fontSize = fontSize * 0.65 - -aura_env.randomFrame = CreateFrame("frame") -aura_env.randomFrame:ClearAllPoints() -aura_env.randomFrame:SetPoint("CENTER", aura_env.region, "CENTER") - -if not aura_env.randomFrame.text2 then - aura_env.randomFrame.text2 = aura_env.randomFrame:CreateFontString() -end -aura_env.randomFrame.text2:SetFont(font, fontSize, fontFlags) -aura_env.randomFrame.text2:SetPoint("CENTER", aura_env.region, "CENTER", charWidth * 8, 0) -aura_env.randomFrame.text2:SetText("") -aura_env.randomFrame.text2:SetJustifyV("center") -aura_env.randomFrame.text2:SetJustifyH("center") -aura_env.randomFrame.text2:Show() - -if not aura_env.randomFrame.text3 then - aura_env.randomFrame.text3 = aura_env.randomFrame:CreateFontString() -end -aura_env.randomFrame.text3:SetFont(font, fontSize, fontFlags) -aura_env.randomFrame.text3:SetPoint("CENTER", aura_env.region, "CENTER", (charWidth * 8) + (charWidth * 3), 0) -aura_env.randomFrame.text3:SetText("") -aura_env.randomFrame.text3:SetJustifyV("center") -aura_env.randomFrame.text3:SetJustifyH("center") -aura_env.randomFrame.text3:Show() - -if not aura_env.randomFrame.text4 then - aura_env.randomFrame.text4 = aura_env.randomFrame:CreateFontString() -end -aura_env.randomFrame.text4:SetFont(font, fontSize, fontFlags) -aura_env.randomFrame.text4:SetPoint("CENTER", aura_env.region, "CENTER", (charWidth * 8) + (charWidth * 3) + (charWidth * 3), 0) -aura_env.randomFrame.text4:SetText("") -aura_env.randomFrame.text4:SetJustifyV("center") -aura_env.randomFrame.text4:SetJustifyH("center") +--GROUP_ROSTER_UPDATE INSPECT_READY +function(e) + if e == "GROUP_ROSTER_UPDATE" then + for i = 1, 40 do + local u = "raid" .. i + if UnitExists(u) and not UnitIsUnit(u, "player") then + if not aura_env.data[u] then + aura_env.data[u] = { + ["name"] = UnitName(u), + ["class"] = select(3, UnitClass(u)), + ["neckilvl"] = 0, + ["backilvl"] = 0, + ["corruption"] = 0, + ["inspectQueue"] = false, + ["inspected"] = false + } + end + if aura_env.data[u] then + if aura_env.data[u].name ~= UnitName(u) then + aura_env.data[u] = { + ["name"] = UnitName(u), + ["class"] = select(3, UnitClass(u)), + ["neckilvl"] = 0, + ["backilvl"] = 0, + ["corruption"] = 0, + ["inspectQueue"] = false, + ["inspected"] = false + } + end + end + elseif not UnitExists(u) and aura_env.data[u] then + if aura_env.data[u] then + aura_env.data[u] = nil + end + for k,v in pairs(aura_env.inspectQueue) do + if v == u then + table.remove(aura_env.inspectQueue, k) + end + end + end + end + elseif e == "INSPECT_READY" then + if aura_env.notifyInspect ~= false and aura_env.inspecting == false then + InspectUnit(aura_env.notifyInspect) + aura_env.inspecting = true + elseif aura_env.notifyInspect ~= false and aura_env.inspecting == true then + for i = 1, 17 do + local link = GetInventoryItemLink(aura_env.notifyInspect, i) or 0 + if link ~= 0 then + local stats = {} + GetItemStats(link, stats) + local rarity = select(3, GetItemInfo(link)) + local ilvl = select(4, GetItemInfo(link)) + if aura_env.config.debug == true then + for k,v in pairs(stats) do + end + end + if i == 2 then + aura_env.data[aura_env.notifyInspect].neckilvl = ilvl + elseif i == 15 and rarity == 5 then + aura_env.data[aura_env.notifyInspect].backilvl = ilvl + end + if stats["ITEM_MOD_CORRUPTION"] then + --print("Item", link, "adds", stats["ITEM_MOD_CORRUPTION"], "corruption") + aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption + stats["ITEM_MOD_CORRUPTION"] + end + if stats["ITEM_MOD_CORRUPTION_RESISTANCE"] then + --print("Item", link, "reduces corruption by", stats["ITEM_MOD_CORRUPTION_RESISTANCE"]) + aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption - stats["ITEM_MOD_CORRUPTION_RESISTANCE"] + end + end + end + aura_env.data[aura_env.notifyInspect].inspectQueue = false + aura_env.data[aura_env.notifyInspect].inspected = true + aura_env.notifyInspect = false + if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(0.5, aura_env.inspectPing) end + ClearInspectPlayer() + end + end + + for k,v in pairs(aura_env.data) do + if v.inspected == false and v.inspectQueue == false then + aura_env.inspectQueue[#aura_env.inspectQueue + 1] = k + v.inspectQueue = true + end + if v.neckilvl == 0 and v.inspectQueue == false then + aura_env.inspectQueue[#aura_env.inspectQueue + 1] = k + v.inspectQueue = true + end + end + + local text = {"", "", "", ""} + for k,v in pairs(aura_env.data) do + text[1] = text[1] .. aura_env.classColor(v.class) .. v.name .. "\n" + text[2] = text[2] .. "|cff" .. aura_env.config.ncolor .. v.neckilvl .. "\n" + text[3] = text[3] .. "|cff" .. aura_env.config.ccolor .. v.backilvl .. "\n" + text[4] = text[4] .. "|cff" .. aura_env.config.cocolor .. v.corruption .. "\n" + end + + aura_env.text = text[1] + aura_env.randomFrame.text2:SetText(text[2]) + aura_env.randomFrame.text3:SetText(text[3]) + aura_env.randomFrame.text4:SetText(text[4]) + + return true +end + +--DISPLAY +function() + return aura_env.text +end + +--INIT +if WeakAuras.IsOptionsOpen() then + if aura_env.ticker then + aura_env.ticker:Cancel() + aura_env.ticker = nil + end +end +local aura_env = aura_env +aura_env.data = {} +aura_env.text = "" +aura_env.inspectQueue = {} +aura_env.insIndex = 1 +aura_env.notifyInspect = false +aura_env.inspecting = false +aura_env.output = "" +if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end +if not WeakAurasSaved.CustomTrash.Debug then WeakAurasSaved.CustomTrash.Debug = {} end + +aura_env.printTable = function(table, n) + if not n then n = 0 end + for k,v in pairs(table) do + local printText = "" + for i = 1, n do + printText = printText .. " " + end + printText = printText .. "[" .. k .. "] = " .. tostring(v) + print(printText) + if type(v) == "table" then + n = n + 1 + aura_env.printTable(v, n) + end + end +end + +local function uninspect() + aura_env.inspecting = false +end +hooksecurefunc("ClearInspectPlayer", uninspect) + +aura_env.classColor = function(class) + if class == 6 then return "|cFFC41F3B" elseif + class == 12 then return "|cFFA330C9" elseif + class == 11 then return "|cFFFF7D0A" elseif + class == 3 then return "|cFFABD473" elseif + class == 8 then return "|cFF40C7EB" elseif + class == 10 then return "|cFF00FF96" elseif + class == 2 then return "|cFFF58CBA" elseif + class == 5 then return "|cFFFFFFFF" elseif + class == 4 then return "|cFFFFF569" elseif + class == 7 then return "|cFF0070DE" elseif + class == 9 then return "|cFF8787ED" elseif + class == 1 then return "|cFFC79C6E" else + return "|cFF000000" end +end + +aura_env.inspectPing = function() + if aura_env.inspecting == false and aura_env.notifyInspect == false then + if #aura_env.inspectQueue > 0 then + if aura_env.insIndex >= #aura_env.inspectQueue then + aura_env.insIndex = 1 + end + for i = aura_env.insIndex, #aura_env.inspectQueue do + if CheckInteractDistance(aura_env.inspectQueue[i], 2) == true then + ClearInspectPlayer() + NotifyInspect(aura_env.inspectQueue[i]) + aura_env.notifyInspect = aura_env.inspectQueue[i] + if aura_env.ticker then aura_env.ticker:Cancel(); aura_env.ticker = nil end + table.remove(aura_env.inspectQueue, i) + break + end + end + end + end + for k,v in pairs(aura_env.data) do + if v.neckilvl == 0 and v.inspectQueue == false then + aura_env.inspectQueue[#aura_env.inspectQueue + 1] = k + v.inspectQueue = true + end + end +end + +if not aura_env.ticker then + aura_env.ticker = C_Timer.NewTicker(0.5, aura_env.inspectPing) +end + +local font, fontSize, fontFlags = aura_env.region.text:GetFont() +local charWidth = fontSize * 0.6 +fontSize = fontSize * 0.65 + +aura_env.randomFrame = CreateFrame("frame") +aura_env.randomFrame:ClearAllPoints() +aura_env.randomFrame:SetPoint("CENTER", aura_env.region, "CENTER") + +if not aura_env.randomFrame.text2 then + aura_env.randomFrame.text2 = aura_env.randomFrame:CreateFontString() +end +aura_env.randomFrame.text2:SetFont(font, fontSize, fontFlags) +aura_env.randomFrame.text2:SetPoint("CENTER", aura_env.region, "CENTER", charWidth * 8, 0) +aura_env.randomFrame.text2:SetText("") +aura_env.randomFrame.text2:SetJustifyV("center") +aura_env.randomFrame.text2:SetJustifyH("center") +aura_env.randomFrame.text2:Show() + +if not aura_env.randomFrame.text3 then + aura_env.randomFrame.text3 = aura_env.randomFrame:CreateFontString() +end +aura_env.randomFrame.text3:SetFont(font, fontSize, fontFlags) +aura_env.randomFrame.text3:SetPoint("CENTER", aura_env.region, "CENTER", (charWidth * 8) + (charWidth * 3), 0) +aura_env.randomFrame.text3:SetText("") +aura_env.randomFrame.text3:SetJustifyV("center") +aura_env.randomFrame.text3:SetJustifyH("center") +aura_env.randomFrame.text3:Show() + +if not aura_env.randomFrame.text4 then + aura_env.randomFrame.text4 = aura_env.randomFrame:CreateFontString() +end +aura_env.randomFrame.text4:SetFont(font, fontSize, fontFlags) +aura_env.randomFrame.text4:SetPoint("CENTER", aura_env.region, "CENTER", (charWidth * 8) + (charWidth * 3) + (charWidth * 3), 0) +aura_env.randomFrame.text4:SetText("") +aura_env.randomFrame.text4:SetJustifyV("center") +aura_env.randomFrame.text4:SetJustifyH("center") aura_env.randomFrame.text4:Show() \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/FO4DBEE93B84 - Raid Scan.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/FO4DBEE93B84 - Raid Scan.lua similarity index 97% rename from Complete Projects/Fivver Stuff/FO4DBEE93B84 - Raid Scan.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/FO4DBEE93B84 - Raid Scan.lua index 133f582..e11243f 100644 --- a/Complete Projects/Fivver Stuff/FO4DBEE93B84 - Raid Scan.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/FO4DBEE93B84 - Raid Scan.lua @@ -1,223 +1,223 @@ ---GROUP_ROSTER_UPDATE INSPECT_READY -function(allstates, e) - if e == "GROUP_ROSTER_UPDATE" then - for i = 1, 40 do - local u = "raid" .. i - if UnitExists(u) and not UnitIsUnit(u, "player") then - if not aura_env.data[u] then - aura_env.data[u] = { - ["name"] = UnitName(u), - ["class"] = select(3, UnitClass(u)), - ["neckilvl"] = 0, - ["backilvl"] = 0, - ["corruption"] = 0, - ["inspectQueue"] = false, - ["inspected"] = false - } - end - if aura_env.data[u] then - if aura_env.data[u].name ~= UnitName(u) then - aura_env.data[u] = { - ["name"] = UnitName(u), - ["class"] = select(3, UnitClass(u)), - ["neckilvl"] = 0, - ["backilvl"] = 0, - ["corruption"] = 0, - ["inspectQueue"] = false, - ["inspected"] = false - } - end - end - elseif not UnitExists(u) and (aura_env.data[u] or allstates[u]) then - if aura_env.data[u] then - aura_env.data[u] = nil - end - for k,v in pairs(aura_env.inspectQueue) do - if v == u then - table.remove(aura_env.inspectQueue, k) - end - end - if allstates[u] then - allstates[u].show = false - allstates[u].changed = true - end - end - end - elseif e == "INSPECT_READY" then - if aura_env.notifyInspect ~= false and aura_env.inspecting == false then - InspectUnit(aura_env.notifyInspect) - aura_env.inspecting = true - elseif aura_env.notifyInspect ~= false and aura_env.inspecting == true then - for i = 1, 17 do - local link = GetInventoryItemLink(aura_env.notifyInspect, i) or 0 - if link ~= 0 then - local stats = {} - GetItemStats(link, stats) - local rarity = select(3, GetItemInfo(link)) - local ilvl = select(4, GetItemInfo(link)) - if aura_env.config.debug == true then - for k,v in pairs(stats) do - end - end - if i == 2 then - aura_env.data[aura_env.notifyInspect].neckilvl = ilvl - elseif i == 15 and rarity == 5 then - aura_env.data[aura_env.notifyInspect].backilvl = ilvl - end - if stats["ITEM_MOD_CORRUPTION"] then - aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption + stats["ITEM_MOD_CORRUPTION"] - end - if stats["ITEM_MOD_CORRUPTION_RESISTANCE"] then - aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption - stats["ITEM_MOD_CORRUPTION_RESISTANCE"] - end - end - end - if aura_env.data[aura_env.notifyInspect].backilvl > 0 then - local bil = aura_env.data[aura_env.notifyInspect].backilvl - if bil >= 470 and bil < 472 then - aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption - 5 - elseif bil >= 472 and bil <= 474 then - aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption - 12 - elseif bil >= 476 and bil <= 480 then - aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption - 20 - elseif bil >= 482 and bil <= 484 then - aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption - 27 - elseif bil >= 486 and bil <= 488 then - aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption - 35 - elseif bil >= 490 and bil <= 494 then - aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption - 42 - elseif bil >= 494 then - aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption - 50 - end - end - aura_env.data[aura_env.notifyInspect].inspectQueue = false - aura_env.data[aura_env.notifyInspect].inspected = true - aura_env.notifyInspect = false - ClearInspectPlayer() - end - end - - for k,v in pairs(aura_env.data) do - if v.inspected == false and v.inspectQueue == false then - aura_env.inspectQueue[#aura_env.inspectQueue + 1] = k - v.inspectQueue = true - end - if v.neckilvl == 0 and v.inspectQueue == false then - aura_env.inspectQueue[#aura_env.inspectQueue + 1] = k - v.inspectQueue = true - end - end - - for k,v in pairs(aura_env.data) do - allstates[k] = { - show = true, - changed = true, - name = v.name, - class = v.class, - classColor = aura_env.classColor(v.class), - backilvl = v.backilvl, - backColor = "|cff" .. aura_env.config.ccolor, - neckilvl = v.neckilvl, - neckColor = "|cff" .. aura_env.config.ncolor, - corruption = v.corruption, - corruptionColor = "|cff" .. aura_env.config.cocolor, - resort = true, - index = v.name, - } - if aura_env.config.sort == 1 then - allstates[k].index = v.name - elseif aura_env.config.sort == 2 then - allstates[k].index = v.backilvl - elseif aura_env.config.sort == 3 then - allstates[k].index = v.neckilvl - elseif aura_env.config.sort == 4 then - allstates[k].index = v.corruption - end - end - return true -end - ---DISPLAY -%classColor%n %neckColor%neckilvl %backColor%backilvl %corruptionColor%corruption - ---INIT -if WeakAuras.IsOptionsOpen() then - if aura_env.ticker then - aura_env.ticker:Cancel() - aura_env.ticker = nil - end -end -local aura_env = aura_env -aura_env.data = {} -aura_env.inspectQueue = {} -aura_env.insIndex = 1 -aura_env.notifyInspect = false -aura_env.inspecting = false -aura_env.output = "" -if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end -if not WeakAurasSaved.CustomTrash.Debug then WeakAurasSaved.CustomTrash.Debug = {} end - -aura_env.printTable = function(table, n) - if not n then n = 0 end - for k,v in pairs(table) do - local printText = "" - for i = 1, n do - printText = printText .. " " - end - printText = printText .. "[" .. k .. "] = " .. tostring(v) - print(printText) - if type(v) == "table" then - n = n + 1 - aura_env.printTable(v, n) - end - end -end - -local function uninspect() - aura_env.inspecting = false -end -hooksecurefunc("ClearInspectPlayer", uninspect) - -aura_env.classColor = function(class) - if class == 6 then return "|cFFC41F3B" elseif - class == 12 then return "|cFFA330C9" elseif - class == 11 then return "|cFFFF7D0A" elseif - class == 3 then return "|cFFABD473" elseif - class == 8 then return "|cFF40C7EB" elseif - class == 10 then return "|cFF00FF96" elseif - class == 2 then return "|cFFF58CBA" elseif - class == 5 then return "|cFFFFFFFF" elseif - class == 4 then return "|cFFFFF569" elseif - class == 7 then return "|cFF0070DE" elseif - class == 9 then return "|cFF8787ED" elseif - class == 1 then return "|cFFC79C6E" else - return "|cFF000000" end -end - -aura_env.inspectPing = function() - if aura_env.inspecting == false and aura_env.notifyInspect == false then - if #aura_env.inspectQueue > 0 then - --print("There are units to inspect D:") - if aura_env.insIndex >= #aura_env.inspectQueue then - aura_env.insIndex = 1 - end - for i = aura_env.insIndex, #aura_env.inspectQueue do - if CheckInteractDistance(aura_env.inspectQueue[i], 2) == true then - --print("QUEUEING INSPECT FOR", aura_env.inspectQueue[i]) - ClearInspectPlayer() - NotifyInspect(aura_env.inspectQueue[i]) - aura_env.notifyInspect = aura_env.inspectQueue[i] - table.remove(aura_env.inspectQueue, i) - break - end - end - end - end - for k,v in pairs(aura_env.data) do - if v.neckilvl == 0 and v.inspectQueue == false then - aura_env.inspectQueue[#aura_env.inspectQueue + 1] = k - v.inspectQueue = true - end - end -end +--GROUP_ROSTER_UPDATE INSPECT_READY +function(allstates, e) + if e == "GROUP_ROSTER_UPDATE" then + for i = 1, 40 do + local u = "raid" .. i + if UnitExists(u) and not UnitIsUnit(u, "player") then + if not aura_env.data[u] then + aura_env.data[u] = { + ["name"] = UnitName(u), + ["class"] = select(3, UnitClass(u)), + ["neckilvl"] = 0, + ["backilvl"] = 0, + ["corruption"] = 0, + ["inspectQueue"] = false, + ["inspected"] = false + } + end + if aura_env.data[u] then + if aura_env.data[u].name ~= UnitName(u) then + aura_env.data[u] = { + ["name"] = UnitName(u), + ["class"] = select(3, UnitClass(u)), + ["neckilvl"] = 0, + ["backilvl"] = 0, + ["corruption"] = 0, + ["inspectQueue"] = false, + ["inspected"] = false + } + end + end + elseif not UnitExists(u) and (aura_env.data[u] or allstates[u]) then + if aura_env.data[u] then + aura_env.data[u] = nil + end + for k,v in pairs(aura_env.inspectQueue) do + if v == u then + table.remove(aura_env.inspectQueue, k) + end + end + if allstates[u] then + allstates[u].show = false + allstates[u].changed = true + end + end + end + elseif e == "INSPECT_READY" then + if aura_env.notifyInspect ~= false and aura_env.inspecting == false then + InspectUnit(aura_env.notifyInspect) + aura_env.inspecting = true + elseif aura_env.notifyInspect ~= false and aura_env.inspecting == true then + for i = 1, 17 do + local link = GetInventoryItemLink(aura_env.notifyInspect, i) or 0 + if link ~= 0 then + local stats = {} + GetItemStats(link, stats) + local rarity = select(3, GetItemInfo(link)) + local ilvl = select(4, GetItemInfo(link)) + if aura_env.config.debug == true then + for k,v in pairs(stats) do + end + end + if i == 2 then + aura_env.data[aura_env.notifyInspect].neckilvl = ilvl + elseif i == 15 and rarity == 5 then + aura_env.data[aura_env.notifyInspect].backilvl = ilvl + end + if stats["ITEM_MOD_CORRUPTION"] then + aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption + stats["ITEM_MOD_CORRUPTION"] + end + if stats["ITEM_MOD_CORRUPTION_RESISTANCE"] then + aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption - stats["ITEM_MOD_CORRUPTION_RESISTANCE"] + end + end + end + if aura_env.data[aura_env.notifyInspect].backilvl > 0 then + local bil = aura_env.data[aura_env.notifyInspect].backilvl + if bil >= 470 and bil < 472 then + aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption - 5 + elseif bil >= 472 and bil <= 474 then + aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption - 12 + elseif bil >= 476 and bil <= 480 then + aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption - 20 + elseif bil >= 482 and bil <= 484 then + aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption - 27 + elseif bil >= 486 and bil <= 488 then + aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption - 35 + elseif bil >= 490 and bil <= 494 then + aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption - 42 + elseif bil >= 494 then + aura_env.data[aura_env.notifyInspect].corruption = aura_env.data[aura_env.notifyInspect].corruption - 50 + end + end + aura_env.data[aura_env.notifyInspect].inspectQueue = false + aura_env.data[aura_env.notifyInspect].inspected = true + aura_env.notifyInspect = false + ClearInspectPlayer() + end + end + + for k,v in pairs(aura_env.data) do + if v.inspected == false and v.inspectQueue == false then + aura_env.inspectQueue[#aura_env.inspectQueue + 1] = k + v.inspectQueue = true + end + if v.neckilvl == 0 and v.inspectQueue == false then + aura_env.inspectQueue[#aura_env.inspectQueue + 1] = k + v.inspectQueue = true + end + end + + for k,v in pairs(aura_env.data) do + allstates[k] = { + show = true, + changed = true, + name = v.name, + class = v.class, + classColor = aura_env.classColor(v.class), + backilvl = v.backilvl, + backColor = "|cff" .. aura_env.config.ccolor, + neckilvl = v.neckilvl, + neckColor = "|cff" .. aura_env.config.ncolor, + corruption = v.corruption, + corruptionColor = "|cff" .. aura_env.config.cocolor, + resort = true, + index = v.name, + } + if aura_env.config.sort == 1 then + allstates[k].index = v.name + elseif aura_env.config.sort == 2 then + allstates[k].index = v.backilvl + elseif aura_env.config.sort == 3 then + allstates[k].index = v.neckilvl + elseif aura_env.config.sort == 4 then + allstates[k].index = v.corruption + end + end + return true +end + +--DISPLAY +%classColor%n %neckColor%neckilvl %backColor%backilvl %corruptionColor%corruption + +--INIT +if WeakAuras.IsOptionsOpen() then + if aura_env.ticker then + aura_env.ticker:Cancel() + aura_env.ticker = nil + end +end +local aura_env = aura_env +aura_env.data = {} +aura_env.inspectQueue = {} +aura_env.insIndex = 1 +aura_env.notifyInspect = false +aura_env.inspecting = false +aura_env.output = "" +if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end +if not WeakAurasSaved.CustomTrash.Debug then WeakAurasSaved.CustomTrash.Debug = {} end + +aura_env.printTable = function(table, n) + if not n then n = 0 end + for k,v in pairs(table) do + local printText = "" + for i = 1, n do + printText = printText .. " " + end + printText = printText .. "[" .. k .. "] = " .. tostring(v) + print(printText) + if type(v) == "table" then + n = n + 1 + aura_env.printTable(v, n) + end + end +end + +local function uninspect() + aura_env.inspecting = false +end +hooksecurefunc("ClearInspectPlayer", uninspect) + +aura_env.classColor = function(class) + if class == 6 then return "|cFFC41F3B" elseif + class == 12 then return "|cFFA330C9" elseif + class == 11 then return "|cFFFF7D0A" elseif + class == 3 then return "|cFFABD473" elseif + class == 8 then return "|cFF40C7EB" elseif + class == 10 then return "|cFF00FF96" elseif + class == 2 then return "|cFFF58CBA" elseif + class == 5 then return "|cFFFFFFFF" elseif + class == 4 then return "|cFFFFF569" elseif + class == 7 then return "|cFF0070DE" elseif + class == 9 then return "|cFF8787ED" elseif + class == 1 then return "|cFFC79C6E" else + return "|cFF000000" end +end + +aura_env.inspectPing = function() + if aura_env.inspecting == false and aura_env.notifyInspect == false then + if #aura_env.inspectQueue > 0 then + --print("There are units to inspect D:") + if aura_env.insIndex >= #aura_env.inspectQueue then + aura_env.insIndex = 1 + end + for i = aura_env.insIndex, #aura_env.inspectQueue do + if CheckInteractDistance(aura_env.inspectQueue[i], 2) == true then + --print("QUEUEING INSPECT FOR", aura_env.inspectQueue[i]) + ClearInspectPlayer() + NotifyInspect(aura_env.inspectQueue[i]) + aura_env.notifyInspect = aura_env.inspectQueue[i] + table.remove(aura_env.inspectQueue, i) + break + end + end + end + end + for k,v in pairs(aura_env.data) do + if v.neckilvl == 0 and v.inspectQueue == false then + aura_env.inspectQueue[#aura_env.inspectQueue + 1] = k + v.inspectQueue = true + end + end +end aura_env.ticker = C_Timer.NewTicker(0.5, aura_env.inspectPing) \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/FO5A22680021 - Druid Stuff.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/FO5A22680021 - Druid Stuff.lua similarity index 97% rename from Complete Projects/Fivver Stuff/FO5A22680021 - Druid Stuff.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/FO5A22680021 - Druid Stuff.lua index 67894f3..eaeca6b 100644 --- a/Complete Projects/Fivver Stuff/FO5A22680021 - Druid Stuff.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/FO5A22680021 - Druid Stuff.lua @@ -1,71 +1,71 @@ ---UNIT_AURA DRUID_HOTS_REMOVE_HOT UPDATE_HOTS -function(e, ...) - if not WeakAurasSaved.DruidHots then WeakAurasSaved.DruidHots = {} end - if not WeakAurasSaved.DruidHotsTotal then WeakAurasSaved.DruidHotsTotal = { - ["Rejuvenation"] = 0, - ["Regrowth"] = 0, - ["Lifebloom"] = 0, - ["Wild Growth"] = 0, - ["Spring Blossoms"] = 0, - ["Grove Tending"] = 0, - ["Rejuvenation (Germination)"] = 0, - } end - if e == "UNIT_AURA" then - local u = ... - local index = 1 - local GUID = UnitGUID(u) - local buff, update = 0, 0 - WeakAurasSaved.DruidHots[GUID] = {} - while UnitBuff(u, index, "PLAYER") do - local name = UnitBuff(u, index, "PLAYER") - local dur = select(6, UnitBuff(u, index, "PLAYER")) - if aura_env.hots[name] then - buff = 1 - WeakAurasSaved.DruidHots[GUID][name] = C_Timer.NewTimer(dur, function() WeakAuras.ScanEvents("DRUID_HOTS_REMOVE_HOT", GUID, name) end) - end - index = index + 1 - if index > 20 then break end - end - if buff == 0 then WeakAurasSaved.DruidHots[GUID] = nil end - if buff == 1 then WeakAuras.ScanEvents("UPDATE_HOTS") end - --DevTools_Dump(WeakAurasSaved.DruidHots) - elseif e == "DRUID_HOTS_REMOVE_HOT" then - local GUID, bname = ... - WeakAurasSaved.DruidHots[GUID][bname] = nil - WeakAuras.ScanEvents("UPDATE_HOTS") - --DevTools_Dump(WeakAurasSaved.DruidHots) - elseif e == "UPDATE_HOTS" then - WeakAurasSaved.DruidHotsTotal = { - ["Rejuvenation"] = 0, - ["Regrowth"] = 0, - ["Lifebloom"] = 0, - ["Wild Growth"] = 0, - ["Spring Blossoms"] = 0, - ["Grove Tending"] = 0, - ["Rejuvenation (Germination)"] = 0, - } - for k,v in pairs(WeakAurasSaved.DruidHots) do - for k2, v2 in pairs(v) do - --print(k2) - WeakAurasSaved.DruidHotsTotal[k2] = WeakAurasSaved.DruidHotsTotal[k2] + 1 - end - end - --DevTools_Dump(WeakAurasSaved.DruidHotsTotal) - end -end - ---DISPLAY -function() - return WeakAurasSaved.DruidHotsTotal["Grove Tending"] -end - ---INIT -aura_env.hots = { - ["Rejuvenation"] = 1, - ["Regrowth"] = 1, - ["Lifebloom"] = 1, - ["Wild Growth"] = 1, - ["Spring Blossoms"] = 1, - ["Grove Tending"] = 1, - ["Rejuvenation (Germination)"] = 1, +--UNIT_AURA DRUID_HOTS_REMOVE_HOT UPDATE_HOTS +function(e, ...) + if not WeakAurasSaved.DruidHots then WeakAurasSaved.DruidHots = {} end + if not WeakAurasSaved.DruidHotsTotal then WeakAurasSaved.DruidHotsTotal = { + ["Rejuvenation"] = 0, + ["Regrowth"] = 0, + ["Lifebloom"] = 0, + ["Wild Growth"] = 0, + ["Spring Blossoms"] = 0, + ["Grove Tending"] = 0, + ["Rejuvenation (Germination)"] = 0, + } end + if e == "UNIT_AURA" then + local u = ... + local index = 1 + local GUID = UnitGUID(u) + local buff, update = 0, 0 + WeakAurasSaved.DruidHots[GUID] = {} + while UnitBuff(u, index, "PLAYER") do + local name = UnitBuff(u, index, "PLAYER") + local dur = select(6, UnitBuff(u, index, "PLAYER")) + if aura_env.hots[name] then + buff = 1 + WeakAurasSaved.DruidHots[GUID][name] = C_Timer.NewTimer(dur, function() WeakAuras.ScanEvents("DRUID_HOTS_REMOVE_HOT", GUID, name) end) + end + index = index + 1 + if index > 20 then break end + end + if buff == 0 then WeakAurasSaved.DruidHots[GUID] = nil end + if buff == 1 then WeakAuras.ScanEvents("UPDATE_HOTS") end + --DevTools_Dump(WeakAurasSaved.DruidHots) + elseif e == "DRUID_HOTS_REMOVE_HOT" then + local GUID, bname = ... + WeakAurasSaved.DruidHots[GUID][bname] = nil + WeakAuras.ScanEvents("UPDATE_HOTS") + --DevTools_Dump(WeakAurasSaved.DruidHots) + elseif e == "UPDATE_HOTS" then + WeakAurasSaved.DruidHotsTotal = { + ["Rejuvenation"] = 0, + ["Regrowth"] = 0, + ["Lifebloom"] = 0, + ["Wild Growth"] = 0, + ["Spring Blossoms"] = 0, + ["Grove Tending"] = 0, + ["Rejuvenation (Germination)"] = 0, + } + for k,v in pairs(WeakAurasSaved.DruidHots) do + for k2, v2 in pairs(v) do + --print(k2) + WeakAurasSaved.DruidHotsTotal[k2] = WeakAurasSaved.DruidHotsTotal[k2] + 1 + end + end + --DevTools_Dump(WeakAurasSaved.DruidHotsTotal) + end +end + +--DISPLAY +function() + return WeakAurasSaved.DruidHotsTotal["Grove Tending"] +end + +--INIT +aura_env.hots = { + ["Rejuvenation"] = 1, + ["Regrowth"] = 1, + ["Lifebloom"] = 1, + ["Wild Growth"] = 1, + ["Spring Blossoms"] = 1, + ["Grove Tending"] = 1, + ["Rejuvenation (Germination)"] = 1, } \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/FO815D7649125 - Swing Timer.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/FO815D7649125 - Swing Timer.lua similarity index 97% rename from Complete Projects/Fivver Stuff/FO815D7649125 - Swing Timer.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/FO815D7649125 - Swing Timer.lua index 925800e..e2bbe02 100644 --- a/Complete Projects/Fivver Stuff/FO815D7649125 - Swing Timer.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/FO815D7649125 - Swing Timer.lua @@ -1,105 +1,105 @@ ---COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_ENABLED ---I fucked it up. -function(e, msg, sender) - if not WeakAurasSaved.MagusKeywords then WeakAurasSaved.MagusKeywords = {["tb"] = "Thunder Bluff", ["org"] = "Orgrimmar", ["uc"] = "Undercity", ["portal"] = "Portal", ["port"] = "Portal", ["water"] = "Water", ["waters"] = "Waters", ["food"] = "Food"} end - if e == "CHAT_MSG_SAY" or e == "CHAT_MSG_YELL" or e == "CHAT_MSG_WHISPER" then - if msg and aura_env.toggle == 1 then - msg = msg:lower() - local noRealmSender = sender:match("(.+)-%w+") - --print(sender, noRealmSender, UnitClass(sender), UnitClass(noRealmSender)) - if select(3, UnitClass(noRealmSender)) == 8 and not WeakAurasSaved.MagusKeywords.AntiMagusTable[noRealmSender] then - print("Adding", noRealmSender, "to the ignore") - WeakAurasSaved.MagusKeywords.AntiMagusTable[noRealmSender] = 1 - end - for k,v in pairs(WeakAurasSaved.MagusKeywords) do - if msg:match(k) then - local st, en = msg:find(k) - if not (st > 1 and msg:match(".", st - 1) ~= " ") and not (en < strlen(msg) and msg:match(".", en + 1) ~= " ") and select(3, UnitClass(noRealmSender)) ~= 8 then - if not WeakAurasSaved.MagusKeywords.AntiMagusTable[noRealmSender] then - InviteUnit(sender) - end - end - end - end - end - elseif e == "TOGGLE_MAGUS" then - if aura_env.toggle == 0 then - print("Toggling script on") - SendWho('z-"azsuna" c-"Mage"') - aura_env.toggle = 1 - else - print("Toggling script off") - aura_env.toggle = 0 - end - elseif e == "WHO_LIST_UPDATE" then - for i = 1, GetNumWhoResults() do - local name = select(1, GetWhoInfo(i)) - local class = select(5, GetWhoInfo(i)) - if class:match("Mage") then - if not WeakAurasSaved.MagusKeywords.AntiMagusTable[name] then - print("Adding", name, "to the ignore table") - WeakAurasSaved.MagusKeywords.AntiMagusTable[name] = 1 - end - end - end - FriendsFrameCloseButton:Click() - elseif e == "NAME_PLATE_UNIT_ADDED" then - local name, class = UnitName(msg), select(3, UnitClass(msg)) - local ispl = UnitIsPlayer(msg) - if class == 8 and WeakAurasSaved.MagusKeywords.AntiMagusTable[name] == nil and ispl == true then - print("Adding", name, "to the ignore table") - WeakAurasSaved.MagusKeywords.AntiMagusTable[name] = 1 - end - elseif e =="NAME_PLATE_UNIT_REMOVED" then - local name, class = UnitName(msg), select(3, UnitClass(msg)) - local ispl = UnitIsPlayer(msg) - if class == 8 and WeakAurasSaved.MagusKeywords.AntiMagusTable[name] == nil and ispl == true then - print("Adding", name, "to the ignore table") - WeakAurasSaved.MagusKeywords.AntiMagusTable[name] = 1 - end - elseif e == "ADD_KEYWORD" then - print("Adding", msg) - msg = msg:lower() - WeakAurasSaved.MagusKeywords[msg] = 1 - elseif e == "LIST_KEYWORDS" then - for k,v in pairs(WeakAurasSaved.MagusKeywords) do - print(k) - end - elseif e == "REMOVE_KEYWORD" then - if WeakAurasSaved.MagusKeywords[msg] then - print("Removing", msg) - WeakAurasSaved.MagusKeywords[msg] = nil - else - print(msg, "does not exist in the keyword table") - end - end -end - ---EVERY FRAME 1 -function() - if (WeakAurasSaved.CustomTrash.swingone - GetTime()) > 0 then - return string.format("%.1f", WeakAurasSaved.CustomTrash.swingone - GetTime()) - end -end - ---EVERY FRAME 2 -function() - if (WeakAurasSaved.CustomTrash.swingtwo - GetTime()) > 0 then - return string.format("%.1f", WeakAurasSaved.CustomTrash.swingtwo - GetTime()) - end -end - ---DISPLAY -function() - if WeakAurasSaved.CustomTrash.swingRotation == 1 then - return "MH" - elseif WeakAurasSaved.CustomTrash.swingRotation == 2 then - return "OH" - end -end - ---INIT -if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end -WeakAurasSaved.CustomTrash.swingRotation = 1 -WeakAurasSaved.CustomTrash.swingone = 0 +--COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_ENABLED +--I fucked it up. +function(e, msg, sender) + if not WeakAurasSaved.MagusKeywords then WeakAurasSaved.MagusKeywords = {["tb"] = "Thunder Bluff", ["org"] = "Orgrimmar", ["uc"] = "Undercity", ["portal"] = "Portal", ["port"] = "Portal", ["water"] = "Water", ["waters"] = "Waters", ["food"] = "Food"} end + if e == "CHAT_MSG_SAY" or e == "CHAT_MSG_YELL" or e == "CHAT_MSG_WHISPER" then + if msg and aura_env.toggle == 1 then + msg = msg:lower() + local noRealmSender = sender:match("(.+)-%w+") + --print(sender, noRealmSender, UnitClass(sender), UnitClass(noRealmSender)) + if select(3, UnitClass(noRealmSender)) == 8 and not WeakAurasSaved.MagusKeywords.AntiMagusTable[noRealmSender] then + print("Adding", noRealmSender, "to the ignore") + WeakAurasSaved.MagusKeywords.AntiMagusTable[noRealmSender] = 1 + end + for k,v in pairs(WeakAurasSaved.MagusKeywords) do + if msg:match(k) then + local st, en = msg:find(k) + if not (st > 1 and msg:match(".", st - 1) ~= " ") and not (en < strlen(msg) and msg:match(".", en + 1) ~= " ") and select(3, UnitClass(noRealmSender)) ~= 8 then + if not WeakAurasSaved.MagusKeywords.AntiMagusTable[noRealmSender] then + InviteUnit(sender) + end + end + end + end + end + elseif e == "TOGGLE_MAGUS" then + if aura_env.toggle == 0 then + print("Toggling script on") + SendWho('z-"azsuna" c-"Mage"') + aura_env.toggle = 1 + else + print("Toggling script off") + aura_env.toggle = 0 + end + elseif e == "WHO_LIST_UPDATE" then + for i = 1, GetNumWhoResults() do + local name = select(1, GetWhoInfo(i)) + local class = select(5, GetWhoInfo(i)) + if class:match("Mage") then + if not WeakAurasSaved.MagusKeywords.AntiMagusTable[name] then + print("Adding", name, "to the ignore table") + WeakAurasSaved.MagusKeywords.AntiMagusTable[name] = 1 + end + end + end + FriendsFrameCloseButton:Click() + elseif e == "NAME_PLATE_UNIT_ADDED" then + local name, class = UnitName(msg), select(3, UnitClass(msg)) + local ispl = UnitIsPlayer(msg) + if class == 8 and WeakAurasSaved.MagusKeywords.AntiMagusTable[name] == nil and ispl == true then + print("Adding", name, "to the ignore table") + WeakAurasSaved.MagusKeywords.AntiMagusTable[name] = 1 + end + elseif e =="NAME_PLATE_UNIT_REMOVED" then + local name, class = UnitName(msg), select(3, UnitClass(msg)) + local ispl = UnitIsPlayer(msg) + if class == 8 and WeakAurasSaved.MagusKeywords.AntiMagusTable[name] == nil and ispl == true then + print("Adding", name, "to the ignore table") + WeakAurasSaved.MagusKeywords.AntiMagusTable[name] = 1 + end + elseif e == "ADD_KEYWORD" then + print("Adding", msg) + msg = msg:lower() + WeakAurasSaved.MagusKeywords[msg] = 1 + elseif e == "LIST_KEYWORDS" then + for k,v in pairs(WeakAurasSaved.MagusKeywords) do + print(k) + end + elseif e == "REMOVE_KEYWORD" then + if WeakAurasSaved.MagusKeywords[msg] then + print("Removing", msg) + WeakAurasSaved.MagusKeywords[msg] = nil + else + print(msg, "does not exist in the keyword table") + end + end +end + +--EVERY FRAME 1 +function() + if (WeakAurasSaved.CustomTrash.swingone - GetTime()) > 0 then + return string.format("%.1f", WeakAurasSaved.CustomTrash.swingone - GetTime()) + end +end + +--EVERY FRAME 2 +function() + if (WeakAurasSaved.CustomTrash.swingtwo - GetTime()) > 0 then + return string.format("%.1f", WeakAurasSaved.CustomTrash.swingtwo - GetTime()) + end +end + +--DISPLAY +function() + if WeakAurasSaved.CustomTrash.swingRotation == 1 then + return "MH" + elseif WeakAurasSaved.CustomTrash.swingRotation == 2 then + return "OH" + end +end + +--INIT +if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end +WeakAurasSaved.CustomTrash.swingRotation = 1 +WeakAurasSaved.CustomTrash.swingone = 0 WeakAurasSaved.CustomTrash.swingtwo = 0 \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/FO815F92E76D5 - Combat Timer.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/FO815F92E76D5 - Combat Timer.lua similarity index 98% rename from Complete Projects/Fivver Stuff/FO815F92E76D5 - Combat Timer.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/FO815F92E76D5 - Combat Timer.lua index a530264..c540235 100644 --- a/Complete Projects/Fivver Stuff/FO815F92E76D5 - Combat Timer.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/FO815F92E76D5 - Combat Timer.lua @@ -1,103 +1,103 @@ ---PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED COMBAT_TICKER_TICK COMBAT_TICKER_FALSE -function(e) - if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end - if not WeakAurasSaved.CustomTrash.CombatTimers then WeakAurasSaved.CustomTrash.CombatTimers = {}; aura_env.updateTimers() end - if e == "PLAYER_REGEN_ENABLED" then - if WeakAurasSaved.CustomTrash.CombatTimers.ticker then WeakAurasSaved.CustomTrash.CombatTimers.ticker:Cancel(); WeakAurasSaved.CustomTrash.CombatTimers.ticker = nil end - elseif e == "PLAYER_REGEN_DISABLED" then - WeakAurasSaved.CustomTrash.CombatTimers.time = 0 - WeakAuras.ScanEvents("COMBAT_TICKER_TICK") - WeakAurasSaved.CustomTrash.CombatTimers.nearestTime = {["time"] = 999, ["id"] = 0} - aura_env.nextTimer(WeakAurasSaved.CustomTrash.CombatTimers.time) - if not WeakAurasSaved.CustomTrash.CombatTimers.ticker then WeakAurasSaved.CustomTrash.CombatTimers.ticker = C_Timer.NewTicker(1, function() WeakAuras.ScanEvents("COMBAT_TICKER_TICK") end) end - elseif e == "COMBAT_TICKER_TICK" then - WeakAurasSaved.CustomTrash.CombatTimers.time = WeakAurasSaved.CustomTrash.CombatTimers.time + 1 - WeakAurasSaved.CustomTrash.CombatTimers.nearestTime.time = WeakAurasSaved.CustomTrash.CombatTimers.nearestTime.time - 1 - if WeakAurasSaved.CustomTrash.CombatTimers.timers[WeakAurasSaved.CustomTrash.CombatTimers.time] then - WeakAurasSaved.CustomTrash.CombatTimers.nearestTime = {["time"] = 999, ["id"] = 0} - aura_env.nextTimer(WeakAurasSaved.CustomTrash.CombatTimers.time) - C_Timer.After(aura_env.config.dur, function() WeakAuras.ScanEvents("COMBAT_TICKER_FALSE") end) - return true - end - end -end - ---UNTRIGGER -function(e) - if e == "COMBAT_TICKER_FALSE" then - return true - end -end - ---Aura #2 ---COMBAT_TICKER_TICK -function(e) - return true -end - ---DISPLAY -function() - local temps = { - [1] = {["m"] = 0, ["s"] = 0, ["res"] = WeakAurasSaved.CustomTrash.CombatTimers.time}, - [2] = {["m"] = 0, ["s"] = 0, ["res"] = WeakAurasSaved.CustomTrash.CombatTimers.nearestTime.time}, - [3] = {["m"] = 0, ["s"] = 0, ["res"] = WeakAurasSaved.CustomTrash.CombatTimers.nearestTime.id}, - } - - for k,v in ipairs(temps) do - while v.res >= 60 do - v.m = v.m + 1 - v.res = v.res - 60 - end - v.s = v.res - if v.s < 10 then - v.s = string.format("0%d", v.s) - end - if type(v.s) ~= "string" then tostring(v.s) end - end - - return string.format("%d:%s\n%d:%s (%d:%s)", temps[1].m, temps[1].s, temps[2].m, temps[2].s, temps[3].m, temps[3].s) -end - ---INIT -if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end -if not WeakAurasSaved.CustomTrash.CombatTimers then WeakAurasSaved.CustomTrash.CombatTimers = {} end - -WeakAurasSaved.CustomTrash.CombatTimers.nearestTime = {["time"] = 999, ["id"] = 0} -WeakAurasSaved.CustomTrash.CombatTimers.time = 0 - -aura_env.updateTimers = function() - WeakAurasSaved.CustomTrash.CombatTimers.timers = {} - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m1 or 0) * 60) + (aura_env.config.s1 or 0)] = 1 - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m2 or 0) * 60) + (aura_env.config.s2 or 0)] = 1 - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m3 or 0) * 60) + (aura_env.config.s3 or 0)] = 1 - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m4 or 0) * 60) + (aura_env.config.s4 or 0)] = 1 - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m5 or 0) * 60) + (aura_env.config.s5 or 0)] = 1 - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m6 or 0) * 60) + (aura_env.config.s6 or 0)] = 1 - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m7 or 0) * 60) + (aura_env.config.s7 or 0)] = 1 - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m8 or 0) * 60) + (aura_env.config.s8 or 0)] = 1 - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m9 or 0) * 60) + (aura_env.config.s9 or 0)] = 1 - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m10 or 0) * 60) + (aura_env.config.s10 or 0)] = 1 - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m11 or 0) * 60) + (aura_env.config.s11 or 0)] = 1 - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m12 or 0) * 60) + (aura_env.config.s12 or 0)] = 1 - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m13 or 0) * 60) + (aura_env.config.s13 or 0)] = 1 - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m14 or 0) * 60) + (aura_env.config.s14 or 0)] = 1 - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m15 or 0) * 60) + (aura_env.config.s15 or 0)] = 1 - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m16 or 0) * 60) + (aura_env.config.s16 or 0)] = 1 - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m17 or 0) * 60) + (aura_env.config.s17 or 0)] = 1 - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m18 or 0) * 60) + (aura_env.config.s18 or 0)] = 1 - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m19 or 0) * 60) + (aura_env.config.s19 or 0)] = 1 - WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m20 or 0) * 60) + (aura_env.config.s20 or 0)] = 1 -end - -aura_env.updateTimers() - -aura_env.nextTimer = function(time) - for k,v in pairs(WeakAurasSaved.CustomTrash.CombatTimers.timers) do - local dtime = k - time - if dtime < WeakAurasSaved.CustomTrash.CombatTimers.nearestTime.time and dtime > 0 then - WeakAurasSaved.CustomTrash.CombatTimers.nearestTime.time = dtime - WeakAurasSaved.CustomTrash.CombatTimers.nearestTime.id = k - end - end - return 0 +--PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED COMBAT_TICKER_TICK COMBAT_TICKER_FALSE +function(e) + if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end + if not WeakAurasSaved.CustomTrash.CombatTimers then WeakAurasSaved.CustomTrash.CombatTimers = {}; aura_env.updateTimers() end + if e == "PLAYER_REGEN_ENABLED" then + if WeakAurasSaved.CustomTrash.CombatTimers.ticker then WeakAurasSaved.CustomTrash.CombatTimers.ticker:Cancel(); WeakAurasSaved.CustomTrash.CombatTimers.ticker = nil end + elseif e == "PLAYER_REGEN_DISABLED" then + WeakAurasSaved.CustomTrash.CombatTimers.time = 0 + WeakAuras.ScanEvents("COMBAT_TICKER_TICK") + WeakAurasSaved.CustomTrash.CombatTimers.nearestTime = {["time"] = 999, ["id"] = 0} + aura_env.nextTimer(WeakAurasSaved.CustomTrash.CombatTimers.time) + if not WeakAurasSaved.CustomTrash.CombatTimers.ticker then WeakAurasSaved.CustomTrash.CombatTimers.ticker = C_Timer.NewTicker(1, function() WeakAuras.ScanEvents("COMBAT_TICKER_TICK") end) end + elseif e == "COMBAT_TICKER_TICK" then + WeakAurasSaved.CustomTrash.CombatTimers.time = WeakAurasSaved.CustomTrash.CombatTimers.time + 1 + WeakAurasSaved.CustomTrash.CombatTimers.nearestTime.time = WeakAurasSaved.CustomTrash.CombatTimers.nearestTime.time - 1 + if WeakAurasSaved.CustomTrash.CombatTimers.timers[WeakAurasSaved.CustomTrash.CombatTimers.time] then + WeakAurasSaved.CustomTrash.CombatTimers.nearestTime = {["time"] = 999, ["id"] = 0} + aura_env.nextTimer(WeakAurasSaved.CustomTrash.CombatTimers.time) + C_Timer.After(aura_env.config.dur, function() WeakAuras.ScanEvents("COMBAT_TICKER_FALSE") end) + return true + end + end +end + +--UNTRIGGER +function(e) + if e == "COMBAT_TICKER_FALSE" then + return true + end +end + +--Aura #2 +--COMBAT_TICKER_TICK +function(e) + return true +end + +--DISPLAY +function() + local temps = { + [1] = {["m"] = 0, ["s"] = 0, ["res"] = WeakAurasSaved.CustomTrash.CombatTimers.time}, + [2] = {["m"] = 0, ["s"] = 0, ["res"] = WeakAurasSaved.CustomTrash.CombatTimers.nearestTime.time}, + [3] = {["m"] = 0, ["s"] = 0, ["res"] = WeakAurasSaved.CustomTrash.CombatTimers.nearestTime.id}, + } + + for k,v in ipairs(temps) do + while v.res >= 60 do + v.m = v.m + 1 + v.res = v.res - 60 + end + v.s = v.res + if v.s < 10 then + v.s = string.format("0%d", v.s) + end + if type(v.s) ~= "string" then tostring(v.s) end + end + + return string.format("%d:%s\n%d:%s (%d:%s)", temps[1].m, temps[1].s, temps[2].m, temps[2].s, temps[3].m, temps[3].s) +end + +--INIT +if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end +if not WeakAurasSaved.CustomTrash.CombatTimers then WeakAurasSaved.CustomTrash.CombatTimers = {} end + +WeakAurasSaved.CustomTrash.CombatTimers.nearestTime = {["time"] = 999, ["id"] = 0} +WeakAurasSaved.CustomTrash.CombatTimers.time = 0 + +aura_env.updateTimers = function() + WeakAurasSaved.CustomTrash.CombatTimers.timers = {} + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m1 or 0) * 60) + (aura_env.config.s1 or 0)] = 1 + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m2 or 0) * 60) + (aura_env.config.s2 or 0)] = 1 + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m3 or 0) * 60) + (aura_env.config.s3 or 0)] = 1 + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m4 or 0) * 60) + (aura_env.config.s4 or 0)] = 1 + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m5 or 0) * 60) + (aura_env.config.s5 or 0)] = 1 + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m6 or 0) * 60) + (aura_env.config.s6 or 0)] = 1 + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m7 or 0) * 60) + (aura_env.config.s7 or 0)] = 1 + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m8 or 0) * 60) + (aura_env.config.s8 or 0)] = 1 + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m9 or 0) * 60) + (aura_env.config.s9 or 0)] = 1 + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m10 or 0) * 60) + (aura_env.config.s10 or 0)] = 1 + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m11 or 0) * 60) + (aura_env.config.s11 or 0)] = 1 + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m12 or 0) * 60) + (aura_env.config.s12 or 0)] = 1 + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m13 or 0) * 60) + (aura_env.config.s13 or 0)] = 1 + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m14 or 0) * 60) + (aura_env.config.s14 or 0)] = 1 + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m15 or 0) * 60) + (aura_env.config.s15 or 0)] = 1 + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m16 or 0) * 60) + (aura_env.config.s16 or 0)] = 1 + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m17 or 0) * 60) + (aura_env.config.s17 or 0)] = 1 + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m18 or 0) * 60) + (aura_env.config.s18 or 0)] = 1 + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m19 or 0) * 60) + (aura_env.config.s19 or 0)] = 1 + WeakAurasSaved.CustomTrash.CombatTimers.timers[((aura_env.config.m20 or 0) * 60) + (aura_env.config.s20 or 0)] = 1 +end + +aura_env.updateTimers() + +aura_env.nextTimer = function(time) + for k,v in pairs(WeakAurasSaved.CustomTrash.CombatTimers.timers) do + local dtime = k - time + if dtime < WeakAurasSaved.CustomTrash.CombatTimers.nearestTime.time and dtime > 0 then + WeakAurasSaved.CustomTrash.CombatTimers.nearestTime.time = dtime + WeakAurasSaved.CustomTrash.CombatTimers.nearestTime.id = k + end + end + return 0 end \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/Fiverr - Conductive Ink.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/Fiverr - Conductive Ink.lua similarity index 97% rename from Complete Projects/Fivver Stuff/Fiverr - Conductive Ink.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/Fiverr - Conductive Ink.lua index e635e25..07c7f4a 100644 --- a/Complete Projects/Fivver Stuff/Fiverr - Conductive Ink.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/Fiverr - Conductive Ink.lua @@ -1,65 +1,65 @@ ---CLEU -function(e, ...) - local se = select(2, ...) - if se == "SPELL_AURA_APPLIED_DOSE" or e == "PLAYER_TARGET_CHANGED" then - aura_env.owndebuff = {["stacks"] = 0, ["damage"] = 0,} - aura_env.totaldebuff = {["stacks"] = 0, ["damage"] = 0,} - for i = 1, 40 do - local name = UnitDebuff("target", i) - if name == "Conductive Ink" then - aura_env.totaldebuff.stacks = aura_env.totaldebuff.stacks + select(3, UnitDebuff("target", i)) - aura_env.totaldebuff.damage = aura_env.totaldebuff.stacks * aura_env.config.mediandamage - end - end - for i = 1, 40 do - local name = UnitDebuff("target", i, PLAYER) - if name == "Conductive Ink" then - aura_env.owndebuff.stacks = select(3, UnitDebuff("target", i, PLAYER)) - aura_env.owndebuff.damage = aura_env.owndebuff.stacks * aura_env.config.mediandamage - break - end - end - return true - end -end - ---DISPLAY -function() - if aura_env.config.sh == true then aura_env.owndebuff.damage = aura_env.shorten(aura_env.owndebuff.damage); aura_env.totaldebuff.damage = aura_env.shorten(aura_env.totaldebuff.damage) end - aura_env.region.text2:SetText(aura_env.owndebuff.stacks .. "\n" .. aura_env.owndebuff.damage .. "\n" .. aura_env.totaldebuff.stacks .. "\n" .. aura_env.totaldebuff.damage) - return "Player stacks\nPlayer damage\nTotal stacks\nTotal damage" -end - ---INIT -aura_env.owndebuff = {["stacks"] = 0, ["damage"] = 0,} -aura_env.totaldebuff = {["stacks"] = 0, ["damage"] = 0,} -if not aura_env.region.text2 then - local text2 = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.text2 = text2 -end -local font, size, flags = aura_env.region.text:GetFont() -aura_env.region.text2:SetFont(font, size, flags) -aura_env.region.text2:SetTextColor(aura_env.config.color[1], aura_env.config.color[2], aura_env.config.color[3], aura_env.config.color[4]) -aura_env.region.text2:SetPoint("CENTER", aura_env.region, "CENTER", aura_env.config.x, 0) -aura_env.region.text2:SetText("") -aura_env.region.text2:Show() -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 +--CLEU +function(e, ...) + local se = select(2, ...) + if se == "SPELL_AURA_APPLIED_DOSE" or e == "PLAYER_TARGET_CHANGED" then + aura_env.owndebuff = {["stacks"] = 0, ["damage"] = 0,} + aura_env.totaldebuff = {["stacks"] = 0, ["damage"] = 0,} + for i = 1, 40 do + local name = UnitDebuff("target", i) + if name == "Conductive Ink" then + aura_env.totaldebuff.stacks = aura_env.totaldebuff.stacks + select(3, UnitDebuff("target", i)) + aura_env.totaldebuff.damage = aura_env.totaldebuff.stacks * aura_env.config.mediandamage + end + end + for i = 1, 40 do + local name = UnitDebuff("target", i, PLAYER) + if name == "Conductive Ink" then + aura_env.owndebuff.stacks = select(3, UnitDebuff("target", i, PLAYER)) + aura_env.owndebuff.damage = aura_env.owndebuff.stacks * aura_env.config.mediandamage + break + end + end + return true + end +end + +--DISPLAY +function() + if aura_env.config.sh == true then aura_env.owndebuff.damage = aura_env.shorten(aura_env.owndebuff.damage); aura_env.totaldebuff.damage = aura_env.shorten(aura_env.totaldebuff.damage) end + aura_env.region.text2:SetText(aura_env.owndebuff.stacks .. "\n" .. aura_env.owndebuff.damage .. "\n" .. aura_env.totaldebuff.stacks .. "\n" .. aura_env.totaldebuff.damage) + return "Player stacks\nPlayer damage\nTotal stacks\nTotal damage" +end + +--INIT +aura_env.owndebuff = {["stacks"] = 0, ["damage"] = 0,} +aura_env.totaldebuff = {["stacks"] = 0, ["damage"] = 0,} +if not aura_env.region.text2 then + local text2 = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.text2 = text2 +end +local font, size, flags = aura_env.region.text:GetFont() +aura_env.region.text2:SetFont(font, size, flags) +aura_env.region.text2:SetTextColor(aura_env.config.color[1], aura_env.config.color[2], aura_env.config.color[3], aura_env.config.color[4]) +aura_env.region.text2:SetPoint("CENTER", aura_env.region, "CENTER", aura_env.config.x, 0) +aura_env.region.text2:SetText("") +aura_env.region.text2:Show() +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 end \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/Fiverr - Conductive Ink2.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/Fiverr - Conductive Ink2.lua similarity index 97% rename from Complete Projects/Fivver Stuff/Fiverr - Conductive Ink2.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/Fiverr - Conductive Ink2.lua index 1ef3700..3c9a609 100644 --- a/Complete Projects/Fivver Stuff/Fiverr - Conductive Ink2.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/Fiverr - Conductive Ink2.lua @@ -1,290 +1,290 @@ ---CLEU PLAYER_TARGET_CHANGED PLAYER_FOCUS_CHANGED -function(e, ...) - if aura_env.config.tsuenable == false then - local se = select(2, ...) - if se == "SPELL_AURA_APPLIED_DOSE" or e == "PLAYER_TARGET_CHANGED" then - aura_env.owndebuff = {["stacks"] = 0, ["damage"] = 0,} - aura_env.totaldebuff = {["stacks"] = 0, ["damage"] = 0,} - aura_env.damagepercentage = 0 - local unit = "target" - if aura_env.config.tar == 2 then unit = "focus" elseif aura_env.config.tar == 3 then unit = "Boss1" end - local bossmax = UnitHealthMax(unit) - if aura_env.config.pdmg == true then - for i = 1, 200 do - local name = UnitDebuff(unit, i) - if name == "Conductive Ink" then - local caster = select(7, UnitDebuff(unit, i)) - local stacks = select(3, UnitDebuff(unit, i)) - aura_env.totaldebuff.stacks = aura_env.totaldebuff.stacks + stacks - aura_env.myTooltip:SetUnitDebuff(unit, i) - local text = _G["MyAddOnTooltipTextLeft2"]:GetText() - if text:match("Falling below %d*%% health will cause") then - local damage = text:match("inflict (%d+%,?%d*)") - damage = damage:gsub("%,", "") - damage = damage:gsub(" ", "") - damage = tonumber(damage) - aura_env.totaldebuff.damage = aura_env.totaldebuff.damage + damage - if caster == "player" then aura_env.owndebuff.damage = damage; aura_env.owndebuff.stacks = stacks end - end - elseif not name then break end - end - else - for i = 1, 200 do - local name = UnitDebuff(unit, i) - if name == "Conductive Ink" then - aura_env.totaldebuff.stacks = aura_env.totaldebuff.stacks + select(3, UnitDebuff(unit, i)) - aura_env.myTooltip:SetUnitDebuff(unit, i) - local text = _G["MyAddOnTooltipTextLeft2"]:GetText() - if text:match("Falling below %d*%% health will cause") then - aura_env.totaldebuff.damage = text:match("inflict (%d+%,?%d*)") - aura_env.totaldebuff.damage = aura_env.totaldebuff.damage:gsub("%,", "") - aura_env.totaldebuff.damage = aura_env.totaldebuff.damage:gsub(" ", "") - aura_env.totaldebuff.damage = tonumber(aura_env.totaldebuff.damage) - end - break - elseif not name then break end - end - end - aura_env.damagepercentage = aura_env.round(((aura_env.totaldebuff.damage / bossmax) * 100), 2) - return true - end - end -end - ---TSU ---CLEU PLAYER_TARGET_CHANGED -function(allstates, e, ...) - if aura_env.config.tsuenable == true then - local unit = "target" - if aura_env.config.tar == 2 then unit = "focus" elseif aura_env.config.tar == 3 then unit = "Boss1" end - if UnitExists(unit) then - local hp, maxhp = UnitHealth(unit), UnitHealthMax(unit) - local pp = hp / maxhp - if pp > 0.3 then - local totaldamage, totalstacks = 0, 0 - local maxdamage, maxstacks = {["d"] = 0, ["c"] = ""}, {["s"] = 0, ["c"] = ""} - local datatable = {} - aura_env.damagepercentage = 0 - local se = select(2, ...) - if se == "SPELL_AURA_APPLIED_DOSE" or e == "PLAYER_TARGET_CHANGED" or e == "PLAYER_FOCUS_CHANGED" then - for i = 1, #allstates do - allstates[i].sub30 = false - if i > 1 then - allstates[i] = {["show"] = false, ["changed"] = true} - end - end - for i = 1, 200 do - local name = UnitDebuff(unit, i) - if name == "Conductive Ink" then - local caster = select(7, UnitDebuff(unit, i)) - local stacks = select(3, UnitDebuff(unit, i)) - aura_env.totaldebuff.stacks = aura_env.totaldebuff.stacks + stacks - aura_env.myTooltip:SetUnitDebuff(unit, i) - local text = _G["MyAddOnTooltipTextLeft2"]:GetText() - if text:match("Falling below %d*%% health will cause") then - local damage = text:match("inflict (%d+%,?%d*)") - damage = damage:gsub("%,", "") - damage = damage:gsub(" ", "") - damage = tonumber(damage) - --local damage = i * 23412 - datatable[caster] = {["damage"] = damage, ["stacks"] = stacks, ["name"] = UnitName(caster), ["class"] = select(3, UnitClass(caster))} --UnitName(caster) UnitClass(caster) - if damage > maxdamage.d then maxdamage.d = damage; maxdamage.c = caster; maxstacks.s = stacks; maxstacks.c = caster end - totaldamage = totaldamage + damage; totalstacks = totalstacks + stacks - end - elseif not name then break end - end - local allstatesindex = 2 - for k,v in pairs(datatable) do - allstates[allstatesindex] = - { - show = true, - changed = true, - progressType = "static", - caster = v.name, - class = v.class, - stacks = v.stacks, - damage = v.damage, - } - if aura_env.config.sort == 1 then - allstates[allstatesindex].resort = true - allstates[allstatesindex].index = v.damage --/ totaldamage - allstates[allstatesindex].value = v.damage --/ totaldamage - allstates[allstatesindex].total = maxdamage.d - elseif aura_env.config.sort == 2 then - allstates[allstatesindex].resort = true - allstates[allstatesindex].index = v.stacks - allstates[allstatesindex].value = v.stacks - allstates[allstatesindex].total = totalstacks - end - allstatesindex = allstatesindex + 1 - end - dmgper = aura_env.round(((totaldamage / maxhp) * 100), 2) - allstates[1] = - { - show = true, - changed = true, - progressType = "static", - caster = "Total", - stacks = totalstacks, - damage = totaldamage, - resort = true, - percent = dmgper, - index = maxdamage.d + 1, - value = maxdamage.d + 1, - total = maxdamage.d + 1, - } - if totalstacks == 0 then totalstacks = 1 end - if aura_env.config.sort == 2 then allstates[1].index = totalstacks + 1 end - end - return true - else - for i = 1, #allstates do - if allstates[i] then - allstates[i].show = true - allstates[i].changed = true - allstates[i].sub30 = true - end - end - allstates[1].percent = "<30" - allstates[1].class = 15 - return true - end - else - for i = 1, #allstates do - if allstates[i].sub30 == false or not allstates[i].sub30 then - allstates[i] = {["show"] = false, ["changed"] = true} - end - end - return true - end - end -end - ---CUSTOM TRIGGER -function(t) - if aura_env.config.tsuenable == false then return t[1] and t[2] elseif aura_env.config.tsuenable == true then return t[3] and t[2] end -end - ---COLOR ANIMATION -function() - if aura_env.statee then - return aura_env.classColor(aura_env.statee.class) - end -end - ---DISPLAY -function() - if aura_env.config.tsuenable == false then - if aura_env.config.pdmg == true then - if aura_env.config.sh == true then aura_env.owndebuff.damage = aura_env.shorten(aura_env.owndebuff.damage); aura_env.totaldebuff.damage = aura_env.shorten(aura_env.totaldebuff.damage) end - aura_env.region.text2:SetText(aura_env.owndebuff.stacks .. "\n" .. aura_env.owndebuff.damage .. "\n" .. aura_env.totaldebuff.stacks .. "\n" .. aura_env.totaldebuff.damage .. "\n" .. aura_env.damagepercentage .. "%") - if aura_env.config.stext == true then aura_env.region.text3:SetText("Player stacks\nPlayer damage\nTotal stacks\nTotal damage\nDamage in %") else aura_env.region.text3:SetText("") end - else - if aura_env.config.sh == true then aura_env.totaldebuff.damage = aura_env.shorten(aura_env.totaldebuff.damage) end - aura_env.region.text2:SetText(aura_env.totaldebuff.stacks .. "\n" .. aura_env.totaldebuff.damage .. "\n" .. aura_env.damagepercentage .. "%") - if aura_env.config.stext == true then aura_env.region.text3:SetText("Total stacks\nTotal damage\nDamage in %") else aura_env.region.text3:SetText("") end - end - else - if aura_env.statee.caster == "Total" then - return aura_env.shorten(aura_env.statee.damage) .. " - " .. aura_env.statee.stacks .. " - " .. aura_env.statee.percent .. "%" - else - return aura_env.shorten(aura_env.statee.damage) .. " - " .. aura_env.statee.stacks - end - end -end - ---INIT -aura_env.myTooltip = CreateFrame("GameTooltip", "MyAddOnTooltip", UIParent, "GameTooltipTemplate") -aura_env.myTooltip:SetOwner(UIParent, "ANCHOR_NONE") -aura_env.owndebuff = {["stacks"] = 0, ["damage"] = 0,} -aura_env.totaldebuff = {["stacks"] = 0, ["damage"] = 0,} - -if aura_env.config.tsuenable == false then - if not aura_env.region.text2 then - local text2 = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.text2 = text2 - end - local font, size, flags = aura_env.region.text:GetFont() - aura_env.region.text2:SetFont(font, size, flags) - aura_env.region.text2:SetTextColor(aura_env.config.color[1], aura_env.config.color[2], aura_env.config.color[3], aura_env.config.color[4]) - aura_env.region.text2:SetPoint("CENTER", aura_env.region, "CENTER", aura_env.config.x, 0) - aura_env.region.text2:SetText("") - aura_env.region.text2:Show() - - if not aura_env.region.text3 then - local text3 = aura_env.region:CreateFontString(nil, aura_env.region) - aura_env.region.text3 = text3 - end - local font, size, flags = aura_env.region.text:GetFont() - aura_env.region.text3:SetFont(font, size, flags) - aura_env.region.text3:SetTextColor(aura_env.config.color[1], aura_env.config.color[2], aura_env.config.color[3], aura_env.config.color[4]) - aura_env.region.text3:SetPoint("CENTER", aura_env.region, "CENTER", - aura_env.config.x, 0) - aura_env.region.text3:SetText("") - aura_env.region.text3:Show() - aura_env.region.bar:Hide() -end - -if aura_env.config.tsuenable == true and aura_env.region.text2 then aura_env.region.text2:Hide() end -if aura_env.config.tsuenable == true and aura_env.region.text3 then aura_env.region.text3:Hide() end -if aura_env.config.tsuenable == true and aura_env.region.bar then aura_env.region.bar:Show() end - -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 -end -aura_env.round = function(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 -aura_env.classColor = function(class) - if class == 1 then return 0.78, 0.61, 0.43 - elseif class == 2 then return 0.96, 0.55, 0.73 - elseif class == 3 then return 0.67, 0.83, 0.45 - elseif class == 4 then return 1, 0.96, 0.41, 1 - elseif class == 5 then return 1, 1, 1 - elseif class == 6 then return 0.77, 0.12, 0.23 - elseif class == 7 then return 0, 0.44, 0.87 - elseif class == 8 then return 0.25, 0.78, 0.92 - elseif class == 9 then return 0.53, 0.53, 0.93 - elseif class == 10 then return 0, 1, 0.59 - elseif class == 11 then return 1, 0.49, 0.04 - elseif class == 12 then return 0.64, 0.19, 0.79 - elseif class == 15 then return 0, 1, 0 - else return 1, 1, 1 end -end ---TESTING ---Conductive Ink 1500960 1 Magic 120 119774.845 player false false 302565 false false true false 1 -aura_env.UnitDebuffC = function(unit, i) - if i == 1 then return "Conductive Ink", 1500960, 1, 2, 120, 119774.845, "Pinko" - elseif i == 1 then return "Conductive Ink", 1500960, 3, 4, 120, 119774.845, "Billy" - elseif i == 2 then return "Conductive Ink", 1500960, 7, 7, 120, 119774.845, "Mary" - elseif i == 3 then return "Conductive Ink", 1500960, 35, 11, 120, 119774.845, "Anna" - elseif i == 4 then return "Conductive Ink", 1500960, 8, 6, 120, 119774.845, "John" - elseif i == 5 then return "Conductive Ink", 1500960, 72, 2, 120, 119774.845, "Frank" - elseif i == 6 then return "Conductive Ink", 1500960, 25, 7, 120, 119774.845, "Emma" - elseif i == 7 then return "Conductive Ink", 1500960, 45, 8, 120, 119774.845, "Sophia" - elseif i == 8 then return "Conductive Ink", 1500960, 37, 5, 120, 119774.845, "Henry" - elseif i == 9 then return "Conductive Ink", 1500960, 4, 3, 120, 119774.845, "Ethan" - elseif i == 10 then return "Conductive Ink", 1500960, 1, 1, 120, 119774.845, "Michael" - end +--CLEU PLAYER_TARGET_CHANGED PLAYER_FOCUS_CHANGED +function(e, ...) + if aura_env.config.tsuenable == false then + local se = select(2, ...) + if se == "SPELL_AURA_APPLIED_DOSE" or e == "PLAYER_TARGET_CHANGED" then + aura_env.owndebuff = {["stacks"] = 0, ["damage"] = 0,} + aura_env.totaldebuff = {["stacks"] = 0, ["damage"] = 0,} + aura_env.damagepercentage = 0 + local unit = "target" + if aura_env.config.tar == 2 then unit = "focus" elseif aura_env.config.tar == 3 then unit = "Boss1" end + local bossmax = UnitHealthMax(unit) + if aura_env.config.pdmg == true then + for i = 1, 200 do + local name = UnitDebuff(unit, i) + if name == "Conductive Ink" then + local caster = select(7, UnitDebuff(unit, i)) + local stacks = select(3, UnitDebuff(unit, i)) + aura_env.totaldebuff.stacks = aura_env.totaldebuff.stacks + stacks + aura_env.myTooltip:SetUnitDebuff(unit, i) + local text = _G["MyAddOnTooltipTextLeft2"]:GetText() + if text:match("Falling below %d*%% health will cause") then + local damage = text:match("inflict (%d+%,?%d*)") + damage = damage:gsub("%,", "") + damage = damage:gsub(" ", "") + damage = tonumber(damage) + aura_env.totaldebuff.damage = aura_env.totaldebuff.damage + damage + if caster == "player" then aura_env.owndebuff.damage = damage; aura_env.owndebuff.stacks = stacks end + end + elseif not name then break end + end + else + for i = 1, 200 do + local name = UnitDebuff(unit, i) + if name == "Conductive Ink" then + aura_env.totaldebuff.stacks = aura_env.totaldebuff.stacks + select(3, UnitDebuff(unit, i)) + aura_env.myTooltip:SetUnitDebuff(unit, i) + local text = _G["MyAddOnTooltipTextLeft2"]:GetText() + if text:match("Falling below %d*%% health will cause") then + aura_env.totaldebuff.damage = text:match("inflict (%d+%,?%d*)") + aura_env.totaldebuff.damage = aura_env.totaldebuff.damage:gsub("%,", "") + aura_env.totaldebuff.damage = aura_env.totaldebuff.damage:gsub(" ", "") + aura_env.totaldebuff.damage = tonumber(aura_env.totaldebuff.damage) + end + break + elseif not name then break end + end + end + aura_env.damagepercentage = aura_env.round(((aura_env.totaldebuff.damage / bossmax) * 100), 2) + return true + end + end +end + +--TSU +--CLEU PLAYER_TARGET_CHANGED +function(allstates, e, ...) + if aura_env.config.tsuenable == true then + local unit = "target" + if aura_env.config.tar == 2 then unit = "focus" elseif aura_env.config.tar == 3 then unit = "Boss1" end + if UnitExists(unit) then + local hp, maxhp = UnitHealth(unit), UnitHealthMax(unit) + local pp = hp / maxhp + if pp > 0.3 then + local totaldamage, totalstacks = 0, 0 + local maxdamage, maxstacks = {["d"] = 0, ["c"] = ""}, {["s"] = 0, ["c"] = ""} + local datatable = {} + aura_env.damagepercentage = 0 + local se = select(2, ...) + if se == "SPELL_AURA_APPLIED_DOSE" or e == "PLAYER_TARGET_CHANGED" or e == "PLAYER_FOCUS_CHANGED" then + for i = 1, #allstates do + allstates[i].sub30 = false + if i > 1 then + allstates[i] = {["show"] = false, ["changed"] = true} + end + end + for i = 1, 200 do + local name = UnitDebuff(unit, i) + if name == "Conductive Ink" then + local caster = select(7, UnitDebuff(unit, i)) + local stacks = select(3, UnitDebuff(unit, i)) + aura_env.totaldebuff.stacks = aura_env.totaldebuff.stacks + stacks + aura_env.myTooltip:SetUnitDebuff(unit, i) + local text = _G["MyAddOnTooltipTextLeft2"]:GetText() + if text:match("Falling below %d*%% health will cause") then + local damage = text:match("inflict (%d+%,?%d*)") + damage = damage:gsub("%,", "") + damage = damage:gsub(" ", "") + damage = tonumber(damage) + --local damage = i * 23412 + datatable[caster] = {["damage"] = damage, ["stacks"] = stacks, ["name"] = UnitName(caster), ["class"] = select(3, UnitClass(caster))} --UnitName(caster) UnitClass(caster) + if damage > maxdamage.d then maxdamage.d = damage; maxdamage.c = caster; maxstacks.s = stacks; maxstacks.c = caster end + totaldamage = totaldamage + damage; totalstacks = totalstacks + stacks + end + elseif not name then break end + end + local allstatesindex = 2 + for k,v in pairs(datatable) do + allstates[allstatesindex] = + { + show = true, + changed = true, + progressType = "static", + caster = v.name, + class = v.class, + stacks = v.stacks, + damage = v.damage, + } + if aura_env.config.sort == 1 then + allstates[allstatesindex].resort = true + allstates[allstatesindex].index = v.damage --/ totaldamage + allstates[allstatesindex].value = v.damage --/ totaldamage + allstates[allstatesindex].total = maxdamage.d + elseif aura_env.config.sort == 2 then + allstates[allstatesindex].resort = true + allstates[allstatesindex].index = v.stacks + allstates[allstatesindex].value = v.stacks + allstates[allstatesindex].total = totalstacks + end + allstatesindex = allstatesindex + 1 + end + dmgper = aura_env.round(((totaldamage / maxhp) * 100), 2) + allstates[1] = + { + show = true, + changed = true, + progressType = "static", + caster = "Total", + stacks = totalstacks, + damage = totaldamage, + resort = true, + percent = dmgper, + index = maxdamage.d + 1, + value = maxdamage.d + 1, + total = maxdamage.d + 1, + } + if totalstacks == 0 then totalstacks = 1 end + if aura_env.config.sort == 2 then allstates[1].index = totalstacks + 1 end + end + return true + else + for i = 1, #allstates do + if allstates[i] then + allstates[i].show = true + allstates[i].changed = true + allstates[i].sub30 = true + end + end + allstates[1].percent = "<30" + allstates[1].class = 15 + return true + end + else + for i = 1, #allstates do + if allstates[i].sub30 == false or not allstates[i].sub30 then + allstates[i] = {["show"] = false, ["changed"] = true} + end + end + return true + end + end +end + +--CUSTOM TRIGGER +function(t) + if aura_env.config.tsuenable == false then return t[1] and t[2] elseif aura_env.config.tsuenable == true then return t[3] and t[2] end +end + +--COLOR ANIMATION +function() + if aura_env.statee then + return aura_env.classColor(aura_env.statee.class) + end +end + +--DISPLAY +function() + if aura_env.config.tsuenable == false then + if aura_env.config.pdmg == true then + if aura_env.config.sh == true then aura_env.owndebuff.damage = aura_env.shorten(aura_env.owndebuff.damage); aura_env.totaldebuff.damage = aura_env.shorten(aura_env.totaldebuff.damage) end + aura_env.region.text2:SetText(aura_env.owndebuff.stacks .. "\n" .. aura_env.owndebuff.damage .. "\n" .. aura_env.totaldebuff.stacks .. "\n" .. aura_env.totaldebuff.damage .. "\n" .. aura_env.damagepercentage .. "%") + if aura_env.config.stext == true then aura_env.region.text3:SetText("Player stacks\nPlayer damage\nTotal stacks\nTotal damage\nDamage in %") else aura_env.region.text3:SetText("") end + else + if aura_env.config.sh == true then aura_env.totaldebuff.damage = aura_env.shorten(aura_env.totaldebuff.damage) end + aura_env.region.text2:SetText(aura_env.totaldebuff.stacks .. "\n" .. aura_env.totaldebuff.damage .. "\n" .. aura_env.damagepercentage .. "%") + if aura_env.config.stext == true then aura_env.region.text3:SetText("Total stacks\nTotal damage\nDamage in %") else aura_env.region.text3:SetText("") end + end + else + if aura_env.statee.caster == "Total" then + return aura_env.shorten(aura_env.statee.damage) .. " - " .. aura_env.statee.stacks .. " - " .. aura_env.statee.percent .. "%" + else + return aura_env.shorten(aura_env.statee.damage) .. " - " .. aura_env.statee.stacks + end + end +end + +--INIT +aura_env.myTooltip = CreateFrame("GameTooltip", "MyAddOnTooltip", UIParent, "GameTooltipTemplate") +aura_env.myTooltip:SetOwner(UIParent, "ANCHOR_NONE") +aura_env.owndebuff = {["stacks"] = 0, ["damage"] = 0,} +aura_env.totaldebuff = {["stacks"] = 0, ["damage"] = 0,} + +if aura_env.config.tsuenable == false then + if not aura_env.region.text2 then + local text2 = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.text2 = text2 + end + local font, size, flags = aura_env.region.text:GetFont() + aura_env.region.text2:SetFont(font, size, flags) + aura_env.region.text2:SetTextColor(aura_env.config.color[1], aura_env.config.color[2], aura_env.config.color[3], aura_env.config.color[4]) + aura_env.region.text2:SetPoint("CENTER", aura_env.region, "CENTER", aura_env.config.x, 0) + aura_env.region.text2:SetText("") + aura_env.region.text2:Show() + + if not aura_env.region.text3 then + local text3 = aura_env.region:CreateFontString(nil, aura_env.region) + aura_env.region.text3 = text3 + end + local font, size, flags = aura_env.region.text:GetFont() + aura_env.region.text3:SetFont(font, size, flags) + aura_env.region.text3:SetTextColor(aura_env.config.color[1], aura_env.config.color[2], aura_env.config.color[3], aura_env.config.color[4]) + aura_env.region.text3:SetPoint("CENTER", aura_env.region, "CENTER", - aura_env.config.x, 0) + aura_env.region.text3:SetText("") + aura_env.region.text3:Show() + aura_env.region.bar:Hide() +end + +if aura_env.config.tsuenable == true and aura_env.region.text2 then aura_env.region.text2:Hide() end +if aura_env.config.tsuenable == true and aura_env.region.text3 then aura_env.region.text3:Hide() end +if aura_env.config.tsuenable == true and aura_env.region.bar then aura_env.region.bar:Show() end + +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 +end +aura_env.round = function(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 +aura_env.classColor = function(class) + if class == 1 then return 0.78, 0.61, 0.43 + elseif class == 2 then return 0.96, 0.55, 0.73 + elseif class == 3 then return 0.67, 0.83, 0.45 + elseif class == 4 then return 1, 0.96, 0.41, 1 + elseif class == 5 then return 1, 1, 1 + elseif class == 6 then return 0.77, 0.12, 0.23 + elseif class == 7 then return 0, 0.44, 0.87 + elseif class == 8 then return 0.25, 0.78, 0.92 + elseif class == 9 then return 0.53, 0.53, 0.93 + elseif class == 10 then return 0, 1, 0.59 + elseif class == 11 then return 1, 0.49, 0.04 + elseif class == 12 then return 0.64, 0.19, 0.79 + elseif class == 15 then return 0, 1, 0 + else return 1, 1, 1 end +end +--TESTING +--Conductive Ink 1500960 1 Magic 120 119774.845 player false false 302565 false false true false 1 +aura_env.UnitDebuffC = function(unit, i) + if i == 1 then return "Conductive Ink", 1500960, 1, 2, 120, 119774.845, "Pinko" + elseif i == 1 then return "Conductive Ink", 1500960, 3, 4, 120, 119774.845, "Billy" + elseif i == 2 then return "Conductive Ink", 1500960, 7, 7, 120, 119774.845, "Mary" + elseif i == 3 then return "Conductive Ink", 1500960, 35, 11, 120, 119774.845, "Anna" + elseif i == 4 then return "Conductive Ink", 1500960, 8, 6, 120, 119774.845, "John" + elseif i == 5 then return "Conductive Ink", 1500960, 72, 2, 120, 119774.845, "Frank" + elseif i == 6 then return "Conductive Ink", 1500960, 25, 7, 120, 119774.845, "Emma" + elseif i == 7 then return "Conductive Ink", 1500960, 45, 8, 120, 119774.845, "Sophia" + elseif i == 8 then return "Conductive Ink", 1500960, 37, 5, 120, 119774.845, "Henry" + elseif i == 9 then return "Conductive Ink", 1500960, 4, 3, 120, 119774.845, "Ethan" + elseif i == 10 then return "Conductive Ink", 1500960, 1, 1, 120, 119774.845, "Michael" + end end \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/Fivver - DK Festering Wounds.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/Fivver - DK Festering Wounds.lua similarity index 97% rename from Complete Projects/Fivver Stuff/Fivver - DK Festering Wounds.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/Fivver - DK Festering Wounds.lua index 6c42f68..c99c5d5 100644 --- a/Complete Projects/Fivver Stuff/Fivver - DK Festering Wounds.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/Fivver - DK Festering Wounds.lua @@ -1,76 +1,76 @@ ---COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_ENABLED PLAYER_REGEN_DISABLED DRUID_HOTS_REMOVE_HOT UPDATE_WOUNDS -function(e, ...) - if not WeakAurasSaved.FesteringWounds then WeakAurasSaved.FesteringWounds = {["count"] = 0} end - if not WeakAurasSaved.FesteringWounds.ticker then WeakAurasSaved.FesteringWounds.ticker = C_Timer.NewTicker(0.5, function() WeakAuras.ScanEvents("UPDATE_WOUNDS") end) end - if e == "UPDATE_WOUNDS" then return true - elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, ...) - local caster = select(5, ...) - local spellname = select(13, ...) - local stacks = select(16, ...) - if se == "SPELL_AURA_APPLIED" or se == "SPELL_AURA_APPLIED_DOSE" or se == "SPELL_AURA_REMOVED" or se == "SPELL_AURA_REMOVED_DOSE" then - if caster and caster == UnitName("player") and spellname == "Festering Wound" then - local countsum = 0 - local counted = 0 - for i = 1, 40 do - if UnitExists("nameplate" .. i) then - local index = 1 - while UnitDebuff("nameplate" .. i, index) do - local name, _, _, count = UnitDebuff("nameplate" .. i, index) - local caster = select(8, UnitDebuff("nameplate" .. i, index)) - if name == "Festering Wound" then - countsum = countsum + count - if counted == 0 then counted = 1 end - end - index = index + 1 - end - end - end - if counted == 0 and se == "SPELL_AURA_REMOVED" then - WeakAurasSaved.FesteringWounds.count = 0 - end - if counted == 1 then - WeakAurasSaved.FesteringWounds.count = countsum - end - --DevTools_Dump(WeakAurasSaved.FesteringWounds) - return true - end - end - elseif e == "PLAYER_REGEN_ENABLED" or e == "PLAYER_REGEN_DISABLED" then - WeakAurasSaved.FesteringWounds.count = 0 - local countsum = 0 - local counted = 0 - for i = 1, 40 do - if UnitExists("nameplate" .. i) then - local index = 1 - while UnitDebuff("nameplate" .. i, index) do - local name, _, _, count = UnitDebuff("nameplate" .. i, index) - local caster = select(8, UnitDebuff("nameplate" .. i, index)) - if name == "Festering Wound" then - countsum = countsum + count - if counted == 0 then counted = 1 end - end - index = index + 1 - end - end - end - if counted == 1 then - WeakAurasSaved.FesteringWounds.count = countsum - end - --DevTools_Dump(WeakAurasSaved.FesteringWounds) - return true - end -end - ---STACK INFO -function() - return WeakAurasSaved.FesteringWounds.count -end - ---DISPLAY -function() - return WeakAurasSaved.FesteringWounds["Spring Blossoms"].count -end - ---INIT +--COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_ENABLED PLAYER_REGEN_DISABLED DRUID_HOTS_REMOVE_HOT UPDATE_WOUNDS +function(e, ...) + if not WeakAurasSaved.FesteringWounds then WeakAurasSaved.FesteringWounds = {["count"] = 0} end + if not WeakAurasSaved.FesteringWounds.ticker then WeakAurasSaved.FesteringWounds.ticker = C_Timer.NewTicker(0.5, function() WeakAuras.ScanEvents("UPDATE_WOUNDS") end) end + if e == "UPDATE_WOUNDS" then return true + elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, ...) + local caster = select(5, ...) + local spellname = select(13, ...) + local stacks = select(16, ...) + if se == "SPELL_AURA_APPLIED" or se == "SPELL_AURA_APPLIED_DOSE" or se == "SPELL_AURA_REMOVED" or se == "SPELL_AURA_REMOVED_DOSE" then + if caster and caster == UnitName("player") and spellname == "Festering Wound" then + local countsum = 0 + local counted = 0 + for i = 1, 40 do + if UnitExists("nameplate" .. i) then + local index = 1 + while UnitDebuff("nameplate" .. i, index) do + local name, _, _, count = UnitDebuff("nameplate" .. i, index) + local caster = select(8, UnitDebuff("nameplate" .. i, index)) + if name == "Festering Wound" then + countsum = countsum + count + if counted == 0 then counted = 1 end + end + index = index + 1 + end + end + end + if counted == 0 and se == "SPELL_AURA_REMOVED" then + WeakAurasSaved.FesteringWounds.count = 0 + end + if counted == 1 then + WeakAurasSaved.FesteringWounds.count = countsum + end + --DevTools_Dump(WeakAurasSaved.FesteringWounds) + return true + end + end + elseif e == "PLAYER_REGEN_ENABLED" or e == "PLAYER_REGEN_DISABLED" then + WeakAurasSaved.FesteringWounds.count = 0 + local countsum = 0 + local counted = 0 + for i = 1, 40 do + if UnitExists("nameplate" .. i) then + local index = 1 + while UnitDebuff("nameplate" .. i, index) do + local name, _, _, count = UnitDebuff("nameplate" .. i, index) + local caster = select(8, UnitDebuff("nameplate" .. i, index)) + if name == "Festering Wound" then + countsum = countsum + count + if counted == 0 then counted = 1 end + end + index = index + 1 + end + end + end + if counted == 1 then + WeakAurasSaved.FesteringWounds.count = countsum + end + --DevTools_Dump(WeakAurasSaved.FesteringWounds) + return true + end +end + +--STACK INFO +function() + return WeakAurasSaved.FesteringWounds.count +end + +--DISPLAY +function() + return WeakAurasSaved.FesteringWounds["Spring Blossoms"].count +end + +--INIT if not WeakAurasSaved.FesteringWounds then WeakAurasSaved.FesteringWounds = {["count"] = 0} end \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/Fivver Druid Stuff.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/Fivver Druid Stuff.lua similarity index 98% rename from Complete Projects/Fivver Stuff/Fivver Druid Stuff.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/Fivver Druid Stuff.lua index dea7759..684e9f8 100644 --- a/Complete Projects/Fivver Stuff/Fivver Druid Stuff.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/Fivver Druid Stuff.lua @@ -1,119 +1,119 @@ ---COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_ENABLED PLAYER_REGEN_DISABLED DRUID_HOTS_REMOVE_HOT -function(e, ...) - if not WeakAurasSaved.DruidHots then - WeakAurasSaved.DruidHots = { - ["Rejuvenation"] = {["count"] = 0, ["duration"] = 18, ["timers"] = {}}, - ["Regrowth"] = {["count"] = 0, ["duration"] = 12, ["timers"] = {}}, - ["Lifebloom"] = {["count"] = 0, ["duration"] = 15, ["timers"] = {}}, - ["Wild Growth"] = {["count"] = 0, ["duration"] = 7, ["timers"] = {}}, - ["Spring Blossoms"] = {["count"] = 0, ["duration"] = 6, ["timers"] = {}}, - ["Grove Tending"] = {["count"] = 0, ["duration"] = 9, ["timers"] = {}}, - ["Rejuvenation (Germination)"] = {["count"] = 0, ["duration"] = 18, ["timers"] = {}}, - } - end - if not WeakAurasSaved.DruidHots.ticker then WeakAurasSaved.DruidHots.ticker = C_Timer.NewTicker(0.5, function() WeakAuras.ScanEvents("UPDATE_HOTS") end) end - if e == "DRUID_HOTS_REMOVE_HOT" then - local name, id = ... - --DevTools_Dump(WeakAurasSaved.DruidHots) - if WeakAurasSaved.DruidHots[name].timers[id] then - if WeakAurasSaved.DruidHots[name].timers[id] then WeakAurasSaved.DruidHots[name].timers[id]:Cancel() end - WeakAurasSaved.DruidHots[name].timers[id] = nil - WeakAurasSaved.DruidHots[name].count = WeakAurasSaved.DruidHots[name].count - 1 - end - WeakAuras.ScanEvents("UPDATE_HOTS") - --DevTools_Dump(WeakAurasSaved.DruidHots) - elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, ...) - local caster = select(5, ...) - local spellname = select(13, ...) - local target = select(10, ...) - if se == "SPELL_AURA_APPLIED" then - if caster and caster == UnitName("player") then - if WeakAurasSaved.DruidHots[spellname] then - WeakAurasSaved.DruidHots[spellname].count = WeakAurasSaved.DruidHots[spellname].count + 1 - WeakAurasSaved.DruidHots[spellname].timers[WeakAurasSaved.DruidHots[spellname].count] = C_Timer.NewTimer(WeakAurasSaved.DruidHots[spellname].duration * 4, function() WeakAuras.ScanEvents("DRUID_HOTS_REMOVE_HOT", spellname, WeakAurasSaved.DruidHots[spellname].count) end) - --DevTools_Dump(WeakAurasSaved.DruidHots) - WeakAuras.ScanEvents("UPDATE_HOTS") - end - end - elseif se == "SPELL_AURA_REMOVED" then - if caster and caster == UnitName("player") then - if WeakAurasSaved.DruidHots[spellname] then - if WeakAurasSaved.DruidHots[spellname].count > 0 then - WeakAurasSaved.DruidHots[spellname].count = WeakAurasSaved.DruidHots[spellname].count - 1 - if WeakAurasSaved.DruidHots[spellname].timers[WeakAurasSaved.DruidHots[spellname].count + 1] then WeakAurasSaved.DruidHots[spellname].timers[WeakAurasSaved.DruidHots[spellname].count + 1]:Cancel(); WeakAurasSaved.DruidHots[spellname].timers[WeakAurasSaved.DruidHots[spellname].count + 1] = nil end - --DevTools_Dump(WeakAurasSaved.DruidHots) - WeakAuras.ScanEvents("UPDATE_HOTS") - end - end - end - end - elseif e == "PLAYER_REGEN_ENABLED" or e == "PLAYER_REGEN_DISABLED" then - WeakAurasSaved.DruidHots = { - ["Rejuvenation"] = {["count"] = 0, ["duration"] = 18, ["timers"] = {}}, - ["Regrowth"] = {["count"] = 0, ["duration"] = 12, ["timers"] = {}}, - ["Lifebloom"] = {["count"] = 0, ["duration"] = 15, ["timers"] = {}}, - ["Wild Growth"] = {["count"] = 0, ["duration"] = 7, ["timers"] = {}}, - ["Spring Blossoms"] = {["count"] = 0, ["duration"] = 6, ["timers"] = {}}, - ["Grove Tending"] = {["count"] = 0, ["duration"] = 9, ["timers"] = {}}, - ["Rejuvenation (Germination)"] = {["count"] = 0, ["duration"] = 18, ["timers"] = {}}, - } - local instance = "party" - if IsInRaid() then instance = "raid" end - local index = 1 - --DevTools_Dump(UnitBuff("player", index, "PLAYER")) - while UnitBuff("player", index, "PLAYER") do - local name = UnitBuff("player", index, "PLAYER") - if WeakAurasSaved.DruidHots[name] then - WeakAurasSaved.DruidHots[name].count = WeakAurasSaved.DruidHots[name].count + 1 - end - index = index + 1 - if index > 20 then break end - end - for i = 1, GetNumGroupMembers() do - local index = 1 - --DevTools_Dump(UnitBuff(instance .. i, index, "PLAYER")) - while UnitBuff(instance .. i, index, "PLAYER") do - --DevTools_Dump(UnitBuff(instance .. i , index, "PLAYER")) - local name = UnitBuff(instance .. i, index, "PLAYER") - if WeakAurasSaved.DruidHots[name] then - WeakAurasSaved.DruidHots[name].count = WeakAurasSaved.DruidHots[name].count + 1 - end - index = index + 1 - if index > 20 then break end - end - end - --DevTools_Dump(WeakAurasSaved.DruidHots) - WeakAuras.ScanEvents("UPDATE_HOTS") - end -end - ---DISPLAY -function() - return WeakAurasSaved.DruidHots["Spring Blossoms"].count -end - ---Mana bar ---DISPLAY -function() - local mana = UnitPower("player", 0) - if mana >= 1e3 and mana < 1e6 then - mana = string.format("%.1fk", mana / 1e3) - elseif mana >= 1e6 and mana < 1e9 then - mana = string.format("%.1fM", mana / 1e6) - end - return mana -end - ---INIT -if not WeakAurasSaved.DruidHots then - WeakAurasSaved.DruidHots = { - ["Rejuvenation"] = {["count"] = 0, ["duration"] = 18, ["timer"] = nil}, - ["Regrowth"] = {["count"] = 0, ["duration"] = 12, ["timer"] = nil}, - ["Lifebloom"] = {["count"] = 0, ["duration"] = 15, ["timer"] = nil}, - ["Wild Growth"] = {["count"] = 0, ["duration"] = 7, ["timer"] = nil}, - ["Spring Blossoms"] = {["count"] = 0, ["duration"] = 6, ["timer"] = nil}, - ["Grove Tending"] = {["count"] = 0, ["duration"] = 9, ["timer"] = nil}, - ["Rejuvenation (Germination)"] = {["count"] = 0, ["duration"] = 18, ["timer"] = nil}, - } +--COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_ENABLED PLAYER_REGEN_DISABLED DRUID_HOTS_REMOVE_HOT +function(e, ...) + if not WeakAurasSaved.DruidHots then + WeakAurasSaved.DruidHots = { + ["Rejuvenation"] = {["count"] = 0, ["duration"] = 18, ["timers"] = {}}, + ["Regrowth"] = {["count"] = 0, ["duration"] = 12, ["timers"] = {}}, + ["Lifebloom"] = {["count"] = 0, ["duration"] = 15, ["timers"] = {}}, + ["Wild Growth"] = {["count"] = 0, ["duration"] = 7, ["timers"] = {}}, + ["Spring Blossoms"] = {["count"] = 0, ["duration"] = 6, ["timers"] = {}}, + ["Grove Tending"] = {["count"] = 0, ["duration"] = 9, ["timers"] = {}}, + ["Rejuvenation (Germination)"] = {["count"] = 0, ["duration"] = 18, ["timers"] = {}}, + } + end + if not WeakAurasSaved.DruidHots.ticker then WeakAurasSaved.DruidHots.ticker = C_Timer.NewTicker(0.5, function() WeakAuras.ScanEvents("UPDATE_HOTS") end) end + if e == "DRUID_HOTS_REMOVE_HOT" then + local name, id = ... + --DevTools_Dump(WeakAurasSaved.DruidHots) + if WeakAurasSaved.DruidHots[name].timers[id] then + if WeakAurasSaved.DruidHots[name].timers[id] then WeakAurasSaved.DruidHots[name].timers[id]:Cancel() end + WeakAurasSaved.DruidHots[name].timers[id] = nil + WeakAurasSaved.DruidHots[name].count = WeakAurasSaved.DruidHots[name].count - 1 + end + WeakAuras.ScanEvents("UPDATE_HOTS") + --DevTools_Dump(WeakAurasSaved.DruidHots) + elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, ...) + local caster = select(5, ...) + local spellname = select(13, ...) + local target = select(10, ...) + if se == "SPELL_AURA_APPLIED" then + if caster and caster == UnitName("player") then + if WeakAurasSaved.DruidHots[spellname] then + WeakAurasSaved.DruidHots[spellname].count = WeakAurasSaved.DruidHots[spellname].count + 1 + WeakAurasSaved.DruidHots[spellname].timers[WeakAurasSaved.DruidHots[spellname].count] = C_Timer.NewTimer(WeakAurasSaved.DruidHots[spellname].duration * 4, function() WeakAuras.ScanEvents("DRUID_HOTS_REMOVE_HOT", spellname, WeakAurasSaved.DruidHots[spellname].count) end) + --DevTools_Dump(WeakAurasSaved.DruidHots) + WeakAuras.ScanEvents("UPDATE_HOTS") + end + end + elseif se == "SPELL_AURA_REMOVED" then + if caster and caster == UnitName("player") then + if WeakAurasSaved.DruidHots[spellname] then + if WeakAurasSaved.DruidHots[spellname].count > 0 then + WeakAurasSaved.DruidHots[spellname].count = WeakAurasSaved.DruidHots[spellname].count - 1 + if WeakAurasSaved.DruidHots[spellname].timers[WeakAurasSaved.DruidHots[spellname].count + 1] then WeakAurasSaved.DruidHots[spellname].timers[WeakAurasSaved.DruidHots[spellname].count + 1]:Cancel(); WeakAurasSaved.DruidHots[spellname].timers[WeakAurasSaved.DruidHots[spellname].count + 1] = nil end + --DevTools_Dump(WeakAurasSaved.DruidHots) + WeakAuras.ScanEvents("UPDATE_HOTS") + end + end + end + end + elseif e == "PLAYER_REGEN_ENABLED" or e == "PLAYER_REGEN_DISABLED" then + WeakAurasSaved.DruidHots = { + ["Rejuvenation"] = {["count"] = 0, ["duration"] = 18, ["timers"] = {}}, + ["Regrowth"] = {["count"] = 0, ["duration"] = 12, ["timers"] = {}}, + ["Lifebloom"] = {["count"] = 0, ["duration"] = 15, ["timers"] = {}}, + ["Wild Growth"] = {["count"] = 0, ["duration"] = 7, ["timers"] = {}}, + ["Spring Blossoms"] = {["count"] = 0, ["duration"] = 6, ["timers"] = {}}, + ["Grove Tending"] = {["count"] = 0, ["duration"] = 9, ["timers"] = {}}, + ["Rejuvenation (Germination)"] = {["count"] = 0, ["duration"] = 18, ["timers"] = {}}, + } + local instance = "party" + if IsInRaid() then instance = "raid" end + local index = 1 + --DevTools_Dump(UnitBuff("player", index, "PLAYER")) + while UnitBuff("player", index, "PLAYER") do + local name = UnitBuff("player", index, "PLAYER") + if WeakAurasSaved.DruidHots[name] then + WeakAurasSaved.DruidHots[name].count = WeakAurasSaved.DruidHots[name].count + 1 + end + index = index + 1 + if index > 20 then break end + end + for i = 1, GetNumGroupMembers() do + local index = 1 + --DevTools_Dump(UnitBuff(instance .. i, index, "PLAYER")) + while UnitBuff(instance .. i, index, "PLAYER") do + --DevTools_Dump(UnitBuff(instance .. i , index, "PLAYER")) + local name = UnitBuff(instance .. i, index, "PLAYER") + if WeakAurasSaved.DruidHots[name] then + WeakAurasSaved.DruidHots[name].count = WeakAurasSaved.DruidHots[name].count + 1 + end + index = index + 1 + if index > 20 then break end + end + end + --DevTools_Dump(WeakAurasSaved.DruidHots) + WeakAuras.ScanEvents("UPDATE_HOTS") + end +end + +--DISPLAY +function() + return WeakAurasSaved.DruidHots["Spring Blossoms"].count +end + +--Mana bar +--DISPLAY +function() + local mana = UnitPower("player", 0) + if mana >= 1e3 and mana < 1e6 then + mana = string.format("%.1fk", mana / 1e3) + elseif mana >= 1e6 and mana < 1e9 then + mana = string.format("%.1fM", mana / 1e6) + end + return mana +end + +--INIT +if not WeakAurasSaved.DruidHots then + WeakAurasSaved.DruidHots = { + ["Rejuvenation"] = {["count"] = 0, ["duration"] = 18, ["timer"] = nil}, + ["Regrowth"] = {["count"] = 0, ["duration"] = 12, ["timer"] = nil}, + ["Lifebloom"] = {["count"] = 0, ["duration"] = 15, ["timer"] = nil}, + ["Wild Growth"] = {["count"] = 0, ["duration"] = 7, ["timer"] = nil}, + ["Spring Blossoms"] = {["count"] = 0, ["duration"] = 6, ["timer"] = nil}, + ["Grove Tending"] = {["count"] = 0, ["duration"] = 9, ["timer"] = nil}, + ["Rejuvenation (Germination)"] = {["count"] = 0, ["duration"] = 18, ["timer"] = nil}, + } end \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/Fivver Loot Logging.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/Fivver Loot Logging.lua similarity index 97% rename from Complete Projects/Fivver Stuff/Fivver Loot Logging.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/Fivver Loot Logging.lua index 5e8ce77..1c10d25 100644 --- a/Complete Projects/Fivver Stuff/Fivver Loot Logging.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/Fivver Loot Logging.lua @@ -1,203 +1,203 @@ ---Idea: ---Get loot from everyone ---Put loot in table sorted with everyone ---If AH visit get prices of boe items? and DE mats ---In item table add value in vendor, AH and DE ---Add option to export all to excel ---Add timer (toggleable?) with a button and macro ---Add option to mark significant items, idk how maybe use macro maybe some sort of button ---Use only for guildies ---Maybe reminder to turn timer on ---Maybe individual member timer ---Sort table by member > item > iteminfo ---Where member holds time and key is name ---Maybe use time as start and endtime ---Maybe establish comms with other weakauras to make sure times are synced ---Add gold / hour !! ---Maybe add split gold f(totalgold, membertimespent)? ---Google sheets uses tab for column seperation and newline for row seperation !! ---Make into addon not weakaura - ---CHAT_MSG_LOOT AUCTION_HOUSE_SHOW AUCTION_ITEM_LIST_UPDATE AH_READY -function(e, msg) - if e == "CHAT_MSG_LOOT" then - if msg then - local who = msg:match("%w+") - if who == "You" then who = UnitName("player") end - if who:match("(-)") then who:match("(.+)-%w*") end - local howmuch = msg:match("(x%d+).$") - local link - for itemLink in msg:gmatch("|%x+|Hitem:.-|h.-|h|r") do - link = itemLink - end - local itemName, _, itemQuality, _, _, itemType = GetItemInfo(link) - local itemLevel = GetDetailedItemLevelInfo(link) - if itemQuality > 1 then - if not aura_env.lootTable[who] then aura_env.lootTable[who] = {["items"] = {}} end - if not aura_env.lootTable[who].items[itemName] then - aura_env.lootTable[who].items[itemName] = { - ["name"] = itemName, - ["vendor"] = select(11, GetItemInfo(link)), - ["quantity"] = howmuch or 1, - } - --Handles DE price prediction - --if itemType == "Armor" or itemType == "Weapon" then - -- print("itemLevel", itemLevel) - -- if itemLevel >= 45 and itemLevel <= 55 then - -- local price = 0 - -- for k,v in pairs(WeakAurasSaved.LootLog.DEStats[1]) do - -- price = price + (v * WeakAurasSaved.LootLog.AHPrices[k]) - -- end - -- price = price * (howmuch or 1) - -- aura_env.lootTable[who].items[itemName].DE = price - -- DevTools_Dump(aura_env.lootTable) - -- elseif itemLevel >= 56 then - -- local price = 0 - -- for k,v in pairs(WeakAurasSaved.LootLog.DEStats[2]) do - -- price = price + (v * WeakAurasSaved.LootLog.AHPrices[k]) - -- end - -- price = price * (howmuch or 1) - -- aura_env.lootTable[who].items[itemName].DE = price - -- DevTools_Dump(aura_env.lootTable) - -- elseif itemLevel > 58 and itemLevel < 77 and itemQuality == 4 then - -- local price = 0 - -- for k,v in pairs(WeakAurasSaved.LootLog.DEStats[3]) do - -- price = price + (v * WeakAurasSaved.LootLog.AHPrices[k]) - -- end - -- price = price * (howmuch or 1) - -- aura_env.lootTable[who].items[itemName].DE = price - -- DevTools_Dump(aura_env.lootTable) - -- end - --end - if WeakAurasSaved.LootLog.Notables[itemName] then - aura_env.lootTable[who].items[itemName].AH = WeakAurasSaved.LootLog.Notables[itemName] - end - else - aura_env.lootTable[who].items[itemName].quantity = aura_env.lootTable[who].items[itemName].quantity + 1 - end - end - DevTools_Dump(aura_env.lootTable) - --DevTools_Dump(WeakAurasSaved.LootLog) - end - elseif e == "AUCTION_HOUSE_SHOW" then - DevTools_Dump(WeakAurasSaved.LootLog.AHPrices) - if aura_env.i == 1 then - QueryAuctionItems("Illusion Dust") - print("Querry", "Illusion Dust") - end - --Querry update that fires item list update then get item info from like a page or two and get median value if the spread isn't too much - elseif e == "AUCTION_ITEM_LIST_UPDATE" then - --Get auction info - if not aura_env.timer then - SortAuctionSetSort("list", "buyout") - SortAuctionApplySort("list") - end - if aura_env.timer then aura_env.timer:Cancel(); aura_env.timer = nil end - if not aura_env.timer then aura_env.timer = C_Timer.NewTimer(1, function() WeakAuras.ScanEvents("AH_READY") end) end - elseif e == "AH_READY" then - if aura_env.timer then aura_env.timer = nil end - local masterName, masterID - if aura_env.i == 1 then - masterName = "Illusion Dust" - masterID = "ID" - elseif aura_env.i == 2 then - masterName = "Dream Dust" - masterID = "DD" - elseif aura_env.i == 3 then - masterName = "Small Brillaint Shard" - masterID = "SBS" - elseif aura_env.i == 4 then - masterName = "Large Brilliant Shard" - masterID = "LBS" - elseif aura_env.i == 5 then - masterName = "Lesser Eternal Essence" - masterID = "LEE" - elseif aura_env.i == 6 then - masterName = "Greater Eternal Essence" - masterID = "GEE" - end - for i = 1, GetNumAuctionItems("list") do - local name, _, count = GetAuctionItemInfo("list", i) - local buyoutPrice = select(10, GetAuctionItemInfo("list", i)) - if name == masterName then - local pricePerEach = buyoutPrice / count - if WeakAurasSaved.LootLog.AHPrices[masterID] == 0 then - WeakAurasSaved.LootLog.AHPrices[masterID] = pricePerEach - else - WeakAurasSaved.LootLog.AHPrices[masterID] = (WeakAurasSaved.LootLog.AHPrices[masterID] + pricePerEach) / 2 - end - end - end - aura_env.i = aura_env.i + 1 - if WeakAurasSaved.LootLog.AHPrices[masterID] then WeakAurasSaved.LootLog.AHPrices[masterID] = math.floor(WeakAurasSaved.LootLog.AHPrices[masterID]) end - --DevTools_Dump(WeakAurasSaved.LootLog.AHPrices) - if aura_env.i == 1 then - masterName = "Illusion Dust" - masterID = "ID" - elseif aura_env.i == 2 then - masterName = "Dream Dust" - masterID = "DD" - elseif aura_env.i == 3 then - masterName = "Small Brillaint Shard" - masterID = "SBS" - elseif aura_env.i == 4 then - masterName = "Large Brilliant Shard" - masterID = "LBS" - elseif aura_env.i == 5 then - masterName = "Lesser Eternal Essence" - masterID = "LEE" - elseif aura_env.i == 6 then - masterName = "Greater Eternal Essence" - masterID = "GEE" - elseif aura_env.i > 6 then - print("AH Scan complete") - DevTools_Dump(WeakAurasSaved.LootLog.AHPrices) - masterName = nil - masterID = nil - aura_env.i = 1 - end - if masterName then - QueryAuctionItems(masterName) - print("Querry", masterName) - end - end -end - ---INIT -aura_env.i = 1 -aura_env.lootTable = {} -if not WeakAurasSaved.LootLog then WeakAurasSaved.LootLog = {} end -if not WeakAurasSaved.LootLog.AHPrices then - WeakAurasSaved.LootLog.AHPrices = { - ["ID"] = 0, - ["DD"] = 0, - ["SBS"] = 0, - ["LBS"] = 0, - ["LEE"] = 0, - ["GEE"] = 0, - } -end -if not WeakAurasSaved.LootLog.DEStats then - WeakAurasSaved.LootLog.DEStats = { - --<45,55> - [1] = { - ["DD"] = 0, - ["SBS"] = 0, - ["LBS"] = 0, - ["LEE"] = 0, - ["GEE"] = 0, - ["GME"] = 0, - }, - --<56,65> - [2] = { - ["ID"] = 2.8699, - ["LBS"] = 0.018, - ["GEE"] = 0.4, - }, - --Purple items between 59 and 78 - [3] = { - ["LBS"] = 0, - }, - } -end +--Idea: +--Get loot from everyone +--Put loot in table sorted with everyone +--If AH visit get prices of boe items? and DE mats +--In item table add value in vendor, AH and DE +--Add option to export all to excel +--Add timer (toggleable?) with a button and macro +--Add option to mark significant items, idk how maybe use macro maybe some sort of button +--Use only for guildies +--Maybe reminder to turn timer on +--Maybe individual member timer +--Sort table by member > item > iteminfo +--Where member holds time and key is name +--Maybe use time as start and endtime +--Maybe establish comms with other weakauras to make sure times are synced +--Add gold / hour !! +--Maybe add split gold f(totalgold, membertimespent)? +--Google sheets uses tab for column seperation and newline for row seperation !! +--Make into addon not weakaura + +--CHAT_MSG_LOOT AUCTION_HOUSE_SHOW AUCTION_ITEM_LIST_UPDATE AH_READY +function(e, msg) + if e == "CHAT_MSG_LOOT" then + if msg then + local who = msg:match("%w+") + if who == "You" then who = UnitName("player") end + if who:match("(-)") then who:match("(.+)-%w*") end + local howmuch = msg:match("(x%d+).$") + local link + for itemLink in msg:gmatch("|%x+|Hitem:.-|h.-|h|r") do + link = itemLink + end + local itemName, _, itemQuality, _, _, itemType = GetItemInfo(link) + local itemLevel = GetDetailedItemLevelInfo(link) + if itemQuality > 1 then + if not aura_env.lootTable[who] then aura_env.lootTable[who] = {["items"] = {}} end + if not aura_env.lootTable[who].items[itemName] then + aura_env.lootTable[who].items[itemName] = { + ["name"] = itemName, + ["vendor"] = select(11, GetItemInfo(link)), + ["quantity"] = howmuch or 1, + } + --Handles DE price prediction + --if itemType == "Armor" or itemType == "Weapon" then + -- print("itemLevel", itemLevel) + -- if itemLevel >= 45 and itemLevel <= 55 then + -- local price = 0 + -- for k,v in pairs(WeakAurasSaved.LootLog.DEStats[1]) do + -- price = price + (v * WeakAurasSaved.LootLog.AHPrices[k]) + -- end + -- price = price * (howmuch or 1) + -- aura_env.lootTable[who].items[itemName].DE = price + -- DevTools_Dump(aura_env.lootTable) + -- elseif itemLevel >= 56 then + -- local price = 0 + -- for k,v in pairs(WeakAurasSaved.LootLog.DEStats[2]) do + -- price = price + (v * WeakAurasSaved.LootLog.AHPrices[k]) + -- end + -- price = price * (howmuch or 1) + -- aura_env.lootTable[who].items[itemName].DE = price + -- DevTools_Dump(aura_env.lootTable) + -- elseif itemLevel > 58 and itemLevel < 77 and itemQuality == 4 then + -- local price = 0 + -- for k,v in pairs(WeakAurasSaved.LootLog.DEStats[3]) do + -- price = price + (v * WeakAurasSaved.LootLog.AHPrices[k]) + -- end + -- price = price * (howmuch or 1) + -- aura_env.lootTable[who].items[itemName].DE = price + -- DevTools_Dump(aura_env.lootTable) + -- end + --end + if WeakAurasSaved.LootLog.Notables[itemName] then + aura_env.lootTable[who].items[itemName].AH = WeakAurasSaved.LootLog.Notables[itemName] + end + else + aura_env.lootTable[who].items[itemName].quantity = aura_env.lootTable[who].items[itemName].quantity + 1 + end + end + DevTools_Dump(aura_env.lootTable) + --DevTools_Dump(WeakAurasSaved.LootLog) + end + elseif e == "AUCTION_HOUSE_SHOW" then + DevTools_Dump(WeakAurasSaved.LootLog.AHPrices) + if aura_env.i == 1 then + QueryAuctionItems("Illusion Dust") + print("Querry", "Illusion Dust") + end + --Querry update that fires item list update then get item info from like a page or two and get median value if the spread isn't too much + elseif e == "AUCTION_ITEM_LIST_UPDATE" then + --Get auction info + if not aura_env.timer then + SortAuctionSetSort("list", "buyout") + SortAuctionApplySort("list") + end + if aura_env.timer then aura_env.timer:Cancel(); aura_env.timer = nil end + if not aura_env.timer then aura_env.timer = C_Timer.NewTimer(1, function() WeakAuras.ScanEvents("AH_READY") end) end + elseif e == "AH_READY" then + if aura_env.timer then aura_env.timer = nil end + local masterName, masterID + if aura_env.i == 1 then + masterName = "Illusion Dust" + masterID = "ID" + elseif aura_env.i == 2 then + masterName = "Dream Dust" + masterID = "DD" + elseif aura_env.i == 3 then + masterName = "Small Brillaint Shard" + masterID = "SBS" + elseif aura_env.i == 4 then + masterName = "Large Brilliant Shard" + masterID = "LBS" + elseif aura_env.i == 5 then + masterName = "Lesser Eternal Essence" + masterID = "LEE" + elseif aura_env.i == 6 then + masterName = "Greater Eternal Essence" + masterID = "GEE" + end + for i = 1, GetNumAuctionItems("list") do + local name, _, count = GetAuctionItemInfo("list", i) + local buyoutPrice = select(10, GetAuctionItemInfo("list", i)) + if name == masterName then + local pricePerEach = buyoutPrice / count + if WeakAurasSaved.LootLog.AHPrices[masterID] == 0 then + WeakAurasSaved.LootLog.AHPrices[masterID] = pricePerEach + else + WeakAurasSaved.LootLog.AHPrices[masterID] = (WeakAurasSaved.LootLog.AHPrices[masterID] + pricePerEach) / 2 + end + end + end + aura_env.i = aura_env.i + 1 + if WeakAurasSaved.LootLog.AHPrices[masterID] then WeakAurasSaved.LootLog.AHPrices[masterID] = math.floor(WeakAurasSaved.LootLog.AHPrices[masterID]) end + --DevTools_Dump(WeakAurasSaved.LootLog.AHPrices) + if aura_env.i == 1 then + masterName = "Illusion Dust" + masterID = "ID" + elseif aura_env.i == 2 then + masterName = "Dream Dust" + masterID = "DD" + elseif aura_env.i == 3 then + masterName = "Small Brillaint Shard" + masterID = "SBS" + elseif aura_env.i == 4 then + masterName = "Large Brilliant Shard" + masterID = "LBS" + elseif aura_env.i == 5 then + masterName = "Lesser Eternal Essence" + masterID = "LEE" + elseif aura_env.i == 6 then + masterName = "Greater Eternal Essence" + masterID = "GEE" + elseif aura_env.i > 6 then + print("AH Scan complete") + DevTools_Dump(WeakAurasSaved.LootLog.AHPrices) + masterName = nil + masterID = nil + aura_env.i = 1 + end + if masterName then + QueryAuctionItems(masterName) + print("Querry", masterName) + end + end +end + +--INIT +aura_env.i = 1 +aura_env.lootTable = {} +if not WeakAurasSaved.LootLog then WeakAurasSaved.LootLog = {} end +if not WeakAurasSaved.LootLog.AHPrices then + WeakAurasSaved.LootLog.AHPrices = { + ["ID"] = 0, + ["DD"] = 0, + ["SBS"] = 0, + ["LBS"] = 0, + ["LEE"] = 0, + ["GEE"] = 0, + } +end +if not WeakAurasSaved.LootLog.DEStats then + WeakAurasSaved.LootLog.DEStats = { + --<45,55> + [1] = { + ["DD"] = 0, + ["SBS"] = 0, + ["LBS"] = 0, + ["LEE"] = 0, + ["GEE"] = 0, + ["GME"] = 0, + }, + --<56,65> + [2] = { + ["ID"] = 2.8699, + ["LBS"] = 0.018, + ["GEE"] = 0.4, + }, + --Purple items between 59 and 78 + [3] = { + ["LBS"] = 0, + }, + } +end if not WeakAurasSaved.LootLog.Notables then WeakAurasSaved.LootLog.Notables = {} end \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/RaidTranqShot.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/RaidTranqShot.lua similarity index 96% rename from Complete Projects/Fivver Stuff/RaidTranqShot.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/RaidTranqShot.lua index e69e4ff..7b8de87 100644 --- a/Complete Projects/Fivver Stuff/RaidTranqShot.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/RaidTranqShot.lua @@ -1,49 +1,49 @@ ---GROUP_ROSTER_UPDATE COMBAT_LOG_EVENT_UNFILTERED -function(allstates, e, ...) - if e == "GROUP_ROSTER_UPDATE" then - aura_env.playerList = {} - for i = 1, GetNumGroupMembers() do - local u = "raid" .. i - if select(3, UnitClass(u)) == 2 then - if not aura_env.playerList[UnitName(u)] then aura_env.playerList[UnitName(u)] = u end - if not allstates[UnitName(u)] then allstates[UnitName(u)] = { - show = true, - changed = true, - name = UnitName(u), - unit = u, - class = UnitClass(u), - resort = true, - cd = 0, - cdtotal = 20, - index = 0, - progressType = "static", - value = 0, - total = 1, - } end - end - end - return true - elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then - local caster = select(5, ...) - if aura_env.playerList[caster] then - local se = select(2, ...) - if se == "SPELL_CAST_SUCCESS" then - local spellname = select(13, ...) - if spellname == "Consecration" then - if allstates[caster] then - allstates[caster].progressType = "timed" - allstates[caster].duration = 7.57 - allstates[caster].expirationTime = GetTime() + 7.57 - allstates[caster].index = GetTime() + 7.57 - allstates[caster].resort = true - allstates[caster].changed = true - end - end - end - end - return true - end -end - ---INIT +--GROUP_ROSTER_UPDATE COMBAT_LOG_EVENT_UNFILTERED +function(allstates, e, ...) + if e == "GROUP_ROSTER_UPDATE" then + aura_env.playerList = {} + for i = 1, GetNumGroupMembers() do + local u = "raid" .. i + if select(3, UnitClass(u)) == 2 then + if not aura_env.playerList[UnitName(u)] then aura_env.playerList[UnitName(u)] = u end + if not allstates[UnitName(u)] then allstates[UnitName(u)] = { + show = true, + changed = true, + name = UnitName(u), + unit = u, + class = UnitClass(u), + resort = true, + cd = 0, + cdtotal = 20, + index = 0, + progressType = "static", + value = 0, + total = 1, + } end + end + end + return true + elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then + local caster = select(5, ...) + if aura_env.playerList[caster] then + local se = select(2, ...) + if se == "SPELL_CAST_SUCCESS" then + local spellname = select(13, ...) + if spellname == "Consecration" then + if allstates[caster] then + allstates[caster].progressType = "timed" + allstates[caster].duration = 7.57 + allstates[caster].expirationTime = GetTime() + 7.57 + allstates[caster].index = GetTime() + 7.57 + allstates[caster].resort = true + allstates[caster].changed = true + end + end + end + end + return true + end +end + +--INIT aura_env.playerList = {} \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/GeneralStuff.txt b/WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/GeneralStuff.txt similarity index 100% rename from Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/GeneralStuff.txt rename to WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/GeneralStuff.txt diff --git a/Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Instructions.txt b/WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Instructions.txt similarity index 98% rename from Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Instructions.txt rename to WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Instructions.txt index ce7480a..33aa5d6 100644 --- a/Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Instructions.txt +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Instructions.txt @@ -1,40 +1,40 @@ -There are more things these weakauras can do but it might be a pain to understand/read/care; this is what I got sidetracked doing -It is possible to tell the 4th-row aura to look for all cooldowns (in your spellbook) or to exclude/whitelist some; for example -You can tell it to find all spells with cooldowns in your spellbook except for Life Cocoon; likewise, you can tell it to only find Life Cocoon -There also are two modes this aura can appear in, one sorts the spells by their cooldown (so a 30s spell would be first, a 1 min spell second and so on) and the other sorts them by their active cooldown (so ready spells are always first and last are spells on cooldown sorted by their remaining cooldown) - -I got carried away designing this and I think there would be no point withholding it from you so, feature-full it is - -To begin, it has two modes of display (as mentioned previously) and this is how you toggle between them (ran in the chat of course) - -/run WeakAuras.ScanEvents("COOLDOWN_MANAGER_SWITCH_MODES") - -I also mentioned it being able to switch between whitelisted and blacklisted spells and this is how that's done (currently there is no way to tell what mode it's in other than looking at the actual aura and seeing for yourself (There is no output other than 0 and 1)) - -/run WeakAuras.ScanEvents("COOLDOWN_MANAGER_SWITCH_SCAN_MODES") - -What the above command essentially does is tells the aura to either look for the spells we want or those we don't want; once it is in either mode we also need to tell it what to look for - -/run WeakAuras.ScanEvents("PLAYER_SPELLBOOK_EXCLUSION_ADD", "") -/run WeakAuras.ScanEvents("PLAYER_SPELLBOOK_EXCLUSION_REMOVE", "") -/run WeakAuras.ScanEvents("PLAYER_SPELLBOOK_WHITELIST_ADD", "") -/run WeakAuras.ScanEvents("PLAYER_SPELLBOOK_WHITELIST_REMOVE", "") - -You can use these commands to either whitelist or blacklist spells using their name or their ID; if you wanted the aura to NOT show Chi Wave you would do - -/run WeakAuras.ScanEvents("PLAYER_SPELLBOOK_EXCLUSION_ADD", "Chi Wave") - -And if you wanted it to show Chi Wave again you would do - -/run WeakAuras.ScanEvents("PLAYER_SPELLBOOK_EXCLUSION_REMOVE", "Chi Wave") - -Few things to note here are if you want to use spell names you must place them in quotation marks however if you want to use ID's you may not use quotation marks; so an ID example would be and also if the aura is in Whitelisted mode (showing only the spells you told it to) the exclusion table/list will have no effect on it and adding or removing spells to it will not change the behavior, similarly if the aura is in Exclusion/Blacklist mode the whitelisted list will have no effect on it - -/run WeakAuras.ScanEvents("PLAYER_SPELLBOOK_EXCLUSION_REMOVE", 115008) - -And finally to check what spells are blacklisted or whitelisted you would do - -/run WeakAuras.ScanEvents("PLAYER_SPELLBOOK_EXCLUSION_LIST") -/run WeakAuras.ScanEvents("PLAYER_SPELLBOOK_WHITELIST_LIST") - +There are more things these weakauras can do but it might be a pain to understand/read/care; this is what I got sidetracked doing +It is possible to tell the 4th-row aura to look for all cooldowns (in your spellbook) or to exclude/whitelist some; for example +You can tell it to find all spells with cooldowns in your spellbook except for Life Cocoon; likewise, you can tell it to only find Life Cocoon +There also are two modes this aura can appear in, one sorts the spells by their cooldown (so a 30s spell would be first, a 1 min spell second and so on) and the other sorts them by their active cooldown (so ready spells are always first and last are spells on cooldown sorted by their remaining cooldown) + +I got carried away designing this and I think there would be no point withholding it from you so, feature-full it is + +To begin, it has two modes of display (as mentioned previously) and this is how you toggle between them (ran in the chat of course) + +/run WeakAuras.ScanEvents("COOLDOWN_MANAGER_SWITCH_MODES") + +I also mentioned it being able to switch between whitelisted and blacklisted spells and this is how that's done (currently there is no way to tell what mode it's in other than looking at the actual aura and seeing for yourself (There is no output other than 0 and 1)) + +/run WeakAuras.ScanEvents("COOLDOWN_MANAGER_SWITCH_SCAN_MODES") + +What the above command essentially does is tells the aura to either look for the spells we want or those we don't want; once it is in either mode we also need to tell it what to look for + +/run WeakAuras.ScanEvents("PLAYER_SPELLBOOK_EXCLUSION_ADD", "") +/run WeakAuras.ScanEvents("PLAYER_SPELLBOOK_EXCLUSION_REMOVE", "") +/run WeakAuras.ScanEvents("PLAYER_SPELLBOOK_WHITELIST_ADD", "") +/run WeakAuras.ScanEvents("PLAYER_SPELLBOOK_WHITELIST_REMOVE", "") + +You can use these commands to either whitelist or blacklist spells using their name or their ID; if you wanted the aura to NOT show Chi Wave you would do + +/run WeakAuras.ScanEvents("PLAYER_SPELLBOOK_EXCLUSION_ADD", "Chi Wave") + +And if you wanted it to show Chi Wave again you would do + +/run WeakAuras.ScanEvents("PLAYER_SPELLBOOK_EXCLUSION_REMOVE", "Chi Wave") + +Few things to note here are if you want to use spell names you must place them in quotation marks however if you want to use ID's you may not use quotation marks; so an ID example would be and also if the aura is in Whitelisted mode (showing only the spells you told it to) the exclusion table/list will have no effect on it and adding or removing spells to it will not change the behavior, similarly if the aura is in Exclusion/Blacklist mode the whitelisted list will have no effect on it + +/run WeakAuras.ScanEvents("PLAYER_SPELLBOOK_EXCLUSION_REMOVE", 115008) + +And finally to check what spells are blacklisted or whitelisted you would do + +/run WeakAuras.ScanEvents("PLAYER_SPELLBOOK_EXCLUSION_LIST") +/run WeakAuras.ScanEvents("PLAYER_SPELLBOOK_WHITELIST_LIST") + Why had I done this? I do not know \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Other stuff.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Other stuff.lua similarity index 95% rename from Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Other stuff.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Other stuff.lua index d904123..ba61310 100644 --- a/Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Other stuff.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Other stuff.lua @@ -1,67 +1,67 @@ ---DISPLAY -function() - local mana = UnitPower("player") - local maxmana = UnitPowerMax("player") - return string.format("%.f%%", (mana / maxmana) * 100) -end - ---NAME -function() - local mana = UnitPower("player") - local maxmana = UnitPowerMax("player") - return aura_env.shorten(mana) -end - ---UNIT_POWER -function() - return true -end - ---DURATION -function() - local mana = UnitPower("player") - local maxmana = UnitPowerMax("player") - return maxmana - mana, maxmana, 1 -end - ---SPELL_UPDATE_COOLDOWN -function() - return true -end - ---DURATION -function() - local id = 109132 - if IsPlayerSpell(115008) then id = 115008 end - local charges, maxCharges, start, duration = GetSpellCharges(id) - if charges >= 2 then - return 0, 1, 1, 1 - elseif charges == 1 then - expirationTime = start + duration - return duration, expirationTime - elseif charges < 1 then - return 1, 1, 1, 1 - end -end - ---INIT -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 +--DISPLAY +function() + local mana = UnitPower("player") + local maxmana = UnitPowerMax("player") + return string.format("%.f%%", (mana / maxmana) * 100) +end + +--NAME +function() + local mana = UnitPower("player") + local maxmana = UnitPowerMax("player") + return aura_env.shorten(mana) +end + +--UNIT_POWER +function() + return true +end + +--DURATION +function() + local mana = UnitPower("player") + local maxmana = UnitPowerMax("player") + return maxmana - mana, maxmana, 1 +end + +--SPELL_UPDATE_COOLDOWN +function() + return true +end + +--DURATION +function() + local id = 109132 + if IsPlayerSpell(115008) then id = 115008 end + local charges, maxCharges, start, duration = GetSpellCharges(id) + if charges >= 2 then + return 0, 1, 1, 1 + elseif charges == 1 then + expirationTime = start + duration + return duration, expirationTime + elseif charges < 1 then + return 1, 1, 1, 1 + end +end + +--INIT +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 end \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Spellbook Cooldowns.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Spellbook Cooldowns.lua similarity index 97% rename from Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Spellbook Cooldowns.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Spellbook Cooldowns.lua index 2c4443a..822f441 100644 --- a/Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Spellbook Cooldowns.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Spellbook Cooldowns.lua @@ -1,43 +1,43 @@ ---TSU ---SPELL_UPDATE_COOLDOWN RESET_COOLDOWN_MANAGER_SPELLS COOLDOWN_MANAGER_SWITCH_MODES -function(allstates, e) - if e == "RESET_COOLDOWN_MANAGER_SPELLS" then - for _, state in pairs(allstates) do - state.show = false; - state.changed = true; - end - end - if not aura_env.mode then aura_env.mode = 1 end - if e == "COOLDOWN_MANAGER_SWITCH_MODES" then - if aura_env.mode == 0 then - aura_env.mode = 1 - print(aura_env.mode) - else - aura_env.mode = 0 - print(aura_env.mode) - end - end - if not aura_env.spells then WeakAuras.ScanEvents("PLAYER_SPELLBOOK_UPDATE") end - for k,v in pairs(aura_env.spells) do - local start, duration = GetSpellCooldown(v) - local icon = GetSpellTexture(k) - local totalcd = GetSpellBaseCooldown(v) - allstates[v] = { - changed = true, - show = true, - resort = true, - progressType = "timed", - icon = icon, - } - if aura_env.mode == 0 then allstates[v].index = totalcd end - if start > 0 and duration > 1.5 then - allstates[v].expirationTime = start + duration - allstates[v].duration = duration - if not allstates[v].timer and aura_env.mode == 1 then allstates[v].timer = C_Timer.NewTimer(duration, function() WeakAuras.ScanEvents("SPELL_UPDATE_COOLDOWN") end) end - if aura_env.mode == 1 then allstates[v].index = start + duration end - else - if aura_env.mode == 1 then allstates[v].index = 0 end - end - end - return true +--TSU +--SPELL_UPDATE_COOLDOWN RESET_COOLDOWN_MANAGER_SPELLS COOLDOWN_MANAGER_SWITCH_MODES +function(allstates, e) + if e == "RESET_COOLDOWN_MANAGER_SPELLS" then + for _, state in pairs(allstates) do + state.show = false; + state.changed = true; + end + end + if not aura_env.mode then aura_env.mode = 1 end + if e == "COOLDOWN_MANAGER_SWITCH_MODES" then + if aura_env.mode == 0 then + aura_env.mode = 1 + print(aura_env.mode) + else + aura_env.mode = 0 + print(aura_env.mode) + end + end + if not aura_env.spells then WeakAuras.ScanEvents("PLAYER_SPELLBOOK_UPDATE") end + for k,v in pairs(aura_env.spells) do + local start, duration = GetSpellCooldown(v) + local icon = GetSpellTexture(k) + local totalcd = GetSpellBaseCooldown(v) + allstates[v] = { + changed = true, + show = true, + resort = true, + progressType = "timed", + icon = icon, + } + if aura_env.mode == 0 then allstates[v].index = totalcd end + if start > 0 and duration > 1.5 then + allstates[v].expirationTime = start + duration + allstates[v].duration = duration + if not allstates[v].timer and aura_env.mode == 1 then allstates[v].timer = C_Timer.NewTimer(duration, function() WeakAuras.ScanEvents("SPELL_UPDATE_COOLDOWN") end) end + if aura_env.mode == 1 then allstates[v].index = start + duration end + else + if aura_env.mode == 1 then allstates[v].index = 0 end + end + end + return true end \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Spellbook Scan.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Spellbook Scan.lua similarity index 97% rename from Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Spellbook Scan.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Spellbook Scan.lua index 9d328bc..d0e0bbb 100644 --- a/Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Spellbook Scan.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Spellbook Scan.lua @@ -1,87 +1,87 @@ ---PLAYER_SPELLBOOK_UPDATE PLAYER_SPELLBOOK_EXCLUSION_ADD PLAYER_SPELLBOOK_EXCLUSION_REMOVE PLAYER_SPELLBOOK_EXCLUSION_LIST COOLDOWN_MANAGER_SWITCH_SCAN_MODES PLAYER_SPELLBOOK_WHITELIST_ADD PLAYER_SPELLBOOK_WHITELIST_REMOVE PLAYER_SPELLBOOK_WHITELIST_LIST -function(e, msg) - if not aura_env.mode then aura_env.mode = 1 end - if e == "COOLDOWN_MANAGER_SWITCH_SCAN_MODES" then - if aura_env.mode == 0 then - aura_env.mode = 1 - print(aura_env.mode) - else - aura_env.mode = 0 - print(aura_env.mode) - end - elseif e == "PLAYER_SPELLBOOK_UPDATE" then - if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end - if not WeakAurasSaved.CustomTrash.SpellExclusion then WeakAurasSaved.CustomTrash.SpellExclusion = {} end - if not WeakAurasSaved.CustomTrash.SpellWhitelist then WeakAurasSaved.CustomTrash.SpellWhitelist = { - ["Fortifying Brew"] = 1, - ["Life Cocoon"] = 1, - ["Revival"] = 1, - ["Paralysis"] = 1, - } end - aura_env.spells = {} - if aura_env.mode == 0 then - local index = 1 - while GetSpellBookItemName(index, "spell") do - local name = GetSpellInfo(index, "spell") - local id = select(7, GetSpellInfo(index, "spell")) - if IsPlayerSpell(id) == true and GetSpellBaseCooldown(id) > 10000 and (not (WeakAurasSaved.CustomTrash.SpellExclusion[name] or WeakAurasSaved.CustomTrash.SpellExclusion[id])) then - aura_env.spells[name] = id - end - index = index + 1 - end - else - for k,v in pairs(WeakAurasSaved.CustomTrash.SpellWhitelist) do - local name = GetSpellInfo(k) - local id = select(7, GetSpellInfo(k)) - if id and IsPlayerSpell(id) == true then - aura_env.spells[name] = id - end - end - end - WeakAuras.ScanEvents("RESET_COOLDOWN_MANAGER_SPELLS") - elseif e == "PLAYER_SPELLBOOK_EXCLUSION_ADD" then - if GetSpellInfo(msg) then - if not WeakAurasSaved.CustomTrash.SpellExclusion[msg] then WeakAurasSaved.CustomTrash.SpellExclusion[msg] = 1 end - print("Spell <", msg, "> added") - else - print("Spell <", msg, "> is invalid") - end - WeakAuras.ScanEvents("PLAYER_SPELLBOOK_UPDATE") - WeakAuras.ScanEvents("RESET_COOLDOWN_MANAGER_SPELLS") - elseif e == "PLAYER_SPELLBOOK_EXCLUSION_REMOVE" then - if GetSpellInfo(msg) then - if WeakAurasSaved.CustomTrash.SpellExclusion[msg] then WeakAurasSaved.CustomTrash.SpellExclusion[msg] = nil else print("Spell <", msg, "> is not excluded"); return end - print("Spell <", msg, "> removed") - else - print("Spell <", msg, "> is invalid") - end - WeakAuras.ScanEvents("PLAYER_SPELLBOOK_UPDATE") - WeakAuras.ScanEvents("RESET_COOLDOWN_MANAGER_SPELLS") - elseif e == "PLAYER_SPELLBOOK_EXCLUSION_LIST" then - for k,v in pairs(WeakAurasSaved.CustomTrash.SpellExclusion) do - print(k,v) - end - elseif e == "PLAYER_SPELLBOOK_WHITELIST_ADD" then - if GetSpellInfo(msg) then - if not WeakAurasSaved.CustomTrash.SpellWhitelist[msg] then WeakAurasSaved.CustomTrash.SpellWhitelist[msg] = 1 end - print("Spell <", msg, "> added") - else - print("Spell <", msg, "> is invalid") - end - WeakAuras.ScanEvents("PLAYER_SPELLBOOK_UPDATE") - WeakAuras.ScanEvents("RESET_COOLDOWN_MANAGER_SPELLS") - elseif e == "PLAYER_SPELLBOOK_WHITELIST_REMOVE" then - if GetSpellInfo(msg) then - if WeakAurasSaved.CustomTrash.SpellWhitelist[msg] then WeakAurasSaved.CustomTrash.SpellWhitelist[msg] = nil else print("Spell <", msg, "> is not excluded"); return end - print("Spell <", msg, "> removed") - else - print("Spell <", msg, "> is invalid") - end - WeakAuras.ScanEvents("PLAYER_SPELLBOOK_UPDATE") - WeakAuras.ScanEvents("RESET_COOLDOWN_MANAGER_SPELLS") - elseif e == "PLAYER_SPELLBOOK_WHITELIST_LIST" then - for k,v in pairs(WeakAurasSaved.CustomTrash.SpellWhitelist) do - print(k,v) - end - end +--PLAYER_SPELLBOOK_UPDATE PLAYER_SPELLBOOK_EXCLUSION_ADD PLAYER_SPELLBOOK_EXCLUSION_REMOVE PLAYER_SPELLBOOK_EXCLUSION_LIST COOLDOWN_MANAGER_SWITCH_SCAN_MODES PLAYER_SPELLBOOK_WHITELIST_ADD PLAYER_SPELLBOOK_WHITELIST_REMOVE PLAYER_SPELLBOOK_WHITELIST_LIST +function(e, msg) + if not aura_env.mode then aura_env.mode = 1 end + if e == "COOLDOWN_MANAGER_SWITCH_SCAN_MODES" then + if aura_env.mode == 0 then + aura_env.mode = 1 + print(aura_env.mode) + else + aura_env.mode = 0 + print(aura_env.mode) + end + elseif e == "PLAYER_SPELLBOOK_UPDATE" then + if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end + if not WeakAurasSaved.CustomTrash.SpellExclusion then WeakAurasSaved.CustomTrash.SpellExclusion = {} end + if not WeakAurasSaved.CustomTrash.SpellWhitelist then WeakAurasSaved.CustomTrash.SpellWhitelist = { + ["Fortifying Brew"] = 1, + ["Life Cocoon"] = 1, + ["Revival"] = 1, + ["Paralysis"] = 1, + } end + aura_env.spells = {} + if aura_env.mode == 0 then + local index = 1 + while GetSpellBookItemName(index, "spell") do + local name = GetSpellInfo(index, "spell") + local id = select(7, GetSpellInfo(index, "spell")) + if IsPlayerSpell(id) == true and GetSpellBaseCooldown(id) > 10000 and (not (WeakAurasSaved.CustomTrash.SpellExclusion[name] or WeakAurasSaved.CustomTrash.SpellExclusion[id])) then + aura_env.spells[name] = id + end + index = index + 1 + end + else + for k,v in pairs(WeakAurasSaved.CustomTrash.SpellWhitelist) do + local name = GetSpellInfo(k) + local id = select(7, GetSpellInfo(k)) + if id and IsPlayerSpell(id) == true then + aura_env.spells[name] = id + end + end + end + WeakAuras.ScanEvents("RESET_COOLDOWN_MANAGER_SPELLS") + elseif e == "PLAYER_SPELLBOOK_EXCLUSION_ADD" then + if GetSpellInfo(msg) then + if not WeakAurasSaved.CustomTrash.SpellExclusion[msg] then WeakAurasSaved.CustomTrash.SpellExclusion[msg] = 1 end + print("Spell <", msg, "> added") + else + print("Spell <", msg, "> is invalid") + end + WeakAuras.ScanEvents("PLAYER_SPELLBOOK_UPDATE") + WeakAuras.ScanEvents("RESET_COOLDOWN_MANAGER_SPELLS") + elseif e == "PLAYER_SPELLBOOK_EXCLUSION_REMOVE" then + if GetSpellInfo(msg) then + if WeakAurasSaved.CustomTrash.SpellExclusion[msg] then WeakAurasSaved.CustomTrash.SpellExclusion[msg] = nil else print("Spell <", msg, "> is not excluded"); return end + print("Spell <", msg, "> removed") + else + print("Spell <", msg, "> is invalid") + end + WeakAuras.ScanEvents("PLAYER_SPELLBOOK_UPDATE") + WeakAuras.ScanEvents("RESET_COOLDOWN_MANAGER_SPELLS") + elseif e == "PLAYER_SPELLBOOK_EXCLUSION_LIST" then + for k,v in pairs(WeakAurasSaved.CustomTrash.SpellExclusion) do + print(k,v) + end + elseif e == "PLAYER_SPELLBOOK_WHITELIST_ADD" then + if GetSpellInfo(msg) then + if not WeakAurasSaved.CustomTrash.SpellWhitelist[msg] then WeakAurasSaved.CustomTrash.SpellWhitelist[msg] = 1 end + print("Spell <", msg, "> added") + else + print("Spell <", msg, "> is invalid") + end + WeakAuras.ScanEvents("PLAYER_SPELLBOOK_UPDATE") + WeakAuras.ScanEvents("RESET_COOLDOWN_MANAGER_SPELLS") + elseif e == "PLAYER_SPELLBOOK_WHITELIST_REMOVE" then + if GetSpellInfo(msg) then + if WeakAurasSaved.CustomTrash.SpellWhitelist[msg] then WeakAurasSaved.CustomTrash.SpellWhitelist[msg] = nil else print("Spell <", msg, "> is not excluded"); return end + print("Spell <", msg, "> removed") + else + print("Spell <", msg, "> is invalid") + end + WeakAuras.ScanEvents("PLAYER_SPELLBOOK_UPDATE") + WeakAuras.ScanEvents("RESET_COOLDOWN_MANAGER_SPELLS") + elseif e == "PLAYER_SPELLBOOK_WHITELIST_LIST" then + for k,v in pairs(WeakAurasSaved.CustomTrash.SpellWhitelist) do + print(k,v) + end + end end \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/SpellbookCooldowns.txt b/WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/SpellbookCooldowns.txt similarity index 100% rename from Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/SpellbookCooldowns.txt rename to WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/SpellbookCooldowns.txt diff --git a/Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Talent Cooldowns.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Talent Cooldowns.lua similarity index 96% rename from Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Talent Cooldowns.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Talent Cooldowns.lua index 5e82ebb..db1d56f 100644 --- a/Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Talent Cooldowns.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Talent Cooldowns.lua @@ -1,31 +1,31 @@ ---TSU ---SPELL_UPDATE_COOLDOWN RESET_COOLDOWN_MANAGER -function(allstates, e) - if e == "RESET_COOLDOWN_MANAGER" then - for _, state in pairs(allstates) do - state.show = false; - state.changed = true; - end - end - if not aura_env.talents then WeakAuras.ScanEvents("PLAYER_TALENT_UPDATE") end - for k,v in pairs(aura_env.talents) do - local start, duration = GetSpellCooldown(v) - local icon = GetSpellTexture(k) - local enable = 0 - if start == 0 then enable = 1 else enable = 0 end - allstates[v] = { - changed = true, - show = true, - resort = true, - progressType = "timed", - icon = icon, - enable = enable, - } - if start > 0 and duration > 1.5 then - allstates[v].expirationTime = start + duration - allstates[v].duration = duration - allstates[v].index = duration - end - end - return true +--TSU +--SPELL_UPDATE_COOLDOWN RESET_COOLDOWN_MANAGER +function(allstates, e) + if e == "RESET_COOLDOWN_MANAGER" then + for _, state in pairs(allstates) do + state.show = false; + state.changed = true; + end + end + if not aura_env.talents then WeakAuras.ScanEvents("PLAYER_TALENT_UPDATE") end + for k,v in pairs(aura_env.talents) do + local start, duration = GetSpellCooldown(v) + local icon = GetSpellTexture(k) + local enable = 0 + if start == 0 then enable = 1 else enable = 0 end + allstates[v] = { + changed = true, + show = true, + resort = true, + progressType = "timed", + icon = icon, + enable = enable, + } + if start > 0 and duration > 1.5 then + allstates[v].expirationTime = start + duration + allstates[v].duration = duration + allstates[v].index = duration + end + end + return true end \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Talent Scan.lua b/WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Talent Scan.lua similarity index 97% rename from Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Talent Scan.lua rename to WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Talent Scan.lua index 8b8cdc8..ac0f08c 100644 --- a/Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Talent Scan.lua +++ b/WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Talent Scan.lua @@ -1,17 +1,17 @@ ---PLAYER_TALENT_UPDATE -function(e, msg) - aura_env.talents = {} - for row = 1, 7 do - for column = 1, 3 do - local id, name = GetTalentInfo(row, column, 1) - local sel = select(10, GetTalentInfoByID(id)) - local sid = select(6, GetTalentInfoByID(id)) - if GetSpellBaseCooldown(sid) > 0 and sel == true then - aura_env.talents[name] = sid - end - end - end - WeakAuras.ScanEvents("RESET_COOLDOWN_MANAGER") - WeakAuras.ScanEvents("RESET_COOLDOWN_MANAGER_SPELLS") - WeakAuras.ScanEvents("PLAYER_SPELLBOOK_UPDATE") +--PLAYER_TALENT_UPDATE +function(e, msg) + aura_env.talents = {} + for row = 1, 7 do + for column = 1, 3 do + local id, name = GetTalentInfo(row, column, 1) + local sel = select(10, GetTalentInfoByID(id)) + local sid = select(6, GetTalentInfoByID(id)) + if GetSpellBaseCooldown(sid) > 0 and sel == true then + aura_env.talents[name] = sid + end + end + end + WeakAuras.ScanEvents("RESET_COOLDOWN_MANAGER") + WeakAuras.ScanEvents("RESET_COOLDOWN_MANAGER_SPELLS") + WeakAuras.ScanEvents("PLAYER_SPELLBOOK_UPDATE") end \ No newline at end of file diff --git a/Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/TalentCooldowns.txt b/WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/TalentCooldowns.txt similarity index 100% rename from Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/TalentCooldowns.txt rename to WeakAuras/Projects/ByExp/Fivver Stuff/Spellbook cooldowns and talent cooldowns/TalentCooldowns.txt diff --git a/LegionWA/CDs/Color.lua b/WeakAuras/Projects/CDs/Color.lua similarity index 96% rename from LegionWA/CDs/Color.lua rename to WeakAuras/Projects/CDs/Color.lua index e9f9a16..7259a72 100644 --- a/LegionWA/CDs/Color.lua +++ b/WeakAuras/Projects/CDs/Color.lua @@ -1,20 +1,20 @@ -function(progress, r1, g1, b1, a1, r2, g2, b2, a2) - -- if aura_env.state.IsActive then - -- ActionButton_ShowOverlayGlow(aura_env.region.icon) - -- else - -- ActionButton_HideOverlayGlow(aura_env.region.icon) - -- end - - if aura_env.statee.IsActive then - aura_env.region.icon:SetDesaturated(false) - return r1, g1, b1, a1 - end - - if aura_env.IsOnCooldown then - aura_env.region.icon:SetDesaturated(true) - return r1, g1, b1, a1 - end - - aura_env.region.icon:SetDesaturated(false) - return r2, g2, b2, 0.6 +function(progress, r1, g1, b1, a1, r2, g2, b2, a2) + -- if aura_env.state.IsActive then + -- ActionButton_ShowOverlayGlow(aura_env.region.icon) + -- else + -- ActionButton_HideOverlayGlow(aura_env.region.icon) + -- end + + if aura_env.statee.IsActive then + aura_env.region.icon:SetDesaturated(false) + return r1, g1, b1, a1 + end + + if aura_env.IsOnCooldown then + aura_env.region.icon:SetDesaturated(true) + return r1, g1, b1, a1 + end + + aura_env.region.icon:SetDesaturated(false) + return r2, g2, b2, 0.6 end \ No newline at end of file diff --git a/LegionWA/CDs/Event.lua b/WeakAuras/Projects/CDs/Event.lua similarity index 96% rename from LegionWA/CDs/Event.lua rename to WeakAuras/Projects/CDs/Event.lua index 5fc898d..cf458e9 100644 --- a/LegionWA/CDs/Event.lua +++ b/WeakAuras/Projects/CDs/Event.lua @@ -1,4 +1,4 @@ -function(allstates) - aura_env.HandleEvent(allstates) - return true +function(allstates) + aura_env.HandleEvent(allstates) + return true end \ No newline at end of file diff --git a/LegionWA/CDs/Init.lua b/WeakAuras/Projects/CDs/Init.lua similarity index 96% rename from LegionWA/CDs/Init.lua rename to WeakAuras/Projects/CDs/Init.lua index a2e2f37..ae20406 100644 --- a/LegionWA/CDs/Init.lua +++ b/WeakAuras/Projects/CDs/Init.lua @@ -1,94 +1,94 @@ -local CooldownType = { - New = function(self) - local o = {} - setmetatable(o, self) - self.__index = self - return o - end, -} - -local NullType = CooldownType:New() -NullType.GetActiveInfo = function(self) return false, 0, 0 end -local TotemType = CooldownType:New() -TotemType.GetActiveInfo = function(self) - for i = 1, 4 do - local present, name, start, duration = GetTotemInfo(i) - if present and name == self.name then return true, start, duration end - end - return false, 0, 0 -end - -local Cooldown = { - New = function(self, type, spellid, keybind) - local o = { - ["type"] = type, - ["spellid"] = spellid, - ["name"] = GetSpellInfo(spellid), - ["icon"] = GetSpellTexture(spellid), - ["keybind"] = keybind, - } - setmetatable(o, self) - self.__index = self - return o - end, - - GetCooldownInfo = function(self) - local start, duration = GetSpellCooldown(self.spellid) - return start > 0 and duration > aura_env.gcdThreshold, start, duration - end, - - GetActiveInfo = function(self) return self.type:GetActiveInfo() end, -} - -aura_env.cooldowns = { - [5394] = Cooldown:New(TotemType, 5394, "C"), -- Healing Stream Totem - [2484] = Cooldown:New(TotemType, 2484, "SY"), -- Earthbind Totem - [8143] = Cooldown:New(TotemType, 8143, "S5"), -- Tremor Totem - [8177] = Cooldown:New(TotemType, 8177, "5"), -- Grounding Totem - [108273] = Cooldown:New(TotemType, 108273, "S4"), -- Windwalk Totem - [108270] = Cooldown:New(TotemType, 108270, "SF"), -- Stone Bulwark Totem -} -aura_env.gcdThreshold = 1.5 - -aura_env.Update = function(allstates, cd) - local state = allstates[cd.spellid] or {} - - state.IsOnCooldown = cd:GetCooldownInfo() - state.IsActive = cd:GetActiveInfo() - state.Keybind = cd.keybind - - if state.IsOnCooldown and not state.IsActive then - local _, start, duration = cd:GetCooldownInfo() - state.progressType = "timed" - state.duration = duration - state.expirationTime = start + duration - elseif state.IsOnCooldown and state.IsActive then - local _, start, duration = cd:GetActiveInfo() - state.progressType = "timed" - state.duration = duration - state.expirationTime = start + duration - end - - state.changed = true - state.show = true - state.name = cd.name - state.icon = cd.icon - state.spellid = cd.spellid - allstates[cd.spellid] = state -end - -aura_env.UpdateAll = function(allstates) - for _, v in pairs(aura_env.cooldowns) do - aura_env.Update(allstates, v) - end -end - -aura_env.HandleEvent = function(allstates) - -- TODO: Handle events better - -- On cooldown begin -> trigger update on relevant spell - -- On totem die -> same - -- On buff remove - -- On debuff remove - -- On... Whatever else might happen - aura_env.UpdateAll(allstates) -end +local CooldownType = { + New = function(self) + local o = {} + setmetatable(o, self) + self.__index = self + return o + end, +} + +local NullType = CooldownType:New() +NullType.GetActiveInfo = function(self) return false, 0, 0 end +local TotemType = CooldownType:New() +TotemType.GetActiveInfo = function(self) + for i = 1, 4 do + local present, name, start, duration = GetTotemInfo(i) + if present and name == self.name then return true, start, duration end + end + return false, 0, 0 +end + +local Cooldown = { + New = function(self, type, spellid, keybind) + local o = { + ["type"] = type, + ["spellid"] = spellid, + ["name"] = GetSpellInfo(spellid), + ["icon"] = GetSpellTexture(spellid), + ["keybind"] = keybind, + } + setmetatable(o, self) + self.__index = self + return o + end, + + GetCooldownInfo = function(self) + local start, duration = GetSpellCooldown(self.spellid) + return start > 0 and duration > aura_env.gcdThreshold, start, duration + end, + + GetActiveInfo = function(self) return self.type:GetActiveInfo() end, +} + +aura_env.cooldowns = { + [5394] = Cooldown:New(TotemType, 5394, "C"), -- Healing Stream Totem + [2484] = Cooldown:New(TotemType, 2484, "SY"), -- Earthbind Totem + [8143] = Cooldown:New(TotemType, 8143, "S5"), -- Tremor Totem + [8177] = Cooldown:New(TotemType, 8177, "5"), -- Grounding Totem + [108273] = Cooldown:New(TotemType, 108273, "S4"), -- Windwalk Totem + [108270] = Cooldown:New(TotemType, 108270, "SF"), -- Stone Bulwark Totem +} +aura_env.gcdThreshold = 1.5 + +aura_env.Update = function(allstates, cd) + local state = allstates[cd.spellid] or {} + + state.IsOnCooldown = cd:GetCooldownInfo() + state.IsActive = cd:GetActiveInfo() + state.Keybind = cd.keybind + + if state.IsOnCooldown and not state.IsActive then + local _, start, duration = cd:GetCooldownInfo() + state.progressType = "timed" + state.duration = duration + state.expirationTime = start + duration + elseif state.IsOnCooldown and state.IsActive then + local _, start, duration = cd:GetActiveInfo() + state.progressType = "timed" + state.duration = duration + state.expirationTime = start + duration + end + + state.changed = true + state.show = true + state.name = cd.name + state.icon = cd.icon + state.spellid = cd.spellid + allstates[cd.spellid] = state +end + +aura_env.UpdateAll = function(allstates) + for _, v in pairs(aura_env.cooldowns) do + aura_env.Update(allstates, v) + end +end + +aura_env.HandleEvent = function(allstates) + -- TODO: Handle events better + -- On cooldown begin -> trigger update on relevant spell + -- On totem die -> same + -- On buff remove + -- On debuff remove + -- On... Whatever else might happen + aura_env.UpdateAll(allstates) +end diff --git a/FreshShit/CLEUSaver/event.lua b/WeakAuras/Projects/CLEUSaver/event.lua similarity index 96% rename from FreshShit/CLEUSaver/event.lua rename to WeakAuras/Projects/CLEUSaver/event.lua index e76d162..9a7e9c5 100644 --- a/FreshShit/CLEUSaver/event.lua +++ b/WeakAuras/Projects/CLEUSaver/event.lua @@ -1,7 +1,7 @@ ---- COMBAT_LOG_EVENT_UNFILTERED ----@param e string ----@param ... any -function(e, ...) - if e ~= "COMBAT_LOG_EVENT_UNFILTERED" then return end - aura_env.LogSpell(...) -end +--- COMBAT_LOG_EVENT_UNFILTERED +---@param e string +---@param ... any +function(e, ...) + if e ~= "COMBAT_LOG_EVENT_UNFILTERED" then return end + aura_env.LogSpell(...) +end diff --git a/FreshShit/CLEUSaver/export b/WeakAuras/Projects/CLEUSaver/export similarity index 100% rename from FreshShit/CLEUSaver/export rename to WeakAuras/Projects/CLEUSaver/export diff --git a/FreshShit/CLEUSaver/init.lua b/WeakAuras/Projects/CLEUSaver/init.lua similarity index 97% rename from FreshShit/CLEUSaver/init.lua rename to WeakAuras/Projects/CLEUSaver/init.lua index 7a693db..181c3f0 100644 --- a/FreshShit/CLEUSaver/init.lua +++ b/WeakAuras/Projects/CLEUSaver/init.lua @@ -1,22 +1,22 @@ -local function varargToString(...) - 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 -if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end -if not WeakAurasSaved.Cyka.CombatLog then WeakAurasSaved.Cyka.CombatLog = {} end ----@param spellName string ----@param spellId number ----@param subevent string ----@param ... any -aura_env.LogSpell = function(subevent, ...) - print(varargToString(subevent, ...)) - table.insert(WeakAurasSaved.Cyka.CombatLog, varargToString(subevent, ...)) -end --- /dump WeakAurasSaved.Cyka.CombatLog --- /run WeakAurasSaved.Cyka.CombatLog = {} +local function varargToString(...) + 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 +if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end +if not WeakAurasSaved.Cyka.CombatLog then WeakAurasSaved.Cyka.CombatLog = {} end +---@param spellName string +---@param spellId number +---@param subevent string +---@param ... any +aura_env.LogSpell = function(subevent, ...) + print(varargToString(subevent, ...)) + table.insert(WeakAurasSaved.Cyka.CombatLog, varargToString(subevent, ...)) +end +-- /dump WeakAurasSaved.Cyka.CombatLog +-- /run WeakAurasSaved.Cyka.CombatLog = {} diff --git a/Complete Projects/Legion/CachedNPCLevels.lua b/WeakAuras/Projects/CachedNPCLevels.lua similarity index 100% rename from Complete Projects/Legion/CachedNPCLevels.lua rename to WeakAuras/Projects/CachedNPCLevels.lua diff --git a/NewAge/CataAuraBar/CustomOptions.lua b/WeakAuras/Projects/CataAuraBar/CustomOptions.lua similarity index 96% rename from NewAge/CataAuraBar/CustomOptions.lua rename to WeakAuras/Projects/CataAuraBar/CustomOptions.lua index 276c13d..462869e 100644 --- a/NewAge/CataAuraBar/CustomOptions.lua +++ b/WeakAuras/Projects/CataAuraBar/CustomOptions.lua @@ -1,20 +1,20 @@ -{ - IsOnCooldown = { - type = "bool", - test = function(state, needle) - return state.IsOnCooldown == (needle == 1) - end, - }, - IsActive = { - type = "bool", - test = function(state, needle) - return state.IsActive == (needle == 1) - end, - }, - IsDebuff = { - type = "bool", - test = function(state, needle) - return state.IsBad == (needle == 1) - end, - }, +{ + IsOnCooldown = { + type = "bool", + test = function(state, needle) + return state.IsOnCooldown == (needle == 1) + end, + }, + IsActive = { + type = "bool", + test = function(state, needle) + return state.IsActive == (needle == 1) + end, + }, + IsDebuff = { + type = "bool", + test = function(state, needle) + return state.IsBad == (needle == 1) + end, + }, } \ No newline at end of file diff --git a/NewAge/CataAuraBar/CustomText.lua b/WeakAuras/Projects/CataAuraBar/CustomText.lua similarity index 96% rename from NewAge/CataAuraBar/CustomText.lua rename to WeakAuras/Projects/CataAuraBar/CustomText.lua index 2240411..42ce0a5 100644 --- a/NewAge/CataAuraBar/CustomText.lua +++ b/WeakAuras/Projects/CataAuraBar/CustomText.lua @@ -1,11 +1,11 @@ -function() - if aura_env.statee.pname then - output = "" - if aura_env.statee.pclass then - output = aura_env.GetClassColor(aura_env.statee.pclass) .. aura_env.statee.pname .. "\124r" - else - output = aura_env.statee.pname - end - return output - end +function() + if aura_env.statee.pname then + output = "" + if aura_env.statee.pclass then + output = aura_env.GetClassColor(aura_env.statee.pclass) .. aura_env.statee.pname .. "\124r" + else + output = aura_env.statee.pname + end + return output + end end \ No newline at end of file diff --git a/NewAge/CataAuraBar/Export b/WeakAuras/Projects/CataAuraBar/Export similarity index 100% rename from NewAge/CataAuraBar/Export rename to WeakAuras/Projects/CataAuraBar/Export diff --git a/NewAge/CataAuraBar/INIT.lua b/WeakAuras/Projects/CataAuraBar/INIT.lua similarity index 96% rename from NewAge/CataAuraBar/INIT.lua rename to WeakAuras/Projects/CataAuraBar/INIT.lua index 10f84c6..36d2958 100644 --- a/NewAge/CataAuraBar/INIT.lua +++ b/WeakAuras/Projects/CataAuraBar/INIT.lua @@ -1,294 +1,294 @@ -local function StrSplit(inputString, separator) - local outputTable = {} - for str in string.gmatch(inputString, "([^" .. separator .. "]+)") do - outputTable[#outputTable + 1] = str - end - return outputTable -end - -local function PrintTable(table) - for k, v in pairs(table) do - print(k .. " " .. v) - end -end - -aura_env.GetClassColor = function(class) - if class == "Death Knight" then - return "\124cFFC41E3A" - elseif class == "Druid" then - return "\124cFFFF7C0A" - elseif class == "Hunter" then - return "\124cFFAAD372" - elseif class == "Mage" then - return "\124cFF3FC7EB" - elseif class == "Paladin" then - return "\124cFFF48CBA" - elseif class == "Priest" then - return "\124cFFFFFFFF" - elseif class == "Rogue" then - return "\124cFFFFF468" - elseif class == "Shaman" then - return "\124cFF0070DD" - elseif class == "Warlock" then - return "\124cFF8788EE" - elseif class == "Warrior" then - return "\124cFFC69B6D" - end -end - -local Unit = { - New = function(self, unit) - o = { - ["unit"] = unit, - } - setmetatable(o, self) - self.__index = self - return o - end, - - GetAuras = function(self, auraFunc, name, type) return nil end, -} -local BasicUnit = Unit:New("player") -function BasicUnit:GetAuras(auraFunc, name) - local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(self.unit, name) - if aura ~= nil then - return { - [UnitName(self.unit)] = { - ["duration"] = duration, - ["expirationTime"] = expirationTime, - ["spellID"] = spellID, - ["stacks"] = stacks or 1, - }, - } - else - return {} - end -end --- Maybe implement some sort of throttle to group unit? -local GroupUnit = Unit:New("group") -function GroupUnit:GetAuras(auraFunc, name) - local raidMem = GetNumRaidMembers() - local num = GetNumPartyMembers() - local unitPrefix = "party" - if raidMem > num then - unitPrefix = "raid" - num = raidMem - end - auras = {} - for i = 1, num do - local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(unitPrefix .. i, name) - if aura ~= nil then - auras[UnitName(unitPrefix .. i)] = { - ["duration"] = duration, - ["expirationTime"] = expirationTime, - ["spellID"] = spellID, - ["class"] = UnitClass(unitPrefix .. i) or "Paladin", - ["stacks"] = stacks or 1, - } - end - end - if unitPrefix == "party" then - local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc("player", name) - if aura ~= nil then - auras[UnitName("player")] = { - ["duration"] = duration, - ["expirationTime"] = expirationTime, - ["spellID"] = spellID, - ["class"] = UnitClass(unitPrefix .. i) or "Paladin", - ["stacks"] = stacks or 1, - } - end - end - return auras -end --- Nameplate does not work, find out why? -local NameplateUnit = Unit:New("nameplate") -function NameplateUnit:GetAuras(auraFunc, name) - local unitPrefix = "nameplate" - auras = {} - for i = 1, 40 do - local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(auraPrefix .. i, name) - if aura ~= nil then - auras[UnitName(unitPrefix .. i)] = { - ["duration"] = duration, - ["expirationTime"] = expirationTime, - ["spellID"] = spellID, - ["stacks"] = stacks or 1, - } - end - end - return auras -end - -local UnitFactory = { - New = function(self) - o = {} - setmetatable(o, self) - self.__index = self - return o - end, - - CreateUnit = function(self, target) - target = string.lower(target) - if target == "player" or target == "target" or target == "focus" then - return BasicUnit:New(target) - elseif target == "group" then - return GroupUnit:New(target) - elseif target == "nameplate" then - return NameplateUnit:New(target) - end - end, -} -local unitFactory = UnitFactory:New() - -local Aura = { - New = function(self, entry, index) - o = { - ["name"] = entry.auraName, - ["unit"] = entry.target, - ["hasCooldown"] = entry.hasCooldown, - ["index"] = index, - ["GetAura"] = entry.GetAura, - } - setmetatable(o, self) - self.__index = self - return o - end, - - IsActive = function(self) - for k, v in pairs(self.unit:GetAuras(self.GetAura, self.name)) do - for k2, v2 in pairs(v) do - end - return true - end - return false - end, - IsOnCooldown = function(self) - if not self.hasCooldown then return false end - return GetSpellCooldown(self.name) > 0 - end, - - AddAsAura = function(self, allstates) - local auras = self.unit:GetAuras(self.GetAura, self.name) - for k, v in pairs(auras) do - duration = v.duration - expirationTime = v.expirationTime - icon = self:GetAuraIcon(v.spellID) - allstates[self.name .. k] = { - changed = true, - show = true, - resort = true, - progressType = "timed", - duration = duration, - expirationTime = expirationTime, - index = self.index, - icon = icon, - pname = k, - stacks = v.stacks, - pclass = v.class, - IsOnCooldown = true, - IsActive = true, - IsBad = self.GetAura == UnitDebuff, - } - end - end, - AddAsCooldown = function(self, allstates) - if not self.hasCooldown then return false end - startTime, duration = GetSpellCooldown(self.name) - icon = self:GetSpellIcon() - allstates[self.name] = { - changed = true, - show = true, - resort = true, - progressType = "timed", - duration = duration, - expirationTime = startTime + duration, - index = self.index, - icon = icon, - IsOnCooldown = true, - IsActive = false, - IsBad = self.GetAura == UnitDebuff, - } - end, - AddAsIcon = function(self, allstates) - if not self.hasCooldown then return false end - icon = self:GetSpellIcon() - allstates[self.name] = { - changed = true, - show = true, - resort = true, - progressType = "static", - value = 1, - total = 1, - index = self.index, - icon = icon, - IsOnCooldown = false, - IsActive = false, - IsBad = self.GetAura == UnitDebuff, - } - end, - - GetSpellIcon = function(self) return select(3, GetSpellInfo(self.name)) end, - GetAuraIcon = function(self, spellID) return select(3, GetSpellInfo(spellID)) end, -} - -local Entry = { - New = function(self, entry) - entry = self:TrimWhitespace(entry) - - local entryData = StrSplit(entry, ",") - local name = self:ReadEntryData(entryData, 1) - local type = self:ReadEntryData(entryData, 2) or "Buff" - local target = unitFactory:CreateUnit(self:ReadEntryData(entryData, 3) or "Player") - local cooldown = (self:ReadEntryData(entryData, 4) == "0") or false - cooldown = not cooldown - local GetAura = UnitBuff - - if type == "Debuff" then GetAura = UnitDebuff end - - o = { - ["entry"] = entry, - ["auraName"] = name, - ["GetAura"] = GetAura, - ["target"] = target, - ["hasCooldown"] = cooldown, - } - setmetatable(o, self) - self.__index = self - return o - end, - - ReadEntryData = function(self, entryData, index) - local str = entryData[index] - if str == nil then return nil end - str = self:TrimWhitespace(str) - return str - end, - - TrimWhitespace = function(self, str) - str = str:gsub("^[ ]+", "") - str = str:gsub("\n$", "") - str = str:gsub("[ ]+$", "") - return str - end, -} - -aura_env.auras = {} -for entry in string.gmatch(aura_env.config.spellList, "([a-zA-Z,0-9 ]+)") do - entry = Entry:New(entry) - - auraObj = Aura:New(entry, #aura_env.auras + 1) - aura_env.auras[#aura_env.auras + 1] = auraObj -end - -aura_env.HandleEvent = function(allstates) - for k, v in ipairs(aura_env.auras) do - if v:IsActive() then - v:AddAsAura(allstates) - elseif v:IsOnCooldown() and not v:IsActive() then - v:AddAsCooldown(allstates) - elseif not v:IsOnCooldown() and not v:IsActive() then - v:AddAsIcon(allstates) - end - end -end +local function StrSplit(inputString, separator) + local outputTable = {} + for str in string.gmatch(inputString, "([^" .. separator .. "]+)") do + outputTable[#outputTable + 1] = str + end + return outputTable +end + +local function PrintTable(table) + for k, v in pairs(table) do + print(k .. " " .. v) + end +end + +aura_env.GetClassColor = function(class) + if class == "Death Knight" then + return "\124cFFC41E3A" + elseif class == "Druid" then + return "\124cFFFF7C0A" + elseif class == "Hunter" then + return "\124cFFAAD372" + elseif class == "Mage" then + return "\124cFF3FC7EB" + elseif class == "Paladin" then + return "\124cFFF48CBA" + elseif class == "Priest" then + return "\124cFFFFFFFF" + elseif class == "Rogue" then + return "\124cFFFFF468" + elseif class == "Shaman" then + return "\124cFF0070DD" + elseif class == "Warlock" then + return "\124cFF8788EE" + elseif class == "Warrior" then + return "\124cFFC69B6D" + end +end + +local Unit = { + New = function(self, unit) + o = { + ["unit"] = unit, + } + setmetatable(o, self) + self.__index = self + return o + end, + + GetAuras = function(self, auraFunc, name, type) return nil end, +} +local BasicUnit = Unit:New("player") +function BasicUnit:GetAuras(auraFunc, name) + local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(self.unit, name) + if aura ~= nil then + return { + [UnitName(self.unit)] = { + ["duration"] = duration, + ["expirationTime"] = expirationTime, + ["spellID"] = spellID, + ["stacks"] = stacks or 1, + }, + } + else + return {} + end +end +-- Maybe implement some sort of throttle to group unit? +local GroupUnit = Unit:New("group") +function GroupUnit:GetAuras(auraFunc, name) + local raidMem = GetNumRaidMembers() + local num = GetNumPartyMembers() + local unitPrefix = "party" + if raidMem > num then + unitPrefix = "raid" + num = raidMem + end + auras = {} + for i = 1, num do + local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(unitPrefix .. i, name) + if aura ~= nil then + auras[UnitName(unitPrefix .. i)] = { + ["duration"] = duration, + ["expirationTime"] = expirationTime, + ["spellID"] = spellID, + ["class"] = UnitClass(unitPrefix .. i) or "Paladin", + ["stacks"] = stacks or 1, + } + end + end + if unitPrefix == "party" then + local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc("player", name) + if aura ~= nil then + auras[UnitName("player")] = { + ["duration"] = duration, + ["expirationTime"] = expirationTime, + ["spellID"] = spellID, + ["class"] = UnitClass(unitPrefix .. i) or "Paladin", + ["stacks"] = stacks or 1, + } + end + end + return auras +end +-- Nameplate does not work, find out why? +local NameplateUnit = Unit:New("nameplate") +function NameplateUnit:GetAuras(auraFunc, name) + local unitPrefix = "nameplate" + auras = {} + for i = 1, 40 do + local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(auraPrefix .. i, name) + if aura ~= nil then + auras[UnitName(unitPrefix .. i)] = { + ["duration"] = duration, + ["expirationTime"] = expirationTime, + ["spellID"] = spellID, + ["stacks"] = stacks or 1, + } + end + end + return auras +end + +local UnitFactory = { + New = function(self) + o = {} + setmetatable(o, self) + self.__index = self + return o + end, + + CreateUnit = function(self, target) + target = string.lower(target) + if target == "player" or target == "target" or target == "focus" then + return BasicUnit:New(target) + elseif target == "group" then + return GroupUnit:New(target) + elseif target == "nameplate" then + return NameplateUnit:New(target) + end + end, +} +local unitFactory = UnitFactory:New() + +local Aura = { + New = function(self, entry, index) + o = { + ["name"] = entry.auraName, + ["unit"] = entry.target, + ["hasCooldown"] = entry.hasCooldown, + ["index"] = index, + ["GetAura"] = entry.GetAura, + } + setmetatable(o, self) + self.__index = self + return o + end, + + IsActive = function(self) + for k, v in pairs(self.unit:GetAuras(self.GetAura, self.name)) do + for k2, v2 in pairs(v) do + end + return true + end + return false + end, + IsOnCooldown = function(self) + if not self.hasCooldown then return false end + return GetSpellCooldown(self.name) > 0 + end, + + AddAsAura = function(self, allstates) + local auras = self.unit:GetAuras(self.GetAura, self.name) + for k, v in pairs(auras) do + duration = v.duration + expirationTime = v.expirationTime + icon = self:GetAuraIcon(v.spellID) + allstates[self.name .. k] = { + changed = true, + show = true, + resort = true, + progressType = "timed", + duration = duration, + expirationTime = expirationTime, + index = self.index, + icon = icon, + pname = k, + stacks = v.stacks, + pclass = v.class, + IsOnCooldown = true, + IsActive = true, + IsBad = self.GetAura == UnitDebuff, + } + end + end, + AddAsCooldown = function(self, allstates) + if not self.hasCooldown then return false end + startTime, duration = GetSpellCooldown(self.name) + icon = self:GetSpellIcon() + allstates[self.name] = { + changed = true, + show = true, + resort = true, + progressType = "timed", + duration = duration, + expirationTime = startTime + duration, + index = self.index, + icon = icon, + IsOnCooldown = true, + IsActive = false, + IsBad = self.GetAura == UnitDebuff, + } + end, + AddAsIcon = function(self, allstates) + if not self.hasCooldown then return false end + icon = self:GetSpellIcon() + allstates[self.name] = { + changed = true, + show = true, + resort = true, + progressType = "static", + value = 1, + total = 1, + index = self.index, + icon = icon, + IsOnCooldown = false, + IsActive = false, + IsBad = self.GetAura == UnitDebuff, + } + end, + + GetSpellIcon = function(self) return select(3, GetSpellInfo(self.name)) end, + GetAuraIcon = function(self, spellID) return select(3, GetSpellInfo(spellID)) end, +} + +local Entry = { + New = function(self, entry) + entry = self:TrimWhitespace(entry) + + local entryData = StrSplit(entry, ",") + local name = self:ReadEntryData(entryData, 1) + local type = self:ReadEntryData(entryData, 2) or "Buff" + local target = unitFactory:CreateUnit(self:ReadEntryData(entryData, 3) or "Player") + local cooldown = (self:ReadEntryData(entryData, 4) == "0") or false + cooldown = not cooldown + local GetAura = UnitBuff + + if type == "Debuff" then GetAura = UnitDebuff end + + o = { + ["entry"] = entry, + ["auraName"] = name, + ["GetAura"] = GetAura, + ["target"] = target, + ["hasCooldown"] = cooldown, + } + setmetatable(o, self) + self.__index = self + return o + end, + + ReadEntryData = function(self, entryData, index) + local str = entryData[index] + if str == nil then return nil end + str = self:TrimWhitespace(str) + return str + end, + + TrimWhitespace = function(self, str) + str = str:gsub("^[ ]+", "") + str = str:gsub("\n$", "") + str = str:gsub("[ ]+$", "") + return str + end, +} + +aura_env.auras = {} +for entry in string.gmatch(aura_env.config.spellList, "([a-zA-Z,0-9 ]+)") do + entry = Entry:New(entry) + + auraObj = Aura:New(entry, #aura_env.auras + 1) + aura_env.auras[#aura_env.auras + 1] = auraObj +end + +aura_env.HandleEvent = function(allstates) + for k, v in ipairs(aura_env.auras) do + if v:IsActive() then + v:AddAsAura(allstates) + elseif v:IsOnCooldown() and not v:IsActive() then + v:AddAsCooldown(allstates) + elseif not v:IsOnCooldown() and not v:IsActive() then + v:AddAsIcon(allstates) + end + end +end diff --git a/NewAge/CataAuraBar/INIT_BFA.lua b/WeakAuras/Projects/CataAuraBar/INIT_BFA.lua similarity index 96% rename from NewAge/CataAuraBar/INIT_BFA.lua rename to WeakAuras/Projects/CataAuraBar/INIT_BFA.lua index 787dfcc..fa5b527 100644 --- a/NewAge/CataAuraBar/INIT_BFA.lua +++ b/WeakAuras/Projects/CataAuraBar/INIT_BFA.lua @@ -1,304 +1,304 @@ -local function StrSplit(inputString, separator) - local outputTable = {} - for str in string.gmatch(inputString, "([^" .. separator .. "]+)") do - outputTable[#outputTable + 1] = str - end - return outputTable -end - -local function PrintTable(table) - for k, v in pairs(table) do - print(k .. " " .. v) - end -end - -local function GetAuraIndex(func, unit, name) - for i = 1, 40 do - local aura = func(unit, i) - if aura == "name" then return i end - if aura == nil then return 0 end - end - return 0 -end - -aura_env.GetClassColor = function(class) - if class == "Death Knight" then - return "\124cFFC41E3A" - elseif class == "Druid" then - return "\124cFFFF7C0A" - elseif class == "Hunter" then - return "\124cFFAAD372" - elseif class == "Mage" then - return "\124cFF3FC7EB" - elseif class == "Paladin" then - return "\124cFFF48CBA" - elseif class == "Priest" then - return "\124cFFFFFFFF" - elseif class == "Rogue" then - return "\124cFFFFF468" - elseif class == "Shaman" then - return "\124cFF0070DD" - elseif class == "Warlock" then - return "\124cFF8788EE" - elseif class == "Warrior" then - return "\124cFFC69B6D" - end -end - -local Unit = { - New = function(self, unit) - o = { - ["unit"] = unit, - } - setmetatable(o, self) - self.__index = self - return o - end, - - GetAuras = function(self, auraFunc, name, type) return nil end, -} -local BasicUnit = Unit:New("player") -function BasicUnit:GetAuras(auraFunc, name) - local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(self.unit, name) - if aura ~= nil then - return { - [UnitName(self.unit)] = { - ["duration"] = duration, - ["expirationTime"] = expirationTime, - ["spellID"] = spellID, - ["stacks"] = stacks or 1, - }, - } - else - return {} - end -end --- Maybe implement some sort of throttle to group unit? -local GroupUnit = Unit:New("group") -function GroupUnit:GetAuras(auraFunc, name) - local num = GetNumGroupMembers() - local unitPrefix = "party" - if IsInRaid() then unitPrefix = "raid" end - auras = {} - for i = 1, num do - -- local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(unitPrefix .. i, name) - local auraIndex = GetAuraIndex(auraFunc, unitPrefix .. i, name) - if auraIndex > 0 then - local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = - auraFunc(unitPrefix .. i, auraIndex) - auras[UnitName(unitPrefix .. i)] = { - ["duration"] = duration, - ["expirationTime"] = expirationTime, - ["spellID"] = spellID, - ["class"] = UnitClass(unitPrefix .. i) or "Paladin", - ["stacks"] = stacks or 1, - } - end - end - if unitPrefix == "party" then - -- local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc("player", name) - local auraIndex = GetAuraIndex(auraFunc, "player", name) - if auraIndex > 0 then - local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc("player", auraIndex) - auras[UnitName("player")] = { - ["duration"] = duration, - ["expirationTime"] = expirationTime, - ["spellID"] = spellID, - ["class"] = UnitClass(unitPrefix .. i) or "Paladin", - ["stacks"] = stacks or 1, - } - end - end - return auras -end --- Nameplate does not work, find out why? -local NameplateUnit = Unit:New("nameplate") -function NameplateUnit:GetAuras(auraFunc, name) - local unitPrefix = "nameplate" - auras = {} - for i = 1, 40 do - -- local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(unitPrefix .. i, name) - local auraIndex = GetAuraIndex(auraFunc, unitPrefix .. i, name) - if auraIndex > 0 then - local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc("player", auraIndex) - auras[UnitName(unitPrefix .. i)] = { - ["duration"] = duration, - ["expirationTime"] = expirationTime, - ["spellID"] = spellID, - ["stacks"] = stacks or 1, - } - end - end - return auras -end - -local UnitFactory = { - New = function(self) - o = {} - setmetatable(o, self) - self.__index = self - return o - end, - - CreateUnit = function(self, target) - target = string.lower(target) - if target == "player" or target == "target" or target == "focus" then - return BasicUnit:New(target) - elseif target == "group" then - return GroupUnit:New(target) - elseif target == "nameplate" then - return NameplateUnit:New(target) - end - end, -} -local unitFactory = UnitFactory:New() - -local Aura = { - New = function(self, entry, index) - o = { - ["name"] = entry.auraName, - ["unit"] = entry.target, - ["hasCooldown"] = entry.hasCooldown, - ["index"] = index, - ["GetAura"] = entry.GetAura, - } - setmetatable(o, self) - self.__index = self - return o - end, - - IsActive = function(self) - for k, v in pairs(self.unit:GetAuras(self.GetAura, self.name)) do - return true - end - return false - end, - IsOnCooldown = function(self) - if not self.hasCooldown then return false end - return GetSpellCooldown(self.name) > 0 - end, - - AddAsAura = function(self, allstates) - local auras = self.unit:GetAuras(self.GetAura, self.name) - for k, v in pairs(auras) do - duration = v.duration - expirationTime = v.expirationTime - icon = self:GetAuraIcon(v.spellID) - allstates[self.name .. k] = { - changed = true, - show = true, - resort = true, - progressType = "timed", - duration = duration, - expirationTime = expirationTime, - index = self.index, - icon = icon, - pname = k, - stacks = v.stacks, - pclass = v.class, - IsOnCooldown = true, - IsActive = true, - IsBad = self.GetAura == UnitDebuff, - } - end - end, - AddAsCooldown = function(self, allstates) - if not self.hasCooldown then return false end - startTime, duration = GetSpellCooldown(self.name) - icon = self:GetSpellIcon() - allstates[self.name] = { - changed = true, - show = true, - resort = true, - progressType = "timed", - duration = duration, - expirationTime = startTime + duration, - index = self.index, - icon = icon, - IsOnCooldown = true, - IsActive = false, - IsBad = self.GetAura == UnitDebuff, - } - end, - AddAsIcon = function(self, allstates) - if not self.hasCooldown then return false end - icon = self:GetSpellIcon() - allstates[self.name] = { - changed = true, - show = true, - resort = true, - progressType = "static", - value = 1, - total = 1, - index = self.index, - icon = icon, - IsOnCooldown = false, - IsActive = false, - IsBad = self.GetAura == UnitDebuff, - } - end, - - GetSpellIcon = function(self) return select(3, GetSpellInfo(self.name)) end, - GetAuraIcon = function(self, spellID) return select(3, GetSpellInfo(spellID)) end, -} - -local Entry = { - New = function(self, entry) - entry = self:TrimWhitespace(entry) - - local entryData = StrSplit(entry, ",") - local name = self:ReadEntryData(entryData, 1) - local type = self:ReadEntryData(entryData, 2) or "Buff" - local target = unitFactory:CreateUnit(self:ReadEntryData(entryData, 3) or "Player") - local cooldown = (self:ReadEntryData(entryData, 4) == "0") or false - cooldown = not cooldown - local GetAura = UnitBuff - - if type == "Debuff" then GetAura = UnitDebuff end - - o = { - ["entry"] = entry, - ["auraName"] = name, - ["GetAura"] = GetAura, - ["target"] = target, - ["hasCooldown"] = cooldown, - } - setmetatable(o, self) - self.__index = self - return o - end, - - ReadEntryData = function(self, entryData, index) - local str = entryData[index] - if str == nil then return nil end - str = self:TrimWhitespace(str) - return str - end, - - TrimWhitespace = function(self, str) - str = str:gsub("^[ ]+", "") - str = str:gsub("\n$", "") - str = str:gsub("[ ]+$", "") - return str - end, -} - -aura_env.auras = {} -for entry in string.gmatch(aura_env.config.spellList, "([a-zA-Z,0-9 ]+)") do - entry = Entry:New(entry) - - auraObj = Aura:New(entry, #aura_env.auras + 1) - aura_env.auras[#aura_env.auras + 1] = auraObj -end - -aura_env.HandleEvent = function(allstates) - for k, v in ipairs(aura_env.auras) do - if v:IsActive() then - v:AddAsAura(allstates) - elseif v:IsOnCooldown() and not v:IsActive() then - v:AddAsCooldown(allstates) - elseif not v:IsOnCooldown() and not v:IsActive() then - v:AddAsIcon(allstates) - end - end -end +local function StrSplit(inputString, separator) + local outputTable = {} + for str in string.gmatch(inputString, "([^" .. separator .. "]+)") do + outputTable[#outputTable + 1] = str + end + return outputTable +end + +local function PrintTable(table) + for k, v in pairs(table) do + print(k .. " " .. v) + end +end + +local function GetAuraIndex(func, unit, name) + for i = 1, 40 do + local aura = func(unit, i) + if aura == "name" then return i end + if aura == nil then return 0 end + end + return 0 +end + +aura_env.GetClassColor = function(class) + if class == "Death Knight" then + return "\124cFFC41E3A" + elseif class == "Druid" then + return "\124cFFFF7C0A" + elseif class == "Hunter" then + return "\124cFFAAD372" + elseif class == "Mage" then + return "\124cFF3FC7EB" + elseif class == "Paladin" then + return "\124cFFF48CBA" + elseif class == "Priest" then + return "\124cFFFFFFFF" + elseif class == "Rogue" then + return "\124cFFFFF468" + elseif class == "Shaman" then + return "\124cFF0070DD" + elseif class == "Warlock" then + return "\124cFF8788EE" + elseif class == "Warrior" then + return "\124cFFC69B6D" + end +end + +local Unit = { + New = function(self, unit) + o = { + ["unit"] = unit, + } + setmetatable(o, self) + self.__index = self + return o + end, + + GetAuras = function(self, auraFunc, name, type) return nil end, +} +local BasicUnit = Unit:New("player") +function BasicUnit:GetAuras(auraFunc, name) + local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(self.unit, name) + if aura ~= nil then + return { + [UnitName(self.unit)] = { + ["duration"] = duration, + ["expirationTime"] = expirationTime, + ["spellID"] = spellID, + ["stacks"] = stacks or 1, + }, + } + else + return {} + end +end +-- Maybe implement some sort of throttle to group unit? +local GroupUnit = Unit:New("group") +function GroupUnit:GetAuras(auraFunc, name) + local num = GetNumGroupMembers() + local unitPrefix = "party" + if IsInRaid() then unitPrefix = "raid" end + auras = {} + for i = 1, num do + -- local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(unitPrefix .. i, name) + local auraIndex = GetAuraIndex(auraFunc, unitPrefix .. i, name) + if auraIndex > 0 then + local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = + auraFunc(unitPrefix .. i, auraIndex) + auras[UnitName(unitPrefix .. i)] = { + ["duration"] = duration, + ["expirationTime"] = expirationTime, + ["spellID"] = spellID, + ["class"] = UnitClass(unitPrefix .. i) or "Paladin", + ["stacks"] = stacks or 1, + } + end + end + if unitPrefix == "party" then + -- local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc("player", name) + local auraIndex = GetAuraIndex(auraFunc, "player", name) + if auraIndex > 0 then + local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc("player", auraIndex) + auras[UnitName("player")] = { + ["duration"] = duration, + ["expirationTime"] = expirationTime, + ["spellID"] = spellID, + ["class"] = UnitClass(unitPrefix .. i) or "Paladin", + ["stacks"] = stacks or 1, + } + end + end + return auras +end +-- Nameplate does not work, find out why? +local NameplateUnit = Unit:New("nameplate") +function NameplateUnit:GetAuras(auraFunc, name) + local unitPrefix = "nameplate" + auras = {} + for i = 1, 40 do + -- local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(unitPrefix .. i, name) + local auraIndex = GetAuraIndex(auraFunc, unitPrefix .. i, name) + if auraIndex > 0 then + local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc("player", auraIndex) + auras[UnitName(unitPrefix .. i)] = { + ["duration"] = duration, + ["expirationTime"] = expirationTime, + ["spellID"] = spellID, + ["stacks"] = stacks or 1, + } + end + end + return auras +end + +local UnitFactory = { + New = function(self) + o = {} + setmetatable(o, self) + self.__index = self + return o + end, + + CreateUnit = function(self, target) + target = string.lower(target) + if target == "player" or target == "target" or target == "focus" then + return BasicUnit:New(target) + elseif target == "group" then + return GroupUnit:New(target) + elseif target == "nameplate" then + return NameplateUnit:New(target) + end + end, +} +local unitFactory = UnitFactory:New() + +local Aura = { + New = function(self, entry, index) + o = { + ["name"] = entry.auraName, + ["unit"] = entry.target, + ["hasCooldown"] = entry.hasCooldown, + ["index"] = index, + ["GetAura"] = entry.GetAura, + } + setmetatable(o, self) + self.__index = self + return o + end, + + IsActive = function(self) + for k, v in pairs(self.unit:GetAuras(self.GetAura, self.name)) do + return true + end + return false + end, + IsOnCooldown = function(self) + if not self.hasCooldown then return false end + return GetSpellCooldown(self.name) > 0 + end, + + AddAsAura = function(self, allstates) + local auras = self.unit:GetAuras(self.GetAura, self.name) + for k, v in pairs(auras) do + duration = v.duration + expirationTime = v.expirationTime + icon = self:GetAuraIcon(v.spellID) + allstates[self.name .. k] = { + changed = true, + show = true, + resort = true, + progressType = "timed", + duration = duration, + expirationTime = expirationTime, + index = self.index, + icon = icon, + pname = k, + stacks = v.stacks, + pclass = v.class, + IsOnCooldown = true, + IsActive = true, + IsBad = self.GetAura == UnitDebuff, + } + end + end, + AddAsCooldown = function(self, allstates) + if not self.hasCooldown then return false end + startTime, duration = GetSpellCooldown(self.name) + icon = self:GetSpellIcon() + allstates[self.name] = { + changed = true, + show = true, + resort = true, + progressType = "timed", + duration = duration, + expirationTime = startTime + duration, + index = self.index, + icon = icon, + IsOnCooldown = true, + IsActive = false, + IsBad = self.GetAura == UnitDebuff, + } + end, + AddAsIcon = function(self, allstates) + if not self.hasCooldown then return false end + icon = self:GetSpellIcon() + allstates[self.name] = { + changed = true, + show = true, + resort = true, + progressType = "static", + value = 1, + total = 1, + index = self.index, + icon = icon, + IsOnCooldown = false, + IsActive = false, + IsBad = self.GetAura == UnitDebuff, + } + end, + + GetSpellIcon = function(self) return select(3, GetSpellInfo(self.name)) end, + GetAuraIcon = function(self, spellID) return select(3, GetSpellInfo(spellID)) end, +} + +local Entry = { + New = function(self, entry) + entry = self:TrimWhitespace(entry) + + local entryData = StrSplit(entry, ",") + local name = self:ReadEntryData(entryData, 1) + local type = self:ReadEntryData(entryData, 2) or "Buff" + local target = unitFactory:CreateUnit(self:ReadEntryData(entryData, 3) or "Player") + local cooldown = (self:ReadEntryData(entryData, 4) == "0") or false + cooldown = not cooldown + local GetAura = UnitBuff + + if type == "Debuff" then GetAura = UnitDebuff end + + o = { + ["entry"] = entry, + ["auraName"] = name, + ["GetAura"] = GetAura, + ["target"] = target, + ["hasCooldown"] = cooldown, + } + setmetatable(o, self) + self.__index = self + return o + end, + + ReadEntryData = function(self, entryData, index) + local str = entryData[index] + if str == nil then return nil end + str = self:TrimWhitespace(str) + return str + end, + + TrimWhitespace = function(self, str) + str = str:gsub("^[ ]+", "") + str = str:gsub("\n$", "") + str = str:gsub("[ ]+$", "") + return str + end, +} + +aura_env.auras = {} +for entry in string.gmatch(aura_env.config.spellList, "([a-zA-Z,0-9 ]+)") do + entry = Entry:New(entry) + + auraObj = Aura:New(entry, #aura_env.auras + 1) + aura_env.auras[#aura_env.auras + 1] = auraObj +end + +aura_env.HandleEvent = function(allstates) + for k, v in ipairs(aura_env.auras) do + if v:IsActive() then + v:AddAsAura(allstates) + elseif v:IsOnCooldown() and not v:IsActive() then + v:AddAsCooldown(allstates) + elseif not v:IsOnCooldown() and not v:IsActive() then + v:AddAsIcon(allstates) + end + end +end diff --git a/NewAge/CataAuraBar/README.md b/WeakAuras/Projects/CataAuraBar/README.md similarity index 96% rename from NewAge/CataAuraBar/README.md rename to WeakAuras/Projects/CataAuraBar/README.md index 4d6179b..528ead0 100644 --- a/NewAge/CataAuraBar/README.md +++ b/WeakAuras/Projects/CataAuraBar/README.md @@ -1,11 +1,11 @@ -## While aura is active show aura - -## While aura is inactive and off cooldown show icon - -## While aura is inactive and on cooldown show cooldown - -## Use tsu - -### ACTIONBAR_UPDATE_COOLDOWN when anything on bar goes on cooldown - +## While aura is active show aura + +## While aura is inactive and off cooldown show icon + +## While aura is inactive and on cooldown show cooldown + +## Use tsu + +### ACTIONBAR_UPDATE_COOLDOWN when anything on bar goes on cooldown + ### UNIT_AURA with one argument which is unit when aura fades/gets applied \ No newline at end of file diff --git a/NewAge/CataAuraBar/TSU.lua b/WeakAuras/Projects/CataAuraBar/TSU.lua similarity index 95% rename from NewAge/CataAuraBar/TSU.lua rename to WeakAuras/Projects/CataAuraBar/TSU.lua index 932438c..704ff7c 100644 --- a/NewAge/CataAuraBar/TSU.lua +++ b/WeakAuras/Projects/CataAuraBar/TSU.lua @@ -1,12 +1,12 @@ -function(allstates, e, ...) - for _,v in pairs(allstates) do - v.show = false - v.changed = true - end - - aura_env.HandleEvent(allstates) - return true -end - --- /run WeakAuras.ScanEvents("SPELL_UPDATE_COOLDOWN") +function(allstates, e, ...) + for _,v in pairs(allstates) do + v.show = false + v.changed = true + end + + aura_env.HandleEvent(allstates) + return true +end + +-- /run WeakAuras.ScanEvents("SPELL_UPDATE_COOLDOWN") -- /dump UnitAura("player", "Blessing of Might") \ No newline at end of file diff --git a/Complete Projects/Legion/Celestial Map.lua b/WeakAuras/Projects/Celestial Map.lua similarity index 97% rename from Complete Projects/Legion/Celestial Map.lua rename to WeakAuras/Projects/Celestial Map.lua index 85d246b..ba52974 100644 --- a/Complete Projects/Legion/Celestial Map.lua +++ b/WeakAuras/Projects/Celestial Map.lua @@ -1,33 +1,33 @@ ---DISPLAY -function() - time = GetTime() - starttime - local mastery_ppm = celestial_map_mastery / (time / 60) - local haste_ppm = celestial_map_haste / (time / 60) - local crit_ppm = celestial_map_crit / (time / 60) - local map_ppm = celestial_map_procs / (time / 60) - - local mastery_ppm = math.floor(mastery_ppm * 100) / 100 - local haste_ppm = math.floor(haste_ppm * 100) / 100 - local crit_ppm = math.floor(crit_ppm * 100) / 100 - local map_ppm = math.floor(map_ppm * 100) / 100 - return celestial_map_mastery .. " " .. mastery_ppm .. " mastery" .. "\n" .. celestial_map_haste .. " " .. haste_ppm .. " haste" .. "\n" .. celestial_map_crit .. " " .. crit_ppm .. " crit" .. "\n" .. celestial_map_procs .. " " .. map_ppm .. " total" -end - ---COMBAT_LOG_EVENT_UNFILTERED -function(_, _, subEvent, _, _, sourceName, _, _, _, _, _, _, ...) - if subEvent == "SPELL_AURA_APPLIED" and sourceName == UnitName("player") then - local spellId = select(1, ...) - if spellId == 225752 then - celestial_map_mastery = celestial_map_mastery + 1 - end - if spellId == 225753 then - celestial_map_haste = celestial_map_haste + 1 - end - if spellId == 225749 then - celestial_map_crit = celestial_map_crit + 1 - end - if spellId == 225752 or spellId == 225753 or spellId == 225749 then - celestial_map_procs = celestial_map_procs + 1 - end - end -end +--DISPLAY +function() + time = GetTime() - starttime + local mastery_ppm = celestial_map_mastery / (time / 60) + local haste_ppm = celestial_map_haste / (time / 60) + local crit_ppm = celestial_map_crit / (time / 60) + local map_ppm = celestial_map_procs / (time / 60) + + local mastery_ppm = math.floor(mastery_ppm * 100) / 100 + local haste_ppm = math.floor(haste_ppm * 100) / 100 + local crit_ppm = math.floor(crit_ppm * 100) / 100 + local map_ppm = math.floor(map_ppm * 100) / 100 + return celestial_map_mastery .. " " .. mastery_ppm .. " mastery" .. "\n" .. celestial_map_haste .. " " .. haste_ppm .. " haste" .. "\n" .. celestial_map_crit .. " " .. crit_ppm .. " crit" .. "\n" .. celestial_map_procs .. " " .. map_ppm .. " total" +end + +--COMBAT_LOG_EVENT_UNFILTERED +function(_, _, subEvent, _, _, sourceName, _, _, _, _, _, _, ...) + if subEvent == "SPELL_AURA_APPLIED" and sourceName == UnitName("player") then + local spellId = select(1, ...) + if spellId == 225752 then + celestial_map_mastery = celestial_map_mastery + 1 + end + if spellId == 225753 then + celestial_map_haste = celestial_map_haste + 1 + end + if spellId == 225749 then + celestial_map_crit = celestial_map_crit + 1 + end + if spellId == 225752 or spellId == 225753 or spellId == 225749 then + celestial_map_procs = celestial_map_procs + 1 + end + end +end diff --git a/FreshShit/ChannelDinger/event.lua b/WeakAuras/Projects/ChannelDinger/event.lua similarity index 96% rename from FreshShit/ChannelDinger/event.lua rename to WeakAuras/Projects/ChannelDinger/event.lua index 1ac49c9..f111568 100644 --- a/FreshShit/ChannelDinger/event.lua +++ b/WeakAuras/Projects/ChannelDinger/event.lua @@ -1,21 +1,21 @@ --- COMBAT_LOG_EVENT_UNFILTERED -function(e, ...) - local se, err = CLEUParser.GetSubevent(...) - if err ~= nil then return end - local caster, err = CLEUParser.GetSourceGUID(...) - if err ~= nil then return end - local id, err = CLEUParser.GetSpellId(...) - if err ~= nil then return end - - if caster == aura_env.player and id == 198590 then - if se == "SPELL_CAST_SUCCESS" then - aura_env.statee:set(1) - end - if se == "SPELL_DAMAGE" then - aura_env.tick:set(aura_env.tick + 1) - end - if se == "SPELL_AURA_REMOVED" then - aura_env.statee:set(0) - end - end +-- COMBAT_LOG_EVENT_UNFILTERED +function(e, ...) + local se, err = CLEUParser.GetSubevent(...) + if err ~= nil then return end + local caster, err = CLEUParser.GetSourceGUID(...) + if err ~= nil then return end + local id, err = CLEUParser.GetSpellId(...) + if err ~= nil then return end + + if caster == aura_env.player and id == 198590 then + if se == "SPELL_CAST_SUCCESS" then + aura_env.statee:set(1) + end + if se == "SPELL_DAMAGE" then + aura_env.tick:set(aura_env.tick + 1) + end + if se == "SPELL_AURA_REMOVED" then + aura_env.statee:set(0) + end + end end \ No newline at end of file diff --git a/FreshShit/ChannelDinger/export b/WeakAuras/Projects/ChannelDinger/export similarity index 100% rename from FreshShit/ChannelDinger/export rename to WeakAuras/Projects/ChannelDinger/export diff --git a/FreshShit/ChannelDinger/init.lua b/WeakAuras/Projects/ChannelDinger/init.lua similarity index 97% rename from FreshShit/ChannelDinger/init.lua rename to WeakAuras/Projects/ChannelDinger/init.lua index a279740..89c7384 100644 --- a/FreshShit/ChannelDinger/init.lua +++ b/WeakAuras/Projects/ChannelDinger/init.lua @@ -1,28 +1,28 @@ -aura_env.timer = 0 -aura_env.totalTicks = 6 -aura_env.player = UnitGUID("player") -aura_env.tick = ReactiveValue.new(0) -aura_env.statee = ReactiveValue.new(0) --- Say... --- 0 - none --- 1 - channeling - -aura_env.statee:onChange(function(newstate) - -- print("newstate ".. newstate) - if newstate == 1 then - -- print("resetting ticks") - aura_env.tick:set(0) - end -end) -aura_env.tick:onChange(function(ticks) - -- print("ticks " .. ticks) - if ticks > 0 then - 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") - end - end -end) +aura_env.timer = 0 +aura_env.totalTicks = 6 +aura_env.player = UnitGUID("player") +aura_env.tick = ReactiveValue.new(0) +aura_env.statee = ReactiveValue.new(0) +-- Say... +-- 0 - none +-- 1 - channeling + +aura_env.statee:onChange(function(newstate) + -- print("newstate ".. newstate) + if newstate == 1 then + -- print("resetting ticks") + aura_env.tick:set(0) + end +end) +aura_env.tick:onChange(function(ticks) + -- print("ticks " .. ticks) + if ticks > 0 then + 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") + end + end +end) diff --git a/FreshShit/ChannelJoiner/event.lua b/WeakAuras/Projects/ChannelJoiner/event.lua similarity index 96% rename from FreshShit/ChannelJoiner/event.lua rename to WeakAuras/Projects/ChannelJoiner/event.lua index 41542f5..7629b16 100644 --- a/FreshShit/ChannelJoiner/event.lua +++ b/WeakAuras/Projects/ChannelJoiner/event.lua @@ -1,5 +1,5 @@ --- PLAYER_ENTERING_WORLD -function() - aura_env.JoinChannels() - aura_env.ConfigureChatWindow() +-- PLAYER_ENTERING_WORLD +function() + aura_env.JoinChannels() + aura_env.ConfigureChatWindow() end \ No newline at end of file diff --git a/FreshShit/ChannelJoiner/export b/WeakAuras/Projects/ChannelJoiner/export similarity index 100% rename from FreshShit/ChannelJoiner/export rename to WeakAuras/Projects/ChannelJoiner/export diff --git a/FreshShit/ChannelJoiner/init.lua b/WeakAuras/Projects/ChannelJoiner/init.lua similarity index 96% rename from FreshShit/ChannelJoiner/init.lua rename to WeakAuras/Projects/ChannelJoiner/init.lua index 00967ba..ce12f1c 100644 --- a/FreshShit/ChannelJoiner/init.lua +++ b/WeakAuras/Projects/ChannelJoiner/init.lua @@ -1,121 +1,121 @@ ----@type string[] -local channelNames = {} ----@type string[] -local channelPasswords = {} ----@type string|nil -local err ----@type string -local chatFrameName = aura_env.config.chatFrameName or "Auto" ----@type string[] -local subscribedMessageGroups = {} ----@type string[] -local subscribedChannels = {} - ----@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 -end - -channelNames, err = StrSplit(aura_env.config.channels, ",") -if err then - print(string.format("Error splitting channels: %s", err)) - return -end - -channelPasswords, err = StrSplit(aura_env.config.channelPasswords, ",") -if err then - print(string.format("Error splitting channel passwords: %s", err)) - return -end - -subscribedMessageGroups, err = StrSplit(aura_env.config.subscribedMessageGroups, ",") -if err then - print(string.format("Error splitting subscribed message groups: %s", err)) - return -end - -subscribedChannels, err = StrSplit(aura_env.config.subscribedChannels, ",") -if err then - print(string.format("Error splitting subscribed channels: %s", err)) - return -end - -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 - JoinPermanentChannel(channelName, password) - end -end - -aura_env.FindOrCreateChatWindow = function() - for i = 1, NUM_CHAT_WINDOWS do - local name = GetChatWindowInfo(i) - if name == chatFrameName then - print(string.format("Found chat window %s", name)) - local frame = _G["ChatFrame" .. i] - if FCF_IsValidChatFrame(frame) then - print(string.format("Frame %s is valid", name)) - return frame - else - print(string.format("Frame %s is invalid", name)) - end - end - end - - print("Opening new chat window") - FCF_OpenNewWindow(chatFrameName) - for i = 1, NUM_CHAT_WINDOWS do - local name = GetChatWindowInfo(i) - if name == chatFrameName then - print(string.format("Found chat window %s", name)) - local frame = _G["ChatFrame" .. i] - if FCF_IsValidChatFrame(frame) then - print(string.format("Frame %s is valid", name)) - return frame - else - print(string.format("Frame %s is invalid", name)) - end - end - end - - return nil -end - -aura_env.ConfigureChatWindow = function() - local general = _G["ChatFrame1"] - local chatFrame = aura_env.FindOrCreateChatWindow() - if not chatFrame then - print(string.format("Chat window %s not found", chatFrameName)) - return - end - - --SetChatWindowName(chatFrame, chatFrameName) - print("Removing all message groups") - ChatFrame_RemoveAllMessageGroups(chatFrame) - print("Removing all channels") - ChatFrame_RemoveAllChannels(chatFrame) - print("Adding message groups") - for _, messageGroup in ipairs(subscribedMessageGroups) do - print(string.format("Adding message group: %s", messageGroup)) - ChatFrame_AddMessageGroup(chatFrame, strtrim(messageGroup)) - ChatFrame_RemoveMessageGroup(general, strtrim(messageGroup)) - end - print("Adding channels") - for _, channel in ipairs(subscribedChannels) do - print(string.format("Adding channel: %s", channel)) - ChatFrame_AddChannel(chatFrame, strtrim(channel)) - ChatFrame_RemoveChannel(general, strtrim(channel)) - end -end - -aura_env.ConfigureChatWindow() +---@type string[] +local channelNames = {} +---@type string[] +local channelPasswords = {} +---@type string|nil +local err +---@type string +local chatFrameName = aura_env.config.chatFrameName or "Auto" +---@type string[] +local subscribedMessageGroups = {} +---@type string[] +local subscribedChannels = {} + +---@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 +end + +channelNames, err = StrSplit(aura_env.config.channels, ",") +if err then + print(string.format("Error splitting channels: %s", err)) + return +end + +channelPasswords, err = StrSplit(aura_env.config.channelPasswords, ",") +if err then + print(string.format("Error splitting channel passwords: %s", err)) + return +end + +subscribedMessageGroups, err = StrSplit(aura_env.config.subscribedMessageGroups, ",") +if err then + print(string.format("Error splitting subscribed message groups: %s", err)) + return +end + +subscribedChannels, err = StrSplit(aura_env.config.subscribedChannels, ",") +if err then + print(string.format("Error splitting subscribed channels: %s", err)) + return +end + +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 + JoinPermanentChannel(channelName, password) + end +end + +aura_env.FindOrCreateChatWindow = function() + for i = 1, NUM_CHAT_WINDOWS do + local name = GetChatWindowInfo(i) + if name == chatFrameName then + print(string.format("Found chat window %s", name)) + local frame = _G["ChatFrame" .. i] + if FCF_IsValidChatFrame(frame) then + print(string.format("Frame %s is valid", name)) + return frame + else + print(string.format("Frame %s is invalid", name)) + end + end + end + + print("Opening new chat window") + FCF_OpenNewWindow(chatFrameName) + for i = 1, NUM_CHAT_WINDOWS do + local name = GetChatWindowInfo(i) + if name == chatFrameName then + print(string.format("Found chat window %s", name)) + local frame = _G["ChatFrame" .. i] + if FCF_IsValidChatFrame(frame) then + print(string.format("Frame %s is valid", name)) + return frame + else + print(string.format("Frame %s is invalid", name)) + end + end + end + + return nil +end + +aura_env.ConfigureChatWindow = function() + local general = _G["ChatFrame1"] + local chatFrame = aura_env.FindOrCreateChatWindow() + if not chatFrame then + print(string.format("Chat window %s not found", chatFrameName)) + return + end + + --SetChatWindowName(chatFrame, chatFrameName) + print("Removing all message groups") + ChatFrame_RemoveAllMessageGroups(chatFrame) + print("Removing all channels") + ChatFrame_RemoveAllChannels(chatFrame) + print("Adding message groups") + for _, messageGroup in ipairs(subscribedMessageGroups) do + print(string.format("Adding message group: %s", messageGroup)) + ChatFrame_AddMessageGroup(chatFrame, strtrim(messageGroup)) + ChatFrame_RemoveMessageGroup(general, strtrim(messageGroup)) + end + print("Adding channels") + for _, channel in ipairs(subscribedChannels) do + print(string.format("Adding channel: %s", channel)) + ChatFrame_AddChannel(chatFrame, strtrim(channel)) + ChatFrame_RemoveChannel(general, strtrim(channel)) + end +end + +aura_env.ConfigureChatWindow() diff --git a/Complete Projects/Legion/Chat !.lua b/WeakAuras/Projects/Chat !.lua similarity index 97% rename from Complete Projects/Legion/Chat !.lua rename to WeakAuras/Projects/Chat !.lua index 80050dc..6c2ca8b 100644 --- a/Complete Projects/Legion/Chat !.lua +++ b/WeakAuras/Projects/Chat !.lua @@ -1,44 +1,44 @@ ---CHAT_MSG_SAY CHAT_MSG_PARTY CHAT_MSG_RAID CHAT_MSG_PARTY_LEADER CHAT_MSG_RAID_LEADER CHAT_MSG_RAID_WARNING -function(...) - aura_env.msgCount = aura_env.msgCount + 1 - n = select(7, GetChatWindowInfo(3)) - if n == true then - aura_env.msgCount = 0 - aura_env.region:Hide() - end - if aura_env.msgCount > 0 and aura_env.msgCount < 10 then - aura_env.text:SetText("\124cffffffff" .. aura_env.msgCount) - if aura_env.region:IsShown() == false then - aura_env.region:Show() - end - PlaySoundFile("Interface\\AddOns\\WeakAuras\\PowerAurasMedia\\Sounds\\huh_1.ogg", "Master") - return "\124cFFFFFFFF" .. aura_env.msgCount - elseif aura_env.msgCount >= 10 then - aura_env.text:SetText("\124cffff8100" .. aura_env.msgCount) - if aura_env.region:IsShown() == false then - aura_env.region:Show() - end - PlaySoundFile("Interface\\AddOns\\WeakAuras\\PowerAurasMedia\\Sounds\\huh_1.ogg", "Master") - return "\124cFFFF0000" .. aura_env.msgCount - end -end - ---GLOBAL_TICKER -function() - n = select(7, GetChatWindowInfo(3)) - if n == true then - if aura_env.region:IsShown() == true then - aura_env.region:Hide() - end - aura_env.msgCount = 0 - end -end - ---INIT -aura_env.msgCount = 0 -aura_env.text = aura_env.region:CreateFontString(nil, "ARTWORK") -aura_env.text:SetPoint("CENTER", aura_env.region, "CENTER") -aura_env.text:SetFont("Interface\\AddOns\\WeakAuras\\Media\\Fonts\\FiraMono-Medium.ttf", 16, "OUTLINE") -aura_env.text:SetText(aura_env.msgCount) -aura_env.text:Show() -aura_env.region:Hide() +--CHAT_MSG_SAY CHAT_MSG_PARTY CHAT_MSG_RAID CHAT_MSG_PARTY_LEADER CHAT_MSG_RAID_LEADER CHAT_MSG_RAID_WARNING +function(...) + aura_env.msgCount = aura_env.msgCount + 1 + n = select(7, GetChatWindowInfo(3)) + if n == true then + aura_env.msgCount = 0 + aura_env.region:Hide() + end + if aura_env.msgCount > 0 and aura_env.msgCount < 10 then + aura_env.text:SetText("\124cffffffff" .. aura_env.msgCount) + if aura_env.region:IsShown() == false then + aura_env.region:Show() + end + PlaySoundFile("Interface\\AddOns\\WeakAuras\\PowerAurasMedia\\Sounds\\huh_1.ogg", "Master") + return "\124cFFFFFFFF" .. aura_env.msgCount + elseif aura_env.msgCount >= 10 then + aura_env.text:SetText("\124cffff8100" .. aura_env.msgCount) + if aura_env.region:IsShown() == false then + aura_env.region:Show() + end + PlaySoundFile("Interface\\AddOns\\WeakAuras\\PowerAurasMedia\\Sounds\\huh_1.ogg", "Master") + return "\124cFFFF0000" .. aura_env.msgCount + end +end + +--GLOBAL_TICKER +function() + n = select(7, GetChatWindowInfo(3)) + if n == true then + if aura_env.region:IsShown() == true then + aura_env.region:Hide() + end + aura_env.msgCount = 0 + end +end + +--INIT +aura_env.msgCount = 0 +aura_env.text = aura_env.region:CreateFontString(nil, "ARTWORK") +aura_env.text:SetPoint("CENTER", aura_env.region, "CENTER") +aura_env.text:SetFont("Interface\\AddOns\\WeakAuras\\Media\\Fonts\\FiraMono-Medium.ttf", 16, "OUTLINE") +aura_env.text:SetText(aura_env.msgCount) +aura_env.text:Show() +aura_env.region:Hide() diff --git a/Complete Projects/Legion/Chat.lua b/WeakAuras/Projects/Chat.lua similarity index 97% rename from Complete Projects/Legion/Chat.lua rename to WeakAuras/Projects/Chat.lua index cd35e29..73bc303 100644 --- a/Complete Projects/Legion/Chat.lua +++ b/WeakAuras/Projects/Chat.lua @@ -1,48 +1,48 @@ ---CHAT_MSG_SAY, CHAT_MSG_PARTY, CHAT_MSG_PARTY_LEADER, CHAT_MSG_RAID, CHAT_MSG_RAID_LEADER, CHAT_MSG_WHISPER, CHAT_MSG_WHISPER_INFORM -function(event,msg,sender) - local isAnna = 0 - local date = date() - local localtime = date:match("%d%d%/%d%d%/%d%d%s(%d%d%p%d%d%p%d%d)") - local sender = sender:match("%a+") - 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 - - if IsInGroup() and GetNumGroupMembers() == 2 and (UnitName("party1") == "Alurielle" or UnitName("party1") == "Eilishie") and event ~= "CHAT_MSG_WHISPER" and event ~= "CHAT_MSG_WHISPER_INFORM" then --If in group/raid with Anna - isAnna = 1 - else - for i = 1, 40 do - if UnitExists("nameplate" .. i) and (UnitName("nameplate" .. i) == "Alurielle" or UnitName("nameplate" .. i) == "Eilishie") then --If not in group but near Anna --TODO: only save playername and Alurielle /s - if sender == "Alurielle" or sender == "Eilishie" or sender == UnitName("player") then - isAnna = 1 - end - end - end - end - - if event == "CHAT_MSG_WHISPER" then --If whisper from Anna - if sender == "Alurielle" or sender == "Eilishie" then - isAnna = 1 - end - end - - if event == "CHAT_MSG_WHISPER_INFORM" then --If whispering Anna - if sender == "Alurielle" or sender == "Eilishie" then --Actually whisper target - local output = "[" .. localdate .. "][" .. localtime .. "]" .. "[" .. UnitName("player") .. "]: " .. msg - AnnaBoo[#AnnaBoo + 1] = output - end - end - - if isAnna == 1 then - local output = "[" .. localdate .. "][" .. localtime .. "]" .. "[" .. sender .. "]: " .. msg - AnnaBoo[#AnnaBoo + 1] = output - end +--CHAT_MSG_SAY, CHAT_MSG_PARTY, CHAT_MSG_PARTY_LEADER, CHAT_MSG_RAID, CHAT_MSG_RAID_LEADER, CHAT_MSG_WHISPER, CHAT_MSG_WHISPER_INFORM +function(event,msg,sender) + local isAnna = 0 + local date = date() + local localtime = date:match("%d%d%/%d%d%/%d%d%s(%d%d%p%d%d%p%d%d)") + local sender = sender:match("%a+") + 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 + + if IsInGroup() and GetNumGroupMembers() == 2 and (UnitName("party1") == "Alurielle" or UnitName("party1") == "Eilishie") and event ~= "CHAT_MSG_WHISPER" and event ~= "CHAT_MSG_WHISPER_INFORM" then --If in group/raid with Anna + isAnna = 1 + else + for i = 1, 40 do + if UnitExists("nameplate" .. i) and (UnitName("nameplate" .. i) == "Alurielle" or UnitName("nameplate" .. i) == "Eilishie") then --If not in group but near Anna --TODO: only save playername and Alurielle /s + if sender == "Alurielle" or sender == "Eilishie" or sender == UnitName("player") then + isAnna = 1 + end + end + end + end + + if event == "CHAT_MSG_WHISPER" then --If whisper from Anna + if sender == "Alurielle" or sender == "Eilishie" then + isAnna = 1 + end + end + + if event == "CHAT_MSG_WHISPER_INFORM" then --If whispering Anna + if sender == "Alurielle" or sender == "Eilishie" then --Actually whisper target + local output = "[" .. localdate .. "][" .. localtime .. "]" .. "[" .. UnitName("player") .. "]: " .. msg + AnnaBoo[#AnnaBoo + 1] = output + end + end + + if isAnna == 1 then + local output = "[" .. localdate .. "][" .. localtime .. "]" .. "[" .. sender .. "]: " .. msg + AnnaBoo[#AnnaBoo + 1] = output + end end \ No newline at end of file diff --git a/Complete Projects/Legion/ChatFilter.lua b/WeakAuras/Projects/ChatFilter.lua similarity index 96% rename from Complete Projects/Legion/ChatFilter.lua rename to WeakAuras/Projects/ChatFilter.lua index afd65a1..871b5fb 100644 --- a/Complete Projects/Legion/ChatFilter.lua +++ b/WeakAuras/Projects/ChatFilter.lua @@ -1,142 +1,142 @@ ---[[ -UI ChatFrame:AddChannel(chatFrame, "channelName") - Activate channel in chatFrame. -UI ChatFrame:AddMessageEventFilter("event", filterFunc) - Add a chat message filtering function (added 2.4) -UI ChatFrame:GetMessageEventFilters("event") - Retreive the list of chat message filtering functions. (added 2.4) -UI ChatFrame:OnHyperlinkShow(reference, link, button) - called when the user clicks on a chatlink. -UI ChatFrame:RemoveMessageEventFilter("event", filterFunc) - Unregister a chat message filtering function (added 2.4) -]] - ---[[ -/run ChatFilter.Words[#ChatFilter.Words + 1] = "roar" -/dump ChatFilter.Words -/dump ChatFilter.RemovedLines - -/fr -/fa -/fu ---]] - -print("POGGIES") - -SLASH_FADD1 = "/fadd" -SLASH_FADD2 = "/fa" -SlashCmdList["FADD"] = add - -SLASH_FREMOVE1 = "/fremove" -SLASH_FREMOVE2 = "/fr" -SlashCmdList["FREMOVE"] = cleanse - -SLASH_FUPDATE1 = "/fupdate" -SLASH_FUPDATE2 = "/fu" -SlashCmdList["FUPDATE"] = function(msg) - 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", -} - -if not ChatFilter then ChatFilter = {} end -if not ChatFilter.People then ChatFilter.People = {} end -if not ChatFilter.Words then ChatFilter.Words = {} end -if not ChatFilter.RemovedLines then ChatFilter.RemovedLines = {} end -if not ChatFilter.RemovedCommon then ChatFilter.RemovedCommon = {} end - ---Own filter -local function myChatFilter(self, e, 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 -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 -end - ---Add filter -local function add() - for k, v in pairs(chatEvents) do - print("Adding filter to", v) - ChatFrame_AddMessageEventFilter(v, myChatFilter) - end -end +--[[ +UI ChatFrame:AddChannel(chatFrame, "channelName") - Activate channel in chatFrame. +UI ChatFrame:AddMessageEventFilter("event", filterFunc) - Add a chat message filtering function (added 2.4) +UI ChatFrame:GetMessageEventFilters("event") - Retreive the list of chat message filtering functions. (added 2.4) +UI ChatFrame:OnHyperlinkShow(reference, link, button) - called when the user clicks on a chatlink. +UI ChatFrame:RemoveMessageEventFilter("event", filterFunc) - Unregister a chat message filtering function (added 2.4) +]] + +--[[ +/run ChatFilter.Words[#ChatFilter.Words + 1] = "roar" +/dump ChatFilter.Words +/dump ChatFilter.RemovedLines + +/fr +/fa +/fu +--]] + +print("POGGIES") + +SLASH_FADD1 = "/fadd" +SLASH_FADD2 = "/fa" +SlashCmdList["FADD"] = add + +SLASH_FREMOVE1 = "/fremove" +SLASH_FREMOVE2 = "/fr" +SlashCmdList["FREMOVE"] = cleanse + +SLASH_FUPDATE1 = "/fupdate" +SLASH_FUPDATE2 = "/fu" +SlashCmdList["FUPDATE"] = function(msg) + 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", +} + +if not ChatFilter then ChatFilter = {} end +if not ChatFilter.People then ChatFilter.People = {} end +if not ChatFilter.Words then ChatFilter.Words = {} end +if not ChatFilter.RemovedLines then ChatFilter.RemovedLines = {} end +if not ChatFilter.RemovedCommon then ChatFilter.RemovedCommon = {} end + +--Own filter +local function myChatFilter(self, e, 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 +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 +end + +--Add filter +local function add() + for k, v in pairs(chatEvents) do + print("Adding filter to", v) + ChatFrame_AddMessageEventFilter(v, myChatFilter) + end +end diff --git a/FreshShit/ChatKeyScanner/event.lua b/WeakAuras/Projects/ChatKeyScanner/event.lua similarity index 100% rename from FreshShit/ChatKeyScanner/event.lua rename to WeakAuras/Projects/ChatKeyScanner/event.lua diff --git a/FreshShit/ChatKeyScanner/export b/WeakAuras/Projects/ChatKeyScanner/export similarity index 100% rename from FreshShit/ChatKeyScanner/export rename to WeakAuras/Projects/ChatKeyScanner/export diff --git a/FreshShit/ChatKeyScanner/init.lua b/WeakAuras/Projects/ChatKeyScanner/init.lua similarity index 100% rename from FreshShit/ChatKeyScanner/init.lua rename to WeakAuras/Projects/ChatKeyScanner/init.lua diff --git a/Complete Projects/Legion/ClassMissChance.lua b/WeakAuras/Projects/ClassMissChance.lua similarity index 98% rename from Complete Projects/Legion/ClassMissChance.lua rename to WeakAuras/Projects/ClassMissChance.lua index a4e615e..91be314 100644 --- a/Complete Projects/Legion/ClassMissChance.lua +++ b/WeakAuras/Projects/ClassMissChance.lua @@ -1,95 +1,95 @@ ---Add level brackets ---Add classification brackets ---[[ -/dump WeakAurasSaved.CustomTrash.MeleeMiss -/dump WeakAurasSaved.CustomTrash.CachedLevels -]] ---COMBAT_LOG_EVENT_UNFILTERED PLAYER_FOUND -function(e, ...) - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, ...) - if se == "SPELL_CAST_SUCCESS" or se == "SWING_DAMAGE" or se == "SWING_MISSED" then - local guid = select(4, ...) - local caster = select(5, ...) - local targetGUID = select(8, ...) - local targetName = select(9, ...) - if guid:match("Player") and targetGUID:match("Creature") then - if not WeakAurasSaved.CustomTrash.CachedLevels[targetName] then - WeakAuras.ScanEvents("GET_LEVEL", targetName) - return - else - if not WeakAurasSaved.CustomTrash.MeleeMiss[guid] then - WeakAurasSaved.CustomTrash.MeleeMiss[guid] = {} - WeakAurasSaved.CustomTrash.MeleeMiss[guid].guid = guid - WeakAurasSaved.CustomTrash.MeleeMiss[guid].name = caster - if not WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]] then WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]] = {} end - WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]].hits = 0 - WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]].miss = 0 - WeakAuras.ScanEvents("ADD_PLAYER", guid) - end - end - if WeakAurasSaved.CustomTrash.CachedLevels[targetName] and WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]] then - if se == "SWING_DAMAGE" then - --Massive clusterfuck; table > playerGUID > guid, name, level bracket > hits, misses - WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]].hits = WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]].hits + 1 - elseif se == "SWING_MISSED" then - WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]].miss = WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]].miss + 1 - end - else - if WeakAurasSaved.CustomTrash.CachedLevels[targetName] then - WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]] = {["hits"] = 0, ["miss"] = 0} - else - WeakAuras.ScanEvents("GET_LEVEL", targetName) - end - end - return true - end - end - elseif e == "PLAYER_FOUND" then - local guid, class, spec = ... - if WeakAurasSaved.CustomTrash.MeleeMiss[guid] then - WeakAurasSaved.CustomTrash.MeleeMiss[guid].class = class - WeakAurasSaved.CustomTrash.MeleeMiss[guid].spec = spec - end - end -end - ---INIT -if not WeakAurasSaved.CustomTrash.MeleeMiss then WeakAurasSaved.CustomTrash.MeleeMiss = {} end -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 "\124cFF000000" end -end - ---DISPLAY -function() - local output = "" - for k, v in pairs(WeakAurasSaved.CustomTrash.MeleeMiss) do - if v.class then - output = output .. format("%s%s (%s) ", aura_env.classColor(v.class), v.name, v.spec) - for i = 110, 115 do - if v[i] and v[i].hits > 0 then - v[i].ratio = v[i].miss / v[i].hits - output = output .. format("[%d] %d / %d (%4.2f%%)", i, v[i].miss, v[i].hits, v[i].ratio * 100) .. "\n" - end - end - if v[-1] and v[-1].hits > 0 then - v[-1].ratio = v[-1].miss / v[-1].hits - output = output .. format("[%d] %d / %d (%4.2f%%)", i, v[-1].miss, v[-1].hits, v[-1].ratio * 100) .. "\n" - end - output = output .. "\n" - end - end - return output -end +--Add level brackets +--Add classification brackets +--[[ +/dump WeakAurasSaved.CustomTrash.MeleeMiss +/dump WeakAurasSaved.CustomTrash.CachedLevels +]] +--COMBAT_LOG_EVENT_UNFILTERED PLAYER_FOUND +function(e, ...) + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, ...) + if se == "SPELL_CAST_SUCCESS" or se == "SWING_DAMAGE" or se == "SWING_MISSED" then + local guid = select(4, ...) + local caster = select(5, ...) + local targetGUID = select(8, ...) + local targetName = select(9, ...) + if guid:match("Player") and targetGUID:match("Creature") then + if not WeakAurasSaved.CustomTrash.CachedLevels[targetName] then + WeakAuras.ScanEvents("GET_LEVEL", targetName) + return + else + if not WeakAurasSaved.CustomTrash.MeleeMiss[guid] then + WeakAurasSaved.CustomTrash.MeleeMiss[guid] = {} + WeakAurasSaved.CustomTrash.MeleeMiss[guid].guid = guid + WeakAurasSaved.CustomTrash.MeleeMiss[guid].name = caster + if not WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]] then WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]] = {} end + WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]].hits = 0 + WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]].miss = 0 + WeakAuras.ScanEvents("ADD_PLAYER", guid) + end + end + if WeakAurasSaved.CustomTrash.CachedLevels[targetName] and WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]] then + if se == "SWING_DAMAGE" then + --Massive clusterfuck; table > playerGUID > guid, name, level bracket > hits, misses + WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]].hits = WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]].hits + 1 + elseif se == "SWING_MISSED" then + WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]].miss = WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]].miss + 1 + end + else + if WeakAurasSaved.CustomTrash.CachedLevels[targetName] then + WeakAurasSaved.CustomTrash.MeleeMiss[guid][WeakAurasSaved.CustomTrash.CachedLevels[targetName]] = {["hits"] = 0, ["miss"] = 0} + else + WeakAuras.ScanEvents("GET_LEVEL", targetName) + end + end + return true + end + end + elseif e == "PLAYER_FOUND" then + local guid, class, spec = ... + if WeakAurasSaved.CustomTrash.MeleeMiss[guid] then + WeakAurasSaved.CustomTrash.MeleeMiss[guid].class = class + WeakAurasSaved.CustomTrash.MeleeMiss[guid].spec = spec + end + end +end + +--INIT +if not WeakAurasSaved.CustomTrash.MeleeMiss then WeakAurasSaved.CustomTrash.MeleeMiss = {} end +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 "\124cFF000000" end +end + +--DISPLAY +function() + local output = "" + for k, v in pairs(WeakAurasSaved.CustomTrash.MeleeMiss) do + if v.class then + output = output .. format("%s%s (%s) ", aura_env.classColor(v.class), v.name, v.spec) + for i = 110, 115 do + if v[i] and v[i].hits > 0 then + v[i].ratio = v[i].miss / v[i].hits + output = output .. format("[%d] %d / %d (%4.2f%%)", i, v[i].miss, v[i].hits, v[i].ratio * 100) .. "\n" + end + end + if v[-1] and v[-1].hits > 0 then + v[-1].ratio = v[-1].miss / v[-1].hits + output = output .. format("[%d] %d / %d (%4.2f%%)", i, v[-1].miss, v[-1].hits, v[-1].ratio * 100) .. "\n" + end + output = output .. "\n" + end + end + return output +end diff --git a/Complete Projects/Legion/CombatLogFindClass.lua b/WeakAuras/Projects/CombatLogFindClass.lua similarity index 96% rename from Complete Projects/Legion/CombatLogFindClass.lua rename to WeakAuras/Projects/CombatLogFindClass.lua index 2173afd..b3ffa44 100644 --- a/Complete Projects/Legion/CombatLogFindClass.lua +++ b/WeakAuras/Projects/CombatLogFindClass.lua @@ -1,105 +1,105 @@ ---[[ -Maybe improve later -Can use names from -https://wow.gamepedia.com/Specialization > spec -Can find link from scanning spellbook -Can find ID from link >> |Hspell:186265:0[Aspect of the Turtle] -Store ID and spec to table - -/run WeakAuras.ScanEvents("ADD_PLAYER", UnitGUID("target")) -WeakAuras.ScanEvents("PLAYER_FOUND", caster, aura_env.trackList[caster].class, aura_env.trackList[caster].spec) -]] ---ADD_PLAYER COMBAT_LOG_EVENT_UNFILTERED -function(e, ...) - if e == "ADD_PLAYER" then - local guid = ... - if not aura_env.trackList[guid] then - aura_env.trackList[guid] = true - end - elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, ...) - local guid = select(4, ...) - if se == "SPELL_CAST_SUCCESS" then - local sid = select(12, ...) - if aura_env.abilities[sid] and aura_env.trackList[guid] == true then - aura_env.trackList[guid] = { - ["class"] = aura_env.classes[aura_env.abilities[sid]], - ["spec"] = aura_env.abilities[sid], - } - WeakAuras.ScanEvents("PLAYER_FOUND", guid, aura_env.trackList[guid].class, aura_env.trackList[guid].spec) - aura_env.trackList[guid] = nil - --DevTools_Dump(aura_env.trackList) - end - end - end -end ---Works OK ---INIT -aura_env.trackList = {} -aura_env.abilities = { - --Warrior - [12294] = "Arms", --Mortal Strike - [209577] = "Arms", --Warbreaker A - [85288] = "Fury", --Raging Blow - [205545] = "Fury", --Odyn's Fury A - - --Paladin - [35395] = "Retribution", --Crusader Strike - [217020] = "Retribution", --Zeal - [205273] = "Retribution", --Wake of Ashes A - - --Rogue - [192759] = "Assasination", --Kingsbane A - [703] = "Assasination", --Garrote - [1329] = "Assasination", --Mutilate - [1943] = "Assasination", --Rupture - [32645] = "Assasination", --Envenom - [202665] = "Outlaw", --Curse of the Dreadblades A - [193315] = "Outlaw", --Saber Slash - [185763] = "Outlaw", --Pistol Shot - [2098] = "Outlaw", --Run Through - [199804] = "Outlaw", --Between the Eyes - [209782] = "Subelty", --Goremaws Bite A - [185313] = "Subelty", --Shadow Dance - [19452] = "Subelty", --Nightblade - [185438] = "Subelty", --Shadowstrike - [53] = "Subelty", --Backstab - - --Death Knight - [85948] = "Unholy", --Festering Strike - [47541] = "Unholy", --Death Coil - [220143] = "Unholy", --Apocalypse A - [49143] = "Frost", --Frost Strike - [49148] = "Frost", --Howling Blast - [49020] = "Frost", --Obliterate - - --Shaman - [193796] = "Enhancement", --Flametongue - [17364] = "Enhancement", --Stormstrike - [204945] = "Enhancement", --Doom Winds A - - --Monk - [113656] = "Windwalker", --Fists of Fury - [205320] = "Windwalker", --Strike of the Windlord A - - --Demon Hunter -} -aura_env.classes = { - ["Fury"] = 1, - ["Arms"] = 1, - - ["Retribution"] = 2, - - ["Assasination"] = 4, - ["Subelty"] = 4, - ["Outlaw"] = 4, - - ["Frost"] = 6, - ["Unholy"] = 6, - - ["Enhancement"] = 7, - - ["Windwalker"] = 10, - - ["Havoc"] = 12, -} +--[[ +Maybe improve later +Can use names from +https://wow.gamepedia.com/Specialization > spec +Can find link from scanning spellbook +Can find ID from link >> |Hspell:186265:0[Aspect of the Turtle] +Store ID and spec to table + +/run WeakAuras.ScanEvents("ADD_PLAYER", UnitGUID("target")) +WeakAuras.ScanEvents("PLAYER_FOUND", caster, aura_env.trackList[caster].class, aura_env.trackList[caster].spec) +]] +--ADD_PLAYER COMBAT_LOG_EVENT_UNFILTERED +function(e, ...) + if e == "ADD_PLAYER" then + local guid = ... + if not aura_env.trackList[guid] then + aura_env.trackList[guid] = true + end + elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, ...) + local guid = select(4, ...) + if se == "SPELL_CAST_SUCCESS" then + local sid = select(12, ...) + if aura_env.abilities[sid] and aura_env.trackList[guid] == true then + aura_env.trackList[guid] = { + ["class"] = aura_env.classes[aura_env.abilities[sid]], + ["spec"] = aura_env.abilities[sid], + } + WeakAuras.ScanEvents("PLAYER_FOUND", guid, aura_env.trackList[guid].class, aura_env.trackList[guid].spec) + aura_env.trackList[guid] = nil + --DevTools_Dump(aura_env.trackList) + end + end + end +end +--Works OK +--INIT +aura_env.trackList = {} +aura_env.abilities = { + --Warrior + [12294] = "Arms", --Mortal Strike + [209577] = "Arms", --Warbreaker A + [85288] = "Fury", --Raging Blow + [205545] = "Fury", --Odyn's Fury A + + --Paladin + [35395] = "Retribution", --Crusader Strike + [217020] = "Retribution", --Zeal + [205273] = "Retribution", --Wake of Ashes A + + --Rogue + [192759] = "Assasination", --Kingsbane A + [703] = "Assasination", --Garrote + [1329] = "Assasination", --Mutilate + [1943] = "Assasination", --Rupture + [32645] = "Assasination", --Envenom + [202665] = "Outlaw", --Curse of the Dreadblades A + [193315] = "Outlaw", --Saber Slash + [185763] = "Outlaw", --Pistol Shot + [2098] = "Outlaw", --Run Through + [199804] = "Outlaw", --Between the Eyes + [209782] = "Subelty", --Goremaws Bite A + [185313] = "Subelty", --Shadow Dance + [19452] = "Subelty", --Nightblade + [185438] = "Subelty", --Shadowstrike + [53] = "Subelty", --Backstab + + --Death Knight + [85948] = "Unholy", --Festering Strike + [47541] = "Unholy", --Death Coil + [220143] = "Unholy", --Apocalypse A + [49143] = "Frost", --Frost Strike + [49148] = "Frost", --Howling Blast + [49020] = "Frost", --Obliterate + + --Shaman + [193796] = "Enhancement", --Flametongue + [17364] = "Enhancement", --Stormstrike + [204945] = "Enhancement", --Doom Winds A + + --Monk + [113656] = "Windwalker", --Fists of Fury + [205320] = "Windwalker", --Strike of the Windlord A + + --Demon Hunter +} +aura_env.classes = { + ["Fury"] = 1, + ["Arms"] = 1, + + ["Retribution"] = 2, + + ["Assasination"] = 4, + ["Subelty"] = 4, + ["Outlaw"] = 4, + + ["Frost"] = 6, + ["Unholy"] = 6, + + ["Enhancement"] = 7, + + ["Windwalker"] = 10, + + ["Havoc"] = 12, +} diff --git a/FreshShit/CombopointFlasher/display.lua b/WeakAuras/Projects/CombopointFlasher/display.lua similarity index 95% rename from FreshShit/CombopointFlasher/display.lua rename to WeakAuras/Projects/CombopointFlasher/display.lua index 345eac2..0c7a819 100644 --- a/FreshShit/CombopointFlasher/display.lua +++ b/WeakAuras/Projects/CombopointFlasher/display.lua @@ -1,3 +1,3 @@ -function() - return UnitPower("player", 4) +function() + return UnitPower("player", 4) end \ No newline at end of file diff --git a/FreshShit/CombopointFlasher/event.lua b/WeakAuras/Projects/CombopointFlasher/event.lua similarity index 96% rename from FreshShit/CombopointFlasher/event.lua rename to WeakAuras/Projects/CombopointFlasher/event.lua index 3778a14..7c0287a 100644 --- a/FreshShit/CombopointFlasher/event.lua +++ b/WeakAuras/Projects/CombopointFlasher/event.lua @@ -1,9 +1,9 @@ --- UNIT_POWER_FREQUENT ----@param e string ----@param unit string ----@param power string -function(e, unit, power) - if unit ~= "player" then return end - if power ~= "COMBO_POINTS" then return end - return true +-- UNIT_POWER_FREQUENT +---@param e string +---@param unit string +---@param power string +function(e, unit, power) + if unit ~= "player" then return end + if power ~= "COMBO_POINTS" then return end + return true end \ No newline at end of file diff --git a/FreshShit/CombopointFlasher/export b/WeakAuras/Projects/CombopointFlasher/export similarity index 100% rename from FreshShit/CombopointFlasher/export rename to WeakAuras/Projects/CombopointFlasher/export diff --git a/Complete Projects/Legion/Concordance.lua b/WeakAuras/Projects/Concordance.lua similarity index 97% rename from Complete Projects/Legion/Concordance.lua rename to WeakAuras/Projects/Concordance.lua index 3bfe08c..cdbd008 100644 --- a/Complete Projects/Legion/Concordance.lua +++ b/WeakAuras/Projects/Concordance.lua @@ -1,9 +1,9 @@ -function() - local versa = GetCombatRatingBonus(CR_VERSATILITY_DAMAGE_DONE) - local rawversa = GetCombatRating(29) - local concversa = select(17, UnitBuff("player", "Concordance of the Legionfall")) or 0 - local oldversa = rawversa - concversa - local versapp = versa / rawversa - local pergranted = concversa * versapp - return string.format("+%.2f", pergranted) -end +function() + local versa = GetCombatRatingBonus(CR_VERSATILITY_DAMAGE_DONE) + local rawversa = GetCombatRating(29) + local concversa = select(17, UnitBuff("player", "Concordance of the Legionfall")) or 0 + local oldversa = rawversa - concversa + local versapp = versa / rawversa + local pergranted = concversa * versapp + return string.format("+%.2f", pergranted) +end diff --git a/LegionWA/CooldownAlert/Event.lua b/WeakAuras/Projects/CooldownAlert/Event.lua similarity index 96% rename from LegionWA/CooldownAlert/Event.lua rename to WeakAuras/Projects/CooldownAlert/Event.lua index 2ff9c4d..eaeb61e 100644 --- a/LegionWA/CooldownAlert/Event.lua +++ b/WeakAuras/Projects/CooldownAlert/Event.lua @@ -1,5 +1,5 @@ --- ACTIONBAR_UPDATE_COOLDOWN -function(allstates, e) - aura_env.processEvent(allstates) - return true +-- ACTIONBAR_UPDATE_COOLDOWN +function(allstates, e) + aura_env.processEvent(allstates) + return true end \ No newline at end of file diff --git a/LegionWA/CooldownAlert/Export b/WeakAuras/Projects/CooldownAlert/Export similarity index 100% rename from LegionWA/CooldownAlert/Export rename to WeakAuras/Projects/CooldownAlert/Export diff --git a/LegionWA/CooldownAlert/Init.lua b/WeakAuras/Projects/CooldownAlert/Init.lua similarity index 96% rename from LegionWA/CooldownAlert/Init.lua rename to WeakAuras/Projects/CooldownAlert/Init.lua index 23948ae..6d61e41 100644 --- a/LegionWA/CooldownAlert/Init.lua +++ b/WeakAuras/Projects/CooldownAlert/Init.lua @@ -1,72 +1,72 @@ -aura_env.trackedSpells = { - 20271, -- Judgement - 26573, -- Consecration - 209202, -- Eye of Tyr - 213652, -- Hand of the Protector - 31935, -- Avenger's Shield - 53600, -- Shield of the Righteous - 1044, -- Hand of Freedom - 155145, -- Arcane Torrent - 853, -- Hammer of Justice - 6940, -- Hand of Sacrifice - 31850, -- Ardent Defender - 86659, -- Guardian of Ancient Kings - 204018, -- Blessing of Spellwarding - -- - 108416, -- Dark Pact - 196447, -- Channel Demonfire - 104773, -- Unending Resolve - 196586, -- Dimensional Rift -} -local iconDisplayDuration = 0.4 -local gcdDuration = 1.5 - -aura_env.cache = {} -for k, spellId in pairs(aura_env.trackedSpells) do - aura_env.cache[spellId] = { - ready = true, - hasCharges = false, - } - if GetSpellCharges(spellId) then - aura_env.cache[spellId].hasCharges = true - aura_env.cache[spellId].charges = select(1, GetSpellCharges(spellId)) - end -end - -aura_env.processEvent = function(allstates) - for k, spellId in pairs(aura_env.trackedSpells) do - -- Handle spells with charges - local isReady - if aura_env.cache[spellId].hasCharges then - local charges = select(1, GetSpellCharges(spellId)) - if charges > aura_env.cache[spellId].charges then - isReady = true - aura_env.cache[spellId].charges = charges - else - isReady = false - aura_env.cache[spellId].charges = charges - end - else - isReady = select(2, GetSpellCooldown(spellId)) < gcdDuration - end - - if not aura_env.cache[spellId].ready and isReady then - local icon = select(3, GetSpellInfo(spellId)) - allstates[spellId] = { - show = true, - changed = true, - index = GetTime(), - resort = true, - - icon = icon, - - progressType = "timed", - expirationTime = GetTime() + iconDisplayDuration, - duration = iconDisplayDuration, - autoHide = true, - } - end - - aura_env.cache[spellId].ready = isReady - end -end +aura_env.trackedSpells = { + 20271, -- Judgement + 26573, -- Consecration + 209202, -- Eye of Tyr + 213652, -- Hand of the Protector + 31935, -- Avenger's Shield + 53600, -- Shield of the Righteous + 1044, -- Hand of Freedom + 155145, -- Arcane Torrent + 853, -- Hammer of Justice + 6940, -- Hand of Sacrifice + 31850, -- Ardent Defender + 86659, -- Guardian of Ancient Kings + 204018, -- Blessing of Spellwarding + -- + 108416, -- Dark Pact + 196447, -- Channel Demonfire + 104773, -- Unending Resolve + 196586, -- Dimensional Rift +} +local iconDisplayDuration = 0.4 +local gcdDuration = 1.5 + +aura_env.cache = {} +for k, spellId in pairs(aura_env.trackedSpells) do + aura_env.cache[spellId] = { + ready = true, + hasCharges = false, + } + if GetSpellCharges(spellId) then + aura_env.cache[spellId].hasCharges = true + aura_env.cache[spellId].charges = select(1, GetSpellCharges(spellId)) + end +end + +aura_env.processEvent = function(allstates) + for k, spellId in pairs(aura_env.trackedSpells) do + -- Handle spells with charges + local isReady + if aura_env.cache[spellId].hasCharges then + local charges = select(1, GetSpellCharges(spellId)) + if charges > aura_env.cache[spellId].charges then + isReady = true + aura_env.cache[spellId].charges = charges + else + isReady = false + aura_env.cache[spellId].charges = charges + end + else + isReady = select(2, GetSpellCooldown(spellId)) < gcdDuration + end + + if not aura_env.cache[spellId].ready and isReady then + local icon = select(3, GetSpellInfo(spellId)) + allstates[spellId] = { + show = true, + changed = true, + index = GetTime(), + resort = true, + + icon = icon, + + progressType = "timed", + expirationTime = GetTime() + iconDisplayDuration, + duration = iconDisplayDuration, + autoHide = true, + } + end + + aura_env.cache[spellId].ready = isReady + end +end diff --git a/Complete Projects/Legion/CooldownAnnouncer.lua b/WeakAuras/Projects/CooldownAnnouncer.lua similarity index 97% rename from Complete Projects/Legion/CooldownAnnouncer.lua rename to WeakAuras/Projects/CooldownAnnouncer.lua index f5f6330..fd1fff8 100644 --- a/Complete Projects/Legion/CooldownAnnouncer.lua +++ b/WeakAuras/Projects/CooldownAnnouncer.lua @@ -1,116 +1,116 @@ ---TSU ---COMBAT_LOG_EVENT_UNFILTERED GROUP_ROSTER_UPDATE COOLDOWN_TICKER -function(allstates, e, ...) - if not aura_env.ticker then - aura_env.ticker = C_Timer.NewTicker(0.05, function() WeakAuras.ScanEvents("COOLDOWN_TICKER") end) - end - if e == "COOLDOWN_TICKER" then - if allstates[1] then - if allstates[1].time + 2 < GetTime() then - allstates[1].show = false - allstates[1].changed = true - table.remove(allstates, 1) - WeakAuras.ScanEvents("COOLDOWN_TICKER") - return true - end - end - elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, ...) - if se == "SPELL_CAST_SUCCESS" then - local caster = select(5, ...) or 0 - if aura_env.raid[caster] then - local spell = select(13, ...) - if aura_env.spells[spell] then - allstates[#allstates + 1] = { - caster = caster, - spell = spell, - string = caster .. " - " .. spell, - class = aura_env.raid[caster], - time = GetTime(), - show = true, - changed = true, - } - return true - end - end - end - elseif e == "GROUP_ROSTER_UPDATE" then - local prefix = "party" - if IsInRaid() == true then - prefix = "raid" - end - aura_env.raid = {} - aura_env.raid[UnitName("player")] = select(3, UnitClass("player")) - for i = 1, GetNumGroupMembers() do - if UnitName(prefix .. i) and not aura_env.raid[UnitName(prefix .. i)] then - aura_env.raid[UnitName(prefix .. i)] = select(3, UnitClass(prefix .. i)) - print("YEET", UnitName(prefix .. i), select(3, UnitClass(prefix .. i))) - end - end - end - --DevTools_Dump(aura_env.raid) - return true -end - ---INIT -aura_env.raid = {} -aura_env.spells = { - ["Divine Shield"] = true, - ["Blessing of Spellwarding"] = true, - ["Blessing of Protection"] = true, - ["Blessing of Sacrifice"] = true, - ["Avenging Wrath"] = true, - ["Aura Mastery"] = true, - ["Guardian Spirit"] = true, - ["Divine Hymn"] = true, - ["Raise Ally"] = true, - ["Tranquility"] = true, - ["Stampeding Roar"] = true, - ["Rebirth"] = true, - ["Ice Block"] = true, - ["Deterrence"] = true, - ["Survival Instincts"] = true, - ["Anti-Magic Shell"] = true, - ["Vampiric Blood"] = true, - ["Revival"] = true, - ["Life Cocoon"] = true, - ["Diffuse Magic"] = true, - ["Lay on Hands"] = true, - ["Dispersion"] = true, - ["Evasion"] = true, - ["Cloak of Shadows"] = true, - ["Bloodlust"] = true, - ["Healing Tide Totem"] = true, - ["Soulstone"] = true, - ["Rallying Cry"] = true, - ["Power Word: Barrier"] = true, - ["Spirit Link Totem"] = true, - ["Wind Rush Totem"] = true, - ["Ancestral Guidance"] = true, - --["Hand of the Protector"] = true, - --["Healing Rain"] = true, - --["Shimmer"] = true, - --["Death and Decay"] = true, -} - ---ANIMATION -function() - if aura_env.statee then - local 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 - end - return classColor(aura_env.statee.class) - end -end +--TSU +--COMBAT_LOG_EVENT_UNFILTERED GROUP_ROSTER_UPDATE COOLDOWN_TICKER +function(allstates, e, ...) + if not aura_env.ticker then + aura_env.ticker = C_Timer.NewTicker(0.05, function() WeakAuras.ScanEvents("COOLDOWN_TICKER") end) + end + if e == "COOLDOWN_TICKER" then + if allstates[1] then + if allstates[1].time + 2 < GetTime() then + allstates[1].show = false + allstates[1].changed = true + table.remove(allstates, 1) + WeakAuras.ScanEvents("COOLDOWN_TICKER") + return true + end + end + elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, ...) + if se == "SPELL_CAST_SUCCESS" then + local caster = select(5, ...) or 0 + if aura_env.raid[caster] then + local spell = select(13, ...) + if aura_env.spells[spell] then + allstates[#allstates + 1] = { + caster = caster, + spell = spell, + string = caster .. " - " .. spell, + class = aura_env.raid[caster], + time = GetTime(), + show = true, + changed = true, + } + return true + end + end + end + elseif e == "GROUP_ROSTER_UPDATE" then + local prefix = "party" + if IsInRaid() == true then + prefix = "raid" + end + aura_env.raid = {} + aura_env.raid[UnitName("player")] = select(3, UnitClass("player")) + for i = 1, GetNumGroupMembers() do + if UnitName(prefix .. i) and not aura_env.raid[UnitName(prefix .. i)] then + aura_env.raid[UnitName(prefix .. i)] = select(3, UnitClass(prefix .. i)) + print("YEET", UnitName(prefix .. i), select(3, UnitClass(prefix .. i))) + end + end + end + --DevTools_Dump(aura_env.raid) + return true +end + +--INIT +aura_env.raid = {} +aura_env.spells = { + ["Divine Shield"] = true, + ["Blessing of Spellwarding"] = true, + ["Blessing of Protection"] = true, + ["Blessing of Sacrifice"] = true, + ["Avenging Wrath"] = true, + ["Aura Mastery"] = true, + ["Guardian Spirit"] = true, + ["Divine Hymn"] = true, + ["Raise Ally"] = true, + ["Tranquility"] = true, + ["Stampeding Roar"] = true, + ["Rebirth"] = true, + ["Ice Block"] = true, + ["Deterrence"] = true, + ["Survival Instincts"] = true, + ["Anti-Magic Shell"] = true, + ["Vampiric Blood"] = true, + ["Revival"] = true, + ["Life Cocoon"] = true, + ["Diffuse Magic"] = true, + ["Lay on Hands"] = true, + ["Dispersion"] = true, + ["Evasion"] = true, + ["Cloak of Shadows"] = true, + ["Bloodlust"] = true, + ["Healing Tide Totem"] = true, + ["Soulstone"] = true, + ["Rallying Cry"] = true, + ["Power Word: Barrier"] = true, + ["Spirit Link Totem"] = true, + ["Wind Rush Totem"] = true, + ["Ancestral Guidance"] = true, + --["Hand of the Protector"] = true, + --["Healing Rain"] = true, + --["Shimmer"] = true, + --["Death and Decay"] = true, +} + +--ANIMATION +function() + if aura_env.statee then + local 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 + end + return classColor(aura_env.statee.class) + end +end diff --git a/Complete Projects/Legion/Cross Char Quota.lua b/WeakAuras/Projects/Cross Char Quota.lua similarity index 97% rename from Complete Projects/Legion/Cross Char Quota.lua rename to WeakAuras/Projects/Cross Char Quota.lua index b420fb7..97ee737 100644 --- a/Complete Projects/Legion/Cross Char Quota.lua +++ b/WeakAuras/Projects/Cross Char Quota.lua @@ -1,66 +1,66 @@ ---PLAYER_ENTERING_WORLD BAG_UPDATE -function() - if UnitName("player") == "Pinkiepiie" then - CustomTrash.herbs = {} - local herbs = {"Starlight Rose", "Fjarnskaggl", "Foxflower", "Dreamleaf", "Aethril"} - for k,v in ipairs(herbs) do - CustomTrash.herbs[v] = GetItemCount(v, 1) --k berb v am - end - end - if UnitName("player") == "Kenono" then - aura_env.output = "" - local twok = 0 - local currentherbs = {} - for k,v in pairs(CustomTrash.herbs) do - currentherbs[k] = v - end - for k,v in pairs(CustomTrash.herbs) do - currentherbs[k] = v + GetItemCount(k, 1) - if v >= 2400 then twok = twok + 1 end - end - local function hexgrad(val, min, max) - if val >= 2400 then return "|cff0000ff" end - local function tohex(input) - local output = string.format("%x", input * 255) - return output - end - local function grad(c, min, max) - c = 1 - (((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 = "|c" .. color4 .. color1 .. color2 .. color3 - return color - end - for k,v in pairs(currentherbs) do - if twok < 5 then - aura_env.output = aura_env.output .. hexgrad(v, 0, 2400) .. k .. " " .. v .. " / 2400" .. "|r" .. "\n" - end - end - end -end - ---DISPLAY -function() - if UnitName("player") == "Kenono" then - return aura_env.output - else - return "" - end -end - ---INIT +--PLAYER_ENTERING_WORLD BAG_UPDATE +function() + if UnitName("player") == "Pinkiepiie" then + CustomTrash.herbs = {} + local herbs = {"Starlight Rose", "Fjarnskaggl", "Foxflower", "Dreamleaf", "Aethril"} + for k,v in ipairs(herbs) do + CustomTrash.herbs[v] = GetItemCount(v, 1) --k berb v am + end + end + if UnitName("player") == "Kenono" then + aura_env.output = "" + local twok = 0 + local currentherbs = {} + for k,v in pairs(CustomTrash.herbs) do + currentherbs[k] = v + end + for k,v in pairs(CustomTrash.herbs) do + currentherbs[k] = v + GetItemCount(k, 1) + if v >= 2400 then twok = twok + 1 end + end + local function hexgrad(val, min, max) + if val >= 2400 then return "|cff0000ff" end + local function tohex(input) + local output = string.format("%x", input * 255) + return output + end + local function grad(c, min, max) + c = 1 - (((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 = "|c" .. color4 .. color1 .. color2 .. color3 + return color + end + for k,v in pairs(currentherbs) do + if twok < 5 then + aura_env.output = aura_env.output .. hexgrad(v, 0, 2400) .. k .. " " .. v .. " / 2400" .. "|r" .. "\n" + end + end + end +end + +--DISPLAY +function() + if UnitName("player") == "Kenono" then + return aura_env.output + else + return "" + end +end + +--INIT aura_env.output = "" \ No newline at end of file diff --git a/Complete Projects/Legion/DAI KEY 2.lua b/WeakAuras/Projects/DAI KEY 2.lua similarity index 96% rename from Complete Projects/Legion/DAI KEY 2.lua rename to WeakAuras/Projects/DAI KEY 2.lua index d66e5dd..9e5641d 100644 --- a/Complete Projects/Legion/DAI KEY 2.lua +++ b/WeakAuras/Projects/DAI KEY 2.lua @@ -1,44 +1,44 @@ ---PLAYER_ENTERING_WORLD -function() - aura_env.output = "" - local key = - { - ["Name"] = "", - ["Level"] = 0, - } - for i = 1, 4 do - for j = 1, GetContainerNumSlots(i) do - local name = GetContainerItemLink(i, j) or "" - if name:match("key") then - local parts = {strsplit(':', name)} - local level = tonumber(parts[3]); - local name = parts[7]:gsub("%]", "") - name = name:gsub("|h|r", "") - name = name:sub(2) - key.Name = name - key.Level = level - end - end - end - aura_env.output = key.Name .. " " .. key.Level -end - ---CHAT_MSG_WHISPER -function(e, msg, sender) - local sender = sender:match("%a+") - msg = msg:lower() - if msg == "pls dai key" then - SendChatMessage(aura_env.output, "WHISPER", "Common", sender) - end -end - ---CHAT_MSG_PARTY CHAT_MSG_PARTY_LEADER -function(e, msg) - msg = msg:lower() - if msg == "pls dai key" then - SendChatMessage(aura_env.output, "PARTY") - end -end - ---INIT -aura_env.output = "" +--PLAYER_ENTERING_WORLD +function() + aura_env.output = "" + local key = + { + ["Name"] = "", + ["Level"] = 0, + } + for i = 1, 4 do + for j = 1, GetContainerNumSlots(i) do + local name = GetContainerItemLink(i, j) or "" + if name:match("key") then + local parts = {strsplit(':', name)} + local level = tonumber(parts[3]); + local name = parts[7]:gsub("%]", "") + name = name:gsub("|h|r", "") + name = name:sub(2) + key.Name = name + key.Level = level + end + end + end + aura_env.output = key.Name .. " " .. key.Level +end + +--CHAT_MSG_WHISPER +function(e, msg, sender) + local sender = sender:match("%a+") + msg = msg:lower() + if msg == "pls dai key" then + SendChatMessage(aura_env.output, "WHISPER", "Common", sender) + end +end + +--CHAT_MSG_PARTY CHAT_MSG_PARTY_LEADER +function(e, msg) + msg = msg:lower() + if msg == "pls dai key" then + SendChatMessage(aura_env.output, "PARTY") + end +end + +--INIT +aura_env.output = "" diff --git a/Complete Projects/Legion/DAI KEY.lua b/WeakAuras/Projects/DAI KEY.lua similarity index 97% rename from Complete Projects/Legion/DAI KEY.lua rename to WeakAuras/Projects/DAI KEY.lua index 7de2bbb..aa696bb 100644 --- a/Complete Projects/Legion/DAI KEY.lua +++ b/WeakAuras/Projects/DAI KEY.lua @@ -1,79 +1,79 @@ ---PLAYER_ENTERING_WORLD -function() - 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 - if day:find("0") == 1 then - day = day:gsub("0", "") - end - if month:find("0") == 1 then - month = month:gsub("0", "") - end - local class = UnitClass("player") - local localdate = day .. "." .. month .. "." .. year - WeakAurasSaved.globalCharacterRegistry[UnitName("player")] = - { - ["Key"] = "", - ["Level"] = 0, - ["Date"] = localdate, - ["Class"] = class, - } - for i = 1, 4 do - for j = 1, GetContainerNumSlots(i) do - local name = GetContainerItemLink(i, j) or "" - if name:match("key") then - local parts = {strsplit(':', name)} - local level = tonumber(parts[3]); - local name = parts[7]:gsub("%]", "") - name = name:sub(2) - WeakAurasSaved.globalCharacterRegistry[UnitName("player")].Key = name - WeakAurasSaved.globalCharacterRegistry[UnitName("player")].Level = level - end - end - end -end - ---CHAT_MSG_WHISPER -function(e, msg, sender) - local sender = sender:match("%a+") - msg = msg:lower() - if msg == "dai key" and sender == UnitName("player") then - local output = "" - for k, v in pairs(WeakAurasSaved.globalCharacterRegistry) do - local name = k - output = output .. aura_env.classColor(v.Class) .. name .. "|r " .. v.Key .. " " .. v.Level .. " - " .. v.Date .. "\n" - end - aura_env.f1.text:SetText(output) - aura_env.f1:Show() - end - if msg == "ok" and sender == UnitName("player") then - aura_env.f1:Hide() - end -end - ---INIT -aura_env.classColor = function(class) - if class == "Death Knight" then return "|cFFC41F3B" elseif - class == "Demon Hunter" then return "|cFFA330C9" elseif - class == "Druid" then return "|cFFFF7D0A" elseif - class == "Hunter" then return "|cFFABD473" elseif - class == "Mage" then return "|cFF40C7EB" elseif - class == "Monk" then return "|cFF00FF96" elseif - class == "Paladin" then return "|cFFF58CBA" elseif - class == "Priest" then return "|cFFFFFFFF" elseif - class == "Rogue" then return "|cFFFFF569" elseif - class == "Shaman" then return "|cFF0070DE" elseif - class == "Warlock" then return "|cFF8787ED" elseif - class == "Warrior" then return "|cFFC79C6E" else - return "|cFF000000" end -end -aura_env.f1 = CreateFrame("Frame", nil, UIParent) -aura_env.f1:SetWidth(100) -aura_env.f1:SetHeight(100) -aura_env.f1:SetPoint("CENTER", 0, 100) -aura_env.f1.text = aura_env.f1:CreateFontString(nil, "ARTWORK") -aura_env.f1.text:SetFont("Fonts\\ARIALN.ttf", 26, "OUTLINE") -aura_env.f1.text:SetPoint("CENTER", 0, 0) -aura_env.f1:Hide() -if not WeakAurasSaved.globalCharacterRegistry then WeakAurasSaved.globalCharacterRegistry = {} end +--PLAYER_ENTERING_WORLD +function() + 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 + if day:find("0") == 1 then + day = day:gsub("0", "") + end + if month:find("0") == 1 then + month = month:gsub("0", "") + end + local class = UnitClass("player") + local localdate = day .. "." .. month .. "." .. year + WeakAurasSaved.globalCharacterRegistry[UnitName("player")] = + { + ["Key"] = "", + ["Level"] = 0, + ["Date"] = localdate, + ["Class"] = class, + } + for i = 1, 4 do + for j = 1, GetContainerNumSlots(i) do + local name = GetContainerItemLink(i, j) or "" + if name:match("key") then + local parts = {strsplit(':', name)} + local level = tonumber(parts[3]); + local name = parts[7]:gsub("%]", "") + name = name:sub(2) + WeakAurasSaved.globalCharacterRegistry[UnitName("player")].Key = name + WeakAurasSaved.globalCharacterRegistry[UnitName("player")].Level = level + end + end + end +end + +--CHAT_MSG_WHISPER +function(e, msg, sender) + local sender = sender:match("%a+") + msg = msg:lower() + if msg == "dai key" and sender == UnitName("player") then + local output = "" + for k, v in pairs(WeakAurasSaved.globalCharacterRegistry) do + local name = k + output = output .. aura_env.classColor(v.Class) .. name .. "|r " .. v.Key .. " " .. v.Level .. " - " .. v.Date .. "\n" + end + aura_env.f1.text:SetText(output) + aura_env.f1:Show() + end + if msg == "ok" and sender == UnitName("player") then + aura_env.f1:Hide() + end +end + +--INIT +aura_env.classColor = function(class) + if class == "Death Knight" then return "|cFFC41F3B" elseif + class == "Demon Hunter" then return "|cFFA330C9" elseif + class == "Druid" then return "|cFFFF7D0A" elseif + class == "Hunter" then return "|cFFABD473" elseif + class == "Mage" then return "|cFF40C7EB" elseif + class == "Monk" then return "|cFF00FF96" elseif + class == "Paladin" then return "|cFFF58CBA" elseif + class == "Priest" then return "|cFFFFFFFF" elseif + class == "Rogue" then return "|cFFFFF569" elseif + class == "Shaman" then return "|cFF0070DE" elseif + class == "Warlock" then return "|cFF8787ED" elseif + class == "Warrior" then return "|cFFC79C6E" else + return "|cFF000000" end +end +aura_env.f1 = CreateFrame("Frame", nil, UIParent) +aura_env.f1:SetWidth(100) +aura_env.f1:SetHeight(100) +aura_env.f1:SetPoint("CENTER", 0, 100) +aura_env.f1.text = aura_env.f1:CreateFontString(nil, "ARTWORK") +aura_env.f1.text:SetFont("Fonts\\ARIALN.ttf", 26, "OUTLINE") +aura_env.f1.text:SetPoint("CENTER", 0, 0) +aura_env.f1:Hide() +if not WeakAurasSaved.globalCharacterRegistry then WeakAurasSaved.globalCharacterRegistry = {} end diff --git a/NewAge/DHRogueSniffer/sniffer.lua b/WeakAuras/Projects/DHRogueSniffer/sniffer.lua similarity index 100% rename from NewAge/DHRogueSniffer/sniffer.lua rename to WeakAuras/Projects/DHRogueSniffer/sniffer.lua diff --git a/Complete Projects/Legion/DK Bone Shield Stacks.lua b/WeakAuras/Projects/DK Bone Shield Stacks.lua similarity index 96% rename from Complete Projects/Legion/DK Bone Shield Stacks.lua rename to WeakAuras/Projects/DK Bone Shield Stacks.lua index 65e2c18..80a711d 100644 --- a/Complete Projects/Legion/DK Bone Shield Stacks.lua +++ b/WeakAuras/Projects/DK Bone Shield Stacks.lua @@ -1,26 +1,26 @@ ---COMBAT_LOG_EVENT_UNFILTERED -function(e, ...) - local se = select(2, ...) - if se == "SPELL_AURA_APPLIED" or se == "SPELL_AURA_REFRESH" or se == "SPELL_AURA_APPLIED_DOSE" or se == "SPELL_AURA_REMOVED" or se == "SPELL_AURA_REMOVED_DOSE" then - local name = select(13, ...) - local caster = select(5, ...) - if caster == UnitName("player") and name == "Bone Shield" then - aura_env.stacks = 0 - for i = 1, 40 do - local spellID = select(11, UnitBuff("player", i)) - if spellID == 195181 then - aura_env.stacks = select(4, UnitBuff("player", i)) - return true - end - end - end - end -end - ---Duration -function() - return aura_env.stacks, 10, 1 -end - ---INIT +--COMBAT_LOG_EVENT_UNFILTERED +function(e, ...) + local se = select(2, ...) + if se == "SPELL_AURA_APPLIED" or se == "SPELL_AURA_REFRESH" or se == "SPELL_AURA_APPLIED_DOSE" or se == "SPELL_AURA_REMOVED" or se == "SPELL_AURA_REMOVED_DOSE" then + local name = select(13, ...) + local caster = select(5, ...) + if caster == UnitName("player") and name == "Bone Shield" then + aura_env.stacks = 0 + for i = 1, 40 do + local spellID = select(11, UnitBuff("player", i)) + if spellID == 195181 then + aura_env.stacks = select(4, UnitBuff("player", i)) + return true + end + end + end + end +end + +--Duration +function() + return aura_env.stacks, 10, 1 +end + +--INIT aura_env.stacks = 0 \ No newline at end of file diff --git a/Complete Projects/Legion/DPS HPS.lua b/WeakAuras/Projects/DPS HPS.lua similarity index 97% rename from Complete Projects/Legion/DPS HPS.lua rename to WeakAuras/Projects/DPS HPS.lua index a50dfba..d3306f3 100644 --- a/Complete Projects/Legion/DPS HPS.lua +++ b/WeakAuras/Projects/DPS HPS.lua @@ -1,51 +1,51 @@ -COMBAT_LOG_EVENT_UNFILTERED -function(...) - local subEvent = select(3, ...) or "" - local caster = select(6, ...) or "" - local amount = select(16, ...) or 0 - local spellName = select(14, ...) or "" - if subEvent == "SWING_DAMAGE" then - amount = select(13, ...) or 0 - end - if subEvent == "SPELL_HEAL" or subEvent == "SPELL_PERIODIC_HEAL" then - overheal = select(17, ...) or 0 - amount = amount - overheal - end - if caster == UnitName("player") and amount ~= nil and (subEvent == "SPELL_HEAL" or subEvent == "SPELL_PERIODIC_HEAL") then - aura_env.healtotal = aura_env.healtotal + amount - end - if caster == UnitName("player") and amount ~= nil and (subEvent == "SPELL_DAMAGE" or subEvent == "SPELL_PERIODIC_DAMAGE" or subEvent == "SWING_DAMAGE") then - aura_env.dmgtotal = aura_env.dmgtotal + amount - end -end - -DISPLAY -function() - local output = "" - local elapsed_time = GetTime() - aura_env.starttime - aura_env.dps = math.floor(aura_env.dmgtotal / elapsed_time) - aura_env.hps = math.floor(aura_env.healtotal / elapsed_time) - if aura_env.dps > 1e3 then - output = output .. "DPS: " .. math.floor(aura_env.dps / 1e3) .. "k " - elseif - aura_env.dps > 1e6 then - output = output .. "DPS: " .. (math.floor((aura_env.dps / 1e6) / 100) * 100) .. "M " - end - if aura_env.hps > 1e3 then - output = output .. "HPS: " .. math.floor(aura_env.hps / 1e3) .. "k " - elseif - aura_env.hps > 1e6 then - output = output .. "HPS: " .. (math.floor((aura_env.hps / 1e6) / 100) * 100) .. "M " - end - if WeakAuras.IsOptionsOpen() then - return "DPS: 985k HPS: 312k" - end - return output -end - -INIT -aura_env.starttime = GetTime() -aura_env.dps = 0 -aura_env.hps = 0 -aura_env.dmgtotal = 0 -aura_env.healtotal = 0 +COMBAT_LOG_EVENT_UNFILTERED +function(...) + local subEvent = select(3, ...) or "" + local caster = select(6, ...) or "" + local amount = select(16, ...) or 0 + local spellName = select(14, ...) or "" + if subEvent == "SWING_DAMAGE" then + amount = select(13, ...) or 0 + end + if subEvent == "SPELL_HEAL" or subEvent == "SPELL_PERIODIC_HEAL" then + overheal = select(17, ...) or 0 + amount = amount - overheal + end + if caster == UnitName("player") and amount ~= nil and (subEvent == "SPELL_HEAL" or subEvent == "SPELL_PERIODIC_HEAL") then + aura_env.healtotal = aura_env.healtotal + amount + end + if caster == UnitName("player") and amount ~= nil and (subEvent == "SPELL_DAMAGE" or subEvent == "SPELL_PERIODIC_DAMAGE" or subEvent == "SWING_DAMAGE") then + aura_env.dmgtotal = aura_env.dmgtotal + amount + end +end + +DISPLAY +function() + local output = "" + local elapsed_time = GetTime() - aura_env.starttime + aura_env.dps = math.floor(aura_env.dmgtotal / elapsed_time) + aura_env.hps = math.floor(aura_env.healtotal / elapsed_time) + if aura_env.dps > 1e3 then + output = output .. "DPS: " .. math.floor(aura_env.dps / 1e3) .. "k " + elseif + aura_env.dps > 1e6 then + output = output .. "DPS: " .. (math.floor((aura_env.dps / 1e6) / 100) * 100) .. "M " + end + if aura_env.hps > 1e3 then + output = output .. "HPS: " .. math.floor(aura_env.hps / 1e3) .. "k " + elseif + aura_env.hps > 1e6 then + output = output .. "HPS: " .. (math.floor((aura_env.hps / 1e6) / 100) * 100) .. "M " + end + if WeakAuras.IsOptionsOpen() then + return "DPS: 985k HPS: 312k" + end + return output +end + +INIT +aura_env.starttime = GetTime() +aura_env.dps = 0 +aura_env.hps = 0 +aura_env.dmgtotal = 0 +aura_env.healtotal = 0 diff --git a/NewAge/DamageIntake/export b/WeakAuras/Projects/DamageIntake/export similarity index 100% rename from NewAge/DamageIntake/export rename to WeakAuras/Projects/DamageIntake/export diff --git a/NewAge/DamageIntake/init.lua b/WeakAuras/Projects/DamageIntake/init.lua similarity index 100% rename from NewAge/DamageIntake/init.lua rename to WeakAuras/Projects/DamageIntake/init.lua diff --git a/NewAge/DamageIntake/trigger.lua b/WeakAuras/Projects/DamageIntake/trigger.lua similarity index 100% rename from NewAge/DamageIntake/trigger.lua rename to WeakAuras/Projects/DamageIntake/trigger.lua diff --git a/NewAge/DamageIntake/vars.lua b/WeakAuras/Projects/DamageIntake/vars.lua similarity index 100% rename from NewAge/DamageIntake/vars.lua rename to WeakAuras/Projects/DamageIntake/vars.lua diff --git a/Complete Projects/Legion/Dangerous Spells!.lua b/WeakAuras/Projects/Dangerous Spells!.lua similarity index 97% rename from Complete Projects/Legion/Dangerous Spells!.lua rename to WeakAuras/Projects/Dangerous Spells!.lua index e292fda..32f30dd 100644 --- a/Complete Projects/Legion/Dangerous Spells!.lua +++ b/WeakAuras/Projects/Dangerous Spells!.lua @@ -1,18 +1,18 @@ -function() - local spells = {"Deceptive Strike", "Very Sinister Strike", "Raven Strike", "Coup de Grace", "Lantern of Darkness", "Power Attack", "Holy Radiance", "Thunderous Bolt"} - local output = "" - for i = 1, 40 do - local name = UnitCastingInfo("nameplate" .. i) - if name ~= nil then - for j = 1, table.getn(spells) do - if name == spells[j] then - local _, _, _, _, starTime, endTime = UnitCastingInfo("nameplate" .. i) - local castRemaining = endTime / 1000 - GetTime() - castRemaining = math.floor(castRemaining * 100) / 100 - output = output .. name .. " " .. castRemaining .. "\n" - end - end - end - end - return output -end +function() + local spells = {"Deceptive Strike", "Very Sinister Strike", "Raven Strike", "Coup de Grace", "Lantern of Darkness", "Power Attack", "Holy Radiance", "Thunderous Bolt"} + local output = "" + for i = 1, 40 do + local name = UnitCastingInfo("nameplate" .. i) + if name ~= nil then + for j = 1, table.getn(spells) do + if name == spells[j] then + local _, _, _, _, starTime, endTime = UnitCastingInfo("nameplate" .. i) + local castRemaining = endTime / 1000 - GetTime() + castRemaining = math.floor(castRemaining * 100) / 100 + output = output .. name .. " " .. castRemaining .. "\n" + end + end + end + end + return output +end diff --git a/WIP/Dargul Timer(UNTESTED).lua b/WeakAuras/Projects/Dargul Timer(UNTESTED).lua similarity index 97% rename from WIP/Dargul Timer(UNTESTED).lua rename to WeakAuras/Projects/Dargul Timer(UNTESTED).lua index b3ea64e..2fa98cf 100644 --- a/WIP/Dargul Timer(UNTESTED).lua +++ b/WeakAuras/Projects/Dargul Timer(UNTESTED).lua @@ -1,13 +1,13 @@ -function() - if UnitExists("target") and UnitName("target"):match("Dargul") then - local name,_,_,startTimeMS,endTimeMS,= UnitCastingInfo("target") - if name == "Molten Crash" then - local name,_,_,_,_,expirationTime = UnitBuff("player", "Shield of the Righteous") - expirationTime = expirationTime * 1000 - local time = GetTime() * 1000 - if endTimeMS > expirationTime then - return true - end - end - end +function() + if UnitExists("target") and UnitName("target"):match("Dargul") then + local name,_,_,startTimeMS,endTimeMS,= UnitCastingInfo("target") + if name == "Molten Crash" then + local name,_,_,_,_,expirationTime = UnitBuff("player", "Shield of the Righteous") + expirationTime = expirationTime * 1000 + local time = GetTime() * 1000 + if endTimeMS > expirationTime then + return true + end + end + end end \ No newline at end of file diff --git a/Complete Projects/Legion/DavyStone.lua b/WeakAuras/Projects/DavyStone.lua similarity index 98% rename from Complete Projects/Legion/DavyStone.lua rename to WeakAuras/Projects/DavyStone.lua index b9bd312..a581a8f 100644 --- a/Complete Projects/Legion/DavyStone.lua +++ b/WeakAuras/Projects/DavyStone.lua @@ -1,76 +1,76 @@ ---[[ -[10:59 PM] Dump: value=C_Scenario.GetCriteriaInfo(4) -[10:59 PM] [1]="Enemy Forces", -[10:59 PM] [2]=0, -[10:59 PM] [3]=false, -[10:59 PM] [4]=0, -[10:59 PM] [5]=150, -[10:59 PM] [6]=0, -[10:59 PM] [7]=0, -[10:59 PM] [8]="0%", -[10:59 PM] [9]=0, -[10:59 PM] [10]=0, -[10:59 PM] [11]=0, -[10:59 PM] [12]=false, -[10:59 PM] [13]=true -/dump UnitAffectingCombat("target") -[11:05 PM] [1]="Creature-0-5-1492-0-97043-0000007794" - -local criteriaString, _, _, quantity, totalQuantity, _, _, quantityString, _, _, _, _, isWeightedProgress = C_Scenario.GetCriteriaInfo(criteriaIndex) - -Idea is to find % for pulled mob(s) and add to current % display both -]] - ---ON SOME EVENTS -function() - --Very inefficient maybe fix later who cares - local scenarioType = select(10, C_Scenario.GetInfo()) - if scenarioType == 1 then - local numCriteria = select(3, C_Scenario.GetStepInfo()) - for i = 1, numCriteria do - local name = C_Scenario.GetCriteriaInfo(i) - if name == "Enemy Forces" then - aura_env.davystone.totalProgress = select(5, C_Scenario.GetCriteriaInfo(i)) - aura_env.davystone.currentProgress = select(8, C_Scenario.GetCriteriaInfo(i)) - aura_env.davystone.currentProgress = aura_env.davystone.currentProgress:gsub("%%", "") - aura_env.davystone.currentProgress = tonumber(aura_env.davystone.currentProgress) - aura_env.davystone.newProgress = select(8, C_Scenario.GetCriteriaInfo(i)) - aura_env.davystone.newProgress = aura_env.davystone.newProgress:gsub("%%", "") - aura_env.davystone.newProgress = tonumber(aura_env.davystone.newProgress) - end - end - for i = 1, 40 do - local unit = "nameplate" .. i - if UnitAffectingCombat(unit) then - local GUID = UnitGUID(unit) - local ID = GUID:match("%w+%-%d*%-%d*%-%d*%-%d*-(%d*)") - ID = tonumber(ID) - if aura_env.IDthing[ID] then - local progress = aura_env.IDthing[ID] - aura_env.davystone.newProgress = aura_env.davystone.newProgress + progress - end - end - end - end -end - ---DISPLAY -function() - if aura_env.davystone.currentProgress and aura_env.davystone.totalProgress and aura_env.davystone.newProgress then - return aura_env.round((aura_env.davystone.currentProgress / aura_env.davystone.totalProgress) * 100, 2) .. " " .. aura_env.round((aura_env.davystone.newProgress / aura_env.davystone.totalProgress) * 100, 2) - end -end - ---INIT -aura_env.davystone = {} -aura_env.IDthing = { - [104277] = 4, [102253] = 4, [98954] = 4, [97185] = 10, [113537] = 10, [101839] = 4, [104246] = 4, [104278] = 10, [97170] = 4, [113506] = 4, [105617] = 4, [105633] = 4, [102095] = 4, [105952] = 6, [97043] = 4, [102430] = 1, [98366] = 4, [95832] = 2, [91784] = 1, [104295] = 1, [102781] = 4, [102287] = 10, [98733] = 4, [102351] = 1, [96247] = 1, [111563] = 4, [95769] = 4, [113699] = 8, [91785] = 2, [100216] = 4, [97172] = 1, [100248] = 4, [114289] = 4, [105651] = 4, [105699] = 3, [105715] = 4, [98368] = 4, [95834] = 2, [99675] = 4, [91786] = 4, [98177] = 12, [97173] = 4, [100249] = 1, [105636] = 4, [95771] = 4, [96584] = 4, [97365] = 4, [91006] = 4, [91787] = 2, [109908] = 10, [96664] = 2, [105876] = 1, [95947] = 4, [99804] = 2, [95772] = 4, [99358] = 4, [101414] = 2, [106785] = 1, [104251] = 4, [100713] = 4, [105845] = 1, [98243] = 4, [98275] = 4, [96028] = 4, [99359] = 3, [105766] = 1, [91008] = 4, [91789] = 4, [98435] = 7, [98706] = 6, [100539] = 4, [98770] = 4, [105703] = 1, [102404] = 4, [99360] = 9, [97097] = 4, [91790] = 4, [98691] = 4, [102277] = 4, [98293] = 1, [98813] = 4, [105720] = 4, [91001] = 4, [101074] = 1, [100532] = 1, [99678] = 4, [104270] = 8, [101991] = 4, [98732] = 1, [98963] = 1, [91792] = 10, [100526] = 4, [98246] = 4, [106546] = 4, [98533] = 10, [105705] = 4, [96015] = 4, [104300] = 4, [113536] = 10, [92610] = 4, [99649] = 12, [98900] = 4, [98406] = 4, [98677] = 1, [91808] = 1, [92350] = 4, [102295] = 10, [102566] = 12, [113998] = 4, [97163] = 3, [102104] = 4, [102375] = 3, [105706] = 8, [95861] = 4, [97068] = 5, [96574] = 5, [97171] = 10, [102094] = 4, [102232] = 4, [99188] = 4, [99307] = 12, [105682] = 8, [92538] = 1, [100527] = 3, [102583] = 4, [96587] = 4, [98280] = 4, [98370] = 4, [98538] = 10, [106786] = 1, [113111] = 1, [91783] = 4, [99956] = 4, [114712] = 3, [91332] = 4, [91794] = 1, [96657] = 12, [98426] = 4, [97197] = 2, [91796] = 10, [98759] = 4, [105915] = 4, [98919] = 4, [99908] = 1, [98362] = 10, [95779] = 10, [99365] = 4, [99891] = 5, [101437] = 1, [90998] = 4, [106059] = 4, [98425] = 4, [96640] = 2, [97182] = 6, [98728] = 7, [95939] = 10, [100529] = 1, [98776] = 4, [105422] = 1, [98792] = 4, [90997] = 4, [105629] = 1, [99366] = 4, [97087] = 2, [101438] = 4, [97119] = 1, [96608] = 2, [98681] = 6, [97677] = 1, [96480] = 1, [102584] = 4, [95842] = 2, [100364] = 4, [101072] = 1, [94968] = 5, [98973] = 1, [102788] = 4, [96934] = 2, [98756] = 4, [107288] = 1, [91793] = 1, [91000] = 8, [91781] = 4, [91782] = 10, [97678] = 8, [98926] = 4, [97200] = 4, [100531] = 8, [92387] = 4, [99033] = 4, [95920] = 2, [98810] = 6, [95766] = 4, [105921] = 4, [96677] = 2, [101679] = 4, [114288] = 4, [96611] = 2, [106787] = 1 -} -aura_env.round = function(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 +--[[ +[10:59 PM] Dump: value=C_Scenario.GetCriteriaInfo(4) +[10:59 PM] [1]="Enemy Forces", +[10:59 PM] [2]=0, +[10:59 PM] [3]=false, +[10:59 PM] [4]=0, +[10:59 PM] [5]=150, +[10:59 PM] [6]=0, +[10:59 PM] [7]=0, +[10:59 PM] [8]="0%", +[10:59 PM] [9]=0, +[10:59 PM] [10]=0, +[10:59 PM] [11]=0, +[10:59 PM] [12]=false, +[10:59 PM] [13]=true +/dump UnitAffectingCombat("target") +[11:05 PM] [1]="Creature-0-5-1492-0-97043-0000007794" + +local criteriaString, _, _, quantity, totalQuantity, _, _, quantityString, _, _, _, _, isWeightedProgress = C_Scenario.GetCriteriaInfo(criteriaIndex) + +Idea is to find % for pulled mob(s) and add to current % display both +]] + +--ON SOME EVENTS +function() + --Very inefficient maybe fix later who cares + local scenarioType = select(10, C_Scenario.GetInfo()) + if scenarioType == 1 then + local numCriteria = select(3, C_Scenario.GetStepInfo()) + for i = 1, numCriteria do + local name = C_Scenario.GetCriteriaInfo(i) + if name == "Enemy Forces" then + aura_env.davystone.totalProgress = select(5, C_Scenario.GetCriteriaInfo(i)) + aura_env.davystone.currentProgress = select(8, C_Scenario.GetCriteriaInfo(i)) + aura_env.davystone.currentProgress = aura_env.davystone.currentProgress:gsub("%%", "") + aura_env.davystone.currentProgress = tonumber(aura_env.davystone.currentProgress) + aura_env.davystone.newProgress = select(8, C_Scenario.GetCriteriaInfo(i)) + aura_env.davystone.newProgress = aura_env.davystone.newProgress:gsub("%%", "") + aura_env.davystone.newProgress = tonumber(aura_env.davystone.newProgress) + end + end + for i = 1, 40 do + local unit = "nameplate" .. i + if UnitAffectingCombat(unit) then + local GUID = UnitGUID(unit) + local ID = GUID:match("%w+%-%d*%-%d*%-%d*%-%d*-(%d*)") + ID = tonumber(ID) + if aura_env.IDthing[ID] then + local progress = aura_env.IDthing[ID] + aura_env.davystone.newProgress = aura_env.davystone.newProgress + progress + end + end + end + end +end + +--DISPLAY +function() + if aura_env.davystone.currentProgress and aura_env.davystone.totalProgress and aura_env.davystone.newProgress then + return aura_env.round((aura_env.davystone.currentProgress / aura_env.davystone.totalProgress) * 100, 2) .. " " .. aura_env.round((aura_env.davystone.newProgress / aura_env.davystone.totalProgress) * 100, 2) + end +end + +--INIT +aura_env.davystone = {} +aura_env.IDthing = { + [104277] = 4, [102253] = 4, [98954] = 4, [97185] = 10, [113537] = 10, [101839] = 4, [104246] = 4, [104278] = 10, [97170] = 4, [113506] = 4, [105617] = 4, [105633] = 4, [102095] = 4, [105952] = 6, [97043] = 4, [102430] = 1, [98366] = 4, [95832] = 2, [91784] = 1, [104295] = 1, [102781] = 4, [102287] = 10, [98733] = 4, [102351] = 1, [96247] = 1, [111563] = 4, [95769] = 4, [113699] = 8, [91785] = 2, [100216] = 4, [97172] = 1, [100248] = 4, [114289] = 4, [105651] = 4, [105699] = 3, [105715] = 4, [98368] = 4, [95834] = 2, [99675] = 4, [91786] = 4, [98177] = 12, [97173] = 4, [100249] = 1, [105636] = 4, [95771] = 4, [96584] = 4, [97365] = 4, [91006] = 4, [91787] = 2, [109908] = 10, [96664] = 2, [105876] = 1, [95947] = 4, [99804] = 2, [95772] = 4, [99358] = 4, [101414] = 2, [106785] = 1, [104251] = 4, [100713] = 4, [105845] = 1, [98243] = 4, [98275] = 4, [96028] = 4, [99359] = 3, [105766] = 1, [91008] = 4, [91789] = 4, [98435] = 7, [98706] = 6, [100539] = 4, [98770] = 4, [105703] = 1, [102404] = 4, [99360] = 9, [97097] = 4, [91790] = 4, [98691] = 4, [102277] = 4, [98293] = 1, [98813] = 4, [105720] = 4, [91001] = 4, [101074] = 1, [100532] = 1, [99678] = 4, [104270] = 8, [101991] = 4, [98732] = 1, [98963] = 1, [91792] = 10, [100526] = 4, [98246] = 4, [106546] = 4, [98533] = 10, [105705] = 4, [96015] = 4, [104300] = 4, [113536] = 10, [92610] = 4, [99649] = 12, [98900] = 4, [98406] = 4, [98677] = 1, [91808] = 1, [92350] = 4, [102295] = 10, [102566] = 12, [113998] = 4, [97163] = 3, [102104] = 4, [102375] = 3, [105706] = 8, [95861] = 4, [97068] = 5, [96574] = 5, [97171] = 10, [102094] = 4, [102232] = 4, [99188] = 4, [99307] = 12, [105682] = 8, [92538] = 1, [100527] = 3, [102583] = 4, [96587] = 4, [98280] = 4, [98370] = 4, [98538] = 10, [106786] = 1, [113111] = 1, [91783] = 4, [99956] = 4, [114712] = 3, [91332] = 4, [91794] = 1, [96657] = 12, [98426] = 4, [97197] = 2, [91796] = 10, [98759] = 4, [105915] = 4, [98919] = 4, [99908] = 1, [98362] = 10, [95779] = 10, [99365] = 4, [99891] = 5, [101437] = 1, [90998] = 4, [106059] = 4, [98425] = 4, [96640] = 2, [97182] = 6, [98728] = 7, [95939] = 10, [100529] = 1, [98776] = 4, [105422] = 1, [98792] = 4, [90997] = 4, [105629] = 1, [99366] = 4, [97087] = 2, [101438] = 4, [97119] = 1, [96608] = 2, [98681] = 6, [97677] = 1, [96480] = 1, [102584] = 4, [95842] = 2, [100364] = 4, [101072] = 1, [94968] = 5, [98973] = 1, [102788] = 4, [96934] = 2, [98756] = 4, [107288] = 1, [91793] = 1, [91000] = 8, [91781] = 4, [91782] = 10, [97678] = 8, [98926] = 4, [97200] = 4, [100531] = 8, [92387] = 4, [99033] = 4, [95920] = 2, [98810] = 6, [95766] = 4, [105921] = 4, [96677] = 2, [101679] = 4, [114288] = 4, [96611] = 2, [106787] = 1 +} +aura_env.round = function(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 diff --git a/Complete Projects/Legion/DavyStone2.lua b/WeakAuras/Projects/DavyStone2.lua similarity index 97% rename from Complete Projects/Legion/DavyStone2.lua rename to WeakAuras/Projects/DavyStone2.lua index 59d87e4..241aaad 100644 --- a/Complete Projects/Legion/DavyStone2.lua +++ b/WeakAuras/Projects/DavyStone2.lua @@ -1,411 +1,411 @@ ---ON SOME EVENTS ---Maybe make trigger on ~~party kill?~~ threat update? ++ namepalteadd/remove - ---[[ -1) On threat update calculate new % -2) On namepalte added look for threat and calculate new % -3) Organize into table with GUIDs -4) On nameplate remove remove from table // PARTY_KILL -5) Make more table for current pull, projected pull and projected total -6) Organize mobs into groups before bosses or before other groups big ??? -]] - ---[[ -1) UNIT_THREAT_LIST_UPDATE (e, u) -Get GUID -Put into table -ggez - -2) NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED (e, u) -UnitDetailedThreatSituation("player", "target") empty result for no threat - -[02:49 PM] Dump: value=UnitDetailedThreatSituation("player", "target") -[02:49 PM] [1]=true, --Boolean - returns true if the unit is primary threat target of the mob (is tanking), or false otherwise -[02:49 PM] [2]=3, --Integer - returns the threat status for the unit on the mob, or nil if unit is not on mob's threat table. (3 = securely tanking, 2 = insecurely tanking, 1 = not tanking but higher threat than tank, 0 = not tanking and lower threat than tank) -[02:49 PM] [3]=100, --Number - returns the unit's threat on the mob as a percentage of the amount required to pull aggro, scaled according to the unit's range from the mob. At 100 the unit will pull aggro. Returns 100 if the unit is tanking and nil if the unit is not on the mob's threat list. -[02:49 PM] [4]=255, --Number - returns the unit's threat as a percentage of the tank's current threat. Returns nil if the unit is not on the mob's threat list. -[02:49 PM] [5]=0 --Number - returns the unit's total threat on the mob -for threat - -3) can say table 1: GUID in current pull - use 1) and 2) -table 2: GUID to be pull on mouseover - use previous work -table 3: global GUID to be pull - reset with GUID of boss or pre boss maybe? -look for PARTY_KILL se in CLEU maybe? (for progress table ?) -]] - ---[[ -Random garbage info - -[10:59 AM] Dump: value=C_Scenario.GetInfo() -[10:59 AM] [1]="Black Rook Hold", -[10:59 AM] [2]=1, -[10:59 AM] [3]=1, -[10:59 AM] [4]=3, -[10:59 AM] [5]=false, -[10:59 AM] [6]=false, -[10:59 AM] [7]=false, -[10:59 AM] [8]=0, -[10:59 AM] [9]=0, -[10:59 AM] [10]=1, -[10:59 AM] [11]="UNKNOWN" - -[11:01 AM] Dump: value=C_Scenario.GetStepInfo() -[11:01 AM] [1]="Black Rook Hold", -[11:01 AM] [2]="Deal with the restless spirits of Black Rook Hold.", -[11:01 AM] [3]=5, --Num criteria -[11:01 AM] [4]=false, -[11:01 AM] [5]=false, -[11:01 AM] [6]=false, -[11:01 AM] [7]=0, -[11:01 AM] [8]={ -[11:01 AM] }, -[11:01 AM] [10]=0 - -/run local numCriteria = select(3, C_Scenario.GetStepInfo()); for i = 1, numCriteria do print(C_Scenario.GetCriteriaInfo(i)) end -[11:02 AM] Amalgam of Souls 165 false 0 1 0 1832 0 29464 0 0 false false -[11:02 AM] Illysanna Ravencrest 165 false 0 1 0 1833 0 29465 0 0 false false -[11:02 AM] Smashspite the Hateful 165 false 0 1 0 1834 0 29466 0 0 false false -[11:02 AM] Lord Kurtalos Ravencrest 165 false 0 1 0 1835 0 29467 0 0 false false -[11:02 AM] Enemy Forces 0 false 0 360 0 0 0% 0 0 0 false true - -[11:06 AM] Dump: value=C_Scenario.GetCriteriaInfo(5) -[11:06 AM] [1]="Enemy Forces", -[11:06 AM] [2]=0, -[11:06 AM] [3]=false, -[11:06 AM] [4]=0, -[11:06 AM] [5]=360, -[11:06 AM] [6]=0, -[11:06 AM] [7]=0, -[11:06 AM] [8]="0%", -[11:06 AM] [9]=0, -[11:06 AM] [10]=0, -[11:06 AM] [11]=0, -[11:06 AM] [12]=false, -[11:06 AM] [13]=true --Weighted progress? -]] - ---[[ -So far got the mouseover counting working -Get total mob # from C_Scenario.GetCriteriaInfo(5 -Add mouseover to # -Add pulls & nameplate fuckery from above into same # -Maybe use global table for all -Should be easy -Maybe add textures and attach to namepaltes of planned units??? Pog POG -]] -function() - --Very inefficient maybe fix later who cares - local scenarioType = select(10, C_Scenario.GetInfo()) - if scenarioType == 1 then - local numCriteria = select(3, C_Scenario.GetStepInfo()) - for i = 1, numCriteria do - local name = C_Scenario.GetCriteriaInfo(i) - if name == "Enemy Forces" then - aura_env.davystone.totalProgress = select(5, C_Scenario.GetCriteriaInfo(i)) - aura_env.davystone.currentProgress = select(8, C_Scenario.GetCriteriaInfo(i)) - aura_env.davystone.currentProgress = aura_env.davystone.currentProgress:gsub("%%", "") - aura_env.davystone.currentProgress = tonumber(aura_env.davystone.currentProgress) - aura_env.davystone.newProgress = select(8, C_Scenario.GetCriteriaInfo(i)) - aura_env.davystone.newProgress = aura_env.davystone.newProgress:gsub("%%", "") - aura_env.davystone.newProgress = tonumber(aura_env.davystone.newProgress) - end - end - for i = 1, 40 do - local unit = "nameplate" .. i - if UnitAffectingCombat(unit) then - local GUID = UnitGUID(unit) - local ID = GUID:match("%w+%-%d*%-%d*%-%d*%-%d*-(%d*)") - ID = tonumber(ID) - if aura_env.IDthing[ID] then - local progress = aura_env.IDthing[ID] - aura_env.davystone.newProgress = aura_env.davystone.newProgress + progress - end - end - end - end -end - ---DISPLAY -function() - if aura_env.davystone.currentProgress and aura_env.davystone.totalProgress and aura_env.davystone.newProgress then - return aura_env.round((aura_env.davystone.currentProgress / aura_env.davystone.totalProgress) * 100, 2) .. " " .. aura_env.round((aura_env.davystone.newProgress / aura_env.davystone.totalProgress) * 100, 2) - end -end - ---INIT -local OnTooltipSetUnit = function() - print("yeet") - local name, unit = tooltip:GetUnit() - local guid = unit and UnitGUID(unit) - if guid then - local type, zero, server_id, instance_id, zone_uid, npc_id, spawn_uid = strsplit("-", guid) - npc_id = tonumber(npc_id) - print(npcID) - end -end -GameTooltip:HookScript("OnTooltipSetUnit", OnTooltipSetUnit) -aura_env.davystone = {} -aura_env.IDthing = { - [104277] = 4, [102253] = 4, [98954] = 4, [97185] = 10, [113537] = 10, [101839] = 4, [104246] = 4, [104278] = 10, [97170] = 4, [113506] = 4, [105617] = 4, [105633] = 4, [102095] = 4, [105952] = 6, [97043] = 4, [102430] = 1, [98366] = 4, [95832] = 2, [91784] = 1, [104295] = 1, [102781] = 4, [102287] = 10, [98733] = 4, [102351] = 1, [96247] = 1, [111563] = 4, [95769] = 4, [113699] = 8, [91785] = 2, [100216] = 4, [97172] = 1, [100248] = 4, [114289] = 4, [105651] = 4, [105699] = 3, [105715] = 4, [98368] = 4, [95834] = 2, [99675] = 4, [91786] = 4, [98177] = 12, [97173] = 4, [100249] = 1, [105636] = 4, [95771] = 4, [96584] = 4, [97365] = 4, [91006] = 4, [91787] = 2, [109908] = 10, [96664] = 2, [105876] = 1, [95947] = 4, [99804] = 2, [95772] = 4, [99358] = 4, [101414] = 2, [106785] = 1, [104251] = 4, [100713] = 4, [105845] = 1, [98243] = 4, [98275] = 4, [96028] = 4, [99359] = 3, [105766] = 1, [91008] = 4, [91789] = 4, [98435] = 7, [98706] = 6, [100539] = 4, [98770] = 4, [105703] = 1, [102404] = 4, [99360] = 9, [97097] = 4, [91790] = 4, [98691] = 4, [102277] = 4, [98293] = 1, [98813] = 4, [105720] = 4, [91001] = 4, [101074] = 1, [100532] = 1, [99678] = 4, [104270] = 8, [101991] = 4, [98732] = 1, [98963] = 1, [91792] = 10, [100526] = 4, [98246] = 4, [106546] = 4, [98533] = 10, [105705] = 4, [96015] = 4, [104300] = 4, [113536] = 10, [92610] = 4, [99649] = 12, [98900] = 4, [98406] = 4, [98677] = 1, [91808] = 1, [92350] = 4, [102295] = 10, [102566] = 12, [113998] = 4, [97163] = 3, [102104] = 4, [102375] = 3, [105706] = 8, [95861] = 4, [97068] = 5, [96574] = 5, [97171] = 10, [102094] = 4, [102232] = 4, [99188] = 4, [99307] = 12, [105682] = 8, [92538] = 1, [100527] = 3, [102583] = 4, [96587] = 4, [98280] = 4, [98370] = 4, [98538] = 10, [106786] = 1, [113111] = 1, [91783] = 4, [99956] = 4, [114712] = 3, [91332] = 4, [91794] = 1, [96657] = 12, [98426] = 4, [97197] = 2, [91796] = 10, [98759] = 4, [105915] = 4, [98919] = 4, [99908] = 1, [98362] = 10, [95779] = 10, [99365] = 4, [99891] = 5, [101437] = 1, [90998] = 4, [106059] = 4, [98425] = 4, [96640] = 2, [97182] = 6, [98728] = 7, [95939] = 10, [100529] = 1, [98776] = 4, [105422] = 1, [98792] = 4, [90997] = 4, [105629] = 1, [99366] = 4, [97087] = 2, [101438] = 4, [97119] = 1, [96608] = 2, [98681] = 6, [97677] = 1, [96480] = 1, [102584] = 4, [95842] = 2, [100364] = 4, [101072] = 1, [94968] = 5, [98973] = 1, [102788] = 4, [96934] = 2, [98756] = 4, [107288] = 1, [91793] = 1, [91000] = 8, [91781] = 4, [91782] = 10, [97678] = 8, [98926] = 4, [97200] = 4, [100531] = 8, [92387] = 4, [99033] = 4, [95920] = 2, [98810] = 6, [95766] = 4, [105921] = 4, [96677] = 2, [101679] = 4, [114288] = 4, [96611] = 2, [106787] = 1 -} -aura_env.round = function(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 - ---PART OF DIFFERENT AURA ---UPDATE_MOUSEOVER_UNIT -function(e) - if not aura_env.time then - aura_env.time = debugprofilestop() - end - if not aura_env.mobs then - aura_env.mobs = {} - end - if not aura_env.mobC then - aura_env.mobC = 0 - end - local u = "mouseover" - local guid = UnitGUID(u) - local npc_id = guid:match("%w+%-%d*%-%d*%-%d*%-%d*-(%d*)") - npc_id = tonumber(npc_id) - aura_env.time = debugprofilestop() - --print("aura", guid, aura_env.mobs[guid]) - if npc_id and aura_env.IDthing[npc_id] then - if guid and not aura_env.mouseoverPull[guid] then - aura_env.mouseoverPull[guid] = aura_env.IDthing[npc_id] - aura_env.mobC = aura_env.mobC + 1 - end - end - --This works for now -end - ---EVERY FRAME -function() - if aura_env.time and aura_env.time > 0 then - --print(aura_env.mobC) - --DevTools_Dump(aura_env.mobs) - local totalMouseoverPull = 0 - for k, v in pairs(aura_env.mouseoverPull) do - totalMouseoverPull = totalMouseoverPull + v - print(totalMouseoverPull) - end - if debugprofilestop() - aura_env.time > 1500 then - aura_env.time = 0 - aura_env.mouseoverPull = {} - aura_env.mobC = 0 - print("RESET", aura_env.mobC) - DevTools_Dump(aura_env.mobs) - end - end -end - ---INIT -aura_env.davystone = {} -aura_env.currentPull = {} -aura_env.mouseoverPull = {} -aura_env.IDthing = { - [104277] = 4, - [102253] = 4, - [98954] = 4, - [97185] = 10, - [113537] = 10, - [101839] = 4, - [104246] = 4, - [104278] = 10, - [97170] = 4, - [113506] = 4, - [105617] = 4, - [105633] = 4, - [102095] = 4, - [105952] = 6, - [97043] = 4, - [102430] = 1, - [98366] = 4, - [95832] = 2, - [91784] = 1, - [104295] = 1, - [102781] = 4, - [102287] = 10, - [98733] = 4, - [102351] = 1, - [96247] = 1, - [111563] = 4, - [95769] = 4, - [113699] = 8, - [91785] = 2, - [100216] = 4, - [97172] = 1, - [100248] = 4, - [114289] = 4, - [105651] = 4, - [105699] = 3, - [105715] = 4, - [98368] = 4, - [95834] = 2, - [99675] = 4, - [91786] = 4, - [98177] = 12, - [97173] = 4, - [100249] = 1, - [105636] = 4, - [95771] = 4, - [96584] = 4, - [97365] = 4, - [91006] = 4, - [91787] = 2, - [109908] = 10, - [96664] = 2, - [105876] = 1, - [95947] = 4, - [99804] = 2, - [95772] = 4, - [99358] = 4, - [101414] = 2, - [106785] = 1, - [104251] = 4, - [100713] = 4, - [105845] = 1, - [98243] = 4, - [98275] = 4, - [96028] = 4, - [99359] = 3, - [105766] = 1, - [91008] = 4, - [91789] = 4, - [98435] = 7, - [98706] = 6, - [100539] = 4, - [98770] = 4, - [105703] = 1, - [102404] = 4, - [99360] = 9, - [97097] = 4, - [91790] = 4, - [98691] = 4, - [102277] = 4, - [98293] = 1, - [98813] = 4, - [105720] = 4, - [91001] = 4, - [101074] = 1, - [100532] = 1, - [99678] = 4, - [104270] = 8, - [101991] = 4, - [98732] = 1, - [98963] = 1, - [91792] = 10, - [100526] = 4, - [98246] = 4, - [106546] = 4, - [98533] = 10, - [105705] = 4, - [96015] = 4, - [104300] = 4, - [113536] = 10, - [92610] = 4, - [99649] = 12, - [98900] = 4, - [98406] = 4, - [98677] = 1, - [91808] = 1, - [92350] = 4, - [102295] = 10, - [102566] = 12, - [113998] = 4, - [97163] = 3, - [102104] = 4, - [102375] = 3, - [105706] = 8, - [95861] = 4, - [97068] = 5, - [96574] = 5, - [97171] = 10, - [102094] = 4, - [102232] = 4, - [99188] = 4, - [99307] = 12, - [105682] = 8, - [92538] = 1, - [100527] = 3, - [102583] = 4, - [96587] = 4, - [98280] = 4, - [98370] = 4, - [98538] = 10, - [106786] = 1, - [113111] = 1, - [91783] = 4, - [99956] = 4, - [114712] = 3, - [91332] = 4, - [91794] = 1, - [96657] = 12, - [98426] = 4, - [97197] = 2, - [91796] = 10, - [98759] = 4, - [105915] = 4, - [98919] = 4, - [99908] = 1, - [98362] = 10, - [95779] = 10, - [99365] = 4, - [99891] = 5, - [101437] = 1, - [90998] = 4, - [106059] = 4, - [98425] = 4, - [96640] = 2, - [97182] = 6, - [98728] = 7, - [95939] = 10, - [100529] = 1, - [98776] = 4, - [105422] = 1, - [98792] = 4, - [90997] = 4, - [105629] = 1, - [99366] = 4, - [97087] = 2, - [101438] = 4, - [97119] = 1, - [96608] = 2, - [98681] = 6, - [97677] = 1, - [96480] = 1, - [102584] = 4, - [95842] = 2, - [100364] = 4, - [101072] = 1, - [94968] = 5, - [98973] = 1, - [102788] = 4, - [96934] = 2, - [98756] = 4, - [107288] = 1, - [91793] = 1, - [91000] = 8, - [91781] = 4, - [91782] = 10, - [97678] = 8, - [98926] = 4, - [97200] = 4, - [100531] = 8, - [92387] = 4, - [99033] = 4, - [95920] = 2, - [98810] = 6, - [95766] = 4, - [105921] = 4, - [96677] = 2, - [101679] = 4, - [114288] = 4, - [96611] = 2, - [106787] = 1 -} +--ON SOME EVENTS +--Maybe make trigger on ~~party kill?~~ threat update? ++ namepalteadd/remove + +--[[ +1) On threat update calculate new % +2) On namepalte added look for threat and calculate new % +3) Organize into table with GUIDs +4) On nameplate remove remove from table // PARTY_KILL +5) Make more table for current pull, projected pull and projected total +6) Organize mobs into groups before bosses or before other groups big ??? +]] + +--[[ +1) UNIT_THREAT_LIST_UPDATE (e, u) +Get GUID +Put into table +ggez + +2) NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED (e, u) +UnitDetailedThreatSituation("player", "target") empty result for no threat + +[02:49 PM] Dump: value=UnitDetailedThreatSituation("player", "target") +[02:49 PM] [1]=true, --Boolean - returns true if the unit is primary threat target of the mob (is tanking), or false otherwise +[02:49 PM] [2]=3, --Integer - returns the threat status for the unit on the mob, or nil if unit is not on mob's threat table. (3 = securely tanking, 2 = insecurely tanking, 1 = not tanking but higher threat than tank, 0 = not tanking and lower threat than tank) +[02:49 PM] [3]=100, --Number - returns the unit's threat on the mob as a percentage of the amount required to pull aggro, scaled according to the unit's range from the mob. At 100 the unit will pull aggro. Returns 100 if the unit is tanking and nil if the unit is not on the mob's threat list. +[02:49 PM] [4]=255, --Number - returns the unit's threat as a percentage of the tank's current threat. Returns nil if the unit is not on the mob's threat list. +[02:49 PM] [5]=0 --Number - returns the unit's total threat on the mob +for threat + +3) can say table 1: GUID in current pull - use 1) and 2) +table 2: GUID to be pull on mouseover - use previous work +table 3: global GUID to be pull - reset with GUID of boss or pre boss maybe? +look for PARTY_KILL se in CLEU maybe? (for progress table ?) +]] + +--[[ +Random garbage info + +[10:59 AM] Dump: value=C_Scenario.GetInfo() +[10:59 AM] [1]="Black Rook Hold", +[10:59 AM] [2]=1, +[10:59 AM] [3]=1, +[10:59 AM] [4]=3, +[10:59 AM] [5]=false, +[10:59 AM] [6]=false, +[10:59 AM] [7]=false, +[10:59 AM] [8]=0, +[10:59 AM] [9]=0, +[10:59 AM] [10]=1, +[10:59 AM] [11]="UNKNOWN" + +[11:01 AM] Dump: value=C_Scenario.GetStepInfo() +[11:01 AM] [1]="Black Rook Hold", +[11:01 AM] [2]="Deal with the restless spirits of Black Rook Hold.", +[11:01 AM] [3]=5, --Num criteria +[11:01 AM] [4]=false, +[11:01 AM] [5]=false, +[11:01 AM] [6]=false, +[11:01 AM] [7]=0, +[11:01 AM] [8]={ +[11:01 AM] }, +[11:01 AM] [10]=0 + +/run local numCriteria = select(3, C_Scenario.GetStepInfo()); for i = 1, numCriteria do print(C_Scenario.GetCriteriaInfo(i)) end +[11:02 AM] Amalgam of Souls 165 false 0 1 0 1832 0 29464 0 0 false false +[11:02 AM] Illysanna Ravencrest 165 false 0 1 0 1833 0 29465 0 0 false false +[11:02 AM] Smashspite the Hateful 165 false 0 1 0 1834 0 29466 0 0 false false +[11:02 AM] Lord Kurtalos Ravencrest 165 false 0 1 0 1835 0 29467 0 0 false false +[11:02 AM] Enemy Forces 0 false 0 360 0 0 0% 0 0 0 false true + +[11:06 AM] Dump: value=C_Scenario.GetCriteriaInfo(5) +[11:06 AM] [1]="Enemy Forces", +[11:06 AM] [2]=0, +[11:06 AM] [3]=false, +[11:06 AM] [4]=0, +[11:06 AM] [5]=360, +[11:06 AM] [6]=0, +[11:06 AM] [7]=0, +[11:06 AM] [8]="0%", +[11:06 AM] [9]=0, +[11:06 AM] [10]=0, +[11:06 AM] [11]=0, +[11:06 AM] [12]=false, +[11:06 AM] [13]=true --Weighted progress? +]] + +--[[ +So far got the mouseover counting working +Get total mob # from C_Scenario.GetCriteriaInfo(5 +Add mouseover to # +Add pulls & nameplate fuckery from above into same # +Maybe use global table for all +Should be easy +Maybe add textures and attach to namepaltes of planned units??? Pog POG +]] +function() + --Very inefficient maybe fix later who cares + local scenarioType = select(10, C_Scenario.GetInfo()) + if scenarioType == 1 then + local numCriteria = select(3, C_Scenario.GetStepInfo()) + for i = 1, numCriteria do + local name = C_Scenario.GetCriteriaInfo(i) + if name == "Enemy Forces" then + aura_env.davystone.totalProgress = select(5, C_Scenario.GetCriteriaInfo(i)) + aura_env.davystone.currentProgress = select(8, C_Scenario.GetCriteriaInfo(i)) + aura_env.davystone.currentProgress = aura_env.davystone.currentProgress:gsub("%%", "") + aura_env.davystone.currentProgress = tonumber(aura_env.davystone.currentProgress) + aura_env.davystone.newProgress = select(8, C_Scenario.GetCriteriaInfo(i)) + aura_env.davystone.newProgress = aura_env.davystone.newProgress:gsub("%%", "") + aura_env.davystone.newProgress = tonumber(aura_env.davystone.newProgress) + end + end + for i = 1, 40 do + local unit = "nameplate" .. i + if UnitAffectingCombat(unit) then + local GUID = UnitGUID(unit) + local ID = GUID:match("%w+%-%d*%-%d*%-%d*%-%d*-(%d*)") + ID = tonumber(ID) + if aura_env.IDthing[ID] then + local progress = aura_env.IDthing[ID] + aura_env.davystone.newProgress = aura_env.davystone.newProgress + progress + end + end + end + end +end + +--DISPLAY +function() + if aura_env.davystone.currentProgress and aura_env.davystone.totalProgress and aura_env.davystone.newProgress then + return aura_env.round((aura_env.davystone.currentProgress / aura_env.davystone.totalProgress) * 100, 2) .. " " .. aura_env.round((aura_env.davystone.newProgress / aura_env.davystone.totalProgress) * 100, 2) + end +end + +--INIT +local OnTooltipSetUnit = function() + print("yeet") + local name, unit = tooltip:GetUnit() + local guid = unit and UnitGUID(unit) + if guid then + local type, zero, server_id, instance_id, zone_uid, npc_id, spawn_uid = strsplit("-", guid) + npc_id = tonumber(npc_id) + print(npcID) + end +end +GameTooltip:HookScript("OnTooltipSetUnit", OnTooltipSetUnit) +aura_env.davystone = {} +aura_env.IDthing = { + [104277] = 4, [102253] = 4, [98954] = 4, [97185] = 10, [113537] = 10, [101839] = 4, [104246] = 4, [104278] = 10, [97170] = 4, [113506] = 4, [105617] = 4, [105633] = 4, [102095] = 4, [105952] = 6, [97043] = 4, [102430] = 1, [98366] = 4, [95832] = 2, [91784] = 1, [104295] = 1, [102781] = 4, [102287] = 10, [98733] = 4, [102351] = 1, [96247] = 1, [111563] = 4, [95769] = 4, [113699] = 8, [91785] = 2, [100216] = 4, [97172] = 1, [100248] = 4, [114289] = 4, [105651] = 4, [105699] = 3, [105715] = 4, [98368] = 4, [95834] = 2, [99675] = 4, [91786] = 4, [98177] = 12, [97173] = 4, [100249] = 1, [105636] = 4, [95771] = 4, [96584] = 4, [97365] = 4, [91006] = 4, [91787] = 2, [109908] = 10, [96664] = 2, [105876] = 1, [95947] = 4, [99804] = 2, [95772] = 4, [99358] = 4, [101414] = 2, [106785] = 1, [104251] = 4, [100713] = 4, [105845] = 1, [98243] = 4, [98275] = 4, [96028] = 4, [99359] = 3, [105766] = 1, [91008] = 4, [91789] = 4, [98435] = 7, [98706] = 6, [100539] = 4, [98770] = 4, [105703] = 1, [102404] = 4, [99360] = 9, [97097] = 4, [91790] = 4, [98691] = 4, [102277] = 4, [98293] = 1, [98813] = 4, [105720] = 4, [91001] = 4, [101074] = 1, [100532] = 1, [99678] = 4, [104270] = 8, [101991] = 4, [98732] = 1, [98963] = 1, [91792] = 10, [100526] = 4, [98246] = 4, [106546] = 4, [98533] = 10, [105705] = 4, [96015] = 4, [104300] = 4, [113536] = 10, [92610] = 4, [99649] = 12, [98900] = 4, [98406] = 4, [98677] = 1, [91808] = 1, [92350] = 4, [102295] = 10, [102566] = 12, [113998] = 4, [97163] = 3, [102104] = 4, [102375] = 3, [105706] = 8, [95861] = 4, [97068] = 5, [96574] = 5, [97171] = 10, [102094] = 4, [102232] = 4, [99188] = 4, [99307] = 12, [105682] = 8, [92538] = 1, [100527] = 3, [102583] = 4, [96587] = 4, [98280] = 4, [98370] = 4, [98538] = 10, [106786] = 1, [113111] = 1, [91783] = 4, [99956] = 4, [114712] = 3, [91332] = 4, [91794] = 1, [96657] = 12, [98426] = 4, [97197] = 2, [91796] = 10, [98759] = 4, [105915] = 4, [98919] = 4, [99908] = 1, [98362] = 10, [95779] = 10, [99365] = 4, [99891] = 5, [101437] = 1, [90998] = 4, [106059] = 4, [98425] = 4, [96640] = 2, [97182] = 6, [98728] = 7, [95939] = 10, [100529] = 1, [98776] = 4, [105422] = 1, [98792] = 4, [90997] = 4, [105629] = 1, [99366] = 4, [97087] = 2, [101438] = 4, [97119] = 1, [96608] = 2, [98681] = 6, [97677] = 1, [96480] = 1, [102584] = 4, [95842] = 2, [100364] = 4, [101072] = 1, [94968] = 5, [98973] = 1, [102788] = 4, [96934] = 2, [98756] = 4, [107288] = 1, [91793] = 1, [91000] = 8, [91781] = 4, [91782] = 10, [97678] = 8, [98926] = 4, [97200] = 4, [100531] = 8, [92387] = 4, [99033] = 4, [95920] = 2, [98810] = 6, [95766] = 4, [105921] = 4, [96677] = 2, [101679] = 4, [114288] = 4, [96611] = 2, [106787] = 1 +} +aura_env.round = function(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 + +--PART OF DIFFERENT AURA +--UPDATE_MOUSEOVER_UNIT +function(e) + if not aura_env.time then + aura_env.time = debugprofilestop() + end + if not aura_env.mobs then + aura_env.mobs = {} + end + if not aura_env.mobC then + aura_env.mobC = 0 + end + local u = "mouseover" + local guid = UnitGUID(u) + local npc_id = guid:match("%w+%-%d*%-%d*%-%d*%-%d*-(%d*)") + npc_id = tonumber(npc_id) + aura_env.time = debugprofilestop() + --print("aura", guid, aura_env.mobs[guid]) + if npc_id and aura_env.IDthing[npc_id] then + if guid and not aura_env.mouseoverPull[guid] then + aura_env.mouseoverPull[guid] = aura_env.IDthing[npc_id] + aura_env.mobC = aura_env.mobC + 1 + end + end + --This works for now +end + +--EVERY FRAME +function() + if aura_env.time and aura_env.time > 0 then + --print(aura_env.mobC) + --DevTools_Dump(aura_env.mobs) + local totalMouseoverPull = 0 + for k, v in pairs(aura_env.mouseoverPull) do + totalMouseoverPull = totalMouseoverPull + v + print(totalMouseoverPull) + end + if debugprofilestop() - aura_env.time > 1500 then + aura_env.time = 0 + aura_env.mouseoverPull = {} + aura_env.mobC = 0 + print("RESET", aura_env.mobC) + DevTools_Dump(aura_env.mobs) + end + end +end + +--INIT +aura_env.davystone = {} +aura_env.currentPull = {} +aura_env.mouseoverPull = {} +aura_env.IDthing = { + [104277] = 4, + [102253] = 4, + [98954] = 4, + [97185] = 10, + [113537] = 10, + [101839] = 4, + [104246] = 4, + [104278] = 10, + [97170] = 4, + [113506] = 4, + [105617] = 4, + [105633] = 4, + [102095] = 4, + [105952] = 6, + [97043] = 4, + [102430] = 1, + [98366] = 4, + [95832] = 2, + [91784] = 1, + [104295] = 1, + [102781] = 4, + [102287] = 10, + [98733] = 4, + [102351] = 1, + [96247] = 1, + [111563] = 4, + [95769] = 4, + [113699] = 8, + [91785] = 2, + [100216] = 4, + [97172] = 1, + [100248] = 4, + [114289] = 4, + [105651] = 4, + [105699] = 3, + [105715] = 4, + [98368] = 4, + [95834] = 2, + [99675] = 4, + [91786] = 4, + [98177] = 12, + [97173] = 4, + [100249] = 1, + [105636] = 4, + [95771] = 4, + [96584] = 4, + [97365] = 4, + [91006] = 4, + [91787] = 2, + [109908] = 10, + [96664] = 2, + [105876] = 1, + [95947] = 4, + [99804] = 2, + [95772] = 4, + [99358] = 4, + [101414] = 2, + [106785] = 1, + [104251] = 4, + [100713] = 4, + [105845] = 1, + [98243] = 4, + [98275] = 4, + [96028] = 4, + [99359] = 3, + [105766] = 1, + [91008] = 4, + [91789] = 4, + [98435] = 7, + [98706] = 6, + [100539] = 4, + [98770] = 4, + [105703] = 1, + [102404] = 4, + [99360] = 9, + [97097] = 4, + [91790] = 4, + [98691] = 4, + [102277] = 4, + [98293] = 1, + [98813] = 4, + [105720] = 4, + [91001] = 4, + [101074] = 1, + [100532] = 1, + [99678] = 4, + [104270] = 8, + [101991] = 4, + [98732] = 1, + [98963] = 1, + [91792] = 10, + [100526] = 4, + [98246] = 4, + [106546] = 4, + [98533] = 10, + [105705] = 4, + [96015] = 4, + [104300] = 4, + [113536] = 10, + [92610] = 4, + [99649] = 12, + [98900] = 4, + [98406] = 4, + [98677] = 1, + [91808] = 1, + [92350] = 4, + [102295] = 10, + [102566] = 12, + [113998] = 4, + [97163] = 3, + [102104] = 4, + [102375] = 3, + [105706] = 8, + [95861] = 4, + [97068] = 5, + [96574] = 5, + [97171] = 10, + [102094] = 4, + [102232] = 4, + [99188] = 4, + [99307] = 12, + [105682] = 8, + [92538] = 1, + [100527] = 3, + [102583] = 4, + [96587] = 4, + [98280] = 4, + [98370] = 4, + [98538] = 10, + [106786] = 1, + [113111] = 1, + [91783] = 4, + [99956] = 4, + [114712] = 3, + [91332] = 4, + [91794] = 1, + [96657] = 12, + [98426] = 4, + [97197] = 2, + [91796] = 10, + [98759] = 4, + [105915] = 4, + [98919] = 4, + [99908] = 1, + [98362] = 10, + [95779] = 10, + [99365] = 4, + [99891] = 5, + [101437] = 1, + [90998] = 4, + [106059] = 4, + [98425] = 4, + [96640] = 2, + [97182] = 6, + [98728] = 7, + [95939] = 10, + [100529] = 1, + [98776] = 4, + [105422] = 1, + [98792] = 4, + [90997] = 4, + [105629] = 1, + [99366] = 4, + [97087] = 2, + [101438] = 4, + [97119] = 1, + [96608] = 2, + [98681] = 6, + [97677] = 1, + [96480] = 1, + [102584] = 4, + [95842] = 2, + [100364] = 4, + [101072] = 1, + [94968] = 5, + [98973] = 1, + [102788] = 4, + [96934] = 2, + [98756] = 4, + [107288] = 1, + [91793] = 1, + [91000] = 8, + [91781] = 4, + [91782] = 10, + [97678] = 8, + [98926] = 4, + [97200] = 4, + [100531] = 8, + [92387] = 4, + [99033] = 4, + [95920] = 2, + [98810] = 6, + [95766] = 4, + [105921] = 4, + [96677] = 2, + [101679] = 4, + [114288] = 4, + [96611] = 2, + [106787] = 1 +} diff --git a/Complete Projects/Legion/DeathTrack.lua b/WeakAuras/Projects/DeathTrack.lua similarity index 96% rename from Complete Projects/Legion/DeathTrack.lua rename to WeakAuras/Projects/DeathTrack.lua index be688bb..027a67b 100644 --- a/Complete Projects/Legion/DeathTrack.lua +++ b/WeakAuras/Projects/DeathTrack.lua @@ -1,64 +1,64 @@ ---PLAYER_DEAD COMBAT_LOG_EVENT_UNFILTERED -function(...) - local se = select(3, ...) - if se == "SPELL_DAMAGE" or se == "SPELL_PERIODIC_DAMAGE" then - local caster = select(6, ...) - local target = select(10, ...) - local overkill = select(17, ...) - if overkill > 0 and target == UnitName("player") then - local id = #DED + 1 - local date = date() - local localtime = date:match("%d%d%/%d%d%/%d%d%s(%d%d%p%d%d%p%d%d)") - 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 - local localzone = GetZoneText() - DED[id] = - { - ["Date"] = localdate, - ["Time"] = localtime, - ["Zone"] = localzone, - ["Killer"] = caster, - ["Overkill"] = overkill - } - end - end - if se == "SWING_DAMAGE" then - local caster = select(6, ...) - local target = select(10, ...) - local overkill = select(14, ...) - if overkill > 0 and target == UnitName("player") then - local id = #DED + 1 - local date = date() - local localtime = date:match("%d%d%/%d%d%/%d%d%s(%d%d%p%d%d%p%d%d)") - 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 - local localzone = GetZoneText() - DED[id] = - { - ["Date"] = localdate, - ["Time"] = localtime, - ["Zone"] = localzone, - ["Killer"] = caster, - ["Overkill"] = overkill - } - end - end +--PLAYER_DEAD COMBAT_LOG_EVENT_UNFILTERED +function(...) + local se = select(3, ...) + if se == "SPELL_DAMAGE" or se == "SPELL_PERIODIC_DAMAGE" then + local caster = select(6, ...) + local target = select(10, ...) + local overkill = select(17, ...) + if overkill > 0 and target == UnitName("player") then + local id = #DED + 1 + local date = date() + local localtime = date:match("%d%d%/%d%d%/%d%d%s(%d%d%p%d%d%p%d%d)") + 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 + local localzone = GetZoneText() + DED[id] = + { + ["Date"] = localdate, + ["Time"] = localtime, + ["Zone"] = localzone, + ["Killer"] = caster, + ["Overkill"] = overkill + } + end + end + if se == "SWING_DAMAGE" then + local caster = select(6, ...) + local target = select(10, ...) + local overkill = select(14, ...) + if overkill > 0 and target == UnitName("player") then + local id = #DED + 1 + local date = date() + local localtime = date:match("%d%d%/%d%d%/%d%d%s(%d%d%p%d%d%p%d%d)") + 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 + local localzone = GetZoneText() + DED[id] = + { + ["Date"] = localdate, + ["Time"] = localtime, + ["Zone"] = localzone, + ["Killer"] = caster, + ["Overkill"] = overkill + } + end + end end \ No newline at end of file diff --git a/LegionWA/DebuffAlert/Event.lua b/WeakAuras/Projects/DebuffAlert/Event.lua similarity index 96% rename from LegionWA/DebuffAlert/Event.lua rename to WeakAuras/Projects/DebuffAlert/Event.lua index 73b21fb..eae0cde 100644 --- a/LegionWA/DebuffAlert/Event.lua +++ b/WeakAuras/Projects/DebuffAlert/Event.lua @@ -1,28 +1,28 @@ --- COMBAT_LOG_EVENT_UNFILTERED -function(allstates, e, ...) - local iconDisplayDuration = 0.5 - - local se = select(2, ...) - if (se ~= "SPELL_AURA_APPLIED") then return end - local target = select(9, ...) - if (target ~= UnitName("player")) then return end - local auraType = select(15, ...) - if (auraType ~= "DEBUFF") then return end - local spellId = select(12, ...) - print(select(3, GetSpellInfo(spellId))) - allstates[spellId] = { - show = true, - changed = true, - index = GetTime(), - resort = true, - - icon = select(3, GetSpellInfo(spellId)), - name = select(13, ...), - - progressType = "timed", - expirationTime = GetTime() + iconDisplayDuration, - duration = iconDisplayDuration, - autoHide = true, - } - return true +-- COMBAT_LOG_EVENT_UNFILTERED +function(allstates, e, ...) + local iconDisplayDuration = 0.5 + + local se = select(2, ...) + if (se ~= "SPELL_AURA_APPLIED") then return end + local target = select(9, ...) + if (target ~= UnitName("player")) then return end + local auraType = select(15, ...) + if (auraType ~= "DEBUFF") then return end + local spellId = select(12, ...) + print(select(3, GetSpellInfo(spellId))) + allstates[spellId] = { + show = true, + changed = true, + index = GetTime(), + resort = true, + + icon = select(3, GetSpellInfo(spellId)), + name = select(13, ...), + + progressType = "timed", + expirationTime = GetTime() + iconDisplayDuration, + duration = iconDisplayDuration, + autoHide = true, + } + return true end \ No newline at end of file diff --git a/Complete Projects/Legion/Delete Items.lua b/WeakAuras/Projects/Delete Items.lua similarity index 96% rename from Complete Projects/Legion/Delete Items.lua rename to WeakAuras/Projects/Delete Items.lua index 112ae65..6a90342 100644 --- a/Complete Projects/Legion/Delete Items.lua +++ b/WeakAuras/Projects/Delete Items.lua @@ -1,14 +1,14 @@ ---Delete Dumbass Shit -function() - local deletlist = {34984} - for i = 1, GetContainerNumSlots(0) do - local _, _, _, _, _, _, _, _, _, itemID = GetContainerItemInfo(0, i) - for k, v in ipairs(deletlist) do - if itemID == v then - PickupContainerItem(0, i) - print(itemID) - DeleteCursorItem() - end - end - end -end +--Delete Dumbass Shit +function() + local deletlist = {34984} + for i = 1, GetContainerNumSlots(0) do + local _, _, _, _, _, _, _, _, _, itemID = GetContainerItemInfo(0, i) + for k, v in ipairs(deletlist) do + if itemID == v then + PickupContainerItem(0, i) + print(itemID) + DeleteCursorItem() + end + end + end +end diff --git a/Complete Projects/Legion/DickRiderCounter.lua b/WeakAuras/Projects/DickRiderCounter.lua similarity index 96% rename from Complete Projects/Legion/DickRiderCounter.lua rename to WeakAuras/Projects/DickRiderCounter.lua index 3acc80f..e4ecc0a 100644 --- a/Complete Projects/Legion/DickRiderCounter.lua +++ b/WeakAuras/Projects/DickRiderCounter.lua @@ -1,30 +1,30 @@ -COMBAT_LOG_EVENT_UNFILTERED -function(...) - local subEvent = select(3, ...) - local ID = select(5, ...) - local source = select(6, ...) - local target = select(10, ...) - if target == UnitName("player") and (subEvent == "SWING_DAMAGE" or subEvent == "SPELL_DAMAGE") and string.match(ID, "Player") then - local targetExist = 0 - for k, v in ipairs(aura_env.dickRiders) do - if source == v then - targetExist = 1 - end - end - if targetExist == 0 then - aura_env.dickRiders[table.getn(aura_env.dickRiders) + 1] = source - end - end -end - -DISPLAY -function() - local output = table.getn(aura_env.dickRiders) .. "\n" - for k, v in ipairs(aura_env.dickRiders) do - output = output .. v .. "\n" - end - return output -end - -INIT AND SHOW -aura_env.dickRiders = {} +COMBAT_LOG_EVENT_UNFILTERED +function(...) + local subEvent = select(3, ...) + local ID = select(5, ...) + local source = select(6, ...) + local target = select(10, ...) + if target == UnitName("player") and (subEvent == "SWING_DAMAGE" or subEvent == "SPELL_DAMAGE") and string.match(ID, "Player") then + local targetExist = 0 + for k, v in ipairs(aura_env.dickRiders) do + if source == v then + targetExist = 1 + end + end + if targetExist == 0 then + aura_env.dickRiders[table.getn(aura_env.dickRiders) + 1] = source + end + end +end + +DISPLAY +function() + local output = table.getn(aura_env.dickRiders) .. "\n" + for k, v in ipairs(aura_env.dickRiders) do + output = output .. v .. "\n" + end + return output +end + +INIT AND SHOW +aura_env.dickRiders = {} diff --git a/Complete Projects/Legion/Divine Purpose Procs.lua b/WeakAuras/Projects/Divine Purpose Procs.lua similarity index 96% rename from Complete Projects/Legion/Divine Purpose Procs.lua rename to WeakAuras/Projects/Divine Purpose Procs.lua index 60dd5ca..94fd60d 100644 --- a/Complete Projects/Legion/Divine Purpose Procs.lua +++ b/WeakAuras/Projects/Divine Purpose Procs.lua @@ -1,33 +1,33 @@ -DISPLAY -function() - if aura_env.cast_spells > 0 then - local pp = aura_env.count / aura_env.cast_spells - if (2) then - pp = math.floor((pp * 10^2) + 0.5) / (10^2) - else - pp = math.floor(pp+0.5) - end - pp = pp * 100 - return "Divine " .. aura_env.count .. " " .. aura_env.cast_spells .. " " .. pp - else - return "Divine " .. aura_env.count .. " " .. aura_env.cast_spells - end -end - -COMBAT_LOG_EVENT_UNFILTERED -function(_,_,subEvent,_,_,sourceName,_,_,_,_,_,_,spellId) - if subEvent == "SPELL_CAST_SUCCESS" and sourceName == UnitName("player") then - if spellId == 85256 or spellId == 53385 then - aura_env.cast_spells = aura_env.cast_spells + 1 - end - end - if subEvent == "SPELL_AURA_APPLIED" and sourceName == UnitName("player") then - if spellId == 223819 then - aura_env.count = aura_env.count + 1 - end - end -end - -INIT -aura_env.count = 0 -aura_env.cast_spells = 0 +DISPLAY +function() + if aura_env.cast_spells > 0 then + local pp = aura_env.count / aura_env.cast_spells + if (2) then + pp = math.floor((pp * 10^2) + 0.5) / (10^2) + else + pp = math.floor(pp+0.5) + end + pp = pp * 100 + return "Divine " .. aura_env.count .. " " .. aura_env.cast_spells .. " " .. pp + else + return "Divine " .. aura_env.count .. " " .. aura_env.cast_spells + end +end + +COMBAT_LOG_EVENT_UNFILTERED +function(_,_,subEvent,_,_,sourceName,_,_,_,_,_,_,spellId) + if subEvent == "SPELL_CAST_SUCCESS" and sourceName == UnitName("player") then + if spellId == 85256 or spellId == 53385 then + aura_env.cast_spells = aura_env.cast_spells + 1 + end + end + if subEvent == "SPELL_AURA_APPLIED" and sourceName == UnitName("player") then + if spellId == 223819 then + aura_env.count = aura_env.count + 1 + end + end +end + +INIT +aura_env.count = 0 +aura_env.cast_spells = 0 diff --git a/LegionWA/DruidEnergyBar/Export b/WeakAuras/Projects/DruidEnergyBar/Export similarity index 100% rename from LegionWA/DruidEnergyBar/Export rename to WeakAuras/Projects/DruidEnergyBar/Export diff --git a/Complete Projects/Legion/Drums.lua b/WeakAuras/Projects/Drums.lua similarity index 96% rename from Complete Projects/Legion/Drums.lua rename to WeakAuras/Projects/Drums.lua index 0484057..0c89b55 100644 --- a/Complete Projects/Legion/Drums.lua +++ b/WeakAuras/Projects/Drums.lua @@ -1,28 +1,28 @@ ---DISPLAY -function() - 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 leather = GetItemCount("Raw Beast Hide") - return leather .. " " .. leather / 5 .. "\n" .. aura_env.skins .. " " .. aura_env.hide .. " " .. round(aura_env.hide / aura_env.skins, 1) -end - ---CHAT_MSG_LOOT -function(...) - local msg = select(2, ...) - local what = msg:match("%[(.+)%]") - local howmuch = msg:match("x(%d*)") or 1 - if what == "Raw Beast Hide" then - aura_env.skins = aura_env.skins + 1 - aura_env.hide = aura_env.hide + howmuch - end -end - ---INIT -aura_env.skins = 0 +--DISPLAY +function() + 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 leather = GetItemCount("Raw Beast Hide") + return leather .. " " .. leather / 5 .. "\n" .. aura_env.skins .. " " .. aura_env.hide .. " " .. round(aura_env.hide / aura_env.skins, 1) +end + +--CHAT_MSG_LOOT +function(...) + local msg = select(2, ...) + local what = msg:match("%[(.+)%]") + local howmuch = msg:match("x(%d*)") or 1 + if what == "Raw Beast Hide" then + aura_env.skins = aura_env.skins + 1 + aura_env.hide = aura_env.hide + howmuch + end +end + +--INIT +aura_env.skins = 0 aura_env.hide = 0 \ No newline at end of file diff --git a/FreshShit/DuelerAccepter/event.lua b/WeakAuras/Projects/DuelerAccepter/event.lua similarity index 100% rename from FreshShit/DuelerAccepter/event.lua rename to WeakAuras/Projects/DuelerAccepter/event.lua diff --git a/FreshShit/DuelerAccepter/init.lua b/WeakAuras/Projects/DuelerAccepter/init.lua similarity index 100% rename from FreshShit/DuelerAccepter/init.lua rename to WeakAuras/Projects/DuelerAccepter/init.lua diff --git a/Complete Projects/Legion/EHP.lua b/WeakAuras/Projects/EHP.lua similarity index 97% rename from Complete Projects/Legion/EHP.lua rename to WeakAuras/Projects/EHP.lua index 806004d..819193b 100644 --- a/Complete Projects/Legion/EHP.lua +++ b/WeakAuras/Projects/EHP.lua @@ -1,694 +1,694 @@ ---DISPLAY EVERY FRAME SMH -function() - --- CPU benchmarking --- - local start - local aura_env = aura_env - local Debug = aura_env.Debug - if Debug then - aura_env.count = aura_env.count or 1 - aura_env.count = (aura_env.count + 1) % 600 - start = debugprofilestop() - end - - -- Setting some aura_env to local variables to improve performance -- - local ClassID = aura_env.ClassID - local SpecID = aura_env.SpecID - local AoE = aura_env.AoE - local Mode = aura_env.Mode - local ColorFunction = aura_env.Color - local Threshold = aura_env.Threshold - local BasicReductions = aura_env.BasicReductions - - -- Armor calulation // Armor scales differently depending on the enemy level, this makes sure is stays accurate -- - local Armor = select(2, UnitArmor("player")) - Armor = 1 - C_PaperDollInfo.GetArmorEffectiveness(Armor, aura_env.TargetLevel) -- Gets the reduction percentage and makes it usable - - -- All Classes - local CurrentHealth = UnitHealth("player") - local MaxHealth = UnitHealthMax("player") - local Vers = 1 - (GetCombatRatingBonus(31) / 100) - local Avoid = 1 - local ScanTarget = false - if AoE then - Avoid = 1 - (GetAvoidance() / 100) - end - local Elusive = 1 - local StaggerP, StaggerM = 1, 1 - local Absorbs = UnitGetTotalAbsorbs("player") - local AbsorbsP, AbsorbsM = Absorbs, Absorbs - - -- Initialize some variables -- - local ClassDRP, ClassDRM = 1, 1 - local PImmunity, MImmunity = 0, 0 - - ----- General damage reduction buffs ----- - local n = 1 - local BuffID = select(10, UnitBuff("player", n)) - while BuffID do - local Reduction = 1 - local PhysicalReduction = 1 - local MagicReduction = 1 - - if BasicReductions[BuffID] then - ClassDRP = ClassDRP * BasicReductions[BuffID][1] - ClassDRM = ClassDRM * BasicReductions[BuffID][2] - end - - ---- More complex tracking ---- - - local AMS, BloodS = 0, 0 - - --- Death Knight --- - if BuffID == 48792 then - Reduction = 1 + (tonumber(select(18, UnitBuff("player", n)) or 0)) / 100 -- Icebound Fortitude // using plus since the tooltip returns a negative value - - elseif BuffID == 48707 then - AMS = (select(16, UnitBuff("player", n)) or 0) -- Anti-Magic Shell - - elseif BuffID == 77535 then - BloodS = (select(16, UnitBuff("player", n)) or 0) -- Blood Shield - - --- Demon Hunter --- - elseif BuffID == 212800 then - if IsPlayerSpell(205411) then Reduction = 0.50 -- Blur - else Reduction = 0.65 end - - elseif BuffID == 196555 then PImmunity = 1 -- Netherwalk - - --- Druid --- - elseif BuffID == 102342 then - Reduction = 1 + (tonumber(select(16, UnitBuff("player", n)) or 0)) / 100 -- Ironbark // using plus since the tooltip returns a negative value - - --- Hunter --- - elseif BuffID == 186265 then -- Aspect of the Turtle - PImmunity = 1 - MImmunity = 1 - - --- Mage --- - elseif BuffID == 45438 then -- Ice Block - PImmunity = 1 - MImmunity = 1 - - --- Monk --- - elseif BuffID == 261769 then - Reduction = 1 + (select(16, UnitBuff("player", n)) or 0) / 100 -- Inner Strength // using plus since the tooltip returns a negative value - - elseif BuffID == 115295 then - Absorbs = Absorbs - select(16, UnitBuff("player", n)) -- Guard // prevents Guard from counting as a normal absorb - - --- Paladin --- - elseif BuffID == 210320 then - Reduction = 1 + (tonumber(select(16, UnitBuff("player", n)) or 0)) / 100 -- Devotion Aura // using plus since the tooltip returns a negative value - - elseif BuffID == 1022 then PImmunity = 1 -- Blessing of Protection - elseif BuffID == 204018 then MImmunity = 1 -- Blessing of Spellwarding - - elseif BuffID == 188370 then - Reduction = 1 - (GetMasteryEffect() / 2.85) / 100 -- Consecration // May not be 100% accurate, but it's good enough for now - if IsEquippedItem(137047) then Reduction = Reduction * 0.96 end -- Consecration (Legendary Ring) - - elseif BuffID == 642 then -- Divine Shield - PImmunity = 1 - MImmunity = 1 - - --- Priest --- - elseif BuffID == 45242 then - Reduction = 1 - (select(3, UnitBuff("player", n)) or 0) * 15 / 100 -- Focused Will - - elseif BuffID == 139 then - if IsPlayerSpell(235189) and UnitBuff("player", n, nil, "player") then - Reduction = 0.90 -- Perseverance - Talent - end - - --- Rogue --- - elseif BuffID == 1966 then - if not AoE and IsPlayerSpell(79008) - then Elusive = 0.70 -- Elusiveness - else -- Feint - if AoE then Avoid = Avoid * 0.50 end - end - elseif BuffID == 31224 then MImmunity = 1 -- Cloak of Shadows - - --- Shaman --- - elseif BuffID == 260881 then - Reduction = 1 - (tonumber(select(3, UnitBuff("player", n)) or 0)) * 5 / 100 -- Ghost in the Mist - Talent - - --- Warlock --- - - --- Warrior --- - elseif BuffID == 184362 and IsPlayerSpell(208154) then -- Enrage - Reduction = 0.90 -- War Paint - Talent - - end - - AbsorbsP = Absorbs - AMS - AbsorbsM = Absorbs - BloodS - - ClassDRP = ClassDRP * Reduction * PhysicalReduction - ClassDRM = ClassDRM * Reduction * MagicReduction - n = n + 1 - BuffID = select(10, UnitBuff("player", n)) - end - - ----- Damage reductions with special calculations ----- - - --- Death Knight --- - if ClassID == 6 then - local Necropolis = 1 - if IsPlayerSpell(206967) then -- Will of the Necropolis - Talent - if CurrentHealth / MaxHealth < 0.35 then Necropolis = 0.65 - end - end - ClassDRP = ClassDRP * Necropolis - ClassDRM = ClassDRM * Necropolis - end - - --- Demon Hunter --- - if ClassID == 12 then - local HavocDemWards = 1 - local VengDemWards = 1 - if SpecID == 1 then - HavocDemWards = 0.90 -- Demonic Wards - Passive - elseif SpecID == 2 then - VengDemWards = 0.90 -- Demonic Wards - Passive - ScanTarget = true - end - - ClassDRP = ClassDRP * VengDemWards - ClassDRM = ClassDRM * VengDemWards * HavocDemWards - end - - --- Druid --- - if ClassID == 11 then - local GuardA = 1 - if IsEquippedItem(137015) and IsPlayerSpell(16931) then - GuardA = 0.895 -- Legendary chest - elseif IsPlayerSpell(16931) then - GuardA = 0.94 -- Thick Hide (Guardian Affinity) - end - if SpecID == 3 then - if IsPlayerSpell(204053) then - ScanTarget = true - end - end - - ClassDRP = ClassDRP * GuardA - ClassDRM = ClassDRM * GuardA - end - - --- Hunter --- - if ClassID == 3 then - end - - --- Mage --- - if ClassID == 8 then - end - - --- Monk --- - if ClassID == 10 then - if SpecID == 1 then - ScanTarget = true - -- Gets stagger agaist current target, if no target is found use base -- - local StaggerBase, StaggerTarget = C_PaperDollInfo.GetStaggerPercentage("player") - if not StaggerTarget then StaggerTarget = StaggerBase end - StaggerM = StaggerTarget * 0.35 - StaggerP = 1 - StaggerTarget / 100 - StaggerM = 1 - StaggerM / 100 - - -- Stagger cap -- - local Stagger = UnitStagger("player") or 0 -- Calculate MaxHealth effective reduction for Stagger - local StaggerCapP = (CurrentHealth + AbsorbsP) / (CurrentHealth + AbsorbsP + 100 * MaxHealth - Stagger * 10) - local StaggerCapM = (CurrentHealth + AbsorbsM) / (CurrentHealth + AbsorbsM + 100 * MaxHealth - Stagger * 10) - if StaggerCapP < 0.01 then StaggerCapP = 0.01 end -- Stagger caps at 99% - if StaggerCapM < 0.01 then StaggerCapM = 0.01 end - if StaggerP < StaggerCapP then StaggerP = StaggerCapP end - if StaggerM < StaggerCapM then StaggerM = StaggerCapM end - end - if SpecID == 3 then - local Karma = 0 - aura_env.GoodKarma = IsPlayerSpell(280195) -- Talent - Karma = aura_env.TouchOfKarma - Absorbs = Absorbs + Karma - AbsorbsP = AbsorbsP + Karma - AbsorbsM = AbsorbsM + Karma - end - - ClassDRP = ClassDRP * StaggerP - ClassDRM = ClassDRM * StaggerM - end - - --- Paladin --- - if ClassID == 2 then - local LastDefender = 1 - if SpecID == 2 then -- Protection - LastDefender = 1 - (1 - 0.97 ^ aura_env.NameplateCounter) - end - ClassDRP = ClassDRP * LastDefender - ClassDRM = ClassDRM * LastDefender - end - - --- Priest --- - if ClassID == 5 then - end - - --- Rogue --- - if ClassID == 4 then - end - - --- Shaman --- - if ClassID == 7 then - end - - --- Warlock --- - if ClassID == 9 then - local SoulLink = 1 - local DestructionMastery = 1 - if SpecID == 2 then -- Soul Link passive for Demonology Warlocks - if UnitExists("pet") then - SoulLink = 0.80 - end - elseif SpecID == 3 then - DestructionMastery = 1 - ((GetMasteryEffect() / 9) / 100) -- Destruction mastery effect - end - - ClassDRP = ClassDRP * SoulLink * DestructionMastery - ClassDRM = ClassDRM * SoulLink * DestructionMastery - end - - --- Warrior --- - if ClassID == 1 then - if SpecID == 3 then - ScanTarget = true - end - - ClassDRP = ClassDRP - ClassDRM = ClassDRM - end - - --- Miscellaneous --- - if aura_env.HighmountainTauren then - local Stamina = UnitStat("player", 3) - local RuggedTenacity = floor((Stamina * 0.0003 * 20) + 0.5) - Absorbs = Absorbs + RuggedTenacity - end - - --- Checking debuffs on target if needed --- - if ScanTarget then - local TD = 1 - local DebuffID = select(10, UnitDebuff("target", TD)) - while DebuffID do - local DebuffTarget = 1 - local DebuffTargetP = 1 - local DebuffTargetM = 1 - - --- Demon Hunter --- - if DebuffID == 207744 and select(3, UnitDebuff("target", TD, nil, "player")) then - DebuffTarget = 0.60 -- Fiery Brand - - elseif DebuffID == 268178 and select(3, UnitDebuff("target", TD, nil, "player")) then - DebuffTarget = 0.94 -- Void Reaver -- Talent - - --- Druid --- - elseif DebuffID == 192090 and select(3, UnitDebuff("target", TD, nil, "player")) then - DebuffTarget = 1 - 0.02 * (select(3, UnitDebuff("target", TD, nil, "player")) or 0) -- Rend and Tear - Talent - - --- Monk --- - elseif DebuffID == 123725 then - DebuffTarget = 1 + 0.01 * (select(17, UnitDebuff("target", TD, nil, "player")) or 0) -- Breath of Fire // using plus since the tooltip returns a negative value - - --- Warrior --- - elseif DebuffID == 1160 and select(7, UnitDebuff("target", TD)) == "player" then - DebuffTarget = 0.80 -- Demoralizing Shout - end - - ClassDRP = ClassDRP * DebuffTarget * DebuffTargetP - ClassDRM = ClassDRM * DebuffTarget * DebuffTargetM - TD = TD + 1 - DebuffID = select(10, UnitDebuff("target", TD)) - end - end - - -- Damage taken modifiers -- - local ReductionP = Vers * Avoid * ClassDRP * Armor * Elusive - local ReductionM = Vers * Avoid * ClassDRM * Elusive - -- CurrentHealth health and shields -- - local EHP = (CurrentHealth + AbsorbsP) / ReductionP - local EHM = (CurrentHealth + AbsorbsM) / ReductionM - - -- Export pre-avoidance EHP, EHM and immunity status as global variables -- - if aura_env.GlobalExport then - -- Calculate max effective health (no absorbs) -- - local EHPMaxHealth = (MaxHealth + AbsorbsP) / ReductionP - local EHMMaxHealth = (MaxHealth + AbsorbsM) / ReductionM - -- Export to globals -- - local Export = WA_ZELER_EH - Export.EHPMAX, Export.EHMMAX = EHPMaxHealth * Avoid * Elusive, EHMMaxHealth * Avoid * Elusive - Export.EHP, Export.EHM = EHP * Avoid * Elusive, EHM * Avoid * Elusive - - Export.REDP, Export.REDM = ReductionP / Avoid / Elusive, ReductionM / Avoid / Elusive - Export.ABS, Export.ABSP, Export.ABSM = Absorbs, AbsorbsP, AbsorbsM - Export.EHPIMMUNITY, Export.EHMIMMUNITY = PImmunity, MImmunity - Export.EHARMOR = Armor - Export.STAGGERP, Export.STAGGERM = StaggerP, StaggerM - end - - -- Formatting numbers -- - local DivideP, DivideM = 1, 1 - local ImportDecimal = aura_env.DisplayDecimals - local EHPdecimal, EHMdecimal = ImportDecimal, ImportDecimal - local letterP, letterM = "", "" - if EHP > 10 ^ 9 then - EHP = EHP / 10 ^ 9 - DivideP = 10 ^ 9 - letterP = "b" - EHPdecimal = 2 - elseif EHP > 10 ^ 8 then - EHP = EHP / 10 ^ 6 - DivideP = 10 ^ 6 - letterP = "m" - EHPdecimal = 0 - elseif EHP > 10 ^ 7 then - EHP = EHP / 10 ^ 6 - DivideP = 10 ^ 6 - letterP = "m" - elseif EHP > 10 ^ 6 then - EHP = EHP / 10 ^ 6 - DivideP = 10 ^ 6 - letterP = "m" - EHPdecimal = 2 - elseif EHP > 10 ^ 5 then - EHP = EHP / 10 ^ 3 - DivideP = 10 ^ 3 - letterP = "k" - EHPdecimal = 0 - elseif EHP > 10 ^ 4 then - EHP = EHP / 10 ^ 3 - DivideP = 10 ^ 3 - letterP = "k" - elseif EHP > 10 ^ 3 then - EHP = EHP / 10 ^ 3 - DivideP = 10 ^ 3 - letterP = "k" - EHPdecimal = 2 - elseif EHP > -1 then - EHP = EHP / 1 - DivideP = 1 - EHPdecimal = 0 - end - - if EHM > 10 ^ 9 then - EHM = EHM / 10 ^ 9 - DivideM = 10 ^ 9 - letterM = "b" - EHMdecimal = 2 - elseif EHM > 10 ^ 8 then - EHM = EHM / 10 ^ 6 - DivideM = 10 ^ 6 - letterM = "m" - EHMdecimal = 0 - elseif EHM > 10 ^ 7 then - EHM = EHM / 10 ^ 6 - DivideM = 10 ^ 6 - letterM = "m" - elseif EHM > 10 ^ 6 then - EHM = EHM / 10 ^ 6 - DivideM = 10 ^ 6 - letterM = "m" - EHMdecimal = 2 - elseif EHM > 10 ^ 5 then - EHM = EHM / 10 ^ 3 - DivideM = 10 ^ 3 - letterM = "k" - EHMdecimal = 0 - elseif EHM > 10 ^ 4 then - EHM = EHM / 10 ^ 3 - DivideM = 10 ^ 3 - letterM = "k" - elseif EHM > 10 ^ 3 then - EHM = EHM / 10 ^ 3 - DivideM = 10 ^ 3 - letterM = "k" - EHMdecimal = 2 - elseif EHM > -1 then - EHM = EHM / 1 - DivideM = 1 - EHMdecimal = 0 - end - - -- Format displayed text with appropriate colors -- - local Color = "" - if Mode ~= "magic" then - for i = 1, 6 do - if EHP >= Threshold[1][i] / DivideP then Color = ColorFunction[i] end - end - if PImmunity == 1 then Color = ColorFunction[7] end - EHP = string.format("P:|c%s%." .. EHPdecimal .. "f" .. letterP .. "|r", Color, EHP) - else EHP = "" - end - - if Mode ~= "physical" then - for i = 1, 6 do - if EHM >= Threshold[2][i] / DivideM then Color = ColorFunction[i] end - end - if MImmunity == 1 then Color = ColorFunction[7] end - EHM = string.format("M:|c%s%." .. EHMdecimal .. "f" .. letterM .. "|r", Color, EHM) - else EHM = "" - end - - local separator = "" - if Mode == "both" and aura_env.Align == "horizontal" then separator = " | " - elseif Mode == "both" and aura_env.Align == "vertical" then separator = "\n" end - - --- CPU Benchmarking --- - if Debug then - aura_env.time = (aura_env.time or 0) + debugprofilestop() - start - if aura_env.count == 0 then - print(aura_env.time) - aura_env.time = 0 - end - return "P: " .. ReductionP .. "\n" .. "M: " .. ReductionM - end - - return EHP .. separator .. EHM -end - ---CUSTOM TRIGGER -function(t) - return t[1] -end - ---TRIGGER 1 - ALIVE - ---ACTIVE_TALENT_GROUP_CHANGED -function() - aura_env.SpecID = GetSpecialization() -end - ---COMBAT_LOG_EVENT_UNFILTERED -function(event) - -- Original code from https://wago.io/B1M5OqeFb - if aura_env.ClassID == 10 and aura_env.SpecID == 3 then - local CLEU = {CombatLogGetCurrentEventInfo()} - local message = CLEU[2] - local destName = CLEU[9] - local Multiplier = 0.5 - if aura_env.GoodKarma then - Multiplier = 1 - end - if destName and UnitIsUnit("player", destName) then - if message == "SPELL_ABSORBED" then - local chk = CLEU[9] - local spellID, absorbed = 0, 0 - if type(chk) == "number" then -- Spell - spellID = CLEU[19] - absorbed = CLEU[22] - else -- Swing - spellID = CLEU[16] - absorbed = CLEU[19] - end - if spellID == 122470 then - aura_env.TouchOfKarma = math.max(aura_env.TouchOfKarma - absorbed, 0) - end - elseif message == "SPELL_AURA_APPLIED" then - local spellID = CLEU[12] - if spellID == 122470 then - aura_env.maxValue = UnitHealthMax("player") * Multiplier - aura_env.TouchOfKarma = aura_env.maxValue - end - elseif message == "SPELL_AURA_REMOVED" then - local spellID = CLEU[12] - if spellID == 122470 then - aura_env.TouchOfKarma = 0 - end - end - end - end -end - ---PLAYER_TARGET_CHANGED,ENCOUNTER_START,INSTANCE_ENCOUNTER_ENGAGE_UNIT -function() - local PlayerLevel = aura_env.PlayerLevel - local TargetLevel = PlayerLevel - if UnitExists("boss1") then - TargetLevel = UnitLevel("boss1") - elseif UnitExists("target") then - TargetLevel = UnitLevel("target") - end - if TargetLevel == -1 then -- Raid boss - TargetLevel = PlayerLevel + 3 - -- elseif TargetLevel < aura_env.PlayerLevel then - -- TargetLevel = PlayerLevel -- Prevents the armor scaling from looking too strange. Currently disabled - end - aura_env.TargetLevel = TargetLevel -end - ---PLAYER_LEVEL_UP -function(event, NewLevel) - aura_env.PlayerLevel = NewLevel -end - ---EVERY FRAME?? (For last defender - delet?) -function() - if aura_env.ClassID == 2 and aura_env.SpecID == 2 then -- Enable for Protection Paladins only - if IsPlayerSpell(203791) then -- Last Defender - talent - local now = GetTime() - if now - aura_env.NameplateCheck >= 0.1 then -- Throttle - aura_env.NameplateCheck = now - local counter = 0 - local i - for i = 1, 40 do - local unit = "nameplate" .. i - if UnitExists(unit) and not UnitIsFriend("player", unit) then - if WeakAuras.GetRange(unit) < 8 then -- 8y range check - counter = counter + 1 - end - end - end - aura_env.NameplateCounter = counter - end - else aura_env.NameplateCounter = 0 -- Reset counter if the talent is not selected - end - end -end - ---INIT-- Made by Zeler-Ravencrest EU, with great help from Stryer-Ravencrest EU -aura_env.Mode = "both" -- Choose from "physical", "magic", "both" to change the value(s) displayed -aura_env.Align = "vertical" -- Choose which alignment you want. "vertical" for vertical alignment, "horizontal" for horizontal alignment -aura_env.AoE = true -- Enable avoidance with true and disable it with false -aura_env.GlobalExport = true -- Enable export of certain variables as global variables for use in other weakauras -aura_env.Debug = false -- Enable debug with true. It will then return the damage reduction multipliers -local text = true -- Disable the 'P:' and the 'M:' with false -aura_env.DisplayDecimals = 1 -- The number of decimals displayed - -aura_env.PlayerLevel = UnitLevel("player") -aura_env.TargetLevel = aura_env.PlayerLevel -aura_env.TouchOfKarma = 0 -aura_env.GoodKarma = IsPlayerSpell(280195) -- Wind Walker Monk - Talent -aura_env.HighmountainTauren = IsPlayerSpell(255659) -- Rugged Tenacity - Passive -aura_env.NameplateCheck = 0 -- Protection Paladin - Last Defender - talent -aura_env.NameplateCounter = 0 -- Protection Paladin - Last Defender - talent - --- Color values, the accepted values are from 0 to 255 --- {red, green, blue} -aura_env.Color = { - {0, 255, 0}, -- Lowest HP - {0, 255, 0}, - {0, 255, 0}, - {0, 255, 0}, - {0, 255, 0}, - {0, 255, 0}, -- Highest HP - {0, 255, 0}, -- Immunity color -} - --- Thresholds at which the color changes (leave the first 0) -aura_env.Threshold = { - {0, 1, 2, 3, 4, 5}, -- Physical EH - {0, 1, 2, 3, 4, 5}, -- Magic EH -} - -local function RGBtoHex(rgb) - return string.format("ff%02x%02x%02x", rgb[1], rgb[2], rgb[3]) -end - -for i = 1, #aura_env.Color do - aura_env.Color[i] = RGBtoHex(aura_env.Color[i]) -end - --- Check player class and spec -aura_env.ClassID = select(3, UnitClass("player")) -aura_env.SpecID = GetSpecialization() - --- Class self-buffs: [Spell ID] = {Phys Reduction, Magic Reduction} -aura_env.BasicReductions = { - - --- Death Knight --- - [194679] = {0.70, 0.70}, -- Rune Tap - - --- Demon Hunter --- - - --- Druid --- - [158792] = {0.91, 0.91}, -- Pulverize - [22812] = {0.80, 0.80}, -- Barkskin - [61336] = {0.50, 0.50}, -- Survival Instincts - - --- Hunter --- - [186265] = {0.70, 0.70}, -- Aspect of the Turtle - [264735] = {0.80, 0.80}, -- Survival of the Fittest - - --- Mage --- - [113862] = {0.40, 0.40}, -- Greater Invisibility - [235450] = {1, 0.85}, -- Prismatic Barrier - - --- Monk --- - [120954] = {0.80, 0.80}, -- Fortifying Brew (BrM) - [243435] = {0.80, 0.80}, -- Fortifying Brew (MW) - [122278] = {0.80, 0.80}, -- Dampen Harm, assumed at minimum reduction - [122783] = {1, 0.40}, -- Diffuse Magic - [115176] = {0.40, 0.40}, -- Zen Meditation - - --- Paladin --- - [498] = {0.80, 0.80}, -- Divine Protection - [31850] = {0.80, 0.80}, -- Ardent Defender - [205191] = {0.65, 1}, -- Eye for an Eye - talent - [86659] = {0.50, 0.50}, -- Guardian of Ancient Kings - [212641] = {0.50, 0.50}, -- Guardian of Ancient Kings - Glyph of the Queen - [183436] = {0.70, 0.70}, -- Retribution - passive - [6940] = {0.70, 0.70}, -- Blessing of Sacrifice - [204335] = {0.80, 0.80}, -- Aegis of Light - talent - - --- Priest --- - [47585] = {0.40, 0.40}, -- Dispersion - [193065] = {0.90, 0.90}, -- Masochism - talent - [232698] = {0.90, 1}, -- Shadowform - [33206] = {0.60, 0.60}, -- Pain Suppression - -- [194384] = {0.97, 0.97}, -- Leniece - talent -- Currently disabled due to being unable to track if the casting priest has the talent or not - [81782] = {0.75, 0.75}, -- Power Word: Barrier - - --- Rogue --- - [45182] = {0.15, 0.15}, -- Cheating Death - Cheat Death talent - - --- Shaman --- - [108271] = {0.60, 0.60}, -- Astral Shift - [98007] = {0.90, 0.90}, -- Spirit Link Totem - - --- Warlock --- - [104773] = {0.60, 0.60}, -- Unending Resolve - - --- Warrior --- - [197690] = {0.80, 0.80}, -- Defensive Stance - [118038] = {0.70, 0.70}, -- Die by the Sword - [184364] = {0.70, 0.70}, -- Enraged Regeneration - [871] = {0.60, 0.60}, -- Shield Wall - [23920] = {1, 0.80}, -- Spell Reflection - [223658] = {0.70, 0.70}, -- Safeguard - - --- Miscellaneous --- - [241836] = {0.95, 0.95}, -- Shadow of Celumbra - [65116] = {0.90, 1}, -- Stoneform - [211080] = {0.90, 0.90}, -- Comforting light (Court of Stars) - [273809] = {1.30, 1.30} -- Idol of Rage -} - -if aura_env.GlobalExport then - WA_ZELER_EH = {} -end +--DISPLAY EVERY FRAME SMH +function() + --- CPU benchmarking --- + local start + local aura_env = aura_env + local Debug = aura_env.Debug + if Debug then + aura_env.count = aura_env.count or 1 + aura_env.count = (aura_env.count + 1) % 600 + start = debugprofilestop() + end + + -- Setting some aura_env to local variables to improve performance -- + local ClassID = aura_env.ClassID + local SpecID = aura_env.SpecID + local AoE = aura_env.AoE + local Mode = aura_env.Mode + local ColorFunction = aura_env.Color + local Threshold = aura_env.Threshold + local BasicReductions = aura_env.BasicReductions + + -- Armor calulation // Armor scales differently depending on the enemy level, this makes sure is stays accurate -- + local Armor = select(2, UnitArmor("player")) + Armor = 1 - C_PaperDollInfo.GetArmorEffectiveness(Armor, aura_env.TargetLevel) -- Gets the reduction percentage and makes it usable + + -- All Classes + local CurrentHealth = UnitHealth("player") + local MaxHealth = UnitHealthMax("player") + local Vers = 1 - (GetCombatRatingBonus(31) / 100) + local Avoid = 1 + local ScanTarget = false + if AoE then + Avoid = 1 - (GetAvoidance() / 100) + end + local Elusive = 1 + local StaggerP, StaggerM = 1, 1 + local Absorbs = UnitGetTotalAbsorbs("player") + local AbsorbsP, AbsorbsM = Absorbs, Absorbs + + -- Initialize some variables -- + local ClassDRP, ClassDRM = 1, 1 + local PImmunity, MImmunity = 0, 0 + + ----- General damage reduction buffs ----- + local n = 1 + local BuffID = select(10, UnitBuff("player", n)) + while BuffID do + local Reduction = 1 + local PhysicalReduction = 1 + local MagicReduction = 1 + + if BasicReductions[BuffID] then + ClassDRP = ClassDRP * BasicReductions[BuffID][1] + ClassDRM = ClassDRM * BasicReductions[BuffID][2] + end + + ---- More complex tracking ---- + + local AMS, BloodS = 0, 0 + + --- Death Knight --- + if BuffID == 48792 then + Reduction = 1 + (tonumber(select(18, UnitBuff("player", n)) or 0)) / 100 -- Icebound Fortitude // using plus since the tooltip returns a negative value + + elseif BuffID == 48707 then + AMS = (select(16, UnitBuff("player", n)) or 0) -- Anti-Magic Shell + + elseif BuffID == 77535 then + BloodS = (select(16, UnitBuff("player", n)) or 0) -- Blood Shield + + --- Demon Hunter --- + elseif BuffID == 212800 then + if IsPlayerSpell(205411) then Reduction = 0.50 -- Blur + else Reduction = 0.65 end + + elseif BuffID == 196555 then PImmunity = 1 -- Netherwalk + + --- Druid --- + elseif BuffID == 102342 then + Reduction = 1 + (tonumber(select(16, UnitBuff("player", n)) or 0)) / 100 -- Ironbark // using plus since the tooltip returns a negative value + + --- Hunter --- + elseif BuffID == 186265 then -- Aspect of the Turtle + PImmunity = 1 + MImmunity = 1 + + --- Mage --- + elseif BuffID == 45438 then -- Ice Block + PImmunity = 1 + MImmunity = 1 + + --- Monk --- + elseif BuffID == 261769 then + Reduction = 1 + (select(16, UnitBuff("player", n)) or 0) / 100 -- Inner Strength // using plus since the tooltip returns a negative value + + elseif BuffID == 115295 then + Absorbs = Absorbs - select(16, UnitBuff("player", n)) -- Guard // prevents Guard from counting as a normal absorb + + --- Paladin --- + elseif BuffID == 210320 then + Reduction = 1 + (tonumber(select(16, UnitBuff("player", n)) or 0)) / 100 -- Devotion Aura // using plus since the tooltip returns a negative value + + elseif BuffID == 1022 then PImmunity = 1 -- Blessing of Protection + elseif BuffID == 204018 then MImmunity = 1 -- Blessing of Spellwarding + + elseif BuffID == 188370 then + Reduction = 1 - (GetMasteryEffect() / 2.85) / 100 -- Consecration // May not be 100% accurate, but it's good enough for now + if IsEquippedItem(137047) then Reduction = Reduction * 0.96 end -- Consecration (Legendary Ring) + + elseif BuffID == 642 then -- Divine Shield + PImmunity = 1 + MImmunity = 1 + + --- Priest --- + elseif BuffID == 45242 then + Reduction = 1 - (select(3, UnitBuff("player", n)) or 0) * 15 / 100 -- Focused Will + + elseif BuffID == 139 then + if IsPlayerSpell(235189) and UnitBuff("player", n, nil, "player") then + Reduction = 0.90 -- Perseverance - Talent + end + + --- Rogue --- + elseif BuffID == 1966 then + if not AoE and IsPlayerSpell(79008) + then Elusive = 0.70 -- Elusiveness + else -- Feint + if AoE then Avoid = Avoid * 0.50 end + end + elseif BuffID == 31224 then MImmunity = 1 -- Cloak of Shadows + + --- Shaman --- + elseif BuffID == 260881 then + Reduction = 1 - (tonumber(select(3, UnitBuff("player", n)) or 0)) * 5 / 100 -- Ghost in the Mist - Talent + + --- Warlock --- + + --- Warrior --- + elseif BuffID == 184362 and IsPlayerSpell(208154) then -- Enrage + Reduction = 0.90 -- War Paint - Talent + + end + + AbsorbsP = Absorbs - AMS + AbsorbsM = Absorbs - BloodS + + ClassDRP = ClassDRP * Reduction * PhysicalReduction + ClassDRM = ClassDRM * Reduction * MagicReduction + n = n + 1 + BuffID = select(10, UnitBuff("player", n)) + end + + ----- Damage reductions with special calculations ----- + + --- Death Knight --- + if ClassID == 6 then + local Necropolis = 1 + if IsPlayerSpell(206967) then -- Will of the Necropolis - Talent + if CurrentHealth / MaxHealth < 0.35 then Necropolis = 0.65 + end + end + ClassDRP = ClassDRP * Necropolis + ClassDRM = ClassDRM * Necropolis + end + + --- Demon Hunter --- + if ClassID == 12 then + local HavocDemWards = 1 + local VengDemWards = 1 + if SpecID == 1 then + HavocDemWards = 0.90 -- Demonic Wards - Passive + elseif SpecID == 2 then + VengDemWards = 0.90 -- Demonic Wards - Passive + ScanTarget = true + end + + ClassDRP = ClassDRP * VengDemWards + ClassDRM = ClassDRM * VengDemWards * HavocDemWards + end + + --- Druid --- + if ClassID == 11 then + local GuardA = 1 + if IsEquippedItem(137015) and IsPlayerSpell(16931) then + GuardA = 0.895 -- Legendary chest + elseif IsPlayerSpell(16931) then + GuardA = 0.94 -- Thick Hide (Guardian Affinity) + end + if SpecID == 3 then + if IsPlayerSpell(204053) then + ScanTarget = true + end + end + + ClassDRP = ClassDRP * GuardA + ClassDRM = ClassDRM * GuardA + end + + --- Hunter --- + if ClassID == 3 then + end + + --- Mage --- + if ClassID == 8 then + end + + --- Monk --- + if ClassID == 10 then + if SpecID == 1 then + ScanTarget = true + -- Gets stagger agaist current target, if no target is found use base -- + local StaggerBase, StaggerTarget = C_PaperDollInfo.GetStaggerPercentage("player") + if not StaggerTarget then StaggerTarget = StaggerBase end + StaggerM = StaggerTarget * 0.35 + StaggerP = 1 - StaggerTarget / 100 + StaggerM = 1 - StaggerM / 100 + + -- Stagger cap -- + local Stagger = UnitStagger("player") or 0 -- Calculate MaxHealth effective reduction for Stagger + local StaggerCapP = (CurrentHealth + AbsorbsP) / (CurrentHealth + AbsorbsP + 100 * MaxHealth - Stagger * 10) + local StaggerCapM = (CurrentHealth + AbsorbsM) / (CurrentHealth + AbsorbsM + 100 * MaxHealth - Stagger * 10) + if StaggerCapP < 0.01 then StaggerCapP = 0.01 end -- Stagger caps at 99% + if StaggerCapM < 0.01 then StaggerCapM = 0.01 end + if StaggerP < StaggerCapP then StaggerP = StaggerCapP end + if StaggerM < StaggerCapM then StaggerM = StaggerCapM end + end + if SpecID == 3 then + local Karma = 0 + aura_env.GoodKarma = IsPlayerSpell(280195) -- Talent + Karma = aura_env.TouchOfKarma + Absorbs = Absorbs + Karma + AbsorbsP = AbsorbsP + Karma + AbsorbsM = AbsorbsM + Karma + end + + ClassDRP = ClassDRP * StaggerP + ClassDRM = ClassDRM * StaggerM + end + + --- Paladin --- + if ClassID == 2 then + local LastDefender = 1 + if SpecID == 2 then -- Protection + LastDefender = 1 - (1 - 0.97 ^ aura_env.NameplateCounter) + end + ClassDRP = ClassDRP * LastDefender + ClassDRM = ClassDRM * LastDefender + end + + --- Priest --- + if ClassID == 5 then + end + + --- Rogue --- + if ClassID == 4 then + end + + --- Shaman --- + if ClassID == 7 then + end + + --- Warlock --- + if ClassID == 9 then + local SoulLink = 1 + local DestructionMastery = 1 + if SpecID == 2 then -- Soul Link passive for Demonology Warlocks + if UnitExists("pet") then + SoulLink = 0.80 + end + elseif SpecID == 3 then + DestructionMastery = 1 - ((GetMasteryEffect() / 9) / 100) -- Destruction mastery effect + end + + ClassDRP = ClassDRP * SoulLink * DestructionMastery + ClassDRM = ClassDRM * SoulLink * DestructionMastery + end + + --- Warrior --- + if ClassID == 1 then + if SpecID == 3 then + ScanTarget = true + end + + ClassDRP = ClassDRP + ClassDRM = ClassDRM + end + + --- Miscellaneous --- + if aura_env.HighmountainTauren then + local Stamina = UnitStat("player", 3) + local RuggedTenacity = floor((Stamina * 0.0003 * 20) + 0.5) + Absorbs = Absorbs + RuggedTenacity + end + + --- Checking debuffs on target if needed --- + if ScanTarget then + local TD = 1 + local DebuffID = select(10, UnitDebuff("target", TD)) + while DebuffID do + local DebuffTarget = 1 + local DebuffTargetP = 1 + local DebuffTargetM = 1 + + --- Demon Hunter --- + if DebuffID == 207744 and select(3, UnitDebuff("target", TD, nil, "player")) then + DebuffTarget = 0.60 -- Fiery Brand + + elseif DebuffID == 268178 and select(3, UnitDebuff("target", TD, nil, "player")) then + DebuffTarget = 0.94 -- Void Reaver -- Talent + + --- Druid --- + elseif DebuffID == 192090 and select(3, UnitDebuff("target", TD, nil, "player")) then + DebuffTarget = 1 - 0.02 * (select(3, UnitDebuff("target", TD, nil, "player")) or 0) -- Rend and Tear - Talent + + --- Monk --- + elseif DebuffID == 123725 then + DebuffTarget = 1 + 0.01 * (select(17, UnitDebuff("target", TD, nil, "player")) or 0) -- Breath of Fire // using plus since the tooltip returns a negative value + + --- Warrior --- + elseif DebuffID == 1160 and select(7, UnitDebuff("target", TD)) == "player" then + DebuffTarget = 0.80 -- Demoralizing Shout + end + + ClassDRP = ClassDRP * DebuffTarget * DebuffTargetP + ClassDRM = ClassDRM * DebuffTarget * DebuffTargetM + TD = TD + 1 + DebuffID = select(10, UnitDebuff("target", TD)) + end + end + + -- Damage taken modifiers -- + local ReductionP = Vers * Avoid * ClassDRP * Armor * Elusive + local ReductionM = Vers * Avoid * ClassDRM * Elusive + -- CurrentHealth health and shields -- + local EHP = (CurrentHealth + AbsorbsP) / ReductionP + local EHM = (CurrentHealth + AbsorbsM) / ReductionM + + -- Export pre-avoidance EHP, EHM and immunity status as global variables -- + if aura_env.GlobalExport then + -- Calculate max effective health (no absorbs) -- + local EHPMaxHealth = (MaxHealth + AbsorbsP) / ReductionP + local EHMMaxHealth = (MaxHealth + AbsorbsM) / ReductionM + -- Export to globals -- + local Export = WA_ZELER_EH + Export.EHPMAX, Export.EHMMAX = EHPMaxHealth * Avoid * Elusive, EHMMaxHealth * Avoid * Elusive + Export.EHP, Export.EHM = EHP * Avoid * Elusive, EHM * Avoid * Elusive + + Export.REDP, Export.REDM = ReductionP / Avoid / Elusive, ReductionM / Avoid / Elusive + Export.ABS, Export.ABSP, Export.ABSM = Absorbs, AbsorbsP, AbsorbsM + Export.EHPIMMUNITY, Export.EHMIMMUNITY = PImmunity, MImmunity + Export.EHARMOR = Armor + Export.STAGGERP, Export.STAGGERM = StaggerP, StaggerM + end + + -- Formatting numbers -- + local DivideP, DivideM = 1, 1 + local ImportDecimal = aura_env.DisplayDecimals + local EHPdecimal, EHMdecimal = ImportDecimal, ImportDecimal + local letterP, letterM = "", "" + if EHP > 10 ^ 9 then + EHP = EHP / 10 ^ 9 + DivideP = 10 ^ 9 + letterP = "b" + EHPdecimal = 2 + elseif EHP > 10 ^ 8 then + EHP = EHP / 10 ^ 6 + DivideP = 10 ^ 6 + letterP = "m" + EHPdecimal = 0 + elseif EHP > 10 ^ 7 then + EHP = EHP / 10 ^ 6 + DivideP = 10 ^ 6 + letterP = "m" + elseif EHP > 10 ^ 6 then + EHP = EHP / 10 ^ 6 + DivideP = 10 ^ 6 + letterP = "m" + EHPdecimal = 2 + elseif EHP > 10 ^ 5 then + EHP = EHP / 10 ^ 3 + DivideP = 10 ^ 3 + letterP = "k" + EHPdecimal = 0 + elseif EHP > 10 ^ 4 then + EHP = EHP / 10 ^ 3 + DivideP = 10 ^ 3 + letterP = "k" + elseif EHP > 10 ^ 3 then + EHP = EHP / 10 ^ 3 + DivideP = 10 ^ 3 + letterP = "k" + EHPdecimal = 2 + elseif EHP > -1 then + EHP = EHP / 1 + DivideP = 1 + EHPdecimal = 0 + end + + if EHM > 10 ^ 9 then + EHM = EHM / 10 ^ 9 + DivideM = 10 ^ 9 + letterM = "b" + EHMdecimal = 2 + elseif EHM > 10 ^ 8 then + EHM = EHM / 10 ^ 6 + DivideM = 10 ^ 6 + letterM = "m" + EHMdecimal = 0 + elseif EHM > 10 ^ 7 then + EHM = EHM / 10 ^ 6 + DivideM = 10 ^ 6 + letterM = "m" + elseif EHM > 10 ^ 6 then + EHM = EHM / 10 ^ 6 + DivideM = 10 ^ 6 + letterM = "m" + EHMdecimal = 2 + elseif EHM > 10 ^ 5 then + EHM = EHM / 10 ^ 3 + DivideM = 10 ^ 3 + letterM = "k" + EHMdecimal = 0 + elseif EHM > 10 ^ 4 then + EHM = EHM / 10 ^ 3 + DivideM = 10 ^ 3 + letterM = "k" + elseif EHM > 10 ^ 3 then + EHM = EHM / 10 ^ 3 + DivideM = 10 ^ 3 + letterM = "k" + EHMdecimal = 2 + elseif EHM > -1 then + EHM = EHM / 1 + DivideM = 1 + EHMdecimal = 0 + end + + -- Format displayed text with appropriate colors -- + local Color = "" + if Mode ~= "magic" then + for i = 1, 6 do + if EHP >= Threshold[1][i] / DivideP then Color = ColorFunction[i] end + end + if PImmunity == 1 then Color = ColorFunction[7] end + EHP = string.format("P:|c%s%." .. EHPdecimal .. "f" .. letterP .. "|r", Color, EHP) + else EHP = "" + end + + if Mode ~= "physical" then + for i = 1, 6 do + if EHM >= Threshold[2][i] / DivideM then Color = ColorFunction[i] end + end + if MImmunity == 1 then Color = ColorFunction[7] end + EHM = string.format("M:|c%s%." .. EHMdecimal .. "f" .. letterM .. "|r", Color, EHM) + else EHM = "" + end + + local separator = "" + if Mode == "both" and aura_env.Align == "horizontal" then separator = " | " + elseif Mode == "both" and aura_env.Align == "vertical" then separator = "\n" end + + --- CPU Benchmarking --- + if Debug then + aura_env.time = (aura_env.time or 0) + debugprofilestop() - start + if aura_env.count == 0 then + print(aura_env.time) + aura_env.time = 0 + end + return "P: " .. ReductionP .. "\n" .. "M: " .. ReductionM + end + + return EHP .. separator .. EHM +end + +--CUSTOM TRIGGER +function(t) + return t[1] +end + +--TRIGGER 1 - ALIVE + +--ACTIVE_TALENT_GROUP_CHANGED +function() + aura_env.SpecID = GetSpecialization() +end + +--COMBAT_LOG_EVENT_UNFILTERED +function(event) + -- Original code from https://wago.io/B1M5OqeFb + if aura_env.ClassID == 10 and aura_env.SpecID == 3 then + local CLEU = {CombatLogGetCurrentEventInfo()} + local message = CLEU[2] + local destName = CLEU[9] + local Multiplier = 0.5 + if aura_env.GoodKarma then + Multiplier = 1 + end + if destName and UnitIsUnit("player", destName) then + if message == "SPELL_ABSORBED" then + local chk = CLEU[9] + local spellID, absorbed = 0, 0 + if type(chk) == "number" then -- Spell + spellID = CLEU[19] + absorbed = CLEU[22] + else -- Swing + spellID = CLEU[16] + absorbed = CLEU[19] + end + if spellID == 122470 then + aura_env.TouchOfKarma = math.max(aura_env.TouchOfKarma - absorbed, 0) + end + elseif message == "SPELL_AURA_APPLIED" then + local spellID = CLEU[12] + if spellID == 122470 then + aura_env.maxValue = UnitHealthMax("player") * Multiplier + aura_env.TouchOfKarma = aura_env.maxValue + end + elseif message == "SPELL_AURA_REMOVED" then + local spellID = CLEU[12] + if spellID == 122470 then + aura_env.TouchOfKarma = 0 + end + end + end + end +end + +--PLAYER_TARGET_CHANGED,ENCOUNTER_START,INSTANCE_ENCOUNTER_ENGAGE_UNIT +function() + local PlayerLevel = aura_env.PlayerLevel + local TargetLevel = PlayerLevel + if UnitExists("boss1") then + TargetLevel = UnitLevel("boss1") + elseif UnitExists("target") then + TargetLevel = UnitLevel("target") + end + if TargetLevel == -1 then -- Raid boss + TargetLevel = PlayerLevel + 3 + -- elseif TargetLevel < aura_env.PlayerLevel then + -- TargetLevel = PlayerLevel -- Prevents the armor scaling from looking too strange. Currently disabled + end + aura_env.TargetLevel = TargetLevel +end + +--PLAYER_LEVEL_UP +function(event, NewLevel) + aura_env.PlayerLevel = NewLevel +end + +--EVERY FRAME?? (For last defender - delet?) +function() + if aura_env.ClassID == 2 and aura_env.SpecID == 2 then -- Enable for Protection Paladins only + if IsPlayerSpell(203791) then -- Last Defender - talent + local now = GetTime() + if now - aura_env.NameplateCheck >= 0.1 then -- Throttle + aura_env.NameplateCheck = now + local counter = 0 + local i + for i = 1, 40 do + local unit = "nameplate" .. i + if UnitExists(unit) and not UnitIsFriend("player", unit) then + if WeakAuras.GetRange(unit) < 8 then -- 8y range check + counter = counter + 1 + end + end + end + aura_env.NameplateCounter = counter + end + else aura_env.NameplateCounter = 0 -- Reset counter if the talent is not selected + end + end +end + +--INIT-- Made by Zeler-Ravencrest EU, with great help from Stryer-Ravencrest EU +aura_env.Mode = "both" -- Choose from "physical", "magic", "both" to change the value(s) displayed +aura_env.Align = "vertical" -- Choose which alignment you want. "vertical" for vertical alignment, "horizontal" for horizontal alignment +aura_env.AoE = true -- Enable avoidance with true and disable it with false +aura_env.GlobalExport = true -- Enable export of certain variables as global variables for use in other weakauras +aura_env.Debug = false -- Enable debug with true. It will then return the damage reduction multipliers +local text = true -- Disable the 'P:' and the 'M:' with false +aura_env.DisplayDecimals = 1 -- The number of decimals displayed + +aura_env.PlayerLevel = UnitLevel("player") +aura_env.TargetLevel = aura_env.PlayerLevel +aura_env.TouchOfKarma = 0 +aura_env.GoodKarma = IsPlayerSpell(280195) -- Wind Walker Monk - Talent +aura_env.HighmountainTauren = IsPlayerSpell(255659) -- Rugged Tenacity - Passive +aura_env.NameplateCheck = 0 -- Protection Paladin - Last Defender - talent +aura_env.NameplateCounter = 0 -- Protection Paladin - Last Defender - talent + +-- Color values, the accepted values are from 0 to 255 +-- {red, green, blue} +aura_env.Color = { + {0, 255, 0}, -- Lowest HP + {0, 255, 0}, + {0, 255, 0}, + {0, 255, 0}, + {0, 255, 0}, + {0, 255, 0}, -- Highest HP + {0, 255, 0}, -- Immunity color +} + +-- Thresholds at which the color changes (leave the first 0) +aura_env.Threshold = { + {0, 1, 2, 3, 4, 5}, -- Physical EH + {0, 1, 2, 3, 4, 5}, -- Magic EH +} + +local function RGBtoHex(rgb) + return string.format("ff%02x%02x%02x", rgb[1], rgb[2], rgb[3]) +end + +for i = 1, #aura_env.Color do + aura_env.Color[i] = RGBtoHex(aura_env.Color[i]) +end + +-- Check player class and spec +aura_env.ClassID = select(3, UnitClass("player")) +aura_env.SpecID = GetSpecialization() + +-- Class self-buffs: [Spell ID] = {Phys Reduction, Magic Reduction} +aura_env.BasicReductions = { + + --- Death Knight --- + [194679] = {0.70, 0.70}, -- Rune Tap + + --- Demon Hunter --- + + --- Druid --- + [158792] = {0.91, 0.91}, -- Pulverize + [22812] = {0.80, 0.80}, -- Barkskin + [61336] = {0.50, 0.50}, -- Survival Instincts + + --- Hunter --- + [186265] = {0.70, 0.70}, -- Aspect of the Turtle + [264735] = {0.80, 0.80}, -- Survival of the Fittest + + --- Mage --- + [113862] = {0.40, 0.40}, -- Greater Invisibility + [235450] = {1, 0.85}, -- Prismatic Barrier + + --- Monk --- + [120954] = {0.80, 0.80}, -- Fortifying Brew (BrM) + [243435] = {0.80, 0.80}, -- Fortifying Brew (MW) + [122278] = {0.80, 0.80}, -- Dampen Harm, assumed at minimum reduction + [122783] = {1, 0.40}, -- Diffuse Magic + [115176] = {0.40, 0.40}, -- Zen Meditation + + --- Paladin --- + [498] = {0.80, 0.80}, -- Divine Protection + [31850] = {0.80, 0.80}, -- Ardent Defender + [205191] = {0.65, 1}, -- Eye for an Eye - talent + [86659] = {0.50, 0.50}, -- Guardian of Ancient Kings + [212641] = {0.50, 0.50}, -- Guardian of Ancient Kings - Glyph of the Queen + [183436] = {0.70, 0.70}, -- Retribution - passive + [6940] = {0.70, 0.70}, -- Blessing of Sacrifice + [204335] = {0.80, 0.80}, -- Aegis of Light - talent + + --- Priest --- + [47585] = {0.40, 0.40}, -- Dispersion + [193065] = {0.90, 0.90}, -- Masochism - talent + [232698] = {0.90, 1}, -- Shadowform + [33206] = {0.60, 0.60}, -- Pain Suppression + -- [194384] = {0.97, 0.97}, -- Leniece - talent -- Currently disabled due to being unable to track if the casting priest has the talent or not + [81782] = {0.75, 0.75}, -- Power Word: Barrier + + --- Rogue --- + [45182] = {0.15, 0.15}, -- Cheating Death - Cheat Death talent + + --- Shaman --- + [108271] = {0.60, 0.60}, -- Astral Shift + [98007] = {0.90, 0.90}, -- Spirit Link Totem + + --- Warlock --- + [104773] = {0.60, 0.60}, -- Unending Resolve + + --- Warrior --- + [197690] = {0.80, 0.80}, -- Defensive Stance + [118038] = {0.70, 0.70}, -- Die by the Sword + [184364] = {0.70, 0.70}, -- Enraged Regeneration + [871] = {0.60, 0.60}, -- Shield Wall + [23920] = {1, 0.80}, -- Spell Reflection + [223658] = {0.70, 0.70}, -- Safeguard + + --- Miscellaneous --- + [241836] = {0.95, 0.95}, -- Shadow of Celumbra + [65116] = {0.90, 1}, -- Stoneform + [211080] = {0.90, 0.90}, -- Comforting light (Court of Stars) + [273809] = {1.30, 1.30} -- Idol of Rage +} + +if aura_env.GlobalExport then + WA_ZELER_EH = {} +end diff --git a/Complete Projects/Legion/Easter Achiv Bullshit.lua b/WeakAuras/Projects/Easter Achiv Bullshit.lua similarity index 96% rename from Complete Projects/Legion/Easter Achiv Bullshit.lua rename to WeakAuras/Projects/Easter Achiv Bullshit.lua index 7a2f0a3..82f7c25 100644 --- a/Complete Projects/Legion/Easter Achiv Bullshit.lua +++ b/WeakAuras/Projects/Easter Achiv Bullshit.lua @@ -1,55 +1,55 @@ ---NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED PLAYER_TARGET_CHANGED -function(e,id) - if e == "NAME_PLATE_UNIT_ADDED" then - local race = UnitRace(id) - local sex = UnitSex(id) - if sex == 3 and aura_env.races[race] == 1 then - table.insert(aura_env.targets, UnitName(id) .. " " .. race) - end - end - if e == "NAME_PLATE_UNIT_REMOVED" then - local race = UnitRace(id) - local sex = UnitSex(id) - if sex == 3 and aura_env.races[race] == 1 then - for k,v in ipairs(aura_env.targets) do - if v:match(UnitName(id)) then - table.remove(aura_env.targets, k) - end - end - end - end - if e == "PLAYER_TARGET_CHANGED" and UnitExists("target") then - local race = UnitRace(id) - local sex = UnitSex(id) - if sex == 3 and aura_env.races[race] == 1 then - table.insert(aura_env.targets, UnitName(id) .. " " .. race) - end - end - if e == "PLAYER_TARGET_CHANGED" and not UnitExists("target") then - aura_env.targets = {} - end -end - ---DISPLAY -function() - local output = "" - for k,v in ipairs(aura_env.targets) do - output = output .. v .. "\n" - end - return output -end - ---INIT -aura_env.races = -{ - ["Gnome"] = 1, - ["Night Elf"] = 0, - ["Draenei"] = 0, - ["Orc"] = 0, - ["Undead"] = 0, - ["Dwarf"] = 1, - ["Human"] = 0, - ["Tauren"] = 0, - ["Worgen"] = 0, -} +--NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED PLAYER_TARGET_CHANGED +function(e,id) + if e == "NAME_PLATE_UNIT_ADDED" then + local race = UnitRace(id) + local sex = UnitSex(id) + if sex == 3 and aura_env.races[race] == 1 then + table.insert(aura_env.targets, UnitName(id) .. " " .. race) + end + end + if e == "NAME_PLATE_UNIT_REMOVED" then + local race = UnitRace(id) + local sex = UnitSex(id) + if sex == 3 and aura_env.races[race] == 1 then + for k,v in ipairs(aura_env.targets) do + if v:match(UnitName(id)) then + table.remove(aura_env.targets, k) + end + end + end + end + if e == "PLAYER_TARGET_CHANGED" and UnitExists("target") then + local race = UnitRace(id) + local sex = UnitSex(id) + if sex == 3 and aura_env.races[race] == 1 then + table.insert(aura_env.targets, UnitName(id) .. " " .. race) + end + end + if e == "PLAYER_TARGET_CHANGED" and not UnitExists("target") then + aura_env.targets = {} + end +end + +--DISPLAY +function() + local output = "" + for k,v in ipairs(aura_env.targets) do + output = output .. v .. "\n" + end + return output +end + +--INIT +aura_env.races = +{ + ["Gnome"] = 1, + ["Night Elf"] = 0, + ["Draenei"] = 0, + ["Orc"] = 0, + ["Undead"] = 0, + ["Dwarf"] = 1, + ["Human"] = 0, + ["Tauren"] = 0, + ["Worgen"] = 0, +} aura_env.targets = {} \ No newline at end of file diff --git a/Complete Projects/Legion/ElwynnForestSpam.lua b/WeakAuras/Projects/ElwynnForestSpam.lua similarity index 98% rename from Complete Projects/Legion/ElwynnForestSpam.lua rename to WeakAuras/Projects/ElwynnForestSpam.lua index 6d51ba0..2a427ac 100644 --- a/Complete Projects/Legion/ElwynnForestSpam.lua +++ b/WeakAuras/Projects/ElwynnForestSpam.lua @@ -1,116 +1,116 @@ ---ZONE_CHANGED_NEW_AREA GGEZCHATSPAM GGEZBEGIN GGEZSTOP INSPIREME ---Doesn't work :(((((( -function(e) - if e == "ZONE_CHANGED_NEW_AREA" then - local currentZone = GetRealZoneText() - if currentZone == "Elwynn Forest" then - print("GET INSPIRED") - if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(15, function() WeakAuras.ScanEvents("GGEZCHATSPAM") end) end - else - print(":(") - if aura_env.ticker then aura_env.ticker:Cancel(); aura_env.ticker = nil end - end -elseif e == "GGEZCHATSPAM" then - local rng = math.random(1, aura_env.size) - SendChatMessage(aura_env.inspirationalQuotes[rng], "SAY") -elseif e == "GGEZBEGIN" then - local rng = math.random(1, aura_env.size) - SendChatMessage(aura_env.inspirationalQuotes[rng], "SAY") - print("GET INSPIRED") -if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(15, function() WeakAuras.ScanEvents("GGEZCHATSPAM") end) end -elseif e == "GGEZSTOP" then -if aura_env.ticker then aura_env.ticker:Cancel(); aura_env.ticker = nil end -elseif e == "INSPIREME" then -local rng = math.random(1, aura_env.size) -SendChatMessage(aura_env.inspirationalQuotes[rng], "SAY") -end -end - ---INIT -aura_env.chatMessages = {"Ah shucks... you guys are the best!", "C’mon, Mom! One more game before you tuck me in. Oops mistell.", "For glory and honor! Huzzah comrades!", "Gee whiz! That was fun. Good playing!", "Good game! Best of luck to you all!", "Great game, everyone!", "I could really use a hug right now.", "I feel very, very small... please hold me...", "I'm trying to be a nicer person. It's hard, but I am trying guys.", "I'm wrestling with some insecurity issues in my life but thank you all for playing with me.", "It was an honor to play with you all. Thank you.", "It’s past my bedtime. Please don’t tell my mommy.", "Mommy says people my age shouldn’t suck their thumbs.", "Well played. I salute you all.", "Wishing you all the best."} - -aura_env.inspirationalQuotes = { - "Sheep love nu metal", - "Students eat what reality stars demand", - "Don't investigate bath salts", - "Push yourself against yoga", - "Artificate regulations", - "Human emotion can't always be sad", - "There is no need to ruin your marriage because of multiresistant bacteria", - "Failing at punching yourself is probably caused by retardation", - "Get erected and don't be scientific", - "Be weary of rimjobs", - "Keep dieting", - "Ignore how your joints are pulsating", - "You cannot allow RFID-chips to jeopardize your dreams", - "Don’t you get tired of sleeping?", - "Ass kissing can be a cry for help", - "Stop using a condom", - "Simply being beautiful, doesn’t mean you’re not average", - "Trust the grotesqueness of time", - "Your head is dissolving the ground", - "Keep in mind how God once said: A friend loves you", - "All you need in order to create art is gasoline and organic vegetables", - "It takes soft drugs, like marijuana to become above average within the business of caressing", - "Carry on straightening", - "Try to think about that ancient proverb: Those who can live through ignorance, can sell out the earth", - "Be the first person ever to listen to what what nobody expects you to listen to", - "Think about that ancient buddhist wisdom: Our bodily orifices end when our orgasms begin", - "Aim to straighten your belly", - "Keep your eyes shut", - "You can be the first person in the world to try to punch what others find unpunchable", - "Think about these words of wisdom: Glory holes begin when mason jars end", - "Keep in mind that you are not average", - "Notice how your nose is letting go", - "Bend your stomach inwards", - "It's your life. Cut your hair", - "I am so clever that sometimes I don’t understand a single word of what I am saying", - "The only distinction between daylight and an imaginary friend, is that an imaginary friend doesn’t cost anything", - "If one expects irony, one has to prepare for a violin", - "Back in the middle ages there was a dimwitted wanderer who was looking for some poontang, when he encountered a tired, old seer. \"Can you tell me where to find some poontang?\" he asked the seer. The seer quickly replied \"of some poontang I do not know, for I am only a seer\"", - "Think about how your head is energized by the vacuum of space", - "Don't cry over your shrinking wealth, just eat more calories", - "There are some old people who only say no to cryptocurrencies", - "Regret and call 911", - "Reveal your teeth", - "Become independent from fatties", - "Don't stop freaking out", - "Car salesmen become car salesmen because of weakness", - "You have always been a smelly wreck", - "Love milk, die young", - "Childhood is almost identical to being buried alive, you never know what you're gonna get", - "Can you imagine what would happend if the robots were allowed to wear clothes?", - "Where wisdom collapses farts are born", - "Only when you understand the beatuy of vegetables will you confront money", - "Look at the watch, prepare to die, hurt your mouth", - "Before inspiration comes the slaughter", - "Try to tell yourself that you are horrible", - "If you want to get somewhere in life you have to try to be dead", - "Spending time with your family is impossible if you don't do drugs", - "Canada. It's a hoax", - "It's up to you to remind yourself that you are undesired", - "Our large intestines end where our souls begin", - "Seek success but prepare for vegetables", - "Mass-incineration is 70 percent a cry for help", - "Face risk and drink milk", - "There is no I in \"Totalitarianism\"", - "Don't argue with success, be naked", - "If you actually need recognition be a complete imbecile", - "You are a russian bot", - "Each day is another chance to be dreadfully dysfunctional", - "Be the reason why a stranger calls the police at night", - "Hate the mountains", - "Neighbourhoods begin when we learn to moisturize love", - "Puberty can be quite similar to having brain damage", - "Uuuuuurrr Ahhhrrr Uhrrrrr Ahhhhhhrrr Aaaaaarrhg", - "The simple fact that you are dead makes you awesome", - "Get fucked", - "You are being monitored, keep yourself frightened", - "Inspiration is to re-demand ", - "Invert your stomach backwards ", - "Together we can make equality collapse under its own weight ", - "If you find it difficult to achieve the right state, consider this ancient buddhist wisdom: The UFO phenomenon is personalities", - "Isn't it beautiful to take notice of how the air you breathe is letting go of the walls around you?", -} -aura_env.size = table.getn(aura_env.inspirationalQuotes) -print(aura_env.size) +--ZONE_CHANGED_NEW_AREA GGEZCHATSPAM GGEZBEGIN GGEZSTOP INSPIREME +--Doesn't work :(((((( +function(e) + if e == "ZONE_CHANGED_NEW_AREA" then + local currentZone = GetRealZoneText() + if currentZone == "Elwynn Forest" then + print("GET INSPIRED") + if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(15, function() WeakAuras.ScanEvents("GGEZCHATSPAM") end) end + else + print(":(") + if aura_env.ticker then aura_env.ticker:Cancel(); aura_env.ticker = nil end + end +elseif e == "GGEZCHATSPAM" then + local rng = math.random(1, aura_env.size) + SendChatMessage(aura_env.inspirationalQuotes[rng], "SAY") +elseif e == "GGEZBEGIN" then + local rng = math.random(1, aura_env.size) + SendChatMessage(aura_env.inspirationalQuotes[rng], "SAY") + print("GET INSPIRED") +if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(15, function() WeakAuras.ScanEvents("GGEZCHATSPAM") end) end +elseif e == "GGEZSTOP" then +if aura_env.ticker then aura_env.ticker:Cancel(); aura_env.ticker = nil end +elseif e == "INSPIREME" then +local rng = math.random(1, aura_env.size) +SendChatMessage(aura_env.inspirationalQuotes[rng], "SAY") +end +end + +--INIT +aura_env.chatMessages = {"Ah shucks... you guys are the best!", "C’mon, Mom! One more game before you tuck me in. Oops mistell.", "For glory and honor! Huzzah comrades!", "Gee whiz! That was fun. Good playing!", "Good game! Best of luck to you all!", "Great game, everyone!", "I could really use a hug right now.", "I feel very, very small... please hold me...", "I'm trying to be a nicer person. It's hard, but I am trying guys.", "I'm wrestling with some insecurity issues in my life but thank you all for playing with me.", "It was an honor to play with you all. Thank you.", "It’s past my bedtime. Please don’t tell my mommy.", "Mommy says people my age shouldn’t suck their thumbs.", "Well played. I salute you all.", "Wishing you all the best."} + +aura_env.inspirationalQuotes = { + "Sheep love nu metal", + "Students eat what reality stars demand", + "Don't investigate bath salts", + "Push yourself against yoga", + "Artificate regulations", + "Human emotion can't always be sad", + "There is no need to ruin your marriage because of multiresistant bacteria", + "Failing at punching yourself is probably caused by retardation", + "Get erected and don't be scientific", + "Be weary of rimjobs", + "Keep dieting", + "Ignore how your joints are pulsating", + "You cannot allow RFID-chips to jeopardize your dreams", + "Don’t you get tired of sleeping?", + "Ass kissing can be a cry for help", + "Stop using a condom", + "Simply being beautiful, doesn’t mean you’re not average", + "Trust the grotesqueness of time", + "Your head is dissolving the ground", + "Keep in mind how God once said: A friend loves you", + "All you need in order to create art is gasoline and organic vegetables", + "It takes soft drugs, like marijuana to become above average within the business of caressing", + "Carry on straightening", + "Try to think about that ancient proverb: Those who can live through ignorance, can sell out the earth", + "Be the first person ever to listen to what what nobody expects you to listen to", + "Think about that ancient buddhist wisdom: Our bodily orifices end when our orgasms begin", + "Aim to straighten your belly", + "Keep your eyes shut", + "You can be the first person in the world to try to punch what others find unpunchable", + "Think about these words of wisdom: Glory holes begin when mason jars end", + "Keep in mind that you are not average", + "Notice how your nose is letting go", + "Bend your stomach inwards", + "It's your life. Cut your hair", + "I am so clever that sometimes I don’t understand a single word of what I am saying", + "The only distinction between daylight and an imaginary friend, is that an imaginary friend doesn’t cost anything", + "If one expects irony, one has to prepare for a violin", + "Back in the middle ages there was a dimwitted wanderer who was looking for some poontang, when he encountered a tired, old seer. \"Can you tell me where to find some poontang?\" he asked the seer. The seer quickly replied \"of some poontang I do not know, for I am only a seer\"", + "Think about how your head is energized by the vacuum of space", + "Don't cry over your shrinking wealth, just eat more calories", + "There are some old people who only say no to cryptocurrencies", + "Regret and call 911", + "Reveal your teeth", + "Become independent from fatties", + "Don't stop freaking out", + "Car salesmen become car salesmen because of weakness", + "You have always been a smelly wreck", + "Love milk, die young", + "Childhood is almost identical to being buried alive, you never know what you're gonna get", + "Can you imagine what would happend if the robots were allowed to wear clothes?", + "Where wisdom collapses farts are born", + "Only when you understand the beatuy of vegetables will you confront money", + "Look at the watch, prepare to die, hurt your mouth", + "Before inspiration comes the slaughter", + "Try to tell yourself that you are horrible", + "If you want to get somewhere in life you have to try to be dead", + "Spending time with your family is impossible if you don't do drugs", + "Canada. It's a hoax", + "It's up to you to remind yourself that you are undesired", + "Our large intestines end where our souls begin", + "Seek success but prepare for vegetables", + "Mass-incineration is 70 percent a cry for help", + "Face risk and drink milk", + "There is no I in \"Totalitarianism\"", + "Don't argue with success, be naked", + "If you actually need recognition be a complete imbecile", + "You are a russian bot", + "Each day is another chance to be dreadfully dysfunctional", + "Be the reason why a stranger calls the police at night", + "Hate the mountains", + "Neighbourhoods begin when we learn to moisturize love", + "Puberty can be quite similar to having brain damage", + "Uuuuuurrr Ahhhrrr Uhrrrrr Ahhhhhhrrr Aaaaaarrhg", + "The simple fact that you are dead makes you awesome", + "Get fucked", + "You are being monitored, keep yourself frightened", + "Inspiration is to re-demand ", + "Invert your stomach backwards ", + "Together we can make equality collapse under its own weight ", + "If you find it difficult to achieve the right state, consider this ancient buddhist wisdom: The UFO phenomenon is personalities", + "Isn't it beautiful to take notice of how the air you breathe is letting go of the walls around you?", +} +aura_env.size = table.getn(aura_env.inspirationalQuotes) +print(aura_env.size) diff --git a/Complete Projects/Legion/Emote on Friendlies.lua b/WeakAuras/Projects/Emote on Friendlies.lua similarity index 97% rename from Complete Projects/Legion/Emote on Friendlies.lua rename to WeakAuras/Projects/Emote on Friendlies.lua index 3708509..330bfed 100644 --- a/Complete Projects/Legion/Emote on Friendlies.lua +++ b/WeakAuras/Projects/Emote on Friendlies.lua @@ -1,131 +1,131 @@ -DISPLAY -function() - if aura_env.errorFlag == 0 then - if aura_env.triggerState == 1 then - local tt = math.floor((GetTime() - aura_env.startTime) * 10) - local nameplateindex = {} - local pointer = 1 - if aura_env.target == 0 then - for i = 1, 40 do - if UnitIsPlayer("nameplate" .. i) and UnitIsFriend("player", "nameplate" .. i) then - nameplateindex[pointer] = i - pointer = pointer + 1 - end - end - end - if aura_env.target == 1 then - for i = 1, 40 do - if UnitIsPlayer("nameplate" .. i) and UnitIsEnemy("player", "nameplate" .. i) then - nameplateindex[pointer] = i - pointer = pointer + 1 - end - end - end - if aura_env.target == 2 then - for i = 1, 40 do - if UnitIsPlayer("nameplate" .. i) then - nameplateindex[pointer] = i - pointer = pointer + 1 - end - end - end - if nameplateindex[1] == nil then - nameplateindex[1] = UnitName("player") - end - if tt ~= aura_env.lastTime and tt % aura_env.tickRate == 0 then - DoEmote(aura_env.emoteToken, "nameplate" .. nameplateindex[aura_env.pointer2]) - aura_env.pointer2 = aura_env.pointer2 + 1 - aura_env.lastTime = tt - end - if aura_env.pointer2 >= pointer then - aura_env.pointer2 = 1 - end - end - end -end - -CHAT_MSG_WHISPER -function(_,msg,sender) - if aura_env.errorFlag == 0 then - sender = string.match(sender, "%a+") - if aura_env.caseSensitive == 0 then - msg = msg:lower() - aura_env.triggerOn = aura_env.triggerOn:lower() - aura_env.triggerOff = aura_env.triggerOff:lower() - end - if sender == UnitName("player") and msg == aura_env.triggerOn and aura_env.triggerState == 0 then - aura_env.triggerState = 1 - print("ENABLED") - end - if sender == UnitName("player") and msg == aura_env.triggerOff and aura_env.triggerState == 1 then - aura_env.triggerState = 0 - print("DISABLED") - end - end -end - -INIT AND SHOW ---Word to turn on -aura_env.triggerOn = "on" ---Word to turn off -aura_env.triggerOff = "off" ---Case sensitive input? -aura_env.caseSensitive = 0 ---Tick interval with 10 being 1 second; must not be <1 -aura_env.tickRate = 5 ---Emote -aura_env.emoteToken = "wave" ---0 for friendlies, 1 for enemies, 2 for both -aura_env.target = 0 - ---Do NOT change anything from code below ---For info, questions, feedback or anything alike mail Pinkiepiie on Felsong -aura_env.startTime = GetTime() -aura_env.pointer2 = 1 -aura_env.lastTime = 0 -aura_env.triggerState = 0 -aura_env.errorFlag = 0 - -if aura_env.triggerOn == "" then - print("|cFFFF0000ERROR::|cFFFFFFFF triggerOn must not be empty!") - aura_env.errorFlag = 1 -end -if aura_env.triggerOff == "" then - print("|cFFFF0000ERROR::|cFFFFFFFF triggerOff must not be empty!") - aura_env.errorFlag = 1 -end -if aura_env.caseSensitive ~= 0 and aura_env.caseSensitive ~= 1 then - print("|cFFFF0000ERROR::|cFFFFFFFF caseSensitive must be 1 or 0!") - aura_env.errorFlag = 1 -end -if aura_env.target ~= 0 and aura_env.target ~= 1 and aura_env.target ~= 2 then - print("|cFFFF0000ERROR::|cFFFFFFFF target must be either 0, 1 or 2!") - aura_env.errorFlag = 1 -end -if aura_env.tickRate < 1 then - print("|cFFFF0000ERROR::|cFFFFFFFF tickRate must be > 1!") - aura_env.errorFlag = 1 -end -if aura_env.emoteToken == "" then - print("|cFFFF0000ERROR::|cFFFFFFFF emoteToken must not be empty!") - aura_env.errorFlag = 1 -end -if aura_env.errorFlag == 0 then - print("-------------------------------------------------------------") - print("Dave's emote spam bonanza extravaganza!") - print("|cFFFF7F7FNAMEPATES MUST BE ENABLED FOR THIS TO WORK!!") - print("~~only works on players~~") - print("Whisper yourself |cFF00FF00" .. aura_env.triggerOn .. "|cFFFFFFFF to unleash mayhem!") - print("To stop the spam whisper |cFFFF0000" .. aura_env.triggerOff .. "|cFFFFFFFF") - print("Current emote is |cFF7F7FFF" .. aura_env.emoteToken .. "|cFFFFFFFF") - if aura_env.target == 0 then - print("Currently spamming |cFF7FFF7Ffriendlies!|cFFFFFFFF") - end - if aura_env.target == 1 then - print("Currently spamming |cFFFF7F7Fenemies!|cFFFFFFFF") - end - if aura_env.target == 2 then - print("Currently spamming |cFF7F7FFFboth!|cFFFFFFFF") - end - print("-------------------------------------------------------------") -end +DISPLAY +function() + if aura_env.errorFlag == 0 then + if aura_env.triggerState == 1 then + local tt = math.floor((GetTime() - aura_env.startTime) * 10) + local nameplateindex = {} + local pointer = 1 + if aura_env.target == 0 then + for i = 1, 40 do + if UnitIsPlayer("nameplate" .. i) and UnitIsFriend("player", "nameplate" .. i) then + nameplateindex[pointer] = i + pointer = pointer + 1 + end + end + end + if aura_env.target == 1 then + for i = 1, 40 do + if UnitIsPlayer("nameplate" .. i) and UnitIsEnemy("player", "nameplate" .. i) then + nameplateindex[pointer] = i + pointer = pointer + 1 + end + end + end + if aura_env.target == 2 then + for i = 1, 40 do + if UnitIsPlayer("nameplate" .. i) then + nameplateindex[pointer] = i + pointer = pointer + 1 + end + end + end + if nameplateindex[1] == nil then + nameplateindex[1] = UnitName("player") + end + if tt ~= aura_env.lastTime and tt % aura_env.tickRate == 0 then + DoEmote(aura_env.emoteToken, "nameplate" .. nameplateindex[aura_env.pointer2]) + aura_env.pointer2 = aura_env.pointer2 + 1 + aura_env.lastTime = tt + end + if aura_env.pointer2 >= pointer then + aura_env.pointer2 = 1 + end + end + end +end + +CHAT_MSG_WHISPER +function(_,msg,sender) + if aura_env.errorFlag == 0 then + sender = string.match(sender, "%a+") + if aura_env.caseSensitive == 0 then + msg = msg:lower() + aura_env.triggerOn = aura_env.triggerOn:lower() + aura_env.triggerOff = aura_env.triggerOff:lower() + end + if sender == UnitName("player") and msg == aura_env.triggerOn and aura_env.triggerState == 0 then + aura_env.triggerState = 1 + print("ENABLED") + end + if sender == UnitName("player") and msg == aura_env.triggerOff and aura_env.triggerState == 1 then + aura_env.triggerState = 0 + print("DISABLED") + end + end +end + +INIT AND SHOW +--Word to turn on +aura_env.triggerOn = "on" +--Word to turn off +aura_env.triggerOff = "off" +--Case sensitive input? +aura_env.caseSensitive = 0 +--Tick interval with 10 being 1 second; must not be <1 +aura_env.tickRate = 5 +--Emote +aura_env.emoteToken = "wave" +--0 for friendlies, 1 for enemies, 2 for both +aura_env.target = 0 + +--Do NOT change anything from code below +--For info, questions, feedback or anything alike mail Pinkiepiie on Felsong +aura_env.startTime = GetTime() +aura_env.pointer2 = 1 +aura_env.lastTime = 0 +aura_env.triggerState = 0 +aura_env.errorFlag = 0 + +if aura_env.triggerOn == "" then + print("|cFFFF0000ERROR::|cFFFFFFFF triggerOn must not be empty!") + aura_env.errorFlag = 1 +end +if aura_env.triggerOff == "" then + print("|cFFFF0000ERROR::|cFFFFFFFF triggerOff must not be empty!") + aura_env.errorFlag = 1 +end +if aura_env.caseSensitive ~= 0 and aura_env.caseSensitive ~= 1 then + print("|cFFFF0000ERROR::|cFFFFFFFF caseSensitive must be 1 or 0!") + aura_env.errorFlag = 1 +end +if aura_env.target ~= 0 and aura_env.target ~= 1 and aura_env.target ~= 2 then + print("|cFFFF0000ERROR::|cFFFFFFFF target must be either 0, 1 or 2!") + aura_env.errorFlag = 1 +end +if aura_env.tickRate < 1 then + print("|cFFFF0000ERROR::|cFFFFFFFF tickRate must be > 1!") + aura_env.errorFlag = 1 +end +if aura_env.emoteToken == "" then + print("|cFFFF0000ERROR::|cFFFFFFFF emoteToken must not be empty!") + aura_env.errorFlag = 1 +end +if aura_env.errorFlag == 0 then + print("-------------------------------------------------------------") + print("Dave's emote spam bonanza extravaganza!") + print("|cFFFF7F7FNAMEPATES MUST BE ENABLED FOR THIS TO WORK!!") + print("~~only works on players~~") + print("Whisper yourself |cFF00FF00" .. aura_env.triggerOn .. "|cFFFFFFFF to unleash mayhem!") + print("To stop the spam whisper |cFFFF0000" .. aura_env.triggerOff .. "|cFFFFFFFF") + print("Current emote is |cFF7F7FFF" .. aura_env.emoteToken .. "|cFFFFFFFF") + if aura_env.target == 0 then + print("Currently spamming |cFF7FFF7Ffriendlies!|cFFFFFFFF") + end + if aura_env.target == 1 then + print("Currently spamming |cFFFF7F7Fenemies!|cFFFFFFFF") + end + if aura_env.target == 2 then + print("Currently spamming |cFF7F7FFFboth!|cFFFFFFFF") + end + print("-------------------------------------------------------------") +end diff --git a/Complete Projects/Legion/Emotebot.lua b/WeakAuras/Projects/Emotebot.lua similarity index 97% rename from Complete Projects/Legion/Emotebot.lua rename to WeakAuras/Projects/Emotebot.lua index 0a2b7d5..9a78d1b 100644 --- a/Complete Projects/Legion/Emotebot.lua +++ b/WeakAuras/Projects/Emotebot.lua @@ -1,45 +1,45 @@ -CHAT_MSG_TEXT_EMOTE -function(_, msg, sender) - local whitelist = {} - local goodbois = {"Choklata", "Iisa", "Tossmysalade", "Tossmychelka", "Rogeuw", "Melna"} - local docry = 0 - if string.match(msg, "you") or string.match(msg, "your") then - docry = 1 - for k, v in ipairs(whitelist) do - if sender == v then - docry = 0 - break - end - end - for k, v in ipairs(goodbois) do - if sender == v then - docry = 2 - break - end - end - if docry == 1 then - local rand = math.random(1, 8) - if rand == 1 then DoEmote("cry", sender) end - if rand == 2 then DoEmote("bonk", sender) end - if rand == 3 then DoEmote("pat", sender) end - if rand == 4 then DoEmote("moon", sender) end - if rand == 5 then DoEmote("agree", sender) end - if rand == 6 then DoEmote("bored", sender) end - if rand == 7 then DoEmote("giggle", sender) end - if rand == 8 then DoEmote("helpme", sender) end - end - if docry == 2 then - local rand = math.random(1, 10) - if rand == 1 then DoEmote("moan", sender) end - if rand == 2 then DoEmote("hug", sender) end - if rand == 3 then DoEmote("love", sender) end - if rand == 4 then DoEmote("cuddle", sender) end - if rand == 5 then DoEmote("drool", sender) end - if rand == 6 then DoEmote("happy", sender) end - if rand == 7 then DoEmote("flirt", sender) end - if rand == 8 then DoEmote("lick", sender) end - if rand == 9 then DoEmote("sexy", sender) end - if rand == 10 then DoEmote("smile", sender) end - end - end -end +CHAT_MSG_TEXT_EMOTE +function(_, msg, sender) + local whitelist = {} + local goodbois = {"Choklata", "Iisa", "Tossmysalade", "Tossmychelka", "Rogeuw", "Melna"} + local docry = 0 + if string.match(msg, "you") or string.match(msg, "your") then + docry = 1 + for k, v in ipairs(whitelist) do + if sender == v then + docry = 0 + break + end + end + for k, v in ipairs(goodbois) do + if sender == v then + docry = 2 + break + end + end + if docry == 1 then + local rand = math.random(1, 8) + if rand == 1 then DoEmote("cry", sender) end + if rand == 2 then DoEmote("bonk", sender) end + if rand == 3 then DoEmote("pat", sender) end + if rand == 4 then DoEmote("moon", sender) end + if rand == 5 then DoEmote("agree", sender) end + if rand == 6 then DoEmote("bored", sender) end + if rand == 7 then DoEmote("giggle", sender) end + if rand == 8 then DoEmote("helpme", sender) end + end + if docry == 2 then + local rand = math.random(1, 10) + if rand == 1 then DoEmote("moan", sender) end + if rand == 2 then DoEmote("hug", sender) end + if rand == 3 then DoEmote("love", sender) end + if rand == 4 then DoEmote("cuddle", sender) end + if rand == 5 then DoEmote("drool", sender) end + if rand == 6 then DoEmote("happy", sender) end + if rand == 7 then DoEmote("flirt", sender) end + if rand == 8 then DoEmote("lick", sender) end + if rand == 9 then DoEmote("sexy", sender) end + if rand == 10 then DoEmote("smile", sender) end + end + end +end diff --git a/NewAge/EquipmentManager/INIT.lua b/WeakAuras/Projects/EquipmentManager/INIT.lua similarity index 96% rename from NewAge/EquipmentManager/INIT.lua rename to WeakAuras/Projects/EquipmentManager/INIT.lua index 9e16570..5d3f7f8 100644 --- a/NewAge/EquipmentManager/INIT.lua +++ b/WeakAuras/Projects/EquipmentManager/INIT.lua @@ -1,102 +1,102 @@ -function() - --- @class Item - --- @field id number - --- @field name string - --- @field ilvl number - --- @field type string - - --- @field new function - Item = { - --- @param self Item - --- @return Item - new = function(self) - local obj = {} - obj.id = id or -1 - obj.name = name or "" - obj.ilvl = ilvl or -1 - obj.type = type or "" - setmetatable(obj, self) - self.__index = self - return obj - end, - } - - --- @class ItemSet - --- @field items Item[] - - --- @field new function - --- @field equip function - ItemSet = { - --- @param self ItemSet - --- @return ItemSet - new = function(self, items) - local obj = {} - obj.items = items or {} - setmetatable(obj, self) - self.__index = self - return obj - end, - - equip = function(self) - local equippedItems = getEquippedItems() - print(#equippedItems .. " items equipped") - - for itemSlot, eqItem in pairs(equippedItems) do - local item = self.items[itemSlot] - - if (eqItem.id ~= item.id and eqItem.ilvl ~= item.ilvl) then - print("Unequip " .. itemSlot) - PickupInventoryItem(itemSlot) - PutItemInBag(22) - print("Equip " .. item.id) - EquipItemByName(item.id, itemSlot) - end - end - end - } - - --- @return string - function getItemName(itemLink) - return select(1, GetItemInfo(itemLink)) - end - - --- @return number - function getItemIlvl(itemLink) - return select(4, GetItemInfo(itemLink)) - end - - --- @return string - function getItemType(itemLink) - return select(9, GetItemInfo(itemLink)) - end - - --- @return Item[] - function getEquippedItems() - --- @type Item[] - local items = {} - - for i = 1, 19 do - --- @type Item - local item = Item:new() - --- @type string - local eqItemLink = GetInventoryItemLink("player", i) - --- @type number - local eqItemId = GetInventoryItemID("player", i) - - if (eqItemLink ~= nil) then - item.name = getItemName(eqItemLink) - item.ilvl = getItemIlvl(eqItemLink) - item.type = getItemType(eqItemLink) - item.id = eqItemId - - items[i] = item - end - end - - return items - end - - --- @type ItemSet - local set = ItemSet:new(getEquippedItems()) - set:equip() -end +function() + --- @class Item + --- @field id number + --- @field name string + --- @field ilvl number + --- @field type string + + --- @field new function + Item = { + --- @param self Item + --- @return Item + new = function(self) + local obj = {} + obj.id = id or -1 + obj.name = name or "" + obj.ilvl = ilvl or -1 + obj.type = type or "" + setmetatable(obj, self) + self.__index = self + return obj + end, + } + + --- @class ItemSet + --- @field items Item[] + + --- @field new function + --- @field equip function + ItemSet = { + --- @param self ItemSet + --- @return ItemSet + new = function(self, items) + local obj = {} + obj.items = items or {} + setmetatable(obj, self) + self.__index = self + return obj + end, + + equip = function(self) + local equippedItems = getEquippedItems() + print(#equippedItems .. " items equipped") + + for itemSlot, eqItem in pairs(equippedItems) do + local item = self.items[itemSlot] + + if (eqItem.id ~= item.id and eqItem.ilvl ~= item.ilvl) then + print("Unequip " .. itemSlot) + PickupInventoryItem(itemSlot) + PutItemInBag(22) + print("Equip " .. item.id) + EquipItemByName(item.id, itemSlot) + end + end + end + } + + --- @return string + function getItemName(itemLink) + return select(1, GetItemInfo(itemLink)) + end + + --- @return number + function getItemIlvl(itemLink) + return select(4, GetItemInfo(itemLink)) + end + + --- @return string + function getItemType(itemLink) + return select(9, GetItemInfo(itemLink)) + end + + --- @return Item[] + function getEquippedItems() + --- @type Item[] + local items = {} + + for i = 1, 19 do + --- @type Item + local item = Item:new() + --- @type string + local eqItemLink = GetInventoryItemLink("player", i) + --- @type number + local eqItemId = GetInventoryItemID("player", i) + + if (eqItemLink ~= nil) then + item.name = getItemName(eqItemLink) + item.ilvl = getItemIlvl(eqItemLink) + item.type = getItemType(eqItemLink) + item.id = eqItemId + + items[i] = item + end + end + + return items + end + + --- @type ItemSet + local set = ItemSet:new(getEquippedItems()) + set:equip() +end diff --git a/Complete Projects/Legion/Fevered Carapace.lua b/WeakAuras/Projects/Fevered Carapace.lua similarity index 96% rename from Complete Projects/Legion/Fevered Carapace.lua rename to WeakAuras/Projects/Fevered Carapace.lua index e84f686..d44dd9c 100644 --- a/Complete Projects/Legion/Fevered Carapace.lua +++ b/WeakAuras/Projects/Fevered Carapace.lua @@ -1,28 +1,28 @@ ---DISPLAY -function() - return aura_env.fevered .. "/" .. aura_env.swings -end - ---COMBAT_LOG_EVENT_UNFILTERED -function(...) - local subEvent = select(3, ...) - local target = select(10, ...) - local caster = select(6, ...) - local spell = select(14, ...) - if subEvent == "SWING_DAMAGE" and target == UnitName("player") and UnitBuff("player", "Infernal Skin") then - aura_env.swings = aura_env.swings + 1 - end - if subEvent == "SPELL_DAMAGE" and caster == UnitName("player") and UnitBuff("player", "Infernal Skin") and spell == "Fevered Touch" then - aura_env.fevered = aura_env.fevered + 1 - end -end - ---PLAYER_REGEN_DISABLED -function() - aura_env.swings = 0 - aura_env.fevered = 0 -end - ---INIT -aura_env.swings = 0 -aura_env.fevered = 0 +--DISPLAY +function() + return aura_env.fevered .. "/" .. aura_env.swings +end + +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local subEvent = select(3, ...) + local target = select(10, ...) + local caster = select(6, ...) + local spell = select(14, ...) + if subEvent == "SWING_DAMAGE" and target == UnitName("player") and UnitBuff("player", "Infernal Skin") then + aura_env.swings = aura_env.swings + 1 + end + if subEvent == "SPELL_DAMAGE" and caster == UnitName("player") and UnitBuff("player", "Infernal Skin") and spell == "Fevered Touch" then + aura_env.fevered = aura_env.fevered + 1 + end +end + +--PLAYER_REGEN_DISABLED +function() + aura_env.swings = 0 + aura_env.fevered = 0 +end + +--INIT +aura_env.swings = 0 +aura_env.fevered = 0 diff --git a/Complete Projects/Legion/Fish.lua b/WeakAuras/Projects/Fish.lua similarity index 96% rename from Complete Projects/Legion/Fish.lua rename to WeakAuras/Projects/Fish.lua index 9b13a0c..407e0b6 100644 --- a/Complete Projects/Legion/Fish.lua +++ b/WeakAuras/Projects/Fish.lua @@ -1,9 +1,9 @@ ---Fishing -function() - local fish = {"Glassfin Minnow", "Pygmy Suckerfish"} - local output = "" - for k,v in ipairs(fish) do - output = output .. v .. " " .. GetItemCount(v) .. "\n" - end - return output +--Fishing +function() + local fish = {"Glassfin Minnow", "Pygmy Suckerfish"} + local output = "" + for k,v in ipairs(fish) do + output = output .. v .. " " .. GetItemCount(v) .. "\n" + end + return output end \ No newline at end of file diff --git a/Complete Projects/Legion/Focus Thing.lua b/WeakAuras/Projects/Focus Thing.lua similarity index 96% rename from Complete Projects/Legion/Focus Thing.lua rename to WeakAuras/Projects/Focus Thing.lua index 1313bb0..94b9cd7 100644 --- a/Complete Projects/Legion/Focus Thing.lua +++ b/WeakAuras/Projects/Focus Thing.lua @@ -1,30 +1,30 @@ ---EVERY FRAME -function() - local focusmax = UnitPowerMax("player") - local time = GetTime() - local star, dur = GetSpellCooldown(61304) - local regen = GetPowerRegen() - if dur > 0 and aura_env.spell == "Arcane Shot" then - aura_env.newfocus = aura_env.focus + dur * regen + 8 - end - if dur > 0 and aura_env.spell ~= "Arcane Shot" then - aura_env.newfocus = aura_env.focus + dur * regen - end - return aura_env.newfocus, focusmax, 1 -end - ---COMBAT_LOG_EVENT_UNFILTERED -function(...) - local se = select(3, ...) - if se == "SPELL_CAST_SUCCESS" then - local caster = select(6, ...) - aura_env.spell = select(14, ...) - if caster == UnitName("player") then - aura_env.focus = UnitPower("player") - end - end -end - ---INIT -aura_env.focus = 0 +--EVERY FRAME +function() + local focusmax = UnitPowerMax("player") + local time = GetTime() + local star, dur = GetSpellCooldown(61304) + local regen = GetPowerRegen() + if dur > 0 and aura_env.spell == "Arcane Shot" then + aura_env.newfocus = aura_env.focus + dur * regen + 8 + end + if dur > 0 and aura_env.spell ~= "Arcane Shot" then + aura_env.newfocus = aura_env.focus + dur * regen + end + return aura_env.newfocus, focusmax, 1 +end + +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local se = select(3, ...) + if se == "SPELL_CAST_SUCCESS" then + local caster = select(6, ...) + aura_env.spell = select(14, ...) + if caster == UnitName("player") then + aura_env.focus = UnitPower("player") + end + end +end + +--INIT +aura_env.focus = 0 aura_env.newfocus = 0 \ No newline at end of file diff --git a/FreshShit/FriendTracker/event.lua b/WeakAuras/Projects/FriendTracker/event.lua similarity index 95% rename from FreshShit/FriendTracker/event.lua rename to WeakAuras/Projects/FriendTracker/event.lua index f855bff..ca161e2 100644 --- a/FreshShit/FriendTracker/event.lua +++ b/WeakAuras/Projects/FriendTracker/event.lua @@ -1,4 +1,4 @@ --- FRIENDLIST_UPDATE -function(e) - aura_env.FileFriends() +-- FRIENDLIST_UPDATE +function(e) + aura_env.FileFriends() end \ No newline at end of file diff --git a/FreshShit/FriendTracker/event2.lua b/WeakAuras/Projects/FriendTracker/event2.lua similarity index 93% rename from FreshShit/FriendTracker/event2.lua rename to WeakAuras/Projects/FriendTracker/event2.lua index a0d1d33..57b8c28 100644 --- a/FreshShit/FriendTracker/event2.lua +++ b/WeakAuras/Projects/FriendTracker/event2.lua @@ -1,4 +1,4 @@ --- TICKER_60000 -function() - ShowFriends() +-- TICKER_60000 +function() + ShowFriends() end \ No newline at end of file diff --git a/FreshShit/FriendTracker/export b/WeakAuras/Projects/FriendTracker/export similarity index 100% rename from FreshShit/FriendTracker/export rename to WeakAuras/Projects/FriendTracker/export diff --git a/FreshShit/FriendTracker/init.lua b/WeakAuras/Projects/FriendTracker/init.lua similarity index 96% rename from FreshShit/FriendTracker/init.lua rename to WeakAuras/Projects/FriendTracker/init.lua index b5b4fe0..85e121a 100644 --- a/FreshShit/FriendTracker/init.lua +++ b/WeakAuras/Projects/FriendTracker/init.lua @@ -1,18 +1,18 @@ -if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end -if not WeakAurasSaved.Cyka.Friends then WeakAurasSaved.Cyka.Friends = {} end - -aura_env.FileFriends = function() - local info = {} - local now = date("%y-%m-%dT%H:%M:%S") - local friends = GetNumFriends() - for i = 1, friends do - local name, level, class, area, connected, status, note, noteType = GetFriendInfo(i) - table.insert(info, { - ["name"] = name, - ["connected"] = connected, - ["area"] = area, - ["status"] = status, - }) - end - WeakAurasSaved.Cyka.Friends[now] = info -end +if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end +if not WeakAurasSaved.Cyka.Friends then WeakAurasSaved.Cyka.Friends = {} end + +aura_env.FileFriends = function() + local info = {} + local now = date("%y-%m-%dT%H:%M:%S") + local friends = GetNumFriends() + for i = 1, friends do + local name, level, class, area, connected, status, note, noteType = GetFriendInfo(i) + table.insert(info, { + ["name"] = name, + ["connected"] = connected, + ["area"] = area, + ["status"] = status, + }) + end + WeakAurasSaved.Cyka.Friends[now] = info +end diff --git a/Complete Projects/Legion/Friendlist.lua b/WeakAuras/Projects/Friendlist.lua similarity index 97% rename from Complete Projects/Legion/Friendlist.lua rename to WeakAuras/Projects/Friendlist.lua index 85e724c..f561d36 100644 --- a/Complete Projects/Legion/Friendlist.lua +++ b/WeakAuras/Projects/Friendlist.lua @@ -1,29 +1,29 @@ -function() - local output = "" - local friends_on = select(2, GetNumFriends()) - local my_zone = GetMapNameByID(GetCurrentMapAreaID()) - for i = 1, friends_on do - local name, _, _, zone, _, status, note = GetFriendInfo(i) - local override_color = "" - if note ~= nil and note:match("+") and status ~= "" and status ~= "" then - override_color = "|cFFE541F4" - elseif note ~= nil and note:match("-") and status ~= "" and status ~= "" then - override_color = "|cFF42D9F4" - elseif note ~= nil and note:match(";") and status ~= "" and status ~= "" then - override_color = "|cFF2020D8" - elseif note ~= nil and note:match("_") and status ~= "" and status ~= "" then - override_color = "|cFF7E1357" - else - override_color = "" - end - local zone_color = "|cFF787878" - local status_color = "|cFF00FF00" - if zone == my_zone then zone_color = "|cFF007800" end - if status == "" then status_color = "|cFFFF0000" end - if status == "" then status_color = "|cFFF4C842" end - if name ~= nil then - output = output .. status_color .. override_color .. name .. "|cFFFFFFFF" .. " - " .. zone_color .. zone .. "\n" - end - end - return output -end +function() + local output = "" + local friends_on = select(2, GetNumFriends()) + local my_zone = GetMapNameByID(GetCurrentMapAreaID()) + for i = 1, friends_on do + local name, _, _, zone, _, status, note = GetFriendInfo(i) + local override_color = "" + if note ~= nil and note:match("+") and status ~= "" and status ~= "" then + override_color = "|cFFE541F4" + elseif note ~= nil and note:match("-") and status ~= "" and status ~= "" then + override_color = "|cFF42D9F4" + elseif note ~= nil and note:match(";") and status ~= "" and status ~= "" then + override_color = "|cFF2020D8" + elseif note ~= nil and note:match("_") and status ~= "" and status ~= "" then + override_color = "|cFF7E1357" + else + override_color = "" + end + local zone_color = "|cFF787878" + local status_color = "|cFF00FF00" + if zone == my_zone then zone_color = "|cFF007800" end + if status == "" then status_color = "|cFFFF0000" end + if status == "" then status_color = "|cFFF4C842" end + if name ~= nil then + output = output .. status_color .. override_color .. name .. "|cFFFFFFFF" .. " - " .. zone_color .. zone .. "\n" + end + end + return output +end diff --git a/Complete Projects/Legion/Full House.lua b/WeakAuras/Projects/Full House.lua similarity index 97% rename from Complete Projects/Legion/Full House.lua rename to WeakAuras/Projects/Full House.lua index a942494..3c9f2d8 100644 --- a/Complete Projects/Legion/Full House.lua +++ b/WeakAuras/Projects/Full House.lua @@ -1,10 +1,10 @@ -function() - local output = "" - for i = 1, 40 do - local name = UnitName("nameplate" .. i) - if name == "Cult Fanatic" or name == "Cult Adherent" or name == "Deformed Fanatic" or name == "Reanimated Fanatic" or name == "Reanimated Adherent" then - output = output .. name .. "\n" - end - end - return output -end +function() + local output = "" + for i = 1, 40 do + local name = UnitName("nameplate" .. i) + if name == "Cult Fanatic" or name == "Cult Adherent" or name == "Deformed Fanatic" or name == "Reanimated Fanatic" or name == "Reanimated Adherent" then + output = output .. name .. "\n" + end + end + return output +end diff --git a/Complete Projects/Legion/GMCommandsResearch(.add).lua b/WeakAuras/Projects/GMCommandsResearch(.add).lua similarity index 98% rename from Complete Projects/Legion/GMCommandsResearch(.add).lua rename to WeakAuras/Projects/GMCommandsResearch(.add).lua index 05ed463..9e94765 100644 --- a/Complete Projects/Legion/GMCommandsResearch(.add).lua +++ b/WeakAuras/Projects/GMCommandsResearch(.add).lua @@ -1,66 +1,66 @@ --- .add --- .add 136716 1 1672 42 41 40 1 --- Add chat command interaction, pass through flags and aura_env --- CHAT_MSG_LOOT -function(e, ...) - if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end - if not WeakAurasSaved.CustomTrash.ItemResearch then WeakAurasSaved.CustomTrash.ItemResearch = {} end - if not WeakAurasSaved.CustomTrash.ItemResearch.Stage then WeakAurasSaved.CustomTrash.ItemResearch.Stage = 1 end - if not WeakAurasSaved.CustomTrash.ItemResearch.ilvl then WeakAurasSaved.CustomTrash.ItemResearch.ilvl = 1672 end - local daiTooltip = function(link) - if aura_env.tooltip then - aura_env.tooltip:SetOwner(UIParent, "ANCHOR_NONE") - aura_env.tooltip:ClearLines(); - aura_env.tooltip:SetHyperlink(link) - - local itemData = {} - itemData[#itemData + 1] = "New item" - itemData[#itemData + 1] = WeakAurasSaved.CustomTrash.ItemResearch.Stage - 1 -- Add parameter info - itemData[#itemData + 1] = "Left text" - - for i = 1, aura_env.tooltip:NumLines() do - local field = "MyTooltipTextLeft" .. i - if _G[field]:GetText() then - local text = _G[field]:GetText() - itemData[#itemData + 1] = text - end - end - - itemData[#itemData + 1] = "Right text" - for i = 1, aura_env.tooltip:NumLines() do - local field = "MyTooltipTextRight" .. i - if _G[field]:GetText() then - local text = _G[field]:GetText() - itemData[#itemData + 1] = text - end - end - itemData[#itemData + 1] = "End of Item" - itemData[#itemData + 1] = "" - WeakAurasSaved.CustomTrash.ItemResearch[#WeakAurasSaved.CustomTrash.ItemResearch + 1] = itemData; - SendChatMessage(".add 152134 -1", "SAY"); - end - end - if e == "CHAT_MSG_LOOT" then - local msg = ... - local link = msg:match("\124c.+\124r") - daiTooltip(link) - end -end - ---INIT -if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end -if not WeakAurasSaved.CustomTrash.ItemResearch then WeakAurasSaved.CustomTrash.ItemResearch = {} end -if not WeakAurasSaved.CustomTrash.ItemResearch.Stage then WeakAurasSaved.CustomTrash.ItemResearch.Stage = 1 end -if not WeakAurasSaved.CustomTrash.ItemResearch.ilvl then WeakAurasSaved.CustomTrash.ItemResearch.ilvl = 1672 end - -aura_env.tooltip = CreateFrame("GameTooltip", "MyTooltip", UIParent, "GameTooltipTemplate") -local aura_env = aura_env -aura_env.daiItem = function() - print("On stage " .. WeakAurasSaved.CustomTrash.ItemResearch.Stage) - local message = ".add 152134 1 " .. WeakAurasSaved.CustomTrash.ItemResearch.ilvl .. " 42 41 40 " .. WeakAurasSaved.CustomTrash.ItemResearch.Stage - SendChatMessage(message, "PARTY") - WeakAurasSaved.CustomTrash.ItemResearch.Stage = WeakAurasSaved.CustomTrash.ItemResearch.Stage + 1 -end - -if WeakAurasSaved.CustomTrash.ItemResearch.Ticker and WeakAurasSaved.CustomTrash.ItemResearch.Ticker[0] then WeakAurasSaved.CustomTrash.ItemResearch.Ticker:Cancel(); WeakAurasSaved.CustomTrash.ItemResearch.Ticker = nil end +-- .add +-- .add 136716 1 1672 42 41 40 1 +-- Add chat command interaction, pass through flags and aura_env +-- CHAT_MSG_LOOT +function(e, ...) + if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end + if not WeakAurasSaved.CustomTrash.ItemResearch then WeakAurasSaved.CustomTrash.ItemResearch = {} end + if not WeakAurasSaved.CustomTrash.ItemResearch.Stage then WeakAurasSaved.CustomTrash.ItemResearch.Stage = 1 end + if not WeakAurasSaved.CustomTrash.ItemResearch.ilvl then WeakAurasSaved.CustomTrash.ItemResearch.ilvl = 1672 end + local daiTooltip = function(link) + if aura_env.tooltip then + aura_env.tooltip:SetOwner(UIParent, "ANCHOR_NONE") + aura_env.tooltip:ClearLines(); + aura_env.tooltip:SetHyperlink(link) + + local itemData = {} + itemData[#itemData + 1] = "New item" + itemData[#itemData + 1] = WeakAurasSaved.CustomTrash.ItemResearch.Stage - 1 -- Add parameter info + itemData[#itemData + 1] = "Left text" + + for i = 1, aura_env.tooltip:NumLines() do + local field = "MyTooltipTextLeft" .. i + if _G[field]:GetText() then + local text = _G[field]:GetText() + itemData[#itemData + 1] = text + end + end + + itemData[#itemData + 1] = "Right text" + for i = 1, aura_env.tooltip:NumLines() do + local field = "MyTooltipTextRight" .. i + if _G[field]:GetText() then + local text = _G[field]:GetText() + itemData[#itemData + 1] = text + end + end + itemData[#itemData + 1] = "End of Item" + itemData[#itemData + 1] = "" + WeakAurasSaved.CustomTrash.ItemResearch[#WeakAurasSaved.CustomTrash.ItemResearch + 1] = itemData; + SendChatMessage(".add 152134 -1", "SAY"); + end + end + if e == "CHAT_MSG_LOOT" then + local msg = ... + local link = msg:match("\124c.+\124r") + daiTooltip(link) + end +end + +--INIT +if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end +if not WeakAurasSaved.CustomTrash.ItemResearch then WeakAurasSaved.CustomTrash.ItemResearch = {} end +if not WeakAurasSaved.CustomTrash.ItemResearch.Stage then WeakAurasSaved.CustomTrash.ItemResearch.Stage = 1 end +if not WeakAurasSaved.CustomTrash.ItemResearch.ilvl then WeakAurasSaved.CustomTrash.ItemResearch.ilvl = 1672 end + +aura_env.tooltip = CreateFrame("GameTooltip", "MyTooltip", UIParent, "GameTooltipTemplate") +local aura_env = aura_env +aura_env.daiItem = function() + print("On stage " .. WeakAurasSaved.CustomTrash.ItemResearch.Stage) + local message = ".add 152134 1 " .. WeakAurasSaved.CustomTrash.ItemResearch.ilvl .. " 42 41 40 " .. WeakAurasSaved.CustomTrash.ItemResearch.Stage + SendChatMessage(message, "PARTY") + WeakAurasSaved.CustomTrash.ItemResearch.Stage = WeakAurasSaved.CustomTrash.ItemResearch.Stage + 1 +end + +if WeakAurasSaved.CustomTrash.ItemResearch.Ticker and WeakAurasSaved.CustomTrash.ItemResearch.Ticker[0] then WeakAurasSaved.CustomTrash.ItemResearch.Ticker:Cancel(); WeakAurasSaved.CustomTrash.ItemResearch.Ticker = nil end if not WeakAurasSaved.CustomTrash.ItemResearch.Ticker or WeakAurasSaved.CustomTrash.ItemResearch.Ticker[0] then WeakAurasSaved.CustomTrash.ItemResearch.Ticker = C_Timer.NewTicker(1, aura_env.daiItem) end \ No newline at end of file diff --git a/Complete Projects/Legion/GPS.lua b/WeakAuras/Projects/GPS.lua similarity index 94% rename from Complete Projects/Legion/GPS.lua rename to WeakAuras/Projects/GPS.lua index c7b395e..f6a01b5 100644 --- a/Complete Projects/Legion/GPS.lua +++ b/WeakAuras/Projects/GPS.lua @@ -1,23 +1,23 @@ -function() - --GPS - local X, Y = UnitPosition("player") - if X < aura_env.X then - print("X DECREASING") - aura_env.X = X - end - if X > aura_env.X then - print("X INCREASING") - aura_env.X = X - end - if Y < aura_env.Y then - print("Y DECREASING") - aura_env.Y = Y - end - if Y > aura_env.Y then - print("Y INCREASING") - aura_env.Y = Y - end -end - -aura_env.X = 0 -aura_env.Y = 0 +function() + --GPS + local X, Y = UnitPosition("player") + if X < aura_env.X then + print("X DECREASING") + aura_env.X = X + end + if X > aura_env.X then + print("X INCREASING") + aura_env.X = X + end + if Y < aura_env.Y then + print("Y DECREASING") + aura_env.Y = Y + end + if Y > aura_env.Y then + print("Y INCREASING") + aura_env.Y = Y + end +end + +aura_env.X = 0 +aura_env.Y = 0 diff --git a/Complete Projects/Legion/GUIDSniffer.lua b/WeakAuras/Projects/GUIDSniffer.lua similarity index 95% rename from Complete Projects/Legion/GUIDSniffer.lua rename to WeakAuras/Projects/GUIDSniffer.lua index 9bba6c2..19415c7 100644 --- a/Complete Projects/Legion/GUIDSniffer.lua +++ b/WeakAuras/Projects/GUIDSniffer.lua @@ -1,5001 +1,5001 @@ ---EVERY FRAME???????????????????????????????????? FIXXXXXXXXXX -function() - if not DaveSniffsHerbs.HerbSniffer then DaveSniffsHerbs.HerbSniffer = {} end - local function range (val, min, max, max2) - val = 1 - (((max - val) / (max - min)) * max2) - return val - end - local id = aura_env.GetClosestHerb() - if not aura_env.herbs[GetCurrentMapAreaID()]then return false end - local hX, hY = aura_env.herbs[GetCurrentMapAreaID()][id]["X"], aura_env.herbs[GetCurrentMapAreaID()][id]["Y"] - local pX = GetPlayerMapPosition("player") or 0 - local pY = select(2, GetPlayerMapPosition("player")) or 0 - pX, pY = pX * 100, pY * 100 - local X = pX - hX - local Y = pY - hY - local playerFace = GetPlayerFacing() or 0 - local playerA = math.floor(playerFace * 100) - playerA = range(playerA, 0, 630, 360) - 1 - playerA = -playerA - playerA = playerA - 90 - if playerA < 0 then playerA = playerA + 360 end - aura_env.hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) * 100 - DaveSniffsHerbs.HerbSniffer.hyp = aura_env.hyp - aura_env.angle = math.deg(math.atan2(Y, X)) - aura_env.angle = aura_env.angle - playerA - aura_env.angle = aura_env.angle - 180 - if aura_env.hyp < aura_env.wipeDistance then --When reach herb activate it's cooldown (herbcd[cd] = coords) - aura_env.herbs[GetCurrentMapAreaID()][id]["CD"] = math.floor(GetTime() + aura_env.cooldown) - DaveSniffsHerbs.HerbSniffer.CD = DaveSniffsHerbs.HerbSniffer.CD + 1 - DaveSniffsHerbs.HerbSniffer.NoCD = DaveSniffsHerbs.HerbSniffer.NoCD - 1 - aura_env.minID = - { - ["X"] = 0, - ["Y"] = 0, - ["D"] = 10000, - ["ID"] = 0 - } - end - for k, v in ipairs(aura_env.herbs[GetCurrentMapAreaID()]) do --if cooldown is up then insert back into proper array - local cd = aura_env.herbs[GetCurrentMapAreaID()][k]["CD"] - if cd > 0 then - if GetTime() > cd then - aura_env.herbs[GetCurrentMapAreaID()][k]["CD"] = 0 - DaveSniffsHerbs.HerbSniffer.NoCD = DaveSniffsHerbs.HerbSniffer.NoCD + 1 - DaveSniffsHerbs.HerbSniffer.CD = DaveSniffsHerbs.HerbSniffer.CD - 1 - end - end - end - return true -end - ---DISPLAY EVERY FRAME??????? -function() - 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 - if DaveSniffsHerbs.HerbSniffer.hyp and DaveSniffsHerbs.HerbSniffer.NoCD and DaveSniffsHerbs.HerbSniffer.CD then - return round(DaveSniffsHerbs.HerbSniffer.hyp, 0) .. "\n" .. DaveSniffsHerbs.HerbSniffer.NoCD .. "\n" .. DaveSniffsHerbs.HerbSniffer.CD - end -end - ---INIT -aura_env.herbs = { - --Azsuna / Aethril - [1015] = { - [1] = { - ["X"] = 49.5, - ["Y"] = 85.9, - ["CD"] = 0, - }, - [2] = { - ["X"] = 52.42, - ["Y"] = 83.61, - ["CD"] = 0, - }, - [3] = { - ["X"] = 52.47, - ["Y"] = 79, - ["CD"] = 0, - }, - [4] = { - ["X"] = 51.45, - ["Y"] = 75.68, - ["CD"] = 0, - }, - [5] = { - ["X"] = 47.61, - ["Y"] = 74, - ["CD"] = 0, - }, - [6] = { - ["X"] = 45.03, - ["Y"] = 71.83, - ["CD"] = 0, - }, - [7] = { - ["X"] = 41.56, - ["Y"] = 72.14, - ["CD"] = 0, - }, - [8] = { - ["X"] = 42.24, - ["Y"] = 74.27, - ["CD"] = 0, - }, - [9] = { - ["X"] = 27.62, - ["Y"] = 72.68, - ["CD"] = 0, - }, - [10] = { - ["X"] = 42.88, - ["Y"] = 79.35, - ["CD"] = 0, - }, - [11] = { - ["X"] = 44.42, - ["Y"] = 82.26, - ["CD"] = 0, - }, - [12] = { - ["X"] = 45.6, - ["Y"] = 84.9, - ["CD"] = 0, - }, - [13] = { - ["X"] = 44.21, - ["Y"] = 88.47, - ["CD"] = 0, - }, - [14] = { - ["X"] = 41.43, - ["Y"] = 9.46, - ["CD"] = 0, - }, - [15] = { - ["X"] = 40.17, - ["Y"] = 11.22, - ["CD"] = 0, - }, - [16] = { - ["X"] = 39.11, - ["Y"] = 12.41, - ["CD"] = 0, - }, - [17] = { - ["X"] = 36.33, - ["Y"] = 21.62, - ["CD"] = 0, - }, - [18] = { - ["X"] = 35.78, - ["Y"] = 25.06, - ["CD"] = 0, - }, - [19] = { - ["X"] = 35.3, - ["Y"] = 26.62, - ["CD"] = 0, - }, - [20] = { - ["X"] = 34.02, - ["Y"] = 28.32, - ["CD"] = 0, - }, - [21] = { - ["X"] = 33.17, - ["Y"] = 30.55, - ["CD"] = 0, - }, - [22] = { - ["X"] = 32.16, - ["Y"] = 32.58, - ["CD"] = 0, - }, - [23] = { - ["X"] = 33.26, - ["Y"] = 35.14, - ["CD"] = 0, - }, - [24] = { - ["X"] = 34.52, - ["Y"] = 36.25, - ["CD"] = 0, - }, - [25] = { - ["X"] = 35.33, - ["Y"] = 37.3, - ["CD"] = 0, - }, - [26] = { - ["X"] = 36.73, - ["Y"] = 37.24, - ["CD"] = 0, - }, - [27] = { - ["X"] = 37.23, - ["Y"] = 37.98, - ["CD"] = 0, - }, - [28] = { - ["X"] = 35.4, - ["Y"] = 44.54, - ["CD"] = 0, - }, - [29] = { - ["X"] = 36.43, - ["Y"] = 45.87, - ["CD"] = 0, - }, - [30] = { - ["X"] = 38.03, - ["Y"] = 60.71, - ["CD"] = 0, - }, - [31] = { - ["X"] = 39.22, - ["Y"] = 60.68, - ["CD"] = 0, - }, - [32] = { - ["X"] = 40.1, - ["Y"] = 60.09, - ["CD"] = 0, - }, - [33] = { - ["X"] = 47.77, - ["Y"] = 74.67, - ["CD"] = 0, - }, - [34] = { - ["X"] = 48.77, - ["Y"] = 75.75, - ["CD"] = 0, - }, - [35] = { - ["X"] = 50.96, - ["Y"] = 76.32, - ["CD"] = 0, - }, - [36] = { - ["X"] = 51.92, - ["Y"] = 77.35, - ["CD"] = 0, - }, - [37] = { - ["X"] = 49.35, - ["Y"] = 75.68, - ["CD"] = 0, - }, - [38] = { - ["X"] = 49.96, - ["Y"] = 73.8, - ["CD"] = 0, - }, - [39] = { - ["X"] = 50.79, - ["Y"] = 77.15, - ["CD"] = 0, - }, - [40] = { - ["X"] = 54.65, - ["Y"] = 73.03, - ["CD"] = 0, - }, - [41] = { - ["X"] = 53.66, - ["Y"] = 71.56, - ["CD"] = 0, - }, - [42] = { - ["X"] = 54.84, - ["Y"] = 68.68, - ["CD"] = 0, - }, - [43] = { - ["X"] = 54.92, - ["Y"] = 66.14, - ["CD"] = 0, - }, - [44] = { - ["X"] = 51.68, - ["Y"] = 62.8, - ["CD"] = 0, - }, - [45] = { - ["X"] = 47.83, - ["Y"] = 62.32, - ["CD"] = 0, - }, - [46] = { - ["X"] = 46.74, - ["Y"] = 57.87, - ["CD"] = 0, - }, - [47] = { - ["X"] = 45.43, - ["Y"] = 57.08, - ["CD"] = 0, - }, - [48] = { - ["X"] = 44.96, - ["Y"] = 52.3, - ["CD"] = 0, - }, - [49] = { - ["X"] = 45, - ["Y"] = 50.1, - ["CD"] = 0, - }, - [50] = { - ["X"] = 45.58, - ["Y"] = 48.48, - ["CD"] = 0, - }, - [51] = { - ["X"] = 46.03, - ["Y"] = 46.1, - ["CD"] = 0, - }, - [52] = { - ["X"] = 45.43, - ["Y"] = 42.5, - ["CD"] = 0, - }, - [53] = { - ["X"] = 44.75, - ["Y"] = 40.05, - ["CD"] = 0, - }, - [54] = { - ["X"] = 44.51, - ["Y"] = 37.29, - ["CD"] = 0, - }, - [55] = { - ["X"] = 45.59, - ["Y"] = 35.87, - ["CD"] = 0, - }, - [56] = { - ["X"] = 47.86, - ["Y"] = 34.47, - ["CD"] = 0, - }, - [57] = { - ["X"] = 49.11, - ["Y"] = 33.95, - ["CD"] = 0, - }, - [58] = { - ["X"] = 50.29, - ["Y"] = 32.1, - ["CD"] = 0, - }, - [59] = { - ["X"] = 42.81, - ["Y"] = 10.38, - ["CD"] = 0, - }, - [60] = { - ["X"] = 52.42, - ["Y"] = 83.61, - ["CD"] = 0, - }, - [61] = { - ["X"] = 49.5, - ["Y"] = 85.9, - ["CD"] = 0, - }, - [62] = { - ["X"] = 64.31, - ["Y"] = 21.59, - ["CD"] = 0, - }, - [63] = { - ["X"] = 45.71, - ["Y"] = 15.14, - ["CD"] = 0, - }, - [64] = { - ["X"] = 48.74, - ["Y"] = 10.63, - ["CD"] = 0, - }, - [65] = { - ["X"] = 45.55, - ["Y"] = 10.75, - ["CD"] = 0, - }, - [66] = { - ["X"] = 54.31, - ["Y"] = 17.67, - ["CD"] = 0, - }, - [67] = { - ["X"] = 61.29, - ["Y"] = 29.89, - ["CD"] = 0, - }, - [68] = { - ["X"] = 57.92, - ["Y"] = 33.75, - ["CD"] = 0, - }, - [69] = { - ["X"] = 45.1, - ["Y"] = 28.59, - ["CD"] = 0, - }, - [70] = { - ["X"] = 44.59, - ["Y"] = 32.83, - ["CD"] = 0, - }, - [71] = { - ["X"] = 61.83, - ["Y"] = 39.44, - ["CD"] = 0, - }, - [72] = { - ["X"] = 41.47, - ["Y"] = 33.61, - ["CD"] = 0, - }, - [73] = { - ["X"] = 40.85, - ["Y"] = 38.78, - ["CD"] = 0, - }, - [74] = { - ["X"] = 42.3, - ["Y"] = 36.7, - ["CD"] = 0, - }, - [75] = { - ["X"] = 42.36, - ["Y"] = 24.31, - ["CD"] = 0, - }, - [76] = { - ["X"] = 35.84, - ["Y"] = 15.6, - ["CD"] = 0, - }, - [77] = { - ["X"] = 39.54, - ["Y"] = 24.73, - ["CD"] = 0, - }, - [78] = { - ["X"] = 39.74, - ["Y"] = 13.5, - ["CD"] = 0, - }, - [79] = { - ["X"] = 35.42, - ["Y"] = 27.64, - ["CD"] = 0, - }, - [80] = { - ["X"] = 56.06, - ["Y"] = 19.39, - ["CD"] = 0, - }, - [81] = { - ["X"] = 63.3, - ["Y"] = 35.71, - ["CD"] = 0, - }, - [82] = { - ["X"] = 52.67, - ["Y"] = 26.74, - ["CD"] = 0, - }, - [83] = { - ["X"] = 57.2, - ["Y"] = 27.62, - ["CD"] = 0, - }, - [84] = { - ["X"] = 35.53, - ["Y"] = 22.66, - ["CD"] = 0, - }, - [85] = { - ["X"] = 38.63, - ["Y"] = 28.7, - ["CD"] = 0, - }, - [86] = { - ["X"] = 38.01, - ["Y"] = 35.61, - ["CD"] = 0, - }, - [87] = { - ["X"] = 62.66, - ["Y"] = 54.86, - ["CD"] = 0, - }, - [88] = { - ["X"] = 55.46, - ["Y"] = 72.45, - ["CD"] = 0, - }, - [89] = { - ["X"] = 57, - ["Y"] = 62.25, - ["CD"] = 0, - }, - [90] = { - ["X"] = 45.03, - ["Y"] = 71.83, - ["CD"] = 0, - }, - [91] = { - ["X"] = 47.61, - ["Y"] = 74, - ["CD"] = 0, - }, - [92] = { - ["X"] = 45.6, - ["Y"] = 84.9, - ["CD"] = 0, - }, - [93] = { - ["X"] = 44.42, - ["Y"] = 82.26, - ["CD"] = 0, - }, - [94] = { - ["X"] = 52.56, - ["Y"] = 60.68, - ["CD"] = 0, - }, - [95] = { - ["X"] = 66.67, - ["Y"] = 48.25, - ["CD"] = 0, - }, - [96] = { - ["X"] = 61.84, - ["Y"] = 55.45, - ["CD"] = 0, - }, - [97] = { - ["X"] = 42.88, - ["Y"] = 79.35, - ["CD"] = 0, - }, - [98] = { - ["X"] = 41.56, - ["Y"] = 72.14, - ["CD"] = 0, - }, - [99] = { - ["X"] = 52.47, - ["Y"] = 79, - ["CD"] = 0, - }, - [100] = { - ["X"] = 44.21, - ["Y"] = 88.47, - ["CD"] = 0, - }, - [101] = { - ["X"] = 42.24, - ["Y"] = 74.27, - ["CD"] = 0, - }, - [102] = { - ["X"] = 56.88, - ["Y"] = 61.05, - ["CD"] = 0, - }, - [103] = { - ["X"] = 56.71, - ["Y"] = 64.6, - ["CD"] = 0, - }, - [104] = { - ["X"] = 67.25, - ["Y"] = 46.04, - ["CD"] = 0, - }, - [105] = { - ["X"] = 45.05, - ["Y"] = 37.62, - ["CD"] = 0, - }, - [106] = { - ["X"] = 48.93, - ["Y"] = 43.77, - ["CD"] = 0, - }, - [107] = { - ["X"] = 61.29, - ["Y"] = 47.29, - ["CD"] = 0, - }, - [108] = { - ["X"] = 50.61, - ["Y"] = 58.06, - ["CD"] = 0, - }, - [109] = { - ["X"] = 48.12, - ["Y"] = 52.99, - ["CD"] = 0, - }, - [110] = { - ["X"] = 53.02, - ["Y"] = 12.51, - ["CD"] = 0, - }, - [111] = { - ["X"] = 51.37, - ["Y"] = 15.24, - ["CD"] = 0, - }, - [112] = { - ["X"] = 46, - ["Y"] = 61.02, - ["CD"] = 0, - }, - [113] = { - ["X"] = 67.21, - ["Y"] = 43.27, - ["CD"] = 0, - }, - [114] = { - ["X"] = 56.87, - ["Y"] = 48.7, - ["CD"] = 0, - }, - [115] = { - ["X"] = 32.97, - ["Y"] = 32.94, - ["CD"] = 0, - }, - [116] = { - ["X"] = 40.77, - ["Y"] = 60.33, - ["CD"] = 0, - }, - [117] = { - ["X"] = 46.61, - ["Y"] = 16.25, - ["CD"] = 0, - }, - [118] = { - ["X"] = 46.89, - ["Y"] = 48.44, - ["CD"] = 0, - }, - [119] = { - ["X"] = 60.73, - ["Y"] = 49.79, - ["CD"] = 0, - }, - [120] = { - ["X"] = 60.67, - ["Y"] = 23.86, - ["CD"] = 0, - }, - [121] = { - ["X"] = 59.03, - ["Y"] = 16.36, - ["CD"] = 0, - }, - [122] = { - ["X"] = 61.7, - ["Y"] = 17.64, - ["CD"] = 0, - }, - [123] = { - ["X"] = 40.78, - ["Y"] = 11.45, - ["CD"] = 0, - }, - }, - --Highmountain / Foxflower - [1024] = { - [1] = { - ["X"] = 46.64, - ["Y"] = 67.3, - ["CD"] = 0, - }, - [2] = { - ["X"] = 55.76, - ["Y"] = 65.74, - ["CD"] = 0, - }, - [3] = { - ["X"] = 52.19, - ["Y"] = 59.78, - ["CD"] = 0, - }, - [4] = { - ["X"] = 52.52, - ["Y"] = 61.45, - ["CD"] = 0, - }, - [5] = { - ["X"] = 56.69, - ["Y"] = 64.34, - ["CD"] = 0, - }, - [6] = { - ["X"] = 56.68, - ["Y"] = 65.38, - ["CD"] = 0, - }, - [7] = { - ["X"] = 56.19, - ["Y"] = 66.53, - ["CD"] = 0, - }, - [8] = { - ["X"] = 47.21, - ["Y"] = 33.87, - ["CD"] = 0, - }, - [9] = { - ["X"] = 49.54, - ["Y"] = 30.09, - ["CD"] = 0, - }, - [10] = { - ["X"] = 51.24, - ["Y"] = 28.5, - ["CD"] = 0, - }, - [11] = { - ["X"] = 57.55, - ["Y"] = 22.81, - ["CD"] = 0, - }, - [12] = { - ["X"] = 56.34, - ["Y"] = 20.86, - ["CD"] = 0, - }, - [13] = { - ["X"] = 55.97, - ["Y"] = 19.27, - ["CD"] = 0, - }, - [14] = { - ["X"] = 54.89, - ["Y"] = 16.3, - ["CD"] = 0, - }, - [15] = { - ["X"] = 53.91, - ["Y"] = 14.89, - ["CD"] = 0, - }, - [16] = { - ["X"] = 53.01, - ["Y"] = 13.32, - ["CD"] = 0, - }, - [17] = { - ["X"] = 52.11, - ["Y"] = 11.44, - ["CD"] = 0, - }, - [18] = { - ["X"] = 51.27, - ["Y"] = 10.74, - ["CD"] = 0, - }, - [19] = { - ["X"] = 50.26, - ["Y"] = 10.4, - ["CD"] = 0, - }, - [20] = { - ["X"] = 49.24, - ["Y"] = 10.45, - ["CD"] = 0, - }, - [21] = { - ["X"] = 47.77, - ["Y"] = 11.5, - ["CD"] = 0, - }, - [22] = { - ["X"] = 46.95, - ["Y"] = 10.6, - ["CD"] = 0, - }, - [23] = { - ["X"] = 46.07, - ["Y"] = 10.68, - ["CD"] = 0, - }, - [24] = { - ["X"] = 41.13, - ["Y"] = 12.7, - ["CD"] = 0, - }, - [25] = { - ["X"] = 39.77, - ["Y"] = 14.58, - ["CD"] = 0, - }, - [26] = { - ["X"] = 38.29, - ["Y"] = 19.38, - ["CD"] = 0, - }, - [27] = { - ["X"] = 36.19, - ["Y"] = 20.63, - ["CD"] = 0, - }, - [28] = { - ["X"] = 36.17, - ["Y"] = 22.01, - ["CD"] = 0, - }, - [29] = { - ["X"] = 36.39, - ["Y"] = 23.37, - ["CD"] = 0, - }, - [30] = { - ["X"] = 34.91, - ["Y"] = 24.27, - ["CD"] = 0, - }, - [31] = { - ["X"] = 34.2, - ["Y"] = 25.24, - ["CD"] = 0, - }, - [32] = { - ["X"] = 31.86, - ["Y"] = 26.16, - ["CD"] = 0, - }, - [33] = { - ["X"] = 29.8, - ["Y"] = 32.26, - ["CD"] = 0, - }, - [34] = { - ["X"] = 30.34, - ["Y"] = 34.84, - ["CD"] = 0, - }, - [35] = { - ["X"] = 31.21, - ["Y"] = 39.32, - ["CD"] = 0, - }, - [36] = { - ["X"] = 31.29, - ["Y"] = 40.69, - ["CD"] = 0, - }, - [37] = { - ["X"] = 29.99, - ["Y"] = 48.6, - ["CD"] = 0, - }, - [38] = { - ["X"] = 29.95, - ["Y"] = 50.01, - ["CD"] = 0, - }, - [39] = { - ["X"] = 28.55, - ["Y"] = 52.13, - ["CD"] = 0, - }, - [40] = { - ["X"] = 28.61, - ["Y"] = 54.13, - ["CD"] = 0, - }, - [41] = { - ["X"] = 28.71, - ["Y"] = 55.45, - ["CD"] = 0, - }, - [42] = { - ["X"] = 30.26, - ["Y"] = 58.89, - ["CD"] = 0, - }, - [43] = { - ["X"] = 31.74, - ["Y"] = 60.67, - ["CD"] = 0, - }, - [44] = { - ["X"] = 36.49, - ["Y"] = 65.21, - ["CD"] = 0, - }, - [45] = { - ["X"] = 37.61, - ["Y"] = 67.49, - ["CD"] = 0, - }, - [46] = { - ["X"] = 38.38, - ["Y"] = 69.44, - ["CD"] = 0, - }, - [47] = { - ["X"] = 38.79, - ["Y"] = 72.65, - ["CD"] = 0, - }, - [48] = { - ["X"] = 41.04, - ["Y"] = 73.11, - ["CD"] = 0, - }, - [49] = { - ["X"] = 45.93, - ["Y"] = 78.12, - ["CD"] = 0, - }, - [50] = { - ["X"] = 43, - ["Y"] = 72.74, - ["CD"] = 0, - }, - [51] = { - ["X"] = 44.04, - ["Y"] = 70.22, - ["CD"] = 0, - }, - [52] = { - ["X"] = 43.8, - ["Y"] = 68.68, - ["CD"] = 0, - }, - [53] = { - ["X"] = 57.52, - ["Y"] = 59.84, - ["CD"] = 0, - }, - [54] = { - ["X"] = 57.52, - ["Y"] = 57.7, - ["CD"] = 0, - }, - [55] = { - ["X"] = 58.07, - ["Y"] = 54.65, - ["CD"] = 0, - }, - [56] = { - ["X"] = 57.96, - ["Y"] = 53.13, - ["CD"] = 0, - }, - [57] = { - ["X"] = 57.86, - ["Y"] = 47.77, - ["CD"] = 0, - }, - [58] = { - ["X"] = 58.19, - ["Y"] = 47.05, - ["CD"] = 0, - }, - [59] = { - ["X"] = 58.61, - ["Y"] = 44.17, - ["CD"] = 0, - }, - [60] = { - ["X"] = 56.51, - ["Y"] = 44.73, - ["CD"] = 0, - }, - [61] = { - ["X"] = 54.78, - ["Y"] = 45.97, - ["CD"] = 0, - }, - [62] = { - ["X"] = 51.14, - ["Y"] = 44.1, - ["CD"] = 0, - }, - [63] = { - ["X"] = 50.07, - ["Y"] = 44.32, - ["CD"] = 0, - }, - [64] = { - ["X"] = 47.67, - ["Y"] = 45.55, - ["CD"] = 0, - }, - [65] = { - ["X"] = 46.74, - ["Y"] = 44.41, - ["CD"] = 0, - }, - [66] = { - ["X"] = 45.62, - ["Y"] = 43.41, - ["CD"] = 0, - }, - [67] = { - ["X"] = 44.37, - ["Y"] = 46.79, - ["CD"] = 0, - }, - [68] = { - ["X"] = 44.75, - ["Y"] = 50.99, - ["CD"] = 0, - }, - [69] = { - ["X"] = 43.43, - ["Y"] = 51.8, - ["CD"] = 0, - }, - [70] = { - ["X"] = 42.94, - ["Y"] = 52.84, - ["CD"] = 0, - }, - [71] = { - ["X"] = 41.36, - ["Y"] = 56.14, - ["CD"] = 0, - }, - [72] = { - ["X"] = 40.42, - ["Y"] = 59.11, - ["CD"] = 0, - }, - [73] = { - ["X"] = 40.66, - ["Y"] = 60.23, - ["CD"] = 0, - }, - [74] = { - ["X"] = 41.34, - ["Y"] = 61.28, - ["CD"] = 0, - }, - [75] = { - ["X"] = 42.63, - ["Y"] = 62.64, - ["CD"] = 0, - }, - [76] = { - ["X"] = 43.09, - ["Y"] = 63.34, - ["CD"] = 0, - }, - [77] = { - ["X"] = 42.95, - ["Y"] = 66.46, - ["CD"] = 0, - }, - [78] = { - ["X"] = 41.91, - ["Y"] = 65.48, - ["CD"] = 0, - }, - [79] = { - ["X"] = 39.84, - ["Y"] = 67.12, - ["CD"] = 0, - }, - [80] = { - ["X"] = 39.25, - ["Y"] = 66.78, - ["CD"] = 0, - }, - [81] = { - ["X"] = 37.95, - ["Y"] = 65.06, - ["CD"] = 0, - }, - [82] = { - ["X"] = 36.88, - ["Y"] = 62.21, - ["CD"] = 0, - }, - [83] = { - ["X"] = 35, - ["Y"] = 61.68, - ["CD"] = 0, - }, - [84] = { - ["X"] = 34.47, - ["Y"] = 61.63, - ["CD"] = 0, - }, - [85] = { - ["X"] = 33.04, - ["Y"] = 59.61, - ["CD"] = 0, - }, - [86] = { - ["X"] = 32.47, - ["Y"] = 58.59, - ["CD"] = 0, - }, - [87] = { - ["X"] = 33.5, - ["Y"] = 48.45, - ["CD"] = 0, - }, - [88] = { - ["X"] = 33.97, - ["Y"] = 46.69, - ["CD"] = 0, - }, - [89] = { - ["X"] = 34.71, - ["Y"] = 45.6, - ["CD"] = 0, - }, - [90] = { - ["X"] = 35.6, - ["Y"] = 44.86, - ["CD"] = 0, - }, - [91] = { - ["X"] = 35.83, - ["Y"] = 42.47, - ["CD"] = 0, - }, - [92] = { - ["X"] = 37.81, - ["Y"] = 39.75, - ["CD"] = 0, - }, - [93] = { - ["X"] = 38.19, - ["Y"] = 38.74, - ["CD"] = 0, - }, - [94] = { - ["X"] = 38.79, - ["Y"] = 38.66, - ["CD"] = 0, - }, - [95] = { - ["X"] = 39.3, - ["Y"] = 38.66, - ["CD"] = 0, - }, - [96] = { - ["X"] = 39.02, - ["Y"] = 37.93, - ["CD"] = 0, - }, - [97] = { - ["X"] = 40.35, - ["Y"] = 35.43, - ["CD"] = 0, - }, - [98] = { - ["X"] = 40.39, - ["Y"] = 33.63, - ["CD"] = 0, - }, - [99] = { - ["X"] = 49.08, - ["Y"] = 29.35, - ["CD"] = 0, - }, - [100] = { - ["X"] = 51.14, - ["Y"] = 25.3, - ["CD"] = 0, - }, - [101] = { - ["X"] = 49.93, - ["Y"] = 27.04, - ["CD"] = 0, - }, - [102] = { - ["X"] = 49.29, - ["Y"] = 25.89, - ["CD"] = 0, - }, - [103] = { - ["X"] = 50.02, - ["Y"] = 25.23, - ["CD"] = 0, - }, - [104] = { - ["X"] = 44.16, - ["Y"] = 26.34, - ["CD"] = 0, - }, - [105] = { - ["X"] = 45.33, - ["Y"] = 25.11, - ["CD"] = 0, - }, - [106] = { - ["X"] = 47.16, - ["Y"] = 24.57, - ["CD"] = 0, - }, - [107] = { - ["X"] = 48.18, - ["Y"] = 24.81, - ["CD"] = 0, - }, - [108] = { - ["X"] = 48.43, - ["Y"] = 24.91, - ["CD"] = 0, - }, - [109] = { - ["X"] = 41.96, - ["Y"] = 27.74, - ["CD"] = 0, - }, - [110] = { - ["X"] = 40.81, - ["Y"] = 28.03, - ["CD"] = 0, - }, - [111] = { - ["X"] = 49.48, - ["Y"] = 32.24, - ["CD"] = 0, - }, - [112] = { - ["X"] = 48.81, - ["Y"] = 30.9, - ["CD"] = 0, - }, - [113] = { - ["X"] = 47.43, - ["Y"] = 9.62, - ["CD"] = 0, - }, - [114] = { - ["X"] = 41.86, - ["Y"] = 29.75, - ["CD"] = 0, - }, - [115] = { - ["X"] = 41.9, - ["Y"] = 33.87, - ["CD"] = 0, - }, - [116] = { - ["X"] = 38.16, - ["Y"] = 38.67, - ["CD"] = 0, - }, - [117] = { - ["X"] = 42.37, - ["Y"] = 57.47, - ["CD"] = 0, - }, - [118] = { - ["X"] = 35.91, - ["Y"] = 64.63, - ["CD"] = 0, - }, - [119] = { - ["X"] = 34.84, - ["Y"] = 66.91, - ["CD"] = 0, - }, - [120] = { - ["X"] = 58.06, - ["Y"] = 22.18, - ["CD"] = 0, - }, - [121] = { - ["X"] = 55.33, - ["Y"] = 18.91, - ["CD"] = 0, - }, - [122] = { - ["X"] = 56.08, - ["Y"] = 16.68, - ["CD"] = 0, - }, - [123] = { - ["X"] = 53.44, - ["Y"] = 12.37, - ["CD"] = 0, - }, - [124] = { - ["X"] = 48.54, - ["Y"] = 7.84, - ["CD"] = 0, - }, - [125] = { - ["X"] = 45.82, - ["Y"] = 11.08, - ["CD"] = 0, - }, - [126] = { - ["X"] = 46.22, - ["Y"] = 10.22, - ["CD"] = 0, - }, - [127] = { - ["X"] = 43.25, - ["Y"] = 9.49, - ["CD"] = 0, - }, - [128] = { - ["X"] = 41.16, - ["Y"] = 13.96, - ["CD"] = 0, - }, - [129] = { - ["X"] = 42.56, - ["Y"] = 30.48, - ["CD"] = 0, - }, - [130] = { - ["X"] = 39.26, - ["Y"] = 50.08, - ["CD"] = 0, - }, - [131] = { - ["X"] = 35.86, - ["Y"] = 38.62, - ["CD"] = 0, - }, - [132] = { - ["X"] = 38.03, - ["Y"] = 42.82, - ["CD"] = 0, - }, - [133] = { - ["X"] = 41.33, - ["Y"] = 48.68, - ["CD"] = 0, - }, - [134] = { - ["X"] = 40.45, - ["Y"] = 50.6, - ["CD"] = 0, - }, - [135] = { - ["X"] = 47.95, - ["Y"] = 69.23, - ["CD"] = 0, - }, - [136] = { - ["X"] = 56.51, - ["Y"] = 61.71, - ["CD"] = 0, - }, - [137] = { - ["X"] = 40.18, - ["Y"] = 74.41, - ["CD"] = 0, - }, - [138] = { - ["X"] = 34.69, - ["Y"] = 74.43, - ["CD"] = 0, - }, - [139] = { - ["X"] = 33.56, - ["Y"] = 72.81, - ["CD"] = 0, - }, - [140] = { - ["X"] = 39.37, - ["Y"] = 64.28, - ["CD"] = 0, - }, - [141] = { - ["X"] = 48.31, - ["Y"] = 29.71, - ["CD"] = 0, - }, - [142] = { - ["X"] = 41.06, - ["Y"] = 51.89, - ["CD"] = 0, - }, - [143] = { - ["X"] = 47.39, - ["Y"] = 57.58, - ["CD"] = 0, - }, - [144] = { - ["X"] = 44.3, - ["Y"] = 30.89, - ["CD"] = 0, - }, - [145] = { - ["X"] = 37.26, - ["Y"] = 33.85, - ["CD"] = 0, - }, - [146] = { - ["X"] = 49.68, - ["Y"] = 28.43, - ["CD"] = 0, - }, - [147] = { - ["X"] = 46.45, - ["Y"] = 26.28, - ["CD"] = 0, - }, - [148] = { - ["X"] = 48.48, - ["Y"] = 54.81, - ["CD"] = 0, - }, - [149] = { - ["X"] = 44.43, - ["Y"] = 43.63, - ["CD"] = 0, - }, - [150] = { - ["X"] = 42.21, - ["Y"] = 54.16, - ["CD"] = 0, - }, - [151] = { - ["X"] = 52.71, - ["Y"] = 39.16, - ["CD"] = 0, - }, - [152] = { - ["X"] = 50.92, - ["Y"] = 31.71, - ["CD"] = 0, - }, - [153] = { - ["X"] = 49.73, - ["Y"] = 40.07, - ["CD"] = 0, - }, - [154] = { - ["X"] = 43.29, - ["Y"] = 33.05, - ["CD"] = 0, - }, - [155] = { - ["X"] = 42.5, - ["Y"] = 61.79, - ["CD"] = 0, - }, - [156] = { - ["X"] = 38.62, - ["Y"] = 61.09, - ["CD"] = 0, - }, - [157] = { - ["X"] = 33.34, - ["Y"] = 66.81, - ["CD"] = 0, - }, - }, - --Stormheim / Fjarnskaggl - [1017] = { - [1] = { - ["X"] = 42.73, - ["Y"] = 21.64, - ["CD"] = 0, - }, - [2] = { - ["X"] = 45.18, - ["Y"] = 20.16, - ["CD"] = 0, - }, - [3] = { - ["X"] = 46.55, - ["Y"] = 20.24, - ["CD"] = 0, - }, - [4] = { - ["X"] = 59.54, - ["Y"] = 32.57, - ["CD"] = 0, - }, - [5] = { - ["X"] = 58.44, - ["Y"] = 30.81, - ["CD"] = 0, - }, - [6] = { - ["X"] = 60.72, - ["Y"] = 27.5, - ["CD"] = 0, - }, - [7] = { - ["X"] = 62.19, - ["Y"] = 26.58, - ["CD"] = 0, - }, - [8] = { - ["X"] = 62.99, - ["Y"] = 27.45, - ["CD"] = 0, - }, - [9] = { - ["X"] = 63.12, - ["Y"] = 29.3, - ["CD"] = 0, - }, - [10] = { - ["X"] = 62.08, - ["Y"] = 31.15, - ["CD"] = 0, - }, - [11] = { - ["X"] = 61.83, - ["Y"] = 31.81, - ["CD"] = 0, - }, - [12] = { - ["X"] = 61.03, - ["Y"] = 34.71, - ["CD"] = 0, - }, - [13] = { - ["X"] = 60.61, - ["Y"] = 37.98, - ["CD"] = 0, - }, - [14] = { - ["X"] = 60.56, - ["Y"] = 39.33, - ["CD"] = 0, - }, - [15] = { - ["X"] = 63.53, - ["Y"] = 49.93, - ["CD"] = 0, - }, - [16] = { - ["X"] = 66.21, - ["Y"] = 49.69, - ["CD"] = 0, - }, - [17] = { - ["X"] = 67.69, - ["Y"] = 49.03, - ["CD"] = 0, - }, - [18] = { - ["X"] = 69.63, - ["Y"] = 46.92, - ["CD"] = 0, - }, - [19] = { - ["X"] = 70.39, - ["Y"] = 46.08, - ["CD"] = 0, - }, - [20] = { - ["X"] = 72.09, - ["Y"] = 51.14, - ["CD"] = 0, - }, - [21] = { - ["X"] = 72.56, - ["Y"] = 53.56, - ["CD"] = 0, - }, - [22] = { - ["X"] = 75.52, - ["Y"] = 54.75, - ["CD"] = 0, - }, - [23] = { - ["X"] = 76.6, - ["Y"] = 56.5, - ["CD"] = 0, - }, - [24] = { - ["X"] = 76.14, - ["Y"] = 58.07, - ["CD"] = 0, - }, - [25] = { - ["X"] = 75.03, - ["Y"] = 57.99, - ["CD"] = 0, - }, - [26] = { - ["X"] = 73.66, - ["Y"] = 57.66, - ["CD"] = 0, - }, - [27] = { - ["X"] = 70.9, - ["Y"] = 61.57, - ["CD"] = 0, - }, - [28] = { - ["X"] = 67.75, - ["Y"] = 61.48, - ["CD"] = 0, - }, - [29] = { - ["X"] = 64.9, - ["Y"] = 63.35, - ["CD"] = 0, - }, - [30] = { - ["X"] = 62.99, - ["Y"] = 63.35, - ["CD"] = 0, - }, - [31] = { - ["X"] = 63.26, - ["Y"] = 64.62, - ["CD"] = 0, - }, - [32] = { - ["X"] = 63.23, - ["Y"] = 65.19, - ["CD"] = 0, - }, - [33] = { - ["X"] = 61.63, - ["Y"] = 65.68, - ["CD"] = 0, - }, - [34] = { - ["X"] = 62.54, - ["Y"] = 66.48, - ["CD"] = 0, - }, - [35] = { - ["X"] = 59.64, - ["Y"] = 66.61, - ["CD"] = 0, - }, - [36] = { - ["X"] = 59.13, - ["Y"] = 67.89, - ["CD"] = 0, - }, - [37] = { - ["X"] = 55.69, - ["Y"] = 71.33, - ["CD"] = 0, - }, - [38] = { - ["X"] = 59.46, - ["Y"] = 75.05, - ["CD"] = 0, - }, - [39] = { - ["X"] = 61.37, - ["Y"] = 77.79, - ["CD"] = 0, - }, - [40] = { - ["X"] = 61.46, - ["Y"] = 79.28, - ["CD"] = 0, - }, - [41] = { - ["X"] = 62.37, - ["Y"] = 81.26, - ["CD"] = 0, - }, - [42] = { - ["X"] = 62.89, - ["Y"] = 86.35, - ["CD"] = 0, - }, - [43] = { - ["X"] = 62.95, - ["Y"] = 87.18, - ["CD"] = 0, - }, - [44] = { - ["X"] = 61.86, - ["Y"] = 89.33, - ["CD"] = 0, - }, - [45] = { - ["X"] = 61.06, - ["Y"] = 89.51, - ["CD"] = 0, - }, - [46] = { - ["X"] = 60.35, - ["Y"] = 89.77, - ["CD"] = 0, - }, - [47] = { - ["X"] = 60.46, - ["Y"] = 88.01, - ["CD"] = 0, - }, - [48] = { - ["X"] = 58.77, - ["Y"] = 88.12, - ["CD"] = 0, - }, - [49] = { - ["X"] = 58, - ["Y"] = 89.7, - ["CD"] = 0, - }, - [50] = { - ["X"] = 57.81, - ["Y"] = 88.34, - ["CD"] = 0, - }, - [51] = { - ["X"] = 58.15, - ["Y"] = 87.43, - ["CD"] = 0, - }, - [52] = { - ["X"] = 54.91, - ["Y"] = 87.91, - ["CD"] = 0, - }, - [53] = { - ["X"] = 54.42, - ["Y"] = 87.64, - ["CD"] = 0, - }, - [54] = { - ["X"] = 53.69, - ["Y"] = 86.99, - ["CD"] = 0, - }, - [55] = { - ["X"] = 53.69, - ["Y"] = 86.01, - ["CD"] = 0, - }, - [56] = { - ["X"] = 53.41, - ["Y"] = 84.74, - ["CD"] = 0, - }, - [57] = { - ["X"] = 52.93, - ["Y"] = 84.03, - ["CD"] = 0, - }, - [58] = { - ["X"] = 52.94, - ["Y"] = 80.51, - ["CD"] = 0, - }, - [59] = { - ["X"] = 51.8, - ["Y"] = 80.64, - ["CD"] = 0, - }, - [60] = { - ["X"] = 50.54, - ["Y"] = 76.85, - ["CD"] = 0, - }, - [61] = { - ["X"] = 50.06, - ["Y"] = 74.96, - ["CD"] = 0, - }, - [62] = { - ["X"] = 49.84, - ["Y"] = 71.6, - ["CD"] = 0, - }, - [63] = { - ["X"] = 49.18, - ["Y"] = 71.24, - ["CD"] = 0, - }, - [64] = { - ["X"] = 49.05, - ["Y"] = 72.37, - ["CD"] = 0, - }, - [65] = { - ["X"] = 48.97, - ["Y"] = 73.02, - ["CD"] = 0, - }, - [66] = { - ["X"] = 48.69, - ["Y"] = 74.08, - ["CD"] = 0, - }, - [67] = { - ["X"] = 46.55, - ["Y"] = 65.61, - ["CD"] = 0, - }, - [68] = { - ["X"] = 45.84, - ["Y"] = 65.53, - ["CD"] = 0, - }, - [69] = { - ["X"] = 45.91, - ["Y"] = 66.46, - ["CD"] = 0, - }, - [70] = { - ["X"] = 45.89, - ["Y"] = 68.5, - ["CD"] = 0, - }, - [71] = { - ["X"] = 46.49, - ["Y"] = 69.36, - ["CD"] = 0, - }, - [72] = { - ["X"] = 46.85, - ["Y"] = 70.49, - ["CD"] = 0, - }, - [73] = { - ["X"] = 48.64, - ["Y"] = 66.49, - ["CD"] = 0, - }, - [74] = { - ["X"] = 48.19, - ["Y"] = 65.73, - ["CD"] = 0, - }, - [75] = { - ["X"] = 69.05, - ["Y"] = 53, - ["CD"] = 0, - }, - [76] = { - ["X"] = 69.6, - ["Y"] = 53.04, - ["CD"] = 0, - }, - [77] = { - ["X"] = 71.2, - ["Y"] = 50.43, - ["CD"] = 0, - }, - [78] = { - ["X"] = 72.12, - ["Y"] = 48.71, - ["CD"] = 0, - }, - [79] = { - ["X"] = 71.54, - ["Y"] = 47.52, - ["CD"] = 0, - }, - [80] = { - ["X"] = 70.25, - ["Y"] = 47.85, - ["CD"] = 0, - }, - [81] = { - ["X"] = 67.53, - ["Y"] = 46.62, - ["CD"] = 0, - }, - [82] = { - ["X"] = 66.15, - ["Y"] = 46.42, - ["CD"] = 0, - }, - [83] = { - ["X"] = 65.17, - ["Y"] = 48.03, - ["CD"] = 0, - }, - [84] = { - ["X"] = 63.08, - ["Y"] = 47.87, - ["CD"] = 0, - }, - [85] = { - ["X"] = 62.37, - ["Y"] = 49.53, - ["CD"] = 0, - }, - [86] = { - ["X"] = 61.62, - ["Y"] = 50.11, - ["CD"] = 0, - }, - [87] = { - ["X"] = 61.46, - ["Y"] = 52.36, - ["CD"] = 0, - }, - [88] = { - ["X"] = 59.98, - ["Y"] = 54.34, - ["CD"] = 0, - }, - [89] = { - ["X"] = 59.21, - ["Y"] = 54.31, - ["CD"] = 0, - }, - [90] = { - ["X"] = 58.56, - ["Y"] = 53.27, - ["CD"] = 0, - }, - [91] = { - ["X"] = 57.53, - ["Y"] = 52.03, - ["CD"] = 0, - }, - [92] = { - ["X"] = 57.08, - ["Y"] = 50.3, - ["CD"] = 0, - }, - [93] = { - ["X"] = 53.84, - ["Y"] = 52.74, - ["CD"] = 0, - }, - [94] = { - ["X"] = 53.1, - ["Y"] = 52.62, - ["CD"] = 0, - }, - [95] = { - ["X"] = 51.82, - ["Y"] = 55.04, - ["CD"] = 0, - }, - [96] = { - ["X"] = 51.02, - ["Y"] = 56.85, - ["CD"] = 0, - }, - [97] = { - ["X"] = 49.4, - ["Y"] = 57.58, - ["CD"] = 0, - }, - [98] = { - ["X"] = 48.41, - ["Y"] = 56.75, - ["CD"] = 0, - }, - [99] = { - ["X"] = 46.85, - ["Y"] = 55.36, - ["CD"] = 0, - }, - [100] = { - ["X"] = 46.59, - ["Y"] = 54.11, - ["CD"] = 0, - }, - [101] = { - ["X"] = 45.57, - ["Y"] = 53.02, - ["CD"] = 0, - }, - [102] = { - ["X"] = 44.37, - ["Y"] = 52.98, - ["CD"] = 0, - }, - [103] = { - ["X"] = 44.15, - ["Y"] = 51.24, - ["CD"] = 0, - }, - [104] = { - ["X"] = 40.96, - ["Y"] = 49.38, - ["CD"] = 0, - }, - [105] = { - ["X"] = 39.14, - ["Y"] = 47.16, - ["CD"] = 0, - }, - [106] = { - ["X"] = 38.88, - ["Y"] = 44.73, - ["CD"] = 0, - }, - [107] = { - ["X"] = 38.83, - ["Y"] = 43.43, - ["CD"] = 0, - }, - [108] = { - ["X"] = 38.15, - ["Y"] = 43.33, - ["CD"] = 0, - }, - [109] = { - ["X"] = 37.77, - ["Y"] = 42.02, - ["CD"] = 0, - }, - [110] = { - ["X"] = 37.54, - ["Y"] = 40.84, - ["CD"] = 0, - }, - [111] = { - ["X"] = 35.86, - ["Y"] = 40.01, - ["CD"] = 0, - }, - [112] = { - ["X"] = 33.99, - ["Y"] = 36.77, - ["CD"] = 0, - }, - [113] = { - ["X"] = 33.07, - ["Y"] = 37, - ["CD"] = 0, - }, - [114] = { - ["X"] = 33.87, - ["Y"] = 39.85, - ["CD"] = 0, - }, - [115] = { - ["X"] = 33.03, - ["Y"] = 40.27, - ["CD"] = 0, - }, - [116] = { - ["X"] = 32.06, - ["Y"] = 40.76, - ["CD"] = 0, - }, - [117] = { - ["X"] = 33.91, - ["Y"] = 44.47, - ["CD"] = 0, - }, - [118] = { - ["X"] = 37.4, - ["Y"] = 45.88, - ["CD"] = 0, - }, - [119] = { - ["X"] = 37.28, - ["Y"] = 46.86, - ["CD"] = 0, - }, - [120] = { - ["X"] = 37.7, - ["Y"] = 48.2, - ["CD"] = 0, - }, - [121] = { - ["X"] = 38.14, - ["Y"] = 48.72, - ["CD"] = 0, - }, - [122] = { - ["X"] = 39.99, - ["Y"] = 51.1, - ["CD"] = 0, - }, - [123] = { - ["X"] = 40.14, - ["Y"] = 52.88, - ["CD"] = 0, - }, - [124] = { - ["X"] = 40.12, - ["Y"] = 54.59, - ["CD"] = 0, - }, - [125] = { - ["X"] = 40.48, - ["Y"] = 55.62, - ["CD"] = 0, - }, - [126] = { - ["X"] = 40.9, - ["Y"] = 54.97, - ["CD"] = 0, - }, - [127] = { - ["X"] = 41.83, - ["Y"] = 58.05, - ["CD"] = 0, - }, - [128] = { - ["X"] = 42.96, - ["Y"] = 58.02, - ["CD"] = 0, - }, - [129] = { - ["X"] = 43.76, - ["Y"] = 58.88, - ["CD"] = 0, - }, - [130] = { - ["X"] = 44.62, - ["Y"] = 59.61, - ["CD"] = 0, - }, - [131] = { - ["X"] = 46.7, - ["Y"] = 63.7, - ["CD"] = 0, - }, - [132] = { - ["X"] = 45.37, - ["Y"] = 38.44, - ["CD"] = 0, - }, - [133] = { - ["X"] = 45.75, - ["Y"] = 57.47, - ["CD"] = 0, - }, - [134] = { - ["X"] = 41.11, - ["Y"] = 65.23, - ["CD"] = 0, - }, - [135] = { - ["X"] = 42.3, - ["Y"] = 57.53, - ["CD"] = 0, - }, - [136] = { - ["X"] = 42.35, - ["Y"] = 61.07, - ["CD"] = 0, - }, - [137] = { - ["X"] = 41.82, - ["Y"] = 65.83, - ["CD"] = 0, - }, - [138] = { - ["X"] = 43.9, - ["Y"] = 58.83, - ["CD"] = 0, - }, - [139] = { - ["X"] = 36.28, - ["Y"] = 53.19, - ["CD"] = 0, - }, - [140] = { - ["X"] = 33.45, - ["Y"] = 57.93, - ["CD"] = 0, - }, - [141] = { - ["X"] = 31.05, - ["Y"] = 50.17, - ["CD"] = 0, - }, - [142] = { - ["X"] = 47.87, - ["Y"] = 52.01, - ["CD"] = 0, - }, - [143] = { - ["X"] = 43.23, - ["Y"] = 48.66, - ["CD"] = 0, - }, - [144] = { - ["X"] = 49.96, - ["Y"] = 50.95, - ["CD"] = 0, - }, - [145] = { - ["X"] = 48.72, - ["Y"] = 41.11, - ["CD"] = 0, - }, - [146] = { - ["X"] = 39.14, - ["Y"] = 53.61, - ["CD"] = 0, - }, - [147] = { - ["X"] = 42.68, - ["Y"] = 50.61, - ["CD"] = 0, - }, - [148] = { - ["X"] = 41.05, - ["Y"] = 54.12, - ["CD"] = 0, - }, - [149] = { - ["X"] = 47.37, - ["Y"] = 67.98, - ["CD"] = 0, - }, - [150] = { - ["X"] = 44.75, - ["Y"] = 82.18, - ["CD"] = 0, - }, - [151] = { - ["X"] = 63.56, - ["Y"] = 45.14, - ["CD"] = 0, - }, - [152] = { - ["X"] = 45.89, - ["Y"] = 46.6, - ["CD"] = 0, - }, - [153] = { - ["X"] = 46.49, - ["Y"] = 64.37, - ["CD"] = 0, - }, - [154] = { - ["X"] = 64.82, - ["Y"] = 52.7, - ["CD"] = 0, - }, - [155] = { - ["X"] = 64.17, - ["Y"] = 52.38, - ["CD"] = 0, - }, - [156] = { - ["X"] = 68.5, - ["Y"] = 57.27, - ["CD"] = 0, - }, - [157] = { - ["X"] = 67.97, - ["Y"] = 56.88, - ["CD"] = 0, - }, - [158] = { - ["X"] = 68.84, - ["Y"] = 55.8, - ["CD"] = 0, - }, - [159] = { - ["X"] = 65.9, - ["Y"] = 48.34, - ["CD"] = 0, - }, - [160] = { - ["X"] = 67.73, - ["Y"] = 41.64, - ["CD"] = 0, - }, - [161] = { - ["X"] = 74.57, - ["Y"] = 43.32, - ["CD"] = 0, - }, - [162] = { - ["X"] = 67.61, - ["Y"] = 54.47, - ["CD"] = 0, - }, - [163] = { - ["X"] = 58.75, - ["Y"] = 51.72, - ["CD"] = 0, - }, - [164] = { - ["X"] = 73.32, - ["Y"] = 59.52, - ["CD"] = 0, - }, - [165] = { - ["X"] = 63.58, - ["Y"] = 37.95, - ["CD"] = 0, - }, - [166] = { - ["X"] = 66.85, - ["Y"] = 53.77, - ["CD"] = 0, - }, - [167] = { - ["X"] = 77.33, - ["Y"] = 63.14, - ["CD"] = 0, - }, - [168] = { - ["X"] = 73.71, - ["Y"] = 59.94, - ["CD"] = 0, - }, - [169] = { - ["X"] = 76.47, - ["Y"] = 60.08, - ["CD"] = 0, - }, - [170] = { - ["X"] = 44.97, - ["Y"] = 39.08, - ["CD"] = 0, - }, - [171] = { - ["X"] = 73.25, - ["Y"] = 44.5, - ["CD"] = 0, - }, - [172] = { - ["X"] = 68.35, - ["Y"] = 58.98, - ["CD"] = 0, - }, - [173] = { - ["X"] = 71.56, - ["Y"] = 52.46, - ["CD"] = 0, - }, - [174] = { - ["X"] = 63.95, - ["Y"] = 62.4, - ["CD"] = 0, - }, - [175] = { - ["X"] = 60.12, - ["Y"] = 69.1, - ["CD"] = 0, - }, - [176] = { - ["X"] = 61.22, - ["Y"] = 64.31, - ["CD"] = 0, - }, - [177] = { - ["X"] = 55.88, - ["Y"] = 79.08, - ["CD"] = 0, - }, - [178] = { - ["X"] = 64.32, - ["Y"] = 44.07, - ["CD"] = 0, - }, - [179] = { - ["X"] = 68.89, - ["Y"] = 62.08, - ["CD"] = 0, - }, - [180] = { - ["X"] = 69.35, - ["Y"] = 60.39, - ["CD"] = 0, - }, - [181] = { - ["X"] = 65.94, - ["Y"] = 62.71, - ["CD"] = 0, - }, - [182] = { - ["X"] = 66.6, - ["Y"] = 60.36, - ["CD"] = 0, - }, - [183] = { - ["X"] = 46.02, - ["Y"] = 76.89, - ["CD"] = 0, - }, - [184] = { - ["X"] = 29.73, - ["Y"] = 55.09, - ["CD"] = 0, - }, - [185] = { - ["X"] = 48.35, - ["Y"] = 64.82, - ["CD"] = 0, - }, - }, - --Val'sharah / Dreamleaf - [1018] = { - [1] = { - ["X"] = 23.7, - ["Y"] = 73.12, - ["CD"] = 0, - }, - [2] = { - ["X"] = 22.52, - ["Y"] = 71.28, - ["CD"] = 0, - }, - [3] = { - ["X"] = 21.12, - ["Y"] = 70.47, - ["CD"] = 0, - }, - [4] = { - ["X"] = 20.56, - ["Y"] = 68.69, - ["CD"] = 0, - }, - [5] = { - ["X"] = 21.42, - ["Y"] = 67.02, - ["CD"] = 0, - }, - [6] = { - ["X"] = 23.97, - ["Y"] = 65.2, - ["CD"] = 0, - }, - [7] = { - ["X"] = 24.52, - ["Y"] = 66.6, - ["CD"] = 0, - }, - [8] = { - ["X"] = 31.99, - ["Y"] = 59.04, - ["CD"] = 0, - }, - [9] = { - ["X"] = 33.48, - ["Y"] = 60.6, - ["CD"] = 0, - }, - [10] = { - ["X"] = 35.38, - ["Y"] = 61.46, - ["CD"] = 0, - }, - [11] = { - ["X"] = 36.64, - ["Y"] = 60.88, - ["CD"] = 0, - }, - [12] = { - ["X"] = 38.63, - ["Y"] = 58.93, - ["CD"] = 0, - }, - [13] = { - ["X"] = 45.04, - ["Y"] = 58.46, - ["CD"] = 0, - }, - [14] = { - ["X"] = 46.38, - ["Y"] = 58.45, - ["CD"] = 0, - }, - [15] = { - ["X"] = 51.94, - ["Y"] = 65.28, - ["CD"] = 0, - }, - [16] = { - ["X"] = 52.39, - ["Y"] = 67.56, - ["CD"] = 0, - }, - [17] = { - ["X"] = 50.05, - ["Y"] = 71.58, - ["CD"] = 0, - }, - [18] = { - ["X"] = 49.84, - ["Y"] = 74.57, - ["CD"] = 0, - }, - [19] = { - ["X"] = 49.57, - ["Y"] = 78.07, - ["CD"] = 0, - }, - [20] = { - ["X"] = 48.9, - ["Y"] = 80.41, - ["CD"] = 0, - }, - [21] = { - ["X"] = 49.72, - ["Y"] = 81.52, - ["CD"] = 0, - }, - [22] = { - ["X"] = 49.75, - ["Y"] = 83.06, - ["CD"] = 0, - }, - [23] = { - ["X"] = 47.81, - ["Y"] = 88.73, - ["CD"] = 0, - }, - [24] = { - ["X"] = 44.54, - ["Y"] = 87.73, - ["CD"] = 0, - }, - [25] = { - ["X"] = 43.54, - ["Y"] = 84.84, - ["CD"] = 0, - }, - [26] = { - ["X"] = 42.98, - ["Y"] = 81.66, - ["CD"] = 0, - }, - [27] = { - ["X"] = 47.59, - ["Y"] = 79.41, - ["CD"] = 0, - }, - [28] = { - ["X"] = 49.11, - ["Y"] = 75.32, - ["CD"] = 0, - }, - [29] = { - ["X"] = 49.51, - ["Y"] = 74.06, - ["CD"] = 0, - }, - [30] = { - ["X"] = 51.33, - ["Y"] = 72.05, - ["CD"] = 0, - }, - [31] = { - ["X"] = 52.93, - ["Y"] = 71.06, - ["CD"] = 0, - }, - [32] = { - ["X"] = 55.42, - ["Y"] = 74.08, - ["CD"] = 0, - }, - [33] = { - ["X"] = 56.07, - ["Y"] = 74.88, - ["CD"] = 0, - }, - [34] = { - ["X"] = 56.84, - ["Y"] = 76.51, - ["CD"] = 0, - }, - [35] = { - ["X"] = 58.65, - ["Y"] = 76.39, - ["CD"] = 0, - }, - [36] = { - ["X"] = 58.57, - ["Y"] = 75.31, - ["CD"] = 0, - }, - [37] = { - ["X"] = 59.59, - ["Y"] = 74.16, - ["CD"] = 0, - }, - [38] = { - ["X"] = 60.35, - ["Y"] = 73.28, - ["CD"] = 0, - }, - [39] = { - ["X"] = 63.71, - ["Y"] = 76.36, - ["CD"] = 0, - }, - [40] = { - ["X"] = 64.29, - ["Y"] = 77.99, - ["CD"] = 0, - }, - [41] = { - ["X"] = 66.44, - ["Y"] = 80.68, - ["CD"] = 0, - }, - [42] = { - ["X"] = 65.94, - ["Y"] = 83.32, - ["CD"] = 0, - }, - [43] = { - ["X"] = 66.71, - ["Y"] = 85.68, - ["CD"] = 0, - }, - [44] = { - ["X"] = 66.43, - ["Y"] = 87.12, - ["CD"] = 0, - }, - [45] = { - ["X"] = 65.37, - ["Y"] = 88.22, - ["CD"] = 0, - }, - [46] = { - ["X"] = 64.91, - ["Y"] = 88.25, - ["CD"] = 0, - }, - [47] = { - ["X"] = 64.67, - ["Y"] = 87.32, - ["CD"] = 0, - }, - [48] = { - ["X"] = 63.61, - ["Y"] = 86.41, - ["CD"] = 0, - }, - [49] = { - ["X"] = 63.32, - ["Y"] = 84.05, - ["CD"] = 0, - }, - [50] = { - ["X"] = 61.95, - ["Y"] = 83.94, - ["CD"] = 0, - }, - [51] = { - ["X"] = 61.19, - ["Y"] = 76.71, - ["CD"] = 0, - }, - [52] = { - ["X"] = 59.54, - ["Y"] = 76.62, - ["CD"] = 0, - }, - [53] = { - ["X"] = 58.28, - ["Y"] = 75.22, - ["CD"] = 0, - }, - [54] = { - ["X"] = 68.01, - ["Y"] = 75.14, - ["CD"] = 0, - }, - [55] = { - ["X"] = 65.84, - ["Y"] = 77.38, - ["CD"] = 0, - }, - [56] = { - ["X"] = 57.15, - ["Y"] = 77.22, - ["CD"] = 0, - }, - [57] = { - ["X"] = 57.87, - ["Y"] = 71.9, - ["CD"] = 0, - }, - [58] = { - ["X"] = 59.68, - ["Y"] = 67.31, - ["CD"] = 0, - }, - [59] = { - ["X"] = 60.58, - ["Y"] = 71.85, - ["CD"] = 0, - }, - [60] = { - ["X"] = 61.97, - ["Y"] = 76.08, - ["CD"] = 0, - }, - [61] = { - ["X"] = 64.48, - ["Y"] = 67.54, - ["CD"] = 0, - }, - [62] = { - ["X"] = 51.7, - ["Y"] = 91.24, - ["CD"] = 0, - }, - [63] = { - ["X"] = 50.56, - ["Y"] = 72.37, - ["CD"] = 0, - }, - [64] = { - ["X"] = 42.67, - ["Y"] = 72.97, - ["CD"] = 0, - }, - [65] = { - ["X"] = 43.5, - ["Y"] = 76.94, - ["CD"] = 0, - }, - [66] = { - ["X"] = 45.96, - ["Y"] = 76.33, - ["CD"] = 0, - }, - [67] = { - ["X"] = 44.31, - ["Y"] = 81.03, - ["CD"] = 0, - }, - [68] = { - ["X"] = 46.76, - ["Y"] = 81.13, - ["CD"] = 0, - }, - [69] = { - ["X"] = 48.35, - ["Y"] = 78.45, - ["CD"] = 0, - }, - [70] = { - ["X"] = 45.13, - ["Y"] = 70.18, - ["CD"] = 0, - }, - [71] = { - ["X"] = 48.98, - ["Y"] = 86.21, - ["CD"] = 0, - }, - [72] = { - ["X"] = 43.79, - ["Y"] = 86.71, - ["CD"] = 0, - }, - [73] = { - ["X"] = 50.98, - ["Y"] = 82.3, - ["CD"] = 0, - }, - [74] = { - ["X"] = 51.27, - ["Y"] = 88.51, - ["CD"] = 0, - }, - [75] = { - ["X"] = 57.39, - ["Y"] = 70.12, - ["CD"] = 0, - }, - [76] = { - ["X"] = 52.47, - ["Y"] = 64.95, - ["CD"] = 0, - }, - [77] = { - ["X"] = 53.43, - ["Y"] = 51.13, - ["CD"] = 0, - }, - [78] = { - ["X"] = 60.66, - ["Y"] = 54.1, - ["CD"] = 0, - }, - [79] = { - ["X"] = 51.71, - ["Y"] = 64.2, - ["CD"] = 0, - }, - [80] = { - ["X"] = 62.26, - ["Y"] = 60.64, - ["CD"] = 0, - }, - [81] = { - ["X"] = 70.59, - ["Y"] = 51.89, - ["CD"] = 0, - }, - [82] = { - ["X"] = 66.56, - ["Y"] = 36.3, - ["CD"] = 0, - }, - [83] = { - ["X"] = 65.74, - ["Y"] = 46.08, - ["CD"] = 0, - }, - [84] = { - ["X"] = 61.47, - ["Y"] = 42.37, - ["CD"] = 0, - }, - [85] = { - ["X"] = 62.72, - ["Y"] = 33.4, - ["CD"] = 0, - }, - [86] = { - ["X"] = 45.35, - ["Y"] = 55.3, - ["CD"] = 0, - }, - [87] = { - ["X"] = 38.59, - ["Y"] = 63.67, - ["CD"] = 0, - }, - [88] = { - ["X"] = 38.92, - ["Y"] = 54.63, - ["CD"] = 0, - }, - [89] = { - ["X"] = 61.84, - ["Y"] = 85.27, - ["CD"] = 0, - }, - [90] = { - ["X"] = 60.08, - ["Y"] = 80.47, - ["CD"] = 0, - }, - [91] = { - ["X"] = 52.26, - ["Y"] = 72.07, - ["CD"] = 0, - }, - [92] = { - ["X"] = 49.99, - ["Y"] = 70.4, - ["CD"] = 0, - }, - [93] = { - ["X"] = 45.26, - ["Y"] = 67.42, - ["CD"] = 0, - }, - [94] = { - ["X"] = 42.47, - ["Y"] = 80.28, - ["CD"] = 0, - }, - [95] = { - ["X"] = 45.62, - ["Y"] = 81.42, - ["CD"] = 0, - }, - [96] = { - ["X"] = 46.8, - ["Y"] = 74.09, - ["CD"] = 0, - }, - [97] = { - ["X"] = 58.36, - ["Y"] = 92.03, - ["CD"] = 0, - }, - [98] = { - ["X"] = 55.21, - ["Y"] = 78.88, - ["CD"] = 0, - }, - [99] = { - ["X"] = 61.2, - ["Y"] = 77.36, - ["CD"] = 0, - }, - [100] = { - ["X"] = 62.36, - ["Y"] = 65.85, - ["CD"] = 0, - }, - [101] = { - ["X"] = 49.05, - ["Y"] = 65.61, - ["CD"] = 0, - }, - [102] = { - ["X"] = 56.55, - ["Y"] = 64.33, - ["CD"] = 0, - }, - [103] = { - ["X"] = 56.67, - ["Y"] = 56.33, - ["CD"] = 0, - }, - [104] = { - ["X"] = 53.25, - ["Y"] = 52.24, - ["CD"] = 0, - }, - [105] = { - ["X"] = 63.74, - ["Y"] = 50.57, - ["CD"] = 0, - }, - [106] = { - ["X"] = 67.05, - ["Y"] = 55.44, - ["CD"] = 0, - }, - [107] = { - ["X"] = 68.83, - ["Y"] = 44.28, - ["CD"] = 0, - }, - [108] = { - ["X"] = 65.9, - ["Y"] = 41.14, - ["CD"] = 0, - }, - [109] = { - ["X"] = 65.95, - ["Y"] = 37.16, - ["CD"] = 0, - }, - [110] = { - ["X"] = 60.47, - ["Y"] = 33.98, - ["CD"] = 0, - }, - [111] = { - ["X"] = 58.38, - ["Y"] = 33.52, - ["CD"] = 0, - }, - [112] = { - ["X"] = 56.33, - ["Y"] = 44.4, - ["CD"] = 0, - }, - [113] = { - ["X"] = 56.06, - ["Y"] = 82.86, - ["CD"] = 0, - }, - [114] = { - ["X"] = 55.3, - ["Y"] = 55.78, - ["CD"] = 0, - }, - [115] = { - ["X"] = 55.56, - ["Y"] = 50.91, - ["CD"] = 0, - }, - [116] = { - ["X"] = 46.27, - ["Y"] = 54.85, - ["CD"] = 0, - }, - [117] = { - ["X"] = 37.51, - ["Y"] = 56.24, - ["CD"] = 0, - }, - [118] = { - ["X"] = 38.25, - ["Y"] = 57.4, - ["CD"] = 0, - }, - [119] = { - ["X"] = 41.46, - ["Y"] = 52.33, - ["CD"] = 0, - }, - [120] = { - ["X"] = 38.87, - ["Y"] = 61.1, - ["CD"] = 0, - }, - [121] = { - ["X"] = 47.72, - ["Y"] = 54.92, - ["CD"] = 0, - }, - [122] = { - ["X"] = 50.9, - ["Y"] = 43.4, - ["CD"] = 0, - }, - [123] = { - ["X"] = 46.52, - ["Y"] = 36.21, - ["CD"] = 0, - }, - [124] = { - ["X"] = 60.77, - ["Y"] = 63.01, - ["CD"] = 0, - }, - [125] = { - ["X"] = 58.67, - ["Y"] = 70.62, - ["CD"] = 0, - }, - [126] = { - ["X"] = 65.76, - ["Y"] = 68.15, - ["CD"] = 0, - }, - [127] = { - ["X"] = 62.87, - ["Y"] = 83.35, - ["CD"] = 0, - }, - [128] = { - ["X"] = 57.4, - ["Y"] = 88.53, - ["CD"] = 0, - }, - [129] = { - ["X"] = 56.11, - ["Y"] = 85.88, - ["CD"] = 0, - }, - [130] = { - ["X"] = 54.6, - ["Y"] = 83.39, - ["CD"] = 0, - }, - [131] = { - ["X"] = 56.05, - ["Y"] = 79.19, - ["CD"] = 0, - }, - }, - --Suramar / Starlight Rose - [1033] = { - [1] = { - ["X"] = 39.81, - ["Y"] = 55.75, - ["CD"] = 0, - }, - [2] = { - ["X"] = 35.72, - ["Y"] = 44.58, - ["CD"] = 0, - }, - [3] = { - ["X"] = 42.48, - ["Y"] = 62.87, - ["CD"] = 0, - }, - [4] = { - ["X"] = 36.77, - ["Y"] = 52.88, - ["CD"] = 0, - }, - [5] = { - ["X"] = 39.05, - ["Y"] = 52.08, - ["CD"] = 0, - }, - [6] = { - ["X"] = 33.14, - ["Y"] = 42.5, - ["CD"] = 0, - }, - [7] = { - ["X"] = 28.77, - ["Y"] = 41.26, - ["CD"] = 0, - }, - [8] = { - ["X"] = 31.6, - ["Y"] = 36.23, - ["CD"] = 0, - }, - [9] = { - ["X"] = 30.9, - ["Y"] = 38.04, - ["CD"] = 0, - }, - [10] = { - ["X"] = 31.8, - ["Y"] = 38.92, - ["CD"] = 0, - }, - [11] = { - ["X"] = 34.05, - ["Y"] = 38.76, - ["CD"] = 0, - }, - [12] = { - ["X"] = 36.44, - ["Y"] = 42.6, - ["CD"] = 0, - }, - [13] = { - ["X"] = 35.2, - ["Y"] = 38.64, - ["CD"] = 0, - }, - [14] = { - ["X"] = 35.24, - ["Y"] = 43, - ["CD"] = 0, - }, - [15] = { - ["X"] = 47.15, - ["Y"] = 41.25, - ["CD"] = 0, - }, - [16] = { - ["X"] = 44.86, - ["Y"] = 35.75, - ["CD"] = 0, - }, - [17] = { - ["X"] = 44.5, - ["Y"] = 32.66, - ["CD"] = 0, - }, - [18] = { - ["X"] = 47.89, - ["Y"] = 30.93, - ["CD"] = 0, - }, - [19] = { - ["X"] = 45.14, - ["Y"] = 26.9, - ["CD"] = 0, - }, - [20] = { - ["X"] = 42.73, - ["Y"] = 27.39, - ["CD"] = 0, - }, - [21] = { - ["X"] = 40.94, - ["Y"] = 29.97, - ["CD"] = 0, - }, - [22] = { - ["X"] = 40.74, - ["Y"] = 33.28, - ["CD"] = 0, - }, - [23] = { - ["X"] = 41.44, - ["Y"] = 24.59, - ["CD"] = 0, - }, - [24] = { - ["X"] = 39.62, - ["Y"] = 26.39, - ["CD"] = 0, - }, - [25] = { - ["X"] = 38.91, - ["Y"] = 24.83, - ["CD"] = 0, - }, - [26] = { - ["X"] = 37.09, - ["Y"] = 29.05, - ["CD"] = 0, - }, - [27] = { - ["X"] = 41.13, - ["Y"] = 37.95, - ["CD"] = 0, - }, - [28] = { - ["X"] = 41.61, - ["Y"] = 40.34, - ["CD"] = 0, - }, - [29] = { - ["X"] = 44.23, - ["Y"] = 39.51, - ["CD"] = 0, - }, - [30] = { - ["X"] = 43.5, - ["Y"] = 50.87, - ["CD"] = 0, - }, - [31] = { - ["X"] = 37.4, - ["Y"] = 62.25, - ["CD"] = 0, - }, - [32] = { - ["X"] = 36.04, - ["Y"] = 87.52, - ["CD"] = 0, - }, - [33] = { - ["X"] = 35.11, - ["Y"] = 92.37, - ["CD"] = 0, - }, - [34] = { - ["X"] = 32.33, - ["Y"] = 89.97, - ["CD"] = 0, - }, - [35] = { - ["X"] = 33.84, - ["Y"] = 50.23, - ["CD"] = 0, - }, - [36] = { - ["X"] = 42.8, - ["Y"] = 73.43, - ["CD"] = 0, - }, - [37] = { - ["X"] = 38.64, - ["Y"] = 62.53, - ["CD"] = 0, - }, - [38] = { - ["X"] = 39.08, - ["Y"] = 56.5, - ["CD"] = 0, - }, - [39] = { - ["X"] = 32.43, - ["Y"] = 50.36, - ["CD"] = 0, - }, - [40] = { - ["X"] = 33.08, - ["Y"] = 49.61, - ["CD"] = 0, - }, - [41] = { - ["X"] = 35.52, - ["Y"] = 51.77, - ["CD"] = 0, - }, - [42] = { - ["X"] = 38.31, - ["Y"] = 52.42, - ["CD"] = 0, - }, - [43] = { - ["X"] = 45.6, - ["Y"] = 50.48, - ["CD"] = 0, - }, - [44] = { - ["X"] = 61.95, - ["Y"] = 44.86, - ["CD"] = 0, - }, - [45] = { - ["X"] = 63.5, - ["Y"] = 46.54, - ["CD"] = 0, - }, - [46] = { - ["X"] = 58.6, - ["Y"] = 42.56, - ["CD"] = 0, - }, - [47] = { - ["X"] = 60.02, - ["Y"] = 48.16, - ["CD"] = 0, - }, - [48] = { - ["X"] = 59.87, - ["Y"] = 45.18, - ["CD"] = 0, - }, - [49] = { - ["X"] = 62.63, - ["Y"] = 41.77, - ["CD"] = 0, - }, - [50] = { - ["X"] = 56.64, - ["Y"] = 47.66, - ["CD"] = 0, - }, - [51] = { - ["X"] = 47.39, - ["Y"] = 52.94, - ["CD"] = 0, - }, - [52] = { - ["X"] = 44.57, - ["Y"] = 49.65, - ["CD"] = 0, - }, - [53] = { - ["X"] = 42.04, - ["Y"] = 48.91, - ["CD"] = 0, - }, - [54] = { - ["X"] = 39.9, - ["Y"] = 52.72, - ["CD"] = 0, - }, - [55] = { - ["X"] = 37.97, - ["Y"] = 54.37, - ["CD"] = 0, - }, - [56] = { - ["X"] = 34.36, - ["Y"] = 51.55, - ["CD"] = 0, - }, - [57] = { - ["X"] = 33.41, - ["Y"] = 47.94, - ["CD"] = 0, - }, - [58] = { - ["X"] = 33.44, - ["Y"] = 44.86, - ["CD"] = 0, - }, - [59] = { - ["X"] = 31.25, - ["Y"] = 9.46, - ["CD"] = 0, - }, - [60] = { - ["X"] = 69.25, - ["Y"] = 61.49, - ["CD"] = 0, - }, - [61] = { - ["X"] = 58.41, - ["Y"] = 41.84, - ["CD"] = 0, - }, - [62] = { - ["X"] = 65.12, - ["Y"] = 38.6, - ["CD"] = 0, - }, - [63] = { - ["X"] = 59.11, - ["Y"] = 49.07, - ["CD"] = 0, - }, - [64] = { - ["X"] = 56.77, - ["Y"] = 45.01, - ["CD"] = 0, - }, - [65] = { - ["X"] = 56.43, - ["Y"] = 49.48, - ["CD"] = 0, - }, - [66] = { - ["X"] = 33.54, - ["Y"] = 51.74, - ["CD"] = 0, - }, - [67] = { - ["X"] = 47.33, - ["Y"] = 28.88, - ["CD"] = 0, - }, - [68] = { - ["X"] = 43.34, - ["Y"] = 24.73, - ["CD"] = 0, - }, - [69] = { - ["X"] = 42.73, - ["Y"] = 24.82, - ["CD"] = 0, - }, - [70] = { - ["X"] = 40.48, - ["Y"] = 16.13, - ["CD"] = 0, - }, - [71] = { - ["X"] = 40.25, - ["Y"] = 30.54, - ["CD"] = 0, - }, - [72] = { - ["X"] = 40.13, - ["Y"] = 34.03, - ["CD"] = 0, - }, - [73] = { - ["X"] = 40.77, - ["Y"] = 38.37, - ["CD"] = 0, - }, - [74] = { - ["X"] = 39.24, - ["Y"] = 40.02, - ["CD"] = 0, - }, - [75] = { - ["X"] = 41.77, - ["Y"] = 41.49, - ["CD"] = 0, - }, - [76] = { - ["X"] = 25.56, - ["Y"] = 34.6, - ["CD"] = 0, - }, - [77] = { - ["X"] = 20.75, - ["Y"] = 31, - ["CD"] = 0, - }, - [78] = { - ["X"] = 20.51, - ["Y"] = 32.3, - ["CD"] = 0, - }, - [79] = { - ["X"] = 18.49, - ["Y"] = 32.63, - ["CD"] = 0, - }, - [80] = { - ["X"] = 19.37, - ["Y"] = 34.52, - ["CD"] = 0, - }, - [81] = { - ["X"] = 17.33, - ["Y"] = 36.15, - ["CD"] = 0, - }, - [82] = { - ["X"] = 17.71, - ["Y"] = 39.94, - ["CD"] = 0, - }, - [83] = { - ["X"] = 16.38, - ["Y"] = 42.46, - ["CD"] = 0, - }, - [84] = { - ["X"] = 18.42, - ["Y"] = 41.87, - ["CD"] = 0, - }, - [85] = { - ["X"] = 19.6, - ["Y"] = 38.5, - ["CD"] = 0, - }, - [86] = { - ["X"] = 22.1, - ["Y"] = 36.48, - ["CD"] = 0, - }, - [87] = { - ["X"] = 27.33, - ["Y"] = 39.01, - ["CD"] = 0, - }, - [88] = { - ["X"] = 26.78, - ["Y"] = 40.82, - ["CD"] = 0, - }, - [89] = { - ["X"] = 26.56, - ["Y"] = 45.72, - ["CD"] = 0, - }, - [90] = { - ["X"] = 24.46, - ["Y"] = 48.15, - ["CD"] = 0, - }, - [91] = { - ["X"] = 32.32, - ["Y"] = 47.09, - ["CD"] = 0, - }, - [92] = { - ["X"] = 29.16, - ["Y"] = 44.53, - ["CD"] = 0, - }, - [93] = { - ["X"] = 30, - ["Y"] = 49.89, - ["CD"] = 0, - }, - [94] = { - ["X"] = 28.39, - ["Y"] = 40.18, - ["CD"] = 0, - }, - [95] = { - ["X"] = 25.95, - ["Y"] = 45.19, - ["CD"] = 0, - }, - [96] = { - ["X"] = 26.26, - ["Y"] = 39.38, - ["CD"] = 0, - }, - [97] = { - ["X"] = 25.49, - ["Y"] = 38.93, - ["CD"] = 0, - }, - [98] = { - ["X"] = 23.15, - ["Y"] = 37.72, - ["CD"] = 0, - }, - [99] = { - ["X"] = 16.41, - ["Y"] = 23.78, - ["CD"] = 0, - }, - [100] = { - ["X"] = 49, - ["Y"] = 41.35, - ["CD"] = 0, - }, - [101] = { - ["X"] = 49.79, - ["Y"] = 40.3, - ["CD"] = 0, - }, - [102] = { - ["X"] = 58.99, - ["Y"] = 42.05, - ["CD"] = 0, - }, - [103] = { - ["X"] = 60.11, - ["Y"] = 46.19, - ["CD"] = 0, - }, - [104] = { - ["X"] = 64.2, - ["Y"] = 38.74, - ["CD"] = 0, - }, - [105] = { - ["X"] = 66.39, - ["Y"] = 45.24, - ["CD"] = 0, - }, - [106] = { - ["X"] = 65.32, - ["Y"] = 46.64, - ["CD"] = 0, - }, - [107] = { - ["X"] = 64.5, - ["Y"] = 54.5, - ["CD"] = 0, - }, - [108] = { - ["X"] = 69.71, - ["Y"] = 59.98, - ["CD"] = 0, - }, - [109] = { - ["X"] = 19.07, - ["Y"] = 37.54, - ["CD"] = 0, - }, - [110] = { - ["X"] = 17.42, - ["Y"] = 32.72, - ["CD"] = 0, - }, - [111] = { - ["X"] = 17.21, - ["Y"] = 41.12, - ["CD"] = 0, - }, - [112] = { - ["X"] = 16.86, - ["Y"] = 43.6, - ["CD"] = 0, - }, - [113] = { - ["X"] = 16.26, - ["Y"] = 48.14, - ["CD"] = 0, - }, - [114] = { - ["X"] = 19.16, - ["Y"] = 48.74, - ["CD"] = 0, - }, - [115] = { - ["X"] = 22.39, - ["Y"] = 51.94, - ["CD"] = 0, - }, - [116] = { - ["X"] = 29.46, - ["Y"] = 92.26, - ["CD"] = 0, - }, - [117] = { - ["X"] = 39.03, - ["Y"] = 83.7, - ["CD"] = 0, - }, - [118] = { - ["X"] = 39.34, - ["Y"] = 86.92, - ["CD"] = 0, - }, - [119] = { - ["X"] = 36.92, - ["Y"] = 89.37, - ["CD"] = 0, - }, - [120] = { - ["X"] = 33.51, - ["Y"] = 90.03, - ["CD"] = 0, - }, - [121] = { - ["X"] = 32.72, - ["Y"] = 91.79, - ["CD"] = 0, - }, - [122] = { - ["X"] = 31.4, - ["Y"] = 53.54, - ["CD"] = 0, - }, - [123] = { - ["X"] = 41.7, - ["Y"] = 77.86, - ["CD"] = 0, - }, - [124] = { - ["X"] = 41.23, - ["Y"] = 65.76, - ["CD"] = 0, - }, - [125] = { - ["X"] = 42.32, - ["Y"] = 49.6, - ["CD"] = 0, - }, - [126] = { - ["X"] = 18.77, - ["Y"] = 21.58, - ["CD"] = 0, - }, - [127] = { - ["X"] = 31.01, - ["Y"] = 27.5, - ["CD"] = 0, - }, - [128] = { - ["X"] = 37.56, - ["Y"] = 28.08, - ["CD"] = 0, - }, - [129] = { - ["X"] = 39.7, - ["Y"] = 14.87, - ["CD"] = 0, - }, - [130] = { - ["X"] = 38.42, - ["Y"] = 14.58, - ["CD"] = 0, - }, - [131] = { - ["X"] = 30.29, - ["Y"] = 8.71, - ["CD"] = 0, - }, - [132] = { - ["X"] = 29.37, - ["Y"] = 14.46, - ["CD"] = 0, - }, - [133] = { - ["X"] = 30.56, - ["Y"] = 14.7, - ["CD"] = 0, - }, - [134] = { - ["X"] = 32.07, - ["Y"] = 17.45, - ["CD"] = 0, - }, - [135] = { - ["X"] = 32.33, - ["Y"] = 19.52, - ["CD"] = 0, - }, - [136] = { - ["X"] = 33.99, - ["Y"] = 18.93, - ["CD"] = 0, - }, - [137] = { - ["X"] = 33.25, - ["Y"] = 14.84, - ["CD"] = 0, - }, - [138] = { - ["X"] = 35, - ["Y"] = 13.71, - ["CD"] = 0, - }, - [139] = { - ["X"] = 35.59, - ["Y"] = 18.08, - ["CD"] = 0, - }, - [140] = { - ["X"] = 35.61, - ["Y"] = 21.63, - ["CD"] = 0, - }, - [141] = { - ["X"] = 38.83, - ["Y"] = 26.26, - ["CD"] = 0, - }, - [142] = { - ["X"] = 41.23, - ["Y"] = 25.46, - ["CD"] = 0, - }, - [143] = { - ["X"] = 57.44, - ["Y"] = 45.46, - ["CD"] = 0, - }, - [144] = { - ["X"] = 68.31, - ["Y"] = 58.27, - ["CD"] = 0, - }, - [145] = { - ["X"] = 63.96, - ["Y"] = 50.18, - ["CD"] = 0, - }, - [146] = { - ["X"] = 64.22, - ["Y"] = 47.41, - ["CD"] = 0, - }, - [147] = { - ["X"] = 66.89, - ["Y"] = 42.57, - ["CD"] = 0, - }, - [148] = { - ["X"] = 83.41, - ["Y"] = 58.57, - ["CD"] = 0, - }, - [149] = { - ["X"] = 70.07, - ["Y"] = 61.17, - ["CD"] = 0, - }, - [150] = { - ["X"] = 70.15, - ["Y"] = 64.11, - ["CD"] = 0, - }, - [151] = { - ["X"] = 61.37, - ["Y"] = 51.89, - ["CD"] = 0, - }, - [152] = { - ["X"] = 32.72, - ["Y"] = 43.86, - ["CD"] = 0, - }, - [153] = { - ["X"] = 26.37, - ["Y"] = 46.84, - ["CD"] = 0, - }, - [154] = { - ["X"] = 24.62, - ["Y"] = 44.43, - ["CD"] = 0, - }, - [155] = { - ["X"] = 23.77, - ["Y"] = 47.26, - ["CD"] = 0, - }, - [156] = { - ["X"] = 20.37, - ["Y"] = 45.63, - ["CD"] = 0, - }, - [157] = { - ["X"] = 20.94, - ["Y"] = 52.22, - ["CD"] = 0, - }, - [158] = { - ["X"] = 22.54, - ["Y"] = 60.01, - ["CD"] = 0, - }, - [159] = { - ["X"] = 26.15, - ["Y"] = 48.01, - ["CD"] = 0, - }, - [160] = { - ["X"] = 35.27, - ["Y"] = 49.54, - ["CD"] = 0, - }, - [161] = { - ["X"] = 56.75, - ["Y"] = 43.49, - ["CD"] = 0, - }, - [162] = { - ["X"] = 45.91, - ["Y"] = 39.37, - ["CD"] = 0, - }, - [163] = { - ["X"] = 37.77, - ["Y"] = 36.78, - ["CD"] = 0, - }, - [164] = { - ["X"] = 38.42, - ["Y"] = 40.33, - ["CD"] = 0, - }, - [165] = { - ["X"] = 36.86, - ["Y"] = 40.44, - ["CD"] = 0, - }, - [166] = { - ["X"] = 40.51, - ["Y"] = 49.16, - ["CD"] = 0, - }, - [167] = { - ["X"] = 28.02, - ["Y"] = 37.01, - ["CD"] = 0, - }, - [168] = { - ["X"] = 30.02, - ["Y"] = 29.11, - ["CD"] = 0, - }, - [169] = { - ["X"] = 25.06, - ["Y"] = 34.96, - ["CD"] = 0, - }, - [170] = { - ["X"] = 32.03, - ["Y"] = 34.06, - ["CD"] = 0, - }, - [171] = { - ["X"] = 19.5, - ["Y"] = 20.92, - ["CD"] = 0, - }, - [172] = { - ["X"] = 19.89, - ["Y"] = 22.09, - ["CD"] = 0, - }, - [173] = { - ["X"] = 17.85, - ["Y"] = 23.72, - ["CD"] = 0, - }, - [174] = { - ["X"] = 27.79, - ["Y"] = 31.22, - ["CD"] = 0, - }, - [175] = { - ["X"] = 28.22, - ["Y"] = 29.91, - ["CD"] = 0, - }, - [176] = { - ["X"] = 30.4, - ["Y"] = 30.73, - ["CD"] = 0, - }, - [177] = { - ["X"] = 30.98, - ["Y"] = 29.01, - ["CD"] = 0, - }, - [178] = { - ["X"] = 33.48, - ["Y"] = 24.88, - ["CD"] = 0, - }, - [179] = { - ["X"] = 29.81, - ["Y"] = 26.02, - ["CD"] = 0, - }, - [180] = { - ["X"] = 31.68, - ["Y"] = 23.23, - ["CD"] = 0, - }, - [181] = { - ["X"] = 29.51, - ["Y"] = 34.53, - ["CD"] = 0, - }, - [182] = { - ["X"] = 30.87, - ["Y"] = 31.18, - ["CD"] = 0, - }, - [183] = { - ["X"] = 18.62, - ["Y"] = 39.57, - ["CD"] = 0, - }, - [184] = { - ["X"] = 16.63, - ["Y"] = 40.97, - ["CD"] = 0, - }, - [185] = { - ["X"] = 65.55, - ["Y"] = 41.61, - ["CD"] = 0, - }, - [186] = { - ["X"] = 39.76, - ["Y"] = 81.81, - ["CD"] = 0, - }, - [187] = { - ["X"] = 39.61, - ["Y"] = 82.6, - ["CD"] = 0, - }, - [188] = { - ["X"] = 34.98, - ["Y"] = 60.06, - ["CD"] = 0, - }, - [189] = { - ["X"] = 28.25, - ["Y"] = 38.53, - ["CD"] = 0, - }, - [190] = { - ["X"] = 27.08, - ["Y"] = 36.05, - ["CD"] = 0, - }, - [191] = { - ["X"] = 26.86, - ["Y"] = 33.37, - ["CD"] = 0, - }, - [192] = { - ["X"] = 23.52, - ["Y"] = 29.91, - ["CD"] = 0, - }, - [193] = { - ["X"] = 22.11, - ["Y"] = 31.32, - ["CD"] = 0, - }, - [194] = { - ["X"] = 19.89, - ["Y"] = 29.56, - ["CD"] = 0, - }, - [195] = { - ["X"] = 19.46, - ["Y"] = 24.71, - ["CD"] = 0, - }, - [196] = { - ["X"] = 18.28, - ["Y"] = 23.88, - ["CD"] = 0, - }, - [197] = { - ["X"] = 18.65, - ["Y"] = 22.03, - ["CD"] = 0, - }, - [198] = { - ["X"] = 18.44, - ["Y"] = 29.37, - ["CD"] = 0, - }, - [199] = { - ["X"] = 18.8, - ["Y"] = 34.21, - ["CD"] = 0, - }, - [200] = { - ["X"] = 16.54, - ["Y"] = 36.58, - ["CD"] = 0, - }, - [201] = { - ["X"] = 15.1, - ["Y"] = 37.18, - ["CD"] = 0, - }, - [202] = { - ["X"] = 15.82, - ["Y"] = 43.16, - ["CD"] = 0, - }, - [203] = { - ["X"] = 17.16, - ["Y"] = 44.35, - ["CD"] = 0, - }, - [204] = { - ["X"] = 16.96, - ["Y"] = 46.53, - ["CD"] = 0, - }, - [205] = { - ["X"] = 16.74, - ["Y"] = 47.66, - ["CD"] = 0, - }, - [206] = { - ["X"] = 17.09, - ["Y"] = 49.29, - ["CD"] = 0, - }, - [207] = { - ["X"] = 19.91, - ["Y"] = 54.45, - ["CD"] = 0, - }, - [208] = { - ["X"] = 22.08, - ["Y"] = 56.33, - ["CD"] = 0, - }, - [209] = { - ["X"] = 25.63, - ["Y"] = 52.48, - ["CD"] = 0, - }, - [210] = { - ["X"] = 30.72, - ["Y"] = 50.96, - ["CD"] = 0, - }, - [211] = { - ["X"] = 30.33, - ["Y"] = 47.3, - ["CD"] = 0, - }, - [212] = { - ["X"] = 48.81, - ["Y"] = 47.54, - ["CD"] = 0, - }, - [213] = { - ["X"] = 56.22, - ["Y"] = 48.62, - ["CD"] = 0, - }, - [214] = { - ["X"] = 64.92, - ["Y"] = 49.18, - ["CD"] = 0, - }, - [215] = { - ["X"] = 61.44, - ["Y"] = 50.95, - ["CD"] = 0, - }, - [216] = { - ["X"] = 36.79, - ["Y"] = 54.66, - ["CD"] = 0, - }, - [217] = { - ["X"] = 35.5, - ["Y"] = 50.36, - ["CD"] = 0, - }, - [218] = { - ["X"] = 39.32, - ["Y"] = 54.43, - ["CD"] = 0, - }, - [219] = { - ["X"] = 40.41, - ["Y"] = 73, - ["CD"] = 0, - }, - [220] = { - ["X"] = 41.04, - ["Y"] = 81.46, - ["CD"] = 0, - }, - [221] = { - ["X"] = 39.95, - ["Y"] = 84.73, - ["CD"] = 0, - }, - [222] = { - ["X"] = 38.4, - ["Y"] = 85.72, - ["CD"] = 0, - }, - [223] = { - ["X"] = 36.71, - ["Y"] = 59.7, - ["CD"] = 0, - }, - [224] = { - ["X"] = 34.82, - ["Y"] = 56.58, - ["CD"] = 0, - }, - [225] = { - ["X"] = 33.71, - ["Y"] = 59.85, - ["CD"] = 0, - }, - [226] = { - ["X"] = 34.06, - ["Y"] = 55.75, - ["CD"] = 0, - }, - [227] = { - ["X"] = 34.31, - ["Y"] = 57.33, - ["CD"] = 0, - }, - [228] = { - ["X"] = 37.68, - ["Y"] = 62.77, - ["CD"] = 0, - }, - [229] = { - ["X"] = 35.41, - ["Y"] = 54.68, - ["CD"] = 0, - }, - [230] = { - ["X"] = 37.52, - ["Y"] = 59.08, - ["CD"] = 0, - }, - [231] = { - ["X"] = 43.46, - ["Y"] = 60.61, - ["CD"] = 0, - }, - [232] = { - ["X"] = 35.76, - ["Y"] = 60.63, - ["CD"] = 0, - }, - [233] = { - ["X"] = 34.78, - ["Y"] = 61.94, - ["CD"] = 0, - }, - [234] = { - ["X"] = 45.27, - ["Y"] = 56.2, - ["CD"] = 0, - }, - [235] = { - ["X"] = 34.17, - ["Y"] = 48.76, - ["CD"] = 0, - }, - [236] = { - ["X"] = 43.64, - ["Y"] = 48.63, - ["CD"] = 0, - }, - [237] = { - ["X"] = 61.44, - ["Y"] = 41.76, - ["CD"] = 0, - }, - [238] = { - ["X"] = 63.63, - ["Y"] = 45.02, - ["CD"] = 0, - }, - [239] = { - ["X"] = 65.11, - ["Y"] = 50.4, - ["CD"] = 0, - }, - [240] = { - ["X"] = 65.37, - ["Y"] = 48.57, - ["CD"] = 0, - }, - [241] = { - ["X"] = 81.14, - ["Y"] = 56.47, - ["CD"] = 0, - }, - [242] = { - ["X"] = 65.83, - ["Y"] = 55.28, - ["CD"] = 0, - }, - [243] = { - ["X"] = 66.85, - ["Y"] = 54.65, - ["CD"] = 0, - }, - [244] = { - ["X"] = 69.17, - ["Y"] = 58.17, - ["CD"] = 0, - }, - [245] = { - ["X"] = 59.14, - ["Y"] = 47.81, - ["CD"] = 0, - }, - [246] = { - ["X"] = 48.38, - ["Y"] = 49.33, - ["CD"] = 0, - }, - [247] = { - ["X"] = 39.76, - ["Y"] = 57.54, - ["CD"] = 0, - }, - [248] = { - ["X"] = 36.28, - ["Y"] = 53.87, - ["CD"] = 0, - }, - [249] = { - ["X"] = 31.05, - ["Y"] = 47.28, - ["CD"] = 0, - }, - [250] = { - ["X"] = 31.17, - ["Y"] = 38.53, - ["CD"] = 0, - }, - [251] = { - ["X"] = 31.24, - ["Y"] = 36.76, - ["CD"] = 0, - }, - [252] = { - ["X"] = 32.9, - ["Y"] = 36.99, - ["CD"] = 0, - }, - [253] = { - ["X"] = 36.43, - ["Y"] = 43.67, - ["CD"] = 0, - }, - [254] = { - ["X"] = 40.71, - ["Y"] = 41.71, - ["CD"] = 0, - }, - [255] = { - ["X"] = 47.22, - ["Y"] = 39.89, - ["CD"] = 0, - }, - [256] = { - ["X"] = 46.02, - ["Y"] = 39.82, - ["CD"] = 0, - }, - [257] = { - ["X"] = 51.52, - ["Y"] = 39.51, - ["CD"] = 0, - }, - [258] = { - ["X"] = 47.28, - ["Y"] = 31.95, - ["CD"] = 0, - }, - [259] = { - ["X"] = 46.79, - ["Y"] = 29.6, - ["CD"] = 0, - }, - [260] = { - ["X"] = 49.21, - ["Y"] = 35.3, - ["CD"] = 0, - }, - [261] = { - ["X"] = 46.79, - ["Y"] = 28.31, - ["CD"] = 0, - }, - [262] = { - ["X"] = 47.03, - ["Y"] = 32.84, - ["CD"] = 0, - }, - [263] = { - ["X"] = 44.54, - ["Y"] = 26.85, - ["CD"] = 0, - }, - [264] = { - ["X"] = 34.55, - ["Y"] = 42.86, - ["CD"] = 0, - }, - [265] = { - ["X"] = 32.17, - ["Y"] = 42.16, - ["CD"] = 0, - }, - [266] = { - ["X"] = 29.3, - ["Y"] = 38.43, - ["CD"] = 0, - }, - [267] = { - ["X"] = 28.53, - ["Y"] = 35.72, - ["CD"] = 0, - }, - [268] = { - ["X"] = 26, - ["Y"] = 36.58, - ["CD"] = 0, - }, - [269] = { - ["X"] = 22.09, - ["Y"] = 33.07, - ["CD"] = 0, - }, - [270] = { - ["X"] = 19.48, - ["Y"] = 39.91, - ["CD"] = 0, - }, - [271] = { - ["X"] = 23.65, - ["Y"] = 39.58, - ["CD"] = 0, - }, - [272] = { - ["X"] = 26.73, - ["Y"] = 70.09, - ["CD"] = 0, - }, - [273] = { - ["X"] = 26.47, - ["Y"] = 23.31, - ["CD"] = 0, - }, - [274] = { - ["X"] = 26.75, - ["Y"] = 25.15, - ["CD"] = 0, - }, - [275] = { - ["X"] = 17.62, - ["Y"] = 23.05, - ["CD"] = 0, - }, - [276] = { - ["X"] = 21.23, - ["Y"] = 20.19, - ["CD"] = 0, - }, - [277] = { - ["X"] = 18.05, - ["Y"] = 27.9, - ["CD"] = 0, - }, - [278] = { - ["X"] = 24.23, - ["Y"] = 33.84, - ["CD"] = 0, - }, - [279] = { - ["X"] = 28.11, - ["Y"] = 32.96, - ["CD"] = 0, - }, - [280] = { - ["X"] = 31.04, - ["Y"] = 32.91, - ["CD"] = 0, - }, - [281] = { - ["X"] = 31.01, - ["Y"] = 33.51, - ["CD"] = 0, - }, - [282] = { - ["X"] = 30.66, - ["Y"] = 33.03, - ["CD"] = 0, - }, - [283] = { - ["X"] = 35.73, - ["Y"] = 28.25, - ["CD"] = 0, - }, - [284] = { - ["X"] = 36.92, - ["Y"] = 25.87, - ["CD"] = 0, - }, - [285] = { - ["X"] = 37.87, - ["Y"] = 25.92, - ["CD"] = 0, - }, - [286] = { - ["X"] = 40.23, - ["Y"] = 24.81, - ["CD"] = 0, - }, - [287] = { - ["X"] = 26.06, - ["Y"] = 37.05, - ["CD"] = 0, - }, - [288] = { - ["X"] = 59.27, - ["Y"] = 46.57, - ["CD"] = 0, - }, - [289] = { - ["X"] = 60.04, - ["Y"] = 43.43, - ["CD"] = 0, - }, - [290] = { - ["X"] = 60.17, - ["Y"] = 40.92, - ["CD"] = 0, - }, - [291] = { - ["X"] = 34.94, - ["Y"] = 44.87, - ["CD"] = 0, - }, - [292] = { - ["X"] = 62.57, - ["Y"] = 50.61, - ["CD"] = 0, - }, - [293] = { - ["X"] = 64.35, - ["Y"] = 42.6, - ["CD"] = 0, - }, - [294] = { - ["X"] = 59.11, - ["Y"] = 50.7, - ["CD"] = 0, - }, - [295] = { - ["X"] = 39.97, - ["Y"] = 54.42, - ["CD"] = 0, - }, - [296] = { - ["X"] = 33.09, - ["Y"] = 46.12, - ["CD"] = 0, - }, - [297] = { - ["X"] = 33.06, - ["Y"] = 48.52, - ["CD"] = 0, - }, - [298] = { - ["X"] = 28.8, - ["Y"] = 38.56, - ["CD"] = 0, - }, - [299] = { - ["X"] = 29.06, - ["Y"] = 33.31, - ["CD"] = 0, - }, - [300] = { - ["X"] = 18.27, - ["Y"] = 40.57, - ["CD"] = 0, - }, - [301] = { - ["X"] = 22.74, - ["Y"] = 43.77, - ["CD"] = 0, - }, - [302] = { - ["X"] = 24.63, - ["Y"] = 56.49, - ["CD"] = 0, - }, - [303] = { - ["X"] = 26.8, - ["Y"] = 69.62, - ["CD"] = 0, - }, - [304] = { - ["X"] = 20.4, - ["Y"] = 43.91, - ["CD"] = 0, - }, - [305] = { - ["X"] = 22.81, - ["Y"] = 48.63, - ["CD"] = 0, - }, - [306] = { - ["X"] = 24.55, - ["Y"] = 46.05, - ["CD"] = 0, - }, - [307] = { - ["X"] = 23.59, - ["Y"] = 44.45, - ["CD"] = 0, - }, - [308] = { - ["X"] = 24.7, - ["Y"] = 46.9, - ["CD"] = 0, - }, - [309] = { - ["X"] = 25.91, - ["Y"] = 44.49, - ["CD"] = 0, - }, - [310] = { - ["X"] = 28.25, - ["Y"] = 46.15, - ["CD"] = 0, - }, - [311] = { - ["X"] = 21.38, - ["Y"] = 25.51, - ["CD"] = 0, - }, - [312] = { - ["X"] = 21.21, - ["Y"] = 30.56, - ["CD"] = 0, - }, - [313] = { - ["X"] = 18.91, - ["Y"] = 25.55, - ["CD"] = 0, - }, - [314] = { - ["X"] = 18.42, - ["Y"] = 23.05, - ["CD"] = 0, - }, - [315] = { - ["X"] = 17.12, - ["Y"] = 26.35, - ["CD"] = 0, - }, - [316] = { - ["X"] = 18.92, - ["Y"] = 22.36, - ["CD"] = 0, - }, - [317] = { - ["X"] = 17.04, - ["Y"] = 23.1, - ["CD"] = 0, - }, - [318] = { - ["X"] = 16.4, - ["Y"] = 21.91, - ["CD"] = 0, - }, - [319] = { - ["X"] = 18.47, - ["Y"] = 20.31, - ["CD"] = 0, - }, - [320] = { - ["X"] = 20.21, - ["Y"] = 21.06, - ["CD"] = 0, - }, - [321] = { - ["X"] = 20.67, - ["Y"] = 28.36, - ["CD"] = 0, - }, - [322] = { - ["X"] = 24.44, - ["Y"] = 34.21, - ["CD"] = 0, - }, - [323] = { - ["X"] = 25.18, - ["Y"] = 28.28, - ["CD"] = 0, - }, - [324] = { - ["X"] = 25.8, - ["Y"] = 25.07, - ["CD"] = 0, - }, - [325] = { - ["X"] = 27.32, - ["Y"] = 22.42, - ["CD"] = 0, - }, - [326] = { - ["X"] = 26.64, - ["Y"] = 18.05, - ["CD"] = 0, - }, - [327] = { - ["X"] = 30.89, - ["Y"] = 16.02, - ["CD"] = 0, - }, - [328] = { - ["X"] = 31.63, - ["Y"] = 16.56, - ["CD"] = 0, - }, - [329] = { - ["X"] = 33.53, - ["Y"] = 20.08, - ["CD"] = 0, - }, - [330] = { - ["X"] = 32.27, - ["Y"] = 22.89, - ["CD"] = 0, - }, - [331] = { - ["X"] = 30.12, - ["Y"] = 22.36, - ["CD"] = 0, - }, - [332] = { - ["X"] = 34.88, - ["Y"] = 19.76, - ["CD"] = 0, - }, - [333] = { - ["X"] = 35.22, - ["Y"] = 18.59, - ["CD"] = 0, - }, - [334] = { - ["X"] = 30, - ["Y"] = 13.89, - ["CD"] = 0, - }, - [335] = { - ["X"] = 35.98, - ["Y"] = 13.64, - ["CD"] = 0, - }, - [336] = { - ["X"] = 38.41, - ["Y"] = 13.36, - ["CD"] = 0, - }, - [337] = { - ["X"] = 40.2, - ["Y"] = 17.02, - ["CD"] = 0, - }, - [338] = { - ["X"] = 38.59, - ["Y"] = 25.27, - ["CD"] = 0, - }, - [339] = { - ["X"] = 37.32, - ["Y"] = 26.91, - ["CD"] = 0, - }, - [340] = { - ["X"] = 28.98, - ["Y"] = 37.05, - ["CD"] = 0, - }, - [341] = { - ["X"] = 29.18, - ["Y"] = 39.05, - ["CD"] = 0, - }, - [342] = { - ["X"] = 29.35, - ["Y"] = 41.15, - ["CD"] = 0, - }, - [343] = { - ["X"] = 45.19, - ["Y"] = 51.96, - ["CD"] = 0, - }, - [344] = { - ["X"] = 57.18, - ["Y"] = 49.94, - ["CD"] = 0, - }, - [345] = { - ["X"] = 59.66, - ["Y"] = 41.36, - ["CD"] = 0, - }, - [346] = { - ["X"] = 61.03, - ["Y"] = 43.36, - ["CD"] = 0, - }, - [347] = { - ["X"] = 49.52, - ["Y"] = 47.44, - ["CD"] = 0, - }, - [348] = { - ["X"] = 45.4, - ["Y"] = 47.92, - ["CD"] = 0, - }, - [349] = { - ["X"] = 48.52, - ["Y"] = 42.86, - ["CD"] = 0, - }, - [350] = { - ["X"] = 45.67, - ["Y"] = 33.19, - ["CD"] = 0, - }, - [351] = { - ["X"] = 50.55, - ["Y"] = 39.92, - ["CD"] = 0, - }, - [352] = { - ["X"] = 31.72, - ["Y"] = 11.15, - ["CD"] = 0, - }, - [353] = { - ["X"] = 41.5, - ["Y"] = 38.6, - ["CD"] = 0, - }, - [354] = { - ["X"] = 39.3, - ["Y"] = 53.64, - ["CD"] = 0, - }, - [355] = { - ["X"] = 57.38, - ["Y"] = 47.96, - ["CD"] = 0, - }, - [356] = { - ["X"] = 59.94, - ["Y"] = 42.44, - ["CD"] = 0, - }, - [357] = { - ["X"] = 62.25, - ["Y"] = 45.8, - ["CD"] = 0, - }, - [358] = { - ["X"] = 58.62, - ["Y"] = 49.54, - ["CD"] = 0, - }, - [359] = { - ["X"] = 66.53, - ["Y"] = 56.8, - ["CD"] = 0, - }, - [360] = { - ["X"] = 47.37, - ["Y"] = 55.17, - ["CD"] = 0, - }, - [361] = { - ["X"] = 40.54, - ["Y"] = 62.98, - ["CD"] = 0, - }, - [362] = { - ["X"] = 41.77, - ["Y"] = 73.16, - ["CD"] = 0, - }, - [363] = { - ["X"] = 36.65, - ["Y"] = 42.98, - ["CD"] = 0, - }, - [364] = { - ["X"] = 45.48, - ["Y"] = 27.74, - ["CD"] = 0, - }, - [365] = { - ["X"] = 48.54, - ["Y"] = 35.37, - ["CD"] = 0, - }, - [366] = { - ["X"] = 48.78, - ["Y"] = 42.77, - ["CD"] = 0, - }, - [367] = { - ["X"] = 65.14, - ["Y"] = 55.11, - ["CD"] = 0, - }, - [368] = { - ["X"] = 63.97, - ["Y"] = 51.76, - ["CD"] = 0, - }, - [369] = { - ["X"] = 62.78, - ["Y"] = 53.73, - ["CD"] = 0, - }, - [370] = { - ["X"] = 67.6, - ["Y"] = 58.65, - ["CD"] = 0, - }, - [371] = { - ["X"] = 70.65, - ["Y"] = 63.85, - ["CD"] = 0, - }, - [372] = { - ["X"] = 41.4, - ["Y"] = 61.02, - ["CD"] = 0, - }, - [373] = { - ["X"] = 30.71, - ["Y"] = 52.67, - ["CD"] = 0, - }, - [374] = { - ["X"] = 26.41, - ["Y"] = 53.86, - ["CD"] = 0, - }, - [375] = { - ["X"] = 23.03, - ["Y"] = 59.38, - ["CD"] = 0, - }, - [376] = { - ["X"] = 27.12, - ["Y"] = 69.02, - ["CD"] = 0, - }, - [377] = { - ["X"] = 17.88, - ["Y"] = 49.24, - ["CD"] = 0, - }, - [378] = { - ["X"] = 17.84, - ["Y"] = 47.18, - ["CD"] = 0, - }, - [379] = { - ["X"] = 18.67, - ["Y"] = 49.11, - ["CD"] = 0, - }, - [380] = { - ["X"] = 19.07, - ["Y"] = 44.96, - ["CD"] = 0, - }, - [381] = { - ["X"] = 22.96, - ["Y"] = 44.9, - ["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 - end - end - end - return aura_env.minID["ID"] - end -end -if WeakAuras.IsOptionsOpen() then DaveSniffsHerbs.HerbSniffer.CD = 0; DaveSniffsHerbs.HerbSniffer.NoCD = 200 end +--EVERY FRAME???????????????????????????????????? FIXXXXXXXXXX +function() + if not DaveSniffsHerbs.HerbSniffer then DaveSniffsHerbs.HerbSniffer = {} end + local function range (val, min, max, max2) + val = 1 - (((max - val) / (max - min)) * max2) + return val + end + local id = aura_env.GetClosestHerb() + if not aura_env.herbs[GetCurrentMapAreaID()]then return false end + local hX, hY = aura_env.herbs[GetCurrentMapAreaID()][id]["X"], aura_env.herbs[GetCurrentMapAreaID()][id]["Y"] + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + local X = pX - hX + local Y = pY - hY + local playerFace = GetPlayerFacing() or 0 + local playerA = math.floor(playerFace * 100) + playerA = range(playerA, 0, 630, 360) - 1 + playerA = -playerA + playerA = playerA - 90 + if playerA < 0 then playerA = playerA + 360 end + aura_env.hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) * 100 + DaveSniffsHerbs.HerbSniffer.hyp = aura_env.hyp + aura_env.angle = math.deg(math.atan2(Y, X)) + aura_env.angle = aura_env.angle - playerA + aura_env.angle = aura_env.angle - 180 + if aura_env.hyp < aura_env.wipeDistance then --When reach herb activate it's cooldown (herbcd[cd] = coords) + aura_env.herbs[GetCurrentMapAreaID()][id]["CD"] = math.floor(GetTime() + aura_env.cooldown) + DaveSniffsHerbs.HerbSniffer.CD = DaveSniffsHerbs.HerbSniffer.CD + 1 + DaveSniffsHerbs.HerbSniffer.NoCD = DaveSniffsHerbs.HerbSniffer.NoCD - 1 + aura_env.minID = + { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 10000, + ["ID"] = 0 + } + end + for k, v in ipairs(aura_env.herbs[GetCurrentMapAreaID()]) do --if cooldown is up then insert back into proper array + local cd = aura_env.herbs[GetCurrentMapAreaID()][k]["CD"] + if cd > 0 then + if GetTime() > cd then + aura_env.herbs[GetCurrentMapAreaID()][k]["CD"] = 0 + DaveSniffsHerbs.HerbSniffer.NoCD = DaveSniffsHerbs.HerbSniffer.NoCD + 1 + DaveSniffsHerbs.HerbSniffer.CD = DaveSniffsHerbs.HerbSniffer.CD - 1 + end + end + end + return true +end + +--DISPLAY EVERY FRAME??????? +function() + 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 + if DaveSniffsHerbs.HerbSniffer.hyp and DaveSniffsHerbs.HerbSniffer.NoCD and DaveSniffsHerbs.HerbSniffer.CD then + return round(DaveSniffsHerbs.HerbSniffer.hyp, 0) .. "\n" .. DaveSniffsHerbs.HerbSniffer.NoCD .. "\n" .. DaveSniffsHerbs.HerbSniffer.CD + end +end + +--INIT +aura_env.herbs = { + --Azsuna / Aethril + [1015] = { + [1] = { + ["X"] = 49.5, + ["Y"] = 85.9, + ["CD"] = 0, + }, + [2] = { + ["X"] = 52.42, + ["Y"] = 83.61, + ["CD"] = 0, + }, + [3] = { + ["X"] = 52.47, + ["Y"] = 79, + ["CD"] = 0, + }, + [4] = { + ["X"] = 51.45, + ["Y"] = 75.68, + ["CD"] = 0, + }, + [5] = { + ["X"] = 47.61, + ["Y"] = 74, + ["CD"] = 0, + }, + [6] = { + ["X"] = 45.03, + ["Y"] = 71.83, + ["CD"] = 0, + }, + [7] = { + ["X"] = 41.56, + ["Y"] = 72.14, + ["CD"] = 0, + }, + [8] = { + ["X"] = 42.24, + ["Y"] = 74.27, + ["CD"] = 0, + }, + [9] = { + ["X"] = 27.62, + ["Y"] = 72.68, + ["CD"] = 0, + }, + [10] = { + ["X"] = 42.88, + ["Y"] = 79.35, + ["CD"] = 0, + }, + [11] = { + ["X"] = 44.42, + ["Y"] = 82.26, + ["CD"] = 0, + }, + [12] = { + ["X"] = 45.6, + ["Y"] = 84.9, + ["CD"] = 0, + }, + [13] = { + ["X"] = 44.21, + ["Y"] = 88.47, + ["CD"] = 0, + }, + [14] = { + ["X"] = 41.43, + ["Y"] = 9.46, + ["CD"] = 0, + }, + [15] = { + ["X"] = 40.17, + ["Y"] = 11.22, + ["CD"] = 0, + }, + [16] = { + ["X"] = 39.11, + ["Y"] = 12.41, + ["CD"] = 0, + }, + [17] = { + ["X"] = 36.33, + ["Y"] = 21.62, + ["CD"] = 0, + }, + [18] = { + ["X"] = 35.78, + ["Y"] = 25.06, + ["CD"] = 0, + }, + [19] = { + ["X"] = 35.3, + ["Y"] = 26.62, + ["CD"] = 0, + }, + [20] = { + ["X"] = 34.02, + ["Y"] = 28.32, + ["CD"] = 0, + }, + [21] = { + ["X"] = 33.17, + ["Y"] = 30.55, + ["CD"] = 0, + }, + [22] = { + ["X"] = 32.16, + ["Y"] = 32.58, + ["CD"] = 0, + }, + [23] = { + ["X"] = 33.26, + ["Y"] = 35.14, + ["CD"] = 0, + }, + [24] = { + ["X"] = 34.52, + ["Y"] = 36.25, + ["CD"] = 0, + }, + [25] = { + ["X"] = 35.33, + ["Y"] = 37.3, + ["CD"] = 0, + }, + [26] = { + ["X"] = 36.73, + ["Y"] = 37.24, + ["CD"] = 0, + }, + [27] = { + ["X"] = 37.23, + ["Y"] = 37.98, + ["CD"] = 0, + }, + [28] = { + ["X"] = 35.4, + ["Y"] = 44.54, + ["CD"] = 0, + }, + [29] = { + ["X"] = 36.43, + ["Y"] = 45.87, + ["CD"] = 0, + }, + [30] = { + ["X"] = 38.03, + ["Y"] = 60.71, + ["CD"] = 0, + }, + [31] = { + ["X"] = 39.22, + ["Y"] = 60.68, + ["CD"] = 0, + }, + [32] = { + ["X"] = 40.1, + ["Y"] = 60.09, + ["CD"] = 0, + }, + [33] = { + ["X"] = 47.77, + ["Y"] = 74.67, + ["CD"] = 0, + }, + [34] = { + ["X"] = 48.77, + ["Y"] = 75.75, + ["CD"] = 0, + }, + [35] = { + ["X"] = 50.96, + ["Y"] = 76.32, + ["CD"] = 0, + }, + [36] = { + ["X"] = 51.92, + ["Y"] = 77.35, + ["CD"] = 0, + }, + [37] = { + ["X"] = 49.35, + ["Y"] = 75.68, + ["CD"] = 0, + }, + [38] = { + ["X"] = 49.96, + ["Y"] = 73.8, + ["CD"] = 0, + }, + [39] = { + ["X"] = 50.79, + ["Y"] = 77.15, + ["CD"] = 0, + }, + [40] = { + ["X"] = 54.65, + ["Y"] = 73.03, + ["CD"] = 0, + }, + [41] = { + ["X"] = 53.66, + ["Y"] = 71.56, + ["CD"] = 0, + }, + [42] = { + ["X"] = 54.84, + ["Y"] = 68.68, + ["CD"] = 0, + }, + [43] = { + ["X"] = 54.92, + ["Y"] = 66.14, + ["CD"] = 0, + }, + [44] = { + ["X"] = 51.68, + ["Y"] = 62.8, + ["CD"] = 0, + }, + [45] = { + ["X"] = 47.83, + ["Y"] = 62.32, + ["CD"] = 0, + }, + [46] = { + ["X"] = 46.74, + ["Y"] = 57.87, + ["CD"] = 0, + }, + [47] = { + ["X"] = 45.43, + ["Y"] = 57.08, + ["CD"] = 0, + }, + [48] = { + ["X"] = 44.96, + ["Y"] = 52.3, + ["CD"] = 0, + }, + [49] = { + ["X"] = 45, + ["Y"] = 50.1, + ["CD"] = 0, + }, + [50] = { + ["X"] = 45.58, + ["Y"] = 48.48, + ["CD"] = 0, + }, + [51] = { + ["X"] = 46.03, + ["Y"] = 46.1, + ["CD"] = 0, + }, + [52] = { + ["X"] = 45.43, + ["Y"] = 42.5, + ["CD"] = 0, + }, + [53] = { + ["X"] = 44.75, + ["Y"] = 40.05, + ["CD"] = 0, + }, + [54] = { + ["X"] = 44.51, + ["Y"] = 37.29, + ["CD"] = 0, + }, + [55] = { + ["X"] = 45.59, + ["Y"] = 35.87, + ["CD"] = 0, + }, + [56] = { + ["X"] = 47.86, + ["Y"] = 34.47, + ["CD"] = 0, + }, + [57] = { + ["X"] = 49.11, + ["Y"] = 33.95, + ["CD"] = 0, + }, + [58] = { + ["X"] = 50.29, + ["Y"] = 32.1, + ["CD"] = 0, + }, + [59] = { + ["X"] = 42.81, + ["Y"] = 10.38, + ["CD"] = 0, + }, + [60] = { + ["X"] = 52.42, + ["Y"] = 83.61, + ["CD"] = 0, + }, + [61] = { + ["X"] = 49.5, + ["Y"] = 85.9, + ["CD"] = 0, + }, + [62] = { + ["X"] = 64.31, + ["Y"] = 21.59, + ["CD"] = 0, + }, + [63] = { + ["X"] = 45.71, + ["Y"] = 15.14, + ["CD"] = 0, + }, + [64] = { + ["X"] = 48.74, + ["Y"] = 10.63, + ["CD"] = 0, + }, + [65] = { + ["X"] = 45.55, + ["Y"] = 10.75, + ["CD"] = 0, + }, + [66] = { + ["X"] = 54.31, + ["Y"] = 17.67, + ["CD"] = 0, + }, + [67] = { + ["X"] = 61.29, + ["Y"] = 29.89, + ["CD"] = 0, + }, + [68] = { + ["X"] = 57.92, + ["Y"] = 33.75, + ["CD"] = 0, + }, + [69] = { + ["X"] = 45.1, + ["Y"] = 28.59, + ["CD"] = 0, + }, + [70] = { + ["X"] = 44.59, + ["Y"] = 32.83, + ["CD"] = 0, + }, + [71] = { + ["X"] = 61.83, + ["Y"] = 39.44, + ["CD"] = 0, + }, + [72] = { + ["X"] = 41.47, + ["Y"] = 33.61, + ["CD"] = 0, + }, + [73] = { + ["X"] = 40.85, + ["Y"] = 38.78, + ["CD"] = 0, + }, + [74] = { + ["X"] = 42.3, + ["Y"] = 36.7, + ["CD"] = 0, + }, + [75] = { + ["X"] = 42.36, + ["Y"] = 24.31, + ["CD"] = 0, + }, + [76] = { + ["X"] = 35.84, + ["Y"] = 15.6, + ["CD"] = 0, + }, + [77] = { + ["X"] = 39.54, + ["Y"] = 24.73, + ["CD"] = 0, + }, + [78] = { + ["X"] = 39.74, + ["Y"] = 13.5, + ["CD"] = 0, + }, + [79] = { + ["X"] = 35.42, + ["Y"] = 27.64, + ["CD"] = 0, + }, + [80] = { + ["X"] = 56.06, + ["Y"] = 19.39, + ["CD"] = 0, + }, + [81] = { + ["X"] = 63.3, + ["Y"] = 35.71, + ["CD"] = 0, + }, + [82] = { + ["X"] = 52.67, + ["Y"] = 26.74, + ["CD"] = 0, + }, + [83] = { + ["X"] = 57.2, + ["Y"] = 27.62, + ["CD"] = 0, + }, + [84] = { + ["X"] = 35.53, + ["Y"] = 22.66, + ["CD"] = 0, + }, + [85] = { + ["X"] = 38.63, + ["Y"] = 28.7, + ["CD"] = 0, + }, + [86] = { + ["X"] = 38.01, + ["Y"] = 35.61, + ["CD"] = 0, + }, + [87] = { + ["X"] = 62.66, + ["Y"] = 54.86, + ["CD"] = 0, + }, + [88] = { + ["X"] = 55.46, + ["Y"] = 72.45, + ["CD"] = 0, + }, + [89] = { + ["X"] = 57, + ["Y"] = 62.25, + ["CD"] = 0, + }, + [90] = { + ["X"] = 45.03, + ["Y"] = 71.83, + ["CD"] = 0, + }, + [91] = { + ["X"] = 47.61, + ["Y"] = 74, + ["CD"] = 0, + }, + [92] = { + ["X"] = 45.6, + ["Y"] = 84.9, + ["CD"] = 0, + }, + [93] = { + ["X"] = 44.42, + ["Y"] = 82.26, + ["CD"] = 0, + }, + [94] = { + ["X"] = 52.56, + ["Y"] = 60.68, + ["CD"] = 0, + }, + [95] = { + ["X"] = 66.67, + ["Y"] = 48.25, + ["CD"] = 0, + }, + [96] = { + ["X"] = 61.84, + ["Y"] = 55.45, + ["CD"] = 0, + }, + [97] = { + ["X"] = 42.88, + ["Y"] = 79.35, + ["CD"] = 0, + }, + [98] = { + ["X"] = 41.56, + ["Y"] = 72.14, + ["CD"] = 0, + }, + [99] = { + ["X"] = 52.47, + ["Y"] = 79, + ["CD"] = 0, + }, + [100] = { + ["X"] = 44.21, + ["Y"] = 88.47, + ["CD"] = 0, + }, + [101] = { + ["X"] = 42.24, + ["Y"] = 74.27, + ["CD"] = 0, + }, + [102] = { + ["X"] = 56.88, + ["Y"] = 61.05, + ["CD"] = 0, + }, + [103] = { + ["X"] = 56.71, + ["Y"] = 64.6, + ["CD"] = 0, + }, + [104] = { + ["X"] = 67.25, + ["Y"] = 46.04, + ["CD"] = 0, + }, + [105] = { + ["X"] = 45.05, + ["Y"] = 37.62, + ["CD"] = 0, + }, + [106] = { + ["X"] = 48.93, + ["Y"] = 43.77, + ["CD"] = 0, + }, + [107] = { + ["X"] = 61.29, + ["Y"] = 47.29, + ["CD"] = 0, + }, + [108] = { + ["X"] = 50.61, + ["Y"] = 58.06, + ["CD"] = 0, + }, + [109] = { + ["X"] = 48.12, + ["Y"] = 52.99, + ["CD"] = 0, + }, + [110] = { + ["X"] = 53.02, + ["Y"] = 12.51, + ["CD"] = 0, + }, + [111] = { + ["X"] = 51.37, + ["Y"] = 15.24, + ["CD"] = 0, + }, + [112] = { + ["X"] = 46, + ["Y"] = 61.02, + ["CD"] = 0, + }, + [113] = { + ["X"] = 67.21, + ["Y"] = 43.27, + ["CD"] = 0, + }, + [114] = { + ["X"] = 56.87, + ["Y"] = 48.7, + ["CD"] = 0, + }, + [115] = { + ["X"] = 32.97, + ["Y"] = 32.94, + ["CD"] = 0, + }, + [116] = { + ["X"] = 40.77, + ["Y"] = 60.33, + ["CD"] = 0, + }, + [117] = { + ["X"] = 46.61, + ["Y"] = 16.25, + ["CD"] = 0, + }, + [118] = { + ["X"] = 46.89, + ["Y"] = 48.44, + ["CD"] = 0, + }, + [119] = { + ["X"] = 60.73, + ["Y"] = 49.79, + ["CD"] = 0, + }, + [120] = { + ["X"] = 60.67, + ["Y"] = 23.86, + ["CD"] = 0, + }, + [121] = { + ["X"] = 59.03, + ["Y"] = 16.36, + ["CD"] = 0, + }, + [122] = { + ["X"] = 61.7, + ["Y"] = 17.64, + ["CD"] = 0, + }, + [123] = { + ["X"] = 40.78, + ["Y"] = 11.45, + ["CD"] = 0, + }, + }, + --Highmountain / Foxflower + [1024] = { + [1] = { + ["X"] = 46.64, + ["Y"] = 67.3, + ["CD"] = 0, + }, + [2] = { + ["X"] = 55.76, + ["Y"] = 65.74, + ["CD"] = 0, + }, + [3] = { + ["X"] = 52.19, + ["Y"] = 59.78, + ["CD"] = 0, + }, + [4] = { + ["X"] = 52.52, + ["Y"] = 61.45, + ["CD"] = 0, + }, + [5] = { + ["X"] = 56.69, + ["Y"] = 64.34, + ["CD"] = 0, + }, + [6] = { + ["X"] = 56.68, + ["Y"] = 65.38, + ["CD"] = 0, + }, + [7] = { + ["X"] = 56.19, + ["Y"] = 66.53, + ["CD"] = 0, + }, + [8] = { + ["X"] = 47.21, + ["Y"] = 33.87, + ["CD"] = 0, + }, + [9] = { + ["X"] = 49.54, + ["Y"] = 30.09, + ["CD"] = 0, + }, + [10] = { + ["X"] = 51.24, + ["Y"] = 28.5, + ["CD"] = 0, + }, + [11] = { + ["X"] = 57.55, + ["Y"] = 22.81, + ["CD"] = 0, + }, + [12] = { + ["X"] = 56.34, + ["Y"] = 20.86, + ["CD"] = 0, + }, + [13] = { + ["X"] = 55.97, + ["Y"] = 19.27, + ["CD"] = 0, + }, + [14] = { + ["X"] = 54.89, + ["Y"] = 16.3, + ["CD"] = 0, + }, + [15] = { + ["X"] = 53.91, + ["Y"] = 14.89, + ["CD"] = 0, + }, + [16] = { + ["X"] = 53.01, + ["Y"] = 13.32, + ["CD"] = 0, + }, + [17] = { + ["X"] = 52.11, + ["Y"] = 11.44, + ["CD"] = 0, + }, + [18] = { + ["X"] = 51.27, + ["Y"] = 10.74, + ["CD"] = 0, + }, + [19] = { + ["X"] = 50.26, + ["Y"] = 10.4, + ["CD"] = 0, + }, + [20] = { + ["X"] = 49.24, + ["Y"] = 10.45, + ["CD"] = 0, + }, + [21] = { + ["X"] = 47.77, + ["Y"] = 11.5, + ["CD"] = 0, + }, + [22] = { + ["X"] = 46.95, + ["Y"] = 10.6, + ["CD"] = 0, + }, + [23] = { + ["X"] = 46.07, + ["Y"] = 10.68, + ["CD"] = 0, + }, + [24] = { + ["X"] = 41.13, + ["Y"] = 12.7, + ["CD"] = 0, + }, + [25] = { + ["X"] = 39.77, + ["Y"] = 14.58, + ["CD"] = 0, + }, + [26] = { + ["X"] = 38.29, + ["Y"] = 19.38, + ["CD"] = 0, + }, + [27] = { + ["X"] = 36.19, + ["Y"] = 20.63, + ["CD"] = 0, + }, + [28] = { + ["X"] = 36.17, + ["Y"] = 22.01, + ["CD"] = 0, + }, + [29] = { + ["X"] = 36.39, + ["Y"] = 23.37, + ["CD"] = 0, + }, + [30] = { + ["X"] = 34.91, + ["Y"] = 24.27, + ["CD"] = 0, + }, + [31] = { + ["X"] = 34.2, + ["Y"] = 25.24, + ["CD"] = 0, + }, + [32] = { + ["X"] = 31.86, + ["Y"] = 26.16, + ["CD"] = 0, + }, + [33] = { + ["X"] = 29.8, + ["Y"] = 32.26, + ["CD"] = 0, + }, + [34] = { + ["X"] = 30.34, + ["Y"] = 34.84, + ["CD"] = 0, + }, + [35] = { + ["X"] = 31.21, + ["Y"] = 39.32, + ["CD"] = 0, + }, + [36] = { + ["X"] = 31.29, + ["Y"] = 40.69, + ["CD"] = 0, + }, + [37] = { + ["X"] = 29.99, + ["Y"] = 48.6, + ["CD"] = 0, + }, + [38] = { + ["X"] = 29.95, + ["Y"] = 50.01, + ["CD"] = 0, + }, + [39] = { + ["X"] = 28.55, + ["Y"] = 52.13, + ["CD"] = 0, + }, + [40] = { + ["X"] = 28.61, + ["Y"] = 54.13, + ["CD"] = 0, + }, + [41] = { + ["X"] = 28.71, + ["Y"] = 55.45, + ["CD"] = 0, + }, + [42] = { + ["X"] = 30.26, + ["Y"] = 58.89, + ["CD"] = 0, + }, + [43] = { + ["X"] = 31.74, + ["Y"] = 60.67, + ["CD"] = 0, + }, + [44] = { + ["X"] = 36.49, + ["Y"] = 65.21, + ["CD"] = 0, + }, + [45] = { + ["X"] = 37.61, + ["Y"] = 67.49, + ["CD"] = 0, + }, + [46] = { + ["X"] = 38.38, + ["Y"] = 69.44, + ["CD"] = 0, + }, + [47] = { + ["X"] = 38.79, + ["Y"] = 72.65, + ["CD"] = 0, + }, + [48] = { + ["X"] = 41.04, + ["Y"] = 73.11, + ["CD"] = 0, + }, + [49] = { + ["X"] = 45.93, + ["Y"] = 78.12, + ["CD"] = 0, + }, + [50] = { + ["X"] = 43, + ["Y"] = 72.74, + ["CD"] = 0, + }, + [51] = { + ["X"] = 44.04, + ["Y"] = 70.22, + ["CD"] = 0, + }, + [52] = { + ["X"] = 43.8, + ["Y"] = 68.68, + ["CD"] = 0, + }, + [53] = { + ["X"] = 57.52, + ["Y"] = 59.84, + ["CD"] = 0, + }, + [54] = { + ["X"] = 57.52, + ["Y"] = 57.7, + ["CD"] = 0, + }, + [55] = { + ["X"] = 58.07, + ["Y"] = 54.65, + ["CD"] = 0, + }, + [56] = { + ["X"] = 57.96, + ["Y"] = 53.13, + ["CD"] = 0, + }, + [57] = { + ["X"] = 57.86, + ["Y"] = 47.77, + ["CD"] = 0, + }, + [58] = { + ["X"] = 58.19, + ["Y"] = 47.05, + ["CD"] = 0, + }, + [59] = { + ["X"] = 58.61, + ["Y"] = 44.17, + ["CD"] = 0, + }, + [60] = { + ["X"] = 56.51, + ["Y"] = 44.73, + ["CD"] = 0, + }, + [61] = { + ["X"] = 54.78, + ["Y"] = 45.97, + ["CD"] = 0, + }, + [62] = { + ["X"] = 51.14, + ["Y"] = 44.1, + ["CD"] = 0, + }, + [63] = { + ["X"] = 50.07, + ["Y"] = 44.32, + ["CD"] = 0, + }, + [64] = { + ["X"] = 47.67, + ["Y"] = 45.55, + ["CD"] = 0, + }, + [65] = { + ["X"] = 46.74, + ["Y"] = 44.41, + ["CD"] = 0, + }, + [66] = { + ["X"] = 45.62, + ["Y"] = 43.41, + ["CD"] = 0, + }, + [67] = { + ["X"] = 44.37, + ["Y"] = 46.79, + ["CD"] = 0, + }, + [68] = { + ["X"] = 44.75, + ["Y"] = 50.99, + ["CD"] = 0, + }, + [69] = { + ["X"] = 43.43, + ["Y"] = 51.8, + ["CD"] = 0, + }, + [70] = { + ["X"] = 42.94, + ["Y"] = 52.84, + ["CD"] = 0, + }, + [71] = { + ["X"] = 41.36, + ["Y"] = 56.14, + ["CD"] = 0, + }, + [72] = { + ["X"] = 40.42, + ["Y"] = 59.11, + ["CD"] = 0, + }, + [73] = { + ["X"] = 40.66, + ["Y"] = 60.23, + ["CD"] = 0, + }, + [74] = { + ["X"] = 41.34, + ["Y"] = 61.28, + ["CD"] = 0, + }, + [75] = { + ["X"] = 42.63, + ["Y"] = 62.64, + ["CD"] = 0, + }, + [76] = { + ["X"] = 43.09, + ["Y"] = 63.34, + ["CD"] = 0, + }, + [77] = { + ["X"] = 42.95, + ["Y"] = 66.46, + ["CD"] = 0, + }, + [78] = { + ["X"] = 41.91, + ["Y"] = 65.48, + ["CD"] = 0, + }, + [79] = { + ["X"] = 39.84, + ["Y"] = 67.12, + ["CD"] = 0, + }, + [80] = { + ["X"] = 39.25, + ["Y"] = 66.78, + ["CD"] = 0, + }, + [81] = { + ["X"] = 37.95, + ["Y"] = 65.06, + ["CD"] = 0, + }, + [82] = { + ["X"] = 36.88, + ["Y"] = 62.21, + ["CD"] = 0, + }, + [83] = { + ["X"] = 35, + ["Y"] = 61.68, + ["CD"] = 0, + }, + [84] = { + ["X"] = 34.47, + ["Y"] = 61.63, + ["CD"] = 0, + }, + [85] = { + ["X"] = 33.04, + ["Y"] = 59.61, + ["CD"] = 0, + }, + [86] = { + ["X"] = 32.47, + ["Y"] = 58.59, + ["CD"] = 0, + }, + [87] = { + ["X"] = 33.5, + ["Y"] = 48.45, + ["CD"] = 0, + }, + [88] = { + ["X"] = 33.97, + ["Y"] = 46.69, + ["CD"] = 0, + }, + [89] = { + ["X"] = 34.71, + ["Y"] = 45.6, + ["CD"] = 0, + }, + [90] = { + ["X"] = 35.6, + ["Y"] = 44.86, + ["CD"] = 0, + }, + [91] = { + ["X"] = 35.83, + ["Y"] = 42.47, + ["CD"] = 0, + }, + [92] = { + ["X"] = 37.81, + ["Y"] = 39.75, + ["CD"] = 0, + }, + [93] = { + ["X"] = 38.19, + ["Y"] = 38.74, + ["CD"] = 0, + }, + [94] = { + ["X"] = 38.79, + ["Y"] = 38.66, + ["CD"] = 0, + }, + [95] = { + ["X"] = 39.3, + ["Y"] = 38.66, + ["CD"] = 0, + }, + [96] = { + ["X"] = 39.02, + ["Y"] = 37.93, + ["CD"] = 0, + }, + [97] = { + ["X"] = 40.35, + ["Y"] = 35.43, + ["CD"] = 0, + }, + [98] = { + ["X"] = 40.39, + ["Y"] = 33.63, + ["CD"] = 0, + }, + [99] = { + ["X"] = 49.08, + ["Y"] = 29.35, + ["CD"] = 0, + }, + [100] = { + ["X"] = 51.14, + ["Y"] = 25.3, + ["CD"] = 0, + }, + [101] = { + ["X"] = 49.93, + ["Y"] = 27.04, + ["CD"] = 0, + }, + [102] = { + ["X"] = 49.29, + ["Y"] = 25.89, + ["CD"] = 0, + }, + [103] = { + ["X"] = 50.02, + ["Y"] = 25.23, + ["CD"] = 0, + }, + [104] = { + ["X"] = 44.16, + ["Y"] = 26.34, + ["CD"] = 0, + }, + [105] = { + ["X"] = 45.33, + ["Y"] = 25.11, + ["CD"] = 0, + }, + [106] = { + ["X"] = 47.16, + ["Y"] = 24.57, + ["CD"] = 0, + }, + [107] = { + ["X"] = 48.18, + ["Y"] = 24.81, + ["CD"] = 0, + }, + [108] = { + ["X"] = 48.43, + ["Y"] = 24.91, + ["CD"] = 0, + }, + [109] = { + ["X"] = 41.96, + ["Y"] = 27.74, + ["CD"] = 0, + }, + [110] = { + ["X"] = 40.81, + ["Y"] = 28.03, + ["CD"] = 0, + }, + [111] = { + ["X"] = 49.48, + ["Y"] = 32.24, + ["CD"] = 0, + }, + [112] = { + ["X"] = 48.81, + ["Y"] = 30.9, + ["CD"] = 0, + }, + [113] = { + ["X"] = 47.43, + ["Y"] = 9.62, + ["CD"] = 0, + }, + [114] = { + ["X"] = 41.86, + ["Y"] = 29.75, + ["CD"] = 0, + }, + [115] = { + ["X"] = 41.9, + ["Y"] = 33.87, + ["CD"] = 0, + }, + [116] = { + ["X"] = 38.16, + ["Y"] = 38.67, + ["CD"] = 0, + }, + [117] = { + ["X"] = 42.37, + ["Y"] = 57.47, + ["CD"] = 0, + }, + [118] = { + ["X"] = 35.91, + ["Y"] = 64.63, + ["CD"] = 0, + }, + [119] = { + ["X"] = 34.84, + ["Y"] = 66.91, + ["CD"] = 0, + }, + [120] = { + ["X"] = 58.06, + ["Y"] = 22.18, + ["CD"] = 0, + }, + [121] = { + ["X"] = 55.33, + ["Y"] = 18.91, + ["CD"] = 0, + }, + [122] = { + ["X"] = 56.08, + ["Y"] = 16.68, + ["CD"] = 0, + }, + [123] = { + ["X"] = 53.44, + ["Y"] = 12.37, + ["CD"] = 0, + }, + [124] = { + ["X"] = 48.54, + ["Y"] = 7.84, + ["CD"] = 0, + }, + [125] = { + ["X"] = 45.82, + ["Y"] = 11.08, + ["CD"] = 0, + }, + [126] = { + ["X"] = 46.22, + ["Y"] = 10.22, + ["CD"] = 0, + }, + [127] = { + ["X"] = 43.25, + ["Y"] = 9.49, + ["CD"] = 0, + }, + [128] = { + ["X"] = 41.16, + ["Y"] = 13.96, + ["CD"] = 0, + }, + [129] = { + ["X"] = 42.56, + ["Y"] = 30.48, + ["CD"] = 0, + }, + [130] = { + ["X"] = 39.26, + ["Y"] = 50.08, + ["CD"] = 0, + }, + [131] = { + ["X"] = 35.86, + ["Y"] = 38.62, + ["CD"] = 0, + }, + [132] = { + ["X"] = 38.03, + ["Y"] = 42.82, + ["CD"] = 0, + }, + [133] = { + ["X"] = 41.33, + ["Y"] = 48.68, + ["CD"] = 0, + }, + [134] = { + ["X"] = 40.45, + ["Y"] = 50.6, + ["CD"] = 0, + }, + [135] = { + ["X"] = 47.95, + ["Y"] = 69.23, + ["CD"] = 0, + }, + [136] = { + ["X"] = 56.51, + ["Y"] = 61.71, + ["CD"] = 0, + }, + [137] = { + ["X"] = 40.18, + ["Y"] = 74.41, + ["CD"] = 0, + }, + [138] = { + ["X"] = 34.69, + ["Y"] = 74.43, + ["CD"] = 0, + }, + [139] = { + ["X"] = 33.56, + ["Y"] = 72.81, + ["CD"] = 0, + }, + [140] = { + ["X"] = 39.37, + ["Y"] = 64.28, + ["CD"] = 0, + }, + [141] = { + ["X"] = 48.31, + ["Y"] = 29.71, + ["CD"] = 0, + }, + [142] = { + ["X"] = 41.06, + ["Y"] = 51.89, + ["CD"] = 0, + }, + [143] = { + ["X"] = 47.39, + ["Y"] = 57.58, + ["CD"] = 0, + }, + [144] = { + ["X"] = 44.3, + ["Y"] = 30.89, + ["CD"] = 0, + }, + [145] = { + ["X"] = 37.26, + ["Y"] = 33.85, + ["CD"] = 0, + }, + [146] = { + ["X"] = 49.68, + ["Y"] = 28.43, + ["CD"] = 0, + }, + [147] = { + ["X"] = 46.45, + ["Y"] = 26.28, + ["CD"] = 0, + }, + [148] = { + ["X"] = 48.48, + ["Y"] = 54.81, + ["CD"] = 0, + }, + [149] = { + ["X"] = 44.43, + ["Y"] = 43.63, + ["CD"] = 0, + }, + [150] = { + ["X"] = 42.21, + ["Y"] = 54.16, + ["CD"] = 0, + }, + [151] = { + ["X"] = 52.71, + ["Y"] = 39.16, + ["CD"] = 0, + }, + [152] = { + ["X"] = 50.92, + ["Y"] = 31.71, + ["CD"] = 0, + }, + [153] = { + ["X"] = 49.73, + ["Y"] = 40.07, + ["CD"] = 0, + }, + [154] = { + ["X"] = 43.29, + ["Y"] = 33.05, + ["CD"] = 0, + }, + [155] = { + ["X"] = 42.5, + ["Y"] = 61.79, + ["CD"] = 0, + }, + [156] = { + ["X"] = 38.62, + ["Y"] = 61.09, + ["CD"] = 0, + }, + [157] = { + ["X"] = 33.34, + ["Y"] = 66.81, + ["CD"] = 0, + }, + }, + --Stormheim / Fjarnskaggl + [1017] = { + [1] = { + ["X"] = 42.73, + ["Y"] = 21.64, + ["CD"] = 0, + }, + [2] = { + ["X"] = 45.18, + ["Y"] = 20.16, + ["CD"] = 0, + }, + [3] = { + ["X"] = 46.55, + ["Y"] = 20.24, + ["CD"] = 0, + }, + [4] = { + ["X"] = 59.54, + ["Y"] = 32.57, + ["CD"] = 0, + }, + [5] = { + ["X"] = 58.44, + ["Y"] = 30.81, + ["CD"] = 0, + }, + [6] = { + ["X"] = 60.72, + ["Y"] = 27.5, + ["CD"] = 0, + }, + [7] = { + ["X"] = 62.19, + ["Y"] = 26.58, + ["CD"] = 0, + }, + [8] = { + ["X"] = 62.99, + ["Y"] = 27.45, + ["CD"] = 0, + }, + [9] = { + ["X"] = 63.12, + ["Y"] = 29.3, + ["CD"] = 0, + }, + [10] = { + ["X"] = 62.08, + ["Y"] = 31.15, + ["CD"] = 0, + }, + [11] = { + ["X"] = 61.83, + ["Y"] = 31.81, + ["CD"] = 0, + }, + [12] = { + ["X"] = 61.03, + ["Y"] = 34.71, + ["CD"] = 0, + }, + [13] = { + ["X"] = 60.61, + ["Y"] = 37.98, + ["CD"] = 0, + }, + [14] = { + ["X"] = 60.56, + ["Y"] = 39.33, + ["CD"] = 0, + }, + [15] = { + ["X"] = 63.53, + ["Y"] = 49.93, + ["CD"] = 0, + }, + [16] = { + ["X"] = 66.21, + ["Y"] = 49.69, + ["CD"] = 0, + }, + [17] = { + ["X"] = 67.69, + ["Y"] = 49.03, + ["CD"] = 0, + }, + [18] = { + ["X"] = 69.63, + ["Y"] = 46.92, + ["CD"] = 0, + }, + [19] = { + ["X"] = 70.39, + ["Y"] = 46.08, + ["CD"] = 0, + }, + [20] = { + ["X"] = 72.09, + ["Y"] = 51.14, + ["CD"] = 0, + }, + [21] = { + ["X"] = 72.56, + ["Y"] = 53.56, + ["CD"] = 0, + }, + [22] = { + ["X"] = 75.52, + ["Y"] = 54.75, + ["CD"] = 0, + }, + [23] = { + ["X"] = 76.6, + ["Y"] = 56.5, + ["CD"] = 0, + }, + [24] = { + ["X"] = 76.14, + ["Y"] = 58.07, + ["CD"] = 0, + }, + [25] = { + ["X"] = 75.03, + ["Y"] = 57.99, + ["CD"] = 0, + }, + [26] = { + ["X"] = 73.66, + ["Y"] = 57.66, + ["CD"] = 0, + }, + [27] = { + ["X"] = 70.9, + ["Y"] = 61.57, + ["CD"] = 0, + }, + [28] = { + ["X"] = 67.75, + ["Y"] = 61.48, + ["CD"] = 0, + }, + [29] = { + ["X"] = 64.9, + ["Y"] = 63.35, + ["CD"] = 0, + }, + [30] = { + ["X"] = 62.99, + ["Y"] = 63.35, + ["CD"] = 0, + }, + [31] = { + ["X"] = 63.26, + ["Y"] = 64.62, + ["CD"] = 0, + }, + [32] = { + ["X"] = 63.23, + ["Y"] = 65.19, + ["CD"] = 0, + }, + [33] = { + ["X"] = 61.63, + ["Y"] = 65.68, + ["CD"] = 0, + }, + [34] = { + ["X"] = 62.54, + ["Y"] = 66.48, + ["CD"] = 0, + }, + [35] = { + ["X"] = 59.64, + ["Y"] = 66.61, + ["CD"] = 0, + }, + [36] = { + ["X"] = 59.13, + ["Y"] = 67.89, + ["CD"] = 0, + }, + [37] = { + ["X"] = 55.69, + ["Y"] = 71.33, + ["CD"] = 0, + }, + [38] = { + ["X"] = 59.46, + ["Y"] = 75.05, + ["CD"] = 0, + }, + [39] = { + ["X"] = 61.37, + ["Y"] = 77.79, + ["CD"] = 0, + }, + [40] = { + ["X"] = 61.46, + ["Y"] = 79.28, + ["CD"] = 0, + }, + [41] = { + ["X"] = 62.37, + ["Y"] = 81.26, + ["CD"] = 0, + }, + [42] = { + ["X"] = 62.89, + ["Y"] = 86.35, + ["CD"] = 0, + }, + [43] = { + ["X"] = 62.95, + ["Y"] = 87.18, + ["CD"] = 0, + }, + [44] = { + ["X"] = 61.86, + ["Y"] = 89.33, + ["CD"] = 0, + }, + [45] = { + ["X"] = 61.06, + ["Y"] = 89.51, + ["CD"] = 0, + }, + [46] = { + ["X"] = 60.35, + ["Y"] = 89.77, + ["CD"] = 0, + }, + [47] = { + ["X"] = 60.46, + ["Y"] = 88.01, + ["CD"] = 0, + }, + [48] = { + ["X"] = 58.77, + ["Y"] = 88.12, + ["CD"] = 0, + }, + [49] = { + ["X"] = 58, + ["Y"] = 89.7, + ["CD"] = 0, + }, + [50] = { + ["X"] = 57.81, + ["Y"] = 88.34, + ["CD"] = 0, + }, + [51] = { + ["X"] = 58.15, + ["Y"] = 87.43, + ["CD"] = 0, + }, + [52] = { + ["X"] = 54.91, + ["Y"] = 87.91, + ["CD"] = 0, + }, + [53] = { + ["X"] = 54.42, + ["Y"] = 87.64, + ["CD"] = 0, + }, + [54] = { + ["X"] = 53.69, + ["Y"] = 86.99, + ["CD"] = 0, + }, + [55] = { + ["X"] = 53.69, + ["Y"] = 86.01, + ["CD"] = 0, + }, + [56] = { + ["X"] = 53.41, + ["Y"] = 84.74, + ["CD"] = 0, + }, + [57] = { + ["X"] = 52.93, + ["Y"] = 84.03, + ["CD"] = 0, + }, + [58] = { + ["X"] = 52.94, + ["Y"] = 80.51, + ["CD"] = 0, + }, + [59] = { + ["X"] = 51.8, + ["Y"] = 80.64, + ["CD"] = 0, + }, + [60] = { + ["X"] = 50.54, + ["Y"] = 76.85, + ["CD"] = 0, + }, + [61] = { + ["X"] = 50.06, + ["Y"] = 74.96, + ["CD"] = 0, + }, + [62] = { + ["X"] = 49.84, + ["Y"] = 71.6, + ["CD"] = 0, + }, + [63] = { + ["X"] = 49.18, + ["Y"] = 71.24, + ["CD"] = 0, + }, + [64] = { + ["X"] = 49.05, + ["Y"] = 72.37, + ["CD"] = 0, + }, + [65] = { + ["X"] = 48.97, + ["Y"] = 73.02, + ["CD"] = 0, + }, + [66] = { + ["X"] = 48.69, + ["Y"] = 74.08, + ["CD"] = 0, + }, + [67] = { + ["X"] = 46.55, + ["Y"] = 65.61, + ["CD"] = 0, + }, + [68] = { + ["X"] = 45.84, + ["Y"] = 65.53, + ["CD"] = 0, + }, + [69] = { + ["X"] = 45.91, + ["Y"] = 66.46, + ["CD"] = 0, + }, + [70] = { + ["X"] = 45.89, + ["Y"] = 68.5, + ["CD"] = 0, + }, + [71] = { + ["X"] = 46.49, + ["Y"] = 69.36, + ["CD"] = 0, + }, + [72] = { + ["X"] = 46.85, + ["Y"] = 70.49, + ["CD"] = 0, + }, + [73] = { + ["X"] = 48.64, + ["Y"] = 66.49, + ["CD"] = 0, + }, + [74] = { + ["X"] = 48.19, + ["Y"] = 65.73, + ["CD"] = 0, + }, + [75] = { + ["X"] = 69.05, + ["Y"] = 53, + ["CD"] = 0, + }, + [76] = { + ["X"] = 69.6, + ["Y"] = 53.04, + ["CD"] = 0, + }, + [77] = { + ["X"] = 71.2, + ["Y"] = 50.43, + ["CD"] = 0, + }, + [78] = { + ["X"] = 72.12, + ["Y"] = 48.71, + ["CD"] = 0, + }, + [79] = { + ["X"] = 71.54, + ["Y"] = 47.52, + ["CD"] = 0, + }, + [80] = { + ["X"] = 70.25, + ["Y"] = 47.85, + ["CD"] = 0, + }, + [81] = { + ["X"] = 67.53, + ["Y"] = 46.62, + ["CD"] = 0, + }, + [82] = { + ["X"] = 66.15, + ["Y"] = 46.42, + ["CD"] = 0, + }, + [83] = { + ["X"] = 65.17, + ["Y"] = 48.03, + ["CD"] = 0, + }, + [84] = { + ["X"] = 63.08, + ["Y"] = 47.87, + ["CD"] = 0, + }, + [85] = { + ["X"] = 62.37, + ["Y"] = 49.53, + ["CD"] = 0, + }, + [86] = { + ["X"] = 61.62, + ["Y"] = 50.11, + ["CD"] = 0, + }, + [87] = { + ["X"] = 61.46, + ["Y"] = 52.36, + ["CD"] = 0, + }, + [88] = { + ["X"] = 59.98, + ["Y"] = 54.34, + ["CD"] = 0, + }, + [89] = { + ["X"] = 59.21, + ["Y"] = 54.31, + ["CD"] = 0, + }, + [90] = { + ["X"] = 58.56, + ["Y"] = 53.27, + ["CD"] = 0, + }, + [91] = { + ["X"] = 57.53, + ["Y"] = 52.03, + ["CD"] = 0, + }, + [92] = { + ["X"] = 57.08, + ["Y"] = 50.3, + ["CD"] = 0, + }, + [93] = { + ["X"] = 53.84, + ["Y"] = 52.74, + ["CD"] = 0, + }, + [94] = { + ["X"] = 53.1, + ["Y"] = 52.62, + ["CD"] = 0, + }, + [95] = { + ["X"] = 51.82, + ["Y"] = 55.04, + ["CD"] = 0, + }, + [96] = { + ["X"] = 51.02, + ["Y"] = 56.85, + ["CD"] = 0, + }, + [97] = { + ["X"] = 49.4, + ["Y"] = 57.58, + ["CD"] = 0, + }, + [98] = { + ["X"] = 48.41, + ["Y"] = 56.75, + ["CD"] = 0, + }, + [99] = { + ["X"] = 46.85, + ["Y"] = 55.36, + ["CD"] = 0, + }, + [100] = { + ["X"] = 46.59, + ["Y"] = 54.11, + ["CD"] = 0, + }, + [101] = { + ["X"] = 45.57, + ["Y"] = 53.02, + ["CD"] = 0, + }, + [102] = { + ["X"] = 44.37, + ["Y"] = 52.98, + ["CD"] = 0, + }, + [103] = { + ["X"] = 44.15, + ["Y"] = 51.24, + ["CD"] = 0, + }, + [104] = { + ["X"] = 40.96, + ["Y"] = 49.38, + ["CD"] = 0, + }, + [105] = { + ["X"] = 39.14, + ["Y"] = 47.16, + ["CD"] = 0, + }, + [106] = { + ["X"] = 38.88, + ["Y"] = 44.73, + ["CD"] = 0, + }, + [107] = { + ["X"] = 38.83, + ["Y"] = 43.43, + ["CD"] = 0, + }, + [108] = { + ["X"] = 38.15, + ["Y"] = 43.33, + ["CD"] = 0, + }, + [109] = { + ["X"] = 37.77, + ["Y"] = 42.02, + ["CD"] = 0, + }, + [110] = { + ["X"] = 37.54, + ["Y"] = 40.84, + ["CD"] = 0, + }, + [111] = { + ["X"] = 35.86, + ["Y"] = 40.01, + ["CD"] = 0, + }, + [112] = { + ["X"] = 33.99, + ["Y"] = 36.77, + ["CD"] = 0, + }, + [113] = { + ["X"] = 33.07, + ["Y"] = 37, + ["CD"] = 0, + }, + [114] = { + ["X"] = 33.87, + ["Y"] = 39.85, + ["CD"] = 0, + }, + [115] = { + ["X"] = 33.03, + ["Y"] = 40.27, + ["CD"] = 0, + }, + [116] = { + ["X"] = 32.06, + ["Y"] = 40.76, + ["CD"] = 0, + }, + [117] = { + ["X"] = 33.91, + ["Y"] = 44.47, + ["CD"] = 0, + }, + [118] = { + ["X"] = 37.4, + ["Y"] = 45.88, + ["CD"] = 0, + }, + [119] = { + ["X"] = 37.28, + ["Y"] = 46.86, + ["CD"] = 0, + }, + [120] = { + ["X"] = 37.7, + ["Y"] = 48.2, + ["CD"] = 0, + }, + [121] = { + ["X"] = 38.14, + ["Y"] = 48.72, + ["CD"] = 0, + }, + [122] = { + ["X"] = 39.99, + ["Y"] = 51.1, + ["CD"] = 0, + }, + [123] = { + ["X"] = 40.14, + ["Y"] = 52.88, + ["CD"] = 0, + }, + [124] = { + ["X"] = 40.12, + ["Y"] = 54.59, + ["CD"] = 0, + }, + [125] = { + ["X"] = 40.48, + ["Y"] = 55.62, + ["CD"] = 0, + }, + [126] = { + ["X"] = 40.9, + ["Y"] = 54.97, + ["CD"] = 0, + }, + [127] = { + ["X"] = 41.83, + ["Y"] = 58.05, + ["CD"] = 0, + }, + [128] = { + ["X"] = 42.96, + ["Y"] = 58.02, + ["CD"] = 0, + }, + [129] = { + ["X"] = 43.76, + ["Y"] = 58.88, + ["CD"] = 0, + }, + [130] = { + ["X"] = 44.62, + ["Y"] = 59.61, + ["CD"] = 0, + }, + [131] = { + ["X"] = 46.7, + ["Y"] = 63.7, + ["CD"] = 0, + }, + [132] = { + ["X"] = 45.37, + ["Y"] = 38.44, + ["CD"] = 0, + }, + [133] = { + ["X"] = 45.75, + ["Y"] = 57.47, + ["CD"] = 0, + }, + [134] = { + ["X"] = 41.11, + ["Y"] = 65.23, + ["CD"] = 0, + }, + [135] = { + ["X"] = 42.3, + ["Y"] = 57.53, + ["CD"] = 0, + }, + [136] = { + ["X"] = 42.35, + ["Y"] = 61.07, + ["CD"] = 0, + }, + [137] = { + ["X"] = 41.82, + ["Y"] = 65.83, + ["CD"] = 0, + }, + [138] = { + ["X"] = 43.9, + ["Y"] = 58.83, + ["CD"] = 0, + }, + [139] = { + ["X"] = 36.28, + ["Y"] = 53.19, + ["CD"] = 0, + }, + [140] = { + ["X"] = 33.45, + ["Y"] = 57.93, + ["CD"] = 0, + }, + [141] = { + ["X"] = 31.05, + ["Y"] = 50.17, + ["CD"] = 0, + }, + [142] = { + ["X"] = 47.87, + ["Y"] = 52.01, + ["CD"] = 0, + }, + [143] = { + ["X"] = 43.23, + ["Y"] = 48.66, + ["CD"] = 0, + }, + [144] = { + ["X"] = 49.96, + ["Y"] = 50.95, + ["CD"] = 0, + }, + [145] = { + ["X"] = 48.72, + ["Y"] = 41.11, + ["CD"] = 0, + }, + [146] = { + ["X"] = 39.14, + ["Y"] = 53.61, + ["CD"] = 0, + }, + [147] = { + ["X"] = 42.68, + ["Y"] = 50.61, + ["CD"] = 0, + }, + [148] = { + ["X"] = 41.05, + ["Y"] = 54.12, + ["CD"] = 0, + }, + [149] = { + ["X"] = 47.37, + ["Y"] = 67.98, + ["CD"] = 0, + }, + [150] = { + ["X"] = 44.75, + ["Y"] = 82.18, + ["CD"] = 0, + }, + [151] = { + ["X"] = 63.56, + ["Y"] = 45.14, + ["CD"] = 0, + }, + [152] = { + ["X"] = 45.89, + ["Y"] = 46.6, + ["CD"] = 0, + }, + [153] = { + ["X"] = 46.49, + ["Y"] = 64.37, + ["CD"] = 0, + }, + [154] = { + ["X"] = 64.82, + ["Y"] = 52.7, + ["CD"] = 0, + }, + [155] = { + ["X"] = 64.17, + ["Y"] = 52.38, + ["CD"] = 0, + }, + [156] = { + ["X"] = 68.5, + ["Y"] = 57.27, + ["CD"] = 0, + }, + [157] = { + ["X"] = 67.97, + ["Y"] = 56.88, + ["CD"] = 0, + }, + [158] = { + ["X"] = 68.84, + ["Y"] = 55.8, + ["CD"] = 0, + }, + [159] = { + ["X"] = 65.9, + ["Y"] = 48.34, + ["CD"] = 0, + }, + [160] = { + ["X"] = 67.73, + ["Y"] = 41.64, + ["CD"] = 0, + }, + [161] = { + ["X"] = 74.57, + ["Y"] = 43.32, + ["CD"] = 0, + }, + [162] = { + ["X"] = 67.61, + ["Y"] = 54.47, + ["CD"] = 0, + }, + [163] = { + ["X"] = 58.75, + ["Y"] = 51.72, + ["CD"] = 0, + }, + [164] = { + ["X"] = 73.32, + ["Y"] = 59.52, + ["CD"] = 0, + }, + [165] = { + ["X"] = 63.58, + ["Y"] = 37.95, + ["CD"] = 0, + }, + [166] = { + ["X"] = 66.85, + ["Y"] = 53.77, + ["CD"] = 0, + }, + [167] = { + ["X"] = 77.33, + ["Y"] = 63.14, + ["CD"] = 0, + }, + [168] = { + ["X"] = 73.71, + ["Y"] = 59.94, + ["CD"] = 0, + }, + [169] = { + ["X"] = 76.47, + ["Y"] = 60.08, + ["CD"] = 0, + }, + [170] = { + ["X"] = 44.97, + ["Y"] = 39.08, + ["CD"] = 0, + }, + [171] = { + ["X"] = 73.25, + ["Y"] = 44.5, + ["CD"] = 0, + }, + [172] = { + ["X"] = 68.35, + ["Y"] = 58.98, + ["CD"] = 0, + }, + [173] = { + ["X"] = 71.56, + ["Y"] = 52.46, + ["CD"] = 0, + }, + [174] = { + ["X"] = 63.95, + ["Y"] = 62.4, + ["CD"] = 0, + }, + [175] = { + ["X"] = 60.12, + ["Y"] = 69.1, + ["CD"] = 0, + }, + [176] = { + ["X"] = 61.22, + ["Y"] = 64.31, + ["CD"] = 0, + }, + [177] = { + ["X"] = 55.88, + ["Y"] = 79.08, + ["CD"] = 0, + }, + [178] = { + ["X"] = 64.32, + ["Y"] = 44.07, + ["CD"] = 0, + }, + [179] = { + ["X"] = 68.89, + ["Y"] = 62.08, + ["CD"] = 0, + }, + [180] = { + ["X"] = 69.35, + ["Y"] = 60.39, + ["CD"] = 0, + }, + [181] = { + ["X"] = 65.94, + ["Y"] = 62.71, + ["CD"] = 0, + }, + [182] = { + ["X"] = 66.6, + ["Y"] = 60.36, + ["CD"] = 0, + }, + [183] = { + ["X"] = 46.02, + ["Y"] = 76.89, + ["CD"] = 0, + }, + [184] = { + ["X"] = 29.73, + ["Y"] = 55.09, + ["CD"] = 0, + }, + [185] = { + ["X"] = 48.35, + ["Y"] = 64.82, + ["CD"] = 0, + }, + }, + --Val'sharah / Dreamleaf + [1018] = { + [1] = { + ["X"] = 23.7, + ["Y"] = 73.12, + ["CD"] = 0, + }, + [2] = { + ["X"] = 22.52, + ["Y"] = 71.28, + ["CD"] = 0, + }, + [3] = { + ["X"] = 21.12, + ["Y"] = 70.47, + ["CD"] = 0, + }, + [4] = { + ["X"] = 20.56, + ["Y"] = 68.69, + ["CD"] = 0, + }, + [5] = { + ["X"] = 21.42, + ["Y"] = 67.02, + ["CD"] = 0, + }, + [6] = { + ["X"] = 23.97, + ["Y"] = 65.2, + ["CD"] = 0, + }, + [7] = { + ["X"] = 24.52, + ["Y"] = 66.6, + ["CD"] = 0, + }, + [8] = { + ["X"] = 31.99, + ["Y"] = 59.04, + ["CD"] = 0, + }, + [9] = { + ["X"] = 33.48, + ["Y"] = 60.6, + ["CD"] = 0, + }, + [10] = { + ["X"] = 35.38, + ["Y"] = 61.46, + ["CD"] = 0, + }, + [11] = { + ["X"] = 36.64, + ["Y"] = 60.88, + ["CD"] = 0, + }, + [12] = { + ["X"] = 38.63, + ["Y"] = 58.93, + ["CD"] = 0, + }, + [13] = { + ["X"] = 45.04, + ["Y"] = 58.46, + ["CD"] = 0, + }, + [14] = { + ["X"] = 46.38, + ["Y"] = 58.45, + ["CD"] = 0, + }, + [15] = { + ["X"] = 51.94, + ["Y"] = 65.28, + ["CD"] = 0, + }, + [16] = { + ["X"] = 52.39, + ["Y"] = 67.56, + ["CD"] = 0, + }, + [17] = { + ["X"] = 50.05, + ["Y"] = 71.58, + ["CD"] = 0, + }, + [18] = { + ["X"] = 49.84, + ["Y"] = 74.57, + ["CD"] = 0, + }, + [19] = { + ["X"] = 49.57, + ["Y"] = 78.07, + ["CD"] = 0, + }, + [20] = { + ["X"] = 48.9, + ["Y"] = 80.41, + ["CD"] = 0, + }, + [21] = { + ["X"] = 49.72, + ["Y"] = 81.52, + ["CD"] = 0, + }, + [22] = { + ["X"] = 49.75, + ["Y"] = 83.06, + ["CD"] = 0, + }, + [23] = { + ["X"] = 47.81, + ["Y"] = 88.73, + ["CD"] = 0, + }, + [24] = { + ["X"] = 44.54, + ["Y"] = 87.73, + ["CD"] = 0, + }, + [25] = { + ["X"] = 43.54, + ["Y"] = 84.84, + ["CD"] = 0, + }, + [26] = { + ["X"] = 42.98, + ["Y"] = 81.66, + ["CD"] = 0, + }, + [27] = { + ["X"] = 47.59, + ["Y"] = 79.41, + ["CD"] = 0, + }, + [28] = { + ["X"] = 49.11, + ["Y"] = 75.32, + ["CD"] = 0, + }, + [29] = { + ["X"] = 49.51, + ["Y"] = 74.06, + ["CD"] = 0, + }, + [30] = { + ["X"] = 51.33, + ["Y"] = 72.05, + ["CD"] = 0, + }, + [31] = { + ["X"] = 52.93, + ["Y"] = 71.06, + ["CD"] = 0, + }, + [32] = { + ["X"] = 55.42, + ["Y"] = 74.08, + ["CD"] = 0, + }, + [33] = { + ["X"] = 56.07, + ["Y"] = 74.88, + ["CD"] = 0, + }, + [34] = { + ["X"] = 56.84, + ["Y"] = 76.51, + ["CD"] = 0, + }, + [35] = { + ["X"] = 58.65, + ["Y"] = 76.39, + ["CD"] = 0, + }, + [36] = { + ["X"] = 58.57, + ["Y"] = 75.31, + ["CD"] = 0, + }, + [37] = { + ["X"] = 59.59, + ["Y"] = 74.16, + ["CD"] = 0, + }, + [38] = { + ["X"] = 60.35, + ["Y"] = 73.28, + ["CD"] = 0, + }, + [39] = { + ["X"] = 63.71, + ["Y"] = 76.36, + ["CD"] = 0, + }, + [40] = { + ["X"] = 64.29, + ["Y"] = 77.99, + ["CD"] = 0, + }, + [41] = { + ["X"] = 66.44, + ["Y"] = 80.68, + ["CD"] = 0, + }, + [42] = { + ["X"] = 65.94, + ["Y"] = 83.32, + ["CD"] = 0, + }, + [43] = { + ["X"] = 66.71, + ["Y"] = 85.68, + ["CD"] = 0, + }, + [44] = { + ["X"] = 66.43, + ["Y"] = 87.12, + ["CD"] = 0, + }, + [45] = { + ["X"] = 65.37, + ["Y"] = 88.22, + ["CD"] = 0, + }, + [46] = { + ["X"] = 64.91, + ["Y"] = 88.25, + ["CD"] = 0, + }, + [47] = { + ["X"] = 64.67, + ["Y"] = 87.32, + ["CD"] = 0, + }, + [48] = { + ["X"] = 63.61, + ["Y"] = 86.41, + ["CD"] = 0, + }, + [49] = { + ["X"] = 63.32, + ["Y"] = 84.05, + ["CD"] = 0, + }, + [50] = { + ["X"] = 61.95, + ["Y"] = 83.94, + ["CD"] = 0, + }, + [51] = { + ["X"] = 61.19, + ["Y"] = 76.71, + ["CD"] = 0, + }, + [52] = { + ["X"] = 59.54, + ["Y"] = 76.62, + ["CD"] = 0, + }, + [53] = { + ["X"] = 58.28, + ["Y"] = 75.22, + ["CD"] = 0, + }, + [54] = { + ["X"] = 68.01, + ["Y"] = 75.14, + ["CD"] = 0, + }, + [55] = { + ["X"] = 65.84, + ["Y"] = 77.38, + ["CD"] = 0, + }, + [56] = { + ["X"] = 57.15, + ["Y"] = 77.22, + ["CD"] = 0, + }, + [57] = { + ["X"] = 57.87, + ["Y"] = 71.9, + ["CD"] = 0, + }, + [58] = { + ["X"] = 59.68, + ["Y"] = 67.31, + ["CD"] = 0, + }, + [59] = { + ["X"] = 60.58, + ["Y"] = 71.85, + ["CD"] = 0, + }, + [60] = { + ["X"] = 61.97, + ["Y"] = 76.08, + ["CD"] = 0, + }, + [61] = { + ["X"] = 64.48, + ["Y"] = 67.54, + ["CD"] = 0, + }, + [62] = { + ["X"] = 51.7, + ["Y"] = 91.24, + ["CD"] = 0, + }, + [63] = { + ["X"] = 50.56, + ["Y"] = 72.37, + ["CD"] = 0, + }, + [64] = { + ["X"] = 42.67, + ["Y"] = 72.97, + ["CD"] = 0, + }, + [65] = { + ["X"] = 43.5, + ["Y"] = 76.94, + ["CD"] = 0, + }, + [66] = { + ["X"] = 45.96, + ["Y"] = 76.33, + ["CD"] = 0, + }, + [67] = { + ["X"] = 44.31, + ["Y"] = 81.03, + ["CD"] = 0, + }, + [68] = { + ["X"] = 46.76, + ["Y"] = 81.13, + ["CD"] = 0, + }, + [69] = { + ["X"] = 48.35, + ["Y"] = 78.45, + ["CD"] = 0, + }, + [70] = { + ["X"] = 45.13, + ["Y"] = 70.18, + ["CD"] = 0, + }, + [71] = { + ["X"] = 48.98, + ["Y"] = 86.21, + ["CD"] = 0, + }, + [72] = { + ["X"] = 43.79, + ["Y"] = 86.71, + ["CD"] = 0, + }, + [73] = { + ["X"] = 50.98, + ["Y"] = 82.3, + ["CD"] = 0, + }, + [74] = { + ["X"] = 51.27, + ["Y"] = 88.51, + ["CD"] = 0, + }, + [75] = { + ["X"] = 57.39, + ["Y"] = 70.12, + ["CD"] = 0, + }, + [76] = { + ["X"] = 52.47, + ["Y"] = 64.95, + ["CD"] = 0, + }, + [77] = { + ["X"] = 53.43, + ["Y"] = 51.13, + ["CD"] = 0, + }, + [78] = { + ["X"] = 60.66, + ["Y"] = 54.1, + ["CD"] = 0, + }, + [79] = { + ["X"] = 51.71, + ["Y"] = 64.2, + ["CD"] = 0, + }, + [80] = { + ["X"] = 62.26, + ["Y"] = 60.64, + ["CD"] = 0, + }, + [81] = { + ["X"] = 70.59, + ["Y"] = 51.89, + ["CD"] = 0, + }, + [82] = { + ["X"] = 66.56, + ["Y"] = 36.3, + ["CD"] = 0, + }, + [83] = { + ["X"] = 65.74, + ["Y"] = 46.08, + ["CD"] = 0, + }, + [84] = { + ["X"] = 61.47, + ["Y"] = 42.37, + ["CD"] = 0, + }, + [85] = { + ["X"] = 62.72, + ["Y"] = 33.4, + ["CD"] = 0, + }, + [86] = { + ["X"] = 45.35, + ["Y"] = 55.3, + ["CD"] = 0, + }, + [87] = { + ["X"] = 38.59, + ["Y"] = 63.67, + ["CD"] = 0, + }, + [88] = { + ["X"] = 38.92, + ["Y"] = 54.63, + ["CD"] = 0, + }, + [89] = { + ["X"] = 61.84, + ["Y"] = 85.27, + ["CD"] = 0, + }, + [90] = { + ["X"] = 60.08, + ["Y"] = 80.47, + ["CD"] = 0, + }, + [91] = { + ["X"] = 52.26, + ["Y"] = 72.07, + ["CD"] = 0, + }, + [92] = { + ["X"] = 49.99, + ["Y"] = 70.4, + ["CD"] = 0, + }, + [93] = { + ["X"] = 45.26, + ["Y"] = 67.42, + ["CD"] = 0, + }, + [94] = { + ["X"] = 42.47, + ["Y"] = 80.28, + ["CD"] = 0, + }, + [95] = { + ["X"] = 45.62, + ["Y"] = 81.42, + ["CD"] = 0, + }, + [96] = { + ["X"] = 46.8, + ["Y"] = 74.09, + ["CD"] = 0, + }, + [97] = { + ["X"] = 58.36, + ["Y"] = 92.03, + ["CD"] = 0, + }, + [98] = { + ["X"] = 55.21, + ["Y"] = 78.88, + ["CD"] = 0, + }, + [99] = { + ["X"] = 61.2, + ["Y"] = 77.36, + ["CD"] = 0, + }, + [100] = { + ["X"] = 62.36, + ["Y"] = 65.85, + ["CD"] = 0, + }, + [101] = { + ["X"] = 49.05, + ["Y"] = 65.61, + ["CD"] = 0, + }, + [102] = { + ["X"] = 56.55, + ["Y"] = 64.33, + ["CD"] = 0, + }, + [103] = { + ["X"] = 56.67, + ["Y"] = 56.33, + ["CD"] = 0, + }, + [104] = { + ["X"] = 53.25, + ["Y"] = 52.24, + ["CD"] = 0, + }, + [105] = { + ["X"] = 63.74, + ["Y"] = 50.57, + ["CD"] = 0, + }, + [106] = { + ["X"] = 67.05, + ["Y"] = 55.44, + ["CD"] = 0, + }, + [107] = { + ["X"] = 68.83, + ["Y"] = 44.28, + ["CD"] = 0, + }, + [108] = { + ["X"] = 65.9, + ["Y"] = 41.14, + ["CD"] = 0, + }, + [109] = { + ["X"] = 65.95, + ["Y"] = 37.16, + ["CD"] = 0, + }, + [110] = { + ["X"] = 60.47, + ["Y"] = 33.98, + ["CD"] = 0, + }, + [111] = { + ["X"] = 58.38, + ["Y"] = 33.52, + ["CD"] = 0, + }, + [112] = { + ["X"] = 56.33, + ["Y"] = 44.4, + ["CD"] = 0, + }, + [113] = { + ["X"] = 56.06, + ["Y"] = 82.86, + ["CD"] = 0, + }, + [114] = { + ["X"] = 55.3, + ["Y"] = 55.78, + ["CD"] = 0, + }, + [115] = { + ["X"] = 55.56, + ["Y"] = 50.91, + ["CD"] = 0, + }, + [116] = { + ["X"] = 46.27, + ["Y"] = 54.85, + ["CD"] = 0, + }, + [117] = { + ["X"] = 37.51, + ["Y"] = 56.24, + ["CD"] = 0, + }, + [118] = { + ["X"] = 38.25, + ["Y"] = 57.4, + ["CD"] = 0, + }, + [119] = { + ["X"] = 41.46, + ["Y"] = 52.33, + ["CD"] = 0, + }, + [120] = { + ["X"] = 38.87, + ["Y"] = 61.1, + ["CD"] = 0, + }, + [121] = { + ["X"] = 47.72, + ["Y"] = 54.92, + ["CD"] = 0, + }, + [122] = { + ["X"] = 50.9, + ["Y"] = 43.4, + ["CD"] = 0, + }, + [123] = { + ["X"] = 46.52, + ["Y"] = 36.21, + ["CD"] = 0, + }, + [124] = { + ["X"] = 60.77, + ["Y"] = 63.01, + ["CD"] = 0, + }, + [125] = { + ["X"] = 58.67, + ["Y"] = 70.62, + ["CD"] = 0, + }, + [126] = { + ["X"] = 65.76, + ["Y"] = 68.15, + ["CD"] = 0, + }, + [127] = { + ["X"] = 62.87, + ["Y"] = 83.35, + ["CD"] = 0, + }, + [128] = { + ["X"] = 57.4, + ["Y"] = 88.53, + ["CD"] = 0, + }, + [129] = { + ["X"] = 56.11, + ["Y"] = 85.88, + ["CD"] = 0, + }, + [130] = { + ["X"] = 54.6, + ["Y"] = 83.39, + ["CD"] = 0, + }, + [131] = { + ["X"] = 56.05, + ["Y"] = 79.19, + ["CD"] = 0, + }, + }, + --Suramar / Starlight Rose + [1033] = { + [1] = { + ["X"] = 39.81, + ["Y"] = 55.75, + ["CD"] = 0, + }, + [2] = { + ["X"] = 35.72, + ["Y"] = 44.58, + ["CD"] = 0, + }, + [3] = { + ["X"] = 42.48, + ["Y"] = 62.87, + ["CD"] = 0, + }, + [4] = { + ["X"] = 36.77, + ["Y"] = 52.88, + ["CD"] = 0, + }, + [5] = { + ["X"] = 39.05, + ["Y"] = 52.08, + ["CD"] = 0, + }, + [6] = { + ["X"] = 33.14, + ["Y"] = 42.5, + ["CD"] = 0, + }, + [7] = { + ["X"] = 28.77, + ["Y"] = 41.26, + ["CD"] = 0, + }, + [8] = { + ["X"] = 31.6, + ["Y"] = 36.23, + ["CD"] = 0, + }, + [9] = { + ["X"] = 30.9, + ["Y"] = 38.04, + ["CD"] = 0, + }, + [10] = { + ["X"] = 31.8, + ["Y"] = 38.92, + ["CD"] = 0, + }, + [11] = { + ["X"] = 34.05, + ["Y"] = 38.76, + ["CD"] = 0, + }, + [12] = { + ["X"] = 36.44, + ["Y"] = 42.6, + ["CD"] = 0, + }, + [13] = { + ["X"] = 35.2, + ["Y"] = 38.64, + ["CD"] = 0, + }, + [14] = { + ["X"] = 35.24, + ["Y"] = 43, + ["CD"] = 0, + }, + [15] = { + ["X"] = 47.15, + ["Y"] = 41.25, + ["CD"] = 0, + }, + [16] = { + ["X"] = 44.86, + ["Y"] = 35.75, + ["CD"] = 0, + }, + [17] = { + ["X"] = 44.5, + ["Y"] = 32.66, + ["CD"] = 0, + }, + [18] = { + ["X"] = 47.89, + ["Y"] = 30.93, + ["CD"] = 0, + }, + [19] = { + ["X"] = 45.14, + ["Y"] = 26.9, + ["CD"] = 0, + }, + [20] = { + ["X"] = 42.73, + ["Y"] = 27.39, + ["CD"] = 0, + }, + [21] = { + ["X"] = 40.94, + ["Y"] = 29.97, + ["CD"] = 0, + }, + [22] = { + ["X"] = 40.74, + ["Y"] = 33.28, + ["CD"] = 0, + }, + [23] = { + ["X"] = 41.44, + ["Y"] = 24.59, + ["CD"] = 0, + }, + [24] = { + ["X"] = 39.62, + ["Y"] = 26.39, + ["CD"] = 0, + }, + [25] = { + ["X"] = 38.91, + ["Y"] = 24.83, + ["CD"] = 0, + }, + [26] = { + ["X"] = 37.09, + ["Y"] = 29.05, + ["CD"] = 0, + }, + [27] = { + ["X"] = 41.13, + ["Y"] = 37.95, + ["CD"] = 0, + }, + [28] = { + ["X"] = 41.61, + ["Y"] = 40.34, + ["CD"] = 0, + }, + [29] = { + ["X"] = 44.23, + ["Y"] = 39.51, + ["CD"] = 0, + }, + [30] = { + ["X"] = 43.5, + ["Y"] = 50.87, + ["CD"] = 0, + }, + [31] = { + ["X"] = 37.4, + ["Y"] = 62.25, + ["CD"] = 0, + }, + [32] = { + ["X"] = 36.04, + ["Y"] = 87.52, + ["CD"] = 0, + }, + [33] = { + ["X"] = 35.11, + ["Y"] = 92.37, + ["CD"] = 0, + }, + [34] = { + ["X"] = 32.33, + ["Y"] = 89.97, + ["CD"] = 0, + }, + [35] = { + ["X"] = 33.84, + ["Y"] = 50.23, + ["CD"] = 0, + }, + [36] = { + ["X"] = 42.8, + ["Y"] = 73.43, + ["CD"] = 0, + }, + [37] = { + ["X"] = 38.64, + ["Y"] = 62.53, + ["CD"] = 0, + }, + [38] = { + ["X"] = 39.08, + ["Y"] = 56.5, + ["CD"] = 0, + }, + [39] = { + ["X"] = 32.43, + ["Y"] = 50.36, + ["CD"] = 0, + }, + [40] = { + ["X"] = 33.08, + ["Y"] = 49.61, + ["CD"] = 0, + }, + [41] = { + ["X"] = 35.52, + ["Y"] = 51.77, + ["CD"] = 0, + }, + [42] = { + ["X"] = 38.31, + ["Y"] = 52.42, + ["CD"] = 0, + }, + [43] = { + ["X"] = 45.6, + ["Y"] = 50.48, + ["CD"] = 0, + }, + [44] = { + ["X"] = 61.95, + ["Y"] = 44.86, + ["CD"] = 0, + }, + [45] = { + ["X"] = 63.5, + ["Y"] = 46.54, + ["CD"] = 0, + }, + [46] = { + ["X"] = 58.6, + ["Y"] = 42.56, + ["CD"] = 0, + }, + [47] = { + ["X"] = 60.02, + ["Y"] = 48.16, + ["CD"] = 0, + }, + [48] = { + ["X"] = 59.87, + ["Y"] = 45.18, + ["CD"] = 0, + }, + [49] = { + ["X"] = 62.63, + ["Y"] = 41.77, + ["CD"] = 0, + }, + [50] = { + ["X"] = 56.64, + ["Y"] = 47.66, + ["CD"] = 0, + }, + [51] = { + ["X"] = 47.39, + ["Y"] = 52.94, + ["CD"] = 0, + }, + [52] = { + ["X"] = 44.57, + ["Y"] = 49.65, + ["CD"] = 0, + }, + [53] = { + ["X"] = 42.04, + ["Y"] = 48.91, + ["CD"] = 0, + }, + [54] = { + ["X"] = 39.9, + ["Y"] = 52.72, + ["CD"] = 0, + }, + [55] = { + ["X"] = 37.97, + ["Y"] = 54.37, + ["CD"] = 0, + }, + [56] = { + ["X"] = 34.36, + ["Y"] = 51.55, + ["CD"] = 0, + }, + [57] = { + ["X"] = 33.41, + ["Y"] = 47.94, + ["CD"] = 0, + }, + [58] = { + ["X"] = 33.44, + ["Y"] = 44.86, + ["CD"] = 0, + }, + [59] = { + ["X"] = 31.25, + ["Y"] = 9.46, + ["CD"] = 0, + }, + [60] = { + ["X"] = 69.25, + ["Y"] = 61.49, + ["CD"] = 0, + }, + [61] = { + ["X"] = 58.41, + ["Y"] = 41.84, + ["CD"] = 0, + }, + [62] = { + ["X"] = 65.12, + ["Y"] = 38.6, + ["CD"] = 0, + }, + [63] = { + ["X"] = 59.11, + ["Y"] = 49.07, + ["CD"] = 0, + }, + [64] = { + ["X"] = 56.77, + ["Y"] = 45.01, + ["CD"] = 0, + }, + [65] = { + ["X"] = 56.43, + ["Y"] = 49.48, + ["CD"] = 0, + }, + [66] = { + ["X"] = 33.54, + ["Y"] = 51.74, + ["CD"] = 0, + }, + [67] = { + ["X"] = 47.33, + ["Y"] = 28.88, + ["CD"] = 0, + }, + [68] = { + ["X"] = 43.34, + ["Y"] = 24.73, + ["CD"] = 0, + }, + [69] = { + ["X"] = 42.73, + ["Y"] = 24.82, + ["CD"] = 0, + }, + [70] = { + ["X"] = 40.48, + ["Y"] = 16.13, + ["CD"] = 0, + }, + [71] = { + ["X"] = 40.25, + ["Y"] = 30.54, + ["CD"] = 0, + }, + [72] = { + ["X"] = 40.13, + ["Y"] = 34.03, + ["CD"] = 0, + }, + [73] = { + ["X"] = 40.77, + ["Y"] = 38.37, + ["CD"] = 0, + }, + [74] = { + ["X"] = 39.24, + ["Y"] = 40.02, + ["CD"] = 0, + }, + [75] = { + ["X"] = 41.77, + ["Y"] = 41.49, + ["CD"] = 0, + }, + [76] = { + ["X"] = 25.56, + ["Y"] = 34.6, + ["CD"] = 0, + }, + [77] = { + ["X"] = 20.75, + ["Y"] = 31, + ["CD"] = 0, + }, + [78] = { + ["X"] = 20.51, + ["Y"] = 32.3, + ["CD"] = 0, + }, + [79] = { + ["X"] = 18.49, + ["Y"] = 32.63, + ["CD"] = 0, + }, + [80] = { + ["X"] = 19.37, + ["Y"] = 34.52, + ["CD"] = 0, + }, + [81] = { + ["X"] = 17.33, + ["Y"] = 36.15, + ["CD"] = 0, + }, + [82] = { + ["X"] = 17.71, + ["Y"] = 39.94, + ["CD"] = 0, + }, + [83] = { + ["X"] = 16.38, + ["Y"] = 42.46, + ["CD"] = 0, + }, + [84] = { + ["X"] = 18.42, + ["Y"] = 41.87, + ["CD"] = 0, + }, + [85] = { + ["X"] = 19.6, + ["Y"] = 38.5, + ["CD"] = 0, + }, + [86] = { + ["X"] = 22.1, + ["Y"] = 36.48, + ["CD"] = 0, + }, + [87] = { + ["X"] = 27.33, + ["Y"] = 39.01, + ["CD"] = 0, + }, + [88] = { + ["X"] = 26.78, + ["Y"] = 40.82, + ["CD"] = 0, + }, + [89] = { + ["X"] = 26.56, + ["Y"] = 45.72, + ["CD"] = 0, + }, + [90] = { + ["X"] = 24.46, + ["Y"] = 48.15, + ["CD"] = 0, + }, + [91] = { + ["X"] = 32.32, + ["Y"] = 47.09, + ["CD"] = 0, + }, + [92] = { + ["X"] = 29.16, + ["Y"] = 44.53, + ["CD"] = 0, + }, + [93] = { + ["X"] = 30, + ["Y"] = 49.89, + ["CD"] = 0, + }, + [94] = { + ["X"] = 28.39, + ["Y"] = 40.18, + ["CD"] = 0, + }, + [95] = { + ["X"] = 25.95, + ["Y"] = 45.19, + ["CD"] = 0, + }, + [96] = { + ["X"] = 26.26, + ["Y"] = 39.38, + ["CD"] = 0, + }, + [97] = { + ["X"] = 25.49, + ["Y"] = 38.93, + ["CD"] = 0, + }, + [98] = { + ["X"] = 23.15, + ["Y"] = 37.72, + ["CD"] = 0, + }, + [99] = { + ["X"] = 16.41, + ["Y"] = 23.78, + ["CD"] = 0, + }, + [100] = { + ["X"] = 49, + ["Y"] = 41.35, + ["CD"] = 0, + }, + [101] = { + ["X"] = 49.79, + ["Y"] = 40.3, + ["CD"] = 0, + }, + [102] = { + ["X"] = 58.99, + ["Y"] = 42.05, + ["CD"] = 0, + }, + [103] = { + ["X"] = 60.11, + ["Y"] = 46.19, + ["CD"] = 0, + }, + [104] = { + ["X"] = 64.2, + ["Y"] = 38.74, + ["CD"] = 0, + }, + [105] = { + ["X"] = 66.39, + ["Y"] = 45.24, + ["CD"] = 0, + }, + [106] = { + ["X"] = 65.32, + ["Y"] = 46.64, + ["CD"] = 0, + }, + [107] = { + ["X"] = 64.5, + ["Y"] = 54.5, + ["CD"] = 0, + }, + [108] = { + ["X"] = 69.71, + ["Y"] = 59.98, + ["CD"] = 0, + }, + [109] = { + ["X"] = 19.07, + ["Y"] = 37.54, + ["CD"] = 0, + }, + [110] = { + ["X"] = 17.42, + ["Y"] = 32.72, + ["CD"] = 0, + }, + [111] = { + ["X"] = 17.21, + ["Y"] = 41.12, + ["CD"] = 0, + }, + [112] = { + ["X"] = 16.86, + ["Y"] = 43.6, + ["CD"] = 0, + }, + [113] = { + ["X"] = 16.26, + ["Y"] = 48.14, + ["CD"] = 0, + }, + [114] = { + ["X"] = 19.16, + ["Y"] = 48.74, + ["CD"] = 0, + }, + [115] = { + ["X"] = 22.39, + ["Y"] = 51.94, + ["CD"] = 0, + }, + [116] = { + ["X"] = 29.46, + ["Y"] = 92.26, + ["CD"] = 0, + }, + [117] = { + ["X"] = 39.03, + ["Y"] = 83.7, + ["CD"] = 0, + }, + [118] = { + ["X"] = 39.34, + ["Y"] = 86.92, + ["CD"] = 0, + }, + [119] = { + ["X"] = 36.92, + ["Y"] = 89.37, + ["CD"] = 0, + }, + [120] = { + ["X"] = 33.51, + ["Y"] = 90.03, + ["CD"] = 0, + }, + [121] = { + ["X"] = 32.72, + ["Y"] = 91.79, + ["CD"] = 0, + }, + [122] = { + ["X"] = 31.4, + ["Y"] = 53.54, + ["CD"] = 0, + }, + [123] = { + ["X"] = 41.7, + ["Y"] = 77.86, + ["CD"] = 0, + }, + [124] = { + ["X"] = 41.23, + ["Y"] = 65.76, + ["CD"] = 0, + }, + [125] = { + ["X"] = 42.32, + ["Y"] = 49.6, + ["CD"] = 0, + }, + [126] = { + ["X"] = 18.77, + ["Y"] = 21.58, + ["CD"] = 0, + }, + [127] = { + ["X"] = 31.01, + ["Y"] = 27.5, + ["CD"] = 0, + }, + [128] = { + ["X"] = 37.56, + ["Y"] = 28.08, + ["CD"] = 0, + }, + [129] = { + ["X"] = 39.7, + ["Y"] = 14.87, + ["CD"] = 0, + }, + [130] = { + ["X"] = 38.42, + ["Y"] = 14.58, + ["CD"] = 0, + }, + [131] = { + ["X"] = 30.29, + ["Y"] = 8.71, + ["CD"] = 0, + }, + [132] = { + ["X"] = 29.37, + ["Y"] = 14.46, + ["CD"] = 0, + }, + [133] = { + ["X"] = 30.56, + ["Y"] = 14.7, + ["CD"] = 0, + }, + [134] = { + ["X"] = 32.07, + ["Y"] = 17.45, + ["CD"] = 0, + }, + [135] = { + ["X"] = 32.33, + ["Y"] = 19.52, + ["CD"] = 0, + }, + [136] = { + ["X"] = 33.99, + ["Y"] = 18.93, + ["CD"] = 0, + }, + [137] = { + ["X"] = 33.25, + ["Y"] = 14.84, + ["CD"] = 0, + }, + [138] = { + ["X"] = 35, + ["Y"] = 13.71, + ["CD"] = 0, + }, + [139] = { + ["X"] = 35.59, + ["Y"] = 18.08, + ["CD"] = 0, + }, + [140] = { + ["X"] = 35.61, + ["Y"] = 21.63, + ["CD"] = 0, + }, + [141] = { + ["X"] = 38.83, + ["Y"] = 26.26, + ["CD"] = 0, + }, + [142] = { + ["X"] = 41.23, + ["Y"] = 25.46, + ["CD"] = 0, + }, + [143] = { + ["X"] = 57.44, + ["Y"] = 45.46, + ["CD"] = 0, + }, + [144] = { + ["X"] = 68.31, + ["Y"] = 58.27, + ["CD"] = 0, + }, + [145] = { + ["X"] = 63.96, + ["Y"] = 50.18, + ["CD"] = 0, + }, + [146] = { + ["X"] = 64.22, + ["Y"] = 47.41, + ["CD"] = 0, + }, + [147] = { + ["X"] = 66.89, + ["Y"] = 42.57, + ["CD"] = 0, + }, + [148] = { + ["X"] = 83.41, + ["Y"] = 58.57, + ["CD"] = 0, + }, + [149] = { + ["X"] = 70.07, + ["Y"] = 61.17, + ["CD"] = 0, + }, + [150] = { + ["X"] = 70.15, + ["Y"] = 64.11, + ["CD"] = 0, + }, + [151] = { + ["X"] = 61.37, + ["Y"] = 51.89, + ["CD"] = 0, + }, + [152] = { + ["X"] = 32.72, + ["Y"] = 43.86, + ["CD"] = 0, + }, + [153] = { + ["X"] = 26.37, + ["Y"] = 46.84, + ["CD"] = 0, + }, + [154] = { + ["X"] = 24.62, + ["Y"] = 44.43, + ["CD"] = 0, + }, + [155] = { + ["X"] = 23.77, + ["Y"] = 47.26, + ["CD"] = 0, + }, + [156] = { + ["X"] = 20.37, + ["Y"] = 45.63, + ["CD"] = 0, + }, + [157] = { + ["X"] = 20.94, + ["Y"] = 52.22, + ["CD"] = 0, + }, + [158] = { + ["X"] = 22.54, + ["Y"] = 60.01, + ["CD"] = 0, + }, + [159] = { + ["X"] = 26.15, + ["Y"] = 48.01, + ["CD"] = 0, + }, + [160] = { + ["X"] = 35.27, + ["Y"] = 49.54, + ["CD"] = 0, + }, + [161] = { + ["X"] = 56.75, + ["Y"] = 43.49, + ["CD"] = 0, + }, + [162] = { + ["X"] = 45.91, + ["Y"] = 39.37, + ["CD"] = 0, + }, + [163] = { + ["X"] = 37.77, + ["Y"] = 36.78, + ["CD"] = 0, + }, + [164] = { + ["X"] = 38.42, + ["Y"] = 40.33, + ["CD"] = 0, + }, + [165] = { + ["X"] = 36.86, + ["Y"] = 40.44, + ["CD"] = 0, + }, + [166] = { + ["X"] = 40.51, + ["Y"] = 49.16, + ["CD"] = 0, + }, + [167] = { + ["X"] = 28.02, + ["Y"] = 37.01, + ["CD"] = 0, + }, + [168] = { + ["X"] = 30.02, + ["Y"] = 29.11, + ["CD"] = 0, + }, + [169] = { + ["X"] = 25.06, + ["Y"] = 34.96, + ["CD"] = 0, + }, + [170] = { + ["X"] = 32.03, + ["Y"] = 34.06, + ["CD"] = 0, + }, + [171] = { + ["X"] = 19.5, + ["Y"] = 20.92, + ["CD"] = 0, + }, + [172] = { + ["X"] = 19.89, + ["Y"] = 22.09, + ["CD"] = 0, + }, + [173] = { + ["X"] = 17.85, + ["Y"] = 23.72, + ["CD"] = 0, + }, + [174] = { + ["X"] = 27.79, + ["Y"] = 31.22, + ["CD"] = 0, + }, + [175] = { + ["X"] = 28.22, + ["Y"] = 29.91, + ["CD"] = 0, + }, + [176] = { + ["X"] = 30.4, + ["Y"] = 30.73, + ["CD"] = 0, + }, + [177] = { + ["X"] = 30.98, + ["Y"] = 29.01, + ["CD"] = 0, + }, + [178] = { + ["X"] = 33.48, + ["Y"] = 24.88, + ["CD"] = 0, + }, + [179] = { + ["X"] = 29.81, + ["Y"] = 26.02, + ["CD"] = 0, + }, + [180] = { + ["X"] = 31.68, + ["Y"] = 23.23, + ["CD"] = 0, + }, + [181] = { + ["X"] = 29.51, + ["Y"] = 34.53, + ["CD"] = 0, + }, + [182] = { + ["X"] = 30.87, + ["Y"] = 31.18, + ["CD"] = 0, + }, + [183] = { + ["X"] = 18.62, + ["Y"] = 39.57, + ["CD"] = 0, + }, + [184] = { + ["X"] = 16.63, + ["Y"] = 40.97, + ["CD"] = 0, + }, + [185] = { + ["X"] = 65.55, + ["Y"] = 41.61, + ["CD"] = 0, + }, + [186] = { + ["X"] = 39.76, + ["Y"] = 81.81, + ["CD"] = 0, + }, + [187] = { + ["X"] = 39.61, + ["Y"] = 82.6, + ["CD"] = 0, + }, + [188] = { + ["X"] = 34.98, + ["Y"] = 60.06, + ["CD"] = 0, + }, + [189] = { + ["X"] = 28.25, + ["Y"] = 38.53, + ["CD"] = 0, + }, + [190] = { + ["X"] = 27.08, + ["Y"] = 36.05, + ["CD"] = 0, + }, + [191] = { + ["X"] = 26.86, + ["Y"] = 33.37, + ["CD"] = 0, + }, + [192] = { + ["X"] = 23.52, + ["Y"] = 29.91, + ["CD"] = 0, + }, + [193] = { + ["X"] = 22.11, + ["Y"] = 31.32, + ["CD"] = 0, + }, + [194] = { + ["X"] = 19.89, + ["Y"] = 29.56, + ["CD"] = 0, + }, + [195] = { + ["X"] = 19.46, + ["Y"] = 24.71, + ["CD"] = 0, + }, + [196] = { + ["X"] = 18.28, + ["Y"] = 23.88, + ["CD"] = 0, + }, + [197] = { + ["X"] = 18.65, + ["Y"] = 22.03, + ["CD"] = 0, + }, + [198] = { + ["X"] = 18.44, + ["Y"] = 29.37, + ["CD"] = 0, + }, + [199] = { + ["X"] = 18.8, + ["Y"] = 34.21, + ["CD"] = 0, + }, + [200] = { + ["X"] = 16.54, + ["Y"] = 36.58, + ["CD"] = 0, + }, + [201] = { + ["X"] = 15.1, + ["Y"] = 37.18, + ["CD"] = 0, + }, + [202] = { + ["X"] = 15.82, + ["Y"] = 43.16, + ["CD"] = 0, + }, + [203] = { + ["X"] = 17.16, + ["Y"] = 44.35, + ["CD"] = 0, + }, + [204] = { + ["X"] = 16.96, + ["Y"] = 46.53, + ["CD"] = 0, + }, + [205] = { + ["X"] = 16.74, + ["Y"] = 47.66, + ["CD"] = 0, + }, + [206] = { + ["X"] = 17.09, + ["Y"] = 49.29, + ["CD"] = 0, + }, + [207] = { + ["X"] = 19.91, + ["Y"] = 54.45, + ["CD"] = 0, + }, + [208] = { + ["X"] = 22.08, + ["Y"] = 56.33, + ["CD"] = 0, + }, + [209] = { + ["X"] = 25.63, + ["Y"] = 52.48, + ["CD"] = 0, + }, + [210] = { + ["X"] = 30.72, + ["Y"] = 50.96, + ["CD"] = 0, + }, + [211] = { + ["X"] = 30.33, + ["Y"] = 47.3, + ["CD"] = 0, + }, + [212] = { + ["X"] = 48.81, + ["Y"] = 47.54, + ["CD"] = 0, + }, + [213] = { + ["X"] = 56.22, + ["Y"] = 48.62, + ["CD"] = 0, + }, + [214] = { + ["X"] = 64.92, + ["Y"] = 49.18, + ["CD"] = 0, + }, + [215] = { + ["X"] = 61.44, + ["Y"] = 50.95, + ["CD"] = 0, + }, + [216] = { + ["X"] = 36.79, + ["Y"] = 54.66, + ["CD"] = 0, + }, + [217] = { + ["X"] = 35.5, + ["Y"] = 50.36, + ["CD"] = 0, + }, + [218] = { + ["X"] = 39.32, + ["Y"] = 54.43, + ["CD"] = 0, + }, + [219] = { + ["X"] = 40.41, + ["Y"] = 73, + ["CD"] = 0, + }, + [220] = { + ["X"] = 41.04, + ["Y"] = 81.46, + ["CD"] = 0, + }, + [221] = { + ["X"] = 39.95, + ["Y"] = 84.73, + ["CD"] = 0, + }, + [222] = { + ["X"] = 38.4, + ["Y"] = 85.72, + ["CD"] = 0, + }, + [223] = { + ["X"] = 36.71, + ["Y"] = 59.7, + ["CD"] = 0, + }, + [224] = { + ["X"] = 34.82, + ["Y"] = 56.58, + ["CD"] = 0, + }, + [225] = { + ["X"] = 33.71, + ["Y"] = 59.85, + ["CD"] = 0, + }, + [226] = { + ["X"] = 34.06, + ["Y"] = 55.75, + ["CD"] = 0, + }, + [227] = { + ["X"] = 34.31, + ["Y"] = 57.33, + ["CD"] = 0, + }, + [228] = { + ["X"] = 37.68, + ["Y"] = 62.77, + ["CD"] = 0, + }, + [229] = { + ["X"] = 35.41, + ["Y"] = 54.68, + ["CD"] = 0, + }, + [230] = { + ["X"] = 37.52, + ["Y"] = 59.08, + ["CD"] = 0, + }, + [231] = { + ["X"] = 43.46, + ["Y"] = 60.61, + ["CD"] = 0, + }, + [232] = { + ["X"] = 35.76, + ["Y"] = 60.63, + ["CD"] = 0, + }, + [233] = { + ["X"] = 34.78, + ["Y"] = 61.94, + ["CD"] = 0, + }, + [234] = { + ["X"] = 45.27, + ["Y"] = 56.2, + ["CD"] = 0, + }, + [235] = { + ["X"] = 34.17, + ["Y"] = 48.76, + ["CD"] = 0, + }, + [236] = { + ["X"] = 43.64, + ["Y"] = 48.63, + ["CD"] = 0, + }, + [237] = { + ["X"] = 61.44, + ["Y"] = 41.76, + ["CD"] = 0, + }, + [238] = { + ["X"] = 63.63, + ["Y"] = 45.02, + ["CD"] = 0, + }, + [239] = { + ["X"] = 65.11, + ["Y"] = 50.4, + ["CD"] = 0, + }, + [240] = { + ["X"] = 65.37, + ["Y"] = 48.57, + ["CD"] = 0, + }, + [241] = { + ["X"] = 81.14, + ["Y"] = 56.47, + ["CD"] = 0, + }, + [242] = { + ["X"] = 65.83, + ["Y"] = 55.28, + ["CD"] = 0, + }, + [243] = { + ["X"] = 66.85, + ["Y"] = 54.65, + ["CD"] = 0, + }, + [244] = { + ["X"] = 69.17, + ["Y"] = 58.17, + ["CD"] = 0, + }, + [245] = { + ["X"] = 59.14, + ["Y"] = 47.81, + ["CD"] = 0, + }, + [246] = { + ["X"] = 48.38, + ["Y"] = 49.33, + ["CD"] = 0, + }, + [247] = { + ["X"] = 39.76, + ["Y"] = 57.54, + ["CD"] = 0, + }, + [248] = { + ["X"] = 36.28, + ["Y"] = 53.87, + ["CD"] = 0, + }, + [249] = { + ["X"] = 31.05, + ["Y"] = 47.28, + ["CD"] = 0, + }, + [250] = { + ["X"] = 31.17, + ["Y"] = 38.53, + ["CD"] = 0, + }, + [251] = { + ["X"] = 31.24, + ["Y"] = 36.76, + ["CD"] = 0, + }, + [252] = { + ["X"] = 32.9, + ["Y"] = 36.99, + ["CD"] = 0, + }, + [253] = { + ["X"] = 36.43, + ["Y"] = 43.67, + ["CD"] = 0, + }, + [254] = { + ["X"] = 40.71, + ["Y"] = 41.71, + ["CD"] = 0, + }, + [255] = { + ["X"] = 47.22, + ["Y"] = 39.89, + ["CD"] = 0, + }, + [256] = { + ["X"] = 46.02, + ["Y"] = 39.82, + ["CD"] = 0, + }, + [257] = { + ["X"] = 51.52, + ["Y"] = 39.51, + ["CD"] = 0, + }, + [258] = { + ["X"] = 47.28, + ["Y"] = 31.95, + ["CD"] = 0, + }, + [259] = { + ["X"] = 46.79, + ["Y"] = 29.6, + ["CD"] = 0, + }, + [260] = { + ["X"] = 49.21, + ["Y"] = 35.3, + ["CD"] = 0, + }, + [261] = { + ["X"] = 46.79, + ["Y"] = 28.31, + ["CD"] = 0, + }, + [262] = { + ["X"] = 47.03, + ["Y"] = 32.84, + ["CD"] = 0, + }, + [263] = { + ["X"] = 44.54, + ["Y"] = 26.85, + ["CD"] = 0, + }, + [264] = { + ["X"] = 34.55, + ["Y"] = 42.86, + ["CD"] = 0, + }, + [265] = { + ["X"] = 32.17, + ["Y"] = 42.16, + ["CD"] = 0, + }, + [266] = { + ["X"] = 29.3, + ["Y"] = 38.43, + ["CD"] = 0, + }, + [267] = { + ["X"] = 28.53, + ["Y"] = 35.72, + ["CD"] = 0, + }, + [268] = { + ["X"] = 26, + ["Y"] = 36.58, + ["CD"] = 0, + }, + [269] = { + ["X"] = 22.09, + ["Y"] = 33.07, + ["CD"] = 0, + }, + [270] = { + ["X"] = 19.48, + ["Y"] = 39.91, + ["CD"] = 0, + }, + [271] = { + ["X"] = 23.65, + ["Y"] = 39.58, + ["CD"] = 0, + }, + [272] = { + ["X"] = 26.73, + ["Y"] = 70.09, + ["CD"] = 0, + }, + [273] = { + ["X"] = 26.47, + ["Y"] = 23.31, + ["CD"] = 0, + }, + [274] = { + ["X"] = 26.75, + ["Y"] = 25.15, + ["CD"] = 0, + }, + [275] = { + ["X"] = 17.62, + ["Y"] = 23.05, + ["CD"] = 0, + }, + [276] = { + ["X"] = 21.23, + ["Y"] = 20.19, + ["CD"] = 0, + }, + [277] = { + ["X"] = 18.05, + ["Y"] = 27.9, + ["CD"] = 0, + }, + [278] = { + ["X"] = 24.23, + ["Y"] = 33.84, + ["CD"] = 0, + }, + [279] = { + ["X"] = 28.11, + ["Y"] = 32.96, + ["CD"] = 0, + }, + [280] = { + ["X"] = 31.04, + ["Y"] = 32.91, + ["CD"] = 0, + }, + [281] = { + ["X"] = 31.01, + ["Y"] = 33.51, + ["CD"] = 0, + }, + [282] = { + ["X"] = 30.66, + ["Y"] = 33.03, + ["CD"] = 0, + }, + [283] = { + ["X"] = 35.73, + ["Y"] = 28.25, + ["CD"] = 0, + }, + [284] = { + ["X"] = 36.92, + ["Y"] = 25.87, + ["CD"] = 0, + }, + [285] = { + ["X"] = 37.87, + ["Y"] = 25.92, + ["CD"] = 0, + }, + [286] = { + ["X"] = 40.23, + ["Y"] = 24.81, + ["CD"] = 0, + }, + [287] = { + ["X"] = 26.06, + ["Y"] = 37.05, + ["CD"] = 0, + }, + [288] = { + ["X"] = 59.27, + ["Y"] = 46.57, + ["CD"] = 0, + }, + [289] = { + ["X"] = 60.04, + ["Y"] = 43.43, + ["CD"] = 0, + }, + [290] = { + ["X"] = 60.17, + ["Y"] = 40.92, + ["CD"] = 0, + }, + [291] = { + ["X"] = 34.94, + ["Y"] = 44.87, + ["CD"] = 0, + }, + [292] = { + ["X"] = 62.57, + ["Y"] = 50.61, + ["CD"] = 0, + }, + [293] = { + ["X"] = 64.35, + ["Y"] = 42.6, + ["CD"] = 0, + }, + [294] = { + ["X"] = 59.11, + ["Y"] = 50.7, + ["CD"] = 0, + }, + [295] = { + ["X"] = 39.97, + ["Y"] = 54.42, + ["CD"] = 0, + }, + [296] = { + ["X"] = 33.09, + ["Y"] = 46.12, + ["CD"] = 0, + }, + [297] = { + ["X"] = 33.06, + ["Y"] = 48.52, + ["CD"] = 0, + }, + [298] = { + ["X"] = 28.8, + ["Y"] = 38.56, + ["CD"] = 0, + }, + [299] = { + ["X"] = 29.06, + ["Y"] = 33.31, + ["CD"] = 0, + }, + [300] = { + ["X"] = 18.27, + ["Y"] = 40.57, + ["CD"] = 0, + }, + [301] = { + ["X"] = 22.74, + ["Y"] = 43.77, + ["CD"] = 0, + }, + [302] = { + ["X"] = 24.63, + ["Y"] = 56.49, + ["CD"] = 0, + }, + [303] = { + ["X"] = 26.8, + ["Y"] = 69.62, + ["CD"] = 0, + }, + [304] = { + ["X"] = 20.4, + ["Y"] = 43.91, + ["CD"] = 0, + }, + [305] = { + ["X"] = 22.81, + ["Y"] = 48.63, + ["CD"] = 0, + }, + [306] = { + ["X"] = 24.55, + ["Y"] = 46.05, + ["CD"] = 0, + }, + [307] = { + ["X"] = 23.59, + ["Y"] = 44.45, + ["CD"] = 0, + }, + [308] = { + ["X"] = 24.7, + ["Y"] = 46.9, + ["CD"] = 0, + }, + [309] = { + ["X"] = 25.91, + ["Y"] = 44.49, + ["CD"] = 0, + }, + [310] = { + ["X"] = 28.25, + ["Y"] = 46.15, + ["CD"] = 0, + }, + [311] = { + ["X"] = 21.38, + ["Y"] = 25.51, + ["CD"] = 0, + }, + [312] = { + ["X"] = 21.21, + ["Y"] = 30.56, + ["CD"] = 0, + }, + [313] = { + ["X"] = 18.91, + ["Y"] = 25.55, + ["CD"] = 0, + }, + [314] = { + ["X"] = 18.42, + ["Y"] = 23.05, + ["CD"] = 0, + }, + [315] = { + ["X"] = 17.12, + ["Y"] = 26.35, + ["CD"] = 0, + }, + [316] = { + ["X"] = 18.92, + ["Y"] = 22.36, + ["CD"] = 0, + }, + [317] = { + ["X"] = 17.04, + ["Y"] = 23.1, + ["CD"] = 0, + }, + [318] = { + ["X"] = 16.4, + ["Y"] = 21.91, + ["CD"] = 0, + }, + [319] = { + ["X"] = 18.47, + ["Y"] = 20.31, + ["CD"] = 0, + }, + [320] = { + ["X"] = 20.21, + ["Y"] = 21.06, + ["CD"] = 0, + }, + [321] = { + ["X"] = 20.67, + ["Y"] = 28.36, + ["CD"] = 0, + }, + [322] = { + ["X"] = 24.44, + ["Y"] = 34.21, + ["CD"] = 0, + }, + [323] = { + ["X"] = 25.18, + ["Y"] = 28.28, + ["CD"] = 0, + }, + [324] = { + ["X"] = 25.8, + ["Y"] = 25.07, + ["CD"] = 0, + }, + [325] = { + ["X"] = 27.32, + ["Y"] = 22.42, + ["CD"] = 0, + }, + [326] = { + ["X"] = 26.64, + ["Y"] = 18.05, + ["CD"] = 0, + }, + [327] = { + ["X"] = 30.89, + ["Y"] = 16.02, + ["CD"] = 0, + }, + [328] = { + ["X"] = 31.63, + ["Y"] = 16.56, + ["CD"] = 0, + }, + [329] = { + ["X"] = 33.53, + ["Y"] = 20.08, + ["CD"] = 0, + }, + [330] = { + ["X"] = 32.27, + ["Y"] = 22.89, + ["CD"] = 0, + }, + [331] = { + ["X"] = 30.12, + ["Y"] = 22.36, + ["CD"] = 0, + }, + [332] = { + ["X"] = 34.88, + ["Y"] = 19.76, + ["CD"] = 0, + }, + [333] = { + ["X"] = 35.22, + ["Y"] = 18.59, + ["CD"] = 0, + }, + [334] = { + ["X"] = 30, + ["Y"] = 13.89, + ["CD"] = 0, + }, + [335] = { + ["X"] = 35.98, + ["Y"] = 13.64, + ["CD"] = 0, + }, + [336] = { + ["X"] = 38.41, + ["Y"] = 13.36, + ["CD"] = 0, + }, + [337] = { + ["X"] = 40.2, + ["Y"] = 17.02, + ["CD"] = 0, + }, + [338] = { + ["X"] = 38.59, + ["Y"] = 25.27, + ["CD"] = 0, + }, + [339] = { + ["X"] = 37.32, + ["Y"] = 26.91, + ["CD"] = 0, + }, + [340] = { + ["X"] = 28.98, + ["Y"] = 37.05, + ["CD"] = 0, + }, + [341] = { + ["X"] = 29.18, + ["Y"] = 39.05, + ["CD"] = 0, + }, + [342] = { + ["X"] = 29.35, + ["Y"] = 41.15, + ["CD"] = 0, + }, + [343] = { + ["X"] = 45.19, + ["Y"] = 51.96, + ["CD"] = 0, + }, + [344] = { + ["X"] = 57.18, + ["Y"] = 49.94, + ["CD"] = 0, + }, + [345] = { + ["X"] = 59.66, + ["Y"] = 41.36, + ["CD"] = 0, + }, + [346] = { + ["X"] = 61.03, + ["Y"] = 43.36, + ["CD"] = 0, + }, + [347] = { + ["X"] = 49.52, + ["Y"] = 47.44, + ["CD"] = 0, + }, + [348] = { + ["X"] = 45.4, + ["Y"] = 47.92, + ["CD"] = 0, + }, + [349] = { + ["X"] = 48.52, + ["Y"] = 42.86, + ["CD"] = 0, + }, + [350] = { + ["X"] = 45.67, + ["Y"] = 33.19, + ["CD"] = 0, + }, + [351] = { + ["X"] = 50.55, + ["Y"] = 39.92, + ["CD"] = 0, + }, + [352] = { + ["X"] = 31.72, + ["Y"] = 11.15, + ["CD"] = 0, + }, + [353] = { + ["X"] = 41.5, + ["Y"] = 38.6, + ["CD"] = 0, + }, + [354] = { + ["X"] = 39.3, + ["Y"] = 53.64, + ["CD"] = 0, + }, + [355] = { + ["X"] = 57.38, + ["Y"] = 47.96, + ["CD"] = 0, + }, + [356] = { + ["X"] = 59.94, + ["Y"] = 42.44, + ["CD"] = 0, + }, + [357] = { + ["X"] = 62.25, + ["Y"] = 45.8, + ["CD"] = 0, + }, + [358] = { + ["X"] = 58.62, + ["Y"] = 49.54, + ["CD"] = 0, + }, + [359] = { + ["X"] = 66.53, + ["Y"] = 56.8, + ["CD"] = 0, + }, + [360] = { + ["X"] = 47.37, + ["Y"] = 55.17, + ["CD"] = 0, + }, + [361] = { + ["X"] = 40.54, + ["Y"] = 62.98, + ["CD"] = 0, + }, + [362] = { + ["X"] = 41.77, + ["Y"] = 73.16, + ["CD"] = 0, + }, + [363] = { + ["X"] = 36.65, + ["Y"] = 42.98, + ["CD"] = 0, + }, + [364] = { + ["X"] = 45.48, + ["Y"] = 27.74, + ["CD"] = 0, + }, + [365] = { + ["X"] = 48.54, + ["Y"] = 35.37, + ["CD"] = 0, + }, + [366] = { + ["X"] = 48.78, + ["Y"] = 42.77, + ["CD"] = 0, + }, + [367] = { + ["X"] = 65.14, + ["Y"] = 55.11, + ["CD"] = 0, + }, + [368] = { + ["X"] = 63.97, + ["Y"] = 51.76, + ["CD"] = 0, + }, + [369] = { + ["X"] = 62.78, + ["Y"] = 53.73, + ["CD"] = 0, + }, + [370] = { + ["X"] = 67.6, + ["Y"] = 58.65, + ["CD"] = 0, + }, + [371] = { + ["X"] = 70.65, + ["Y"] = 63.85, + ["CD"] = 0, + }, + [372] = { + ["X"] = 41.4, + ["Y"] = 61.02, + ["CD"] = 0, + }, + [373] = { + ["X"] = 30.71, + ["Y"] = 52.67, + ["CD"] = 0, + }, + [374] = { + ["X"] = 26.41, + ["Y"] = 53.86, + ["CD"] = 0, + }, + [375] = { + ["X"] = 23.03, + ["Y"] = 59.38, + ["CD"] = 0, + }, + [376] = { + ["X"] = 27.12, + ["Y"] = 69.02, + ["CD"] = 0, + }, + [377] = { + ["X"] = 17.88, + ["Y"] = 49.24, + ["CD"] = 0, + }, + [378] = { + ["X"] = 17.84, + ["Y"] = 47.18, + ["CD"] = 0, + }, + [379] = { + ["X"] = 18.67, + ["Y"] = 49.11, + ["CD"] = 0, + }, + [380] = { + ["X"] = 19.07, + ["Y"] = 44.96, + ["CD"] = 0, + }, + [381] = { + ["X"] = 22.96, + ["Y"] = 44.9, + ["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 + end + end + end + return aura_env.minID["ID"] + end +end +if WeakAuras.IsOptionsOpen() then DaveSniffsHerbs.HerbSniffer.CD = 0; DaveSniffsHerbs.HerbSniffer.NoCD = 200 end diff --git a/Complete Projects/Legion/Glowing Raid Frames.lua b/WeakAuras/Projects/Glowing Raid Frames.lua similarity index 97% rename from Complete Projects/Legion/Glowing Raid Frames.lua rename to WeakAuras/Projects/Glowing Raid Frames.lua index b733467..730990f 100644 --- a/Complete Projects/Legion/Glowing Raid Frames.lua +++ b/WeakAuras/Projects/Glowing Raid Frames.lua @@ -1,148 +1,148 @@ ---ID_UPDATED UPDATE_FRAME_GLOW -function(e, id) -if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(0.1, function() WeakAuras.ScanEvents("UPDATE_FRAME_GLOW") end) end -if e ~= "ID_UPDATED" then - local hptable = {[1] = ["hp"] = 100000000000, ["id"] = 0, ["mhp"] = 0, ["php"] = 100} - if IsInRaid() then - for i = 1, GetNumGroupMembers() do - --if UnitHealthMax("raid" .. i) - UnitHealth("raid" .. i) > hptable.mhp then --Missing HP - if UnitHealth("raid" .. i) / UnitHealthMax("raid" .. i) < hptable.php then --% HP - if UnitHealth("raid" .. i) / UnitHealthMax("raid" .. i) < 0.5 and UnitHealth("raid" .. i) / UnitHealthMax("raid" .. i) > 0 then - hptable.hp = UnitHealth("raid" .. i) - hptable.mhp = UnitHealthMax("raid" .. i) - UnitHealth("raid" .. i) - hptable.php = UnitHealth("raid" .. i) / UnitHealthMax("raid" .. i) - hptable.id = i - hptable.name = UnitName("raid" .. i) - end - end - end - if hptable.id ~= aura_env.lastID then - WeakAuras.ScanEvents("ID_UPDATED", hptable.id) - aura_env.lastID = hptable.id - end - end -elseif e == "ID_UPDATED" then - if id ~= aura_env.glowingPlate and aura_env.glowingPlate > 0 then - ActionButton_HideOverlayGlow(aura_env.GetFrame("raid" .. aura_env.glowingPlate)) - end - if aura_env.GetFrame("raid" .. id) then - ActionButton_ShowOverlayGlow(aura_env.GetFrame("raid" .. id)) - aura_env.glowingPlate = id - end -end -end - ---INIT -if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(0.1, function() WeakAuras.ScanEvents("UPDATE_FRAME_GLOW") end) end -aura_env.lastID = 0 -aura_env.glowingPlate = 0 - -local frame_priority = { - -- raid frames - [1] = "^Vd1", -- vuhdo - [2] = "^Healbot", -- healbot - [3] = "^GridLayout", -- grid - [4] = "^Grid2Layout", -- grid2 - [5] = "^ElvUF_RaidGroup", -- elv - [6] = "^oUF_bdGrid", -- bdgrid - [7] = "^oUF.*raid", -- generic oUF - [8] = "^LimeGroup", -- lime - [9] = "^SUFHeaderraid", -- suf - [10] = "^CompactRaid", -- blizz - -- party frames - [11] = "^SUFHeaderparty", --suf - [12] = "^ElvUF_PartyGroup", -- elv - [13] = "^oUF.*party", -- generic oUF - [14] = "^PitBull4_Groups_Party", -- pitbull4 - [15] = "^CompactParty", -- blizz - -- player frame - [16] = "^SUFUnitplayer", - [17] = "^PitBull4_Frames_Player", - [18] = "^ElvUF_Player", - [19] = "^oUF.*player", - [20] = "^PlayerFrame", -} - -WA_GetFramesCache = WA_GetFramesCache or {} -if not WA_GetFramesCacheListener then - WA_GetFramesCacheListener = CreateFrame("Frame") - local f = WA_GetFramesCacheListener - f:RegisterEvent("PLAYER_REGEN_DISABLED") - f:RegisterEvent("PLAYER_REGEN_ENABLED") - f:RegisterEvent("GROUP_ROSTER_UPDATE") - f:SetScript("OnEvent", function(self, event, ...) - WA_GetFramesCache = {} - end) -end - -local function GetFrames(target) - local function FindButtonsForUnit(frame, target) - local results = {} - if type(frame) == "table" and not frame:IsForbidden() then - local type = frame:GetObjectType() - if type == "Frame" or type == "Button" then - for _, child in ipairs({frame:GetChildren()}) do - for _, v in pairs(FindButtonsForUnit(child, target)) do - tinsert(results, v) - end - end - end - if type == "Button" then - local unit = frame:GetAttribute('unit') - if unit and frame:IsVisible() and frame:GetName() then - WA_GetFramesCache[frame] = unit - if UnitIsUnit(unit, target) then - -- print("F:", frame:GetName()) - tinsert(results, frame) - end - end - end - end - return results - end - - if not UnitExists(target) then - if type(target) == "string" and target:find("Player") then - target = select(6, GetPlayerInfoByGUID(target)) - else - return {} - end - end - - local results = {} - for frame, unit in pairs(WA_GetFramesCache) do - --print("from cache:", frame:GetName()) - if UnitIsUnit(unit, target) then - if frame:GetAttribute('unit') == unit then - tinsert(results, frame) - else - results = {} - break - end - end - end - - return #results > 0 and results or FindButtonsForUnit(UIParent, target) -end - -local isElvUI = IsAddOnLoaded("ElvUI") -local function WhyElvWhy(frame) - if isElvUI and frame and frame:GetName():find("^ElvUF_") and frame.Health then - return frame.Health - else - return frame - end -end - -function aura_env.GetFrame(target) - local frames = GetFrames(target) - if not frames then return nil end - for i = 1, #frame_priority do - for _, frame in pairs(frames) do - if (frame:GetName()):find(frame_priority[i]) then - return WhyElvWhy(frame) - end - end - end - return WhyElvWhy(frames[1]) -end +--ID_UPDATED UPDATE_FRAME_GLOW +function(e, id) +if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(0.1, function() WeakAuras.ScanEvents("UPDATE_FRAME_GLOW") end) end +if e ~= "ID_UPDATED" then + local hptable = {[1] = ["hp"] = 100000000000, ["id"] = 0, ["mhp"] = 0, ["php"] = 100} + if IsInRaid() then + for i = 1, GetNumGroupMembers() do + --if UnitHealthMax("raid" .. i) - UnitHealth("raid" .. i) > hptable.mhp then --Missing HP + if UnitHealth("raid" .. i) / UnitHealthMax("raid" .. i) < hptable.php then --% HP + if UnitHealth("raid" .. i) / UnitHealthMax("raid" .. i) < 0.5 and UnitHealth("raid" .. i) / UnitHealthMax("raid" .. i) > 0 then + hptable.hp = UnitHealth("raid" .. i) + hptable.mhp = UnitHealthMax("raid" .. i) - UnitHealth("raid" .. i) + hptable.php = UnitHealth("raid" .. i) / UnitHealthMax("raid" .. i) + hptable.id = i + hptable.name = UnitName("raid" .. i) + end + end + end + if hptable.id ~= aura_env.lastID then + WeakAuras.ScanEvents("ID_UPDATED", hptable.id) + aura_env.lastID = hptable.id + end + end +elseif e == "ID_UPDATED" then + if id ~= aura_env.glowingPlate and aura_env.glowingPlate > 0 then + ActionButton_HideOverlayGlow(aura_env.GetFrame("raid" .. aura_env.glowingPlate)) + end + if aura_env.GetFrame("raid" .. id) then + ActionButton_ShowOverlayGlow(aura_env.GetFrame("raid" .. id)) + aura_env.glowingPlate = id + end +end +end + +--INIT +if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(0.1, function() WeakAuras.ScanEvents("UPDATE_FRAME_GLOW") end) end +aura_env.lastID = 0 +aura_env.glowingPlate = 0 + +local frame_priority = { + -- raid frames + [1] = "^Vd1", -- vuhdo + [2] = "^Healbot", -- healbot + [3] = "^GridLayout", -- grid + [4] = "^Grid2Layout", -- grid2 + [5] = "^ElvUF_RaidGroup", -- elv + [6] = "^oUF_bdGrid", -- bdgrid + [7] = "^oUF.*raid", -- generic oUF + [8] = "^LimeGroup", -- lime + [9] = "^SUFHeaderraid", -- suf + [10] = "^CompactRaid", -- blizz + -- party frames + [11] = "^SUFHeaderparty", --suf + [12] = "^ElvUF_PartyGroup", -- elv + [13] = "^oUF.*party", -- generic oUF + [14] = "^PitBull4_Groups_Party", -- pitbull4 + [15] = "^CompactParty", -- blizz + -- player frame + [16] = "^SUFUnitplayer", + [17] = "^PitBull4_Frames_Player", + [18] = "^ElvUF_Player", + [19] = "^oUF.*player", + [20] = "^PlayerFrame", +} + +WA_GetFramesCache = WA_GetFramesCache or {} +if not WA_GetFramesCacheListener then + WA_GetFramesCacheListener = CreateFrame("Frame") + local f = WA_GetFramesCacheListener + f:RegisterEvent("PLAYER_REGEN_DISABLED") + f:RegisterEvent("PLAYER_REGEN_ENABLED") + f:RegisterEvent("GROUP_ROSTER_UPDATE") + f:SetScript("OnEvent", function(self, event, ...) + WA_GetFramesCache = {} + end) +end + +local function GetFrames(target) + local function FindButtonsForUnit(frame, target) + local results = {} + if type(frame) == "table" and not frame:IsForbidden() then + local type = frame:GetObjectType() + if type == "Frame" or type == "Button" then + for _, child in ipairs({frame:GetChildren()}) do + for _, v in pairs(FindButtonsForUnit(child, target)) do + tinsert(results, v) + end + end + end + if type == "Button" then + local unit = frame:GetAttribute('unit') + if unit and frame:IsVisible() and frame:GetName() then + WA_GetFramesCache[frame] = unit + if UnitIsUnit(unit, target) then + -- print("F:", frame:GetName()) + tinsert(results, frame) + end + end + end + end + return results + end + + if not UnitExists(target) then + if type(target) == "string" and target:find("Player") then + target = select(6, GetPlayerInfoByGUID(target)) + else + return {} + end + end + + local results = {} + for frame, unit in pairs(WA_GetFramesCache) do + --print("from cache:", frame:GetName()) + if UnitIsUnit(unit, target) then + if frame:GetAttribute('unit') == unit then + tinsert(results, frame) + else + results = {} + break + end + end + end + + return #results > 0 and results or FindButtonsForUnit(UIParent, target) +end + +local isElvUI = IsAddOnLoaded("ElvUI") +local function WhyElvWhy(frame) + if isElvUI and frame and frame:GetName():find("^ElvUF_") and frame.Health then + return frame.Health + else + return frame + end +end + +function aura_env.GetFrame(target) + local frames = GetFrames(target) + if not frames then return nil end + for i = 1, #frame_priority do + for _, frame in pairs(frames) do + if (frame:GetName()):find(frame_priority[i]) then + return WhyElvWhy(frame) + end + end + end + return WhyElvWhy(frames[1]) +end diff --git a/Complete Projects/Legion/Group Breakdown.lua b/WeakAuras/Projects/Group Breakdown.lua similarity index 97% rename from Complete Projects/Legion/Group Breakdown.lua rename to WeakAuras/Projects/Group Breakdown.lua index 08080dc..5e7aed9 100644 --- a/Complete Projects/Legion/Group Breakdown.lua +++ b/WeakAuras/Projects/Group Breakdown.lua @@ -1,76 +1,76 @@ -DISPLAY -function() - local dps = 0; local heal = 0; local tank = 0 - local dpsDead = 0; local healDead = 0; local tankDead = 0 - if IsInRaid("player") == true then - for i = 1, GetNumGroupMembers() do - if UnitGroupRolesAssigned("raid"..i) == "TANK" then - if UnitIsDeadOrGhost("raid"..i) then - tankDead = tankDead + 1 - else - tank = tank + 1 - end - end - if UnitGroupRolesAssigned("raid"..i) == "DAMAGER" then - if UnitIsDeadOrGhost("raid"..i) then - dpsDead = dpsDead + 1 - else - dps = dps + 1 - end - end - if UnitGroupRolesAssigned("raid"..i) == "HEALER" then - if UnitIsDeadOrGhost("raid"..i) then - healDead = healDead + 1 - else - heal = heal + 1 - end - end - end - else - for i = 1, GetNumGroupMembers() do - if UnitGroupRolesAssigned("party"..i) == "TANK" then - if UnitIsDeadOrGhost("party"..i) then - tankDead = tankDead + 1 - else - tank = tank + 1 - end - end - if UnitGroupRolesAssigned("party"..i) == "DAMAGER" then - if UnitIsDeadOrGhost("party"..i) then - dpsDead = dpsDead + 1 - else - dps = dps + 1 - end - end - if UnitGroupRolesAssigned("party"..i) == "HEALER" then - if UnitIsDeadOrGhost("party"..i) then - healDead = healDead + 1 - else - heal = heal + 1 - end - end - end - if UnitIsDeadOrGhost("player") then - if UnitGroupRolesAssigned("player") == "TANK" then - tankDead = tankDead + 1 - end - if UnitGroupRolesAssigned("player") == "DAMAGER" then - dpsDead = dpsDead + 1 - end - if UnitGroupRolesAssigned("player") == "HEALER" then - healDead = healDead + 1 - end - else - if UnitGroupRolesAssigned("player") == "TANK" then - tank = tank + 1 - end - if UnitGroupRolesAssigned("player") == "DAMAGER" then - dps = dps + 1 - end - if UnitGroupRolesAssigned("player") == "HEALER" then - heal = heal + 1 - end - end - end - return string.format("TANKS: %s \n HEALS: %s \n DPS: %s", tank, heal, dps) -end +DISPLAY +function() + local dps = 0; local heal = 0; local tank = 0 + local dpsDead = 0; local healDead = 0; local tankDead = 0 + if IsInRaid("player") == true then + for i = 1, GetNumGroupMembers() do + if UnitGroupRolesAssigned("raid"..i) == "TANK" then + if UnitIsDeadOrGhost("raid"..i) then + tankDead = tankDead + 1 + else + tank = tank + 1 + end + end + if UnitGroupRolesAssigned("raid"..i) == "DAMAGER" then + if UnitIsDeadOrGhost("raid"..i) then + dpsDead = dpsDead + 1 + else + dps = dps + 1 + end + end + if UnitGroupRolesAssigned("raid"..i) == "HEALER" then + if UnitIsDeadOrGhost("raid"..i) then + healDead = healDead + 1 + else + heal = heal + 1 + end + end + end + else + for i = 1, GetNumGroupMembers() do + if UnitGroupRolesAssigned("party"..i) == "TANK" then + if UnitIsDeadOrGhost("party"..i) then + tankDead = tankDead + 1 + else + tank = tank + 1 + end + end + if UnitGroupRolesAssigned("party"..i) == "DAMAGER" then + if UnitIsDeadOrGhost("party"..i) then + dpsDead = dpsDead + 1 + else + dps = dps + 1 + end + end + if UnitGroupRolesAssigned("party"..i) == "HEALER" then + if UnitIsDeadOrGhost("party"..i) then + healDead = healDead + 1 + else + heal = heal + 1 + end + end + end + if UnitIsDeadOrGhost("player") then + if UnitGroupRolesAssigned("player") == "TANK" then + tankDead = tankDead + 1 + end + if UnitGroupRolesAssigned("player") == "DAMAGER" then + dpsDead = dpsDead + 1 + end + if UnitGroupRolesAssigned("player") == "HEALER" then + healDead = healDead + 1 + end + else + if UnitGroupRolesAssigned("player") == "TANK" then + tank = tank + 1 + end + if UnitGroupRolesAssigned("player") == "DAMAGER" then + dps = dps + 1 + end + if UnitGroupRolesAssigned("player") == "HEALER" then + heal = heal + 1 + end + end + end + return string.format("TANKS: %s \n HEALS: %s \n DPS: %s", tank, heal, dps) +end diff --git a/Complete Projects/Legion/GuildRecap.lua b/WeakAuras/Projects/GuildRecap.lua similarity index 95% rename from Complete Projects/Legion/GuildRecap.lua rename to WeakAuras/Projects/GuildRecap.lua index 2a57a63..901e01a 100644 --- a/Complete Projects/Legion/GuildRecap.lua +++ b/WeakAuras/Projects/GuildRecap.lua @@ -1,39 +1,39 @@ ---GROUP_ROSTER_UPDATE -function(e) - local r = "raid" - if IsInRaid() == false then - r = "party" - end - for i = 1, GetNumGroupMembers() do - local n = r .. i - local pname = UnitName(n) - local gname = GetGuildInfo(n) - local grank = select(3, GetGuildInfo(n)) - --print(pname, gname, grank) - if not aura_env.playerList[pname] then - aura_env.playerList[pname] = { - ["guild"] = gname, - ["rank"] = grank, - } - end - end - DevTools_Dump(aura_env.playerList) - table.sort(aura_env.playerList) - DevTools_Dump(aura_env.playerList) - return true -end - ---DISPLAY -function() - local output = "" - for k,v in pairs(aura_env.playerList) do - output = k .. " " - if v.guild then - output = output .. v.guild .. " " .. v.rank .. "\n" - end - end - return output -end - ---INIT +--GROUP_ROSTER_UPDATE +function(e) + local r = "raid" + if IsInRaid() == false then + r = "party" + end + for i = 1, GetNumGroupMembers() do + local n = r .. i + local pname = UnitName(n) + local gname = GetGuildInfo(n) + local grank = select(3, GetGuildInfo(n)) + --print(pname, gname, grank) + if not aura_env.playerList[pname] then + aura_env.playerList[pname] = { + ["guild"] = gname, + ["rank"] = grank, + } + end + end + DevTools_Dump(aura_env.playerList) + table.sort(aura_env.playerList) + DevTools_Dump(aura_env.playerList) + return true +end + +--DISPLAY +function() + local output = "" + for k,v in pairs(aura_env.playerList) do + output = k .. " " + if v.guild then + output = output .. v.guild .. " " .. v.rank .. "\n" + end + end + return output +end + +--INIT aura_env.playerList = {} \ No newline at end of file diff --git a/Complete Projects/Legion/GuildWave.lua b/WeakAuras/Projects/GuildWave.lua similarity index 97% rename from Complete Projects/Legion/GuildWave.lua rename to WeakAuras/Projects/GuildWave.lua index 498a2a8..02e8878 100644 --- a/Complete Projects/Legion/GuildWave.lua +++ b/WeakAuras/Projects/GuildWave.lua @@ -1,24 +1,24 @@ ---NAME_PLATE_UNIT_ADDED GLOBAL_TICKER -function(e, u) - if e == "NAME_PLATE_UNIT_ADDED" then - local guildName, guildRankName = GetGuildInfo(u); - local uname = UnitName(u) - if uname and u and guildName and guildRankName and guildName == "Indecisive" and not aura_env.unitList[uname]then - --if guildRankName ~= "Trial" and guildName == "Indecisive" and not aura_env.unitList[u] and u then - DoEmote("PAT", u) - --DoEmote("HELLO", u) - aura_env.unitList[uname] = GetTime() + 600 - end - elseif e == "ONE_SECOND_TICK" then - for k, v in pairs(aura_env.unitList) do - if GetTime() > v then - aura_env.unitList[uname] = nil - end - end - end - --print(GetTime()) - --DevTools_Dump(aura_env.unitList) -end - ---INIT -aura_env.unitList = {} +--NAME_PLATE_UNIT_ADDED GLOBAL_TICKER +function(e, u) + if e == "NAME_PLATE_UNIT_ADDED" then + local guildName, guildRankName = GetGuildInfo(u); + local uname = UnitName(u) + if uname and u and guildName and guildRankName and guildName == "Indecisive" and not aura_env.unitList[uname]then + --if guildRankName ~= "Trial" and guildName == "Indecisive" and not aura_env.unitList[u] and u then + DoEmote("PAT", u) + --DoEmote("HELLO", u) + aura_env.unitList[uname] = GetTime() + 600 + end + elseif e == "ONE_SECOND_TICK" then + for k, v in pairs(aura_env.unitList) do + if GetTime() > v then + aura_env.unitList[uname] = nil + end + end + end + --print(GetTime()) + --DevTools_Dump(aura_env.unitList) +end + +--INIT +aura_env.unitList = {} diff --git a/Complete Projects/Legion/Hammers n Shields.lua b/WeakAuras/Projects/Hammers n Shields.lua similarity index 97% rename from Complete Projects/Legion/Hammers n Shields.lua rename to WeakAuras/Projects/Hammers n Shields.lua index cb0b2c9..9123752 100644 --- a/Complete Projects/Legion/Hammers n Shields.lua +++ b/WeakAuras/Projects/Hammers n Shields.lua @@ -1,23 +1,23 @@ ---SPELL_ACTIVATION_OVERLAY_GLOW_SHOW -function(_,ID) - if ID == 31935 then - CustomTrash.hammersnshields.shields = CustomTrash.hammersnshields.shields + 1 - end -end - ---COMBAT_LOG_EVENT_UNFILTERED -function(...) - local subevent = select(3, ...) - if subevent == "SPELL_CAST_SUCCESS" then - local caster = select(6, ...) - local spell = select(14, ...) - if caster == UnitName("player") and (spell == "Hammer of the Righteous" or spell == "Blessed Hammer") then - CustomTrash.hammersnshields.hammers = CustomTrash.hammersnshields.hammers + 1 - end - end -end - ---DISPLAY -function() - return CustomTrash.hammersnshields.shields .. " / " .. CustomTrash.hammersnshields.hammers .. " " .. CustomTrash.hammersnshields.shields / CustomTrash.hammersnshields.hammers +--SPELL_ACTIVATION_OVERLAY_GLOW_SHOW +function(_,ID) + if ID == 31935 then + CustomTrash.hammersnshields.shields = CustomTrash.hammersnshields.shields + 1 + end +end + +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local subevent = select(3, ...) + if subevent == "SPELL_CAST_SUCCESS" then + local caster = select(6, ...) + local spell = select(14, ...) + if caster == UnitName("player") and (spell == "Hammer of the Righteous" or spell == "Blessed Hammer") then + CustomTrash.hammersnshields.hammers = CustomTrash.hammersnshields.hammers + 1 + end + end +end + +--DISPLAY +function() + return CustomTrash.hammersnshields.shields .. " / " .. CustomTrash.hammersnshields.hammers .. " " .. CustomTrash.hammersnshields.shields / CustomTrash.hammersnshields.hammers end \ No newline at end of file diff --git a/Complete Projects/Legion/HealerDispels.lua b/WeakAuras/Projects/HealerDispels.lua similarity index 97% rename from Complete Projects/Legion/HealerDispels.lua rename to WeakAuras/Projects/HealerDispels.lua index 12d1090..c442b95 100644 --- a/Complete Projects/Legion/HealerDispels.lua +++ b/WeakAuras/Projects/HealerDispels.lua @@ -1,76 +1,76 @@ ---TSU ---COMBAT_LOG_EVENT_UNFILTERED GROUP_ROSTER_UPDATE -function(allstates, e, ...) - if e == "GROUP_ROSTER_UPDATE" then - for i = 1, GetNumGroupMembers() do - local u = "raid" .. i - if aura_env.healers[UnitName(u)] then aura_env.healers[UnitName(u)] = NULL end - -- if UnitGroupRolesAssigned(u) == "TANK" then - if UnitGroupRolesAssigned(u) == "HEALER" then - aura_env.healers[UnitName(u)] = true - end - for k,v in pairs(aura_env.healers) do - allstates[k] = { - show = true, - changed = true, - progressType = "static", - value = 0, - total = 100, - name = k, - class = select(3, UnitClass(k)), - } - end - end - --DevTools_Dump(allstates) - return true - elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, ...) - if se == "SPELL_CAST_SUCCESS" then - local spellId = select(12, ...) - if aura_env.dispels[spellId] then - local caster = select(5, ...) - allstates[caster] = { - show = true, - changed = true, - progressType = "timed", - duration = 8, - expirationTime = GetTime() + 8, - name = caster, - class = select(3, UnitClass(caster)), - } - end - end - return true - end -end - ---ON SHOW -if aura_env.statee then - local class = aura_env.statee.class - aura_env.region.bar:SetForegroundColor(aura_env.classColor(class)) -end - ---INIT -aura_env.healers = {} -aura_env.dispels = { - [4987] = true, -- Cleanse - [88423] = true, -- Nature's Cure - [77130] = true, -- Purify Spirit - [115450] = true, -- Detox - -- [236186] = true, -- Tank dispel, testing -} -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 +--TSU +--COMBAT_LOG_EVENT_UNFILTERED GROUP_ROSTER_UPDATE +function(allstates, e, ...) + if e == "GROUP_ROSTER_UPDATE" then + for i = 1, GetNumGroupMembers() do + local u = "raid" .. i + if aura_env.healers[UnitName(u)] then aura_env.healers[UnitName(u)] = NULL end + -- if UnitGroupRolesAssigned(u) == "TANK" then + if UnitGroupRolesAssigned(u) == "HEALER" then + aura_env.healers[UnitName(u)] = true + end + for k,v in pairs(aura_env.healers) do + allstates[k] = { + show = true, + changed = true, + progressType = "static", + value = 0, + total = 100, + name = k, + class = select(3, UnitClass(k)), + } + end + end + --DevTools_Dump(allstates) + return true + elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, ...) + if se == "SPELL_CAST_SUCCESS" then + local spellId = select(12, ...) + if aura_env.dispels[spellId] then + local caster = select(5, ...) + allstates[caster] = { + show = true, + changed = true, + progressType = "timed", + duration = 8, + expirationTime = GetTime() + 8, + name = caster, + class = select(3, UnitClass(caster)), + } + end + end + return true + end +end + +--ON SHOW +if aura_env.statee then + local class = aura_env.statee.class + aura_env.region.bar:SetForegroundColor(aura_env.classColor(class)) +end + +--INIT +aura_env.healers = {} +aura_env.dispels = { + [4987] = true, -- Cleanse + [88423] = true, -- Nature's Cure + [77130] = true, -- Purify Spirit + [115450] = true, -- Detox + -- [236186] = true, -- Tank dispel, testing +} +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 end \ No newline at end of file diff --git a/LegionWA/HealerRaidDanger/color.lua b/WeakAuras/Projects/HealerRaidDanger/color.lua similarity index 97% rename from LegionWA/HealerRaidDanger/color.lua rename to WeakAuras/Projects/HealerRaidDanger/color.lua index c39c6bf..af78f1c 100644 --- a/LegionWA/HealerRaidDanger/color.lua +++ b/WeakAuras/Projects/HealerRaidDanger/color.lua @@ -1,5 +1,5 @@ --- DevTools_Dump(aura_env.region) --- aura_env.region:SetParent(aura_env.state.frame) -aura_env.region:ClearAllPoints() -aura_env.region:SetPoint("TOPLEFT", aura_env.statee.frame.AuraWatch, "TOPLEFT", 0, 0) -aura_env.region:Show() +-- DevTools_Dump(aura_env.region) +-- aura_env.region:SetParent(aura_env.state.frame) +aura_env.region:ClearAllPoints() +aura_env.region:SetPoint("TOPLEFT", aura_env.statee.frame.AuraWatch, "TOPLEFT", 0, 0) +aura_env.region:Show() diff --git a/LegionWA/HealerRaidDanger/init.lua b/WeakAuras/Projects/HealerRaidDanger/init.lua similarity index 96% rename from LegionWA/HealerRaidDanger/init.lua rename to WeakAuras/Projects/HealerRaidDanger/init.lua index e7ae308..a10ffc6 100644 --- a/LegionWA/HealerRaidDanger/init.lua +++ b/WeakAuras/Projects/HealerRaidDanger/init.lua @@ -1,27 +1,27 @@ -local raidFrames = ElvUF_Raid -local group1, group2, group3, group4, group5, group6 = raidFrames:GetChildren() -local groups = { group1, group2, group3, group4, group5, group6 } -aura_env.players = {} -for _, group in ipairs(groups) do - local playerFrame1, playerFrame2, playerFrame3, playerFrame4, playerFrame5 = group:GetChildren() - local playerFrames = { playerFrame1, playerFrame2, playerFrame3, playerFrame4, playerFrame5 } - - for _, player in ipairs(playerFrames) do - if player.Name:IsVisible() then aura_env.players[#aura_env.players + 1] = player end - end -end - -local specs = { - -- We can't get unit spec.......... - -- Best we can do is class - -- That fucking sucks -} - -aura_env.Player = { - new = function(self, player) - setmetatable({}, self) - self.frame = nil - self.danger = 0 - return self - end, -} +local raidFrames = ElvUF_Raid +local group1, group2, group3, group4, group5, group6 = raidFrames:GetChildren() +local groups = { group1, group2, group3, group4, group5, group6 } +aura_env.players = {} +for _, group in ipairs(groups) do + local playerFrame1, playerFrame2, playerFrame3, playerFrame4, playerFrame5 = group:GetChildren() + local playerFrames = { playerFrame1, playerFrame2, playerFrame3, playerFrame4, playerFrame5 } + + for _, player in ipairs(playerFrames) do + if player.Name:IsVisible() then aura_env.players[#aura_env.players + 1] = player end + end +end + +local specs = { + -- We can't get unit spec.......... + -- Best we can do is class + -- That fucking sucks +} + +aura_env.Player = { + new = function(self, player) + setmetatable({}, self) + self.frame = nil + self.danger = 0 + return self + end, +} diff --git a/LegionWA/HealerRaidDanger/tsu.lua b/WeakAuras/Projects/HealerRaidDanger/tsu.lua similarity index 94% rename from LegionWA/HealerRaidDanger/tsu.lua rename to WeakAuras/Projects/HealerRaidDanger/tsu.lua index 0bf8dda..e41db79 100644 --- a/LegionWA/HealerRaidDanger/tsu.lua +++ b/WeakAuras/Projects/HealerRaidDanger/tsu.lua @@ -1,22 +1,22 @@ --- TSU -function(allstates, e) - if aura_env.players == nil then - aura_env.players = {} - end - - for _,player in ipairs(aura_env.players) do - allstates[player.Name:GetText()] = { - show = true, - changed = true, - name = 0.13, - frame = player, - icon = player.RaidIcon, - progressType = "static", - value = 1, - total = 1, - autoHide = true, - resort = true, - } - end - return true +-- TSU +function(allstates, e) + if aura_env.players == nil then + aura_env.players = {} + end + + for _,player in ipairs(aura_env.players) do + allstates[player.Name:GetText()] = { + show = true, + changed = true, + name = 0.13, + frame = player, + icon = player.RaidIcon, + progressType = "static", + value = 1, + total = 1, + autoHide = true, + resort = true, + } + end + return true end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Counter 2.0.lua b/WeakAuras/Projects/Herb Counter 2.0.lua similarity index 97% rename from Complete Projects/Legion/Herb Counter 2.0.lua rename to WeakAuras/Projects/Herb Counter 2.0.lua index 358aa65..31c6beb 100644 --- a/Complete Projects/Legion/Herb Counter 2.0.lua +++ b/WeakAuras/Projects/Herb Counter 2.0.lua @@ -1,34 +1,34 @@ -DISPLAY -function() - local output = "" - for k, v in pairs(aura_env.herbs) do - if k == "Starlight Rose" then - if GetItemCount(k) % 7 == 0 then - output = output .. k .. " " .. v .. " " .. GetItemCount(k) .. " " .. GetItemCount(k) / 4 .. " " .. "|cFF6CFF6C" .. math.floor(GetItemCount(k) / 7) .. "\n" - else - output = output .. k .. " " .. v .. " " .. GetItemCount(k) .. " " .. GetItemCount(k) / 4 .. " " .. "|cFFFF6C6C" .. math.floor(GetItemCount(k) / 7) .. " - " .. (math.floor(GetItemCount(k) / 7)) * 7 .. "\n" - end - elseif k == "Icecap" then - output = output .. k .. " " .. v .. " " .. GetItemCount(k) + (GetItemCount("Icecap Petal") / 10) .. "\n" - elseif k == "Mountain Silversage" then - output = output .. k .. " " .. v .. " " .. GetItemCount(k) + (GetItemCount("Mountain Silversage Stalk") / 10) .. "\n" - else - output = output .. k .. " " .. v .. " " .. GetItemCount(k) .. "\n" - end - end - return output -end - -CHAT_MSG_OPENING -function(_, msg) - local caster, event, target = msg:match("(%a+) perform ([%a*%s*]+) on ([%a*%s*%p*]+).") - if caster == "You" and event == "Herb Gathering" then - if aura_env.herbs[target] == nil then - aura_env.herbs[target] = 0 - end - aura_env.herbs[target] = aura_env.herbs[target] + 1 - end -end - -INIT -aura_env.herbs = {} +DISPLAY +function() + local output = "" + for k, v in pairs(aura_env.herbs) do + if k == "Starlight Rose" then + if GetItemCount(k) % 7 == 0 then + output = output .. k .. " " .. v .. " " .. GetItemCount(k) .. " " .. GetItemCount(k) / 4 .. " " .. "|cFF6CFF6C" .. math.floor(GetItemCount(k) / 7) .. "\n" + else + output = output .. k .. " " .. v .. " " .. GetItemCount(k) .. " " .. GetItemCount(k) / 4 .. " " .. "|cFFFF6C6C" .. math.floor(GetItemCount(k) / 7) .. " - " .. (math.floor(GetItemCount(k) / 7)) * 7 .. "\n" + end + elseif k == "Icecap" then + output = output .. k .. " " .. v .. " " .. GetItemCount(k) + (GetItemCount("Icecap Petal") / 10) .. "\n" + elseif k == "Mountain Silversage" then + output = output .. k .. " " .. v .. " " .. GetItemCount(k) + (GetItemCount("Mountain Silversage Stalk") / 10) .. "\n" + else + output = output .. k .. " " .. v .. " " .. GetItemCount(k) .. "\n" + end + end + return output +end + +CHAT_MSG_OPENING +function(_, msg) + local caster, event, target = msg:match("(%a+) perform ([%a*%s*]+) on ([%a*%s*%p*]+).") + if caster == "You" and event == "Herb Gathering" then + if aura_env.herbs[target] == nil then + aura_env.herbs[target] = 0 + end + aura_env.herbs[target] = aura_env.herbs[target] + 1 + end +end + +INIT +aura_env.herbs = {} diff --git a/Complete Projects/Legion/Herb Counter.lua b/WeakAuras/Projects/Herb Counter.lua similarity index 97% rename from Complete Projects/Legion/Herb Counter.lua rename to WeakAuras/Projects/Herb Counter.lua index 47e9c88..833c9cd 100644 --- a/Complete Projects/Legion/Herb Counter.lua +++ b/WeakAuras/Projects/Herb Counter.lua @@ -1,37 +1,37 @@ -CHAT_MSG_OPENING -function(_,msg) - local _,_,caster,event,target = string.find(msg, "(%a+)%s*perform*%s*(%a+)%s*Gathering%s*on%s*(%a*)") - local herbN = 0 - if caster == "You" and event == "Herb" then - for i = 1, 5 do - if target == aura_env.herbs[i] then - herbN = i - break - end - end - aura_env.herbCount[herbN] = aura_env.herbCount[herbN] + 1 - end -end - -DISPLAY -function() - local output = "" - for i = 1, 5 do - if aura_env.herbCount[i] > 0 then - if aura_env.herbs[i] == "Starlight" then - if GetItemCount("Starlight Rose") % 7 == 0 then - output = output .. "Starlight Rose" .. " " .. aura_env.herbCount[i] .. " " .. GetItemCount("Starlight Rose") .. " " .. GetItemCount("Starlight Rose") / 4 .. " " .. "|cFF6CFF6C" .. math.floor(GetItemCount("Starlight Rose") / 7) .. "\n" - else - output = output .. "Starlight Rose" .. " " .. aura_env.herbCount[i] .. " " .. GetItemCount("Starlight Rose") .. " " .. GetItemCount("Starlight Rose") / 4 .. " " .. "|cFFFF6C6C" .. math.floor(GetItemCount("Starlight Rose") / 7) .. " - " .. (math.floor(GetItemCount("Starlight Rose") / 7) + 1) * 7 .. "\n" - end - else - output = output .. aura_env.herbs[i] .. " " .. aura_env.herbCount[i] .. " " .. GetItemCount(aura_env.herbs[i]) .. "\n" - end - end - end - return output -end - -INIT -aura_env.herbCount = {0, 0, 0, 0, 0} +CHAT_MSG_OPENING +function(_,msg) + local _,_,caster,event,target = string.find(msg, "(%a+)%s*perform*%s*(%a+)%s*Gathering%s*on%s*(%a*)") + local herbN = 0 + if caster == "You" and event == "Herb" then + for i = 1, 5 do + if target == aura_env.herbs[i] then + herbN = i + break + end + end + aura_env.herbCount[herbN] = aura_env.herbCount[herbN] + 1 + end +end + +DISPLAY +function() + local output = "" + for i = 1, 5 do + if aura_env.herbCount[i] > 0 then + if aura_env.herbs[i] == "Starlight" then + if GetItemCount("Starlight Rose") % 7 == 0 then + output = output .. "Starlight Rose" .. " " .. aura_env.herbCount[i] .. " " .. GetItemCount("Starlight Rose") .. " " .. GetItemCount("Starlight Rose") / 4 .. " " .. "|cFF6CFF6C" .. math.floor(GetItemCount("Starlight Rose") / 7) .. "\n" + else + output = output .. "Starlight Rose" .. " " .. aura_env.herbCount[i] .. " " .. GetItemCount("Starlight Rose") .. " " .. GetItemCount("Starlight Rose") / 4 .. " " .. "|cFFFF6C6C" .. math.floor(GetItemCount("Starlight Rose") / 7) .. " - " .. (math.floor(GetItemCount("Starlight Rose") / 7) + 1) * 7 .. "\n" + end + else + output = output .. aura_env.herbs[i] .. " " .. aura_env.herbCount[i] .. " " .. GetItemCount(aura_env.herbs[i]) .. "\n" + end + end + end + return output +end + +INIT +aura_env.herbCount = {0, 0, 0, 0, 0} aura_env.herbs = {"Dreamleaf", "Aethril", "Fjarnskaggl", "Foxflower", "Starlight"} \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Quota.lua b/WeakAuras/Projects/Herb Quota.lua similarity index 97% rename from Complete Projects/Legion/Herb Quota.lua rename to WeakAuras/Projects/Herb Quota.lua index e300fcd..9b12583 100644 --- a/Complete Projects/Legion/Herb Quota.lua +++ b/WeakAuras/Projects/Herb Quota.lua @@ -1,63 +1,63 @@ ---PLAYER_ENTERING_WORLD BAG_UPDATE -function() - aura_env.output = "" - local herbs = {} - local twok = 0 - for k, v in pairs(WeakAurasSaved.CustomTrash.HerbQuota) do - if UnitName("player") == "Pinkiepiie" then - WeakAurasSaved.CustomTrash.HerbQuota[k] = GetItemCount(k, 1) - else - herbs[k] = v + GetItemCount(k, 1) - end - if v >= 2400 then twok = twok + 1 end - end - local function hexgrad(val, min, max) - if val >= 2400 then return "\124cff3366ff" end - local function tohex(input) - local output = string.format("%x", input * 255) - return output - end - local function grad(c, min, max) - c = 1 - (((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 - for k, v in pairs(WeakAurasSaved.CustomTrash.HerbQuota) do - if twok < 5 then - aura_env.output = aura_env.output .. hexgrad(v, 0, 2400) .. k .. " " .. v .. " / 2400" .. "\124r\n" - end - end - return true -end - ---DISPLAY -function() - return aura_env.output -end - ---INIT -aura_env.output = "" -if not WeakAurasSaved.CustomTrash.HerbQuota then WeakAurasSaved.CustomTrash.HerbQuota = {} end -WeakAurasSaved.CustomTrash.HerbQuota = { - ["Starlight Rose"] = 0, - ["Fjarnskaggl"] = 0, - ["Foxflower"] = 0, - ["Dreamleaf"] = 0, - ["Aethril"] = 0, -} +--PLAYER_ENTERING_WORLD BAG_UPDATE +function() + aura_env.output = "" + local herbs = {} + local twok = 0 + for k, v in pairs(WeakAurasSaved.CustomTrash.HerbQuota) do + if UnitName("player") == "Pinkiepiie" then + WeakAurasSaved.CustomTrash.HerbQuota[k] = GetItemCount(k, 1) + else + herbs[k] = v + GetItemCount(k, 1) + end + if v >= 2400 then twok = twok + 1 end + end + local function hexgrad(val, min, max) + if val >= 2400 then return "\124cff3366ff" end + local function tohex(input) + local output = string.format("%x", input * 255) + return output + end + local function grad(c, min, max) + c = 1 - (((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 + for k, v in pairs(WeakAurasSaved.CustomTrash.HerbQuota) do + if twok < 5 then + aura_env.output = aura_env.output .. hexgrad(v, 0, 2400) .. k .. " " .. v .. " / 2400" .. "\124r\n" + end + end + return true +end + +--DISPLAY +function() + return aura_env.output +end + +--INIT +aura_env.output = "" +if not WeakAurasSaved.CustomTrash.HerbQuota then WeakAurasSaved.CustomTrash.HerbQuota = {} end +WeakAurasSaved.CustomTrash.HerbQuota = { + ["Starlight Rose"] = 0, + ["Fjarnskaggl"] = 0, + ["Foxflower"] = 0, + ["Dreamleaf"] = 0, + ["Aethril"] = 0, +} diff --git a/Complete Projects/Legion/Herb Sniffer/0.5/Direction.lua b/WeakAuras/Projects/Herb Sniffer/0.5/Direction.lua similarity index 97% rename from Complete Projects/Legion/Herb Sniffer/0.5/Direction.lua rename to WeakAuras/Projects/Herb Sniffer/0.5/Direction.lua index fb9a517..658204c 100644 --- a/Complete Projects/Legion/Herb Sniffer/0.5/Direction.lua +++ b/WeakAuras/Projects/Herb Sniffer/0.5/Direction.lua @@ -1,65 +1,65 @@ ---EVERY FRAME TRIGGER -function() - if not WeakAurasSaved.HerbSniffer then WeakAurasSaved.HerbSniffer = {} end - if not WeakAurasSaved.HerbSniffer.CD then WeakAurasSaved.HerbSniffer.CD = 0 end - if not WeakAurasSaved.HerbSniffer.NoCD then WeakAurasSaved.HerbSniffer.NoCD = #aura_env.herbs end - local function range (val, min, max, max2) - val = 1 - (((max - val) / (max - min)) * max2) - return val - end - local id = aura_env.GetClosestHerb() - local hX, hY = aura_env.herbs[id]["X"], aura_env.herbs[id]["Y"] - local pX = GetPlayerMapPosition("player") or 0 - local pY = select(2, GetPlayerMapPosition("player")) or 0 - pX, pY = pX * 100, pY * 100 - local X = pX - hX - local Y = pY - hY - local playerFace = GetPlayerFacing() or 0 - local playerA = math.floor(playerFace * 100) - playerA = range(playerA, 0, 630, 360) - 1 - playerA = - playerA - playerA = playerA - 90 - if playerA < 0 then playerA = playerA + 360 end - aura_env.hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) * 100 - WeakAurasSaved.HerbSniffer.hyp = aura_env.hyp - aura_env.angle = math.deg(math.atan2(Y, X)) - aura_env.angle = aura_env.angle - playerA - aura_env.angle = aura_env.angle - 180 - if aura_env.hyp < aura_env.wipeDistance then --When reach herb activate it's cooldown (herbcd[cd] = coords) - aura_env.herbs[id]["CD"] = math.floor(GetTime() + aura_env.cooldown) - WeakAurasSaved.HerbSniffer.CD = WeakAurasSaved.HerbSniffer.CD + 1 - WeakAurasSaved.HerbSniffer.NoCD = WeakAurasSaved.HerbSniffer.NoCD - 1 - aura_env.minID = - { - ["X"] = 0, - ["Y"] = 0, - ["D"] = 10000, - ["ID"] = 0 - } - end - for k,v in ipairs(aura_env.herbs) do --if cooldown is up then insert back into proper array - local cd = aura_env.herbs[k]["CD"] - if cd > 0 then - if GetTime() > cd then - aura_env.herbs[k]["CD"] = 0 - WeakAurasSaved.HerbSniffer.NoCD = WeakAurasSaved.HerbSniffer.NoCD + 1 - WeakAurasSaved.HerbSniffer.CD = WeakAurasSaved.HerbSniffer.CD - 1 - end - end - end - return true -end - ---RESET_COUNTER -function() - WeakAurasSaved.HerbSniffer.CD = 0 - WeakAurasSaved.HerbSniffer.NoCD = 200 -end - ---ANIMATION -function() - return - aura_env.angle -end - ---INIT +--EVERY FRAME TRIGGER +function() + if not WeakAurasSaved.HerbSniffer then WeakAurasSaved.HerbSniffer = {} end + if not WeakAurasSaved.HerbSniffer.CD then WeakAurasSaved.HerbSniffer.CD = 0 end + if not WeakAurasSaved.HerbSniffer.NoCD then WeakAurasSaved.HerbSniffer.NoCD = #aura_env.herbs end + local function range (val, min, max, max2) + val = 1 - (((max - val) / (max - min)) * max2) + return val + end + local id = aura_env.GetClosestHerb() + local hX, hY = aura_env.herbs[id]["X"], aura_env.herbs[id]["Y"] + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + local X = pX - hX + local Y = pY - hY + local playerFace = GetPlayerFacing() or 0 + local playerA = math.floor(playerFace * 100) + playerA = range(playerA, 0, 630, 360) - 1 + playerA = - playerA + playerA = playerA - 90 + if playerA < 0 then playerA = playerA + 360 end + aura_env.hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) * 100 + WeakAurasSaved.HerbSniffer.hyp = aura_env.hyp + aura_env.angle = math.deg(math.atan2(Y, X)) + aura_env.angle = aura_env.angle - playerA + aura_env.angle = aura_env.angle - 180 + if aura_env.hyp < aura_env.wipeDistance then --When reach herb activate it's cooldown (herbcd[cd] = coords) + aura_env.herbs[id]["CD"] = math.floor(GetTime() + aura_env.cooldown) + WeakAurasSaved.HerbSniffer.CD = WeakAurasSaved.HerbSniffer.CD + 1 + WeakAurasSaved.HerbSniffer.NoCD = WeakAurasSaved.HerbSniffer.NoCD - 1 + aura_env.minID = + { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 10000, + ["ID"] = 0 + } + end + for k,v in ipairs(aura_env.herbs) do --if cooldown is up then insert back into proper array + local cd = aura_env.herbs[k]["CD"] + if cd > 0 then + if GetTime() > cd then + aura_env.herbs[k]["CD"] = 0 + WeakAurasSaved.HerbSniffer.NoCD = WeakAurasSaved.HerbSniffer.NoCD + 1 + WeakAurasSaved.HerbSniffer.CD = WeakAurasSaved.HerbSniffer.CD - 1 + end + end + end + return true +end + +--RESET_COUNTER +function() + WeakAurasSaved.HerbSniffer.CD = 0 + WeakAurasSaved.HerbSniffer.NoCD = 200 +end + +--ANIMATION +function() + return - aura_env.angle +end + +--INIT if WeakAuras.IsOptionsOpen() then WeakAurasSaved.HerbSniffer.CD = 0; WeakAurasSaved.HerbSniffer.NoCD = 200 end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/0.5/Distance.lua b/WeakAuras/Projects/Herb Sniffer/0.5/Distance.lua similarity index 97% rename from Complete Projects/Legion/Herb Sniffer/0.5/Distance.lua rename to WeakAuras/Projects/Herb Sniffer/0.5/Distance.lua index bc48752..c53f968 100644 --- a/Complete Projects/Legion/Herb Sniffer/0.5/Distance.lua +++ b/WeakAuras/Projects/Herb Sniffer/0.5/Distance.lua @@ -1,14 +1,14 @@ ---DISPLAY -function() - 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 - if WeakAurasSaved.HerbSniffer.hyp and WeakAurasSaved.HerbSniffer.NoCD and WeakAurasSaved.HerbSniffer.CD then - return round(WeakAurasSaved.HerbSniffer.hyp, 0) .. "\n" .. WeakAurasSaved.HerbSniffer.NoCD .. "\n" .. WeakAurasSaved.HerbSniffer.CD - end +--DISPLAY +function() + 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 + if WeakAurasSaved.HerbSniffer.hyp and WeakAurasSaved.HerbSniffer.NoCD and WeakAurasSaved.HerbSniffer.CD then + return round(WeakAurasSaved.HerbSniffer.hyp, 0) .. "\n" .. WeakAurasSaved.HerbSniffer.NoCD .. "\n" .. WeakAurasSaved.HerbSniffer.CD + end end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/0.5/Herb Arrays Legion.lua b/WeakAuras/Projects/Herb Sniffer/0.5/Herb Arrays Legion.lua similarity index 93% rename from Complete Projects/Legion/Herb Sniffer/0.5/Herb Arrays Legion.lua rename to WeakAuras/Projects/Herb Sniffer/0.5/Herb Arrays Legion.lua index a502c30..d24ae81 100644 --- a/Complete Projects/Legion/Herb Sniffer/0.5/Herb Arrays Legion.lua +++ b/WeakAuras/Projects/Herb Sniffer/0.5/Herb Arrays Legion.lua @@ -1,5493 +1,5493 @@ -aura_env.herbs = { - --Azsuna / Aethrik - [1015] = { - [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, - }, - }, - --Highmountain / Foxflower - [1024] = { - [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, - }, - }, - --Stormheim / Fjarnskaggl - [1017] = { - [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, - }, - }, - --Val'sharah / Dreamleaf - [1018] = { - [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, - }, - }, - --Suramar / Starlight Rose - [1033] = { - [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, - }, - }, - --Winterspring - [281] = { - [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 - 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 -end -if WeakAuras.IsOptionsOpen() then - WeakAurasSaved.HerbSniffer.CD = 0 - WeakAurasSaved.HerbSniffer.NoCD = 200 -end +aura_env.herbs = { + --Azsuna / Aethrik + [1015] = { + [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, + }, + }, + --Highmountain / Foxflower + [1024] = { + [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, + }, + }, + --Stormheim / Fjarnskaggl + [1017] = { + [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, + }, + }, + --Val'sharah / Dreamleaf + [1018] = { + [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, + }, + }, + --Suramar / Starlight Rose + [1033] = { + [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, + }, + }, + --Winterspring + [281] = { + [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 + 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 +end +if WeakAuras.IsOptionsOpen() then + WeakAurasSaved.HerbSniffer.CD = 0 + WeakAurasSaved.HerbSniffer.NoCD = 200 +end diff --git a/Complete Projects/Legion/Herb Sniffer/2.0/Direction.lua b/WeakAuras/Projects/Herb Sniffer/2.0/Direction.lua similarity index 94% rename from Complete Projects/Legion/Herb Sniffer/2.0/Direction.lua rename to WeakAuras/Projects/Herb Sniffer/2.0/Direction.lua index 1cb791b..cc9a8d7 100644 --- a/Complete Projects/Legion/Herb Sniffer/2.0/Direction.lua +++ b/WeakAuras/Projects/Herb Sniffer/2.0/Direction.lua @@ -1,1337 +1,1337 @@ ---[[ -Plan is -1) Divide map into sectors by 10 or 20 ++ -2) Give sight of neraby sectors ++ -3) Evaluate each sector by # herb -4) Generate path by looking 2 or 3 steps ahead -5) Convert to vectors for distance (i + j) -6) Rework entire distance and angle calculation -7) Rework CD resets by using timers instead of current method (first verify if timers are efficient) - -Point to master array within sector arrays by herb ID (1 to 200) for cd instead of sector arrays - -HerbSniffer = {"hyp" = 0, "CD" = 0, "NoCD" = 200} -]] - ---EVERY FRAME TRIGGER -function() - local function range (val, min, max, max2) - val = 1 - (((max - val) / (max - min)) * max2) - return val - end - local playerX = GetPlayerMapPosition("player") or 0 - local playerY = select(2, GetPlayerMapPosition("player")) or 0 - playerX, playerY = playerX * 100, playerY * 100 - local playerSector = ceil(playerX / aura_env.gridSize) + (floor(playerY / aura_env.gridSize) * (100 / aura_env.gridSize)) - - local visibleSectors = {} - print("Grid count", ((100 / aura_env.gridSize) ^ 2)) - print("Player is at sector", playerSector) - print("") - --Can see current sector - visibleSectors[#visibleSectors + 1] = playerSector - --If the player has a sector to the right of them it is also visible - if playerSector % 10 > 0 then - visibleSectors[#visibleSectors + 1] = playerSector + 1 - print("Right sector visible", visibleSectors[#visibleSectors]) - end - --If the player has a sector to the left of them it is also visible - if (playerSector - 1) % 10 > 0 then - visibleSectors[#visibleSectors + 1] = playerSector - 1 - print("Left sector visible", visibleSectors[#visibleSectors]) - end - --If the player has a sector above them - if (playerSector - (100 / aura_env.gridSize)) > (100 / aura_env.gridSize) then - visibleSectors[#visibleSectors + 1] = playerSector - (100 / aura_env.gridSize) - print("Above sector visible", visibleSectors[#visibleSectors]) - end - --If the player has a sector below them - if (playerSector + (100 / aura_env.gridSize)) < ((100 / aura_env.gridSize) ^ 2) - (100 - aura_env.gridSize) then - visibleSectors[#visibleSectors + 1] = playerSector + (100 / aura_env.gridSize) - print("Below sector visible", visibleSectors[#visibleSectors]) - end - --for k,v in pairs(visibleSectors) do - -- print(k,v) - -- -- for k2,v2 in ipairs(aura_env.zonedHerbs[v]) do - -- -- --print(k2,v2.X, v2.Y) - -- -- end - --end - - print("") - - local playerFace = GetPlayerFacing() or 0 - --print(playerFace) - local playerAngle = math.floor(playerFace * 100) - playerAngle = range(playerAngle, 0, 630, 360) - 1 - playerAngle = - playerAngle - playerAngle = playerAngle - 90 - while playerAngle < 0 do playerAngle = playerAngle + 360 end - --print(playerAngle) - return true -end - ---RESET_COUNTER -function() - WeakAurasSaved.HerbSniffer.CD = 0 - WeakAurasSaved.HerbSniffer.NoCD = 200 -end - ---ANIMATION -function() - return - aura_env.angle -end - ---INIT -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 - } -} - -local function printTable(table) - for k,v in pairs(table) do - print(k,v) - if type(v) == "table" then print(k, "is a table"); printTable(v) end - end -end - ---Array.Sector.Global coords -aura_env.zonedHerbs = {} -aura_env.gridSize = 5 - -for k,v in ipairs(aura_env.herbs) do - local herbSector = ceil(v.X / aura_env.gridSize) + (floor(v.Y / aura_env.gridSize) * (100 / aura_env.gridSize)) - if not aura_env.zonedHerbs[herbSector] then aura_env.zonedHerbs[herbSector] = {} end - aura_env.zonedHerbs[herbSector][#aura_env.zonedHerbs[herbSector] + 1] = k -end ---zonedHerbs[sectors][herbs].coords ---printTable(aura_env.zonedHerbs) - -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"] +--[[ +Plan is +1) Divide map into sectors by 10 or 20 ++ +2) Give sight of neraby sectors ++ +3) Evaluate each sector by # herb +4) Generate path by looking 2 or 3 steps ahead +5) Convert to vectors for distance (i + j) +6) Rework entire distance and angle calculation +7) Rework CD resets by using timers instead of current method (first verify if timers are efficient) + +Point to master array within sector arrays by herb ID (1 to 200) for cd instead of sector arrays + +HerbSniffer = {"hyp" = 0, "CD" = 0, "NoCD" = 200} +]] + +--EVERY FRAME TRIGGER +function() + local function range (val, min, max, max2) + val = 1 - (((max - val) / (max - min)) * max2) + return val + end + local playerX = GetPlayerMapPosition("player") or 0 + local playerY = select(2, GetPlayerMapPosition("player")) or 0 + playerX, playerY = playerX * 100, playerY * 100 + local playerSector = ceil(playerX / aura_env.gridSize) + (floor(playerY / aura_env.gridSize) * (100 / aura_env.gridSize)) + + local visibleSectors = {} + print("Grid count", ((100 / aura_env.gridSize) ^ 2)) + print("Player is at sector", playerSector) + print("") + --Can see current sector + visibleSectors[#visibleSectors + 1] = playerSector + --If the player has a sector to the right of them it is also visible + if playerSector % 10 > 0 then + visibleSectors[#visibleSectors + 1] = playerSector + 1 + print("Right sector visible", visibleSectors[#visibleSectors]) + end + --If the player has a sector to the left of them it is also visible + if (playerSector - 1) % 10 > 0 then + visibleSectors[#visibleSectors + 1] = playerSector - 1 + print("Left sector visible", visibleSectors[#visibleSectors]) + end + --If the player has a sector above them + if (playerSector - (100 / aura_env.gridSize)) > (100 / aura_env.gridSize) then + visibleSectors[#visibleSectors + 1] = playerSector - (100 / aura_env.gridSize) + print("Above sector visible", visibleSectors[#visibleSectors]) + end + --If the player has a sector below them + if (playerSector + (100 / aura_env.gridSize)) < ((100 / aura_env.gridSize) ^ 2) - (100 - aura_env.gridSize) then + visibleSectors[#visibleSectors + 1] = playerSector + (100 / aura_env.gridSize) + print("Below sector visible", visibleSectors[#visibleSectors]) + end + --for k,v in pairs(visibleSectors) do + -- print(k,v) + -- -- for k2,v2 in ipairs(aura_env.zonedHerbs[v]) do + -- -- --print(k2,v2.X, v2.Y) + -- -- end + --end + + print("") + + local playerFace = GetPlayerFacing() or 0 + --print(playerFace) + local playerAngle = math.floor(playerFace * 100) + playerAngle = range(playerAngle, 0, 630, 360) - 1 + playerAngle = - playerAngle + playerAngle = playerAngle - 90 + while playerAngle < 0 do playerAngle = playerAngle + 360 end + --print(playerAngle) + return true +end + +--RESET_COUNTER +function() + WeakAurasSaved.HerbSniffer.CD = 0 + WeakAurasSaved.HerbSniffer.NoCD = 200 +end + +--ANIMATION +function() + return - aura_env.angle +end + +--INIT +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 + } +} + +local function printTable(table) + for k,v in pairs(table) do + print(k,v) + if type(v) == "table" then print(k, "is a table"); printTable(v) end + end +end + +--Array.Sector.Global coords +aura_env.zonedHerbs = {} +aura_env.gridSize = 5 + +for k,v in ipairs(aura_env.herbs) do + local herbSector = ceil(v.X / aura_env.gridSize) + (floor(v.Y / aura_env.gridSize) * (100 / aura_env.gridSize)) + if not aura_env.zonedHerbs[herbSector] then aura_env.zonedHerbs[herbSector] = {} end + aura_env.zonedHerbs[herbSector][#aura_env.zonedHerbs[herbSector] + 1] = k +end +--zonedHerbs[sectors][herbs].coords +--printTable(aura_env.zonedHerbs) + +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"] end \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Direction.lua b/WeakAuras/Projects/Herb Sniffer/Direction.lua similarity index 97% rename from Complete Projects/Legion/Herb Sniffer/Direction.lua rename to WeakAuras/Projects/Herb Sniffer/Direction.lua index a28e7d6..42b3647 100644 --- a/Complete Projects/Legion/Herb Sniffer/Direction.lua +++ b/WeakAuras/Projects/Herb Sniffer/Direction.lua @@ -1,67 +1,67 @@ ---EVERY FRAME TRIGGER -function() - if not WeakAurasSaved.HerbSniffer then WeakAurasSaved.HerbSniffer = {} end - local function range (val, min, max, max2) - val = 1 - (((max - val) / (max - min)) * max2) - return val - end - local id = aura_env.GetClosestHerb() - if id > -1 then - if not aura_env.herbs then return false end - local hX, hY = aura_env.herbs[id].X, aura_env.herbs[id].Y - local pX = GetPlayerMapPosition("player") or 0 - local pY = select(2, GetPlayerMapPosition("player")) or 0 - pX, pY = pX * 100, pY * 100 - local X = pX - hX - local Y = pY - hY - local playerFace = GetPlayerFacing() or 0 - local playerA = math.floor(playerFace * 100) - playerA = range(playerA, 0, 630, 360) - 1 - playerA = -playerA - playerA = playerA - 90 - if playerA < 0 then playerA = playerA + 360 end - aura_env.hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) * 100 - WeakAurasSaved.HerbSniffer.hyp = aura_env.hyp - aura_env.angle = math.deg(math.atan2(Y, X)) - aura_env.angle = aura_env.angle - playerA - aura_env.angle = aura_env.angle - 180 - if aura_env.hyp < aura_env.wipeDistance then --When reach herb activate it's cooldown (herbcd[cd] = coords) - aura_env.herbs[id].CD = math.floor(GetTime() + aura_env.cooldown) - WeakAurasSaved.HerbSniffer.CD = WeakAurasSaved.HerbSniffer.CD + 1 - WeakAurasSaved.HerbSniffer.NoCD = WeakAurasSaved.HerbSniffer.NoCD - 1 - aura_env.minID = { - ["X"] = 0, - ["Y"] = 0, - ["D"] = 10000, - ["ID"] = -1 - } - end - for k, v in ipairs(aura_env.herbs) do --if cooldown is up then insert back into proper array - local cd = aura_env.herbs[k].CD - if cd > 0 then - if GetTime() > cd then - aura_env.herbs[k].CD = 0 - WeakAurasSaved.HerbSniffer.NoCD = WeakAurasSaved.HerbSniffer.NoCD + 1 - WeakAurasSaved.HerbSniffer.CD = WeakAurasSaved.HerbSniffer.CD - 1 - end - end - end - else - return false - end - return true -end - ---RESET_COUNTER -function() - WeakAurasSaved.HerbSniffer.CD = 0 - WeakAurasSaved.HerbSniffer.NoCD = #aura_env.herbs -end - ---ANIMATION -function() - return - aura_env.angle -end - ---INIT -if WeakAuras.IsOptionsOpen() then WeakAurasSaved.HerbSniffer.CD = 0; WeakAurasSaved.HerbSniffer.NoCD = #aura_env.herbs end +--EVERY FRAME TRIGGER +function() + if not WeakAurasSaved.HerbSniffer then WeakAurasSaved.HerbSniffer = {} end + local function range (val, min, max, max2) + val = 1 - (((max - val) / (max - min)) * max2) + return val + end + local id = aura_env.GetClosestHerb() + if id > -1 then + if not aura_env.herbs then return false end + local hX, hY = aura_env.herbs[id].X, aura_env.herbs[id].Y + local pX = GetPlayerMapPosition("player") or 0 + local pY = select(2, GetPlayerMapPosition("player")) or 0 + pX, pY = pX * 100, pY * 100 + local X = pX - hX + local Y = pY - hY + local playerFace = GetPlayerFacing() or 0 + local playerA = math.floor(playerFace * 100) + playerA = range(playerA, 0, 630, 360) - 1 + playerA = -playerA + playerA = playerA - 90 + if playerA < 0 then playerA = playerA + 360 end + aura_env.hyp = math.sqrt((math.abs(X ^ 2)) + (math.abs(Y ^ 2))) * 100 + WeakAurasSaved.HerbSniffer.hyp = aura_env.hyp + aura_env.angle = math.deg(math.atan2(Y, X)) + aura_env.angle = aura_env.angle - playerA + aura_env.angle = aura_env.angle - 180 + if aura_env.hyp < aura_env.wipeDistance then --When reach herb activate it's cooldown (herbcd[cd] = coords) + aura_env.herbs[id].CD = math.floor(GetTime() + aura_env.cooldown) + WeakAurasSaved.HerbSniffer.CD = WeakAurasSaved.HerbSniffer.CD + 1 + WeakAurasSaved.HerbSniffer.NoCD = WeakAurasSaved.HerbSniffer.NoCD - 1 + aura_env.minID = { + ["X"] = 0, + ["Y"] = 0, + ["D"] = 10000, + ["ID"] = -1 + } + end + for k, v in ipairs(aura_env.herbs) do --if cooldown is up then insert back into proper array + local cd = aura_env.herbs[k].CD + if cd > 0 then + if GetTime() > cd then + aura_env.herbs[k].CD = 0 + WeakAurasSaved.HerbSniffer.NoCD = WeakAurasSaved.HerbSniffer.NoCD + 1 + WeakAurasSaved.HerbSniffer.CD = WeakAurasSaved.HerbSniffer.CD - 1 + end + end + end + else + return false + end + return true +end + +--RESET_COUNTER +function() + WeakAurasSaved.HerbSniffer.CD = 0 + WeakAurasSaved.HerbSniffer.NoCD = #aura_env.herbs +end + +--ANIMATION +function() + return - aura_env.angle +end + +--INIT +if WeakAuras.IsOptionsOpen() then WeakAurasSaved.HerbSniffer.CD = 0; WeakAurasSaved.HerbSniffer.NoCD = #aura_env.herbs end diff --git a/Complete Projects/Legion/Herb Sniffer/Distance.lua b/WeakAuras/Projects/Herb Sniffer/Distance.lua similarity index 97% rename from Complete Projects/Legion/Herb Sniffer/Distance.lua rename to WeakAuras/Projects/Herb Sniffer/Distance.lua index 3b1f90b..12dfc26 100644 --- a/Complete Projects/Legion/Herb Sniffer/Distance.lua +++ b/WeakAuras/Projects/Herb Sniffer/Distance.lua @@ -1,14 +1,14 @@ ---DISPLAY -function() - 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 - if WeakAurasSaved.HerbSniffer.hyp and WeakAurasSaved.HerbSniffer.NoCD and WeakAurasSaved.HerbSniffer.CD then - return round(WeakAurasSaved.HerbSniffer.hyp, 0) .. "\n" .. WeakAurasSaved.HerbSniffer.NoCD .. "\n" .. WeakAurasSaved.HerbSniffer.CD - end -end +--DISPLAY +function() + 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 + if WeakAurasSaved.HerbSniffer.hyp and WeakAurasSaved.HerbSniffer.NoCD and WeakAurasSaved.HerbSniffer.CD then + return round(WeakAurasSaved.HerbSniffer.hyp, 0) .. "\n" .. WeakAurasSaved.HerbSniffer.NoCD .. "\n" .. WeakAurasSaved.HerbSniffer.CD + end +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays Legion.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays Legion.lua similarity index 94% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays Legion.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays Legion.lua index de0d2bf..9f30715 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays Legion.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays Legion.lua @@ -1,85 +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, - }, -} -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 -end -if WeakAuras.IsOptionsOpen() then - WeakAurasSaved.HerbSniffer.CD = 0 - WeakAurasSaved.HerbSniffer.NoCD = #aura_env.herbs -end +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, + }, +} +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 +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/WeakAuras/Projects/Herb Sniffer/Herb Arrays/All Ores.lua similarity index 92% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/All Ores.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/All Ores.lua index b4b1ada..4d38753 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/All Ores.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/All Ores.lua @@ -1,2191 +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.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"] -end +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 + end + end + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/ArgusWeed.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/ArgusWeed.lua similarity index 92% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/ArgusWeed.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/ArgusWeed.lua index cb1a4db..1a952d2 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/ArgusWeed.lua +++ b/WeakAuras/Projects/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, - }, -} +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, + }, +} diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Aethril.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Aethril.lua similarity index 92% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Aethril.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Aethril.lua index 953739c..583ec66 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Aethril.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Aethril.lua @@ -1,781 +1,781 @@ -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 = { - ["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 +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 = { + ["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/Azshara's Veil.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Azshara's Veil.lua similarity index 93% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Azshara's Veil.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Azshara's Veil.lua index 2d3435a..9c809c9 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Azshara's Veil.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Azshara's Veil.lua @@ -1,436 +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.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"] -end +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 + end + end + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Cinderbloom.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Cinderbloom.lua similarity index 93% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Cinderbloom.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Cinderbloom.lua index ec5e76e..1849dde 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Cinderbloom.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Cinderbloom.lua @@ -1,381 +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.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"] -end +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 + end + end + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Dreamleaf.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Dreamleaf.lua similarity index 92% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Dreamleaf.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Dreamleaf.lua index 83ba647..4c85e88 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Dreamleaf.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Dreamleaf.lua @@ -1,1031 +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.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"] -end +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 + end + end + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Fel Herbs.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Fel Herbs.lua similarity index 93% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Fel Herbs.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Fel Herbs.lua index 90842b4..914e5f0 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Fel Herbs.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Fel Herbs.lua @@ -1,271 +1,271 @@ -aura_env.herbs = { - [1] = { - ["X"] = 43.7, - ["Y"] = 47.52, - ["CD"] = 0, - }, - [2] = { - ["X"] = 55.11, - ["Y"] = 53.52, - ["CD"] = 0, - }, - [3] = { - ["X"] = 67.75, - ["Y"] = 35.39, - ["CD"] = 0, - }, - [4] = { - ["X"] = 46.51, - ["Y"] = 31.41, - ["CD"] = 0, - }, - [5] = { - ["X"] = 46.21, - ["Y"] = 39.28, - ["CD"] = 0, - }, - [6] = { - ["X"] = 41.5, - ["Y"] = 42.11, - ["CD"] = 0, - }, - [7] = { - ["X"] = 50.73, - ["Y"] = 36.37, - ["CD"] = 0, - }, - [8] = { - ["X"] = 52, - ["Y"] = 38.74, - ["CD"] = 0, - }, - [9] = { - ["X"] = 51.73, - ["Y"] = 44.44, - ["CD"] = 0, - }, - [10] = { - ["X"] = 48.85, - ["Y"] = 43.36, - ["CD"] = 0, - }, - [11] = { - ["X"] = 43.36, - ["Y"] = 27.42, - ["CD"] = 0, - }, - [12] = { - ["X"] = 38.9, - ["Y"] = 37.15, - ["CD"] = 0, - }, - [13] = { - ["X"] = 39.14, - ["Y"] = 48.19, - ["CD"] = 0, - }, - [14] = { - ["X"] = 45.77, - ["Y"] = 43.29, - ["CD"] = 0, - }, - [15] = { - ["X"] = 42.81, - ["Y"] = 39.12, - ["CD"] = 0, - }, - [16] = { - ["X"] = 44.9, - ["Y"] = 33.39, - ["CD"] = 0, - }, - [17] = { - ["X"] = 51.19, - ["Y"] = 34.46, - ["CD"] = 0, - }, - [18] = { - ["X"] = 54.96, - ["Y"] = 29.9, - ["CD"] = 0, - }, - [19] = { - ["X"] = 53.75, - ["Y"] = 55.53, - ["CD"] = 0, - }, - [20] = { - ["X"] = 58.01, - ["Y"] = 52.44, - ["CD"] = 0, - }, - [21] = { - ["X"] = 73.65, - ["Y"] = 35.59, - ["CD"] = 0, - }, - [22] = { - ["X"] = 68.83, - ["Y"] = 38.1, - ["CD"] = 0, - }, - [23] = { - ["X"] = 64.86, - ["Y"] = 31.35, - ["CD"] = 0, - }, - [24] = { - ["X"] = 55.37, - ["Y"] = 46.09, - ["CD"] = 0, - }, - [25] = { - ["X"] = 51.96, - ["Y"] = 54.69, - ["CD"] = 0, - }, - [26] = { - ["X"] = 52.07, - ["Y"] = 48.12, - ["CD"] = 0, - }, - [27] = { - ["X"] = 39.85, - ["Y"] = 43.02, - ["CD"] = 0, - }, - [28] = { - ["X"] = 45.11, - ["Y"] = 31.92, - ["CD"] = 0, - }, - [29] = { - ["X"] = 58.81, - ["Y"] = 42.23, - ["CD"] = 0, - }, - [30] = { - ["X"] = 56.87, - ["Y"] = 35.36, - ["CD"] = 0, - }, - [31] = { - ["X"] = 80.46, - ["Y"] = 42.58, - ["CD"] = 0, - }, - [32] = { - ["X"] = 73.35, - ["Y"] = 40.36, - ["CD"] = 0, - }, - [33] = { - ["X"] = 65.26, - ["Y"] = 49, - ["CD"] = 0, - }, - [34] = { - ["X"] = 38.29, - ["Y"] = 21.84, - ["CD"] = 0, - }, - [35] = { - ["X"] = 64.95, - ["Y"] = 44.66, - ["CD"] = 0, - }, - [36] = { - ["X"] = 48.04, - ["Y"] = 40.24, - ["CD"] = 0, - }, - [37] = { - ["X"] = 47.18, - ["Y"] = 41.63, - ["CD"] = 0, - }, - [38] = { - ["X"] = 30.84, - ["Y"] = 32.27, - ["CD"] = 0, - }, - [39] = { - ["X"] = 43.7, - ["Y"] = 47.52, - ["CD"] = 0, - }, - [40] = { - ["X"] = 44.9, - ["Y"] = 33.39, - ["CD"] = 0, - }, - [41] = { - ["X"] = 49.05, - ["Y"] = 39.41, - ["CD"] = 0, - }, - [42] = { - ["X"] = 44.09, - ["Y"] = 53.11, - ["CD"] = 0, - }, - [43] = { - ["X"] = 39.14, - ["Y"] = 32.32, - ["CD"] = 0, - }, - [44] = { - ["X"] = 61.13, - ["Y"] = 44.07, - ["CD"] = 0, - }, - [45] = { - ["X"] = 60.53, - ["Y"] = 46.91, - ["CD"] = 0, - }, - [46] = { - ["X"] = 52.47, - ["Y"] = 52.01, - ["CD"] = 0, - }, - [47] = { - ["X"] = 68.45, - ["Y"] = 27.27, - ["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 - end - end - end - return aura_env.minID["ID"] -end +aura_env.herbs = { + [1] = { + ["X"] = 43.7, + ["Y"] = 47.52, + ["CD"] = 0, + }, + [2] = { + ["X"] = 55.11, + ["Y"] = 53.52, + ["CD"] = 0, + }, + [3] = { + ["X"] = 67.75, + ["Y"] = 35.39, + ["CD"] = 0, + }, + [4] = { + ["X"] = 46.51, + ["Y"] = 31.41, + ["CD"] = 0, + }, + [5] = { + ["X"] = 46.21, + ["Y"] = 39.28, + ["CD"] = 0, + }, + [6] = { + ["X"] = 41.5, + ["Y"] = 42.11, + ["CD"] = 0, + }, + [7] = { + ["X"] = 50.73, + ["Y"] = 36.37, + ["CD"] = 0, + }, + [8] = { + ["X"] = 52, + ["Y"] = 38.74, + ["CD"] = 0, + }, + [9] = { + ["X"] = 51.73, + ["Y"] = 44.44, + ["CD"] = 0, + }, + [10] = { + ["X"] = 48.85, + ["Y"] = 43.36, + ["CD"] = 0, + }, + [11] = { + ["X"] = 43.36, + ["Y"] = 27.42, + ["CD"] = 0, + }, + [12] = { + ["X"] = 38.9, + ["Y"] = 37.15, + ["CD"] = 0, + }, + [13] = { + ["X"] = 39.14, + ["Y"] = 48.19, + ["CD"] = 0, + }, + [14] = { + ["X"] = 45.77, + ["Y"] = 43.29, + ["CD"] = 0, + }, + [15] = { + ["X"] = 42.81, + ["Y"] = 39.12, + ["CD"] = 0, + }, + [16] = { + ["X"] = 44.9, + ["Y"] = 33.39, + ["CD"] = 0, + }, + [17] = { + ["X"] = 51.19, + ["Y"] = 34.46, + ["CD"] = 0, + }, + [18] = { + ["X"] = 54.96, + ["Y"] = 29.9, + ["CD"] = 0, + }, + [19] = { + ["X"] = 53.75, + ["Y"] = 55.53, + ["CD"] = 0, + }, + [20] = { + ["X"] = 58.01, + ["Y"] = 52.44, + ["CD"] = 0, + }, + [21] = { + ["X"] = 73.65, + ["Y"] = 35.59, + ["CD"] = 0, + }, + [22] = { + ["X"] = 68.83, + ["Y"] = 38.1, + ["CD"] = 0, + }, + [23] = { + ["X"] = 64.86, + ["Y"] = 31.35, + ["CD"] = 0, + }, + [24] = { + ["X"] = 55.37, + ["Y"] = 46.09, + ["CD"] = 0, + }, + [25] = { + ["X"] = 51.96, + ["Y"] = 54.69, + ["CD"] = 0, + }, + [26] = { + ["X"] = 52.07, + ["Y"] = 48.12, + ["CD"] = 0, + }, + [27] = { + ["X"] = 39.85, + ["Y"] = 43.02, + ["CD"] = 0, + }, + [28] = { + ["X"] = 45.11, + ["Y"] = 31.92, + ["CD"] = 0, + }, + [29] = { + ["X"] = 58.81, + ["Y"] = 42.23, + ["CD"] = 0, + }, + [30] = { + ["X"] = 56.87, + ["Y"] = 35.36, + ["CD"] = 0, + }, + [31] = { + ["X"] = 80.46, + ["Y"] = 42.58, + ["CD"] = 0, + }, + [32] = { + ["X"] = 73.35, + ["Y"] = 40.36, + ["CD"] = 0, + }, + [33] = { + ["X"] = 65.26, + ["Y"] = 49, + ["CD"] = 0, + }, + [34] = { + ["X"] = 38.29, + ["Y"] = 21.84, + ["CD"] = 0, + }, + [35] = { + ["X"] = 64.95, + ["Y"] = 44.66, + ["CD"] = 0, + }, + [36] = { + ["X"] = 48.04, + ["Y"] = 40.24, + ["CD"] = 0, + }, + [37] = { + ["X"] = 47.18, + ["Y"] = 41.63, + ["CD"] = 0, + }, + [38] = { + ["X"] = 30.84, + ["Y"] = 32.27, + ["CD"] = 0, + }, + [39] = { + ["X"] = 43.7, + ["Y"] = 47.52, + ["CD"] = 0, + }, + [40] = { + ["X"] = 44.9, + ["Y"] = 33.39, + ["CD"] = 0, + }, + [41] = { + ["X"] = 49.05, + ["Y"] = 39.41, + ["CD"] = 0, + }, + [42] = { + ["X"] = 44.09, + ["Y"] = 53.11, + ["CD"] = 0, + }, + [43] = { + ["X"] = 39.14, + ["Y"] = 32.32, + ["CD"] = 0, + }, + [44] = { + ["X"] = 61.13, + ["Y"] = 44.07, + ["CD"] = 0, + }, + [45] = { + ["X"] = 60.53, + ["Y"] = 46.91, + ["CD"] = 0, + }, + [46] = { + ["X"] = 52.47, + ["Y"] = 52.01, + ["CD"] = 0, + }, + [47] = { + ["X"] = 68.45, + ["Y"] = 27.27, + ["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 + end + end + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Fjarnskaggl.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Fjarnskaggl.lua similarity index 92% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Fjarnskaggl.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Fjarnskaggl.lua index d975c2f..1a16348 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Fjarnskaggl.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Fjarnskaggl.lua @@ -1,1031 +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.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"] -end +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 + end + end + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Foxflower.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Foxflower.lua similarity index 92% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Foxflower.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Foxflower.lua index e53e481..b8f7577 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Foxflower.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Foxflower.lua @@ -1,1032 +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.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 - end - end - end - return aura_env.minID["ID"] -end +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 + end + end + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Icecap And Silversage.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Icecap And Silversage.lua similarity index 92% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Icecap And Silversage.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Icecap And Silversage.lua index 0fc25b6..e71e630 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Icecap And Silversage.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Icecap And Silversage.lua @@ -1,716 +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.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"] -end +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 + end + end + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Icecap.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Icecap.lua similarity index 92% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Icecap.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Icecap.lua index 11c4def..1972f37 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Icecap.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Icecap.lua @@ -1,451 +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, - }, -} -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"] -end +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, + }, +} +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"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Roses.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Roses.lua similarity index 92% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Roses.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Roses.lua index 89cad8f..f7b29d0 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Roses.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Roses.lua @@ -1,1031 +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.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"] -end +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 + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Silversage.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Silversage.lua similarity index 93% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Silversage.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Silversage.lua index 94f76fe..cc57da2 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Herbalism/Silversage.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Herbalism/Silversage.lua @@ -1,296 +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, - }, -} -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"] -end +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, + }, +} +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"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Dragonblight.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Cobalt - Dragonblight.lua similarity index 93% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Dragonblight.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Cobalt - Dragonblight.lua index d62887b..9c75d85 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Dragonblight.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Cobalt - Dragonblight.lua @@ -1,276 +1,276 @@ -aura_env.herbs = { - [1] = { - ["X"] = 88.46, - ["Y"] = 17.99, - ["CD"] = 0, - }, - [2] = { - ["X"] = 87.27, - ["Y"] = 17.3, - ["CD"] = 0, - }, - [3] = { - ["X"] = 86.48, - ["Y"] = 17.2, - ["CD"] = 0, - }, - [4] = { - ["X"] = 85.78, - ["Y"] = 17.6, - ["CD"] = 0, - }, - [5] = { - ["X"] = 85, - ["Y"] = 18.05, - ["CD"] = 0, - }, - [6] = { - ["X"] = 84.03, - ["Y"] = 19.24, - ["CD"] = 0, - }, - [7] = { - ["X"] = 83.28, - ["Y"] = 20.08, - ["CD"] = 0, - }, - [8] = { - ["X"] = 82.62, - ["Y"] = 20.74, - ["CD"] = 0, - }, - [9] = { - ["X"] = 81.96, - ["Y"] = 22.01, - ["CD"] = 0, - }, - [10] = { - ["X"] = 81.22, - ["Y"] = 22.72, - ["CD"] = 0, - }, - [11] = { - ["X"] = 80.32, - ["Y"] = 25.03, - ["CD"] = 0, - }, - [12] = { - ["X"] = 80.19, - ["Y"] = 25.92, - ["CD"] = 0, - }, - [13] = { - ["X"] = 78.88, - ["Y"] = 27.21, - ["CD"] = 0, - }, - [14] = { - ["X"] = 77.91, - ["Y"] = 27.41, - ["CD"] = 0, - }, - [15] = { - ["X"] = 76.98, - ["Y"] = 28.38, - ["CD"] = 0, - }, - [16] = { - ["X"] = 75.11, - ["Y"] = 32.51, - ["CD"] = 0, - }, - [17] = { - ["X"] = 74.55, - ["Y"] = 33.31, - ["CD"] = 0, - }, - [18] = { - ["X"] = 73.58, - ["Y"] = 32.76, - ["CD"] = 0, - }, - [19] = { - ["X"] = 73.64, - ["Y"] = 31.74, - ["CD"] = 0, - }, - [20] = { - ["X"] = 73.51, - ["Y"] = 30.48, - ["CD"] = 0, - }, - [21] = { - ["X"] = 72.86, - ["Y"] = 29.99, - ["CD"] = 0, - }, - [22] = { - ["X"] = 72.18, - ["Y"] = 28.74, - ["CD"] = 0, - }, - [23] = { - ["X"] = 72.13, - ["Y"] = 26.96, - ["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, - }, -} -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"] -end +aura_env.herbs = { + [1] = { + ["X"] = 88.46, + ["Y"] = 17.99, + ["CD"] = 0, + }, + [2] = { + ["X"] = 87.27, + ["Y"] = 17.3, + ["CD"] = 0, + }, + [3] = { + ["X"] = 86.48, + ["Y"] = 17.2, + ["CD"] = 0, + }, + [4] = { + ["X"] = 85.78, + ["Y"] = 17.6, + ["CD"] = 0, + }, + [5] = { + ["X"] = 85, + ["Y"] = 18.05, + ["CD"] = 0, + }, + [6] = { + ["X"] = 84.03, + ["Y"] = 19.24, + ["CD"] = 0, + }, + [7] = { + ["X"] = 83.28, + ["Y"] = 20.08, + ["CD"] = 0, + }, + [8] = { + ["X"] = 82.62, + ["Y"] = 20.74, + ["CD"] = 0, + }, + [9] = { + ["X"] = 81.96, + ["Y"] = 22.01, + ["CD"] = 0, + }, + [10] = { + ["X"] = 81.22, + ["Y"] = 22.72, + ["CD"] = 0, + }, + [11] = { + ["X"] = 80.32, + ["Y"] = 25.03, + ["CD"] = 0, + }, + [12] = { + ["X"] = 80.19, + ["Y"] = 25.92, + ["CD"] = 0, + }, + [13] = { + ["X"] = 78.88, + ["Y"] = 27.21, + ["CD"] = 0, + }, + [14] = { + ["X"] = 77.91, + ["Y"] = 27.41, + ["CD"] = 0, + }, + [15] = { + ["X"] = 76.98, + ["Y"] = 28.38, + ["CD"] = 0, + }, + [16] = { + ["X"] = 75.11, + ["Y"] = 32.51, + ["CD"] = 0, + }, + [17] = { + ["X"] = 74.55, + ["Y"] = 33.31, + ["CD"] = 0, + }, + [18] = { + ["X"] = 73.58, + ["Y"] = 32.76, + ["CD"] = 0, + }, + [19] = { + ["X"] = 73.64, + ["Y"] = 31.74, + ["CD"] = 0, + }, + [20] = { + ["X"] = 73.51, + ["Y"] = 30.48, + ["CD"] = 0, + }, + [21] = { + ["X"] = 72.86, + ["Y"] = 29.99, + ["CD"] = 0, + }, + [22] = { + ["X"] = 72.18, + ["Y"] = 28.74, + ["CD"] = 0, + }, + [23] = { + ["X"] = 72.13, + ["Y"] = 26.96, + ["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, + }, +} +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"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Howling Fjord.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Cobalt - Howling Fjord.lua similarity index 92% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Howling Fjord.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Cobalt - Howling Fjord.lua index 1857e07..7828b3c 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Howling Fjord.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Cobalt - Howling Fjord.lua @@ -1,526 +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, - }, -} -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"] -end +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, + }, +} +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"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Rich - Zul'Drak.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Cobalt - Rich - Zul'Drak.lua similarity index 93% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Rich - Zul'Drak.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Cobalt - Rich - Zul'Drak.lua index 40e5556..0b84717 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Rich - Zul'Drak.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Cobalt - Rich - Zul'Drak.lua @@ -1,186 +1,186 @@ -aura_env.herbs = { - [1] = { - ["X"] = 62.63, - ["Y"] = 80.15, - ["CD"] = 0, - }, - [2] = { - ["X"] = 61.03, - ["Y"] = 83.67, - ["CD"] = 0, - }, - [3] = { - ["X"] = 60.11, - ["Y"] = 80.98, - ["CD"] = 0, - }, - [4] = { - ["X"] = 59.29, - ["Y"] = 77.46, - ["CD"] = 0, - }, - [5] = { - ["X"] = 56.55, - ["Y"] = 77.25, - ["CD"] = 0, - }, - [6] = { - ["X"] = 56.87, - ["Y"] = 75.77, - ["CD"] = 0, - }, - [7] = { - ["X"] = 51.04, - ["Y"] = 72.92, - ["CD"] = 0, - }, - [8] = { - ["X"] = 45.02, - ["Y"] = 70.03, - ["CD"] = 0, - }, - [9] = { - ["X"] = 72.27, - ["Y"] = 20.18, - ["CD"] = 0, - }, - [10] = { - ["X"] = 75.45, - ["Y"] = 17.55, - ["CD"] = 0, - }, - [11] = { - ["X"] = 76.63, - ["Y"] = 19.67, - ["CD"] = 0, - }, - [12] = { - ["X"] = 75.67, - ["Y"] = 21.71, - ["CD"] = 0, - }, - [13] = { - ["X"] = 73.78, - ["Y"] = 24.85, - ["CD"] = 0, - }, - [14] = { - ["X"] = 70.92, - ["Y"] = 34.01, - ["CD"] = 0, - }, - [15] = { - ["X"] = 65.32, - ["Y"] = 47.25, - ["CD"] = 0, - }, - [16] = { - ["X"] = 69.86, - ["Y"] = 52.11, - ["CD"] = 0, - }, - [17] = { - ["X"] = 74.82, - ["Y"] = 57.8, - ["CD"] = 0, - }, - [18] = { - ["X"] = 73.72, - ["Y"] = 55.53, - ["CD"] = 0, - }, - [19] = { - ["X"] = 75.55, - ["Y"] = 56.07, - ["CD"] = 0, - }, - [20] = { - ["X"] = 78.32, - ["Y"] = 59.4, - ["CD"] = 0, - }, - [21] = { - ["X"] = 77.23, - ["Y"] = 61.88, - ["CD"] = 0, - }, - [22] = { - ["X"] = 75.08, - ["Y"] = 61.89, - ["CD"] = 0, - }, - [23] = { - ["X"] = 72.99, - ["Y"] = 62.81, - ["CD"] = 0, - }, - [24] = { - ["X"] = 71.3, - ["Y"] = 63.82, - ["CD"] = 0, - }, - [25] = { - ["X"] = 68.84, - ["Y"] = 59.76, - ["CD"] = 0, - }, - [26] = { - ["X"] = 68.09, - ["Y"] = 59.63, - ["CD"] = 0, - }, - [27] = { - ["X"] = 67.89, - ["Y"] = 59.57, - ["CD"] = 0, - }, - [28] = { - ["X"] = 42.19, - ["Y"] = 84.08, - ["CD"] = 0, - }, - [29] = { - ["X"] = 34.22, - ["Y"] = 48.33, - ["CD"] = 0, - }, - [30] = { - ["X"] = 34.19, - ["Y"] = 42.54, - ["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 - end - end - end - return aura_env.minID["ID"] -end +aura_env.herbs = { + [1] = { + ["X"] = 62.63, + ["Y"] = 80.15, + ["CD"] = 0, + }, + [2] = { + ["X"] = 61.03, + ["Y"] = 83.67, + ["CD"] = 0, + }, + [3] = { + ["X"] = 60.11, + ["Y"] = 80.98, + ["CD"] = 0, + }, + [4] = { + ["X"] = 59.29, + ["Y"] = 77.46, + ["CD"] = 0, + }, + [5] = { + ["X"] = 56.55, + ["Y"] = 77.25, + ["CD"] = 0, + }, + [6] = { + ["X"] = 56.87, + ["Y"] = 75.77, + ["CD"] = 0, + }, + [7] = { + ["X"] = 51.04, + ["Y"] = 72.92, + ["CD"] = 0, + }, + [8] = { + ["X"] = 45.02, + ["Y"] = 70.03, + ["CD"] = 0, + }, + [9] = { + ["X"] = 72.27, + ["Y"] = 20.18, + ["CD"] = 0, + }, + [10] = { + ["X"] = 75.45, + ["Y"] = 17.55, + ["CD"] = 0, + }, + [11] = { + ["X"] = 76.63, + ["Y"] = 19.67, + ["CD"] = 0, + }, + [12] = { + ["X"] = 75.67, + ["Y"] = 21.71, + ["CD"] = 0, + }, + [13] = { + ["X"] = 73.78, + ["Y"] = 24.85, + ["CD"] = 0, + }, + [14] = { + ["X"] = 70.92, + ["Y"] = 34.01, + ["CD"] = 0, + }, + [15] = { + ["X"] = 65.32, + ["Y"] = 47.25, + ["CD"] = 0, + }, + [16] = { + ["X"] = 69.86, + ["Y"] = 52.11, + ["CD"] = 0, + }, + [17] = { + ["X"] = 74.82, + ["Y"] = 57.8, + ["CD"] = 0, + }, + [18] = { + ["X"] = 73.72, + ["Y"] = 55.53, + ["CD"] = 0, + }, + [19] = { + ["X"] = 75.55, + ["Y"] = 56.07, + ["CD"] = 0, + }, + [20] = { + ["X"] = 78.32, + ["Y"] = 59.4, + ["CD"] = 0, + }, + [21] = { + ["X"] = 77.23, + ["Y"] = 61.88, + ["CD"] = 0, + }, + [22] = { + ["X"] = 75.08, + ["Y"] = 61.89, + ["CD"] = 0, + }, + [23] = { + ["X"] = 72.99, + ["Y"] = 62.81, + ["CD"] = 0, + }, + [24] = { + ["X"] = 71.3, + ["Y"] = 63.82, + ["CD"] = 0, + }, + [25] = { + ["X"] = 68.84, + ["Y"] = 59.76, + ["CD"] = 0, + }, + [26] = { + ["X"] = 68.09, + ["Y"] = 59.63, + ["CD"] = 0, + }, + [27] = { + ["X"] = 67.89, + ["Y"] = 59.57, + ["CD"] = 0, + }, + [28] = { + ["X"] = 42.19, + ["Y"] = 84.08, + ["CD"] = 0, + }, + [29] = { + ["X"] = 34.22, + ["Y"] = 48.33, + ["CD"] = 0, + }, + [30] = { + ["X"] = 34.19, + ["Y"] = 42.54, + ["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 + end + end + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Zul'Drak.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Cobalt - Zul'Drak.lua similarity index 93% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Zul'Drak.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Cobalt - Zul'Drak.lua index 3ed6c3b..49b8843 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Cobalt - Zul'Drak.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Cobalt - Zul'Drak.lua @@ -1,431 +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.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"] -end +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 + end + end + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Highmountain).lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Highmountain).lua similarity index 92% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Highmountain).lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Highmountain).lua index f82599a..99ced5f 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Highmountain).lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Highmountain).lua @@ -1,466 +1,466 @@ -aura_env.herbs = { - [1] = { - ["X"] = 50.79, - ["Y"] = 52.35, - ["CD"] = 0, - }, - [2] = { - ["X"] = 52.7, - ["Y"] = 53.22, - ["CD"] = 0, - }, - [3] = { - ["X"] = 53.94, - ["Y"] = 53.78, - ["CD"] = 0, - }, - [4] = { - ["X"] = 53.24, - ["Y"] = 55.02, - ["CD"] = 0, - }, - [5] = { - ["X"] = 52.65, - ["Y"] = 55.24, - ["CD"] = 0, - }, - [6] = { - ["X"] = 51.67, - ["Y"] = 54.04, - ["CD"] = 0, - }, - [7] = { - ["X"] = 51.15, - ["Y"] = 52.08, - ["CD"] = 0, - }, - [8] = { - ["X"] = 49.47, - ["Y"] = 53.86, - ["CD"] = 0, - }, - [9] = { - ["X"] = 44.63, - ["Y"] = 60.71, - ["CD"] = 0, - }, - [10] = { - ["X"] = 44.89, - ["Y"] = 67.28, - ["CD"] = 0, - }, - [11] = { - ["X"] = 44.44, - ["Y"] = 67.36, - ["CD"] = 0, - }, - [12] = { - ["X"] = 44.34, - ["Y"] = 68.45, - ["CD"] = 0, - }, - [13] = { - ["X"] = 44.14, - ["Y"] = 69.89, - ["CD"] = 0, - }, - [14] = { - ["X"] = 44.17, - ["Y"] = 71.32, - ["CD"] = 0, - }, - [15] = { - ["X"] = 47.78, - ["Y"] = 68.45, - ["CD"] = 0, - }, - [16] = { - ["X"] = 46.65, - ["Y"] = 68.58, - ["CD"] = 0, - }, - [17] = { - ["X"] = 48.76, - ["Y"] = 73.26, - ["CD"] = 0, - }, - [18] = { - ["X"] = 48.01, - ["Y"] = 72.75, - ["CD"] = 0, - }, - [19] = { - ["X"] = 49.41, - ["Y"] = 72.56, - ["CD"] = 0, - }, - [20] = { - ["X"] = 48.95, - ["Y"] = 70.6, - ["CD"] = 0, - }, - [21] = { - ["X"] = 47.55, - ["Y"] = 70.14, - ["CD"] = 0, - }, - [22] = { - ["X"] = 44.82, - ["Y"] = 75.25, - ["CD"] = 0, - }, - [23] = { - ["X"] = 45.77, - ["Y"] = 77.89, - ["CD"] = 0, - }, - [24] = { - ["X"] = 44.83, - ["Y"] = 76, - ["CD"] = 0, - }, - [25] = { - ["X"] = 43.85, - ["Y"] = 75.69, - ["CD"] = 0, - }, - [26] = { - ["X"] = 43.04, - ["Y"] = 75.56, - ["CD"] = 0, - }, - [27] = { - ["X"] = 44.83, - ["Y"] = 75.18, - ["CD"] = 0, - }, - [28] = { - ["X"] = 43.97, - ["Y"] = 74.02, - ["CD"] = 0, - }, - [29] = { - ["X"] = 43.68, - ["Y"] = 73.14, - ["CD"] = 0, - }, - [30] = { - ["X"] = 43.75, - ["Y"] = 54.52, - ["CD"] = 0, - }, - [31] = { - ["X"] = 45.46, - ["Y"] = 53.73, - ["CD"] = 0, - }, - [32] = { - ["X"] = 45.89, - ["Y"] = 42.83, - ["CD"] = 0, - }, - [33] = { - ["X"] = 45.45, - ["Y"] = 42.34, - ["CD"] = 0, - }, - [34] = { - ["X"] = 45.1, - ["Y"] = 42.78, - ["CD"] = 0, - }, - [35] = { - ["X"] = 45.03, - ["Y"] = 43.2, - ["CD"] = 0, - }, - [36] = { - ["X"] = 45.68, - ["Y"] = 43.92, - ["CD"] = 0, - }, - [37] = { - ["X"] = 47.01, - ["Y"] = 44.4, - ["CD"] = 0, - }, - [38] = { - ["X"] = 47.62, - ["Y"] = 45.31, - ["CD"] = 0, - }, - [39] = { - ["X"] = 44.35, - ["Y"] = 50.32, - ["CD"] = 0, - }, - [40] = { - ["X"] = 43.54, - ["Y"] = 47.68, - ["CD"] = 0, - }, - [41] = { - ["X"] = 43.35, - ["Y"] = 47.13, - ["CD"] = 0, - }, - [42] = { - ["X"] = 40.68, - ["Y"] = 34.69, - ["CD"] = 0, - }, - [43] = { - ["X"] = 41.47, - ["Y"] = 36.3, - ["CD"] = 0, - }, - [44] = { - ["X"] = 42.18, - ["Y"] = 36.37, - ["CD"] = 0, - }, - [45] = { - ["X"] = 42.68, - ["Y"] = 35.45, - ["CD"] = 0, - }, - [46] = { - ["X"] = 42.41, - ["Y"] = 34.31, - ["CD"] = 0, - }, - [47] = { - ["X"] = 43.14, - ["Y"] = 34.43, - ["CD"] = 0, - }, - [48] = { - ["X"] = 42.81, - ["Y"] = 32.83, - ["CD"] = 0, - }, - [49] = { - ["X"] = 43.7, - ["Y"] = 33.32, - ["CD"] = 0, - }, - [50] = { - ["X"] = 44.13, - ["Y"] = 30.6, - ["CD"] = 0, - }, - [51] = { - ["X"] = 44.71, - ["Y"] = 29.48, - ["CD"] = 0, - }, - [52] = { - ["X"] = 43.81, - ["Y"] = 27.15, - ["CD"] = 0, - }, - [53] = { - ["X"] = 43.3, - ["Y"] = 25.86, - ["CD"] = 0, - }, - [54] = { - ["X"] = 41.18, - ["Y"] = 25.89, - ["CD"] = 0, - }, - [55] = { - ["X"] = 41.63, - ["Y"] = 24.99, - ["CD"] = 0, - }, - [56] = { - ["X"] = 43.99, - ["Y"] = 24.13, - ["CD"] = 0, - }, - [57] = { - ["X"] = 45, - ["Y"] = 24.59, - ["CD"] = 0, - }, - [58] = { - ["X"] = 51.32, - ["Y"] = 25.48, - ["CD"] = 0, - }, - [59] = { - ["X"] = 50.95, - ["Y"] = 26.35, - ["CD"] = 0, - }, - [60] = { - ["X"] = 49.69, - ["Y"] = 27.85, - ["CD"] = 0, - }, - [61] = { - ["X"] = 49.88, - ["Y"] = 28.33, - ["CD"] = 0, - }, - [62] = { - ["X"] = 49.1, - ["Y"] = 29.38, - ["CD"] = 0, - }, - [63] = { - ["X"] = 47.93, - ["Y"] = 29.24, - ["CD"] = 0, - }, - [64] = { - ["X"] = 47.05, - ["Y"] = 30.01, - ["CD"] = 0, - }, - [65] = { - ["X"] = 46.76, - ["Y"] = 32.28, - ["CD"] = 0, - }, - [66] = { - ["X"] = 51.53, - ["Y"] = 37.03, - ["CD"] = 0, - }, - [67] = { - ["X"] = 52.24, - ["Y"] = 39.43, - ["CD"] = 0, - }, - [68] = { - ["X"] = 51.9, - ["Y"] = 38.07, - ["CD"] = 0, - }, - [69] = { - ["X"] = 50.52, - ["Y"] = 38.82, - ["CD"] = 0, - }, - [70] = { - ["X"] = 49.72, - ["Y"] = 39.5, - ["CD"] = 0, - }, - [71] = { - ["X"] = 47.85, - ["Y"] = 68.43, - ["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, - }, -} -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 - end - end - end - return aura_env.minID["ID"] -end +aura_env.herbs = { + [1] = { + ["X"] = 50.79, + ["Y"] = 52.35, + ["CD"] = 0, + }, + [2] = { + ["X"] = 52.7, + ["Y"] = 53.22, + ["CD"] = 0, + }, + [3] = { + ["X"] = 53.94, + ["Y"] = 53.78, + ["CD"] = 0, + }, + [4] = { + ["X"] = 53.24, + ["Y"] = 55.02, + ["CD"] = 0, + }, + [5] = { + ["X"] = 52.65, + ["Y"] = 55.24, + ["CD"] = 0, + }, + [6] = { + ["X"] = 51.67, + ["Y"] = 54.04, + ["CD"] = 0, + }, + [7] = { + ["X"] = 51.15, + ["Y"] = 52.08, + ["CD"] = 0, + }, + [8] = { + ["X"] = 49.47, + ["Y"] = 53.86, + ["CD"] = 0, + }, + [9] = { + ["X"] = 44.63, + ["Y"] = 60.71, + ["CD"] = 0, + }, + [10] = { + ["X"] = 44.89, + ["Y"] = 67.28, + ["CD"] = 0, + }, + [11] = { + ["X"] = 44.44, + ["Y"] = 67.36, + ["CD"] = 0, + }, + [12] = { + ["X"] = 44.34, + ["Y"] = 68.45, + ["CD"] = 0, + }, + [13] = { + ["X"] = 44.14, + ["Y"] = 69.89, + ["CD"] = 0, + }, + [14] = { + ["X"] = 44.17, + ["Y"] = 71.32, + ["CD"] = 0, + }, + [15] = { + ["X"] = 47.78, + ["Y"] = 68.45, + ["CD"] = 0, + }, + [16] = { + ["X"] = 46.65, + ["Y"] = 68.58, + ["CD"] = 0, + }, + [17] = { + ["X"] = 48.76, + ["Y"] = 73.26, + ["CD"] = 0, + }, + [18] = { + ["X"] = 48.01, + ["Y"] = 72.75, + ["CD"] = 0, + }, + [19] = { + ["X"] = 49.41, + ["Y"] = 72.56, + ["CD"] = 0, + }, + [20] = { + ["X"] = 48.95, + ["Y"] = 70.6, + ["CD"] = 0, + }, + [21] = { + ["X"] = 47.55, + ["Y"] = 70.14, + ["CD"] = 0, + }, + [22] = { + ["X"] = 44.82, + ["Y"] = 75.25, + ["CD"] = 0, + }, + [23] = { + ["X"] = 45.77, + ["Y"] = 77.89, + ["CD"] = 0, + }, + [24] = { + ["X"] = 44.83, + ["Y"] = 76, + ["CD"] = 0, + }, + [25] = { + ["X"] = 43.85, + ["Y"] = 75.69, + ["CD"] = 0, + }, + [26] = { + ["X"] = 43.04, + ["Y"] = 75.56, + ["CD"] = 0, + }, + [27] = { + ["X"] = 44.83, + ["Y"] = 75.18, + ["CD"] = 0, + }, + [28] = { + ["X"] = 43.97, + ["Y"] = 74.02, + ["CD"] = 0, + }, + [29] = { + ["X"] = 43.68, + ["Y"] = 73.14, + ["CD"] = 0, + }, + [30] = { + ["X"] = 43.75, + ["Y"] = 54.52, + ["CD"] = 0, + }, + [31] = { + ["X"] = 45.46, + ["Y"] = 53.73, + ["CD"] = 0, + }, + [32] = { + ["X"] = 45.89, + ["Y"] = 42.83, + ["CD"] = 0, + }, + [33] = { + ["X"] = 45.45, + ["Y"] = 42.34, + ["CD"] = 0, + }, + [34] = { + ["X"] = 45.1, + ["Y"] = 42.78, + ["CD"] = 0, + }, + [35] = { + ["X"] = 45.03, + ["Y"] = 43.2, + ["CD"] = 0, + }, + [36] = { + ["X"] = 45.68, + ["Y"] = 43.92, + ["CD"] = 0, + }, + [37] = { + ["X"] = 47.01, + ["Y"] = 44.4, + ["CD"] = 0, + }, + [38] = { + ["X"] = 47.62, + ["Y"] = 45.31, + ["CD"] = 0, + }, + [39] = { + ["X"] = 44.35, + ["Y"] = 50.32, + ["CD"] = 0, + }, + [40] = { + ["X"] = 43.54, + ["Y"] = 47.68, + ["CD"] = 0, + }, + [41] = { + ["X"] = 43.35, + ["Y"] = 47.13, + ["CD"] = 0, + }, + [42] = { + ["X"] = 40.68, + ["Y"] = 34.69, + ["CD"] = 0, + }, + [43] = { + ["X"] = 41.47, + ["Y"] = 36.3, + ["CD"] = 0, + }, + [44] = { + ["X"] = 42.18, + ["Y"] = 36.37, + ["CD"] = 0, + }, + [45] = { + ["X"] = 42.68, + ["Y"] = 35.45, + ["CD"] = 0, + }, + [46] = { + ["X"] = 42.41, + ["Y"] = 34.31, + ["CD"] = 0, + }, + [47] = { + ["X"] = 43.14, + ["Y"] = 34.43, + ["CD"] = 0, + }, + [48] = { + ["X"] = 42.81, + ["Y"] = 32.83, + ["CD"] = 0, + }, + [49] = { + ["X"] = 43.7, + ["Y"] = 33.32, + ["CD"] = 0, + }, + [50] = { + ["X"] = 44.13, + ["Y"] = 30.6, + ["CD"] = 0, + }, + [51] = { + ["X"] = 44.71, + ["Y"] = 29.48, + ["CD"] = 0, + }, + [52] = { + ["X"] = 43.81, + ["Y"] = 27.15, + ["CD"] = 0, + }, + [53] = { + ["X"] = 43.3, + ["Y"] = 25.86, + ["CD"] = 0, + }, + [54] = { + ["X"] = 41.18, + ["Y"] = 25.89, + ["CD"] = 0, + }, + [55] = { + ["X"] = 41.63, + ["Y"] = 24.99, + ["CD"] = 0, + }, + [56] = { + ["X"] = 43.99, + ["Y"] = 24.13, + ["CD"] = 0, + }, + [57] = { + ["X"] = 45, + ["Y"] = 24.59, + ["CD"] = 0, + }, + [58] = { + ["X"] = 51.32, + ["Y"] = 25.48, + ["CD"] = 0, + }, + [59] = { + ["X"] = 50.95, + ["Y"] = 26.35, + ["CD"] = 0, + }, + [60] = { + ["X"] = 49.69, + ["Y"] = 27.85, + ["CD"] = 0, + }, + [61] = { + ["X"] = 49.88, + ["Y"] = 28.33, + ["CD"] = 0, + }, + [62] = { + ["X"] = 49.1, + ["Y"] = 29.38, + ["CD"] = 0, + }, + [63] = { + ["X"] = 47.93, + ["Y"] = 29.24, + ["CD"] = 0, + }, + [64] = { + ["X"] = 47.05, + ["Y"] = 30.01, + ["CD"] = 0, + }, + [65] = { + ["X"] = 46.76, + ["Y"] = 32.28, + ["CD"] = 0, + }, + [66] = { + ["X"] = 51.53, + ["Y"] = 37.03, + ["CD"] = 0, + }, + [67] = { + ["X"] = 52.24, + ["Y"] = 39.43, + ["CD"] = 0, + }, + [68] = { + ["X"] = 51.9, + ["Y"] = 38.07, + ["CD"] = 0, + }, + [69] = { + ["X"] = 50.52, + ["Y"] = 38.82, + ["CD"] = 0, + }, + [70] = { + ["X"] = 49.72, + ["Y"] = 39.5, + ["CD"] = 0, + }, + [71] = { + ["X"] = 47.85, + ["Y"] = 68.43, + ["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, + }, +} +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 + end + end + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Suramar).lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Suramar).lua similarity index 92% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Suramar).lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Suramar).lua index e8b855c..618eacb 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Suramar).lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Seam(Suramar).lua @@ -1,466 +1,466 @@ -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, - }, -} -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 - end - end - end - return aura_env.minID["ID"] -end +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, + }, +} +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 + end + end + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Total.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Total.lua similarity index 92% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Total.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Total.lua index 83187c4..906c845 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Total.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate Total.lua @@ -1,866 +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.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"] -end +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 + end + end + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate.lua similarity index 93% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate.lua index 31fa760..4f4fc28 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Felslate/Felslate.lua @@ -1,431 +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.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"] -end +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 + end + end + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Deposit.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Deposit.lua similarity index 93% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Deposit.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Deposit.lua index 43a021b..19e12d1 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Deposit.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Deposit.lua @@ -1,356 +1,356 @@ -aura_env.herbs = { - [1] = { - ["X"] = 20.97, - ["Y"] = 15.47, - ["CD"] = 0, - }, - [2] = { - ["X"] = 27.52, - ["Y"] = 9.17, - ["CD"] = 0, - }, - [3] = { - ["X"] = 25.93, - ["Y"] = 25.58, - ["CD"] = 0, - }, - [4] = { - ["X"] = 34.07, - ["Y"] = 50.83, - ["CD"] = 0, - }, - [5] = { - ["X"] = 37.23, - ["Y"] = 54.85, - ["CD"] = 0, - }, - [6] = { - ["X"] = 34.77, - ["Y"] = 58.4, - ["CD"] = 0, - }, - [7] = { - ["X"] = 39.56, - ["Y"] = 79.48, - ["CD"] = 0, - }, - [8] = { - ["X"] = 66.46, - ["Y"] = 57.51, - ["CD"] = 0, - }, - [9] = { - ["X"] = 66.74, - ["Y"] = 66.02, - ["CD"] = 0, - }, - [10] = { - ["X"] = 71.94, - ["Y"] = 68.81, - ["CD"] = 0, - }, - [11] = { - ["X"] = 69.51, - ["Y"] = 67.83, - ["CD"] = 0, - }, - [12] = { - ["X"] = 69.31, - ["Y"] = 50.72, - ["CD"] = 0, - }, - [13] = { - ["X"] = 63.31, - ["Y"] = 53.33, - ["CD"] = 0, - }, - [14] = { - ["X"] = 63.96, - ["Y"] = 50.46, - ["CD"] = 0, - }, - [15] = { - ["X"] = 65.37, - ["Y"] = 43.82, - ["CD"] = 0, - }, - [16] = { - ["X"] = 63.15, - ["Y"] = 35.17, - ["CD"] = 0, - }, - [17] = { - ["X"] = 60.59, - ["Y"] = 44.44, - ["CD"] = 0, - }, - [18] = { - ["X"] = 35.55, - ["Y"] = 61.86, - ["CD"] = 0, - }, - [19] = { - ["X"] = 40.1, - ["Y"] = 53.5, - ["CD"] = 0, - }, - [20] = { - ["X"] = 47.46, - ["Y"] = 47.36, - ["CD"] = 0, - }, - [21] = { - ["X"] = 49.48, - ["Y"] = 39.04, - ["CD"] = 0, - }, - [22] = { - ["X"] = 35.79, - ["Y"] = 42.74, - ["CD"] = 0, - }, - [23] = { - ["X"] = 33.35, - ["Y"] = 45.99, - ["CD"] = 0, - }, - [24] = { - ["X"] = 30.25, - ["Y"] = 43.1, - ["CD"] = 0, - }, - [25] = { - ["X"] = 28.76, - ["Y"] = 48.41, - ["CD"] = 0, - }, - [26] = { - ["X"] = 30.18, - ["Y"] = 65.31, - ["CD"] = 0, - }, - [27] = { - ["X"] = 32.64, - ["Y"] = 74.92, - ["CD"] = 0, - }, - [28] = { - ["X"] = 35.41, - ["Y"] = 80.33, - ["CD"] = 0, - }, - [29] = { - ["X"] = 32.08, - ["Y"] = 81.08, - ["CD"] = 0, - }, - [30] = { - ["X"] = 30.03, - ["Y"] = 82.65, - ["CD"] = 0, - }, - [31] = { - ["X"] = 27.52, - ["Y"] = 67.32, - ["CD"] = 0, - }, - [32] = { - ["X"] = 26.24, - ["Y"] = 69.06, - ["CD"] = 0, - }, - [33] = { - ["X"] = 24.97, - ["Y"] = 61.8, - ["CD"] = 0, - }, - [34] = { - ["X"] = 25.91, - ["Y"] = 58.23, - ["CD"] = 0, - }, - [35] = { - ["X"] = 34.69, - ["Y"] = 39.51, - ["CD"] = 0, - }, - [36] = { - ["X"] = 37.45, - ["Y"] = 38.69, - ["CD"] = 0, - }, - [37] = { - ["X"] = 45.96, - ["Y"] = 36.33, - ["CD"] = 0, - }, - [38] = { - ["X"] = 46.54, - ["Y"] = 33.81, - ["CD"] = 0, - }, - [39] = { - ["X"] = 37.6, - ["Y"] = 31.35, - ["CD"] = 0, - }, - [40] = { - ["X"] = 24.73, - ["Y"] = 54.01, - ["CD"] = 0, - }, - [41] = { - ["X"] = 21.68, - ["Y"] = 47.55, - ["CD"] = 0, - }, - [42] = { - ["X"] = 23.58, - ["Y"] = 50.81, - ["CD"] = 0, - }, - [43] = { - ["X"] = 25.01, - ["Y"] = 35.96, - ["CD"] = 0, - }, - [44] = { - ["X"] = 25.25, - ["Y"] = 37.61, - ["CD"] = 0, - }, - [45] = { - ["X"] = 41.53, - ["Y"] = 17.47, - ["CD"] = 0, - }, - [46] = { - ["X"] = 27.84, - ["Y"] = 15.94, - ["CD"] = 0, - }, - [47] = { - ["X"] = 44.1, - ["Y"] = 24.69, - ["CD"] = 0, - }, - [48] = { - ["X"] = 41.45, - ["Y"] = 24.26, - ["CD"] = 0, - }, - [49] = { - ["X"] = 40.28, - ["Y"] = 27.75, - ["CD"] = 0, - }, - [50] = { - ["X"] = 37.57, - ["Y"] = 27.05, - ["CD"] = 0, - }, - [51] = { - ["X"] = 33.71, - ["Y"] = 31.04, - ["CD"] = 0, - }, - [52] = { - ["X"] = 28.85, - ["Y"] = 29.61, - ["CD"] = 0, - }, - [53] = { - ["X"] = 27.2, - ["Y"] = 29.85, - ["CD"] = 0, - }, - [54] = { - ["X"] = 23.31, - ["Y"] = 34.44, - ["CD"] = 0, - }, - [55] = { - ["X"] = 15.86, - ["Y"] = 43.89, - ["CD"] = 0, - }, - [56] = { - ["X"] = 16.17, - ["Y"] = 39.56, - ["CD"] = 0, - }, - [57] = { - ["X"] = 16.88, - ["Y"] = 28.87, - ["CD"] = 0, - }, - [58] = { - ["X"] = 19.56, - ["Y"] = 18.08, - ["CD"] = 0, - }, - [59] = { - ["X"] = 19.99, - ["Y"] = 18.12, - ["CD"] = 0, - }, - [60] = { - ["X"] = 49.54, - ["Y"] = 43.54, - ["CD"] = 0, - }, - [61] = { - ["X"] = 55.47, - ["Y"] = 40.72, - ["CD"] = 0, - }, - [62] = { - ["X"] = 57.64, - ["Y"] = 37.85, - ["CD"] = 0, - }, - [63] = { - ["X"] = 62.48, - ["Y"] = 57.85, - ["CD"] = 0, - }, - [64] = { - ["X"] = 63.78, - ["Y"] = 60.52, - ["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 - end - end - end - return aura_env.minID["ID"] -end +aura_env.herbs = { + [1] = { + ["X"] = 20.97, + ["Y"] = 15.47, + ["CD"] = 0, + }, + [2] = { + ["X"] = 27.52, + ["Y"] = 9.17, + ["CD"] = 0, + }, + [3] = { + ["X"] = 25.93, + ["Y"] = 25.58, + ["CD"] = 0, + }, + [4] = { + ["X"] = 34.07, + ["Y"] = 50.83, + ["CD"] = 0, + }, + [5] = { + ["X"] = 37.23, + ["Y"] = 54.85, + ["CD"] = 0, + }, + [6] = { + ["X"] = 34.77, + ["Y"] = 58.4, + ["CD"] = 0, + }, + [7] = { + ["X"] = 39.56, + ["Y"] = 79.48, + ["CD"] = 0, + }, + [8] = { + ["X"] = 66.46, + ["Y"] = 57.51, + ["CD"] = 0, + }, + [9] = { + ["X"] = 66.74, + ["Y"] = 66.02, + ["CD"] = 0, + }, + [10] = { + ["X"] = 71.94, + ["Y"] = 68.81, + ["CD"] = 0, + }, + [11] = { + ["X"] = 69.51, + ["Y"] = 67.83, + ["CD"] = 0, + }, + [12] = { + ["X"] = 69.31, + ["Y"] = 50.72, + ["CD"] = 0, + }, + [13] = { + ["X"] = 63.31, + ["Y"] = 53.33, + ["CD"] = 0, + }, + [14] = { + ["X"] = 63.96, + ["Y"] = 50.46, + ["CD"] = 0, + }, + [15] = { + ["X"] = 65.37, + ["Y"] = 43.82, + ["CD"] = 0, + }, + [16] = { + ["X"] = 63.15, + ["Y"] = 35.17, + ["CD"] = 0, + }, + [17] = { + ["X"] = 60.59, + ["Y"] = 44.44, + ["CD"] = 0, + }, + [18] = { + ["X"] = 35.55, + ["Y"] = 61.86, + ["CD"] = 0, + }, + [19] = { + ["X"] = 40.1, + ["Y"] = 53.5, + ["CD"] = 0, + }, + [20] = { + ["X"] = 47.46, + ["Y"] = 47.36, + ["CD"] = 0, + }, + [21] = { + ["X"] = 49.48, + ["Y"] = 39.04, + ["CD"] = 0, + }, + [22] = { + ["X"] = 35.79, + ["Y"] = 42.74, + ["CD"] = 0, + }, + [23] = { + ["X"] = 33.35, + ["Y"] = 45.99, + ["CD"] = 0, + }, + [24] = { + ["X"] = 30.25, + ["Y"] = 43.1, + ["CD"] = 0, + }, + [25] = { + ["X"] = 28.76, + ["Y"] = 48.41, + ["CD"] = 0, + }, + [26] = { + ["X"] = 30.18, + ["Y"] = 65.31, + ["CD"] = 0, + }, + [27] = { + ["X"] = 32.64, + ["Y"] = 74.92, + ["CD"] = 0, + }, + [28] = { + ["X"] = 35.41, + ["Y"] = 80.33, + ["CD"] = 0, + }, + [29] = { + ["X"] = 32.08, + ["Y"] = 81.08, + ["CD"] = 0, + }, + [30] = { + ["X"] = 30.03, + ["Y"] = 82.65, + ["CD"] = 0, + }, + [31] = { + ["X"] = 27.52, + ["Y"] = 67.32, + ["CD"] = 0, + }, + [32] = { + ["X"] = 26.24, + ["Y"] = 69.06, + ["CD"] = 0, + }, + [33] = { + ["X"] = 24.97, + ["Y"] = 61.8, + ["CD"] = 0, + }, + [34] = { + ["X"] = 25.91, + ["Y"] = 58.23, + ["CD"] = 0, + }, + [35] = { + ["X"] = 34.69, + ["Y"] = 39.51, + ["CD"] = 0, + }, + [36] = { + ["X"] = 37.45, + ["Y"] = 38.69, + ["CD"] = 0, + }, + [37] = { + ["X"] = 45.96, + ["Y"] = 36.33, + ["CD"] = 0, + }, + [38] = { + ["X"] = 46.54, + ["Y"] = 33.81, + ["CD"] = 0, + }, + [39] = { + ["X"] = 37.6, + ["Y"] = 31.35, + ["CD"] = 0, + }, + [40] = { + ["X"] = 24.73, + ["Y"] = 54.01, + ["CD"] = 0, + }, + [41] = { + ["X"] = 21.68, + ["Y"] = 47.55, + ["CD"] = 0, + }, + [42] = { + ["X"] = 23.58, + ["Y"] = 50.81, + ["CD"] = 0, + }, + [43] = { + ["X"] = 25.01, + ["Y"] = 35.96, + ["CD"] = 0, + }, + [44] = { + ["X"] = 25.25, + ["Y"] = 37.61, + ["CD"] = 0, + }, + [45] = { + ["X"] = 41.53, + ["Y"] = 17.47, + ["CD"] = 0, + }, + [46] = { + ["X"] = 27.84, + ["Y"] = 15.94, + ["CD"] = 0, + }, + [47] = { + ["X"] = 44.1, + ["Y"] = 24.69, + ["CD"] = 0, + }, + [48] = { + ["X"] = 41.45, + ["Y"] = 24.26, + ["CD"] = 0, + }, + [49] = { + ["X"] = 40.28, + ["Y"] = 27.75, + ["CD"] = 0, + }, + [50] = { + ["X"] = 37.57, + ["Y"] = 27.05, + ["CD"] = 0, + }, + [51] = { + ["X"] = 33.71, + ["Y"] = 31.04, + ["CD"] = 0, + }, + [52] = { + ["X"] = 28.85, + ["Y"] = 29.61, + ["CD"] = 0, + }, + [53] = { + ["X"] = 27.2, + ["Y"] = 29.85, + ["CD"] = 0, + }, + [54] = { + ["X"] = 23.31, + ["Y"] = 34.44, + ["CD"] = 0, + }, + [55] = { + ["X"] = 15.86, + ["Y"] = 43.89, + ["CD"] = 0, + }, + [56] = { + ["X"] = 16.17, + ["Y"] = 39.56, + ["CD"] = 0, + }, + [57] = { + ["X"] = 16.88, + ["Y"] = 28.87, + ["CD"] = 0, + }, + [58] = { + ["X"] = 19.56, + ["Y"] = 18.08, + ["CD"] = 0, + }, + [59] = { + ["X"] = 19.99, + ["Y"] = 18.12, + ["CD"] = 0, + }, + [60] = { + ["X"] = 49.54, + ["Y"] = 43.54, + ["CD"] = 0, + }, + [61] = { + ["X"] = 55.47, + ["Y"] = 40.72, + ["CD"] = 0, + }, + [62] = { + ["X"] = 57.64, + ["Y"] = 37.85, + ["CD"] = 0, + }, + [63] = { + ["X"] = 62.48, + ["Y"] = 57.85, + ["CD"] = 0, + }, + [64] = { + ["X"] = 63.78, + ["Y"] = 60.52, + ["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 + end + end + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Total.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Total.lua similarity index 92% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Total.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Total.lua index f7e6d9f..d256d39 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Total.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Leystone/Leystone Total.lua @@ -1,1556 +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, - }, -} -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"] -end +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, + }, +} +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"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Rich Leystone Deposit.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Leystone/Rich Leystone Deposit.lua similarity index 92% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Rich Leystone Deposit.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Leystone/Rich Leystone Deposit.lua index c461e10..cce2a59 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Leystone/Rich Leystone Deposit.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Leystone/Rich Leystone Deposit.lua @@ -1,1031 +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.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"] -end +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 + end + end + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Titanium.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Titanium.lua similarity index 93% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Titanium.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Titanium.lua index e3831f2..80d9235 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Mining/Titanium.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Mining/Titanium.lua @@ -1,381 +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.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"] -end +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 + end + end + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Misc/Anna dogs.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Misc/Anna dogs.lua similarity index 93% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Misc/Anna dogs.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Misc/Anna dogs.lua index d0d025f..042e4aa 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Misc/Anna dogs.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Misc/Anna dogs.lua @@ -1,366 +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.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 - end - end - end - return aura_env.minID["ID"] -end +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 + end + end + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Durotar.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Noblegarden/Durotar.lua similarity index 93% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Durotar.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Noblegarden/Durotar.lua index 3c88128..7660d1b 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Durotar.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Noblegarden/Durotar.lua @@ -1,131 +1,131 @@ -aura_env.herbs = { - [1] = { - ["X"] = 51.58, - ["Y"] = 43.53, - ["CD"] = 0, - }, - [2] = { - ["X"] = 51.71, - ["Y"] = 43.97, - ["CD"] = 0, - }, - [3] = { - ["X"] = 52.19, - ["Y"] = 43.75, - ["CD"] = 0, - }, - [4] = { - ["X"] = 53.1, - ["Y"] = 43.07, - ["CD"] = 0, - }, - [5] = { - ["X"] = 53.56, - ["Y"] = 43.28, - ["CD"] = 0, - }, - [6] = { - ["X"] = 54.06, - ["Y"] = 43.34, - ["CD"] = 0, - }, - [7] = { - ["X"] = 54.63, - ["Y"] = 43.33, - ["CD"] = 0, - }, - [8] = { - ["X"] = 54.84, - ["Y"] = 42.4, - ["CD"] = 0, - }, - [9] = { - ["X"] = 54.89, - ["Y"] = 41.74, - ["CD"] = 0, - }, - [10] = { - ["X"] = 54.53, - ["Y"] = 41.47, - ["CD"] = 0, - }, - [11] = { - ["X"] = 54.27, - ["Y"] = 41.65, - ["CD"] = 0, - }, - [12] = { - ["X"] = 53.86, - ["Y"] = 41.66, - ["CD"] = 0, - }, - [13] = { - ["X"] = 53.74, - ["Y"] = 40.67, - ["CD"] = 0, - }, - [14] = { - ["X"] = 52.95, - ["Y"] = 40.72, - ["CD"] = 0, - }, - [15] = { - ["X"] = 52.78, - ["Y"] = 40.24, - ["CD"] = 0, - }, - [16] = { - ["X"] = 47.99, - ["Y"] = 45.57, - ["CD"] = 0, - }, - [17] = { - ["X"] = 47.57, - ["Y"] = 45.29, - ["CD"] = 0, - }, - [18] = { - ["X"] = 47.57, - ["Y"] = 45.38, - ["CD"] = 0, - }, - [19] = { - ["X"] = 48.18, - ["Y"] = 46.31, - ["CD"] = 0, - }, - [20] = { - ["X"] = 47.05, - ["Y"] = 46.63, - ["CD"] = 0, - }, -} -aura_env.cooldown = 120 -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"] -end +aura_env.herbs = { + [1] = { + ["X"] = 51.58, + ["Y"] = 43.53, + ["CD"] = 0, + }, + [2] = { + ["X"] = 51.71, + ["Y"] = 43.97, + ["CD"] = 0, + }, + [3] = { + ["X"] = 52.19, + ["Y"] = 43.75, + ["CD"] = 0, + }, + [4] = { + ["X"] = 53.1, + ["Y"] = 43.07, + ["CD"] = 0, + }, + [5] = { + ["X"] = 53.56, + ["Y"] = 43.28, + ["CD"] = 0, + }, + [6] = { + ["X"] = 54.06, + ["Y"] = 43.34, + ["CD"] = 0, + }, + [7] = { + ["X"] = 54.63, + ["Y"] = 43.33, + ["CD"] = 0, + }, + [8] = { + ["X"] = 54.84, + ["Y"] = 42.4, + ["CD"] = 0, + }, + [9] = { + ["X"] = 54.89, + ["Y"] = 41.74, + ["CD"] = 0, + }, + [10] = { + ["X"] = 54.53, + ["Y"] = 41.47, + ["CD"] = 0, + }, + [11] = { + ["X"] = 54.27, + ["Y"] = 41.65, + ["CD"] = 0, + }, + [12] = { + ["X"] = 53.86, + ["Y"] = 41.66, + ["CD"] = 0, + }, + [13] = { + ["X"] = 53.74, + ["Y"] = 40.67, + ["CD"] = 0, + }, + [14] = { + ["X"] = 52.95, + ["Y"] = 40.72, + ["CD"] = 0, + }, + [15] = { + ["X"] = 52.78, + ["Y"] = 40.24, + ["CD"] = 0, + }, + [16] = { + ["X"] = 47.99, + ["Y"] = 45.57, + ["CD"] = 0, + }, + [17] = { + ["X"] = 47.57, + ["Y"] = 45.29, + ["CD"] = 0, + }, + [18] = { + ["X"] = 47.57, + ["Y"] = 45.38, + ["CD"] = 0, + }, + [19] = { + ["X"] = 48.18, + ["Y"] = 46.31, + ["CD"] = 0, + }, + [20] = { + ["X"] = 47.05, + ["Y"] = 46.63, + ["CD"] = 0, + }, +} +aura_env.cooldown = 120 +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"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Eversong Woods.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Noblegarden/Eversong Woods.lua similarity index 93% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Eversong Woods.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Noblegarden/Eversong Woods.lua index 733f916..2d97cc0 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Eversong Woods.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Noblegarden/Eversong Woods.lua @@ -1,131 +1,131 @@ -aura_env.herbs = { - [1] = { - ["X"] = 47.45, - ["Y"] = 45.25, - ["CD"] = 0, - }, - [2] = { - ["X"] = 47.1, - ["Y"] = 45.39, - ["CD"] = 0, - }, - [3] = { - ["X"] = 46.85, - ["Y"] = 45.64, - ["CD"] = 0, - }, - [4] = { - ["X"] = 47.26, - ["Y"] = 46.21, - ["CD"] = 0, - }, - [5] = { - ["X"] = 46.37, - ["Y"] = 46.44, - ["CD"] = 0, - }, - [6] = { - ["X"] = 46.23, - ["Y"] = 47.2, - ["CD"] = 0, - }, - [7] = { - ["X"] = 46.35, - ["Y"] = 48, - ["CD"] = 0, - }, - [8] = { - ["X"] = 46.92, - ["Y"] = 48.29, - ["CD"] = 0, - }, - [9] = { - ["X"] = 47.02, - ["Y"] = 47.71, - ["CD"] = 0, - }, - [10] = { - ["X"] = 47.28, - ["Y"] = 47.65, - ["CD"] = 0, - }, - [11] = { - ["X"] = 47.45, - ["Y"] = 47.47, - ["CD"] = 0, - }, - [12] = { - ["X"] = 47.55, - ["Y"] = 47.42, - ["CD"] = 0, - }, - [13] = { - ["X"] = 47.84, - ["Y"] = 46.89, - ["CD"] = 0, - }, - [14] = { - ["X"] = 48.13, - ["Y"] = 46.47, - ["CD"] = 0, - }, - [15] = { - ["X"] = 48.24, - ["Y"] = 45.63, - ["CD"] = 0, - }, - [16] = { - ["X"] = 47.99, - ["Y"] = 45.57, - ["CD"] = 0, - }, - [17] = { - ["X"] = 47.57, - ["Y"] = 45.29, - ["CD"] = 0, - }, - [18] = { - ["X"] = 47.57, - ["Y"] = 45.38, - ["CD"] = 0, - }, - [19] = { - ["X"] = 48.18, - ["Y"] = 46.31, - ["CD"] = 0, - }, - [20] = { - ["X"] = 47.05, - ["Y"] = 46.63, - ["CD"] = 0, - }, -} -aura_env.cooldown = 120 -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"] -end +aura_env.herbs = { + [1] = { + ["X"] = 47.45, + ["Y"] = 45.25, + ["CD"] = 0, + }, + [2] = { + ["X"] = 47.1, + ["Y"] = 45.39, + ["CD"] = 0, + }, + [3] = { + ["X"] = 46.85, + ["Y"] = 45.64, + ["CD"] = 0, + }, + [4] = { + ["X"] = 47.26, + ["Y"] = 46.21, + ["CD"] = 0, + }, + [5] = { + ["X"] = 46.37, + ["Y"] = 46.44, + ["CD"] = 0, + }, + [6] = { + ["X"] = 46.23, + ["Y"] = 47.2, + ["CD"] = 0, + }, + [7] = { + ["X"] = 46.35, + ["Y"] = 48, + ["CD"] = 0, + }, + [8] = { + ["X"] = 46.92, + ["Y"] = 48.29, + ["CD"] = 0, + }, + [9] = { + ["X"] = 47.02, + ["Y"] = 47.71, + ["CD"] = 0, + }, + [10] = { + ["X"] = 47.28, + ["Y"] = 47.65, + ["CD"] = 0, + }, + [11] = { + ["X"] = 47.45, + ["Y"] = 47.47, + ["CD"] = 0, + }, + [12] = { + ["X"] = 47.55, + ["Y"] = 47.42, + ["CD"] = 0, + }, + [13] = { + ["X"] = 47.84, + ["Y"] = 46.89, + ["CD"] = 0, + }, + [14] = { + ["X"] = 48.13, + ["Y"] = 46.47, + ["CD"] = 0, + }, + [15] = { + ["X"] = 48.24, + ["Y"] = 45.63, + ["CD"] = 0, + }, + [16] = { + ["X"] = 47.99, + ["Y"] = 45.57, + ["CD"] = 0, + }, + [17] = { + ["X"] = 47.57, + ["Y"] = 45.29, + ["CD"] = 0, + }, + [18] = { + ["X"] = 47.57, + ["Y"] = 45.38, + ["CD"] = 0, + }, + [19] = { + ["X"] = 48.18, + ["Y"] = 46.31, + ["CD"] = 0, + }, + [20] = { + ["X"] = 47.05, + ["Y"] = 46.63, + ["CD"] = 0, + }, +} +aura_env.cooldown = 120 +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"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Mulgore.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Noblegarden/Mulgore.lua similarity index 93% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Mulgore.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Noblegarden/Mulgore.lua index 34afcf8..1f12505 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Mulgore.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Noblegarden/Mulgore.lua @@ -1,131 +1,131 @@ -aura_env.herbs = { - [1] = { - ["X"] = 47.58, - ["Y"] = 61.98, - ["CD"] = 0, - }, - [2] = { - ["X"] = 47.75, - ["Y"] = 61.61, - ["CD"] = 0, - }, - [3] = { - ["X"] = 49.39, - ["Y"] = 61.5, - ["CD"] = 0, - }, - [4] = { - ["X"] = 48.9, - ["Y"] = 60.63, - ["CD"] = 0, - }, - [5] = { - ["X"] = 49.1, - ["Y"] = 59.96, - ["CD"] = 0, - }, - [6] = { - ["X"] = 49.51, - ["Y"] = 60.13, - ["CD"] = 0, - }, - [7] = { - ["X"] = 49.15, - ["Y"] = 58.8, - ["CD"] = 0, - }, - [8] = { - ["X"] = 49.67, - ["Y"] = 58.14, - ["CD"] = 0, - }, - [9] = { - ["X"] = 48.5, - ["Y"] = 58.18, - ["CD"] = 0, - }, - [10] = { - ["X"] = 48.18, - ["Y"] = 58.23, - ["CD"] = 0, - }, - [11] = { - ["X"] = 48.13, - ["Y"] = 58.66, - ["CD"] = 0, - }, - [12] = { - ["X"] = 47.72, - ["Y"] = 58.57, - ["CD"] = 0, - }, - [13] = { - ["X"] = 47.55, - ["Y"] = 59.51, - ["CD"] = 0, - }, - [14] = { - ["X"] = 47.97, - ["Y"] = 60.7, - ["CD"] = 0, - }, - [15] = { - ["X"] = 47.95, - ["Y"] = 60.92, - ["CD"] = 0, - }, - [16] = { - ["X"] = 47.99, - ["Y"] = 45.57, - ["CD"] = 0, - }, - [17] = { - ["X"] = 47.57, - ["Y"] = 45.29, - ["CD"] = 0, - }, - [18] = { - ["X"] = 47.57, - ["Y"] = 45.38, - ["CD"] = 0, - }, - [19] = { - ["X"] = 48.18, - ["Y"] = 46.31, - ["CD"] = 0, - }, - [20] = { - ["X"] = 47.05, - ["Y"] = 46.63, - ["CD"] = 0, - }, -} -aura_env.cooldown = 120 -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"] -end +aura_env.herbs = { + [1] = { + ["X"] = 47.58, + ["Y"] = 61.98, + ["CD"] = 0, + }, + [2] = { + ["X"] = 47.75, + ["Y"] = 61.61, + ["CD"] = 0, + }, + [3] = { + ["X"] = 49.39, + ["Y"] = 61.5, + ["CD"] = 0, + }, + [4] = { + ["X"] = 48.9, + ["Y"] = 60.63, + ["CD"] = 0, + }, + [5] = { + ["X"] = 49.1, + ["Y"] = 59.96, + ["CD"] = 0, + }, + [6] = { + ["X"] = 49.51, + ["Y"] = 60.13, + ["CD"] = 0, + }, + [7] = { + ["X"] = 49.15, + ["Y"] = 58.8, + ["CD"] = 0, + }, + [8] = { + ["X"] = 49.67, + ["Y"] = 58.14, + ["CD"] = 0, + }, + [9] = { + ["X"] = 48.5, + ["Y"] = 58.18, + ["CD"] = 0, + }, + [10] = { + ["X"] = 48.18, + ["Y"] = 58.23, + ["CD"] = 0, + }, + [11] = { + ["X"] = 48.13, + ["Y"] = 58.66, + ["CD"] = 0, + }, + [12] = { + ["X"] = 47.72, + ["Y"] = 58.57, + ["CD"] = 0, + }, + [13] = { + ["X"] = 47.55, + ["Y"] = 59.51, + ["CD"] = 0, + }, + [14] = { + ["X"] = 47.97, + ["Y"] = 60.7, + ["CD"] = 0, + }, + [15] = { + ["X"] = 47.95, + ["Y"] = 60.92, + ["CD"] = 0, + }, + [16] = { + ["X"] = 47.99, + ["Y"] = 45.57, + ["CD"] = 0, + }, + [17] = { + ["X"] = 47.57, + ["Y"] = 45.29, + ["CD"] = 0, + }, + [18] = { + ["X"] = 47.57, + ["Y"] = 45.38, + ["CD"] = 0, + }, + [19] = { + ["X"] = 48.18, + ["Y"] = 46.31, + ["CD"] = 0, + }, + [20] = { + ["X"] = 47.05, + ["Y"] = 46.63, + ["CD"] = 0, + }, +} +aura_env.cooldown = 120 +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"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Tirisfal Glades.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Noblegarden/Tirisfal Glades.lua similarity index 93% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Tirisfal Glades.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Noblegarden/Tirisfal Glades.lua index 14d4eee..a81b4ec 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Tirisfal Glades.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Noblegarden/Tirisfal Glades.lua @@ -1,131 +1,131 @@ -aura_env.herbs = { - [1] = { - ["X"] = 62.88, - ["Y"] = 54.49, - ["CD"] = 0, - }, - [2] = { - ["X"] = 62.75, - ["Y"] = 54, - ["CD"] = 0, - }, - [3] = { - ["X"] = 62.88, - ["Y"] = 53.13, - ["CD"] = 0, - }, - [4] = { - ["X"] = 62.88, - ["Y"] = 51.82, - ["CD"] = 0, - }, - [5] = { - ["X"] = 62.78, - ["Y"] = 51.54, - ["CD"] = 0, - }, - [6] = { - ["X"] = 62.44, - ["Y"] = 50.9, - ["CD"] = 0, - }, - [7] = { - ["X"] = 61.85, - ["Y"] = 50.94, - ["CD"] = 0, - }, - [8] = { - ["X"] = 61.45, - ["Y"] = 51.58, - ["CD"] = 0, - }, - [9] = { - ["X"] = 61.14, - ["Y"] = 51.67, - ["CD"] = 0, - }, - [10] = { - ["X"] = 61.08, - ["Y"] = 52.31, - ["CD"] = 0, - }, - [11] = { - ["X"] = 60.35, - ["Y"] = 51.69, - ["CD"] = 0, - }, - [12] = { - ["X"] = 60.05, - ["Y"] = 51.23, - ["CD"] = 0, - }, - [13] = { - ["X"] = 60.05, - ["Y"] = 52.29, - ["CD"] = 0, - }, - [14] = { - ["X"] = 59.53, - ["Y"] = 52.96, - ["CD"] = 0, - }, - [15] = { - ["X"] = 59.53, - ["Y"] = 53.51, - ["CD"] = 0, - }, - [16] = { - ["X"] = 47.99, - ["Y"] = 45.57, - ["CD"] = 0, - }, - [17] = { - ["X"] = 47.57, - ["Y"] = 45.29, - ["CD"] = 0, - }, - [18] = { - ["X"] = 47.57, - ["Y"] = 45.38, - ["CD"] = 0, - }, - [19] = { - ["X"] = 48.18, - ["Y"] = 46.31, - ["CD"] = 0, - }, - [20] = { - ["X"] = 47.05, - ["Y"] = 46.63, - ["CD"] = 0, - }, -} -aura_env.cooldown = 120 -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"] -end +aura_env.herbs = { + [1] = { + ["X"] = 62.88, + ["Y"] = 54.49, + ["CD"] = 0, + }, + [2] = { + ["X"] = 62.75, + ["Y"] = 54, + ["CD"] = 0, + }, + [3] = { + ["X"] = 62.88, + ["Y"] = 53.13, + ["CD"] = 0, + }, + [4] = { + ["X"] = 62.88, + ["Y"] = 51.82, + ["CD"] = 0, + }, + [5] = { + ["X"] = 62.78, + ["Y"] = 51.54, + ["CD"] = 0, + }, + [6] = { + ["X"] = 62.44, + ["Y"] = 50.9, + ["CD"] = 0, + }, + [7] = { + ["X"] = 61.85, + ["Y"] = 50.94, + ["CD"] = 0, + }, + [8] = { + ["X"] = 61.45, + ["Y"] = 51.58, + ["CD"] = 0, + }, + [9] = { + ["X"] = 61.14, + ["Y"] = 51.67, + ["CD"] = 0, + }, + [10] = { + ["X"] = 61.08, + ["Y"] = 52.31, + ["CD"] = 0, + }, + [11] = { + ["X"] = 60.35, + ["Y"] = 51.69, + ["CD"] = 0, + }, + [12] = { + ["X"] = 60.05, + ["Y"] = 51.23, + ["CD"] = 0, + }, + [13] = { + ["X"] = 60.05, + ["Y"] = 52.29, + ["CD"] = 0, + }, + [14] = { + ["X"] = 59.53, + ["Y"] = 52.96, + ["CD"] = 0, + }, + [15] = { + ["X"] = 59.53, + ["Y"] = 53.51, + ["CD"] = 0, + }, + [16] = { + ["X"] = 47.99, + ["Y"] = 45.57, + ["CD"] = 0, + }, + [17] = { + ["X"] = 47.57, + ["Y"] = 45.29, + ["CD"] = 0, + }, + [18] = { + ["X"] = 47.57, + ["Y"] = 45.38, + ["CD"] = 0, + }, + [19] = { + ["X"] = 48.18, + ["Y"] = 46.31, + ["CD"] = 0, + }, + [20] = { + ["X"] = 47.05, + ["Y"] = 46.63, + ["CD"] = 0, + }, +} +aura_env.cooldown = 120 +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"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Waypoints b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Noblegarden/Waypoints similarity index 96% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Waypoints rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Noblegarden/Waypoints index dcd873e..08ddbf7 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Noblegarden/Waypoints +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Noblegarden/Waypoints @@ -1,167 +1,167 @@ -/way Eversong Woods 47.45 45.25 -/way Eversong Woods 47.1 45.39 -/way Eversong Woods 46.85 45.64 -/way Eversong Woods 47.26 46.21 -/way Eversong Woods 46.37 46.44 -/way Eversong Woods 46.23 47.2 -/way Eversong Woods 46.35 48 -/way Eversong Woods 46.92 48.29 -/way Eversong Woods 47.02 47.71 -/way Eversong Woods 47.28 47.65 -/way Eversong Woods 47.45 47.47 -/way Eversong Woods 47.55 47.42 -/way Eversong Woods 47.84 46.89 -/way Eversong Woods 48.13 46.47 -/way Eversong Woods 48.24 45.63 -/way Eversong Woods 47.99 45.57 -/way Eversong Woods 47.57 45.29 -/way Eversong Woods 47.57 45.38 -/way Eversong Woods 48.18 46.31 -/way Eversong Woods 47.05 46.63 - -/way Mulgore 47.58 61.98 -/way Mulgore 47.75 61.61 -/way Mulgore 49.39 61.5 -/way Mulgore 48.9 60.63 -/way Mulgore 49.1 59.96 -/way Mulgore 49.51 60.13 -/way Mulgore 49.15 58.8 -/way Mulgore 49.67 58.14 -/way Mulgore 48.5 58.18 -/way Mulgore 48.18 58.23 -/way Mulgore 48.13 58.66 -/way Mulgore 47.72 58.57 -/way Mulgore 47.55 59.51 -/way Mulgore 47.97 60.7 -/way Mulgore 47.95 60.92 -/way Mulgore 47.99 45.57 -/way Mulgore 47.57 45.29 -/way Mulgore 47.57 45.38 -/way Mulgore 48.18 46.31 -/way Mulgore 47.05 46.63 - -/way Durotar 51.58 43.53 -/way Durotar 51.71 43.97 -/way Durotar 52.19 43.75 -/way Durotar 53.1 43.07 -/way Durotar 53.56 43.28 -/way Durotar 54.06 43.34 -/way Durotar 54.63 43.33 -/way Durotar 54.84 42.4 -/way Durotar 54.89 41.74 -/way Durotar 54.53 41.47 -/way Durotar 54.27 41.65 -/way Durotar 53.86 41.66 -/way Durotar 53.74 40.67 -/way Durotar 52.95 40.72 -/way Durotar 52.78 40.24 -/way Durotar 47.99 45.57 -/way Durotar 47.57 45.29 -/way Durotar 47.57 45.38 -/way Durotar 48.18 46.31 -/way Durotar 47.05 46.63 - -/way Tirisfal Glades 62.88 54.49 -/way Tirisfal Glades 62.75 54 -/way Tirisfal Glades 62.88 53.13 -/way Tirisfal Glades 62.88 51.82 -/way Tirisfal Glades 62.78 51.54 -/way Tirisfal Glades 62.44 50.9 -/way Tirisfal Glades 61.85 50.94 -/way Tirisfal Glades 61.45 51.58 -/way Tirisfal Glades 61.14 51.67 -/way Tirisfal Glades 61.08 52.31 -/way Tirisfal Glades 60.35 51.69 -/way Tirisfal Glades 60.05 51.23 -/way Tirisfal Glades 60.05 52.29 -/way Tirisfal Glades 59.53 52.96 -/way Tirisfal Glades 59.53 53.51 -/way Tirisfal Glades 47.99 45.57 -/way Tirisfal Glades 47.57 45.29 -/way Tirisfal Glades 47.57 45.38 -/way Tirisfal Glades 48.18 46.31 -/way Tirisfal Glades 47.05 46.63 - -/way Teldrassil 56.36 51.89 -/way Teldrassil 56.3 52.47 -/way Teldrassil 56.15 52.66 -/way Teldrassil 55.77 52.93 -/way Teldrassil 55.59 52.59 -/way Teldrassil 55.34 52.53 -/way Teldrassil 55.22 52.12 -/way Teldrassil 55.36 51.37 -/way Teldrassil 55.14 51.69 -/way Teldrassil 54.87 49.49 -/way Teldrassil 55.15 49.23 -/way Teldrassil 55.61 49.51 -/way Teldrassil 55.77 49.77 -/way Teldrassil 55.7 50.34 -/way Teldrassil 55.31 50.68 -/way Teldrassil 47.99 45.57 -/way Teldrassil 47.57 45.29 -/way Teldrassil 47.57 45.38 -/way Teldrassil 48.18 46.31 -/way Teldrassil 47.05 46.63 - -/way Azuremyst Isle 50 50.24 -/way Azuremyst Isle 48.98 50.97 -/way Azuremyst Isle 49.26 50.68 -/way Azuremyst Isle 50.18 52.1 -/way Azuremyst Isle 49.8 52.07 -/way Azuremyst Isle 49.26 52.84 -/way Azuremyst Isle 48.83 52.7 -/way Azuremyst Isle 48.39 52.23 -/way Azuremyst Isle 47.8 51.37 -/way Azuremyst Isle 48.02 50.57 -/way Azuremyst Isle 48.6 50.24 -/way Azuremyst Isle 49.41 49.05 -/way Azuremyst Isle 49.77 49.6 -/way Azuremyst Isle 50.16 50.91 -/way Azuremyst Isle 49.28 51.31 -/way Azuremyst Isle 47.99 45.57 -/way Azuremyst Isle 47.57 45.29 -/way Azuremyst Isle 47.57 45.38 -/way Azuremyst Isle 48.18 46.31 -/way Azuremyst Isle 47.05 46.63 - -/way Dun Morogh 53.18 51.5 -/way Dun Morogh 52.71 51.12 -/way Dun Morogh 53.14 53.76 -/way Dun Morogh 53.33 54.06 -/way Dun Morogh 53.78 53.14 -/way Dun Morogh 54.41 53.24 -/way Dun Morogh 54.1 52.4 -/way Dun Morogh 54.56 51.32 -/way Dun Morogh 54.55 52.1 -/way Dun Morogh 53.14 51.99 -/way Dun Morogh 53.97 51.94 -/way Dun Morogh 53.94 50.74 -/way Dun Morogh 53.95 50.29 -/way Dun Morogh 54.11 50.07 -/way Dun Morogh 54.47 49.32 -/way Dun Morogh 47.99 45.57 -/way Dun Morogh 47.57 45.29 -/way Dun Morogh 47.57 45.38 -/way Dun Morogh 48.18 46.31 -/way Dun Morogh 47.05 46.63 - -/way Elwynn Forest 40.72 65.51 -/way Elwynn Forest 40.78 64.88 -/way Elwynn Forest 40.88 64.47 -/way Elwynn Forest 41.23 64.63 -/way Elwynn Forest 42.6 63.71 -/way Elwynn Forest 42.8 63.79 -/way Elwynn Forest 43.74 64.78 -/way Elwynn Forest 43.74 65.38 -/way Elwynn Forest 44.1 65.46 -/way Elwynn Forest 44.55 65.71 -/way Elwynn Forest 44.52 66.37 -/way Elwynn Forest 43.9 66.74 -/way Elwynn Forest 43.17 66.67 -/way Elwynn Forest 42.96 66.44 -/way Elwynn Forest 54.47 49.32 -/way Elwynn Forest 47.99 45.57 -/way Elwynn Forest 47.57 45.29 -/way Elwynn Forest 47.57 45.38 -/way Elwynn Forest 48.18 46.31 +/way Eversong Woods 47.45 45.25 +/way Eversong Woods 47.1 45.39 +/way Eversong Woods 46.85 45.64 +/way Eversong Woods 47.26 46.21 +/way Eversong Woods 46.37 46.44 +/way Eversong Woods 46.23 47.2 +/way Eversong Woods 46.35 48 +/way Eversong Woods 46.92 48.29 +/way Eversong Woods 47.02 47.71 +/way Eversong Woods 47.28 47.65 +/way Eversong Woods 47.45 47.47 +/way Eversong Woods 47.55 47.42 +/way Eversong Woods 47.84 46.89 +/way Eversong Woods 48.13 46.47 +/way Eversong Woods 48.24 45.63 +/way Eversong Woods 47.99 45.57 +/way Eversong Woods 47.57 45.29 +/way Eversong Woods 47.57 45.38 +/way Eversong Woods 48.18 46.31 +/way Eversong Woods 47.05 46.63 + +/way Mulgore 47.58 61.98 +/way Mulgore 47.75 61.61 +/way Mulgore 49.39 61.5 +/way Mulgore 48.9 60.63 +/way Mulgore 49.1 59.96 +/way Mulgore 49.51 60.13 +/way Mulgore 49.15 58.8 +/way Mulgore 49.67 58.14 +/way Mulgore 48.5 58.18 +/way Mulgore 48.18 58.23 +/way Mulgore 48.13 58.66 +/way Mulgore 47.72 58.57 +/way Mulgore 47.55 59.51 +/way Mulgore 47.97 60.7 +/way Mulgore 47.95 60.92 +/way Mulgore 47.99 45.57 +/way Mulgore 47.57 45.29 +/way Mulgore 47.57 45.38 +/way Mulgore 48.18 46.31 +/way Mulgore 47.05 46.63 + +/way Durotar 51.58 43.53 +/way Durotar 51.71 43.97 +/way Durotar 52.19 43.75 +/way Durotar 53.1 43.07 +/way Durotar 53.56 43.28 +/way Durotar 54.06 43.34 +/way Durotar 54.63 43.33 +/way Durotar 54.84 42.4 +/way Durotar 54.89 41.74 +/way Durotar 54.53 41.47 +/way Durotar 54.27 41.65 +/way Durotar 53.86 41.66 +/way Durotar 53.74 40.67 +/way Durotar 52.95 40.72 +/way Durotar 52.78 40.24 +/way Durotar 47.99 45.57 +/way Durotar 47.57 45.29 +/way Durotar 47.57 45.38 +/way Durotar 48.18 46.31 +/way Durotar 47.05 46.63 + +/way Tirisfal Glades 62.88 54.49 +/way Tirisfal Glades 62.75 54 +/way Tirisfal Glades 62.88 53.13 +/way Tirisfal Glades 62.88 51.82 +/way Tirisfal Glades 62.78 51.54 +/way Tirisfal Glades 62.44 50.9 +/way Tirisfal Glades 61.85 50.94 +/way Tirisfal Glades 61.45 51.58 +/way Tirisfal Glades 61.14 51.67 +/way Tirisfal Glades 61.08 52.31 +/way Tirisfal Glades 60.35 51.69 +/way Tirisfal Glades 60.05 51.23 +/way Tirisfal Glades 60.05 52.29 +/way Tirisfal Glades 59.53 52.96 +/way Tirisfal Glades 59.53 53.51 +/way Tirisfal Glades 47.99 45.57 +/way Tirisfal Glades 47.57 45.29 +/way Tirisfal Glades 47.57 45.38 +/way Tirisfal Glades 48.18 46.31 +/way Tirisfal Glades 47.05 46.63 + +/way Teldrassil 56.36 51.89 +/way Teldrassil 56.3 52.47 +/way Teldrassil 56.15 52.66 +/way Teldrassil 55.77 52.93 +/way Teldrassil 55.59 52.59 +/way Teldrassil 55.34 52.53 +/way Teldrassil 55.22 52.12 +/way Teldrassil 55.36 51.37 +/way Teldrassil 55.14 51.69 +/way Teldrassil 54.87 49.49 +/way Teldrassil 55.15 49.23 +/way Teldrassil 55.61 49.51 +/way Teldrassil 55.77 49.77 +/way Teldrassil 55.7 50.34 +/way Teldrassil 55.31 50.68 +/way Teldrassil 47.99 45.57 +/way Teldrassil 47.57 45.29 +/way Teldrassil 47.57 45.38 +/way Teldrassil 48.18 46.31 +/way Teldrassil 47.05 46.63 + +/way Azuremyst Isle 50 50.24 +/way Azuremyst Isle 48.98 50.97 +/way Azuremyst Isle 49.26 50.68 +/way Azuremyst Isle 50.18 52.1 +/way Azuremyst Isle 49.8 52.07 +/way Azuremyst Isle 49.26 52.84 +/way Azuremyst Isle 48.83 52.7 +/way Azuremyst Isle 48.39 52.23 +/way Azuremyst Isle 47.8 51.37 +/way Azuremyst Isle 48.02 50.57 +/way Azuremyst Isle 48.6 50.24 +/way Azuremyst Isle 49.41 49.05 +/way Azuremyst Isle 49.77 49.6 +/way Azuremyst Isle 50.16 50.91 +/way Azuremyst Isle 49.28 51.31 +/way Azuremyst Isle 47.99 45.57 +/way Azuremyst Isle 47.57 45.29 +/way Azuremyst Isle 47.57 45.38 +/way Azuremyst Isle 48.18 46.31 +/way Azuremyst Isle 47.05 46.63 + +/way Dun Morogh 53.18 51.5 +/way Dun Morogh 52.71 51.12 +/way Dun Morogh 53.14 53.76 +/way Dun Morogh 53.33 54.06 +/way Dun Morogh 53.78 53.14 +/way Dun Morogh 54.41 53.24 +/way Dun Morogh 54.1 52.4 +/way Dun Morogh 54.56 51.32 +/way Dun Morogh 54.55 52.1 +/way Dun Morogh 53.14 51.99 +/way Dun Morogh 53.97 51.94 +/way Dun Morogh 53.94 50.74 +/way Dun Morogh 53.95 50.29 +/way Dun Morogh 54.11 50.07 +/way Dun Morogh 54.47 49.32 +/way Dun Morogh 47.99 45.57 +/way Dun Morogh 47.57 45.29 +/way Dun Morogh 47.57 45.38 +/way Dun Morogh 48.18 46.31 +/way Dun Morogh 47.05 46.63 + +/way Elwynn Forest 40.72 65.51 +/way Elwynn Forest 40.78 64.88 +/way Elwynn Forest 40.88 64.47 +/way Elwynn Forest 41.23 64.63 +/way Elwynn Forest 42.6 63.71 +/way Elwynn Forest 42.8 63.79 +/way Elwynn Forest 43.74 64.78 +/way Elwynn Forest 43.74 65.38 +/way Elwynn Forest 44.1 65.46 +/way Elwynn Forest 44.55 65.71 +/way Elwynn Forest 44.52 66.37 +/way Elwynn Forest 43.9 66.74 +/way Elwynn Forest 43.17 66.67 +/way Elwynn Forest 42.96 66.44 +/way Elwynn Forest 54.47 49.32 +/way Elwynn Forest 47.99 45.57 +/way Elwynn Forest 47.57 45.29 +/way Elwynn Forest 47.57 45.38 +/way Elwynn Forest 48.18 46.31 /way Elwynn Forest 47.05 46.63 \ No newline at end of file diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Skinning/Some apes.lua b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Skinning/Some apes.lua similarity index 93% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Skinning/Some apes.lua rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Skinning/Some apes.lua index 2e27ed7..37fba8d 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Skinning/Some apes.lua +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Skinning/Some apes.lua @@ -1,236 +1,236 @@ -aura_env.herbs = { - [1] = { - ["X"] = 57.62, - ["Y"] = 72.45, - ["CD"] = 0, - }, - [2] = { - ["X"] = 57.57, - ["Y"] = 72.49, - ["CD"] = 0, - }, - [3] = { - ["X"] = 60.72, - ["Y"] = 70.21, - ["CD"] = 0, - }, - [4] = { - ["X"] = 57.63, - ["Y"] = 72.53, - ["CD"] = 0, - }, - [5] = { - ["X"] = 57.74, - ["Y"] = 72.2, - ["CD"] = 0, - }, - [6] = { - ["X"] = 60.67, - ["Y"] = 70.3, - ["CD"] = 0, - }, - [7] = { - ["X"] = 57.84, - ["Y"] = 72.45, - ["CD"] = 0, - }, - [8] = { - ["X"] = 60.66, - ["Y"] = 70.92, - ["CD"] = 0, - }, - [9] = { - ["X"] = 60.71, - ["Y"] = 70.26, - ["CD"] = 0, - }, - [10] = { - ["X"] = 60.67, - ["Y"] = 70.19, - ["CD"] = 0, - }, - [11] = { - ["X"] = 60.71, - ["Y"] = 70.31, - ["CD"] = 0, - }, - [12] = { - ["X"] = 60.64, - ["Y"] = 70.15, - ["CD"] = 0, - }, - [13] = { - ["X"] = 60.73, - ["Y"] = 70.37, - ["CD"] = 0, - }, - [14] = { - ["X"] = 60.14, - ["Y"] = 70.54, - ["CD"] = 0, - }, - [15] = { - ["X"] = 71.7, - ["Y"] = 70.48, - ["CD"] = 0, - }, - [16] = { - ["X"] = 72.11, - ["Y"] = 71.16, - ["CD"] = 0, - }, - [17] = { - ["X"] = 71.94, - ["Y"] = 70.56, - ["CD"] = 0, - }, - [18] = { - ["X"] = 72.01, - ["Y"] = 70.35, - ["CD"] = 0, - }, - [19] = { - ["X"] = 66.58, - ["Y"] = 69.36, - ["CD"] = 0, - }, - [20] = { - ["X"] = 72.16, - ["Y"] = 70.51, - ["CD"] = 0, - }, - [21] = { - ["X"] = 66.99, - ["Y"] = 68.62, - ["CD"] = 0, - }, - [22] = { - ["X"] = 65.63, - ["Y"] = 69.87, - ["CD"] = 0, - }, - [23] = { - ["X"] = 57.32, - ["Y"] = 76.15, - ["CD"] = 0, - }, - [24] = { - ["X"] = 65.54, - ["Y"] = 69.99, - ["CD"] = 0, - }, - [25] = { - ["X"] = 65.66, - ["Y"] = 69.51, - ["CD"] = 0, - }, - [26] = { - ["X"] = 57.68, - ["Y"] = 72.53, - ["CD"] = 0, - }, - [27] = { - ["X"] = 56.46, - ["Y"] = 73.39, - ["CD"] = 0, - }, - [28] = { - ["X"] = 64.03, - ["Y"] = 73.84, - ["CD"] = 0, - }, - [29] = { - ["X"] = 71.66, - ["Y"] = 70.86, - ["CD"] = 0, - }, - [30] = { - ["X"] = 56.82, - ["Y"] = 75.45, - ["CD"] = 0, - }, - [31] = { - ["X"] = 56.21, - ["Y"] = 76.01, - ["CD"] = 0, - }, - [32] = { - ["X"] = 48.26, - ["Y"] = 79.27, - ["CD"] = 0, - }, - [33] = { - ["X"] = 55.4, - ["Y"] = 73.17, - ["CD"] = 0, - }, - [34] = { - ["X"] = 56.71, - ["Y"] = 78.07, - ["CD"] = 0, - }, - [35] = { - ["X"] = 56.45, - ["Y"] = 76.92, - ["CD"] = 0, - }, - [36] = { - ["X"] = 50.67, - ["Y"] = 80.17, - ["CD"] = 0, - }, - [37] = { - ["X"] = 55.33, - ["Y"] = 76.05, - ["CD"] = 0, - }, - [38] = { - ["X"] = 49.13, - ["Y"] = 78.84, - ["CD"] = 0, - }, - [39] = { - ["X"] = 50.61, - ["Y"] = 78.54, - ["CD"] = 0, - }, - [40] = { - ["X"] = 46.32, - ["Y"] = 78.96, - ["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 - end - end - end - return aura_env.minID["ID"] -end +aura_env.herbs = { + [1] = { + ["X"] = 57.62, + ["Y"] = 72.45, + ["CD"] = 0, + }, + [2] = { + ["X"] = 57.57, + ["Y"] = 72.49, + ["CD"] = 0, + }, + [3] = { + ["X"] = 60.72, + ["Y"] = 70.21, + ["CD"] = 0, + }, + [4] = { + ["X"] = 57.63, + ["Y"] = 72.53, + ["CD"] = 0, + }, + [5] = { + ["X"] = 57.74, + ["Y"] = 72.2, + ["CD"] = 0, + }, + [6] = { + ["X"] = 60.67, + ["Y"] = 70.3, + ["CD"] = 0, + }, + [7] = { + ["X"] = 57.84, + ["Y"] = 72.45, + ["CD"] = 0, + }, + [8] = { + ["X"] = 60.66, + ["Y"] = 70.92, + ["CD"] = 0, + }, + [9] = { + ["X"] = 60.71, + ["Y"] = 70.26, + ["CD"] = 0, + }, + [10] = { + ["X"] = 60.67, + ["Y"] = 70.19, + ["CD"] = 0, + }, + [11] = { + ["X"] = 60.71, + ["Y"] = 70.31, + ["CD"] = 0, + }, + [12] = { + ["X"] = 60.64, + ["Y"] = 70.15, + ["CD"] = 0, + }, + [13] = { + ["X"] = 60.73, + ["Y"] = 70.37, + ["CD"] = 0, + }, + [14] = { + ["X"] = 60.14, + ["Y"] = 70.54, + ["CD"] = 0, + }, + [15] = { + ["X"] = 71.7, + ["Y"] = 70.48, + ["CD"] = 0, + }, + [16] = { + ["X"] = 72.11, + ["Y"] = 71.16, + ["CD"] = 0, + }, + [17] = { + ["X"] = 71.94, + ["Y"] = 70.56, + ["CD"] = 0, + }, + [18] = { + ["X"] = 72.01, + ["Y"] = 70.35, + ["CD"] = 0, + }, + [19] = { + ["X"] = 66.58, + ["Y"] = 69.36, + ["CD"] = 0, + }, + [20] = { + ["X"] = 72.16, + ["Y"] = 70.51, + ["CD"] = 0, + }, + [21] = { + ["X"] = 66.99, + ["Y"] = 68.62, + ["CD"] = 0, + }, + [22] = { + ["X"] = 65.63, + ["Y"] = 69.87, + ["CD"] = 0, + }, + [23] = { + ["X"] = 57.32, + ["Y"] = 76.15, + ["CD"] = 0, + }, + [24] = { + ["X"] = 65.54, + ["Y"] = 69.99, + ["CD"] = 0, + }, + [25] = { + ["X"] = 65.66, + ["Y"] = 69.51, + ["CD"] = 0, + }, + [26] = { + ["X"] = 57.68, + ["Y"] = 72.53, + ["CD"] = 0, + }, + [27] = { + ["X"] = 56.46, + ["Y"] = 73.39, + ["CD"] = 0, + }, + [28] = { + ["X"] = 64.03, + ["Y"] = 73.84, + ["CD"] = 0, + }, + [29] = { + ["X"] = 71.66, + ["Y"] = 70.86, + ["CD"] = 0, + }, + [30] = { + ["X"] = 56.82, + ["Y"] = 75.45, + ["CD"] = 0, + }, + [31] = { + ["X"] = 56.21, + ["Y"] = 76.01, + ["CD"] = 0, + }, + [32] = { + ["X"] = 48.26, + ["Y"] = 79.27, + ["CD"] = 0, + }, + [33] = { + ["X"] = 55.4, + ["Y"] = 73.17, + ["CD"] = 0, + }, + [34] = { + ["X"] = 56.71, + ["Y"] = 78.07, + ["CD"] = 0, + }, + [35] = { + ["X"] = 56.45, + ["Y"] = 76.92, + ["CD"] = 0, + }, + [36] = { + ["X"] = 50.67, + ["Y"] = 80.17, + ["CD"] = 0, + }, + [37] = { + ["X"] = 55.33, + ["Y"] = 76.05, + ["CD"] = 0, + }, + [38] = { + ["X"] = 49.13, + ["Y"] = 78.84, + ["CD"] = 0, + }, + [39] = { + ["X"] = 50.61, + ["Y"] = 78.54, + ["CD"] = 0, + }, + [40] = { + ["X"] = 46.32, + ["Y"] = 78.96, + ["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 + end + end + end + return aura_env.minID["ID"] +end diff --git a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Thing b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Thing similarity index 97% rename from Complete Projects/Legion/Herb Sniffer/Herb Arrays/Thing rename to WeakAuras/Projects/Herb Sniffer/Herb Arrays/Thing index f554ef9..76e86cf 100644 --- a/Complete Projects/Legion/Herb Sniffer/Herb Arrays/Thing +++ b/WeakAuras/Projects/Herb Sniffer/Herb Arrays/Thing @@ -1,5 +1,5 @@ -left: (\d+\.?\d*)%; top: (\d+\.?\d*) - -/way [a-z ]+(\d+\.?\d*) (\d+\.?\d*) -left: (\d+\.?\d*)%; top: (\d+\.?\d*) +left: (\d+\.?\d*)%; top: (\d+\.?\d*) + +/way [a-z ]+(\d+\.?\d*) (\d+\.?\d*) +left: (\d+\.?\d*)%; top: (\d+\.?\d*) \[\] = \n\{\n\[\"X\"\] = $1,\n\[\"Y\"\] = $2,\n\[\"CD\"\] = 0\n\}, \ No newline at end of file diff --git a/Complete Projects/Legion/Highfathers.lua b/WeakAuras/Projects/Highfathers.lua similarity index 96% rename from Complete Projects/Legion/Highfathers.lua rename to WeakAuras/Projects/Highfathers.lua index 7c364d6..fc867a7 100644 --- a/Complete Projects/Legion/Highfathers.lua +++ b/WeakAuras/Projects/Highfathers.lua @@ -1,39 +1,39 @@ ---COMBAT_LOG_EVENT_UNFILTERED -function(e, ...) - local se = select(2, ...) - if se == "SPELL_AURA_APPLIED" or se == "SPELL_AURA_APPLIED_DOSE" then - local source = select(5, ...) - if source == UnitName("player") then - local spell = select(13, ...) - local target = select(9, ...) - if spell == "Highfather's Timekeeping" then - if not aura_env.targets[target] then - aura_env.targets[target] = 1 - else - aura_env.targets[target] = aura_env.targets[target] + 1 - end - return true - end - end - elseif se == "SPELL_AURA_REMOVED" then - local source = select(5, ...) - local target = select(9, ...) - local spell = select(13, ...) - if source == UnitName("player") and spell == "Highfather's Timekeeping" and aura_env.targets[target] then - aura_env.targets[target] = nil - return true - end - end -end - ---DISPLAY -function() - local output = "" - for k,v in pairs(aura_env.targets) do - output = output .. k .. " " .. v .. "\n" - end - return output -end - ---INIT +--COMBAT_LOG_EVENT_UNFILTERED +function(e, ...) + local se = select(2, ...) + if se == "SPELL_AURA_APPLIED" or se == "SPELL_AURA_APPLIED_DOSE" then + local source = select(5, ...) + if source == UnitName("player") then + local spell = select(13, ...) + local target = select(9, ...) + if spell == "Highfather's Timekeeping" then + if not aura_env.targets[target] then + aura_env.targets[target] = 1 + else + aura_env.targets[target] = aura_env.targets[target] + 1 + end + return true + end + end + elseif se == "SPELL_AURA_REMOVED" then + local source = select(5, ...) + local target = select(9, ...) + local spell = select(13, ...) + if source == UnitName("player") and spell == "Highfather's Timekeeping" and aura_env.targets[target] then + aura_env.targets[target] = nil + return true + end + end +end + +--DISPLAY +function() + local output = "" + for k,v in pairs(aura_env.targets) do + output = output .. k .. " " .. v .. "\n" + end + return output +end + +--INIT aura_env.targets = {} \ No newline at end of file diff --git a/Complete Projects/Legion/HoTP heal bars/1.0/HP1.lua b/WeakAuras/Projects/HoTP heal bars/1.0/HP1.lua similarity index 97% rename from Complete Projects/Legion/HoTP heal bars/1.0/HP1.lua rename to WeakAuras/Projects/HoTP heal bars/1.0/HP1.lua index 19f855a..866c6be 100644 --- a/Complete Projects/Legion/HoTP heal bars/1.0/HP1.lua +++ b/WeakAuras/Projects/HoTP heal bars/1.0/HP1.lua @@ -1,48 +1,48 @@ -DISPLAY -function() - return ("%.0fk / %.0fk"):format(UnitHealth("player") / 1000, UnitHealthMax("player") / 1000); -end - -TRIGGER -function() - return true -end - -DURATION -function() - curHealth = floor((UnitHealth("player")/UnitHealthMax("player"))*100); - return curHealth,100,true; -end - -NAME -function() - local p = math.max(0, UnitHealth("player")) / math.max(1, UnitHealthMax("player")) * 100; - local missing_health = UnitHealthMax("player") - UnitHealth("player") - local b = UnitBuff("player", "Consecration") - local b2 = UnitBuff("player", "Avenging Wrath") - local b3 = UnitBuff("player", "Chain of Thrayn") - local b4 = UnitBuff("player", "Ilterendi, Crown Jewel of Silvermoon") - local versa = GetCombatRatingBonus(CR_VERSATILITY_DAMAGE_DONE) - local hotp_base_heal = 0.3 + (0.36 * 0.3) - local healing_multiplier = 1 + (versa / 100) - if b == "Consecration" then - hotp_base_heal = hotp_base_heal + (0.3 * 0.3) - end - if b3 == "Chain of Thrayn" then - healing_multiplier = healing_multiplier + 0.5 - end - if b2 == "Avenging Wrath" then - healing_multiplier = healing_multiplier + 0.35 - end - if b4 == "Ilterendi, Crown Jewel of Silvermoon" then - healing_multiplier = healing_multiplier + 0.2 - end - local absolute_healing_only_hotp = missing_health * hotp_base_heal - if healing_multiplier > 2 then healing_multiplier = 2 end - local final_heal_absolute = absolute_healing_only_hotp * healing_multiplier - local final_heal_relative = math.floor((final_heal_absolute / UnitHealthMax("player"))*100) - local heal_percentage = math.floor((final_heal_absolute / missing_health) * 100) - --print(heal_percentage) - local new = p + final_heal_relative - return string.format("%.f", p) .. " " .. string.format("%.f", new) .. " " .. string.format("+%.f", final_heal_relative) +DISPLAY +function() + return ("%.0fk / %.0fk"):format(UnitHealth("player") / 1000, UnitHealthMax("player") / 1000); +end + +TRIGGER +function() + return true +end + +DURATION +function() + curHealth = floor((UnitHealth("player")/UnitHealthMax("player"))*100); + return curHealth,100,true; +end + +NAME +function() + local p = math.max(0, UnitHealth("player")) / math.max(1, UnitHealthMax("player")) * 100; + local missing_health = UnitHealthMax("player") - UnitHealth("player") + local b = UnitBuff("player", "Consecration") + local b2 = UnitBuff("player", "Avenging Wrath") + local b3 = UnitBuff("player", "Chain of Thrayn") + local b4 = UnitBuff("player", "Ilterendi, Crown Jewel of Silvermoon") + local versa = GetCombatRatingBonus(CR_VERSATILITY_DAMAGE_DONE) + local hotp_base_heal = 0.3 + (0.36 * 0.3) + local healing_multiplier = 1 + (versa / 100) + if b == "Consecration" then + hotp_base_heal = hotp_base_heal + (0.3 * 0.3) + end + if b3 == "Chain of Thrayn" then + healing_multiplier = healing_multiplier + 0.5 + end + if b2 == "Avenging Wrath" then + healing_multiplier = healing_multiplier + 0.35 + end + if b4 == "Ilterendi, Crown Jewel of Silvermoon" then + healing_multiplier = healing_multiplier + 0.2 + end + local absolute_healing_only_hotp = missing_health * hotp_base_heal + if healing_multiplier > 2 then healing_multiplier = 2 end + local final_heal_absolute = absolute_healing_only_hotp * healing_multiplier + local final_heal_relative = math.floor((final_heal_absolute / UnitHealthMax("player"))*100) + local heal_percentage = math.floor((final_heal_absolute / missing_health) * 100) + --print(heal_percentage) + local new = p + final_heal_relative + return string.format("%.f", p) .. " " .. string.format("%.f", new) .. " " .. string.format("+%.f", final_heal_relative) end \ No newline at end of file diff --git a/Complete Projects/Legion/HoTP heal bars/1.0/HP2.lua b/WeakAuras/Projects/HoTP heal bars/1.0/HP2.lua similarity index 97% rename from Complete Projects/Legion/HoTP heal bars/1.0/HP2.lua rename to WeakAuras/Projects/HoTP heal bars/1.0/HP2.lua index 02a95a2..7ff926f 100644 --- a/Complete Projects/Legion/HoTP heal bars/1.0/HP2.lua +++ b/WeakAuras/Projects/HoTP heal bars/1.0/HP2.lua @@ -1,76 +1,76 @@ -DISPLAY -function() - return ("%.0fk / %.0fk"):format(UnitHealth("player") / 1000, UnitHealthMax("player") / 1000); -end - -TRIGGER -function() - return true -end - -DURATION -function() - local p = math.max(0, UnitHealth("player")) / math.max(1, UnitHealthMax("player")) * 100; - local missing_health = UnitHealthMax("player") - UnitHealth("player") - local b = UnitBuff("player", "Consecration") - local b2 = UnitBuff("player", "Avenging Wrath") - local b3 = UnitBuff("player", "Chain of Thrayn") - local b4 = UnitBuff("player", "Ilterendi, Crown Jewel of Silvermoon") - local versa = GetCombatRatingBonus(CR_VERSATILITY_DAMAGE_DONE) - local hotp_base_heal = 0.3 + (0.42 * 0.3) - local healing_multiplier = 1 + (versa / 100) - if b == "Consecration" then - hotp_base_heal = hotp_base_heal + (0.3 * 0.3) - end - if b3 == "Chain of Thrayn" then - healing_multiplier = healing_multiplier + 0.5 - end - if b2 == "Avenging Wrath" then - healing_multiplier = healing_multiplier + 0.35 - end - if b4 == "Ilterendi, Crown Jewel of Silvermoon" then - healing_multiplier = healing_multiplier + 0.2 - end - local absolute_healing_only_hotp = missing_health * hotp_base_heal - if healing_multiplier > 2 then healing_multiplier = 2 end - local final_heal_absolute = absolute_healing_only_hotp * healing_multiplier - local final_heal_relative = math.floor((final_heal_absolute / UnitHealthMax("player"))*100) - local heal_percentage = math.floor((final_heal_absolute / missing_health) * 100) - --print(heal_percentage) - local new = p + final_heal_relative - return new,100,true; -end - -NAME -function() - local p = math.max(0, UnitHealth("player")) / math.max(1, UnitHealthMax("player")) * 100; - local missing_health = UnitHealthMax("player") - UnitHealth("player") - local b = UnitBuff("player", "Consecration") - local b2 = UnitBuff("player", "Avenging Wrath") - local b3 = UnitBuff("player", "Chain of Thrayn") - local b4 = UnitBuff("player", "Ilterendi, Crown Jewel of Silvermoon") - local versa = GetCombatRatingBonus(CR_VERSATILITY_DAMAGE_DONE) - local hotp_base_heal = 0.3 + (0.36 * 0.3) - local healing_multiplier = 1 + (versa / 100) - if b == "Consecration" then - hotp_base_heal = hotp_base_heal + (0.3 * 0.3) - end - if b3 == "Chain of Thrayn" then - healing_multiplier = healing_multiplier + 0.5 - end - if b2 == "Avenging Wrath" then - healing_multiplier = healing_multiplier + 0.35 - end - if b4 == "Ilterendi, Crown Jewel of Silvermoon" then - healing_multiplier = healing_multiplier + 0.2 - end - local absolute_healing_only_hotp = missing_health * hotp_base_heal - if healing_multiplier > 2 then healing_multiplier = 2 end - local final_heal_absolute = absolute_healing_only_hotp * healing_multiplier - local final_heal_relative = math.floor((final_heal_absolute / UnitHealthMax("player"))*100) - local heal_percentage = math.floor((final_heal_absolute / missing_health) * 100) - --print(heal_percentage) - local new = p + final_heal_relative - return string.format("%.f", p) .. " " .. string.format("%.f", new) .. " " .. string.format("+%.f", final_heal_relative) -end - +DISPLAY +function() + return ("%.0fk / %.0fk"):format(UnitHealth("player") / 1000, UnitHealthMax("player") / 1000); +end + +TRIGGER +function() + return true +end + +DURATION +function() + local p = math.max(0, UnitHealth("player")) / math.max(1, UnitHealthMax("player")) * 100; + local missing_health = UnitHealthMax("player") - UnitHealth("player") + local b = UnitBuff("player", "Consecration") + local b2 = UnitBuff("player", "Avenging Wrath") + local b3 = UnitBuff("player", "Chain of Thrayn") + local b4 = UnitBuff("player", "Ilterendi, Crown Jewel of Silvermoon") + local versa = GetCombatRatingBonus(CR_VERSATILITY_DAMAGE_DONE) + local hotp_base_heal = 0.3 + (0.42 * 0.3) + local healing_multiplier = 1 + (versa / 100) + if b == "Consecration" then + hotp_base_heal = hotp_base_heal + (0.3 * 0.3) + end + if b3 == "Chain of Thrayn" then + healing_multiplier = healing_multiplier + 0.5 + end + if b2 == "Avenging Wrath" then + healing_multiplier = healing_multiplier + 0.35 + end + if b4 == "Ilterendi, Crown Jewel of Silvermoon" then + healing_multiplier = healing_multiplier + 0.2 + end + local absolute_healing_only_hotp = missing_health * hotp_base_heal + if healing_multiplier > 2 then healing_multiplier = 2 end + local final_heal_absolute = absolute_healing_only_hotp * healing_multiplier + local final_heal_relative = math.floor((final_heal_absolute / UnitHealthMax("player"))*100) + local heal_percentage = math.floor((final_heal_absolute / missing_health) * 100) + --print(heal_percentage) + local new = p + final_heal_relative + return new,100,true; +end + +NAME +function() + local p = math.max(0, UnitHealth("player")) / math.max(1, UnitHealthMax("player")) * 100; + local missing_health = UnitHealthMax("player") - UnitHealth("player") + local b = UnitBuff("player", "Consecration") + local b2 = UnitBuff("player", "Avenging Wrath") + local b3 = UnitBuff("player", "Chain of Thrayn") + local b4 = UnitBuff("player", "Ilterendi, Crown Jewel of Silvermoon") + local versa = GetCombatRatingBonus(CR_VERSATILITY_DAMAGE_DONE) + local hotp_base_heal = 0.3 + (0.36 * 0.3) + local healing_multiplier = 1 + (versa / 100) + if b == "Consecration" then + hotp_base_heal = hotp_base_heal + (0.3 * 0.3) + end + if b3 == "Chain of Thrayn" then + healing_multiplier = healing_multiplier + 0.5 + end + if b2 == "Avenging Wrath" then + healing_multiplier = healing_multiplier + 0.35 + end + if b4 == "Ilterendi, Crown Jewel of Silvermoon" then + healing_multiplier = healing_multiplier + 0.2 + end + local absolute_healing_only_hotp = missing_health * hotp_base_heal + if healing_multiplier > 2 then healing_multiplier = 2 end + local final_heal_absolute = absolute_healing_only_hotp * healing_multiplier + local final_heal_relative = math.floor((final_heal_absolute / UnitHealthMax("player"))*100) + local heal_percentage = math.floor((final_heal_absolute / missing_health) * 100) + --print(heal_percentage) + local new = p + final_heal_relative + return string.format("%.f", p) .. " " .. string.format("%.f", new) .. " " .. string.format("+%.f", final_heal_relative) +end + diff --git a/Complete Projects/Legion/HoTP heal bars/2.0/HP1 2.0.lua b/WeakAuras/Projects/HoTP heal bars/2.0/HP1 2.0.lua similarity index 97% rename from Complete Projects/Legion/HoTP heal bars/2.0/HP1 2.0.lua rename to WeakAuras/Projects/HoTP heal bars/2.0/HP1 2.0.lua index 4d35769..440b102 100644 --- a/Complete Projects/Legion/HoTP heal bars/2.0/HP1 2.0.lua +++ b/WeakAuras/Projects/HoTP heal bars/2.0/HP1 2.0.lua @@ -1,79 +1,79 @@ ---HoTP 2.0 -TRIGGER -function() - return true -end - -ICON --Trigger for scripts -function() - aura_env.percentageHealth = aura_env.round((UnitHealth("player") / UnitHealthMax("player")) * 100, 0) - aura_env.currentHealth = UnitHealth("player") - aura_env.maxHealth = UnitHealthMax("player") - aura_env.missingHealthPercentage = aura_env.round(((UnitHealthMax("player") - UnitHealth("player")) / UnitHealthMax("player")) * 100, 2) - aura_env.missingHealth = UnitHealthMax("player") - UnitHealth("player") - local healingMultiplier = 1. - local versa = GetCombatRatingBonus(CR_VERSATILITY_DAMAGE_DONE) - healingMultiplier = healingMultiplier + (healingMultiplier * (aura_env.traitLevel * aura_env.traitEffectiveness)) + (healingMultiplier * (versa / 100)) - for k,v in pairs(aura_env.buffs) do - if UnitBuff("player", k) ~= nil then - healingMultiplier = healingMultiplier + (healingMultiplier * v) - end - end - local talent = select(10, GetTalentInfoByID(22430)) - if talent == true then - healingMultiplier = healingMultiplier + (healingMultiplier * 0.3) - end - aura_env.hotpRelativeHeal = 0.3 * healingMultiplier --How much % hotp heals disregarding missing health - aura_env.hotpAbsoluteRelativeHeal = aura_env.hotpRelativeHeal * aura_env.missingHealthPercentage --How much % hp hotp will heal regarding missing health - aura_env.hotpAbsoluteHeal = aura_env.round(aura_env.hotpRelativeHeal * aura_env.missingHealth, 0) - aura_env.newApsoluteHealth = aura_env.round(aura_env.currentHealth + aura_env.hotpAbsoluteHeal, 0) - aura_env.newRelativeHealth = aura_env.round(aura_env.percentageHealth + aura_env.hotpAbsoluteRelativeHeal, 0) - --print(healingMultiplier,aura_env.hotpRelativeHeal,aura_env.hotpAbsoluteRelativeHeal,aura_env.hotpAbsoluteHeal,aura_env.newApsoluteHealth,aura_env.newRelativeHealth) --DEBUG - --print(aura_env.hotpAbsoluteRelativeHeal, aura_env.newRelativeHealth, aura_env.percentageHealth) --DEBUG - --print(aura_env.hotpAbsoluteHeal, aura_env.newApsoluteHealth, aura_env.currentHealth) --DEBUG - --print(aura_env.round(aura_env.hotpRelativeHeal * 100, 0)) --% of health hotp heals -end - -DURATION -function() - return aura_env.percentageHealth, 100, 1 -end - -NAME -function() - return aura_env.percentageHealth .. " " .. aura_env.newRelativeHealth .. " +" .. aura_env.round(aura_env.hotpAbsoluteRelativeHeal, 0) -end - -DISPLAY -function() - return ("%.0fk / %.0fk"):format(UnitHealth("player") / 1000, UnitHealthMax("player") / 1000); -end - -INIT -aura_env.traitLevel = 7 -aura_env.traitEffectiveness = 0.06 -aura_env.buffs = -{ - ["Consecration"] = 0.3, - ["Avenging Wrath"] = 0.35, - ["Chains of Thrayn"] = 0.5, - ["Ilterendi, Crown Jewel of Silvermoon"] = 0.15 -} -aura_env.round = function(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 -aura_env.percentageHealth = 0 -aura_env.currentHealth = 0 -aura_env.maxHealth = 0 -aura_env.hotpRelativeHeal = 0 -aura_env.hotpAbsoluteRelativeHeal = 0 -aura_env.hotpAbsoluteHeal = 0 -aura_env.newApsoluteHealth = 0 -aura_env.newRelativeHealth = 0 -aura_env.missingHealth = 0 +--HoTP 2.0 +TRIGGER +function() + return true +end + +ICON --Trigger for scripts +function() + aura_env.percentageHealth = aura_env.round((UnitHealth("player") / UnitHealthMax("player")) * 100, 0) + aura_env.currentHealth = UnitHealth("player") + aura_env.maxHealth = UnitHealthMax("player") + aura_env.missingHealthPercentage = aura_env.round(((UnitHealthMax("player") - UnitHealth("player")) / UnitHealthMax("player")) * 100, 2) + aura_env.missingHealth = UnitHealthMax("player") - UnitHealth("player") + local healingMultiplier = 1. + local versa = GetCombatRatingBonus(CR_VERSATILITY_DAMAGE_DONE) + healingMultiplier = healingMultiplier + (healingMultiplier * (aura_env.traitLevel * aura_env.traitEffectiveness)) + (healingMultiplier * (versa / 100)) + for k,v in pairs(aura_env.buffs) do + if UnitBuff("player", k) ~= nil then + healingMultiplier = healingMultiplier + (healingMultiplier * v) + end + end + local talent = select(10, GetTalentInfoByID(22430)) + if talent == true then + healingMultiplier = healingMultiplier + (healingMultiplier * 0.3) + end + aura_env.hotpRelativeHeal = 0.3 * healingMultiplier --How much % hotp heals disregarding missing health + aura_env.hotpAbsoluteRelativeHeal = aura_env.hotpRelativeHeal * aura_env.missingHealthPercentage --How much % hp hotp will heal regarding missing health + aura_env.hotpAbsoluteHeal = aura_env.round(aura_env.hotpRelativeHeal * aura_env.missingHealth, 0) + aura_env.newApsoluteHealth = aura_env.round(aura_env.currentHealth + aura_env.hotpAbsoluteHeal, 0) + aura_env.newRelativeHealth = aura_env.round(aura_env.percentageHealth + aura_env.hotpAbsoluteRelativeHeal, 0) + --print(healingMultiplier,aura_env.hotpRelativeHeal,aura_env.hotpAbsoluteRelativeHeal,aura_env.hotpAbsoluteHeal,aura_env.newApsoluteHealth,aura_env.newRelativeHealth) --DEBUG + --print(aura_env.hotpAbsoluteRelativeHeal, aura_env.newRelativeHealth, aura_env.percentageHealth) --DEBUG + --print(aura_env.hotpAbsoluteHeal, aura_env.newApsoluteHealth, aura_env.currentHealth) --DEBUG + --print(aura_env.round(aura_env.hotpRelativeHeal * 100, 0)) --% of health hotp heals +end + +DURATION +function() + return aura_env.percentageHealth, 100, 1 +end + +NAME +function() + return aura_env.percentageHealth .. " " .. aura_env.newRelativeHealth .. " +" .. aura_env.round(aura_env.hotpAbsoluteRelativeHeal, 0) +end + +DISPLAY +function() + return ("%.0fk / %.0fk"):format(UnitHealth("player") / 1000, UnitHealthMax("player") / 1000); +end + +INIT +aura_env.traitLevel = 7 +aura_env.traitEffectiveness = 0.06 +aura_env.buffs = +{ + ["Consecration"] = 0.3, + ["Avenging Wrath"] = 0.35, + ["Chains of Thrayn"] = 0.5, + ["Ilterendi, Crown Jewel of Silvermoon"] = 0.15 +} +aura_env.round = function(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 +aura_env.percentageHealth = 0 +aura_env.currentHealth = 0 +aura_env.maxHealth = 0 +aura_env.hotpRelativeHeal = 0 +aura_env.hotpAbsoluteRelativeHeal = 0 +aura_env.hotpAbsoluteHeal = 0 +aura_env.newApsoluteHealth = 0 +aura_env.newRelativeHealth = 0 +aura_env.missingHealth = 0 aura_env.missingHealthPercentage = 0 \ No newline at end of file diff --git a/Complete Projects/Legion/HoTP heal bars/2.0/HP2 2.0.lua b/WeakAuras/Projects/HoTP heal bars/2.0/HP2 2.0.lua similarity index 97% rename from Complete Projects/Legion/HoTP heal bars/2.0/HP2 2.0.lua rename to WeakAuras/Projects/HoTP heal bars/2.0/HP2 2.0.lua index 79c095d..5177d74 100644 --- a/Complete Projects/Legion/HoTP heal bars/2.0/HP2 2.0.lua +++ b/WeakAuras/Projects/HoTP heal bars/2.0/HP2 2.0.lua @@ -1,69 +1,69 @@ ---HoTP 2.0 -TRIGGER -function() - return true -end - -ICON --Trigger for scripts -function() - aura_env.percentageHealth = aura_env.round((UnitHealth("player") / UnitHealthMax("player")) * 100, 0) - aura_env.currentHealth = UnitHealth("player") - aura_env.maxHealth = UnitHealthMax("player") - aura_env.missingHealthPercentage = aura_env.round(((UnitHealthMax("player") - UnitHealth("player")) / UnitHealthMax("player")) * 100, 2) - aura_env.missingHealth = UnitHealthMax("player") - UnitHealth("player") - local healingMultiplier = 1. - local versa = GetCombatRatingBonus(CR_VERSATILITY_DAMAGE_DONE) - healingMultiplier = healingMultiplier + (healingMultiplier * (aura_env.traitLevel * aura_env.traitEffectiveness)) + (healingMultiplier * (versa / 100)) - for k,v in pairs(aura_env.buffs) do - if UnitBuff("player", k) ~= nil then - healingMultiplier = healingMultiplier + (healingMultiplier * v) - end - end - local talent = select(10, GetTalentInfoByID(22430)) - if talent == true then - healingMultiplier = healingMultiplier + (healingMultiplier * 0.3) - end - aura_env.hotpRelativeHeal = 0.3 * healingMultiplier --How much % hotp heals disregarding missing health - aura_env.hotpAbsoluteRelativeHeal = aura_env.hotpRelativeHeal * aura_env.missingHealthPercentage --How much % hp hotp will heal regarding missing health - aura_env.hotpAbsoluteHeal = aura_env.round(aura_env.hotpRelativeHeal * aura_env.missingHealth, 0) - aura_env.newApsoluteHealth = aura_env.round(aura_env.currentHealth + aura_env.hotpAbsoluteHeal, 0) - aura_env.newRelativeHealth = aura_env.round(aura_env.percentageHealth + aura_env.hotpAbsoluteRelativeHeal, 0) - --print(healingMultiplier,aura_env.hotpRelativeHeal,aura_env.hotpAbsoluteRelativeHeal,aura_env.hotpAbsoluteHeal,aura_env.newApsoluteHealth,aura_env.newRelativeHealth) --DEBUG - --print(aura_env.hotpAbsoluteRelativeHeal, aura_env.newRelativeHealth, aura_env.percentageHealth) --DEBUG - --print(aura_env.hotpAbsoluteHeal, aura_env.newApsoluteHealth, aura_env.currentHealth) --DEBUG - --print(aura_env.round(aura_env.hotpRelativeHeal * 100, 0)) --% of health hotp heals -end - -DURATION -function() - return aura_env.newRelativeHealth, 100, 1 -end - -INIT -aura_env.traitLevel = 7 -aura_env.traitEffectiveness = 0.06 -aura_env.buffs = -{ - ["Consecration"] = 0.3, - ["Avenging Wrath"] = 0.35, - ["Chains of Thrayn"] = 0.5, - ["Ilterendi, Crown Jewel of Silvermoon"] = 0.15 -} -aura_env.round = function(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 -aura_env.percentageHealth = 0 -aura_env.currentHealth = 0 -aura_env.maxHealth = 0 -aura_env.hotpRelativeHeal = 0 -aura_env.hotpAbsoluteRelativeHeal = 0 -aura_env.hotpAbsoluteHeal = 0 -aura_env.newApsoluteHealth = 0 -aura_env.newRelativeHealth = 0 -aura_env.missingHealth = 0 +--HoTP 2.0 +TRIGGER +function() + return true +end + +ICON --Trigger for scripts +function() + aura_env.percentageHealth = aura_env.round((UnitHealth("player") / UnitHealthMax("player")) * 100, 0) + aura_env.currentHealth = UnitHealth("player") + aura_env.maxHealth = UnitHealthMax("player") + aura_env.missingHealthPercentage = aura_env.round(((UnitHealthMax("player") - UnitHealth("player")) / UnitHealthMax("player")) * 100, 2) + aura_env.missingHealth = UnitHealthMax("player") - UnitHealth("player") + local healingMultiplier = 1. + local versa = GetCombatRatingBonus(CR_VERSATILITY_DAMAGE_DONE) + healingMultiplier = healingMultiplier + (healingMultiplier * (aura_env.traitLevel * aura_env.traitEffectiveness)) + (healingMultiplier * (versa / 100)) + for k,v in pairs(aura_env.buffs) do + if UnitBuff("player", k) ~= nil then + healingMultiplier = healingMultiplier + (healingMultiplier * v) + end + end + local talent = select(10, GetTalentInfoByID(22430)) + if talent == true then + healingMultiplier = healingMultiplier + (healingMultiplier * 0.3) + end + aura_env.hotpRelativeHeal = 0.3 * healingMultiplier --How much % hotp heals disregarding missing health + aura_env.hotpAbsoluteRelativeHeal = aura_env.hotpRelativeHeal * aura_env.missingHealthPercentage --How much % hp hotp will heal regarding missing health + aura_env.hotpAbsoluteHeal = aura_env.round(aura_env.hotpRelativeHeal * aura_env.missingHealth, 0) + aura_env.newApsoluteHealth = aura_env.round(aura_env.currentHealth + aura_env.hotpAbsoluteHeal, 0) + aura_env.newRelativeHealth = aura_env.round(aura_env.percentageHealth + aura_env.hotpAbsoluteRelativeHeal, 0) + --print(healingMultiplier,aura_env.hotpRelativeHeal,aura_env.hotpAbsoluteRelativeHeal,aura_env.hotpAbsoluteHeal,aura_env.newApsoluteHealth,aura_env.newRelativeHealth) --DEBUG + --print(aura_env.hotpAbsoluteRelativeHeal, aura_env.newRelativeHealth, aura_env.percentageHealth) --DEBUG + --print(aura_env.hotpAbsoluteHeal, aura_env.newApsoluteHealth, aura_env.currentHealth) --DEBUG + --print(aura_env.round(aura_env.hotpRelativeHeal * 100, 0)) --% of health hotp heals +end + +DURATION +function() + return aura_env.newRelativeHealth, 100, 1 +end + +INIT +aura_env.traitLevel = 7 +aura_env.traitEffectiveness = 0.06 +aura_env.buffs = +{ + ["Consecration"] = 0.3, + ["Avenging Wrath"] = 0.35, + ["Chains of Thrayn"] = 0.5, + ["Ilterendi, Crown Jewel of Silvermoon"] = 0.15 +} +aura_env.round = function(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 +aura_env.percentageHealth = 0 +aura_env.currentHealth = 0 +aura_env.maxHealth = 0 +aura_env.hotpRelativeHeal = 0 +aura_env.hotpAbsoluteRelativeHeal = 0 +aura_env.hotpAbsoluteHeal = 0 +aura_env.newApsoluteHealth = 0 +aura_env.newRelativeHealth = 0 +aura_env.missingHealth = 0 aura_env.missingHealthPercentage = 0 \ No newline at end of file diff --git a/Complete Projects/Legion/HoTP heal bars/3.0/AAAAAA.txt b/WeakAuras/Projects/HoTP heal bars/3.0/AAAAAA.txt similarity index 99% rename from Complete Projects/Legion/HoTP heal bars/3.0/AAAAAA.txt rename to WeakAuras/Projects/HoTP heal bars/3.0/AAAAAA.txt index 600a980..ee929c1 100644 --- a/Complete Projects/Legion/HoTP heal bars/3.0/AAAAAA.txt +++ b/WeakAuras/Projects/HoTP heal bars/3.0/AAAAAA.txt @@ -1,4 +1,4 @@ - - - dufqZbGifYLiqYNuufnkcQtrjSkfkLxrGWSaIBHGAxcv)srvyyiQJbults1ZqetdbUgqABeKVHq14auohcfRdHsVJarL5rGOCpHu7tHsCquWcvuEOqPjQqXfrrTrjfFurvAKiKtkKSsu6LkQkzMskDteKDcv)erAOOqlLa1tLAQq5Qcf2kbs9vavJvHs1zjqu1BbKMRcv3fqSxv)vrgmOdJ0IPKEmLAYe6YK2Ss6ZsYOvIttXQvuv8AuKzRu3wb7gv)wWWb44kuslhYZjA6uDDj2Uq8DfvgpbCEkrRxOO3ROQuZxrv19jqK9l6d(yVPh7(B576XjioyI)E4T4BXJ9gPvMahZsa67kuOa4n12nrumKPQsrekiQhN8BvaauUOk(zVTK01vP6hNWGjG8BQOOXnboDp5itvLIKh7(BPUxzmy4(7zKIHrkHQL5AWEBeFZik4jeaDttO1YElxmEcJkHspS13uU9savdIoOywcqF3mxlZXIvJGzGqm)MxgWqMQkfjpo437av8yVD6w5E9J9EOSDZXUF)Tt3k3p27HY2nh7(932BQuES3sdVARVzKHAzymrHF)DrQt2BQu(2rf9nIARh79qz7MJD)(BuyRh79qz7MJD)(7vQTBc8J9EOSDZXUF)nGiaC6w5(XEpu2U5y3V)w0SUASlB3YJ9EOSDZXUF)(932h74Gp2BxfWRztRKVjngy1gfoZVfG01vP6hNWaR(BljDDvQ(Xjmj1FBLAZufku4IXg2b0Xoo4Jd(41po4JtYXbFCcEnGsCHiqiWKfcmOeaMSqad0Vsyqf6(71a3RztRKVjngy1gfoZVL6ELXGH7VXiLX3wPOyd7a6yhV(XjhN41bdQqatO6eNaqjtma74K8AagjKiezItGqKjGeGrCItaX)kHbf07VbGcvivkzeP2gPjWpobV3bQ4XExK6ea1TsDFR367IuN4AefDRVT3uP8yVLgE1wFZid1YWyIc)(7IuNS3uP8ZEJO26XEpu2U5y3V)Ui1jja1(ZE70TY96h79qz7MJD)(BNUvUFS3dLTBo297VlsDkIUyS36T(wcqTp2BPHxT1Jx)(BrZ6QXUSDlp27HY2nh7(93aIaWPBL7h79qz7MJD)(7vQTBc8J9EOSDZXUF)DrQt2HbRu)ZEJcB9yVhkB3CS73FxK6eNoO3693YHqWxyefQqQu(zVrALjWXSeG(MwquRu0BPtTzsERVnCJpzhgaSvxfpo43UkGxq6BbDzzmHes4eY4MA4je4lgxF7QaEnbU)EmbKrYiJVJzimCCYXj5TeafX0N92ndkQMa3FZGyeL7fK(wcGIyk2WoGo2XbFCYhV(XjFCsoo57VfnY5tHB7Mi6Bk3Y32fPhgWub83RfUTBcCHNazceawKSjmHjmHM1eciHuUycbKWC(JoHKtiLlMqajmN)ObNqFr5jePEbXtiGeQCXKnHjmHjePEbXt48CEMSkxmzt2Knzt2Knzt23uB3erXqMQkfrOGOECcdM8BxfWBtm1JdM4VTd7a6y3F7itvLIo27IuNgOU9Ikk4cxV13fPozVqrvQ8ZExK6eshOgUHxDRVTlspm8ETWTDtGlSfjBctyctis9cINqhv0Kv5IjBYMSjBYMSjBYMSjBYMSjBYMSjBY(2Ui9WW0IruFBxKEy4T9IAZ07carQRVTxOOkv(g8BnIYD57yjLqZyaBQwsN3jMf0mJJnfd8AIQwmMfmZJ5T9cfvPYPaafr9a69yj63ULa032fPhgEx4AeL7VPfp8Ui1j5syos5F2B7I0ddJPGOUjWFVw42UjWf2IKnHjmHjChSP7eAVqrvQeKjqKof5Giwqjm6eoVQ3a09o2fkQsLcdkjcrMSfjBctyctOznH2luuLktOGmWj0xuEcrQxq8ekwqGiDkYfeIfucvUyYMWeMWeAwtO9cfvPYeowIoHGtOVO8eIuVG4jKmiGbXrfnHkxmztyctycrQxq8ecgeWG4OIMSkxmzt2Knzt2Knzt2Knzt2Knzt2Knzt2KnzFBxKEyyYTeG(w6uViFJu6UbO7noDqF3lgDlMWWAc9fnHc2uT4AOiFxK6KeGU340b9ZExK6uHB8p7TCjmhP83YLWCmSNJAP8TeGU340b94GsIqKjF)TeafXeHmiuaDRVTgqIkI01vP6hNG3fUJmvvk6yVLlH5iL)wUeMJH9CulLVTlspm8ETWTDtGlSfjBctyctis9cINWv6wQjRYft2Knzt2K9TeGU340b94GsIqKjF)THB8jPtrUkECWVxut1I)AagbeqqDqfcyGjoOGRtajG)kHjGyE7MbfvZMwjFtisXjnwIemPeI55hJOOID(I0yGvBu4m)MxgWqMQkfjpo43sauetZ2kxKqbr99SAzgFmVTsTzsefaeByhqh74Gpo5Jx)4KpojhN8Xj44GV)2yh436BrJeWMAjMkGxRU6VtOGY(9CgrF54aJ8BRbKOIInSdOJDCWhN8XRFCYhNKJt(4eCCW3FBnGevuuCP6hh8BRbKOI(S3wdirfXSyL(E22eZysrIjm2fQNWzfRw36BQOOXnboDp5itvLIKh7(BRbKOIAtm1Jx)TXoWNKgr9DTmxd2BjakIjIut1IF861FBnGev0mQntIOaG3DyBeF7MbfDRVLaOiMaUr0xoE93gX3DWfCcJDHIQ0ec(9kIoOTJOo94K8MA7MaxES3gUXp2BXWKDr6HHp7TDr6HH3axPmXqbrLXrALjWLaLwq0jLhjUreiXrALjWJBLIIVwrST6yQaEbPcpkkUROvQTo(4ZkUh4YXhh4effgZaBSdSrwKSaxPmXqbrLXrALjWLaLwq0jLhjUreiXrALjWJBLIIBTIyB1Xub8csfEuuCxrRuBD8XNvCpWLJpoWjkkmMb2yhyJSizPfeDs5rIVg4oi0cIoP8iXxdCFsAIPccTGOtkps81a3Nw30kzcJoHaxPmXqbrLXrALjWLaLwq0jLhjUreiXrALjWJ7QaoXoVQxtG7cBrYcCLYedfevghPvMaxcuAbrNuEK4grGehPvMapURc4eBREnbUlmTGOtkps81a3bHwq0jLhj(AG7tstmvqgrAmWQnkCMhzrYcCLYedfevghPvMaxcuAbrNuEK4grGehPvMapURc4eBREVqfdZr66QuDHRdscjmylUF)THhrrs9ZElbqrmHPc4fK(okUROvQToodIIKYLJdCLYedfevooHurdDCmvaVGu549yTqr6eWxmUE)41p2BjakIjGBe9LJx)TLKUUkv)4eMK6VTgqIkk2WoGo2XbFCYhV(XjFCsoo5JtWXbF)TXoWV13RbUxZMwjFtAmWQnkCMFl19kJbd3FJrkJVTsrXg2b0Xoo4xdWecyetDIbyGjtaOeNeHec8xjmOKC86VgHeImO1joXqaOKqaXfI41j4RegusoojVgcaLyatmKbfuY1jaSqedWa)vcdkb3FdafQqQuYisTnstGFCcEVduXJ9Ui1jaQBL6(wV13fPoX1ik6wFBVPs5XEln8QT(MrgQLHXef(93fPozVPs5N9gf26XEpu2U5y3V)Ui1jja1(ZE70TY96h79qz7MJD)(BNUvUFS3dLTBo297VlsDkIUyS36T(wcqTp2BPHxT1Jx)(7IuN40b9wFdicaNUvUFS3dLTBo297VxP2UjWp27HY2nh7(93fPozhgSs9p7nIARh79qz7MJD)(BrZ6QXUSDlp27HY2nh7(97VLdHGVWikuHuP8ZEJ0ktGJzja9nTGOwPO3sNAZK8wFB4gFYomayRUkECWVDvaVG03c6YYycjKWjKXn1WtiWxmU(2vb8AcC)9yciJKrgFlbqrmHPc4fK(okUROvQToodIIKYLJdCLYedfevooHurdDCmvaVGu549yTqr6eWxmU(wcGIy6ZE7MbfvtG7VzqmIY9csFBnGevuuCP6hh8BrJC(u42UjI(MYT8TDr6Hbmva)9AHB7Max4jqMabGfjBctyctOznHasiLlMqajmN)Oti5es5IjeqcZ5pAWj0xuEcrQxq8eciHkxmztyctycrQxq8eopNNjRYft2Knzt2Knzt2K9n12nrumKPQsrekiQhNWGj)w0ibSPwIPc41QR(7ekOSF7itvLIo27IuNgOU9Ikk4cxV13fPozVqrvQ8ZEBVqrvQ8n43AeL7Y3XskHMXa2uTKoVtmlOzghBkg41evTymlyMhZB7I0ddtlgr9TDr6HH3YLWCKYFlxcZXWEoQLY3fPoH0bQHB4v36B7I0ddVxlCB3e4cBrYMWeMWeIuVG4j0rfnzvUyYMSjBYMSjBYMSjBYMSjBYMSjBYMSVTxOOkvofaOiQhqVhlr)2TeG(2Ui9WW7cxJOC)nT4H3fPojxcZrk)ZEBxKEyymfe1nb(71c32nbUWwKSjmHjmH7GnDNq7fkQsLGmbI0PiheXckHrNW5v9gGU3XUqrvQuyqjriYKTiztyctycnRj0EHIQuzcJoAWj0xuEcrQxq8ekwqGiDkYfeIfucvUyYMWeMWeAwtO9cfvPYeowIoH1tOVO8eIuVG4jKmiGbXrfnHkxmztyctycrQxq8ecgeWG4OIMSkxmzt2Knzt2Knzt2Knzt2Knzt2Knzt2KnzFBxKEyyYTeG(w6uViFJu6UbO7noDqF3lgDlMWWAc9fnHc2uT4AOiFxK6KeGU340b9ZExK6uHB8p7T9IAZ07carQRVLa09gNoOhhuseIm57VP2UjWLh7THB8J9wmmzxKEy4ZEBxKEy4nWvktmuquzCKwzcCjqPfeDs5rIBebsCKwzc84wPO4RveBRoMkGxqQWJII7kALARJp(SI7bUC8XborrHXmWg7aBKfjlWvktmuquzCKwzcCjqPfeDs5rIBebsCKwzc84wPO4wRi2wDmvaVGuHhff3v0k1whF8zf3dC54JdCIIcJzGn2b2ilswAbrNuEK4RbUdcTGOtkps81a3NKMyQGqli6KYJeFnW9P1nTsMWOtiWvktmuquzCKwzcCjqPfeDs5rIBebsCKwzc84UkGtSZR61e4UWwKSaxPmXqbrLXrALjWLaLwq0jLhjUreiXrALjWJ7QaoX2QxtG7ctli6KYJeFnWDqOfeDs5rIVg4(K0etfKrKgdSAJcN5rwKSaxPmXqbrLXrALjWLaLwq0jLhjUreiXrALjWJ7QaoX2Q3luXWCKUUkvx46GKqcd2I73FB4gFs6uKRIhh8B3mOOB9TBguunBAL8nHifN0yjsWKsiMNFmIIk25lsJbwTrHZ8BjakIPzBLlsOGO(EwTmJpM3wP2mjIcaInSdOJDCWhN8XRFCYhNKJt(4eCCW3FB4ruKu)S3Xmegoo54K8EoJOVCCGr(T1asurF2BRbKOIywSsFpBBIzmPiXeg7c1t4SIvRB9T1asurKUUkv)4e82AajQO2et941FBeF3bxWjm2fkQsty93g7aFsAe131YCnyVDvaVnXupoyI)wcGIyIi1uT4hVE93UkGxZMwjFtAmWQnkCMFBnGev0mQntIOaG3DyBeFtffnUjWP7jhzQQuK8y3FBLAZufku4IXg2b0Xoo4Jd(41po4JtYXbFCcEnGsCHiqiWKfcmOeaMSqad0Vsyqf6(7veDqBhrD6Xj5nVmGHmvvksECWVlChzQQu0XElxcZrk)TCjmhd75OwkFBxKEy49AHB7Maxyls2eMWeMqK6fepHR0TutwLlMSjBYMSj7BjaDVXPd6XbLeHit((BjakIPyd7a6yhh8XjF86hN8Xj54KVF)4KCS3saueta3i6lhV(BbiDDvQ(Xbw93ws66Qu9JtysQ)2AajQOyd7a6yhh8XjF86hN8Xj54Kpobhh893g7a)wFVg4EnBAL8nPXaR2OWz(Tu3RmgmC)ngPm(2kffByhqh74GFnatiGrm1jgGbMmbGsCsesiWFLWGsYXR)AesiYGwN4edbGscbexiIxNGVsyqj54K8AiauIbmXqguqjxNaWcrmad8xjmOeC)nauOcPsjJi12inb(Xj49oqfp27IuNaOUvQ7B9wFxK6exJOOB9T9MkLh7T0WR26BgzOwggtu43FxK6K9MkLF2Be1wp27HY2nh7(93fPojbO2F2BNUvUx)yVhkB3CS73F70TY9J9EOSDZXUF)DrQtr0fJ9wV13saQ9XEln8QTE863FlAwxn2LTB5XEpu2U5y3V)gqeaoDRC)yVhkB3CS73FVsTDtGFS3dLTBo297VlsDYomyL6F2BuyRh79qz7MJD)(7IuN40b9wV)woec(cJOqfsLYp7nsRmboMLa030cIALIElDQntYB9THB8j7WaGT6Q4Xb)2vb8csFlOllJjKqcNqg3udpHaFX46BxfWRjW93JjGmsgz8DmdHHJtoojVDZGIQjW93migr5EbPVTgqIkkkUu9Jd(TOroFkCB3erFt5w(2Ui9WaMkG)ETWTDtGl8eitGaWIKnHjmHj0SMqajKYftiGeMZF0jKCcPCXeciH58hn4e6lkpHi1liEcbKqLlMSjmHjmHi1liEcNNZZKv5IjBYMSjBYMSjBY(MA7MikgYuvPicfe1JtyWKFlAKa2ulXub8A1v)Dcfu2VDKPQsrh7DrQtdu3ErffCHR367IuNSxOOkv(zVlsDcPdud3WRU132fPhgEVw42UjWf2IKnHjmHjePEbXtOJkAYQCXKnzt2Knzt2Knzt2Knzt2Knzt2KnzFlbO7noDqpoOKiezYVTxuBMExaisD9TBja9TDr6HH3AeL7Y3XskHMXa2uTKoVtmlOzghBkg41evTymlyMhZB7fkQsLtbakI6b07Xs0VTxOOkv(g87cxJOC)nT4H3fPojxcZrk)ZEBxKEyymfe1nb(71c32nbUWwKSjmHjmH7GnDNq7fkQsLGmbI0PiheXckHrNW5v9gGU3XUqrvQuyqjriYKTiztyctycnRj0EHIQuzcJo6ewpH(IYtis9cINqXccePtrUGqSGsOYft2eMWeMqZAcTxOOkvMWOJoHKKqFr5jePEbXtizqadIJkAcvUyYMWeMWeIuVG4jemiGbXrfnzvUyYMSjBYMSjBYMSjBYMSjBYMSjBYMSjBY(2Ui9WWKBja9T0PEr(gP0Ddq3BC6G(Uxm6wmHH1e6lAcfSPAX1qr(Ui1jjaDVXPd6N9Ui1Pc34F2B5syos5VLlH5yyph1s5B7I0ddtlgr9TDr6HH7VDvaVnXupoyI)2Wn(K0Pixfpo43Uzqr36B3mOOA20k5BcrkoPXsKGjLqmp)yefvSZxKgdSAJcN53sauetZ2kxKqbr99SAzgFmVTsTzsefaeByhqh74Gpo5Jx)4KpojhN8Xj44GV)2WJOiP(zVTgqIkI01vP6hNG3Zze9LJdmYVTgqIk6ZEBnGeveZIv67zBtmJjfjMWyxOEcNvSADRVLaOiMInSdOJDCWhN8XRFCYhNKJt((BRbKOIAtm1Jx)nvu04MaNUNCKPQsrYJD)TXoWNKgr9DTmxd2BQTBcC5XEB4g)yVfdt2fPhg(S32fPhgEdCLYedfevghPvMaxcuAbrNuEK4grGehPvMapUvkk(AfX2QJPc4fKk8OO4UIwP264JpR4EGlhFCGtuuymdSXoWgzrYcCLYedfevghPvMaxcuAbrNuEK4grGehPvMapUvkkU1kITvhtfWliv4rrXDfTsT1XhFwX9axo(4aNOOWygyJDGnYIKLwq0jLhj(AG7Gqli6KYJeFnW9jPjMki0cIoP8iXxdCFADtRKjm6ecCLYedfevghPvMaxcuAbrNuEK4grGehPvMapURc4e78QEnbUlSfjlWvktmuquzCKwzcCjqPfeDs5rIBebsCKwzc84UkGtST61e4UW0cIoP8iXxdCheAbrNuEK4RbUpjnXubzePXaR2OWzEKfjlWvktmuquzCKwzcCjqPfeDs5rIBebsCKwzc84UkGtST69cvmmhPRRs1fUoijKWGT4(93sauetePMQf)41R)2vb8A20k5BsJbwTrHZ8BRbKOIMrTzsefa8UdBJ4BJ47o4coHXUqrvAcj5TvQntvOqHlgByhqh74Gpo4Jx)4Gpojhh8Xj41akXfIaHatwiWGsayYcbmq)kHbvO7Vxr0bTDe1PhNK38YagYuvPi5Xb)UWDKPQsrh7TCjmhP83YLWCmSNJAP8TDr6HH3RfUTBcCHTiztyctycrQxq8eUs3snzvUyYMSjBYMSVLa09gNoOhhuseIm57VLaOiMWub8csFhf3v0k1whNbrrs5YXbUszIHcIkhNqQOHooMkGxqQC8ESwOiDc4lgxVFCco2BjakIjGBe9LJx)TaKUUkv)4eV(BljDDvQ(Xbd6BRbKOIInSdOJDCWhN8XRFCYhNKJt(4eCCW3FBSd8B99AG71SPvY3KgdSAJcN53fPIfcB3a4wFl19kJbd3Fl4OMxIWEBLIInSdOJDCWVgGraXjojcrazYeqGq1bdwOVsyqb941FnGckWitmKaMeY1jgsioOGs8Vsyqj54K8AaMqaJyQtmadmzcaL4KiKqG)kHbLK7VbGcvivkzeP2gPjWpobV3bQ4XExK6ea1TsDFR367IuN4Aef9zVT3uP8yVLgE1wFZid1YWyIc)(7IuNS3uP8ZEJO26XEpu2U5y3V)Ui1jja1(ZE70TY96h79qz7MJD)(BNUvUFS3dLTBo297VlsDkIUyS36T(wcqTp2BPHxT1Jx)(7IuN40b9wFdicaNUvUFS3dLTBo297VxP2UjWp27HY2nh7(93fPozhgSs9p7nkS1J9EOSDZXUF)TOzD1yx2ULh79qz7MJD)(93YHqWxyefQqQu(zVrALjWXSeG(MwquRu0BPtTzsERVnCJpzhgaSvxfpo43UkGxq6BbDzzmHes4eY4MA4je4lgxFhZqy44KJtYB3mOOAcC)ndIruUxq6BjakIPyd7a6yhh8XjF86hN8Xj54KV)w0iNpfUTBIOVP79B7I0ddyQa(71c32nbUWtGmbcals2eMWeMqZAcbKqkxmHasyo)rNqYjKYftiGeMZF0GtOVO8eIuVG4jeqcvUyYMWeMWeIuVG4jCEoptwLlMSjBYMSjBYMSj7BQTBIOyitvLIiuqupoHbt(TRc4TjM6Xbl0BhzQQu0XElAqQTBc831sAJ9Ui1PbQBVOIcUW1B9DrQtuRYaYkHcI6N9Ui1j7fkQsLF2BnIYD57yjLqZyaBQwsN3jMf0mJJnfd8AIQwmMfmZJ5TDr6HHPfJO(2Ui9WWB5syos5VLlH5iLhBiSfdZXFxK6KObP2UjW)S3fPoH0bQHB4v36B7I0ddVxlCB3e4cBrYMWeMWeIuVG4j0rfnzvUyYMSjBYMSjBYMSjBYMSjBYMSjBYMSVTlspmm5wcqFlDQxKVTxOOkvofaOiQhqVhlr)2EHIQu5BWVrkD3a09gNoOVjIYftyynH(IMqgrbxT9a6DrQtYLWCKY)S3sa6EJth0JxhmjcbA93AeL7VJne2IH54jKruOcPszcfUbO7TfVlCnIY930IhEBxKEyymfe1nb(71c32nbUWwKSjmHjmH7GnDNq7fkQsLGmbI0PiheXckHrNW5v9gGU3XUqrvQu46GjriqRBrYMWeMWeAwtO9cfvPYegD0GtOVO8eIuVG4juSGar6uKlielOeQCXKnHjmHj0SMq7fkQsLjCSeDcRNqFr5jePEbXtizqadIJkAcvUyYMWeMWeIuVG4jemiGbXrfnzvUyYMSjBYMSjBYMSjBYMSjBYMSjBYMSjBY(Ui1jjaDVXPd6N9Ui1Pc34F2B7f1MP3faIuxF7wcqFBxKEy4(BxfWV13wP2mvHcfUySHDaDSJd(4GpE9Jd(4KCCWhNGxdOexicecmzHadkbGjleWa9ReguHU)2oSdOJD)TBgu0T(2ndkQMnTs(MqKItASejysjeZZpgrrf78fPXaR2OWz(THhrrs9ZElbqrmnBRCrcfe13ZQLz8X82k1MjruaqSHDaDSJd(4KpE9Jt(4KCCYhNGJd((BjakIjmvaVG03rXDfTsT1XzquKuUCCGRuMyOGOYXjKkAOJJPc4fKkhVhRfksNa(IX13Zze9LJtCYVP2UjWLh7THB8J9wmmzxKEy4ZEBxKEy4nWvktmuquzCKwzcCjqPfeDs5rIBebsCKwzc84wPO4RveBRoMkGxqQWJII7kALARJp(SI7bUC8XborrHXmWg7aBKfjlWvktmuquzCKwzcCjqPfeDs5rIBebsCKwzc84wPO4wRi2wDmvaVGuHhff3v0k1whF8zf3dC54JdCIIcJzGn2b2ilswAbrNuEK4RbUdcTGOtkps81a3NKMyQGqli6KYJeFnW9P1nTsMWOtiWvktmuquzCKwzcCjqPfeDs5rIBebsCKwzc84UkGtSZR61e4UWwKSaxPmXqbrLXrALjWLaLwq0jLhjUreiXrALjWJ7QaoX2QxtG7ctli6KYJeFnWDqOfeDs5rIVg4(K0etfKrKgdSAJcN5rwKSaxPmXqbrLXrALjWLaLwq0jLhjUreiXrALjWJ7QaoX2Q3luXWCKUUkvx46GKqcd2I73Fx4oYuvPOJ9wUeMJu(B5syos5XgcBXWC83IgKA7Ma)DTK2yVTlspm8ETWTDtGlSfjBctyctis9cINWv6wQjRYft2Knzt2K9TeGU340b941btIqGw)(BRbKOI(S3wdirfXSyL(E22eZysrIjm2fQNWzfRw36BJ4BIcoJjm2fkQsty93wdirf1MyQhV(BJDGpjnI67AzUgS3sauetePMQf)4Gf6TRc41SPvY3KgdSAJcN53wdirfnJAZKika4Dh2gX3wdirfffxQ(Xb)MkkACtGt3toYuvPi5Xoo4J92rMQkfDS3ULa03sN6f57cxJOC)nT4H3YIvnIYDgr6QrG3nJmxBTVlsDY46aoDq)S3AeL7VJY1HeY8yTyaaqfFxK6uHB8p7TSyvJOCVlRRgbEpfldn2uJXGGXEBCDaNoOhhmbeuN4G(UWn(BaBQLk6TDr6HHPfJO(2ndQ493fUJmvvk6yVnUoGth0JdMacQtCqVF)(7veDqBhrD6Xj5nVmGHmvvksE86VnCJpjDkYvXJd(T1asurKUUkv)4e8w0ibSPwIPc41QR(7ekOSVFCqp2BxfWRztRKVjngy1gfoZVTK01vP6hhmOVTgqIkk2WoGo2XbFCYhV(XjFCsoo5JtWXbF)TXoWV13RbUxZMwjFtAmWQnkCMFBLIInSdOJDCWVgGraXjojcrazYeqGq1bdwOVsyqb941FnGckWitmKaMeY1jgsioOGs8Vsyqj54K8AaMqaJyQtmadmzcaL4KiKqG)kHbLK7VbGcvivkzeP2gPjWpobV3bQ4XExK6ea1TsDFR367IuN4Aef9zVT3uP8yVLgE1wFZid1YWyIc)(7IuNS3uP8ZEJO26XEpu2U5y3V)Ui1jja1(ZE70TY96h79qz7MJD)(BNUvUFS3dLTBo297VlsDkIUyS36T(wcqTp2BPHxT1Jx)(BrZ6QXUSDlp27HY2nh7(93aIaWPBL7h79qz7MJD)(7vQTBc8J9EOSDZXUF)DrQt2HbRu)ZEJcB9yVhkB3CS73FxK6eNoO3693YHqWxyefQqQu(zVrALjWXSeG(MwquRu0BPtTzsERVnCJpzhgaSvxfpo43UkGxq6BbDzzmHes4eY4MA4je4lgxF7QaEnbU)EmbKrYiJVTgqIkI01vP6hNG3Uzqr1e4(BgeJOCVG03wdirfffxQ(Xb)w0iNpfUTBIOVP79B7I0ddyQa(71c32nbUWtGmbcals2eMWeMqZAcbKqkxmHasyo)rNqYjKYftiGeMZF0GtOVO8eIuVG4jeqcvUyYMWeMWeIuVG4jCEoptwLlMSjBYMSjBYMSj7BQTBIOyitvLIiuqupoHbt(TRc4TjM6XbtWBhzQQu0XExK60a1Txurbx46T(Ui1j7fkQsLF27IuNq6a1Wn8QB9TDr6HH3RfUTBcCHTiztyctycrQxq8e6OIMSkxmzt2Knzt2Knzt2Knzt2Knzt2Knzt23sa6EJth0JdkjcrM8B7f1MP3faIuxFBVqrvQ8n43AeL7Y3XskHMXa2uTKoVtmlOzghBkg41evTymlyMhZB7fkQsLtbakI6b07Xs0VDlbOVTlspm82Ui9WWKBja9T0PEr(Ui1j5syos5F2B7I0ddJPGOUjWFVw42UjWf2IKnHjmHjChSP7eAVqrvQeKjqKof5Giwqjm6eoVQ3a09o2fkQsLcxhmjcbADls2eMWeMqZAcTxOOkvMqbzGtOVO8eIuVG4juSGar6uKlielOeQCXKnHjmHj0SMq7fkQsLjCSeDcbNqFr5jePEbXtizqadIJkAcvUyYMWeMWeIuVG4jemiGbXrfnztyctyctwLlMSjBYMSjBYMSjBYMSjBYMSjBYMSjBYMSjBYMSjBYMSjBYMSjBYMSVlCnIY930IhEJu6UbO7noDqF3lgDlMWWAc9fnHc2uT4AOiFxK6KeGU340b9ZExK6uHB8p7TCjmhP83YLWCmSNJAP8TDr6HHPfJO(2Ui9WW93saueteYGqb0T(wcGIyctfWli9DuCxrRuBDCgefjLlhh4kLjgkiQCCcPIg64yQaEbPYX7XAHI0jGVyC9n12nbU8yVnCJFS3IHj7I0ddF2B7I0ddVbUszIHcIkJJ0ktGlbkTGOtkpsCJiqIJ0ktGh3kffFTIyB1Xub8csfEuuCxrRuBD8XNvCpWLJpoWjkkmMb2yhyJSizbUszIHcIkJJ0ktGlbkTGOtkpsCJiqIJ0ktGh3kff3AfX2QJPc4fKk8OO4UIwP264JpR4EGlhFCGtuuymdSXoWgzrYsli6KYJeFnWDqOfeDs5rIVg4(K0etfeAbrNuEK4RbUpTUPvYegDcbUszIHcIkJJ0ktGlbkTGOtkpsCJiqIJ0ktGh3vbCIDEvVMa3f2IKf4kLjgkiQmosRmbUeO0cIoP8iXnIajosRmbECxfWj2w9AcCxyAbrNuEK4RbUdcTGOtkps81a3NKMyQGmI0yGvBu4mpYIKf4kLjgkiQmosRmbUeO0cIoP8iXnIajosRmbECxfWj2w9EHkgMJ01vP6cxhKesyWwC)(7f1uT4VgGrabeuN4eakjeuh06Gke5VsyciM3Uzqr1SPvY3eIuCsJLibtkHyE(XikQyNVingy1gfoZVJzimCCYXj5TeafX0STYfjuquFpRwMXhZBEzadzQQuK841FpNr0xooyci)2k1MPkuOWfJnSdOJDCWhh8XRFCWhNKJd(4e8AaL4crGqGjleyqjamzHagOFLWGk093wdirf9zVTgqIkIzXk99STjMXKIetySlupHZkwTU13IgjGn1smvaVwD1FNqbL9BRbKOIAtm1Jx)nvu04MaNUNCKPQsrYJDCWh7TJmvvk6yVDlbOVLo1lY3YIvnIY9USUAe49uSm0ytngdcg7DHRruU)Mw8W7IuNm8iksQF27IuNmUoGth0p7DHB83a2ulv0B7I0ddtULa03sN6f5BJRd40b94GjGG6eh03AeL7VJY1HeY8yTyaaqfFBVO2m9UaqK667IuNkCJ)zVLfRAeL7mI0vJaVBgzU2AFBxKEyyAXiQVDZGkE)DH7itvLIo2BJRd40b94GjGG6eh073V)2yh4tsJO(UwMRb7TeafXeWnI(YXR)wcGIyIi1uT4hVE93wdirfnJAZKika4Dh2gX3gX3efCgtySluuLMqWVTsTzsefaeByhqh74Gpo5Jx)4KpojhN8Xj44GV)Efrh02ruNECsE7MbfDRVlChzQQu0XElxcZrk)TCjmhd75OwkFBxKEy49AHB7Maxyls2eMWeMqK6fepHR0TutwLlMSjBYMSj7BjaDVXPd6XbLeHit((BdpIIK6N92Wn(K0Pixfpo43sauetXg2b0Xoo4Jt(41po5JtYXjF)(Xf6yVLaOiMaUr0xoE93cq66Qu9JtyIx)TLKUUkv)4Gb9TvQntvOqHlgByhqh74Gpo4Jx)4Gpojhh8Xj41akXfIaHatwiWGsayYcbmq)kHbvO7VxdCVMnTs(M0yGvBu4m)wQ7vgdgU)UwMRb7Tvkk2WoGo2Xb)AagbeN4KiebKjtabcvhmyH(kHbf0Jx)1akOaJmXqcysixNyiH4GckX)kHbLKJtYRbycbmIPoXamWKjauItIqcb(RegusU)gakuHuPKrKABKMa)4e8EhOIh7DrQtau3k19TERVlsDIRru0N92EtLYJ9wA4vB9nJmuldJjk87VlsDYEtLYp7nkS1J9EOSDZXUF)DrQtsaQ9N92PBL71p27HY2nh7(93oDRC)yVhkB3CS73FxK6ueDXyV1B9TeGAFS3sdVARhV(93fPoXPd6T(ELA7Ma)yVhkB3CS73FdicaNUvUFS3dLTBo297VlsDYomyL6F2Be1wp27HY2nh7(93IM1vJDz7wES3dLTBo2973FlhcbFHruOcPs5N9gPvMahZsa6BAbrTsrVLo1Mj5T(2Wn(KDyaWwDv84GF7QaEbPVf0LLXesiHtiJBQHNqGVyC9DmdHHJtoojVDZGIQjW93migr5EbPVLaOiMInSdOJDCWhN8XRFCYhNKJt((BrJC(u42UjI(MU3VTlspmGPc4VxlCB3e4cpbYeiaSiztyctycnRjeqcPCXeciH58hDcjNqkxmHasyo)rdoH(IYtis9cINqaju5IjBctyctis9cINW558mzvUyYMSjBYMSjBYMSVP2UjIIHmvvkIqbr94egm53IgjGn1smvaVwD1FNqbL9BhzQQu0XExK60a1Txurbx46T(Ui1j7fkQsLF2B3sa6B7I0ddVTlspm8ETWTDtGlSfjBctyctis9cINqhv0Kv5IjBYMSjBYMSjBYMSjBYMSjBYMSjBY(wcq3BC6GECqjriYKFlxcZrk)TCjmhd75OwkFBVqrvQ8n43AeL7Y3XskHMXa2uTKoVtmlOzghBkg41evTymlyMhZB7fkQsLtbakI6b07Xs0VlsDcPdud3WRU132fPhgMClbOVLo1lY3fPojxcZrk)ZEJu6UbO7noDqF3lgDlMWWAc9fnHc2uT4AOiFx4AeL7VPfp82Ui9WWykiQBc83RfUTBcCHTiztyctyc3bB6oH2luuLkbzcePtroiIfucJoHZR6naDVJDHIQuPW1btIqGw3IKnHjmHj0SMq7fkQsLjuqg4e6lkpHi1liEcfliqKof5ccXckHkxmztyctycnRj0EHIQuzchlrNqWj0xuEcrQxq8esgeWG4OIMqLlMSjmHjmHi1liEcbdcyqCurtwLlMSjBYMSjBYMSjBYMSjBYMSjBYMSjBYMSVlsDscq3BC6G(zVlsDQWn(N92ErTz6DbGi1132fPhgMwmI6B7I0dd3F7Qa(T(wcGIyIqgekGU13sauetyQaEbPVJI7kALARJZGOiPC54axPmXqbrLJtiv0qhhtfWlivoEpwluKob8fJRVTgqIkI01vP6hNG3wdirfffxQ(Xb)2ndk6wF7MbfvZMwjFtisXjnwIemPeI55hJOOID(I0yGvBu4m)wcGIyA2w5IekiQVNvlZ4J5THhrrs9ZEBnGev0mQntIOaG3DyBeFpNr0xooXj)2AajQOyd7a6yhh8XjF86hN8Xj54Kpobhh893wdirf9zVTgqIkIzXk99STjMXKIetySlupHZkwTU13uB3e4YJ92Wn(XElgMSlspm8zVTlspm8g4kLjgkiQmosRmbUeO0cIoP8iXnIajosRmbECRuu81kITvhtfWliv4rrXDfTsT1XhFwX9axo(4aNOOWygyJDGnYIKf4kLjgkiQmosRmbUeO0cIoP8iXnIajosRmbECRuuCRveBRoMkGxqQWJII7kALARJp(SI7bUC8XborrHXmWg7aBKfjlTGOtkps81a3bHwq0jLhj(AG7tstmvqOfeDs5rIVg4(06Mwjty0je4kLjgkiQmosRmbUeO0cIoP8iXnIajosRmbECxfWj25v9AcCxylswGRuMyOGOY4iTYe4sGsli6KYJe3icK4iTYe4XDvaNyB1RjWDHPfeDs5rIVg4oi0cIoP8iXxdCFsAIPcYisJbwTrHZ8ilswGRuMyOGOY4iTYe4sGsli6KYJe3icK4iTYe4XDvaNyB17fQyyosxxLQlCDqsiHbBX97VTgqIkQnXupE93urrJBcC6EYrMQkfjp2XbFS3oYuvPOJ9246aoDqpoyciOoXb9DHRruU)Mw8W7c34VbSPwQO3AeL7VJY1HeY8yTyaaqfFllw1ik3zePRgbE3mYCT1(wwSQruU3L1vJaVNILHgBQXyqWyVDlbOVLo1lY3fPov4g)ZExK6KX1bC6G(z3Fx4oYuvPOJ9246aoDqpoyciOoXb9(97Vn2b(K0iQVRL5AWElbqrmrKAQw8JdwO3UkGxZMwjFtAmWQnkCMFBeFtuWzmHXUqrvAcbhh03wP2mjIcaInSdOJDCWhN8XRFCYhNKJt(4eCCW3FVIOdA7iQtpojVn2b(T(UWDKPQsrh7TCjmhP83YLWCmSNJAP8TDr6HH3RfUTBcCHTiztyctycrQxq8eUs3snzvUyYMSjBYMSVLa09gNoOhhuseIm57V5LbmKPQsrYJx)THB8jPtrUkECWVDvaVnXupoyHUFCIFS3RbU3MyQhhmWElaPRRs1poHbl0Bk3EjGQbrh0Aq0b9nWvktmuqujXsuWzmHXUqrvActi44G(UWDKPQsrh7TeGU340b941btIqGw)(BKwzcCmlbOVDva)TOroFkCB3erFt373uB3erXqMQkfrOGOECcdM8Bd34t2HbaB1vXJd(nvu04MaNUNCKPQsrYJDCWh7TJmvvk6yVnUoGth0JdMacQtCqFllw1ik37Y6QrG3tXYqJn1ymiyS3fPozCDaNoOF2BnIY93r56qczESwmaaOIVLfRAeL7mI0vJaVBgzU2AFxK6uHB8p7TBja9T0PEr(UW1ik3FtlE4DHB83a2ulv093fUJmvvk6yVnUoGth0JdMacQtCqVF)(BJ47ydHTyyoEcd8eUeCajeCcjCcx09qcR)2rMQkfDS3fPozVqrvQ8ZElbO7noDqpEDWKieO1FBVqrvQCkaqrupGEli7TBja9T0PEr(2Ui9WW0IruF7Mbv8DHRruU)Mw8W7IuNKlH5iL)zVlsDQWn(N9wJOC)DSHWwmmhpHmIcvivktOWnaDVT4nsP7gGU340b9nruUycdRj0x0eYik4QThqVlsDscq3BC6G(zVTxOOkv(g8B5syos5VLlH5iLhBiSfdZXV)MYTxcOAq0bfZsa67M5AzowSAemdeI53Ri6G2oI60JtW75mI(YRHaHiGasiHaIriGvNG6GjUqFLWeq83aqHkKkLmIuBJ0e4hh871a3FpMaYizKX38YagYuvPi5XR)Ernvl(RbuYcjeOGswiqjausirisQ)vctaWEVduXJ92EtLYJ9wA4vB9nJmuldJjk87VlsDcG6wPUV1B9DrQtCnII(S3oDRC)yVhkB3CS73FxK6ueDXyV1B9TeGAFS3sdVARhV(93IM1vJDz7wES3dLTBo297VrHTES3dLTBo297VlsDYEtLYp7nIARh79qz7MJD)(Bara40TY9J9EOSDZXUF)9k12nb(XEpu2U5y3V)Ui1jja1(ZExK6KDyWk1)S3oDRCV(XEpu2U5y3VF)TLKUUkv)4cD)4a7yVxdCVnXupoyG9wasxxLQFCqf6nLBVeq1GOdAni6G(g4kLjgkiQKyjk4mMWyxOOknHjS(BljDDvQ(Xf6nsRmboMLa03UkG)w0iNpfUTBIOVP79BQTBIOyitvLIiuqupoHbt(THB8j7WaGT6Q4Xb)2rMQkfDS3fPozVqrvQ8ZEx4AeL7VPfp8wcq3BC6GE86GjriqR)2EHIQu5uaGIOEa9ESe9B3sa6BPt9I8DrQtYLWCKY)S3fPov4g)ZERruU)o2qylgMJNqgrHkKkLju4gGU3w8gP0Ddq3BC6G(MikxmHH1e6lAczefC12dO3fPojbO7noDq)S32luuLkFd(TCjmhP83YLWCKYJne2IH543FBeFhBiSfdZXtyGNWLGdiH1tiHt4IUhsy93urrJBcC6EYrMQkfjp2XbFS3oYuvPOJ92TeG(w6uViFx4AeL7VPfp8UWn(BaBQLk6Tgr5(7OCDiHmpwlgaauX3YIvnIYDgr6QrG3nJmxBTVLfRAeL7DzD1iW7PyzOXMAmgem2BJRd40b94GjGG6eh03fPov4g)ZExK6KX1bC6G(z3Fx4oYuvPOJ9246aoDqpoyciOoXb9(97VPC7LaQgeDqXSeG(UzUwMJfRgbZaHy(9kIoOTJOo94e8EoJOV8AiqiciGesiGyecy1jOoyIl0xjmbe)nauOcPsjJi12inb(Xb)EnW93JjGmsgz8nVmGHmvvksE86Vxut1I)AaLSqcbkOKfcucaLeseIK6FLWeaS37av8yVT3uP8yVLgE1wFZid1YWyIc)(BNUvUx)yVhkB3CS73FxK6exJOOp7Tt3k3p27HY2nh7(93fPofrxm2B9wFlbO2h7T0WR26XRF)DrQt2BQu(zVrHTES3dLTBo297VfnRRg7Y2T8yVhkB3CS73FJO26XEpu2U5y3V)gqeaoDRC)yVhkB3CS73FVsTDtGFS3dLTBo297VlsDscqT)S3fPozhgSs9p7DrQtau3k19TER3Fx4oYuvPOJ9wcq3BC6GE86GjriqRF)(XjMJ92vb8A20k5BsJbwTrHZ8BljDDvQ(Xjm46VTgqIkk2WoGo2XbFCYhV(XjFCsoo5JtWXbF)n12nbU8yVnCJFS3IHj7I0ddF2B7I0ddVtwAbrNuEK4OqHlMWOt4AHB7Max4iueijKBrYMWeMWeAwtOWClsOVO8KnHjmHjmHjmHjmcfLWOt4a1xIVUdbKWchHIs4ylHGjNcsClsOGiHKJdQfjCEKqHbtofK4wKSjmHjmH6wQjBctyctyctyctyekkHrNWbQVeFDhciHJqrccYXb1IKnHjmHju5IjBctyctis9cINWiuuYQCXKLOagJjm6eMSZ3jBctyctiqhnRSUkhbKegDct2eMWeMW57KnHjmHjmHjmHjeOJInWLQnI6MaFeqsy0jKCCsajztyctyctyctycb6igIO8kdVkHahr9LrajHrNqYXjbuqs2eMWeMWeMWeMqGok2fQHltyynHyliQL8rajHrNqYXbfKKnHjmHjmHjmHjeOJIA7ks5IgqsySOWC8eYQZP7egwtyB2ru0qiWhbKegDcjhhmOGKWeMWeMSjmHjmHcsGKSjmHjmHaDKJOgVwnIUhbKegDcjoijBctyctiqh5iQXzEDvTDteLRs5iGKWOti54KfcKKnHjmHjeOJaOiBL70kLiLU9LrajHrNqYGKSjmHjmHaDKDbHuUtKs3(YiGKWOtizqs2eMWeMqGoAj4aeSUPUjIsKs3JascJoHKbjztyctycb6OLGdGbRYWU4QG1n1nruIu6Eeqsy0jKmijBctyctiqhTeCamyvg2fxjsP7rajHrNqYGKSjmHjmHaDexNJbaYWU4krkD7lJascJoHKbjztyctycb6iUoNG1n1nruIu62xgbKegDcjdsYMWeMWec0rdgP0WRisPBFzeqsy0jKmijBctyctiqhnyKsdVIiLU9fgvKTYDALocijm6esgKKvq6(93RbUxZMwjFtAmWQnkCMFBLIInSdOJD86VgqRtmaJeqRdk56ehyady1j(xjmOeCCsEnGwNyagjGwhuY1joWagWQt8Vsyqj4(7DGkES3oDRCV(XEpu2U5y3V)Ui1jUgrr36BNUvUFS3dLTBo297VLau7J9wA4vB941V)Ui1j7nvk)S3IM1vJDz7wES3dLTBo297VruB9yVhkB3CS73FJcB9yVhkB3CS73FVsTDtGFS3dLTBo297VT3uP8yVLgE1wFZid1YWyIc)(Bara40TY9J9EOSDZXUF)DrQtsaQ9ND)TCie8fgrHkKkLF2BKwzcCmlbOVPfe1kf9w6uBMK36BjakIPXOsQxqux)S3gUXNSdda2QRIhh8BxfWli9TGUSmMqcjCczCtn8ec8fJRVDvaVMa3FpMaYizKX3sauetF2B3mOOAcC)9yciJKrgFBnGevuuCP6hh8BRbKOIMrTzsefa8UdBJ4BrJC(u42UjI(MYT8TDr6Hbmva)9AHB7Maxyls2eMWeMqK6fepHcpsqfN8ktjCEKqbvCYRmnYcIDnGgOUWXGBCIu62xeEeGn1sfnYIeopsiyYKjdscJb34eP0TVqiQacpcWMAPIgzrcNhjemzYKTqqUKv5Ijmzt23uB3erXqMQkfrOGOECYVfnsaBQLyQaET6Q)wqz)2rMQkfDS32fPhgIYoWFNSRfUTBcCHTiztyctycjkGXiqhbqr2k3PvkrkD7lJascJoH0cIoP8iXrHcxuyHJb34eP0TVi8iaBQLkAKfjCEKWyWnorkD7leIkGWJaSPwQOrwyrchBjemzYGKqYwKSjmHjmHefWyeOJSliKYDIu62xgbKegDcJb34eP0TVi8iaBQLkAKfjBctyctirbmgb6ObJuA4veP0TVWOISvUtR0rajHrNqAbrNuEK4OqHlkSWchdUXjsPBFHqubeEeGn1sfnYIes4egdUXjsPBFr4ra2ulv0ilSiHZJegdUXjsPBFHqubeEeGn1sfnYcls4ylHGjtgKew3IKnHjmHjKOagJaD0Grkn8kIu62xgbKegDcJb34eP0TVqiQacpcWMAPIgzrcjCcJb34eP0TVi8iaBQLkAKfjBctyct4oyt3jCrPBdVIqLTBaSnkkHrNqWXt2eMWeMWDWMUtyefjPjm6eoVQhByWk1fm1n8QzbErkCScEsqZSGBgWIQ2OWeKFAmmqigMxMNgdP4mBrYMWeMWeUO0THxrOY2na2gfLWOt4Is3gEfHkB3ayBuucfeju4fLUn8kcv2UbW2OOeo2sOWefWyeOJCe141Qr09iGKWXwcjkGXiqh5iQXzEDvTDteLRs5iGyHfjuqKqHxu62WRiuz7gaBJIs4ylHchrrsAcNhjemzYwyrYMWeMWeUgqjKjqIKqdpHaOgKuyIcymc0rZkRRYraXIekgs2eMWeMWeMWeMqZAcJb34ZkRRcpcWMAPIgbsczYIeMZF0jKB2j0xuEYMWeMWeMWeMWeMWeMWeUO0THxrOY2na2gfLWOt4Is3gEfHkB3ayBuucfeju4fLUn8kcv2UbW2OOeo2syels2eMWeMWeMWeMqLlMSjmHjmHkxmztyctyc3bB6oHoDRCpHrNqPUvBxyWKbjHZR6y0TY9O4RHzwg1yeUEDciHSfwKSjmHjmHM1e60TY9egD0j0rfnH(IYt2eMWeMWeMWeMWfLUn8kcv2UbW2OOegDcxu62WRiuz7gaBJIsOGiHcVO0THxrOY2na2gfLWXwcjhNels2eMWeMqLlMSjmHjmHefWyeOJwcoabRBQBIOeP09iGKWOti54KKWXwcxu62WRiuz7gaBJIsiHjmrH5s4qXEjHcQeUeCajCrPBzcfnsKwrrIgEvchmsPHxLWfLU9LKnHjmHjKOagJaD0sWbWGvzyxCvW6M6MikrkDpcijm6esuaJrGoAj4aeSUPUjIsKs3JaschBjKOagJaD0Grkn8kIu62xyur2k3Pv6iGKqctyIcZLWHI9scfujCbqcxcoGeoNzVt4Is3jePvuKOHxLWbJuA4vjCrPBFjztyctycjkGXiqhTeCamyvg2fxjsP7rajHrNqAbrNuEK4OqHlkmrbmgb6OLGdqW6M6MikrkDpcijCSLqIcymc0rdgP0WRisPBFzeqajHKTiztyctycjkGXiqhX15yaGmSlUsKs3(YiGKWOtiTGOtkpsCuOWffMOagJaDKDbHuUtKs3(YiGKqbrcjkGXiqhTeCamyvg2fxjsP7rabKes2IKnHjmHjKOagJaDexNtW6M6MikrkD7lJascJoH0cIoP8iXrHcxuyIcymc0rauKTYDALsKs3(YiGKqbrcjkGXiqhTeCamyvg2fxfSUPUjIsKs3JacijKSfjRYfFBxKEyyAXiQVDZGk(2TeG(2Ui9WWB7I0ddTtTzs((TDr6HHXuqu3e4Vt21c32nbUWwKSjmHjmHi1liEcjkGXiqhbqr2k3PvkrkD7lJacijemzYGKqWjRYfFBxKEyaNoOVt21c32nbUWwKSjmHjmHi1liEcjkGXiqhbqr2k3PvkrkD7lJascJhpHJs4OegpEcjkGXiqhX15eSUPUjIsKs3(YiGKW4Xt4OekigLW4XtiTGOtkpsCuOWffMOagJaD0sWbWGvzyxCvW6M6MikrkDpciGKqYwKSkx8Tgr5U8DmWJcBIiMzOwmIsymWJcBIHyiygEBxKEy49AHB7Maxyls2eMWeMqK6fepHoQOjRYft2Knzt232lQntV1ik3FBxKEyyYTeG(w6uViV)wcGIyctfWli9DuCxrRuBDCgefjLlhh4kLjgkiQCCcPIg64yQaEbPYX7XAHI0jGVyC9T1asurKUUkv)4e82vb82et94Gf6THB8jPtrUkECWVDZGIQztRKVjngy1gfoZV5LbmKPQsrYJx)TvQntIOaGyd7a6yhh8XjF86hN8Xj54Kpobhh893g7a)wFBLAZufku4IXg2b0XoobhN893wdirfXSyL(E22eZysrIjm2fQNWzfRw36BQOOXnboDp5itvLIKh74Gp2BhzQQu0XE7wcqFlDQxKVlsDIUNJAP0rf9ZEx4AeL7VPfp8wJOC)DSbUOXnbU8DrQtfUX)S3YIvnIYDgr6QrG3nJmxBTVLfRAeL7DzD1iW7PyzOXMAmgem27c34VbSPwQO7VlChzQQu0XUF)(BRbKOIAtm1Jx)TOrcytTetfWfSPAXFlO4VLaOiMInSdOJDCWhN8XRFCYhNKJt(4eCCY3FlbqrmrKAQw8Jtc43gX3eXi43UzqrTjM6Xbl0BjakIjGBe9LJx)9kIoOTJOo94e8EoJOVC86eqW7f1uT4hNeYVTd7a6y3VFCWKp2BjakIjGBe9LJx)TLKUUkv)4egC93wdirffByhqh74Gpo5Jx)4KpojhN8Xj44GV)2yh43671a3RztRKVjngy1gfoZVTsrXg2b0Xoo4Jt(41po47V3bQ4XE70TY96h79qz7MJD)(7IuN4AefDRVD6w5(XEpu2U5y3V)2EtLYJ9wA4vB9nJmuldJjk87VLau7J9wA4vB941V)Ui1j7nvk)S3OWwp27HY2nh7(93IM1vJDz7wES3dLTBo297VxP2UjWp27HY2nh7(93iQTES3dLTBo297VbebGt3k3p27HY2nh7(93fPojbO2F293YHqWxyefQqQu(zVrALjWXSeG(MwquRu0BPtTzsERVnCJpzhgaSvxfpo43UkGxq6BbDzzmHes4eY4MA4je4lgxF7QaEnbU)gNHcIkNWuLplSfFlbqrmHPc4fK(okUROvQToodIIKYLJdCLYedfevooHurdDCmvaVGu549yTqr6eWxmU(wcGIy6ZE7MbfvtG7VXzOGOYjmv5ZcBX3wdirfffxQ(Xb)2Ui9WaMkG)ETWTDtGlSfjBctyctis9cINqHhjOItELPeopsOGko5vMgzbXUgqdux4yWnorkD7lcpcWMAPIgzrcNhjemzYKbjHXGBCIu62xievaHhbytTurJSiHZJecMmzYwiixYQCXeMSj7BQTBIOyitvLIiuqupo53oYuvPOJ92TeG(2Ui9WWB7I0ddtULa03sN6f5B7I0ddVxlCB3e4cBrYMWeMWeIuVG4j0rfnzvU4B7I0ddJPGOUjWFNSRfUTBcCHTiztyctycrQxq8esuaJrGoIRZjyDtDteLiLU9LrabKecMmzqsi4Kv5IVTlspmGth03V1ik3LVJbEuyteXmd1Ir0B7I0ddrzh4Vt2K9T9IAZ0BnIY932fPhgMwmI6B3mOI3F7Qa(T(2vb82et94Gf6TeafXuSHDaDSJd(4KpE9Jt(4KCCY3FB4gFs6uKRIhh87f1uT4hNeYVDZGIQztRKVjngy1gfoZVTgqIkI01vP6hNG3uB3e4YJ92Wn(XElgMSlspm8zVTlspm8ozPfeDs5rIJcfUycJoHRfUTBcCHJqrGKqUfjBctyctOznHcZTiH(IYt2eMWeMWeMWeMWiuucJoHduFj(6oeqclCekkHJTecMCkiXTiHcIesooOwKW5rcfgm5uqIBrYMWeMWeQBPMSjmHjmHjmHjmHrOOegDchO(s81DiGeocfjiihhuls2eMWeMqLlMSjmHjmHi1liEcJqrjRYftwIcymMWOtyYoFNSjmHjmHaD0SY6QCeqsy0jmztyctycNVt2eMWeMWeMWeMqGok2axQ2iQBc8rajHrNqYXjbKKnHjmHjmHjmHjeOJyiIYRm8QecCe1xgbKegDcjhNeqbjztyctyctyctycb6OyxOgUmHH1eITGOwYhbKegDcjhhuqs2eMWeMWeMWeMqGokQTRiLlAajHXIcZXtiRoNUtyynHTzhrrdHaFeqsy0jKCCWGcsctyctyYMWeMWekibsYMWeMWec0roIA8A1i6Eeqsy0jK4GKSjmHjmHaDKJOgN51v12nruUkLJascJoHKJtwiqs2eMWeMqGocGISvUtRuIu62xgbKegDcjdsYMWeMWec0r2fes5orkD7lJascJoHKbjztyctycb6OLGdqW6M6MikrkDpcijm6esgKKnHjmHjeOJwcoagSkd7IRcw3u3erjsP7rajHrNqYGKSjmHjmHaD0sWbWGvzyxCLiLUhbKegDcjdsYMWeMWec0rCDogaid7IReP0TVmcijm6esgKKnHjmHjeOJ46Ccw3u3erjsPBFzeqsy0jKmijBctyctiqhnyKsdVIiLU9LrajHrNqYGKSjmHjmHaD0Grkn8kIu62xyur2k3Pv6iGKWOtizqswbP73FpNr0xoEDci4T1asurF2BRbKOIywSsFpBBIzmPiXeg7c1t4SIvRB9T1asurTjM6Xb)2i(MigR)2ndkQnXupoyHElbqrmrKAQw8JxV(BRbKOIMrTzsefa8UdBJ4BrJeWMAjMkGlyt1I)wqXF7QaEnBAL8nPXaR2OWz(nvu04MaNUNCKPQsrYJD)TOroFkCB3erFt5w(Efrh02ruNECsE7MbfDRVTsTzsefaeByhqh74Gpo5Jx)4KpojhN8Xj44GV)MxgWqMQkfjpo47hhm4J9EnW92et941j)w0ibSPwIPc4Vfu2j7B7I0ddyQa(71c32nbUWwKSjmHjmHi1liEchO(s81DiGeMOagJt0HqH7jCEKqWKtbjsSiHXJNWrmnkzvU4BljDDvQ(Xbd6BrJC(u42UjI(MYT8n12nrumKPQsrekiQhN8B7I0ddyQaEmaisD9Tgr5(Bd34t2HbaB1vXJd(n12nbU8yVLof5h7TyyYUi9WWN92Ui9WWBIcymorhcfUNWOti5KLOagJtdubsy0jKCYsuaJXjp40DcJoHKV)2Wn(XElgMSlspm8zVTlspm8MOagJtEWP7egDcjNSefWyCIoekCpHrNqYjlrbmgNgOcKWOti573Fl19kJbd3FhlZ4yml43oYuvPOJ92TeG(2Ui9WWBnIYD57yjLqZyaBQwsN3jMf0mJJnfd8AIQwmMfmZJ59AzVL2u(N92Ui9WWKBja9Tgr5(B7I0ddVxlCB3e4cpbscNajHYIvMJOChKeobscNajHYqbzRGKWjqs4eijCcKeobscNajHtGKWjqsOeGU340bfKeobscPdHc3bjHtGKWjls2eMWeMqZAcJb34rjJb34cldfKTMWakHJgbschbytTurJSiHuUycLa09gNoOjm6Ot4iIOCXegwtOVOjKruWvBpGgLqkxmHYIvMJOCpHrhDch1mYCT1oreZmu7Oe6lkpztyctyctyctycjkGX4eDiu4EcJoH0HqH7jBctyctOYftwLl(2Ui9WW0IruF7Mbv8(BJ4BIcymMWfLUFpNr0xEncrCqbLacigIHSqetDWeq86FLWGc(9AG7VhtazKmY4BEzadzQQuK841FtffnUjWP7jhzQQuK8yhh8XE7itvLIo2B3sa6BPt9I8DrQtlkD7lF27fLU9LPaafr9a69y5Tgr5(BIu62xEllw1ik3zePRgbE3mYCT1(ErPBF5n53fUXFdytTurVLfRAeL7DzD1iW7PyzOXMAmgem27IuNkCJ)zVlCnIY930IhU)UWDKPQsrh7(97Vxut1I)AavO6edOKjGeHeImOGjPoW(kHjG4V3bQ4XE70TY96h79qz7MJD)(7IuN4AefDRVD6w5(XEpu2U5y3V)2EtLYJ9wA4vB9nJmuldJjk87VLau7J9wA4vB941V)ELA7Ma)yVhkB3CS73FxK6K9MkLF2Be1wp27HY2nh7(93aIaWPBL7h79qz7MJD)(7IuNKau7p7nkS1J9EOSDZXUF)DrQt2HbRu)ZElAwxn2LTB5XEpu2U5y3VF)nsRmboMLa03UkGF)(7ihhmb1bF)ha - + + + dufqZbGifYLiqYNuufnkcQtrjSkfkLxrGWSaIBHGAxcv)srvyyiQJbults1ZqetdbUgqABeKVHq14auohcfRdHsVJarL5rGOCpHu7tHsCquWcvuEOqPjQqXfrrTrjfFurvAKiKtkKSsu6LkQkzMskDteKDcv)erAOOqlLa1tLAQq5Qcf2kbs9vavJvHs1zjqu1BbKMRcv3fqSxv)vrgmOdJ0IPKEmLAYe6YK2Ss6ZsYOvIttXQvuv8AuKzRu3wb7gv)wWWb44kuslhYZjA6uDDj2Uq8DfvgpbCEkrRxOO3ROQuZxrv19jqK9l6d(yVPh7(B576XjioyI)E4T4BXJ9gPvMahZsa67kuOa4n12nrumKPQsrekiQhN8BvaauUOk(zVTK01vP6hNWGjG8BQOOXnboDp5itvLIKh7(BPUxzmy4(7zKIHrkHQL5AWEBeFZik4jeaDttO1YElxmEcJkHspS13uU9savdIoOywcqF3mxlZXIvJGzGqm)MxgWqMQkfjpo437av8yVD6w5E9J9EOSDZXUF)Tt3k3p27HY2nh7(932BQuES3sdVARVzKHAzymrHF)DrQt2BQu(2rf9nIARh79qz7MJD)(BuyRh79qz7MJD)(7vQTBc8J9EOSDZXUF)nGiaC6w5(XEpu2U5y3V)w0SUASlB3YJ9EOSDZXUF)(932h74Gp2BxfWRztRKVjngy1gfoZVfG01vP6hNWaR(BljDDvQ(Xjmj1FBLAZufku4IXg2b0Xoo4Jd(41po4JtYXbFCcEnGsCHiqiWKfcmOeaMSqad0Vsyqf6(71a3RztRKVjngy1gfoZVL6ELXGH7VXiLX3wPOyd7a6yhV(XjhN41bdQqatO6eNaqjtma74K8AagjKiezItGqKjGeGrCItaX)kHbf07VbGcvivkzeP2gPjWpobV3bQ4XExK6ea1TsDFR367IuN4AefDRVT3uP8yVLgE1wFZid1YWyIc)(7IuNS3uP8ZEJO26XEpu2U5y3V)Ui1jja1(ZE70TY96h79qz7MJD)(BNUvUFS3dLTBo297VlsDkIUyS36T(wcqTp2BPHxT1Jx)(BrZ6QXUSDlp27HY2nh7(93aIaWPBL7h79qz7MJD)(7vQTBc8J9EOSDZXUF)DrQt2HbRu)ZEJcB9yVhkB3CS73FxK6eNoO3693YHqWxyefQqQu(zVrALjWXSeG(MwquRu0BPtTzsERVnCJpzhgaSvxfpo43UkGxq6BbDzzmHes4eY4MA4je4lgxF7QaEnbU)EmbKrYiJVJzimCCYXj5TeafX0N92ndkQMa3FZGyeL7fK(wcGIyk2WoGo2XbFCYhV(XjFCsoo57VfnY5tHB7Mi6Bk3Y32fPhgWub83RfUTBcCHNazceawKSjmHjmHM1eciHuUycbKWC(JoHKtiLlMqajmN)ObNqFr5jePEbXtiGeQCXKnHjmHjePEbXt48CEMSkxmzt2Knzt2Knzt23uB3erXqMQkfrOGOECcdM8BxfWBtm1JdM4VTd7a6y3F7itvLIo27IuNgOU9Ikk4cxV13fPozVqrvQ8ZExK6eshOgUHxDRVTlspm8ETWTDtGlSfjBctyctis9cINqhv0Kv5IjBYMSjBYMSjBYMSjBYMSjBYMSjBY(2Ui9WW0IruFBxKEy4T9IAZ07carQRVTxOOkv(g8BnIYD57yjLqZyaBQwsN3jMf0mJJnfd8AIQwmMfmZJ5T9cfvPYPaafr9a69yj63ULa032fPhgEx4AeL7VPfp8Ui1j5syos5F2B7I0ddJPGOUjWFVw42UjWf2IKnHjmHjChSP7eAVqrvQeKjqKof5Giwqjm6eoVQ3a09o2fkQsLcdkjcrMSfjBctyctOznH2luuLktOGmWj0xuEcrQxq8ekwqGiDkYfeIfucvUyYMWeMWeAwtO9cfvPYeowIoHGtOVO8eIuVG4jKmiGbXrfnHkxmztyctycrQxq8ecgeWG4OIMSkxmzt2Knzt2Knzt2Knzt2Knzt2Knzt2KnzFBxKEyyYTeG(w6uViFJu6UbO7noDqF3lgDlMWWAc9fnHc2uT4AOiFxK6KeGU340b9ZExK6uHB8p7TCjmhP83YLWCmSNJAP8TeGU340b94GsIqKjF)TeafXeHmiuaDRVTgqIkI01vP6hNG3fUJmvvk6yVLlH5iL)wUeMJH9CulLVTlspm8ETWTDtGlSfjBctyctis9cINWv6wQjRYft2Knzt2K9TeGU340b94GsIqKjF)THB8jPtrUkECWVxut1I)AagbeqqDqfcyGjoOGRtajG)kHjGyE7MbfvZMwjFtisXjnwIemPeI55hJOOID(I0yGvBu4m)MxgWqMQkfjpo43sauetZ2kxKqbr99SAzgFmVTsTzsefaeByhqh74Gpo5Jx)4KpojhN8Xj44GV)2yh436BrJeWMAjMkGxRU6VtOGY(9CgrF54aJ8BRbKOIInSdOJDCWhN8XRFCYhNKJt(4eCCW3FBnGevuuCP6hh8BRbKOI(S3wdirfXSyL(E22eZysrIjm2fQNWzfRw36BQOOXnboDp5itvLIKh7(BRbKOIAtm1Jx)TXoWNKgr9DTmxd2BjakIjIut1IF861FBnGev0mQntIOaG3DyBeF7MbfDRVLaOiMaUr0xoE93gX3DWfCcJDHIQ0ec(9kIoOTJOo94K8MA7MaxES3gUXp2BXWKDr6HHp7TDr6HH3axPmXqbrLXrALjWLaLwq0jLhjUreiXrALjWJBLIIVwrST6yQaEbPcpkkUROvQTo(4ZkUh4YXhh4effgZaBSdSrwKSaxPmXqbrLXrALjWLaLwq0jLhjUreiXrALjWJBLIIBTIyB1Xub8csfEuuCxrRuBD8XNvCpWLJpoWjkkmMb2yhyJSizPfeDs5rIVg4oi0cIoP8iXxdCFsAIPccTGOtkps81a3Nw30kzcJoHaxPmXqbrLXrALjWLaLwq0jLhjUreiXrALjWJ7QaoXoVQxtG7cBrYcCLYedfevghPvMaxcuAbrNuEK4grGehPvMapURc4eBREnbUlmTGOtkps81a3bHwq0jLhj(AG7tstmvqgrAmWQnkCMhzrYcCLYedfevghPvMaxcuAbrNuEK4grGehPvMapURc4eBREVqfdZr66QuDHRdscjmylUF)THhrrs9ZElbqrmHPc4fK(okUROvQToodIIKYLJdCLYedfevooHurdDCmvaVGu549yTqr6eWxmUE)41p2BjakIjGBe9LJx)TLKUUkv)4eMK6VTgqIkk2WoGo2XbFCYhV(XjFCsoo5JtWXbF)TXoWV13RbUxZMwjFtAmWQnkCMFl19kJbd3FJrkJVTsrXg2b0Xoo4xdWecyetDIbyGjtaOeNeHec8xjmOKC86VgHeImO1joXqaOKqaXfI41j4RegusoojVgcaLyatmKbfuY1jaSqedWa)vcdkb3FdafQqQuYisTnstGFCcEVduXJ9Ui1jaQBL6(wV13fPoX1ik6wFBVPs5XEln8QT(MrgQLHXef(93fPozVPs5N9gf26XEpu2U5y3V)Ui1jja1(ZE70TY96h79qz7MJD)(BNUvUFS3dLTBo297VlsDkIUyS36T(wcqTp2BPHxT1Jx)(7IuN40b9wFdicaNUvUFS3dLTBo297VxP2UjWp27HY2nh7(93fPozhgSs9p7nIARh79qz7MJD)(BrZ6QXUSDlp27HY2nh7(97VLdHGVWikuHuP8ZEJ0ktGJzja9nTGOwPO3sNAZK8wFB4gFYomayRUkECWVDvaVG03c6YYycjKWjKXn1WtiWxmU(2vb8AcC)9yciJKrgFlbqrmHPc4fK(okUROvQToodIIKYLJdCLYedfevooHurdDCmvaVGu549yTqr6eWxmU(wcGIy6ZE7MbfvtG7VzqmIY9csFBnGevuuCP6hh8BrJC(u42UjI(MYT8TDr6Hbmva)9AHB7Max4jqMabGfjBctyctOznHasiLlMqajmN)Oti5es5IjeqcZ5pAWj0xuEcrQxq8eciHkxmztyctycrQxq8eopNNjRYft2Knzt2Knzt2K9n12nrumKPQsrekiQhNWGj)w0ibSPwIPc41QR(7ekOSF7itvLIo27IuNgOU9Ikk4cxV13fPozVqrvQ8ZEBVqrvQ8n43AeL7Y3XskHMXa2uTKoVtmlOzghBkg41evTymlyMhZB7I0ddtlgr9TDr6HH3YLWCKYFlxcZXWEoQLY3fPoH0bQHB4v36B7I0ddVxlCB3e4cBrYMWeMWeIuVG4j0rfnzvUyYMSjBYMSjBYMSjBYMSjBYMSjBYMSVTxOOkvofaOiQhqVhlr)2TeG(2Ui9WW7cxJOC)nT4H3fPojxcZrk)ZEBxKEyymfe1nb(71c32nbUWwKSjmHjmH7GnDNq7fkQsLGmbI0PiheXckHrNW5v9gGU3XUqrvQuyqjriYKTiztyctycnRj0EHIQuzcJoAWj0xuEcrQxq8ekwqGiDkYfeIfucvUyYMWeMWeAwtO9cfvPYeowIoH1tOVO8eIuVG4jKmiGbXrfnHkxmztyctycrQxq8ecgeWG4OIMSkxmzt2Knzt2Knzt2Knzt2Knzt2Knzt2KnzFBxKEyyYTeG(w6uViFJu6UbO7noDqF3lgDlMWWAc9fnHc2uT4AOiFxK6KeGU340b9ZExK6uHB8p7T9IAZ07carQRVLa09gNoOhhuseIm57VP2UjWLh7THB8J9wmmzxKEy4ZEBxKEy4nWvktmuquzCKwzcCjqPfeDs5rIBebsCKwzc84wPO4RveBRoMkGxqQWJII7kALARJp(SI7bUC8XborrHXmWg7aBKfjlWvktmuquzCKwzcCjqPfeDs5rIBebsCKwzc84wPO4wRi2wDmvaVGuHhff3v0k1whF8zf3dC54JdCIIcJzGn2b2ilswAbrNuEK4RbUdcTGOtkps81a3NKMyQGqli6KYJeFnW9P1nTsMWOtiWvktmuquzCKwzcCjqPfeDs5rIBebsCKwzc84UkGtSZR61e4UWwKSaxPmXqbrLXrALjWLaLwq0jLhjUreiXrALjWJ7QaoX2QxtG7ctli6KYJeFnWDqOfeDs5rIVg4(K0etfKrKgdSAJcN5rwKSaxPmXqbrLXrALjWLaLwq0jLhjUreiXrALjWJ7QaoX2Q3luXWCKUUkvx46GKqcd2I73FB4gFs6uKRIhh8B3mOOB9TBguunBAL8nHifN0yjsWKsiMNFmIIk25lsJbwTrHZ8BjakIPzBLlsOGO(EwTmJpM3wP2mjIcaInSdOJDCWhN8XRFCYhNKJt(4eCCW3FB4ruKu)S3Xmegoo54K8EoJOVCCGr(T1asurF2BRbKOIywSsFpBBIzmPiXeg7c1t4SIvRB9T1asurKUUkv)4e82AajQO2et941FBeF3bxWjm2fkQsty93g7aFsAe131YCnyVDvaVnXupoyI)wcGIyIi1uT4hVE93UkGxZMwjFtAmWQnkCMFBnGev0mQntIOaG3DyBeFtffnUjWP7jhzQQuK8y3FBLAZufku4IXg2b0Xoo4Jd(41po4JtYXbFCcEnGsCHiqiWKfcmOeaMSqad0Vsyqf6(7veDqBhrD6Xj5nVmGHmvvksECWVlChzQQu0XElxcZrk)TCjmhd75OwkFBxKEy49AHB7Maxyls2eMWeMqK6fepHR0TutwLlMSjBYMSj7BjaDVXPd6XbLeHit((BjakIPyd7a6yhh8XjF86hN8Xj54KVF)4KCS3saueta3i6lhV(BbiDDvQ(Xbw93ws66Qu9JtysQ)2AajQOyd7a6yhh8XjF86hN8Xj54Kpobhh893g7a)wFVg4EnBAL8nPXaR2OWz(Tu3RmgmC)ngPm(2kffByhqh74GFnatiGrm1jgGbMmbGsCsesiWFLWGsYXR)AesiYGwN4edbGscbexiIxNGVsyqj54K8AiauIbmXqguqjxNaWcrmad8xjmOeC)nauOcPsjJi12inb(Xj49oqfp27IuNaOUvQ7B9wFxK6exJOOB9T9MkLh7T0WR26BgzOwggtu43FxK6K9MkLF2Be1wp27HY2nh7(93fPojbO2F2BNUvUx)yVhkB3CS73F70TY9J9EOSDZXUF)DrQtr0fJ9wV13saQ9XEln8QTE863FlAwxn2LTB5XEpu2U5y3V)gqeaoDRC)yVhkB3CS73FVsTDtGFS3dLTBo297VlsDYomyL6F2BuyRh79qz7MJD)(7IuN40b9wV)woec(cJOqfsLYp7nsRmboMLa030cIALIElDQntYB9THB8j7WaGT6Q4Xb)2vb8csFlOllJjKqcNqg3udpHaFX46BxfWRjW93JjGmsgz8DmdHHJtoojVDZGIQjW93migr5EbPVTgqIkkkUu9Jd(TOroFkCB3erFt5w(2Ui9WaMkG)ETWTDtGl8eitGaWIKnHjmHj0SMqajKYftiGeMZF0jKCcPCXeciH58hn4e6lkpHi1liEcbKqLlMSjmHjmHi1liEcNNZZKv5IjBYMSjBYMSjBY(MA7MikgYuvPicfe1JtyWKFlAKa2ulXub8A1v)Dcfu2VDKPQsrh7DrQtdu3ErffCHR367IuNSxOOkv(zVlsDcPdud3WRU132fPhgEVw42UjWf2IKnHjmHjePEbXtOJkAYQCXKnzt2Knzt2Knzt2Knzt2Knzt2KnzFlbO7noDqpoOKiezYVTxuBMExaisD9TBja9TDr6HH3AeL7Y3XskHMXa2uTKoVtmlOzghBkg41evTymlyMhZB7fkQsLtbakI6b07Xs0VTxOOkv(g87cxJOC)nT4H3fPojxcZrk)ZEBxKEyymfe1nb(71c32nbUWwKSjmHjmH7GnDNq7fkQsLGmbI0PiheXckHrNW5v9gGU3XUqrvQuyqjriYKTiztyctycnRj0EHIQuzcJo6ewpH(IYtis9cINqXccePtrUGqSGsOYft2eMWeMqZAcTxOOkvMWOJoHKKqFr5jePEbXtizqadIJkAcvUyYMWeMWeIuVG4jemiGbXrfnzvUyYMSjBYMSjBYMSjBYMSjBYMSjBYMSjBY(2Ui9WWKBja9T0PEr(gP0Ddq3BC6G(Uxm6wmHH1e6lAcfSPAX1qr(Ui1jjaDVXPd6N9Ui1Pc34F2B5syos5VLlH5yyph1s5B7I0ddtlgr9TDr6HH7VDvaVnXupoyI)2Wn(K0Pixfpo43Uzqr36B3mOOA20k5BcrkoPXsKGjLqmp)yefvSZxKgdSAJcN53sauetZ2kxKqbr99SAzgFmVTsTzsefaeByhqh74Gpo5Jx)4KpojhN8Xj44GV)2WJOiP(zVTgqIkI01vP6hNG3Zze9LJdmYVTgqIk6ZEBnGeveZIv67zBtmJjfjMWyxOEcNvSADRVLaOiMInSdOJDCWhN8XRFCYhNKJt((BRbKOIAtm1Jx)nvu04MaNUNCKPQsrYJD)TXoWNKgr9DTmxd2BQTBcC5XEB4g)yVfdt2fPhg(S32fPhgEdCLYedfevghPvMaxcuAbrNuEK4grGehPvMapUvkk(AfX2QJPc4fKk8OO4UIwP264JpR4EGlhFCGtuuymdSXoWgzrYcCLYedfevghPvMaxcuAbrNuEK4grGehPvMapUvkkU1kITvhtfWliv4rrXDfTsT1XhFwX9axo(4aNOOWygyJDGnYIKLwq0jLhj(AG7Gqli6KYJeFnW9jPjMki0cIoP8iXxdCFADtRKjm6ecCLYedfevghPvMaxcuAbrNuEK4grGehPvMapURc4e78QEnbUlSfjlWvktmuquzCKwzcCjqPfeDs5rIBebsCKwzc84UkGtST61e4UW0cIoP8iXxdCheAbrNuEK4RbUpjnXubzePXaR2OWzEKfjlWvktmuquzCKwzcCjqPfeDs5rIBebsCKwzc84UkGtST69cvmmhPRRs1fUoijKWGT4(93sauetePMQf)41R)2vb8A20k5BsJbwTrHZ8BRbKOIMrTzsefa8UdBJ4BJ47o4coHXUqrvAcj5TvQntvOqHlgByhqh74Gpo4Jx)4Gpojhh8Xj41akXfIaHatwiWGsayYcbmq)kHbvO7Vxr0bTDe1PhNK38YagYuvPi5Xb)UWDKPQsrh7TCjmhP83YLWCmSNJAP8TDr6HH3RfUTBcCHTiztyctycrQxq8eUs3snzvUyYMSjBYMSVLa09gNoOhhuseIm57VLaOiMWub8csFhf3v0k1whNbrrs5YXbUszIHcIkhNqQOHooMkGxqQC8ESwOiDc4lgxVFCco2BjakIjGBe9LJx)TaKUUkv)4eV(BljDDvQ(Xbd6BRbKOIInSdOJDCWhN8XRFCYhNKJt(4eCCW3FBSd8B99AG71SPvY3KgdSAJcN53fPIfcB3a4wFl19kJbd3Fl4OMxIWEBLIInSdOJDCWVgGraXjojcrazYeqGq1bdwOVsyqb941FnGckWitmKaMeY1jgsioOGs8Vsyqj54K8AaMqaJyQtmadmzcaL4KiKqG)kHbLK7VbGcvivkzeP2gPjWpobV3bQ4XExK6ea1TsDFR367IuN4Aef9zVT3uP8yVLgE1wFZid1YWyIc)(7IuNS3uP8ZEJO26XEpu2U5y3V)Ui1jja1(ZE70TY96h79qz7MJD)(BNUvUFS3dLTBo297VlsDkIUyS36T(wcqTp2BPHxT1Jx)(7IuN40b9wFdicaNUvUFS3dLTBo297VxP2UjWp27HY2nh7(93fPozhgSs9p7nkS1J9EOSDZXUF)TOzD1yx2ULh79qz7MJD)(93YHqWxyefQqQu(zVrALjWXSeG(MwquRu0BPtTzsERVnCJpzhgaSvxfpo43UkGxq6BbDzzmHes4eY4MA4je4lgxFhZqy44KJtYB3mOOAcC)ndIruUxq6BjakIPyd7a6yhh8XjF86hN8Xj54KV)w0iNpfUTBIOVP79B7I0ddyQa(71c32nbUWtGmbcals2eMWeMqZAcbKqkxmHasyo)rNqYjKYftiGeMZF0GtOVO8eIuVG4jeqcvUyYMWeMWeIuVG4jCEoptwLlMSjBYMSjBYMSj7BQTBIOyitvLIiuqupoHbt(TRc4TjM6Xbl0BhzQQu0XElAqQTBc831sAJ9Ui1PbQBVOIcUW1B9DrQtuRYaYkHcI6N9Ui1j7fkQsLF2BnIYD57yjLqZyaBQwsN3jMf0mJJnfd8AIQwmMfmZJ5TDr6HHPfJO(2Ui9WWB5syos5VLlH5iLhBiSfdZXFxK6KObP2UjW)S3fPoH0bQHB4v36B7I0ddVxlCB3e4cBrYMWeMWeIuVG4j0rfnzvUyYMSjBYMSjBYMSjBYMSjBYMSjBYMSVTlspmm5wcqFlDQxKVTxOOkvofaOiQhqVhlr)2EHIQu5BWVrkD3a09gNoOVjIYftyynH(IMqgrbxT9a6DrQtYLWCKY)S3sa6EJth0JxhmjcbA93AeL7VJne2IH54jKruOcPszcfUbO7TfVlCnIY930IhEBxKEyymfe1nb(71c32nbUWwKSjmHjmH7GnDNq7fkQsLGmbI0PiheXckHrNW5v9gGU3XUqrvQu46GjriqRBrYMWeMWeAwtO9cfvPYegD0GtOVO8eIuVG4juSGar6uKlielOeQCXKnHjmHj0SMq7fkQsLjCSeDcRNqFr5jePEbXtizqadIJkAcvUyYMWeMWeIuVG4jemiGbXrfnzvUyYMSjBYMSjBYMSjBYMSjBYMSjBYMSjBY(Ui1jjaDVXPd6N9Ui1Pc34F2B7f1MP3faIuxF7wcqFBxKEy4(BxfWV13wP2mvHcfUySHDaDSJd(4GpE9Jd(4KCCWhNGxdOexicecmzHadkbGjleWa9ReguHU)2oSdOJD)TBgu0T(2ndkQMnTs(MqKItASejysjeZZpgrrf78fPXaR2OWz(THhrrs9ZElbqrmnBRCrcfe13ZQLz8X82k1MjruaqSHDaDSJd(4KpE9Jt(4KCCYhNGJd((BjakIjmvaVG03rXDfTsT1XzquKuUCCGRuMyOGOYXjKkAOJJPc4fKkhVhRfksNa(IX13Zze9LJtCYVP2UjWLh7THB8J9wmmzxKEy4ZEBxKEy4nWvktmuquzCKwzcCjqPfeDs5rIBebsCKwzc84wPO4RveBRoMkGxqQWJII7kALARJp(SI7bUC8XborrHXmWg7aBKfjlWvktmuquzCKwzcCjqPfeDs5rIBebsCKwzc84wPO4wRi2wDmvaVGuHhff3v0k1whF8zf3dC54JdCIIcJzGn2b2ilswAbrNuEK4RbUdcTGOtkps81a3NKMyQGqli6KYJeFnW9P1nTsMWOtiWvktmuquzCKwzcCjqPfeDs5rIBebsCKwzc84UkGtSZR61e4UWwKSaxPmXqbrLXrALjWLaLwq0jLhjUreiXrALjWJ7QaoX2QxtG7ctli6KYJeFnWDqOfeDs5rIVg4(K0etfKrKgdSAJcN5rwKSaxPmXqbrLXrALjWLaLwq0jLhjUreiXrALjWJ7QaoX2Q3luXWCKUUkvx46GKqcd2I73Fx4oYuvPOJ9wUeMJu(B5syos5XgcBXWC83IgKA7Ma)DTK2yVTlspm8ETWTDtGlSfjBctyctis9cINWv6wQjRYft2Knzt2K9TeGU340b941btIqGw)(BRbKOI(S3wdirfXSyL(E22eZysrIjm2fQNWzfRw36BJ4BIcoJjm2fkQsty93wdirf1MyQhV(BJDGpjnI67AzUgS3sauetePMQf)4Gf6TRc41SPvY3KgdSAJcN53wdirfnJAZKika4Dh2gX3wdirfffxQ(Xb)MkkACtGt3toYuvPi5Xoo4J92rMQkfDS3ULa03sN6f57cxJOC)nT4H3YIvnIYDgr6QrG3nJmxBTVlsDY46aoDq)S3AeL7VJY1HeY8yTyaaqfFxK6uHB8p7TSyvJOCVlRRgbEpfldn2uJXGGXEBCDaNoOhhmbeuN4G(UWn(BaBQLk6TDr6HHPfJO(2ndQ493fUJmvvk6yVnUoGth0JdMacQtCqVF)(7veDqBhrD6Xj5nVmGHmvvksE86VnCJpjDkYvXJd(T1asurKUUkv)4e8w0ibSPwIPc41QR(7ekOSVFCqp2BxfWRztRKVjngy1gfoZVTK01vP6hhmOVTgqIkk2WoGo2XbFCYhV(XjFCsoo5JtWXbF)TXoWV13RbUxZMwjFtAmWQnkCMFBLIInSdOJDCWVgGraXjojcrazYeqGq1bdwOVsyqb941FnGckWitmKaMeY1jgsioOGs8Vsyqj54K8AaMqaJyQtmadmzcaL4KiKqG)kHbLK7VbGcvivkzeP2gPjWpobV3bQ4XExK6ea1TsDFR367IuN4Aef9zVT3uP8yVLgE1wFZid1YWyIc)(7IuNS3uP8ZEJO26XEpu2U5y3V)Ui1jja1(ZE70TY96h79qz7MJD)(BNUvUFS3dLTBo297VlsDkIUyS36T(wcqTp2BPHxT1Jx)(BrZ6QXUSDlp27HY2nh7(93aIaWPBL7h79qz7MJD)(7vQTBc8J9EOSDZXUF)DrQt2HbRu)ZEJcB9yVhkB3CS73FxK6eNoO3693YHqWxyefQqQu(zVrALjWXSeG(MwquRu0BPtTzsERVnCJpzhgaSvxfpo43UkGxq6BbDzzmHes4eY4MA4je4lgxF7QaEnbU)EmbKrYiJVTgqIkI01vP6hNG3Uzqr1e4(BgeJOCVG03wdirfffxQ(Xb)w0iNpfUTBIOVP79B7I0ddyQa(71c32nbUWtGmbcals2eMWeMqZAcbKqkxmHasyo)rNqYjKYftiGeMZF0GtOVO8eIuVG4jeqcvUyYMWeMWeIuVG4jCEoptwLlMSjBYMSjBYMSj7BQTBIOyitvLIiuqupoHbt(TRc4TjM6XbtWBhzQQu0XExK60a1Txurbx46T(Ui1j7fkQsLF27IuNq6a1Wn8QB9TDr6HH3RfUTBcCHTiztyctycrQxq8e6OIMSkxmzt2Knzt2Knzt2Knzt2Knzt2Knzt23sa6EJth0JdkjcrM8B7f1MP3faIuxFBVqrvQ8n43AeL7Y3XskHMXa2uTKoVtmlOzghBkg41evTymlyMhZB7fkQsLtbakI6b07Xs0VDlbOVTlspm82Ui9WWKBja9T0PEr(Ui1j5syos5F2B7I0ddJPGOUjWFVw42UjWf2IKnHjmHjChSP7eAVqrvQeKjqKof5Giwqjm6eoVQ3a09o2fkQsLcxhmjcbADls2eMWeMqZAcTxOOkvMqbzGtOVO8eIuVG4juSGar6uKlielOeQCXKnHjmHj0SMq7fkQsLjCSeDcbNqFr5jePEbXtizqadIJkAcvUyYMWeMWeIuVG4jemiGbXrfnztyctyctwLlMSjBYMSjBYMSjBYMSjBYMSjBYMSjBYMSjBYMSjBYMSjBYMSjBYMSVlCnIY930IhEJu6UbO7noDqF3lgDlMWWAc9fnHc2uT4AOiFxK6KeGU340b9ZExK6uHB8p7TCjmhP83YLWCmSNJAP8TDr6HHPfJO(2Ui9WW93saueteYGqb0T(wcGIyctfWli9DuCxrRuBDCgefjLlhh4kLjgkiQCCcPIg64yQaEbPYX7XAHI0jGVyC9n12nbU8yVnCJFS3IHj7I0ddF2B7I0ddVbUszIHcIkJJ0ktGlbkTGOtkpsCJiqIJ0ktGh3kffFTIyB1Xub8csfEuuCxrRuBD8XNvCpWLJpoWjkkmMb2yhyJSizbUszIHcIkJJ0ktGlbkTGOtkpsCJiqIJ0ktGh3kff3AfX2QJPc4fKk8OO4UIwP264JpR4EGlhFCGtuuymdSXoWgzrYsli6KYJeFnWDqOfeDs5rIVg4(K0etfeAbrNuEK4RbUpTUPvYegDcbUszIHcIkJJ0ktGlbkTGOtkpsCJiqIJ0ktGh3vbCIDEvVMa3f2IKf4kLjgkiQmosRmbUeO0cIoP8iXnIajosRmbECxfWj2w9AcCxyAbrNuEK4RbUdcTGOtkps81a3NKMyQGmI0yGvBu4mpYIKf4kLjgkiQmosRmbUeO0cIoP8iXnIajosRmbECxfWj2w9EHkgMJ01vP6cxhKesyWwC)(7f1uT4VgGrabeuN4eakjeuh06Gke5VsyciM3Uzqr1SPvY3eIuCsJLibtkHyE(XikQyNVingy1gfoZVJzimCCYXj5TeafX0STYfjuquFpRwMXhZBEzadzQQuK841FpNr0xooyci)2k1MPkuOWfJnSdOJDCWhh8XRFCWhNKJd(4e8AaL4crGqGjleyqjamzHagOFLWGk093wdirf9zVTgqIkIzXk99STjMXKIetySlupHZkwTU13IgjGn1smvaVwD1FNqbL9BRbKOIAtm1Jx)nvu04MaNUNCKPQsrYJDCWh7TJmvvk6yVDlbOVLo1lY3YIvnIY9USUAe49uSm0ytngdcg7DHRruU)Mw8W7IuNm8iksQF27IuNmUoGth0p7DHB83a2ulv0B7I0ddtULa03sN6f5BJRd40b94GjGG6eh03AeL7VJY1HeY8yTyaaqfFBVO2m9UaqK667IuNkCJ)zVLfRAeL7mI0vJaVBgzU2AFBxKEyyAXiQVDZGkE)DH7itvLIo2BJRd40b94GjGG6eh073V)2yh4tsJO(UwMRb7TeafXeWnI(YXR)wcGIyIi1uT4hVE93wdirfnJAZKika4Dh2gX3gX3efCgtySluuLMqWVTsTzsefaeByhqh74Gpo5Jx)4KpojhN8Xj44GV)Efrh02ruNECsE7MbfDRVlChzQQu0XElxcZrk)TCjmhd75OwkFBxKEy49AHB7Maxyls2eMWeMqK6fepHR0TutwLlMSjBYMSj7BjaDVXPd6XbLeHit((BdpIIK6N92Wn(K0Pixfpo43sauetXg2b0Xoo4Jt(41po5JtYXjF)(Xf6yVLaOiMaUr0xoE93cq66Qu9JtyIx)TLKUUkv)4Gb9TvQntvOqHlgByhqh74Gpo4Jx)4Gpojhh8Xj41akXfIaHatwiWGsayYcbmq)kHbvO7VxdCVMnTs(M0yGvBu4m)wQ7vgdgU)UwMRb7Tvkk2WoGo2Xb)AagbeN4KiebKjtabcvhmyH(kHbf0Jx)1akOaJmXqcysixNyiH4GckX)kHbLKJtYRbycbmIPoXamWKjauItIqcb(RegusU)gakuHuPKrKABKMa)4e8EhOIh7DrQtau3k19TERVlsDIRru0N92EtLYJ9wA4vB9nJmuldJjk87VlsDYEtLYp7nkS1J9EOSDZXUF)DrQtsaQ9N92PBL71p27HY2nh7(93oDRC)yVhkB3CS73FxK6ueDXyV1B9TeGAFS3sdVARhV(93fPoXPd6T(ELA7Ma)yVhkB3CS73FdicaNUvUFS3dLTBo297VlsDYomyL6F2Be1wp27HY2nh7(93IM1vJDz7wES3dLTBo2973FlhcbFHruOcPs5N9gPvMahZsa6BAbrTsrVLo1Mj5T(2Wn(KDyaWwDv84GF7QaEbPVf0LLXesiHtiJBQHNqGVyC9DmdHHJtoojVDZGIQjW93migr5EbPVLaOiMInSdOJDCWhN8XRFCYhNKJt((BrJC(u42UjI(MU3VTlspmGPc4VxlCB3e4cpbYeiaSiztyctycnRjeqcPCXeciH58hDcjNqkxmHasyo)rdoH(IYtis9cINqaju5IjBctyctis9cINW558mzvUyYMSjBYMSjBYMSVP2UjIIHmvvkIqbr94egm53IgjGn1smvaVwD1FNqbL9BhzQQu0XExK60a1Txurbx46T(Ui1j7fkQsLF2B3sa6B7I0ddVTlspm8ETWTDtGlSfjBctyctis9cINqhv0Kv5IjBYMSjBYMSjBYMSjBYMSjBYMSjBY(wcq3BC6GECqjriYKFlxcZrk)TCjmhd75OwkFBVqrvQ8n43AeL7Y3XskHMXa2uTKoVtmlOzghBkg41evTymlyMhZB7fkQsLtbakI6b07Xs0VlsDcPdud3WRU132fPhgMClbOVLo1lY3fPojxcZrk)ZEJu6UbO7noDqF3lgDlMWWAc9fnHc2uT4AOiFx4AeL7VPfp82Ui9WWykiQBc83RfUTBcCHTiztyctyc3bB6oH2luuLkbzcePtroiIfucJoHZR6naDVJDHIQuPW1btIqGw3IKnHjmHj0SMq7fkQsLjuqg4e6lkpHi1liEcfliqKof5ccXckHkxmztyctycnRj0EHIQuzchlrNqWj0xuEcrQxq8esgeWG4OIMqLlMSjmHjmHi1liEcbdcyqCurtwLlMSjBYMSjBYMSjBYMSjBYMSjBYMSjBYMSVlsDscq3BC6G(zVlsDQWn(N92ErTz6DbGi1132fPhgMwmI6B7I0dd3F7Qa(T(wcGIyIqgekGU13sauetyQaEbPVJI7kALARJZGOiPC54axPmXqbrLJtiv0qhhtfWlivoEpwluKob8fJRVTgqIkI01vP6hNG3wdirfffxQ(Xb)2ndk6wF7MbfvZMwjFtisXjnwIemPeI55hJOOID(I0yGvBu4m)wcGIyA2w5IekiQVNvlZ4J5THhrrs9ZEBnGev0mQntIOaG3DyBeFpNr0xooXj)2AajQOyd7a6yhh8XjF86hN8Xj54Kpobhh893wdirf9zVTgqIkIzXk99STjMXKIetySlupHZkwTU13uB3e4YJ92Wn(XElgMSlspm8zVTlspm8g4kLjgkiQmosRmbUeO0cIoP8iXnIajosRmbECRuu81kITvhtfWliv4rrXDfTsT1XhFwX9axo(4aNOOWygyJDGnYIKf4kLjgkiQmosRmbUeO0cIoP8iXnIajosRmbECRuuCRveBRoMkGxqQWJII7kALARJp(SI7bUC8XborrHXmWg7aBKfjlTGOtkps81a3bHwq0jLhj(AG7tstmvqOfeDs5rIVg4(06Mwjty0je4kLjgkiQmosRmbUeO0cIoP8iXnIajosRmbECxfWj25v9AcCxylswGRuMyOGOY4iTYe4sGsli6KYJe3icK4iTYe4XDvaNyB1RjWDHPfeDs5rIVg4oi0cIoP8iXxdCFsAIPcYisJbwTrHZ8ilswGRuMyOGOY4iTYe4sGsli6KYJe3icK4iTYe4XDvaNyB17fQyyosxxLQlCDqsiHbBX97VTgqIkQnXupE93urrJBcC6EYrMQkfjp2XbFS3oYuvPOJ9246aoDqpoyciOoXb9DHRruU)Mw8W7c34VbSPwQO3AeL7VJY1HeY8yTyaaqfFllw1ik3zePRgbE3mYCT1(wwSQruU3L1vJaVNILHgBQXyqWyVDlbOVLo1lY3fPov4g)ZExK6KX1bC6G(z3Fx4oYuvPOJ9246aoDqpoyciOoXb9(97Vn2b(K0iQVRL5AWElbqrmrKAQw8JdwO3UkGxZMwjFtAmWQnkCMFBeFtuWzmHXUqrvAcbhh03wP2mjIcaInSdOJDCWhN8XRFCYhNKJt(4eCCW3FVIOdA7iQtpojVn2b(T(UWDKPQsrh7TCjmhP83YLWCmSNJAP8TDr6HH3RfUTBcCHTiztyctycrQxq8eUs3snzvUyYMSjBYMSVLa09gNoOhhuseIm57V5LbmKPQsrYJx)THB8jPtrUkECWVDvaVnXupoyHUFCIFS3RbU3MyQhhmWElaPRRs1poHbl0Bk3EjGQbrh0Aq0b9nWvktmuqujXsuWzmHXUqrvActi44G(UWDKPQsrh7TeGU340b941btIqGw)(BKwzcCmlbOVDva)TOroFkCB3erFt373uB3erXqMQkfrOGOECcdM8Bd34t2HbaB1vXJd(nvu04MaNUNCKPQsrYJDCWh7TJmvvk6yVnUoGth0JdMacQtCqFllw1ik37Y6QrG3tXYqJn1ymiyS3fPozCDaNoOF2BnIY93r56qczESwmaaOIVLfRAeL7mI0vJaVBgzU2AFxK6uHB8p7TBja9T0PEr(UW1ik3FtlE4DHB83a2ulv093fUJmvvk6yVnUoGth0JdMacQtCqVF)(BJ47ydHTyyoEcd8eUeCajeCcjCcx09qcR)2rMQkfDS3fPozVqrvQ8ZElbO7noDqpEDWKieO1FBVqrvQCkaqrupGEli7TBja9T0PEr(2Ui9WW0IruF7Mbv8DHRruU)Mw8W7IuNKlH5iL)zVlsDQWn(N9wJOC)DSHWwmmhpHmIcvivktOWnaDVT4nsP7gGU340b9nruUycdRj0x0eYik4QThqVlsDscq3BC6G(zVTxOOkv(g8B5syos5VLlH5iLhBiSfdZXV)MYTxcOAq0bfZsa67M5AzowSAemdeI53Ri6G2oI60JtW75mI(YRHaHiGasiHaIriGvNG6GjUqFLWeq83aqHkKkLmIuBJ0e4hh871a3FpMaYizKX38YagYuvPi5XR)Ernvl(RbuYcjeOGswiqjausirisQ)vctaWEVduXJ92EtLYJ9wA4vB9nJmuldJjk87VlsDcG6wPUV1B9DrQtCnII(S3oDRC)yVhkB3CS73FxK6ueDXyV1B9TeGAFS3sdVARhV(93IM1vJDz7wES3dLTBo297VrHTES3dLTBo297VlsDYEtLYp7nIARh79qz7MJD)(Bara40TY9J9EOSDZXUF)9k12nb(XEpu2U5y3V)Ui1jja1(ZExK6KDyWk1)S3oDRCV(XEpu2U5y3VF)TLKUUkv)4cD)4a7yVxdCVnXupoyG9wasxxLQFCqf6nLBVeq1GOdAni6G(g4kLjgkiQKyjk4mMWyxOOknHjS(BljDDvQ(Xf6nsRmboMLa03UkG)w0iNpfUTBIOVP79BQTBIOyitvLIiuqupoHbt(THB8j7WaGT6Q4Xb)2rMQkfDS3fPozVqrvQ8ZEx4AeL7VPfp8wcq3BC6GE86GjriqR)2EHIQu5uaGIOEa9ESe9B3sa6BPt9I8DrQtYLWCKY)S3fPov4g)ZERruU)o2qylgMJNqgrHkKkLju4gGU3w8gP0Ddq3BC6G(MikxmHH1e6lAczefC12dO3fPojbO7noDq)S32luuLkFd(TCjmhP83YLWCKYJne2IH543FBeFhBiSfdZXtyGNWLGdiH1tiHt4IUhsy93urrJBcC6EYrMQkfjp2XbFS3oYuvPOJ92TeG(w6uViFx4AeL7VPfp8UWn(BaBQLk6Tgr5(7OCDiHmpwlgaauX3YIvnIYDgr6QrG3nJmxBTVLfRAeL7DzD1iW7PyzOXMAmgem2BJRd40b94GjGG6eh03fPov4g)ZExK6KX1bC6G(z3Fx4oYuvPOJ9246aoDqpoyciOoXb9(97VPC7LaQgeDqXSeG(UzUwMJfRgbZaHy(9kIoOTJOo94e8EoJOV8AiqiciGesiGyecy1jOoyIl0xjmbe)nauOcPsjJi12inb(Xb)EnW93JjGmsgz8nVmGHmvvksE86Vxut1I)AaLSqcbkOKfcucaLeseIK6FLWeaS37av8yVT3uP8yVLgE1wFZid1YWyIc)(BNUvUx)yVhkB3CS73FxK6exJOOp7Tt3k3p27HY2nh7(93fPofrxm2B9wFlbO2h7T0WR26XRF)DrQt2BQu(zVrHTES3dLTBo297VfnRRg7Y2T8yVhkB3CS73FJO26XEpu2U5y3V)gqeaoDRC)yVhkB3CS73FVsTDtGFS3dLTBo297VlsDscqT)S3fPozhgSs9p7DrQtau3k19TER3Fx4oYuvPOJ9wcq3BC6GE86GjriqRF)(XjMJ92vb8A20k5BsJbwTrHZ8BljDDvQ(Xjm46VTgqIkk2WoGo2XbFCYhV(XjFCsoo5JtWXbF)n12nbU8yVnCJFS3IHj7I0ddF2B7I0ddVtwAbrNuEK4OqHlMWOt4AHB7Max4iueijKBrYMWeMWeAwtOWClsOVO8KnHjmHjmHjmHjmcfLWOt4a1xIVUdbKWchHIs4ylHGjNcsClsOGiHKJdQfjCEKqHbtofK4wKSjmHjmH6wQjBctyctyctyctyekkHrNWbQVeFDhciHJqrccYXb1IKnHjmHju5IjBctyctis9cINWiuuYQCXKLOagJjm6eMSZ3jBctyctiqhnRSUkhbKegDct2eMWeMW57KnHjmHjmHjmHjeOJInWLQnI6MaFeqsy0jKCCsajztyctyctyctycb6igIO8kdVkHahr9LrajHrNqYXjbuqs2eMWeMWeMWeMqGok2fQHltyynHyliQL8rajHrNqYXbfKKnHjmHjmHjmHjeOJIA7ks5IgqsySOWC8eYQZP7egwtyB2ru0qiWhbKegDcjhhmOGKWeMWeMSjmHjmHcsGKSjmHjmHaDKJOgVwnIUhbKegDcjoijBctyctiqh5iQXzEDvTDteLRs5iGKWOti54KfcKKnHjmHjeOJaOiBL70kLiLU9LrajHrNqYGKSjmHjmHaDKDbHuUtKs3(YiGKWOtizqs2eMWeMqGoAj4aeSUPUjIsKs3JascJoHKbjztyctycb6OLGdGbRYWU4QG1n1nruIu6Eeqsy0jKmijBctyctiqhTeCamyvg2fxjsP7rajHrNqYGKSjmHjmHaDexNJbaYWU4krkD7lJascJoHKbjztyctycb6iUoNG1n1nruIu62xgbKegDcjdsYMWeMWec0rdgP0WRisPBFzeqsy0jKmijBctyctiqhnyKsdVIiLU9fgvKTYDALocijm6esgKKvq6(93RbUxZMwjFtAmWQnkCMFBLIInSdOJD86VgqRtmaJeqRdk56ehyady1j(xjmOeCCsEnGwNyagjGwhuY1joWagWQt8Vsyqj4(7DGkES3oDRCV(XEpu2U5y3V)Ui1jUgrr36BNUvUFS3dLTBo297VLau7J9wA4vB941V)Ui1j7nvk)S3IM1vJDz7wES3dLTBo297VruB9yVhkB3CS73FJcB9yVhkB3CS73FVsTDtGFS3dLTBo297VT3uP8yVLgE1wFZid1YWyIc)(Bara40TY9J9EOSDZXUF)DrQtsaQ9ND)TCie8fgrHkKkLF2BKwzcCmlbOVPfe1kf9w6uBMK36BjakIPXOsQxqux)S3gUXNSdda2QRIhh8BxfWli9TGUSmMqcjCczCtn8ec8fJRVDvaVMa3FpMaYizKX3sauetF2B3mOOAcC)9yciJKrgFBnGevuuCP6hh8BRbKOIMrTzsefa8UdBJ4BrJC(u42UjI(MYT8TDr6Hbmva)9AHB7Maxyls2eMWeMqK6fepHcpsqfN8ktjCEKqbvCYRmnYcIDnGgOUWXGBCIu62xeEeGn1sfnYIeopsiyYKjdscJb34eP0TVqiQacpcWMAPIgzrcNhjemzYKTqqUKv5Ijmzt23uB3erXqMQkfrOGOECYVfnsaBQLyQaET6Q)wqz)2rMQkfDS32fPhgIYoWFNSRfUTBcCHTiztyctycjkGXiqhbqr2k3PvkrkD7lJascJoH0cIoP8iXrHcxuyHJb34eP0TVi8iaBQLkAKfjCEKWyWnorkD7leIkGWJaSPwQOrwyrchBjemzYGKqYwKSjmHjmHefWyeOJSliKYDIu62xgbKegDcJb34eP0TVi8iaBQLkAKfjBctyctirbmgb6ObJuA4veP0TVWOISvUtR0rajHrNqAbrNuEK4OqHlkSWchdUXjsPBFHqubeEeGn1sfnYIes4egdUXjsPBFr4ra2ulv0ilSiHZJegdUXjsPBFHqubeEeGn1sfnYcls4ylHGjtgKew3IKnHjmHjKOagJaD0Grkn8kIu62xgbKegDcJb34eP0TVqiQacpcWMAPIgzrcjCcJb34eP0TVi8iaBQLkAKfjBctyct4oyt3jCrPBdVIqLTBaSnkkHrNqWXt2eMWeMWDWMUtyefjPjm6eoVQhByWk1fm1n8QzbErkCScEsqZSGBgWIQ2OWeKFAmmqigMxMNgdP4mBrYMWeMWeUO0THxrOY2na2gfLWOt4Is3gEfHkB3ayBuucfeju4fLUn8kcv2UbW2OOeo2sOWefWyeOJCe141Qr09iGKWXwcjkGXiqh5iQXzEDvTDteLRs5iGyHfjuqKqHxu62WRiuz7gaBJIs4ylHchrrsAcNhjemzYwyrYMWeMWeUgqjKjqIKqdpHaOgKuyIcymc0rZkRRYraXIekgs2eMWeMWeMWeMqZAcJb34ZkRRcpcWMAPIgbsczYIeMZF0jKB2j0xuEYMWeMWeMWeMWeMWeMWeUO0THxrOY2na2gfLWOt4Is3gEfHkB3ayBuucfeju4fLUn8kcv2UbW2OOeo2syels2eMWeMWeMWeMqLlMSjmHjmHkxmztyctyc3bB6oHoDRCpHrNqPUvBxyWKbjHZR6y0TY9O4RHzwg1yeUEDciHSfwKSjmHjmHM1e60TY9egD0j0rfnH(IYt2eMWeMWeMWeMWfLUn8kcv2UbW2OOegDcxu62WRiuz7gaBJIsOGiHcVO0THxrOY2na2gfLWXwcjhNels2eMWeMqLlMSjmHjmHefWyeOJwcoabRBQBIOeP09iGKWOti54KKWXwcxu62WRiuz7gaBJIsiHjmrH5s4qXEjHcQeUeCajCrPBzcfnsKwrrIgEvchmsPHxLWfLU9LKnHjmHjKOagJaD0sWbWGvzyxCvW6M6MikrkDpcijm6esuaJrGoAj4aeSUPUjIsKs3JaschBjKOagJaD0Grkn8kIu62xyur2k3Pv6iGKqctyIcZLWHI9scfujCbqcxcoGeoNzVt4Is3jePvuKOHxLWbJuA4vjCrPBFjztyctycjkGXiqhTeCamyvg2fxjsP7rajHrNqAbrNuEK4OqHlkmrbmgb6OLGdqW6M6MikrkDpcijCSLqIcymc0rdgP0WRisPBFzeqajHKTiztyctycjkGXiqhX15yaGmSlUsKs3(YiGKWOtiTGOtkpsCuOWffMOagJaDKDbHuUtKs3(YiGKqbrcjkGXiqhTeCamyvg2fxjsP7rabKes2IKnHjmHjKOagJaDexNtW6M6MikrkD7lJascJoH0cIoP8iXrHcxuyIcymc0rauKTYDALsKs3(YiGKqbrcjkGXiqhTeCamyvg2fxfSUPUjIsKs3JacijKSfjRYfFBxKEyyAXiQVDZGk(2TeG(2Ui9WWB7I0ddTtTzs((TDr6HHXuqu3e4Vt21c32nbUWwKSjmHjmHi1liEcjkGXiqhbqr2k3PvkrkD7lJacijemzYGKqWjRYfFBxKEyaNoOVt21c32nbUWwKSjmHjmHi1liEcjkGXiqhbqr2k3PvkrkD7lJascJhpHJs4OegpEcjkGXiqhX15eSUPUjIsKs3(YiGKW4Xt4OekigLW4XtiTGOtkpsCuOWffMOagJaD0sWbWGvzyxCvW6M6MikrkDpciGKqYwKSkx8Tgr5U8DmWJcBIiMzOwmIsymWJcBIHyiygEBxKEy49AHB7Maxyls2eMWeMqK6fepHoQOjRYft2Knzt232lQntV1ik3FBxKEyyYTeG(w6uViV)wcGIyctfWli9DuCxrRuBDCgefjLlhh4kLjgkiQCCcPIg64yQaEbPYX7XAHI0jGVyC9T1asurKUUkv)4e82vb82et94Gf6THB8jPtrUkECWVDZGIQztRKVjngy1gfoZV5LbmKPQsrYJx)TvQntIOaGyd7a6yhh8XjF86hN8Xj54Kpobhh893g7a)wFBLAZufku4IXg2b0XoobhN893wdirfXSyL(E22eZysrIjm2fQNWzfRw36BQOOXnboDp5itvLIKh74Gp2BhzQQu0XE7wcqFlDQxKVlsDIUNJAP0rf9ZEx4AeL7VPfp8wJOC)DSbUOXnbU8DrQtfUX)S3YIvnIYDgr6QrG3nJmxBTVLfRAeL7DzD1iW7PyzOXMAmgem27c34VbSPwQO7VlChzQQu0XUF)(BRbKOIAtm1Jx)TOrcytTetfWfSPAXFlO4VLaOiMInSdOJDCWhN8XRFCYhNKJt(4eCCY3FlbqrmrKAQw8Jtc43gX3eXi43UzqrTjM6Xbl0BjakIjGBe9LJx)9kIoOTJOo94e8EoJOVC86eqW7f1uT4hNeYVTd7a6y3VFCWKp2BjakIjGBe9LJx)TLKUUkv)4egC93wdirffByhqh74Gpo5Jx)4KpojhN8Xj44GV)2yh43671a3RztRKVjngy1gfoZVTsrXg2b0Xoo4Jt(41po47V3bQ4XE70TY96h79qz7MJD)(7IuN4AefDRVD6w5(XEpu2U5y3V)2EtLYJ9wA4vB9nJmuldJjk87VLau7J9wA4vB941V)Ui1j7nvk)S3OWwp27HY2nh7(93IM1vJDz7wES3dLTBo297VxP2UjWp27HY2nh7(93iQTES3dLTBo297VbebGt3k3p27HY2nh7(93fPojbO2F293YHqWxyefQqQu(zVrALjWXSeG(MwquRu0BPtTzsERVnCJpzhgaSvxfpo43UkGxq6BbDzzmHes4eY4MA4je4lgxF7QaEnbU)gNHcIkNWuLplSfFlbqrmHPc4fK(okUROvQToodIIKYLJdCLYedfevooHurdDCmvaVGu549yTqr6eWxmU(wcGIy6ZE7MbfvtG7VXzOGOYjmv5ZcBX3wdirfffxQ(Xb)2Ui9WaMkG)ETWTDtGlSfjBctyctis9cINqHhjOItELPeopsOGko5vMgzbXUgqdux4yWnorkD7lcpcWMAPIgzrcNhjemzYKbjHXGBCIu62xievaHhbytTurJSiHZJecMmzYwiixYQCXeMSj7BQTBIOyitvLIiuqupo53oYuvPOJ92TeG(2Ui9WWB7I0ddtULa03sN6f5B7I0ddVxlCB3e4cBrYMWeMWeIuVG4j0rfnzvU4B7I0ddJPGOUjWFNSRfUTBcCHTiztyctycrQxq8esuaJrGoIRZjyDtDteLiLU9LrabKecMmzqsi4Kv5IVTlspmGth03V1ik3LVJbEuyteXmd1Ir0B7I0ddrzh4Vt2K9T9IAZ0BnIY932fPhgMwmI6B3mOI3F7Qa(T(2vb82et94Gf6TeafXuSHDaDSJd(4KpE9Jt(4KCCY3FB4gFs6uKRIhh87f1uT4hNeYVDZGIQztRKVjngy1gfoZVTgqIkI01vP6hNG3uB3e4YJ92Wn(XElgMSlspm8zVTlspm8ozPfeDs5rIJcfUycJoHRfUTBcCHJqrGKqUfjBctyctOznHcZTiH(IYt2eMWeMWeMWeMWiuucJoHduFj(6oeqclCekkHJTecMCkiXTiHcIesooOwKW5rcfgm5uqIBrYMWeMWeQBPMSjmHjmHjmHjmHrOOegDchO(s81DiGeocfjiihhuls2eMWeMqLlMSjmHjmHi1liEcJqrjRYftwIcymMWOtyYoFNSjmHjmHaD0SY6QCeqsy0jmztyctycNVt2eMWeMWeMWeMqGok2axQ2iQBc8rajHrNqYXjbKKnHjmHjmHjmHjeOJyiIYRm8QecCe1xgbKegDcjhNeqbjztyctyctyctycb6OyxOgUmHH1eITGOwYhbKegDcjhhuqs2eMWeMWeMWeMqGokQTRiLlAajHXIcZXtiRoNUtyynHTzhrrdHaFeqsy0jKCCWGcsctyctyYMWeMWekibsYMWeMWec0roIA8A1i6Eeqsy0jK4GKSjmHjmHaDKJOgN51v12nruUkLJascJoHKJtwiqs2eMWeMqGocGISvUtRuIu62xgbKegDcjdsYMWeMWec0r2fes5orkD7lJascJoHKbjztyctycb6OLGdqW6M6MikrkDpcijm6esgKKnHjmHjeOJwcoagSkd7IRcw3u3erjsP7rajHrNqYGKSjmHjmHaD0sWbWGvzyxCLiLUhbKegDcjdsYMWeMWec0rCDogaid7IReP0TVmcijm6esgKKnHjmHjeOJ46Ccw3u3erjsPBFzeqsy0jKmijBctyctiqhnyKsdVIiLU9LrajHrNqYGKSjmHjmHaD0Grkn8kIu62xyur2k3Pv6iGKWOtizqswbP73FpNr0xoEDci4T1asurF2BRbKOIywSsFpBBIzmPiXeg7c1t4SIvRB9T1asurTjM6Xb)2i(MigR)2ndkQnXupoyHElbqrmrKAQw8JxV(BRbKOIMrTzsefa8UdBJ4BrJeWMAjMkGlyt1I)wqXF7QaEnBAL8nPXaR2OWz(nvu04MaNUNCKPQsrYJD)TOroFkCB3erFt5w(Efrh02ruNECsE7MbfDRVTsTzsefaeByhqh74Gpo5Jx)4KpojhN8Xj44GV)MxgWqMQkfjpo47hhm4J9EnW92et941j)w0ibSPwIPc4Vfu2j7B7I0ddyQa(71c32nbUWwKSjmHjmHi1liEchO(s81DiGeMOagJt0HqH7jCEKqWKtbjsSiHXJNWrmnkzvU4BljDDvQ(Xbd6BrJC(u42UjI(MYT8n12nrumKPQsrekiQhN8B7I0ddyQaEmaisD9Tgr5(Bd34t2HbaB1vXJd(n12nbU8yVLof5h7TyyYUi9WWN92Ui9WWBIcymorhcfUNWOti5KLOagJtdubsy0jKCYsuaJXjp40DcJoHKV)2Wn(XElgMSlspm8zVTlspm8MOagJtEWP7egDcjNSefWyCIoekCpHrNqYjlrbmgNgOcKWOti573Fl19kJbd3FhlZ4yml43oYuvPOJ92TeG(2Ui9WWBnIYD57yjLqZyaBQwsN3jMf0mJJnfd8AIQwmMfmZJ59AzVL2u(N92Ui9WWKBja9Tgr5(B7I0ddVxlCB3e4cpbscNajHYIvMJOChKeobscNajHYqbzRGKWjqs4eijCcKeobscNajHtGKWjqsOeGU340bfKeobscPdHc3bjHtGKWjls2eMWeMqZAcJb34rjJb34cldfKTMWakHJgbschbytTurJSiHuUycLa09gNoOjm6Ot4iIOCXegwtOVOjKruWvBpGgLqkxmHYIvMJOCpHrhDch1mYCT1oreZmu7Oe6lkpztyctyctyctycjkGX4eDiu4EcJoH0HqH7jBctyctOYftwLl(2Ui9WW0IruF7Mbv8(BJ4BIcymMWfLUFpNr0xEncrCqbLacigIHSqetDWeq86FLWGc(9AG7VhtazKmY4BEzadzQQuK841FtffnUjWP7jhzQQuK8yhh8XE7itvLIo2B3sa6BPt9I8DrQtlkD7lF27fLU9LPaafr9a69y5Tgr5(BIu62xEllw1ik3zePRgbE3mYCT1(ErPBF5n53fUXFdytTurVLfRAeL7DzD1iW7PyzOXMAmgem27IuNkCJ)zVlCnIY930IhU)UWDKPQsrh7(97Vxut1I)AavO6edOKjGeHeImOGjPoW(kHjG4V3bQ4XE70TY96h79qz7MJD)(7IuN4AefDRVD6w5(XEpu2U5y3V)2EtLYJ9wA4vB9nJmuldJjk87VLau7J9wA4vB941V)ELA7Ma)yVhkB3CS73FxK6K9MkLF2Be1wp27HY2nh7(93aIaWPBL7h79qz7MJD)(7IuNKau7p7nkS1J9EOSDZXUF)DrQt2HbRu)ZElAwxn2LTB5XEpu2U5y3VF)nsRmboMLa03UkGF)(7ihhmb1bF)ha + diff --git a/Complete Projects/Legion/HoTP heal bars/3.0/HP1 3.0.lua b/WeakAuras/Projects/HoTP heal bars/3.0/HP1 3.0.lua similarity index 97% rename from Complete Projects/Legion/HoTP heal bars/3.0/HP1 3.0.lua rename to WeakAuras/Projects/HoTP heal bars/3.0/HP1 3.0.lua index 9409ff1..042ea64 100644 --- a/Complete Projects/Legion/HoTP heal bars/3.0/HP1 3.0.lua +++ b/WeakAuras/Projects/HoTP heal bars/3.0/HP1 3.0.lua @@ -1,77 +1,77 @@ ---WeakAurasSaved.HoTP 3.0 ---TRIGGER -function() - return true -end - ---ICON --Trigger for scripts -function() - WeakAurasSaved.HoTP.percentageHealth = aura_env.round((UnitHealth("player") / UnitHealthMax("player")) * 100, 0) - WeakAurasSaved.HoTP.currentHealth = UnitHealth("player") - WeakAurasSaved.HoTP.missingHealthPercentage = aura_env.round(((UnitHealthMax("player") - UnitHealth("player")) / UnitHealthMax("player")) * 100, 2) - WeakAurasSaved.HoTP.missingHealth = UnitHealthMax("player") - UnitHealth("player") - local healingMultiplier = 1. - local versa = GetCombatRatingBonus(CR_VERSATILITY_DAMAGE_DONE) - healingMultiplier = healingMultiplier + (healingMultiplier * (WeakAurasSaved.HoTP.traitLevel * WeakAurasSaved.HoTP.traitEffectiveness)) - healingMultiplier = healingMultiplier + (healingMultiplier * (versa / 100)) - for k, v in pairs(WeakAurasSaved.HoTP.Buffs) do - if UnitBuff("player", k) ~= nil then - healingMultiplier = healingMultiplier + (healingMultiplier * v) - end - end - local talent = select(10, GetTalentInfoByID(22430)) - if talent == true then - healingMultiplier = healingMultiplier + (healingMultiplier * 0.3) - end - WeakAurasSaved.HoTP.hotpRelativeHeal = 0.3 * healingMultiplier --How much % hotp heals disregarding missing health - WeakAurasSaved.HoTP.hotpAbsoluteRelativeHeal = WeakAurasSaved.HoTP.hotpRelativeHeal * WeakAurasSaved.HoTP.missingHealthPercentage --How much % hp hotp will heal regarding missing health - WeakAurasSaved.HoTP.hotpAbsoluteHeal = aura_env.round(WeakAurasSaved.HoTP.hotpRelativeHeal * WeakAurasSaved.HoTP.missingHealth, 0) - WeakAurasSaved.HoTP.newApsoluteHealth = aura_env.round(WeakAurasSaved.HoTP.currentHealth + WeakAurasSaved.HoTP.hotpAbsoluteHeal, 0) - WeakAurasSaved.HoTP.newRelativeHealth = aura_env.round(WeakAurasSaved.HoTP.percentageHealth + WeakAurasSaved.HoTP.hotpAbsoluteRelativeHeal, 0) -end - ---DURATION -function() - return WeakAurasSaved.HoTP.percentageHealth, 100, 1 -end - ---NAME -function() - return WeakAurasSaved.HoTP.percentageHealth .. " " .. WeakAurasSaved.HoTP.newRelativeHealth .. " +" .. aura_env.round(WeakAurasSaved.HoTP.hotpAbsoluteRelativeHeal, 0) -end - ---DISPLAY -function() - return ("%.0fk / %.0fk"):format(UnitHealth("player") / 1000, UnitHealthMax("player") / 1000); -end - ---INIT -aura_env.round = function(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 -WeakAurasSaved.HoTP = -{ - ["Buffs"] = - { - ["Consecration"] = 0.3, - ["Avenging Wrath"] = 0.35, - ["Chains of Thrayn"] = 0.5, - ["Ilterendi, Crown Jewel of Silvermoon"] = 0.15, - }, - ["traitLevel"] = 7, - ["traitEffectiveness"] = 0.06, - ["percentageHealth"] = 0, - ["currentHealth"] = 0, - ["hotpRelativeHeal"] = 0, - ["hotpAbsoluteRelativeHeal"] = 0, - ["hotpAbsoluteHeal"] = 0, - ["newApsoluteHealth"] = 0, - ["newRelativeHealth"] = 0, - ["missingHealth"] = 0, - ["missingHealthPercentage"] = 0, -} +--WeakAurasSaved.HoTP 3.0 +--TRIGGER +function() + return true +end + +--ICON --Trigger for scripts +function() + WeakAurasSaved.HoTP.percentageHealth = aura_env.round((UnitHealth("player") / UnitHealthMax("player")) * 100, 0) + WeakAurasSaved.HoTP.currentHealth = UnitHealth("player") + WeakAurasSaved.HoTP.missingHealthPercentage = aura_env.round(((UnitHealthMax("player") - UnitHealth("player")) / UnitHealthMax("player")) * 100, 2) + WeakAurasSaved.HoTP.missingHealth = UnitHealthMax("player") - UnitHealth("player") + local healingMultiplier = 1. + local versa = GetCombatRatingBonus(CR_VERSATILITY_DAMAGE_DONE) + healingMultiplier = healingMultiplier + (healingMultiplier * (WeakAurasSaved.HoTP.traitLevel * WeakAurasSaved.HoTP.traitEffectiveness)) + healingMultiplier = healingMultiplier + (healingMultiplier * (versa / 100)) + for k, v in pairs(WeakAurasSaved.HoTP.Buffs) do + if UnitBuff("player", k) ~= nil then + healingMultiplier = healingMultiplier + (healingMultiplier * v) + end + end + local talent = select(10, GetTalentInfoByID(22430)) + if talent == true then + healingMultiplier = healingMultiplier + (healingMultiplier * 0.3) + end + WeakAurasSaved.HoTP.hotpRelativeHeal = 0.3 * healingMultiplier --How much % hotp heals disregarding missing health + WeakAurasSaved.HoTP.hotpAbsoluteRelativeHeal = WeakAurasSaved.HoTP.hotpRelativeHeal * WeakAurasSaved.HoTP.missingHealthPercentage --How much % hp hotp will heal regarding missing health + WeakAurasSaved.HoTP.hotpAbsoluteHeal = aura_env.round(WeakAurasSaved.HoTP.hotpRelativeHeal * WeakAurasSaved.HoTP.missingHealth, 0) + WeakAurasSaved.HoTP.newApsoluteHealth = aura_env.round(WeakAurasSaved.HoTP.currentHealth + WeakAurasSaved.HoTP.hotpAbsoluteHeal, 0) + WeakAurasSaved.HoTP.newRelativeHealth = aura_env.round(WeakAurasSaved.HoTP.percentageHealth + WeakAurasSaved.HoTP.hotpAbsoluteRelativeHeal, 0) +end + +--DURATION +function() + return WeakAurasSaved.HoTP.percentageHealth, 100, 1 +end + +--NAME +function() + return WeakAurasSaved.HoTP.percentageHealth .. " " .. WeakAurasSaved.HoTP.newRelativeHealth .. " +" .. aura_env.round(WeakAurasSaved.HoTP.hotpAbsoluteRelativeHeal, 0) +end + +--DISPLAY +function() + return ("%.0fk / %.0fk"):format(UnitHealth("player") / 1000, UnitHealthMax("player") / 1000); +end + +--INIT +aura_env.round = function(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 +WeakAurasSaved.HoTP = +{ + ["Buffs"] = + { + ["Consecration"] = 0.3, + ["Avenging Wrath"] = 0.35, + ["Chains of Thrayn"] = 0.5, + ["Ilterendi, Crown Jewel of Silvermoon"] = 0.15, + }, + ["traitLevel"] = 7, + ["traitEffectiveness"] = 0.06, + ["percentageHealth"] = 0, + ["currentHealth"] = 0, + ["hotpRelativeHeal"] = 0, + ["hotpAbsoluteRelativeHeal"] = 0, + ["hotpAbsoluteHeal"] = 0, + ["newApsoluteHealth"] = 0, + ["newRelativeHealth"] = 0, + ["missingHealth"] = 0, + ["missingHealthPercentage"] = 0, +} diff --git a/Complete Projects/Legion/HoTP heal bars/3.0/HP2 3.0.lua b/WeakAuras/Projects/HoTP heal bars/3.0/HP2 3.0.lua similarity index 93% rename from Complete Projects/Legion/HoTP heal bars/3.0/HP2 3.0.lua rename to WeakAuras/Projects/HoTP heal bars/3.0/HP2 3.0.lua index 34dbeb0..6c1b4de 100644 --- a/Complete Projects/Legion/HoTP heal bars/3.0/HP2 3.0.lua +++ b/WeakAuras/Projects/HoTP heal bars/3.0/HP2 3.0.lua @@ -1,10 +1,10 @@ ---HoTP 3.0 ---TRIGGER -function() - return true -end - ---DURATION -function() - return WeakAurasSaved.HoTP.newRelativeHealth, 100, 1 -end +--HoTP 3.0 +--TRIGGER +function() + return true +end + +--DURATION +function() + return WeakAurasSaved.HoTP.newRelativeHealth, 100, 1 +end diff --git a/Complete Projects/Legion/Holy Shield.lua b/WeakAuras/Projects/Holy Shield.lua similarity index 97% rename from Complete Projects/Legion/Holy Shield.lua rename to WeakAuras/Projects/Holy Shield.lua index 5ba2f92..822b0de 100644 --- a/Complete Projects/Legion/Holy Shield.lua +++ b/WeakAuras/Projects/Holy Shield.lua @@ -1,76 +1,76 @@ ---COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_DISABLED -function(...) - local event = select(1, ...) - if event == "COMBAT_LOG_EVENT_UNFILTERED" then - local e = select(3, ...) - if e == "SWING_DAMAGE" then - local target = select(10, ...) - if target == UnitName("player") then - local bloq = select(17, ...) - if bloq ~= nil then - local dmg = select(13, ...) - local totaldmg = dmg + bloq - local perbloq = aura_env.round((bloq / totaldmg) * 100, 2) - --print(dmg, totaldmg, perbloq, bloq) - aura_env.pbloq = (aura_env.pbloq + perbloq) / 2 - aura_env.totalbloq = aura_env.totalbloq + bloq - end - end - end - if e == "SPELL_DAMAGE" or e == "SPELL_PERIODIC_DAMAGE" then - local target = select(10, ...) - if target == UnitName("player") then - local bloq = select(21, ...) - if bloq ~= nil then - local dmg = select(16, ...) - local totaldmg = dmg + bloq - local perbloq = aura_env.round((bloq / totaldmg) * 100, 2) - --print(dmg, totaldmg, perbloq, bloq) - aura_env.pbloq = (aura_env.pbloq + perbloq) / 2 - aura_env.totalbloq = aura_env.totalbloq + bloq - end - end - end - end - if event == "PLAYER_REGEN_DISABLED" then - aura_env.totalbloq = 0 - end -end - ---DISPLAY -function() - return aura_env.shorten(aura_env.totalbloq) .. "\n" .. aura_env.round(aura_env.pbloq, 2) .. "%\n" .. aura_env.round(aura_env.sbloq, 2) .. "%" -end - ---INIT -aura_env.totalbloq = 0 -aura_env.pbloq = 40 -aura_env.sbloq = 40 -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 -end -aura_env.round = function(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 +--COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_DISABLED +function(...) + local event = select(1, ...) + if event == "COMBAT_LOG_EVENT_UNFILTERED" then + local e = select(3, ...) + if e == "SWING_DAMAGE" then + local target = select(10, ...) + if target == UnitName("player") then + local bloq = select(17, ...) + if bloq ~= nil then + local dmg = select(13, ...) + local totaldmg = dmg + bloq + local perbloq = aura_env.round((bloq / totaldmg) * 100, 2) + --print(dmg, totaldmg, perbloq, bloq) + aura_env.pbloq = (aura_env.pbloq + perbloq) / 2 + aura_env.totalbloq = aura_env.totalbloq + bloq + end + end + end + if e == "SPELL_DAMAGE" or e == "SPELL_PERIODIC_DAMAGE" then + local target = select(10, ...) + if target == UnitName("player") then + local bloq = select(21, ...) + if bloq ~= nil then + local dmg = select(16, ...) + local totaldmg = dmg + bloq + local perbloq = aura_env.round((bloq / totaldmg) * 100, 2) + --print(dmg, totaldmg, perbloq, bloq) + aura_env.pbloq = (aura_env.pbloq + perbloq) / 2 + aura_env.totalbloq = aura_env.totalbloq + bloq + end + end + end + end + if event == "PLAYER_REGEN_DISABLED" then + aura_env.totalbloq = 0 + end +end + +--DISPLAY +function() + return aura_env.shorten(aura_env.totalbloq) .. "\n" .. aura_env.round(aura_env.pbloq, 2) .. "%\n" .. aura_env.round(aura_env.sbloq, 2) .. "%" +end + +--INIT +aura_env.totalbloq = 0 +aura_env.pbloq = 40 +aura_env.sbloq = 40 +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 +end +aura_env.round = function(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 diff --git a/Complete Projects/Legion/HowDead.lua b/WeakAuras/Projects/HowDead.lua similarity index 95% rename from Complete Projects/Legion/HowDead.lua rename to WeakAuras/Projects/HowDead.lua index 15a5fa5..7bb72fd 100644 --- a/Complete Projects/Legion/HowDead.lua +++ b/WeakAuras/Projects/HowDead.lua @@ -1,71 +1,71 @@ ---COMBAT_LOG_EVENT_UNFILTERED UNIT_AURA UNIT_HEALTH -function(e, ...) - if e == "UNIT_AURA" then - - end - --for i = 1, 40 do - --local x = select(i, ...) - --if x then - --print(i, x) - --end - --end -end - ---INIT -aura_env.bossList = { - --BRH - ["The Amalgam of Souls"] = true, - ["Illysanna Ravencrest"] = true, - ["Smashpite the Hateful"] = true, - ["Lord Kul'talos Ravencrest"] = true, - - --CoS - ["Patrol Captain Gerdo"] = true, - ["Talixae Flamewreath"] = true, - ["Advisor Melandrus"] = true, - - --DHT - ["Archdruid Gleidalis"] = true, - ["Oakheart"] = true, - ["Dresaron"] = true, - ["Shade of Xavius"] = true, - - --EoA - ["Warlord Parjesh"] = true, - ["Lady Hatecoil"] = true, - ["King Deepbeard"] = true, - ["Serpentrix"] = true, - ["Wrath of Azshara"] = true, - - --HoV - ["Hymdall"] = true, - ["Hyrja"] = true, - ["Fenryr"] = true, - ["God-King Skovald"] = true, - ["Odyn"] = true, - - --MoS - ["Ymiron, the Fallen King"] = true, - ["Harbaron"] = true, - ["Helya"] = true, - - --NL - ["Rokmora"] = true, - ["Ularogg Cragshaper"] = true, - ["Naraxas"] = true, - ["Dargul the Underking"] = true, - - --Arc - ["Ivanyr"] = true, - ["Corstilax"] = true, - ["General Xakal"] = true, - ["Nal'tira"] = true, - ["Advisor Vandros"] = true, - - --VoTW - ["Tirathon Saltheril"] = true, - ["Inquisitor Tormentorum"] = true, - ["Ash'golm"] = true, - ["Glazer"] = true, - ["Cordana Felsong"] = true, -} +--COMBAT_LOG_EVENT_UNFILTERED UNIT_AURA UNIT_HEALTH +function(e, ...) + if e == "UNIT_AURA" then + + end + --for i = 1, 40 do + --local x = select(i, ...) + --if x then + --print(i, x) + --end + --end +end + +--INIT +aura_env.bossList = { + --BRH + ["The Amalgam of Souls"] = true, + ["Illysanna Ravencrest"] = true, + ["Smashpite the Hateful"] = true, + ["Lord Kul'talos Ravencrest"] = true, + + --CoS + ["Patrol Captain Gerdo"] = true, + ["Talixae Flamewreath"] = true, + ["Advisor Melandrus"] = true, + + --DHT + ["Archdruid Gleidalis"] = true, + ["Oakheart"] = true, + ["Dresaron"] = true, + ["Shade of Xavius"] = true, + + --EoA + ["Warlord Parjesh"] = true, + ["Lady Hatecoil"] = true, + ["King Deepbeard"] = true, + ["Serpentrix"] = true, + ["Wrath of Azshara"] = true, + + --HoV + ["Hymdall"] = true, + ["Hyrja"] = true, + ["Fenryr"] = true, + ["God-King Skovald"] = true, + ["Odyn"] = true, + + --MoS + ["Ymiron, the Fallen King"] = true, + ["Harbaron"] = true, + ["Helya"] = true, + + --NL + ["Rokmora"] = true, + ["Ularogg Cragshaper"] = true, + ["Naraxas"] = true, + ["Dargul the Underking"] = true, + + --Arc + ["Ivanyr"] = true, + ["Corstilax"] = true, + ["General Xakal"] = true, + ["Nal'tira"] = true, + ["Advisor Vandros"] = true, + + --VoTW + ["Tirathon Saltheril"] = true, + ["Inquisitor Tormentorum"] = true, + ["Ash'golm"] = true, + ["Glazer"] = true, + ["Cordana Felsong"] = true, +} diff --git a/WIP/Hydra Shot 2.lua b/WeakAuras/Projects/Hydra Shot 2.lua similarity index 97% rename from WIP/Hydra Shot 2.lua rename to WeakAuras/Projects/Hydra Shot 2.lua index 7a0120d..decd84c 100644 --- a/WIP/Hydra Shot 2.lua +++ b/WeakAuras/Projects/Hydra Shot 2.lua @@ -1,70 +1,70 @@ ---UNIT_AURA ---Event that fires off whenever an aura is applied or removed -- probably overkill for this application but it should work relatively fine ---Can also use combatlog event for cast success of hydra shot but am unsure if that would work ---The basic idea of this setup is to minimize the time it's calculating stuff to make it as efficient, to do that we only enable the aura while hydra shot is active; To find when it is active we get the time when it was cast and add 8 seconds to that (Don't know why 8, previous aura said so) ---We find what auras are applied after the cast has begun and see for each if it's the one we're looking for (hydra shot) ---Theoretically SHOULD PROBABLY *LIKELY* work but practically probably isn't going to -function() - if (aura_env.startCast + 12) < GetTime() then - local spell = GetSpellInfo(230139) --hydra shot 230139 - local spell2 = GetSpellInfo(239375) --fish 239375 - local spell3 = GetSpellInfo(230214) -- tank debuff - local j = 0 - for i = 1, GetNumGroupMembers() do - local name = GetRaidRosterInfo(i) - if not UnitDebuff(name, spell) and not UnitDebuff(name, spell2) and not UnitDebuff(name, spell3) then - if name == UnitName("player") and j < 2 then - aura_env.output = "|cffffd00cStar|r" - return 0 - end - if name == UnitName("player") and j >= 2 and j < 5 then - aura_env.output = "cff4baf1cTriangle|r" - return 0 - end - if name == UnitName("player") and j >= 5 and j < 8 then - aura_env.output = "cfff6802cCircle|r" - return 0 - end - if name == UnitName("player") and j >= 8 and j < 11 then - aura_env.output = "cfff0098cDiamond|r" - return 0 - end - j = j + 1 - end - end - aura_env.output = "Whatever" - return 0 - end -end - ---DISPLAY -function() --It's more efficient to only return a value every frame instead of calculating for it as well as returning it - return aura_env.output -end - ---EVERY FRAME TRIGGER ---The trigger that will be actually showing the aura -function() --Enables the weakaura for 8 seconds after the cast - if (aura_env.startCast + 12) < GetTime() then --If the time of cast + 8 seconds is < current time the aura will be shown (aka for the next 8 seconds after the cast) - return true - else - return false - end -end - ---COMBAT_LOG_EVENT_UNFILTERED -function(...) --Enables the weakaura for 8 seconds after the cast - local subevent = select(3, ...) - if subevent == "SPELL_CAST_START" then --If there was a spell cast (in the combat log) - local caster = select(6, ...) --Found who cast it - local spell = select(14, ...) --And what was cast - if caster:match("Mistress") and spell == "Hydra Shot" then --If the spell is Hydra Shot and Mistress cast it then - aura_env.startCast = GetTime() --Get the time when it was cast - end - end -end - ---INIT ---Defines protected variables which are the output and the cast time for the timer -aura_env.startCast = 0 +--UNIT_AURA +--Event that fires off whenever an aura is applied or removed -- probably overkill for this application but it should work relatively fine +--Can also use combatlog event for cast success of hydra shot but am unsure if that would work +--The basic idea of this setup is to minimize the time it's calculating stuff to make it as efficient, to do that we only enable the aura while hydra shot is active; To find when it is active we get the time when it was cast and add 8 seconds to that (Don't know why 8, previous aura said so) +--We find what auras are applied after the cast has begun and see for each if it's the one we're looking for (hydra shot) +--Theoretically SHOULD PROBABLY *LIKELY* work but practically probably isn't going to +function() + if (aura_env.startCast + 12) < GetTime() then + local spell = GetSpellInfo(230139) --hydra shot 230139 + local spell2 = GetSpellInfo(239375) --fish 239375 + local spell3 = GetSpellInfo(230214) -- tank debuff + local j = 0 + for i = 1, GetNumGroupMembers() do + local name = GetRaidRosterInfo(i) + if not UnitDebuff(name, spell) and not UnitDebuff(name, spell2) and not UnitDebuff(name, spell3) then + if name == UnitName("player") and j < 2 then + aura_env.output = "|cffffd00cStar|r" + return 0 + end + if name == UnitName("player") and j >= 2 and j < 5 then + aura_env.output = "cff4baf1cTriangle|r" + return 0 + end + if name == UnitName("player") and j >= 5 and j < 8 then + aura_env.output = "cfff6802cCircle|r" + return 0 + end + if name == UnitName("player") and j >= 8 and j < 11 then + aura_env.output = "cfff0098cDiamond|r" + return 0 + end + j = j + 1 + end + end + aura_env.output = "Whatever" + return 0 + end +end + +--DISPLAY +function() --It's more efficient to only return a value every frame instead of calculating for it as well as returning it + return aura_env.output +end + +--EVERY FRAME TRIGGER +--The trigger that will be actually showing the aura +function() --Enables the weakaura for 8 seconds after the cast + if (aura_env.startCast + 12) < GetTime() then --If the time of cast + 8 seconds is < current time the aura will be shown (aka for the next 8 seconds after the cast) + return true + else + return false + end +end + +--COMBAT_LOG_EVENT_UNFILTERED +function(...) --Enables the weakaura for 8 seconds after the cast + local subevent = select(3, ...) + if subevent == "SPELL_CAST_START" then --If there was a spell cast (in the combat log) + local caster = select(6, ...) --Found who cast it + local spell = select(14, ...) --And what was cast + if caster:match("Mistress") and spell == "Hydra Shot" then --If the spell is Hydra Shot and Mistress cast it then + aura_env.startCast = GetTime() --Get the time when it was cast + end + end +end + +--INIT +--Defines protected variables which are the output and the cast time for the timer +aura_env.startCast = 0 aura_env.output = "" \ No newline at end of file diff --git a/WIP/Hydra Shot.lua b/WeakAuras/Projects/Hydra Shot.lua similarity index 97% rename from WIP/Hydra Shot.lua rename to WeakAuras/Projects/Hydra Shot.lua index 42adeee..eac2b4c 100644 --- a/WIP/Hydra Shot.lua +++ b/WeakAuras/Projects/Hydra Shot.lua @@ -1,50 +1,50 @@ -function () - local spell = GetSpellInfo(230139) --hydra shot 230139 - local spell2 = GetSpellInfo(239375) --fish 239375 - local spell3 = GetSpellInfo(230214) -- tank debuff - local star = "star" --Don't need this, isn't used anywhere - local triangle = "triangle" --Don't need this, isn't used anywhere - local circle = "circle" --Don't need this, isn't used anywhere - local diamond = "diamond" --Don't need this, isn't used anywhere - local playerName = UnitName("player") - --These empty lines are pissing me off only because I don't do it as such - local total = 0 --Don't need this, isn't used anywhere - local max = 18 --Don't need this, isn't used anywhere - local j = 0 - - for i=1, GetNumGroupMembers() do - - local name = GetRaidRosterInfo(i) - if (not UnitDebuff(name, spell) and not UnitDebuff(name, spell2) and not UnitDebuff(name, spell3)) then - - if (name == playerName and j<2) then - - return string.format("%s", "|cffffd00cStar") --It is good habbit to close a |c with an |r (basically returns the color to it's default from |c) - - end - - if (name == playerName and j>=2 and j<5) then - return string.format("%s", "|cff4baf1cTriangle") - - end - - if (name == playerName and j>=5 and j<8) then - return string.format("%s", "|cfff6802cCircle") - end - - if (name == playerName and j>=8 and j<11) then - return string.format("%s", "|cfff0098cDiamond") - end - - j = j+1 - - end - - - end - - return string.format("%s", "Whatever") -end - - - +function () + local spell = GetSpellInfo(230139) --hydra shot 230139 + local spell2 = GetSpellInfo(239375) --fish 239375 + local spell3 = GetSpellInfo(230214) -- tank debuff + local star = "star" --Don't need this, isn't used anywhere + local triangle = "triangle" --Don't need this, isn't used anywhere + local circle = "circle" --Don't need this, isn't used anywhere + local diamond = "diamond" --Don't need this, isn't used anywhere + local playerName = UnitName("player") + --These empty lines are pissing me off only because I don't do it as such + local total = 0 --Don't need this, isn't used anywhere + local max = 18 --Don't need this, isn't used anywhere + local j = 0 + + for i=1, GetNumGroupMembers() do + + local name = GetRaidRosterInfo(i) + if (not UnitDebuff(name, spell) and not UnitDebuff(name, spell2) and not UnitDebuff(name, spell3)) then + + if (name == playerName and j<2) then + + return string.format("%s", "|cffffd00cStar") --It is good habbit to close a |c with an |r (basically returns the color to it's default from |c) + + end + + if (name == playerName and j>=2 and j<5) then + return string.format("%s", "|cff4baf1cTriangle") + + end + + if (name == playerName and j>=5 and j<8) then + return string.format("%s", "|cfff6802cCircle") + end + + if (name == playerName and j>=8 and j<11) then + return string.format("%s", "|cfff0098cDiamond") + end + + j = j+1 + + end + + + end + + return string.format("%s", "Whatever") +end + + + diff --git a/WIP/Icey AP/C AP.lua b/WeakAuras/Projects/Icey AP/C AP.lua similarity index 96% rename from WIP/Icey AP/C AP.lua rename to WeakAuras/Projects/Icey AP/C AP.lua index 0b73ad2..c641dda 100644 --- a/WIP/Icey AP/C AP.lua +++ b/WeakAuras/Projects/Icey AP/C AP.lua @@ -1,5 +1,5 @@ -function() - local AP = UnitPower("player") - local maxAP = UnitPowerMax("player") - return maxAP - AP, maxAP, 1 +function() + local AP = UnitPower("player") + local maxAP = UnitPowerMax("player") + return maxAP - AP, maxAP, 1 end \ No newline at end of file diff --git a/WIP/Icey AP/Cast AP.lua b/WeakAuras/Projects/Icey AP/Cast AP.lua similarity index 97% rename from WIP/Icey AP/Cast AP.lua rename to WeakAuras/Projects/Icey AP/Cast AP.lua index 9513580..673a0bb 100644 --- a/WIP/Icey AP/Cast AP.lua +++ b/WeakAuras/Projects/Icey AP/Cast AP.lua @@ -1,27 +1,27 @@ -function() - local AP = UnitPower("player") --Get astral power and max power - local maxAP = UnitPowerMax("player") - local APgains = --Define AP gained by spells - { - ["New Moon"] = 10, - ["Half Moon"] = 20, - ["Full Moon"] = 40, - ["Lunar Strike"] = 12, - ["Solar Wrath"] = 8 - } - local buff = UnitBuff("player", "Blessing of Elune") --Find 25% increase if present - local casting = UnitCastingInfo("player") --Get spell currently being cast if any - if casting then --If there's a spell being cast - local plusAP = AP + APgains[casting] --Add AP gained by spell currently cast to current AP to "predict" AP - if buff then - if casting == "Lunar Strike" or casting == "Solar Wrath" then --If either spell affected by buff is being cast add 25% to it's ap gained - local plusAP = AP + APgains[casting] - plusAP = math.floor(plusAP + APgains[casting] * 0.25) --Get the 25% of 8 or 12 and add it to 8 or 12 - end - end - return maxAP - plusAP, maxAP, 1 - end - if not casting then - return maxAP - AP, maxAP, 1 - end +function() + local AP = UnitPower("player") --Get astral power and max power + local maxAP = UnitPowerMax("player") + local APgains = --Define AP gained by spells + { + ["New Moon"] = 10, + ["Half Moon"] = 20, + ["Full Moon"] = 40, + ["Lunar Strike"] = 12, + ["Solar Wrath"] = 8 + } + local buff = UnitBuff("player", "Blessing of Elune") --Find 25% increase if present + local casting = UnitCastingInfo("player") --Get spell currently being cast if any + if casting then --If there's a spell being cast + local plusAP = AP + APgains[casting] --Add AP gained by spell currently cast to current AP to "predict" AP + if buff then + if casting == "Lunar Strike" or casting == "Solar Wrath" then --If either spell affected by buff is being cast add 25% to it's ap gained + local plusAP = AP + APgains[casting] + plusAP = math.floor(plusAP + APgains[casting] * 0.25) --Get the 25% of 8 or 12 and add it to 8 or 12 + end + end + return maxAP - plusAP, maxAP, 1 + end + if not casting then + return maxAP - AP, maxAP, 1 + end end \ No newline at end of file diff --git a/WIP/Icey AP/Pred AP.lua b/WeakAuras/Projects/Icey AP/Pred AP.lua similarity index 97% rename from WIP/Icey AP/Pred AP.lua rename to WeakAuras/Projects/Icey AP/Pred AP.lua index d267801..1e0437b 100644 --- a/WIP/Icey AP/Pred AP.lua +++ b/WeakAuras/Projects/Icey AP/Pred AP.lua @@ -1,5 +1,5 @@ -function() - local AP = UnitPower("player") --Get astral power and max power - local maxAP = UnitPowerMax("player") - return maxAP - AP, maxAP, 1 +function() + local AP = UnitPower("player") --Get astral power and max power + local maxAP = UnitPowerMax("player") + return maxAP - AP, maxAP, 1 end \ No newline at end of file diff --git a/Complete Projects/Legion/Ignore Alliance.lua b/WeakAuras/Projects/Ignore Alliance.lua similarity index 95% rename from Complete Projects/Legion/Ignore Alliance.lua rename to WeakAuras/Projects/Ignore Alliance.lua index 63158ab..9f3cb05 100644 --- a/Complete Projects/Legion/Ignore Alliance.lua +++ b/WeakAuras/Projects/Ignore Alliance.lua @@ -1,8 +1,8 @@ ---CHAT_MSG_SAY -function(e, text, sender, language) - if GetRealZoneText() == "Elwynn Forest" then - if language == "Common" then - AddIgnore(sender) - end - end -end +--CHAT_MSG_SAY +function(e, text, sender, language) + if GetRealZoneText() == "Elwynn Forest" then + if language == "Common" then + AddIgnore(sender) + end + end +end diff --git a/Complete Projects/Legion/Ilterendi Uptime.lua b/WeakAuras/Projects/Ilterendi Uptime.lua similarity index 96% rename from Complete Projects/Legion/Ilterendi Uptime.lua rename to WeakAuras/Projects/Ilterendi Uptime.lua index ebc0430..bfc5f07 100644 --- a/Complete Projects/Legion/Ilterendi Uptime.lua +++ b/WeakAuras/Projects/Ilterendi Uptime.lua @@ -1,20 +1,20 @@ -DISPLAY -function() - if aura_env.startTime ~= nil and aura_env.buffTime ~= nil then - local localTime = GetTime() - aura_env.startTime - local buff = UnitBuff("player", "Ilterendi, Crown Jewel of Silvermoon") - if buff ~= nil then - aura_env.buffTime = aura_env.buffTime + (GetTime() - aura_env.lastTime) - end - aura_env.lastTime = GetTime() - aura_env.uptime = (math.floor((aura_env.buffTime / localTime) * 100)) - return aura_env.uptime .. "%%" - end -end - -ON SHOW -aura_env.startTime = GetTime() -aura_env.buffTime = 0 - -ON HIDE -print("20% god uptime", aura_env.uptime .. "%") +DISPLAY +function() + if aura_env.startTime ~= nil and aura_env.buffTime ~= nil then + local localTime = GetTime() - aura_env.startTime + local buff = UnitBuff("player", "Ilterendi, Crown Jewel of Silvermoon") + if buff ~= nil then + aura_env.buffTime = aura_env.buffTime + (GetTime() - aura_env.lastTime) + end + aura_env.lastTime = GetTime() + aura_env.uptime = (math.floor((aura_env.buffTime / localTime) * 100)) + return aura_env.uptime .. "%%" + end +end + +ON SHOW +aura_env.startTime = GetTime() +aura_env.buffTime = 0 + +ON HIDE +print("20% god uptime", aura_env.uptime .. "%") diff --git a/FreshShit/Incoming/export b/WeakAuras/Projects/Incoming/export similarity index 100% rename from FreshShit/Incoming/export rename to WeakAuras/Projects/Incoming/export diff --git a/FreshShit/Incoming/sct b/WeakAuras/Projects/Incoming/sct similarity index 100% rename from FreshShit/Incoming/sct rename to WeakAuras/Projects/Incoming/sct diff --git a/Complete Projects/Legion/Init.lua b/WeakAuras/Projects/Init.lua similarity index 95% rename from Complete Projects/Legion/Init.lua rename to WeakAuras/Projects/Init.lua index ca24fbd..c9c1304 100644 --- a/Complete Projects/Legion/Init.lua +++ b/WeakAuras/Projects/Init.lua @@ -1,4 +1,4 @@ -PLAYER_ENTERING_WORLD -function() - SetCVar("floatingCombatTextCombatHealing", 1) -end +PLAYER_ENTERING_WORLD +function() + SetCVar("floatingCombatTextCombatHealing", 1) +end diff --git a/Complete Projects/Legion/Innervate on Whisper.lua b/WeakAuras/Projects/Innervate on Whisper.lua similarity index 97% rename from Complete Projects/Legion/Innervate on Whisper.lua rename to WeakAuras/Projects/Innervate on Whisper.lua index a07ab39..5d8e7ee 100644 --- a/Complete Projects/Legion/Innervate on Whisper.lua +++ b/WeakAuras/Projects/Innervate on Whisper.lua @@ -1,67 +1,67 @@ ---CHAT_MSG_WHISPER -function(_, msg, sender) - msg = msg:lower() - sender = sender:match("%a+") - local cd, dur = GetSpellCooldown("Innervate") - if msg == "innervate" and UnitGroupRolesAssigned(sender) == "HEALER" then - if cd == 0 then - aura_env.whisperT = math.floor(GetTime()) + 10 - aura_env.sender = sender - end - if cd > 0 then - local readyin = math.floor(cd + dur - math.floor(GetTime())) - SendChatMessage("Innervate on cd - Ready in " .. readyin .. " seconds", "WHISPER", "Common", sender) - end - end -end - ---DISPLAY -function() - local function GetClassColor(name) - local color = "|cFF000000" - local class = UnitClass(name) - if class == "Death Knight" then color = "|cFFC41F3B" elseif - class == "Demon Hunter" then color = "|cFFA330C9" elseif - class == "Druid" then color = "|cFFFF7D0A" elseif - class == "Hunter" then color = "|cFFABD473" elseif - class == "Mage" then color = "|cFF40C7EB" elseif - class == "Monk" then color = "|cFF00FF96" elseif - class == "Paladin" then color = "|cFFF58CBA" elseif - class == "Priest" then color = "|cFFFFFFFF" elseif - class == "Rogue" then color = "|cFFFFF569" elseif - class == "Shaman" then color = "|cFF0070DE" elseif - class == "Warlock" then color = "|cFF8787ED" elseif - class == "Warrior" then color = "|cFFC79C6E" end - return color - end - if aura_env.whisperT > math.floor(GetTime()) then - return "Innervate " .. GetClassColor(aura_env.sender) .. aura_env.sender .. "|r" - else - aura_env.sender = "" - return "" - end -end - ---COMBAT_LOG_EVENT_UNFILTERED -function(...) - local subevent = select(3, ...) - if subevent == "SPELL_CAST_SUCCESS" then - local caster = select(6, ...) - local target = select(10, ...) - local spell = select(14, ...) - if caster == UnitName("player") and spell == "Innervate" then - if target ~= aura_env.sender then - SendChatMessage("Casting innervate on " .. target, "WHISPER", "Common", aura_env.sender) - end - if target == aura_env.sender then - SendChatMessage("Casting innervate on you!", "WHISPER", "Common", aura_env.sender) - end - aura_env.whisperT = 0 - aura_env.sender = "" - end - end -end - ---INIT -aura_env.whisperT = 0 -aura_env.sender = "" +--CHAT_MSG_WHISPER +function(_, msg, sender) + msg = msg:lower() + sender = sender:match("%a+") + local cd, dur = GetSpellCooldown("Innervate") + if msg == "innervate" and UnitGroupRolesAssigned(sender) == "HEALER" then + if cd == 0 then + aura_env.whisperT = math.floor(GetTime()) + 10 + aura_env.sender = sender + end + if cd > 0 then + local readyin = math.floor(cd + dur - math.floor(GetTime())) + SendChatMessage("Innervate on cd - Ready in " .. readyin .. " seconds", "WHISPER", "Common", sender) + end + end +end + +--DISPLAY +function() + local function GetClassColor(name) + local color = "|cFF000000" + local class = UnitClass(name) + if class == "Death Knight" then color = "|cFFC41F3B" elseif + class == "Demon Hunter" then color = "|cFFA330C9" elseif + class == "Druid" then color = "|cFFFF7D0A" elseif + class == "Hunter" then color = "|cFFABD473" elseif + class == "Mage" then color = "|cFF40C7EB" elseif + class == "Monk" then color = "|cFF00FF96" elseif + class == "Paladin" then color = "|cFFF58CBA" elseif + class == "Priest" then color = "|cFFFFFFFF" elseif + class == "Rogue" then color = "|cFFFFF569" elseif + class == "Shaman" then color = "|cFF0070DE" elseif + class == "Warlock" then color = "|cFF8787ED" elseif + class == "Warrior" then color = "|cFFC79C6E" end + return color + end + if aura_env.whisperT > math.floor(GetTime()) then + return "Innervate " .. GetClassColor(aura_env.sender) .. aura_env.sender .. "|r" + else + aura_env.sender = "" + return "" + end +end + +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local subevent = select(3, ...) + if subevent == "SPELL_CAST_SUCCESS" then + local caster = select(6, ...) + local target = select(10, ...) + local spell = select(14, ...) + if caster == UnitName("player") and spell == "Innervate" then + if target ~= aura_env.sender then + SendChatMessage("Casting innervate on " .. target, "WHISPER", "Common", aura_env.sender) + end + if target == aura_env.sender then + SendChatMessage("Casting innervate on you!", "WHISPER", "Common", aura_env.sender) + end + aura_env.whisperT = 0 + aura_env.sender = "" + end + end +end + +--INIT +aura_env.whisperT = 0 +aura_env.sender = "" diff --git a/Complete Projects/Legion/InspectIlvl.lua b/WeakAuras/Projects/InspectIlvl.lua similarity index 95% rename from Complete Projects/Legion/InspectIlvl.lua rename to WeakAuras/Projects/InspectIlvl.lua index 1ef6d66..b8f3f04 100644 --- a/Complete Projects/Legion/InspectIlvl.lua +++ b/WeakAuras/Projects/InspectIlvl.lua @@ -1,21 +1,21 @@ ---INSPECT_READY CHAT_MSG_SYSTEM -function(e, msg) - if e == "INSPECT_READY" then - if GetTime() - aura_env.time >= 1 then - local name = UnitName("target") - SendChatMessage(".ilevel " .. name, "SAY") - aura_env.time = GetTime() - end - elseif e == "CHAT_MSG_SYSTEM" then - aura_env.ilvl = msg:match("Equipped ilvl for .+: (%d+)") - return true - end -end - ---DISPLAY -function() - return format("%d", aura_env.ilvl) -end - ---INIT +--INSPECT_READY CHAT_MSG_SYSTEM +function(e, msg) + if e == "INSPECT_READY" then + if GetTime() - aura_env.time >= 1 then + local name = UnitName("target") + SendChatMessage(".ilevel " .. name, "SAY") + aura_env.time = GetTime() + end + elseif e == "CHAT_MSG_SYSTEM" then + aura_env.ilvl = msg:match("Equipped ilvl for .+: (%d+)") + return true + end +end + +--DISPLAY +function() + return format("%d", aura_env.ilvl) +end + +--INIT aura_env.time = 0 \ No newline at end of file diff --git a/Complete Projects/Legion/Ironfur.lua b/WeakAuras/Projects/Ironfur.lua similarity index 97% rename from Complete Projects/Legion/Ironfur.lua rename to WeakAuras/Projects/Ironfur.lua index fc804df..1909f7d 100644 --- a/Complete Projects/Legion/Ironfur.lua +++ b/WeakAuras/Projects/Ironfur.lua @@ -1,44 +1,44 @@ ---COMBAT_LOG_EVENT_UNFILTERED -function(allstates, e, ...) - local aura_env = aura_env - local se = select(2, ...) - if se == "SPELL_CAST_SUCCESS" then - local caster = select(5, ...) - local spell = select(13, ...) - if caster == UnitName("player") and spell == "Ironfur" then - allstates[#allstates + 1] = { - show = true, - changed = true, - resort = true, - index = GetTime(), - progressType = "timed", - expirationTime = GetTime() + aura_env.ironfurDuration, - duration = aura_env.ironfurDuration, - autoHide = true, - } - if aura_env.buff == true then - allstates[#allstates].expirationTime = allstates[#allstates].expirationTime + 2 - allstates[#allstates].duration = allstates[#allstates].duration + 2 - end - return true - end - elseif se == "SPELL_AURA_APPLIED" then - local caster = select(5, ...) - local spell = select(13, ...) - if caster == UnitName("player") and spell == "Guardian of Elune" then - aura_env.buff = true - end - elseif se == "SPELL_AURA_REMOVED" then - local caster = select(5, ...) - local spell = select(13, ...) - if caster == UnitName("player") and spell == "Guardian of Elune" then - C_Timer.After(0.1, function() - aura_env.buff = false - end) - end - end -end - ---INIT -aura_env.ironfurDuration = 6 -aura_env.buff = false +--COMBAT_LOG_EVENT_UNFILTERED +function(allstates, e, ...) + local aura_env = aura_env + local se = select(2, ...) + if se == "SPELL_CAST_SUCCESS" then + local caster = select(5, ...) + local spell = select(13, ...) + if caster == UnitName("player") and spell == "Ironfur" then + allstates[#allstates + 1] = { + show = true, + changed = true, + resort = true, + index = GetTime(), + progressType = "timed", + expirationTime = GetTime() + aura_env.ironfurDuration, + duration = aura_env.ironfurDuration, + autoHide = true, + } + if aura_env.buff == true then + allstates[#allstates].expirationTime = allstates[#allstates].expirationTime + 2 + allstates[#allstates].duration = allstates[#allstates].duration + 2 + end + return true + end + elseif se == "SPELL_AURA_APPLIED" then + local caster = select(5, ...) + local spell = select(13, ...) + if caster == UnitName("player") and spell == "Guardian of Elune" then + aura_env.buff = true + end + elseif se == "SPELL_AURA_REMOVED" then + local caster = select(5, ...) + local spell = select(13, ...) + if caster == UnitName("player") and spell == "Guardian of Elune" then + C_Timer.After(0.1, function() + aura_env.buff = false + end) + end + end +end + +--INIT +aura_env.ironfurDuration = 6 +aura_env.buff = false diff --git a/Complete Projects/Legion/JanaPullTimer.lua b/WeakAuras/Projects/JanaPullTimer.lua similarity index 96% rename from Complete Projects/Legion/JanaPullTimer.lua rename to WeakAuras/Projects/JanaPullTimer.lua index 6f98e67..603bed6 100644 --- a/Complete Projects/Legion/JanaPullTimer.lua +++ b/WeakAuras/Projects/JanaPullTimer.lua @@ -1,47 +1,47 @@ ---CHAT_MSG_ADDON -function(e, ...) - local msg = select(2, ...) - if msg:match("Pull") and msg:match("%d+") then - local pull = msg:match("%d+") - print(pull) - end -end - - - - - -function(allstates, e, msg, sender) - if e == "CHAT_MSG_SAY" or e == "CHAT_MSG_PARTY" or e == "CHAT_MSG_PARTY_LEADER" or e == "CHAT_MSG_ADDON" then - if e ~= "CHAT_MSG_ADDON" then - if (sender == "Angellianna" or sender == "Piinkiepiie" or sender == "Smolpotato") and msg:match("%d+") and select(1, msg:find("%d+")) == 1 and select(2, msg:find(".+")) <= 3 then - aura_env.pullTime = tonumber(msg:match("%d+")) - else - if sender:match("Pull") then - aura_env.pullTime = tonumber(sender:match("%d+")) - end - end - if aura_env.timer then - aura_env.timer:Cancel() - end - aura_env.timer = C_Timer.NewTimer(aura_env.pullTime, function() WeakAuras.ScanEvents("HIDE_PULL") end) - allstates[1] = { - show = true, - changed = true, - progressType = "timed", - expirationTime = GetTime() + aura_env.pullTime, - duration = aura_env.pullTime, - } - return true - elseif e == "HIDE_PULL" then - allstates[1].show = false - allstates[1].changed = true - return true - elseif e == "PLAYER_REGEN_DISABLED" then - if allstates[1] then - allstates[1].show = false - allstates[1].changed = true - end - return true - end +--CHAT_MSG_ADDON +function(e, ...) + local msg = select(2, ...) + if msg:match("Pull") and msg:match("%d+") then + local pull = msg:match("%d+") + print(pull) + end +end + + + + + +function(allstates, e, msg, sender) + if e == "CHAT_MSG_SAY" or e == "CHAT_MSG_PARTY" or e == "CHAT_MSG_PARTY_LEADER" or e == "CHAT_MSG_ADDON" then + if e ~= "CHAT_MSG_ADDON" then + if (sender == "Angellianna" or sender == "Piinkiepiie" or sender == "Smolpotato") and msg:match("%d+") and select(1, msg:find("%d+")) == 1 and select(2, msg:find(".+")) <= 3 then + aura_env.pullTime = tonumber(msg:match("%d+")) + else + if sender:match("Pull") then + aura_env.pullTime = tonumber(sender:match("%d+")) + end + end + if aura_env.timer then + aura_env.timer:Cancel() + end + aura_env.timer = C_Timer.NewTimer(aura_env.pullTime, function() WeakAuras.ScanEvents("HIDE_PULL") end) + allstates[1] = { + show = true, + changed = true, + progressType = "timed", + expirationTime = GetTime() + aura_env.pullTime, + duration = aura_env.pullTime, + } + return true + elseif e == "HIDE_PULL" then + allstates[1].show = false + allstates[1].changed = true + return true + elseif e == "PLAYER_REGEN_DISABLED" then + if allstates[1] then + allstates[1].show = false + allstates[1].changed = true + end + return true + end end \ No newline at end of file diff --git a/Complete Projects/Legion/Judgment of Light DebuffConsumedPerSecond.lua b/WeakAuras/Projects/Judgment of Light DebuffConsumedPerSecond.lua similarity index 97% rename from Complete Projects/Legion/Judgment of Light DebuffConsumedPerSecond.lua rename to WeakAuras/Projects/Judgment of Light DebuffConsumedPerSecond.lua index 79139de..cbbcb1e 100644 --- a/Complete Projects/Legion/Judgment of Light DebuffConsumedPerSecond.lua +++ b/WeakAuras/Projects/Judgment of Light DebuffConsumedPerSecond.lua @@ -1,52 +1,52 @@ ---COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED UPDATE_DCPS TICK_TIMER -function(e, ...) - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, ...) - if se == "SPELL_HEAL" then - local source = select(5, ...) - if source == UnitName("player") then - local time, spell = GetTime(), select(13, ...) - if spell == "Judgment of Light" then - aura_env.htable[#aura_env.htable + 1] = time - return true - end - end - end - elseif e == "PLAYER_REGEN_DISABLED" then - aura_env.htable = {} - aura_env.combatTimer = 0 - if not aura_env.ticker then print("No ticker found, starting new one"); aura_env.ticker = C_Timer.NewTicker(aura_env.interval, function() WeakAuras.ScanEvents("UPDATE_DCPS") end) end -elseif e == "PLAYER_REGEN_ENABLED" then - if aura_env.ticker then print("Ticker found, killing it"); aura_env.ticker:Cancel(); aura_env.ticker = nil end -elseif e == "UPDATE_DCPS" then - aura_env.tempcount = aura_env.tempcount + 1 - if aura_env.tempcount >= 1 / aura_env.interval then - aura_env.tempcount = 0 - aura_env.combatTimer = aura_env.combatTimer + 1 - end - return true -end -end - ---DISPLAY -function() - local dc = 0 - local timeinterval = 10 - for i = #aura_env.htable, 1, -1 do - if aura_env.htable[i] > GetTime() - timeinterval then - dc = dc + 1 - else - break - end - end - return string.format("%.1f\n%.1f", dc / timeinterval, #aura_env.htable / aura_env.combatTimer) -end - ---INIT -if not aura_env.combatTimer then aura_env.combatTimer = 0 end -if not aura_env.htable then aura_env.htable = {} end -if not aura_env.interval then aura_env.interval = 0.1 end -if not aura_env.tempcount then aura_env.tempcount = 0 end -if WeakAuras.IsOptionsOpen() and aura_env.ticker then - aura_env.ticker:Cancel() -end +--COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED UPDATE_DCPS TICK_TIMER +function(e, ...) + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, ...) + if se == "SPELL_HEAL" then + local source = select(5, ...) + if source == UnitName("player") then + local time, spell = GetTime(), select(13, ...) + if spell == "Judgment of Light" then + aura_env.htable[#aura_env.htable + 1] = time + return true + end + end + end + elseif e == "PLAYER_REGEN_DISABLED" then + aura_env.htable = {} + aura_env.combatTimer = 0 + if not aura_env.ticker then print("No ticker found, starting new one"); aura_env.ticker = C_Timer.NewTicker(aura_env.interval, function() WeakAuras.ScanEvents("UPDATE_DCPS") end) end +elseif e == "PLAYER_REGEN_ENABLED" then + if aura_env.ticker then print("Ticker found, killing it"); aura_env.ticker:Cancel(); aura_env.ticker = nil end +elseif e == "UPDATE_DCPS" then + aura_env.tempcount = aura_env.tempcount + 1 + if aura_env.tempcount >= 1 / aura_env.interval then + aura_env.tempcount = 0 + aura_env.combatTimer = aura_env.combatTimer + 1 + end + return true +end +end + +--DISPLAY +function() + local dc = 0 + local timeinterval = 10 + for i = #aura_env.htable, 1, -1 do + if aura_env.htable[i] > GetTime() - timeinterval then + dc = dc + 1 + else + break + end + end + return string.format("%.1f\n%.1f", dc / timeinterval, #aura_env.htable / aura_env.combatTimer) +end + +--INIT +if not aura_env.combatTimer then aura_env.combatTimer = 0 end +if not aura_env.htable then aura_env.htable = {} end +if not aura_env.interval then aura_env.interval = 0.1 end +if not aura_env.tempcount then aura_env.tempcount = 0 end +if WeakAuras.IsOptionsOpen() and aura_env.ticker then + aura_env.ticker:Cancel() +end diff --git a/Complete Projects/Legion/Judgment of Light.lua b/WeakAuras/Projects/Judgment of Light.lua similarity index 96% rename from Complete Projects/Legion/Judgment of Light.lua rename to WeakAuras/Projects/Judgment of Light.lua index d41cd0f..d698b85 100644 --- a/Complete Projects/Legion/Judgment of Light.lua +++ b/WeakAuras/Projects/Judgment of Light.lua @@ -1,41 +1,41 @@ -DISPLAY -function() - if aura_env.update == 1 then - for i = 1, 40 do - if UnitExists("nameplate" .. i) and UnitIsEnemy("player", "nameplate" .. i) and UnitAffectingCombat("nameplate" .. i) then - aura_env.enemies = aura_env.enemies + 1 - if UnitDebuff("nameplate" .. i, "Judgment of Light") then - aura_env.lightenemies = aura_env.lightenemies + 1 - local stacks = select(4, UnitDebuff("nameplate" .. i, "Judgment of Light")) - aura_env.totalstacks = aura_env.totalstacks + stacks - aura_env.update = 0 - end - end - end - end - return aura_env.lightenemies .. "/" .. aura_env.enemies .. " " .. aura_env.totalstacks -end - -TRIGGER -NAME_PLATE_UNIT_ADDED / REMOVED -function(...) - local subEvent = select(3, ...) - local caster = select(6, ...) - if (subEvent == "SPELL_AURA_APPLIED" or subEvent == "SPELL_HEAL" or subEvent == "SPELL_AURA_REMOVED") and aura_env.update == 0 and caster == UnitName("player") and InCombatLockdown("player") then - aura_env.lightenemies = 0 - aura_env.enemies = 0 - aura_env.totalstacks = 0 - aura_env.update = 1 - end -end - -DURATION -function() - return aura_env.totalstacks, aura_env.lightenemies * 40, 1 -end - -INIT -aura_env.update = 0 -aura_env.lightenemies = 0 -aura_env.enemies = 0 +DISPLAY +function() + if aura_env.update == 1 then + for i = 1, 40 do + if UnitExists("nameplate" .. i) and UnitIsEnemy("player", "nameplate" .. i) and UnitAffectingCombat("nameplate" .. i) then + aura_env.enemies = aura_env.enemies + 1 + if UnitDebuff("nameplate" .. i, "Judgment of Light") then + aura_env.lightenemies = aura_env.lightenemies + 1 + local stacks = select(4, UnitDebuff("nameplate" .. i, "Judgment of Light")) + aura_env.totalstacks = aura_env.totalstacks + stacks + aura_env.update = 0 + end + end + end + end + return aura_env.lightenemies .. "/" .. aura_env.enemies .. " " .. aura_env.totalstacks +end + +TRIGGER +NAME_PLATE_UNIT_ADDED / REMOVED +function(...) + local subEvent = select(3, ...) + local caster = select(6, ...) + if (subEvent == "SPELL_AURA_APPLIED" or subEvent == "SPELL_HEAL" or subEvent == "SPELL_AURA_REMOVED") and aura_env.update == 0 and caster == UnitName("player") and InCombatLockdown("player") then + aura_env.lightenemies = 0 + aura_env.enemies = 0 + aura_env.totalstacks = 0 + aura_env.update = 1 + end +end + +DURATION +function() + return aura_env.totalstacks, aura_env.lightenemies * 40, 1 +end + +INIT +aura_env.update = 0 +aura_env.lightenemies = 0 +aura_env.enemies = 0 aura_env.totalstacks = 0 \ No newline at end of file diff --git a/Complete Projects/Legion/Judgment of Light/AP.lua b/WeakAuras/Projects/Judgment of Light/AP.lua similarity index 96% rename from Complete Projects/Legion/Judgment of Light/AP.lua rename to WeakAuras/Projects/Judgment of Light/AP.lua index 7f46be2..59abffe 100644 --- a/Complete Projects/Legion/Judgment of Light/AP.lua +++ b/WeakAuras/Projects/Judgment of Light/AP.lua @@ -1,17 +1,17 @@ ---DISPLAY -function() - if GetSpecialization() == 1 then - local AP = select(4, UnitDebuff("focus", "Judgment of Light")) or 0 - return AP - end - if GetSpecialization() == 2 then - local AP = 0 - for i = 1, 40 do - if UnitExists("nameplate" .. i) and UnitDebuff("nameplate" .. i,"Judgment of Light") then - local APP = select(4, UnitDebuff("nameplate" .. i, "Judgment of Light")) or 0 - AP = AP + APP - end - end - return AP - end +--DISPLAY +function() + if GetSpecialization() == 1 then + local AP = select(4, UnitDebuff("focus", "Judgment of Light")) or 0 + return AP + end + if GetSpecialization() == 2 then + local AP = 0 + for i = 1, 40 do + if UnitExists("nameplate" .. i) and UnitDebuff("nameplate" .. i,"Judgment of Light") then + local APP = select(4, UnitDebuff("nameplate" .. i, "Judgment of Light")) or 0 + AP = AP + APP + end + end + return AP + end end \ No newline at end of file diff --git a/Complete Projects/Legion/Judgment of Light/Background.lua b/WeakAuras/Projects/Judgment of Light/Background.lua similarity index 95% rename from Complete Projects/Legion/Judgment of Light/Background.lua rename to WeakAuras/Projects/Judgment of Light/Background.lua index 70d59b2..763c240 100644 --- a/Complete Projects/Legion/Judgment of Light/Background.lua +++ b/WeakAuras/Projects/Judgment of Light/Background.lua @@ -1,25 +1,25 @@ ---TRIGGER -function() - return true -end - ---DURATION -function() - if GetSpecialization() == 1 then - local AP = select(4, UnitDebuff("focus", "Judgment of Light")) or 0 - local maxAP = 40 - return AP, maxAP, 1 - end - if GetSpecialization() == 2 then - local AP = 0 - local maxAP = 0 - for i = 1, 40 do - if UnitExists("nameplate" .. i) and UnitDebuff("nameplate" .. i,"Judgment of Light") then - local APP = select(4, UnitDebuff("nameplate" .. i, "Judgment of Light")) or 0 - maxAP = maxAP + 40 - AP = AP + APP - end - end - end - return AP, maxAP, 1 +--TRIGGER +function() + return true +end + +--DURATION +function() + if GetSpecialization() == 1 then + local AP = select(4, UnitDebuff("focus", "Judgment of Light")) or 0 + local maxAP = 40 + return AP, maxAP, 1 + end + if GetSpecialization() == 2 then + local AP = 0 + local maxAP = 0 + for i = 1, 40 do + if UnitExists("nameplate" .. i) and UnitDebuff("nameplate" .. i,"Judgment of Light") then + local APP = select(4, UnitDebuff("nameplate" .. i, "Judgment of Light")) or 0 + maxAP = maxAP + 40 + AP = AP + APP + end + end + end + return AP, maxAP, 1 end \ No newline at end of file diff --git a/Complete Projects/Legion/Judgment of Light/CODE.txt b/WeakAuras/Projects/Judgment of Light/CODE.txt similarity index 100% rename from Complete Projects/Legion/Judgment of Light/CODE.txt rename to WeakAuras/Projects/Judgment of Light/CODE.txt diff --git a/Complete Projects/Legion/Judgment of Light/Current AP.lua b/WeakAuras/Projects/Judgment of Light/Current AP.lua similarity index 96% rename from Complete Projects/Legion/Judgment of Light/Current AP.lua rename to WeakAuras/Projects/Judgment of Light/Current AP.lua index cd3eaec..65a493f 100644 --- a/Complete Projects/Legion/Judgment of Light/Current AP.lua +++ b/WeakAuras/Projects/Judgment of Light/Current AP.lua @@ -1,25 +1,25 @@ ---TRIGGER -function() - return true --always on -end - ---DURATION -function() - if GetSpecialization() == 1 then - local AP = select(4, UnitDebuff("focus", "Judgment of Light")) or 0 - local maxAP = 40 - return maxAP - AP, maxAP, 1 - end - if GetSpecialization() == 2 then - local AP = 0 - local maxAP = 0 - for i = 1, 40 do - if UnitExists("nameplate" .. i) and UnitDebuff("nameplate" .. i,"Judgment of Light") then - local APP = select(4, UnitDebuff("nameplate" .. i, "Judgment of Light")) or 0 - maxAP = maxAP + 40 - AP = AP + APP - end - end - return maxAP - AP, maxAP, 1 - end +--TRIGGER +function() + return true --always on +end + +--DURATION +function() + if GetSpecialization() == 1 then + local AP = select(4, UnitDebuff("focus", "Judgment of Light")) or 0 + local maxAP = 40 + return maxAP - AP, maxAP, 1 + end + if GetSpecialization() == 2 then + local AP = 0 + local maxAP = 0 + for i = 1, 40 do + if UnitExists("nameplate" .. i) and UnitDebuff("nameplate" .. i,"Judgment of Light") then + local APP = select(4, UnitDebuff("nameplate" .. i, "Judgment of Light")) or 0 + maxAP = maxAP + 40 + AP = AP + APP + end + end + return maxAP - AP, maxAP, 1 + end end \ No newline at end of file diff --git a/Complete Projects/Legion/Juked.lua b/WeakAuras/Projects/Juked.lua similarity index 96% rename from Complete Projects/Legion/Juked.lua rename to WeakAuras/Projects/Juked.lua index ec5aba3..8a1e296 100644 --- a/Complete Projects/Legion/Juked.lua +++ b/WeakAuras/Projects/Juked.lua @@ -1,129 +1,129 @@ ---COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED TICKER_GO_PING -function(allstates, e, ...) - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - if InCombatLockdown() == true then - local se = select(2, ...) - if se == "SPELL_CAST_SUCCESS" then - local caster = select(5, ...) - local casterFlags = select(6, ...) - if bit.band(casterFlags, 0x00000010) then --Hostiles - --if bit.band(casterFlags, 0x00000140) then --Hostile players - local spellID = select(12, ...) - if aura_env.spells[spellID] then - allstates[caster] = { - show = true, - changed = true, - progressType = "timed", - expirationTime = GetTime() + aura_env.spells[spellID].time, - duration = aura_env.spells[spellID].time, - autohide = true, - index = GetTime() + aura_env.spells[spellID].time, - resort = true, - icon = select(3, GetSpellInfo(spellID)), - } - return true - end - end - end - end - elseif e == "TICKER_GO_PING" then - for k, v in pairs(allstates) do - if v.expirationTime < GetTime() then - v.show = false - v.changed = true - end - if not v.icon then - v.show = false - v.changed = true - end - end - return true - elseif e == "PLAYER_REGEN_DISABLED" then - aura_env.tickerGoPing = C_Timer.NewTicker(0.2, function() - WeakAuras.ScanEvents("TICKER_GO_PING") - end) - elseif e == "PLAYER_REGEN_ENABLED" then - aura_env.tickerGoPing:Cancel() - for k, v in pairs(allstates) do - v.show = false - v.changed = true - end - return true - end -end - ---INIT -aura_env.spells = { - --[774] = { - -- ["time"] = 10, - -- ["prio"] = true, - --}, - [6552] = { - ["time"] = 15, - ["prio"] = true, - }, --Pummel - [23920] = { - ["time"] = 25, - prio = false, - }, --Spell Reflection - [1766] = { - ["time"] = 15, - ["prio"] = true, - }, --Kick - [47528] = { - ["time"] = 15, - ["prio"] = true, - }, --Mind Freeze - [47476] = { - ["time"] = 60, - prio = false, - }, --Strangulate - [96231] = { - ["time"] = 15, - ["prio"] = true, - }, --Rebuke - [31935] = { - ["time"] = 15, - ["prio"] = true, - }, --Avengers Shield - [57994] = { - ["time"] = 12, - ["prio"] = true, - }, --Wind Shear - [2139] = { - ["time"] = 24, - ["prio"] = true, - }, --Counterspell - [19647] = { - ["time"] = 24, - ["prio"] = true, - }, --Spell Lock - [119911] = { - ["time"] = 24, - ["prio"] = true, - }, --Optical Blast - [106839] = { - ["time"] = 15, - ["prio"] = true, - }, --Skull Bash - [78675] = { - ["time"] = 60, - ["prio"] = true, - }, --Solar Bream - [116705] = { - ["time"] = 15, - ["prio"] = true, - }, --Spear Hand Strike - [15487] = { - ["time"] = 45, - prio = false, - }, --Silence - [114028] = { - ["time"] = 30, - prio = false, - }, --Mass Spell Reflect - [147362] = { - ["time"] = 24, - ["prio"] = true, - }, --Counter Shot -} +--COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED TICKER_GO_PING +function(allstates, e, ...) + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + if InCombatLockdown() == true then + local se = select(2, ...) + if se == "SPELL_CAST_SUCCESS" then + local caster = select(5, ...) + local casterFlags = select(6, ...) + if bit.band(casterFlags, 0x00000010) then --Hostiles + --if bit.band(casterFlags, 0x00000140) then --Hostile players + local spellID = select(12, ...) + if aura_env.spells[spellID] then + allstates[caster] = { + show = true, + changed = true, + progressType = "timed", + expirationTime = GetTime() + aura_env.spells[spellID].time, + duration = aura_env.spells[spellID].time, + autohide = true, + index = GetTime() + aura_env.spells[spellID].time, + resort = true, + icon = select(3, GetSpellInfo(spellID)), + } + return true + end + end + end + end + elseif e == "TICKER_GO_PING" then + for k, v in pairs(allstates) do + if v.expirationTime < GetTime() then + v.show = false + v.changed = true + end + if not v.icon then + v.show = false + v.changed = true + end + end + return true + elseif e == "PLAYER_REGEN_DISABLED" then + aura_env.tickerGoPing = C_Timer.NewTicker(0.2, function() + WeakAuras.ScanEvents("TICKER_GO_PING") + end) + elseif e == "PLAYER_REGEN_ENABLED" then + aura_env.tickerGoPing:Cancel() + for k, v in pairs(allstates) do + v.show = false + v.changed = true + end + return true + end +end + +--INIT +aura_env.spells = { + --[774] = { + -- ["time"] = 10, + -- ["prio"] = true, + --}, + [6552] = { + ["time"] = 15, + ["prio"] = true, + }, --Pummel + [23920] = { + ["time"] = 25, + prio = false, + }, --Spell Reflection + [1766] = { + ["time"] = 15, + ["prio"] = true, + }, --Kick + [47528] = { + ["time"] = 15, + ["prio"] = true, + }, --Mind Freeze + [47476] = { + ["time"] = 60, + prio = false, + }, --Strangulate + [96231] = { + ["time"] = 15, + ["prio"] = true, + }, --Rebuke + [31935] = { + ["time"] = 15, + ["prio"] = true, + }, --Avengers Shield + [57994] = { + ["time"] = 12, + ["prio"] = true, + }, --Wind Shear + [2139] = { + ["time"] = 24, + ["prio"] = true, + }, --Counterspell + [19647] = { + ["time"] = 24, + ["prio"] = true, + }, --Spell Lock + [119911] = { + ["time"] = 24, + ["prio"] = true, + }, --Optical Blast + [106839] = { + ["time"] = 15, + ["prio"] = true, + }, --Skull Bash + [78675] = { + ["time"] = 60, + ["prio"] = true, + }, --Solar Bream + [116705] = { + ["time"] = 15, + ["prio"] = true, + }, --Spear Hand Strike + [15487] = { + ["time"] = 45, + prio = false, + }, --Silence + [114028] = { + ["time"] = 30, + prio = false, + }, --Mass Spell Reflect + [147362] = { + ["time"] = 24, + ["prio"] = true, + }, --Counter Shot +} diff --git a/Complete Projects/Legion/KeyGlow.lua b/WeakAuras/Projects/KeyGlow.lua similarity index 97% rename from Complete Projects/Legion/KeyGlow.lua rename to WeakAuras/Projects/KeyGlow.lua index 807b5f9..f02caf6 100644 --- a/Complete Projects/Legion/KeyGlow.lua +++ b/WeakAuras/Projects/KeyGlow.lua @@ -1,42 +1,42 @@ ---BAG_UPDATE -function(e) - if #aura_env.glowList > 0 then - for k, v in ipairs(aura_env.glowList) do - local link = select(7, GetContainerItemInfo(v.bag, v.slot)) - local hasItem = false - for k, v in pairs(aura_env.itemList) do - if link and link:match(v) then - hasItem = true - end - end - if hasItem == false then - ActionButton_HideOverlayGlow(_G["ElvUI_ContainerFrameBag" .. v.bag .. "Slot" ..v.slot]) - end - end - end - for i = 0, 4 do - for j = 1, GetContainerNumSlots(i) do - local link = select(7, GetContainerItemInfo(i, j)) - local hasItem = false - if link then - for k, v in pairs(aura_env.itemList) do - if link and link:match(v) then - hasItem = true - end - end - end - if hasItem == true then - aura_env.glowList[#aura_env.glowList + 1] = { - ["bag"] = i, - ["slot"] = j, - ["item"] = v, --ATTENTION D: - } - ActionButton_ShowOverlayGlow(_G["ElvUI_ContainerFrameBag" .. i .. "Slot" ..j]) - end - end - end -end - ---INIT -aura_env.itemList = {"Keystone", "Tome of the Tranquil Mind"} -aura_env.glowList = {} +--BAG_UPDATE +function(e) + if #aura_env.glowList > 0 then + for k, v in ipairs(aura_env.glowList) do + local link = select(7, GetContainerItemInfo(v.bag, v.slot)) + local hasItem = false + for k, v in pairs(aura_env.itemList) do + if link and link:match(v) then + hasItem = true + end + end + if hasItem == false then + ActionButton_HideOverlayGlow(_G["ElvUI_ContainerFrameBag" .. v.bag .. "Slot" ..v.slot]) + end + end + end + for i = 0, 4 do + for j = 1, GetContainerNumSlots(i) do + local link = select(7, GetContainerItemInfo(i, j)) + local hasItem = false + if link then + for k, v in pairs(aura_env.itemList) do + if link and link:match(v) then + hasItem = true + end + end + end + if hasItem == true then + aura_env.glowList[#aura_env.glowList + 1] = { + ["bag"] = i, + ["slot"] = j, + ["item"] = v, --ATTENTION D: + } + ActionButton_ShowOverlayGlow(_G["ElvUI_ContainerFrameBag" .. i .. "Slot" ..j]) + end + end + end +end + +--INIT +aura_env.itemList = {"Keystone", "Tome of the Tranquil Mind"} +aura_env.glowList = {} diff --git a/Complete Projects/Legion/Kill - Wipe counter.lua b/WeakAuras/Projects/Kill - Wipe counter.lua similarity index 97% rename from Complete Projects/Legion/Kill - Wipe counter.lua rename to WeakAuras/Projects/Kill - Wipe counter.lua index 4b5ecc8..2364fa1 100644 --- a/Complete Projects/Legion/Kill - Wipe counter.lua +++ b/WeakAuras/Projects/Kill - Wipe counter.lua @@ -1,33 +1,33 @@ ---KillsnWipes Global ---ENCOUNTER_START ENCOUNTER_END -function(event, encounterID, encounterName, difficultyID, groupSize, success) - print(event, encounterID, encounterName, difficultyID, groupSize, success) - if difficultyID == 14 or difficultyID == 15 or difficultyID == 16 or difficultyID == 17 then - if difficultyID == 14 then - local difficulty = "Normal" - elseif difficultyID == 15 then - local difficulty = "Heroic" - elseif difficultyID == 16 then - local difficulty = "Mythic" - elseif difficultyID == 17 then - local difficulty = "LFR" - end - if event == "ENCOUNTER_START" then - if KillsnWipes.encounterName == nil then - KillsnWipes.encounterName = {["Normal"] = {}, ["Heroic"] = {}, ["Mythic"] = {}, ["LFR"] = {}} - KillsnWipes.encounterName.Normal = {["tries"] = 0, ["wipes"] = 0, ["kills"] = 0} - KillsnWipes.encounterName.Heroic = {["tries"] = 0, ["wipes"] = 0, ["kills"] = 0} - KillsnWipes.encounterName.Mythic = {["tries"] = 0, ["wipes"] = 0, ["kills"] = 0} - KillsnWipes.encounterName.LFR = {["tries"] = 0, ["wipes"] = 0, ["kills"] = 0} - end - KillsnWipes.encounterName[difficulty].tries = KillsnWipes.encounterName[difficulty].tries + 1 - end - if event == "ENCOUNTER_END" then - if success == 0 then - KillsnWipes.encounterName[difficulty].wipes = KillsnWipes.encounterName[difficulty].wipes + 1 - else - KillsnWipes.encounterName[difficulty].kills = KillsnWipes.encounterName[difficulty].kills + 1 - end - end - end +--KillsnWipes Global +--ENCOUNTER_START ENCOUNTER_END +function(event, encounterID, encounterName, difficultyID, groupSize, success) + print(event, encounterID, encounterName, difficultyID, groupSize, success) + if difficultyID == 14 or difficultyID == 15 or difficultyID == 16 or difficultyID == 17 then + if difficultyID == 14 then + local difficulty = "Normal" + elseif difficultyID == 15 then + local difficulty = "Heroic" + elseif difficultyID == 16 then + local difficulty = "Mythic" + elseif difficultyID == 17 then + local difficulty = "LFR" + end + if event == "ENCOUNTER_START" then + if KillsnWipes.encounterName == nil then + KillsnWipes.encounterName = {["Normal"] = {}, ["Heroic"] = {}, ["Mythic"] = {}, ["LFR"] = {}} + KillsnWipes.encounterName.Normal = {["tries"] = 0, ["wipes"] = 0, ["kills"] = 0} + KillsnWipes.encounterName.Heroic = {["tries"] = 0, ["wipes"] = 0, ["kills"] = 0} + KillsnWipes.encounterName.Mythic = {["tries"] = 0, ["wipes"] = 0, ["kills"] = 0} + KillsnWipes.encounterName.LFR = {["tries"] = 0, ["wipes"] = 0, ["kills"] = 0} + end + KillsnWipes.encounterName[difficulty].tries = KillsnWipes.encounterName[difficulty].tries + 1 + end + if event == "ENCOUNTER_END" then + if success == 0 then + KillsnWipes.encounterName[difficulty].wipes = KillsnWipes.encounterName[difficulty].wipes + 1 + else + KillsnWipes.encounterName[difficulty].kills = KillsnWipes.encounterName[difficulty].kills + 1 + end + end + end end \ No newline at end of file diff --git a/Complete Projects/Legion/KoSList.lua b/WeakAuras/Projects/KoSList.lua similarity index 96% rename from Complete Projects/Legion/KoSList.lua rename to WeakAuras/Projects/KoSList.lua index 2a7f505..a0ba8f5 100644 --- a/Complete Projects/Legion/KoSList.lua +++ b/WeakAuras/Projects/KoSList.lua @@ -1,33 +1,33 @@ ---NAME_PLATE_UNIT_REMOVED NAME_PLATE_UNIT_ADDED ADD_KOS -function(e, u) - if e == "NAME_PLATE_UNIT_ADDED" then - if WeakAurasSaved.CustomTrash.KoSList[UnitName(u)] == 1 then - aura_env.koslist[UnitName(u)] = 1 - return true - end - elseif e == "NAME_PLATE_UNIT_REMOVED" then - if WeakAurasSaved.CustomTrash.KoSList[UnitName(u)] == 1 and aura_env.koslist[UnitName(u)] == 1 then - aura_env.koslist[UnitName(u)] = nil - return true - end - elseif e == "ADD_KOS" then - if not WeakAurasSaved.CustomTrash.KoSList[u] and u then - WeakAurasSaved.CustomTrash.KoSList[u] = 1 - end - end -end - ---DISPLAY -function() - local output = "" - for k, v in pairs(aura_env.koslist) do - if v == 1 then - output = output .. k .. "\n" - end - end - return output -end - ---INIT -aura_env.koslist = {} -if not WeakAurasSaved.CustomTrash.KoSList then WeakAurasSaved.CustomTrash.KoSList = {} end +--NAME_PLATE_UNIT_REMOVED NAME_PLATE_UNIT_ADDED ADD_KOS +function(e, u) + if e == "NAME_PLATE_UNIT_ADDED" then + if WeakAurasSaved.CustomTrash.KoSList[UnitName(u)] == 1 then + aura_env.koslist[UnitName(u)] = 1 + return true + end + elseif e == "NAME_PLATE_UNIT_REMOVED" then + if WeakAurasSaved.CustomTrash.KoSList[UnitName(u)] == 1 and aura_env.koslist[UnitName(u)] == 1 then + aura_env.koslist[UnitName(u)] = nil + return true + end + elseif e == "ADD_KOS" then + if not WeakAurasSaved.CustomTrash.KoSList[u] and u then + WeakAurasSaved.CustomTrash.KoSList[u] = 1 + end + end +end + +--DISPLAY +function() + local output = "" + for k, v in pairs(aura_env.koslist) do + if v == 1 then + output = output .. k .. "\n" + end + end + return output +end + +--INIT +aura_env.koslist = {} +if not WeakAurasSaved.CustomTrash.KoSList then WeakAurasSaved.CustomTrash.KoSList = {} end diff --git a/Complete Projects/Legion/Last n Melee.lua b/WeakAuras/Projects/Last n Melee.lua similarity index 96% rename from Complete Projects/Legion/Last n Melee.lua rename to WeakAuras/Projects/Last n Melee.lua index a6d2d6e..0029738 100644 --- a/Complete Projects/Legion/Last n Melee.lua +++ b/WeakAuras/Projects/Last n Melee.lua @@ -1,94 +1,94 @@ ---DISPLAY -function() - local minhit, maxhit = 9999999, 0 - local function tohex(input) - local output = string.format("%x", input * 255) - return output - end - - local function grad(c, minhit, maxhit) - c = (((maxhit - c) / (maxhit - minhit)) * 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 shorten(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 - end - - local output = "MELEE" .. "\n" - local totaldmgdone = 0 - for k,v in ipairs(aura_env.swings) do --Get total dmg for average hit - totaldmgdone = totaldmgdone + v - end - if #aura_env.swings > 0 then - output = output .. shorten(totaldmgdone / #aura_env.swings) .. "\n\n" - - for k,v in ipairs(aura_env.swings) do --Get min and max hit - if v > maxhit then - maxhit = v - end - if v < minhit then - minhit = v - end - end - for k,v in ipairs(aura_env.swings) do --Final format for output - local color1, color2, color3, color4 = 0, 0, 0, 0 - color1, color2, color3, color4 = grad(v, minhit, maxhit) - 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 color1 == "0" then color1 = "00" end - if color2 == "0" then color2 = "00" end - if color3 == "0" then color3 = "00" end - local color = "|c" .. color4 .. color1 .. color2 .. color3 - output = output .. color .. shorten(v) .. "\n" - end - end - return output -end - ---PLAYER_REGEN_DISABLED -function() - aura_env.swings = {} -end - ---COMBAT_LOG_EVENT_UNFILTERED -function(...) - local subEvent = select(3, ...) - local target = select(10, ...) - if subEvent == "SWING_DAMAGE" and target == UnitName("player") then - local block = select(17, ...) or 0 - local var = select(13, ...) + block - if #aura_env.swings == 10 then - table.remove(aura_env.swings, 1) - end - table.insert(aura_env.swings, var) - end -end - ---INIT -aura_env.swingerino = 10 -aura_env.swings = {} +--DISPLAY +function() + local minhit, maxhit = 9999999, 0 + local function tohex(input) + local output = string.format("%x", input * 255) + return output + end + + local function grad(c, minhit, maxhit) + c = (((maxhit - c) / (maxhit - minhit)) * 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 shorten(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 + end + + local output = "MELEE" .. "\n" + local totaldmgdone = 0 + for k,v in ipairs(aura_env.swings) do --Get total dmg for average hit + totaldmgdone = totaldmgdone + v + end + if #aura_env.swings > 0 then + output = output .. shorten(totaldmgdone / #aura_env.swings) .. "\n\n" + + for k,v in ipairs(aura_env.swings) do --Get min and max hit + if v > maxhit then + maxhit = v + end + if v < minhit then + minhit = v + end + end + for k,v in ipairs(aura_env.swings) do --Final format for output + local color1, color2, color3, color4 = 0, 0, 0, 0 + color1, color2, color3, color4 = grad(v, minhit, maxhit) + 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 color1 == "0" then color1 = "00" end + if color2 == "0" then color2 = "00" end + if color3 == "0" then color3 = "00" end + local color = "|c" .. color4 .. color1 .. color2 .. color3 + output = output .. color .. shorten(v) .. "\n" + end + end + return output +end + +--PLAYER_REGEN_DISABLED +function() + aura_env.swings = {} +end + +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local subEvent = select(3, ...) + local target = select(10, ...) + if subEvent == "SWING_DAMAGE" and target == UnitName("player") then + local block = select(17, ...) or 0 + local var = select(13, ...) + block + if #aura_env.swings == 10 then + table.remove(aura_env.swings, 1) + end + table.insert(aura_env.swings, var) + end +end + +--INIT +aura_env.swingerino = 10 +aura_env.swings = {} aura_env.pointer = 1 \ No newline at end of file diff --git a/Complete Projects/Legion/Last n Spells.lua b/WeakAuras/Projects/Last n Spells.lua similarity index 96% rename from Complete Projects/Legion/Last n Spells.lua rename to WeakAuras/Projects/Last n Spells.lua index 90c7421..25b1c6c 100644 --- a/Complete Projects/Legion/Last n Spells.lua +++ b/WeakAuras/Projects/Last n Spells.lua @@ -1,93 +1,93 @@ ---DISPLAY -function() - local minhit, maxhit = 9999999, 0 - local function tohex(input) - local output = string.format("%x", input * 255) - return output - end - - local function grad(c, minhit, maxhit) - c = (((maxhit - c) / (maxhit - minhit)) * 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 shorten(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 - end - - local output = "SPELL" .. "\n" - local totaldmgdone = 0 - for k,v in ipairs(aura_env.swings) do --Get total dmg for average hit - totaldmgdone = totaldmgdone + v - end - if #aura_env.swings > 0 then - output = output .. shorten(totaldmgdone / #aura_env.swings) .. "\n\n" - - for k,v in ipairs(aura_env.swings) do --Get min and max hit - if v > maxhit then - maxhit = v - end - if v < minhit then - minhit = v - end - end - for k,v in ipairs(aura_env.swings) do --Final format for output - local color1, color2, color3, color4 = 0, 0, 0, 0 - color1, color2, color3, color4 = grad(v, minhit, maxhit) - 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 color1 == "0" then color1 = "00" end - if color2 == "0" then color2 = "00" end - if color3 == "0" then color3 = "00" end - local color = "|c" .. color4 .. color1 .. color2 .. color3 - output = output .. color .. shorten(v) .. "\n" - end - end - return output -end - ---PLAYER_REGEN_DISABLED -function() - aura_env.swings = {} -end - ---COMBAT_LOG_EVENT_UNFILTERED -function(...) - local subEvent = select(3, ...) - local target = select(10, ...) - if subEvent == "SPELL_DAMAGE" and target == UnitName("player") then - local var = select(13, ...) - if #aura_env.swings == 10 then - table.remove(aura_env.swings, 1) - end - table.insert(aura_env.swings, var) - end -end - ---INIT -aura_env.swingerino = 10 -aura_env.swings = {} +--DISPLAY +function() + local minhit, maxhit = 9999999, 0 + local function tohex(input) + local output = string.format("%x", input * 255) + return output + end + + local function grad(c, minhit, maxhit) + c = (((maxhit - c) / (maxhit - minhit)) * 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 shorten(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 + end + + local output = "SPELL" .. "\n" + local totaldmgdone = 0 + for k,v in ipairs(aura_env.swings) do --Get total dmg for average hit + totaldmgdone = totaldmgdone + v + end + if #aura_env.swings > 0 then + output = output .. shorten(totaldmgdone / #aura_env.swings) .. "\n\n" + + for k,v in ipairs(aura_env.swings) do --Get min and max hit + if v > maxhit then + maxhit = v + end + if v < minhit then + minhit = v + end + end + for k,v in ipairs(aura_env.swings) do --Final format for output + local color1, color2, color3, color4 = 0, 0, 0, 0 + color1, color2, color3, color4 = grad(v, minhit, maxhit) + 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 color1 == "0" then color1 = "00" end + if color2 == "0" then color2 = "00" end + if color3 == "0" then color3 = "00" end + local color = "|c" .. color4 .. color1 .. color2 .. color3 + output = output .. color .. shorten(v) .. "\n" + end + end + return output +end + +--PLAYER_REGEN_DISABLED +function() + aura_env.swings = {} +end + +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local subEvent = select(3, ...) + local target = select(10, ...) + if subEvent == "SPELL_DAMAGE" and target == UnitName("player") then + local var = select(13, ...) + if #aura_env.swings == 10 then + table.remove(aura_env.swings, 1) + end + table.insert(aura_env.swings, var) + end +end + +--INIT +aura_env.swingerino = 10 +aura_env.swings = {} aura_env.pointer = 1 \ No newline at end of file diff --git a/WIP/Last n spells cast.lua b/WeakAuras/Projects/Last n spells cast.lua similarity index 96% rename from WIP/Last n spells cast.lua rename to WeakAuras/Projects/Last n spells cast.lua index 9aa6ba0..1648ca7 100644 --- a/WIP/Last n spells cast.lua +++ b/WeakAuras/Projects/Last n spells cast.lua @@ -1,30 +1,30 @@ -COMBAT_LOG_EVENT_UNFILTERED -function(...) - DavesFuckerySpellsCast = {} - local subevent = select(3, ...) - local caster = --GET CASTER FROM INGAME EVENT - local function addSpell(spellname) - if #DavesFuckerySpellsCast == aura_env.maxspells then - table.remove(DavesFuckerySpellsCast, 1) - table.insert(DavesFuckerySpellsCast, spellname) - else - table.insert(DavesFuckerySpellsCast,spellname) - end - end - if aura_env.casterName ~= "" then - if subevent == "SPELL_CAST_SUCCESS" and caster == aura_env.casterName then - local spellname = --GET SPELL NAME FROM INGAME EVENT - addSpell(spellname) - end - else - if subevent == "SPELL_CAST_SUCCESS" and caster == UnitName(aura_env.casterID) then - local spellname = --GET SPELL NAME FROM INGAME EVENT - addSpell(spellname) - end - end -end - -INIT -aura_env.maxspells = 5 -aura_env.casterID = "player" +COMBAT_LOG_EVENT_UNFILTERED +function(...) + DavesFuckerySpellsCast = {} + local subevent = select(3, ...) + local caster = --GET CASTER FROM INGAME EVENT + local function addSpell(spellname) + if #DavesFuckerySpellsCast == aura_env.maxspells then + table.remove(DavesFuckerySpellsCast, 1) + table.insert(DavesFuckerySpellsCast, spellname) + else + table.insert(DavesFuckerySpellsCast,spellname) + end + end + if aura_env.casterName ~= "" then + if subevent == "SPELL_CAST_SUCCESS" and caster == aura_env.casterName then + local spellname = --GET SPELL NAME FROM INGAME EVENT + addSpell(spellname) + end + else + if subevent == "SPELL_CAST_SUCCESS" and caster == UnitName(aura_env.casterID) then + local spellname = --GET SPELL NAME FROM INGAME EVENT + addSpell(spellname) + end + end +end + +INIT +aura_env.maxspells = 5 +aura_env.casterID = "player" aura_env.casterName = "" \ No newline at end of file diff --git a/Complete Projects/Legion/Leggo Sniffer.lua b/WeakAuras/Projects/Leggo Sniffer.lua similarity index 95% rename from Complete Projects/Legion/Leggo Sniffer.lua rename to WeakAuras/Projects/Leggo Sniffer.lua index 02094f3..f20cfae 100644 --- a/Complete Projects/Legion/Leggo Sniffer.lua +++ b/WeakAuras/Projects/Leggo Sniffer.lua @@ -1,33 +1,33 @@ -PLAYER_TARGET_CHANGED -function() - local legCount = 0 - local slot = {0, 0} - local link = {"", ""} - if CheckInteractDistance("target", 1) and UnitIsPlayer("target") then - for i = 1, 15 do - local quality = GetInventoryItemQuality("target", i) - if quality == 5 then - legCount = legCount + 1 - slot[legCount] = i - link[legCount] = GetInventoryItemLink("target", i) - end - end - local querry = 2 - aura_env.texture = select(10, GetItemInfo(link[querry])) - if link[querry] == "" then - aura_env.trigger = 0 - end - print(link[querry]) - return true - end -end - -function() - if UnitExists("target") and UnitIsPlayer("target") then - return true - else - return false - end -end - +PLAYER_TARGET_CHANGED +function() + local legCount = 0 + local slot = {0, 0} + local link = {"", ""} + if CheckInteractDistance("target", 1) and UnitIsPlayer("target") then + for i = 1, 15 do + local quality = GetInventoryItemQuality("target", i) + if quality == 5 then + legCount = legCount + 1 + slot[legCount] = i + link[legCount] = GetInventoryItemLink("target", i) + end + end + local querry = 2 + aura_env.texture = select(10, GetItemInfo(link[querry])) + if link[querry] == "" then + aura_env.trigger = 0 + end + print(link[querry]) + return true + end +end + +function() + if UnitExists("target") and UnitIsPlayer("target") then + return true + else + return false + end +end + aura_env.texture = "" \ No newline at end of file diff --git a/Complete Projects/Legion/List the bois.lua b/WeakAuras/Projects/List the bois.lua similarity index 97% rename from Complete Projects/Legion/List the bois.lua rename to WeakAuras/Projects/List the bois.lua index 20a310b..fc0bcd4 100644 --- a/Complete Projects/Legion/List the bois.lua +++ b/WeakAuras/Projects/List the bois.lua @@ -1,96 +1,96 @@ ---COMBAT_LOG_EVENT_UNFILTERED GROUP_ROSTER_UPDATE -function(event, _, subevent) - if (event == "COMBAT_LOG_EVENT_UNFILTERED" and subevent == "UNIT_DIED") or event == "GROUP_ROSTER_UPDATE" then - aura_env.dps = 0 - aura_env.heal = 0 - aura_env.tank = 0 - - aura_env.dpsDead = 0 - aura_env.healDead = 0 - aura_env.tankDead = 0 - if IsInRaid("player") == true then - for i = 1, GetNumGroupMembers() do - if UnitGroupRolesAssigned("raid"..i) == "TANK" then - if UnitIsDeadOrGhost("raid"..i) then - aura_env.tankDead = aura_env.tankDead + 1 - else - aura_env.tank = aura_env.tank + 1 - end - end - if UnitGroupRolesAssigned("raid"..i) == "DAMAGER" then - if UnitIsDeadOrGhost("raid"..i) then - aura_env.dpsDead = aura_env.dpsDead + 1 - else - aura_env.dps = aura_env.dps + 1 - end - end - if UnitGroupRolesAssigned("raid"..i) == "HEALER" then - if UnitIsDeadOrGhost("raid"..i) then - aura_env.healDead = aura_env.healDead + 1 - else - aura_env.heal = aura_env.heal + 1 - end - end - end - else - for i = 1, GetNumGroupMembers() do - if UnitGroupRolesAssigned("party"..i) == "TANK" then - if UnitIsDeadOrGhost("party"..i) then - aura_env.tankDead = aura_env.tankDead + 1 - else - aura_env.tank = aura_env.tank + 1 - end - end - if UnitGroupRolesAssigned("party"..i) == "DAMAGER" then - if UnitIsDeadOrGhost("party"..i) then - aura_env.dpsDead = aura_env.dpsDead + 1 - else - aura_env.dps = aura_env.dps + 1 - end - end - if UnitGroupRolesAssigned("party"..i) == "HEALER" then - if UnitIsDeadOrGhost("party"..i) then - aura_env.healDead = aura_env.healDead + 1 - else - aura_env.heal = aura_env.heal + 1 - end - end - end - if UnitIsDeadOrGhost("player") then - if UnitGroupRolesAssigned("player") == "TANK" then - aura_env.tankDead = aura_env.tankDead + 1 - end - if UnitGroupRolesAssigned("player") == "DAMAGER" then - aura_env.dpsDead = aura_env.dpsDead + 1 - end - if UnitGroupRolesAssigned("player") == "HEALER" then - aura_env.healDead = aura_env.healDead + 1 - end - else - if UnitGroupRolesAssigned("player") == "TANK" then - aura_env.tank = aura_env.tank + 1 - end - if UnitGroupRolesAssigned("player") == "DAMAGER" then - aura_env.dps = aura_env.dps + 1 - end - if UnitGroupRolesAssigned("player") == "HEALER" then - aura_env.heal = aura_env.heal + 1 - end - end - end - end -end - ---DISPLAY -function() - return "TANKS: " .. aura_env.tank - aura_env.tankDead .. "\n" .. "HEALS: " .. aura_env.heal - aura_env.healDead .. "\n" .. "DPS:" .. aura_env.dps - aura_env.dpsDead -end - ---INIT -aura_env.dps = 0 -aura_env.heal = 0 -aura_env.tank = 0 - -aura_env.dpsDead = 0 -aura_env.healDead = 0 -aura_env.tankDead = 0 +--COMBAT_LOG_EVENT_UNFILTERED GROUP_ROSTER_UPDATE +function(event, _, subevent) + if (event == "COMBAT_LOG_EVENT_UNFILTERED" and subevent == "UNIT_DIED") or event == "GROUP_ROSTER_UPDATE" then + aura_env.dps = 0 + aura_env.heal = 0 + aura_env.tank = 0 + + aura_env.dpsDead = 0 + aura_env.healDead = 0 + aura_env.tankDead = 0 + if IsInRaid("player") == true then + for i = 1, GetNumGroupMembers() do + if UnitGroupRolesAssigned("raid"..i) == "TANK" then + if UnitIsDeadOrGhost("raid"..i) then + aura_env.tankDead = aura_env.tankDead + 1 + else + aura_env.tank = aura_env.tank + 1 + end + end + if UnitGroupRolesAssigned("raid"..i) == "DAMAGER" then + if UnitIsDeadOrGhost("raid"..i) then + aura_env.dpsDead = aura_env.dpsDead + 1 + else + aura_env.dps = aura_env.dps + 1 + end + end + if UnitGroupRolesAssigned("raid"..i) == "HEALER" then + if UnitIsDeadOrGhost("raid"..i) then + aura_env.healDead = aura_env.healDead + 1 + else + aura_env.heal = aura_env.heal + 1 + end + end + end + else + for i = 1, GetNumGroupMembers() do + if UnitGroupRolesAssigned("party"..i) == "TANK" then + if UnitIsDeadOrGhost("party"..i) then + aura_env.tankDead = aura_env.tankDead + 1 + else + aura_env.tank = aura_env.tank + 1 + end + end + if UnitGroupRolesAssigned("party"..i) == "DAMAGER" then + if UnitIsDeadOrGhost("party"..i) then + aura_env.dpsDead = aura_env.dpsDead + 1 + else + aura_env.dps = aura_env.dps + 1 + end + end + if UnitGroupRolesAssigned("party"..i) == "HEALER" then + if UnitIsDeadOrGhost("party"..i) then + aura_env.healDead = aura_env.healDead + 1 + else + aura_env.heal = aura_env.heal + 1 + end + end + end + if UnitIsDeadOrGhost("player") then + if UnitGroupRolesAssigned("player") == "TANK" then + aura_env.tankDead = aura_env.tankDead + 1 + end + if UnitGroupRolesAssigned("player") == "DAMAGER" then + aura_env.dpsDead = aura_env.dpsDead + 1 + end + if UnitGroupRolesAssigned("player") == "HEALER" then + aura_env.healDead = aura_env.healDead + 1 + end + else + if UnitGroupRolesAssigned("player") == "TANK" then + aura_env.tank = aura_env.tank + 1 + end + if UnitGroupRolesAssigned("player") == "DAMAGER" then + aura_env.dps = aura_env.dps + 1 + end + if UnitGroupRolesAssigned("player") == "HEALER" then + aura_env.heal = aura_env.heal + 1 + end + end + end + end +end + +--DISPLAY +function() + return "TANKS: " .. aura_env.tank - aura_env.tankDead .. "\n" .. "HEALS: " .. aura_env.heal - aura_env.healDead .. "\n" .. "DPS:" .. aura_env.dps - aura_env.dpsDead +end + +--INIT +aura_env.dps = 0 +aura_env.heal = 0 +aura_env.tank = 0 + +aura_env.dpsDead = 0 +aura_env.healDead = 0 +aura_env.tankDead = 0 diff --git a/Complete Projects/Legion/Loot Filter.lua b/WeakAuras/Projects/Loot Filter.lua similarity index 96% rename from Complete Projects/Legion/Loot Filter.lua rename to WeakAuras/Projects/Loot Filter.lua index c4b1040..b390083 100644 --- a/Complete Projects/Legion/Loot Filter.lua +++ b/WeakAuras/Projects/Loot Filter.lua @@ -1,353 +1,353 @@ --- START_LOOT_ROLL ---Doesn't work for now -function(_, id) - local name, _, quality, ilvl, _, class, subclass, _, slot = GetItemInfo(GetLootRollItemLink(id)) - local _, _, count, _, bopflag, canneed, cangreed, cande = GetLootRollItemInfo(id) - local pclass = select(3, UnitClass("player")) - - print("name " .. name) - print("quality " .. quality) - print("ilvl " .. ilvl) - print("class " .. class) - print("subclass " .. subclass) - print("slot " .. slot) - - print("cannneed", canneed) - if cannneed == 1 then - if bopflag == 0 then - RollOnLoot(id, 1) - print("Rolling on " .. class .. " " .. subclass .. " 1!") - elseif name == "Bloodhunter's Quarry" then - RollOnLoot(id, 1) - print("Rolling on " .. class .. " " .. subclass .. " 2!") - end - print("cangreed", cangreed) - elseif cangreed == 1 then - if bopflag == 1 then - if aura_env.skills[pclass][subclass] ~= 1 then - RollOnLoot(id, 0) - print("Rolling on " .. class .. " " .. subclass .. " 3!") - elseif aura_env.skills[pclass][class] ~= 1 then - RollOnLoot(id, 0) - print("Rolling on " .. class .. " " .. subclass .. " 4!") - end - end - end -end - ---INIT -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, - }, -} +-- START_LOOT_ROLL +--Doesn't work for now +function(_, id) + local name, _, quality, ilvl, _, class, subclass, _, slot = GetItemInfo(GetLootRollItemLink(id)) + local _, _, count, _, bopflag, canneed, cangreed, cande = GetLootRollItemInfo(id) + local pclass = select(3, UnitClass("player")) + + print("name " .. name) + print("quality " .. quality) + print("ilvl " .. ilvl) + print("class " .. class) + print("subclass " .. subclass) + print("slot " .. slot) + + print("cannneed", canneed) + if cannneed == 1 then + if bopflag == 0 then + RollOnLoot(id, 1) + print("Rolling on " .. class .. " " .. subclass .. " 1!") + elseif name == "Bloodhunter's Quarry" then + RollOnLoot(id, 1) + print("Rolling on " .. class .. " " .. subclass .. " 2!") + end + print("cangreed", cangreed) + elseif cangreed == 1 then + if bopflag == 1 then + if aura_env.skills[pclass][subclass] ~= 1 then + RollOnLoot(id, 0) + print("Rolling on " .. class .. " " .. subclass .. " 3!") + elseif aura_env.skills[pclass][class] ~= 1 then + RollOnLoot(id, 0) + print("Rolling on " .. class .. " " .. subclass .. " 4!") + end + end + end +end + +--INIT +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, + }, +} diff --git a/Complete Projects/Legion/Maiden Color Assignment.lua b/WeakAuras/Projects/Maiden Color Assignment.lua similarity index 97% rename from Complete Projects/Legion/Maiden Color Assignment.lua rename to WeakAuras/Projects/Maiden Color Assignment.lua index 5cf1aab..7c3c124 100644 --- a/Complete Projects/Legion/Maiden Color Assignment.lua +++ b/WeakAuras/Projects/Maiden Color Assignment.lua @@ -1,76 +1,76 @@ ---COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_DISABLED -function(e, ...) - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - --for i = 1, 40 do - --local temp = select(i, ...) - --if temp then - --print(i, temp) - --end - --end - local se = select(2, ...) - if se == "SPELL_CAST_START" then - local source = select(5, ...) or 0 - local spell = select(13, ...) or 0 - if source:match("Vigilance") and spell == "Infusion" then - aura_env.infusionCounter = aura_env.infusionCounter + 1 - if aura_env.infusionCounter == 1 or (aura_env.infusionCounter - 1) % 2 == 0 then - print("AYAYAYAJAJSDJASDJIASJIDIJDIJD LOL") - local lightGroup = {["outer"] = false, ["mid"] = false, ["inner"] = false} - local felGroup = {["outer"] = false, ["mid"] = false, ["inner"] = false} - for k, v in pairs(aura_env.soakers) do - if UnitDebuff(v.unit, "Fel Infusion") and v.alive == true then - if felGroup.outer == false then - felGroup.outer = k - elseif felGroup.mid == false then - felGroup.mid = k - elseif felGroup.inner == false then - felGroup.inner = k - end - elseif UnitDebuff(v.unit, "Light Infusion") and v.alive == true then - if lightGroup.outer == false then - lightGroup.outer = k - elseif lightGroup.mid == false then - lightGroup.mid = k - elseif lightGroup.inner == false then - lightGroup.inner = k - end - end - end - -- Announce soakers pls - print("felGroup.outer, felGroup.mid, felGroup.inner", felGroup.outer, felGroup.mid, felGroup.inner) - print("lightGroup.outer, lightGroup.mid, lightGroup.inner", lightGroup.outer, lightGroup.mid, lightGroup.inner) - end - end - elseif e == "UNIT_DIED" then - for k, v in pairs(aura_env.soakers) do - if UnitIsDeadOrGhost(k) then - v.alive = false - end - end - end - elseif e == "PLAYER_REGEN_DISABLED" then - aura_env.infusionCounter = 0 - for i = 1, 40 do - local unit = "raid" .. i - local class = select(3, UnitClass(unit)) - if UnitIsConnected(unit) then - local spec = GetInspectSpecialization(unit) - -- Specs don't work, use classes instead ??? && roles - print("SPECERINO", spec, unit) - if aura_env.rangedSpecs[spec] then - aura_env.soakers[UnitName(unit)] = {["id"] = unit, ["alive"] = true} - print(UnitName(unit), unit) - if UnitIsDeadOrGhost(unit) then - aura_env.soakers[UnitName(unit)].alive = false - end - end - end - end - end -end ---7@pQ8G)n - ---INIT -aura_env.infusionCounter = 0 -aura_env.rangedSpecs = {102, 253, 254, 62, 63, 64, 258, 262, 265, 266, 267} -aura_env.soakers = {} +--COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_DISABLED +function(e, ...) + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + --for i = 1, 40 do + --local temp = select(i, ...) + --if temp then + --print(i, temp) + --end + --end + local se = select(2, ...) + if se == "SPELL_CAST_START" then + local source = select(5, ...) or 0 + local spell = select(13, ...) or 0 + if source:match("Vigilance") and spell == "Infusion" then + aura_env.infusionCounter = aura_env.infusionCounter + 1 + if aura_env.infusionCounter == 1 or (aura_env.infusionCounter - 1) % 2 == 0 then + print("AYAYAYAJAJSDJASDJIASJIDIJDIJD LOL") + local lightGroup = {["outer"] = false, ["mid"] = false, ["inner"] = false} + local felGroup = {["outer"] = false, ["mid"] = false, ["inner"] = false} + for k, v in pairs(aura_env.soakers) do + if UnitDebuff(v.unit, "Fel Infusion") and v.alive == true then + if felGroup.outer == false then + felGroup.outer = k + elseif felGroup.mid == false then + felGroup.mid = k + elseif felGroup.inner == false then + felGroup.inner = k + end + elseif UnitDebuff(v.unit, "Light Infusion") and v.alive == true then + if lightGroup.outer == false then + lightGroup.outer = k + elseif lightGroup.mid == false then + lightGroup.mid = k + elseif lightGroup.inner == false then + lightGroup.inner = k + end + end + end + -- Announce soakers pls + print("felGroup.outer, felGroup.mid, felGroup.inner", felGroup.outer, felGroup.mid, felGroup.inner) + print("lightGroup.outer, lightGroup.mid, lightGroup.inner", lightGroup.outer, lightGroup.mid, lightGroup.inner) + end + end + elseif e == "UNIT_DIED" then + for k, v in pairs(aura_env.soakers) do + if UnitIsDeadOrGhost(k) then + v.alive = false + end + end + end + elseif e == "PLAYER_REGEN_DISABLED" then + aura_env.infusionCounter = 0 + for i = 1, 40 do + local unit = "raid" .. i + local class = select(3, UnitClass(unit)) + if UnitIsConnected(unit) then + local spec = GetInspectSpecialization(unit) + -- Specs don't work, use classes instead ??? && roles + print("SPECERINO", spec, unit) + if aura_env.rangedSpecs[spec] then + aura_env.soakers[UnitName(unit)] = {["id"] = unit, ["alive"] = true} + print(UnitName(unit), unit) + if UnitIsDeadOrGhost(unit) then + aura_env.soakers[UnitName(unit)].alive = false + end + end + end + end + end +end +--7@pQ8G)n + +--INIT +aura_env.infusionCounter = 0 +aura_env.rangedSpecs = {102, 253, 254, 62, 63, 64, 258, 262, 265, 266, 267} +aura_env.soakers = {} diff --git a/Complete Projects/Legion/Members Alive.lua b/WeakAuras/Projects/Members Alive.lua similarity index 97% rename from Complete Projects/Legion/Members Alive.lua rename to WeakAuras/Projects/Members Alive.lua index 86aa16e..03e3162 100644 --- a/Complete Projects/Legion/Members Alive.lua +++ b/WeakAuras/Projects/Members Alive.lua @@ -1,37 +1,37 @@ ---COMBAT_LOG_EVENT_UNFILTERED GROUP_ROSTER_UPDATE -function(event,_,subevent) - if (event == "COMBAT_LOG_EVENT_UNFILTERED" and subevent == "UNIT_DIED") or event == "GROUP_ROSTER_UPDATE" then - aura_env.members = GetNumGroupMembers() - aura_env.membersAlive = GetNumGroupMembers() - if IsInRaid("player") == true then - for i = 1, GetNumGroupMembers() do - if UnitIsDeadOrGhost("raid" .. i) or not UnitIsConnected("raid" .. i) then - aura_env.membersAlive = aura_env.membersAlive - 1 - end - end - else - aura_env.membersAlive = aura_env.membersAlive + 1 - for i = 1, GetNumGroupMembers() do - if UnitIsDeadOrGhost("party" .. i) or not UnitIsConnected("party" .. i) then - aura_env.membersAlive = aura_env.membersAlive - 1 - end - end - end - if UnitIsDeadOrGhost("player") then - aura_env.membersAlive = aura_env.membersAlive - 1 - end - end -end - ---DISPLAY -function() - if aura_env.membersAlive and aura_env.members then - return "Alive: " .. aura_env.membersAlive .. "/" .. aura_env.members - else - return "" - end -end - ---INIT -aura_env.members = 0 +--COMBAT_LOG_EVENT_UNFILTERED GROUP_ROSTER_UPDATE +function(event,_,subevent) + if (event == "COMBAT_LOG_EVENT_UNFILTERED" and subevent == "UNIT_DIED") or event == "GROUP_ROSTER_UPDATE" then + aura_env.members = GetNumGroupMembers() + aura_env.membersAlive = GetNumGroupMembers() + if IsInRaid("player") == true then + for i = 1, GetNumGroupMembers() do + if UnitIsDeadOrGhost("raid" .. i) or not UnitIsConnected("raid" .. i) then + aura_env.membersAlive = aura_env.membersAlive - 1 + end + end + else + aura_env.membersAlive = aura_env.membersAlive + 1 + for i = 1, GetNumGroupMembers() do + if UnitIsDeadOrGhost("party" .. i) or not UnitIsConnected("party" .. i) then + aura_env.membersAlive = aura_env.membersAlive - 1 + end + end + end + if UnitIsDeadOrGhost("player") then + aura_env.membersAlive = aura_env.membersAlive - 1 + end + end +end + +--DISPLAY +function() + if aura_env.membersAlive and aura_env.members then + return "Alive: " .. aura_env.membersAlive .. "/" .. aura_env.members + else + return "" + end +end + +--INIT +aura_env.members = 0 aura_env.membersAlive = 0 \ No newline at end of file diff --git a/Complete Projects/Legion/Misdirect God.lua b/WeakAuras/Projects/Misdirect God.lua similarity index 98% rename from Complete Projects/Legion/Misdirect God.lua rename to WeakAuras/Projects/Misdirect God.lua index 77cb202..b139688 100644 --- a/Complete Projects/Legion/Misdirect God.lua +++ b/WeakAuras/Projects/Misdirect God.lua @@ -1,42 +1,42 @@ -COMBAT_LOG_EVENT_UNFILTERED -function(...) - local spellName = select(14, ...) - local target = select(10, ...) - local source = select(6, ...) - local subEvent = select(3, ...) - if (spellName == "Tricks of the Trade" or spellName == "Misdirection") and subEvent == "SPELL_CAST_SUCCESS" then - aura_env.spellName = spellName - aura_env.caster = source - aura_env.target = target - aura_env.cast_time = GetTime() - return true - else - return false - end -end - -DISPLAY -function() - local target_class = UnitClass(aura_env.target) - local target_class_color = "|cFFFFFFFF" - local time_color = "|cFFFFFFFF" - if aura_env.spellName == "Tricks of the Trade" or aura_env.spellName == "Misdirection" then cooldown_time = aura_env.cast_time + 30 else cooldown_time = 0 end - if (cooldown_time / GetTime()) < 1 then time_color = "|cFF00FF00" else time_color = "|cFFFF0000" end - if UnitClass(aura_env.target) == "Death Knight" then target_class_color = "|cFFC41F3B" - elseif UnitClass(aura_env.target) == "Demon Hunter" then target_class_color = "|cFFA330C9" - elseif UnitClass(aura_env.target) == "Druid" then target_class_color = "|cFFFF7D0A" - elseif UnitClass(aura_env.target) == "Hunter" then target_class_color = "|cFFABD473" - elseif UnitClass(aura_env.target) == "Mage" then target_class_color = "|cFF40C7EB" - elseif UnitClass(aura_env.target) == "Monk" then target_class_color = "|cFF00FF96" - elseif UnitClass(aura_env.target) == "Paladin" then target_class_color = "|cFFF58CBA" - elseif UnitClass(aura_env.target) == "Priest" then target_class_color = "|cFFFFFFFF" - elseif UnitClass(aura_env.target) == "Rogue" then target_class_color = "|cFFFFF569" - elseif UnitClass(aura_env.target) == "Shaman" then target_class_color = "|cFF0070DE" - elseif UnitClass(aura_env.target) == "Warlock" then target_class_color = "|cFF8787ED" - elseif UnitClass(aura_env.target) == "Warrior" then target_class_color = "|cFFC79C6E" end - local source_class = UnitClass(aura_env.caster) - if source_class == "Hunter" then return "|cFF0000FF------------------------------- \n" .. "|cFFABD473" .. aura_env.caster .. target_class_color .. "\n" .. aura_env.target .. "\n" .. "|cFFABD473" .. aura_env.spellName .. "\n" .. time_color .. math.floor(GetTime() - aura_env.cast_time) .. "\n|cFF0000FF-------------------------------" - elseif - source_class == "Rogue" then return "|cFF0000FF------------------------------- \n" .. "|cFFFFF569" .. aura_env.caster .. "\n" .. target_class_color .. aura_env.target .. "\n" .. "|cFFFFF569" .. aura_env.spellName .. "\n" .. time_color .. math.floor(GetTime() - aura_env.cast_time) .. "\n|cFF0000FF-------------------------------" - end -end +COMBAT_LOG_EVENT_UNFILTERED +function(...) + local spellName = select(14, ...) + local target = select(10, ...) + local source = select(6, ...) + local subEvent = select(3, ...) + if (spellName == "Tricks of the Trade" or spellName == "Misdirection") and subEvent == "SPELL_CAST_SUCCESS" then + aura_env.spellName = spellName + aura_env.caster = source + aura_env.target = target + aura_env.cast_time = GetTime() + return true + else + return false + end +end + +DISPLAY +function() + local target_class = UnitClass(aura_env.target) + local target_class_color = "|cFFFFFFFF" + local time_color = "|cFFFFFFFF" + if aura_env.spellName == "Tricks of the Trade" or aura_env.spellName == "Misdirection" then cooldown_time = aura_env.cast_time + 30 else cooldown_time = 0 end + if (cooldown_time / GetTime()) < 1 then time_color = "|cFF00FF00" else time_color = "|cFFFF0000" end + if UnitClass(aura_env.target) == "Death Knight" then target_class_color = "|cFFC41F3B" + elseif UnitClass(aura_env.target) == "Demon Hunter" then target_class_color = "|cFFA330C9" + elseif UnitClass(aura_env.target) == "Druid" then target_class_color = "|cFFFF7D0A" + elseif UnitClass(aura_env.target) == "Hunter" then target_class_color = "|cFFABD473" + elseif UnitClass(aura_env.target) == "Mage" then target_class_color = "|cFF40C7EB" + elseif UnitClass(aura_env.target) == "Monk" then target_class_color = "|cFF00FF96" + elseif UnitClass(aura_env.target) == "Paladin" then target_class_color = "|cFFF58CBA" + elseif UnitClass(aura_env.target) == "Priest" then target_class_color = "|cFFFFFFFF" + elseif UnitClass(aura_env.target) == "Rogue" then target_class_color = "|cFFFFF569" + elseif UnitClass(aura_env.target) == "Shaman" then target_class_color = "|cFF0070DE" + elseif UnitClass(aura_env.target) == "Warlock" then target_class_color = "|cFF8787ED" + elseif UnitClass(aura_env.target) == "Warrior" then target_class_color = "|cFFC79C6E" end + local source_class = UnitClass(aura_env.caster) + if source_class == "Hunter" then return "|cFF0000FF------------------------------- \n" .. "|cFFABD473" .. aura_env.caster .. target_class_color .. "\n" .. aura_env.target .. "\n" .. "|cFFABD473" .. aura_env.spellName .. "\n" .. time_color .. math.floor(GetTime() - aura_env.cast_time) .. "\n|cFF0000FF-------------------------------" + elseif + source_class == "Rogue" then return "|cFF0000FF------------------------------- \n" .. "|cFFFFF569" .. aura_env.caster .. "\n" .. target_class_color .. aura_env.target .. "\n" .. "|cFFFFF569" .. aura_env.spellName .. "\n" .. time_color .. math.floor(GetTime() - aura_env.cast_time) .. "\n|cFF0000FF-------------------------------" + end +end diff --git a/Complete Projects/Legion/Misdirect.lua b/WeakAuras/Projects/Misdirect.lua similarity index 98% rename from Complete Projects/Legion/Misdirect.lua rename to WeakAuras/Projects/Misdirect.lua index d68974d..cdddce1 100644 --- a/Complete Projects/Legion/Misdirect.lua +++ b/WeakAuras/Projects/Misdirect.lua @@ -1,48 +1,48 @@ -COMBAT_LOG_EVENT_UNFILTERED -function(...) - local spellName = select(14, ...) - local target = select(10, ...) - local source = select(6, ...) - local subEvent = select(3, ...) - if (spellName == "Tricks of the Trade" or spellName == "Misdirection") and subEvent == "SPELL_CAST_SUCCESS" then - aura_env.spellName = spellName - aura_env.caster = source - aura_env.target = target - aura_env.cast_time = GetTime() - return true - else - return false - end -end - -DISPLAY -function() - local target_class = UnitClass(aura_env.target) - local target_class_color = "|cFFFFFFFF" - local time_color = "|cFFFFFFFF" - if aura_env.spellName == "Tricks of the Trade" then local cooldown_time = aura_env.cast_time + 30 elseif aura_env.spellName == "Misdirection" then cooldown_time = aura_env.cast_time + 30 end - if (cooldown_time / GetTime()) < 1 then time_color = "|cFF00FF00" else time_color = "|cFFFF0000" end - if UnitClass(aura_env.target) == "Death Knight" then target_class_color = "|cFFC41F3B" - elseif UnitClass(aura_env.target) == "Demon Hunter" then target_class_color = "|cFFA330C9" - elseif UnitClass(aura_env.target) == "Druid" then target_class_color = "|cFFFF7D0A" - elseif UnitClass(aura_env.target) == "Hunter" then target_class_color = "|cFFABD473" - elseif UnitClass(aura_env.target) == "Mage" then target_class_color = "|cFF40C7EB" - elseif UnitClass(aura_env.target) == "Monk" then target_class_color = "|cFF00FF96" - elseif UnitClass(aura_env.target) == "Paladin" then target_class_color = "|cFFF58CBA" - elseif UnitClass(aura_env.target) == "Priest" then target_class_color = "|cFFFFFFFF" - elseif UnitClass(aura_env.target) == "Rogue" then target_class_color = "|cFFFFF569" - elseif UnitClass(aura_env.target) == "Shaman" then target_class_color = "|cFF0070DE" - elseif UnitClass(aura_env.target) == "Warlock" then target_class_color = "|cFF8787ED" - elseif UnitClass(aura_env.target) == "Warrior" then target_class_color = "|cFFC79C6E" end - local source_class = UnitClass(aura_env.caster) - if source_class == "Hunter" then return "|cFF0000FF------------------------------- \n" .. "|cFFABD473" .. aura_env.caster .. target_class_color .. "\n" .. aura_env.target .. "\n" .. "|cFFABD473" .. aura_env.spellName .. "\n" .. time_color .. math.floor(GetTime() - aura_env.cast_time) .. "\n|cFF0000FF-------------------------------" - elseif - source_class == "Rogue" then return "|cFF0000FF------------------------------- \n" .. "|cFFFFF569" .. aura_env.caster .. "\n" .. target_class_color .. aura_env.target .. "\n" .. "|cFFFFF569" .. aura_env.spellName .. "\n" .. time_color .. math.floor(GetTime() - aura_env.cast_time) .. "\n|cFF0000FF-------------------------------" - end -end - -INIT -aura_env.target = "" -aura_env.cast_time = 0 -aura_env.spellName = "" -aura_env.caster = "" +COMBAT_LOG_EVENT_UNFILTERED +function(...) + local spellName = select(14, ...) + local target = select(10, ...) + local source = select(6, ...) + local subEvent = select(3, ...) + if (spellName == "Tricks of the Trade" or spellName == "Misdirection") and subEvent == "SPELL_CAST_SUCCESS" then + aura_env.spellName = spellName + aura_env.caster = source + aura_env.target = target + aura_env.cast_time = GetTime() + return true + else + return false + end +end + +DISPLAY +function() + local target_class = UnitClass(aura_env.target) + local target_class_color = "|cFFFFFFFF" + local time_color = "|cFFFFFFFF" + if aura_env.spellName == "Tricks of the Trade" then local cooldown_time = aura_env.cast_time + 30 elseif aura_env.spellName == "Misdirection" then cooldown_time = aura_env.cast_time + 30 end + if (cooldown_time / GetTime()) < 1 then time_color = "|cFF00FF00" else time_color = "|cFFFF0000" end + if UnitClass(aura_env.target) == "Death Knight" then target_class_color = "|cFFC41F3B" + elseif UnitClass(aura_env.target) == "Demon Hunter" then target_class_color = "|cFFA330C9" + elseif UnitClass(aura_env.target) == "Druid" then target_class_color = "|cFFFF7D0A" + elseif UnitClass(aura_env.target) == "Hunter" then target_class_color = "|cFFABD473" + elseif UnitClass(aura_env.target) == "Mage" then target_class_color = "|cFF40C7EB" + elseif UnitClass(aura_env.target) == "Monk" then target_class_color = "|cFF00FF96" + elseif UnitClass(aura_env.target) == "Paladin" then target_class_color = "|cFFF58CBA" + elseif UnitClass(aura_env.target) == "Priest" then target_class_color = "|cFFFFFFFF" + elseif UnitClass(aura_env.target) == "Rogue" then target_class_color = "|cFFFFF569" + elseif UnitClass(aura_env.target) == "Shaman" then target_class_color = "|cFF0070DE" + elseif UnitClass(aura_env.target) == "Warlock" then target_class_color = "|cFF8787ED" + elseif UnitClass(aura_env.target) == "Warrior" then target_class_color = "|cFFC79C6E" end + local source_class = UnitClass(aura_env.caster) + if source_class == "Hunter" then return "|cFF0000FF------------------------------- \n" .. "|cFFABD473" .. aura_env.caster .. target_class_color .. "\n" .. aura_env.target .. "\n" .. "|cFFABD473" .. aura_env.spellName .. "\n" .. time_color .. math.floor(GetTime() - aura_env.cast_time) .. "\n|cFF0000FF-------------------------------" + elseif + source_class == "Rogue" then return "|cFF0000FF------------------------------- \n" .. "|cFFFFF569" .. aura_env.caster .. "\n" .. target_class_color .. aura_env.target .. "\n" .. "|cFFFFF569" .. aura_env.spellName .. "\n" .. time_color .. math.floor(GetTime() - aura_env.cast_time) .. "\n|cFF0000FF-------------------------------" + end +end + +INIT +aura_env.target = "" +aura_env.cast_time = 0 +aura_env.spellName = "" +aura_env.caster = "" diff --git a/Complete Projects/Legion/Mistress Fuckery.lua b/WeakAuras/Projects/Mistress Fuckery.lua similarity index 96% rename from Complete Projects/Legion/Mistress Fuckery.lua rename to WeakAuras/Projects/Mistress Fuckery.lua index d20f25b..675d373 100644 --- a/Complete Projects/Legion/Mistress Fuckery.lua +++ b/WeakAuras/Projects/Mistress Fuckery.lua @@ -1,79 +1,79 @@ ---[[ -Fuckin how to do what and where is guide ty - -mistress aaa for burden -make counter for fish -make for run on cast -make for track aggro -make for track debuffs -make for track HP and fishie loss -make for burden clear track because visual not work -make for ams for double burden for bugs - -Delicious Butterfish - 239375 -Burden of Pain - 230201 -]]-- - ---DISPLAY -function() - local burden = "Burden of Pain" - local hunger = "Consuming Hunger" - local fish = "Delicious Bufferfish" - if UnitName("target") == "Mistress Sassz'ine" then - print("I THINK ITS WORKING") - local bosshp = math.floor(UnitHealth("target") / UnitHealthMax("target")) * 100 - local hptofifteen = bosshp - aura_env.hpthreshold[1] - if hptofifteen < 0 then - table.remove(aura_env.hpthreshold, 1) - hptofifteen = bosshp - aura_env.hpthreshold[1] - end - local fish = 0 - local out = "" - for i = 1, GetNumGroupMembers() do - if UnitAura("raid" .. i, fish) then - fish = fish + 1 - end - end - if UnitDetailedThreatSituation("player", "target") then - local whotank = UnitName("player") - elseif UnitDetailedThreatSituation(aura_env.tank, "target") then - local whotank = aura_env.tank - end - if UnitCastingInfo("target") == burden then --If she's casting burden then - local mydebuff = UnitAura("player", burden) - local theirdebuff = UnitAura(aura_env.tank, burden) - if mydebuff and theirdebuff then --If both tanks have burden - out = out .. "Buggerino - AMS or pray to the Lord" .. "\n" - end - if whotank == aura_env.tank then --If she's casting it on the other tank - out = out .. "Taunt after cast!" .. "\n" - elseif whotank == UnitName("player") then --If it's being cast on you - out = out .. "Run away from the boss!" .. "\n" - end - end - print(hptofifteen) - if hptofifteen <= 2 then --If it's time to clear fish and fish do exist - out = "Take a hit to clear fish!" .. "\n" - end - if UnitDebuff("player", hunger) then - out = out .. "RUN INTO THE STUN BEFORE YOU KILL EVERYONE YOU LUNATIC" .. "\n" - end - return out - end -end - ---PLAYER_REGEN_DISABLED -function() --Find tank - aura_env.hpthreshold = {85, 70, 55, 40, 25, 10} - for i = 1, GetNumGroupMembers() do - if UnitGroupRolesAssigned("raid" .. i) == "TANK" and UnitName("raid" .. i) ~= UnitName("player") then - aura_env.tank = UnitName("raid" .. i) - print("Found tank! " .. aura_env.tank) - break - end - end -end - ---INIT -aura_env.tank = "" +--[[ +Fuckin how to do what and where is guide ty + +mistress aaa for burden +make counter for fish +make for run on cast +make for track aggro +make for track debuffs +make for track HP and fishie loss +make for burden clear track because visual not work +make for ams for double burden for bugs + +Delicious Butterfish - 239375 +Burden of Pain - 230201 +]]-- + +--DISPLAY +function() + local burden = "Burden of Pain" + local hunger = "Consuming Hunger" + local fish = "Delicious Bufferfish" + if UnitName("target") == "Mistress Sassz'ine" then + print("I THINK ITS WORKING") + local bosshp = math.floor(UnitHealth("target") / UnitHealthMax("target")) * 100 + local hptofifteen = bosshp - aura_env.hpthreshold[1] + if hptofifteen < 0 then + table.remove(aura_env.hpthreshold, 1) + hptofifteen = bosshp - aura_env.hpthreshold[1] + end + local fish = 0 + local out = "" + for i = 1, GetNumGroupMembers() do + if UnitAura("raid" .. i, fish) then + fish = fish + 1 + end + end + if UnitDetailedThreatSituation("player", "target") then + local whotank = UnitName("player") + elseif UnitDetailedThreatSituation(aura_env.tank, "target") then + local whotank = aura_env.tank + end + if UnitCastingInfo("target") == burden then --If she's casting burden then + local mydebuff = UnitAura("player", burden) + local theirdebuff = UnitAura(aura_env.tank, burden) + if mydebuff and theirdebuff then --If both tanks have burden + out = out .. "Buggerino - AMS or pray to the Lord" .. "\n" + end + if whotank == aura_env.tank then --If she's casting it on the other tank + out = out .. "Taunt after cast!" .. "\n" + elseif whotank == UnitName("player") then --If it's being cast on you + out = out .. "Run away from the boss!" .. "\n" + end + end + print(hptofifteen) + if hptofifteen <= 2 then --If it's time to clear fish and fish do exist + out = "Take a hit to clear fish!" .. "\n" + end + if UnitDebuff("player", hunger) then + out = out .. "RUN INTO THE STUN BEFORE YOU KILL EVERYONE YOU LUNATIC" .. "\n" + end + return out + end +end + +--PLAYER_REGEN_DISABLED +function() --Find tank + aura_env.hpthreshold = {85, 70, 55, 40, 25, 10} + for i = 1, GetNumGroupMembers() do + if UnitGroupRolesAssigned("raid" .. i) == "TANK" and UnitName("raid" .. i) ~= UnitName("player") then + aura_env.tank = UnitName("raid" .. i) + print("Found tank! " .. aura_env.tank) + break + end + end +end + +--INIT +aura_env.tank = "" aura_env.hpthreshold = {} \ No newline at end of file diff --git a/Complete Projects/Legion/Mitigation.lua b/WeakAuras/Projects/Mitigation.lua similarity index 97% rename from Complete Projects/Legion/Mitigation.lua rename to WeakAuras/Projects/Mitigation.lua index d99e963..3d6b073 100644 --- a/Complete Projects/Legion/Mitigation.lua +++ b/WeakAuras/Projects/Mitigation.lua @@ -1,183 +1,183 @@ ---UNIT_AURA -function() - if UnitExists("target") then - local level = UnitLevel("target") - else - level = 110 - end - local pDR = GetCombatRatingBonus(CR_VERSATILITY_DAMAGE_TAKEN) / 100 - local mDR = pDR - local armor = select(2, UnitArmor("player")) - local armorDR = armor / (armor + (aura_env.constants[level])) - pDR = aura_env.stackDef(pDR, armorDR) - for k, v in ipairs(aura_env.buffs) do - if UnitBuff("player", v) then - --print(UnitBuff("player", v)) - if v == "Shield of the Righteous" or v == "Ardent Defender" then - --print("YEET") - local mitigation = abs(select(17, UnitBuff("player", v))) / 100 - pDR = aura_env.stackDef(pDR, mitigation) - mDR = aura_env.stackDef(mDR, mitigation) - end - if v == "Stoneform" then - --print("YEET") - local mitigation = abs(select(17, UnitBuff("player", v))) / 100 - pDR = aura_env.stackDef(pDR, mitigation) - end - if v == "Guardian of Ancient Kings" then - --print("YEET") - local mitigation = abs(select(19, UnitBuff("player", v))) / 100 - pDR = aura_env.stackDef(pDR, mitigation) - mDR = aura_env.stackDef(mDR, mitigation) - end - end - if UnitDebuff("target", v) then - if v == "Eye of Tyr" then - local mitigation = abs(select(17, UnitDebuff("target", v))) / 100 - pDR = aura_env.stackDef(pDR, mitigation) - mDR = aura_env.stackDef(mDR, mitigation) - end - end - end - aura_env.DR.p = pDR * 100 - aura_env.DR.m = mDR * 100 - local HP = UnitHealth("player") - for k, v in pairs(aura_env.absorbs) do - if UnitBuff("player", v) then - local absorb = select(17, UnitBuff("player", v)) - HP = HP + absorb - end - end - aura_env.pHP = HP / (1 - pDR) - aura_env.mHP = HP / (1 - mDR) - return true -end - ---DISPLAY -function() - local output = "P: " .. aura_env.round(aura_env.DR.p, 2) .. "% " - if aura_env.pHP < aura_env.thresholds.p[1] then output = output .. "\124c" .. aura_env.pColor1 .. aura_env.shorten(aura_env.pHP) .. "\124r" end - if aura_env.pHP > aura_env.thresholds.p[1] and aura_env.pHP < aura_env.thresholds.p[2] then output = output .. "\124c" .. aura_env.pColor2 .. aura_env.shorten(aura_env.pHP) .. "\124r" end - if aura_env.pHP > aura_env.thresholds.p[2] and aura_env.pHP < aura_env.thresholds.p[3] then output = output .. "\124c" .. aura_env.pColor3 .. aura_env.shorten(aura_env.pHP) .. "\124r" end - if aura_env.pHP > aura_env.thresholds.p[3] and aura_env.pHP < aura_env.thresholds.p[4] then output = output .. "\124c" .. aura_env.pColor4 .. aura_env.shorten(aura_env.pHP) .. "\124r" end - if aura_env.pHP > aura_env.thresholds.p[4] and aura_env.pHP < aura_env.thresholds.p[5] then output = output .. "\124c" .. aura_env.pColor5 .. aura_env.shorten(aura_env.pHP) .. "\124r" end - if aura_env.pHP > aura_env.thresholds.p[5] then output = output .. "\124c" .. aura_env.pColor6 .. aura_env.shorten(aura_env.pHP) .. "\124r" end - output = output .. "\n" - output = output .. "M: " .. aura_env.round(aura_env.DR.m, 2) .. "% " - if aura_env.mHP < aura_env.thresholds.m[1] then output = output .. "\124c" .. aura_env.pColor1 .. aura_env.shorten(aura_env.mHP) .. "\124r" end - if aura_env.mHP > aura_env.thresholds.m[1] and aura_env.mHP < aura_env.thresholds.m[2] then output = output .. "\124c" .. aura_env.pColor2 .. aura_env.shorten(aura_env.mHP) .. "\124r" end - if aura_env.mHP > aura_env.thresholds.m[2] and aura_env.mHP < aura_env.thresholds.m[3] then output = output .. "\124c" .. aura_env.pColor3 .. aura_env.shorten(aura_env.mHP) .. "\124r" end - if aura_env.mHP > aura_env.thresholds.m[3] and aura_env.mHP < aura_env.thresholds.m[4] then output = output .. "\124c" .. aura_env.pColor4 .. aura_env.shorten(aura_env.mHP) .. "\124r" end - if aura_env.mHP > aura_env.thresholds.m[4] and aura_env.mHP < aura_env.thresholds.m[5] then output = output .. "\124c" .. aura_env.pColor5 .. aura_env.shorten(aura_env.mHP) .. "\124r" end - if aura_env.mHP > aura_env.thresholds.m[5] then output = output .. "\124c" .. aura_env.pColor6 .. aura_env.shorten(aura_env.mHP) .. "\124r" end - return output -end - ---INIT -aura_env.mHP = 0 -aura_env.pHP = 0 -aura_env.thresholds = { - ["p"] = { - 40e6, - 60e6, - 80e6, - 100e6, - 140e6, - }, - ["m"] = { - 40e6, - 50e6, - 60e6, - 70e6, - 80e6, - }, -} -aura_env.constants = { - [110] = 7390, - [111] = 7648, - [112] = 7906, - [113] = 8164, -} -aura_env.buffs = { - "Shield of the Righteous", - "Ardent Defender", - "Guardian of Ancient Kings", - "Eye of Tyr", - "Stoneform", -} -aura_env.absorbs = { - "Bulwark of Order", - "Bulwark of Flame" -} -aura_env.stackDef = function(def1, def2) - local x = 1 - def1 - local y = 1 - def2 - local var = x * y - return 1 - var -end -aura_env.DR = { - ["p"] = 0, - ["m"] = 0 -} -aura_env.round = function(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 -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 -end -local Color1 = {255, 0, 0} -- The color if you have < 7 million effective health -local Color2 = {255, 128, 0} -- The color if you have >= 7 million effective health -local Color3 = {0, 255, 0} -- The color if you have >= 10 million effective health -local Color4 = {0, 255, 255} -- The color if you have >= 15 million effective health -local Color5 = {255, 0, 255} -- The color if you have >= 25 million effective health -local Color6 = {255, 255, 0} -- The color if you have >= 44 million effective health -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 -end -aura_env.pColor1 = RGBtoHex(Color1) -aura_env.pColor2 = RGBtoHex(Color2) -aura_env.pColor3 = RGBtoHex(Color3) -aura_env.pColor4 = RGBtoHex(Color4) -aura_env.pColor5 = RGBtoHex(Color5) -aura_env.pColor6 = RGBtoHex(Color6) +--UNIT_AURA +function() + if UnitExists("target") then + local level = UnitLevel("target") + else + level = 110 + end + local pDR = GetCombatRatingBonus(CR_VERSATILITY_DAMAGE_TAKEN) / 100 + local mDR = pDR + local armor = select(2, UnitArmor("player")) + local armorDR = armor / (armor + (aura_env.constants[level])) + pDR = aura_env.stackDef(pDR, armorDR) + for k, v in ipairs(aura_env.buffs) do + if UnitBuff("player", v) then + --print(UnitBuff("player", v)) + if v == "Shield of the Righteous" or v == "Ardent Defender" then + --print("YEET") + local mitigation = abs(select(17, UnitBuff("player", v))) / 100 + pDR = aura_env.stackDef(pDR, mitigation) + mDR = aura_env.stackDef(mDR, mitigation) + end + if v == "Stoneform" then + --print("YEET") + local mitigation = abs(select(17, UnitBuff("player", v))) / 100 + pDR = aura_env.stackDef(pDR, mitigation) + end + if v == "Guardian of Ancient Kings" then + --print("YEET") + local mitigation = abs(select(19, UnitBuff("player", v))) / 100 + pDR = aura_env.stackDef(pDR, mitigation) + mDR = aura_env.stackDef(mDR, mitigation) + end + end + if UnitDebuff("target", v) then + if v == "Eye of Tyr" then + local mitigation = abs(select(17, UnitDebuff("target", v))) / 100 + pDR = aura_env.stackDef(pDR, mitigation) + mDR = aura_env.stackDef(mDR, mitigation) + end + end + end + aura_env.DR.p = pDR * 100 + aura_env.DR.m = mDR * 100 + local HP = UnitHealth("player") + for k, v in pairs(aura_env.absorbs) do + if UnitBuff("player", v) then + local absorb = select(17, UnitBuff("player", v)) + HP = HP + absorb + end + end + aura_env.pHP = HP / (1 - pDR) + aura_env.mHP = HP / (1 - mDR) + return true +end + +--DISPLAY +function() + local output = "P: " .. aura_env.round(aura_env.DR.p, 2) .. "% " + if aura_env.pHP < aura_env.thresholds.p[1] then output = output .. "\124c" .. aura_env.pColor1 .. aura_env.shorten(aura_env.pHP) .. "\124r" end + if aura_env.pHP > aura_env.thresholds.p[1] and aura_env.pHP < aura_env.thresholds.p[2] then output = output .. "\124c" .. aura_env.pColor2 .. aura_env.shorten(aura_env.pHP) .. "\124r" end + if aura_env.pHP > aura_env.thresholds.p[2] and aura_env.pHP < aura_env.thresholds.p[3] then output = output .. "\124c" .. aura_env.pColor3 .. aura_env.shorten(aura_env.pHP) .. "\124r" end + if aura_env.pHP > aura_env.thresholds.p[3] and aura_env.pHP < aura_env.thresholds.p[4] then output = output .. "\124c" .. aura_env.pColor4 .. aura_env.shorten(aura_env.pHP) .. "\124r" end + if aura_env.pHP > aura_env.thresholds.p[4] and aura_env.pHP < aura_env.thresholds.p[5] then output = output .. "\124c" .. aura_env.pColor5 .. aura_env.shorten(aura_env.pHP) .. "\124r" end + if aura_env.pHP > aura_env.thresholds.p[5] then output = output .. "\124c" .. aura_env.pColor6 .. aura_env.shorten(aura_env.pHP) .. "\124r" end + output = output .. "\n" + output = output .. "M: " .. aura_env.round(aura_env.DR.m, 2) .. "% " + if aura_env.mHP < aura_env.thresholds.m[1] then output = output .. "\124c" .. aura_env.pColor1 .. aura_env.shorten(aura_env.mHP) .. "\124r" end + if aura_env.mHP > aura_env.thresholds.m[1] and aura_env.mHP < aura_env.thresholds.m[2] then output = output .. "\124c" .. aura_env.pColor2 .. aura_env.shorten(aura_env.mHP) .. "\124r" end + if aura_env.mHP > aura_env.thresholds.m[2] and aura_env.mHP < aura_env.thresholds.m[3] then output = output .. "\124c" .. aura_env.pColor3 .. aura_env.shorten(aura_env.mHP) .. "\124r" end + if aura_env.mHP > aura_env.thresholds.m[3] and aura_env.mHP < aura_env.thresholds.m[4] then output = output .. "\124c" .. aura_env.pColor4 .. aura_env.shorten(aura_env.mHP) .. "\124r" end + if aura_env.mHP > aura_env.thresholds.m[4] and aura_env.mHP < aura_env.thresholds.m[5] then output = output .. "\124c" .. aura_env.pColor5 .. aura_env.shorten(aura_env.mHP) .. "\124r" end + if aura_env.mHP > aura_env.thresholds.m[5] then output = output .. "\124c" .. aura_env.pColor6 .. aura_env.shorten(aura_env.mHP) .. "\124r" end + return output +end + +--INIT +aura_env.mHP = 0 +aura_env.pHP = 0 +aura_env.thresholds = { + ["p"] = { + 40e6, + 60e6, + 80e6, + 100e6, + 140e6, + }, + ["m"] = { + 40e6, + 50e6, + 60e6, + 70e6, + 80e6, + }, +} +aura_env.constants = { + [110] = 7390, + [111] = 7648, + [112] = 7906, + [113] = 8164, +} +aura_env.buffs = { + "Shield of the Righteous", + "Ardent Defender", + "Guardian of Ancient Kings", + "Eye of Tyr", + "Stoneform", +} +aura_env.absorbs = { + "Bulwark of Order", + "Bulwark of Flame" +} +aura_env.stackDef = function(def1, def2) + local x = 1 - def1 + local y = 1 - def2 + local var = x * y + return 1 - var +end +aura_env.DR = { + ["p"] = 0, + ["m"] = 0 +} +aura_env.round = function(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 +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 +end +local Color1 = {255, 0, 0} -- The color if you have < 7 million effective health +local Color2 = {255, 128, 0} -- The color if you have >= 7 million effective health +local Color3 = {0, 255, 0} -- The color if you have >= 10 million effective health +local Color4 = {0, 255, 255} -- The color if you have >= 15 million effective health +local Color5 = {255, 0, 255} -- The color if you have >= 25 million effective health +local Color6 = {255, 255, 0} -- The color if you have >= 44 million effective health +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 +end +aura_env.pColor1 = RGBtoHex(Color1) +aura_env.pColor2 = RGBtoHex(Color2) +aura_env.pColor3 = RGBtoHex(Color3) +aura_env.pColor4 = RGBtoHex(Color4) +aura_env.pColor5 = RGBtoHex(Color5) +aura_env.pColor6 = RGBtoHex(Color6) diff --git a/Complete Projects/Legion/Mob Kill Counter.lua b/WeakAuras/Projects/Mob Kill Counter.lua similarity index 95% rename from Complete Projects/Legion/Mob Kill Counter.lua rename to WeakAuras/Projects/Mob Kill Counter.lua index 1d00369..c417467 100644 --- a/Complete Projects/Legion/Mob Kill Counter.lua +++ b/WeakAuras/Projects/Mob Kill Counter.lua @@ -1,16 +1,16 @@ -COMBAT_LOG_EVENT_UNFILTERED -function(...) - local subEvent = select(3, ...) - local target = select(10, ...) - if subEvent == "PARTY_KILL" and target == "Felborne Energist" then - aura_env.kill_count = aura_env.kill_count + 1 - end -end - -DISPLAY -function() - return aura_env.kill_count -end - -INIT -aura_env.kill_count = 0 +COMBAT_LOG_EVENT_UNFILTERED +function(...) + local subEvent = select(3, ...) + local target = select(10, ...) + if subEvent == "PARTY_KILL" and target == "Felborne Energist" then + aura_env.kill_count = aura_env.kill_count + 1 + end +end + +DISPLAY +function() + return aura_env.kill_count +end + +INIT +aura_env.kill_count = 0 diff --git a/WIP/Nameplate HP Sort.lua b/WeakAuras/Projects/Nameplate HP Sort.lua similarity index 96% rename from WIP/Nameplate HP Sort.lua rename to WeakAuras/Projects/Nameplate HP Sort.lua index 2e8a83f..cd7fc9b 100644 --- a/WIP/Nameplate HP Sort.lua +++ b/WeakAuras/Projects/Nameplate HP Sort.lua @@ -1,44 +1,44 @@ ---Nameplate HP order -function() - local enemies = {} - local output = "" - for i = 1, 40 do - if UnitIsEnemy("nameplate" .. i, "player") and UnitAffectingCombat("nameplate" .. i) then - --print(UnitGUID("nameplate" .. i), UnitHealth("nameplate" .. i), UnitHealthMax("nameplate" .. i), (UnitHealth("nameplate" .. i) / UnitHealthMax("nameplate" .. i)) * 100) - --local ID = UnitGUID("nameplate" .. i):match("%a+%-%d+%-%d+%-%d+%-%d+%-%d+%-(.+)") - --ID = ID:gsub(0, "") - --print(ID) - enemies[UnitGUID("nameplate" .. i)] = (UnitHealth("nameplate" .. i) / UnitHealthMax("nameplate" .. i)) * 100 - end - end - for k,v in pairs(enemies) do - --local ID = UnitGUID("target"):match("%a+%-%d+%-%d+%-%d+%-%d+%-%d+%-(.+)") - --ID = ID:gsub(0, "") - print("Target " .. UnitGUID("target") .. " key " .. k) - if k == UnitGUID("target") then - print("GREEN") - output = "|cFF00FF00" .. output .. k .. " " .. v .. "|r\n" - else - print("WHITE") - output = "|cFFFFFFFF" .. output .. k .. " " .. v .. "|r\n" - end - end - return output -end - - -local enemies = -{ - ["Creature-0-5-1220-0-109349-0000002871"] = 17, - ["Creature-0-5-1220-0-109349-0000002870"] = 13 -} -local target = "Creature-0-5-1220-0-109349-0000002871" -local output = "" -for k,v in pairs(enemies) do - if target == k then - output = output .. k .. " " .. v .. " GREEN\n" - else - output = output .. k .. " " .. v .. "\n" - end -end +--Nameplate HP order +function() + local enemies = {} + local output = "" + for i = 1, 40 do + if UnitIsEnemy("nameplate" .. i, "player") and UnitAffectingCombat("nameplate" .. i) then + --print(UnitGUID("nameplate" .. i), UnitHealth("nameplate" .. i), UnitHealthMax("nameplate" .. i), (UnitHealth("nameplate" .. i) / UnitHealthMax("nameplate" .. i)) * 100) + --local ID = UnitGUID("nameplate" .. i):match("%a+%-%d+%-%d+%-%d+%-%d+%-%d+%-(.+)") + --ID = ID:gsub(0, "") + --print(ID) + enemies[UnitGUID("nameplate" .. i)] = (UnitHealth("nameplate" .. i) / UnitHealthMax("nameplate" .. i)) * 100 + end + end + for k,v in pairs(enemies) do + --local ID = UnitGUID("target"):match("%a+%-%d+%-%d+%-%d+%-%d+%-%d+%-(.+)") + --ID = ID:gsub(0, "") + print("Target " .. UnitGUID("target") .. " key " .. k) + if k == UnitGUID("target") then + print("GREEN") + output = "|cFF00FF00" .. output .. k .. " " .. v .. "|r\n" + else + print("WHITE") + output = "|cFFFFFFFF" .. output .. k .. " " .. v .. "|r\n" + end + end + return output +end + + +local enemies = +{ + ["Creature-0-5-1220-0-109349-0000002871"] = 17, + ["Creature-0-5-1220-0-109349-0000002870"] = 13 +} +local target = "Creature-0-5-1220-0-109349-0000002871" +local output = "" +for k,v in pairs(enemies) do + if target == k then + output = output .. k .. " " .. v .. " GREEN\n" + else + output = output .. k .. " " .. v .. "\n" + end +end print(output) \ No newline at end of file diff --git a/Complete Projects/Legion/NameplateAchivTest.lua b/WeakAuras/Projects/NameplateAchivTest.lua similarity index 96% rename from Complete Projects/Legion/NameplateAchivTest.lua rename to WeakAuras/Projects/NameplateAchivTest.lua index 18420d8..45f6585 100644 --- a/Complete Projects/Legion/NameplateAchivTest.lua +++ b/WeakAuras/Projects/NameplateAchivTest.lua @@ -1,6 +1,6 @@ --- /run NotifyInspect("party2") ---INSPECT_READY -function(e, ...) - print(e) - DevTools_Dump(GetInventoryItemLink("party2", 1)) +-- /run NotifyInspect("party2") +--INSPECT_READY +function(e, ...) + print(e) + DevTools_Dump(GetInventoryItemLink("party2", 1)) end \ No newline at end of file diff --git a/NewAge/NameplateInfo/Hostility.lua b/WeakAuras/Projects/NameplateInfo/Hostility.lua similarity index 100% rename from NewAge/NameplateInfo/Hostility.lua rename to WeakAuras/Projects/NameplateInfo/Hostility.lua diff --git a/LegionWA/NearbyPlayers/Event.lua b/WeakAuras/Projects/NearbyPlayers/Event.lua similarity index 96% rename from LegionWA/NearbyPlayers/Event.lua rename to WeakAuras/Projects/NearbyPlayers/Event.lua index 36dcc6d..113d2f1 100644 --- a/LegionWA/NearbyPlayers/Event.lua +++ b/WeakAuras/Projects/NearbyPlayers/Event.lua @@ -1,7 +1,7 @@ --- COMBAT_LOG_EVENT_UNFILTERED -function(allstates, e, ...) - local caster = select(6, ...) - local target = select(10, ...) - - aura_env.processEvent(allstates, caster, target) +-- COMBAT_LOG_EVENT_UNFILTERED +function(allstates, e, ...) + local caster = select(6, ...) + local target = select(10, ...) + + aura_env.processEvent(allstates, caster, target) end \ No newline at end of file diff --git a/LegionWA/NearbyPlayers/Init.lua b/WeakAuras/Projects/NearbyPlayers/Init.lua similarity index 95% rename from LegionWA/NearbyPlayers/Init.lua rename to WeakAuras/Projects/NearbyPlayers/Init.lua index 0c65dd5..4c39f77 100644 --- a/LegionWA/NearbyPlayers/Init.lua +++ b/WeakAuras/Projects/NearbyPlayers/Init.lua @@ -1,83 +1,83 @@ -if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end -if not WeakAurasSaved.Cyka.Cache then WeakAurasSaved.Cyka.Cache = {} end -if not WeakAurasSaved.Cyka.Cache.PlayerInfo then WeakAurasSaved.Cyka.Cache.PlayerInfo = {} end - -local allianceRaces = { - "Draenai", - "Dwarf", - "Gnome", - "Human", - "Night Elf", - "Worgen", -} - -PlayerController = { - nearbyPlayers = {}, - addPlayer = function(self, name) self.nearbyPlayers[name] = Player:New(name) end, - getPlayers = function(self) end, - process = function(guid) - if self.nearbyPlayers[guid] == nil then - self.addPlayer(guid) - else - end - end, -} - -Player = { - guid = nil, - lastSighted = nil, - info = nil, - update = function(self) self.lastSighted = GetTime() end, - getFormatted = function(self) - -- Color by class - -- Format time - return info.name .. " " .. self.lastSighted - end, -} -PlayerInfo = { - class = nil, - race = nil, - name = nil, - isHostile = nil, -} - -function Player:New(guid) - o = {} - setmetatable(o, self) - self.__index = self - - o.guid = guid or "" - o.lastSighted = GetTime() - o.info = PlayerInfo:New(guid) - - return o -end -function PlayerInfo:New(guid) - o = {} - setmetatable(o, self) - self.__index = self - - local info - if WeakAurasSaved.Cyka.Cache.PlayerInfo[guid] then - info = WeakAurasSaved.Cyka.Cache.PlayerInfo[guid] - else - info = GetPlayerInfoByGUID(guid) - WeakAurasSaved.Cyka.Cache.PlayerInfo[guid] = { - class = info.class, - race = info.race, - name = info.name, - isHostile = allianceRaces[race] ~= nil, - } - end - o.class = info.class or "" - o.race = info.race or "" - o.name = info.name or "" - o.isHostile = info.isHostile or true - - return o -end - -aura_env.processEvent = function(caster, target) - PlayerController:process(caster) - PlayerController:process(target) -end +if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end +if not WeakAurasSaved.Cyka.Cache then WeakAurasSaved.Cyka.Cache = {} end +if not WeakAurasSaved.Cyka.Cache.PlayerInfo then WeakAurasSaved.Cyka.Cache.PlayerInfo = {} end + +local allianceRaces = { + "Draenai", + "Dwarf", + "Gnome", + "Human", + "Night Elf", + "Worgen", +} + +PlayerController = { + nearbyPlayers = {}, + addPlayer = function(self, name) self.nearbyPlayers[name] = Player:New(name) end, + getPlayers = function(self) end, + process = function(guid) + if self.nearbyPlayers[guid] == nil then + self.addPlayer(guid) + else + end + end, +} + +Player = { + guid = nil, + lastSighted = nil, + info = nil, + update = function(self) self.lastSighted = GetTime() end, + getFormatted = function(self) + -- Color by class + -- Format time + return info.name .. " " .. self.lastSighted + end, +} +PlayerInfo = { + class = nil, + race = nil, + name = nil, + isHostile = nil, +} + +function Player:New(guid) + o = {} + setmetatable(o, self) + self.__index = self + + o.guid = guid or "" + o.lastSighted = GetTime() + o.info = PlayerInfo:New(guid) + + return o +end +function PlayerInfo:New(guid) + o = {} + setmetatable(o, self) + self.__index = self + + local info + if WeakAurasSaved.Cyka.Cache.PlayerInfo[guid] then + info = WeakAurasSaved.Cyka.Cache.PlayerInfo[guid] + else + info = GetPlayerInfoByGUID(guid) + WeakAurasSaved.Cyka.Cache.PlayerInfo[guid] = { + class = info.class, + race = info.race, + name = info.name, + isHostile = allianceRaces[race] ~= nil, + } + end + o.class = info.class or "" + o.race = info.race or "" + o.name = info.name or "" + o.isHostile = info.isHostile or true + + return o +end + +aura_env.processEvent = function(caster, target) + PlayerController:process(caster) + PlayerController:process(target) +end diff --git a/Complete Projects/Legion/Necrotic Rot.lua b/WeakAuras/Projects/Necrotic Rot.lua similarity index 95% rename from Complete Projects/Legion/Necrotic Rot.lua rename to WeakAuras/Projects/Necrotic Rot.lua index 57f358e..40d770a 100644 --- a/Complete Projects/Legion/Necrotic Rot.lua +++ b/WeakAuras/Projects/Necrotic Rot.lua @@ -1,69 +1,69 @@ -TRIGGER -function() - if UnitGroupRolesAssigned("player") == "HEALER" then - if UnitDebuff("target", "Necrotic Rot") then - return true - end - end - if UnitGroupRolesAssigned("player") == "TANK" then - if UnitDebuff("player", "Necrotic Rot") then - return true - end - end -end - -TRIGGER DURATION -function() - if UnitGroupRolesAssigned("player") == "HEALER" then - if UnitDebuff("target", "Necrotic Rot") then - aura_env.stacks = select(4, UnitDebuff("target", "Necrotic Rot")) - aura_env.exptime = select(7, UnitDebuff("target", "Necrotic Rot")) - aura_env.maxDur = select(6, UnitDebuff("target", "Necrotic Rot")) - end - end - if UnitGroupRolesAssigned("player") == "TANK" then - if UnitDebuff("player", "Necrotic Rot") then - aura_env.stacks = select(4, UnitDebuff("player", "Necrotic Rot")) - aura_env.exptime = select(7, UnitDebuff("player", "Necrotic Rot")) - aura_env.maxDur = select(6, UnitDebuff("player", "Necrotic Rot")) - end - end - if aura_env.stacks > 33 then - aura_env.stacks = 33 - end - return 33 - aura_env.stacks, 33, 1 -end - -TRIGGER NAME -function() - return - (aura_env.stacks * 3) -end - -DISPLAY -function() - return aura_env.stacks -end - -ANIMATION COLOR -function() - local function range(val, min, max, max2) - local val = 1 - (((max - val) / (max - min)) * max2) - return val - end - local remtime = aura_env.exptime - GetTime() - local c = range(remtime, 0, aura_env.maxDur, 1) - c = 1 - 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 -end - -INIT -aura_env.stacks = 0 -aura_env.exptime = 0 +TRIGGER +function() + if UnitGroupRolesAssigned("player") == "HEALER" then + if UnitDebuff("target", "Necrotic Rot") then + return true + end + end + if UnitGroupRolesAssigned("player") == "TANK" then + if UnitDebuff("player", "Necrotic Rot") then + return true + end + end +end + +TRIGGER DURATION +function() + if UnitGroupRolesAssigned("player") == "HEALER" then + if UnitDebuff("target", "Necrotic Rot") then + aura_env.stacks = select(4, UnitDebuff("target", "Necrotic Rot")) + aura_env.exptime = select(7, UnitDebuff("target", "Necrotic Rot")) + aura_env.maxDur = select(6, UnitDebuff("target", "Necrotic Rot")) + end + end + if UnitGroupRolesAssigned("player") == "TANK" then + if UnitDebuff("player", "Necrotic Rot") then + aura_env.stacks = select(4, UnitDebuff("player", "Necrotic Rot")) + aura_env.exptime = select(7, UnitDebuff("player", "Necrotic Rot")) + aura_env.maxDur = select(6, UnitDebuff("player", "Necrotic Rot")) + end + end + if aura_env.stacks > 33 then + aura_env.stacks = 33 + end + return 33 - aura_env.stacks, 33, 1 +end + +TRIGGER NAME +function() + return - (aura_env.stacks * 3) +end + +DISPLAY +function() + return aura_env.stacks +end + +ANIMATION COLOR +function() + local function range(val, min, max, max2) + local val = 1 - (((max - val) / (max - min)) * max2) + return val + end + local remtime = aura_env.exptime - GetTime() + local c = range(remtime, 0, aura_env.maxDur, 1) + c = 1 - 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 +end + +INIT +aura_env.stacks = 0 +aura_env.exptime = 0 aura_env.maxDur = 0 \ No newline at end of file diff --git a/Complete Projects/Legion/Nightwell Energy/Background.lua b/WeakAuras/Projects/Nightwell Energy/Background.lua similarity index 95% rename from Complete Projects/Legion/Nightwell Energy/Background.lua rename to WeakAuras/Projects/Nightwell Energy/Background.lua index 70d59b2..763c240 100644 --- a/Complete Projects/Legion/Nightwell Energy/Background.lua +++ b/WeakAuras/Projects/Nightwell Energy/Background.lua @@ -1,25 +1,25 @@ ---TRIGGER -function() - return true -end - ---DURATION -function() - if GetSpecialization() == 1 then - local AP = select(4, UnitDebuff("focus", "Judgment of Light")) or 0 - local maxAP = 40 - return AP, maxAP, 1 - end - if GetSpecialization() == 2 then - local AP = 0 - local maxAP = 0 - for i = 1, 40 do - if UnitExists("nameplate" .. i) and UnitDebuff("nameplate" .. i,"Judgment of Light") then - local APP = select(4, UnitDebuff("nameplate" .. i, "Judgment of Light")) or 0 - maxAP = maxAP + 40 - AP = AP + APP - end - end - end - return AP, maxAP, 1 +--TRIGGER +function() + return true +end + +--DURATION +function() + if GetSpecialization() == 1 then + local AP = select(4, UnitDebuff("focus", "Judgment of Light")) or 0 + local maxAP = 40 + return AP, maxAP, 1 + end + if GetSpecialization() == 2 then + local AP = 0 + local maxAP = 0 + for i = 1, 40 do + if UnitExists("nameplate" .. i) and UnitDebuff("nameplate" .. i,"Judgment of Light") then + local APP = select(4, UnitDebuff("nameplate" .. i, "Judgment of Light")) or 0 + maxAP = maxAP + 40 + AP = AP + APP + end + end + end + return AP, maxAP, 1 end \ No newline at end of file diff --git a/Complete Projects/Legion/Nightwell Energy/CODE.txt b/WeakAuras/Projects/Nightwell Energy/CODE.txt similarity index 100% rename from Complete Projects/Legion/Nightwell Energy/CODE.txt rename to WeakAuras/Projects/Nightwell Energy/CODE.txt diff --git a/Complete Projects/Legion/Nightwell Energy/Shield.lua b/WeakAuras/Projects/Nightwell Energy/Shield.lua similarity index 96% rename from Complete Projects/Legion/Nightwell Energy/Shield.lua rename to WeakAuras/Projects/Nightwell Energy/Shield.lua index 2a68268..116302a 100644 --- a/Complete Projects/Legion/Nightwell Energy/Shield.lua +++ b/WeakAuras/Projects/Nightwell Energy/Shield.lua @@ -1,31 +1,31 @@ ---EVERY FRAME -function() - return true -end - ---DURATION -function() - local AP = 0 - for i = 1, 40 do - local spellID = select(11, UnitBuff("player", i)) -- don't know which return arg it is - if spellID == 214577 then - local AP = select(17, UnitBuff("player", i)) - return aura_env.max - AP, aura_env.max, 1 - end - end -end - ---COMBAT_LOG_EVENT_UNFILTERED -function(...) - local subevent = select(3, ...) - local caster = select(6, ...) - if subevent == "SPELL_AURA_APPLIED" and caster == UnitName("player") then - local spell = select(13, ...) - if spell == 214577 then - aura_env.max = select(17, ...) - end - end -end - ---INIT +--EVERY FRAME +function() + return true +end + +--DURATION +function() + local AP = 0 + for i = 1, 40 do + local spellID = select(11, UnitBuff("player", i)) -- don't know which return arg it is + if spellID == 214577 then + local AP = select(17, UnitBuff("player", i)) + return aura_env.max - AP, aura_env.max, 1 + end + end +end + +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local subevent = select(3, ...) + local caster = select(6, ...) + if subevent == "SPELL_AURA_APPLIED" and caster == UnitName("player") then + local spell = select(13, ...) + if spell == 214577 then + aura_env.max = select(17, ...) + end + end +end + +--INIT aura_env.max = 0 \ No newline at end of file diff --git a/Complete Projects/Legion/Nightwell Energy/Stacks.lua b/WeakAuras/Projects/Nightwell Energy/Stacks.lua similarity index 95% rename from Complete Projects/Legion/Nightwell Energy/Stacks.lua rename to WeakAuras/Projects/Nightwell Energy/Stacks.lua index f5624e6..ff539d6 100644 --- a/Complete Projects/Legion/Nightwell Energy/Stacks.lua +++ b/WeakAuras/Projects/Nightwell Energy/Stacks.lua @@ -1,17 +1,17 @@ ---EVERY FRAME -function() - return true -end - ---DURATION -function() - local maxAP = 10 - local AP = 0 - for i = 1, 40 do - local spellID = select(11, UnitBuff("player", i)) -- don't know which return arg it is - if spellID == 214572 then - local AP = select(4, UnitBuff("player", i)) - return maxAP - AP, maxAP, 1 - end - end +--EVERY FRAME +function() + return true +end + +--DURATION +function() + local maxAP = 10 + local AP = 0 + for i = 1, 40 do + local spellID = select(11, UnitBuff("player", i)) -- don't know which return arg it is + if spellID == 214572 then + local AP = select(4, UnitBuff("player", i)) + return maxAP - AP, maxAP, 1 + end + end end \ No newline at end of file diff --git a/Complete Projects/Legion/Nightwell Energy/Text.lua b/WeakAuras/Projects/Nightwell Energy/Text.lua similarity index 96% rename from Complete Projects/Legion/Nightwell Energy/Text.lua rename to WeakAuras/Projects/Nightwell Energy/Text.lua index 83cfbab..b49dec8 100644 --- a/Complete Projects/Legion/Nightwell Energy/Text.lua +++ b/WeakAuras/Projects/Nightwell Energy/Text.lua @@ -1,39 +1,39 @@ ---TRIGGER -function() - return true --always on -end - ---DURATION -function() - local function shorten(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 - end - for i = 1, 40 do - local spellID = select(11, UnitBuff("player", i)) -- don't know which return arg it is - if spellID == 214577 then - local AP = select(17, UnitBuff("player", i)) - return shorten(AP) - end - if spellID == 214572 then - local AP = select(4, UnitBuff("player", i)) - return AP - end - end +--TRIGGER +function() + return true --always on +end + +--DURATION +function() + local function shorten(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 + end + for i = 1, 40 do + local spellID = select(11, UnitBuff("player", i)) -- don't know which return arg it is + if spellID == 214577 then + local AP = select(17, UnitBuff("player", i)) + return shorten(AP) + end + if spellID == 214572 then + local AP = select(4, UnitBuff("player", i)) + return AP + end + end end \ No newline at end of file diff --git a/Complete Projects/Legion/Nightwell Energy/Todo b/WeakAuras/Projects/Nightwell Energy/Todo similarity index 98% rename from Complete Projects/Legion/Nightwell Energy/Todo rename to WeakAuras/Projects/Nightwell Energy/Todo index 00f3874..5f46088 100644 --- a/Complete Projects/Legion/Nightwell Energy/Todo +++ b/WeakAuras/Projects/Nightwell Energy/Todo @@ -1,2 +1,2 @@ -Todo ---MAKE IT WORK ON HOLY AND PROT AND USE NAMEPLATE FOR PROT FOR STACKS ON HOLY USE FOCUS ALSO USE THE GET ROLE FUNCTION THING GOOD LUCK +Todo +--MAKE IT WORK ON HOLY AND PROT AND USE NAMEPLATE FOR PROT FOR STACKS ON HOLY USE FOCUS ALSO USE THE GET ROLE FUNCTION THING GOOD LUCK diff --git a/NewAge/NullBarrier/CLEU1.lua b/WeakAuras/Projects/NullBarrier/CLEU1.lua similarity index 97% rename from NewAge/NullBarrier/CLEU1.lua rename to WeakAuras/Projects/NullBarrier/CLEU1.lua index 01cc500..68ec099 100644 --- a/NewAge/NullBarrier/CLEU1.lua +++ b/WeakAuras/Projects/NullBarrier/CLEU1.lua @@ -1,10 +1,10 @@ -function() - if select(2, CombatLogGetCurrentEventInfo()) == "SPELL_AURA_APPLIED" then - local target = select(5, CombatLogGetCurrentEventInfo()) - local buff = select(13, CombatLogGetCurrentEventInfo()) - if target == UnitName("player") and aura_env.buffs[buff] ~= nil then - aura_env.max = aura_env.GetAbsorbs() - end - end - return aura_env.GetAbsorbs() > 0 +function() + if select(2, CombatLogGetCurrentEventInfo()) == "SPELL_AURA_APPLIED" then + local target = select(5, CombatLogGetCurrentEventInfo()) + local buff = select(13, CombatLogGetCurrentEventInfo()) + if target == UnitName("player") and aura_env.buffs[buff] ~= nil then + aura_env.max = aura_env.GetAbsorbs() + end + end + return aura_env.GetAbsorbs() > 0 end \ No newline at end of file diff --git a/NewAge/NullBarrier/CLEU2.lua b/WeakAuras/Projects/NullBarrier/CLEU2.lua similarity index 97% rename from NewAge/NullBarrier/CLEU2.lua rename to WeakAuras/Projects/NullBarrier/CLEU2.lua index c5a705e..ea53242 100644 --- a/NewAge/NullBarrier/CLEU2.lua +++ b/WeakAuras/Projects/NullBarrier/CLEU2.lua @@ -1,10 +1,10 @@ -function() - if select(2, CombatLogGetCurrentEventInfo()) == "SPELL_AURA_APPLIED" then - local target = select(5, CombatLogGetCurrentEventInfo()) - local buff = select(13, CombatLogGetCurrentEventInfo()) - if target == UnitName("player") and aura_env.buffs[buff] ~= nil then - aura_env.timeApplied = GetTime() - return true - end - end +function() + if select(2, CombatLogGetCurrentEventInfo()) == "SPELL_AURA_APPLIED" then + local target = select(5, CombatLogGetCurrentEventInfo()) + local buff = select(13, CombatLogGetCurrentEventInfo()) + if target == UnitName("player") and aura_env.buffs[buff] ~= nil then + aura_env.timeApplied = GetTime() + return true + end + end end \ No newline at end of file diff --git a/NewAge/NullBarrier/CustomDuration1.lua b/WeakAuras/Projects/NullBarrier/CustomDuration1.lua similarity index 96% rename from NewAge/NullBarrier/CustomDuration1.lua rename to WeakAuras/Projects/NullBarrier/CustomDuration1.lua index 7c61f99..8732875 100644 --- a/NewAge/NullBarrier/CustomDuration1.lua +++ b/WeakAuras/Projects/NullBarrier/CustomDuration1.lua @@ -1,3 +1,3 @@ -function() - return aura_env.GetAbsorbs(), aura_env.max, 1 +function() + return aura_env.GetAbsorbs(), aura_env.max, 1 end \ No newline at end of file diff --git a/NewAge/NullBarrier/CustomDuration2.lua b/WeakAuras/Projects/NullBarrier/CustomDuration2.lua similarity index 96% rename from NewAge/NullBarrier/CustomDuration2.lua rename to WeakAuras/Projects/NullBarrier/CustomDuration2.lua index ab30a4b..5d2f12c 100644 --- a/NewAge/NullBarrier/CustomDuration2.lua +++ b/WeakAuras/Projects/NullBarrier/CustomDuration2.lua @@ -1,3 +1,3 @@ -function() - return 15, aura_env.timeApplied + 15 +function() + return 15, aura_env.timeApplied + 15 end \ No newline at end of file diff --git a/NewAge/NullBarrier/Export b/WeakAuras/Projects/NullBarrier/Export similarity index 100% rename from NewAge/NullBarrier/Export rename to WeakAuras/Projects/NullBarrier/Export diff --git a/NewAge/NullBarrier/INIT1.lua b/WeakAuras/Projects/NullBarrier/INIT1.lua similarity index 94% rename from NewAge/NullBarrier/INIT1.lua rename to WeakAuras/Projects/NullBarrier/INIT1.lua index 3b75aa1..0674c4c 100644 --- a/NewAge/NullBarrier/INIT1.lua +++ b/WeakAuras/Projects/NullBarrier/INIT1.lua @@ -1,39 +1,39 @@ -aura_env.buffs = { - ["Null Barrier"] = 1, - ["Empowered Null Barrier"] = 1, -} -aura_env.max = 0 - -aura_env.GetBuff = function(name) - for i = 1, 40 do - if UnitBuff("player", i) == name then return i end - end - return 0 -end - -aura_env.GetAbsorb = function(name) - local temp = select(16, UnitBuff("player", aura_env.GetBuff(name))) - if temp then - return temp - else - return 0 - end -end - -aura_env.GetAbsorbs = function() - local abs = 0 - for k, v in pairs(aura_env.buffs) do - abs = abs + aura_env.GetAbsorb(k) - end - return abs -end - -aura_env.PrettyPrintNum = function(n) - if n > 1e6 then - return string.format("%.2fM", n / 1e6) - elseif n > 1e3 then - return string.format("%.2fk", n / 1e3) - else - return n - end -end +aura_env.buffs = { + ["Null Barrier"] = 1, + ["Empowered Null Barrier"] = 1, +} +aura_env.max = 0 + +aura_env.GetBuff = function(name) + for i = 1, 40 do + if UnitBuff("player", i) == name then return i end + end + return 0 +end + +aura_env.GetAbsorb = function(name) + local temp = select(16, UnitBuff("player", aura_env.GetBuff(name))) + if temp then + return temp + else + return 0 + end +end + +aura_env.GetAbsorbs = function() + local abs = 0 + for k, v in pairs(aura_env.buffs) do + abs = abs + aura_env.GetAbsorb(k) + end + return abs +end + +aura_env.PrettyPrintNum = function(n) + if n > 1e6 then + return string.format("%.2fM", n / 1e6) + elseif n > 1e3 then + return string.format("%.2fk", n / 1e3) + else + return n + end +end diff --git a/NewAge/NullBarrier/INIT2.lua b/WeakAuras/Projects/NullBarrier/INIT2.lua similarity index 94% rename from NewAge/NullBarrier/INIT2.lua rename to WeakAuras/Projects/NullBarrier/INIT2.lua index da3aac6..465e560 100644 --- a/NewAge/NullBarrier/INIT2.lua +++ b/WeakAuras/Projects/NullBarrier/INIT2.lua @@ -1,4 +1,4 @@ -aura_env.buffs = { - ["Null Barrier"] = 1, -} -aura_env.timeApplied = 0 +aura_env.buffs = { + ["Null Barrier"] = 1, +} +aura_env.timeApplied = 0 diff --git a/NewAge/NullBarrier/Text1.lua b/WeakAuras/Projects/NullBarrier/Text1.lua similarity index 97% rename from NewAge/NullBarrier/Text1.lua rename to WeakAuras/Projects/NullBarrier/Text1.lua index 9a93ed4..7459d14 100644 --- a/NewAge/NullBarrier/Text1.lua +++ b/WeakAuras/Projects/NullBarrier/Text1.lua @@ -1,3 +1,3 @@ -function() - return aura_env.PrettyPrintNum(aura_env.GetAbsorbs()) +function() + return aura_env.PrettyPrintNum(aura_env.GetAbsorbs()) end \ No newline at end of file diff --git a/Complete Projects/Legion/OneSecondTicker.lua b/WeakAuras/Projects/OneSecondTicker.lua similarity index 97% rename from Complete Projects/Legion/OneSecondTicker.lua rename to WeakAuras/Projects/OneSecondTicker.lua index 365f815..f65c524 100644 --- a/Complete Projects/Legion/OneSecondTicker.lua +++ b/WeakAuras/Projects/OneSecondTicker.lua @@ -1,6 +1,6 @@ ---PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED -function() - if not WeakAurasSaved.GlobalTicker then - WeakAurasSaved.GlobalTicker = C_Timer.NewTicker(1, function() WeakAuras.ScanEvents("GLOBAL_TICKER") end) - end -end +--PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED +function() + if not WeakAurasSaved.GlobalTicker then + WeakAurasSaved.GlobalTicker = C_Timer.NewTicker(1, function() WeakAuras.ScanEvents("GLOBAL_TICKER") end) + end +end diff --git a/FreshShit/OreCamper/event.lua b/WeakAuras/Projects/OreCamper/event.lua similarity index 97% rename from FreshShit/OreCamper/event.lua rename to WeakAuras/Projects/OreCamper/event.lua index df5a8d6..f338832 100644 --- a/FreshShit/OreCamper/event.lua +++ b/WeakAuras/Projects/OreCamper/event.lua @@ -1,24 +1,24 @@ --- UNIT_SPELLCAST_SENT ----@param allstates allstates ----@param e string ----@param source string ----@param spellname string ----@param _ string ----@param target string -function(allstates, e, source, spellname, _, target) - if source ~= "player" then return end - if spellname ~= "Mining" then return end - if aura_env.depositIterator[target] == nil then aura_env.depositIterator[target] = 0 end - local state = { - changed = true, - show = true, - progressType = "timed", - autoHide = true, - duration = aura_env.cooldown, - expirationTime = GetTime() + aura_env.cooldown, - name = string.format("%s #%d", target, aura_env.depositIterator[target]), - } - allstates[aura_env.depositIterator[target]] = state - aura_env.depositIterator[target] = aura_env.depositIterator[target] + 1 - return true +-- UNIT_SPELLCAST_SENT +---@param allstates allstates +---@param e string +---@param source string +---@param spellname string +---@param _ string +---@param target string +function(allstates, e, source, spellname, _, target) + if source ~= "player" then return end + if spellname ~= "Mining" then return end + if aura_env.depositIterator[target] == nil then aura_env.depositIterator[target] = 0 end + local state = { + changed = true, + show = true, + progressType = "timed", + autoHide = true, + duration = aura_env.cooldown, + expirationTime = GetTime() + aura_env.cooldown, + name = string.format("%s #%d", target, aura_env.depositIterator[target]), + } + allstates[aura_env.depositIterator[target]] = state + aura_env.depositIterator[target] = aura_env.depositIterator[target] + 1 + return true end \ No newline at end of file diff --git a/FreshShit/OreCamper/event2.lua b/WeakAuras/Projects/OreCamper/event2.lua similarity index 96% rename from FreshShit/OreCamper/event2.lua rename to WeakAuras/Projects/OreCamper/event2.lua index 7de1e88..eddbab7 100644 --- a/FreshShit/OreCamper/event2.lua +++ b/WeakAuras/Projects/OreCamper/event2.lua @@ -1,35 +1,35 @@ ---- CLEU:SPELL_DAMAGE -function(allstates, e, ...) - local source = arg4 - if not source or source ~= UnitName("player") then return end - local targetGUID = arg6 - if not targetGUID then return end - local targetName = arg7 - if not targetName then return end - local overkill = arg13 - if not overkill or overkill <= 0 then return end - - local currentTime = GetTime() - if aura_env.lastEvent > 0 and currentTime - aura_env.lastEvent < aura_env.throttle then return end - aura_env.lastEvent = currentTime - local cooldown = aura_env.cooldown - --- local lastEventTime = aura_env.lastEventTimes[targetGUID] or currentTime --- local timeSinceLastEvent = currentTime - lastEventTime --- local cooldown = timeSinceLastEvent --- if cooldown == 0 then cooldown = aura_env.cooldown end - - local state = { - changed = true, - show = true, - progressType = "timed", - autoHide = true, - duration = cooldown, - expirationTime = currentTime + cooldown, - name = string.format("%s", targetName), - } - - aura_env.lastEventTimes[targetGUID] = currentTime - allstates[targetGUID] = state - return true -end +--- CLEU:SPELL_DAMAGE +function(allstates, e, ...) + local source = arg4 + if not source or source ~= UnitName("player") then return end + local targetGUID = arg6 + if not targetGUID then return end + local targetName = arg7 + if not targetName then return end + local overkill = arg13 + if not overkill or overkill <= 0 then return end + + local currentTime = GetTime() + if aura_env.lastEvent > 0 and currentTime - aura_env.lastEvent < aura_env.throttle then return end + aura_env.lastEvent = currentTime + local cooldown = aura_env.cooldown + +-- local lastEventTime = aura_env.lastEventTimes[targetGUID] or currentTime +-- local timeSinceLastEvent = currentTime - lastEventTime +-- local cooldown = timeSinceLastEvent +-- if cooldown == 0 then cooldown = aura_env.cooldown end + + local state = { + changed = true, + show = true, + progressType = "timed", + autoHide = true, + duration = cooldown, + expirationTime = currentTime + cooldown, + name = string.format("%s", targetName), + } + + aura_env.lastEventTimes[targetGUID] = currentTime + allstates[targetGUID] = state + return true +end diff --git a/FreshShit/OreCamper/export b/WeakAuras/Projects/OreCamper/export similarity index 99% rename from FreshShit/OreCamper/export rename to WeakAuras/Projects/OreCamper/export index ef916c7..04c8074 100644 --- a/FreshShit/OreCamper/export +++ b/WeakAuras/Projects/OreCamper/export @@ -1,2 +1,2 @@ -rt +rt !LJrBtnoVX)l05M5UPeMeia39HBMM3aY1qcnY8WD94CIWwXrhosPs2qG26F7DxjlBhiaPx78mtNoWKOSA1Q99xKFdFpFI2NS)EnoAVd8jl8jH4)a0iL8EFs3rxn0NCJufYuTPb3gQKl9jTJ5p(ivfMn1tkJt4aOvJMntZs8pP5No(Jh(PpEqJM738OgnB6pRwtGYp42)WJoQ5rFS5N(y96np44Jpc3VPpHkcMlvxi5IeFsNEd96n2DVDKXsfWsdB4pSU)W9nFEG5ZMiq4a6L0agUfHgKWLcTrUsOQeybS)mUGRNBxdlTqH1jkEuetPTu3RaaUmKDt6SzEpSK5toR3Glo5YbW(MFstv09XBLfh3puBPRo9g2DmrcbofFLpzsNweVjeVwJbILIxkzzm9bG4ebDbl)uMJaxaJgNmVKixOygIqUO3GbiEPIswlXY8bY40fcIv0B4tu0qEQg0c1Rd4Rzd4lGl9gGDJ5rIsTkOxmecuG49nMfLRXaAglPgRpC8jbXuTgppiNbiWfPGT2P6S7(uOA(JSNceaFtURtvtzdJPSHXu2WykRV3HiYubFbnHzU5aASv4IncZWdDof4U2v9cJatc5VLsvSSPNKghNn9Q5CGaeLr0SMWWhaTopaCRtx6okb5w0RrlbpfIqkyOAvmJhzvhrkEO94J7A2b0DIKtaNmqmiJB1T)Le4AKju0RZOrTuo3BhKky37lTrjYG7a)ndYhx)a0sXHiUopCl9CUG1P7Pw(lfHYpn58U9Vk(qnedotbonG)jnHAOKnG5eeQLdjDg3RhGOMfplpoYB0fogQVWWpnSY0v8qWBd1M00eGmJwMu6dqvbdyIieHdoQUrSd5v2hintjOX)Mtq2)iNrd)zLipsieOGaNyJB0mKwAxyKrFdeCbLl2ESlIL3o8ToRfb4qMc1T5IFJ6Bu(d5Amq1JTc(X7wwM7cnVBmpLHOJxZlaC4rxnr4wK9AMe8PIPraRp6sVb9h2duYGSmj4vdxSz(kT2fznPQxkoRYLgY00eubAc0wQKrkMwd5Dc4ANuGmMp5ef)XSP)LuAi68b58DQrRA5BguDjo(ppxHEHuMm)ICgYVTjzuRWFMQtyHSqimbz4QH2y6yqObdpyYsvaKEX3Dz)SPTJPIBZzwp3E9r33zqa51DO6eUiQnvD9L9Rv(RAe8agFdjE)BiOLgVCUno0ePgF6TN3F0Xxr)2prh0vmxeMjxSmnjMJPwkSUvuFF1O(caPtUa5XlxgI2esA(3itGrwbwksAHm1Rw4Y6(BPO7Bxic4IYCuEJf42Q6rVC5m3TwRw20lh2hQ)HhWwjeCpZ(sTA1(tGWtxKnLghB4hD1LvrasNRb5seTguTmvf8cBHfKrUzJ7ozJqHuvrSKYTMLkmTq8(cEAxGt21DV7w5wG1t21rHpK9LSP2)4Zk5YS)XNZMUJvtTdG7CMiBQIbUIW3mr4tovPaypi4TdC1BFqmeyctC3EHSLsnpPp4JtHIuF3YC)iB6NbYj4XokTfhiBA9NCtXsOEmQQa1IbH)E5EU)cMtfrSqZ2jQuqj9mu0ZL3)A77sgHUMg82jHVGfUZgqfJooJhYEnY5ktyWPqUdGoxdL3l2WbyRwYThXJVWs6tzj463)HSP)XTJiwR4NDow7ntQGW43VZ7a39)W7qHj3Xz332y8Hk0)FwUSWd97Vfb(roNG2TYJVnUaVnsG(OrjrDEOOTi7lG3ZB0yCWCwWTfPDwVJAdqOO4gsKuKxBoy8HuEO)XMAtglM)tte9DyUuXdfPATOnqgXdGu2UG(QHXfIY33)h5Ic1qO8ZEUeU6H1GUi(FWMIkAjVV4efwMh72gQYC7dDZjGbs1XdYl0uTK7eSSBc2GHNT67e9Ckeq8vxhtnChaOuIPHkdw2LVtK)ZTOphdE2(r6TAjMD4E6dRDNBrJwvW(BooSwdh8YoPADP3Okxz(yc1RaYw107S(D(Zff1nBUw)H9hoS34jd6DINRXXVvPvsd(yBn8zGKyXYmkbZ265WrivTN7Rp9C3bDPDdmBuBu9FWVM6F5)xO(h3)0Z2c9FoA)AgGM)Aga9VKbyt9J)7OHOX(pZqm0m48gmaDgnCIBSK3Ya4WRQfOAOZlAbUX38WaEvu15Vrq(SV5mLzYOcyYsQLdj4TvC5ywA7DqyMhHOr20lGM)JlaBgXbOHjJ7CgpAogTwpFaG2XqrftvesRUD)38vsw3Gu9rlm0gAkkKb5xh273kFjnxU(2p)j9wFIjZ0NAtP184cecwryBgj1C)pvyDJhNlVgpRn8yDeno0C1P0AfgosOV(kg92wqvh91NZc50RjiE6RBlxbDx1sXeudK9Krrqrq5elDUz9IJqL)Lf78F5RQDLhxeHMpku7YHIEwBJMoS(0HzF5L6YY2Kn0Yx(OXOISZBBbEsrL7bB9vkkyLVQy16V6uoPrLYtFNP7TdYAN69LEZP1NqNUcjexGdnBcsmeVR9bhmp3GuXHw7STzqoB04()1rd9An45V10JsqXHXORkJ(nQI7aMR5(O06)Vc \ No newline at end of file diff --git a/FreshShit/OreCamper/init.lua b/WeakAuras/Projects/OreCamper/init.lua similarity index 96% rename from FreshShit/OreCamper/init.lua rename to WeakAuras/Projects/OreCamper/init.lua index 78c8ab1..d40fcbb 100644 --- a/FreshShit/OreCamper/init.lua +++ b/WeakAuras/Projects/OreCamper/init.lua @@ -1,5 +1,5 @@ -aura_env.cooldown = 240 -aura_env.depositIterator = {} -aura_env.lastEventTimes = {} -aura_env.throttle = 0.5 -aura_env.lastEvent = 0 +aura_env.cooldown = 240 +aura_env.depositIterator = {} +aura_env.lastEventTimes = {} +aura_env.throttle = 0.5 +aura_env.lastEvent = 0 diff --git a/NewAge/OverallAbsorbs/Export.txt b/WeakAuras/Projects/OverallAbsorbs/Export.txt similarity index 100% rename from NewAge/OverallAbsorbs/Export.txt rename to WeakAuras/Projects/OverallAbsorbs/Export.txt diff --git a/NewAge/OverallAbsorbs/INIT.lua b/WeakAuras/Projects/OverallAbsorbs/INIT.lua similarity index 94% rename from NewAge/OverallAbsorbs/INIT.lua rename to WeakAuras/Projects/OverallAbsorbs/INIT.lua index 233dfed..7861b66 100644 --- a/NewAge/OverallAbsorbs/INIT.lua +++ b/WeakAuras/Projects/OverallAbsorbs/INIT.lua @@ -1,43 +1,43 @@ -aura_env.buffs = { - ["Null Barrier"] = 1, - ["Empowered Null Barrier"] = 1, - ["Resounding Protection"] = 1, - ["Guard"] = 1, - ["Void Shroud"] = 1, - ["Stoneskin"] = 1, -} -aura_env.max = 0 - -aura_env.GetBuff = function(name) - for i = 1, 40 do - if UnitBuff("player", i) == name then return i end - end - return 0 -end - -aura_env.GetAbsorb = function(name) - local temp = select(16, UnitBuff("player", aura_env.GetBuff(name))) - if temp then - return temp - else - return 0 - end -end - -aura_env.GetAbsorbs = function() - local abs = 0 - for k, v in pairs(aura_env.buffs) do - abs = abs + aura_env.GetAbsorb(k) - end - return abs -end - -aura_env.PrettyPrintNum = function(n) - if n > 1e6 then - return string.format("%.2fM", n / 1e6) - elseif n > 1e3 then - return string.format("%.2fk", n / 1e3) - else - return n - end -end +aura_env.buffs = { + ["Null Barrier"] = 1, + ["Empowered Null Barrier"] = 1, + ["Resounding Protection"] = 1, + ["Guard"] = 1, + ["Void Shroud"] = 1, + ["Stoneskin"] = 1, +} +aura_env.max = 0 + +aura_env.GetBuff = function(name) + for i = 1, 40 do + if UnitBuff("player", i) == name then return i end + end + return 0 +end + +aura_env.GetAbsorb = function(name) + local temp = select(16, UnitBuff("player", aura_env.GetBuff(name))) + if temp then + return temp + else + return 0 + end +end + +aura_env.GetAbsorbs = function() + local abs = 0 + for k, v in pairs(aura_env.buffs) do + abs = abs + aura_env.GetAbsorb(k) + end + return abs +end + +aura_env.PrettyPrintNum = function(n) + if n > 1e6 then + return string.format("%.2fM", n / 1e6) + elseif n > 1e3 then + return string.format("%.2fk", n / 1e3) + else + return n + end +end diff --git a/Complete Projects/Legion/PPM.lua b/WeakAuras/Projects/PPM.lua similarity index 95% rename from Complete Projects/Legion/PPM.lua rename to WeakAuras/Projects/PPM.lua index 3a636d8..5f6b2d7 100644 --- a/Complete Projects/Legion/PPM.lua +++ b/WeakAuras/Projects/PPM.lua @@ -1,62 +1,62 @@ -DISPLAY -function() - 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 - if UnitAffectingCombat("player") == true then - aura_env.endTime = math.floor(GetTime()) - end - local ppm = aura_env.procs / ((aura_env.endTime - aura_env.startTime) / 60) - ppm = ppm / 60 - return round(ppm, 2) -end - ---COMBAT_LOG_EVENT_UNFILTERED -function(...) - local subevent = select(3, ...) - if subevent == "SPELL_AURA_APPLIED" then - local caster = select(6, ...) - local bname = select(14, ...) - if caster == UnitName("player") and bname == aura_env.bname then - aura_env.procs = aura_env.procs + 1 - local expTime = select(7, UnitBuff("player", aura_env.bname)) - aura_env.expTime = expTime - end - end -end - ---PLAYER_REGEN_DISABLED -function() --Enable timer on start combat - aura_env.startTime = math.floor(GetTime()) - return true -end - ---PLAYER_REGEN_ENABLED -function() --Disable timer on end cobat - aura_env.endTime = math.floor(GetTime()) - return true -end - ---EVERY FRAME TRIGGER -function() - if UnitBuff("player", aura_env.bname) then - local expTime = select(7, UnitBuff("player", aura_env.bname)) - --print(expTime, aura_env.expTime) - if expTime ~= aura_env.expTime then - aura_env.procs = aura_env.procs + 1 - end - aura_env.expTime = expTime - end -end - -INIT -aura_env.bname = "Meat Cleaver" -aura_env.startTime = 0 -aura_env.endTime = 0 -aura_env.procs = 0 +DISPLAY +function() + 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 + if UnitAffectingCombat("player") == true then + aura_env.endTime = math.floor(GetTime()) + end + local ppm = aura_env.procs / ((aura_env.endTime - aura_env.startTime) / 60) + ppm = ppm / 60 + return round(ppm, 2) +end + +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local subevent = select(3, ...) + if subevent == "SPELL_AURA_APPLIED" then + local caster = select(6, ...) + local bname = select(14, ...) + if caster == UnitName("player") and bname == aura_env.bname then + aura_env.procs = aura_env.procs + 1 + local expTime = select(7, UnitBuff("player", aura_env.bname)) + aura_env.expTime = expTime + end + end +end + +--PLAYER_REGEN_DISABLED +function() --Enable timer on start combat + aura_env.startTime = math.floor(GetTime()) + return true +end + +--PLAYER_REGEN_ENABLED +function() --Disable timer on end cobat + aura_env.endTime = math.floor(GetTime()) + return true +end + +--EVERY FRAME TRIGGER +function() + if UnitBuff("player", aura_env.bname) then + local expTime = select(7, UnitBuff("player", aura_env.bname)) + --print(expTime, aura_env.expTime) + if expTime ~= aura_env.expTime then + aura_env.procs = aura_env.procs + 1 + end + aura_env.expTime = expTime + end +end + +INIT +aura_env.bname = "Meat Cleaver" +aura_env.startTime = 0 +aura_env.endTime = 0 +aura_env.procs = 0 aura_env.expTime = 0 \ No newline at end of file diff --git a/FreshShit/PersonalAnnouncer/event.lua b/WeakAuras/Projects/PersonalAnnouncer/event.lua similarity index 96% rename from FreshShit/PersonalAnnouncer/event.lua rename to WeakAuras/Projects/PersonalAnnouncer/event.lua index c9dda8d..e5b422e 100644 --- a/FreshShit/PersonalAnnouncer/event.lua +++ b/WeakAuras/Projects/PersonalAnnouncer/event.lua @@ -1,13 +1,13 @@ --- TICKER_500 -function(e) - if aura_env.ActiveSet == nil then - aura_env.ActiveSet = aura_env.Cooldowns[UnitClass("player")] - if aura_env.ActiveSet == nil then - aura_env.ActiveSet = {} - end - end - for _, cooldown in ipairs(aura_env.ActiveSet) do - if aura_env.debug then print(string.format("Calling update on %s", cooldown.name)) end - cooldown:Update() - end +-- TICKER_500 +function(e) + if aura_env.ActiveSet == nil then + aura_env.ActiveSet = aura_env.Cooldowns[UnitClass("player")] + if aura_env.ActiveSet == nil then + aura_env.ActiveSet = {} + end + end + for _, cooldown in ipairs(aura_env.ActiveSet) do + if aura_env.debug then print(string.format("Calling update on %s", cooldown.name)) end + cooldown:Update() + end end \ No newline at end of file diff --git a/FreshShit/PersonalAnnouncer/export b/WeakAuras/Projects/PersonalAnnouncer/export similarity index 100% rename from FreshShit/PersonalAnnouncer/export rename to WeakAuras/Projects/PersonalAnnouncer/export diff --git a/FreshShit/PersonalAnnouncer/init.lua b/WeakAuras/Projects/PersonalAnnouncer/init.lua similarity index 96% rename from FreshShit/PersonalAnnouncer/init.lua rename to WeakAuras/Projects/PersonalAnnouncer/init.lua index d6360bc..d10223c 100644 --- a/FreshShit/PersonalAnnouncer/init.lua +++ b/WeakAuras/Projects/PersonalAnnouncer/init.lua @@ -1,187 +1,187 @@ -aura_env.debug = true - ----@class BaseCooldown ----@field name string ----@field filename string ----@field id number ----@field isOnCooldown boolean ----@field announced boolean ----@field remaining number -aura_env.BaseCooldown = { - ---@param id number - ---@param name string - ---@param playbackSpeed number? - ---@return BaseCooldown - new = function(id, name, playbackSpeed) - local self = setmetatable({}, { - __index = aura_env.BaseCooldown, - }) - self.id = id - self.name = name - name = string.gsub(name, " ", "_") - name = string.gsub(name, "'", "") - name = string.lower(name) - self.filename = name - if playbackSpeed == nil then - self.filename = string.format("1x\\%s", self.filename) - else - self.filename = string.format("%.1fx\\%s", playbackSpeed, self.filename) - end - if aura_env.debug then print(string.format("Created BaseCooldown with filename %s", self.filename)) end - self.isOnCooldown = false - self.announced = false - self.remaining = 0 - return self - end, - - ---@param self BaseCooldown - ---@param cooldownFunc fun(spellId: number): number, number - Update = function(self, cooldownFunc) - local start, duration = cooldownFunc(self.id) - local isOnCooldown = start > 0 and duration > 3 - local remaining = start + duration - GetTime() - - if not isOnCooldown and self.isOnCooldown then - self:playComplete() - self.announced = false - end - if not self.announced and isOnCooldown and remaining < 10 then - self:playSoon() - self.announced = true - end - - self.isOnCooldown = isOnCooldown - self.remaining = remaining - end, - - ---@param self 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)) - end - WeakAuras.ScanEvents("PLAY_SOUND", soundFile) - end, - - ---@param self 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)) - end - WeakAuras.ScanEvents("PLAY_SOUND", soundFile) - end, -} - ----@class Spell:BaseCooldown -aura_env.Spell = { - ---@param id number - ---@param name string - ---@param playbackSpeed number? - ---@return Spell - new = function(id, name, playbackSpeed) - local obj = aura_env.BaseCooldown.new(id, name, playbackSpeed) - ---@cast obj Spell - setmetatable(obj, { - __index = aura_env.Spell, - }) - return obj - end, - Update = function(self) aura_env.BaseCooldown.Update(self, GetSpellCooldown) end, - playComplete = aura_env.BaseCooldown.playComplete, - playSoon = aura_env.BaseCooldown.playSoon, -} ----@class Item:BaseCooldown -aura_env.Item = { - ---@param id number - ---@param name string - ---@param playbackSpeed number? - ---@return Item - new = function(id, name, playbackSpeed) - local obj = aura_env.BaseCooldown.new(id, name, playbackSpeed) - ---@cast obj Item - setmetatable(obj, { - __index = aura_env.Item, - }) - return obj - end, - Update = function(self) aura_env.BaseCooldown.Update(self, GetItemCooldown) end, - playComplete = aura_env.BaseCooldown.playComplete, - playSoon = aura_env.BaseCooldown.playSoon, -} ----@class Buff:BaseCooldown ----@field isActive boolean -aura_env.Buff = { - ---@param id number - ---@param name string - ---@param playbackSpeed number? - ---@return Buff - new = function(id, name, playbackSpeed) - local obj = aura_env.BaseCooldown.new(id, name, playbackSpeed) - ---@cast obj Buff - setmetatable(obj, { - __index = aura_env.Buff, - }) - obj.isActive = false - return obj - end, - Update = function(self) - local duration, expiry = select(6, UnitBuff("player", self.name)) - - local isActive = true - if duration == nil or expiry == nil then - isActive = false - expiry = 0 - end - local remaining = expiry - GetTime() - - if not isActive and self.isActive then - self:playComplete() -- More like "PlayExpired" - self.announced = false - end - if not self.announced and isActive and remaining < 5 then - self:playSoon() -- More like "PlayExpiring" - self.announced = true - end - - self.isActive = isActive - self.remaining = remaining - end, - ---@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 - 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 - WeakAuras.ScanEvents("PLAY_SOUND", soundFile) - end, -} - ----@type table|nil -aura_env.ActiveSet = nil - ----@type table> -aura_env.Cooldowns = { - ["Warrior"] = { - aura_env.Spell.new(107574, "Avatar", 1.6), - aura_env.Spell.new(1719, "Battle Cry", 1.6), - aura_env.Spell.new(205545, "Odyns Fury", 1.6), - aura_env.Spell.new(26297, "Berserking", 1.6), - aura_env.Spell.new(12292, "Bloodbath", 1.6), - }, - ["Warlock"] = { - aura_env.Spell.new(108416, "Dark Pact", 1.6), - aura_env.Spell.new(104773, "Unending Resolve", 1.6), - 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), - }, -} +aura_env.debug = true + +---@class BaseCooldown +---@field name string +---@field filename string +---@field id number +---@field isOnCooldown boolean +---@field announced boolean +---@field remaining number +aura_env.BaseCooldown = { + ---@param id number + ---@param name string + ---@param playbackSpeed number? + ---@return BaseCooldown + new = function(id, name, playbackSpeed) + local self = setmetatable({}, { + __index = aura_env.BaseCooldown, + }) + self.id = id + self.name = name + name = string.gsub(name, " ", "_") + name = string.gsub(name, "'", "") + name = string.lower(name) + self.filename = name + if playbackSpeed == nil then + self.filename = string.format("1x\\%s", self.filename) + else + self.filename = string.format("%.1fx\\%s", playbackSpeed, self.filename) + end + if aura_env.debug then print(string.format("Created BaseCooldown with filename %s", self.filename)) end + self.isOnCooldown = false + self.announced = false + self.remaining = 0 + return self + end, + + ---@param self BaseCooldown + ---@param cooldownFunc fun(spellId: number): number, number + Update = function(self, cooldownFunc) + local start, duration = cooldownFunc(self.id) + local isOnCooldown = start > 0 and duration > 3 + local remaining = start + duration - GetTime() + + if not isOnCooldown and self.isOnCooldown then + self:playComplete() + self.announced = false + end + if not self.announced and isOnCooldown and remaining < 10 then + self:playSoon() + self.announced = true + end + + self.isOnCooldown = isOnCooldown + self.remaining = remaining + end, + + ---@param self 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)) + end + WeakAuras.ScanEvents("PLAY_SOUND", soundFile) + end, + + ---@param self 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)) + end + WeakAuras.ScanEvents("PLAY_SOUND", soundFile) + end, +} + +---@class Spell:BaseCooldown +aura_env.Spell = { + ---@param id number + ---@param name string + ---@param playbackSpeed number? + ---@return Spell + new = function(id, name, playbackSpeed) + local obj = aura_env.BaseCooldown.new(id, name, playbackSpeed) + ---@cast obj Spell + setmetatable(obj, { + __index = aura_env.Spell, + }) + return obj + end, + Update = function(self) aura_env.BaseCooldown.Update(self, GetSpellCooldown) end, + playComplete = aura_env.BaseCooldown.playComplete, + playSoon = aura_env.BaseCooldown.playSoon, +} +---@class Item:BaseCooldown +aura_env.Item = { + ---@param id number + ---@param name string + ---@param playbackSpeed number? + ---@return Item + new = function(id, name, playbackSpeed) + local obj = aura_env.BaseCooldown.new(id, name, playbackSpeed) + ---@cast obj Item + setmetatable(obj, { + __index = aura_env.Item, + }) + return obj + end, + Update = function(self) aura_env.BaseCooldown.Update(self, GetItemCooldown) end, + playComplete = aura_env.BaseCooldown.playComplete, + playSoon = aura_env.BaseCooldown.playSoon, +} +---@class Buff:BaseCooldown +---@field isActive boolean +aura_env.Buff = { + ---@param id number + ---@param name string + ---@param playbackSpeed number? + ---@return Buff + new = function(id, name, playbackSpeed) + local obj = aura_env.BaseCooldown.new(id, name, playbackSpeed) + ---@cast obj Buff + setmetatable(obj, { + __index = aura_env.Buff, + }) + obj.isActive = false + return obj + end, + Update = function(self) + local duration, expiry = select(6, UnitBuff("player", self.name)) + + local isActive = true + if duration == nil or expiry == nil then + isActive = false + expiry = 0 + end + local remaining = expiry - GetTime() + + if not isActive and self.isActive then + self:playComplete() -- More like "PlayExpired" + self.announced = false + end + if not self.announced and isActive and remaining < 5 then + self:playSoon() -- More like "PlayExpiring" + self.announced = true + end + + self.isActive = isActive + self.remaining = remaining + end, + ---@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 + 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 + WeakAuras.ScanEvents("PLAY_SOUND", soundFile) + end, +} + +---@type table|nil +aura_env.ActiveSet = nil + +---@type table> +aura_env.Cooldowns = { + ["Warrior"] = { + aura_env.Spell.new(107574, "Avatar", 1.6), + aura_env.Spell.new(1719, "Battle Cry", 1.6), + aura_env.Spell.new(205545, "Odyns Fury", 1.6), + aura_env.Spell.new(26297, "Berserking", 1.6), + aura_env.Spell.new(12292, "Bloodbath", 1.6), + }, + ["Warlock"] = { + aura_env.Spell.new(108416, "Dark Pact", 1.6), + aura_env.Spell.new(104773, "Unending Resolve", 1.6), + 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/WIP/Premade Automation.lua b/WeakAuras/Projects/Premade Automation.lua similarity index 96% rename from WIP/Premade Automation.lua rename to WeakAuras/Projects/Premade Automation.lua index a332245..a48c340 100644 --- a/WIP/Premade Automation.lua +++ b/WeakAuras/Projects/Premade Automation.lua @@ -1,16 +1,16 @@ -function() - C_LFGList.Search(2, "") - numResults, resultIDTable = C_LFGList.GetSearchResults(); - print(numResults, resultIDTable) - for k,v in pairs(resultIDTable) do - --local _,_,name,comment,_,iLvl,_,_,_,_,_,leaderName,numMembers = C_LFGList.GetSearchResultInfo(v); - for i = 1, 40 do - local tempvar = "" - tempvar = select(i, C_LFGList.GetSearchResultInfo(v)) - if tempvar ~= nil then - print(tempvar, i) - end - end - print("") - end +function() + C_LFGList.Search(2, "") + numResults, resultIDTable = C_LFGList.GetSearchResults(); + print(numResults, resultIDTable) + for k,v in pairs(resultIDTable) do + --local _,_,name,comment,_,iLvl,_,_,_,_,_,leaderName,numMembers = C_LFGList.GetSearchResultInfo(v); + for i = 1, 40 do + local tempvar = "" + tempvar = select(i, C_LFGList.GetSearchResultInfo(v)) + if tempvar ~= nil then + print(tempvar, i) + end + end + print("") + end end \ No newline at end of file diff --git a/Complete Projects/Legion/Premade Groups.lua b/WeakAuras/Projects/Premade Groups.lua similarity index 96% rename from Complete Projects/Legion/Premade Groups.lua rename to WeakAuras/Projects/Premade Groups.lua index e45c38c..a1c9f3c 100644 --- a/Complete Projects/Legion/Premade Groups.lua +++ b/WeakAuras/Projects/Premade Groups.lua @@ -1,63 +1,63 @@ ---LFG_LIST_SEARCH_RESULTS_RECEIVED -function() - aura_env.grouperino = {} - for k,v in ipairs(select(2, C_LFGList.GetSearchResults())) do - local id,aid,name,desc = C_LFGList.GetSearchResultInfo(v) - local leader = select(13, C_LFGList.GetSearchResultInfo(v)) - local members = select(14, C_LFGList.GetSearchResultInfo(v)) - local dungeon = C_LFGList.GetActivityInfo(aid) - local tank, heal, dps = 0, 0, 0 - for k,v in pairs(C_LFGList.GetSearchResultMemberCounts(v)) do - if k == "DAMAGER" then - dps = v - elseif k == "TANK" then - tank = v - elseif k == "HEALER" then - heal = v - end - end - local level = name:match("(%d+)") or "-" - local sname = dungeon:gsub(" (Mythic Keystone)", "") - if sname:match("Black Rook Hold") then sname = "BRH" - elseif sname:match("Court of Stars") then sname = "CoS" - elseif sname:match("Darkheart Thicket") then sname = "DHT" - elseif sname:match("Eye of Azshara") then sname = "EoA" - elseif sname:match("Halls of Valor") then sname = "HoV" - elseif sname:match("Maw of Souls") then sname = "MoS" - elseif sname:match("Neltharion's Lair") then sname = "NL" - elseif sname:match("The Arcway") then sname = "Arc" - elseif sname:match("Vault of the Wardens") then sname = "VoTW" - elseif sname:match("Cathedral of Eternal Night") then sname = "CoEN" - end - aura_env.grouperino[#aura_env.grouperino + 1] = - { - ["Name"] = name, - ["Description"] = desc, - ["Leader"] = leader, - ["Members"] = members, - ["Dungeon"] = dungeon, - ["Tank"] = tank, - ["DPS"] = dps, - ["Heal"] = heal, - - ["Dungeon2"] = sname, - ["Level"] = level, - } - end -end - ---DISPLAY -function() - local output = "" - for k,v in ipairs(aura_env.grouperino) do - if v.Level ~= "-" then - if tonumber(v.Level) > -1 then - output = output .. v.Dungeon2 .. " - " .. v.Level .. " " .. v.Members .. " " .. v.Tank .. "/" .. v.Heal .. "/" .. v.DPS .. "\n" - end - end - end - return output -end - ---INIT +--LFG_LIST_SEARCH_RESULTS_RECEIVED +function() + aura_env.grouperino = {} + for k,v in ipairs(select(2, C_LFGList.GetSearchResults())) do + local id,aid,name,desc = C_LFGList.GetSearchResultInfo(v) + local leader = select(13, C_LFGList.GetSearchResultInfo(v)) + local members = select(14, C_LFGList.GetSearchResultInfo(v)) + local dungeon = C_LFGList.GetActivityInfo(aid) + local tank, heal, dps = 0, 0, 0 + for k,v in pairs(C_LFGList.GetSearchResultMemberCounts(v)) do + if k == "DAMAGER" then + dps = v + elseif k == "TANK" then + tank = v + elseif k == "HEALER" then + heal = v + end + end + local level = name:match("(%d+)") or "-" + local sname = dungeon:gsub(" (Mythic Keystone)", "") + if sname:match("Black Rook Hold") then sname = "BRH" + elseif sname:match("Court of Stars") then sname = "CoS" + elseif sname:match("Darkheart Thicket") then sname = "DHT" + elseif sname:match("Eye of Azshara") then sname = "EoA" + elseif sname:match("Halls of Valor") then sname = "HoV" + elseif sname:match("Maw of Souls") then sname = "MoS" + elseif sname:match("Neltharion's Lair") then sname = "NL" + elseif sname:match("The Arcway") then sname = "Arc" + elseif sname:match("Vault of the Wardens") then sname = "VoTW" + elseif sname:match("Cathedral of Eternal Night") then sname = "CoEN" + end + aura_env.grouperino[#aura_env.grouperino + 1] = + { + ["Name"] = name, + ["Description"] = desc, + ["Leader"] = leader, + ["Members"] = members, + ["Dungeon"] = dungeon, + ["Tank"] = tank, + ["DPS"] = dps, + ["Heal"] = heal, + + ["Dungeon2"] = sname, + ["Level"] = level, + } + end +end + +--DISPLAY +function() + local output = "" + for k,v in ipairs(aura_env.grouperino) do + if v.Level ~= "-" then + if tonumber(v.Level) > -1 then + output = output .. v.Dungeon2 .. " - " .. v.Level .. " " .. v.Members .. " " .. v.Tank .. "/" .. v.Heal .. "/" .. v.DPS .. "\n" + end + end + end + return output +end + +--INIT aura_env.grouperino = {} \ No newline at end of file diff --git a/NewAge/PrimaryStatBar/CLEU.lua b/WeakAuras/Projects/PrimaryStatBar/CLEU.lua similarity index 97% rename from NewAge/PrimaryStatBar/CLEU.lua rename to WeakAuras/Projects/PrimaryStatBar/CLEU.lua index 398a605..d3a2230 100644 --- a/NewAge/PrimaryStatBar/CLEU.lua +++ b/WeakAuras/Projects/PrimaryStatBar/CLEU.lua @@ -1,7 +1,7 @@ -function(e, ...) - aura_env.currentStat = aura_env.GetPrimaryStat() - if aura_env.maxStat < aura_env.currentStat then - aura_env.maxStat = aura_env.currentStat - end - return true +function(e, ...) + aura_env.currentStat = aura_env.GetPrimaryStat() + if aura_env.maxStat < aura_env.currentStat then + aura_env.maxStat = aura_env.currentStat + end + return true end \ No newline at end of file diff --git a/NewAge/PrimaryStatBar/CustomDuration.lua b/WeakAuras/Projects/PrimaryStatBar/CustomDuration.lua similarity index 97% rename from NewAge/PrimaryStatBar/CustomDuration.lua rename to WeakAuras/Projects/PrimaryStatBar/CustomDuration.lua index 314bbce..0f7d858 100644 --- a/NewAge/PrimaryStatBar/CustomDuration.lua +++ b/WeakAuras/Projects/PrimaryStatBar/CustomDuration.lua @@ -1,3 +1,3 @@ -function() - return aura_env.currentStat, aura_env.maxStat, 1 +function() + return aura_env.currentStat, aura_env.maxStat, 1 end \ No newline at end of file diff --git a/NewAge/PrimaryStatBar/Export.txt b/WeakAuras/Projects/PrimaryStatBar/Export.txt similarity index 100% rename from NewAge/PrimaryStatBar/Export.txt rename to WeakAuras/Projects/PrimaryStatBar/Export.txt diff --git a/NewAge/PrimaryStatBar/INIT.lua b/WeakAuras/Projects/PrimaryStatBar/INIT.lua similarity index 95% rename from NewAge/PrimaryStatBar/INIT.lua rename to WeakAuras/Projects/PrimaryStatBar/INIT.lua index 64e9e7d..a2bdde9 100644 --- a/NewAge/PrimaryStatBar/INIT.lua +++ b/WeakAuras/Projects/PrimaryStatBar/INIT.lua @@ -1,17 +1,17 @@ -aura_env.specStatTable = { - ["Windwalker"] = 2, - ["Brewmaster"] = 2, - ["Mistweaver"] = 4, -} -aura_env.maxStat = 0 -aura_env.currentStat = 0 - -aura_env.GetPrimaryStat = function() - stat = UnitStat("player", aura_env.GetPrimStatID()) - return stat -end - -aura_env.GetPrimStatID = function() - specID, specName = GetSpecializationInfo(GetSpecialization()) - return aura_env.specStatTable[specName] -end +aura_env.specStatTable = { + ["Windwalker"] = 2, + ["Brewmaster"] = 2, + ["Mistweaver"] = 4, +} +aura_env.maxStat = 0 +aura_env.currentStat = 0 + +aura_env.GetPrimaryStat = function() + stat = UnitStat("player", aura_env.GetPrimStatID()) + return stat +end + +aura_env.GetPrimStatID = function() + specID, specName = GetSpecializationInfo(GetSpecialization()) + return aura_env.specStatTable[specName] +end diff --git a/Complete Projects/Legion/Prydaz.lua b/WeakAuras/Projects/Prydaz.lua similarity index 96% rename from Complete Projects/Legion/Prydaz.lua rename to WeakAuras/Projects/Prydaz.lua index ff9f1c6..296c91b 100644 --- a/Complete Projects/Legion/Prydaz.lua +++ b/WeakAuras/Projects/Prydaz.lua @@ -1,52 +1,52 @@ -TRIGGER -function() - local buff = UnitBuff("player", "Xavaric's Magnum Opus") or 0 - if buff ~= 0 then return true else return false end -end - -DURATION TRIGGER -function() - return aura_env.absorb, aura_env.maxAbsorb, true -end - -NAME TRIGGER -function() - local function shorten(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 - end - return shorten(aura_env.absorb) -end - -DISPLAY -function() - if UnitGroupRolesAssigned("player") == "TANK" then - aura_env.maxAbsorb = math.floor(UnitHealthMax("player") * 0.15) - aura_env.absorb = select(17, UnitBuff("player", "Xavaric's Magnum Opus")) or 0 - return math.floor((aura_env.absorb / aura_env.maxAbsorb) * 100) - else - aura_env.maxAbsorb = math.floor(UnitHealthMax("player") * 0.25) - aura_env.absorb = select(17, UnitBuff("player", "Xavaric's Magnum Opus")) or 0 - return math.floor((aura_env.absorb / aura_env.maxAbsorb) * 100) - end -end - -INIT -aura_env.maxAbsorb = 0 +TRIGGER +function() + local buff = UnitBuff("player", "Xavaric's Magnum Opus") or 0 + if buff ~= 0 then return true else return false end +end + +DURATION TRIGGER +function() + return aura_env.absorb, aura_env.maxAbsorb, true +end + +NAME TRIGGER +function() + local function shorten(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 + end + return shorten(aura_env.absorb) +end + +DISPLAY +function() + if UnitGroupRolesAssigned("player") == "TANK" then + aura_env.maxAbsorb = math.floor(UnitHealthMax("player") * 0.15) + aura_env.absorb = select(17, UnitBuff("player", "Xavaric's Magnum Opus")) or 0 + return math.floor((aura_env.absorb / aura_env.maxAbsorb) * 100) + else + aura_env.maxAbsorb = math.floor(UnitHealthMax("player") * 0.25) + aura_env.absorb = select(17, UnitBuff("player", "Xavaric's Magnum Opus")) or 0 + return math.floor((aura_env.absorb / aura_env.maxAbsorb) * 100) + end +end + +INIT +aura_env.maxAbsorb = 0 aura_env.absorb = 0 \ No newline at end of file diff --git a/FreshShit/PrydazBar/event.lua b/WeakAuras/Projects/PrydazBar/event.lua similarity index 95% rename from FreshShit/PrydazBar/event.lua rename to WeakAuras/Projects/PrydazBar/event.lua index c778ec1..dacb326 100644 --- a/FreshShit/PrydazBar/event.lua +++ b/WeakAuras/Projects/PrydazBar/event.lua @@ -1,27 +1,27 @@ --- COMBAT_LOG_EVENT_UNFILTERED --- For some reason the non lua version does not work (with status > event > spell aura applied...) -function(e, ...) - local subevent, err = CLEUParser.GetSubevent(...) - if err ~= nil then - -- print(err) - return - end - - if subevent == "SPELL_AURA_APPLIED" then - local spellid, err = CLEUParser.GetSpellId(...) - if err ~= nil then - -- print(err) - return - end - - local target, err = CLEUParser.GetDestName(...) - if err ~= nil then - -- print(err) - return - end - - if spellid == 207472 and UnitName("player") == target then - return true - end - end -end +-- COMBAT_LOG_EVENT_UNFILTERED +-- For some reason the non lua version does not work (with status > event > spell aura applied...) +function(e, ...) + local subevent, err = CLEUParser.GetSubevent(...) + if err ~= nil then + -- print(err) + return + end + + if subevent == "SPELL_AURA_APPLIED" then + local spellid, err = CLEUParser.GetSpellId(...) + if err ~= nil then + -- print(err) + return + end + + local target, err = CLEUParser.GetDestName(...) + if err ~= nil then + -- print(err) + return + end + + if spellid == 207472 and UnitName("player") == target then + return true + end + end +end diff --git a/FreshShit/PrydazBar/export b/WeakAuras/Projects/PrydazBar/export similarity index 100% rename from FreshShit/PrydazBar/export rename to WeakAuras/Projects/PrydazBar/export diff --git a/Complete Projects/Legion/PrydazOLD.lua b/WeakAuras/Projects/PrydazOLD.lua similarity index 96% rename from Complete Projects/Legion/PrydazOLD.lua rename to WeakAuras/Projects/PrydazOLD.lua index 01471c0..e674504 100644 --- a/Complete Projects/Legion/PrydazOLD.lua +++ b/WeakAuras/Projects/PrydazOLD.lua @@ -1,20 +1,20 @@ -TRIGGER -function() - local buff = UnitBuff("player", "Xavaric's Magnum Opus") or 0 - if buff ~= nil then return true else return false end -end - -DURATION -function() - local max_absorb = math.floor(UnitHealthMax("player") / 4) - local absorb = select(17, UnitBuff("player", "Xavaric's Magnum Opus")) or 0 - local percentage = math.floor((absorb / max_absorb) * 100) - return percentage, 100, true -end - -DISPLAY -function() - local max_absorb = math.floor(UnitHealthMax("player") / 4) - local absorb = select(17, UnitBuff("player", "Xavaric's Magnum Opus")) or 0 - return math.floor((absorb / max_absorb) * 100) -end +TRIGGER +function() + local buff = UnitBuff("player", "Xavaric's Magnum Opus") or 0 + if buff ~= nil then return true else return false end +end + +DURATION +function() + local max_absorb = math.floor(UnitHealthMax("player") / 4) + local absorb = select(17, UnitBuff("player", "Xavaric's Magnum Opus")) or 0 + local percentage = math.floor((absorb / max_absorb) * 100) + return percentage, 100, true +end + +DISPLAY +function() + local max_absorb = math.floor(UnitHealthMax("player") / 4) + local absorb = select(17, UnitBuff("player", "Xavaric's Magnum Opus")) or 0 + return math.floor((absorb / max_absorb) * 100) +end diff --git a/Complete Projects/Legion/PrydazTimer.lua b/WeakAuras/Projects/PrydazTimer.lua similarity index 96% rename from Complete Projects/Legion/PrydazTimer.lua rename to WeakAuras/Projects/PrydazTimer.lua index 085edfd..812276a 100644 --- a/Complete Projects/Legion/PrydazTimer.lua +++ b/WeakAuras/Projects/PrydazTimer.lua @@ -1,29 +1,29 @@ ---Pydaz fuck ---COMBAT_LOG_EVENT_UNFILTERED -function(e, ...) - local casterGUID = select(4, ...) - local spellID = select(12, ...) - local se = select(2, ...) - if se == "SPELL_AURA_APPLIED" then - if casterGUID == UnitGUID("player") and spellID == 207472 then - if WeakAurasSaved.ShittyTicker then - if WeakAurasSaved.ShittyTicker._callback then - WeakAurasSaved.ShittyTicker:Cancel() - end - WeakAurasSaved.ShittyTicker = nil - end - WeakAuras.ScanEvents("PRYDAZ_REFRESH") - WeakAurasSaved.ShittyTicker = C_Timer.NewTicker(30, function() WeakAuras.ScanEvents("PRYDAZ_REFRESH") end) - end - end -end - ---PRYDAZ_REFRESH -function(e) - return true -end - ---DURATION -function() - return 30, GetTime() + 30 -end +--Pydaz fuck +--COMBAT_LOG_EVENT_UNFILTERED +function(e, ...) + local casterGUID = select(4, ...) + local spellID = select(12, ...) + local se = select(2, ...) + if se == "SPELL_AURA_APPLIED" then + if casterGUID == UnitGUID("player") and spellID == 207472 then + if WeakAurasSaved.ShittyTicker then + if WeakAurasSaved.ShittyTicker._callback then + WeakAurasSaved.ShittyTicker:Cancel() + end + WeakAurasSaved.ShittyTicker = nil + end + WeakAuras.ScanEvents("PRYDAZ_REFRESH") + WeakAurasSaved.ShittyTicker = C_Timer.NewTicker(30, function() WeakAuras.ScanEvents("PRYDAZ_REFRESH") end) + end + end +end + +--PRYDAZ_REFRESH +function(e) + return true +end + +--DURATION +function() + return 30, GetTime() + 30 +end diff --git a/Complete Projects/Legion/PullTimer.lua b/WeakAuras/Projects/PullTimer.lua similarity index 98% rename from Complete Projects/Legion/PullTimer.lua rename to WeakAuras/Projects/PullTimer.lua index 3ffbbc4..32ee9cc 100644 --- a/Complete Projects/Legion/PullTimer.lua +++ b/WeakAuras/Projects/PullTimer.lua @@ -1,45 +1,45 @@ ---Pull timer ---CHAT_MSG_SAY HIDE_PULL CHAT_MSG_PARTY CHAT_MSG_PARTY_LEADER PLAYER_REGEN_DISABLED CHAT_MSG_ADDON ---TSU -function(allstates, e, msg, sender) - if e == "CHAT_MSG_SAY" or e == "CHAT_MSG_PARTY" or e == "CHAT_MSG_PARTY_LEADER" or e == "CHAT_MSG_ADDON" then - if e ~= "CHAT_MSG_ADDON" then - if (sender == "Angellianna" or sender == "Piinkiepiie" or sender == "Smolpotato") and msg:match("%d+") and select(1, msg:find("%d+")) == 1 and select(2, msg:find(".+")) <= 3 then - aura_env.pullTime = tonumber(msg:match("%d+")) - end - else - if msg:match("Pull") then - aura_env.pullTime = tonumber(sender:match("%d+")) - else - break - end - end - if aura_env.timer then - aura_env.timer:Cancel() - end - aura_env.timer = C_Timer.NewTimer(aura_env.pullTime, function() WeakAuras.ScanEvents("HIDE_PULL") end) - allstates[1] = { - show = true, - changed = true, - progressType = "timed", - expirationTime = GetTime() + aura_env.pullTime, - duration = aura_env.pullTime, - } - print(e, msg, sender) - return true - elseif e == "HIDE_PULL" then - allstates[1].show = false - allstates[1].changed = true - return true - elseif e == "PLAYER_REGEN_DISABLED" then - if allstates[1] then - allstates[1].show = false - allstates[1].changed = true - end - return true - end -end - ---[[ -dO0dlaGiq1LuvvgLkvNsvLxrHywue3svvLDPigMIQJjuTmkWZesnnksxtb02uKsJtHuCofPyDkKmpfG6EaCqr0cvKQhsHAIcjxuOSrqjFuHyKkuDsfOvQQmtvk3esXofPFck1qHuTufKNc1uH4Quq2QcP0xvaYzvvL3sb1DPqAVu9xvYGjhwIfdkEmGMSaxwQntr9ziz0IWPL0Qviv9AiLMTQCBbTBr9BGgUqSCk9CvmDLUoiBxr57kugVIKZRGA9kaEVcPY9vvv1(r7XDehh64ahh4ioE7Pwy9kOoog2gc52GPXC8WW2S5tVEA0ZN7yyaTbT1yWhO1r804E6Cp1apDUNgTNo3tn1tJ7RJRabZomo2myEH1RG64yyBiKBdMgZXWuSgd(aToINg3tN7Pg4WA0yW0oqtnyAMM5Mg9aNpWPnA38)nqt90O904(64hyjWrCCnJYccfXrCCi0BRoIV(64T8686iooe6TvhXxFDCq1S5kqO3oSJ44qO3wDeF91X2cW2rCCi0BRoIV(6yZfGBfm7iooe6TvhXxFDCKzr2YRZRJ44qO3wDeF91XB5151ahXXHqVT6i(6RJTGV2rCCi0BRoIV(6RJpHGGBc0TGOS954t3X2gvfmJmCK2XfiBbMI1XNTaeThhghV9ulKTDCu9wQVdfUTDUUd74TNAHfyEDCSPIy7ZzSYWoggqBqBHTzZNE9utD8wdBlSaZRJJnveBFoJvg2XWaAdA7G5tVEA0g44G6z0dLbU1zTJlVNJHYRTIcvBDehde6SGHo2xhxaU1znITIcvBrdyq7P)x85ooOEI8kdJ0tT3AZRJ)xehxZBBZL3OTTNky2tJ2XRTIcvBDehde6SGHxjQbTJbcDwWqhVdhPDmqOZcg64EwN3JJnE8KixObpYfo5FuJpyuXUq3q3Urz84jrUqdEKl0toeYFugpEsKl0Gh5c9KdH831TyjJk2quOFl5FXg6AOyJel9kQbXjN(Tyr5yGqNfm8Ahos74Zw2gksqzBhFsaogSZo(KaCmyNtcCRZAhhazlBfm74ODmqOZcggfKTSvWSJ5NzOmWTcMV)JFuuuu2EHSzQcKTC15ztIa9Ei1W2eQr6fPg23)rzeQcKTC15ztIa9Ei1WMFDoWXaHolyOJ5NzOmWTcMVxEVZw2(ycvBcv4bLjuNoh02F8JIIIQAMQPaaGcUXJNe5cn4rUWj)dofOLQPaaGcUXJNe5cn4rUqp5qi)bNc0s1uaaqb34XtICHg8ixONCiK)UUflzuXgco1MOZ8JIIIIIIIQAM6(PZbTLcaak4jZO63RwY5cCkql1PZbTLcaak4OxRz0w7i1AdNc0sD6CqBPaaGcooe8fbClli8FuLCav4b1OcllWe3H)VaJa)hvjhqD6xdCVh3eQWdQrzUMdUd)Fbgb(VFuaaqfNQKdOo9RbU3nWeQWdQrzUMdUdFIrG)7h1agav0uBIoZpkkkkkkkkkkkQcKTC15ztIa9Ei1WMca1cMHcHPT3dpOgvyzbM4o8)fye4)(XpkkkkkkkkkkkQQzQcKTC15zt2AyBP2eDMFuuuuuuuuuuuuuuuufiB5QZZMS1W2okJlzG97(p(rrrrrrrrrrrr15a(rrrrrrrrrrrrvGSLRopBYwdBlfakJVqQHTDsApgsnST3lq2YvNNnjc07HudBtOmdLbUvW89FudOUG2Kq2YzcgyjhBwN3ZD4JpyuXUq3q3Ub)hvNd(XpkkkkkkkkkkkQY7D2Y2hdh3OuaOgD8JIIIIIIIIIIIIIII6KaCmkauRfQnHFuuuuuuuuuuuuuuuuatuYO6akauRfQnHFuuuuuuuuuuuuuuuurSGOS95GmCKMcaf8Tg2bWnHFuuuuuuuuuuuuuuuu9urQ2YwbZi1WMca1i9Iud77)OmcvbYwU68SjrGEpKAyBc)OOOOOOOOOOOOOOOOcGSLTcMPaqvGSLRopBseO3dPg2MWpkkkkkkkkkkkQ)NFuuuuuuuuuuuu2EHSzQ1c18JIIIIIIIQZb8JIIIQFNUAMQPaaGc(4dgvSl0n0TBWP2eDMFuuuuuuuuL37SLTpgoUrNCsaogfakZL3P5hfffffffv59oBz7JHJB0jatuYO6akauRfQ5hfffffffLTxiBMATqn)OOOO63PRMPAkaaOGJ(TK)fBORHInsS0ROgeNC63IffCQnrN5hfffffffv1mv59oBz7JHJBuQnrN5hfffffffffffv59oBz7JHJB0jNeGJrbGYC5DA(rrrrrrrrrrrrvEVZw2(y44gDcWeLmQoGca1AHA(rrrrrrrr15a(rrrrrrrrz7fYMPwluZpkkkQohWVoh4yGjAGO1X9SoV(6yyaTbTDWmSSG51HXXBnSTW6vqDCmSneYTbtJ54AUUxNTy3oWtJ7yykarBGfmIXGpqRJ4PX905EQbE6CpnApDUNAQNg3xhNOROsSEQPZDCgkeXwrHQThpnUJhRgSj80ONp3XWaAdARpDhddOnOTXcq1ooof61P6NJHPaeTOSGq5aJbFGwhXtn1tN7RJHb0g0wCDaAp105oUg4y0HEpKAyBD8wdBlUoaTNAGPoE7PwCDaAp1at91XhhBWKbojUboEMNg3udI7R7 -]] +--Pull timer +--CHAT_MSG_SAY HIDE_PULL CHAT_MSG_PARTY CHAT_MSG_PARTY_LEADER PLAYER_REGEN_DISABLED CHAT_MSG_ADDON +--TSU +function(allstates, e, msg, sender) + if e == "CHAT_MSG_SAY" or e == "CHAT_MSG_PARTY" or e == "CHAT_MSG_PARTY_LEADER" or e == "CHAT_MSG_ADDON" then + if e ~= "CHAT_MSG_ADDON" then + if (sender == "Angellianna" or sender == "Piinkiepiie" or sender == "Smolpotato") and msg:match("%d+") and select(1, msg:find("%d+")) == 1 and select(2, msg:find(".+")) <= 3 then + aura_env.pullTime = tonumber(msg:match("%d+")) + end + else + if msg:match("Pull") then + aura_env.pullTime = tonumber(sender:match("%d+")) + else + break + end + end + if aura_env.timer then + aura_env.timer:Cancel() + end + aura_env.timer = C_Timer.NewTimer(aura_env.pullTime, function() WeakAuras.ScanEvents("HIDE_PULL") end) + allstates[1] = { + show = true, + changed = true, + progressType = "timed", + expirationTime = GetTime() + aura_env.pullTime, + duration = aura_env.pullTime, + } + print(e, msg, sender) + return true + elseif e == "HIDE_PULL" then + allstates[1].show = false + allstates[1].changed = true + return true + elseif e == "PLAYER_REGEN_DISABLED" then + if allstates[1] then + allstates[1].show = false + allstates[1].changed = true + end + return true + end +end + +--[[ +dO0dlaGiq1LuvvgLkvNsvLxrHywue3svvLDPigMIQJjuTmkWZesnnksxtb02uKsJtHuCofPyDkKmpfG6EaCqr0cvKQhsHAIcjxuOSrqjFuHyKkuDsfOvQQmtvk3esXofPFck1qHuTufKNc1uH4Quq2QcP0xvaYzvvL3sb1DPqAVu9xvYGjhwIfdkEmGMSaxwQntr9ziz0IWPL0Qviv9AiLMTQCBbTBr9BGgUqSCk9CvmDLUoiBxr57kugVIKZRGA9kaEVcPY9vvv1(r7XDehh64ahh4ioE7Pwy9kOoog2gc52GPXC8WW2S5tVEA0ZN7yyaTbT1yWhO1r804E6Cp1apDUNgTNo3tn1tJ7RJRabZomo2myEH1RG64yyBiKBdMgZXWuSgd(aToINg3tN7Pg4WA0yW0oqtnyAMM5Mg9aNpWPnA38)nqt90O904(64hyjWrCCnJYccfXrCCi0BRoIV(64T8686iooe6TvhXxFDCq1S5kqO3oSJ44qO3wDeF91X2cW2rCCi0BRoIV(6yZfGBfm7iooe6TvhXxFDCKzr2YRZRJ44qO3wDeF91XB5151ahXXHqVT6i(6RJTGV2rCCi0BRoIV(6RJpHGGBc0TGOS954t3X2gvfmJmCK2XfiBbMI1XNTaeThhghV9ulKTDCu9wQVdfUTDUUd74TNAHfyEDCSPIy7ZzSYWoggqBqBHTzZNE9utD8wdBlSaZRJJnveBFoJvg2XWaAdA7G5tVEA0g44G6z0dLbU1zTJlVNJHYRTIcvBDehde6SGHo2xhxaU1znITIcvBrdyq7P)x85ooOEI8kdJ0tT3AZRJ)xehxZBBZL3OTTNky2tJ2XRTIcvBDehde6SGHxjQbTJbcDwWqhVdhPDmqOZcg64EwN3JJnE8KixObpYfo5FuJpyuXUq3q3Urz84jrUqdEKl0toeYFugpEsKl0Gh5c9KdH831TyjJk2quOFl5FXg6AOyJel9kQbXjN(Tyr5yGqNfm8Ahos74Zw2gksqzBhFsaogSZo(KaCmyNtcCRZAhhazlBfm74ODmqOZcggfKTSvWSJ5NzOmWTcMV)JFuuuu2EHSzQcKTC15ztIa9Ei1W2eQr6fPg23)rzeQcKTC15ztIa9Ei1WMFDoWXaHolyOJ5NzOmWTcMVxEVZw2(ycvBcv4bLjuNoh02F8JIIIQAMQPaaGcUXJNe5cn4rUWj)dofOLQPaaGcUXJNe5cn4rUqp5qi)bNc0s1uaaqb34XtICHg8ixONCiK)UUflzuXgco1MOZ8JIIIIIIIQAM6(PZbTLcaak4jZO63RwY5cCkql1PZbTLcaak4OxRz0w7i1AdNc0sD6CqBPaaGcooe8fbClli8FuLCav4b1OcllWe3H)VaJa)hvjhqD6xdCVh3eQWdQrzUMdUd)Fbgb(VFuaaqfNQKdOo9RbU3nWeQWdQrzUMdUdFIrG)7h1agav0uBIoZpkkkkkkkkkkkQcKTC15ztIa9Ei1WMca1cMHcHPT3dpOgvyzbM4o8)fye4)(XpkkkkkkkkkkkQQzQcKTC15zt2AyBP2eDMFuuuuuuuuuuuuuuuufiB5QZZMS1W2okJlzG97(p(rrrrrrrrrrrr15a(rrrrrrrrrrrrvGSLRopBYwdBlfakJVqQHTDsApgsnST3lq2YvNNnjc07HudBtOmdLbUvW89FudOUG2Kq2YzcgyjhBwN3ZD4JpyuXUq3q3Ub)hvNd(XpkkkkkkkkkkkQY7D2Y2hdh3OuaOgD8JIIIIIIIIIIIIIII6KaCmkauRfQnHFuuuuuuuuuuuuuuuuatuYO6akauRfQnHFuuuuuuuuuuuuuuuurSGOS95GmCKMcaf8Tg2bWnHFuuuuuuuuuuuuuuuu9urQ2YwbZi1WMca1i9Iud77)OmcvbYwU68SjrGEpKAyBc)OOOOOOOOOOOOOOOOcGSLTcMPaqvGSLRopBseO3dPg2MWpkkkkkkkkkkkQ)NFuuuuuuuuuuuu2EHSzQ1c18JIIIIIIIQZb8JIIIQFNUAMQPaaGc(4dgvSl0n0TBWP2eDMFuuuuuuuuL37SLTpgoUrNCsaogfakZL3P5hfffffffv59oBz7JHJB0jatuYO6akauRfQ5hfffffffLTxiBMATqn)OOOO63PRMPAkaaOGJ(TK)fBORHInsS0ROgeNC63IffCQnrN5hfffffffv1mv59oBz7JHJBuQnrN5hfffffffffffv59oBz7JHJB0jNeGJrbGYC5DA(rrrrrrrrrrrrvEVZw2(y44gDcWeLmQoGca1AHA(rrrrrrrr15a(rrrrrrrrz7fYMPwluZpkkkQohWVoh4yGjAGO1X9SoV(6yyaTbTDWmSSG51HXXBnSTW6vqDCmSneYTbtJ54AUUxNTy3oWtJ7yykarBGfmIXGpqRJ4PX905EQbE6CpnApDUNAQNg3xhNOROsSEQPZDCgkeXwrHQThpnUJhRgSj80ONp3XWaAdARpDhddOnOTXcq1ooof61P6NJHPaeTOSGq5aJbFGwhXtn1tN7RJHb0g0wCDaAp105oUg4y0HEpKAyBD8wdBlUoaTNAGPoE7PwCDaAp1at91XhhBWKbojUboEMNg3udI7R7 +]] diff --git a/Complete Projects/Legion/QuestSyncer.lua b/WeakAuras/Projects/QuestSyncer.lua similarity index 97% rename from Complete Projects/Legion/QuestSyncer.lua rename to WeakAuras/Projects/QuestSyncer.lua index 6426f12..429dc5f 100644 --- a/Complete Projects/Legion/QuestSyncer.lua +++ b/WeakAuras/Projects/QuestSyncer.lua @@ -1,400 +1,400 @@ ---DISPLAY -function() - if aura_env.statee then - return aura_env.statee.text - end -end - ---QUEST_ACCEPTED QUEST_TURNED_IN CHAT_MSG_ADDON -function(e, ...) - if e == "CHAT_MSG_ADDON" then - local identifier, msg, channel, sender = ... - sender = sender:match("(.+)-") - if identifier == "DQUEST" then - local n, ID, pclass = msg:match("A(%d+)[-](%d+)[-](%d+)") - n = tonumber(n) - ID = tonumber(ID) - pclass = tonumber(pclass) - aura_env.guild[sender] = { - ["n"] = n, - ["ID"] = ID, - ["pclass"] = pclass, - } - WeakAuras.ScanEvents("DAVE_QUEST_DING") - end - elseif e == "QUEST_ACCEPTED" then - local ID = select(2, ...) - if aura_env.questDatabase[ID] then - aura_env.currentQuest = aura_env.questDatabase[ID] - SendAddonMessage("DQUEST", "A" .. aura_env.questDatabase[ID] .. "-" .. ID .. "-" .. select(3, UnitClass("player")), "GUILD") - end - --elseif e == "QUEST_TURNED_IN" then - -- local ID = select(1, ...) - -- SendAddonMessage("DQUEST", "C" .. ID, "PARTY") - end -end - ---TSU ---DAVE_QUEST_DING -function(allstates, e) - --local output = "" - for k, v in pairs(allstates) do - v.show = false - v.changed = true - end - aura_env.quests = {} - for k, v in pairs(aura_env.guild) do - if not aura_env.quests[v.n] then - aura_env.quests[v.n] = {} - end - if not aura_env.classList[k] then - aura_env.classList[k] = v.pclass - end - aura_env.quests[v.n][#aura_env.quests[v.n] + 1] = k - --print("aura_env.quests", aura_env.currentQuest) - --DevTools_Dump(aura_env.quests) - --print("aura_env.guild") - --DevTools_Dump(aura_env.guild) - --print("aura_env.quests[aura_env.currentQuest]") - --DevTools_Dump(aura_env.quests[aura_env.currentQuest]) - end - --output = output .. "Your quest\n" - if aura_env.currentQuest <= 1 then - allstates[#allstates + 1] = { - changed = true, - show = true, - text = "Your quest [" .. aura_env.currentQuest .. "/89] (" .. aura_env.questNames[aura_env.currentQuest] .. ")", - } - if aura_env.quests[aura_env.currentQuest] and type(aura_env.quests[aura_env.currentQuest]) == "table" then - for k, v in pairs(aura_env.quests[aura_env.currentQuest]) do - --output = output .. " " .. aura_env.classColor(aura_env.classList[v]) .. v .. "|r\n" - allstates[#allstates + 1] = { - changed = true, - show = true, - text = " " .. v, - pclass = aura_env.classList[v], - } - end - end - --output = output .. "Next quest\n" - allstates[#allstates + 1] = { - changed = true, - show = true, - text = "Next quest (" .. aura_env.questNames[aura_env.currentQuest + 1] .. ")", - } - if aura_env.quests[aura_env.currentQuest + 1] and type(aura_env.quests[aura_env.currentQuest + 1]) == "table" then - for k, v in pairs(aura_env.quests[aura_env.currentQuest + 1]) do - --output = output .. " " .. aura_env.classColor(aura_env.classList[v]) .. v .. "|r\n" - allstates[#allstates + 1] = { - changed = true, - show = true, - text = " " .. v, - pclass = aura_env.classList[v], - } - end - end - elseif aura_env.currentQuest > 1 and aura_env.currentQuest < 89 then - --output = output .. "Previous Quest\n" - allstates[#allstates + 1] = { - changed = true, - show = true, - text = "Previous Quest (" .. aura_env.questNames[aura_env.currentQuest - 1] .. ")", - } - if aura_env.quests[aura_env.currentQuest - 1] and type(aura_env.quests[aura_env.currentQuest - 1]) == "table" then - for k, v in pairs(aura_env.quests[aura_env.currentQuest - 1]) do - --output = output .. " " .. aura_env.classColor(aura_env.classList[v]) .. v .. "|r\n" - allstates[#allstates + 1] = { - changed = true, - show = true, - text = " " .. v, - pclass = aura_env.classList[v], - } - end - end - --output = output .. "Your quest\n" - allstates[#allstates + 1] = { - changed = true, - show = true, - text = "Your quest [" .. aura_env.currentQuest .. "/89] (" .. aura_env.questNames[aura_env.currentQuest] .. ")", - } - if aura_env.quests[aura_env.currentQuest] and type(aura_env.quests[aura_env.currentQuest]) == "table" then - for k, v in pairs(aura_env.quests[aura_env.currentQuest]) do - --output = output .. " " .. aura_env.classColor(aura_env.classList[v]) .. v .. "|r\n" - allstates[#allstates + 1] = { - changed = true, - show = true, - text = " " .. v, - pclass = aura_env.classList[v], - } - end - end - --output = output .. "Next quest\n" - allstates[#allstates + 1] = { - changed = true, - show = true, - text = "Next quest (" .. aura_env.questNames[aura_env.currentQuest + 1] .. ")", - } - if aura_env.quests[aura_env.currentQuest + 1] and type(aura_env.quests[aura_env.currentQuest + 1]) == "table" then - for k, v in pairs(aura_env.quests[aura_env.currentQuest + 1]) do - --output = output .. " " .. aura_env.classColor(aura_env.classList[v]) .. v .. "|r\n" - allstates[#allstates + 1] = { - changed = true, - show = true, - text = " " .. v, - pclass = aura_env.classList[v], - } - end - end - elseif aura_env.currentQuest == 89 then - --output = output .. "Previous Quest\n" - allstates[#allstates + 1] = { - changed = true, - show = true, - text = "Previous Quest (" .. aura_env.questNames[aura_env.currentQuest - 1] .. ")", - } - if aura_env.quests[aura_env.currentQuest - 1] and type(aura_env.quests[aura_env.currentQuest - 1]) == "table" then - for k, v in pairs(aura_env.quests[aura_env.currentQuest - 1]) do - --output = output .. " " .. aura_env.classColor(aura_env.classList[v]) .. v .. "|r\n" - allstates[#allstates + 1] = { - changed = true, - show = true, - text = " " .. v, - pclass = aura_env.classList[v], - } - end - end - --output = output .. "Your quest\n" - allstates[#allstates + 1] = { - changed = true, - show = true, - text = "Your quest [" .. aura_env.currentQuest .. "/89] (" .. aura_env.questNames[aura_env.currentQuest] .. ")", - } - if aura_env.quests[aura_env.currentQuest] and type(aura_env.quests[aura_env.currentQuest]) == "table" then - for k, v in pairs(aura_env.quests[aura_env.currentQuest]) do - --output = output .. " " .. aura_env.classColor(aura_env.classList[v]) .. v .. "|r\n" - allstates[#allstates + 1] = { - changed = true, - show = true, - text = " " .. v, - pclass = aura_env.classList[v], - } - end - end - end - --DevTools_Dump(allstates) - return true -end - ---ANIMATION / COLOR -function() - if aura_env.statee.pclass then - return aura_env.classColor(aura_env.statee.pclass) - end -end - ---INIT -local plswork = RegisterAddonMessagePrefix("DQUEST") -if plswork == false then - print("no work :( 001") -end -aura_env.currentQuest = 1 -aura_env.guild = {} -aura_env.quests = {} -aura_env.classList = {} -aura_env.questDatabase = { - [47835] = 1, - [47867] = 2, - [47223] = 3, - [47224] = 4, - [48440] = 5, - [46938] = 6, - [47589] = 7, - [46297] = 8, - [48483] = 9, - [47627] = 10, - [47641] = 11, - [46732] = 12, - [46816] = 13, - [46839] = 14, - [46840] = 15, - [46841] = 16, - [46842] = 17, - [46843] = 18, - [48500] = 19, - [47431] = 20, - [46213] = 21, - [40238] = 22, - [47541] = 23, - [47508] = 24, - [47771] = 25, - [47526] = 26, - [47754] = 27, - [47652] = 28, - [47653] = 29, - [47743] = 30, - [49143] = 31, - [47287] = 32, - [48559] = 33, - [48199] = 34, - [48200] = 35, - [48201] = 36, - [48202] = 37, - [47473] = 38, - [47889] = 39, - [47890] = 40, - [47891] = 41, - [47892] = 42, - [47986] = 43, - [47987] = 44, - [47988] = 45, - [47991] = 46, - [47990] = 47, - [47989] = 48, - [47992] = 49, - [47993] = 50, - [47994] = 51, - [48081] = 52, - [46815] = 53, - [46818] = 54, - [46834] = 55, - [47066] = 56, - [46941] = 57, - [47686] = 58, - [47882] = 59, - [47688] = 60, - [47883] = 61, - [47689] = 62, - [47685] = 63, - [47687] = 64, - [47690] = 65, - [48107] = 66, - [48461] = 67, - [48344] = 68, - [47691] = 69, - [47854] = 70, - [47995] = 71, - [47853] = 72, - [48345] = 73, - [47855] = 74, - [47856] = 75, - [47416] = 76, - [47238] = 77, - [40761] = 78, - [47101] = 79, - [47180] = 80, - [47100] = 81, - [47183] = 82, - [47184] = 83, - [47203] = 84, - [47217] = 85, - [47218] = 86, - [47219] = 87, - [47220] = 88, - [48560] = 89, -} -aura_env.questNames = { - [1] = "The Hand of Fate", - [2] = "Two If By Sea", - [3] = "Light's Exodus", - [4] = "The Vindicaar", - [5] = "Into the Night", - [6] = "Alone in the Abyss", - [7] = "Righteous Fury", - [8] = "Overwhelming Power", - [9] = "A Stranger's Plea", - [10] = "Vengeance", - [11] = "Sign of Resistance", - [12] = "The Prophet's Gambit", - [13] = "Rendezvous", - [14] = "From Darkness", - [15] = "Prisoners No More", - [16] = "Threat Reduction", - [17] = "A Strike at the Heart", - [18] = "Return to the Vindicaar", - [19] = "A Moment of Respite", - [20] = "Gathering Light", - [21] = "Crystals Not Included", - [22] = "A Grim Equation", - [23] = "The Best Prevention", - [24] = "Fire at Will", - [25] = "Locating the Longshot", - [26] = "Bringing the Big Guns", - [27] = "Lightly Roasted", - [28] = "The Light Mother", - [29] = "Light's Return", - [30] = "The Child of Light and Shadow", - [31] = "Essence of the Light Mother", - [32] = "The Vindicaar Matrix Core", - [33] = "An Offering of Light", - [34] = "The Burning Heart", - [35] = "Securing a Foothold", - [36] = "Reinforce Light's Purchase", - [37] = "Reinforce the Veiled Den", - [38] = "Sizing Up The Opposition", - [39] = "The Speaker Calls", - [40] = "Visions of Torment", - [41] = "Dire News", - [42] = "Storming the Citadel", - [43] = "Scars of the Past", - [44] = "Preventive Measures", - [45] = "Chaos Theory", - [46] = "Dark Machinations", - [47] = "A Touch of Fel", - [48] = "Heralds of Apocalypse", - [49] = "Dawn of Justice", - [50] = "Lord of the Spire", - [51] = "Forming a Bond", - [52] = "A Floating Ruin", - [53] = "Mac'Aree, Jewel of Argus", - [54] = "Defenseless and Afraid", - [55] = "Khazaduum, First of His Name", - [56] = "Consecrating Ground", - [57] = "The Path Forward", - [58] = "Not-So-Humble Beginnings", - [59] = "Conservation of Magic", - [60] = "Invasive Species", - [61] = "The Longest Vigil", - [62] = "Gatekeeper's Challenge: Tenacity", - [63] = "Gatekeeper's Challenge: Cunning", - [64] = "Gatekeeper's Challenge: Mastery", - [65] = "The Defiler's Legacy", - [66] = "The Sigil of Awakening", - [67] = "Where They Least Expect It", - [68] = "We Have a Problem", - [69] = "A Non-Prophet Organization ", - [70] = "Wrath of the Hight Exarch", - [71] = "Overt Ops", - [72] = "Flanking Maneuvers", - [73] = "Talgath's Forces", - [74] = "What Might Have Been", - [75] = "Across the Universe", - [76] = "Shadow of the Triumvirate", - [77] = "The Seat of the Triumvirate", - [78] = "Whispers from Oronaar", - [79] = "Arkhaan's Prayers", - [80] = "The Pulsing Madness", - [81] = "Arkhaan's Pain", - [82] = "Arkhaan's Plan", - [83] = "Arkhaan's Peril", - [84] = "Throwing Shade", - [85] = "Sources of Darkness", - [86] = "The Shadowguard Incursion", - [87] = "A Vessel Made Ready", - [88] = "A Beacon in the Dark", - [89] = "An Offering of Shadow", -} -aura_env.classColor = function(class) - if class == 1 then return 0.78, 0.61, 0.43 elseif - class == 2 then return 0.96, 0.55, 0.73 elseif - class == 3 then return 0.67, 0.83, 0.45 elseif - class == 4 then return 1, 0.96, 0.41 elseif - class == 5 then return 1, 1, 1 elseif - class == 6 then return 0.77, 0.12, 0.23 elseif - class == 7 then return 0, 0.44, 0.87 elseif - class == 8 then return 0.25, 0.78, 0.92 elseif - class == 9 then return 0.53, 0.53, 0.93 elseif - class == 10 then return 0, 1, 0.59 elseif - class == 11 then return 1, 0.49, 0.04 elseif - class == 12 then return 0.64, 0.19, 0.79 else - return 1, 1, 1 end -end +--DISPLAY +function() + if aura_env.statee then + return aura_env.statee.text + end +end + +--QUEST_ACCEPTED QUEST_TURNED_IN CHAT_MSG_ADDON +function(e, ...) + if e == "CHAT_MSG_ADDON" then + local identifier, msg, channel, sender = ... + sender = sender:match("(.+)-") + if identifier == "DQUEST" then + local n, ID, pclass = msg:match("A(%d+)[-](%d+)[-](%d+)") + n = tonumber(n) + ID = tonumber(ID) + pclass = tonumber(pclass) + aura_env.guild[sender] = { + ["n"] = n, + ["ID"] = ID, + ["pclass"] = pclass, + } + WeakAuras.ScanEvents("DAVE_QUEST_DING") + end + elseif e == "QUEST_ACCEPTED" then + local ID = select(2, ...) + if aura_env.questDatabase[ID] then + aura_env.currentQuest = aura_env.questDatabase[ID] + SendAddonMessage("DQUEST", "A" .. aura_env.questDatabase[ID] .. "-" .. ID .. "-" .. select(3, UnitClass("player")), "GUILD") + end + --elseif e == "QUEST_TURNED_IN" then + -- local ID = select(1, ...) + -- SendAddonMessage("DQUEST", "C" .. ID, "PARTY") + end +end + +--TSU +--DAVE_QUEST_DING +function(allstates, e) + --local output = "" + for k, v in pairs(allstates) do + v.show = false + v.changed = true + end + aura_env.quests = {} + for k, v in pairs(aura_env.guild) do + if not aura_env.quests[v.n] then + aura_env.quests[v.n] = {} + end + if not aura_env.classList[k] then + aura_env.classList[k] = v.pclass + end + aura_env.quests[v.n][#aura_env.quests[v.n] + 1] = k + --print("aura_env.quests", aura_env.currentQuest) + --DevTools_Dump(aura_env.quests) + --print("aura_env.guild") + --DevTools_Dump(aura_env.guild) + --print("aura_env.quests[aura_env.currentQuest]") + --DevTools_Dump(aura_env.quests[aura_env.currentQuest]) + end + --output = output .. "Your quest\n" + if aura_env.currentQuest <= 1 then + allstates[#allstates + 1] = { + changed = true, + show = true, + text = "Your quest [" .. aura_env.currentQuest .. "/89] (" .. aura_env.questNames[aura_env.currentQuest] .. ")", + } + if aura_env.quests[aura_env.currentQuest] and type(aura_env.quests[aura_env.currentQuest]) == "table" then + for k, v in pairs(aura_env.quests[aura_env.currentQuest]) do + --output = output .. " " .. aura_env.classColor(aura_env.classList[v]) .. v .. "|r\n" + allstates[#allstates + 1] = { + changed = true, + show = true, + text = " " .. v, + pclass = aura_env.classList[v], + } + end + end + --output = output .. "Next quest\n" + allstates[#allstates + 1] = { + changed = true, + show = true, + text = "Next quest (" .. aura_env.questNames[aura_env.currentQuest + 1] .. ")", + } + if aura_env.quests[aura_env.currentQuest + 1] and type(aura_env.quests[aura_env.currentQuest + 1]) == "table" then + for k, v in pairs(aura_env.quests[aura_env.currentQuest + 1]) do + --output = output .. " " .. aura_env.classColor(aura_env.classList[v]) .. v .. "|r\n" + allstates[#allstates + 1] = { + changed = true, + show = true, + text = " " .. v, + pclass = aura_env.classList[v], + } + end + end + elseif aura_env.currentQuest > 1 and aura_env.currentQuest < 89 then + --output = output .. "Previous Quest\n" + allstates[#allstates + 1] = { + changed = true, + show = true, + text = "Previous Quest (" .. aura_env.questNames[aura_env.currentQuest - 1] .. ")", + } + if aura_env.quests[aura_env.currentQuest - 1] and type(aura_env.quests[aura_env.currentQuest - 1]) == "table" then + for k, v in pairs(aura_env.quests[aura_env.currentQuest - 1]) do + --output = output .. " " .. aura_env.classColor(aura_env.classList[v]) .. v .. "|r\n" + allstates[#allstates + 1] = { + changed = true, + show = true, + text = " " .. v, + pclass = aura_env.classList[v], + } + end + end + --output = output .. "Your quest\n" + allstates[#allstates + 1] = { + changed = true, + show = true, + text = "Your quest [" .. aura_env.currentQuest .. "/89] (" .. aura_env.questNames[aura_env.currentQuest] .. ")", + } + if aura_env.quests[aura_env.currentQuest] and type(aura_env.quests[aura_env.currentQuest]) == "table" then + for k, v in pairs(aura_env.quests[aura_env.currentQuest]) do + --output = output .. " " .. aura_env.classColor(aura_env.classList[v]) .. v .. "|r\n" + allstates[#allstates + 1] = { + changed = true, + show = true, + text = " " .. v, + pclass = aura_env.classList[v], + } + end + end + --output = output .. "Next quest\n" + allstates[#allstates + 1] = { + changed = true, + show = true, + text = "Next quest (" .. aura_env.questNames[aura_env.currentQuest + 1] .. ")", + } + if aura_env.quests[aura_env.currentQuest + 1] and type(aura_env.quests[aura_env.currentQuest + 1]) == "table" then + for k, v in pairs(aura_env.quests[aura_env.currentQuest + 1]) do + --output = output .. " " .. aura_env.classColor(aura_env.classList[v]) .. v .. "|r\n" + allstates[#allstates + 1] = { + changed = true, + show = true, + text = " " .. v, + pclass = aura_env.classList[v], + } + end + end + elseif aura_env.currentQuest == 89 then + --output = output .. "Previous Quest\n" + allstates[#allstates + 1] = { + changed = true, + show = true, + text = "Previous Quest (" .. aura_env.questNames[aura_env.currentQuest - 1] .. ")", + } + if aura_env.quests[aura_env.currentQuest - 1] and type(aura_env.quests[aura_env.currentQuest - 1]) == "table" then + for k, v in pairs(aura_env.quests[aura_env.currentQuest - 1]) do + --output = output .. " " .. aura_env.classColor(aura_env.classList[v]) .. v .. "|r\n" + allstates[#allstates + 1] = { + changed = true, + show = true, + text = " " .. v, + pclass = aura_env.classList[v], + } + end + end + --output = output .. "Your quest\n" + allstates[#allstates + 1] = { + changed = true, + show = true, + text = "Your quest [" .. aura_env.currentQuest .. "/89] (" .. aura_env.questNames[aura_env.currentQuest] .. ")", + } + if aura_env.quests[aura_env.currentQuest] and type(aura_env.quests[aura_env.currentQuest]) == "table" then + for k, v in pairs(aura_env.quests[aura_env.currentQuest]) do + --output = output .. " " .. aura_env.classColor(aura_env.classList[v]) .. v .. "|r\n" + allstates[#allstates + 1] = { + changed = true, + show = true, + text = " " .. v, + pclass = aura_env.classList[v], + } + end + end + end + --DevTools_Dump(allstates) + return true +end + +--ANIMATION / COLOR +function() + if aura_env.statee.pclass then + return aura_env.classColor(aura_env.statee.pclass) + end +end + +--INIT +local plswork = RegisterAddonMessagePrefix("DQUEST") +if plswork == false then + print("no work :( 001") +end +aura_env.currentQuest = 1 +aura_env.guild = {} +aura_env.quests = {} +aura_env.classList = {} +aura_env.questDatabase = { + [47835] = 1, + [47867] = 2, + [47223] = 3, + [47224] = 4, + [48440] = 5, + [46938] = 6, + [47589] = 7, + [46297] = 8, + [48483] = 9, + [47627] = 10, + [47641] = 11, + [46732] = 12, + [46816] = 13, + [46839] = 14, + [46840] = 15, + [46841] = 16, + [46842] = 17, + [46843] = 18, + [48500] = 19, + [47431] = 20, + [46213] = 21, + [40238] = 22, + [47541] = 23, + [47508] = 24, + [47771] = 25, + [47526] = 26, + [47754] = 27, + [47652] = 28, + [47653] = 29, + [47743] = 30, + [49143] = 31, + [47287] = 32, + [48559] = 33, + [48199] = 34, + [48200] = 35, + [48201] = 36, + [48202] = 37, + [47473] = 38, + [47889] = 39, + [47890] = 40, + [47891] = 41, + [47892] = 42, + [47986] = 43, + [47987] = 44, + [47988] = 45, + [47991] = 46, + [47990] = 47, + [47989] = 48, + [47992] = 49, + [47993] = 50, + [47994] = 51, + [48081] = 52, + [46815] = 53, + [46818] = 54, + [46834] = 55, + [47066] = 56, + [46941] = 57, + [47686] = 58, + [47882] = 59, + [47688] = 60, + [47883] = 61, + [47689] = 62, + [47685] = 63, + [47687] = 64, + [47690] = 65, + [48107] = 66, + [48461] = 67, + [48344] = 68, + [47691] = 69, + [47854] = 70, + [47995] = 71, + [47853] = 72, + [48345] = 73, + [47855] = 74, + [47856] = 75, + [47416] = 76, + [47238] = 77, + [40761] = 78, + [47101] = 79, + [47180] = 80, + [47100] = 81, + [47183] = 82, + [47184] = 83, + [47203] = 84, + [47217] = 85, + [47218] = 86, + [47219] = 87, + [47220] = 88, + [48560] = 89, +} +aura_env.questNames = { + [1] = "The Hand of Fate", + [2] = "Two If By Sea", + [3] = "Light's Exodus", + [4] = "The Vindicaar", + [5] = "Into the Night", + [6] = "Alone in the Abyss", + [7] = "Righteous Fury", + [8] = "Overwhelming Power", + [9] = "A Stranger's Plea", + [10] = "Vengeance", + [11] = "Sign of Resistance", + [12] = "The Prophet's Gambit", + [13] = "Rendezvous", + [14] = "From Darkness", + [15] = "Prisoners No More", + [16] = "Threat Reduction", + [17] = "A Strike at the Heart", + [18] = "Return to the Vindicaar", + [19] = "A Moment of Respite", + [20] = "Gathering Light", + [21] = "Crystals Not Included", + [22] = "A Grim Equation", + [23] = "The Best Prevention", + [24] = "Fire at Will", + [25] = "Locating the Longshot", + [26] = "Bringing the Big Guns", + [27] = "Lightly Roasted", + [28] = "The Light Mother", + [29] = "Light's Return", + [30] = "The Child of Light and Shadow", + [31] = "Essence of the Light Mother", + [32] = "The Vindicaar Matrix Core", + [33] = "An Offering of Light", + [34] = "The Burning Heart", + [35] = "Securing a Foothold", + [36] = "Reinforce Light's Purchase", + [37] = "Reinforce the Veiled Den", + [38] = "Sizing Up The Opposition", + [39] = "The Speaker Calls", + [40] = "Visions of Torment", + [41] = "Dire News", + [42] = "Storming the Citadel", + [43] = "Scars of the Past", + [44] = "Preventive Measures", + [45] = "Chaos Theory", + [46] = "Dark Machinations", + [47] = "A Touch of Fel", + [48] = "Heralds of Apocalypse", + [49] = "Dawn of Justice", + [50] = "Lord of the Spire", + [51] = "Forming a Bond", + [52] = "A Floating Ruin", + [53] = "Mac'Aree, Jewel of Argus", + [54] = "Defenseless and Afraid", + [55] = "Khazaduum, First of His Name", + [56] = "Consecrating Ground", + [57] = "The Path Forward", + [58] = "Not-So-Humble Beginnings", + [59] = "Conservation of Magic", + [60] = "Invasive Species", + [61] = "The Longest Vigil", + [62] = "Gatekeeper's Challenge: Tenacity", + [63] = "Gatekeeper's Challenge: Cunning", + [64] = "Gatekeeper's Challenge: Mastery", + [65] = "The Defiler's Legacy", + [66] = "The Sigil of Awakening", + [67] = "Where They Least Expect It", + [68] = "We Have a Problem", + [69] = "A Non-Prophet Organization ", + [70] = "Wrath of the Hight Exarch", + [71] = "Overt Ops", + [72] = "Flanking Maneuvers", + [73] = "Talgath's Forces", + [74] = "What Might Have Been", + [75] = "Across the Universe", + [76] = "Shadow of the Triumvirate", + [77] = "The Seat of the Triumvirate", + [78] = "Whispers from Oronaar", + [79] = "Arkhaan's Prayers", + [80] = "The Pulsing Madness", + [81] = "Arkhaan's Pain", + [82] = "Arkhaan's Plan", + [83] = "Arkhaan's Peril", + [84] = "Throwing Shade", + [85] = "Sources of Darkness", + [86] = "The Shadowguard Incursion", + [87] = "A Vessel Made Ready", + [88] = "A Beacon in the Dark", + [89] = "An Offering of Shadow", +} +aura_env.classColor = function(class) + if class == 1 then return 0.78, 0.61, 0.43 elseif + class == 2 then return 0.96, 0.55, 0.73 elseif + class == 3 then return 0.67, 0.83, 0.45 elseif + class == 4 then return 1, 0.96, 0.41 elseif + class == 5 then return 1, 1, 1 elseif + class == 6 then return 0.77, 0.12, 0.23 elseif + class == 7 then return 0, 0.44, 0.87 elseif + class == 8 then return 0.25, 0.78, 0.92 elseif + class == 9 then return 0.53, 0.53, 0.93 elseif + class == 10 then return 0, 1, 0.59 elseif + class == 11 then return 1, 0.49, 0.04 elseif + class == 12 then return 0.64, 0.19, 0.79 else + return 1, 1, 1 end +end diff --git a/FreshShit/RIOChecker/display.lua b/WeakAuras/Projects/RIOChecker/display.lua similarity index 95% rename from FreshShit/RIOChecker/display.lua rename to WeakAuras/Projects/RIOChecker/display.lua index eb05861..bead550 100644 --- a/FreshShit/RIOChecker/display.lua +++ b/WeakAuras/Projects/RIOChecker/display.lua @@ -1,3 +1,3 @@ -function() - return aura_env.displayString +function() + return aura_env.displayString end \ No newline at end of file diff --git a/FreshShit/RIOChecker/event.lua b/WeakAuras/Projects/RIOChecker/event.lua similarity index 97% rename from FreshShit/RIOChecker/event.lua rename to WeakAuras/Projects/RIOChecker/event.lua index be89365..dc31c3b 100644 --- a/FreshShit/RIOChecker/event.lua +++ b/WeakAuras/Projects/RIOChecker/event.lua @@ -1,40 +1,40 @@ --- CHAT_MSG_SYSTEM -function(e, msg) - if e == "OPTIONS" then - WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ") - WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "-> Return to Karazhan: Lower / isDPS / +++5 / 8m29s / 59.1 ") - WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "-> Cathedral of Eternal Night / isDPS / +++2 / 9m41s / 23.4 ") - WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "-> Seat of the Triumvirate / isDPS / +++14 / 14m54s / 165.5 ") - WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "-> Return to Karazhan: Upper / isDPS / +++11 / 10m23s / 128.0 ") - WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ") - end - if not msg then return end - if msg:find("stats not found") then - aura_env.messageSent = false - return - end - if msg:find("Incorrect syntax") and aura_env.messageSent then - local name = UnitName("target") - if not name then return end - if not aura_env.me then aura_env.me = UnitName("player") end - local msg = ".ch " .. name - C_Timer.After(0.5, function() - SendChatMessage(msg, "WHISPER", nil, aura_env.me) - end) - return - end - if string.byte(msg, 1) + string.byte(msg, 6) == 77 then - aura_env.messageSent = false - aura_env.reading = not aura_env.reading - if aura_env.reading then - aura_env.fullMessage = {} - else - aura_env.Process() - end - - return - end - if aura_env.reading then - aura_env.fullMessage[#aura_env.fullMessage + 1] = msg - end +-- CHAT_MSG_SYSTEM +function(e, msg) + if e == "OPTIONS" then + WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ") + WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "-> Return to Karazhan: Lower / isDPS / +++5 / 8m29s / 59.1 ") + WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "-> Cathedral of Eternal Night / isDPS / +++2 / 9m41s / 23.4 ") + WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "-> Seat of the Triumvirate / isDPS / +++14 / 14m54s / 165.5 ") + WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "-> Return to Karazhan: Upper / isDPS / +++11 / 10m23s / 128.0 ") + WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ") + end + if not msg then return end + if msg:find("stats not found") then + aura_env.messageSent = false + return + end + if msg:find("Incorrect syntax") and aura_env.messageSent then + local name = UnitName("target") + if not name then return end + if not aura_env.me then aura_env.me = UnitName("player") end + local msg = ".ch " .. name + C_Timer.After(0.5, function() + SendChatMessage(msg, "WHISPER", nil, aura_env.me) + end) + return + end + if string.byte(msg, 1) + string.byte(msg, 6) == 77 then + aura_env.messageSent = false + aura_env.reading = not aura_env.reading + if aura_env.reading then + aura_env.fullMessage = {} + else + aura_env.Process() + end + + return + end + if aura_env.reading then + aura_env.fullMessage[#aura_env.fullMessage + 1] = msg + end end \ No newline at end of file diff --git a/FreshShit/RIOChecker/event2.lua b/WeakAuras/Projects/RIOChecker/event2.lua similarity index 97% rename from FreshShit/RIOChecker/event2.lua rename to WeakAuras/Projects/RIOChecker/event2.lua index fa0924c..8a1fadc 100644 --- a/FreshShit/RIOChecker/event2.lua +++ b/WeakAuras/Projects/RIOChecker/event2.lua @@ -1,15 +1,15 @@ --- UNIT_TARGET -function(e, source) - if not source then return end - if not source == "player" then return end - if not UnitExists("target") then return end - if not UnitIsPlayer("target") then return end - local name = UnitName("target") - if not name then return end - if not aura_env.me then aura_env.m = UnitName("player") end - if not aura_env.previousTarget then aura_env.previousTarget = name end - if aura_env.previousTarget == name then return end - local msg = ".ch " .. name - SendChatMessage(msg, "WHISPER", nil, aura_env.me) - aura_env.messageSent = true +-- UNIT_TARGET +function(e, source) + if not source then return end + if not source == "player" then return end + if not UnitExists("target") then return end + if not UnitIsPlayer("target") then return end + local name = UnitName("target") + if not name then return end + if not aura_env.me then aura_env.m = UnitName("player") end + if not aura_env.previousTarget then aura_env.previousTarget = name end + if aura_env.previousTarget == name then return end + local msg = ".ch " .. name + SendChatMessage(msg, "WHISPER", nil, aura_env.me) + aura_env.messageSent = true end \ No newline at end of file diff --git a/FreshShit/RIOChecker/export b/WeakAuras/Projects/RIOChecker/export similarity index 100% rename from FreshShit/RIOChecker/export rename to WeakAuras/Projects/RIOChecker/export diff --git a/FreshShit/RIOChecker/init.lua b/WeakAuras/Projects/RIOChecker/init.lua similarity index 96% rename from FreshShit/RIOChecker/init.lua rename to WeakAuras/Projects/RIOChecker/init.lua index 5e2fefe..734d30d 100644 --- a/FreshShit/RIOChecker/init.lua +++ b/WeakAuras/Projects/RIOChecker/init.lua @@ -1,219 +1,219 @@ -aura_env.me = UnitName("player") -aura_env.reading = false -aura_env.fullMessage = {} -aura_env.displayString = "" -aura_env.messageSent = false -aura_env.previousTarget = "" - ----@class ScoreColorer ----@field colors table ----@field breakpoints table -aura_env.ScoreColorer = { - --- Make sure colors and breakpoints always have the same number of entries! VERY IMPORTANT! - ---@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 = 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 - }, - breakpoints = { 0, 100, 200, 300, 400, 550, 750, 9999 }, - - ---@param value number - ---@return Color, nil|string - Interpolate = function(value) - local color = { r = 0, g = 0, b = 0 } - - ---@type table> - local bracket = { { 0, 0 }, { 1, 1 } } - for i = 1, #aura_env.ScoreColorer.breakpoints do - if value < aura_env.ScoreColorer.breakpoints[i] then - bracket[2] = { i, aura_env.ScoreColorer.breakpoints[i] } - break - end - bracket[1] = { i, aura_env.ScoreColorer.breakpoints[i] } - end - - ---@type Color - local startColor = aura_env.ScoreColorer.colors[bracket[1][1]] - ---@type Color - local endColor = aura_env.ScoreColorer.colors[bracket[2][1]] - - local fraction = (value - bracket[1][2]) / (bracket[2][2] - bracket[1][2]) - - for k, v in pairs(startColor) do - color[k] = aura_env.ScoreColorer.lerp(v, endColor[k], fraction) - end - - return color, nil - end, - - ---@param a number - ---@param b number - ---@param t number - ---@return number - lerp = function(a, b, t) return a * (1 - t) + b * t end, -} ----@class KeyLevel ----@field colors table ----@field breakpoints table -aura_env.KeyLevel = { - --- Make sure colors and breakpoints always have the same number of entries! VERY IMPORTANT! - ---@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 = 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 - }, - breakpoints = { 1, 10, 15, 20, 25, 29, 33, 9999 }, - - ---@param value number - ---@return Color, nil|string - Interpolate = function(value) - local color = { r = 0, g = 0, b = 0 } - - ---@type table> - local bracket = { { 0, 0 }, { 1, 1 } } - for i = 1, #aura_env.KeyLevel.breakpoints do - if value < aura_env.KeyLevel.breakpoints[i] then - bracket[2] = { i, aura_env.KeyLevel.breakpoints[i] } - break - end - bracket[1] = { i, aura_env.KeyLevel.breakpoints[i] } - end - - ---@type Color - local startColor = aura_env.KeyLevel.colors[bracket[1][1]] - ---@type Color - local endColor = aura_env.KeyLevel.colors[bracket[2][1]] - - local fraction = (value - bracket[1][2]) / (bracket[2][2] - bracket[1][2]) - - for k, v in pairs(startColor) do - color[k] = aura_env.KeyLevel.lerp(v, endColor[k], fraction) - end - - return color, nil - end, - - ---@param a number - ---@param b number - ---@param t number - ---@return number - lerp = function(a, b, t) return a * (1 - t) + b * t end, -} - ----@class Key ----@field name string ----@field role string ----@field level string ----@field time string ----@field score number -Key = { - ---@return Key - ---@param name string - ---@param role string - ---@param level string - ---@param time string - ---@param score string - new = function(name, role, level, time, score) - local self = setmetatable({}, { - __index = Key, - __tostring = function(self) - local score = self.score - local keyLevel = tonumber(self.level:match("%d+$")) or 0 - - 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 - ) - 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 - ) - end - - return string.format("%-30s %-10s %-10s %-10s %-10s", self.name, self.role, level, self.time, score) - end, - }) - self.name = name - self.role = role - self.level = level - self.time = time - self.score = tonumber(score) or 0 - return self - end, - ---@return string - hash = function(self) return table.concat({ self.name, self.role, self.level, self.time, self.score }, "/") end, - - ---@param self Key - ---@param other Key - ---@return boolean - 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 - return false - end, - ---@param self Key - register = function(self) - 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, -} - ----@param keys Key[] -local function render(keys) - local str = {} - for k, v in ipairs(keys) do - str[#str + 1] = tostring(v) - end - aura_env.displayString = table.concat(str, "\n") -end - -function aura_env.Process() - ---@type Key[] - local keys = {} - for k, msg in ipairs(aura_env.fullMessage) do - local key, role, level, time, score = string.match(msg, "^->([^/]+)/([^/]+)/([^/]+)/([^/]+)/(.+)$") - - key = string.gsub(key, "^%s+", "") - key = string.gsub(key, "%s+$", "") - role = string.gsub(role, "%s+", "") - level = string.gsub(level, "%s+", "") - time = string.gsub(time, "%s+", "") - score = string.gsub(score, "%s+", "") - - local keyObj = Key.new(key, role, level, time, score) - keyObj:register() - if key then keys[#keys + 1] = keyObj end - end - table.sort(keys, Key.compareTo) - render(keys) -end - --- /run WeakAurasSaved.Cyka.MData = {} --- /dump WeakAurasSaved.Cyka.MData --- /dump InterfaceGUI.Cashe_1[UnitGUID("player")] +aura_env.me = UnitName("player") +aura_env.reading = false +aura_env.fullMessage = {} +aura_env.displayString = "" +aura_env.messageSent = false +aura_env.previousTarget = "" + +---@class ScoreColorer +---@field colors table +---@field breakpoints table +aura_env.ScoreColorer = { + --- Make sure colors and breakpoints always have the same number of entries! VERY IMPORTANT! + ---@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 = 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 + }, + breakpoints = { 0, 100, 200, 300, 400, 550, 750, 9999 }, + + ---@param value number + ---@return Color, nil|string + Interpolate = function(value) + local color = { r = 0, g = 0, b = 0 } + + ---@type table> + local bracket = { { 0, 0 }, { 1, 1 } } + for i = 1, #aura_env.ScoreColorer.breakpoints do + if value < aura_env.ScoreColorer.breakpoints[i] then + bracket[2] = { i, aura_env.ScoreColorer.breakpoints[i] } + break + end + bracket[1] = { i, aura_env.ScoreColorer.breakpoints[i] } + end + + ---@type Color + local startColor = aura_env.ScoreColorer.colors[bracket[1][1]] + ---@type Color + local endColor = aura_env.ScoreColorer.colors[bracket[2][1]] + + local fraction = (value - bracket[1][2]) / (bracket[2][2] - bracket[1][2]) + + for k, v in pairs(startColor) do + color[k] = aura_env.ScoreColorer.lerp(v, endColor[k], fraction) + end + + return color, nil + end, + + ---@param a number + ---@param b number + ---@param t number + ---@return number + lerp = function(a, b, t) return a * (1 - t) + b * t end, +} +---@class KeyLevel +---@field colors table +---@field breakpoints table +aura_env.KeyLevel = { + --- Make sure colors and breakpoints always have the same number of entries! VERY IMPORTANT! + ---@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 = 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 + }, + breakpoints = { 1, 10, 15, 20, 25, 29, 33, 9999 }, + + ---@param value number + ---@return Color, nil|string + Interpolate = function(value) + local color = { r = 0, g = 0, b = 0 } + + ---@type table> + local bracket = { { 0, 0 }, { 1, 1 } } + for i = 1, #aura_env.KeyLevel.breakpoints do + if value < aura_env.KeyLevel.breakpoints[i] then + bracket[2] = { i, aura_env.KeyLevel.breakpoints[i] } + break + end + bracket[1] = { i, aura_env.KeyLevel.breakpoints[i] } + end + + ---@type Color + local startColor = aura_env.KeyLevel.colors[bracket[1][1]] + ---@type Color + local endColor = aura_env.KeyLevel.colors[bracket[2][1]] + + local fraction = (value - bracket[1][2]) / (bracket[2][2] - bracket[1][2]) + + for k, v in pairs(startColor) do + color[k] = aura_env.KeyLevel.lerp(v, endColor[k], fraction) + end + + return color, nil + end, + + ---@param a number + ---@param b number + ---@param t number + ---@return number + lerp = function(a, b, t) return a * (1 - t) + b * t end, +} + +---@class Key +---@field name string +---@field role string +---@field level string +---@field time string +---@field score number +Key = { + ---@return Key + ---@param name string + ---@param role string + ---@param level string + ---@param time string + ---@param score string + new = function(name, role, level, time, score) + local self = setmetatable({}, { + __index = Key, + __tostring = function(self) + local score = self.score + local keyLevel = tonumber(self.level:match("%d+$")) or 0 + + 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 + ) + 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 + ) + end + + return string.format("%-30s %-10s %-10s %-10s %-10s", self.name, self.role, level, self.time, score) + end, + }) + self.name = name + self.role = role + self.level = level + self.time = time + self.score = tonumber(score) or 0 + return self + end, + ---@return string + hash = function(self) return table.concat({ self.name, self.role, self.level, self.time, self.score }, "/") end, + + ---@param self Key + ---@param other Key + ---@return boolean + 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 + return false + end, + ---@param self Key + register = function(self) + 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, +} + +---@param keys Key[] +local function render(keys) + local str = {} + for k, v in ipairs(keys) do + str[#str + 1] = tostring(v) + end + aura_env.displayString = table.concat(str, "\n") +end + +function aura_env.Process() + ---@type Key[] + local keys = {} + for k, msg in ipairs(aura_env.fullMessage) do + local key, role, level, time, score = string.match(msg, "^->([^/]+)/([^/]+)/([^/]+)/([^/]+)/(.+)$") + + key = string.gsub(key, "^%s+", "") + key = string.gsub(key, "%s+$", "") + role = string.gsub(role, "%s+", "") + level = string.gsub(level, "%s+", "") + time = string.gsub(time, "%s+", "") + score = string.gsub(score, "%s+", "") + + local keyObj = Key.new(key, role, level, time, score) + keyObj:register() + if key then keys[#keys + 1] = keyObj end + end + table.sort(keys, Key.compareTo) + render(keys) +end + +-- /run WeakAurasSaved.Cyka.MData = {} +-- /dump WeakAurasSaved.Cyka.MData +-- /dump InterfaceGUI.Cashe_1[UnitGUID("player")] diff --git a/Complete Projects/Legion/Raid Frame Glow.lua b/WeakAuras/Projects/Raid Frame Glow.lua similarity index 97% rename from Complete Projects/Legion/Raid Frame Glow.lua rename to WeakAuras/Projects/Raid Frame Glow.lua index 75ae585..d4eb4af 100644 --- a/Complete Projects/Legion/Raid Frame Glow.lua +++ b/WeakAuras/Projects/Raid Frame Glow.lua @@ -1,173 +1,173 @@ ---/run WeakAuras.ScanEvents("UPDATE_FRAME_GLOW") ---ID_UPDATED UPDATE_FRAME_GLOW PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED GROUP_ROSTER_UPDATE ---ElvUF_Focus.Health ---ElvUF_TargetTarget.Health -function(e, id) - if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(0.1, function() WeakAuras.ScanEvents("UPDATE_FRAME_GLOW") end) end - if e == "PLAYER_REGEN_DISABLED" or e == "PLAYER_REGEN_ENABLED" then - WeakAuras.ScanEvents("UPDATE_FRAME_GLOW") - elseif e == "UPDATE_FRAME_GLOW" then - local hptable = {["hp"] = 1e21, ["id"] = 0, ["mhp"] = 0, ["php"] = 100} - for i = 1, GetNumGroupMembers() do - --if UnitHealthMax("raid" .. i) - UnitHealth("raid" .. i) > hptable.mhp then --Missing HP - if UnitIsConnected("raid" .. i) == true then - if UnitHealth("raid" .. i) / UnitHealthMax("raid" .. i) < hptable.php then --% HP - if UnitHealth("raid" .. i) / UnitHealthMax("raid" .. i) < 0.6 and UnitHealth("raid" .. i) / UnitHealthMax("raid" .. i) > 0 and UnitIsConnected("raid" .. i) then - hptable.hp = UnitHealth("raid" .. i) - hptable.mhp = UnitHealthMax("raid" .. i) - UnitHealth("raid" .. i) - hptable.php = UnitHealth("raid" .. i) / UnitHealthMax("raid" .. i) - hptable.id = i - hptable.name = UnitName("raid" .. i) - end - end - end - end - if hptable.id ~= aura_env.lastID then - WeakAuras.ScanEvents("ID_UPDATED", hptable.id) - aura_env.lastID = hptable.id - end - - if UnitExists("focus") then - local fhp = UnitHealth("focus") / UnitHealthMax("focus") - if fhp < 0.4 then - ActionButton_ShowOverlayGlow(ElvUF_Focus.Health) - else - ActionButton_HideOverlayGlow(ElvUF_Focus.Health) - end - end - if UnitExists("targettarget") then - local tthp = UnitHealth("targettarget") / UnitHealthMax("targettarget") - if tthp < 0.4 then - print("QUICK GLOW OMG OMGO GMO") - ActionButton_ShowOverlayGlow(ElvUF_TargetTarget.Health) - else - ActionButton_HideOverlayGlow(ElvUF_TargetTarget.Health) - end - end - - elseif e == "ID_UPDATED" then - if id ~= aura_env.glowingPlate and aura_env.glowingPlate > 0 then - ActionButton_HideOverlayGlow(aura_env.GetFrame("raid" .. aura_env.glowingPlate)) - end - if aura_env.GetFrame("raid" .. id) then - ActionButton_ShowOverlayGlow(aura_env.GetFrame("raid" .. id)) - aura_env.glowingPlate = id - end - end -end - ---INIT -if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(0.1, function() WeakAuras.ScanEvents("UPDATE_FRAME_GLOW") end) end -aura_env.lastID = 0 -aura_env.glowingPlate = 0 - -local frame_priority = { - -- raid frames - [1] = "^Vd1", -- vuhdo - [2] = "^Healbot", -- healbot - [3] = "^GridLayout", -- grid - [4] = "^Grid2Layout", -- grid2 - [5] = "^ElvUF_RaidGroup", -- elv - [6] = "^oUF_bdGrid", -- bdgrid - [7] = "^oUF.*raid", -- generic oUF - [8] = "^LimeGroup", -- lime - [9] = "^SUFHeaderraid", -- suf - [10] = "^CompactRaid", -- blizz - -- party frames - [11] = "^SUFHeaderparty", --suf - [12] = "^ElvUF_PartyGroup", -- elv - [13] = "^oUF.*party", -- generic oUF - [14] = "^PitBull4_Groups_Party", -- pitbull4 - [15] = "^CompactParty", -- blizz - -- player frame - [16] = "^SUFUnitplayer", - [17] = "^PitBull4_Frames_Player", - [18] = "^ElvUF_Player", - [19] = "^oUF.*player", - [20] = "^PlayerFrame", -} - -WA_GetFramesCache = WA_GetFramesCache or {} -if not WA_GetFramesCacheListener then - WA_GetFramesCacheListener = CreateFrame("Frame") - local f = WA_GetFramesCacheListener - f:RegisterEvent("PLAYER_REGEN_DISABLED") - f:RegisterEvent("PLAYER_REGEN_ENABLED") - f:RegisterEvent("GROUP_ROSTER_UPDATE") - f:SetScript("OnEvent", function(self, event, ...) - WA_GetFramesCache = {} - end) -end - -local function GetFrames(target) - local function FindButtonsForUnit(frame, target) - local results = {} - if type(frame) == "table" and not frame:IsForbidden() then - local type = frame:GetObjectType() - if type == "Frame" or type == "Button" then - for _,child in ipairs({frame:GetChildren()}) do - for _,v in pairs(FindButtonsForUnit(child, target)) do - tinsert(results, v) - end - end - end - if type == "Button" then - local unit = frame:GetAttribute('unit') - if unit and frame:IsVisible() and frame:GetName() then - WA_GetFramesCache[frame] = unit - if UnitIsUnit(unit, target) then - -- print("F:", frame:GetName()) - tinsert(results, frame) - end - end - end - end - return results - end - - if not UnitExists(target) then - if type(target) == "string" and target:find("Player") then - target = select(6,GetPlayerInfoByGUID(target)) - else - return {} - end - end - - local results = {} - for frame, unit in pairs(WA_GetFramesCache) do - --print("from cache:", frame:GetName()) - if UnitIsUnit(unit, target) then - if frame:GetAttribute('unit') == unit then - tinsert(results, frame) - else - results = {} - break - end - end - end - - return #results > 0 and results or FindButtonsForUnit(UIParent, target) -end - -local isElvUI = IsAddOnLoaded("ElvUI") -local function WhyElvWhy(frame) - if isElvUI and frame and frame:GetName():find("^ElvUF_") and frame.Health then - return frame.Health - else - return frame - end -end - - -function aura_env.GetFrame(target) - local frames = GetFrames(target) - if not frames then return nil end - for i=1,#frame_priority do - for _,frame in pairs(frames) do - if (frame:GetName()):find(frame_priority[i]) then - return WhyElvWhy(frame) - end - end - end - return WhyElvWhy(frames[1]) -end +--/run WeakAuras.ScanEvents("UPDATE_FRAME_GLOW") +--ID_UPDATED UPDATE_FRAME_GLOW PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED GROUP_ROSTER_UPDATE +--ElvUF_Focus.Health +--ElvUF_TargetTarget.Health +function(e, id) + if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(0.1, function() WeakAuras.ScanEvents("UPDATE_FRAME_GLOW") end) end + if e == "PLAYER_REGEN_DISABLED" or e == "PLAYER_REGEN_ENABLED" then + WeakAuras.ScanEvents("UPDATE_FRAME_GLOW") + elseif e == "UPDATE_FRAME_GLOW" then + local hptable = {["hp"] = 1e21, ["id"] = 0, ["mhp"] = 0, ["php"] = 100} + for i = 1, GetNumGroupMembers() do + --if UnitHealthMax("raid" .. i) - UnitHealth("raid" .. i) > hptable.mhp then --Missing HP + if UnitIsConnected("raid" .. i) == true then + if UnitHealth("raid" .. i) / UnitHealthMax("raid" .. i) < hptable.php then --% HP + if UnitHealth("raid" .. i) / UnitHealthMax("raid" .. i) < 0.6 and UnitHealth("raid" .. i) / UnitHealthMax("raid" .. i) > 0 and UnitIsConnected("raid" .. i) then + hptable.hp = UnitHealth("raid" .. i) + hptable.mhp = UnitHealthMax("raid" .. i) - UnitHealth("raid" .. i) + hptable.php = UnitHealth("raid" .. i) / UnitHealthMax("raid" .. i) + hptable.id = i + hptable.name = UnitName("raid" .. i) + end + end + end + end + if hptable.id ~= aura_env.lastID then + WeakAuras.ScanEvents("ID_UPDATED", hptable.id) + aura_env.lastID = hptable.id + end + + if UnitExists("focus") then + local fhp = UnitHealth("focus") / UnitHealthMax("focus") + if fhp < 0.4 then + ActionButton_ShowOverlayGlow(ElvUF_Focus.Health) + else + ActionButton_HideOverlayGlow(ElvUF_Focus.Health) + end + end + if UnitExists("targettarget") then + local tthp = UnitHealth("targettarget") / UnitHealthMax("targettarget") + if tthp < 0.4 then + print("QUICK GLOW OMG OMGO GMO") + ActionButton_ShowOverlayGlow(ElvUF_TargetTarget.Health) + else + ActionButton_HideOverlayGlow(ElvUF_TargetTarget.Health) + end + end + + elseif e == "ID_UPDATED" then + if id ~= aura_env.glowingPlate and aura_env.glowingPlate > 0 then + ActionButton_HideOverlayGlow(aura_env.GetFrame("raid" .. aura_env.glowingPlate)) + end + if aura_env.GetFrame("raid" .. id) then + ActionButton_ShowOverlayGlow(aura_env.GetFrame("raid" .. id)) + aura_env.glowingPlate = id + end + end +end + +--INIT +if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(0.1, function() WeakAuras.ScanEvents("UPDATE_FRAME_GLOW") end) end +aura_env.lastID = 0 +aura_env.glowingPlate = 0 + +local frame_priority = { + -- raid frames + [1] = "^Vd1", -- vuhdo + [2] = "^Healbot", -- healbot + [3] = "^GridLayout", -- grid + [4] = "^Grid2Layout", -- grid2 + [5] = "^ElvUF_RaidGroup", -- elv + [6] = "^oUF_bdGrid", -- bdgrid + [7] = "^oUF.*raid", -- generic oUF + [8] = "^LimeGroup", -- lime + [9] = "^SUFHeaderraid", -- suf + [10] = "^CompactRaid", -- blizz + -- party frames + [11] = "^SUFHeaderparty", --suf + [12] = "^ElvUF_PartyGroup", -- elv + [13] = "^oUF.*party", -- generic oUF + [14] = "^PitBull4_Groups_Party", -- pitbull4 + [15] = "^CompactParty", -- blizz + -- player frame + [16] = "^SUFUnitplayer", + [17] = "^PitBull4_Frames_Player", + [18] = "^ElvUF_Player", + [19] = "^oUF.*player", + [20] = "^PlayerFrame", +} + +WA_GetFramesCache = WA_GetFramesCache or {} +if not WA_GetFramesCacheListener then + WA_GetFramesCacheListener = CreateFrame("Frame") + local f = WA_GetFramesCacheListener + f:RegisterEvent("PLAYER_REGEN_DISABLED") + f:RegisterEvent("PLAYER_REGEN_ENABLED") + f:RegisterEvent("GROUP_ROSTER_UPDATE") + f:SetScript("OnEvent", function(self, event, ...) + WA_GetFramesCache = {} + end) +end + +local function GetFrames(target) + local function FindButtonsForUnit(frame, target) + local results = {} + if type(frame) == "table" and not frame:IsForbidden() then + local type = frame:GetObjectType() + if type == "Frame" or type == "Button" then + for _,child in ipairs({frame:GetChildren()}) do + for _,v in pairs(FindButtonsForUnit(child, target)) do + tinsert(results, v) + end + end + end + if type == "Button" then + local unit = frame:GetAttribute('unit') + if unit and frame:IsVisible() and frame:GetName() then + WA_GetFramesCache[frame] = unit + if UnitIsUnit(unit, target) then + -- print("F:", frame:GetName()) + tinsert(results, frame) + end + end + end + end + return results + end + + if not UnitExists(target) then + if type(target) == "string" and target:find("Player") then + target = select(6,GetPlayerInfoByGUID(target)) + else + return {} + end + end + + local results = {} + for frame, unit in pairs(WA_GetFramesCache) do + --print("from cache:", frame:GetName()) + if UnitIsUnit(unit, target) then + if frame:GetAttribute('unit') == unit then + tinsert(results, frame) + else + results = {} + break + end + end + end + + return #results > 0 and results or FindButtonsForUnit(UIParent, target) +end + +local isElvUI = IsAddOnLoaded("ElvUI") +local function WhyElvWhy(frame) + if isElvUI and frame and frame:GetName():find("^ElvUF_") and frame.Health then + return frame.Health + else + return frame + end +end + + +function aura_env.GetFrame(target) + local frames = GetFrames(target) + if not frames then return nil end + for i=1,#frame_priority do + for _,frame in pairs(frames) do + if (frame:GetName()):find(frame_priority[i]) then + return WhyElvWhy(frame) + end + end + end + return WhyElvWhy(frames[1]) +end diff --git a/Complete Projects/Legion/Raid Rolls.lua b/WeakAuras/Projects/Raid Rolls.lua similarity index 97% rename from Complete Projects/Legion/Raid Rolls.lua rename to WeakAuras/Projects/Raid Rolls.lua index b5c13f4..b0d610b 100644 --- a/Complete Projects/Legion/Raid Rolls.lua +++ b/WeakAuras/Projects/Raid Rolls.lua @@ -1,31 +1,31 @@ -TRIGGER -function(_,message) - if string.find(message, "rolls") then - _,_,name,roll,rollmax = string.find(message, "(%a+)%srolls%s(%d+)%s%p%d%-(%d+)%p") - local source_class = UnitClass(name) - if source_class == "Death Knight" then source_class_color = "|cFFC41F3B" elseif - source_class == "Demon Hunter" then source_class_color = "|cFFA330C9" elseif - source_class == "Druid" then source_class_color = "|cFFFF7D0A" elseif - source_class == "Hunter" then source_class_color = "|cFFABD473" elseif - source_class == "Mage" then source_class_color = "|cFF40C7EB" elseif - source_class == "Monk" then source_class_color = "|cFF00FF96" elseif - source_class == "Paladin" then source_class_color = "|cFFF58CBA" elseif - source_class == "Priest" then source_class_color = "|cFFFFFFFF" elseif - source_class == "Rogue" then source_class_color = "|cFFFFF569" elseif - source_class == "Shaman" then source_class_color = "|cFF0070DE" elseif - source_class == "Warlock" then source_class_color = "|cFF8787ED" elseif - source_class == "Warrior" then source_class_color = "|cFFC79C6E" end - if string.find(rollmax, "100") then - aura_env.output = aura_env.output .. source_class_color .. name .. "|cFFFFFFFF" .. " " .. roll .. "\n" - end - end -end - -DISPLAY -function() - return aura_env.output -end - -INIT -aura_env.output = "" -aura_env.lastItemName = "" +TRIGGER +function(_,message) + if string.find(message, "rolls") then + _,_,name,roll,rollmax = string.find(message, "(%a+)%srolls%s(%d+)%s%p%d%-(%d+)%p") + local source_class = UnitClass(name) + if source_class == "Death Knight" then source_class_color = "|cFFC41F3B" elseif + source_class == "Demon Hunter" then source_class_color = "|cFFA330C9" elseif + source_class == "Druid" then source_class_color = "|cFFFF7D0A" elseif + source_class == "Hunter" then source_class_color = "|cFFABD473" elseif + source_class == "Mage" then source_class_color = "|cFF40C7EB" elseif + source_class == "Monk" then source_class_color = "|cFF00FF96" elseif + source_class == "Paladin" then source_class_color = "|cFFF58CBA" elseif + source_class == "Priest" then source_class_color = "|cFFFFFFFF" elseif + source_class == "Rogue" then source_class_color = "|cFFFFF569" elseif + source_class == "Shaman" then source_class_color = "|cFF0070DE" elseif + source_class == "Warlock" then source_class_color = "|cFF8787ED" elseif + source_class == "Warrior" then source_class_color = "|cFFC79C6E" end + if string.find(rollmax, "100") then + aura_env.output = aura_env.output .. source_class_color .. name .. "|cFFFFFFFF" .. " " .. roll .. "\n" + end + end +end + +DISPLAY +function() + return aura_env.output +end + +INIT +aura_env.output = "" +aura_env.lastItemName = "" diff --git a/Complete Projects/Legion/Raid loot DOESNT WORK.lua b/WeakAuras/Projects/Raid loot DOESNT WORK.lua similarity index 97% rename from Complete Projects/Legion/Raid loot DOESNT WORK.lua rename to WeakAuras/Projects/Raid loot DOESNT WORK.lua index 42bc9f6..170d275 100644 --- a/Complete Projects/Legion/Raid loot DOESNT WORK.lua +++ b/WeakAuras/Projects/Raid loot DOESNT WORK.lua @@ -1,60 +1,60 @@ ---Load out of combat -CHAT_MSG_LOOT -function(_,msg) - local who = string.match(msg, "%a+") - local what = string.match(msg, "%[(.+)%]") - local itemQuality = select(3, GetItemInfo(what)) or "" - local itemType = select(6, GetItemInfo(what)) or "" - local itemSubType = select(7, GetItemInfo(what)) or "" - if itemType == "Armor" then - aura_env.who[aura_env.pointer] = who - aura_env.what[aura_env.pointer] = what - aura_env.itemQuality[aura_env.pointer] = itemQuality - aura_env.itemSubType[aura_env.pointer] = itemSubType - aura_env.pointer = aura_env.pointer + 1 - end -end - -DISPLAY -function() - local output = "" - local qualityColor = "|cFFFFFFFF" - local classColor = "|cFFFFFFFF" - if aura_env.pointer > 1 then - for i = 1, aura_env.pointer - 1 do - if aura_env.who[i] ~= "You" then - local playerClass = UnitClass(aura_env.who[i]) - else - playerClass = UnitClass("player") - end - if aura_env.itemQuality[i] == 0 then qualityColor = "|cFF9D9D9D" elseif - aura_env.itemQuality[i] == 2 then qualityColor = "|cFF1EFF00" elseif - aura_env.itemQuality[i] == 3 then qualityColor = "|cFF0070DD" elseif - aura_env.itemQuality[i] == 4 then qualityColor = "|cFFA335EE" elseif - aura_env.itemQuality[i] == 5 then qualityColor = "|cFFFF8000" - end - if playerClass == "Death Knight" then classColor = "|cFFC41F3B" - elseif playerClass == "Demon Hunter" then classColor = "|cFFA330C9" - elseif playerClass == "Druid" then classColor = "|cFFFF7D0A" - elseif playerClass == "Hunter" then classColor = "|cFFABD473" - elseif playerClass == "Mage" then classColor = "|cFF40C7EB" - elseif playerClass == "Monk" then classColor = "|cFF00FF96" - elseif playerClass == "Paladin" then classColor = "|cFFF58CBA" - elseif playerClass == "Priest" then classColor = "|cFFFFFFFF" - elseif playerClass == "Rogue" then classColor = "|cFFFFF569" - elseif playerClass == "Shaman" then classColor = "|cFF0070DE" - elseif playerClass == "Warlock" then classColor = "|cFF8787ED" - elseif playerClass == "Warrior" then classColor = "|cFFC79C6E" - end - output = output .. classColor .. aura_env.who[i] .. " " .. "|cFFFFFFFF" .. aura_env.itemSubType[i] .. " " .. qualityColor .. "%[" .. aura_env.what[i] .. "%]" .. "\n" - end - end - return output -end - -ON HIDE -aura_env.pointer = 1 -aura_env.who = {} -aura_env.what = {} -aura_env.itemQuality = {} +--Load out of combat +CHAT_MSG_LOOT +function(_,msg) + local who = string.match(msg, "%a+") + local what = string.match(msg, "%[(.+)%]") + local itemQuality = select(3, GetItemInfo(what)) or "" + local itemType = select(6, GetItemInfo(what)) or "" + local itemSubType = select(7, GetItemInfo(what)) or "" + if itemType == "Armor" then + aura_env.who[aura_env.pointer] = who + aura_env.what[aura_env.pointer] = what + aura_env.itemQuality[aura_env.pointer] = itemQuality + aura_env.itemSubType[aura_env.pointer] = itemSubType + aura_env.pointer = aura_env.pointer + 1 + end +end + +DISPLAY +function() + local output = "" + local qualityColor = "|cFFFFFFFF" + local classColor = "|cFFFFFFFF" + if aura_env.pointer > 1 then + for i = 1, aura_env.pointer - 1 do + if aura_env.who[i] ~= "You" then + local playerClass = UnitClass(aura_env.who[i]) + else + playerClass = UnitClass("player") + end + if aura_env.itemQuality[i] == 0 then qualityColor = "|cFF9D9D9D" elseif + aura_env.itemQuality[i] == 2 then qualityColor = "|cFF1EFF00" elseif + aura_env.itemQuality[i] == 3 then qualityColor = "|cFF0070DD" elseif + aura_env.itemQuality[i] == 4 then qualityColor = "|cFFA335EE" elseif + aura_env.itemQuality[i] == 5 then qualityColor = "|cFFFF8000" + end + if playerClass == "Death Knight" then classColor = "|cFFC41F3B" + elseif playerClass == "Demon Hunter" then classColor = "|cFFA330C9" + elseif playerClass == "Druid" then classColor = "|cFFFF7D0A" + elseif playerClass == "Hunter" then classColor = "|cFFABD473" + elseif playerClass == "Mage" then classColor = "|cFF40C7EB" + elseif playerClass == "Monk" then classColor = "|cFF00FF96" + elseif playerClass == "Paladin" then classColor = "|cFFF58CBA" + elseif playerClass == "Priest" then classColor = "|cFFFFFFFF" + elseif playerClass == "Rogue" then classColor = "|cFFFFF569" + elseif playerClass == "Shaman" then classColor = "|cFF0070DE" + elseif playerClass == "Warlock" then classColor = "|cFF8787ED" + elseif playerClass == "Warrior" then classColor = "|cFFC79C6E" + end + output = output .. classColor .. aura_env.who[i] .. " " .. "|cFFFFFFFF" .. aura_env.itemSubType[i] .. " " .. qualityColor .. "%[" .. aura_env.what[i] .. "%]" .. "\n" + end + end + return output +end + +ON HIDE +aura_env.pointer = 1 +aura_env.who = {} +aura_env.what = {} +aura_env.itemQuality = {} aura_env.itemSubType = {} \ No newline at end of file diff --git a/Complete Projects/Legion/RaidCDs.lua b/WeakAuras/Projects/RaidCDs.lua similarity index 97% rename from Complete Projects/Legion/RaidCDs.lua rename to WeakAuras/Projects/RaidCDs.lua index 4ee19fd..0f82014 100644 --- a/Complete Projects/Legion/RaidCDs.lua +++ b/WeakAuras/Projects/RaidCDs.lua @@ -1,149 +1,149 @@ ---DISPLAY -function() - if aura_env.statee then - return aura_env.statee.string - end -end - ---COMBAT_LOG_EVENT_UNFILTERED GROUP_ROSTER_UPDATE COOLDOWN_TICKER PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED COMBAT_TICK -function(allstates, e, ...) - --if not aura_env.ticker then - -- aura_env.ticker = C_Timer.NewTicker(0.05, function() WeakAuras.ScanEvents("COOLDOWN_TICKER") end) - --end - --if e == "COOLDOWN_TICKER" then - -- if allstates[1] then - -- if allstates[1].time + 2 < GetTime() then - -- allstates[1].show = false - -- allstates[1].changed = true - -- table.remove(allstates, 1) - -- WeakAuras.ScanEvents("COOLDOWN_TICKER") - -- return true - -- end - -- end - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, ...) - if not allstates[1] or not allstates[1].string then - allstates[1] = { - string = "[" .. aura_env.formatTime(aura_env.combatTime) .. "]", - show = true, - changed = true, - } - end - if se == "SPELL_CAST_SUCCESS" then - local caster = select(5, ...) or 0 - if aura_env.raid[caster] then - local spell = select(13, ...) - if aura_env.spells[spell] then - allstates[#allstates + 1] = { - caster = caster, - spell = spell, - string = "[" .. aura_env.formatTime(aura_env.combatTime) .. "] " .. caster .. " - " .. spell, - class = aura_env.raid[caster], - time = GetTime(), - show = true, - changed = true, - } - if #allstates > 8 then - allstates[2].show = false - allstates[2].changed = true - table.remove(allstates, 2) - end - return true - end - end - end - elseif e == "GROUP_ROSTER_UPDATE" then - local prefix = "party" - if IsInRaid() == true then - prefix = "raid" - end - aura_env.raid = {} - aura_env.raid[UnitName("player")] = select(3, UnitClass("player")) - for i = 1, GetNumGroupMembers() do - if UnitName(prefix .. i) and not aura_env.raid[UnitName(prefix .. i)] then - aura_env.raid[UnitName(prefix .. i)] = select(3, UnitClass(prefix .. i)) - print("YEET", UnitName(prefix .. i), select(3, UnitClass(prefix .. i))) - end - end - elseif e == "COMBAT_TICK" then - aura_env.combatTime = aura_env.combatTime + 1 - if allstates[1] then - allstates[1].string = "[" .. aura_env.formatTime(aura_env.combatTime) .. "]" - allstates[1].changed = true - allstates[1].show = true - end - elseif e == "PLAYER_REGEN_DISABLED" then - aura_env.combatTime = 0 - for i = 2, 10 do - if allstates[i] then - allstates[i].show = false - allstates[i].changed = true - end - end - if not aura_env.combatTicker then - aura_env.combatTicker = C_Timer.NewTicker(1, function() WeakAuras.ScanEvents("COMBAT_TICK") end) - end - elseif e == "PLAYER_REGEN_ENABLED" then - if aura_env.combatTicker then - aura_env.combatTicker:Cancel() - aura_env.combatTicker = nil - end - end - --DevTools_Dump(aura_env.raid) - return true -end - ---INIT -aura_env.raid = {} -aura_env.combatTime = 0 -aura_env.spells = { - ["Divine Shield"] = true, - ["Blessing of Spellwarding"] = true, - ["Blessing of Protection"] = true, - ["Blessing of Sacrifice"] = true, - ["Avenging Wrath"] = true, - ["Aura Mastery"] = true, - ["Guardian Spirit"] = true, - ["Divine Hymn"] = true, - ["Raise Ally"] = true, - ["Tranquility"] = true, - ["Stampeding Roar"] = true, - ["Rebirth"] = true, - ["Ice Block"] = true, - ["Deterrence"] = true, - ["Survival Instincts"] = true, - ["Anti-Magic Shell"] = true, - ["Vampiric Blood"] = true, - ["Revival"] = true, - ["Life Cocoon"] = true, - ["Diffuse Magic"] = true, - ["Lay on Hands"] = true, - ["Dispersion"] = true, - ["Evasion"] = true, - ["Cloak of Shadows"] = true, - ["Bloodlust"] = true, - ["Healing Tide Totem"] = true, - ["Soulstone"] = true, - ["Rallying Cry"] = true, - ["Power Word: Barrier"] = true, - ["Spirit Link Totem"] = true, - ["Wind Rush Totem"] = true, - ["Ancestral Guidance"] = true, - --["Hand of the Protector"] = true, - --["Healing Rain"] = true, - --["Shimmer"] = true, - --["Death and Decay"] = true, -} -aura_env.formatTime = function(time) - local res, m, s = time, 0, 0 - while res >= 60 do - m = m + 1 - res = res - 60 - end - s = res - 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 +--DISPLAY +function() + if aura_env.statee then + return aura_env.statee.string + end +end + +--COMBAT_LOG_EVENT_UNFILTERED GROUP_ROSTER_UPDATE COOLDOWN_TICKER PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED COMBAT_TICK +function(allstates, e, ...) + --if not aura_env.ticker then + -- aura_env.ticker = C_Timer.NewTicker(0.05, function() WeakAuras.ScanEvents("COOLDOWN_TICKER") end) + --end + --if e == "COOLDOWN_TICKER" then + -- if allstates[1] then + -- if allstates[1].time + 2 < GetTime() then + -- allstates[1].show = false + -- allstates[1].changed = true + -- table.remove(allstates, 1) + -- WeakAuras.ScanEvents("COOLDOWN_TICKER") + -- return true + -- end + -- end + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, ...) + if not allstates[1] or not allstates[1].string then + allstates[1] = { + string = "[" .. aura_env.formatTime(aura_env.combatTime) .. "]", + show = true, + changed = true, + } + end + if se == "SPELL_CAST_SUCCESS" then + local caster = select(5, ...) or 0 + if aura_env.raid[caster] then + local spell = select(13, ...) + if aura_env.spells[spell] then + allstates[#allstates + 1] = { + caster = caster, + spell = spell, + string = "[" .. aura_env.formatTime(aura_env.combatTime) .. "] " .. caster .. " - " .. spell, + class = aura_env.raid[caster], + time = GetTime(), + show = true, + changed = true, + } + if #allstates > 8 then + allstates[2].show = false + allstates[2].changed = true + table.remove(allstates, 2) + end + return true + end + end + end + elseif e == "GROUP_ROSTER_UPDATE" then + local prefix = "party" + if IsInRaid() == true then + prefix = "raid" + end + aura_env.raid = {} + aura_env.raid[UnitName("player")] = select(3, UnitClass("player")) + for i = 1, GetNumGroupMembers() do + if UnitName(prefix .. i) and not aura_env.raid[UnitName(prefix .. i)] then + aura_env.raid[UnitName(prefix .. i)] = select(3, UnitClass(prefix .. i)) + print("YEET", UnitName(prefix .. i), select(3, UnitClass(prefix .. i))) + end + end + elseif e == "COMBAT_TICK" then + aura_env.combatTime = aura_env.combatTime + 1 + if allstates[1] then + allstates[1].string = "[" .. aura_env.formatTime(aura_env.combatTime) .. "]" + allstates[1].changed = true + allstates[1].show = true + end + elseif e == "PLAYER_REGEN_DISABLED" then + aura_env.combatTime = 0 + for i = 2, 10 do + if allstates[i] then + allstates[i].show = false + allstates[i].changed = true + end + end + if not aura_env.combatTicker then + aura_env.combatTicker = C_Timer.NewTicker(1, function() WeakAuras.ScanEvents("COMBAT_TICK") end) + end + elseif e == "PLAYER_REGEN_ENABLED" then + if aura_env.combatTicker then + aura_env.combatTicker:Cancel() + aura_env.combatTicker = nil + end + end + --DevTools_Dump(aura_env.raid) + return true +end + +--INIT +aura_env.raid = {} +aura_env.combatTime = 0 +aura_env.spells = { + ["Divine Shield"] = true, + ["Blessing of Spellwarding"] = true, + ["Blessing of Protection"] = true, + ["Blessing of Sacrifice"] = true, + ["Avenging Wrath"] = true, + ["Aura Mastery"] = true, + ["Guardian Spirit"] = true, + ["Divine Hymn"] = true, + ["Raise Ally"] = true, + ["Tranquility"] = true, + ["Stampeding Roar"] = true, + ["Rebirth"] = true, + ["Ice Block"] = true, + ["Deterrence"] = true, + ["Survival Instincts"] = true, + ["Anti-Magic Shell"] = true, + ["Vampiric Blood"] = true, + ["Revival"] = true, + ["Life Cocoon"] = true, + ["Diffuse Magic"] = true, + ["Lay on Hands"] = true, + ["Dispersion"] = true, + ["Evasion"] = true, + ["Cloak of Shadows"] = true, + ["Bloodlust"] = true, + ["Healing Tide Totem"] = true, + ["Soulstone"] = true, + ["Rallying Cry"] = true, + ["Power Word: Barrier"] = true, + ["Spirit Link Totem"] = true, + ["Wind Rush Totem"] = true, + ["Ancestral Guidance"] = true, + --["Hand of the Protector"] = true, + --["Healing Rain"] = true, + --["Shimmer"] = true, + --["Death and Decay"] = true, +} +aura_env.formatTime = function(time) + local res, m, s = time, 0, 0 + while res >= 60 do + m = m + 1 + res = res - 60 + end + s = res + 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 diff --git a/Complete Projects/Legion/RaidCooldownAlert.lua b/WeakAuras/Projects/RaidCooldownAlert.lua similarity index 96% rename from Complete Projects/Legion/RaidCooldownAlert.lua rename to WeakAuras/Projects/RaidCooldownAlert.lua index 09b328f..9f6560d 100644 --- a/Complete Projects/Legion/RaidCooldownAlert.lua +++ b/WeakAuras/Projects/RaidCooldownAlert.lua @@ -1,18 +1,18 @@ ---COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_DISABLED GROUP_ROSTER_UPDATE -function(e, ...) - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, ...) - local caster = select(5, ...) - if UnitIsFriend("player", caster) then - print("yay!", aura_env.raidIDs[caster]) - end - elseif e == "GROUP_ROSTER_UPDATE" or e == "PLAYER_REGEN_DISABLED" then - for i = 1, GetNumGroupMembers() do - print(UnitName("raid" .. i), "raid" .. i) - aura_env.raidIDs[UnitName("raid" .. i)] = "raid" .. i - end - end -end - ---INIT +--COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_DISABLED GROUP_ROSTER_UPDATE +function(e, ...) + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, ...) + local caster = select(5, ...) + if UnitIsFriend("player", caster) then + print("yay!", aura_env.raidIDs[caster]) + end + elseif e == "GROUP_ROSTER_UPDATE" or e == "PLAYER_REGEN_DISABLED" then + for i = 1, GetNumGroupMembers() do + print(UnitName("raid" .. i), "raid" .. i) + aura_env.raidIDs[UnitName("raid" .. i)] = "raid" .. i + end + end +end + +--INIT aura_env.raidIDs = {} \ No newline at end of file diff --git a/WeakAuras/Projects/RaiderSA/.gitignore b/WeakAuras/Projects/RaiderSA/.gitignore new file mode 100644 index 0000000..db3c70c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/.gitignore @@ -0,0 +1,2 @@ +staging/* +source diff --git a/WeakAuras/Projects/RaiderSA/buildscript/main.js b/WeakAuras/Projects/RaiderSA/buildscript/main.js new file mode 100644 index 0000000..452afb0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/buildscript/main.js @@ -0,0 +1,110 @@ +const fs = require("fs"); +const path = require("path"); +const { exec } = require("node:child_process"); +const { ECDH } = require("crypto"); + +const SAMPLE = path.join(__dirname, "..", "samples", "genericfemale.wav"); +const WORDS_FILE = path.join(__dirname, "..", "words.txt"); +const SOURCE_DIR = path.join(__dirname, "..", "source"); +const OUT_DIR = path.join(__dirname, "..", "out"); +const TTS_MODEL = "tts_models/multilingual/multi-dataset/xtts_v2"; +const TTS_COMMAND = `tts --text "$word" --model_name $model --speaker_wav "$sample" --language_idx en --out_path "$outPath"`; +const FFMPEG_COMMAND = `ffmpeg -i "$file" -filter:a "volume=2.5, atempo=1.65" "$outPath"`; + +if (!fs.existsSync(SOURCE_DIR)) { + fs.mkdirSync(SOURCE_DIR, { recursive: true }); +} +if (!fs.existsSync(OUT_DIR)) { + fs.mkdirSync(OUT_DIR, { recursive: true }); +} + +const temp = SAMPLE.replace(".wav", "").split("\\"); +const sampleName = temp.at(-1); +const OUTPUT = path.join(OUT_DIR, sampleName); +const SOURCE = path.join(SOURCE_DIR, sampleName); +if (!fs.existsSync(OUTPUT)) { + fs.mkdirSync(OUTPUT, { recursive: true }); +} +if (!fs.existsSync(SOURCE)) { + fs.mkdirSync(SOURCE, { recursive: true }); +} + +const words = fs + .readFileSync(WORDS_FILE) + .toString() + .split("\n") + .filter((w) => !w.includes("#")); +function getCookedFiles() { + return fs.readdirSync(OUTPUT).map((f) => f.replace(".ogg", "")); +} +function getSourceFiles() { + return fs.readdirSync(SOURCE).map((f) => f.replace(".wav", "")); +} + +function execCommand(command) { + return new Promise((resolve, reject) => { + exec(command, (error, stdout, stderr) => { + if (error) { + console.error("Error running TTS: " + stderr); + reject(stderr); + } + resolve(stdout); + }); + }); +} +async function runTTS(word) { + const ttsComamnd = TTS_COMMAND.replace("$word", word) + .replace("$model", TTS_MODEL) + .replace("$sample", SAMPLE) + .replace("$outPath", `${path.join(SOURCE, word + ".wav")}`); + console.log(`Running tts for ${word} using ${ttsComamnd}`); + await execCommand(ttsComamnd); +} +async function doCommit() { + const tempLookup = getCookedFiles().reduce((acc, file) => { + acc[file] = true; + return acc; + }, {}); + + for (const stagedFile of getSourceFiles()) { + if (!tempLookup[stagedFile]) { + const ffmpegCommand = FFMPEG_COMMAND.replace("$file", path.join(SOURCE, stagedFile + ".wav")).replace( + "$outPath", + path.join(OUTPUT, stagedFile + ".ogg") + ); + console.log(`Running ${ffmpegCommand}`); + await execCommand(ffmpegCommand); + } + // Lesson learnt: Do NOT delete the source... + // fs.rmSync(path.join(STAGE, stagedFile + ".wav")); + } + + console.log("All files committed"); +} + +async function main() { + await doCommit(); + + const tempLookup = getSourceFiles().reduce((acc, file) => { + acc[file] = true; + return acc; + }, {}); + const wordToTTS = []; + for (let word of words) { + word = word.trim(); + if (word) { + if (!tempLookup[word]) { + wordToTTS.push(word); + } else { + console.log(`Skipping ${word} since it exists in either stage or out`); + } + } + } + + for (const word of wordToTTS) { + await runTTS(word); + } + await doCommit(); +} + +main(); diff --git a/WeakAuras/Projects/RaiderSA/buildscript/package.json b/WeakAuras/Projects/RaiderSA/buildscript/package.json new file mode 100644 index 0000000..09b1d4b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/buildscript/package.json @@ -0,0 +1,12 @@ +{ + "name": "buildscript", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/WeakAuras/Projects/RaiderSA/buildscript/words2luaArr.js b/WeakAuras/Projects/RaiderSA/buildscript/words2luaArr.js new file mode 100644 index 0000000..5d78c73 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/buildscript/words2luaArr.js @@ -0,0 +1,27 @@ +const fs = require("fs"); +const path = require("path"); + +const WORDS_FILE = path.join(__dirname, "..", "words.txt"); + +const words = fs.readFileSync(WORDS_FILE).toString().split("\n"); + +const luaArr = []; +luaArr.push("aura_env.spells = {"); + +for (let line = 0; line < words.length; line++) { + const lineContent = words[line].trim(); + if (/^#\d+/.test(lineContent)) { + const [_, id, mode] = /^#(\d+)!(\d)/.exec(lineContent); + + const spellname = words[line + 1].trim(); + luaArr.push(`\t[${id}] = {`); + luaArr.push(`\t\t["name"] = "${spellname}",`); + luaArr.push(`\t\t["mode"] = ${mode},`); + luaArr.push("\t},"); + } else if (lineContent.includes("##")) { + luaArr.push(`\t-- ${lineContent}`); + } +} + +luaArr.push("}"); +fs.writeFileSync(path.join(__dirname, "..", "luaarr.lua"), luaArr.join("\n")); diff --git a/WeakAuras/Projects/RaiderSA/deploy.sh b/WeakAuras/Projects/RaiderSA/deploy.sh new file mode 100644 index 0000000..560efdd --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/deploy.sh @@ -0,0 +1,4 @@ +#!/bin/sh +target="/c/Games/WoW Legion/Interface/Sounds" +cp out/*speedy* $target +for file in $(ls $target); do mv $target/$file $target/$(echo $file | sed 's/-speedy//g'); done \ No newline at end of file diff --git a/WeakAuras/Projects/RaiderSA/info.txt b/WeakAuras/Projects/RaiderSA/info.txt new file mode 100644 index 0000000..60095fb --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/info.txt @@ -0,0 +1,29 @@ +#Garothi + Fel Bombardment + Eradication + Carnage +#Felhounds + Molten Touch + Desolate Gaze + Enflame Corruption + Consuming Sphere + Siphon Corruption +Tortured Rage +Add friendly spells too + +tts --model_name "tts_models/multilingual/multi-dataset/xtts_v2" --language_idx en --text "Felhounds" +tts.voice_conversion_to_file(source_wav="my/source.wav", target_wav="my/target.wav", file_path="output.wav") + +# t is duration!! +ffmpeg -ss 00:16:12 -i input.mp4 -t 00:00:48 -q:a 0 -map a sample.wav + +tts --model_name tts_models/multilingual/multi-dataset/xtts_v2 --text "" --speaker_wav sample.wav --language_idx en + +My son, the day you were born, the very forests of Lordaeron whispered the name Arthas. My child, I watched with pride as you grew into a weapon of righteousness. Remember, our line has always ruled with wisdom and strength. And I know you will show restraint when exercising your great power. But the truest victory, my son, is stirring the hearts of your people. I tell you this, for when my days have come to an end, you shall be King. + +Maybe have sets of enabled spells per spec + +/run PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Demolish-speedy.wav", "Master") + + +tts --text "My son, the day you were born, the very forests of Lordaeron whispered the name Arthas. My child, I watched with pride as you grew into a weapon of righteousness. Remember, our line has always ruled with wisdom and strength. And I know you will show restraint when exercising your great power. But the truest victory, my son, is stirring the hearts of your people. I tell you this, for when my days have come to an end, you shall be King." --model_name tts_models/multilingual/multi-dataset/xtts_v2 --speaker_wav sample.wav --language_idx en \ No newline at end of file diff --git a/WeakAuras/Projects/RaiderSA/luaarr.lua b/WeakAuras/Projects/RaiderSA/luaarr.lua new file mode 100644 index 0000000..a65f17b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/luaarr.lua @@ -0,0 +1,915 @@ +aura_env.spells = { + -- ##################################################################################### + -- ### DEBUG ### + -- ##################################################################################### + -- ##774!3 + -- ##33763!3 + -- ##5185!3 + -- ##################################################################################### + -- ### Antorus ### + -- ##################################################################################### + -- ########################################## + -- ## Garothi ## + -- ########################################## + [244410] = { + ["name"] = "Decimation", + ["mode"] = 3, + }, + [246220] = { + ["name"] = "Fel Bombardment", + ["mode"] = 3, + }, + [244969] = { + ["name"] = "Eradication", + ["mode"] = 3, + }, + [244106] = { + ["name"] = "Carnage", + ["mode"] = 3, + }, + -- ########################################## + -- ## Felhounds ## + -- ########################################## + [244086] = { + ["name"] = "Molten Touch", + ["mode"] = 3, + }, + [244768] = { + ["name"] = "Desolate Gaze", + ["mode"] = 3, + }, + [244057] = { + ["name"] = "Enflame Corruption", + ["mode"] = 3, + }, + [244131] = { + ["name"] = "Consuming Sphere", + ["mode"] = 3, + }, + [244056] = { + ["name"] = "Siphon Corruption", + ["mode"] = 3, + }, + -- ########################################## + -- ## High Command ## + -- ########################################## + [245161] = { + ["name"] = "Entropic Mine", + ["mode"] = 3, + }, + [245546] = { + ["name"] = "Summon Reinforcements", + ["mode"] = 3, + }, + -- ########################################## + -- ## Portal Keeper ## + -- ########################################## + [244016] = { + ["name"] = "Reality Tear", + ["mode"] = 3, + }, + [243983] = { + ["name"] = "Collapsing World", + ["mode"] = 3, + }, + [244000] = { + ["name"] = "Felstorm Barrage", + ["mode"] = 3, + }, + -- ########################################## + -- ## Imonar ## + -- ########################################## + [247552] = { + ["name"] = "Sleep Canister", + ["mode"] = 3, + }, + [247367] = { + ["name"] = "Shock Lance", + ["mode"] = 3, + }, + [248068] = { + ["name"] = "Empowered Pulse Grenade", + ["mode"] = 3, + }, + [247376] = { + ["name"] = "Pulse Grenade", + ["mode"] = 3, + }, + [247716] = { + ["name"] = "Charged Blasts", + ["mode"] = 3, + }, + [247687] = { + ["name"] = "Sever", + ["mode"] = 3, + }, + [248070] = { + ["name"] = "Empowered Shrapnel Blast", + ["mode"] = 3, + }, + [250255] = { + ["name"] = "Empowered Shock Lance", + ["mode"] = 3, + }, + -- ########################################## + -- ## Kin'garoth ## + -- ########################################## + [254919] = { + ["name"] = "Forging Strike", + ["mode"] = 3, + }, + [254926] = { + ["name"] = "Reverberating Strike", + ["mode"] = 3, + }, + [246840] = { + ["name"] = "Ruiner", + ["mode"] = 3, + }, + [246779] = { + ["name"] = "Diabolic Bomb", + ["mode"] = 3, + }, + [246706] = { + ["name"] = "Demolish", + ["mode"] = 3, + }, + [246664] = { + ["name"] = "Annihilation", + ["mode"] = 3, + }, + -- ########################################## + -- ## Varimathras ## + -- ########################################## + [243960] = { + ["name"] = "Shadow Strike", + ["mode"] = 3, + }, + [243961] = { + ["name"] = "Misery", + ["mode"] = 3, + }, + [244042] = { + ["name"] = "Marked Prey", + ["mode"] = 3, + }, + [244093] = { + ["name"] = "Necrotic Embrace", + ["mode"] = 3, + }, + [248732] = { + ["name"] = "Echoes of Doom", + ["mode"] = 3, + }, + [243999] = { + ["name"] = "Dark Fissure", + ["mode"] = 3, + }, + -- ########################################## + -- ## Coven ## + -- ########################################## + [253189] = { + ["name"] = "Shivan Pact", + ["mode"] = 3, + }, + [244899] = { + ["name"] = "Fiery Strike", + ["mode"] = 1, + }, + [245627] = { + ["name"] = "Whirling Saber", + ["mode"] = 1, + }, + [245281] = { + ["name"] = "Shadow Blades", + ["mode"] = 3, + }, + [245586] = { + ["name"] = "Chilled Blood", + ["mode"] = 2, + }, + -- ########################################## + -- ## Aggramar ## + -- ########################################## + [254452] = { + ["name"] = "Ravenous Blaze", + ["mode"] = 3, + }, + [244693] = { + ["name"] = "Wake of Flame", + ["mode"] = 3, + }, + [244291] = { + ["name"] = "Foe Braker", + ["mode"] = 1, + }, + [244033] = { + ["name"] = "Flame Rend", + ["mode"] = 1, + }, + [247079] = { + ["name"] = "Empowered Flame Rend", + ["mode"] = 1, + }, + [245983] = { + ["name"] = "Flare", + ["mode"] = 3, + }, + [246037] = { + ["name"] = "Empowered Flare", + ["mode"] = 3, + }, + -- ########################################## + -- ## Argus ## + -- ########################################## + [256457] = { + ["name"] = "Cone of Death", + ["mode"] = 3, + }, + [248396] = { + ["name"] = "Soulblight", + ["mode"] = 3, + }, + [257296] = { + ["name"] = "Tortured Rage", + ["mode"] = 3, + }, + [251570] = { + ["name"] = "Soulbomb", + ["mode"] = 3, + }, + -- ###################################################################################### + -- ### DUNGEONS ### + -- ###################################################################################### + -- ########################################## + -- ## Black Rook Hold ## + -- ########################################## + [225573] = { + ["name"] = "Dark Mending", + ["mode"] = 3, + }, + [200105] = { + ["name"] = "Sacrifice Soul", + ["mode"] = 3, + }, + [225732] = { + ["name"] = "Strike Down", + ["mode"] = 3, + }, + [194996] = { + ["name"] = "Soul Echoes", + ["mode"] = 3, + }, + [195254] = { + ["name"] = "Swirling Scythe", + ["mode"] = 3, + }, + [194956] = { + ["name"] = "Reap Soul", + ["mode"] = 3, + }, + [200248] = { + ["name"] = "Arcane Blitz", + ["mode"] = 3, + }, + [200345] = { + ["name"] = "Arrow Barrage", + ["mode"] = 3, + }, + [200291] = { + ["name"] = "Knife Dance", + ["mode"] = 3, + }, + [200261] = { + ["name"] = "Bonebreaking Strike", + ["mode"] = 3, + }, + [197418] = { + ["name"] = "Vengeful Shear", + ["mode"] = 3, + }, + [201139] = { + ["name"] = "Brutal Assault", + ["mode"] = 3, + }, + [198245] = { + ["name"] = "Brutal Haymaker", + ["mode"] = 3, + }, + [198079] = { + ["name"] = "Hateful Gaze", + ["mode"] = 3, + }, + -- ########################################## + -- ## Cathedral of Eternal Night ## + -- ########################################## + [241937] = { + ["name"] = "Shadow Wall", + ["mode"] = 3, + }, + [238543] = { + ["name"] = "Demonic Mending", + ["mode"] = 3, + }, + [242792] = { + ["name"] = "Vile Roots", + ["mode"] = 3, + }, + [236627] = { + ["name"] = "Floral Fulmination", + ["mode"] = 3, + }, + [239217] = { + ["name"] = "Blinding Glare", + ["mode"] = 3, + }, + [237726] = { + ["name"] = "Scornful Gaze", + ["mode"] = 3, + }, + [190620] = { + ["name"] = "Felblaze Orb", + ["mode"] = 3, + }, + [239268] = { + ["name"] = "Venom Storm", + ["mode"] = 3, + }, + [234107] = { + ["name"] = "Chaotic Energy", + ["mode"] = 3, + }, + [236543] = { + ["name"] = "Felsoul Cleave", + ["mode"] = 3, + }, + [238315] = { + ["name"] = "Shadow Sweep", + ["mode"] = 3, + }, + [243168] = { + ["name"] = "Demonic Upheaval", + ["mode"] = 3, + }, + -- ########################################## + -- ## Court of Stars ## + -- ########################################## + [210261] = { + ["name"] = "Sound Alarm", + ["mode"] = 3, + }, + [215204] = { + ["name"] = "Hinder", + ["mode"] = 3, + }, + [209027] = { + ["name"] = "Quelling Strike", + ["mode"] = 3, + }, + [209516] = { + ["name"] = "Mana Fang", + ["mode"] = 3, + }, + [209485] = { + ["name"] = "Drain Magic", + ["mode"] = 3, + }, + [209404] = { + ["name"] = "Seal Magic", + ["mode"] = 3, + }, + [209495] = { + ["name"] = "Charged Smash", + ["mode"] = 3, + }, + [225100] = { + ["name"] = "Charging Station", + ["mode"] = 3, + }, + [219488] = { + ["name"] = "Streetsweeper", + ["mode"] = 3, + }, + [212784] = { + ["name"] = "Eye Storm", + ["mode"] = 3, + }, + [211464] = { + ["name"] = "Fel Detonation", + ["mode"] = 3, + }, + [207980] = { + ["name"] = "Disintegration Beam", + ["mode"] = 3, + }, + [207979] = { + ["name"] = "Shockwave", + ["mode"] = 3, + }, + [209628] = { + ["name"] = "Piercing Gale", + ["mode"] = 3, + }, + [209676] = { + ["name"] = "Slicing Maelstrom", + ["mode"] = 3, + }, + -- ########################################## + -- ## Darkheart Thicket ## + -- ########################################## + [200631] = { + ["name"] = "Unnerving Screech", + ["mode"] = 3, + }, + [200580] = { + ["name"] = "Maddening Roar", + ["mode"] = 3, + }, + [191326] = { + ["name"] = "Breath of Corruption", + ["mode"] = 3, + }, + [201400] = { + ["name"] = "Dread Inferno", + ["mode"] = 3, + }, + [200238] = { + ["name"] = "Feed on the Weak", + ["mode"] = 3, + }, + -- ########################################## + -- ## Eye of Azshara ## + -- ########################################## + [195172] = { + ["name"] = "Mighty Slam", + ["mode"] = 3, + }, + [195129] = { + ["name"] = "Thundering Stomp", + ["mode"] = 3, + }, + [195046] = { + ["name"] = "Rejuvenating Waters", + ["mode"] = 3, + }, + [162135] = { + ["name"] = "Bellowing Roar", + ["mode"] = 3, + }, + [197105] = { + ["name"] = "Polymorh Fish", + ["mode"] = 3, + }, + [193597] = { + ["name"] = "Static Nova", + ["mode"] = 3, + }, + [193611] = { + ["name"] = "Focused Lightning", + ["mode"] = 3, + }, + [196129] = { + ["name"] = "Spray Sand", + ["mode"] = 3, + }, + [196144] = { + ["name"] = "Sandstorm", + ["mode"] = 3, + }, + [196296] = { + ["name"] = "Roiling Storm", + ["mode"] = 3, + }, + [196290] = { + ["name"] = "Chaotic Tempest", + ["mode"] = 3, + }, + [191848] = { + ["name"] = "Rampage", + ["mode"] = 3, + }, + -- ########################################## + -- ## Halls of Valor ## + -- ########################################## + [198605] = { + ["name"] = "Thunderstrike", + ["mode"] = 3, + }, + [198888] = { + ["name"] = "Lightning Breath", + ["mode"] = 3, + }, + [191284] = { + ["name"] = "Horn of Valor", + ["mode"] = 3, + }, + [198934] = { + ["name"] = "Rune of Healing", + ["mode"] = 3, + }, + [215433] = { + ["name"] = "Holy Radiance", + ["mode"] = 3, + }, + [199210] = { + ["name"] = "Penetrating Shot", + ["mode"] = 3, + }, + [191976] = { + ["name"] = "Arcing Bolt", + ["mode"] = 3, + }, + [192305] = { + ["name"] = "Eye of the Storm", + ["mode"] = 3, + }, + [192307] = { + ["name"] = "Sanctify", + ["mode"] = 3, + }, + [192048] = { + ["name"] = "Expel Light", + ["mode"] = 3, + }, + [192018] = { + ["name"] = "Shield of Light", + ["mode"] = 3, + }, + [196512] = { + ["name"] = "Claw Frenzy", + ["mode"] = 3, + }, + [199652] = { + ["name"] = "Sever", + ["mode"] = 3, + }, + [199726] = { + ["name"] = "Unruly Yell", + ["mode"] = 3, + }, + [199674] = { + ["name"] = "Wicked Dagger", + ["mode"] = 3, + }, + [193826] = { + ["name"] = "Ragnarok", + ["mode"] = 3, + }, + [198263] = { + ["name"] = "Radiant Tempest", + ["mode"] = 3, + }, + [198072] = { + ["name"] = "Spear of Light", + ["mode"] = 3, + }, + [197961] = { + ["name"] = "Runic Band", + ["mode"] = 3, + }, + [198750] = { + ["name"] = "Surge", + ["mode"] = 3, + }, + -- ########################################## + -- ## Maw of Souls ## + -- ########################################## + [193364] = { + ["name"] = "Screams of the Dead", + ["mode"] = 3, + }, + [194442] = { + ["name"] = "Six Pound Barrel", + ["mode"] = 3, + }, + [194615] = { + ["name"] = "Sea Legs", + ["mode"] = 3, + }, + [192019] = { + ["name"] = "Lantern of Darkness", + ["mode"] = 3, + }, + [194099] = { + ["name"] = "Bile Breath", + ["mode"] = 3, + }, + [198405] = { + ["name"] = "Bone Chilling Scream", + ["mode"] = 3, + }, + [194325] = { + ["name"] = "Fragment", + ["mode"] = 3, + }, + [194216] = { + ["name"] = "Cosmic Scythe", + ["mode"] = 3, + }, + [195293] = { + ["name"] = "Debilitating Shout", + ["mode"] = 3, + }, + [185539] = { + ["name"] = "Rapid Rupture", + ["mode"] = 3, + }, + [198495] = { + ["name"] = "Torrent", + ["mode"] = 3, + }, + [202098] = { + ["name"] = "Brackwater Barrage", + ["mode"] = 3, + }, + -- ########################################## + -- ## Neltharion's Lair ## + -- ########################################## + [202181] = { + ["name"] = "Stone Gaze", + ["mode"] = 3, + }, + [226296] = { + ["name"] = "Piercing Shards", + ["mode"] = 3, + }, + [188169] = { + ["name"] = "Razor Shards", + ["mode"] = 3, + }, + [198496] = { + ["name"] = "Sunder", + ["mode"] = 3, + }, + [199176] = { + ["name"] = "Spiked Tongue", + ["mode"] = 3, + }, + [193585] = { + ["name"] = "Bound", + ["mode"] = 3, + }, + [200700] = { + ["name"] = "Landslide", + ["mode"] = 3, + }, + [200732] = { + ["name"] = "Molten Crash", + ["mode"] = 3, + }, + -- ########################################## + -- ## The Arcway ## + -- ########################################## + [211771] = { + ["name"] = "Prophecies of Doom", + ["mode"] = 3, + }, + [211037] = { + ["name"] = "Celerity Zone", + ["mode"] = 3, + }, + [195791] = { + ["name"] = "Quarantine", + ["mode"] = 3, + }, + [226285] = { + ["name"] = "Demonic Ascension", + ["mode"] = 3, + }, + [197810] = { + ["name"] = "Wicked Slam", + ["mode"] = 3, + }, + [211217] = { + ["name"] = "Arcane Slicer", + ["mode"] = 3, + }, + [211115] = { + ["name"] = "Phase Breach", + ["mode"] = 3, + }, + [196392] = { + ["name"] = "Overcharge Mana", + ["mode"] = 3, + }, + [200040] = { + ["name"] = "Nether Venom", + ["mode"] = 3, + }, + [200227] = { + ["name"] = "Tangled Web", + ["mode"] = 3, + }, + [220871] = { + ["name"] = "Unstable Mana", + ["mode"] = 3, + }, + -- ########################################## + -- ## Vault of the Wardens ## + -- ########################################## + [193069] = { + ["name"] = "Nightmares", + ["mode"] = 3, + }, + [197799] = { + ["name"] = "Unleash Fury", + ["mode"] = 3, + }, + [191735] = { + ["name"] = "Deafening Screech", + ["mode"] = 3, + }, + [190836] = { + ["name"] = "Hatred", + ["mode"] = 3, + }, + [202913] = { + ["name"] = "Fel Mortar", + ["mode"] = 3, + }, + [200898] = { + ["name"] = "Teleport", + ["mode"] = 3, + }, + [199917] = { + ["name"] = "Shadow Crash", + ["mode"] = 3, + }, + [202658] = { + ["name"] = "Drain", + ["mode"] = 3, + }, + [194945] = { + ["name"] = "Lingering Gaze", + ["mode"] = 3, + }, + [196249] = { + ["name"] = "Meteor", + ["mode"] = 3, + }, + [192631] = { + ["name"] = "Lava Wreath", + ["mode"] = 3, + }, + [197513] = { + ["name"] = "Detonating Moonglaive", + ["mode"] = 3, + }, + [189469] = { + ["name"] = "Turn Kick", + ["mode"] = 3, + }, + -- ########################################## + -- ## Seat of the Triumvirate ## + -- ########################################## + -- ########################################## + -- ## Upper Karazhan ## + -- ########################################## + [230083] = { + ["name"] = "Nullification", + ["mode"] = 3, + }, + [227267] = { + ["name"] = "Summon Volatile Energy", + ["mode"] = 3, + }, + [227254] = { + ["name"] = "Evocation", + ["mode"] = 3, + }, + [229662] = { + ["name"] = "Fel Breath", + ["mode"] = 3, + }, + [36247] = { + ["name"] = "Fel Fireball", + ["mode"] = 3, + }, + [227628] = { + ["name"] = "Piercing Missiles", + ["mode"] = 3, + }, + [227615] = { + ["name"] = "Inferno Bolt", + ["mode"] = 3, + }, + [227592] = { + ["name"] = "Frostbite", + ["mode"] = 3, + }, + [228269] = { + ["name"] = "Flame Wreath", + ["mode"] = 3, + }, + [227779] = { + ["name"] = "Ceaseless Winter", + ["mode"] = 3, + }, + [229706] = { + ["name"] = "Leech Life", + ["mode"] = 3, + }, + [229714] = { + ["name"] = "Consume Magic", + ["mode"] = 3, + }, + [229159] = { + ["name"] = "Chaotic Shadows", + ["mode"] = 3, + }, + [229083] = { + ["name"] = "Burning Blast", + ["mode"] = 3, + }, + [229151] = { + ["name"] = "Disintegrate", + ["mode"] = 3, + }, + -- ########################################## + -- ## Lower Karazhan ## + -- ########################################## + [228221] = { + ["name"] = "Severe Dusting", + ["mode"] = 3, + }, + [228225] = { + ["name"] = "Sultry Heat", + ["mode"] = 3, + }, + [232153] = { + ["name"] = "Kara Kazham", + ["mode"] = 3, + }, + [227987] = { + ["name"] = "Dinner Bell", + ["mode"] = 3, + }, + [228025] = { + ["name"] = "Heat Wave", + ["mode"] = 3, + }, + [227568] = { + ["name"] = "Burning Leg Sweep", + ["mode"] = 3, + }, + [227776] = { + ["name"] = "Magic Magnificent", + ["mode"] = 3, + }, + [227966] = { + ["name"] = "Flashlight", + ["mode"] = 3, + }, + [228279] = { + ["name"] = "Shadow Rejuvenation", + ["mode"] = 3, + }, + [228278] = { + ["name"] = "Demoralizing Shout", + ["mode"] = 3, + }, + [228277] = { + ["name"] = "Shackles of Servitude", + ["mode"] = 3, + }, + [226316] = { + ["name"] = "Shadow Bolt Volley", + ["mode"] = 3, + }, + [227508] = { + ["name"] = "Mass Repentance", + ["mode"] = 3, + }, + [227793] = { + ["name"] = "Sacred Ground", + ["mode"] = 3, + }, + [227463] = { + ["name"] = "Whirling Edge", + ["mode"] = 3, + }, + [227646] = { + ["name"] = "Iron Whirlwind", + ["mode"] = 3, + }, + [227672] = { + ["name"] = "Will Breaker", + ["mode"] = 3, + }, + [227404] = { + ["name"] = "Intangible Presence", + ["mode"] = 3, + }, + [227493] = { + ["name"] = "Mortal Strike", + ["mode"] = 3, + }, + [228852] = { + ["name"] = "Shared Suffering", + ["mode"] = 3, + }, + [228837] = { + ["name"] = "#Bellowing Roar", + ["mode"] = 3, + }, +} diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Annihilation.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Annihilation.ogg new file mode 100644 index 0000000..af0688d --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Annihilation.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0448cc4136871a2d479ad6a59328334a70cb682501bf492b6d2c24ad6cf0322c +size 8006 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Arcane Blitz.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Arcane Blitz.ogg new file mode 100644 index 0000000..6d37228 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Arcane Blitz.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d433f5e62fa3b337b9d6a54978d708947949a77cea9fd9001608ae95287e5d4e +size 9757 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Arcane Slicer.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Arcane Slicer.ogg new file mode 100644 index 0000000..db543f3 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Arcane Slicer.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:430eb78391bf377bee39fcf9c7b8fbe294849eca4e73e66e3dd908df37a72cee +size 8548 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Arcing Bolt.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Arcing Bolt.ogg new file mode 100644 index 0000000..54fcc1f --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Arcing Bolt.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ceaec38e8946a2390ec922ee31a993a7f76de1c3baa38a404aafe95d4acf20de +size 8046 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Arrow Barrage.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Arrow Barrage.ogg new file mode 100644 index 0000000..a8d481c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Arrow Barrage.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0dd5d6333fc4a391176b58f5266a97778825c81f4e0a4fbc0ccbd88f0eac4d67 +size 8269 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Bellowing Roar.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Bellowing Roar.ogg new file mode 100644 index 0000000..f16df32 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Bellowing Roar.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf80680908965585fcd0fe8e1230ba4f2d69670af8866a2e2c125645eed82b01 +size 7378 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Bile Breath.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Bile Breath.ogg new file mode 100644 index 0000000..776e4c1 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Bile Breath.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27b9c261d93b784aade72a4527b05cb66a0e8e51b52f10a77bc31401a58f925a +size 7306 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Blinding Glare.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Blinding Glare.ogg new file mode 100644 index 0000000..ba45c08 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Blinding Glare.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b74a5932deafe257afd7d3058985493574b0d03377aa244adcbcf5c495032de8 +size 7848 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Bone Chilling Scream.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Bone Chilling Scream.ogg new file mode 100644 index 0000000..516c77a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Bone Chilling Scream.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:663725b20636e6af00a97a293b3a93cbf8e03f8c47831fb0237e9a4fff235209 +size 10307 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Bonebreaking Strike.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Bonebreaking Strike.ogg new file mode 100644 index 0000000..d65eac6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Bonebreaking Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c40e18e647b70a204ea10c1fab75aa016299af78bda044e8fec2fe5da996ac74 +size 8897 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Bound.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Bound.ogg new file mode 100644 index 0000000..bc780da --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Bound.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5957ed5f6d2abd0977fa4edcf10dee995035c1e961fb5cea2d7f9eb72252612 +size 6400 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Brackwater Barrage.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Brackwater Barrage.ogg new file mode 100644 index 0000000..67065a8 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Brackwater Barrage.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9518ebe459940b58c9077d5693ee357f1024f87140e86bc62a0856111f426784 +size 8755 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Breath of Corruption.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Breath of Corruption.ogg new file mode 100644 index 0000000..f62fb59 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Breath of Corruption.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d43c566d45e45a51117e0a56d4d5711e23b92c8f06c440af28bd1f741fa40e6 +size 9949 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Brutal Assault.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Brutal Assault.ogg new file mode 100644 index 0000000..da9260e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Brutal Assault.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08a79b3ffcbc1f41d2f07376943c26ffa16b8025315cc1cc02de25241d63b462 +size 8101 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Brutal Haymaker.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Brutal Haymaker.ogg new file mode 100644 index 0000000..5a7eff8 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Brutal Haymaker.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6520311f28f18ac055a60b11d343b7bf175c712133e6917746349164778f7fe +size 8365 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Burning Blast.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Burning Blast.ogg new file mode 100644 index 0000000..33e034a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Burning Blast.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f21e338bb33bff5078a88e40054120ce89f1b7dba3b4c0e5a7554217daf87e64 +size 8360 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Burning Leg Sweep.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Burning Leg Sweep.ogg new file mode 100644 index 0000000..a181685 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Burning Leg Sweep.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:677b3426466799fd5326dead9fd4ab305b5739b190294eda47b68093c29b61e6 +size 9532 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Carnage.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Carnage.ogg new file mode 100644 index 0000000..adaf455 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Carnage.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86d704314789840e9ef633d79e747bd23d934ece2ee4f137e8cc2862fb308ed4 +size 6172 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Ceaseless Winter.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Ceaseless Winter.ogg new file mode 100644 index 0000000..4b86474 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Ceaseless Winter.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46feb2669442e57e66820ff6cc9408685fca16670fe5565fe31c46f4296b63fa +size 10416 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Celerity Zone.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Celerity Zone.ogg new file mode 100644 index 0000000..7ebf8b2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Celerity Zone.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:764173e5a84924f6757faab428d865099efb11b80bfa06ef152b347620c6a805 +size 8144 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Chaotic Energy.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Chaotic Energy.ogg new file mode 100644 index 0000000..4ad2885 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Chaotic Energy.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a4fb420a4fa60be0161b7a35a1b198ea90cdb5f9008c61b677512ee7aa04cd2 +size 8727 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Chaotic Shadows.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Chaotic Shadows.ogg new file mode 100644 index 0000000..a103804 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Chaotic Shadows.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89a552a850e96a9ba19cb2bba3a1f03988ad3f47588e763909c6397c4444be52 +size 9207 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Chaotic Tempest.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Chaotic Tempest.ogg new file mode 100644 index 0000000..3655d8a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Chaotic Tempest.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ac04f3d08ef09cb623323f07260af51a2f668dc37747bdaa52a9b53efb42ec1 +size 8721 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Charged Blasts.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Charged Blasts.ogg new file mode 100644 index 0000000..5c0413b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Charged Blasts.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d339230897f22e35ef0901cb7860bba97cd30f758397c42fa77ec4fde6f51c7 +size 9825 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Charged Smash.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Charged Smash.ogg new file mode 100644 index 0000000..b5ffcbe --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Charged Smash.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cb0a7eb134cb73a8bfe1ca4b8480ef6ca92d9e36215fefe4d8412391d4df932 +size 8771 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Charging Station.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Charging Station.ogg new file mode 100644 index 0000000..3837a4a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Charging Station.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d63a5b58307959b11c8a3044e63a25c30d244e267681ce14142f2d4acc14cdd +size 9340 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Chilled Blood.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Chilled Blood.ogg new file mode 100644 index 0000000..a8ad5ad --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Chilled Blood.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e88adc45e79d9d16feb0ec705f5548af51ed1fc9cd57a0b4e753510bebf1f93 +size 8086 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Claw Frenzy.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Claw Frenzy.ogg new file mode 100644 index 0000000..08071c9 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Claw Frenzy.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69a577dc896e640b710b13220aacfb1973faac7948fd418f77a8fe3cdbc5ee7a +size 9510 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Collapsing World.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Collapsing World.ogg new file mode 100644 index 0000000..682e742 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Collapsing World.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6e72e6ee375457bb5732876ae393b7efbd79a3f6e6d6c21f9db4674ccfd7cc3 +size 9112 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Cone of Death.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Cone of Death.ogg new file mode 100644 index 0000000..69fc425 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Cone of Death.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c7f05012aed10b807c2b595733e30c33d79aeff8dd527ff830b038bbd0094ff +size 8235 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Consume Magic.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Consume Magic.ogg new file mode 100644 index 0000000..97de3c0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Consume Magic.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77d6d554713ba383aa62608a3e2c85e3ef780b64cb6e5652e94e5e1360b2aa42 +size 9319 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Consuming Sphere.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Consuming Sphere.ogg new file mode 100644 index 0000000..db266e5 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Consuming Sphere.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f469a7809cae85d66ee6917245547dd96b3c18677a6599baa337782718c6010 +size 10503 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Cosmic Scythe.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Cosmic Scythe.ogg new file mode 100644 index 0000000..360029b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Cosmic Scythe.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46564d78cc2f22a1eed5efb4ac08c5f1414447ff0e9babea34aee4d94bdb9c17 +size 8261 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Dark Mending.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Dark Mending.ogg new file mode 100644 index 0000000..aab3dfb --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Dark Mending.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3969483519b91fec68afa48bd2e505adb30313d3f8038e403824345008b50fb +size 8737 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Deafening Screech.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Deafening Screech.ogg new file mode 100644 index 0000000..609d7b3 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Deafening Screech.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9aea4f5def330ab41564c4aa6a0670b0ab219bccee8eb556c58bf1749d14905 +size 11677 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Debilitating Shout.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Debilitating Shout.ogg new file mode 100644 index 0000000..c83a958 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Debilitating Shout.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a689f753a35a0456006befcc7e081be5dd4a51fbb9128764306b14a4310fcadf +size 9346 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Decimation.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Decimation.ogg new file mode 100644 index 0000000..73cdcac --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Decimation.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09faaf909ebc7d378adb3383d56b51f0c47fdb7c778b5a27b208419140cfbd8c +size 8888 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Demolish.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Demolish.ogg new file mode 100644 index 0000000..afce8d0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Demolish.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e8c4ad19e8f60c55b390368b1998686830397acc6275028676caf44033a1ce3 +size 7922 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Demonic Ascension.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Demonic Ascension.ogg new file mode 100644 index 0000000..8a4a77c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Demonic Ascension.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3aaeb52804371dc6d77093f94e2ede99f9c2f8b498b5f5d977eb618e826b20bb +size 10089 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Demonic Mending.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Demonic Mending.ogg new file mode 100644 index 0000000..53525c8 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Demonic Mending.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa2260b7576e7527aae2569db67e571123fbad3d7efffcab88a019b8cda5a421 +size 9291 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Demonic Upheaval.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Demonic Upheaval.ogg new file mode 100644 index 0000000..1fe1201 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Demonic Upheaval.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e765691215d53b40d370ac3c7b5094c741ef35e6f1a3ced9192cb46fe6a2812 +size 10042 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Demoralizing Shout.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Demoralizing Shout.ogg new file mode 100644 index 0000000..dbd63c7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Demoralizing Shout.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b2efefab5492fc46403e2f989c6bae7eef8b46fa5b5644b65a5fb22b1be83a3 +size 10404 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Desolate Gaze.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Desolate Gaze.ogg new file mode 100644 index 0000000..17c61a4 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Desolate Gaze.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d1a8e18977709da21002e64e5dc499c9a9f34d988e95a68d07dadb04dba77ad +size 9232 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Detonating Moonglaive.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Detonating Moonglaive.ogg new file mode 100644 index 0000000..ba0d91b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Detonating Moonglaive.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29e28db9877a4211b2dca7a3a87a5ae82748ef6d40e8c88f6fefe9b6ad4cace2 +size 9608 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Diabolic Bomb.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Diabolic Bomb.ogg new file mode 100644 index 0000000..f23c675 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Diabolic Bomb.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca0a2f706d18dacb22a402d3aba8c8cd54f9e9c0cbacc68860b9be5ee508dcd6 +size 10495 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Dinner Bell.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Dinner Bell.ogg new file mode 100644 index 0000000..6fd7a70 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Dinner Bell.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f61d84ed3e1e539e45745438192ecbd9333a0dcd5bebbf478f5081a3c5583e1 +size 7376 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Disintegrate.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Disintegrate.ogg new file mode 100644 index 0000000..b95bcfd --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Disintegrate.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8afee1b8557bbe934ba2167884a65d68244fb8c9f524c6d6a2a7642cf9cf78a4 +size 7740 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Disintegration Beam.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Disintegration Beam.ogg new file mode 100644 index 0000000..9b12c77 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Disintegration Beam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:268cd1f353bc6d5af42455f6f31dd14411516599247c31c1f1ab781c5c2087cb +size 12271 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Drain Magic.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Drain Magic.ogg new file mode 100644 index 0000000..81a9118 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Drain Magic.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba3fe4f38a741ddb24e284bdfd7a25f85d8ba0497ca68e31e62d0f36c0b43494 +size 7834 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Drain.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Drain.ogg new file mode 100644 index 0000000..93ff71d --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Drain.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:476988f167e783c2905b47bc0df2f8b77f6763fb2e2c1dec3a57b282c9fe31b3 +size 6888 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Dread Inferno.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Dread Inferno.ogg new file mode 100644 index 0000000..30f475a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Dread Inferno.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8e7715f625fbdfe7d09b0b21ac19699af56b6a8c45e6c6636a7a4595c6bde8e +size 9532 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Echoes of Doom.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Echoes of Doom.ogg new file mode 100644 index 0000000..1b67459 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Echoes of Doom.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53044903dc7d919bb050e8697c8f09b3d2e47a4df2d75ac5fda9add30deb1187 +size 8698 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Empowered Flame Rend.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Empowered Flame Rend.ogg new file mode 100644 index 0000000..b73a577 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Empowered Flame Rend.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a514f71cd4b0b085483ab84cd4d55a02a30b50543fda55c8537938dcd25899ff +size 9494 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Empowered Flare.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Empowered Flare.ogg new file mode 100644 index 0000000..a9d8119 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Empowered Flare.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0a37e9668055b97c4b2cacb35c1ae54e919754522cf833b009d5cb2f98a4581 +size 8797 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Empowered Pulse Grenade.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Empowered Pulse Grenade.ogg new file mode 100644 index 0000000..844459e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Empowered Pulse Grenade.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a600d779929163f6b59357d47c1e6af7184be23637aac6ab751cdf5423334b52 +size 10431 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Empowered Shock Lance.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Empowered Shock Lance.ogg new file mode 100644 index 0000000..beb66d9 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Empowered Shock Lance.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57c055e3331fd658ad58a1adda5292fd0c4e30611731d2cccbe096eb6a62c4a8 +size 12310 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Empowered Shrapnel Blast.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Empowered Shrapnel Blast.ogg new file mode 100644 index 0000000..374b929 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Empowered Shrapnel Blast.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:513d360ba9222a9f992b282f31e671d20b1979094f5eb5ad2c284f883dac9494 +size 11974 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Enflame Corruption.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Enflame Corruption.ogg new file mode 100644 index 0000000..1955eda --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Enflame Corruption.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d72ad90b699b1baad5ae8410e230b4efdbcb016664a24f341a43aa30f1a8e44b +size 10831 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Entropic Mine.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Entropic Mine.ogg new file mode 100644 index 0000000..c69f069 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Entropic Mine.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3397e3f083022342df56b7ed2fb9e3bdf5fa8da2e72a78287047cb96741dadae +size 9015 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Eradication.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Eradication.ogg new file mode 100644 index 0000000..e514dfc --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Eradication.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6af216e0179a8a56029e5c6c41f0e48fbeba28a4030bd99954b115d041d2deef +size 9002 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Evocation.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Evocation.ogg new file mode 100644 index 0000000..7c3b383 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Evocation.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca2e786edae7997d8e5dc3acf21b5964094dac581f996acdb4fce8817183ab84 +size 8243 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Expel Light.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Expel Light.ogg new file mode 100644 index 0000000..f9f5bf2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Expel Light.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29cfb5580ce9741f7265af7a0f6e2337747a5fcd6a58c30973ed8214da4bb6b0 +size 10264 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Eye Storm.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Eye Storm.ogg new file mode 100644 index 0000000..6db50a6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Eye Storm.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5f7cd2198c3c1bc57aa4a2538d884f91c162099ebf3806bb2e3f7cef766f7ab +size 7521 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Eye of the Storm.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Eye of the Storm.ogg new file mode 100644 index 0000000..39589f3 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Eye of the Storm.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:efec128f27cbd7da06cda14e0ff3b646e47c910fa2d83dc084acef8adb19d30f +size 8500 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Feed on the Weak.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Feed on the Weak.ogg new file mode 100644 index 0000000..dae0503 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Feed on the Weak.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d68a5714c02ff6128b740b0e087f311e4fcc074bcbccfc5fb637d1f363b63b2e +size 7221 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Fel Bombardment.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Fel Bombardment.ogg new file mode 100644 index 0000000..bc97b68 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Fel Bombardment.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ca886ccae970f955ca56a39d7e041d5b892d6be4266f6c6d03474bd1f2ec3fd +size 9060 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Fel Breath.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Fel Breath.ogg new file mode 100644 index 0000000..8288d62 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Fel Breath.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:028d0b40b817b3adab3b28ce84aa3c72c468e3fc935989c8bcce43d1f52d4852 +size 6535 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Fel Detonation.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Fel Detonation.ogg new file mode 100644 index 0000000..2746f44 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Fel Detonation.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3cbd089fda41fd672e8c7240c1eac7370f797b09376ebd93cb7f7cdd38673c96 +size 8761 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Fel Fireball.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Fel Fireball.ogg new file mode 100644 index 0000000..afe8f8c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Fel Fireball.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c3861b36faa7f6bfa66ecb2a64fa7ac3270afeb828359081d4f0ae88b005e15 +size 9051 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Fel Mortar.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Fel Mortar.ogg new file mode 100644 index 0000000..b3425d6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Fel Mortar.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5fe9a9d495f2634cd06e638fb5a579f7f360e64451f1b6e3565e8fea283fea7 +size 7498 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Felblaze Orb.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Felblaze Orb.ogg new file mode 100644 index 0000000..5ba3901 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Felblaze Orb.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d00360a8e1e4e7c7ee1964e37efc22088ebc35647b4205646a88a6940f82c8e9 +size 8655 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Felsoul Cleave.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Felsoul Cleave.ogg new file mode 100644 index 0000000..4370a37 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Felsoul Cleave.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b357828394a59681412c65dbd48252c578cb3fad1946ba11ced451fe0961ca42 +size 8861 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Fiery Strike.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Fiery Strike.ogg new file mode 100644 index 0000000..37dcb28 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Fiery Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aba7d722b73de3433df043ee3edc1f33c584719c71c8db2b28b06792daae5d70 +size 7880 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Flame Rend.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Flame Rend.ogg new file mode 100644 index 0000000..83e3a5d --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Flame Rend.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d34f83694bcda6bef4742fd0e835fa9a89f075aff617d5afeaa2e7d85c1a966 +size 6728 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Flame Wreath.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Flame Wreath.ogg new file mode 100644 index 0000000..a4b5f10 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Flame Wreath.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57800dae5100fe9cd04a08348490b2c51ae9a7d766bc6ce815acc5c9fecba2c3 +size 6391 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Flare.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Flare.ogg new file mode 100644 index 0000000..ff65e2e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Flare.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf04de04a856c50626424ffdcfb7cc16e9e50bb516cf5b2f75ee52b4f319a15b +size 5802 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Flashlight.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Flashlight.ogg new file mode 100644 index 0000000..df739b6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Flashlight.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89e4054cf56599e0b21dcfba001e5222306aaebedf815337fe242adf48c71eef +size 6618 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Floral Fulmination.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Floral Fulmination.ogg new file mode 100644 index 0000000..7ed5e57 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Floral Fulmination.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90ecbcbe31bc08634d1d14b919c8203f97c9fd9765e1a5d039a84b9044b9cead +size 10994 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Focused Lightning.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Focused Lightning.ogg new file mode 100644 index 0000000..c36a2f0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Focused Lightning.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2afbdc5dd9e5b0c4f4ffd743e2d978ba68e573366bec241779ba48b7e48518fe +size 9398 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Foe Braker.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Foe Braker.ogg new file mode 100644 index 0000000..765c9f4 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Foe Braker.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa00e456ff942bd3fb6778a04d8426aa53d8f98956941160b1b048bd9072e8cb +size 8578 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Forging Strike.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Forging Strike.ogg new file mode 100644 index 0000000..88c545b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Forging Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78870d7fd89448368fe50da6ee9e59fca86dba54b707c399de13d96988acca8d +size 8444 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Fragment.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Fragment.ogg new file mode 100644 index 0000000..fa2885b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Fragment.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fc1ba386cbedbec2f076feaf39c15031ee2dc58fdfe539c9945a3bcccc0c723 +size 5601 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Frostbite.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Frostbite.ogg new file mode 100644 index 0000000..2b755d0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Frostbite.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e80872709c62f7960348bdd99af179dd92ca350268986dc23292ca1b7375d19b +size 6907 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Hateful Gaze.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Hateful Gaze.ogg new file mode 100644 index 0000000..c78845c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Hateful Gaze.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11523d8e4bdbe137aba49457759b58b058df3263afc151a63f73abd4bde3a7c6 +size 8306 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Hatred.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Hatred.ogg new file mode 100644 index 0000000..78c7fbe --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Hatred.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c1844c57ae486e0da3b0e2ef7d09409d61c56b043b6a9c034fb2673d957aa5d +size 7641 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Healing Touch.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Healing Touch.ogg new file mode 100644 index 0000000..0a3d7b7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Healing Touch.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4c21a1b6fe54db07257d5f69e96d4c6fc488f8c2ff35d8c35ab244df780f1fc +size 8160 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Heat Wave.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Heat Wave.ogg new file mode 100644 index 0000000..48f4159 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Heat Wave.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67aa6eea719d76fb3de7c6ce9f2d4ad0ae7188fb6e32ee08553bca75f2e471f8 +size 7118 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Hinder.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Hinder.ogg new file mode 100644 index 0000000..a169407 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Hinder.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6025173f52893aa3e1e2b1206bdaaf2e296e7bf9617b3ba15125b0420c3d294 +size 6558 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Holy Radiance.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Holy Radiance.ogg new file mode 100644 index 0000000..4f7c8de --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Holy Radiance.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b653fe271dfe7be727e77aab9a15de349d952f9fd55117a10ab4257cbbaaa1f5 +size 8616 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Horn of Valor.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Horn of Valor.ogg new file mode 100644 index 0000000..498c223 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Horn of Valor.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:444510bf32fbf9f0283a715a98e23eb0b0219781849339868167502713e140f9 +size 8456 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Inferno Bolt.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Inferno Bolt.ogg new file mode 100644 index 0000000..6f7ae40 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Inferno Bolt.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1c739b9108b5305948e71d1d20296bd8b5ca58159c8a322f3b8f2ebbb0b073c +size 8148 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Intangible Presence.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Intangible Presence.ogg new file mode 100644 index 0000000..516d88e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Intangible Presence.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d1b08325e197326a212a424bfd50ae525728bea7f1804e8d92332e9da88fadc +size 10966 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Iron Whirlwind.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Iron Whirlwind.ogg new file mode 100644 index 0000000..ac5c3ff --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Iron Whirlwind.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef6b365b3b64aa259cf80d501e80535153126a3c05737187f772f8543b5fc308 +size 7926 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Kara Kazham.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Kara Kazham.ogg new file mode 100644 index 0000000..0afd85f --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Kara Kazham.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffbce4acc752bd9f41f5db3c98e59b0c859c20796fee76041657ec66db00d80a +size 7926 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Knife Dance.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Knife Dance.ogg new file mode 100644 index 0000000..cbd2614 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Knife Dance.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97c3e424efee1a8abac5833f0b52772c63c9e9dabe2548296fb44dfd2b8bf190 +size 8040 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Landslide.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Landslide.ogg new file mode 100644 index 0000000..d8b31e2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Landslide.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7196b8a0ee8b4f7bf32f807ed2f93de30e4ea2920dd46f67f5c3fc30eeb2d18 +size 7812 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Lantern of Darkness.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Lantern of Darkness.ogg new file mode 100644 index 0000000..aa423ea --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Lantern of Darkness.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a2f4c04bc40a2468c768776d8ad995b2e095ef54cc71bec2b299c54ea53a31c +size 9157 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Lava Wreath.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Lava Wreath.ogg new file mode 100644 index 0000000..0b8e0ba --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Lava Wreath.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f0836d09f7e7a8f00d1cb8657855b80b43a00856292861de01741bc571c1eed +size 7422 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Leech Life.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Leech Life.ogg new file mode 100644 index 0000000..af841fa --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Leech Life.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c87cf11d87c25a7813a4480cc8095e27c7283568e8f765c1faa0ef384dedebf +size 7861 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Lifebloom.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Lifebloom.ogg new file mode 100644 index 0000000..6321476 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Lifebloom.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8841db5acffbaa9be6293b0fbe18a06704c8f2ac759e2ed673ee9918843c7d67 +size 6780 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Lightning Breath.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Lightning Breath.ogg new file mode 100644 index 0000000..718f07c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Lightning Breath.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:568a586429499f2484b3357d2d170ec8210a8503e0db2e009ef28c4084c0bde5 +size 7942 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Lingering Gaze.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Lingering Gaze.ogg new file mode 100644 index 0000000..f8079ec --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Lingering Gaze.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afe0af485004014e60ab286da9a20fb6d151f05d2306615ff21a63840d1beeff +size 8712 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Maddening Roar.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Maddening Roar.ogg new file mode 100644 index 0000000..bddce1e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Maddening Roar.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44be8e70c04ca99c08090356a75a80bae1790881ff9f379a30a306d8b736a5f8 +size 8963 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Magic Magnificent.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Magic Magnificent.ogg new file mode 100644 index 0000000..a15edf9 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Magic Magnificent.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1982173910839584987b9cae467809d5015fad99cd5ec5d35ba4cdfdc31501e +size 10944 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Mana Fang.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Mana Fang.ogg new file mode 100644 index 0000000..4c95dfb --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Mana Fang.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d38483b5522a528b2b61b37ac00381a89dfca6dd13c3ad2a8f467a499a67b03d +size 7678 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Marked Prey.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Marked Prey.ogg new file mode 100644 index 0000000..4419271 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Marked Prey.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a326e937ea815c263eac508a22ce38586f2ba289de2452add6987121ed56c7b9 +size 7985 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Mass Repentance.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Mass Repentance.ogg new file mode 100644 index 0000000..c6134c2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Mass Repentance.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77f48c4861e681f69a1e81685e073f3d5ec31694fb50126c9f24a718a287cd92 +size 8845 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Meteor.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Meteor.ogg new file mode 100644 index 0000000..271bfa4 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Meteor.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e5b758d43e6eaceac83809c50ad859bf0b16e08d38ae53231dc145a1d02c9c1 +size 7009 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Mighty Slam.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Mighty Slam.ogg new file mode 100644 index 0000000..5543769 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Mighty Slam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39e0fbec7cf384404f5ef0456378c429e23ed2894d59865effb9901737f41c99 +size 7983 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Misery.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Misery.ogg new file mode 100644 index 0000000..b6ba924 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Misery.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:529af50474216494eaeb78a52f78336ff92a901f3d21b51912cb9548607f1bb4 +size 6518 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Molten Crash.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Molten Crash.ogg new file mode 100644 index 0000000..1db7a3d --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Molten Crash.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:795261ca526fc50a7de01807dd6e21000fa4c5fde5a6f3163c2534647c51d7fd +size 8619 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Molten Touch.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Molten Touch.ogg new file mode 100644 index 0000000..c098e65 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Molten Touch.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6fea820ca90105dea4e4406dcadb9831572bf6b2b3a234a391cd7ba8d4b74233 +size 9022 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Mortal Strike.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Mortal Strike.ogg new file mode 100644 index 0000000..d0a4383 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Mortal Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05f6dfc2e70c58f9d54cd877cfa4c1a9dadbe0195cd902f3382121dfddc873bc +size 7244 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Necrotic Embrace.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Necrotic Embrace.ogg new file mode 100644 index 0000000..af73599 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Necrotic Embrace.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f23adf243127a5861d7032788e1addd749425052781cc49037defa2b23e943fb +size 10397 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Nether Venom.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Nether Venom.ogg new file mode 100644 index 0000000..255460c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Nether Venom.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7be54df847f3852a8ec82a50098b761551df27431543948151078f447b17b4db +size 8355 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Nightmares.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Nightmares.ogg new file mode 100644 index 0000000..12b73f5 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Nightmares.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47603e9205f304a053e8e0ef88193e163e933fae4154055547f50397fa5715a3 +size 8148 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Nullification.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Nullification.ogg new file mode 100644 index 0000000..1fa1a36 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Nullification.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf3383d41d8c746cccbbc9e0472dfd23efb4498f2eaeba4dfa8428e59081a567 +size 8990 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Overcharge Mana.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Overcharge Mana.ogg new file mode 100644 index 0000000..9db6dce --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Overcharge Mana.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a4a2a65590dadf1c964d00cfc1ca572128406e4420956b9f4258cd2682648cf +size 9974 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Penetrating Shot.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Penetrating Shot.ogg new file mode 100644 index 0000000..061f28f --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Penetrating Shot.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6b4bc2b49e847423d96144120e5032f851c5ec8e8bd8a47aa5498f84e5ba945 +size 8753 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Phase Breach.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Phase Breach.ogg new file mode 100644 index 0000000..a4d7ae3 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Phase Breach.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29104252ae867c7eda034c47f7a003cb682b720f80c4fe49c8da657f3e715052 +size 8558 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Piercing Gale.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Piercing Gale.ogg new file mode 100644 index 0000000..cd2fcc9 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Piercing Gale.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eaecb83e874a34e2176b9d3ecb476de2d6dcae7f0525001bb76d806957b99c17 +size 9239 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Piercing Missiles.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Piercing Missiles.ogg new file mode 100644 index 0000000..e47359b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Piercing Missiles.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f0bb6b910f5a848f81286a8381ef8a322b570c57f741bf948cf48dec010dff6 +size 9222 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Piercing Shards.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Piercing Shards.ogg new file mode 100644 index 0000000..c4ca241 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Piercing Shards.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65551b1b757d1275a6355106190ae4a94a462cfaed2df46747cada0d949c1f92 +size 9585 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Polymorh Fish.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Polymorh Fish.ogg new file mode 100644 index 0000000..a8e75b9 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Polymorh Fish.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4391b26812ecc60f5fe79a521b3f9e151f193fb1743f9bc20496904cd49f5694 +size 8735 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Prophecies of Doom.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Prophecies of Doom.ogg new file mode 100644 index 0000000..7ebf5ae --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Prophecies of Doom.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e80f3ee91072ea388278e2c35e5ad26c823e4e5a8109da871baae92dbf86681 +size 10887 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Pulse Grenade.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Pulse Grenade.ogg new file mode 100644 index 0000000..ac808eb --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Pulse Grenade.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb628941909355d47ba71f5fc636c2e5f16023cafa2f43f168c0749100d602d9 +size 7093 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Quarantine.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Quarantine.ogg new file mode 100644 index 0000000..d27e26b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Quarantine.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c25cfa1fc4596bde4bd9105c8bc450e3b7bffe022a78edd82b01b1efc7d411b8 +size 7942 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Quelling Strike.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Quelling Strike.ogg new file mode 100644 index 0000000..a374011 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Quelling Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7808b73f7d50e833e684ec48ee98cf15a33b7156197831fbf8f1ee2e1816075 +size 8034 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Radiant Tempest.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Radiant Tempest.ogg new file mode 100644 index 0000000..15a127b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Radiant Tempest.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f5854df5b3ec953d02fef01370ce4202fd5f993b7082e7a066ed14761ee0579 +size 9938 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Ragnarok.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Ragnarok.ogg new file mode 100644 index 0000000..f0c8c0f --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Ragnarok.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d1eb53bac5ae9ba2749fd9e3b4ed02599056e67d6a3d77b0197bac1a2cda116 +size 7649 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Rampage.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Rampage.ogg new file mode 100644 index 0000000..ab15ecd --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Rampage.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:563f2132aaaa6695cd2cc1af417fb799f7bf5e66b16bd919a8532234de2782ce +size 8037 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Rapid Rupture.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Rapid Rupture.ogg new file mode 100644 index 0000000..010db0a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Rapid Rupture.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69c673a9ff96ac3adeb5857f307f942702854af3b18d5e48f5c0feca47401f28 +size 9806 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Ravenous Blaze.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Ravenous Blaze.ogg new file mode 100644 index 0000000..fb5a815 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Ravenous Blaze.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a666552f49a5a855f91a8b951d623673b7bd1fd9fef9fc4834ad908c92b67232 +size 9541 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Razor Shards.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Razor Shards.ogg new file mode 100644 index 0000000..abefcec --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Razor Shards.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a7452c10a2f81b48521fc1995b3a3ea36e1a183b785b54c8be191748ac196e5 +size 8950 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Reality Tear.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Reality Tear.ogg new file mode 100644 index 0000000..7d0e2c9 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Reality Tear.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec514a6d9adea6f0b07aa6f58dfac1b5d94e59d7a0f01059b14fbc0386340cc5 +size 9376 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Reap Soul.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Reap Soul.ogg new file mode 100644 index 0000000..9a0620e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Reap Soul.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14b0c1d136468db9e47b21236e61aa335534c81bcb966e590e19475048796ccd +size 8205 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Rejuvenating Waters.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Rejuvenating Waters.ogg new file mode 100644 index 0000000..b888ad8 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Rejuvenating Waters.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:717c0a275a0e40ef9b1ee7f0250acc9d6611d7732da5b712cda4907c238b7867 +size 12325 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Rejuvenation.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Rejuvenation.ogg new file mode 100644 index 0000000..e35e0c9 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Rejuvenation.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a3a4286bac56908b6ac9f55fa68fc644372f7f2b9a0977a2ecd3b8e00e6f31b +size 9459 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Reverberating Strike.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Reverberating Strike.ogg new file mode 100644 index 0000000..f107a20 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Reverberating Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2470d104bf906bc8b2e6ce09cef0e075e905400ffdb3bfce9569487d3e7f8b36 +size 9529 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Roiling Storm.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Roiling Storm.ogg new file mode 100644 index 0000000..3f0be6e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Roiling Storm.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:808834774209b92b210b4e8f9c536b28f58d2d996ea63f618399a180d766cfb6 +size 8598 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Ruiner.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Ruiner.ogg new file mode 100644 index 0000000..f9140fc --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Ruiner.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b99f357a8318eab7a3ed4c833e86f288309e4f8bff6371947b6784ab90ced78 +size 7220 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Rune of Healing.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Rune of Healing.ogg new file mode 100644 index 0000000..122810b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Rune of Healing.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7f3cbd5d156626b8004ec5beef5855b55ff145418410d41b8b17c4fc505449d +size 8482 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Runic Band.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Runic Band.ogg new file mode 100644 index 0000000..9e6d7e1 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Runic Band.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22d1dc9019094333375abf00d19c2db48f9900bc66d90419d2ef6628ccce7382 +size 8643 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Sacred Ground.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Sacred Ground.ogg new file mode 100644 index 0000000..63efac6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Sacred Ground.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:892edfa3eded83016cf134dc9b684b72927aada71951f77d365b9584a5d3ac9b +size 9778 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Sacrifice Soul.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Sacrifice Soul.ogg new file mode 100644 index 0000000..2847be3 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Sacrifice Soul.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5db660e039884e12f346a88316c3cf1d3f96577c4f249f370787f42e4e076dff +size 10470 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Sanctify.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Sanctify.ogg new file mode 100644 index 0000000..2d69100 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Sanctify.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:532025794368e16335b5de4071c04a3be02dfec731c2511018fa6f637ebec8e3 +size 8107 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Sandstorm.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Sandstorm.ogg new file mode 100644 index 0000000..382da84 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Sandstorm.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e19a4d728dca89d6c37a2fdab9b258fad0af400d845f7621917f6a39d5fd298b +size 8278 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Scornful Gaze.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Scornful Gaze.ogg new file mode 100644 index 0000000..2f3a693 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Scornful Gaze.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7167db10e9f9e1d9588aad9d5ae38faad892468ab78218c4ba5e621d9d316042 +size 9328 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Screams of the Dead.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Screams of the Dead.ogg new file mode 100644 index 0000000..9f30a1a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Screams of the Dead.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d56464b30cad497e4cd833c995fc9736c92cae2ba382e0ee676a72c925bc7082 +size 9033 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Sea Legs.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Sea Legs.ogg new file mode 100644 index 0000000..579994e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Sea Legs.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebcaf55e379280aeaca406fb5fad1df07084dee54468ff42709c6c2023092b21 +size 7792 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Seal Magic.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Seal Magic.ogg new file mode 100644 index 0000000..7167e02 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Seal Magic.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:972c72a2939ae2ea929a9129a39f1e78a44fdb78be94f4cf5f0d9f0649964985 +size 7775 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Sever.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Sever.ogg new file mode 100644 index 0000000..21ab8d4 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Sever.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1be50dfe11b8f41f37120ab26f272e86040d380dc8dcf62b3e680fe546c07005 +size 6216 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Severe Dusting.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Severe Dusting.ogg new file mode 100644 index 0000000..ed993bb --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Severe Dusting.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d269132de9ecc705ad146fc3199eefb94fb89faf8cde78879a484280f8374f8f +size 9645 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Shackles of Servitude.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Shackles of Servitude.ogg new file mode 100644 index 0000000..0684ec1 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Shackles of Servitude.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c6bfba5009f851857a309e726869bcd09d0f0f2bcb55225564176109e6209cb +size 12352 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Blades.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Blades.ogg new file mode 100644 index 0000000..3fb766d --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Blades.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5353184cca735237122567d6edd928f02972b36690b5496c50f301b2b2735143 +size 8305 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Bolt Volley.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Bolt Volley.ogg new file mode 100644 index 0000000..65ccda0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Bolt Volley.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc1a7eb806e5b5e2c25e31cefae32d17c1ec346248a848583c2d895720b607f0 +size 8125 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Crash.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Crash.ogg new file mode 100644 index 0000000..648f0ba --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Crash.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7a63036ae1ecf8bf4ba913fb43b6126d11e179a3df77a25d779c3ba98c66936 +size 8432 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Rejuvenation.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Rejuvenation.ogg new file mode 100644 index 0000000..c9254d6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Rejuvenation.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04759eb764471e38aab4c37816ded29d58aa68d7ed9c520b78ce97470fa9ef4d +size 10768 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Strike.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Strike.ogg new file mode 100644 index 0000000..13c8cc4 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23cc92c8f2448d31a61c8c389a8c97fa74d89a51e63b88dcccbbf3935874f9d1 +size 7416 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Sweep.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Sweep.ogg new file mode 100644 index 0000000..62d064b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Sweep.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4cc91b5bfd1ebaf7ef5db0fb7358b174c2c972e9ab5d878eff8b4355d41f8b9 +size 7109 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Wall.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Wall.ogg new file mode 100644 index 0000000..ec08d18 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Shadow Wall.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4fd0b2cdb7bfbf8cdfe37124bba19fad91a7899a209dad9b921141ed8ffd504 +size 7991 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Shared Suffering.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Shared Suffering.ogg new file mode 100644 index 0000000..5dbde6b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Shared Suffering.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5835e8331d75dca049e8118a87c1e9d896e5b8aa9150b2874d0967ed0214a8d +size 9006 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Shield of Light.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Shield of Light.ogg new file mode 100644 index 0000000..b8039bc --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Shield of Light.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad7777db93dc8464171bec4f5fc135b53726b7aa6ab1521e1cf4601de6df2103 +size 8062 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Shivan Pact.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Shivan Pact.ogg new file mode 100644 index 0000000..2847d26 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Shivan Pact.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cba41c314164b18d77e7023470dcf41ad6d49eaa93a57beb42bd4b8ee18c6d7 +size 8016 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Shock Lance.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Shock Lance.ogg new file mode 100644 index 0000000..54951db --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Shock Lance.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a18349357d1133f6dd420588283bf1f5b0a972a6c842aef3e001b05b28800f7 +size 8745 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Shockwave.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Shockwave.ogg new file mode 100644 index 0000000..6d34823 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Shockwave.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b87d5808fafab78c5b2d177b8eadb628ce98ae70c4f086edeaea17dcd7f1862 +size 8941 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Siphon Corruption.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Siphon Corruption.ogg new file mode 100644 index 0000000..bee6df3 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Siphon Corruption.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:944574ee16791e7374ff3497650644602cb069f89b822ae71ec28bb5cda028cc +size 9435 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Six Pound Barrel.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Six Pound Barrel.ogg new file mode 100644 index 0000000..f6fe681 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Six Pound Barrel.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a379854d20c89018ced4896755e0b824de32439e758dce4fc4f980847e645cd +size 11461 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Sleep Canister.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Sleep Canister.ogg new file mode 100644 index 0000000..b508647 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Sleep Canister.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df8ef899645f80fa44782a42f9e0a1f1f38b3ac7f840f9724d31ccf3b3738a2d +size 9281 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Slicing Maelstrom.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Slicing Maelstrom.ogg new file mode 100644 index 0000000..7ad5eab --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Slicing Maelstrom.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4d0e48a3cd490e8addc04f23e855a1d2ae65b0801ace9f8ab50beff5bc624fa +size 10777 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Soul Echoes.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Soul Echoes.ogg new file mode 100644 index 0000000..4f9f1e3 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Soul Echoes.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ad7d32d72db4bc789540ca6151aa6265279c08574b5ef11d29bce3e2d61d56f +size 9551 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Soulblight.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Soulblight.ogg new file mode 100644 index 0000000..cd1da8d --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Soulblight.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75dfe4636c2fd1f95ea93dc5cdd64c6090f949e0029029feaf67c950a3ed0529 +size 7177 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Soulbomb.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Soulbomb.ogg new file mode 100644 index 0000000..6577e43 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Soulbomb.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:122dbca88ec331128d3a1b05889c8741a24c9f50b16449d04e9e0403c8275e40 +size 7816 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Sound Alarm.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Sound Alarm.ogg new file mode 100644 index 0000000..9eb3bc6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Sound Alarm.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d927be12de9e7a6a6069f0308b93df6a9345ab69faa07e846d29fd63ab727575 +size 7132 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Spear of Light.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Spear of Light.ogg new file mode 100644 index 0000000..f786eca --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Spear of Light.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26bfbace38801b3e602a1716bbb75301b2f938bf7838ef925100ff8d1892d837 +size 8819 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Spiked Tongue.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Spiked Tongue.ogg new file mode 100644 index 0000000..b021213 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Spiked Tongue.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0120182f89b631939fe2205fd2bca9599dc29b2a078e9bd4a20fc6edc1cfeec +size 7593 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Spray Sand.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Spray Sand.ogg new file mode 100644 index 0000000..deb5048 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Spray Sand.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:261131b323b59217ba022c885eda99a12f26ea4bc208dd5f2c5f81fb8e71d6de +size 11168 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Stasis Trap.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Stasis Trap.ogg new file mode 100644 index 0000000..4aa4e6e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Stasis Trap.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:374c566190d79c5f252973a704a2382529dd7756650350629e890863e5d5cf53 +size 9451 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Static Nova.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Static Nova.ogg new file mode 100644 index 0000000..10c747a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Static Nova.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64f49353f4b4ee019d60e9ae15339fedcbb009cea09fa3361a1a523ee5656a7c +size 8420 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Stone Gaze.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Stone Gaze.ogg new file mode 100644 index 0000000..4ab1c77 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Stone Gaze.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51727fa42bed96ac6ad941b25c6aa2d604adbc26bcb6a4cfe75c7e9ff84f51f8 +size 8737 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Streetsweeper.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Streetsweeper.ogg new file mode 100644 index 0000000..469cf33 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Streetsweeper.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f30367f3671d5e6050b24bd2f0cbe9ccf34767d1bbbd5f97f51cdfdba7768ffe +size 9013 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Strike Down.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Strike Down.ogg new file mode 100644 index 0000000..9a0fa5b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Strike Down.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59ab857655175f701ddef13d30ec735d4dd4d1a66449f72c39f5fb9c26347a8f +size 9213 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Sultry Heat.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Sultry Heat.ogg new file mode 100644 index 0000000..a71bf65 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Sultry Heat.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f61a3abb30c0c42da6c3cdc15aeb5abc13cf51c1ed8842a57ebb9316c052fe5 +size 9298 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Summon Reinforcements.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Summon Reinforcements.ogg new file mode 100644 index 0000000..0826c42 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Summon Reinforcements.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd6e9515626417183e231ed4950527de25ac140d410e64c9a978b686a48adbbf +size 10690 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Summon Volatile Energy.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Summon Volatile Energy.ogg new file mode 100644 index 0000000..e194c63 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Summon Volatile Energy.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:290dfd509db0fca0a9b39a2646322a77cd0f87418d57a40639868e221ed3f7fc +size 13151 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Sunder.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Sunder.ogg new file mode 100644 index 0000000..aa6024a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Sunder.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc7eaad93f405d38685cf36c3e191b80fe2e02f392dca7ec75a8b0a443456cec +size 7004 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Surge.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Surge.ogg new file mode 100644 index 0000000..375a76f --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Surge.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cfec9a87a6c981386f6568d4819c8ad30710c6b50a4fcee1c2eb5f2a283ee73f +size 8062 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Swirling Scythe.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Swirling Scythe.ogg new file mode 100644 index 0000000..de7543b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Swirling Scythe.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:662ea4f4e8b4ef36d6c1d20b5b135057e74ab8ce26204b20fc44d0a47eee9d68 +size 8634 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Tangled Web.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Tangled Web.ogg new file mode 100644 index 0000000..4a0ed97 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Tangled Web.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f01e1659550bd664f063996b7663970f5607829bf6077a8f2a608c3a51c118f0 +size 8406 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Teleport.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Teleport.ogg new file mode 100644 index 0000000..5f85c26 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Teleport.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6b9163dc15458d5adadcbde87571dbee75115c9b010af87d553947767161e8a +size 6835 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Thundering Stomp.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Thundering Stomp.ogg new file mode 100644 index 0000000..43cf561 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Thundering Stomp.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dac39b77c315dac69633572c649dddc7119d17093a400b3d611d266479515dac +size 9646 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Thunderstrike.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Thunderstrike.ogg new file mode 100644 index 0000000..4768aea --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Thunderstrike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9b96aa93a2da2f2678c3f36e98179f3a6701dfb5ab616ce80c7aadea9a3155f +size 6494 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Torrent.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Torrent.ogg new file mode 100644 index 0000000..ce6604f --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Torrent.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d250a33a15f54cad370871b480a04dcd384a7e8cdfc7690f195cd84daa19b24 +size 6320 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Tortured Rage.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Tortured Rage.ogg new file mode 100644 index 0000000..478cb12 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Tortured Rage.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:731b6c7a490dbed75f29c8179e6dd1f6b5363b2fd53e6e7b8bf6206caccfc996 +size 9646 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Turn Kick.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Turn Kick.ogg new file mode 100644 index 0000000..61e4364 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Turn Kick.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a61a3bb2bda7900af12a1784f607a129012109371d97bc47e6ceaaa38c908211 +size 6734 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Unleash Fury.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Unleash Fury.ogg new file mode 100644 index 0000000..d7ee787 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Unleash Fury.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fede0b29828b50ee92974c4b355090d88a4455e58822de4d6160bd6e8aa6a565 +size 9710 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Unnerving Screech.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Unnerving Screech.ogg new file mode 100644 index 0000000..6773e29 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Unnerving Screech.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6353e664cd142aa1638a6d11665c8f69ffe8e5abccfc2f873577a869e079138a +size 10749 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Unruly Yell.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Unruly Yell.ogg new file mode 100644 index 0000000..d834a95 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Unruly Yell.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe0b96ef6bf99f3d38e83ad66cfc9039055562f394ccad213aeb6bd02c2a1977 +size 8143 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Unstable Mana.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Unstable Mana.ogg new file mode 100644 index 0000000..e465c48 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Unstable Mana.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df8b6c6e755211987c9bbdd1264438daeaf88966d0aad145be4e9234ff7c3724 +size 9410 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Vengeful Shear.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Vengeful Shear.ogg new file mode 100644 index 0000000..28e1fda --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Vengeful Shear.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:722e9ee2acec232d5b52dfce5b06f5ce57636428bee184cc3aa1bf3a65f70d1e +size 8909 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Venom Storm.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Venom Storm.ogg new file mode 100644 index 0000000..40d77e7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Venom Storm.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f183cc4bbf1447482efd80c5a4d8a1f75087916a8242b82c2e3eb019f31e4f8 +size 8637 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Vile Roots.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Vile Roots.ogg new file mode 100644 index 0000000..e3dea8a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Vile Roots.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73d0e4e7cf04ee89b766b014d2dbeb087cd5cfc41c34d6869b53aafe2add67f3 +size 7707 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Wake of Flame.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Wake of Flame.ogg new file mode 100644 index 0000000..d6b6afd --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Wake of Flame.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b47f92502f7f21ea4be6c8f1c096cc49943a30f6637007699cc9ec1ff2ebfe47 +size 8411 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Whirling Edge.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Whirling Edge.ogg new file mode 100644 index 0000000..af915cd --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Whirling Edge.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1bf39b7d39dcc286ec7793b0d676139c19b83d1655a71fc19b3e73f12e397b58 +size 8462 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Whirling Saber.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Whirling Saber.ogg new file mode 100644 index 0000000..5169de7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Whirling Saber.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69ea5ee3fcf96eb4c9b26949d4deb49a9785b85b9d95299d31ee5df242cb5bd2 +size 8774 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Wicked Dagger.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Wicked Dagger.ogg new file mode 100644 index 0000000..71faca0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Wicked Dagger.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5350f423483f0900cf32c25a5667f1de84480a7242e5cc8bdb7e88e60f2d0a08 +size 9251 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Wicked Slam.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Wicked Slam.ogg new file mode 100644 index 0000000..122daf4 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Wicked Slam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64d5120a391cb9c622614fb674298e9100778f406d87f76bbefe9906a6399101 +size 9360 diff --git a/WeakAuras/Projects/RaiderSA/out/animegirl/Will Breaker.ogg b/WeakAuras/Projects/RaiderSA/out/animegirl/Will Breaker.ogg new file mode 100644 index 0000000..9b4fc1e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/animegirl/Will Breaker.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8eb3e3a9478367671fa075a0243f9977422ed5dc38b766b8bedf9880eb185f63 +size 8064 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Annihilation.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Annihilation.ogg new file mode 100644 index 0000000..1415f42 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Annihilation.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42bf8f204c5ee83fc38bf6f288f62bb3623678096fcb93d0962271bfb2ba67cb +size 7184 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Arcane Blitz.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Arcane Blitz.ogg new file mode 100644 index 0000000..5830d87 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Arcane Blitz.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff41089088df47419b7a7245ac040298fd6d60688de706874706280ea8c6fdb6 +size 7440 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Arcane Slicer.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Arcane Slicer.ogg new file mode 100644 index 0000000..2a4c591 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Arcane Slicer.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b3e3f9b1e6405beaafca73ab22dfa39ee0f601a589b9d03ac74b866131e581f +size 7885 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Arcing Bolt.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Arcing Bolt.ogg new file mode 100644 index 0000000..720b621 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Arcing Bolt.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:540dff937d8e4d160a5c36409fc9a47c45bd02aefed9a4ad6315e9e71bd924aa +size 6604 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Arrow Barrage.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Arrow Barrage.ogg new file mode 100644 index 0000000..549fc63 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Arrow Barrage.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d2f671920ea79feefb2cb3b7b4ecbddea966d9d343a50367275830928a1a213 +size 6644 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Bellowing Roar.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Bellowing Roar.ogg new file mode 100644 index 0000000..3d19990 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Bellowing Roar.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b376276acea358c4df6e00ae90852d5ecc43a09255757d32ae9197bfd4d3eade +size 7033 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Bile Breath.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Bile Breath.ogg new file mode 100644 index 0000000..b0d8660 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Bile Breath.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc4bcb11566031a74dfd49a863f133ab5fbb740ecf26c649cc38008495331f40 +size 6336 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Blinding Glare.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Blinding Glare.ogg new file mode 100644 index 0000000..c9c68df --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Blinding Glare.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fda2c2d542d5d174e13441fb31dbfc77ae3a363d6da5916ee86200f19f60ad89 +size 6768 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Bone Chilling Scream.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Bone Chilling Scream.ogg new file mode 100644 index 0000000..4ffa4c1 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Bone Chilling Scream.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa3b04144aac112f0f5d1db5fc178d474ed8b8cee5550299143c301ded3fbf3c +size 8694 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Bonebreaking Strike.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Bonebreaking Strike.ogg new file mode 100644 index 0000000..67f8533 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Bonebreaking Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e40b75cd9a57e61fc7f278826e58ae605006969a0f7a29f4c5b1ff65819b2a47 +size 7849 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Bound.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Bound.ogg new file mode 100644 index 0000000..3da25f0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Bound.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:998218b004d4137cf02c9c30e50885298581bfbfbb1c25e202006ce7b24c432a +size 5801 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Brackwater Barrage.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Brackwater Barrage.ogg new file mode 100644 index 0000000..e096397 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Brackwater Barrage.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8350a61fff8ef6cd8b42226840fb41e8341d041411b0f7da3a6e5f708935cc7e +size 8400 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Breath of Corruption.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Breath of Corruption.ogg new file mode 100644 index 0000000..09839b7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Breath of Corruption.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2349bd886235508734b6f0765a7bc7e47caa34663f21623afad111451b79ba00 +size 7644 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Brutal Assault.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Brutal Assault.ogg new file mode 100644 index 0000000..ebae4f5 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Brutal Assault.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6b77b2a7f6bd876ac8b93aba01ed36aec5510b65d254461312e54f2397b88cc +size 6580 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Brutal Haymaker.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Brutal Haymaker.ogg new file mode 100644 index 0000000..76ed52c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Brutal Haymaker.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f325fe0e667be08d4a8a39fbac5cb03545311da1646d316c39fa56981e26e3f9 +size 7435 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Burning Blast.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Burning Blast.ogg new file mode 100644 index 0000000..81ef5f2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Burning Blast.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c215eec52edbf1b0b46cc1e2d0460a1a21528f1d71944a3e306d6dc928074e72 +size 6899 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Burning Leg Sweep.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Burning Leg Sweep.ogg new file mode 100644 index 0000000..eb4b97e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Burning Leg Sweep.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:916cff80711e6e52154add4ac29b8c207aadcf7f5c36774769bc321574817058 +size 7009 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Carnage.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Carnage.ogg new file mode 100644 index 0000000..0c8e6cd --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Carnage.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f12565f4cf176f46b0b8ce84f458a3b82223babca94c0460fee80d589610889 +size 5743 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Ceaseless Winter.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Ceaseless Winter.ogg new file mode 100644 index 0000000..f581cb7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Ceaseless Winter.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:209c70280687b7068ffef793a7c4b04aa81c93e2cae6c7f7ff744d5917910c70 +size 7819 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Celerity Zone.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Celerity Zone.ogg new file mode 100644 index 0000000..d367bf2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Celerity Zone.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c9b9b3e7104dc9e91ba8ab109f117e68cef10ecba847f703116d24bfde05947 +size 6688 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Chaotic Energy.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Chaotic Energy.ogg new file mode 100644 index 0000000..e6d1ee2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Chaotic Energy.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49be6850f8543de49aa0d77fde1ce9938ff9d4bc09bac891d64e604b95b8ea52 +size 7726 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Chaotic Shadows.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Chaotic Shadows.ogg new file mode 100644 index 0000000..717106d --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Chaotic Shadows.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4b2e88b1b2908d524dc6960881c57188009cf2dbf43cf54b1e2d5f8ab8b48ad +size 8607 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Chaotic Tempest.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Chaotic Tempest.ogg new file mode 100644 index 0000000..c443ddf --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Chaotic Tempest.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d84eaf2eeaaced6f4adfd2b15cf9860d5237c8b48eaf413b583a000738fee6d3 +size 8019 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Charged Blasts.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Charged Blasts.ogg new file mode 100644 index 0000000..bbd5a98 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Charged Blasts.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc81c3168c76876416d3be9da2f9e2f24d7873a972ab01c60fce7a7b4616d6e1 +size 8640 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Charged Smash.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Charged Smash.ogg new file mode 100644 index 0000000..e37941e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Charged Smash.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:328d03679adf1188d892636b67d85f7374274bb1533c72d9bab54ed445168358 +size 8272 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Charging Station.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Charging Station.ogg new file mode 100644 index 0000000..42c2eac --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Charging Station.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:255bd7a06fa8aa8144ea6b97001695de6e347f734c471be53e1ba8f2b9084f90 +size 7875 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Chilled Blood.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Chilled Blood.ogg new file mode 100644 index 0000000..e58fb80 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Chilled Blood.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:527c022d7c943bdd340f73f7f953a89ef5517f540e11d9150ec8cbe9f7e01ae0 +size 6776 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Claw Frenzy.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Claw Frenzy.ogg new file mode 100644 index 0000000..dcebbcc --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Claw Frenzy.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e578d243d35ceae49b627dab055add3874c20e48ef4371ef4ea0df91508f048 +size 7475 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Collapsing World.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Collapsing World.ogg new file mode 100644 index 0000000..aa0b569 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Collapsing World.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f808edf70fb9313177dc61148ff2af1c10206dddc4caa8d47525c60a48629958 +size 7355 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Cone of Death.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Cone of Death.ogg new file mode 100644 index 0000000..ef39790 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Cone of Death.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07e637f04ba2a8df3be025c821ac3931a1a25d372faf54f9e52b3c65174268e4 +size 6244 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Consume Magic.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Consume Magic.ogg new file mode 100644 index 0000000..f36930c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Consume Magic.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2f9a42293ed2c1234030c193433be97ffc013959b04434fa1433c321d516742 +size 7766 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Consuming Sphere.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Consuming Sphere.ogg new file mode 100644 index 0000000..dbf20a5 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Consuming Sphere.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64a6326bc97d9a2d641b9afc23db2a98fe8b079ab689d57b426ba70ee9b3cab0 +size 7729 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Cosmic Scythe.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Cosmic Scythe.ogg new file mode 100644 index 0000000..ffa8253 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Cosmic Scythe.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eaf9df99d51eb39b20d5e0967cb2bd7e44c1d5d084140dfd324e090f4d5c50da +size 7673 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Dark Fissure.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Dark Fissure.ogg new file mode 100644 index 0000000..76344f5 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Dark Fissure.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9605f29267458f3f1820cd764799469f070c393bf15ec89bfa99a8edafc95cc1 +size 7209 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Dark Mending.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Dark Mending.ogg new file mode 100644 index 0000000..440aedb --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Dark Mending.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe336db7da38e81a8ec553d0a0657ffd709aae55c42a9812de17cf1f6f9d5027 +size 7662 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Deafening Screech.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Deafening Screech.ogg new file mode 100644 index 0000000..02f21eb --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Deafening Screech.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6cf4d59beb91124e34f5f50fe8a20d9917b27ef6d34f97a70a3808d29371f769 +size 8006 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Debilitating Shout.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Debilitating Shout.ogg new file mode 100644 index 0000000..f42dbb2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Debilitating Shout.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fbefc0ed37d0d4c4896c39320836e32cd44c3ee304399b3cf52e708c9d0639c +size 8132 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Decimation.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Decimation.ogg new file mode 100644 index 0000000..6bbc943 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Decimation.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68b7849da6bd446af33784f4293e1808fff7ad07bf895c29e2571907b39891f8 +size 6834 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Demolish.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Demolish.ogg new file mode 100644 index 0000000..34224ba --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Demolish.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c17c0a6b06d5f1ec4578a0b898e7d0743472676732c945e7bfc231b6a04b2fd8 +size 6315 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Demonic Ascension.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Demonic Ascension.ogg new file mode 100644 index 0000000..08cab99 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Demonic Ascension.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2a63898e131e10a83f473c38455ac04b955f37fe7f46ae7973e442cb955c543 +size 9172 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Demonic Mending.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Demonic Mending.ogg new file mode 100644 index 0000000..a25fc39 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Demonic Mending.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:896e2a92072588ed219a19406ab88090165f43b8a79bb3ae5c78abdabe6f3db7 +size 8513 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Demonic Upheaval.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Demonic Upheaval.ogg new file mode 100644 index 0000000..7dde6cf --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Demonic Upheaval.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81afc8b690c1a6dc37a9c223cc491ce9dbb18ef4eeefe9ff85c2763d6ae26b22 +size 7307 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Demoralizing Shout.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Demoralizing Shout.ogg new file mode 100644 index 0000000..341742d --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Demoralizing Shout.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63e2d24fafb27626379faffdd74c47ac31805bcc7c6e66d774847604b0fbc551 +size 8149 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Desolate Gaze.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Desolate Gaze.ogg new file mode 100644 index 0000000..225f718 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Desolate Gaze.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9d5ddd9cdd8de497d88d08c322e74e71ed6f6999b0dcca76d49e076a4f007f2 +size 7896 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Detonating Moonglaive.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Detonating Moonglaive.ogg new file mode 100644 index 0000000..4c761c7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Detonating Moonglaive.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19307adffa02f37f438b910dd6d9d4b0a8b08db2b1b945c430394d08de6d5a6b +size 7672 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Diabolic Bomb.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Diabolic Bomb.ogg new file mode 100644 index 0000000..17eb3de --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Diabolic Bomb.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:902ea97a024fd9fb354edffa1d608393ebe38c38a9be0915386a61bde86d49a9 +size 7845 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Dinner Bell.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Dinner Bell.ogg new file mode 100644 index 0000000..eba83dc --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Dinner Bell.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc56d9d7e6a065395ac3af8cedde52729f2f4a51563da21162891e91a0b29bb1 +size 6118 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Disintegrate.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Disintegrate.ogg new file mode 100644 index 0000000..f9e8e4a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Disintegrate.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d543ce19107847ccb2c8b10b706958a803a01e9c4cfb68402d0f4e7f81487bc +size 6676 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Disintegration Beam.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Disintegration Beam.ogg new file mode 100644 index 0000000..3e94287 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Disintegration Beam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68f1ecbd77eefce73c43c21095dc83b0e9399a0f239cfe677b0db08a4bf46a13 +size 8354 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Drain Magic.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Drain Magic.ogg new file mode 100644 index 0000000..32a419e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Drain Magic.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2452afb53e890878684a1adad9f8776efbace2dc6bbcdebbd5aafb8801cfe086 +size 6579 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Drain.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Drain.ogg new file mode 100644 index 0000000..f405002 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Drain.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cebc96e50cc7c94ae9ab4232b96cb28f4501ab203a6063b159923bf86f95925c +size 5864 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Dread Inferno.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Dread Inferno.ogg new file mode 100644 index 0000000..159ad02 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Dread Inferno.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c657970431826bce883cbc4474a632b25ce4d065a7d35ecc00c2bf832cf36d00 +size 7897 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Echoes of Doom.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Echoes of Doom.ogg new file mode 100644 index 0000000..80ce5ac --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Echoes of Doom.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:276e27cea3e5c57d30132be7b119da8031e8e318f63167bf5afc21ca628e11cc +size 7908 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Empowered Flame Rend.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Empowered Flame Rend.ogg new file mode 100644 index 0000000..758620a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Empowered Flame Rend.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb4cd50324e1f984b96512a9fc699422b7ba07852422c480a4667ab235a068b3 +size 7592 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Empowered Flare.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Empowered Flare.ogg new file mode 100644 index 0000000..86a1ea2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Empowered Flare.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1a16820ab3d65be56d452a8a1d7f2dea76f78f3ca39a101906a16391201cf17 +size 7602 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Empowered Pulse Grenade.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Empowered Pulse Grenade.ogg new file mode 100644 index 0000000..fba6d77 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Empowered Pulse Grenade.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff99a22eea7c6f6ff4bfe4226e467a7ff0ec3364a22deaa49bec729fc9337f2b +size 8815 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Empowered Shock Lance.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Empowered Shock Lance.ogg new file mode 100644 index 0000000..ef9be74 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Empowered Shock Lance.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2dc6ffa5d2bc7ef5e9202cd2804c5c3686005c65a8f29e823683641c14399d0 +size 8895 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Empowered Shrapnel Blast.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Empowered Shrapnel Blast.ogg new file mode 100644 index 0000000..ac924e2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Empowered Shrapnel Blast.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0378300b17b706b2e2e1750b5d40ced36f57386f25827eb81f5d9ed3a8a72a1f +size 9967 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Enflame Corruption.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Enflame Corruption.ogg new file mode 100644 index 0000000..4a0d3e2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Enflame Corruption.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e41d63234b0a9ec677030ecadddc43a0f3f083cd991a7a6d6cded4c5f000b8d +size 8386 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Entropic Mine.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Entropic Mine.ogg new file mode 100644 index 0000000..4e32548 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Entropic Mine.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3e68a1e981f809df4a325282028addb75ca2cb806ce24f7dbd1ee5dd164a363 +size 7975 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Eradication.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Eradication.ogg new file mode 100644 index 0000000..46cbb5f --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Eradication.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae7593f1e325d45bc6207cbc01d409d5e3eebe53187801b9976eb46310c950c4 +size 7060 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Evocation.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Evocation.ogg new file mode 100644 index 0000000..d7fbab9 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Evocation.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdfb8bbaa902381ebafc31f8d2481a041b99cfc042c22fafde59bee1fdfb7dce +size 7167 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Expel Light.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Expel Light.ogg new file mode 100644 index 0000000..b846f6f --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Expel Light.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b55b2972ad9533d64edffeb6b5aad34b7ef5075702db3883059d7a891f53e91c +size 7078 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Eye Storm.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Eye Storm.ogg new file mode 100644 index 0000000..c449900 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Eye Storm.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88ca8db1a34f3c664c2075af93d4a5a0dd756ab7db697f3d71f70b713db59108 +size 6402 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Eye of the Storm.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Eye of the Storm.ogg new file mode 100644 index 0000000..4eb5b37 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Eye of the Storm.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c708546b2a1e062cd086634fd4db78996eeb8332e257ffc51743d9a2ba22e8df +size 7470 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Feed on the Weak.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Feed on the Weak.ogg new file mode 100644 index 0000000..d6872aa --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Feed on the Weak.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4418baca62aa434eeaf8887ef1cf40698d6552ebbded37c98efa4b752aced532 +size 6339 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Fel Bombardment.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Fel Bombardment.ogg new file mode 100644 index 0000000..ba2d224 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Fel Bombardment.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4c3457f0cf2fc6acc7469aa1b1b260fd6e01ffb26a352dda2e905f8144759e3 +size 7247 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Fel Breath.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Fel Breath.ogg new file mode 100644 index 0000000..51d992d --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Fel Breath.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71bb4411325dcf902c6fc67a7a51a3332bd1412357f3499267665f1bf4f8373a +size 6049 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Fel Detonation.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Fel Detonation.ogg new file mode 100644 index 0000000..8e05be7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Fel Detonation.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6486c6e3caa25c8a931d4d42d4d5cdb3300766de2ef39a350f43a632a160f425 +size 8079 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Fel Fireball.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Fel Fireball.ogg new file mode 100644 index 0000000..36fcec6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Fel Fireball.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb4ea78c97f8a2077d442799170a22df01b0c97e01e01c3c96c7d473e41aa824 +size 7249 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Fel Mortar.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Fel Mortar.ogg new file mode 100644 index 0000000..be295e6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Fel Mortar.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3edef2937177f23eff23a8ef0bc231206ab516331489860c7326989b5745d88 +size 6016 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Felblaze Orb.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Felblaze Orb.ogg new file mode 100644 index 0000000..941a0ef --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Felblaze Orb.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25366da26d504e613b4fb061a2100b9f0080c8cb9140a7f8369e042204957cf5 +size 6917 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Felsoul Cleave.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Felsoul Cleave.ogg new file mode 100644 index 0000000..e1689eb --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Felsoul Cleave.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b68c5ab7c68c58ff03fbf4129512c63835f2b5096de109b53146a038fe1245c +size 7270 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Felstorm Barrage.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Felstorm Barrage.ogg new file mode 100644 index 0000000..5f5e23f --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Felstorm Barrage.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f374256029951b9d0372cb4fab1edf4da85ee89b03251e5d11e3650aa4a09733 +size 7911 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Fiery Strike.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Fiery Strike.ogg new file mode 100644 index 0000000..d6f1dd3 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Fiery Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5dc95e5b9e734220706a8c8df18118fa6286db7abd2bcf03fc5bf26ec970b3d7 +size 7103 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Flame Rend.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Flame Rend.ogg new file mode 100644 index 0000000..118c7c7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Flame Rend.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da60adf49192f0ed03c9de2e478643b97689a4ba53df2b6233797b0eebb12e23 +size 5871 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Flame Wreath.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Flame Wreath.ogg new file mode 100644 index 0000000..5926204 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Flame Wreath.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f92cd4e70c518b58bb8857cea9a70a818a3e5da84aae2b120e982b4a643da59f +size 7064 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Flare.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Flare.ogg new file mode 100644 index 0000000..6df3ec0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Flare.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06c5a92554202411d10fcda7323abd988ce9b4d4ca6a77beb731064db549fefa +size 6779 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Flashlight.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Flashlight.ogg new file mode 100644 index 0000000..0fb5d4e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Flashlight.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:201139bfd62ca3e32fa19f45521d5206b01d78b82252369a32cb0937d61b2cc3 +size 5971 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Floral Fulmination.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Floral Fulmination.ogg new file mode 100644 index 0000000..7222293 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Floral Fulmination.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70b91c36e089332c34bfb052eeb17915adbbec666a9e6042e63cc1f38c187b26 +size 7921 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Focused Lightning.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Focused Lightning.ogg new file mode 100644 index 0000000..a9d4b6d --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Focused Lightning.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e080936c69ffa4bc228bd3d963078e849082c7a849d572e064a6293a8b5912f2 +size 7851 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Foe Braker.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Foe Braker.ogg new file mode 100644 index 0000000..d4ae4c6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Foe Braker.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92e8e39d80a5198826e8d15dfe2bcd8844a6e54569ea80dc6fafd5ec713df120 +size 6602 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Forging Strike.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Forging Strike.ogg new file mode 100644 index 0000000..ecb7145 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Forging Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e83e44cd41c6cca7d23558687f2747a0e4361ed2839e33f52071b4571c333de5 +size 6685 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Fragment.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Fragment.ogg new file mode 100644 index 0000000..a284bbf --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Fragment.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbf380e2803392612e0d738a2b9dcd30168425a9533676452b862cfa4820da12 +size 6152 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Frostbite.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Frostbite.ogg new file mode 100644 index 0000000..4a85eef --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Frostbite.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a11b814d8432164de93b93ce7f5bd186f9e54f132e5817717f5e65bb9e5055d6 +size 6533 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Hateful Gaze.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Hateful Gaze.ogg new file mode 100644 index 0000000..20f58ca --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Hateful Gaze.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad2465bc38b7a8a081d4ecf9d9c5557d96f943934de0e559354d4afaed72a0a5 +size 7809 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Hatred.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Hatred.ogg new file mode 100644 index 0000000..dfc9fb8 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Hatred.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e5a7b36c21200ce27bed6910154fe7da9892f486cebd00490b2182b9b556568 +size 6041 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Healing Touch.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Healing Touch.ogg new file mode 100644 index 0000000..c223976 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Healing Touch.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:529433fc48c7182ac0270c46be404af54f17d3177914af9fb0364833aa0def31 +size 7035 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Heat Wave.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Heat Wave.ogg new file mode 100644 index 0000000..73c29c2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Heat Wave.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcd46e77673ac27c705f976368b85f5623c08ef069a97874041ae1a39ad1f082 +size 6094 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Hinder.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Hinder.ogg new file mode 100644 index 0000000..2ef0598 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Hinder.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b9b64dee69071159241c6b84b395aa69906104e59ef6036172f572f4b65b57a +size 9159 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Holy Radiance.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Holy Radiance.ogg new file mode 100644 index 0000000..82caab7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Holy Radiance.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:acc49c941b9db04b20771cd02f7897fd3fbd10838fc370fc06fa634492aae38f +size 7797 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Horn of Valor.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Horn of Valor.ogg new file mode 100644 index 0000000..1a228bf --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Horn of Valor.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:748bcaad2e931c93d68cc2e004099e9cf83035b1370a5781c8f7c6b5cc85a4ec +size 6827 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Inferno Bolt.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Inferno Bolt.ogg new file mode 100644 index 0000000..f90e0c8 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Inferno Bolt.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:133c816b8c3b67c4b869efb228e4593f9ee38e1c1e6e198498ebcde0e24942fb +size 6676 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Intangible Presence.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Intangible Presence.ogg new file mode 100644 index 0000000..4fd2d46 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Intangible Presence.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb1eeb2e7243725189cfff708cea1d67534f2517a2564feb78b6c8d919a53d8b +size 8958 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Iron Whirlwind.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Iron Whirlwind.ogg new file mode 100644 index 0000000..84807ee --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Iron Whirlwind.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a4a48ed63fccd0218ab3bff2bcedf476a69c92ed2bc1bbce57828fb08af10a4 +size 7625 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Kara Kazham.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Kara Kazham.ogg new file mode 100644 index 0000000..87f1e64 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Kara Kazham.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75030ed100053c9fcaac880962c10abfb536315b09cacaff33babd2cc34793db +size 6513 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Knife Dance.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Knife Dance.ogg new file mode 100644 index 0000000..da9027e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Knife Dance.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cb9861d8b7cc967a71e446b677f847c2b42c8a5cbde0491720a2678bec6c6d3 +size 7081 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Landslide.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Landslide.ogg new file mode 100644 index 0000000..7ff1e17 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Landslide.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5663cea331fb6a19eb338db0e05f9d06b87d1317285751848e068a4b2e48738e +size 6405 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Lantern of Darkness.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Lantern of Darkness.ogg new file mode 100644 index 0000000..d23c825 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Lantern of Darkness.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77aa8680c6dd0c84618089986e1419e23ad76848486a5d332087b4df4eb9bd48 +size 8262 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Lava Wreath.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Lava Wreath.ogg new file mode 100644 index 0000000..5668ba0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Lava Wreath.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eddab1baed1ef42d6eba098b277e2662f4c563e90d50925084147cfdd0213967 +size 6372 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Leech Life.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Leech Life.ogg new file mode 100644 index 0000000..96aa19a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Leech Life.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc09b8f4cb2ea8b473379475fe902d1973ec2b380defa1d5c634d8fe4cb0f2a4 +size 6193 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Lifebloom.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Lifebloom.ogg new file mode 100644 index 0000000..71042e6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Lifebloom.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a998b7654c7aa3e23b222cfae302d818a7cabb3b66ffd366bcd400e9743fd63 +size 6277 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Lightning Breath.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Lightning Breath.ogg new file mode 100644 index 0000000..1f262a8 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Lightning Breath.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:044ce51b40d9c8aa93ec6c0d874b7d191c23baf47c454718c22db33e1b1055b2 +size 6982 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Lingering Gaze.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Lingering Gaze.ogg new file mode 100644 index 0000000..f21651f --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Lingering Gaze.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfa5cce38a9caa0b155766d71eaf082f8c26860295dadb61f8f8f7a587db38c1 +size 7123 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Maddening Roar.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Maddening Roar.ogg new file mode 100644 index 0000000..2b11cfd --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Maddening Roar.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8e645125b72c22ae6360cc0145dc54e0c74cee422b805e2be0c7c4cfd17b995 +size 7217 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Magic Magnificent.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Magic Magnificent.ogg new file mode 100644 index 0000000..9f5e264 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Magic Magnificent.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83019d39e8425e99103dffb3e3a7f766e3f524228f16211bab70ae8d6293cb97 +size 8109 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Mana Fang.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Mana Fang.ogg new file mode 100644 index 0000000..5be4db4 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Mana Fang.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a9691e9ddef0ec7f1abac381c1236474764cdb62895e595682fbeff6400f75d +size 6356 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Marked Prey.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Marked Prey.ogg new file mode 100644 index 0000000..7200f87 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Marked Prey.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8919e6dc92e8533659884f1d33c4dd5e537c01b71c2ced1a09d6e034402370aa +size 6391 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Mass Repentance.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Mass Repentance.ogg new file mode 100644 index 0000000..df9c6cc --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Mass Repentance.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eaee2f3356f0efce4db94011b2f5a4121880fe5f02a634d8fba997d0e315f423 +size 7947 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Meteor.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Meteor.ogg new file mode 100644 index 0000000..916b530 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Meteor.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:336282889779198771ea89de349670c93e1fd0978ff1a86a0a02a61d9e770f0d +size 5862 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Mighty Slam.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Mighty Slam.ogg new file mode 100644 index 0000000..f8a90ca --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Mighty Slam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76bbb4205a446cdee5236b4d921fc4a79e5a8edb8d0cd159a5f4019fbeb99fab +size 6779 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Misery.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Misery.ogg new file mode 100644 index 0000000..31853fb --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Misery.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54b41742ff01cb3e0ccfb8bbb29c6eed7a591542a73cddfdf5bc660cc917686c +size 5888 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Molten Crash.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Molten Crash.ogg new file mode 100644 index 0000000..0983da6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Molten Crash.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22b7dfdb3abbc258bad99240c587549a116adb137cbabea8e11a967cb4d4aeae +size 6824 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Molten Touch.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Molten Touch.ogg new file mode 100644 index 0000000..cb19b3e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Molten Touch.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbbf163f46ff25c1ec8673903397829ad13ce8d7b598e90da73e04cc10c957aa +size 7118 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Mortal Strike.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Mortal Strike.ogg new file mode 100644 index 0000000..715a8b5 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Mortal Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17b549f8f8e8fc5a51e1644f74e05196b3a86cd053d71cfcef8905f0477ecba2 +size 6917 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Necrotic Embrace.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Necrotic Embrace.ogg new file mode 100644 index 0000000..c0be29c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Necrotic Embrace.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:635195114eb3ea4d0c6cea6a305c1e4c08ea499f440334950b34ec6c5524dbc4 +size 8384 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Nether Venom.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Nether Venom.ogg new file mode 100644 index 0000000..f2be6b3 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Nether Venom.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99d8f7b90235b2446f72389abf54e62b36cca6823e2977d3bb85878ec191801b +size 6372 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Nightmares.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Nightmares.ogg new file mode 100644 index 0000000..bc5ba86 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Nightmares.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dba56e618d81bad627dce189193b49fff11726f55aa7b2e8ccdb40fe432c8be8 +size 6573 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Nullification.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Nullification.ogg new file mode 100644 index 0000000..b2cc8e2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Nullification.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8df7f63a173de157cede1d3256f02a382bffb406bd9fd48e47e16618ff56897d +size 7521 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Overcharge Mana.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Overcharge Mana.ogg new file mode 100644 index 0000000..58458dd --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Overcharge Mana.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:607286d42115ecf009259d5da470239736a544bea90db225bd8ee83490da8ec5 +size 7392 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Penetrating Shot.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Penetrating Shot.ogg new file mode 100644 index 0000000..184ac75 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Penetrating Shot.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ebe7a46416d9062c9c920017f1ea3baf5ab8be364bc1d6323b354dd3e6b00ae +size 7307 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Phase Breach.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Phase Breach.ogg new file mode 100644 index 0000000..1084f5c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Phase Breach.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32d4dd54b42c51cc407d470c59fefdcc2d3acc202f38e2524dc6c93a0866b590 +size 7076 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Piercing Gale.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Piercing Gale.ogg new file mode 100644 index 0000000..4f2af15 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Piercing Gale.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f951f8c2cb5173dcacfa152b381286ef37551942cb671409ca8cc869b0c2864c +size 6777 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Piercing Missiles.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Piercing Missiles.ogg new file mode 100644 index 0000000..e9e70ef --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Piercing Missiles.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df810531b197c5464999c3252ff2ec0ae46072236f924cd25fe3d79ef61e5f43 +size 8387 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Piercing Shards.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Piercing Shards.ogg new file mode 100644 index 0000000..e344e56 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Piercing Shards.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f21fc4cbf8d210d33cbbdcec656f561c14b7606946a797becff27e868bcc73ea +size 7682 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Polymorh Fish.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Polymorh Fish.ogg new file mode 100644 index 0000000..aec7d7b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Polymorh Fish.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44206357e526735e074e4c81b3a10760673a81cb7d46e5b1a0ff13d50f402970 +size 7178 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Prophecies of Doom.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Prophecies of Doom.ogg new file mode 100644 index 0000000..ecae088 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Prophecies of Doom.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a15d6c5b05b6571e271f23a619364357c546f1f3dd4e4b8d7ae4d6a7f0b5695e +size 8144 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Pulse Grenade.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Pulse Grenade.ogg new file mode 100644 index 0000000..c583144 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Pulse Grenade.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50c1f90058aceecf018dc69f699d3ec8dc5fbc95dc7f410bdccea468ef772580 +size 7308 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Quarantine.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Quarantine.ogg new file mode 100644 index 0000000..98a2526 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Quarantine.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35c731936af9fdc120b92b4e77b2fc25ed33af0d23fb4b45b8c298b6038ada4b +size 6169 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Quelling Strike.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Quelling Strike.ogg new file mode 100644 index 0000000..0a76fc2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Quelling Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9f4ccc0156c8370dbce4a9889b692ff607f79e979c41ea4b2885ce64a56dfa1 +size 7135 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Radiant Tempest.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Radiant Tempest.ogg new file mode 100644 index 0000000..00db3e7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Radiant Tempest.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e35db361ae56b02af2968ae1fdc53590b7431e3863ff1cf8db0a376f76eb323 +size 8342 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Ragnarok.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Ragnarok.ogg new file mode 100644 index 0000000..c1138bd --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Ragnarok.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ffde5ed3f6d8e636360b0efc513d323854b444dbd6109021a88073a06ddc790 +size 5916 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Rampage.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Rampage.ogg new file mode 100644 index 0000000..6080e15 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Rampage.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bc9111ce86818baebf5b278cafc67e3c6a339a9f7431f7f6287ab434892a450 +size 6842 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Rapid Rupture.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Rapid Rupture.ogg new file mode 100644 index 0000000..f30d2d4 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Rapid Rupture.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5280508bf8074ab486678f98021f7f94228c5659ad3848f19142ac1e10d05473 +size 7554 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Ravenous Blaze.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Ravenous Blaze.ogg new file mode 100644 index 0000000..39d04a3 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Ravenous Blaze.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1857befcc46301a15d79f6292992c61af46205c5087b7fa6165ce8dffd18fbc7 +size 7402 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Razor Shards.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Razor Shards.ogg new file mode 100644 index 0000000..6de62c3 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Razor Shards.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a86161c678e87da5ab727d77dbfb083b71bca6a41e3c6ba55a90cbdc3f6507d +size 7582 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Reality Tear.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Reality Tear.ogg new file mode 100644 index 0000000..3f5d9d4 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Reality Tear.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22ce5e3a213ecc73ba7df1cc43d86f093fd5f4b6b92962b6108488f5ee3a4e59 +size 7221 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Reap Soul.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Reap Soul.ogg new file mode 100644 index 0000000..c7965cb --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Reap Soul.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f88227020f4899443ed674f56bfcedadc32358a27b1ae8e4ee1fbbdd2fb1343d +size 6476 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Rejuvenating Waters.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Rejuvenating Waters.ogg new file mode 100644 index 0000000..3de2caf --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Rejuvenating Waters.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3ce46aecfa8bf7717ca74bd35851a816eb523a0d894886255a0b95bd8a58bbf +size 8208 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Rejuvenation.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Rejuvenation.ogg new file mode 100644 index 0000000..ddebc19 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Rejuvenation.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00400eedc78349bfcf26f13ebb59f9a7c6c1c56426853e6be3b4e9c0526febc8 +size 7727 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Reverberating Strike.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Reverberating Strike.ogg new file mode 100644 index 0000000..62cad36 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Reverberating Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa1487e3893ffecb6ace4c5e21dc467d2330f3ab367e3cf44a46eaef536ce246 +size 7648 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Roiling Storm.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Roiling Storm.ogg new file mode 100644 index 0000000..f62a6d5 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Roiling Storm.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72bbe8538e15e1327b0c285979d9d50ccb3b0bcbc81a33e388aed4e63790e3f4 +size 7790 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Ruiner.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Ruiner.ogg new file mode 100644 index 0000000..cdbc8fb --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Ruiner.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f64bcc816c9056c5873c67b04e6e3fe44ea16c7d7af269ed01b18026e7f25a41 +size 5546 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Rune of Healing.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Rune of Healing.ogg new file mode 100644 index 0000000..b1e8c4e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Rune of Healing.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbf997f6cfb1a01b4cf0f6aab60d1b8f7b5400f504cb4d1d3288320caebd5b20 +size 6706 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Runic Band.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Runic Band.ogg new file mode 100644 index 0000000..d4e5cf9 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Runic Band.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a65551ca54d55fe1bf2c5454c05f8acfaf9dc3c1c1d766227ece3f3d559ec546 +size 7493 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Sacred Ground.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sacred Ground.ogg new file mode 100644 index 0000000..2d24a00 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sacred Ground.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52801837824d1c8d69d36d7c7bc2791ddedc2a85acb30d258d7f46105ae8ece7 +size 8607 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Sacrifice Soul.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sacrifice Soul.ogg new file mode 100644 index 0000000..322a5ac --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sacrifice Soul.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2bc4f884cd5245b2938bac1f1a87ef996ab4d1a892b12c95ab2ba6cce07b7660 +size 7447 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Sanctify.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sanctify.ogg new file mode 100644 index 0000000..f01d38d --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sanctify.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a87f8a2a69924887fac8564edeb56e0f64cc73550038191de9dbbbdad0d26cdd +size 6785 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Sandstorm.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sandstorm.ogg new file mode 100644 index 0000000..194c538 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sandstorm.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4784dec7196091654eb4c1656e841b881c4abc4bab8f937e409cb939f50d0b6f +size 7012 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Scornful Gaze.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Scornful Gaze.ogg new file mode 100644 index 0000000..728475f --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Scornful Gaze.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:437978857c29fc00d5f001bc3a51415086731f51c7c4be4badf5ce3f3cc289f8 +size 8470 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Screams of the Dead.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Screams of the Dead.ogg new file mode 100644 index 0000000..477f248 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Screams of the Dead.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f15ff5e949ea0eb2bce864739a05c1ea0c421a1519a5087dafba27c9b0356497 +size 8475 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Sea Legs.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sea Legs.ogg new file mode 100644 index 0000000..7e7d67a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sea Legs.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d281fd10e3757855963de4d8238c17dd290afdad93759834cd5e8b4a73bf1357 +size 6645 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Seal Magic.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Seal Magic.ogg new file mode 100644 index 0000000..ed38ca6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Seal Magic.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73200af2708dd0806ddbe9bca3ca804d42eebb4588d0fc54785b7bfb595daff4 +size 6992 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Sever.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sever.ogg new file mode 100644 index 0000000..de562ef --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sever.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc73227a732bdd12b29016ef1b4bd2c2fa1ad588ca2f795d9103281d73799ed1 +size 5729 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Severe Dusting.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Severe Dusting.ogg new file mode 100644 index 0000000..8c11f85 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Severe Dusting.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71db42e3ff53da3476a465b8c096af1fb73f1b8216b626ca45b3fa3abda8d232 +size 8321 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Shackles of Servitude.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shackles of Servitude.ogg new file mode 100644 index 0000000..1237e91 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shackles of Servitude.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ae9a6c0d177f6f726e06f2d33308167fc664e0ef7370e74be116802fde4ee45 +size 9116 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Blades.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Blades.ogg new file mode 100644 index 0000000..9d5b3ca --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Blades.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7aaa828db442019d7a4345dfcb1d361cea32c86402dd1fd9380717b75ecda2ba +size 6846 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Bolt Volley.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Bolt Volley.ogg new file mode 100644 index 0000000..42d1da3 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Bolt Volley.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4ae7636c60ad11f75c296348a858492505c1771c8ad6565e21bc54fc0c98335 +size 7668 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Crash.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Crash.ogg new file mode 100644 index 0000000..4138805 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Crash.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:977956633a908635e22477020dd25f91bfe8fb394f3d8be1551af9323d803bcd +size 6806 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Rejuvenation.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Rejuvenation.ogg new file mode 100644 index 0000000..32e725c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Rejuvenation.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34cca09af69c7a1f2b82eea872f6de9542b58ec8f3f259565e00b9d12874b114 +size 9395 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Strike.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Strike.ogg new file mode 100644 index 0000000..edfc3b7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5050e18c7ea84860eaf24524721df154ee7de34837bfe961c6e1aaa8afa4ef68 +size 7114 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Sweep.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Sweep.ogg new file mode 100644 index 0000000..63d029e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Sweep.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d378ecca3ad948d7e6e21b2cd0f3c492f6ad7acaefb0edde1d827005cbf8938 +size 6655 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Wall.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Wall.ogg new file mode 100644 index 0000000..f0ca74b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shadow Wall.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:815497087758cd5caab2168b7ce0818a496948c8b9fc331910db8d853273fdcc +size 6833 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Shared Suffering.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shared Suffering.ogg new file mode 100644 index 0000000..f08aee3 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shared Suffering.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30dc6c7a617aa0c756e4d7a72d24e3f01aee98fb7153884ed32a77e3275311da +size 7249 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Shield of Light.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shield of Light.ogg new file mode 100644 index 0000000..f0d9dc0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shield of Light.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9aeeb270b87255b136ef7c70cd7f87c8707b21c933fafc183c2fb3a3e5dfec79 +size 6641 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Shivan Pact.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shivan Pact.ogg new file mode 100644 index 0000000..2ac7e53 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shivan Pact.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e1ef4fcc92954cdac5c62367c1c47a83e6ccae7add3c45a686c9da2a54ddaf1 +size 6493 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Shock Lance.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shock Lance.ogg new file mode 100644 index 0000000..02abae2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shock Lance.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d477d61535aded7d138a1fc5ea5a1e20dc78792b4840f778bc252c15d433615f +size 7282 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Shockwave.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shockwave.ogg new file mode 100644 index 0000000..8e76621 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Shockwave.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41430f21d9ecc5d45301c1c9271e482aa1684d96b4760d16bbaaffd198d303e9 +size 6343 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Siphon Corruption.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Siphon Corruption.ogg new file mode 100644 index 0000000..9fe5137 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Siphon Corruption.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8b1f9347a9ce5d85e6775b7a33077bf3f99d1648d6d9d77b47f664b6c3dbb13 +size 7915 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Six Pound Barrel.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Six Pound Barrel.ogg new file mode 100644 index 0000000..e1d6be6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Six Pound Barrel.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc2fc5efcb13a32745e5e6bda5f66891dcf3b29eddf176eddf0e2d7765439921 +size 7649 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Sleep Canister.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sleep Canister.ogg new file mode 100644 index 0000000..46791a0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sleep Canister.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed42cfc407e788ab93bad869f1d6409e7057900e8cd9818cb9949fe3713897a5 +size 7762 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Slicing Maelstrom.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Slicing Maelstrom.ogg new file mode 100644 index 0000000..e2e31a6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Slicing Maelstrom.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a5a312f440e8ff527da0ad8904069595af07f34b4af31143b0591dd14a8fdd9 +size 8432 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Soul Echoes.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Soul Echoes.ogg new file mode 100644 index 0000000..814de70 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Soul Echoes.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2bbdd1b68329bdf1b0e39802dabb6fbc581865a24ce8c399cfb8a7cd1e3ff53e +size 7554 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Soulblight.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Soulblight.ogg new file mode 100644 index 0000000..a315dec --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Soulblight.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08fbf8c03090edf0ef1360b32a4eb9e82b029bf783f8e7ac23fbc297c1006b75 +size 6795 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Soulbomb.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Soulbomb.ogg new file mode 100644 index 0000000..aa6f689 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Soulbomb.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2019532672c73528358028c45bad714214f3a8b4b06795b3b5595dd6b353fb8 +size 6300 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Sound Alarm.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sound Alarm.ogg new file mode 100644 index 0000000..a6070ff --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sound Alarm.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e98098f642820d09a02cdfb1fe77e66a6f2e4a133f6e2fece3d127adeb5920b +size 6735 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Spear of Light.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Spear of Light.ogg new file mode 100644 index 0000000..d0d8897 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Spear of Light.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51d1d0848deca0a9d5ddfe5a2c3d5d0bd4bffa329aa3f11acfa52394d76828ab +size 6629 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Spiked Tongue.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Spiked Tongue.ogg new file mode 100644 index 0000000..d998197 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Spiked Tongue.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba337d42492470b789dded83ad1d81b57352ee3b814455e545e87acb6c420446 +size 7069 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Spray Sand.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Spray Sand.ogg new file mode 100644 index 0000000..71788b2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Spray Sand.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:003f39d4b3d64cd0db99505477269f56e9f4b359c2cf71cb5d1ddc6ae84955a6 +size 7117 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Stasis Trap.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Stasis Trap.ogg new file mode 100644 index 0000000..d459fcc --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Stasis Trap.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:394eff1740e0a171a4716e1ffd6998ffa03ea1b9b3091c1d77cc4ce5ae377314 +size 6984 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Static Nova.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Static Nova.ogg new file mode 100644 index 0000000..6bbab5a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Static Nova.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9a64576ea8efd97dec429776107fe1d77554774cc9cfe083614b01c67ff4326 +size 6909 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Stone Gaze.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Stone Gaze.ogg new file mode 100644 index 0000000..1468c81 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Stone Gaze.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:278ef37c5abefe87f77bf4259e90e209815e580fd59bf303899559ab8fbdbb1f +size 7403 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Streetsweeper.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Streetsweeper.ogg new file mode 100644 index 0000000..9b722c1 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Streetsweeper.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72164456d993a0891604caf6e43c916c7a9f0bb1dd37a7746213f853c977564d +size 7269 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Strike Down.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Strike Down.ogg new file mode 100644 index 0000000..9b01949 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Strike Down.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3be38214686ba45972804574d614cb01ded3a18d822d3879b30087d4c84c8eb +size 6835 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Sultry Heat.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sultry Heat.ogg new file mode 100644 index 0000000..9298ec5 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sultry Heat.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f394c8d0c1eeb92556e61c1557e4815a329b417d4724969a1ca4f2c08f1ec10 +size 6437 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Summon Reinforcements.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Summon Reinforcements.ogg new file mode 100644 index 0000000..bf28e71 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Summon Reinforcements.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8161324fde2d2722c6c92c3f48f8c45f75ec5edd5a91f4edcb9bdaf773902258 +size 8858 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Summon Volatile Energy.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Summon Volatile Energy.ogg new file mode 100644 index 0000000..22aff56 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Summon Volatile Energy.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7c4eb44b454547ca810d728e12f348aa5cdb3840a4852aa5c6201d529177ad6 +size 9030 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Sunder.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sunder.ogg new file mode 100644 index 0000000..fe3f1b6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Sunder.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:987e4eb302094a0e658b37b92e11b08c2769d9ff6fd2786ce29d45cde094ae32 +size 6046 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Surge.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Surge.ogg new file mode 100644 index 0000000..35f60ca --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Surge.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d037e9d910059295ee1712bfbe49540a94db9af8a96f08a3e72bea2fc825d80 +size 6239 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Swirling Scythe.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Swirling Scythe.ogg new file mode 100644 index 0000000..97ed5c9 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Swirling Scythe.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c75f39689558d95de0f23483e4ba1115a42f0b7512e77569e636d5f9128b4ad +size 7322 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Tangled Web.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Tangled Web.ogg new file mode 100644 index 0000000..a5403e8 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Tangled Web.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8f5a829f3e98b942a669616fc84ddf0ae2b6b567781490a99b5290c54ad114a +size 6287 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Teleport.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Teleport.ogg new file mode 100644 index 0000000..86ed1a0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Teleport.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b15e2e6b8b7976fb8ffdbf0fa02fb8c65e24e38aa221ca790c513f78a27609e0 +size 5818 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Thundering Stomp.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Thundering Stomp.ogg new file mode 100644 index 0000000..89efa72 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Thundering Stomp.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ceaa4290ce719b85b7da8e20354ccb10098a4e69715ae9a8a821c02a45ab8dc +size 7304 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Thunderstrike.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Thunderstrike.ogg new file mode 100644 index 0000000..f9ca072 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Thunderstrike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45a5ab093940592f3ade27f23f5ce2977c1df59be5d0eb7ef4f574b7fe965875 +size 6778 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Torrent.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Torrent.ogg new file mode 100644 index 0000000..86855e6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Torrent.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:073ec54850ced1f0f0e2cbf76023613da7c8c88171c7bd7841582d34b00e1deb +size 11303 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Tortured Rage.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Tortured Rage.ogg new file mode 100644 index 0000000..6f45d33 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Tortured Rage.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8a5b2a4e898c6facc551b7fa558dd010a08931fb1f82b3e0770d22ad079d00a +size 8019 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Turn Kick.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Turn Kick.ogg new file mode 100644 index 0000000..a278447 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Turn Kick.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3a38ba8226510884b8117ad0524786e7b009a44de48fdaefe6f17b6c7afaf04 +size 6150 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Unleash Fury.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Unleash Fury.ogg new file mode 100644 index 0000000..54d8454 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Unleash Fury.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7502b2cef46ec3ceba4c9f616151fee59bee21ad95097f88c8213289d772b999 +size 7392 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Unnerving Screech.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Unnerving Screech.ogg new file mode 100644 index 0000000..487c6e7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Unnerving Screech.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59e45e2820cbbfb1d71ee557a9b83acdeea1b36c4c26af98ddcc1669889b6863 +size 8551 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Unruly Yell.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Unruly Yell.ogg new file mode 100644 index 0000000..7e6a168 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Unruly Yell.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a97f0f4f71b184015ca293859f961c9362af03c702b3235c1789cd36e3ef75a3 +size 7384 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Unstable Mana.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Unstable Mana.ogg new file mode 100644 index 0000000..7525c9f --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Unstable Mana.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:450e286fbb14d43d26608c2f41decb48952c03d504b7429186a7fb193b3b20c7 +size 7711 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Vengeful Shear.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Vengeful Shear.ogg new file mode 100644 index 0000000..90664cc --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Vengeful Shear.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7856802ecd3417f3cc74a7f686e85c31371635baa65362f1c9c7bc8181a50a3b +size 7565 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Venom Storm.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Venom Storm.ogg new file mode 100644 index 0000000..6234907 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Venom Storm.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0af89dbd85ce50630985cc63dcda92358ef20ea1e82bd9dfd0f5f6b66a64e6f +size 7729 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Vile Roots.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Vile Roots.ogg new file mode 100644 index 0000000..c88b829 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Vile Roots.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2b5f2085f9187f2c2c559e96fda5b74a1ff808cb57da20daac3f7307cf557fa +size 7141 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Wake of Flame.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Wake of Flame.ogg new file mode 100644 index 0000000..d3d819b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Wake of Flame.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12efaea85fbb23d0824d242275663402cd7abcca919bbb0e443791eac4d2b579 +size 7707 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Whirling Edge.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Whirling Edge.ogg new file mode 100644 index 0000000..69be530 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Whirling Edge.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed339c179638228c30292b156cf2dc2ad14e0a14d71af3de7061066ba664a704 +size 7546 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Whirling Saber.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Whirling Saber.ogg new file mode 100644 index 0000000..ff0e653 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Whirling Saber.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96f2547788434d2759a414e8b9f634db690f6571b9679a3c2ac3e6f3e722c9f2 +size 7181 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Wicked Dagger.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Wicked Dagger.ogg new file mode 100644 index 0000000..8fbd1b4 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Wicked Dagger.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdcb5be05159da86115fb101167c42f84bff191887528e4a535b1ee46292c0fb +size 7380 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Wicked Slam.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Wicked Slam.ogg new file mode 100644 index 0000000..293d4a3 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Wicked Slam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec4779d174d81c9ff0e0b45ae91d8758e47aa29a03848432e49e23c3f6b055a4 +size 8550 diff --git a/WeakAuras/Projects/RaiderSA/out/genericfemale/Will Breaker.ogg b/WeakAuras/Projects/RaiderSA/out/genericfemale/Will Breaker.ogg new file mode 100644 index 0000000..680755a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/genericfemale/Will Breaker.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69f0fb0435a5494598aae80a7a7211a56318921865b232d5ebd3c796f5304cec +size 6738 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Annihilation.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Annihilation.ogg new file mode 100644 index 0000000..54f64fe --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Annihilation.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a9f81db87233db76506e0a3de823d34a203acf667fa315dfbbd415d79cda2a6 +size 7811 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Arcane Blitz.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Arcane Blitz.ogg new file mode 100644 index 0000000..836c7cd --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Arcane Blitz.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1deafa1311614a9c5bb07c833e05804e286c2ca7fb0fc07a5440d49fcf5c371 +size 7656 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Arcane Slicer.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Arcane Slicer.ogg new file mode 100644 index 0000000..a709adb --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Arcane Slicer.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27d57f2413d1d1a7f77e8b04da656a03dba757d61c4fba422e01d94bbbad0788 +size 7735 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Arcing Bolt.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Arcing Bolt.ogg new file mode 100644 index 0000000..7ca1789 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Arcing Bolt.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:689db5de6d890d86a2c4cb9230d504a4399096531ae1ea5f722882dd14af3ec8 +size 6865 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Arrow Barrage.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Arrow Barrage.ogg new file mode 100644 index 0000000..c1a12e8 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Arrow Barrage.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29a7d29574a63c014bd7b9b9e844415e1cc05ba222e41ec63b87813dc9982eff +size 7488 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Bellowing Roar.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Bellowing Roar.ogg new file mode 100644 index 0000000..f02fca7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Bellowing Roar.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5c0a8facb74b376413beeca10e5c57c89ed499b4fc1a7c1486c19ed0e2a1b4c +size 6846 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Bile Breath.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Bile Breath.ogg new file mode 100644 index 0000000..d7fbb47 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Bile Breath.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:786aedd5f47dc4d07076b0034b525eb9c3d15f878e0b9a8dd19c4f941a4dce79 +size 6622 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Blinding Glare.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Blinding Glare.ogg new file mode 100644 index 0000000..c83c39b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Blinding Glare.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6a5ac0134ef4de9954ee00eaade0a3cd42d2ecf72fce3914713f3a5b8f16aea +size 7023 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Bone Chilling Scream.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Bone Chilling Scream.ogg new file mode 100644 index 0000000..b593134 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Bone Chilling Scream.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4582c18a725194d3f365a2c419ba8a936f2c67cdd93584d7b65c18015f788e80 +size 8984 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Bonebreaking Strike.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Bonebreaking Strike.ogg new file mode 100644 index 0000000..4ef83ef --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Bonebreaking Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7080cfb83967cd4c54022c14b4d8fc1ac3d68e904ec39aef0c8b61400648e76e +size 7802 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Bound.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Bound.ogg new file mode 100644 index 0000000..54d9ad9 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Bound.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47e8c25b4b1f3ce76c3fc40b71958eef2f3324ff0310099046b3a74011ff3f64 +size 6111 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Brackwater Barrage.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Brackwater Barrage.ogg new file mode 100644 index 0000000..f1fb3e0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Brackwater Barrage.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20c3b2d32c238d089d846d9792c44212b1db61eb58f13734882722c69813a110 +size 8212 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Breath of Corruption.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Breath of Corruption.ogg new file mode 100644 index 0000000..3bddde3 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Breath of Corruption.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41694b25b0867f6b3389b833815eaa668da15d982dba2d8f98277b025596320f +size 7745 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Brutal Assault.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Brutal Assault.ogg new file mode 100644 index 0000000..419ccab --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Brutal Assault.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb72dd72ec641506c0f477e150ba97c7d1518362e965a50f6689b70e81180b9a +size 7103 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Brutal Haymaker.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Brutal Haymaker.ogg new file mode 100644 index 0000000..5d9567c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Brutal Haymaker.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a9362a67cf227560ba670084eca84faac939de38e789a54e7d056c8dbc79c06 +size 7118 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Burning Blast.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Burning Blast.ogg new file mode 100644 index 0000000..547b7b7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Burning Blast.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b76cc05845363f3b70d4207078fe1018529f000d056d56f47f5576a732fd6f8b +size 6787 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Burning Leg Sweep.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Burning Leg Sweep.ogg new file mode 100644 index 0000000..f2aae11 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Burning Leg Sweep.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1abcd804318f7f28da6fe6f6567a50e5cbfd60c4ace1bfdd4fb7974d73cb048a +size 7692 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Carnage.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Carnage.ogg new file mode 100644 index 0000000..50a3060 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Carnage.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c0127fa97e67caa00fdc4e82a26ce6b338fd75471f1d8e501632f781050913b +size 6284 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Ceaseless Winter.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Ceaseless Winter.ogg new file mode 100644 index 0000000..72cef40 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Ceaseless Winter.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1cf71eabc6a35e32e279a3eaa48efe1e0fb94f8e456bbf1061fcf0fcb13572d +size 7398 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Celerity Zone.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Celerity Zone.ogg new file mode 100644 index 0000000..47bfd27 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Celerity Zone.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ba75359c8d5d60277f0910948d05af1112208ea1c6850c05114a6f1edb8bb4e +size 7437 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Chaotic Energy.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Chaotic Energy.ogg new file mode 100644 index 0000000..4427df4 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Chaotic Energy.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00bd08145bd6ae13967ed6804017ed72779c09a09925684a7049f987ab158c86 +size 8019 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Chaotic Shadows.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Chaotic Shadows.ogg new file mode 100644 index 0000000..735f26a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Chaotic Shadows.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7515474b2768cb039920c0eb8cda9c07048904e1fa763458ba6bd1fb91ba20c6 +size 7337 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Chaotic Tempest.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Chaotic Tempest.ogg new file mode 100644 index 0000000..da2e16c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Chaotic Tempest.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e45afa31b551fe9cd6b249f84b32e7db31d4fc1cf207c6b94f22392422504ba +size 7677 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Charged Blasts.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Charged Blasts.ogg new file mode 100644 index 0000000..3eabc6c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Charged Blasts.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ab122ca2a08aa8f85f14b21bdffe5bd276ee57906d7bb60d2025810506dd043 +size 7792 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Charged Smash.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Charged Smash.ogg new file mode 100644 index 0000000..da46f29 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Charged Smash.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23320841c7d23eea2cb0854331b35e397b0dcdec4a9a6174e28de79e17fdd680 +size 8379 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Charging Station.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Charging Station.ogg new file mode 100644 index 0000000..2e03e30 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Charging Station.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b85009fc07cd6e9d73496c862035ec1149299a718a8b6ad67082fc50495a9d5 +size 7618 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Chilled Blood.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Chilled Blood.ogg new file mode 100644 index 0000000..d15044a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Chilled Blood.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db7f2c4e7ffe76f40ac433b8ff0465c4659c065099e82b0ab87ea0d71772bbaf +size 7059 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Claw Frenzy.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Claw Frenzy.ogg new file mode 100644 index 0000000..5057f16 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Claw Frenzy.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c103e9963cdc4ea9103938695ddd15e4f0ccc91e7b294ee16898be47e7ff3ba +size 7126 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Collapsing World.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Collapsing World.ogg new file mode 100644 index 0000000..058c04b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Collapsing World.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0cb2d6f8d90ec4e2f027a66186714cb4d7670f03c4f6a6d6be68b24185655f0 +size 8224 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Cone of Death.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Cone of Death.ogg new file mode 100644 index 0000000..1140b93 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Cone of Death.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43e5fb59eeb992a9a358d65da0b252df1518007c461720bb4b32fa321ffee06c +size 7145 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Consume Magic.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Consume Magic.ogg new file mode 100644 index 0000000..053033e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Consume Magic.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2dd9a2c258748eba7b137702c17cbca2c81d43dc3c0ef2cb136248284bf9de70 +size 7548 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Consuming Sphere.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Consuming Sphere.ogg new file mode 100644 index 0000000..bd5a6f1 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Consuming Sphere.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ead2c5c16a3a80645c17a5d41ce40bd1dad63fd172f75a586e5e1c1a5b30f9dd +size 8536 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Cosmic Scythe.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Cosmic Scythe.ogg new file mode 100644 index 0000000..83ff728 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Cosmic Scythe.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f928c9fd5d68601488db6ca8e8269fc9d179680c5af38538f4e5ec742615202f +size 7091 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Dark Mending.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Dark Mending.ogg new file mode 100644 index 0000000..c7d225c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Dark Mending.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1be1a57efa0483a308d290dfdae2121176ef14f0b44bf285114336363a8bb46c +size 7207 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Deafening Screech.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Deafening Screech.ogg new file mode 100644 index 0000000..251a77a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Deafening Screech.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ab28ba8859bc147ec6c18379e6e1b4f40aefe57fd780bee2ed0460da9961277 +size 7862 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Debilitating Shout.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Debilitating Shout.ogg new file mode 100644 index 0000000..4aa26cc --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Debilitating Shout.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:470e5a453cf3eb9a2cc0a84b7bc5912ab3bf7b8fe37c0d0de4b790f7bf4d78da +size 8569 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Decimation.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Decimation.ogg new file mode 100644 index 0000000..fce936b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Decimation.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ecd15cc7f9d152e6179abc0afd861ed48dad0fb830ad8d963b172a1eaef1d43 +size 7333 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Demolish.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Demolish.ogg new file mode 100644 index 0000000..aa53715 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Demolish.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37bc761e2b8df670f09d2a4ba039fb7e97c4d389159556e9642a2e87c6d03934 +size 6396 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Demonic Ascension.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Demonic Ascension.ogg new file mode 100644 index 0000000..2652746 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Demonic Ascension.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68f3a1c9f9edf4148954610952ffa618d4751577b7569252217eb0d88b896d85 +size 8228 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Demonic Mending.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Demonic Mending.ogg new file mode 100644 index 0000000..a03b99b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Demonic Mending.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04861f5c5a841c81708f37ddd3264952643a021db1d4a90ffc6ceb55bcce198d +size 7571 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Demonic Upheaval.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Demonic Upheaval.ogg new file mode 100644 index 0000000..89f7d40 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Demonic Upheaval.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ec47d85d5bd03cf07ce183d5a57da84dd66f40daa128dd4d33ed9014b0fc62b +size 7730 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Demoralizing Shout.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Demoralizing Shout.ogg new file mode 100644 index 0000000..a0881f1 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Demoralizing Shout.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfed9ec15f371efd1d5c81f7f60961dc0c3fba7f66af7f2bf7dc37c47fb50247 +size 8202 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Desolate Gaze.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Desolate Gaze.ogg new file mode 100644 index 0000000..a418c0f --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Desolate Gaze.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ce40462d375801c4a29e05284ebef7e5335ddf71c8b730961714d45879b9591 +size 7683 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Detonating Moonglaive.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Detonating Moonglaive.ogg new file mode 100644 index 0000000..8597ff7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Detonating Moonglaive.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9392145fa17dbab6db6c85c69c63d432fe7e94cedef3ac0a554fad036ebf1e8 +size 8264 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Diabolic Bomb.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Diabolic Bomb.ogg new file mode 100644 index 0000000..149f461 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Diabolic Bomb.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17a73dbe1af6f29853e80b1df7dc036b7c02e6f977d7d9f5146f2c5eb85fe4b6 +size 7624 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Dinner Bell.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Dinner Bell.ogg new file mode 100644 index 0000000..693852e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Dinner Bell.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4da293ec39602d6943386f6fa1f7c5fd110758b1f66c17eb33161490a226250 +size 6268 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Disintegrate.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Disintegrate.ogg new file mode 100644 index 0000000..f29d17b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Disintegrate.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc74e0cdbac7ae4c458ac76208f738969a4d385756586d423f0cbab6fc398ad7 +size 7255 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Disintegration Beam.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Disintegration Beam.ogg new file mode 100644 index 0000000..4e11332 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Disintegration Beam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a508ebc1cc70acfe74a8ab46bcc718ee27991192c2aab2274f454583a62a0d2 +size 8395 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Drain Magic.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Drain Magic.ogg new file mode 100644 index 0000000..97d73c4 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Drain Magic.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9200e681feda29eb6630cbfdc669237245aa87fbd2284b5fc169c14e4316c2c7 +size 7127 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Drain.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Drain.ogg new file mode 100644 index 0000000..76e0fdd --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Drain.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d82fb2c147660fc10d76036ba47039b846e28162d91e7c3a98e78c9ffd48ef92 +size 6010 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Dread Inferno.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Dread Inferno.ogg new file mode 100644 index 0000000..755d39b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Dread Inferno.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e8eca5e9ac8d1e0e2604180680ab004da4856cdd25ca4f4b8dc1c30bc4bfaf2 +size 7368 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Echoes of Doom.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Echoes of Doom.ogg new file mode 100644 index 0000000..73cbd85 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Echoes of Doom.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7d89a69562f1070d11d3e26651adb8dded822ec5b53c464e722b597d6e356cc +size 7858 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Empowered Flame Rend.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Empowered Flame Rend.ogg new file mode 100644 index 0000000..4feb8ea --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Empowered Flame Rend.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9e78f5fba7dbfcde97bf987d236dec1fe1c6ccc302c62d5ec5c63d869637571 +size 9519 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Empowered Flare.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Empowered Flare.ogg new file mode 100644 index 0000000..fcc0df2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Empowered Flare.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d16eafb2d6d5a8b36a7233c5015f4b9397a1560e6f92cc9169611a1f37611c8f +size 8115 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Empowered Pulse Grenade.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Empowered Pulse Grenade.ogg new file mode 100644 index 0000000..669d318 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Empowered Pulse Grenade.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac3cb0277941e40709d547c06c127fbc521cb1ed6201f5cc344b11b168a6a3f0 +size 9091 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Empowered Shock Lance.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Empowered Shock Lance.ogg new file mode 100644 index 0000000..a5c419e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Empowered Shock Lance.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60d80edf2918271ea43961516d6c622e6119c5b7feebe0c6105fda09452eea24 +size 10213 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Empowered Shrapnel Blast.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Empowered Shrapnel Blast.ogg new file mode 100644 index 0000000..9dd6717 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Empowered Shrapnel Blast.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1bf8ad1ef5efb8ecc81836af591d9d6260aa16b6fe2c6d07f327814549b6233c +size 10843 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Enflame Corruption.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Enflame Corruption.ogg new file mode 100644 index 0000000..90c082a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Enflame Corruption.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:708c16d8c4e1fcf0ac58dca73bf59a9845f7c2f710827292ecf15cd393344858 +size 8807 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Entropic Mine.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Entropic Mine.ogg new file mode 100644 index 0000000..cb35a65 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Entropic Mine.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:027aa024bc2a6ff8faa043a96f23c0794a02d5dc245c4a6ec163e6c81df22480 +size 8062 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Eradication.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Eradication.ogg new file mode 100644 index 0000000..45423ca --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Eradication.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6335cba2a4c86c98086c134c73f1b458ba91e41bf06832e5853469588fd2b9c7 +size 7189 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Evocation.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Evocation.ogg new file mode 100644 index 0000000..b128bc7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Evocation.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abc52e972ca781b1dab933ec48fd4ded1d7d91c835c3e651b6b8842cbb242753 +size 7033 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Expel Light.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Expel Light.ogg new file mode 100644 index 0000000..40f38b0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Expel Light.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be649de242c35c93f5646a53e7fe99b71b2a29ef8eff5804b4113096bd52e473 +size 7294 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Eye Storm.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Eye Storm.ogg new file mode 100644 index 0000000..51c2f5c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Eye Storm.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85ede0dc9a7b19d9e1a3e673fc02638097d03ad914af31ce8028d22c19268698 +size 6782 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Eye of the Storm.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Eye of the Storm.ogg new file mode 100644 index 0000000..b6d9f50 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Eye of the Storm.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3380508992126f9838ed64b1e185fa969e075d2d622722101ba9af3e9e28964e +size 7845 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Feed on the Weak.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Feed on the Weak.ogg new file mode 100644 index 0000000..5003e08 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Feed on the Weak.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b85d7ec3ac01a0960689c46c4319a78a7d913a7e535490480ae3773cba825f01 +size 7918 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Fel Bombardment.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Fel Bombardment.ogg new file mode 100644 index 0000000..0497063 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Fel Bombardment.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0410c710340e35a671db2bae8b0cbfdc5a20750807b7aff0f14002bbc3d293ed +size 7199 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Fel Breath.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Fel Breath.ogg new file mode 100644 index 0000000..6d5f761 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Fel Breath.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a69dd2559f43972457e1ae072e08fa14e6414ab04493e5bedf9be3a5c84d67f3 +size 6266 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Fel Detonation.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Fel Detonation.ogg new file mode 100644 index 0000000..bac8eb7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Fel Detonation.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83269e857d9923759dd277459ca9ee021992e301d0782097f152e8673764c34a +size 7761 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Fel Fireball.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Fel Fireball.ogg new file mode 100644 index 0000000..f51438d --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Fel Fireball.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43d6c2a1e1760d8797751385a11d77e9040ab086c23190f743de8930b9053be6 +size 6769 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Fel Mortar.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Fel Mortar.ogg new file mode 100644 index 0000000..50da6fd --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Fel Mortar.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd75fef14cbf4d8deaa175f6a6478e5d16ccdad8fad16aa8f76b37d737bff9ab +size 6281 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Felblaze Orb.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Felblaze Orb.ogg new file mode 100644 index 0000000..7d895d5 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Felblaze Orb.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a654652f49790904d3fa53019b833887d499bd47f91410ce760b8a5375e454b +size 7331 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Felsoul Cleave.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Felsoul Cleave.ogg new file mode 100644 index 0000000..3a4b280 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Felsoul Cleave.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9522d7d90ede54410fee475545ef01a1cf9466dbb8b1f2ff643d3a11de96b27c +size 7116 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Fiery Strike.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Fiery Strike.ogg new file mode 100644 index 0000000..17e4a28 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Fiery Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63119f3a0294f63735cf57cd061f6d6c642fa4415db51287802de624c6d4d74c +size 7148 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Flame Rend.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Flame Rend.ogg new file mode 100644 index 0000000..c9df29d --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Flame Rend.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a60d27c3606ad14381c29d07c8cc7d86b03118b1c1e0d77e0ea4425bbd479ed +size 6747 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Flame Wreath.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Flame Wreath.ogg new file mode 100644 index 0000000..7add3b9 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Flame Wreath.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce5bcef7c8f5639b531297aadc6d92503724083032c4b66a8e500acb35612480 +size 6288 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Flare.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Flare.ogg new file mode 100644 index 0000000..7a36fc8 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Flare.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7186f6c0f471af4adb8758599247c2ff495888bf0eb380cedc9ead26c8c1941e +size 5688 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Flashlight.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Flashlight.ogg new file mode 100644 index 0000000..c6a97ec --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Flashlight.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4ea7a296a8473f30c254c92f25970c638d669cf6a5917962bb726e1434d3530 +size 6146 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Floral Fulmination.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Floral Fulmination.ogg new file mode 100644 index 0000000..ae65311 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Floral Fulmination.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54c219339ca0d8d2d29976c962b0a5789b7c3876cca5c3242843e13dd35ec471 +size 8496 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Focused Lightning.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Focused Lightning.ogg new file mode 100644 index 0000000..f7d64f4 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Focused Lightning.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:035e4971c9812449bbf84254e1729a59a19b9aa35fe16743f1639325466fa8fd +size 7540 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Foe Braker.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Foe Braker.ogg new file mode 100644 index 0000000..80db874 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Foe Braker.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ade6e8d9c6deb54081c510f41f264ecc9d4400173b777e0c90f2015c2e0fda21 +size 6203 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Forging Strike.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Forging Strike.ogg new file mode 100644 index 0000000..df624da --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Forging Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6dc9cb71f9804f6eb8cd712bbc1475994517bdbf3c70ae63b7ecf1d6e3200cad +size 7335 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Fragment.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Fragment.ogg new file mode 100644 index 0000000..75bdfbf --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Fragment.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64d04f7b54fd0c6767e6c83aadde4b1ddbd5d9825778388466fadd9562bd7a85 +size 8527 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Frostbite.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Frostbite.ogg new file mode 100644 index 0000000..c6b687e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Frostbite.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c109f783eaa3513cf45c612d28a3ec379bf4e9cc620aa1501255562f911965b8 +size 6497 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Hateful Gaze.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Hateful Gaze.ogg new file mode 100644 index 0000000..49b12bf --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Hateful Gaze.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d885cc2f9a7b024d04f4c88dfcd83abfc8dd2bc9b2e397bcf1394a6dfa119fae +size 7800 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Hatred.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Hatred.ogg new file mode 100644 index 0000000..1b77cc1 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Hatred.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:389c43b2bb27312d2c217fdfe2e0f0988ae8d76bb6332c95ddb114fb43ef132d +size 5922 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Healing Touch.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Healing Touch.ogg new file mode 100644 index 0000000..357a053 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Healing Touch.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6d7dce6d475c5de1541881bf9b1a77ae5d34816477d12db4b7c71cce81e4da9 +size 7095 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Heat Wave.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Heat Wave.ogg new file mode 100644 index 0000000..29efdd4 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Heat Wave.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4c750238769590b6876ebd2a95660e83f7d798ac19b4df749b808f0f23cbd75 +size 6547 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Hinder.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Hinder.ogg new file mode 100644 index 0000000..69a374f --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Hinder.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e264aab215ab433a769655f63b6e7344cc81d0c4d5d52d1068be912a79f67023 +size 5688 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Holy Radiance.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Holy Radiance.ogg new file mode 100644 index 0000000..6509de1 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Holy Radiance.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3aa631913b91ca0f30b0f3205988e02f839eaf6ccf5ddaca37d5c9b18fadaf77 +size 6848 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Horn of Valor.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Horn of Valor.ogg new file mode 100644 index 0000000..3b4de3c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Horn of Valor.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c3b95182a8b28210f81b113fc7ad2aaa0b67c440b252a124dbbfa71d416366c +size 7321 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Inferno Bolt.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Inferno Bolt.ogg new file mode 100644 index 0000000..64e2ef4 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Inferno Bolt.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:146eabf8a6c12b7b7f8b07679a4673be88a66f134ebcdb9048d2221bce7eaaf0 +size 7191 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Intangible Presence.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Intangible Presence.ogg new file mode 100644 index 0000000..58217a8 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Intangible Presence.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d329b37c88caaf2c6962d21b12b49578abf54f7e50dfa10bc825297843f40c41 +size 9217 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Iron Whirlwind.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Iron Whirlwind.ogg new file mode 100644 index 0000000..f53f9f3 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Iron Whirlwind.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d47df53ff146132c96a1817a32a02df09588597e8ff998d99b677b3674c325af +size 7348 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Kara Kazham.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Kara Kazham.ogg new file mode 100644 index 0000000..54c8f13 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Kara Kazham.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c59e5156ec1d49b53c55e9b588080400b9f63f1b811a680068fb6145d8293d7c +size 6967 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Knife Dance.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Knife Dance.ogg new file mode 100644 index 0000000..9852b71 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Knife Dance.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d45be09eab869e3cfee14d11e88f91ec57578b8e217537c6d5aa73f942d4ce3 +size 7228 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Landslide.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Landslide.ogg new file mode 100644 index 0000000..afcaeed --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Landslide.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9863c559512cf8dbc0716eaba1627f854143e88b14af05f7d92e047c3c2a72aa +size 6858 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Lantern of Darkness.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Lantern of Darkness.ogg new file mode 100644 index 0000000..7fbfca0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Lantern of Darkness.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e936c035b24ee4f05b78a330aa147706093834d501839273a56bd20908c89617 +size 9160 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Lava Wreath.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Lava Wreath.ogg new file mode 100644 index 0000000..84d7ae6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Lava Wreath.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b724cdcb156a7e30b03a3dd44e823ee390ef373b25699f61dda79d4ab119c5b +size 6772 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Leech Life.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Leech Life.ogg new file mode 100644 index 0000000..93251c7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Leech Life.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd6387fd80de48f1beea944c8a8872c2617555aec8d0a97ffec078e15ef37592 +size 6598 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Lifebloom.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Lifebloom.ogg new file mode 100644 index 0000000..9c43802 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Lifebloom.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66ba0c04902d0631bd44bc1eb4f067fee69a626763729f61afcf83be6c972336 +size 7131 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Lightning Breath.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Lightning Breath.ogg new file mode 100644 index 0000000..ee818e1 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Lightning Breath.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e13912f08dec83a51c75af56bf727999d37aa29baa12d833587de88106afffa +size 6997 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Lingering Gaze.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Lingering Gaze.ogg new file mode 100644 index 0000000..9a6e452 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Lingering Gaze.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8caf92342dc88fef4ec8b2a3b1de5387396a27bfb8e50e008359921a6d7b8921 +size 8109 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Maddening Roar.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Maddening Roar.ogg new file mode 100644 index 0000000..b8a214a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Maddening Roar.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a467296d074cb34db3114267031f714b6d093a0d7fdaec2f8b769ac92077085c +size 7110 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Magic Magnificent.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Magic Magnificent.ogg new file mode 100644 index 0000000..17f0fc4 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Magic Magnificent.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7ab1e43d83fccf356549b716ed07e2b118908adb76e4c84d838af1faad0b7b5 +size 8586 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Mana Fang.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Mana Fang.ogg new file mode 100644 index 0000000..41e0e56 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Mana Fang.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7706e060a417b43a2cb7f57266adb9f48185ea23e4d1e5e4d76ebd5542f3c1b8 +size 6725 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Marked Prey.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Marked Prey.ogg new file mode 100644 index 0000000..0a861e5 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Marked Prey.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c49ca408e551957949da8fad1f43843a300e1a7faef242f22c635cd067d3a4d +size 6873 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Mass Repentance.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Mass Repentance.ogg new file mode 100644 index 0000000..061c7a5 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Mass Repentance.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23b8ca867164bf0426374e18d9cee2e953da80573b02ea04cf1cce20d492ef1d +size 7686 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Meteor.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Meteor.ogg new file mode 100644 index 0000000..0d5ad04 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Meteor.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5264ecbf2a0a5638ed5f52b2f0bb1437947565ed73c3e326696e90086647d2bd +size 5928 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Mighty Slam.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Mighty Slam.ogg new file mode 100644 index 0000000..a230f5e --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Mighty Slam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b774c796272840ad7b50fb7b63266425be3df78e527bd412c78b1b52a0032c2 +size 8010 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Misery.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Misery.ogg new file mode 100644 index 0000000..32efeac --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Misery.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8434d70da828949db7ea7aca22d941954d2b7ad728b2b06e237ea2224df28665 +size 6030 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Molten Crash.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Molten Crash.ogg new file mode 100644 index 0000000..a291acf --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Molten Crash.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c079741f38121c7854df25123a49b360bebbbf586253fc5f79e9b2bf91a9d5c +size 8578 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Molten Touch.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Molten Touch.ogg new file mode 100644 index 0000000..55e781d --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Molten Touch.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f984d1a3640b32fdd9c8d204425fdbafa86b80262b6e66cab1511ef69a20701c +size 7074 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Mortal Strike.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Mortal Strike.ogg new file mode 100644 index 0000000..27eb1c6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Mortal Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:902fae28b3ba09bd2a314bfa5c4b52db0727dd7a641796753ac09816cf5d1a5d +size 6827 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Necrotic Embrace.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Necrotic Embrace.ogg new file mode 100644 index 0000000..0dfdd02 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Necrotic Embrace.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be3b18edb4a99792099fac3bfdfadb3130f717c4ff126d5fa159905029875786 +size 9427 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Nether Venom.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Nether Venom.ogg new file mode 100644 index 0000000..af7a89b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Nether Venom.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bac888ce674258a7d7e20f31164e5c96baa5a7ca77709ea516168816c659be59 +size 6957 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Nightmares.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Nightmares.ogg new file mode 100644 index 0000000..f0478cb --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Nightmares.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:238b17158306477438b405141032bb937f228c949a4c1dc89755b862ef87c704 +size 6641 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Nullification.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Nullification.ogg new file mode 100644 index 0000000..9043b84 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Nullification.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:411b1cb982bab657e2047c0211588b66e8e773f807bd68990fee141458accdd8 +size 6917 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Overcharge Mana.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Overcharge Mana.ogg new file mode 100644 index 0000000..d1400a1 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Overcharge Mana.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11e1567c52b5ebae48137e74d924bb727f4b5e23850b418fb05b1891c60455b3 +size 8218 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Penetrating Shot.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Penetrating Shot.ogg new file mode 100644 index 0000000..3c0513a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Penetrating Shot.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6493fd39cb32b45b7f294e37dcad3bc29fb2109505d8adbb961f72c675be9795 +size 7245 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Phase Breach.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Phase Breach.ogg new file mode 100644 index 0000000..a83a6e2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Phase Breach.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4812377d2820a3c1985c6d0715581e43480361ed3131f58d830cdadc61ea634 +size 8152 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Piercing Gale.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Piercing Gale.ogg new file mode 100644 index 0000000..b8b60cc --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Piercing Gale.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf83a2bcf4ee0870a194ec8b28087009a53a3e2686961fbf7ad6596d3c8abc91 +size 7251 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Piercing Missiles.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Piercing Missiles.ogg new file mode 100644 index 0000000..f4309e9 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Piercing Missiles.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02e3807d3daa1d6ce65672481abcf1017c86e0c3ce7008c15461ac0e240ca868 +size 7577 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Piercing Shards.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Piercing Shards.ogg new file mode 100644 index 0000000..57fb400 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Piercing Shards.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:777d4eaacd999aa715e83d1457b538135fe181bc0386a671286bfd025025a940 +size 8485 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Polymorh Fish.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Polymorh Fish.ogg new file mode 100644 index 0000000..10dc347 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Polymorh Fish.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9d1f1b41aada9a7b28cab681c3d6e3e4b4b7cca8fed15a1ae59123ae179f26a +size 7528 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Prophecies of Doom.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Prophecies of Doom.ogg new file mode 100644 index 0000000..57a14d0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Prophecies of Doom.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d05943923135df7ae50df8f26171eec0cf631e29813e791e51a34d6c46d18278 +size 8088 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Pulse Grenade.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Pulse Grenade.ogg new file mode 100644 index 0000000..b5117c1 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Pulse Grenade.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8dd0f777d7cb3097dd54b6e7f22f92e904f9f7eee619c659558c65c69b6db2a2 +size 7757 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Quarantine.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Quarantine.ogg new file mode 100644 index 0000000..e2578d4 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Quarantine.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec3f7deed0f643720b1c45493abf119f077af9ba93c3d719283893ba552bd00f +size 6983 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Quelling Strike.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Quelling Strike.ogg new file mode 100644 index 0000000..10d07cd --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Quelling Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:287621d9da5f6653fd07c0bfbac2a9df6c9ac1306b3350cbfd33f726d3209d0d +size 6731 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Radiant Tempest.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Radiant Tempest.ogg new file mode 100644 index 0000000..d135e7f --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Radiant Tempest.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a26d5104ff12a006ae88a21067bf5ff8ce026485dfd3245b7b0fd59e26e293a +size 8233 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Ragnarok.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Ragnarok.ogg new file mode 100644 index 0000000..4d7d0c0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Ragnarok.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1177ed2a30db497d7cbc9a1b26b417f6c0b8195bbf55a8949fcb308ecb585c03 +size 6092 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Rampage.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Rampage.ogg new file mode 100644 index 0000000..3e3f5de --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Rampage.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df2310040a0dc69c3ee54432b960072bf85ae585a871983230f458fad6bdcad4 +size 6971 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Rapid Rupture.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Rapid Rupture.ogg new file mode 100644 index 0000000..537b2f9 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Rapid Rupture.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8017930e61d8d45baa38df2ecf9546bf6e848df640c199f011da079f875f1f0c +size 7200 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Ravenous Blaze.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Ravenous Blaze.ogg new file mode 100644 index 0000000..8c9fbc4 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Ravenous Blaze.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e387698168770a3d989a90ebc8a26ff4b9ef1a7246a77a0b8250871bfb8d58d +size 8470 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Razor Shards.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Razor Shards.ogg new file mode 100644 index 0000000..64cf195 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Razor Shards.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1f6886ccd0753ab6db0a44615b6834efb0cf1b98b50fba9f7eae7d3f6531032 +size 7613 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Reality Tear.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Reality Tear.ogg new file mode 100644 index 0000000..02b7789 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Reality Tear.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:913ce49872c9a97dfe7d03e51ea2e9251482d2594bcf41515fba9f1d58e8c783 +size 8139 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Reap Soul.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Reap Soul.ogg new file mode 100644 index 0000000..1cb4957 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Reap Soul.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b22841e3eef4b6d0b063964027574c2543762f2bbd0d1b155af94cc91114086 +size 7723 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Rejuvenating Waters.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Rejuvenating Waters.ogg new file mode 100644 index 0000000..ef7af62 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Rejuvenating Waters.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b473ecfd02d3e76b4cad581bf7957311db8d05822e06779135dbba961a20108 +size 9010 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Rejuvenation.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Rejuvenation.ogg new file mode 100644 index 0000000..6df2677 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Rejuvenation.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:457a7554ff0e713b67ab945a7346bac461a90b7d8bfee8ab83f37063763cab06 +size 7558 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Reverberating Strike.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Reverberating Strike.ogg new file mode 100644 index 0000000..16653fe --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Reverberating Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d157c5e309c4b2d5add627c4c4bab403b6895872953070893f0bb7c9e72d95cb +size 8390 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Roiling Storm.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Roiling Storm.ogg new file mode 100644 index 0000000..172e7d2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Roiling Storm.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8ab603eb7f2d3c0470819856c17b0fea50794b1bc57a0b329922a8a40900a1f +size 7707 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Ruiner.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Ruiner.ogg new file mode 100644 index 0000000..3f6ad6b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Ruiner.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:037bff5a30cd406b81aeca3c11adf58240354e7e31275697dcd196ab750fdda8 +size 6392 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Rune of Healing.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Rune of Healing.ogg new file mode 100644 index 0000000..84505c1 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Rune of Healing.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25f63afbdc816f3b4bdaa1f1bda33025832d4b465bead5e2c29b089b47b42c2b +size 7067 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Runic Band.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Runic Band.ogg new file mode 100644 index 0000000..ce1e735 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Runic Band.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba381969b94f6de7136c627a73b0d1c8a2edfbac3a5894cd21ef27f633a207ce +size 7264 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Sacred Ground.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Sacred Ground.ogg new file mode 100644 index 0000000..53b3af0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Sacred Ground.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff4b1e964814cee17df6b2eaaa44593f503796af8d548c4699ebd8948871bc62 +size 7738 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Sacrifice Soul.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Sacrifice Soul.ogg new file mode 100644 index 0000000..ae34a76 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Sacrifice Soul.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10ebead65c48380c373f6f44d78747197a310456482a0a101900f45fd847fdb6 +size 8755 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Sanctify.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Sanctify.ogg new file mode 100644 index 0000000..f31bfc8 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Sanctify.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e28d4fb3d5ee76322d6e2a373addb83aa46734daf87dda4e338fc1380396c5a +size 6871 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Sandstorm.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Sandstorm.ogg new file mode 100644 index 0000000..a531200 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Sandstorm.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0186500b2deae4f0bcfcd511fa378d4fe113f620a420a09cd3b08d217656d5d +size 7043 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Scornful Gaze.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Scornful Gaze.ogg new file mode 100644 index 0000000..52359bd --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Scornful Gaze.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a6eeb40ba2db8e95bbd71936787e003656ed7a13ee4be835e15f8bafbe1e860 +size 8430 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Screams of the Dead.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Screams of the Dead.ogg new file mode 100644 index 0000000..0a80ded --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Screams of the Dead.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47f429930ef42fdebe56671ec74f6fe8bf61b5e5dfc5a16804c37efa14589355 +size 7494 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Sea Legs.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Sea Legs.ogg new file mode 100644 index 0000000..700e7cb --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Sea Legs.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:359954b661b9380ab24316bf2578b480bc95b73a7ef085a25811c647f54c9be7 +size 7003 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Seal Magic.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Seal Magic.ogg new file mode 100644 index 0000000..96445f3 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Seal Magic.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a20db8768d3e7521cb31f5b4ee4cbe6795e5b1b06009fcc64a166260d50ad1e6 +size 6698 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Sever.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Sever.ogg new file mode 100644 index 0000000..700cecf --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Sever.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac76f6c4ecacbf09ccf6cd453ed5797fb9009f12e4e6e63d85a48d19ddc8a085 +size 6890 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Severe Dusting.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Severe Dusting.ogg new file mode 100644 index 0000000..2c32f33 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Severe Dusting.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43e4e2af419638aedad53a4ac9d18dc22836db5904fab170670b1e8d6bfc7014 +size 7874 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Shackles of Servitude.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Shackles of Servitude.ogg new file mode 100644 index 0000000..588f577 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Shackles of Servitude.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f600ffecb874c8bfa3fd6bbde64b16ef99d0f9edf8330ef9656ab304bdf2c2df +size 8395 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Shadow Blades.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Shadow Blades.ogg new file mode 100644 index 0000000..666ac94 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Shadow Blades.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:485f6e08e84366e65bcd5117912bc94a00e48af45335eb8bec906e0ef00f39e3 +size 7569 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Shadow Bolt Volley.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Shadow Bolt Volley.ogg new file mode 100644 index 0000000..dcd0975 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Shadow Bolt Volley.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f281c382ea9f6545a2b5f0c9e8baa549c5be96283293d9f34e1295a7cea2ad2 +size 7395 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Shadow Crash.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Shadow Crash.ogg new file mode 100644 index 0000000..4f9e9ac --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Shadow Crash.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:835bc833251f4b3c53a0fd4398681e13d180ac1aa6e332dc8a7115c5c8311bf0 +size 6959 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Shadow Rejuvenation.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Shadow Rejuvenation.ogg new file mode 100644 index 0000000..3e5ef3c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Shadow Rejuvenation.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2addb3adc3b9e628c09a25932dbf8bc8a1bcef981d448b21dbaba8405ad71f4 +size 8825 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Shadow Strike.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Shadow Strike.ogg new file mode 100644 index 0000000..e9c8d7b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Shadow Strike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0185f548a015253fab614f692cf946e8abaeae02a79ee99d0364941e98db710 +size 6854 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Shadow Sweep.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Shadow Sweep.ogg new file mode 100644 index 0000000..f9786f7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Shadow Sweep.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bbbdb15ab6151f1c3f9413436ce084b2fd1925f9f5734b2cae4ca3adb4c11b0 +size 6216 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Shadow Wall.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Shadow Wall.ogg new file mode 100644 index 0000000..60adb17 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Shadow Wall.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a395364d57769f7d1c5a4574c24c3ef2de0517203a65280a723fc211b92015a +size 6558 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Shared Suffering.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Shared Suffering.ogg new file mode 100644 index 0000000..1e6f551 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Shared Suffering.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4f1d197c85d6fab06cbd9f6ba66cee74de7294c04851d13d5a7eb2ccb159ac3 +size 6679 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Shield of Light.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Shield of Light.ogg new file mode 100644 index 0000000..4c434a0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Shield of Light.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:921f750555e8792c4283339979d42a5266177697255b3c23dd90dbfeca8e7f25 +size 7038 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Shivan Pact.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Shivan Pact.ogg new file mode 100644 index 0000000..e0c5aee --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Shivan Pact.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74d13fa94ed9a55db5224cd4e60b6d47db608749a737eba973fd5f00be960bd8 +size 7070 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Shock Lance.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Shock Lance.ogg new file mode 100644 index 0000000..569626a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Shock Lance.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c4a657fe5fd4e1aafe833c940493bb8d04618a68c70d82be42b800ce4cccc02 +size 6919 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Shockwave.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Shockwave.ogg new file mode 100644 index 0000000..82af32f --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Shockwave.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99d7f4025deb2a9ee05b8d54a4354423f0938f69dc914da4a5274915d6d04cb6 +size 6912 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Siphon Corruption.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Siphon Corruption.ogg new file mode 100644 index 0000000..efeae60 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Siphon Corruption.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d257434a93b230474d86f17659ef937f51006d51b92019dbb9ececd35f127f1 +size 8663 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Six Pound Barrel.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Six Pound Barrel.ogg new file mode 100644 index 0000000..7b2b63b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Six Pound Barrel.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:145df497b3d40c9a4ca60cd58d48cf76621712737292edb28dca7370a12447f9 +size 8382 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Sleep Canister.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Sleep Canister.ogg new file mode 100644 index 0000000..1e6e07b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Sleep Canister.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48fecd2ba178ea1cbdae622b001d6f590928fdec7aeadc082a181af0c991816d +size 7374 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Slicing Maelstrom.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Slicing Maelstrom.ogg new file mode 100644 index 0000000..e6cda60 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Slicing Maelstrom.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:221582502b74c409bc621653d8478dcb65b6b5a26e1c3a98b5399329e547674e +size 8285 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Soul Echoes.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Soul Echoes.ogg new file mode 100644 index 0000000..e125de9 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Soul Echoes.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:247c60f958977992f908b3523341e5768a5fe58608e515be57faa6a2ac0c527c +size 8109 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Soulblight.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Soulblight.ogg new file mode 100644 index 0000000..8ac4a09 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Soulblight.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f66e5fa68d04df3aa82d6823ebf6ae3247d0e5129843822040bd76f738cd3490 +size 6297 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Soulbomb.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Soulbomb.ogg new file mode 100644 index 0000000..60bef6d --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Soulbomb.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35a9ab24123bd67ea5c9405c2d314692e2a8346a5bb39f378d3ac50ba4145960 +size 7210 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Sound Alarm.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Sound Alarm.ogg new file mode 100644 index 0000000..ae5ad31 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Sound Alarm.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93a46874ac8d04ee9bbf2669ca468c19a9e6c4f36b8634ffa8a497a9b162c82d +size 7132 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Spear of Light.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Spear of Light.ogg new file mode 100644 index 0000000..dacec3a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Spear of Light.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:539385fb3ee00b680409bd5de79821489f347e3ed081cd5b5d97828d51fa25b2 +size 7008 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Spiked Tongue.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Spiked Tongue.ogg new file mode 100644 index 0000000..2cb7ace --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Spiked Tongue.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35bfb0896a1f9c28afb51ef6f3515f6775ac36a2c72a6e655c3fd6ebfc5fd3db +size 7360 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Spray Sand.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Spray Sand.ogg new file mode 100644 index 0000000..255e201 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Spray Sand.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1a27cccb86046ac670efa40112f3ca6a8591456b421aeeda54afad467f4afa6 +size 6696 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Stasis Trap.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Stasis Trap.ogg new file mode 100644 index 0000000..9f52e25 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Stasis Trap.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1313c84597858861c50c4cc4189ffa5c3ece90be7b41df9dc8bc576937a00bac +size 7115 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Static Nova.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Static Nova.ogg new file mode 100644 index 0000000..7dbc581 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Static Nova.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40871f18dd49e55788f0dd5e5fed825ebcf05f6d6800d5be6b8be200c8abfb09 +size 7006 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Stone Gaze.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Stone Gaze.ogg new file mode 100644 index 0000000..b27e0c1 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Stone Gaze.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af3767b07664848744852d897a2d2981e7bbd03f5b7d5ef8e4f92eff3a4dc057 +size 7744 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Streetsweeper.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Streetsweeper.ogg new file mode 100644 index 0000000..b64fb68 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Streetsweeper.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97cdbbb07befefa8f3b3ebb2159ee6c9d6d333d69c30b4e0b6b6726b12e470ca +size 8466 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Strike Down.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Strike Down.ogg new file mode 100644 index 0000000..f16a2cb --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Strike Down.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:409d804c1a4da79849512c8fce2cd109cd8071a1a10830e4bf656e8884f71e53 +size 6164 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Sultry Heat.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Sultry Heat.ogg new file mode 100644 index 0000000..af5d7f0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Sultry Heat.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06217430babb7771bf508d9b7ceac8f309de21270fa96c8b689f447c366b77c0 +size 6771 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Summon Reinforcements.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Summon Reinforcements.ogg new file mode 100644 index 0000000..65d9ac6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Summon Reinforcements.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69bddb1e67cc2c905e4357e39d9295c3a13f0f0bfde09929852e683034a889e0 +size 9642 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Summon Volatile Energy.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Summon Volatile Energy.ogg new file mode 100644 index 0000000..2a8153a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Summon Volatile Energy.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdecc84100a57d528cf25843b0329c209ef4d2c05bb0bf11a9ae73b7bed8ad98 +size 9326 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Sunder.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Sunder.ogg new file mode 100644 index 0000000..4701a42 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Sunder.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33ad3dce015914db96369337265c5bfb6ee878cf667daab1616b119a4b11c650 +size 7674 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Surge.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Surge.ogg new file mode 100644 index 0000000..44fdb0f --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Surge.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6b372c8f0ffe9eca9f10964511896aa0c9086d140de1e71a85d1e68bf2a0c28 +size 6161 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Swirling Scythe.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Swirling Scythe.ogg new file mode 100644 index 0000000..f42d07f --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Swirling Scythe.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5819fec2280c2c5b2c9c307fd6717ab2c1a48341cf859c0d65615159d81a6173 +size 6997 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Tangled Web.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Tangled Web.ogg new file mode 100644 index 0000000..bb3f029 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Tangled Web.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bfcfa1bdccabed4ee218b3d8017840baf8b85146a45aaaf8cf5026e976f1478c +size 6805 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Teleport.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Teleport.ogg new file mode 100644 index 0000000..a5ce4e5 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Teleport.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e9e28afc0fc9a1fefc730c638607d884d0cc89f3b22e62607fbfdf9e080ad4a +size 6067 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Thundering Stomp.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Thundering Stomp.ogg new file mode 100644 index 0000000..920ee55 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Thundering Stomp.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cb8747a139210e16fff05febec82b981a6f36e09fdf2fc3699b11c8d99beecc +size 7449 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Thunderstrike.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Thunderstrike.ogg new file mode 100644 index 0000000..9f019a8 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Thunderstrike.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a29067c830f97f7879b282f3bc9fb8832c811e4afe54b406f62d3c20b65be7d2 +size 6278 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Torrent.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Torrent.ogg new file mode 100644 index 0000000..5d4be2d --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Torrent.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:577dc180b30833ec401936523e54fbd385c97d616c05e46effdc14e618f6bf77 +size 6054 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Tortured Rage.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Tortured Rage.ogg new file mode 100644 index 0000000..65e9bc7 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Tortured Rage.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a6e95ebeea6392b3a0733bec7f744bb307871db813c18727c84933ca6aed6b9 +size 8298 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Turn Kick.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Turn Kick.ogg new file mode 100644 index 0000000..71eec3d --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Turn Kick.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab014ebc145cc311dfa3a2cd5f1b2e47872a05037fa8a7c4df95aeb3a48f7780 +size 6203 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Unleash Fury.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Unleash Fury.ogg new file mode 100644 index 0000000..9acf252 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Unleash Fury.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcb9e456255b4da3af0d5d82e36110e805b9aa2383dd7b7740882200516f57a6 +size 6705 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Unnerving Screech.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Unnerving Screech.ogg new file mode 100644 index 0000000..03fdf19 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Unnerving Screech.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3daffe64986fc55cc924ec20eb21002282d5bbf25506007d4b2d611e5534b44 +size 8789 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Unruly Yell.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Unruly Yell.ogg new file mode 100644 index 0000000..c9efcbb --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Unruly Yell.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88bb844dfa51723feb30262806d02310a0fed88aeaec98b770027d770cf746d5 +size 6960 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Unstable Mana.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Unstable Mana.ogg new file mode 100644 index 0000000..bee65a2 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Unstable Mana.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3dbfa994d1221a2837900d90a9cfca595eb0c00f702f43110a499363b444b032 +size 7463 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Vengeful Shear.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Vengeful Shear.ogg new file mode 100644 index 0000000..7d2d837 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Vengeful Shear.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:031ef2ce3e8c0143ed099048bc32a6ffca3e6a2b10e3289f1e626c763e11cbf5 +size 7583 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Venom Storm.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Venom Storm.ogg new file mode 100644 index 0000000..9671dc6 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Venom Storm.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ed9b86a32fe62944d6e53c92c66b552bcc2e280a79b668404fa8523f09eb471 +size 9395 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Vile Roots.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Vile Roots.ogg new file mode 100644 index 0000000..6b1da75 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Vile Roots.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75ce3d4a33cd554c01fbcb5ca7624b8fa21bb23abb9849b11a92a0d38e058574 +size 7686 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Wake of Flame.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Wake of Flame.ogg new file mode 100644 index 0000000..554b57b --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Wake of Flame.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9fa1ea1372f8a2df1d3755a293790771b5341a712e9bbc4e818e1cc8f48b3aa +size 7542 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Whirling Edge.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Whirling Edge.ogg new file mode 100644 index 0000000..3e719fa --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Whirling Edge.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0669471066b916846963d8b3ada02e4f9aaa5f9f74d5b76657e571cf657e0a9 +size 7975 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Whirling Saber.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Whirling Saber.ogg new file mode 100644 index 0000000..3cfa42f --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Whirling Saber.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d01525d319f3a3f577973a5be97eea6c350be920a8c3ac384d3ef459e0308b38 +size 7535 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Wicked Dagger.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Wicked Dagger.ogg new file mode 100644 index 0000000..a8822e0 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Wicked Dagger.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6a718655782a3d04bbb238659380a64a88b81436f2b4054fa4735d6e0e0a96f +size 6808 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Wicked Slam.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Wicked Slam.ogg new file mode 100644 index 0000000..7cd3d4d --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Wicked Slam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcb9d1c3af7859100db4ad80b5975c326cfd559ba675274f23a1620cd32d51d8 +size 7532 diff --git a/WeakAuras/Projects/RaiderSA/out/trump/Will Breaker.ogg b/WeakAuras/Projects/RaiderSA/out/trump/Will Breaker.ogg new file mode 100644 index 0000000..3a66aad --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/out/trump/Will Breaker.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba2ee1b622fc729bf9c623c3548d9e7452f9b2b0c4b5aa2c19e8111981afcacd +size 6641 diff --git a/WeakAuras/Projects/RaiderSA/runtts.sh b/WeakAuras/Projects/RaiderSA/runtts.sh new file mode 100644 index 0000000..995b665 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/runtts.sh @@ -0,0 +1,13 @@ +#!/bin/sh +model=tts_models/multilingual/multi-dataset/xtts_v2 +mkdir out +if [ ! -t 0 ]; then + while IFS= read -r line; do + tts --text "$line" --model_name $model --speaker_wav samples/genericfemale.wav --language_idx en --out_path out/$(echo $line | sed 's/ /_/g').wav + done +else + for word in "$@"; + do + tts --text "$word" --model_name $model --speaker_wav samples/genericfemale.wav --language_idx en --out_path out/$(echo $word | sed 's/ /_/g').wav + done +fi diff --git a/WeakAuras/Projects/RaiderSA/samples/animedangerboy.wav b/WeakAuras/Projects/RaiderSA/samples/animedangerboy.wav new file mode 100644 index 0000000..e987395 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/samples/animedangerboy.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:183c59b5e6a16421e8ae320b6066d4115f8070e3df4d09b55aca632cbd902026 +size 5292078 diff --git a/WeakAuras/Projects/RaiderSA/samples/animegirl.wav b/WeakAuras/Projects/RaiderSA/samples/animegirl.wav new file mode 100644 index 0000000..9cc251c --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/samples/animegirl.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a16fa70a8263da16bfc6f0c155d20f5ba1a86fc84899ae295f4ab65fad675621 +size 4939278 diff --git a/WeakAuras/Projects/RaiderSA/samples/boberkurwa.wav b/WeakAuras/Projects/RaiderSA/samples/boberkurwa.wav new file mode 100644 index 0000000..8c388aa --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/samples/boberkurwa.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:157d0f32a38589f8ba9913b262438631b519e6bdaea9077ad679013f86958191 +size 3838830 diff --git a/WeakAuras/Projects/RaiderSA/samples/genericfemale.wav b/WeakAuras/Projects/RaiderSA/samples/genericfemale.wav new file mode 100644 index 0000000..2de3a40 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/samples/genericfemale.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89a4fa9a16b6463f852cf9424f72c3d3c87aa83010e89db534c53fcd1ae12c02 +size 1002030 diff --git a/WeakAuras/Projects/RaiderSA/samples/trump.wav b/WeakAuras/Projects/RaiderSA/samples/trump.wav new file mode 100644 index 0000000..fb36f84 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/samples/trump.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ea2cb957ce238cdd39356367936b1b0733010cddd9426f873b4c417735c08c7 +size 8467278 diff --git a/WeakAuras/Projects/RaiderSA/speedify.sh b/WeakAuras/Projects/RaiderSA/speedify.sh new file mode 100644 index 0000000..e6d4db4 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/speedify.sh @@ -0,0 +1,5 @@ +#!/bin/bash +for file in "$@"; +do + ffmpeg -i $file -filter:a "atempo=1.8" $(echo $file | sed 's/.wav//g')-speedy.wav +done diff --git a/WeakAuras/Projects/RaiderSA/test.sh b/WeakAuras/Projects/RaiderSA/test.sh new file mode 100644 index 0000000..a97abb3 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/test.sh @@ -0,0 +1,8 @@ +IFS=$'\n' +for model in tts_models/en/ek1/tacotron2 tts_models/en/ljspeech/tacotron2-DDC tts_models/en/ljspeech/tacotron2-DDC_ph tts_models/en/ljspeech/glow-tts tts_models/en/ljspeech/speedy-speech tts_models/en/ljspeech/tacotron2-DCA tts_models/en/ljspeech/vits tts_models/en/ljspeech/vits--neon tts_models/en/ljspeech/fast_pitch tts_models/en/ljspeech/overflow tts_models/en/ljspeech/neural_hmm tts_models/en/vctk/vits tts_models/en/vctk/fast_pitch tts_models/en/sam/tacotron-DDC tts_models/en/blizzard2013/capacitron-t2-c50 tts_models/en/blizzard2013/capacitron-t2-c150_v2 tts_models/en/multi-dataset/tortoise-v2 tts_models/en/jenny/jenny tts_models/es/mai/tacotron2-DDC tts_models/es/css10/vits +do + filename=$(echo $model | awk -F "/" '{print $4}') + mkdir out/$filename + echo "$(cat words.txt | grep -v '#')" | xargs -I% -P2 -- tts --text "%" --model_name "$model" --out_path out/$filename/$(echo % | sed 's/ /_/g').wav + # echo "$(cat words.txt | grep -v '#')" | xargs -I% -P8 -- echo "%" +done \ No newline at end of file diff --git a/WeakAuras/Projects/RaiderSA/tts_output.wav b/WeakAuras/Projects/RaiderSA/tts_output.wav new file mode 100644 index 0000000..c216f90 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/tts_output.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e083bcc8eb13551e86d6f2a69da5f302da3bb699180cd16d0463c14a8171f116 +size 1732332 diff --git a/WeakAuras/Projects/RaiderSA/weakaura/init.lua b/WeakAuras/Projects/RaiderSA/weakaura/init.lua new file mode 100644 index 0000000..388469a --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/weakaura/init.lua @@ -0,0 +1,955 @@ +-- Maybe add an option for debuff applied to player +-- Add spell ids; there's way too many duplicate spells by name +-- Also make proper project with git and shit +-- Also sound sounds into sound packs or something +-- Do like sound/general sound/trump etc +-- Make a perma storage array with list of spells by occurrence +-- With the goal of hopefully finding some spells that trigger 0 times +-- Which might be an indication of an invalid ID or alike +-- Add an "on you" voiceline for when the player is target (like is on you) + +local soundPack = "genericfemale" +-- local soundPack = "trump"; + +--INIT +-- 1 = trigger on cast start +-- 2 = trigger on cast success +-- 3 = trigger on both +aura_env.spells = { + -- ##################################################################################### + -- ### DEBUG ### + -- ##################################################################################### + -- ##774!3 + -- ##33763!3 + -- ##5185!3 + -- ##################################################################################### + -- ### Antorus ### + -- ##################################################################################### + -- ########################################## + -- ## Garothi ## + -- ########################################## + [244410] = { + ["name"] = "Decimation", + ["mode"] = 3, + }, + [246220] = { + ["name"] = "Fel Bombardment", + ["mode"] = 3, + }, + [244969] = { + ["name"] = "Eradication", + ["mode"] = 3, + }, + [244106] = { + ["name"] = "Carnage", + ["mode"] = 3, + }, + -- ########################################## + -- ## Felhounds ## + -- ########################################## + [244086] = { + ["name"] = "Molten Touch", + ["mode"] = 3, + }, + [244768] = { + ["name"] = "Desolate Gaze", + ["mode"] = 3, + }, + [244057] = { + ["name"] = "Enflame Corruption", + ["mode"] = 3, + }, + [244131] = { + ["name"] = "Consuming Sphere", + ["mode"] = 3, + }, + [244056] = { + ["name"] = "Siphon Corruption", + ["mode"] = 3, + }, + -- ########################################## + -- ## High Command ## + -- ########################################## + [245161] = { + ["name"] = "Entropic Mine", + ["mode"] = 3, + }, + [245546] = { + ["name"] = "Summon Reinforcements", + ["mode"] = 3, + }, + -- ########################################## + -- ## Portal Keeper ## + -- ########################################## + [244016] = { + ["name"] = "Reality Tear", + ["mode"] = 3, + }, + [243983] = { + ["name"] = "Collapsing World", + ["mode"] = 3, + }, + [244000] = { + ["name"] = "Felstorm Barrage", + ["mode"] = 3, + }, + -- ########################################## + -- ## Imonar ## + -- ########################################## + [247552] = { + ["name"] = "Sleep Canister", + ["mode"] = 3, + }, + [247367] = { + ["name"] = "Shock Lance", + ["mode"] = 3, + }, + [248068] = { + ["name"] = "Empowered Pulse Grenade", + ["mode"] = 3, + }, + [247376] = { + ["name"] = "Pulse Grenade", + ["mode"] = 3, + }, + [247716] = { + ["name"] = "Charged Blasts", + ["mode"] = 3, + }, + [247687] = { + ["name"] = "Sever", + ["mode"] = 3, + }, + [248070] = { + ["name"] = "Empowered Shrapnel Blast", + ["mode"] = 3, + }, + [250255] = { + ["name"] = "Empowered Shock Lance", + ["mode"] = 3, + }, + -- ########################################## + -- ## Kin'garoth ## + -- ########################################## + [254919] = { + ["name"] = "Forging Strike", + ["mode"] = 3, + }, + [254926] = { + ["name"] = "Reverberating Strike", + ["mode"] = 3, + }, + [246840] = { + ["name"] = "Ruiner", + ["mode"] = 3, + }, + [246779] = { + ["name"] = "Diabolic Bomb", + ["mode"] = 3, + }, + [246706] = { + ["name"] = "Demolish", + ["mode"] = 3, + }, + [246664] = { + ["name"] = "Annihilation", + ["mode"] = 3, + }, + -- ########################################## + -- ## Varimathras ## + -- ########################################## + [243960] = { + ["name"] = "Shadow Strike", + ["mode"] = 3, + }, + [243961] = { + ["name"] = "Misery", + ["mode"] = 3, + }, + [244042] = { + ["name"] = "Marked Prey", + ["mode"] = 3, + }, + [244093] = { + ["name"] = "Necrotic Embrace", + ["mode"] = 3, + }, + [248732] = { + ["name"] = "Echoes of Doom", + ["mode"] = 3, + }, + [243999] = { + ["name"] = "Dark Fissure", + ["mode"] = 3, + }, + -- ########################################## + -- ## Coven ## + -- ########################################## + [253189] = { + ["name"] = "Shivan Pact", + ["mode"] = 3, + }, + [244899] = { + ["name"] = "Fiery Strike", + ["mode"] = 1, + }, + [245627] = { + ["name"] = "Whirling Saber", + ["mode"] = 1, + }, + [245281] = { + ["name"] = "Shadow Blades", + ["mode"] = 3, + }, + [245586] = { + ["name"] = "Chilled Blood", + ["mode"] = 2, + }, + -- ########################################## + -- ## Aggramar ## + -- ########################################## + [254452] = { + ["name"] = "Ravenous Blaze", + ["mode"] = 3, + }, + [244693] = { + ["name"] = "Wake of Flame", + ["mode"] = 3, + }, + [244291] = { + ["name"] = "Foe Braker", + ["mode"] = 1, + }, + [244033] = { + ["name"] = "Flame Rend", + ["mode"] = 1, + }, + [247079] = { + ["name"] = "Empowered Flame Rend", + ["mode"] = 1, + }, + [245983] = { + ["name"] = "Flare", + ["mode"] = 3, + }, + [246037] = { + ["name"] = "Empowered Flare", + ["mode"] = 3, + }, + -- ########################################## + -- ## Argus ## + -- ########################################## + [256457] = { + ["name"] = "Cone of Death", + ["mode"] = 3, + }, + [248396] = { + ["name"] = "Soulblight", + ["mode"] = 3, + }, + [257296] = { + ["name"] = "Tortured Rage", + ["mode"] = 3, + }, + [251570] = { + ["name"] = "Soulbomb", + ["mode"] = 3, + }, + -- ###################################################################################### + -- ### DUNGEONS ### + -- ###################################################################################### + -- ########################################## + -- ## Black Rook Hold ## + -- ########################################## + [225573] = { + ["name"] = "Dark Mending", + ["mode"] = 3, + }, + [200105] = { + ["name"] = "Sacrifice Soul", + ["mode"] = 3, + }, + [225732] = { + ["name"] = "Strike Down", + ["mode"] = 3, + }, + [194996] = { + ["name"] = "Soul Echoes", + ["mode"] = 3, + }, + [195254] = { + ["name"] = "Swirling Scythe", + ["mode"] = 3, + }, + [194956] = { + ["name"] = "Reap Soul", + ["mode"] = 3, + }, + [200248] = { + ["name"] = "Arcane Blitz", + ["mode"] = 3, + }, + [200345] = { + ["name"] = "Arrow Barrage", + ["mode"] = 3, + }, + [200291] = { + ["name"] = "Knife Dance", + ["mode"] = 3, + }, + [200261] = { + ["name"] = "Bonebreaking Strike", + ["mode"] = 3, + }, + [197418] = { + ["name"] = "Vengeful Shear", + ["mode"] = 3, + }, + [201139] = { + ["name"] = "Brutal Assault", + ["mode"] = 3, + }, + [198245] = { + ["name"] = "Brutal Haymaker", + ["mode"] = 3, + }, + [198079] = { + ["name"] = "Hateful Gaze", + ["mode"] = 3, + }, + -- ########################################## + -- ## Cathedral of Eternal Night ## + -- ########################################## + [241937] = { + ["name"] = "Shadow Wall", + ["mode"] = 3, + }, + [238543] = { + ["name"] = "Demonic Mending", + ["mode"] = 3, + }, + [242792] = { + ["name"] = "Vile Roots", + ["mode"] = 3, + }, + [236627] = { + ["name"] = "Floral Fulmination", + ["mode"] = 3, + }, + [239217] = { + ["name"] = "Blinding Glare", + ["mode"] = 3, + }, + [237726] = { + ["name"] = "Scornful Gaze", + ["mode"] = 3, + }, + [190620] = { + ["name"] = "Felblaze Orb", + ["mode"] = 3, + }, + [239268] = { + ["name"] = "Venom Storm", + ["mode"] = 3, + }, + [234107] = { + ["name"] = "Chaotic Energy", + ["mode"] = 3, + }, + [236543] = { + ["name"] = "Felsoul Cleave", + ["mode"] = 3, + }, + [238315] = { + ["name"] = "Shadow Sweep", + ["mode"] = 3, + }, + [243168] = { + ["name"] = "Demonic Upheaval", + ["mode"] = 3, + }, + -- ########################################## + -- ## Court of Stars ## + -- ########################################## + [210261] = { + ["name"] = "Sound Alarm", + ["mode"] = 3, + }, + [215204] = { + ["name"] = "Hinder", + ["mode"] = 3, + }, + [209027] = { + ["name"] = "Quelling Strike", + ["mode"] = 3, + }, + [209516] = { + ["name"] = "Mana Fang", + ["mode"] = 3, + }, + [209485] = { + ["name"] = "Drain Magic", + ["mode"] = 3, + }, + [209404] = { + ["name"] = "Seal Magic", + ["mode"] = 3, + }, + [209495] = { + ["name"] = "Charged Smash", + ["mode"] = 3, + }, + [225100] = { + ["name"] = "Charging Station", + ["mode"] = 3, + }, + [219488] = { + ["name"] = "Streetsweeper", + ["mode"] = 3, + }, + [212784] = { + ["name"] = "Eye Storm", + ["mode"] = 3, + }, + [211464] = { + ["name"] = "Fel Detonation", + ["mode"] = 3, + }, + [207980] = { + ["name"] = "Disintegration Beam", + ["mode"] = 3, + }, + [207979] = { + ["name"] = "Shockwave", + ["mode"] = 3, + }, + [209628] = { + ["name"] = "Piercing Gale", + ["mode"] = 3, + }, + [209676] = { + ["name"] = "Slicing Maelstrom", + ["mode"] = 3, + }, + -- ########################################## + -- ## Darkheart Thicket ## + -- ########################################## + [200631] = { + ["name"] = "Unnerving Screech", + ["mode"] = 3, + }, + [200580] = { + ["name"] = "Maddening Roar", + ["mode"] = 3, + }, + [191326] = { + ["name"] = "Breath of Corruption", + ["mode"] = 3, + }, + [201400] = { + ["name"] = "Dread Inferno", + ["mode"] = 3, + }, + [200238] = { + ["name"] = "Feed on the Weak", + ["mode"] = 3, + }, + -- ########################################## + -- ## Eye of Azshara ## + -- ########################################## + [195172] = { + ["name"] = "Mighty Slam", + ["mode"] = 3, + }, + [195129] = { + ["name"] = "Thundering Stomp", + ["mode"] = 3, + }, + [195046] = { + ["name"] = "Rejuvenating Waters", + ["mode"] = 3, + }, + [162135] = { + ["name"] = "Bellowing Roar", + ["mode"] = 3, + }, + [197105] = { + ["name"] = "Polymorh Fish", + ["mode"] = 3, + }, + [193597] = { + ["name"] = "Static Nova", + ["mode"] = 3, + }, + [193611] = { + ["name"] = "Focused Lightning", + ["mode"] = 3, + }, + [196129] = { + ["name"] = "Spray Sand", + ["mode"] = 3, + }, + [196144] = { + ["name"] = "Sandstorm", + ["mode"] = 3, + }, + [196296] = { + ["name"] = "Roiling Storm", + ["mode"] = 3, + }, + [196290] = { + ["name"] = "Chaotic Tempest", + ["mode"] = 3, + }, + [191848] = { + ["name"] = "Rampage", + ["mode"] = 3, + }, + -- ########################################## + -- ## Halls of Valor ## + -- ########################################## + [198605] = { + ["name"] = "Thunderstrike", + ["mode"] = 3, + }, + [198888] = { + ["name"] = "Lightning Breath", + ["mode"] = 3, + }, + [191284] = { + ["name"] = "Horn of Valor", + ["mode"] = 3, + }, + [198934] = { + ["name"] = "Rune of Healing", + ["mode"] = 3, + }, + [215433] = { + ["name"] = "Holy Radiance", + ["mode"] = 3, + }, + [199210] = { + ["name"] = "Penetrating Shot", + ["mode"] = 3, + }, + [191976] = { + ["name"] = "Arcing Bolt", + ["mode"] = 3, + }, + [192305] = { + ["name"] = "Eye of the Storm", + ["mode"] = 3, + }, + [192307] = { + ["name"] = "Sanctify", + ["mode"] = 3, + }, + [192048] = { + ["name"] = "Expel Light", + ["mode"] = 3, + }, + [192018] = { + ["name"] = "Shield of Light", + ["mode"] = 3, + }, + [196512] = { + ["name"] = "Claw Frenzy", + ["mode"] = 3, + }, + [199652] = { + ["name"] = "Sever", + ["mode"] = 3, + }, + [199726] = { + ["name"] = "Unruly Yell", + ["mode"] = 3, + }, + [199674] = { + ["name"] = "Wicked Dagger", + ["mode"] = 3, + }, + [193826] = { + ["name"] = "Ragnarok", + ["mode"] = 3, + }, + [198263] = { + ["name"] = "Radiant Tempest", + ["mode"] = 3, + }, + [198072] = { + ["name"] = "Spear of Light", + ["mode"] = 3, + }, + [197961] = { + ["name"] = "Runic Band", + ["mode"] = 3, + }, + [198750] = { + ["name"] = "Surge", + ["mode"] = 3, + }, + -- ########################################## + -- ## Maw of Souls ## + -- ########################################## + [193364] = { + ["name"] = "Screams of the Dead", + ["mode"] = 3, + }, + [194442] = { + ["name"] = "Six Pound Barrel", + ["mode"] = 3, + }, + [194615] = { + ["name"] = "Sea Legs", + ["mode"] = 3, + }, + [192019] = { + ["name"] = "Lantern of Darkness", + ["mode"] = 3, + }, + [194099] = { + ["name"] = "Bile Breath", + ["mode"] = 3, + }, + [198405] = { + ["name"] = "Bone Chilling Scream", + ["mode"] = 3, + }, + [194325] = { + ["name"] = "Fragment", + ["mode"] = 3, + }, + [194216] = { + ["name"] = "Cosmic Scythe", + ["mode"] = 3, + }, + [195293] = { + ["name"] = "Debilitating Shout", + ["mode"] = 3, + }, + [185539] = { + ["name"] = "Rapid Rupture", + ["mode"] = 3, + }, + [198495] = { + ["name"] = "Torrent", + ["mode"] = 3, + }, + [202098] = { + ["name"] = "Brackwater Barrage", + ["mode"] = 3, + }, + -- ########################################## + -- ## Neltharion's Lair ## + -- ########################################## + [202181] = { + ["name"] = "Stone Gaze", + ["mode"] = 3, + }, + [226296] = { + ["name"] = "Piercing Shards", + ["mode"] = 3, + }, + [188169] = { + ["name"] = "Razor Shards", + ["mode"] = 3, + }, + [198496] = { + ["name"] = "Sunder", + ["mode"] = 3, + }, + [199176] = { + ["name"] = "Spiked Tongue", + ["mode"] = 3, + }, + [193585] = { + ["name"] = "Bound", + ["mode"] = 3, + }, + [200700] = { + ["name"] = "Landslide", + ["mode"] = 3, + }, + [200732] = { + ["name"] = "Molten Crash", + ["mode"] = 3, + }, + -- ########################################## + -- ## The Arcway ## + -- ########################################## + [211771] = { + ["name"] = "Prophecies of Doom", + ["mode"] = 3, + }, + [211037] = { + ["name"] = "Celerity Zone", + ["mode"] = 3, + }, + [195791] = { + ["name"] = "Quarantine", + ["mode"] = 3, + }, + [226285] = { + ["name"] = "Demonic Ascension", + ["mode"] = 3, + }, + [197810] = { + ["name"] = "Wicked Slam", + ["mode"] = 3, + }, + [211217] = { + ["name"] = "Arcane Slicer", + ["mode"] = 3, + }, + [211115] = { + ["name"] = "Phase Breach", + ["mode"] = 3, + }, + [196392] = { + ["name"] = "Overcharge Mana", + ["mode"] = 3, + }, + [200040] = { + ["name"] = "Nether Venom", + ["mode"] = 3, + }, + [200227] = { + ["name"] = "Tangled Web", + ["mode"] = 3, + }, + [220871] = { + ["name"] = "Unstable Mana", + ["mode"] = 3, + }, + -- ########################################## + -- ## Vault of the Wardens ## + -- ########################################## + [193069] = { + ["name"] = "Nightmares", + ["mode"] = 3, + }, + [197799] = { + ["name"] = "Unleash Fury", + ["mode"] = 3, + }, + [191735] = { + ["name"] = "Deafening Screech", + ["mode"] = 3, + }, + [190836] = { + ["name"] = "Hatred", + ["mode"] = 3, + }, + [202913] = { + ["name"] = "Fel Mortar", + ["mode"] = 3, + }, + [200898] = { + ["name"] = "Teleport", + ["mode"] = 3, + }, + [199917] = { + ["name"] = "Shadow Crash", + ["mode"] = 3, + }, + [202658] = { + ["name"] = "Drain", + ["mode"] = 3, + }, + [194945] = { + ["name"] = "Lingering Gaze", + ["mode"] = 3, + }, + [196249] = { + ["name"] = "Meteor", + ["mode"] = 3, + }, + [192631] = { + ["name"] = "Lava Wreath", + ["mode"] = 3, + }, + [197513] = { + ["name"] = "Detonating Moonglaive", + ["mode"] = 3, + }, + [189469] = { + ["name"] = "Turn Kick", + ["mode"] = 3, + }, + -- ########################################## + -- ## Seat of the Triumvirate ## + -- ########################################## + -- ########################################## + -- ## Upper Karazhan ## + -- ########################################## + [230083] = { + ["name"] = "Nullification", + ["mode"] = 3, + }, + [227267] = { + ["name"] = "Summon Volatile Energy", + ["mode"] = 3, + }, + [227254] = { + ["name"] = "Evocation", + ["mode"] = 3, + }, + [229662] = { + ["name"] = "Fel Breath", + ["mode"] = 3, + }, + [36247] = { + ["name"] = "Fel Fireball", + ["mode"] = 3, + }, + [227628] = { + ["name"] = "Piercing Missiles", + ["mode"] = 3, + }, + [227615] = { + ["name"] = "Inferno Bolt", + ["mode"] = 3, + }, + [227592] = { + ["name"] = "Frostbite", + ["mode"] = 3, + }, + [228269] = { + ["name"] = "Flame Wreath", + ["mode"] = 3, + }, + [227779] = { + ["name"] = "Ceaseless Winter", + ["mode"] = 3, + }, + [229706] = { + ["name"] = "Leech Life", + ["mode"] = 3, + }, + [229714] = { + ["name"] = "Consume Magic", + ["mode"] = 3, + }, + [229159] = { + ["name"] = "Chaotic Shadows", + ["mode"] = 3, + }, + [229083] = { + ["name"] = "Burning Blast", + ["mode"] = 3, + }, + [229151] = { + ["name"] = "Disintegrate", + ["mode"] = 3, + }, + -- ########################################## + -- ## Lower Karazhan ## + -- ########################################## + [228221] = { + ["name"] = "Severe Dusting", + ["mode"] = 3, + }, + [228225] = { + ["name"] = "Sultry Heat", + ["mode"] = 3, + }, + [232153] = { + ["name"] = "Kara Kazham", + ["mode"] = 3, + }, + [227987] = { + ["name"] = "Dinner Bell", + ["mode"] = 3, + }, + [228025] = { + ["name"] = "Heat Wave", + ["mode"] = 3, + }, + [227568] = { + ["name"] = "Burning Leg Sweep", + ["mode"] = 3, + }, + [227776] = { + ["name"] = "Magic Magnificent", + ["mode"] = 3, + }, + [227966] = { + ["name"] = "Flashlight", + ["mode"] = 3, + }, + [228279] = { + ["name"] = "Shadow Rejuvenation", + ["mode"] = 3, + }, + [228278] = { + ["name"] = "Demoralizing Shout", + ["mode"] = 3, + }, + [228277] = { + ["name"] = "Shackles of Servitude", + ["mode"] = 3, + }, + [226316] = { + ["name"] = "Shadow Bolt Volley", + ["mode"] = 3, + }, + [227508] = { + ["name"] = "Mass Repentance", + ["mode"] = 3, + }, + [227793] = { + ["name"] = "Sacred Ground", + ["mode"] = 3, + }, + [227463] = { + ["name"] = "Whirling Edge", + ["mode"] = 3, + }, + [227646] = { + ["name"] = "Iron Whirlwind", + ["mode"] = 3, + }, + [227672] = { + ["name"] = "Will Breaker", + ["mode"] = 3, + }, + [227404] = { + ["name"] = "Intangible Presence", + ["mode"] = 3, + }, + [227493] = { + ["name"] = "Mortal Strike", + ["mode"] = 3, + }, + [228852] = { + ["name"] = "Shared Suffering", + ["mode"] = 3, + }, + [228837] = { + ["name"] = "#Bellowing Roar", + ["mode"] = 3, + }, +} + +if DaveSaved.RaiderSA == nil then DaveSaved.RaiderSA = {} end +if DaveSaved.RaiderSA.Procs == nil then + DaveSaved.RaiderSA.Procs = {} + for key, value in pairs(aura_env.spells) do + DaveSaved.RaiderSA.Procs[value.name] = 0 + end +end + +function aura_env.playSound(spellName) + local soundFile = aura_env.spellToSoundfile(spellName) + local success = PlaySoundFile(soundFile, "Master") + if not success then + print("Failed playing sound file: " .. soundFile) + return + end + DaveSaved.RaiderSA.Procs[spellName] = DaveSaved.RaiderSA.Procs[spellName] + 1 +end + +function aura_env.spellToSoundfile(spellName) + -- spellName = spellName:gsub("%s", "_"); + return "Interface\\Sounds\\" .. soundPack .. "\\" .. spellName .. ".ogg" +end diff --git a/WeakAuras/Projects/RaiderSA/weakaura/trigger.lua b/WeakAuras/Projects/RaiderSA/weakaura/trigger.lua new file mode 100644 index 0000000..da0df34 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/weakaura/trigger.lua @@ -0,0 +1,18 @@ +-- If performance becomes an issue try UNIT_SPELLCAST_START/STOP/SUCCEEDED +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local se = select(3, ...); + local spellId = select(13, ...); + if (spellId ~= nil and se == "SPELL_CAST_START") then + local entry = aura_env.spells[spellId]; + if (entry ~= nil and (entry.mode == 1 or entry.mode == 3)) then + aura_env.playSound(entry.name); + end + end + if (spellId ~= nil and se == "SPELL_CAST_SUCCESS") then + local entry = aura_env.spells[spellId]; + if (entry ~= nil and (entry.mode == 2 or entry.mode == 3)) then + aura_env.playSound(entry.name); + end + end +end \ No newline at end of file diff --git a/WeakAuras/Projects/RaiderSA/words.txt b/WeakAuras/Projects/RaiderSA/words.txt new file mode 100644 index 0000000..792a248 --- /dev/null +++ b/WeakAuras/Projects/RaiderSA/words.txt @@ -0,0 +1,548 @@ +##################################################################################### +### DEBUG ### +##################################################################################### + +##774!3 +Rejuvenation +##33763!3 +Lifebloom +##5185!3 +Healing Touch + +##################################################################################### +### Antorus ### +##################################################################################### + +########################################## +## Garothi ## +########################################## + +#244410!3 +Decimation +#246220!3 +Fel Bombardment +#244969!3 +Eradication +#244106!3 +Carnage + +########################################## +## Felhounds ## +########################################## + +#244086!3 +Molten Touch +#244768!3 +Desolate Gaze +#244057!3 +Enflame Corruption +#244131!3 +Consuming Sphere +#244056!3 +Siphon Corruption + +########################################## +## High Command ## +########################################## + +#245161!3 +Entropic Mine +#245546!3 +Summon Reinforcements + +########################################## +## Portal Keeper ## +########################################## + +#244016!3 +Reality Tear +#243983!3 +Collapsing World +#244000!3 +Felstorm Barrage + +########################################## +## Imonar ## +########################################## + +#247552!3 +Sleep Canister +#247367!3 +Shock Lance +#248068!3 +Empowered Pulse Grenade +#247376!3 +Pulse Grenade +#247716!3 +Charged Blasts +#247687!3 +Sever +#248070!3 +Empowered Shrapnel Blast +#250255!3 +Empowered Shock Lance + +########################################## +## Kin'garoth ## +########################################## + +#254919!3 +Forging Strike +#254926!3 +Reverberating Strike +#246840!3 +Ruiner +#246779!3 +Diabolic Bomb +#246706!3 +Demolish +#246664!3 +Annihilation + +########################################## +## Varimathras ## +########################################## + +#243960!3 +Shadow Strike +#243961!3 +Misery +#244042!3 +Marked Prey +#244093!3 +Necrotic Embrace +#248732!3 +Echoes of Doom +#243999!3 +Dark Fissure + +########################################## +## Coven ## +########################################## + +#253189!3 +Shivan Pact +#244899!1 +Fiery Strike +#245627!1 +Whirling Saber +#245281!3 +Shadow Blades +#245586!2 +Chilled Blood + +########################################## +## Aggramar ## +########################################## + +#254452!3 +Ravenous Blaze +#244693!3 +Wake of Flame +#244291!1 +Foe Braker +#244033!1 +Flame Rend +#247079!1 +Empowered Flame Rend +#245983!3 +Flare +#246037!3 +Empowered Flare + +########################################## +## Argus ## +########################################## + +#256457!3 +Cone of Death +#248396!3 +Soulblight +#257296!3 +Tortured Rage +#251570!3 +Soulbomb + +###################################################################################### +### DUNGEONS ### +###################################################################################### + +########################################## +## Black Rook Hold ## +########################################## + +#225573!3 +Dark Mending +#200105!3 +Sacrifice Soul +#225732!3 +Strike Down +#194996!3 +Soul Echoes +#195254!3 +Swirling Scythe +#194956!3 +Reap Soul +#200248!3 +Arcane Blitz +#200345!3 +Arrow Barrage +#200291!3 +Knife Dance +#200261!3 +Bonebreaking Strike +#197418!3 +Vengeful Shear +#201139!3 +Brutal Assault +#198245!3 +Brutal Haymaker +#198079!3 +Hateful Gaze + +########################################## +## Cathedral of Eternal Night ## +########################################## + +#241937!3 +Shadow Wall +#238543!3 +Demonic Mending +#242792!3 +Vile Roots +#236627!3 +Floral Fulmination +#239217!3 +Blinding Glare +#237726!3 +Scornful Gaze +#190620!3 +Felblaze Orb +#239268!3 +Venom Storm +#234107!3 +Chaotic Energy +#236543!3 +Felsoul Cleave +#238315!3 +Shadow Sweep +#243168!3 +Demonic Upheaval + +########################################## +## Court of Stars ## +########################################## + +#210261!3 +Sound Alarm +#215204!3 +Hinder +#209027!3 +Quelling Strike +#209516!3 +Mana Fang +#209485!3 +Drain Magic +#209404!3 +Seal Magic +#209495!3 +Charged Smash +#225100!3 +Charging Station +#219488!3 +Streetsweeper +#212784!3 +Eye Storm +#211464!3 +Fel Detonation +#207980!3 +Disintegration Beam +#207979!3 +Shockwave +#209628!3 +Piercing Gale +#209676!3 +Slicing Maelstrom + +########################################## +## Darkheart Thicket ## +########################################## + +#200631!3 +Unnerving Screech +#200580!3 +Maddening Roar +#191326!3 +Breath of Corruption +#201400!3 +Dread Inferno +#200238!3 +Feed on the Weak + +########################################## +## Eye of Azshara ## +########################################## + +#195172!3 +Mighty Slam +#195129!3 +Thundering Stomp +#195046!3 +Rejuvenating Waters +#162135!3 +Bellowing Roar +#197105!3 +Polymorh Fish +#193597!3 +Static Nova +#193611!3 +Focused Lightning +#196129!3 +Spray Sand +#196144!3 +Sandstorm +#196296!3 +Roiling Storm +#196290!3 +Chaotic Tempest +#191848!3 +Rampage + +########################################## +## Halls of Valor ## +########################################## + +#198605!3 +Thunderstrike +#198888!3 +Lightning Breath +#191284!3 +Horn of Valor +#198934!3 +Rune of Healing +#215433!3 +Holy Radiance +#199210!3 +Penetrating Shot +#191976!3 +Arcing Bolt +#192305!3 +Eye of the Storm +#192307!3 +Sanctify +#192048!3 +Expel Light +#192018!3 +Shield of Light +#196512!3 +Claw Frenzy +#199652!3 +Sever +#199726!3 +Unruly Yell +#199674!3 +Wicked Dagger +#193826!3 +Ragnarok +#198263!3 +Radiant Tempest +#198072!3 +Spear of Light +#197961!3 +Runic Band +#198750!3 +Surge + +########################################## +## Maw of Souls ## +########################################## + +#193364!3 +Screams of the Dead +#194442!3 +Six Pound Barrel +#194615!3 +Sea Legs +#192019!3 +Lantern of Darkness +#194099!3 +Bile Breath +#198405!3 +Bone Chilling Scream +#194325!3 +Fragment +#194216!3 +Cosmic Scythe +#195293!3 +Debilitating Shout +#185539!3 +Rapid Rupture +#198495!3 +Torrent +#202098!3 +Brackwater Barrage + +########################################## +## Neltharion's Lair ## +########################################## + +#202181!3 +Stone Gaze +#226296!3 +Piercing Shards +#188169!3 +Razor Shards +#198496!3 +Sunder +#199176!3 +Spiked Tongue +#193585!3 +Bound +#200700!3 +Landslide +#200732!3 +Molten Crash + +########################################## +## The Arcway ## +########################################## + +#211771!3 +Prophecies of Doom +#211037!3 +Celerity Zone +#195791!3 +Quarantine +#226285!3 +Demonic Ascension +#197810!3 +Wicked Slam +#211217!3 +Arcane Slicer +#211115!3 +Phase Breach +#196392!3 +Overcharge Mana +#200040!3 +Nether Venom +#200227!3 +Tangled Web +#220871!3 +Unstable Mana + +########################################## +## Vault of the Wardens ## +########################################## + +#193069!3 +Nightmares +#197799!3 +Unleash Fury +#191735!3 +Deafening Screech +#190836!3 +Hatred +#202913!3 +Fel Mortar +#200898!3 +Teleport +#199917!3 +Shadow Crash +#202658!3 +Drain +#194945!3 +Lingering Gaze +#196249!3 +Meteor +#192631!3 +Lava Wreath +#197513!3 +Detonating Moonglaive +#189469!3 +Turn Kick + +########################################## +## Seat of the Triumvirate ## +########################################## + +########################################## +## Upper Karazhan ## +########################################## + +#230083!3 +Nullification +#227267!3 +Summon Volatile Energy +#227254!3 +Evocation +#229662!3 +Fel Breath +#36247!3 +Fel Fireball +#227628!3 +Piercing Missiles +#227615!3 +Inferno Bolt +#227592!3 +Frostbite +#228269!3 +Flame Wreath +#227779!3 +Ceaseless Winter +#229706!3 +Leech Life +#229714!3 +Consume Magic +#229159!3 +Chaotic Shadows +#229083!3 +Burning Blast +#229151!3 +Disintegrate + +########################################## +## Lower Karazhan ## +########################################## + +#228221!3 +Severe Dusting +#228225!3 +Sultry Heat +#232153!3 +Kara Kazham +#227987!3 +Dinner Bell +#228025!3 +Heat Wave +#227568!3 +Burning Leg Sweep +#227776!3 +Magic Magnificent +#227966!3 +Flashlight +#228279!3 +Shadow Rejuvenation +#228278!3 +Demoralizing Shout +#228277!3 +Shackles of Servitude +#226316!3 +Shadow Bolt Volley +#227508!3 +Mass Repentance +#227793!3 +Sacred Ground +#227463!3 +Whirling Edge +#227646!3 +Iron Whirlwind +#227672!3 +Will Breaker +#227404!3 +Intangible Presence +#227493!3 +Mortal Strike +#228852!3 +Shared Suffering +#228837!3 +#Bellowing Roar \ No newline at end of file diff --git a/WeakAuras/Projects/RaiderSA/working_out.tar b/WeakAuras/Projects/RaiderSA/working_out.tar new file mode 100644 index 0000000..bff7e4b Binary files /dev/null and b/WeakAuras/Projects/RaiderSA/working_out.tar differ diff --git a/Complete Projects/Legion/RaiderlosSA.lua b/WeakAuras/Projects/RaiderlosSA.lua similarity index 97% rename from Complete Projects/Legion/RaiderlosSA.lua rename to WeakAuras/Projects/RaiderlosSA.lua index 91dc641..7efcd0d 100644 --- a/Complete Projects/Legion/RaiderlosSA.lua +++ b/WeakAuras/Projects/RaiderlosSA.lua @@ -1,57 +1,57 @@ ---COMBAT_LOG_EVENT_UNFILTERED -function(...) - local se = select(3, ...) - if se == "SPELL_CAST_START" then - local spell = select(14, ...) - if aura_env.spells[spell] == 1 then - if spell == "Shattering Star" then - PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Shattering Star.ogg","Master") - elseif spell == "Infernal Burning" then - PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Infernal Burning.ogg","Master") - elseif spell == "Phangs of Guilt" then - PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Phangs.ogg","Master") - elseif spell == "Hatching" then - PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Hatching.ogg","Master") - elseif spell == "Incorporeal Shot" then - PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Incorporeal Shot.ogg","Master") - elseif spell == "Moon Glaive" then - PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Moon Glaive.ogg","Master") - elseif spell == "Burden of Pain" then - PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Burden.ogg","Master") - end - end - end - if se == "SPELL_CAST_SUCCESS" then - local spell = select(14, ...) - if aura_env.casts[spell] == 1 then - if spell == "Moon Burn" then - PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Moon Burn.ogg","Master") - elseif spell == "Glaive Storm" then - PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Glaive Storm.ogg","Master") - elseif spell == "Lunar Fire" then - PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Lunar Fire.ogg","Master") - elseif spell == "Slicing Tornado" then - PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Slicing Tornado.ogg","Master") - end - end - end -end - ---INIT -aura_env.spells = -{ - ["Shattering Star"] = 1, - ["Infernal Burning"] = 1, - ["Phangs of Guilt"] = 1, - ["Hatching"] = 1, - ["Incorporeal Shot"] = 1, - ["Moon Glaive"] = 1, - ["Burden of Pain"] = 1, -} -aura_env.casts = -{ - ["Moon Burn"] = 1, - ["Glaive Storm"] = 1, - ["Lunar Fire"] = 1, - ["Slicing Tornado"] = 1, +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local se = select(3, ...) + if se == "SPELL_CAST_START" then + local spell = select(14, ...) + if aura_env.spells[spell] == 1 then + if spell == "Shattering Star" then + PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Shattering Star.ogg","Master") + elseif spell == "Infernal Burning" then + PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Infernal Burning.ogg","Master") + elseif spell == "Phangs of Guilt" then + PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Phangs.ogg","Master") + elseif spell == "Hatching" then + PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Hatching.ogg","Master") + elseif spell == "Incorporeal Shot" then + PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Incorporeal Shot.ogg","Master") + elseif spell == "Moon Glaive" then + PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Moon Glaive.ogg","Master") + elseif spell == "Burden of Pain" then + PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Burden.ogg","Master") + end + end + end + if se == "SPELL_CAST_SUCCESS" then + local spell = select(14, ...) + if aura_env.casts[spell] == 1 then + if spell == "Moon Burn" then + PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Moon Burn.ogg","Master") + elseif spell == "Glaive Storm" then + PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Glaive Storm.ogg","Master") + elseif spell == "Lunar Fire" then + PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Lunar Fire.ogg","Master") + elseif spell == "Slicing Tornado" then + PlaySoundFile("Interface\\AddOns\\SharedMedia_MyMedia\\sound\\Slicing Tornado.ogg","Master") + end + end + end +end + +--INIT +aura_env.spells = +{ + ["Shattering Star"] = 1, + ["Infernal Burning"] = 1, + ["Phangs of Guilt"] = 1, + ["Hatching"] = 1, + ["Incorporeal Shot"] = 1, + ["Moon Glaive"] = 1, + ["Burden of Pain"] = 1, +} +aura_env.casts = +{ + ["Moon Burn"] = 1, + ["Glaive Storm"] = 1, + ["Lunar Fire"] = 1, + ["Slicing Tornado"] = 1, } \ No newline at end of file diff --git a/FreshShit/RaiderlosSA/color.lua b/WeakAuras/Projects/RaiderlosSA/color.lua similarity index 96% rename from FreshShit/RaiderlosSA/color.lua rename to WeakAuras/Projects/RaiderlosSA/color.lua index d03eb8e..521af78 100644 --- a/FreshShit/RaiderlosSA/color.lua +++ b/WeakAuras/Projects/RaiderlosSA/color.lua @@ -1,28 +1,28 @@ -function() - local target = aura_env.statee.target - - for _, subregion in ipairs(aura_env.region.subRegions) do - if aura_env.config.borderColor then - if subregion.type == "subborder" then - ---@type ClassColor - local classColorInfo = aura_env.ClassColors[aura_env.statee.targetClassId] - if classColorInfo then - local color = classColorInfo.color.rgbInt - subregion:SetBorderColor(color[1] / 255, color[2] / 255, color[3] / 255, 1) - end - end - end - if target and target == PlayerName then - if aura_env.config.glow then - if subregion.type == "subglow" then - subregion:SetVisible(true) - end - end - end - end - - if target and target == PlayerName then - return 1, 0, 0, 1 - end - return 0, 0, 1, 1 -end +function() + local target = aura_env.statee.target + + for _, subregion in ipairs(aura_env.region.subRegions) do + if aura_env.config.borderColor then + if subregion.type == "subborder" then + ---@type ClassColor + local classColorInfo = aura_env.ClassColors[aura_env.statee.targetClassId] + if classColorInfo then + local color = classColorInfo.color.rgbInt + subregion:SetBorderColor(color[1] / 255, color[2] / 255, color[3] / 255, 1) + end + end + end + if target and target == PlayerName then + if aura_env.config.glow then + if subregion.type == "subglow" then + subregion:SetVisible(true) + end + end + end + end + + if target and target == PlayerName then + return 1, 0, 0, 1 + end + return 0, 0, 1, 1 +end diff --git a/FreshShit/RaiderlosSA/event.lua b/WeakAuras/Projects/RaiderlosSA/event.lua similarity index 97% rename from FreshShit/RaiderlosSA/event.lua rename to WeakAuras/Projects/RaiderlosSA/event.lua index 19c8ac3..39e8a9a 100644 --- a/FreshShit/RaiderlosSA/event.lua +++ b/WeakAuras/Projects/RaiderlosSA/event.lua @@ -1,26 +1,26 @@ ---- COMBAT_LOG_EVENT_UNFILTERED ----@param e string ----@param ... any -function(allstates, e, ...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then return end - local spellId, err = CLEUParser.GetSpellId(...) - if err then return end - - local spellname, err = CLEUParser.GetSpellName(...) - local subevent, err = CLEUParser.GetSubevent(...) - aura_env.LogSpell(spellname, spellId, subevent, ...) - - local eventMap = aura_env.EventMap[subevent] - if eventMap == nil then return end - local alert = eventMap[spellId] - if alert == nil then return end - - local err = alert:Trigger(allstates, ...) - if err then print(err) end - - -- aura_env.LogSpell = function(spellName, spellId, subevent, ...) - -- WeakAurasSaved.Cyka.CLEUExample[#WeakAurasSaved.Cyka.CLEUExample + 1] = varargToString(spellName, spellId, subevent, ...) - -- end - return true -end +--- COMBAT_LOG_EVENT_UNFILTERED +---@param e string +---@param ... any +function(allstates, e, ...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then return end + local spellId, err = CLEUParser.GetSpellId(...) + if err then return end + + local spellname, err = CLEUParser.GetSpellName(...) + local subevent, err = CLEUParser.GetSubevent(...) + aura_env.LogSpell(spellname, spellId, subevent, ...) + + local eventMap = aura_env.EventMap[subevent] + if eventMap == nil then return end + local alert = eventMap[spellId] + if alert == nil then return end + + local err = alert:Trigger(allstates, ...) + if err then print(err) end + + -- aura_env.LogSpell = function(spellName, spellId, subevent, ...) + -- WeakAurasSaved.Cyka.CLEUExample[#WeakAurasSaved.Cyka.CLEUExample + 1] = varargToString(spellName, spellId, subevent, ...) + -- end + return true +end diff --git a/FreshShit/RaiderlosSA/event2.lua b/WeakAuras/Projects/RaiderlosSA/event2.lua similarity index 95% rename from FreshShit/RaiderlosSA/event2.lua rename to WeakAuras/Projects/RaiderlosSA/event2.lua index 7544082..51cd592 100644 --- a/FreshShit/RaiderlosSA/event2.lua +++ b/WeakAuras/Projects/RaiderlosSA/event2.lua @@ -1,11 +1,11 @@ --- TICKER_100 -function() - aura_env.GUIDUnitMap = {} - for i = 1, 40 do - local unit = string.format("nameplate%d", i) - local GUID = UnitGUID(unit) - if GUID then - aura_env.GUIDUnitMap[GUID] = unit - end - end +-- TICKER_100 +function() + aura_env.GUIDUnitMap = {} + for i = 1, 40 do + local unit = string.format("nameplate%d", i) + local GUID = UnitGUID(unit) + if GUID then + aura_env.GUIDUnitMap[GUID] = unit + end + end end \ No newline at end of file diff --git a/FreshShit/RaiderlosSA/export b/WeakAuras/Projects/RaiderlosSA/export similarity index 100% rename from FreshShit/RaiderlosSA/export rename to WeakAuras/Projects/RaiderlosSA/export diff --git a/FreshShit/RaiderlosSA/filterLogBySpell.sh b/WeakAuras/Projects/RaiderlosSA/filterLogBySpell.sh similarity index 100% rename from FreshShit/RaiderlosSA/filterLogBySpell.sh rename to WeakAuras/Projects/RaiderlosSA/filterLogBySpell.sh diff --git a/FreshShit/RaiderlosSA/init.lua b/WeakAuras/Projects/RaiderlosSA/init.lua similarity index 97% rename from FreshShit/RaiderlosSA/init.lua rename to WeakAuras/Projects/RaiderlosSA/init.lua index aeceac2..95457d3 100644 --- a/FreshShit/RaiderlosSA/init.lua +++ b/WeakAuras/Projects/RaiderlosSA/init.lua @@ -1,535 +1,535 @@ -aura_env.GUIDUnitMap = {} -aura_env.PlayerName = UnitName("player") --- Indices are class ids ----@alias ClassColor {className: string, color: {rgbInt: table, rgbHex: table}, rgbString: string} ----@type table -aura_env.ClassColors = { - { - className = "Warrior", - color = { - rgbInt = { 198, 155, 109 }, - rgbHex = { 0.78, 0.61, 0.43 }, - }, - rgbString = "C69B6D", - }, - { - className = "Paladin", - color = { - rgbInt = { 244, 140, 186 }, - rgbHex = { 0.96, 0.55, 0.73 }, - }, - rgbString = "F48CBA", - }, - { - className = "Hunter", - color = { - rgbInt = { 170, 211, 114 }, - rgbHex = { 0.67, 0.83, 0.45 }, - }, - rgbString = "AAD372", - }, - { - className = "Rogue", - color = { - rgbInt = { 255, 244, 104 }, - rgbHex = { 1.00, 0.96, 0.41 }, - }, - rgbString = "FFF468", - }, - { - className = "Priest", - color = { - rgbInt = { 255, 255, 255 }, - rgbHex = { 1.00, 1.00, 1.00 }, - }, - rgbString = "FFFFFF", - }, - { - className = "Death Knight", - color = { - rgbInt = { 196, 30, 58 }, - rgbHex = { 0.77, 0.12, 0.23 }, - }, - rgbString = "C41E3A", - }, - { - className = "Shaman", - color = { - rgbInt = { 0, 112, 221 }, - rgbHex = { 0.00, 0.44, 0.87 }, - }, - rgbString = "0070DD", - }, - { - className = "Mage", - color = { - rgbInt = { 63, 199, 235 }, - rgbHex = { 0.25, 0.78, 0.92 }, - }, - rgbString = "3FC7EB", - }, - { - className = "Warlock", - color = { - rgbInt = { 135, 136, 238 }, - rgbHex = { 0.53, 0.53, 0.93 }, - }, - rgbString = "8788EE", - }, - { - className = "Monk", - color = { - rgbInt = { 0, 255, 152 }, - rgbHex = { 0.00, 1.00, 0.60 }, - }, - rgbString = "00FF98", - }, - { - className = "Druid", - color = { - rgbInt = { 255, 124, 10 }, - rgbHex = { 1.00, 0.49, 0.04 }, - }, - rgbString = "FF7C0A", - }, - { - className = "Demon Hunter", - color = { - rgbInt = { 163, 48, 201 }, - rgbHex = { 0.64, 0.19, 0.79 }, - }, - rgbString = "A330C9", - }, -} - -local SoundFileRoot = "Interface\\Sounds\\spellAlert\\" - ----@param guid string ----@return string, nil|string -local function GetUnitFromGuid(guid) - local unit = aura_env.GUIDUnitMap[guid] - if unit == nil then return "none", "Unit not found" end - return unit, nil -end - ----@param guid string ----@return {name: string, target: string, targetClassId: number, prettyTarget: string}, nil|string -local function GetTargetInfoForGuid(guid) - local retval = { - name = "", - target = "", - targetClassId = 1, - prettyTarget = "", - } - - local unit, err = GetUnitFromGuid(guid) - if err then return retval, err end - - local targetUnit = string.format("%starget", unit) - retval.target = UnitName(targetUnit) - retval.prettyTarget = retval.target - - local targetClassId = select(3, UnitClass(targetUnit)) - retval.targetClassId = targetClassId - ---@type ClassColor - local classColorInfo = aura_env.ClassColors[targetClassId] - if classColorInfo then - retval.prettyTarget = string.format("|cFF%s%s|r", classColorInfo.rgbString, retval.target) - end - - return retval, nil -end - ----@param guid string ----@return {name: string, startms: number, endms: number, spellid: number}, nil|string -local function GetCastInfoForGuid(guid) - local retval = { - name = "", - startms = 0, - endms = 0, - spellid = 0, - } - - local unit, err = GetUnitFromGuid(guid) - if err then return retval, err end - local name, _, _, _, startTimeMS, endTimeMS, _, _, _, spellId = UnitCastingInfo(unit) - if name == nil then return retval, "Unit not casting" end - - retval.name = name - retval.startms = startTimeMS - retval.endms = endTimeMS - retval.spellid = spellId - - return retval, nil -end - ----@class Alert ----@field id number ----@field soundFile string ----@field events table ----@field instruction string ----@field afflictedInstruction string ----@field iterator number -aura_env.Alert = { - ---@param id number - ---@param name string - ---@param events table - ---@param instruction string - ---@param afflictedInstruction string - ---@return Alert - new = function(id, name, events, instruction, afflictedInstruction) - local self = setmetatable({}, { - __index = aura_env.Alert, - }) - self.id = id - name = string.gsub(name, " ", "_") - name = string.lower(name) - self.soundFile = string.format("%s%s.ogg", SoundFileRoot, name) - self.events = {} - for _, event in ipairs(events) do - self.events[event] = true - end - self.instruction = instruction - self.afflictedInstruction = afflictedInstruction - self.iterator = 0 - return self - end, - - ---@param self Alert - ---@param allstates allstates - ---@param ... any - ---@return string|nil - Trigger = function(self, allstates, ...) - -- We trust that the event is valid - local spellname, err = CLEUParser.GetSpellName(...) - if err then return err end - - -- The idea is: - -- SEE C_NamePlate.GetNamePlateForUnit !!!! - -- If the spell is being cast (SPELL_CAST_START) target will be nil (because server is cooked) - -- So what we want to do is get the source GUID and try to find it in nameplates - -- If it exists in nameplates we have a unitid and we can try to get casting info - -- From the casting info we can get the cast start and end as well as get the target from unit+target - -- However if the spell is already cast (SPELL_CAST_SUCCESS) the call to castInfo will return no info for cast - -- But it will return info about the target - -- Now the target itself is the actual target of the unit NOT the target of the spell - -- We just have to assume that the target of the spell is the same as the target of the unit - -- We then clamp the cast time to at least 1 second (meaning instant spells appear for 1s) - -- And get the target "manually" from the instant cast using the same principle as with the cast start - local src, err = CLEUParser.GetSourceGUID(...) - if err then return err end - local castInfo, err = GetCastInfoForGuid(src) - local targetInfo, err = GetTargetInfoForGuid(src) - DevTools_Dump(targetInfo) - - -- If the event DOES have destName then use that ACTUAL target - -- Unless it's the same target we already got - -- The reason we don't overwrite the same target we already got is because we can not (easily) infer - -- The target class from the destName because we don't know where to look for the unit - local target, err = CLEUParser.GetDestName(...) - if err == nil and target ~= targetInfo.target then - targetInfo.target = target - targetInfo.prettyTarget = target - targetInfo.targetClassId = 1 - end - - local displayText = self.instruction - 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) - - ---@type state - local state = { - show = true, - changed = true, - progressType = "timed", - expireTime = castEnd, - duration = castDuration, - autoHide = true, - name = spellname, - instruction = displayText, - target = targetInfo.target, - prettyTarget = targetInfo.prettyTarget, - targetClassId = targetInfo.targetClassId, - } - - allstates[string.format("%d-%d", self.id, self.iterator)] = state - self.iterator = self.iterator + 1 - return nil - end, -} - -local alerts = { - -- Debug - -- aura_env.Alert.new(774, "Rejuvenation", { "SPELL_AURA_APPLIED" }, "REJUV", "REEEEEEEEJUUUUUUUUUUUVVVVVVVVV"), - -- Garothi - aura_env.Alert.new(244410, "Decimation", { "SPELL_CAST_SUCCESS" }, "", "Move"), - aura_env.Alert.new(246220, "Fel Bombardment", { "SPELL_CAST_SUCCESS" }, "", "Move"), - aura_env.Alert.new(244969, "Eradication", { "SPELL_CAST_START" }, "Run away", ""), - aura_env.Alert.new(244106, "Carnage", { "SPELL_CAST_START" }, "Tank the boss", ""), - aura_env.Alert.new(246664, "Annihilation", { "SPELL_CAST_SUCCESS" }, "Soak pools", ""), - -- 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(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 - -- aura_env.Alert.new(245161, "Entropic Mine"), -- Need more info - -- aura_env.Alert.new(245546, "Summon Reinforcements"), -- Need more info - -- Portal Keeper Hasabel - aura_env.Alert.new(244016, "Reality Tear", { "SPELL_CAST_SUCCESS" }, "", ""), - aura_env.Alert.new(243983, "Collapsing World", { "SPELL_CAST_SUCCESS" }, "Dodge", ""), - aura_env.Alert.new(244000, "Felstorm Barrage", { "SPELL_CAST_START" }, "Dodge", ""), - -- Imonar - -- 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(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", ""), - aura_env.Alert.new(250255, "Empowered Shock Lance", { "SPELL_CAST_START" }, "", ""), - -- Kin'garoth - aura_env.Alert.new(254919, "Forging Strike", { "SPELL_CAST_START" }, "", ""), - aura_env.Alert.new(254926, "Reverberating Strike", { "SPELL_CAST_START" }, "Dodge", "Dodge"), - -- aura_env.Alert.new(246840, "Ruiner"), -- Need more info - -- aura_env.Alert.new(246779, "Diabolic Bomb"), -- Need more info - -- aura_env.Alert.new(246706, "Demolish"), -- Need more info - -- Varimathras - aura_env.Alert.new(243960, "Shadow Strike", { "SPELL_CAST_SUCCESS" }, "Taunt", "Survive"), - aura_env.Alert.new(243961, "Misery", { "SPELL_AURA_APPLIED" }, "", "Survive"), - aura_env.Alert.new(244042, "Marked Prey", { "SPELL_AURA_APPLIED" }, "Do not soak", "Let someone soak"), - -- aura_env.Alert.new(244093, "Necrotic Embrace"), -- Need more info - -- aura_env.Alert.new(248732, "Echoes of Doom"), -- Need more info - aura_env.Alert.new(243999, "Dark Fissure", { "SPELL_CAST_START" }, "Move", ""), - -- Coven - -- aura_env.Alert.new(253189, "Shivan Pact"), -- Need more info - aura_env.Alert.new(244899, "Fiery Strike", { "SPELL_CAST_START" }, "", "Prepare"), - aura_env.Alert.new(245627, "Whirling Saber", { "SPELL_CAST_START" }, "Dodge", ""), - aura_env.Alert.new(245281, "Shadow Blades", { "SPELL_CAST_START" }, "Dodge", ""), -- Need more info - aura_env.Alert.new(245586, "Chilled Blood", { "SPELL_AURA_APPLIED" }, "Heal", "Heal"), - -- Aggramar - -- aura_env.Alert.new(254452, "Ravenous Blaze"), -- Need more info - aura_env.Alert.new(244693, "Wake of Flame", { "SPELL_CAST_START" }, "Dodge", "Dodge!"), - -- aura_env.Alert.new(244291, "Foe Braker"), -- Need more info - -- aura_env.Alert.new(244033, "Flame Rend"), -- Need more info - -- aura_env.Alert.new(247079, "Empowered Flame Rend"), -- Need more info - -- aura_env.Alert.new(245983, "Flare"), -- Need more info - -- aura_env.Alert.new(246037, "Empowered Flare"), -- Need more info - -- Argus - -- aura_env.Alert.new(256457, "Cone of Death"), -- Need more info - aura_env.Alert.new(248396, "Soulblight", { "SPELL_AURA_APPLIED" }, "", "Run away from group"), - aura_env.Alert.new(257296, "Tortured Rage", { "SPELL_CAST_START" }, "Brace", ""), - aura_env.Alert.new(251570, "Soulbomb", { "SPELL_AURA_APPLIED" }, "Brace", "Run far away from group"), - - -- Mythic+ - -- Black Rook Hold - -- aura_env.Alert.new(225573, "Dark Mending"), - -- aura_env.Alert.new(200105, "Sacrifice Soul"), - -- aura_env.Alert.new(225732, "Strike Down"), - -- aura_env.Alert.new(194996, "Soul Echoes"), - -- aura_env.Alert.new(195254, "Swirling Scythe"), - -- aura_env.Alert.new(194956, "Reap Soul"), - aura_env.Alert.new(201858, "Shoot", { "SPELL_CAST_START" }, "", "LOS!"), - -- aura_env.Alert.new(200248, "Arcane Blitz"), - -- aura_env.Alert.new(200345, "Arrow Barrage"), - -- aura_env.Alert.new(200291, "Knife Dance"), - -- aura_env.Alert.new(200261, "Bonebreaking Strike"), - -- aura_env.Alert.new(197418, "Vengeful Shear"), - -- aura_env.Alert.new(201139, "Brutal Assault"), - -- aura_env.Alert.new(198245, "Brutal Haymaker"), - -- aura_env.Alert.new(198079, "Hateful Gaze"), - -- Cathedral of Eternal Night - -- aura_env.Alert.new(241937, "Shadow Wall"), - -- aura_env.Alert.new(238543, "Demonic Mending"), - -- aura_env.Alert.new(242792, "Vile Roots"), - -- aura_env.Alert.new(236627, "Floral Fulmination"), - -- aura_env.Alert.new(239217, "Blinding Glare"), - -- aura_env.Alert.new(237726, "Scornful Gaze"), - -- aura_env.Alert.new(190620, "Felblaze Orb"), - -- aura_env.Alert.new(239268, "Venom Storm"), - -- aura_env.Alert.new(234107, "Chaotic Energy"), - -- aura_env.Alert.new(236543, "Felsoul Cleave"), - -- aura_env.Alert.new(238315, "Shadow Sweep"), - -- aura_env.Alert.new(243168, "Demonic Upheaval"), - -- Court of Stars - -- aura_env.Alert.new(210261, "Sound Alarm"), - -- aura_env.Alert.new(215204, "Hinder"), - -- aura_env.Alert.new(209027, "Quelling Strike"), - -- aura_env.Alert.new(209516, "Mana Fang"), - -- aura_env.Alert.new(209485, "Drain Magic"), - -- aura_env.Alert.new(209404, "Seal Magic"), - -- aura_env.Alert.new(209495, "Charged Smash"), - -- aura_env.Alert.new(225100, "Charging Station"), - -- aura_env.Alert.new(219488, "Streetsweeper"), - -- aura_env.Alert.new(212784, "Eye Storm"), - -- aura_env.Alert.new(211464, "Fel Detonation"), - -- aura_env.Alert.new(207980, "Disintegration Beam"), - -- aura_env.Alert.new(207979, "Shockwave"), - -- aura_env.Alert.new(209628, "Piercing Gale"), - -- aura_env.Alert.new(209676, "Slicing Maelstrom"), - -- Darkheart Thicket - -- aura_env.Alert.new(200631, "Unnerving Screech"), - -- aura_env.Alert.new(200580, "Maddening Roar"), - -- aura_env.Alert.new(191326, "Breath of Corruption"), - -- aura_env.Alert.new(201400, "Dread Inferno"), - -- aura_env.Alert.new(200238, "Feed on the Weak"), - -- Eye of Azshara - -- aura_env.Alert.new(195172, "Mighty Slam"), - -- aura_env.Alert.new(195129, "Thundering Stomp"), - -- aura_env.Alert.new(195046, "Rejuvenating Waters"), - -- aura_env.Alert.new(162135, "Bellowing Roar"), - -- aura_env.Alert.new(197105, "Polymorh Fish"), - -- aura_env.Alert.new(193597, "Static Nova"), - -- aura_env.Alert.new(193611, "Focused Lightning"), - -- aura_env.Alert.new(196129, "Spray Sand"), - -- aura_env.Alert.new(196144, "Sandstorm"), - -- aura_env.Alert.new(196296, "Roiling Storm"), - -- aura_env.Alert.new(196290, "Chaotic Tempest"), - -- aura_env.Alert.new(191848, "Rampage"), - -- Halls of Valor - -- aura_env.Alert.new(198605, "Thunderstrike"), - -- aura_env.Alert.new(198888, "Lightning Breath"), - -- aura_env.Alert.new(191284, "Horn of Valor"), - -- aura_env.Alert.new(198934, "Rune of Healing"), - -- aura_env.Alert.new(215433, "Holy Radiance"), - -- aura_env.Alert.new(199210, "Penetrating Shot"), - -- aura_env.Alert.new(191976, "Arcing Bolt"), - -- aura_env.Alert.new(192305, "Eye of the Storm"), - -- aura_env.Alert.new(192307, "Sanctify"), - -- aura_env.Alert.new(192048, "Expel Light"), - -- aura_env.Alert.new(192018, "Shield of Light"), - -- aura_env.Alert.new(196512, "Claw Frenzy"), - -- aura_env.Alert.new(199652, "Sever"), - -- aura_env.Alert.new(199726, "Unruly Yell"), - -- aura_env.Alert.new(199674, "Wicked Dagger"), - -- aura_env.Alert.new(193826, "Ragnarok"), - -- aura_env.Alert.new(198263, "Radiant Tempest"), - -- aura_env.Alert.new(198072, "Spear of Light"), - -- aura_env.Alert.new(197961, "Runic Band"), - -- aura_env.Alert.new(198750, "Surge"), - -- Maw of Souls - -- aura_env.Alert.new(193364, "Screams of the Dead"), - -- aura_env.Alert.new(194442, "Six Pound Barrel"), - -- aura_env.Alert.new(194615, "Sea Legs"), - -- aura_env.Alert.new(192019, "Lantern of Darkness"), - -- aura_env.Alert.new(194099, "Bile Breath"), - -- aura_env.Alert.new(198405, "Bone Chilling Scream"), - -- aura_env.Alert.new(194325, "Fragment"), - -- aura_env.Alert.new(194216, "Cosmic Scythe"), - -- aura_env.Alert.new(195293, "Debilitating Shout"), - -- aura_env.Alert.new(185539, "Rapid Rupture"), - -- aura_env.Alert.new(198495, "Torrent"), - -- aura_env.Alert.new(202098, "Brackwater Barrage"), - -- Neltharion's Lair - -- aura_env.Alert.new(202181, "Stone Gaze"), - -- aura_env.Alert.new(226296, "Piercing Shards"), - -- aura_env.Alert.new(188169, "Razor Shards"), - -- aura_env.Alert.new(198496, "Sunder"), - -- aura_env.Alert.new(199176, "Spiked Tongue"), - -- aura_env.Alert.new(193585, "Bound"), - -- aura_env.Alert.new(200700, "Landslide"), - -- aura_env.Alert.new(200732, "Molten Crash"), - -- The Arcway - -- aura_env.Alert.new(211771, "Prophecies of Doom"), - -- aura_env.Alert.new(211037, "Celerity Zone"), - -- aura_env.Alert.new(195791, "Quarantine"), - -- aura_env.Alert.new(226285, "Demonic Ascension"), - -- aura_env.Alert.new(197810, "Wicked Slam"), - -- aura_env.Alert.new(211217, "Arcane Slicer"), - -- aura_env.Alert.new(211115, "Phase Breach"), - -- aura_env.Alert.new(196392, "Overcharge Mana"), - -- aura_env.Alert.new(200040, "Nether Venom"), - -- aura_env.Alert.new(200227, "Tangled Web"), - -- aura_env.Alert.new(220871, "Unstable Mana"), - -- Vault of the Wardens - -- aura_env.Alert.new(193069, "Nightmares"), - -- aura_env.Alert.new(197799, "Unleash Fury"), - -- aura_env.Alert.new(191735, "Deafening Screech"), - -- aura_env.Alert.new(190836, "Hatred"), - -- aura_env.Alert.new(202913, "Fel Mortar"), - -- aura_env.Alert.new(200898, "Teleport"), - -- aura_env.Alert.new(199917, "Shadow Crash"), - -- aura_env.Alert.new(202658, "Drain"), - -- aura_env.Alert.new(194945, "Lingering Gaze"), - -- aura_env.Alert.new(196249, "Meteor"), - -- aura_env.Alert.new(192631, "Lava Wreath"), - -- aura_env.Alert.new(197513, "Detonating Moonglaive"), - -- aura_env.Alert.new(189469, "Turn Kick"), - -- Upper Karazhan - -- aura_env.Alert.new(230083, "Nullification"), - -- aura_env.Alert.new(227267, "Summon Volatile Energy"), - -- aura_env.Alert.new(227254, "Evocation"), - -- aura_env.Alert.new(229662, "Fel Breath"), - -- aura_env.Alert.new(36247, "Fel Fireball"), - -- aura_env.Alert.new(227628, "Piercing Missiles"), - -- aura_env.Alert.new(227615, "Inferno Bolt"), - -- aura_env.Alert.new(227592, "Frostbite"), - -- aura_env.Alert.new(228269, "Flame Wreath"), - -- aura_env.Alert.new(227779, "Ceaseless Winter"), - -- aura_env.Alert.new(229706, "Leech Life"), - -- aura_env.Alert.new(229714, "Consume Magic"), - -- aura_env.Alert.new(229159, "Chaotic Shadows"), - -- aura_env.Alert.new(229083, "Burning Blast"), - -- aura_env.Alert.new(229151, "Disintegrate"), - -- Lower Karazhan - -- aura_env.Alert.new(228221, "Severe Dusting"), - -- aura_env.Alert.new(228225, "Sultry Heat"), - -- aura_env.Alert.new(232153, "Kara Kazham"), - -- aura_env.Alert.new(227987, "Dinner Bell"), - -- aura_env.Alert.new(228025, "Heat Wave"), - -- aura_env.Alert.new(227568, "Burning Leg Sweep"), - -- aura_env.Alert.new(227776, "Magic Magnificent"), - -- aura_env.Alert.new(227966, "Flashlight"), - -- aura_env.Alert.new(228279, "Shadow Rejuvenation"), - -- aura_env.Alert.new(228278, "Demoralizing Shout"), - -- aura_env.Alert.new(228277, "Shackles of Servitude"), - -- aura_env.Alert.new(226316, "Shadow Bolt Volley"), - -- aura_env.Alert.new(227508, "Mass Repentance"), - -- aura_env.Alert.new(227793, "Sacred Ground"), - -- aura_env.Alert.new(227463, "Whirling Edge"), - -- aura_env.Alert.new(227646, "Iron Whirlwind"), - -- aura_env.Alert.new(227672, "Will Breaker"), - -- aura_env.Alert.new(227404, "Intangible Presence"), - -- aura_env.Alert.new(227493, "Mortal Strike"), - -- aura_env.Alert.new(228852, "Shared Suffering"), - -- aura_env.Alert.new(228837, "Bellowing Roar"), -} - ----@type table> -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 - aura_env.EventMap[event][alert.id] = alert - end -end - -local function varargToString(...) - local output = {} - for i = 1, select("#", ...) do - output[#output + 1] = string.format("%d = %s", i, tostring(select(i, ...))) - end - return table.concat(output, "; ") -end - --- C:\Users\Administrator\Seafile\Backup-WoW\Ruski\WTF\Account\phatphuckdave\SavedVariables\WeakAuras.lua -if not WeakAurasSaved then WeakAurasSaved = {} end -if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end -if not WeakAurasSaved.Cyka.CLEUExample then WeakAurasSaved.Cyka.CLEUExample = {} end ---/run WeakAurasSaved.Cyka.CLEUExample = {} ----@param spellName string ----@param spellId number ----@param subevent string ----@param ... any -aura_env.LogSpell = function(spellName, spellId, subevent, ...) - -- table.insert(WeakAurasSaved.Cyka.CLEUExample, varargToString(spellName, spellId, subevent, ...)) -end +aura_env.GUIDUnitMap = {} +aura_env.PlayerName = UnitName("player") +-- Indices are class ids +---@alias ClassColor {className: string, color: {rgbInt: table, rgbHex: table}, rgbString: string} +---@type table +aura_env.ClassColors = { + { + className = "Warrior", + color = { + rgbInt = { 198, 155, 109 }, + rgbHex = { 0.78, 0.61, 0.43 }, + }, + rgbString = "C69B6D", + }, + { + className = "Paladin", + color = { + rgbInt = { 244, 140, 186 }, + rgbHex = { 0.96, 0.55, 0.73 }, + }, + rgbString = "F48CBA", + }, + { + className = "Hunter", + color = { + rgbInt = { 170, 211, 114 }, + rgbHex = { 0.67, 0.83, 0.45 }, + }, + rgbString = "AAD372", + }, + { + className = "Rogue", + color = { + rgbInt = { 255, 244, 104 }, + rgbHex = { 1.00, 0.96, 0.41 }, + }, + rgbString = "FFF468", + }, + { + className = "Priest", + color = { + rgbInt = { 255, 255, 255 }, + rgbHex = { 1.00, 1.00, 1.00 }, + }, + rgbString = "FFFFFF", + }, + { + className = "Death Knight", + color = { + rgbInt = { 196, 30, 58 }, + rgbHex = { 0.77, 0.12, 0.23 }, + }, + rgbString = "C41E3A", + }, + { + className = "Shaman", + color = { + rgbInt = { 0, 112, 221 }, + rgbHex = { 0.00, 0.44, 0.87 }, + }, + rgbString = "0070DD", + }, + { + className = "Mage", + color = { + rgbInt = { 63, 199, 235 }, + rgbHex = { 0.25, 0.78, 0.92 }, + }, + rgbString = "3FC7EB", + }, + { + className = "Warlock", + color = { + rgbInt = { 135, 136, 238 }, + rgbHex = { 0.53, 0.53, 0.93 }, + }, + rgbString = "8788EE", + }, + { + className = "Monk", + color = { + rgbInt = { 0, 255, 152 }, + rgbHex = { 0.00, 1.00, 0.60 }, + }, + rgbString = "00FF98", + }, + { + className = "Druid", + color = { + rgbInt = { 255, 124, 10 }, + rgbHex = { 1.00, 0.49, 0.04 }, + }, + rgbString = "FF7C0A", + }, + { + className = "Demon Hunter", + color = { + rgbInt = { 163, 48, 201 }, + rgbHex = { 0.64, 0.19, 0.79 }, + }, + rgbString = "A330C9", + }, +} + +local SoundFileRoot = "Interface\\Sounds\\spellAlert\\" + +---@param guid string +---@return string, nil|string +local function GetUnitFromGuid(guid) + local unit = aura_env.GUIDUnitMap[guid] + if unit == nil then return "none", "Unit not found" end + return unit, nil +end + +---@param guid string +---@return {name: string, target: string, targetClassId: number, prettyTarget: string}, nil|string +local function GetTargetInfoForGuid(guid) + local retval = { + name = "", + target = "", + targetClassId = 1, + prettyTarget = "", + } + + local unit, err = GetUnitFromGuid(guid) + if err then return retval, err end + + local targetUnit = string.format("%starget", unit) + retval.target = UnitName(targetUnit) + retval.prettyTarget = retval.target + + local targetClassId = select(3, UnitClass(targetUnit)) + retval.targetClassId = targetClassId + ---@type ClassColor + local classColorInfo = aura_env.ClassColors[targetClassId] + if classColorInfo then + retval.prettyTarget = string.format("|cFF%s%s|r", classColorInfo.rgbString, retval.target) + end + + return retval, nil +end + +---@param guid string +---@return {name: string, startms: number, endms: number, spellid: number}, nil|string +local function GetCastInfoForGuid(guid) + local retval = { + name = "", + startms = 0, + endms = 0, + spellid = 0, + } + + local unit, err = GetUnitFromGuid(guid) + if err then return retval, err end + local name, _, _, _, startTimeMS, endTimeMS, _, _, _, spellId = UnitCastingInfo(unit) + if name == nil then return retval, "Unit not casting" end + + retval.name = name + retval.startms = startTimeMS + retval.endms = endTimeMS + retval.spellid = spellId + + return retval, nil +end + +---@class Alert +---@field id number +---@field soundFile string +---@field events table +---@field instruction string +---@field afflictedInstruction string +---@field iterator number +aura_env.Alert = { + ---@param id number + ---@param name string + ---@param events table + ---@param instruction string + ---@param afflictedInstruction string + ---@return Alert + new = function(id, name, events, instruction, afflictedInstruction) + local self = setmetatable({}, { + __index = aura_env.Alert, + }) + self.id = id + name = string.gsub(name, " ", "_") + name = string.lower(name) + self.soundFile = string.format("%s%s.ogg", SoundFileRoot, name) + self.events = {} + for _, event in ipairs(events) do + self.events[event] = true + end + self.instruction = instruction + self.afflictedInstruction = afflictedInstruction + self.iterator = 0 + return self + end, + + ---@param self Alert + ---@param allstates allstates + ---@param ... any + ---@return string|nil + Trigger = function(self, allstates, ...) + -- We trust that the event is valid + local spellname, err = CLEUParser.GetSpellName(...) + if err then return err end + + -- The idea is: + -- SEE C_NamePlate.GetNamePlateForUnit !!!! + -- If the spell is being cast (SPELL_CAST_START) target will be nil (because server is cooked) + -- So what we want to do is get the source GUID and try to find it in nameplates + -- If it exists in nameplates we have a unitid and we can try to get casting info + -- From the casting info we can get the cast start and end as well as get the target from unit+target + -- However if the spell is already cast (SPELL_CAST_SUCCESS) the call to castInfo will return no info for cast + -- But it will return info about the target + -- Now the target itself is the actual target of the unit NOT the target of the spell + -- We just have to assume that the target of the spell is the same as the target of the unit + -- We then clamp the cast time to at least 1 second (meaning instant spells appear for 1s) + -- And get the target "manually" from the instant cast using the same principle as with the cast start + local src, err = CLEUParser.GetSourceGUID(...) + if err then return err end + local castInfo, err = GetCastInfoForGuid(src) + local targetInfo, err = GetTargetInfoForGuid(src) + DevTools_Dump(targetInfo) + + -- If the event DOES have destName then use that ACTUAL target + -- Unless it's the same target we already got + -- The reason we don't overwrite the same target we already got is because we can not (easily) infer + -- The target class from the destName because we don't know where to look for the unit + local target, err = CLEUParser.GetDestName(...) + if err == nil and target ~= targetInfo.target then + targetInfo.target = target + targetInfo.prettyTarget = target + targetInfo.targetClassId = 1 + end + + local displayText = self.instruction + 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) + + ---@type state + local state = { + show = true, + changed = true, + progressType = "timed", + expireTime = castEnd, + duration = castDuration, + autoHide = true, + name = spellname, + instruction = displayText, + target = targetInfo.target, + prettyTarget = targetInfo.prettyTarget, + targetClassId = targetInfo.targetClassId, + } + + allstates[string.format("%d-%d", self.id, self.iterator)] = state + self.iterator = self.iterator + 1 + return nil + end, +} + +local alerts = { + -- Debug + -- aura_env.Alert.new(774, "Rejuvenation", { "SPELL_AURA_APPLIED" }, "REJUV", "REEEEEEEEJUUUUUUUUUUUVVVVVVVVV"), + -- Garothi + aura_env.Alert.new(244410, "Decimation", { "SPELL_CAST_SUCCESS" }, "", "Move"), + aura_env.Alert.new(246220, "Fel Bombardment", { "SPELL_CAST_SUCCESS" }, "", "Move"), + aura_env.Alert.new(244969, "Eradication", { "SPELL_CAST_START" }, "Run away", ""), + aura_env.Alert.new(244106, "Carnage", { "SPELL_CAST_START" }, "Tank the boss", ""), + aura_env.Alert.new(246664, "Annihilation", { "SPELL_CAST_SUCCESS" }, "Soak pools", ""), + -- 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(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 + -- aura_env.Alert.new(245161, "Entropic Mine"), -- Need more info + -- aura_env.Alert.new(245546, "Summon Reinforcements"), -- Need more info + -- Portal Keeper Hasabel + aura_env.Alert.new(244016, "Reality Tear", { "SPELL_CAST_SUCCESS" }, "", ""), + aura_env.Alert.new(243983, "Collapsing World", { "SPELL_CAST_SUCCESS" }, "Dodge", ""), + aura_env.Alert.new(244000, "Felstorm Barrage", { "SPELL_CAST_START" }, "Dodge", ""), + -- Imonar + -- 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(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", ""), + aura_env.Alert.new(250255, "Empowered Shock Lance", { "SPELL_CAST_START" }, "", ""), + -- Kin'garoth + aura_env.Alert.new(254919, "Forging Strike", { "SPELL_CAST_START" }, "", ""), + aura_env.Alert.new(254926, "Reverberating Strike", { "SPELL_CAST_START" }, "Dodge", "Dodge"), + -- aura_env.Alert.new(246840, "Ruiner"), -- Need more info + -- aura_env.Alert.new(246779, "Diabolic Bomb"), -- Need more info + -- aura_env.Alert.new(246706, "Demolish"), -- Need more info + -- Varimathras + aura_env.Alert.new(243960, "Shadow Strike", { "SPELL_CAST_SUCCESS" }, "Taunt", "Survive"), + aura_env.Alert.new(243961, "Misery", { "SPELL_AURA_APPLIED" }, "", "Survive"), + aura_env.Alert.new(244042, "Marked Prey", { "SPELL_AURA_APPLIED" }, "Do not soak", "Let someone soak"), + -- aura_env.Alert.new(244093, "Necrotic Embrace"), -- Need more info + -- aura_env.Alert.new(248732, "Echoes of Doom"), -- Need more info + aura_env.Alert.new(243999, "Dark Fissure", { "SPELL_CAST_START" }, "Move", ""), + -- Coven + -- aura_env.Alert.new(253189, "Shivan Pact"), -- Need more info + aura_env.Alert.new(244899, "Fiery Strike", { "SPELL_CAST_START" }, "", "Prepare"), + aura_env.Alert.new(245627, "Whirling Saber", { "SPELL_CAST_START" }, "Dodge", ""), + aura_env.Alert.new(245281, "Shadow Blades", { "SPELL_CAST_START" }, "Dodge", ""), -- Need more info + aura_env.Alert.new(245586, "Chilled Blood", { "SPELL_AURA_APPLIED" }, "Heal", "Heal"), + -- Aggramar + -- aura_env.Alert.new(254452, "Ravenous Blaze"), -- Need more info + aura_env.Alert.new(244693, "Wake of Flame", { "SPELL_CAST_START" }, "Dodge", "Dodge!"), + -- aura_env.Alert.new(244291, "Foe Braker"), -- Need more info + -- aura_env.Alert.new(244033, "Flame Rend"), -- Need more info + -- aura_env.Alert.new(247079, "Empowered Flame Rend"), -- Need more info + -- aura_env.Alert.new(245983, "Flare"), -- Need more info + -- aura_env.Alert.new(246037, "Empowered Flare"), -- Need more info + -- Argus + -- aura_env.Alert.new(256457, "Cone of Death"), -- Need more info + aura_env.Alert.new(248396, "Soulblight", { "SPELL_AURA_APPLIED" }, "", "Run away from group"), + aura_env.Alert.new(257296, "Tortured Rage", { "SPELL_CAST_START" }, "Brace", ""), + aura_env.Alert.new(251570, "Soulbomb", { "SPELL_AURA_APPLIED" }, "Brace", "Run far away from group"), + + -- Mythic+ + -- Black Rook Hold + -- aura_env.Alert.new(225573, "Dark Mending"), + -- aura_env.Alert.new(200105, "Sacrifice Soul"), + -- aura_env.Alert.new(225732, "Strike Down"), + -- aura_env.Alert.new(194996, "Soul Echoes"), + -- aura_env.Alert.new(195254, "Swirling Scythe"), + -- aura_env.Alert.new(194956, "Reap Soul"), + aura_env.Alert.new(201858, "Shoot", { "SPELL_CAST_START" }, "", "LOS!"), + -- aura_env.Alert.new(200248, "Arcane Blitz"), + -- aura_env.Alert.new(200345, "Arrow Barrage"), + -- aura_env.Alert.new(200291, "Knife Dance"), + -- aura_env.Alert.new(200261, "Bonebreaking Strike"), + -- aura_env.Alert.new(197418, "Vengeful Shear"), + -- aura_env.Alert.new(201139, "Brutal Assault"), + -- aura_env.Alert.new(198245, "Brutal Haymaker"), + -- aura_env.Alert.new(198079, "Hateful Gaze"), + -- Cathedral of Eternal Night + -- aura_env.Alert.new(241937, "Shadow Wall"), + -- aura_env.Alert.new(238543, "Demonic Mending"), + -- aura_env.Alert.new(242792, "Vile Roots"), + -- aura_env.Alert.new(236627, "Floral Fulmination"), + -- aura_env.Alert.new(239217, "Blinding Glare"), + -- aura_env.Alert.new(237726, "Scornful Gaze"), + -- aura_env.Alert.new(190620, "Felblaze Orb"), + -- aura_env.Alert.new(239268, "Venom Storm"), + -- aura_env.Alert.new(234107, "Chaotic Energy"), + -- aura_env.Alert.new(236543, "Felsoul Cleave"), + -- aura_env.Alert.new(238315, "Shadow Sweep"), + -- aura_env.Alert.new(243168, "Demonic Upheaval"), + -- Court of Stars + -- aura_env.Alert.new(210261, "Sound Alarm"), + -- aura_env.Alert.new(215204, "Hinder"), + -- aura_env.Alert.new(209027, "Quelling Strike"), + -- aura_env.Alert.new(209516, "Mana Fang"), + -- aura_env.Alert.new(209485, "Drain Magic"), + -- aura_env.Alert.new(209404, "Seal Magic"), + -- aura_env.Alert.new(209495, "Charged Smash"), + -- aura_env.Alert.new(225100, "Charging Station"), + -- aura_env.Alert.new(219488, "Streetsweeper"), + -- aura_env.Alert.new(212784, "Eye Storm"), + -- aura_env.Alert.new(211464, "Fel Detonation"), + -- aura_env.Alert.new(207980, "Disintegration Beam"), + -- aura_env.Alert.new(207979, "Shockwave"), + -- aura_env.Alert.new(209628, "Piercing Gale"), + -- aura_env.Alert.new(209676, "Slicing Maelstrom"), + -- Darkheart Thicket + -- aura_env.Alert.new(200631, "Unnerving Screech"), + -- aura_env.Alert.new(200580, "Maddening Roar"), + -- aura_env.Alert.new(191326, "Breath of Corruption"), + -- aura_env.Alert.new(201400, "Dread Inferno"), + -- aura_env.Alert.new(200238, "Feed on the Weak"), + -- Eye of Azshara + -- aura_env.Alert.new(195172, "Mighty Slam"), + -- aura_env.Alert.new(195129, "Thundering Stomp"), + -- aura_env.Alert.new(195046, "Rejuvenating Waters"), + -- aura_env.Alert.new(162135, "Bellowing Roar"), + -- aura_env.Alert.new(197105, "Polymorh Fish"), + -- aura_env.Alert.new(193597, "Static Nova"), + -- aura_env.Alert.new(193611, "Focused Lightning"), + -- aura_env.Alert.new(196129, "Spray Sand"), + -- aura_env.Alert.new(196144, "Sandstorm"), + -- aura_env.Alert.new(196296, "Roiling Storm"), + -- aura_env.Alert.new(196290, "Chaotic Tempest"), + -- aura_env.Alert.new(191848, "Rampage"), + -- Halls of Valor + -- aura_env.Alert.new(198605, "Thunderstrike"), + -- aura_env.Alert.new(198888, "Lightning Breath"), + -- aura_env.Alert.new(191284, "Horn of Valor"), + -- aura_env.Alert.new(198934, "Rune of Healing"), + -- aura_env.Alert.new(215433, "Holy Radiance"), + -- aura_env.Alert.new(199210, "Penetrating Shot"), + -- aura_env.Alert.new(191976, "Arcing Bolt"), + -- aura_env.Alert.new(192305, "Eye of the Storm"), + -- aura_env.Alert.new(192307, "Sanctify"), + -- aura_env.Alert.new(192048, "Expel Light"), + -- aura_env.Alert.new(192018, "Shield of Light"), + -- aura_env.Alert.new(196512, "Claw Frenzy"), + -- aura_env.Alert.new(199652, "Sever"), + -- aura_env.Alert.new(199726, "Unruly Yell"), + -- aura_env.Alert.new(199674, "Wicked Dagger"), + -- aura_env.Alert.new(193826, "Ragnarok"), + -- aura_env.Alert.new(198263, "Radiant Tempest"), + -- aura_env.Alert.new(198072, "Spear of Light"), + -- aura_env.Alert.new(197961, "Runic Band"), + -- aura_env.Alert.new(198750, "Surge"), + -- Maw of Souls + -- aura_env.Alert.new(193364, "Screams of the Dead"), + -- aura_env.Alert.new(194442, "Six Pound Barrel"), + -- aura_env.Alert.new(194615, "Sea Legs"), + -- aura_env.Alert.new(192019, "Lantern of Darkness"), + -- aura_env.Alert.new(194099, "Bile Breath"), + -- aura_env.Alert.new(198405, "Bone Chilling Scream"), + -- aura_env.Alert.new(194325, "Fragment"), + -- aura_env.Alert.new(194216, "Cosmic Scythe"), + -- aura_env.Alert.new(195293, "Debilitating Shout"), + -- aura_env.Alert.new(185539, "Rapid Rupture"), + -- aura_env.Alert.new(198495, "Torrent"), + -- aura_env.Alert.new(202098, "Brackwater Barrage"), + -- Neltharion's Lair + -- aura_env.Alert.new(202181, "Stone Gaze"), + -- aura_env.Alert.new(226296, "Piercing Shards"), + -- aura_env.Alert.new(188169, "Razor Shards"), + -- aura_env.Alert.new(198496, "Sunder"), + -- aura_env.Alert.new(199176, "Spiked Tongue"), + -- aura_env.Alert.new(193585, "Bound"), + -- aura_env.Alert.new(200700, "Landslide"), + -- aura_env.Alert.new(200732, "Molten Crash"), + -- The Arcway + -- aura_env.Alert.new(211771, "Prophecies of Doom"), + -- aura_env.Alert.new(211037, "Celerity Zone"), + -- aura_env.Alert.new(195791, "Quarantine"), + -- aura_env.Alert.new(226285, "Demonic Ascension"), + -- aura_env.Alert.new(197810, "Wicked Slam"), + -- aura_env.Alert.new(211217, "Arcane Slicer"), + -- aura_env.Alert.new(211115, "Phase Breach"), + -- aura_env.Alert.new(196392, "Overcharge Mana"), + -- aura_env.Alert.new(200040, "Nether Venom"), + -- aura_env.Alert.new(200227, "Tangled Web"), + -- aura_env.Alert.new(220871, "Unstable Mana"), + -- Vault of the Wardens + -- aura_env.Alert.new(193069, "Nightmares"), + -- aura_env.Alert.new(197799, "Unleash Fury"), + -- aura_env.Alert.new(191735, "Deafening Screech"), + -- aura_env.Alert.new(190836, "Hatred"), + -- aura_env.Alert.new(202913, "Fel Mortar"), + -- aura_env.Alert.new(200898, "Teleport"), + -- aura_env.Alert.new(199917, "Shadow Crash"), + -- aura_env.Alert.new(202658, "Drain"), + -- aura_env.Alert.new(194945, "Lingering Gaze"), + -- aura_env.Alert.new(196249, "Meteor"), + -- aura_env.Alert.new(192631, "Lava Wreath"), + -- aura_env.Alert.new(197513, "Detonating Moonglaive"), + -- aura_env.Alert.new(189469, "Turn Kick"), + -- Upper Karazhan + -- aura_env.Alert.new(230083, "Nullification"), + -- aura_env.Alert.new(227267, "Summon Volatile Energy"), + -- aura_env.Alert.new(227254, "Evocation"), + -- aura_env.Alert.new(229662, "Fel Breath"), + -- aura_env.Alert.new(36247, "Fel Fireball"), + -- aura_env.Alert.new(227628, "Piercing Missiles"), + -- aura_env.Alert.new(227615, "Inferno Bolt"), + -- aura_env.Alert.new(227592, "Frostbite"), + -- aura_env.Alert.new(228269, "Flame Wreath"), + -- aura_env.Alert.new(227779, "Ceaseless Winter"), + -- aura_env.Alert.new(229706, "Leech Life"), + -- aura_env.Alert.new(229714, "Consume Magic"), + -- aura_env.Alert.new(229159, "Chaotic Shadows"), + -- aura_env.Alert.new(229083, "Burning Blast"), + -- aura_env.Alert.new(229151, "Disintegrate"), + -- Lower Karazhan + -- aura_env.Alert.new(228221, "Severe Dusting"), + -- aura_env.Alert.new(228225, "Sultry Heat"), + -- aura_env.Alert.new(232153, "Kara Kazham"), + -- aura_env.Alert.new(227987, "Dinner Bell"), + -- aura_env.Alert.new(228025, "Heat Wave"), + -- aura_env.Alert.new(227568, "Burning Leg Sweep"), + -- aura_env.Alert.new(227776, "Magic Magnificent"), + -- aura_env.Alert.new(227966, "Flashlight"), + -- aura_env.Alert.new(228279, "Shadow Rejuvenation"), + -- aura_env.Alert.new(228278, "Demoralizing Shout"), + -- aura_env.Alert.new(228277, "Shackles of Servitude"), + -- aura_env.Alert.new(226316, "Shadow Bolt Volley"), + -- aura_env.Alert.new(227508, "Mass Repentance"), + -- aura_env.Alert.new(227793, "Sacred Ground"), + -- aura_env.Alert.new(227463, "Whirling Edge"), + -- aura_env.Alert.new(227646, "Iron Whirlwind"), + -- aura_env.Alert.new(227672, "Will Breaker"), + -- aura_env.Alert.new(227404, "Intangible Presence"), + -- aura_env.Alert.new(227493, "Mortal Strike"), + -- aura_env.Alert.new(228852, "Shared Suffering"), + -- aura_env.Alert.new(228837, "Bellowing Roar"), +} + +---@type table> +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 + aura_env.EventMap[event][alert.id] = alert + end +end + +local function varargToString(...) + local output = {} + for i = 1, select("#", ...) do + output[#output + 1] = string.format("%d = %s", i, tostring(select(i, ...))) + end + return table.concat(output, "; ") +end + +-- C:\Users\Administrator\Seafile\Backup-WoW\Ruski\WTF\Account\phatphuckdave\SavedVariables\WeakAuras.lua +if not WeakAurasSaved then WeakAurasSaved = {} end +if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end +if not WeakAurasSaved.Cyka.CLEUExample then WeakAurasSaved.Cyka.CLEUExample = {} end +--/run WeakAurasSaved.Cyka.CLEUExample = {} +---@param spellName string +---@param spellId number +---@param subevent string +---@param ... any +aura_env.LogSpell = function(spellName, spellId, subevent, ...) + -- table.insert(WeakAurasSaved.Cyka.CLEUExample, varargToString(spellName, spellId, subevent, ...)) +end diff --git a/FreshShit/RaiderlosSA/logger.lua b/WeakAuras/Projects/RaiderlosSA/logger.lua similarity index 96% rename from FreshShit/RaiderlosSA/logger.lua rename to WeakAuras/Projects/RaiderlosSA/logger.lua index f05b50c..e4358f1 100644 --- a/FreshShit/RaiderlosSA/logger.lua +++ b/WeakAuras/Projects/RaiderlosSA/logger.lua @@ -1,13 +1,13 @@ ---- COMBAT_LOG_EVENT_UNFILTERED ----@param e string ----@param ... any -function(e, ...) - local spellName, err = CLEUParser.GetSpellName(...) - if err then return end - local spellId, err = CLEUParser.GetSpellId(...) - if err then return end - local subevent, err = CLEUParser.GetSubevent(...) - if err then return end - aura_env.LogSpell(spellName, spellId, subevent, ...) -end +--- COMBAT_LOG_EVENT_UNFILTERED +---@param e string +---@param ... any +function(e, ...) + local spellName, err = CLEUParser.GetSpellName(...) + if err then return end + local spellId, err = CLEUParser.GetSpellId(...) + if err then return end + local subevent, err = CLEUParser.GetSubevent(...) + if err then return end + aura_env.LogSpell(spellName, spellId, subevent, ...) +end \ No newline at end of file diff --git a/WeakAuras/Projects/RaiderlosSA/out/162135.txt b/WeakAuras/Projects/RaiderlosSA/out/162135.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/185539.txt b/WeakAuras/Projects/RaiderlosSA/out/185539.txt new file mode 100644 index 0000000..bdcedc3 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/185539.txt @@ -0,0 +1,13 @@ + ["185539-SPELL_PERIODIC_DAMAGE"] = "Rapid Rupture, 185539, SPELL_PERIODIC_DAMAGE, 1709839495.01, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1492-0-99801-000060B841, Destructor Tentacle, 2632, 0, Player-67-00282563, Fregath, 1298, 0, 185539, Rapid Rupture, 1, 32288, 0, 1, nil, nil, nil, false, false, false, false", + ["185539-SPELL_CAST_SUCCESS"] = "Rapid Rupture, 185539, SPELL_CAST_SUCCESS, 1709839460.962, SPELL_CAST_SUCCESS, false, Creature-0-67-1492-0-99801-000060A908, Destructor Tentacle, 68168, 0, Player-67-00282563, Fregath, 1298, 0, 185539, Rapid Rupture, 1", + ["185539-SPELL_AURA_REMOVED"] = "Rapid Rupture, 185539, SPELL_AURA_REMOVED, 1709839467.088, SPELL_AURA_REMOVED, false, Creature-0-67-1492-0-99801-000060A908, Destructor Tentacle, 2632, 0, Player-67-00282563, Fregath, 1298, 0, 185539, Rapid Rupture, 1, DEBUFF", + ["185539-SPELL_PERIODIC_MISSED"] = "Rapid Rupture, 185539, SPELL_PERIODIC_MISSED, 1709839461.485, SPELL_PERIODIC_MISSED, false, Creature-0-67-1492-0-99801-000060A908, Destructor Tentacle, 68168, 0, Player-67-00282563, Fregath, 1298, 0, 185539, Rapid Rupture, 1, ABSORB, false, 32820", + ["185539-SPELL_AURA_APPLIED"] = "Rapid Rupture, 185539, SPELL_AURA_APPLIED, 1709839461.017, SPELL_AURA_APPLIED, false, Creature-0-67-1492-0-99801-000060A908, Destructor Tentacle, 68168, 0, Player-67-00282563, Fregath, 1298, 0, 185539, Rapid Rupture, 1, DEBUFF", + ["185539-SPELL_AURA_APPLIED_DOSE"] = "Rapid Rupture, 185539, SPELL_AURA_APPLIED_DOSE, 1710449840.496, SPELL_AURA_APPLIED_DOSE, false, Creature-0-67-1492-0-99801-00006586C4, Destructor Tentacle, 2632, 0, Player-67-0020D015, Shadowhavoc, 1298, 0, 185539, Rapid Rupture, 1, DEBUFF, 2", + ["185539-SPELL_ABSORBED"] = "Rapid Rupture, 185539, SPELL_ABSORBED, 1709839461.485, SPELL_ABSORBED, false, Creature-0-67-1492-0-99801-000060A908, Destructor Tentacle, 68168, 0, Player-67-00282563, Fregath, 1298, 0, 185539, Rapid Rupture, 1, Player-67-00282563, Fregath, 1298, 0, 209388, Bulwark of Order, 2, 32820", + ["185539-SPELL_PERIODIC_DAMAGE"] = "Rapid Rupture, 185539, SPELL_PERIODIC_DAMAGE, 1710320844.496, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1492-0-99801-0000295A03, Destructor Tentacle, 2632, 0, Player-67-0029B09E, Чазусеаз, 1298, 0, 185539, Rapid Rupture, 1, 38560, 0, 1, nil, nil, nil, false, false, false, false", + ["185539-SPELL_CAST_SUCCESS"] = "Rapid Rupture, 185539, SPELL_CAST_SUCCESS, 1710320843.996, SPELL_CAST_SUCCESS, false, Creature-0-67-1492-0-99801-0000295A03, Destructor Tentacle, 2632, 0, Player-67-0029B09E, Чазусеаз, 1298, 0, 185539, Rapid Rupture, 1", + ["185539-SPELL_AURA_APPLIED"] = "Rapid Rupture, 185539, SPELL_AURA_APPLIED, 1710320844.029, SPELL_AURA_APPLIED, false, Creature-0-67-1492-0-99801-0000295A03, Destructor Tentacle, 2632, 0, Player-67-0029B09E, Чазусеаз, 1298, 0, 185539, Rapid Rupture, 1, DEBUFF", + ["185539-SPELL_PERIODIC_MISSED"] = "Rapid Rupture, 185539, SPELL_PERIODIC_MISSED, 1710324706.593, SPELL_PERIODIC_MISSED, false, Creature-0-67-1492-0-99801-00002DD1DE, Destructor Tentacle, 68168, 0, Player-67-00197F9E, Arakyl, 1298, 0, 185539, Rapid Rupture, 1, ABSORB, false, 33816", + ["185539-SPELL_ABSORBED"] = "Rapid Rupture, 185539, SPELL_ABSORBED, 1710324706.593, SPELL_ABSORBED, false, Creature-0-67-1492-0-99801-00002DD1DE, Destructor Tentacle, 68168, 0, Player-67-00197F9E, Arakyl, 1298, 0, 185539, Rapid Rupture, 1, Player-67-00197F9E, Arakyl, 1298, 0, 252545, Light of Absolarn, 8, 25701", + ["185539-SPELL_AURA_REMOVED"] = "Rapid Rupture, 185539, SPELL_AURA_REMOVED, 1710320850.063, SPELL_AURA_REMOVED, false, Creature-0-67-1492-0-99801-0000295A03, Destructor Tentacle, 2632, 0, Player-67-0029B09E, Чазусеаз, 1298, 0, 185539, Rapid Rupture, 1, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/188169.txt b/WeakAuras/Projects/RaiderlosSA/out/188169.txt new file mode 100644 index 0000000..970703c --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/188169.txt @@ -0,0 +1,5 @@ + ["188169-SPELL_CAST_START"] = "Razor Shards, 188169, SPELL_CAST_START, 1709812109.246, SPELL_CAST_START, false, Creature-0-67-1458-0-91003-0000337608, Rokmora, 68168, 0, , nil, -2147483648, -2147483648, 188169, Razor Shards, 8", + ["188169-SPELL_MISSED"] = "Razor Shards, 188169, SPELL_MISSED, 1710153122.628, SPELL_MISSED, false, Creature-0-67-1458-0-91003-00002D7302, Rokmora, 68168, 0, Pet-0-67-1458-0-78158-00002D9D76, Doomguard, 4369, 0, 188169, Razor Shards, 8, ABSORB, false, 20539", + ["188169-SPELL_CAST_SUCCESS"] = "Razor Shards, 188169, SPELL_CAST_SUCCESS, 1709812113.072, SPELL_CAST_SUCCESS, false, Creature-0-67-1458-0-91003-0000337608, Rokmora, 68168, 0, Creature-0-67-1458-0-91003-0000337608, Rokmora, 68168, 0, 188169, Razor Shards, 8", + ["188169-SPELL_ABSORBED"] = "Razor Shards, 188169, SPELL_ABSORBED, 1709840203.112, SPELL_ABSORBED, false, Creature-0-67-1458-0-91003-000061B4C3, Rokmora, 68168, 0, Player-67-00282563, Fregath, 1298, 0, 188169, Razor Shards, 8, Player-67-00282563, Fregath, 1298, 0, 209388, Bulwark of Order, 2, 516034", + ["188169-SPELL_DAMAGE"] = "Razor Shards, 188169, SPELL_DAMAGE, 1709812113.318, SPELL_DAMAGE, false, Creature-0-67-1458-0-91003-0000337608, Rokmora, 68168, 0, Player-67-002A36D8, Pakkan, 1298, 0, 188169, Razor Shards, 8, 1767516, -1, 8, nil, nil, nil, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/189469.txt b/WeakAuras/Projects/RaiderlosSA/out/189469.txt new file mode 100644 index 0000000..6a8c25e --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/189469.txt @@ -0,0 +1,5 @@ + ["189469-SPELL_MISSED"] = "Turn Kick, 189469, SPELL_MISSED, 1710084317.828, SPELL_MISSED, false, Creature-0-67-1493-0-100364-00004F0DA3, Spirit of Vengeance, 2632, 0, Player-67-00334D94, Злойпень, 1298, 0, 189469, Turn Kick, 1, DODGE, false", + ["189469-SPELL_DAMAGE"] = "Turn Kick, 189469, SPELL_DAMAGE, 1709813880.787, SPELL_DAMAGE, false, Creature-0-67-1493-0-100364-000034E6DD, Spirit of Vengeance, 68168, 0, Player-67-002C9B2F, Pakmann, 1298, 0, 189469, Turn Kick, 1, 113126, -1, 1, nil, nil, nil, false, false, false, false", + ["189469-SPELL_CAST_SUCCESS"] = "Turn Kick, 189469, SPELL_CAST_SUCCESS, 1709813880.787, SPELL_CAST_SUCCESS, false, Creature-0-67-1493-0-100364-000034E6DD, Spirit of Vengeance, 68168, 0, Player-67-002C9B2F, Pakmann, 1298, 0, 189469, Turn Kick, 1", + ["189469-SPELL_CAST_START"] = "Turn Kick, 189469, SPELL_CAST_START, 1709803396.005, SPELL_CAST_START, false, Creature-0-67-1493-0-100364-000029414A, Spirit of Vengeance, 68168, 0, , nil, -2147483648, -2147483648, 189469, Turn Kick, 1", + ["189469-SPELL_ABSORBED"] = "Turn Kick, 189469, SPELL_ABSORBED, 1710344983.429, SPELL_ABSORBED, false, Creature-0-67-1493-0-100364-000031769B, Spirit of Vengeance, 2632, 0, Player-67-0017E389, Димабравлик, 1298, 0, 189469, Turn Kick, 1, Player-67-0017E389, Димабравлик, 1298, 0, 209388, Bulwark of Order, 2, 142785", diff --git a/WeakAuras/Projects/RaiderlosSA/out/190620.txt b/WeakAuras/Projects/RaiderlosSA/out/190620.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/190836.txt b/WeakAuras/Projects/RaiderlosSA/out/190836.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/191284.txt b/WeakAuras/Projects/RaiderlosSA/out/191284.txt new file mode 100644 index 0000000..e835c76 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/191284.txt @@ -0,0 +1,8 @@ + ["191284-SPELL_DAMAGE"] = "Horn of Valor, 191284, SPELL_DAMAGE, 1710339246.105, SPELL_DAMAGE, false, Creature-0-67-1477-0-94960-0000298BAA, Hymdall, 68168, 0, Player-67-001D862F, Matveyko, 1298, 0, 191284, Horn of Valor, 1, 737714, -1, 1, nil, nil, nil, false, false, false, false", + ["191284-SPELL_ABSORBED"] = "Horn of Valor, 191284, SPELL_ABSORBED, 1710339246.105, SPELL_ABSORBED, false, Creature-0-67-1477-0-94960-0000298BAA, Hymdall, 68168, 0, Player-67-00161B12, Сэтх, 1298, 0, 191284, Horn of Valor, 1, Player-67-00161B12, Сэтх, 1298, 0, 252208, Refractive Shell, 2, 326943", + ["191284-SPELL_CAST_SUCCESS"] = "Horn of Valor, 191284, SPELL_CAST_SUCCESS, 1710339246.105, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-94960-0000298BAA, Hymdall, 68168, 0, , nil, -2147483648, -2147483648, 191284, Horn of Valor, 1", + ["191284-SPELL_CAST_START"] = "Horn of Valor, 191284, SPELL_CAST_START, 1710339244.809, SPELL_CAST_START, false, Creature-0-67-1477-0-94960-0000298BAA, Hymdall, 68168, 0, , nil, -2147483648, -2147483648, 191284, Horn of Valor, 1", + ["191284-SPELL_DAMAGE"] = "Horn of Valor, 191284, SPELL_DAMAGE, 1709749130.837, SPELL_DAMAGE, false, Creature-0-67-1477-0-94960-0000434460, Hymdall, 68168, 0, Player-67-002C9240, Wilmarin, 1298, 0, 191284, Horn of Valor, 1, 668992, -1, 1, nil, nil, nil, false, false, false, false", + ["191284-SPELL_ABSORBED"] = "Horn of Valor, 191284, SPELL_ABSORBED, 1709749130.81, SPELL_ABSORBED, false, Creature-0-67-1477-0-94960-0000434460, Hymdall, 68168, 0, Player-67-002CCCC4, Jistx, 1298, 0, 191284, Horn of Valor, 1, Player-67-002CCCC4, Jistx, 1298, 0, 108366, Soul Leech, 32, 1233585", + ["191284-SPELL_CAST_SUCCESS"] = "Horn of Valor, 191284, SPELL_CAST_SUCCESS, 1709749130.837, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-94960-0000434460, Hymdall, 68168, 0, , nil, -2147483648, -2147483648, 191284, Horn of Valor, 1", + ["191284-SPELL_CAST_START"] = "Horn of Valor, 191284, SPELL_CAST_START, 1709749129.516, SPELL_CAST_START, false, Creature-0-67-1477-0-94960-0000434460, Hymdall, 68168, 0, , nil, -2147483648, -2147483648, 191284, Horn of Valor, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/191326.txt b/WeakAuras/Projects/RaiderlosSA/out/191326.txt new file mode 100644 index 0000000..baa54a6 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/191326.txt @@ -0,0 +1,5 @@ + ["191326-SPELL_AURA_APPLIED_DOSE"] = "Breath of Corruption, 191326, SPELL_AURA_APPLIED_DOSE, 1709815317.619, SPELL_AURA_APPLIED_DOSE, false, Creature-0-67-1466-0-99200-00003776A3, Dresaron, 68168, 0, Player-67-002C9B2F, Pakmann, 1298, 0, 191326, Breath of Corruption, 4, DEBUFF, 2", + ["191326-SPELL_AURA_APPLIED"] = "Breath of Corruption, 191326, SPELL_AURA_APPLIED, 1709815316.651, SPELL_AURA_APPLIED, false, Creature-0-67-1466-0-99200-00003776A3, Dresaron, 68168, 0, Player-67-002C9B2F, Pakmann, 1298, 0, 191326, Breath of Corruption, 4, DEBUFF", + ["191326-SPELL_DAMAGE"] = "Breath of Corruption, 191326, SPELL_DAMAGE, 1709815316.6, SPELL_DAMAGE, false, Creature-0-67-1466-0-99200-00003776A3, Dresaron, 68168, 0, Player-67-002C9B2F, Pakmann, 1298, 0, 191326, Breath of Corruption, 4, 3074110, -1, 4, nil, nil, nil, false, false, false, false", + ["191326-SPELL_AURA_REMOVED"] = "Breath of Corruption, 191326, SPELL_AURA_REMOVED, 1709815323.65, SPELL_AURA_REMOVED, false, Creature-0-67-1466-0-99200-00003776A3, Dresaron, 68168, 0, Player-67-002C9B2F, Pakmann, 1298, 0, 191326, Breath of Corruption, 4, DEBUFF", + ["191326-SPELL_DAMAGE"] = "Breath of Corruption, 191326, SPELL_DAMAGE, 1710322004.489, SPELL_DAMAGE, false, Creature-0-67-1466-0-99200-00002A7F4D, Dresaron, 2632, 0, Player-67-0029B09E, Чазусеаз, 1298, 0, 191326, Breath of Corruption, 4, 860100, -1, 4, nil, nil, nil, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/191735.txt b/WeakAuras/Projects/RaiderlosSA/out/191735.txt new file mode 100644 index 0000000..3103f40 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/191735.txt @@ -0,0 +1,2 @@ + ["191735-SPELL_CAST_SUCCESS"] = "Deafening Screech, 191735, SPELL_CAST_SUCCESS, 1709802824.843, SPELL_CAST_SUCCESS, false, Creature-0-67-1493-0-98954-0000294131, Felsworn Myrmidon, 2632, 0, , nil, -2147483648, -2147483648, 191735, Deafening Screech, 1", + ["191735-SPELL_CAST_START"] = "Deafening Screech, 191735, SPELL_CAST_START, 1709802745.898, SPELL_CAST_START, false, Creature-0-67-1493-0-98954-0000294117, Felsworn Myrmidon, 68168, 0, , nil, -2147483648, -2147483648, 191735, Deafening Screech, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/191848.txt b/WeakAuras/Projects/RaiderlosSA/out/191848.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/191976.txt b/WeakAuras/Projects/RaiderlosSA/out/191976.txt new file mode 100644 index 0000000..dfffd58 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/191976.txt @@ -0,0 +1,10 @@ + ["191976-SPELL_MISSED"] = "Arcing Bolt, 191976, SPELL_MISSED, 1710340075.375, SPELL_MISSED, false, Creature-0-67-1477-0-95833-000029F0A8, Hyrja, 68168, 0, Player-67-0034CC49, Иризен, 1298, 0, 191976, Arcing Bolt, 8, ABSORB, false, 2539728", + ["191976-SPELL_CAST_START"] = "Arcing Bolt, 191976, SPELL_CAST_START, 1710340042.315, SPELL_CAST_START, false, Creature-0-67-1477-0-95833-000029F0A8, Hyrja, 68168, 0, , nil, -2147483648, -2147483648, 191976, Arcing Bolt, 8", + ["191976-SPELL_DAMAGE"] = "Arcing Bolt, 191976, SPELL_DAMAGE, 1710340043.693, SPELL_DAMAGE, false, Creature-0-67-1477-0-95833-000029F0A8, Hyrja, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 64, 191976, Arcing Bolt, 8, 2179528, -1, 8, nil, nil, 1291523, false, false, false, false", + ["191976-SPELL_ABSORBED"] = "Arcing Bolt, 191976, SPELL_ABSORBED, 1710340043.678, SPELL_ABSORBED, false, Creature-0-67-1477-0-95833-000029F0A8, Hyrja, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 64, 191976, Arcing Bolt, 8, Player-67-002D9DD1, Succpotato, 1297, 64, 252208, Refractive Shell, 2, 312063", + ["191976-SPELL_CAST_SUCCESS"] = "Arcing Bolt, 191976, SPELL_CAST_SUCCESS, 1710340043.693, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-95833-000029F0A8, Hyrja, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 64, 191976, Arcing Bolt, 8", + ["191976-SPELL_MISSED"] = "Arcing Bolt, 191976, SPELL_MISSED, 1709749498.289, SPELL_MISSED, false, Creature-0-67-1477-0-95833-000043ADE6, Hyrja, 68168, 0, Player-67-002C9240, Wilmarin, 1298, 64, 191976, Arcing Bolt, 8, ABSORB, false, 1733943", + ["191976-SPELL_CAST_START"] = "Arcing Bolt, 191976, SPELL_CAST_START, 1709749465.163, SPELL_CAST_START, false, Creature-0-67-1477-0-95833-000043ADE6, Hyrja, 68168, 0, , nil, -2147483648, -2147483648, 191976, Arcing Bolt, 8", + ["191976-SPELL_ABSORBED"] = "Arcing Bolt, 191976, SPELL_ABSORBED, 1709749498.289, SPELL_ABSORBED, false, Creature-0-67-1477-0-95833-000043ADE6, Hyrja, 68168, 0, Player-67-002C9240, Wilmarin, 1298, 64, 191976, Arcing Bolt, 8, Player-67-002C9240, Wilmarin, 1298, 64, 252545, Light of Absolarn, 8, 1733943", + ["191976-SPELL_CAST_SUCCESS"] = "Arcing Bolt, 191976, SPELL_CAST_SUCCESS, 1709749466.449, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-95833-000043ADE6, Hyrja, 68168, 0, Player-67-0029CFE6, Cazahofks, 1298, 64, 191976, Arcing Bolt, 8", + ["191976-SPELL_DAMAGE"] = "Arcing Bolt, 191976, SPELL_DAMAGE, 1709749466.449, SPELL_DAMAGE, false, Creature-0-67-1477-0-95833-000043ADE6, Hyrja, 68168, 0, Player-67-0029CFE6, Cazahofks, 1298, 64, 191976, Arcing Bolt, 8, 2692127, -1, 8, nil, nil, nil, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/192018.txt b/WeakAuras/Projects/RaiderlosSA/out/192018.txt new file mode 100644 index 0000000..0835d8f --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/192018.txt @@ -0,0 +1,6 @@ + ["192018-SPELL_CAST_START"] = "Shield of Light, 192018, SPELL_CAST_START, 1710340062.979, SPELL_CAST_START, false, Creature-0-67-1477-0-95833-000029F0A8, Hyrja, 68168, 0, , nil, -2147483648, -2147483648, 192018, Shield of Light, 2", + ["192018-SPELL_CAST_SUCCESS"] = "Shield of Light, 192018, SPELL_CAST_SUCCESS, 1710340065.02, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-95833-000029F0A8, Hyrja, 68168, 0, Player-67-001D862F, Matveyko, 1298, 0, 192018, Shield of Light, 2", + ["192018-SPELL_DAMAGE"] = "Shield of Light, 192018, SPELL_DAMAGE, 1710340065.02, SPELL_DAMAGE, false, Creature-0-67-1477-0-95833-000029F0A8, Hyrja, 68168, 0, Player-67-001D862F, Matveyko, 1298, 0, 192018, Shield of Light, 2, 4232015, -1, 2, nil, nil, nil, false, false, false, false", + ["192018-SPELL_CAST_SUCCESS"] = "Shield of Light, 192018, SPELL_CAST_SUCCESS, 1709749487.85, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-95833-000043ADE6, Hyrja, 68168, 0, Player-67-002C9240, Wilmarin, 1298, 0, 192018, Shield of Light, 2", + ["192018-SPELL_DAMAGE"] = "Shield of Light, 192018, SPELL_DAMAGE, 1709749487.85, SPELL_DAMAGE, false, Creature-0-67-1477-0-95833-000043ADE6, Hyrja, 68168, 0, Player-67-002C9240, Wilmarin, 1298, 0, 192018, Shield of Light, 2, 6131612, -1, 2, nil, nil, nil, false, false, false, false", + ["192018-SPELL_CAST_START"] = "Shield of Light, 192018, SPELL_CAST_START, 1709749485.827, SPELL_CAST_START, false, Creature-0-67-1477-0-95833-000043ADE6, Hyrja, 68168, 0, , nil, -2147483648, -2147483648, 192018, Shield of Light, 2", diff --git a/WeakAuras/Projects/RaiderlosSA/out/192019.txt b/WeakAuras/Projects/RaiderlosSA/out/192019.txt new file mode 100644 index 0000000..6dfbe2b --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/192019.txt @@ -0,0 +1,8 @@ + ["192019-SPELL_AURA_REMOVED"] = "Lantern of Darkness, 192019, SPELL_AURA_REMOVED, 1709839107.293, SPELL_AURA_REMOVED, false, Creature-0-67-1492-0-97182-00005FA820, Night Watch Mariner, 68168, 0, Creature-0-67-1492-0-97182-00005FA820, Night Watch Mariner, 68168, 0, 192019, Lantern of Darkness, 32, BUFF", + ["192019-SPELL_CAST_START"] = "Lantern of Darkness, 192019, SPELL_CAST_START, 1709839100.246, SPELL_CAST_START, false, Creature-0-67-1492-0-97182-00005FA820, Night Watch Mariner, 68168, 0, , nil, -2147483648, -2147483648, 192019, Lantern of Darkness, 32", + ["192019-SPELL_AURA_APPLIED"] = "Lantern of Darkness, 192019, SPELL_AURA_APPLIED, 1709839101.286, SPELL_AURA_APPLIED, false, Creature-0-67-1492-0-97182-00005FA820, Night Watch Mariner, 68168, 0, Creature-0-67-1492-0-97182-00005FA820, Night Watch Mariner, 68168, 0, 192019, Lantern of Darkness, 32, BUFF", + ["192019-SPELL_CAST_SUCCESS"] = "Lantern of Darkness, 192019, SPELL_CAST_SUCCESS, 1709839101.286, SPELL_CAST_SUCCESS, false, Creature-0-67-1492-0-97182-00005FA820, Night Watch Mariner, 68168, 0, , nil, -2147483648, -2147483648, 192019, Lantern of Darkness, 32", + ["192019-SPELL_AURA_REMOVED"] = "Lantern of Darkness, 192019, SPELL_AURA_REMOVED, 1710320693.992, SPELL_AURA_REMOVED, false, Creature-0-67-1492-0-97182-00002911BD, Night Watch Mariner, 68168, 0, Creature-0-67-1492-0-97182-00002911BD, Night Watch Mariner, 68168, 0, 192019, Lantern of Darkness, 32, BUFF", + ["192019-SPELL_CAST_START"] = "Lantern of Darkness, 192019, SPELL_CAST_START, 1710320688.173, SPELL_CAST_START, false, Creature-0-67-1492-0-97182-00002911BD, Night Watch Mariner, 68168, 0, , nil, -2147483648, -2147483648, 192019, Lantern of Darkness, 32", + ["192019-SPELL_AURA_APPLIED"] = "Lantern of Darkness, 192019, SPELL_AURA_APPLIED, 1710320689.202, SPELL_AURA_APPLIED, false, Creature-0-67-1492-0-97182-00002911BD, Night Watch Mariner, 68168, 0, Creature-0-67-1492-0-97182-00002911BD, Night Watch Mariner, 68168, 0, 192019, Lantern of Darkness, 32, BUFF", + ["192019-SPELL_CAST_SUCCESS"] = "Lantern of Darkness, 192019, SPELL_CAST_SUCCESS, 1710320689.202, SPELL_CAST_SUCCESS, false, Creature-0-67-1492-0-97182-00002911BD, Night Watch Mariner, 68168, 0, , nil, -2147483648, -2147483648, 192019, Lantern of Darkness, 32", diff --git a/WeakAuras/Projects/RaiderlosSA/out/192048.txt b/WeakAuras/Projects/RaiderlosSA/out/192048.txt new file mode 100644 index 0000000..53f2fb2 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/192048.txt @@ -0,0 +1,4 @@ + ["192048-SPELL_AURA_REMOVED"] = "Expel Light, 192048, SPELL_AURA_REMOVED, 1710340072.541, SPELL_AURA_REMOVED, true, , nil, 68168, 0, Player-67-001D862F, Matveyko, 1298, 128, 192048, Expel Light, 2, DEBUFF", + ["192048-SPELL_AURA_APPLIED"] = "Expel Light, 192048, SPELL_AURA_APPLIED, 1710340069.549, SPELL_AURA_APPLIED, true, , nil, 68168, 0, Player-67-001D862F, Matveyko, 1298, 0, 192048, Expel Light, 2, DEBUFF", + ["192048-SPELL_AURA_REMOVED"] = "Expel Light, 192048, SPELL_AURA_REMOVED, 1709749467.023, SPELL_AURA_REMOVED, true, , nil, 68168, 0, Player-67-0034F511, Intrill, 1298, 128, 192048, Expel Light, 2, DEBUFF", + ["192048-SPELL_AURA_APPLIED"] = "Expel Light, 192048, SPELL_AURA_APPLIED, 1709749463.975, SPELL_AURA_APPLIED, true, , nil, 68168, 0, Player-67-0034F511, Intrill, 1298, 0, 192048, Expel Light, 2, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/192305.txt b/WeakAuras/Projects/RaiderlosSA/out/192305.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/192307.txt b/WeakAuras/Projects/RaiderlosSA/out/192307.txt new file mode 100644 index 0000000..a0339b1 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/192307.txt @@ -0,0 +1,9 @@ + ["192307-SPELL_CAST_SUCCESS"] = "Sanctify, 192307, SPELL_CAST_SUCCESS, 1710340080.17, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-95833-000029F0A8, Hyrja, 68168, 0, , nil, -2147483648, -2147483648, 192307, Sanctify, 2", + ["192307-SPELL_MISSED"] = "Sanctify, 192307, SPELL_MISSED, 1710340080.17, SPELL_MISSED, false, Creature-0-67-1477-0-95833-000029F0A8, Hyrja, 68168, 0, Player-67-0034CC49, Иризен, 1298, 128, 192307, Sanctify, 2, IMMUNE, false", + ["192307-SPELL_CAST_START"] = "Sanctify, 192307, SPELL_CAST_START, 1710340077.672, SPELL_CAST_START, false, Creature-0-67-1477-0-95833-000029F0A8, Hyrja, 68168, 0, , nil, -2147483648, -2147483648, 192307, Sanctify, 2", + ["192307-SPELL_AURA_REMOVED"] = "Sanctify, 192307, SPELL_AURA_REMOVED, 1710340089.172, SPELL_AURA_REMOVED, false, Creature-0-67-1477-0-95833-000029F0A8, Hyrja, 68168, 0, Creature-0-67-1477-0-95833-000029F0A8, Hyrja, 68168, 0, 192307, Sanctify, 2, BUFF", + ["192307-SPELL_AURA_APPLIED"] = "Sanctify, 192307, SPELL_AURA_APPLIED, 1710340080.191, SPELL_AURA_APPLIED, false, Creature-0-67-1477-0-95833-000029F0A8, Hyrja, 68168, 0, Creature-0-67-1477-0-95833-000029F0A8, Hyrja, 68168, 0, 192307, Sanctify, 2, BUFF", + ["192307-SPELL_CAST_SUCCESS"] = "Sanctify, 192307, SPELL_CAST_SUCCESS, 1709749503.089, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-95833-000043ADE6, Hyrja, 2632, 0, , nil, -2147483648, -2147483648, 192307, Sanctify, 2", + ["192307-SPELL_AURA_REMOVED"] = "Sanctify, 192307, SPELL_AURA_REMOVED, 1709749512.144, SPELL_AURA_REMOVED, false, Creature-0-67-1477-0-95833-000043ADE6, Hyrja, 2632, 0, Creature-0-67-1477-0-95833-000043ADE6, Hyrja, 2632, 0, 192307, Sanctify, 2, BUFF", + ["192307-SPELL_AURA_APPLIED"] = "Sanctify, 192307, SPELL_AURA_APPLIED, 1709749503.089, SPELL_AURA_APPLIED, false, Creature-0-67-1477-0-95833-000043ADE6, Hyrja, 2632, 0, Creature-0-67-1477-0-95833-000043ADE6, Hyrja, 2632, 0, 192307, Sanctify, 2, BUFF", + ["192307-SPELL_CAST_START"] = "Sanctify, 192307, SPELL_CAST_START, 1709749500.555, SPELL_CAST_START, false, Creature-0-67-1477-0-95833-000043ADE6, Hyrja, 2632, 0, , nil, -2147483648, -2147483648, 192307, Sanctify, 2", diff --git a/WeakAuras/Projects/RaiderlosSA/out/192631.txt b/WeakAuras/Projects/RaiderlosSA/out/192631.txt new file mode 100644 index 0000000..a6604cc --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/192631.txt @@ -0,0 +1,2 @@ + ["192631-SPELL_CAST_SUCCESS"] = "Lava Wreath, 192631, SPELL_CAST_SUCCESS, 1710083969.903, SPELL_CAST_SUCCESS, false, Creature-0-67-1493-0-95886-00004F0D2F, Ash'Golm, 68168, 0, , nil, -2147483648, -2147483648, 192631, Lava Wreath, 1", + ["192631-SPELL_CAST_START"] = "Lava Wreath, 192631, SPELL_CAST_START, 1710083967.879, SPELL_CAST_START, false, Creature-0-67-1493-0-95886-00004F0D2F, Ash'Golm, 68168, 0, , nil, -2147483648, -2147483648, 192631, Lava Wreath, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/193069.txt b/WeakAuras/Projects/RaiderlosSA/out/193069.txt new file mode 100644 index 0000000..25bc7fb --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/193069.txt @@ -0,0 +1,4 @@ + ["193069-SPELL_CAST_START"] = "Nightmares, 193069, SPELL_CAST_START, 1709813045.168, SPELL_CAST_START, false, Creature-0-67-1493-0-96587-000034CFF2, Felsworn Infester, 2632, 0, , nil, -2147483648, -2147483648, 193069, Nightmares, 32", + ["193069-SPELL_CAST_SUCCESS"] = "Nightmares, 193069, SPELL_CAST_SUCCESS, 1709813094.619, SPELL_CAST_SUCCESS, false, Creature-0-67-1493-0-96587-000034E67F, Felsworn Infester, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 193069, Nightmares, 32", + ["193069-SPELL_AURA_APPLIED"] = "Nightmares, 193069, SPELL_AURA_APPLIED, 1709813094.632, SPELL_AURA_APPLIED, false, Creature-0-67-1493-0-96587-000034E67F, Felsworn Infester, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 193069, Nightmares, 32, DEBUFF", + ["193069-SPELL_AURA_REMOVED"] = "Nightmares, 193069, SPELL_AURA_REMOVED, 1709813099.729, SPELL_AURA_REMOVED, false, Creature-0-67-1493-0-96587-000034E67F, Felsworn Infester, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 193069, Nightmares, 32, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/193364.txt b/WeakAuras/Projects/RaiderlosSA/out/193364.txt new file mode 100644 index 0000000..4ca0485 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/193364.txt @@ -0,0 +1,14 @@ + ["193364-SPELL_CAST_SUCCESS"] = "Screams of the Dead, 193364, SPELL_CAST_SUCCESS, 1709838923.275, SPELL_CAST_SUCCESS, false, Creature-0-67-1492-0-96756-00005FA7CF, Ymiron, the Fallen King, 68168, 0, , nil, -2147483648, -2147483648, 193364, Screams of the Dead, 32", + ["193364-SPELL_AURA_REMOVED"] = "Screams of the Dead, 193364, SPELL_AURA_REMOVED, 1710320652.782, SPELL_AURA_REMOVED, false, Creature-0-67-1492-0-96756-000029116D, Ymiron, the Fallen King, 68168, 0, Player-67-0029B09E, Чазусеаз, 1298, 0, 193364, Screams of the Dead, 32, DEBUFF", + ["193364-SPELL_MISSED"] = "Screams of the Dead, 193364, SPELL_MISSED, 1709940725.071, SPELL_MISSED, false, Creature-0-67-1492-0-96756-000074064E, Ymiron, the Fallen King, 68168, 0, Player-67-002B9144, Redoc, 1298, 0, 193364, Screams of the Dead, 32, IMMUNE, false", + ["193364-SPELL_DAMAGE"] = "Screams of the Dead, 193364, SPELL_DAMAGE, 1710320647.688, SPELL_DAMAGE, false, Creature-0-67-1492-0-96756-000029116D, Ymiron, the Fallen King, 68168, 0, Player-67-0029B09E, Чазусеаз, 1298, 0, 193364, Screams of the Dead, 32, 753758, -1, 32, nil, nil, nil, false, false, false, false", + ["193364-SPELL_CAST_START"] = "Screams of the Dead, 193364, SPELL_CAST_START, 1709838920.766, SPELL_CAST_START, false, Creature-0-67-1492-0-96756-00005FA7CF, Ymiron, the Fallen King, 68168, 0, , nil, -2147483648, -2147483648, 193364, Screams of the Dead, 32", + ["193364-SPELL_ABSORBED"] = "Screams of the Dead, 193364, SPELL_ABSORBED, 1710320647.671, SPELL_ABSORBED, false, Creature-0-67-1492-0-96756-000029116D, Ymiron, the Fallen King, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 193364, Screams of the Dead, 32, Player-67-002D9DD1, Succpotato, 1297, 0, 252208, Refractive Shell, 2, 316042", + ["193364-SPELL_AURA_APPLIED"] = "Screams of the Dead, 193364, SPELL_AURA_APPLIED, 1710320647.736, SPELL_AURA_APPLIED, false, Creature-0-67-1492-0-96756-000029116D, Ymiron, the Fallen King, 68168, 0, Player-67-0029B09E, Чазусеаз, 1298, 0, 193364, Screams of the Dead, 32, DEBUFF", + ["193364-SPELL_CAST_SUCCESS"] = "Screams of the Dead, 193364, SPELL_CAST_SUCCESS, 1710320648.857, SPELL_CAST_SUCCESS, false, Creature-0-67-1492-0-96756-000029116D, Ymiron, the Fallen King, 2632, 0, , nil, -2147483648, -2147483648, 193364, Screams of the Dead, 32", + ["193364-SPELL_AURA_APPLIED"] = "Screams of the Dead, 193364, SPELL_AURA_APPLIED, 1710320648.923, SPELL_AURA_APPLIED, false, Creature-0-67-1492-0-96756-000029116D, Ymiron, the Fallen King, 2632, 0, Player-67-0029B09E, Чазусеаз, 1298, 0, 193364, Screams of the Dead, 32, DEBUFF", + ["193364-SPELL_AURA_REMOVED"] = "Screams of the Dead, 193364, SPELL_AURA_REMOVED, 1710320653.957, SPELL_AURA_REMOVED, false, Creature-0-67-1492-0-96756-000029116D, Ymiron, the Fallen King, 2632, 0, Player-67-0029B09E, Чазусеаз, 1298, 0, 193364, Screams of the Dead, 32, DEBUFF", + ["193364-SPELL_MISSED"] = "Screams of the Dead, 193364, SPELL_MISSED, 1710320648.857, SPELL_MISSED, false, Creature-0-67-1492-0-96756-000029116D, Ymiron, the Fallen King, 2632, 0, Player-67-002D9DD1, Succpotato, 1298, 0, 193364, Screams of the Dead, 32, ABSORB, false, 803432", + ["193364-SPELL_DAMAGE"] = "Screams of the Dead, 193364, SPELL_DAMAGE, 1710320648.857, SPELL_DAMAGE, false, Creature-0-67-1492-0-96756-000029116D, Ymiron, the Fallen King, 2632, 0, Player-67-0029B09E, Чазусеаз, 1298, 0, 193364, Screams of the Dead, 32, 753758, -1, 32, nil, nil, nil, false, false, false, false", + ["193364-SPELL_CAST_START"] = "Screams of the Dead, 193364, SPELL_CAST_START, 1710320646.323, SPELL_CAST_START, false, Creature-0-67-1492-0-96756-000029116D, Ymiron, the Fallen King, 2632, 0, , nil, -2147483648, -2147483648, 193364, Screams of the Dead, 32", + ["193364-SPELL_ABSORBED"] = "Screams of the Dead, 193364, SPELL_ABSORBED, 1710320648.857, SPELL_ABSORBED, false, Creature-0-67-1492-0-96756-000029116D, Ymiron, the Fallen King, 2632, 0, Player-67-002D9DD1, Succpotato, 1298, 0, 193364, Screams of the Dead, 32, Player-67-002D9DD1, Succpotato, 1298, 0, 252208, Refractive Shell, 2, 316042", diff --git a/WeakAuras/Projects/RaiderlosSA/out/193585.txt b/WeakAuras/Projects/RaiderlosSA/out/193585.txt new file mode 100644 index 0000000..d1de7ba --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/193585.txt @@ -0,0 +1,8 @@ + ["193585-SPELL_PERIODIC_DAMAGE"] = "Bound, 193585, SPELL_PERIODIC_DAMAGE, 1709841425.298, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1458-0-102232-000061B4FE, Rockbound Trapper, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 193585, Bound, 1, 274585, 0, 1, nil, nil, 91974, false, false, false, false", + ["193585-SPELL_PERIODIC_MISSED"] = "Bound, 193585, SPELL_PERIODIC_MISSED, 1709841423.338, SPELL_PERIODIC_MISSED, false, Creature-0-67-1458-0-102232-000061B4FE, Rockbound Trapper, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 193585, Bound, 1, ABSORB, false, 366559", + ["193585-SPELL_CAST_SUCCESS"] = "Bound, 193585, SPELL_CAST_SUCCESS, 1709812618.285, SPELL_CAST_SUCCESS, false, Creature-0-67-1458-0-102232-0000337643, Rockbound Trapper, 2632, 0, Player-67-002A36D8, Pakkan, 1298, 0, 193585, Bound, 1", + ["193585-SPELL_ABSORBED"] = "Bound, 193585, SPELL_ABSORBED, 1709841423.338, SPELL_ABSORBED, false, Creature-0-67-1458-0-102232-000061B4FE, Rockbound Trapper, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 193585, Bound, 1, Player-67-002D9DD1, Succpotato, 1297, 0, 108366, Soul Leech, 32, 366559", + ["193585-SPELL_AURA_REMOVED"] = "Bound, 193585, SPELL_AURA_REMOVED, 1709841427.393, SPELL_AURA_REMOVED, false, Creature-0-67-1458-0-102232-000061B4FE, Rockbound Trapper, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 193585, Bound, 1, DEBUFF", + ["193585-SPELL_CAST_START"] = "Bound, 193585, SPELL_CAST_START, 1709812615.859, SPELL_CAST_START, false, Creature-0-67-1458-0-102232-0000337643, Rockbound Trapper, 2632, 0, , nil, -2147483648, -2147483648, 193585, Bound, 1", + ["193585-SPELL_MISSED"] = "Bound, 193585, SPELL_MISSED, 1709812618.974, SPELL_MISSED, false, Creature-0-67-1458-0-102232-0000337643, Rockbound Trapper, 2632, 0, Player-67-002A36D8, Pakkan, 1298, 0, 193585, Bound, 1, DODGE, false", + ["193585-SPELL_AURA_APPLIED"] = "Bound, 193585, SPELL_AURA_APPLIED, 1709841423.338, SPELL_AURA_APPLIED, false, Creature-0-67-1458-0-102232-000061B4FE, Rockbound Trapper, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 193585, Bound, 1, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/193597.txt b/WeakAuras/Projects/RaiderlosSA/out/193597.txt new file mode 100644 index 0000000..1cd4a12 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/193597.txt @@ -0,0 +1,11 @@ + ["193597-SPELL_DAMAGE"] = "Static Nova, 193597, SPELL_DAMAGE, 1709915920.755, SPELL_DAMAGE, false, Creature-0-67-1456-0-91789-00004E9865, Lady Hatecoil, 68168, 0, Player-67-001A361E, Hullsa, 1298, 0, 193597, Static Nova, 8, 2160722, -1, 8, nil, nil, nil, false, false, false, false", + ["193597-SPELL_AURA_REMOVED"] = "Static Nova, 193597, SPELL_AURA_REMOVED, 1709915925.828, SPELL_AURA_REMOVED, false, Creature-0-67-1456-0-91789-00004E9865, Lady Hatecoil, 68168, 0, Player-67-001A361E, Hullsa, 1298, 0, 193597, Static Nova, 8, DEBUFF", + ["193597-SPELL_CAST_START"] = "Static Nova, 193597, SPELL_CAST_START, 1709915916.722, SPELL_CAST_START, false, Creature-0-67-1456-0-91789-00004E9865, Lady Hatecoil, 68168, 0, , nil, -2147483648, -2147483648, 193597, Static Nova, 8", + ["193597-SPELL_ABSORBED"] = "Static Nova, 193597, SPELL_ABSORBED, 1710106363.288, SPELL_ABSORBED, false, Creature-0-67-1456-0-91789-000077B198, Lady Hatecoil, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 193597, Static Nova, 8, Player-67-002D9DD1, Succpotato, 1297, 0, 108366, Soul Leech, 32, 966896", + ["193597-SPELL_AURA_APPLIED"] = "Static Nova, 193597, SPELL_AURA_APPLIED, 1709915920.799, SPELL_AURA_APPLIED, false, Creature-0-67-1456-0-91789-00004E9865, Lady Hatecoil, 68168, 0, Player-67-001A361E, Hullsa, 1298, 0, 193597, Static Nova, 8, DEBUFF", + ["193597-SPELL_CAST_SUCCESS"] = "Static Nova, 193597, SPELL_CAST_SUCCESS, 1709915920.755, SPELL_CAST_SUCCESS, false, Creature-0-67-1456-0-91789-00004E9865, Lady Hatecoil, 68168, 0, , nil, -2147483648, -2147483648, 193597, Static Nova, 8", + ["193597-SPELL_DAMAGE"] = "Static Nova, 193597, SPELL_DAMAGE, 1710492979.506, SPELL_DAMAGE, false, Creature-0-67-1456-0-91789-00001FCEB7, Lady Hatecoil, 68168, 0, Player-67-0033EEFC, Wafba, 1298, 0, 193597, Static Nova, 8, 7235790, -1, 8, nil, nil, nil, false, false, false, false", + ["193597-SPELL_AURA_REMOVED"] = "Static Nova, 193597, SPELL_AURA_REMOVED, 1710492984.521, SPELL_AURA_REMOVED, false, Creature-0-67-1456-0-91789-00001FCEB7, Lady Hatecoil, 2632, 0, Player-67-0033EEFC, Wafba, 1298, 0, 193597, Static Nova, 8, DEBUFF", + ["193597-SPELL_AURA_APPLIED"] = "Static Nova, 193597, SPELL_AURA_APPLIED, 1710492979.526, SPELL_AURA_APPLIED, false, Creature-0-67-1456-0-91789-00001FCEB7, Lady Hatecoil, 68168, 0, Player-67-0033EEFC, Wafba, 1298, 0, 193597, Static Nova, 8, DEBUFF", + ["193597-SPELL_CAST_SUCCESS"] = "Static Nova, 193597, SPELL_CAST_SUCCESS, 1710492909.415, SPELL_CAST_SUCCESS, false, Creature-0-67-1456-0-91789-00001FCEB7, Lady Hatecoil, 68168, 0, , nil, -2147483648, -2147483648, 193597, Static Nova, 8", + ["193597-SPELL_CAST_START"] = "Static Nova, 193597, SPELL_CAST_START, 1710325515.527, SPELL_CAST_START, false, Creature-0-67-1456-0-91789-00002E578F, Lady Hatecoil, 2632, 0, , nil, -2147483648, -2147483648, 193597, Static Nova, 8", diff --git a/WeakAuras/Projects/RaiderlosSA/out/193611.txt b/WeakAuras/Projects/RaiderlosSA/out/193611.txt new file mode 100644 index 0000000..cd0d6b7 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/193611.txt @@ -0,0 +1,9 @@ + ["193611-SPELL_DAMAGE"] = "Focused Lightning, 193611, SPELL_DAMAGE, 1710000026.613, SPELL_DAMAGE, false, Creature-0-67-1456-0-91789-00004E6217, Lady Hatecoil, 68168, 0, Player-67-003453A3, Notadh, 1298, 0, 193611, Focused Lightning, 8, 2963999, -1, 8, nil, nil, nil, false, false, false, false", + ["193611-SPELL_CAST_SUCCESS"] = "Focused Lightning, 193611, SPELL_CAST_SUCCESS, 1710000026.613, SPELL_CAST_SUCCESS, false, Creature-0-67-1456-0-91789-00004E6217, Lady Hatecoil, 68168, 0, , nil, -2147483648, -2147483648, 193611, Focused Lightning, 8", + ["193611-SPELL_ABSORBED"] = "Focused Lightning, 193611, SPELL_ABSORBED, 1710000026.6, SPELL_ABSORBED, false, Creature-0-67-1456-0-91789-00004E6217, Lady Hatecoil, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 193611, Focused Lightning, 8, Player-67-002D9DD1, Succpotato, 1297, 0, 207472, Xavaric's Magnum Opus, 1, 985382", + ["193611-SPELL_MISSED"] = "Focused Lightning, 193611, SPELL_MISSED, 1710106341.266, SPELL_MISSED, false, Creature-0-67-1456-0-91789-000077B198, Lady Hatecoil, 68168, 0, Player-67-0034DA6C, Yousheng, 1298, 0, 193611, Focused Lightning, 8, IMMUNE, false", + ["193611-SPELL_CAST_START"] = "Focused Lightning, 193611, SPELL_CAST_START, 1710000022.576, SPELL_CAST_START, false, Creature-0-67-1456-0-91789-00004E6217, Lady Hatecoil, 68168, 0, , nil, -2147483648, -2147483648, 193611, Focused Lightning, 8", + ["193611-SPELL_DAMAGE"] = "Focused Lightning, 193611, SPELL_DAMAGE, 1710492923.43, SPELL_DAMAGE, false, Creature-0-67-1456-0-91789-00001FCEB7, Lady Hatecoil, 68168, 0, Player-67-002D575C, Dememedruid, 1298, 0, 193611, Focused Lightning, 8, 2344194, -1, 8, nil, nil, 1128685, false, false, false, false", + ["193611-SPELL_CAST_START"] = "Focused Lightning, 193611, SPELL_CAST_START, 1710492919.39, SPELL_CAST_START, false, Creature-0-67-1456-0-91789-00001FCEB7, Lady Hatecoil, 68168, 0, , nil, -2147483648, -2147483648, 193611, Focused Lightning, 8", + ["193611-SPELL_CAST_SUCCESS"] = "Focused Lightning, 193611, SPELL_CAST_SUCCESS, 1710492923.43, SPELL_CAST_SUCCESS, false, Creature-0-67-1456-0-91789-00001FCEB7, Lady Hatecoil, 68168, 0, , nil, -2147483648, -2147483648, 193611, Focused Lightning, 8", + ["193611-SPELL_ABSORBED"] = "Focused Lightning, 193611, SPELL_ABSORBED, 1710492957.428, SPELL_ABSORBED, false, Creature-0-67-1456-0-91789-00001FCEB7, Lady Hatecoil, 68168, 0, Player-67-002D575C, Dememedruid, 1298, 0, 193611, Focused Lightning, 8, Player-67-001E41D9, Jasophine, 1298, 0, 203538, Greater Blessing of Kings, 2, 145617", diff --git a/WeakAuras/Projects/RaiderlosSA/out/193826.txt b/WeakAuras/Projects/RaiderlosSA/out/193826.txt new file mode 100644 index 0000000..29943d4 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/193826.txt @@ -0,0 +1,8 @@ + ["193826-SPELL_CAST_START"] = "Ragnarok, 193826, SPELL_CAST_START, 1710340724.008, SPELL_CAST_START, false, Vehicle-0-67-1477-0-95675-00002BAFB8, God-King Skovald, 68168, 0, , nil, -2147483648, -2147483648, 193826, Ragnarok, 4", + ["193826-SPELL_CAST_SUCCESS"] = "Ragnarok, 193826, SPELL_CAST_SUCCESS, 1710340727.015, SPELL_CAST_SUCCESS, false, Vehicle-0-67-1477-0-95675-00002BAFB8, God-King Skovald, 68168, 0, , nil, -2147483648, -2147483648, 193826, Ragnarok, 4", + ["193826-SPELL_AURA_REMOVED"] = "Ragnarok, 193826, SPELL_AURA_REMOVED, 1710340736.019, SPELL_AURA_REMOVED, false, Vehicle-0-67-1477-0-95675-00002BAFB8, God-King Skovald, 68168, 0, Vehicle-0-67-1477-0-95675-00002BAFB8, God-King Skovald, 68168, 0, 193826, Ragnarok, 4, BUFF", + ["193826-SPELL_AURA_APPLIED"] = "Ragnarok, 193826, SPELL_AURA_APPLIED, 1710340727.015, SPELL_AURA_APPLIED, false, Vehicle-0-67-1477-0-95675-00002BAFB8, God-King Skovald, 68168, 0, Vehicle-0-67-1477-0-95675-00002BAFB8, God-King Skovald, 68168, 0, 193826, Ragnarok, 4, BUFF", + ["193826-SPELL_CAST_START"] = "Ragnarok, 193826, SPELL_CAST_START, 1709750101.801, SPELL_CAST_START, false, Vehicle-0-67-1477-0-95675-000044F6B0, God-King Skovald, 68168, 0, , nil, -2147483648, -2147483648, 193826, Ragnarok, 4", + ["193826-SPELL_AURA_APPLIED"] = "Ragnarok, 193826, SPELL_AURA_APPLIED, 1709750104.799, SPELL_AURA_APPLIED, false, Vehicle-0-67-1477-0-95675-000044F6B0, God-King Skovald, 68168, 0, Vehicle-0-67-1477-0-95675-000044F6B0, God-King Skovald, 68168, 0, 193826, Ragnarok, 4, BUFF", + ["193826-SPELL_AURA_REMOVED"] = "Ragnarok, 193826, SPELL_AURA_REMOVED, 1709750113.872, SPELL_AURA_REMOVED, false, Vehicle-0-67-1477-0-95675-000044F6B0, God-King Skovald, 68168, 0, Vehicle-0-67-1477-0-95675-000044F6B0, God-King Skovald, 68168, 0, 193826, Ragnarok, 4, BUFF", + ["193826-SPELL_CAST_SUCCESS"] = "Ragnarok, 193826, SPELL_CAST_SUCCESS, 1709750104.799, SPELL_CAST_SUCCESS, false, Vehicle-0-67-1477-0-95675-000044F6B0, God-King Skovald, 68168, 0, , nil, -2147483648, -2147483648, 193826, Ragnarok, 4", diff --git a/WeakAuras/Projects/RaiderlosSA/out/194099.txt b/WeakAuras/Projects/RaiderlosSA/out/194099.txt new file mode 100644 index 0000000..f1e0bdc --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/194099.txt @@ -0,0 +1,12 @@ + ["194099-SPELL_CAST_SUCCESS"] = "Bile Breath, 194099, SPELL_CAST_SUCCESS, 1709839126.653, SPELL_CAST_SUCCESS, false, Creature-0-67-1492-0-97185-00005FA80F, The Grimewalker, 68168, 0, , nil, -2147483648, -2147483648, 194099, Bile Breath, 8", + ["194099-SPELL_AURA_REMOVED"] = "Bile Breath, 194099, SPELL_AURA_REMOVED, 1709839127.876, SPELL_AURA_REMOVED, false, Creature-0-67-1492-0-97185-00005FA80F, The Grimewalker, 68168, 0, Player-67-00340A28, Gunwomen, 1298, 0, 194099, Bile Breath, 8, DEBUFF", + ["194099-SPELL_CAST_START"] = "Bile Breath, 194099, SPELL_CAST_START, 1709839123.612, SPELL_CAST_START, false, Creature-0-67-1492-0-97185-00005FA80F, The Grimewalker, 68168, 0, , nil, -2147483648, -2147483648, 194099, Bile Breath, 8", + ["194099-SPELL_AURA_APPLIED"] = "Bile Breath, 194099, SPELL_AURA_APPLIED, 1709839126.702, SPELL_AURA_APPLIED, false, Creature-0-67-1492-0-97185-00005FA80F, The Grimewalker, 68168, 0, Player-67-00340A28, Gunwomen, 1298, 0, 194099, Bile Breath, 8, DEBUFF", + ["194099-SPELL_ABSORBED"] = "Bile Breath, 194099, SPELL_ABSORBED, 1709839142.328, SPELL_ABSORBED, false, Creature-0-67-1492-0-97185-00005FA80F, The Grimewalker, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 194099, Bile Breath, 8, Player-67-002D9DD1, Succpotato, 1297, 0, 252208, Refractive Shell, 2, 313402", + ["194099-SPELL_MISSED"] = "Bile Breath, 194099, SPELL_MISSED, 1709839142.303, SPELL_MISSED, false, Creature-0-67-1492-0-97185-00005FA80F, The Grimewalker, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 194099, Bile Breath, 8, ABSORB, false, 4039685", + ["194099-SPELL_DAMAGE"] = "Bile Breath, 194099, SPELL_DAMAGE, 1709839126.653, SPELL_DAMAGE, false, Creature-0-67-1492-0-97185-00005FA80F, The Grimewalker, 68168, 0, Player-67-00340A28, Gunwomen, 1298, 0, 194099, Bile Breath, 8, 3489754, -1, 8, nil, nil, nil, false, false, false, false", + ["194099-SPELL_CAST_SUCCESS"] = "Bile Breath, 194099, SPELL_CAST_SUCCESS, 1710320712.865, SPELL_CAST_SUCCESS, false, Creature-0-67-1492-0-97185-00002911AC, The Grimewalker, 2632, 0, , nil, -2147483648, -2147483648, 194099, Bile Breath, 8", + ["194099-SPELL_AURA_REMOVED"] = "Bile Breath, 194099, SPELL_AURA_REMOVED, 1710320727.906, SPELL_AURA_REMOVED, false, Creature-0-67-1492-0-97185-00002911AC, The Grimewalker, 2632, 0, Player-67-0029B09E, Чазусеаз, 1298, 0, 194099, Bile Breath, 8, DEBUFF", + ["194099-SPELL_AURA_APPLIED"] = "Bile Breath, 194099, SPELL_AURA_APPLIED, 1710320712.932, SPELL_AURA_APPLIED, false, Creature-0-67-1492-0-97185-00002911AC, The Grimewalker, 2632, 0, Player-67-0029B09E, Чазусеаз, 1298, 0, 194099, Bile Breath, 8, DEBUFF", + ["194099-SPELL_CAST_START"] = "Bile Breath, 194099, SPELL_CAST_START, 1710320709.832, SPELL_CAST_START, false, Creature-0-67-1492-0-97185-00002911AC, The Grimewalker, 2632, 0, , nil, -2147483648, -2147483648, 194099, Bile Breath, 8", + ["194099-SPELL_DAMAGE"] = "Bile Breath, 194099, SPELL_DAMAGE, 1710320712.865, SPELL_DAMAGE, false, Creature-0-67-1492-0-97185-00002911AC, The Grimewalker, 2632, 0, Player-67-0029B09E, Чазусеаз, 1298, 0, 194099, Bile Breath, 8, 1139462, -1, 8, nil, nil, nil, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/194216.txt b/WeakAuras/Projects/RaiderlosSA/out/194216.txt new file mode 100644 index 0000000..d09b890 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/194216.txt @@ -0,0 +1,4 @@ + ["194216-SPELL_CAST_SUCCESS"] = "Cosmic Scythe, 194216, SPELL_CAST_SUCCESS, 1709839208.786, SPELL_CAST_SUCCESS, false, Creature-0-67-1492-0-96754-00005FA807, Harbaron, 68168, 0, , nil, -2147483648, -2147483648, 194216, Cosmic Scythe, 64", + ["194216-SPELL_CAST_START"] = "Cosmic Scythe, 194216, SPELL_CAST_START, 1709839207.267, SPELL_CAST_START, false, Creature-0-67-1492-0-96754-00005FA807, Harbaron, 68168, 0, , nil, -2147483648, -2147483648, 194216, Cosmic Scythe, 64", + ["194216-SPELL_CAST_SUCCESS"] = "Cosmic Scythe, 194216, SPELL_CAST_SUCCESS, 1710320755.811, SPELL_CAST_SUCCESS, false, Creature-0-67-1492-0-96754-00002911A4, Harbaron, 2632, 0, , nil, -2147483648, -2147483648, 194216, Cosmic Scythe, 64", + ["194216-SPELL_CAST_START"] = "Cosmic Scythe, 194216, SPELL_CAST_START, 1710320754.277, SPELL_CAST_START, false, Creature-0-67-1492-0-96754-00002911A4, Harbaron, 2632, 0, , nil, -2147483648, -2147483648, 194216, Cosmic Scythe, 64", diff --git a/WeakAuras/Projects/RaiderlosSA/out/194325.txt b/WeakAuras/Projects/RaiderlosSA/out/194325.txt new file mode 100644 index 0000000..1873bd3 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/194325.txt @@ -0,0 +1,2 @@ + ["194325-SPELL_CAST_SUCCESS"] = "Fragment, 194325, SPELL_CAST_SUCCESS, 1709839226.15, SPELL_CAST_SUCCESS, false, Creature-0-67-1492-0-96754-00005FA807, Harbaron, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 64, 194325, Fragment, 32", + ["194325-SPELL_CAST_START"] = "Fragment, 194325, SPELL_CAST_START, 1709839223.166, SPELL_CAST_START, false, Creature-0-67-1492-0-96754-00005FA807, Harbaron, 68168, 0, , nil, -2147483648, -2147483648, 194325, Fragment, 32", diff --git a/WeakAuras/Projects/RaiderlosSA/out/194442.txt b/WeakAuras/Projects/RaiderlosSA/out/194442.txt new file mode 100644 index 0000000..098898c --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/194442.txt @@ -0,0 +1,4 @@ + ["194442-SPELL_CAST_SUCCESS"] = "Six Pound Barrel, 194442, SPELL_CAST_SUCCESS, 1709839056.311, SPELL_CAST_SUCCESS, false, Creature-0-67-1492-0-99188-00005FA7FA, Waterlogged Soul Guard, 68168, 0, Player-67-00340A28, Gunwomen, 1298, 0, 194442, Six Pound Barrel, 16", + ["194442-SPELL_CAST_START"] = "Six Pound Barrel, 194442, SPELL_CAST_START, 1709839054.799, SPELL_CAST_START, false, Creature-0-67-1492-0-99188-00005FA7FA, Waterlogged Soul Guard, 68168, 0, , nil, -2147483648, -2147483648, 194442, Six Pound Barrel, 16", + ["194442-SPELL_CAST_SUCCESS"] = "Six Pound Barrel, 194442, SPELL_CAST_SUCCESS, 1710320669.769, SPELL_CAST_SUCCESS, false, Creature-0-67-1492-0-99188-00002911C1, Waterlogged Soul Guard, 2632, 0, Player-67-0020E0C2, Toofedka, 1298, 0, 194442, Six Pound Barrel, 16", + ["194442-SPELL_CAST_START"] = "Six Pound Barrel, 194442, SPELL_CAST_START, 1710320668.268, SPELL_CAST_START, false, Creature-0-67-1492-0-99188-00002911C1, Waterlogged Soul Guard, 68168, 0, , nil, -2147483648, -2147483648, 194442, Six Pound Barrel, 16", diff --git a/WeakAuras/Projects/RaiderlosSA/out/194615.txt b/WeakAuras/Projects/RaiderlosSA/out/194615.txt new file mode 100644 index 0000000..c2ea842 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/194615.txt @@ -0,0 +1,4 @@ + ["194615-SPELL_AURA_REMOVED"] = "Sea Legs, 194615, SPELL_AURA_REMOVED, 1709839068.797, SPELL_AURA_REMOVED, false, Creature-0-67-1492-0-98919-00005FA7FC, Seacursed Swiftblade, 2632, 0, Creature-0-67-1492-0-98919-00005FA7FC, Seacursed Swiftblade, 2632, 0, 194615, Sea Legs, 8, BUFF", + ["194615-SPELL_AURA_APPLIED"] = "Sea Legs, 194615, SPELL_AURA_APPLIED, 1709839062.76, SPELL_AURA_APPLIED, false, Creature-0-67-1492-0-98919-00005FA7FC, Seacursed Swiftblade, 2632, 0, Creature-0-67-1492-0-98919-00005FA7FC, Seacursed Swiftblade, 2632, 0, 194615, Sea Legs, 8, BUFF", + ["194615-SPELL_AURA_APPLIED"] = "Sea Legs, 194615, SPELL_AURA_APPLIED, 1710320681.478, SPELL_AURA_APPLIED, false, Creature-0-67-1492-0-98919-00002911C3, Seacursed Swiftblade, 68168, 0, Creature-0-67-1492-0-98919-00002911C3, Seacursed Swiftblade, 68168, 0, 194615, Sea Legs, 8, BUFF", + ["194615-SPELL_AURA_REMOVED"] = "Sea Legs, 194615, SPELL_AURA_REMOVED, 1710320684.56, SPELL_AURA_REMOVED, false, Creature-0-67-1492-0-98919-00002911C3, Seacursed Swiftblade, 2632, 0, Creature-0-67-1492-0-98919-00002911C3, Seacursed Swiftblade, 2632, 0, 194615, Sea Legs, 8, BUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/194945.txt b/WeakAuras/Projects/RaiderlosSA/out/194945.txt new file mode 100644 index 0000000..50ef178 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/194945.txt @@ -0,0 +1,5 @@ + ["194945-SPELL_PERIODIC_MISSED"] = "Lingering Gaze, 194945, SPELL_PERIODIC_MISSED, 1709813702.911, SPELL_PERIODIC_MISSED, false, Creature-0-67-1493-0-95887-000034E6F0, Glazer, 2632, 0, Player-67-0031DEC3, Darcsia, 1298, 0, 194945, Lingering Gaze, 32, ABSORB, false, 1287162", + ["194945-SPELL_ABSORBED"] = "Lingering Gaze, 194945, SPELL_ABSORBED, 1709803200.327, SPELL_ABSORBED, false, Creature-0-67-1493-0-95887-000029415D, Glazer, 68168, 0, Player-67-003516C9, Mistwrap, 1298, 0, 194945, Lingering Gaze, 32, Player-67-003516C9, Mistwrap, 1298, 0, 214423, Stance of the Mountain, 1, 200502", + ["194945-SPELL_AURA_REMOVED"] = "Lingering Gaze, 194945, SPELL_AURA_REMOVED, 1709803205.835, SPELL_AURA_REMOVED, false, Creature-0-67-1493-0-95887-000029415D, Glazer, 68168, 0, Player-67-003516C9, Mistwrap, 1298, 0, 194945, Lingering Gaze, 32, DEBUFF", + ["194945-SPELL_PERIODIC_DAMAGE"] = "Lingering Gaze, 194945, SPELL_PERIODIC_DAMAGE, 1709803200.287, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1493-0-95887-000029415D, Glazer, 68168, 0, Creature-0-67-1493-0-68467-0000296109, Pandaren Air Spirit, 4370, 0, 194945, Lingering Gaze, 32, 497255, 480107, 32, nil, nil, nil, false, false, false, false", + ["194945-SPELL_AURA_APPLIED"] = "Lingering Gaze, 194945, SPELL_AURA_APPLIED, 1709803200.327, SPELL_AURA_APPLIED, false, Creature-0-67-1493-0-95887-000029415D, Glazer, 68168, 0, Player-67-003516C9, Mistwrap, 1298, 0, 194945, Lingering Gaze, 32, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/194956.txt b/WeakAuras/Projects/RaiderlosSA/out/194956.txt new file mode 100644 index 0000000..1bc4619 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/194956.txt @@ -0,0 +1,7 @@ + ["194956-SPELL_AURA_APPLIED"] = "Reap Soul, 194956, SPELL_AURA_APPLIED, 1710074505.934, SPELL_AURA_APPLIED, false, Creature-0-88-1501-0-98542-000027E3CB, Amalgam of Souls, 68168, 0, Player-67-0033B422, Фрипал, 1298, 0, 194956, Reap Soul, 32, DEBUFF", + ["194956-SPELL_DAMAGE"] = "Reap Soul, 194956, SPELL_DAMAGE, 1710074505.87, SPELL_DAMAGE, false, Creature-0-88-1501-0-98542-000027E3CB, Amalgam of Souls, 68168, 0, Player-67-0033B422, Фрипал, 1298, 0, 194956, Reap Soul, 32, 1504485, -1, 32, nil, 1002990, nil, false, false, false, false", + ["194956-SPELL_ABSORBED"] = "Reap Soul, 194956, SPELL_ABSORBED, 1710444712.445, SPELL_ABSORBED, false, Creature-0-67-1501-0-98542-00005C4B6A, Amalgam of Souls, 68168, 0, Player-67-00282563, Fregath, 1298, 0, 194956, Reap Soul, 32, Player-67-00282563, Fregath, 1298, 0, 209388, Bulwark of Order, 2, 746306", + ["194956-SPELL_AURA_REMOVED"] = "Reap Soul, 194956, SPELL_AURA_REMOVED, 1710074535.963, SPELL_AURA_REMOVED, false, Creature-0-88-1501-0-98542-000027E3CB, Amalgam of Souls, 68168, 0, Player-67-0033B422, Фрипал, 1298, 0, 194956, Reap Soul, 32, DEBUFF", + ["194956-SPELL_AURA_APPLIED_DOSE"] = "Reap Soul, 194956, SPELL_AURA_APPLIED_DOSE, 1710074623.532, SPELL_AURA_APPLIED_DOSE, false, Creature-0-88-1501-0-98542-000027E3CB, Amalgam of Souls, 68168, 0, Player-67-0033B422, Фрипал, 1298, 0, 194956, Reap Soul, 32, DEBUFF, 2", + ["194956-SPELL_CAST_SUCCESS"] = "Reap Soul, 194956, SPELL_CAST_SUCCESS, 1710074505.87, SPELL_CAST_SUCCESS, false, Creature-0-88-1501-0-98542-000027E3CB, Amalgam of Souls, 68168, 0, , nil, -2147483648, -2147483648, 194956, Reap Soul, 32", + ["194956-SPELL_CAST_START"] = "Reap Soul, 194956, SPELL_CAST_START, 1710074502.849, SPELL_CAST_START, false, Creature-0-88-1501-0-98542-000027E3CB, Amalgam of Souls, 68168, 0, , nil, -2147483648, -2147483648, 194956, Reap Soul, 32", diff --git a/WeakAuras/Projects/RaiderlosSA/out/194996.txt b/WeakAuras/Projects/RaiderlosSA/out/194996.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/195046.txt b/WeakAuras/Projects/RaiderlosSA/out/195046.txt new file mode 100644 index 0000000..e6ad3f4 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/195046.txt @@ -0,0 +1,4 @@ + ["195046-SPELL_CAST_SUCCESS"] = "Rejuvenating Waters, 195046, SPELL_CAST_SUCCESS, 1709798454.503, SPELL_CAST_SUCCESS, false, Creature-0-67-1456-0-95861-000024BABA, Hatecoil Oracle, 2632, 0, Creature-0-67-1456-0-91783-000024BA96, Hatecoil Stormweaver, 2632, 0, 195046, Rejuvenating Waters, 16", + ["195046-SPELL_CAST_START"] = "Rejuvenating Waters, 195046, SPELL_CAST_START, 1709798440.883, SPELL_CAST_START, false, Creature-0-67-1456-0-95861-000024BABB, Hatecoil Oracle, 2632, 0, , nil, -2147483648, -2147483648, 195046, Rejuvenating Waters, 16", + ["195046-SPELL_CAST_SUCCESS"] = "Rejuvenating Waters, 195046, SPELL_CAST_SUCCESS, 1710492236.827, SPELL_CAST_SUCCESS, false, Creature-0-67-1456-0-95861-00001FCE66, Hatecoil Oracle, 2632, 0, Creature-0-67-1456-0-91783-00001FCE63, Hatecoil Stormweaver, 2632, 0, 195046, Rejuvenating Waters, 16", + ["195046-SPELL_CAST_START"] = "Rejuvenating Waters, 195046, SPELL_CAST_START, 1710325383.291, SPELL_CAST_START, false, Creature-0-67-1456-0-95861-00002E574F, Hatecoil Oracle, 2632, 0, , nil, -2147483648, -2147483648, 195046, Rejuvenating Waters, 16", diff --git a/WeakAuras/Projects/RaiderlosSA/out/195129.txt b/WeakAuras/Projects/RaiderlosSA/out/195129.txt new file mode 100644 index 0000000..ae0dcae --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/195129.txt @@ -0,0 +1,7 @@ + ["195129-SPELL_MISSED"] = "Thundering Stomp, 195129, SPELL_MISSED, 1709798458.381, SPELL_MISSED, false, Creature-0-67-1456-0-91782-000024BAB1, Hatecoil Crusher, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 195129, Thundering Stomp, 8, ABSORB, false, 425892", + ["195129-SPELL_DAMAGE"] = "Thundering Stomp, 195129, SPELL_DAMAGE, 1709798458.381, SPELL_DAMAGE, false, Creature-0-67-1456-0-91782-000024BAB1, Hatecoil Crusher, 68168, 0, Player-67-002E9414, Foreverdown, 1298, 0, 195129, Thundering Stomp, 8, 435429, -1, 8, nil, nil, nil, false, false, false, false", + ["195129-SPELL_CAST_SUCCESS"] = "Thundering Stomp, 195129, SPELL_CAST_SUCCESS, 1709798458.381, SPELL_CAST_SUCCESS, false, Creature-0-67-1456-0-91782-000024BAB1, Hatecoil Crusher, 68168, 0, , nil, -2147483648, -2147483648, 195129, Thundering Stomp, 8", + ["195129-SPELL_AURA_REMOVED"] = "Thundering Stomp, 195129, SPELL_AURA_REMOVED, 1709798459.474, SPELL_AURA_REMOVED, false, Creature-0-67-1456-0-91782-000024BAB1, Hatecoil Crusher, 68168, 0, Player-67-00318352, Shortcake, 1298, 0, 195129, Thundering Stomp, 8, DEBUFF", + ["195129-SPELL_AURA_APPLIED"] = "Thundering Stomp, 195129, SPELL_AURA_APPLIED, 1709798458.443, SPELL_AURA_APPLIED, false, Creature-0-67-1456-0-91782-000024BAB1, Hatecoil Crusher, 68168, 0, Player-67-00318352, Shortcake, 1298, 0, 195129, Thundering Stomp, 8, DEBUFF", + ["195129-SPELL_CAST_START"] = "Thundering Stomp, 195129, SPELL_CAST_START, 1709798455.374, SPELL_CAST_START, false, Creature-0-67-1456-0-91782-000024BAB1, Hatecoil Crusher, 2632, 0, , nil, -2147483648, -2147483648, 195129, Thundering Stomp, 8", + ["195129-SPELL_ABSORBED"] = "Thundering Stomp, 195129, SPELL_ABSORBED, 1709798458.381, SPELL_ABSORBED, false, Creature-0-67-1456-0-91782-000024BAB1, Hatecoil Crusher, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 195129, Thundering Stomp, 8, Player-67-002D9DD1, Succpotato, 1297, 0, 108416, Dark Pact, 1, 425892", diff --git a/WeakAuras/Projects/RaiderlosSA/out/195172.txt b/WeakAuras/Projects/RaiderlosSA/out/195172.txt new file mode 100644 index 0000000..3fa5ba3 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/195172.txt @@ -0,0 +1,5 @@ + ["195172-SPELL_ABSORBED"] = "Mighty Slam, 195172, SPELL_ABSORBED, 1709817918.153, SPELL_ABSORBED, false, Creature-0-67-1456-0-91782-00003ACD63, Hatecoil Crusher, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 195172, Mighty Slam, 1, Player-67-002D9DD1, Succpotato, 1297, 0, 207472, Xavaric's Magnum Opus, 1, 436235", + ["195172-SPELL_MISSED"] = "Mighty Slam, 195172, SPELL_MISSED, 1709817918.153, SPELL_MISSED, false, Creature-0-67-1456-0-91782-00003ACD63, Hatecoil Crusher, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 195172, Mighty Slam, 1, ABSORB, false, 436235", + ["195172-SPELL_CAST_START"] = "Mighty Slam, 195172, SPELL_CAST_START, 1709798451.748, SPELL_CAST_START, false, Creature-0-67-1456-0-91782-000024BAB1, Hatecoil Crusher, 2632, 0, , nil, -2147483648, -2147483648, 195172, Mighty Slam, 1", + ["195172-SPELL_CAST_SUCCESS"] = "Mighty Slam, 195172, SPELL_CAST_SUCCESS, 1709798454.246, SPELL_CAST_SUCCESS, false, Creature-0-67-1456-0-91782-000024BAB1, Hatecoil Crusher, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 195172, Mighty Slam, 1", + ["195172-SPELL_DAMAGE"] = "Mighty Slam, 195172, SPELL_DAMAGE, 1709798454.246, SPELL_DAMAGE, false, Creature-0-67-1456-0-91782-000024BAB1, Hatecoil Crusher, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 195172, Mighty Slam, 1, 905146, -1, 1, nil, nil, nil, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/195254.txt b/WeakAuras/Projects/RaiderlosSA/out/195254.txt new file mode 100644 index 0000000..574b5d8 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/195254.txt @@ -0,0 +1,4 @@ + ["195254-SPELL_CAST_SUCCESS"] = "Swirling Scythe, 195254, SPELL_CAST_SUCCESS, 1710074491.117, SPELL_CAST_SUCCESS, false, Creature-0-88-1501-0-98542-000027E3CB, Amalgam of Souls, 68168, 0, Player-88-000083FE, Данкан-legionx5, 1298, 128, 195254, Swirling Scythe, 1", + ["195254-SPELL_CAST_START"] = "Swirling Scythe, 195254, SPELL_CAST_START, 1710074490.618, SPELL_CAST_START, false, Creature-0-88-1501-0-98542-000027E3CB, Amalgam of Souls, 68168, 0, , nil, -2147483648, -2147483648, 195254, Swirling Scythe, 1", + ["195254-SPELL_CAST_SUCCESS"] = "Swirling Scythe, 195254, SPELL_CAST_SUCCESS, 1710160074.641, SPELL_CAST_SUCCESS, false, Creature-0-67-1501-0-98542-000035D694, Amalgam of Souls, 2632, 0, Player-67-002D9DD1, Succpotato, 1298, 0, 195254, Swirling Scythe, 1", + ["195254-SPELL_CAST_START"] = "Swirling Scythe, 195254, SPELL_CAST_START, 1710160074.075, SPELL_CAST_START, false, Creature-0-67-1501-0-98542-000035D694, Amalgam of Souls, 2632, 0, , nil, -2147483648, -2147483648, 195254, Swirling Scythe, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/195293.txt b/WeakAuras/Projects/RaiderlosSA/out/195293.txt new file mode 100644 index 0000000..5670eb5 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/195293.txt @@ -0,0 +1,2 @@ + ["195293-SPELL_CAST_START"] = "Debilitating Shout, 195293, SPELL_CAST_START, 1709839396.126, SPELL_CAST_START, false, Creature-0-67-1492-0-99307-00005FA836, Skjal, 68168, 0, , nil, -2147483648, -2147483648, 195293, Debilitating Shout, 8", + ["195293-SPELL_CAST_START"] = "Debilitating Shout, 195293, SPELL_CAST_START, 1710320804.429, SPELL_CAST_START, false, Creature-0-67-1492-0-99307-00002911D3, Skjal, 2632, 0, , nil, -2147483648, -2147483648, 195293, Debilitating Shout, 8", diff --git a/WeakAuras/Projects/RaiderlosSA/out/195791.txt b/WeakAuras/Projects/RaiderlosSA/out/195791.txt new file mode 100644 index 0000000..5657c62 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/195791.txt @@ -0,0 +1,2 @@ + ["195791-SPELL_CAST_SUCCESS"] = "Quarantine, 195791, SPELL_CAST_SUCCESS, 1709801500.015, SPELL_CAST_SUCCESS, false, Creature-0-67-1516-0-98205-000027CDF6, Corstilax, 68168, 0, , nil, -2147483648, -2147483648, 195791, Quarantine, 64", + ["195791-SPELL_CAST_START"] = "Quarantine, 195791, SPELL_CAST_START, 1709801498.023, SPELL_CAST_START, false, Creature-0-67-1516-0-98205-000027CDF6, Corstilax, 68168, 0, , nil, -2147483648, -2147483648, 195791, Quarantine, 64", diff --git a/WeakAuras/Projects/RaiderlosSA/out/196129.txt b/WeakAuras/Projects/RaiderlosSA/out/196129.txt new file mode 100644 index 0000000..05f8dd8 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/196129.txt @@ -0,0 +1,3 @@ + ["196129-SPELL_DAMAGE"] = "Spray Sand, 196129, SPELL_DAMAGE, 1709916009.311, SPELL_DAMAGE, false, Creature-0-67-1456-0-91790-00004E98C8, Mak'rana Siltwalker, 2632, 0, Player-67-001A361E, Hullsa, 1298, 0, 196129, Spray Sand, 8, 879459, -1, 8, nil, nil, nil, false, false, false, false", + ["196129-SPELL_ABSORBED"] = "Spray Sand, 196129, SPELL_ABSORBED, 1709798570.345, SPELL_ABSORBED, false, Creature-0-67-1456-0-91790-000024BB70, Mak'rana Siltwalker, 68168, 0, Player-88-00060D3C, Чмы-legionx5, 1298, 0, 196129, Spray Sand, 8, Player-88-00060D3C, Чмы-legionx5, 1298, 0, 207472, Xavaric's Magnum Opus, 1, 543377", + ["196129-SPELL_MISSED"] = "Spray Sand, 196129, SPELL_MISSED, 1709798570.367, SPELL_MISSED, false, Creature-0-67-1456-0-91790-000024BB70, Mak'rana Siltwalker, 68168, 0, Player-88-00060D3C, Чмы-legionx5, 1298, 0, 196129, Spray Sand, 8, ABSORB, false, 543377", diff --git a/WeakAuras/Projects/RaiderlosSA/out/196144.txt b/WeakAuras/Projects/RaiderlosSA/out/196144.txt new file mode 100644 index 0000000..33f366b --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/196144.txt @@ -0,0 +1,5 @@ + ["196144-SPELL_AURA_REMOVED"] = "Sandstorm, 196144, SPELL_AURA_REMOVED, 1709916027.631, SPELL_AURA_REMOVED, false, Creature-0-67-1456-0-91790-00004E98C8, Mak'rana Siltwalker, 2632, 0, Player-67-002E06C1, Yabadabaduu, 1298, 0, 196144, Sandstorm, 8, DEBUFF", + ["196144-SPELL_AURA_APPLIED"] = "Sandstorm, 196144, SPELL_AURA_APPLIED, 1709916015.594, SPELL_AURA_APPLIED, false, Creature-0-67-1456-0-91790-00004E98C8, Mak'rana Siltwalker, 2632, 0, Player-67-002E06C1, Yabadabaduu, 1298, 0, 196144, Sandstorm, 8, DEBUFF", + ["196144-SPELL_CAST_SUCCESS"] = "Sandstorm, 196144, SPELL_CAST_SUCCESS, 1709916015.564, SPELL_CAST_SUCCESS, false, Creature-0-67-1456-0-91790-00004E98C8, Mak'rana Siltwalker, 2632, 0, Player-67-002E06C1, Yabadabaduu, 1298, 0, 196144, Sandstorm, 8", + ["196144-SPELL_CAST_START"] = "Sandstorm, 196144, SPELL_CAST_START, 1709916014.031, SPELL_CAST_START, false, Creature-0-67-1456-0-91790-00004E98C8, Mak'rana Siltwalker, 2632, 0, , nil, -2147483648, -2147483648, 196144, Sandstorm, 8", + ["196144-SPELL_CAST_START"] = "Sandstorm, 196144, SPELL_CAST_START, 1710492688.527, SPELL_CAST_START, false, Creature-0-67-1456-0-91790-00001FCF23, Mak'rana Siltwalker, 68168, 0, , nil, -2147483648, -2147483648, 196144, Sandstorm, 8", diff --git a/WeakAuras/Projects/RaiderlosSA/out/196249.txt b/WeakAuras/Projects/RaiderlosSA/out/196249.txt new file mode 100644 index 0000000..6f915c0 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/196249.txt @@ -0,0 +1,2 @@ + ["196249-SPELL_CAST_START"] = "Meteor, 196249, SPELL_CAST_START, 1710083862.819, SPELL_CAST_START, false, Creature-0-67-1493-0-99649-000050A22B, Dreadlord Mendacius, 2632, 0, , nil, -2147483648, -2147483648, 196249, Meteor, 4", + ["196249-SPELL_CAST_SUCCESS"] = "Meteor, 196249, SPELL_CAST_SUCCESS, 1710083865.849, SPELL_CAST_SUCCESS, false, Creature-0-67-1493-0-99649-000050A22B, Dreadlord Mendacius, 68168, 0, , nil, -2147483648, -2147483648, 196249, Meteor, 4", diff --git a/WeakAuras/Projects/RaiderlosSA/out/196290.txt b/WeakAuras/Projects/RaiderlosSA/out/196290.txt new file mode 100644 index 0000000..ef82e3e --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/196290.txt @@ -0,0 +1,8 @@ + ["196290-SPELL_AURA_APPLIED"] = "Chaotic Tempest, 196290, SPELL_AURA_APPLIED, 1709818267.598, SPELL_AURA_APPLIED, false, Creature-0-67-1456-0-91792-00003C034D, Stormwake Hydra, 2632, 0, Creature-0-67-1456-0-91792-00003C034D, Stormwake Hydra, 2632, 0, 196290, Chaotic Tempest, 1, BUFF", + ["196290-SPELL_CAST_SUCCESS"] = "Chaotic Tempest, 196290, SPELL_CAST_SUCCESS, 1709818267.598, SPELL_CAST_SUCCESS, false, Creature-0-67-1456-0-91792-00003C034D, Stormwake Hydra, 2632, 0, , nil, -2147483648, -2147483648, 196290, Chaotic Tempest, 1", + ["196290-SPELL_AURA_REMOVED"] = "Chaotic Tempest, 196290, SPELL_AURA_REMOVED, 1709818270.588, SPELL_AURA_REMOVED, false, Creature-0-67-1456-0-91792-00003C034D, Stormwake Hydra, 2632, 0, Creature-0-67-1456-0-91792-00003C034D, Stormwake Hydra, 2632, 0, 196290, Chaotic Tempest, 1, BUFF", + ["196290-SPELL_CAST_START"] = "Chaotic Tempest, 196290, SPELL_CAST_START, 1709818266.557, SPELL_CAST_START, false, Creature-0-67-1456-0-91792-00003C034D, Stormwake Hydra, 2632, 0, , nil, -2147483648, -2147483648, 196290, Chaotic Tempest, 1", + ["196290-SPELL_AURA_REMOVED"] = "Chaotic Tempest, 196290, SPELL_AURA_REMOVED, 1710492485.889, SPELL_AURA_REMOVED, false, Creature-0-67-1456-0-91792-00001FCF29, Stormwake Hydra, 68168, 0, Creature-0-67-1456-0-91792-00001FCF29, Stormwake Hydra, 68168, 0, 196290, Chaotic Tempest, 1, BUFF", + ["196290-SPELL_CAST_SUCCESS"] = "Chaotic Tempest, 196290, SPELL_CAST_SUCCESS, 1710492482.867, SPELL_CAST_SUCCESS, false, Creature-0-67-1456-0-91792-00001FCF29, Stormwake Hydra, 68168, 0, , nil, -2147483648, -2147483648, 196290, Chaotic Tempest, 1", + ["196290-SPELL_AURA_APPLIED"] = "Chaotic Tempest, 196290, SPELL_AURA_APPLIED, 1710492482.867, SPELL_AURA_APPLIED, false, Creature-0-67-1456-0-91792-00001FCF29, Stormwake Hydra, 68168, 0, Creature-0-67-1456-0-91792-00001FCF29, Stormwake Hydra, 68168, 0, 196290, Chaotic Tempest, 1, BUFF", + ["196290-SPELL_CAST_START"] = "Chaotic Tempest, 196290, SPELL_CAST_START, 1710492481.827, SPELL_CAST_START, false, Creature-0-67-1456-0-91792-00001FCF29, Stormwake Hydra, 68168, 0, , nil, -2147483648, -2147483648, 196290, Chaotic Tempest, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/196296.txt b/WeakAuras/Projects/RaiderlosSA/out/196296.txt new file mode 100644 index 0000000..6be2ce6 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/196296.txt @@ -0,0 +1,8 @@ + ["196296-SPELL_CAST_SUCCESS"] = "Roiling Storm, 196296, SPELL_CAST_SUCCESS, 1709818279.692, SPELL_CAST_SUCCESS, false, Creature-0-67-1456-0-91792-00003C034D, Stormwake Hydra, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 196296, Roiling Storm, 1", + ["196296-SPELL_CAST_START"] = "Roiling Storm, 196296, SPELL_CAST_START, 1709818278.667, SPELL_CAST_START, false, Creature-0-67-1456-0-91792-00003C034D, Stormwake Hydra, 2632, 0, , nil, -2147483648, -2147483648, 196296, Roiling Storm, 1", + ["196296-SPELL_AURA_REMOVED"] = "Roiling Storm, 196296, SPELL_AURA_REMOVED, 1709818280.708, SPELL_AURA_REMOVED, false, Creature-0-67-1456-0-91792-00003C034D, Stormwake Hydra, 2632, 0, Creature-0-67-1456-0-91792-00003C034D, Stormwake Hydra, 2632, 0, 196296, Roiling Storm, 1, BUFF", + ["196296-SPELL_AURA_APPLIED"] = "Roiling Storm, 196296, SPELL_AURA_APPLIED, 1709818279.692, SPELL_AURA_APPLIED, false, Creature-0-67-1456-0-91792-00003C034D, Stormwake Hydra, 2632, 0, Creature-0-67-1456-0-91792-00003C034D, Stormwake Hydra, 2632, 0, 196296, Roiling Storm, 1, BUFF", + ["196296-SPELL_CAST_SUCCESS"] = "Roiling Storm, 196296, SPELL_CAST_SUCCESS, 1710492494.897, SPELL_CAST_SUCCESS, false, Creature-0-67-1456-0-91792-00001FCF29, Stormwake Hydra, 68168, 0, Player-67-002D575C, Dememedruid, 1298, 0, 196296, Roiling Storm, 1", + ["196296-SPELL_CAST_START"] = "Roiling Storm, 196296, SPELL_CAST_START, 1710492493.894, SPELL_CAST_START, false, Creature-0-67-1456-0-91792-00001FCF29, Stormwake Hydra, 68168, 0, , nil, -2147483648, -2147483648, 196296, Roiling Storm, 1", + ["196296-SPELL_AURA_APPLIED"] = "Roiling Storm, 196296, SPELL_AURA_APPLIED, 1710492494.897, SPELL_AURA_APPLIED, false, Creature-0-67-1456-0-91792-00001FCF29, Stormwake Hydra, 68168, 0, Creature-0-67-1456-0-91792-00001FCF29, Stormwake Hydra, 68168, 0, 196296, Roiling Storm, 1, BUFF", + ["196296-SPELL_AURA_REMOVED"] = "Roiling Storm, 196296, SPELL_AURA_REMOVED, 1710492495.945, SPELL_AURA_REMOVED, false, Creature-0-67-1456-0-91792-00001FCF29, Stormwake Hydra, 68168, 0, Creature-0-67-1456-0-91792-00001FCF29, Stormwake Hydra, 68168, 0, 196296, Roiling Storm, 1, BUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/196392.txt b/WeakAuras/Projects/RaiderlosSA/out/196392.txt new file mode 100644 index 0000000..4aadc28 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/196392.txt @@ -0,0 +1 @@ + ["196392-SPELL_CAST_SUCCESS"] = "Overcharge Mana, 196392, SPELL_CAST_SUCCESS, 1710190361.142, SPELL_CAST_SUCCESS, false, Creature-0-67-1516-0-98203-000065F2F8, Ivanyr, 68168, 0, Creature-0-67-1516-0-98734-000065F2F9, Night Crystal, 2632, 0, 196392, Overcharge Mana, 64", diff --git a/WeakAuras/Projects/RaiderlosSA/out/196512.txt b/WeakAuras/Projects/RaiderlosSA/out/196512.txt new file mode 100644 index 0000000..e2d825e --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/196512.txt @@ -0,0 +1,8 @@ + ["196512-SPELL_MISSED"] = "Claw Frenzy, 196512, SPELL_MISSED, 1709898715.912, SPELL_MISSED, false, Creature-0-67-1477-0-95674-00003637A6, Fenryr, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 196512, Claw Frenzy, 1, ABSORB, false, 997453", + ["196512-SPELL_DAMAGE"] = "Claw Frenzy, 196512, SPELL_DAMAGE, 1709898774.165, SPELL_DAMAGE, false, Creature-0-67-1477-0-99868-0000363BED, Fenryr, 68168, 0, Player-67-00351FE4, Дусяхентай, 1298, 0, 196512, Claw Frenzy, 1, 170850, -1, 1, nil, nil, nil, false, false, false, false", + ["196512-SPELL_ABSORBED"] = "Claw Frenzy, 196512, SPELL_ABSORBED, 1709898715.912, SPELL_ABSORBED, false, Creature-0-67-1477-0-95674-00003637A6, Fenryr, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 196512, Claw Frenzy, 1, Player-67-002D9DD1, Succpotato, 1297, 0, 108366, Soul Leech, 32, 997453", + ["196512-SPELL_CAST_SUCCESS"] = "Claw Frenzy, 196512, SPELL_CAST_SUCCESS, 1709898715.912, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-95674-00003637A6, Fenryr, 68168, 0, , nil, -2147483648, -2147483648, 196512, Claw Frenzy, 1", + ["196512-SPELL_MISSED"] = "Claw Frenzy, 196512, SPELL_MISSED, 1709749725.801, SPELL_MISSED, false, Creature-0-67-1477-0-95674-00004471AB, Fenryr, 2632, 128, Player-67-002C9240, Wilmarin, 1298, 0, 196512, Claw Frenzy, 1, ABSORB, false, 701068", + ["196512-SPELL_DAMAGE"] = "Claw Frenzy, 196512, SPELL_DAMAGE, 1709749712.174, SPELL_DAMAGE, false, Creature-0-67-1477-0-95674-00004471AB, Fenryr, 2632, 128, Player-67-002C9240, Wilmarin, 1298, 0, 196512, Claw Frenzy, 1, 1540810, -1, 1, nil, nil, nil, false, false, false, false", + ["196512-SPELL_ABSORBED"] = "Claw Frenzy, 196512, SPELL_ABSORBED, 1709749725.782, SPELL_ABSORBED, false, Creature-0-67-1477-0-95674-00004471AB, Fenryr, 2632, 128, Player-67-002C9240, Wilmarin, 1298, 0, 196512, Claw Frenzy, 1, Player-67-002C9240, Wilmarin, 1298, 0, 252545, Light of Absolarn, 8, 701068", + ["196512-SPELL_CAST_SUCCESS"] = "Claw Frenzy, 196512, SPELL_CAST_SUCCESS, 1709749712.174, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-95674-00004471AB, Fenryr, 2632, 128, , nil, -2147483648, -2147483648, 196512, Claw Frenzy, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/197105.txt b/WeakAuras/Projects/RaiderlosSA/out/197105.txt new file mode 100644 index 0000000..bc15d27 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/197105.txt @@ -0,0 +1,8 @@ + ["197105-SPELL_AURA_REMOVED"] = "Polymorph: Fish, 197105, SPELL_AURA_REMOVED, 1709818530.353, SPELL_AURA_REMOVED, false, Creature-0-67-1456-0-97171-00003ACDD6, Hatecoil Arcanist, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 197105, Polymorph: Fish, 64, DEBUFF", + ["197105-SPELL_CAST_START"] = "Polymorph: Fish, 197105, SPELL_CAST_START, 1709798499.456, SPELL_CAST_START, false, Creature-0-67-1456-0-97171-000024BB0A, Hatecoil Arcanist, 68168, 0, , nil, -2147483648, -2147483648, 197105, Polymorph: Fish, 64", + ["197105-SPELL_CAST_SUCCESS"] = "Polymorph: Fish, 197105, SPELL_CAST_SUCCESS, 1709818529.96, SPELL_CAST_SUCCESS, false, Creature-0-67-1456-0-97171-00003ACDD6, Hatecoil Arcanist, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 197105, Polymorph: Fish, 64", + ["197105-SPELL_AURA_APPLIED"] = "Polymorph: Fish, 197105, SPELL_AURA_APPLIED, 1709818530.006, SPELL_AURA_APPLIED, false, Creature-0-67-1456-0-97171-00003ACDD6, Hatecoil Arcanist, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 197105, Polymorph: Fish, 64, DEBUFF", + ["197105-SPELL_AURA_REMOVED"] = "Polymorph: Fish, 197105, SPELL_AURA_REMOVED, 1710493487.326, SPELL_AURA_REMOVED, false, Creature-0-67-1456-0-100249-00001FCEA8, Channeler Varisz, 2632, 0, Player-67-001E41D9, Jasophine, 1298, 0, 197105, Polymorph: Fish, 64, DEBUFF", + ["197105-SPELL_CAST_START"] = "Polymorph: Fish, 197105, SPELL_CAST_START, 1710325436.13, SPELL_CAST_START, false, Creature-0-67-1456-0-97171-00002E5793, Hatecoil Arcanist, 2632, 0, , nil, -2147483648, -2147483648, 197105, Polymorph: Fish, 64", + ["197105-SPELL_AURA_APPLIED"] = "Polymorph: Fish, 197105, SPELL_AURA_APPLIED, 1710493485.272, SPELL_AURA_APPLIED, false, Creature-0-67-1456-0-100249-00001FCEA8, Channeler Varisz, 2632, 0, Player-67-001E41D9, Jasophine, 1298, 0, 197105, Polymorph: Fish, 64, DEBUFF", + ["197105-SPELL_CAST_SUCCESS"] = "Polymorph: Fish, 197105, SPELL_CAST_SUCCESS, 1710493485.249, SPELL_CAST_SUCCESS, false, Creature-0-67-1456-0-100249-00001FCEA8, Channeler Varisz, 2632, 0, Player-67-001E41D9, Jasophine, 1298, 0, 197105, Polymorph: Fish, 64", diff --git a/WeakAuras/Projects/RaiderlosSA/out/197418.txt b/WeakAuras/Projects/RaiderlosSA/out/197418.txt new file mode 100644 index 0000000..b0791e5 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/197418.txt @@ -0,0 +1,8 @@ + ["197418-SPELL_MISSED"] = "Vengeful Shear, 197418, SPELL_MISSED, 1710181823.927, SPELL_MISSED, false, Vehicle-0-88-1501-0-98696-00002DA3C5, Illysanna Ravencrest, 68168, 0, Player-88-00008C31, Kusmanchik-legionx5, 1298, 0, 197418, Vengeful Shear, 1, ABSORB, false, 4598350", + ["197418-SPELL_CAST_START"] = "Vengeful Shear, 197418, SPELL_CAST_START, 1710075086.766, SPELL_CAST_START, false, Vehicle-0-88-1501-0-98696-000027E34B, Illysanna Ravencrest, 68168, 0, , nil, -2147483648, -2147483648, 197418, Vengeful Shear, 1", + ["197418-SPELL_ABSORBED"] = "Vengeful Shear, 197418, SPELL_ABSORBED, 1710075170.377, SPELL_ABSORBED, false, Vehicle-0-88-1501-0-98696-000027E34B, Illysanna Ravencrest, 68168, 0, Player-67-0033B422, Фрипал, 1298, 0, 197418, Vengeful Shear, 1, Player-67-0033B422, Фрипал, 1298, 0, 209388, Bulwark of Order, 2, 648260", + ["197418-SPELL_CAST_SUCCESS"] = "Vengeful Shear, 197418, SPELL_CAST_SUCCESS, 1710075089.271, SPELL_CAST_SUCCESS, false, Vehicle-0-88-1501-0-98696-000027E34B, Illysanna Ravencrest, 68168, 0, Player-67-0033B422, Фрипал, 1298, 0, 197418, Vengeful Shear, 1", + ["197418-SPELL_DAMAGE"] = "Vengeful Shear, 197418, SPELL_DAMAGE, 1710075089.271, SPELL_DAMAGE, false, Vehicle-0-88-1501-0-98696-000027E34B, Illysanna Ravencrest, 68168, 0, Player-67-0033B422, Фрипал, 1298, 0, 197418, Vengeful Shear, 1, 6970477, -1, 1, nil, 4646984, nil, false, false, false, false", + ["197418-SPELL_CAST_START"] = "Vengeful Shear, 197418, SPELL_CAST_START, 1710160243.841, SPELL_CAST_START, false, Vehicle-0-67-1501-0-98696-000035D5F7, Illysanna Ravencrest, 2632, 0, , nil, -2147483648, -2147483648, 197418, Vengeful Shear, 1", + ["197418-SPELL_DAMAGE"] = "Vengeful Shear, 197418, SPELL_DAMAGE, 1710160246.341, SPELL_DAMAGE, false, Vehicle-0-67-1501-0-98696-000035D5F7, Illysanna Ravencrest, 2632, 0, Player-67-00352047, Киряфистинг, 1298, 0, 197418, Vengeful Shear, 1, 883846, -1, 1, nil, nil, nil, false, false, false, false", + ["197418-SPELL_CAST_SUCCESS"] = "Vengeful Shear, 197418, SPELL_CAST_SUCCESS, 1710160246.341, SPELL_CAST_SUCCESS, false, Vehicle-0-67-1501-0-98696-000035D5F7, Illysanna Ravencrest, 2632, 0, Player-67-00352047, Киряфистинг, 1298, 0, 197418, Vengeful Shear, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/197513.txt b/WeakAuras/Projects/RaiderlosSA/out/197513.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/197799.txt b/WeakAuras/Projects/RaiderlosSA/out/197799.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/197810.txt b/WeakAuras/Projects/RaiderlosSA/out/197810.txt new file mode 100644 index 0000000..ce795e5 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/197810.txt @@ -0,0 +1,5 @@ + ["197810-SPELL_CAST_START"] = "Wicked Slam, 197810, SPELL_CAST_START, 1710191584.865, SPELL_CAST_START, false, Creature-0-67-1516-0-98206-000065F210, General Xakal, 68168, 0, , nil, -2147483648, -2147483648, 197810, Wicked Slam, 1", + ["197810-SPELL_CAST_SUCCESS"] = "Wicked Slam, 197810, SPELL_CAST_SUCCESS, 1710191586.922, SPELL_CAST_SUCCESS, false, Creature-0-67-1516-0-98206-000065F210, General Xakal, 68168, 0, , nil, -2147483648, -2147483648, 197810, Wicked Slam, 1", + ["197810-SPELL_MISSED"] = "Wicked Slam, 197810, SPELL_MISSED, 1710191586.922, SPELL_MISSED, false, Creature-0-67-1516-0-98206-000065F210, General Xakal, 68168, 0, Player-67-002B9144, Redoc, 1298, 0, 197810, Wicked Slam, 1, DODGE, false", + ["197810-SPELL_ABSORBED"] = "Wicked Slam, 197810, SPELL_ABSORBED, 1710191586.922, SPELL_ABSORBED, false, Creature-0-67-1516-0-98206-000065F210, General Xakal, 68168, 0, Player-67-0034D3BE, Iamedgars, 1298, 0, 197810, Wicked Slam, 1, Player-67-0034D3BE, Iamedgars, 1298, 0, 235313, Blazing Barrier, 4, 655200", + ["197810-SPELL_DAMAGE"] = "Wicked Slam, 197810, SPELL_DAMAGE, 1710191586.922, SPELL_DAMAGE, false, Creature-0-67-1516-0-98206-000065F210, General Xakal, 68168, 0, Player-67-0034D3BE, Iamedgars, 1298, 0, 197810, Wicked Slam, 1, 4139244, -1, 1, nil, nil, 3977236, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/197961.txt b/WeakAuras/Projects/RaiderlosSA/out/197961.txt new file mode 100644 index 0000000..08b5e09 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/197961.txt @@ -0,0 +1,4 @@ + ["197961-SPELL_CAST_START"] = "Runic Brand, 197961, SPELL_CAST_START, 1710340870.156, SPELL_CAST_START, false, Creature-0-67-1477-0-95676-00002BAF9A, Odyn, 68168, 0, , nil, -2147483648, -2147483648, 197961, Runic Brand, 2", + ["197961-SPELL_CAST_SUCCESS"] = "Runic Brand, 197961, SPELL_CAST_SUCCESS, 1710340872.171, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-95676-00002BAF9A, Odyn, 68168, 0, , nil, -2147483648, -2147483648, 197961, Runic Brand, 2", + ["197961-SPELL_CAST_START"] = "Runic Brand, 197961, SPELL_CAST_START, 1709750228.553, SPELL_CAST_START, false, Creature-0-67-1477-0-95676-000044F691, Odyn, 68168, 0, , nil, -2147483648, -2147483648, 197961, Runic Brand, 2", + ["197961-SPELL_CAST_SUCCESS"] = "Runic Brand, 197961, SPELL_CAST_SUCCESS, 1709750230.605, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-95676-000044F691, Odyn, 68168, 0, , nil, -2147483648, -2147483648, 197961, Runic Brand, 2", diff --git a/WeakAuras/Projects/RaiderlosSA/out/198072.txt b/WeakAuras/Projects/RaiderlosSA/out/198072.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/198079.txt b/WeakAuras/Projects/RaiderlosSA/out/198079.txt new file mode 100644 index 0000000..42df69c --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/198079.txt @@ -0,0 +1,4 @@ + ["198079-SPELL_AURA_APPLIED"] = "Hateful Gaze, 198079, SPELL_AURA_APPLIED, 1710075544.598, SPELL_AURA_APPLIED, false, Vehicle-0-88-1501-0-98949-000027E3F3, Smashspite the Hateful, 68168, 0, Player-88-000083FE, Данкан-legionx5, 1298, 0, 198079, Hateful Gaze, 1, DEBUFF", + ["198079-SPELL_AURA_REMOVED"] = "Hateful Gaze, 198079, SPELL_AURA_REMOVED, 1710075549.62, SPELL_AURA_REMOVED, false, Vehicle-0-88-1501-0-98949-000027E3F3, Smashspite the Hateful, 68168, 0, Player-88-000083FE, Данкан-legionx5, 1298, 0, 198079, Hateful Gaze, 1, DEBUFF", + ["198079-SPELL_CAST_SUCCESS"] = "Hateful Gaze, 198079, SPELL_CAST_SUCCESS, 1710075544.544, SPELL_CAST_SUCCESS, false, Vehicle-0-88-1501-0-98949-000027E3F3, Smashspite the Hateful, 68168, 0, Player-88-000083FE, Данкан-legionx5, 1298, 0, 198079, Hateful Gaze, 1", + ["198079-SPELL_CAST_SUCCESS"] = "Hateful Gaze, 198079, SPELL_CAST_SUCCESS, 1710160366.921, SPELL_CAST_SUCCESS, false, Vehicle-0-67-1501-0-98949-000035D6BC, Smashspite the Hateful, 2632, 0, Player-67-00353A34, Полезайнанож, 1298, 0, 198079, Hateful Gaze, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/198245.txt b/WeakAuras/Projects/RaiderlosSA/out/198245.txt new file mode 100644 index 0000000..f170023 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/198245.txt @@ -0,0 +1,3 @@ + ["198245-SPELL_CAST_START"] = "Brutal Haymaker, 198245, SPELL_CAST_START, 1710075641.24, SPELL_CAST_START, false, Vehicle-0-88-1501-0-98949-000027E3F3, Smashspite the Hateful, 2632, 0, , nil, -2147483648, -2147483648, 198245, Brutal Haymaker, 1", + ["198245-SPELL_CAST_SUCCESS"] = "Brutal Haymaker, 198245, SPELL_CAST_SUCCESS, 1710075644.004, SPELL_CAST_SUCCESS, false, Vehicle-0-88-1501-0-98949-000027E3F3, Smashspite the Hateful, 2632, 0, Player-67-001CE101, Моннами, 1298, 0, 198245, Brutal Haymaker, 1", + ["198245-SPELL_DAMAGE"] = "Brutal Haymaker, 198245, SPELL_DAMAGE, 1710075644.004, SPELL_DAMAGE, false, Vehicle-0-88-1501-0-98949-000027E3F3, Smashspite the Hateful, 2632, 0, Player-67-001CE101, Моннами, 1298, 0, 198245, Brutal Haymaker, 1, 11825364, 9785153, 1, nil, nil, nil, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/198263.txt b/WeakAuras/Projects/RaiderlosSA/out/198263.txt new file mode 100644 index 0000000..aa81095 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/198263.txt @@ -0,0 +1,4 @@ + ["198263-SPELL_CAST_START"] = "Radiant Tempest, 198263, SPELL_CAST_START, 1710340849.342, SPELL_CAST_START, false, Creature-0-67-1477-0-95676-00002BAF9A, Odyn, 2632, 0, , nil, -2147483648, -2147483648, 198263, Radiant Tempest, 2", + ["198263-SPELL_CAST_SUCCESS"] = "Radiant Tempest, 198263, SPELL_CAST_SUCCESS, 1710340856.355, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-95676-00002BAF9A, Odyn, 68168, 0, , nil, -2147483648, -2147483648, 198263, Radiant Tempest, 2", + ["198263-SPELL_CAST_SUCCESS"] = "Radiant Tempest, 198263, SPELL_CAST_SUCCESS, 1709750214.78, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-95676-000044F691, Odyn, 68168, 0, , nil, -2147483648, -2147483648, 198263, Radiant Tempest, 2", + ["198263-SPELL_CAST_START"] = "Radiant Tempest, 198263, SPELL_CAST_START, 1709750207.718, SPELL_CAST_START, false, Creature-0-67-1477-0-95676-000044F691, Odyn, 68168, 0, , nil, -2147483648, -2147483648, 198263, Radiant Tempest, 2", diff --git a/WeakAuras/Projects/RaiderlosSA/out/198405.txt b/WeakAuras/Projects/RaiderlosSA/out/198405.txt new file mode 100644 index 0000000..8484a72 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/198405.txt @@ -0,0 +1,8 @@ + ["198405-SPELL_AURA_REMOVED"] = "Bone Chilling Scream, 198405, SPELL_AURA_REMOVED, 1709839304.426, SPELL_AURA_REMOVED, false, Creature-0-67-1492-0-97097-0000605795, Helarjar Champion, 2632, 0, Player-67-00352CA6, Cjmiles, 1298, 0, 198405, Bone Chilling Scream, 32, DEBUFF", + ["198405-SPELL_AURA_APPLIED"] = "Bone Chilling Scream, 198405, SPELL_AURA_APPLIED, 1709839304.37, SPELL_AURA_APPLIED, false, Creature-0-67-1492-0-97097-0000605795, Helarjar Champion, 2632, 0, Player-67-00352CA6, Cjmiles, 1298, 0, 198405, Bone Chilling Scream, 32, DEBUFF", + ["198405-SPELL_CAST_SUCCESS"] = "Bone Chilling Scream, 198405, SPELL_CAST_SUCCESS, 1709839304.37, SPELL_CAST_SUCCESS, false, Creature-0-67-1492-0-97097-0000605795, Helarjar Champion, 2632, 0, , nil, -2147483648, -2147483648, 198405, Bone Chilling Scream, 32", + ["198405-SPELL_CAST_START"] = "Bone Chilling Scream, 198405, SPELL_CAST_START, 1709839172.26, SPELL_CAST_START, false, Creature-0-67-1492-0-97097-00005FA7E4, Helarjar Champion, 2632, 0, , nil, -2147483648, -2147483648, 198405, Bone Chilling Scream, 32", + ["198405-SPELL_AURA_REMOVED"] = "Bone Chilling Scream, 198405, SPELL_AURA_REMOVED, 1710324637.156, SPELL_AURA_REMOVED, false, Creature-0-67-1492-0-97097-00002DAAA6, Helarjar Champion, 2632, 0, Player-67-00291F84, Krz, 1298, 0, 198405, Bone Chilling Scream, 32, DEBUFF", + ["198405-SPELL_AURA_APPLIED"] = "Bone Chilling Scream, 198405, SPELL_AURA_APPLIED, 1710324636.874, SPELL_AURA_APPLIED, false, Creature-0-67-1492-0-97097-00002DAAA6, Helarjar Champion, 2632, 0, Player-67-003521C2, Bonkleta, 1297, 0, 198405, Bone Chilling Scream, 32, DEBUFF", + ["198405-SPELL_CAST_SUCCESS"] = "Bone Chilling Scream, 198405, SPELL_CAST_SUCCESS, 1710324636.789, SPELL_CAST_SUCCESS, false, Creature-0-67-1492-0-97097-00002DAAA6, Helarjar Champion, 2632, 0, , nil, -2147483648, -2147483648, 198405, Bone Chilling Scream, 32", + ["198405-SPELL_CAST_START"] = "Bone Chilling Scream, 198405, SPELL_CAST_START, 1710320735.206, SPELL_CAST_START, false, Creature-0-67-1492-0-97097-00002911A8, Helarjar Champion, 2632, 0, , nil, -2147483648, -2147483648, 198405, Bone Chilling Scream, 32", diff --git a/WeakAuras/Projects/RaiderlosSA/out/198495.txt b/WeakAuras/Projects/RaiderlosSA/out/198495.txt new file mode 100644 index 0000000..e11f5d7 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/198495.txt @@ -0,0 +1,4 @@ + ["198495-SPELL_DAMAGE"] = "Torrent, 198495, SPELL_DAMAGE, 1709839573.92, SPELL_DAMAGE, false, Creature-0-67-1492-0-96759-00005FA82A, Helya, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 198495, Torrent, 16, 796254, -1, 16, nil, nil, 2374768, false, false, false, false", + ["198495-SPELL_CAST_START"] = "Torrent, 198495, SPELL_CAST_START, 1709839539.049, SPELL_CAST_START, false, Creature-0-67-1492-0-96759-00005FA82A, Helya, 68168, 0, , nil, -2147483648, -2147483648, 198495, Torrent, 16", + ["198495-SPELL_ABSORBED"] = "Torrent, 198495, SPELL_ABSORBED, 1709839573.92, SPELL_ABSORBED, false, Creature-0-67-1492-0-96759-00005FA82A, Helya, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 198495, Torrent, 16, Player-67-002D9DD1, Succpotato, 1297, 0, 108366, Soul Leech, 32, 866348", + ["198495-SPELL_CAST_SUCCESS"] = "Torrent, 198495, SPELL_CAST_SUCCESS, 1709839573.161, SPELL_CAST_SUCCESS, false, Creature-0-67-1492-0-96759-00005FA82A, Helya, 68168, 0, , nil, -2147483648, -2147483648, 198495, Torrent, 16", diff --git a/WeakAuras/Projects/RaiderlosSA/out/198496.txt b/WeakAuras/Projects/RaiderlosSA/out/198496.txt new file mode 100644 index 0000000..cdd68fd --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/198496.txt @@ -0,0 +1,5 @@ + ["198496-SPELL_DAMAGE"] = "Sunder, 198496, SPELL_DAMAGE, 1709812334.124, SPELL_DAMAGE, false, Creature-0-67-1458-0-91004-0000337647, Ularogg Cragshaper, 68168, 0, Player-67-002A36D8, Pakkan, 1298, 0, 198496, Sunder, 8, 1255082, -1, 8, nil, nil, nil, false, false, false, false", + ["198496-SPELL_MISSED"] = "Sunder, 198496, SPELL_MISSED, 1709840805.117, SPELL_MISSED, false, Creature-0-67-1458-0-91004-000061B502, Ularogg Cragshaper, 2632, 0, Player-67-00282563, Fregath, 1298, 0, 198496, Sunder, 8, ABSORB, false, 2632113", + ["198496-SPELL_CAST_START"] = "Sunder, 198496, SPELL_CAST_START, 1709812333.705, SPELL_CAST_START, false, Creature-0-67-1458-0-91004-0000337647, Ularogg Cragshaper, 68168, 0, , nil, -2147483648, -2147483648, 198496, Sunder, 8", + ["198496-SPELL_ABSORBED"] = "Sunder, 198496, SPELL_ABSORBED, 1709840699.646, SPELL_ABSORBED, false, Creature-0-67-1458-0-91004-000061B502, Ularogg Cragshaper, 68168, 0, Player-67-00282563, Fregath, 1298, 0, 198496, Sunder, 8, Player-67-00282563, Fregath, 1298, 0, 209388, Bulwark of Order, 2, 447772", + ["198496-SPELL_CAST_SUCCESS"] = "Sunder, 198496, SPELL_CAST_SUCCESS, 1709812334.124, SPELL_CAST_SUCCESS, false, Creature-0-67-1458-0-91004-0000337647, Ularogg Cragshaper, 68168, 0, Player-67-002A36D8, Pakkan, 1298, 0, 198496, Sunder, 8", diff --git a/WeakAuras/Projects/RaiderlosSA/out/198605.txt b/WeakAuras/Projects/RaiderlosSA/out/198605.txt new file mode 100644 index 0000000..9a5525d --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/198605.txt @@ -0,0 +1,3 @@ + ["198605-SPELL_DAMAGE"] = "Thunderstrike, 198605, SPELL_DAMAGE, 1709898587.588, SPELL_DAMAGE, false, Creature-0-67-1477-0-95842-0000361120, Valarjar Thundercaller, 2632, 0, Player-67-00351FE4, Дусяхентай, 1298, 0, 198605, Thunderstrike, 8, 158444, -1, 8, nil, nil, nil, false, false, false, false", + ["198605-SPELL_MISSED"] = "Thunderstrike, 198605, SPELL_MISSED, 1709898641.55, SPELL_MISSED, false, Creature-0-67-1477-0-95842-000036112E, Valarjar Thundercaller, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 198605, Thunderstrike, 8, ABSORB, false, 250978", + ["198605-SPELL_ABSORBED"] = "Thunderstrike, 198605, SPELL_ABSORBED, 1709898641.529, SPELL_ABSORBED, false, Creature-0-67-1477-0-95842-000036112E, Valarjar Thundercaller, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 198605, Thunderstrike, 8, Player-67-002D9DD1, Succpotato, 1297, 0, 108366, Soul Leech, 32, 250978", diff --git a/WeakAuras/Projects/RaiderlosSA/out/198750.txt b/WeakAuras/Projects/RaiderlosSA/out/198750.txt new file mode 100644 index 0000000..f4a48be --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/198750.txt @@ -0,0 +1,2 @@ + ["198750-SPELL_CAST_START"] = "Surge, 198750, SPELL_CAST_START, 1710340848.391, SPELL_CAST_START, false, Creature-0-67-1477-0-102019-00002C3AF5, Stormforged Obliterator, 2632, 0, , nil, -2147483648, -2147483648, 198750, Surge, 8", + ["198750-SPELL_CAST_START"] = "Surge, 198750, SPELL_CAST_START, 1709750210.793, SPELL_CAST_START, false, Creature-0-67-1477-0-102019-0000459006, Stormforged Obliterator, 2632, 0, , nil, -2147483648, -2147483648, 198750, Surge, 8", diff --git a/WeakAuras/Projects/RaiderlosSA/out/198888.txt b/WeakAuras/Projects/RaiderlosSA/out/198888.txt new file mode 100644 index 0000000..b11b1d1 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/198888.txt @@ -0,0 +1,6 @@ + ["198888-SPELL_CAST_START"] = "Lightning Breath, 198888, SPELL_CAST_START, 1709898585.586, SPELL_CAST_START, false, Vehicle-0-67-1477-0-97068-0000361121, Storm Drake, 2632, 0, , nil, -2147483648, -2147483648, 198888, Lightning Breath, 8", + ["198888-SPELL_DAMAGE"] = "Lightning Breath, 198888, SPELL_DAMAGE, 1710339157.101, SPELL_DAMAGE, false, Vehicle-0-67-1477-0-97068-0000298BC6, Storm Drake, 2632, 0, Player-67-001D862F, Matveyko, 1298, 0, 198888, Lightning Breath, 8, 6402734, -1, 8, nil, nil, nil, false, false, false, false", + ["198888-SPELL_CAST_SUCCESS"] = "Lightning Breath, 198888, SPELL_CAST_SUCCESS, 1709898587.092, SPELL_CAST_SUCCESS, false, Vehicle-0-67-1477-0-97068-0000361121, Storm Drake, 2632, 0, , nil, -2147483648, -2147483648, 198888, Lightning Breath, 8", + ["198888-SPELL_DAMAGE"] = "Lightning Breath, 198888, SPELL_DAMAGE, 1709749063.496, SPELL_DAMAGE, false, Vehicle-0-67-1477-0-97068-000043447C, Storm Drake, 68168, 0, Player-67-002C9240, Wilmarin, 1298, 0, 198888, Lightning Breath, 8, 3062201, -1, 8, nil, nil, 1020733, false, false, false, false", + ["198888-SPELL_CAST_START"] = "Lightning Breath, 198888, SPELL_CAST_START, 1709749061.935, SPELL_CAST_START, false, Vehicle-0-67-1477-0-97068-000043447C, Storm Drake, 68168, 0, , nil, -2147483648, -2147483648, 198888, Lightning Breath, 8", + ["198888-SPELL_CAST_SUCCESS"] = "Lightning Breath, 198888, SPELL_CAST_SUCCESS, 1709749063.496, SPELL_CAST_SUCCESS, false, Vehicle-0-67-1477-0-97068-000043447C, Storm Drake, 68168, 0, , nil, -2147483648, -2147483648, 198888, Lightning Breath, 8", diff --git a/WeakAuras/Projects/RaiderlosSA/out/198934.txt b/WeakAuras/Projects/RaiderlosSA/out/198934.txt new file mode 100644 index 0000000..4f0bc1f --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/198934.txt @@ -0,0 +1,2 @@ + ["198934-SPELL_CAST_SUCCESS"] = "Rune of Healing, 198934, SPELL_CAST_SUCCESS, 1709898635.7, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-95834-00003610EE, Valarjar Mystic, 2632, 0, , nil, -2147483648, -2147483648, 198934, Rune of Healing, 2", + ["198934-SPELL_CAST_START"] = "Rune of Healing, 198934, SPELL_CAST_START, 1709898626.899, SPELL_CAST_START, false, Creature-0-67-1477-0-95834-00003610FC, Valarjar Mystic, 2632, 0, , nil, -2147483648, -2147483648, 198934, Rune of Healing, 2", diff --git a/WeakAuras/Projects/RaiderlosSA/out/199176.txt b/WeakAuras/Projects/RaiderlosSA/out/199176.txt new file mode 100644 index 0000000..6351c97 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/199176.txt @@ -0,0 +1,2 @@ + ["199176-SPELL_CAST_START"] = "Spiked Tongue, 199176, SPELL_CAST_START, 1709841243.02, SPELL_CAST_START, false, Vehicle-0-67-1458-0-91005-000061B52A, Naraxas, 68168, 0, , nil, -2147483648, -2147483648, 199176, Spiked Tongue, 1", + ["199176-SPELL_CAST_SUCCESS"] = "Spiked Tongue, 199176, SPELL_CAST_SUCCESS, 1709841249.036, SPELL_CAST_SUCCESS, false, Vehicle-0-67-1458-0-91005-000061B52A, Naraxas, 68168, 0, , nil, -2147483648, -2147483648, 199176, Spiked Tongue, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/199210.txt b/WeakAuras/Projects/RaiderlosSA/out/199210.txt new file mode 100644 index 0000000..4f08def --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/199210.txt @@ -0,0 +1,4 @@ + ["199210-SPELL_DAMAGE"] = "Penetrating Shot, 199210, SPELL_DAMAGE, 1709898642.054, SPELL_DAMAGE, false, Creature-0-67-1477-0-96640-000036112F, Valarjar Marksman, 2632, 0, Player-88-00061D03, Опля-legionx5, 1298, 0, 199210, Penetrating Shot, 1, 689994, -1, 1, nil, nil, nil, false, false, false, false", + ["199210-SPELL_ABSORBED"] = "Penetrating Shot, 199210, SPELL_ABSORBED, 1709898642.054, SPELL_ABSORBED, false, Creature-0-67-1477-0-96640-000036112F, Valarjar Marksman, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 199210, Penetrating Shot, 1, Player-67-002D9DD1, Succpotato, 1297, 0, 108366, Soul Leech, 32, 318457", + ["199210-SPELL_MISSED"] = "Penetrating Shot, 199210, SPELL_MISSED, 1709898642.054, SPELL_MISSED, false, Creature-0-67-1477-0-96640-000036112F, Valarjar Marksman, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 199210, Penetrating Shot, 1, ABSORB, false, 734826", + ["199210-SPELL_DAMAGE"] = "Penetrating Shot, 199210, SPELL_DAMAGE, 1709749630.47, SPELL_DAMAGE, false, Creature-0-67-1477-0-96640-000043448B, Valarjar Marksman, 2632, 0, Player-67-002C9240, Wilmarin, 1298, 0, 199210, Penetrating Shot, 1, 673388, -1, 1, nil, nil, nil, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/199652.txt b/WeakAuras/Projects/RaiderlosSA/out/199652.txt new file mode 100644 index 0000000..d2549b5 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/199652.txt @@ -0,0 +1,15 @@ + ["199652-SPELL_MISSED"] = "Sever, 199652, SPELL_MISSED, 1710340576.312, SPELL_MISSED, false, Creature-0-67-1477-0-95843-00002BAFB9, King Haldor, 68168, 0, Player-67-001D862F, Matveyko, 1298, 0, 199652, Sever, 1, PARRY, false", + ["199652-SPELL_ABSORBED"] = "Sever, 199652, SPELL_ABSORBED, 1710340624.194, SPELL_ABSORBED, false, Creature-0-67-1477-0-97084-00002BAFE6, King Tor, 2632, 0, Player-67-001D862F, Matveyko, 1298, 0, 199652, Sever, 1, Player-67-001D862F, Matveyko, 1298, 0, 252208, Refractive Shell, 2, 456297", + ["199652-SPELL_CAST_SUCCESS"] = "Sever, 199652, SPELL_CAST_SUCCESS, 1710340576.312, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-95843-00002BAFB9, King Haldor, 68168, 0, Player-67-001D862F, Matveyko, 1298, 0, 199652, Sever, 1", + ["199652-SPELL_CAST_START"] = "Sever, 199652, SPELL_CAST_START, 1710340575.256, SPELL_CAST_START, false, Creature-0-67-1477-0-95843-00002BAFB9, King Haldor, 68168, 0, , nil, -2147483648, -2147483648, 199652, Sever, 1", + ["199652-SPELL_AURA_APPLIED"] = "Sever, 199652, SPELL_AURA_APPLIED, 1710340624.264, SPELL_AURA_APPLIED, false, Creature-0-67-1477-0-97084-00002BAFE6, King Tor, 2632, 0, Player-67-001D862F, Matveyko, 1298, 0, 199652, Sever, 1, DEBUFF", + ["199652-SPELL_AURA_REMOVED"] = "Sever, 199652, SPELL_AURA_REMOVED, 1710340636.291, SPELL_AURA_REMOVED, false, Creature-0-67-1477-0-97084-00002BAFE6, King Tor, 68168, 0, Player-67-001D862F, Matveyko, 1298, 0, 199652, Sever, 1, DEBUFF", + ["199652-SPELL_DAMAGE"] = "Sever, 199652, SPELL_DAMAGE, 1710340624.194, SPELL_DAMAGE, false, Creature-0-67-1477-0-97084-00002BAFE6, King Tor, 2632, 0, Player-67-001D862F, Matveyko, 1298, 0, 199652, Sever, 1, 2505427, -1, 1, nil, nil, 456297, false, false, false, false", + ["199652-SPELL_CAST_START"] = "Sever, 199652, SPELL_CAST_START, 1709749975.956, SPELL_CAST_START, false, Creature-0-67-1477-0-95843-000044F6B1, King Haldor, 68168, 0, , nil, -2147483648, -2147483648, 199652, Sever, 1", + ["199652-SPELL_MISSED"] = "Sever, 199652, SPELL_MISSED, 1709749977, SPELL_MISSED, false, Creature-0-67-1477-0-95843-000044F6B1, King Haldor, 68168, 0, Player-67-002C9240, Wilmarin, 1298, 0, 199652, Sever, 1, DODGE, false", + ["199652-SPELL_ABSORBED"] = "Sever, 199652, SPELL_ABSORBED, 1709750006.879, SPELL_ABSORBED, false, Creature-0-67-1477-0-97084-000044F6DE, King Tor, 68168, 0, Player-67-002C9240, Wilmarin, 1298, 0, 199652, Sever, 1, Player-67-002C9240, Wilmarin, 1298, 0, 252545, Light of Absolarn, 8, 1558945", + ["199652-SPELL_AURA_APPLIED_DOSE"] = "Sever, 199652, SPELL_AURA_APPLIED_DOSE, 1709750017.553, SPELL_AURA_APPLIED_DOSE, false, Creature-0-67-1477-0-97084-000044F6DE, King Tor, 68168, 0, Player-67-002C9240, Wilmarin, 1298, 0, 199652, Sever, 1, DEBUFF, 2", + ["199652-SPELL_CAST_SUCCESS"] = "Sever, 199652, SPELL_CAST_SUCCESS, 1709749977, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-95843-000044F6B1, King Haldor, 68168, 0, Player-67-002C9240, Wilmarin, 1298, 0, 199652, Sever, 1", + ["199652-SPELL_DAMAGE"] = "Sever, 199652, SPELL_DAMAGE, 1709750020.878, SPELL_DAMAGE, false, Creature-0-67-1477-0-97081-000044F6DC, King Bjorn, 2632, 0, Player-67-002C9240, Wilmarin, 1298, 0, 199652, Sever, 1, 1461194, -1, 1, nil, nil, nil, false, false, false, false", + ["199652-SPELL_AURA_APPLIED"] = "Sever, 199652, SPELL_AURA_APPLIED, 1709750006.942, SPELL_AURA_APPLIED, false, Creature-0-67-1477-0-97084-000044F6DE, King Tor, 68168, 0, Player-67-002C9240, Wilmarin, 1298, 0, 199652, Sever, 1, DEBUFF", + ["199652-SPELL_AURA_REMOVED"] = "Sever, 199652, SPELL_AURA_REMOVED, 1709750032.935, SPELL_AURA_REMOVED, false, Creature-0-67-1477-0-97084-000044F6DE, King Tor, 68168, 0, Player-67-002C9240, Wilmarin, 1298, 0, 199652, Sever, 1, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/199674.txt b/WeakAuras/Projects/RaiderlosSA/out/199674.txt new file mode 100644 index 0000000..7cf1967 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/199674.txt @@ -0,0 +1,11 @@ + ["199674-SPELL_CAST_START"] = "Wicked Dagger, 199674, SPELL_CAST_START, 1710340603.738, SPELL_CAST_START, false, Creature-0-67-1477-0-97081-00002BAFE4, King Bjorn, 2632, 0, , nil, -2147483648, -2147483648, 199674, Wicked Dagger, 1", + ["199674-SPELL_CAST_SUCCESS"] = "Wicked Dagger, 199674, SPELL_CAST_SUCCESS, 1710340604.771, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-97081-00002BAFE4, King Bjorn, 2632, 0, Player-67-0034CC49, Иризен, 1298, 0, 199674, Wicked Dagger, 1", + ["199674-SPELL_ABSORBED"] = "Wicked Dagger, 199674, SPELL_ABSORBED, 1710340604.899, SPELL_ABSORBED, false, Creature-0-67-1477-0-97081-00002BAFE4, King Bjorn, 2632, 0, Player-67-0034CC49, Иризен, 1298, 0, 199674, Wicked Dagger, 1, Player-67-0034CC49, Иризен, 1298, 0, 203538, Greater Blessing of Kings, 2, 147677", + ["199674-SPELL_AURA_REMOVED"] = "Wicked Dagger, 199674, SPELL_AURA_REMOVED, 1710340607.987, SPELL_AURA_REMOVED, false, Creature-0-67-1477-0-97081-00002BAFE4, King Bjorn, 2632, 0, Player-67-0034CC49, Иризен, 1298, 0, 199674, Wicked Dagger, 1, DEBUFF", + ["199674-SPELL_AURA_APPLIED"] = "Wicked Dagger, 199674, SPELL_AURA_APPLIED, 1710340604.96, SPELL_AURA_APPLIED, false, Creature-0-67-1477-0-97081-00002BAFE4, King Bjorn, 2632, 0, Player-67-0034CC49, Иризен, 1298, 0, 199674, Wicked Dagger, 1, DEBUFF", + ["199674-SPELL_DAMAGE"] = "Wicked Dagger, 199674, SPELL_DAMAGE, 1710340604.912, SPELL_DAMAGE, false, Creature-0-67-1477-0-97081-00002BAFE4, King Bjorn, 2632, 0, Player-67-0034CC49, Иризен, 1298, 0, 199674, Wicked Dagger, 1, 3616296, -1, 1, nil, nil, 147677, false, false, false, false", + ["199674-SPELL_CAST_SUCCESS"] = "Wicked Dagger, 199674, SPELL_CAST_SUCCESS, 1709750003.951, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-97081-000044F6DC, King Bjorn, 68168, 0, Player-67-0034F511, Intrill, 1298, 0, 199674, Wicked Dagger, 1", + ["199674-SPELL_AURA_REMOVED"] = "Wicked Dagger, 199674, SPELL_AURA_REMOVED, 1709750007.645, SPELL_AURA_REMOVED, false, Creature-0-67-1477-0-97081-000044F6DC, King Bjorn, 2632, 0, Player-67-0034F511, Intrill, 1298, 0, 199674, Wicked Dagger, 1, DEBUFF", + ["199674-SPELL_AURA_APPLIED"] = "Wicked Dagger, 199674, SPELL_AURA_APPLIED, 1709750004.636, SPELL_AURA_APPLIED, false, Creature-0-67-1477-0-97081-000044F6DC, King Bjorn, 68168, 0, Player-67-0034F511, Intrill, 1298, 0, 199674, Wicked Dagger, 1, DEBUFF", + ["199674-SPELL_CAST_START"] = "Wicked Dagger, 199674, SPELL_CAST_START, 1709750002.957, SPELL_CAST_START, false, Creature-0-67-1477-0-97081-000044F6DC, King Bjorn, 68168, 0, , nil, -2147483648, -2147483648, 199674, Wicked Dagger, 1", + ["199674-SPELL_DAMAGE"] = "Wicked Dagger, 199674, SPELL_DAMAGE, 1709750004.582, SPELL_DAMAGE, false, Creature-0-67-1477-0-97081-000044F6DC, King Bjorn, 68168, 0, Player-67-0034F511, Intrill, 1298, 0, 199674, Wicked Dagger, 1, 2011766, -1, 1, nil, nil, nil, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/199726.txt b/WeakAuras/Projects/RaiderlosSA/out/199726.txt new file mode 100644 index 0000000..b69ecdd --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/199726.txt @@ -0,0 +1,7 @@ + ["199726-SPELL_CAST_START"] = "Unruly Yell, 199726, SPELL_CAST_START, 1710340526.688, SPELL_CAST_START, false, Creature-0-67-1477-0-97083-00002BAFE5, King Ranulf, 68168, 0, , nil, -2147483648, -2147483648, 199726, Unruly Yell, 1", + ["199726-SPELL_DAMAGE"] = "Unruly Yell, 199726, SPELL_DAMAGE, 1709750014.697, SPELL_DAMAGE, false, Creature-0-67-1477-0-97084-000044F6DE, King Tor, 68168, 0, Player-67-002CCCC4, Jistx, 1298, 0, 199726, Unruly Yell, 1, 654589, -1, 1, nil, nil, 1196253, false, false, false, false", + ["199726-SPELL_MISSED"] = "Unruly Yell, 199726, SPELL_MISSED, 1709750014.697, SPELL_MISSED, false, Creature-0-67-1477-0-97084-000044F6DE, King Tor, 68168, 0, Player-67-002C9240, Wilmarin, 1298, 0, 199726, Unruly Yell, 1, ABSORB, false, 1046884", + ["199726-SPELL_ABSORBED"] = "Unruly Yell, 199726, SPELL_ABSORBED, 1709750014.672, SPELL_ABSORBED, false, Creature-0-67-1477-0-97084-000044F6DE, King Tor, 68168, 0, Player-67-002CCCC4, Jistx, 1298, 0, 199726, Unruly Yell, 1, Player-67-002CCCC4, Jistx, 1298, 0, 108366, Soul Leech, 32, 1196253", + ["199726-SPELL_CAST_START"] = "Unruly Yell, 199726, SPELL_CAST_START, 1709749952.07, SPELL_CAST_START, false, Creature-0-67-1477-0-97083-000044F6DD, King Ranulf, 2632, 0, , nil, -2147483648, -2147483648, 199726, Unruly Yell, 1", + ["199726-SPELL_INTERRUPT"] = "Unruly Yell, 199726, SPELL_INTERRUPT, 1709750014.697, SPELL_INTERRUPT, false, Creature-0-67-1477-0-97084-000044F6DE, King Tor, 68168, 0, Player-67-002CCCC4, Jistx, 1298, 0, 199726, Unruly Yell, 1, 198590, Drain Soul, 32", + ["199726-SPELL_CAST_SUCCESS"] = "Unruly Yell, 199726, SPELL_CAST_SUCCESS, 1709750014.697, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-97084-000044F6DE, King Tor, 68168, 0, , nil, -2147483648, -2147483648, 199726, Unruly Yell, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/199917.txt b/WeakAuras/Projects/RaiderlosSA/out/199917.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/200040.txt b/WeakAuras/Projects/RaiderlosSA/out/200040.txt new file mode 100644 index 0000000..f3111fd --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/200040.txt @@ -0,0 +1,5 @@ + ["200040-SPELL_AURA_REMOVED"] = "Nether Venom, 200040, SPELL_AURA_REMOVED, 1709801648.373, SPELL_AURA_REMOVED, true, , nil, 1297, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 200040, Nether Venom, 64, DEBUFF", + ["200040-SPELL_ABSORBED"] = "Nether Venom, 200040, SPELL_ABSORBED, 1709801644.58, SPELL_ABSORBED, true, , nil, 1297, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 200040, Nether Venom, 64, Player-67-002D9DD1, Succpotato, 1297, 0, 252208, Refractive Shell, 2, 313402", + ["200040-SPELL_PERIODIC_DAMAGE"] = "Nether Venom, 200040, SPELL_PERIODIC_DAMAGE, 1709801646.461, SPELL_PERIODIC_DAMAGE, true, , nil, 1298, 0, Player-67-0035205B, Laewiä, 1298, 0, 200040, Nether Venom, 64, 308297, 0, 64, nil, nil, nil, false, false, false, false", + ["200040-SPELL_AURA_APPLIED"] = "Nether Venom, 200040, SPELL_AURA_APPLIED, 1709801644.58, SPELL_AURA_APPLIED, true, , nil, 1297, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 200040, Nether Venom, 64, DEBUFF", + ["200040-SPELL_PERIODIC_MISSED"] = "Nether Venom, 200040, SPELL_PERIODIC_MISSED, 1709801644.58, SPELL_PERIODIC_MISSED, true, , nil, 1297, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 200040, Nether Venom, 64, ABSORB, false, 324611", diff --git a/WeakAuras/Projects/RaiderlosSA/out/200105.txt b/WeakAuras/Projects/RaiderlosSA/out/200105.txt new file mode 100644 index 0000000..2995012 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/200105.txt @@ -0,0 +1,4 @@ + ["200105-SPELL_AURA_APPLIED"] = "Sacrifice Soul, 200105, SPELL_AURA_APPLIED, 1710337317.052, SPELL_AURA_APPLIED, false, Creature-0-67-1501-0-98368-000026BA6F, Ghostly Protector, 2632, 0, Creature-0-67-1501-0-98368-000026BA6F, Ghostly Protector, 2632, 0, 200105, Sacrifice Soul, 32, BUFF", + ["200105-SPELL_AURA_REMOVED"] = "Sacrifice Soul, 200105, SPELL_AURA_REMOVED, 1710337319.245, SPELL_AURA_REMOVED, false, Creature-0-67-1501-0-98368-000026BA6F, Ghostly Protector, 2632, 0, Creature-0-67-1501-0-98368-000026BA6F, Ghostly Protector, 2632, 0, 200105, Sacrifice Soul, 32, BUFF", + ["200105-SPELL_CAST_START"] = "Sacrifice Soul, 200105, SPELL_CAST_START, 1710337315.535, SPELL_CAST_START, false, Creature-0-67-1501-0-98368-000026BA6F, Ghostly Protector, 2632, 0, , nil, -2147483648, -2147483648, 200105, Sacrifice Soul, 32", + ["200105-SPELL_CAST_SUCCESS"] = "Sacrifice Soul, 200105, SPELL_CAST_SUCCESS, 1710337317.052, SPELL_CAST_SUCCESS, false, Creature-0-67-1501-0-98368-000026BA6F, Ghostly Protector, 2632, 0, , nil, -2147483648, -2147483648, 200105, Sacrifice Soul, 32", diff --git a/WeakAuras/Projects/RaiderlosSA/out/200227.txt b/WeakAuras/Projects/RaiderlosSA/out/200227.txt new file mode 100644 index 0000000..9c50c5f --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/200227.txt @@ -0,0 +1,2 @@ + ["200227-SPELL_CAST_START"] = "Tangled Web, 200227, SPELL_CAST_START, 1709917521.423, SPELL_CAST_START, false, Creature-0-67-1516-0-98207-000050EF5D, Nal'tira, 68168, 0, , nil, -2147483648, -2147483648, 200227, Tangled Web, 64", + ["200227-SPELL_CAST_SUCCESS"] = "Tangled Web, 200227, SPELL_CAST_SUCCESS, 1709917522.944, SPELL_CAST_SUCCESS, false, Creature-0-67-1516-0-98207-000050EF5D, Nal'tira, 68168, 0, , nil, -2147483648, -2147483648, 200227, Tangled Web, 64", diff --git a/WeakAuras/Projects/RaiderlosSA/out/200238.txt b/WeakAuras/Projects/RaiderlosSA/out/200238.txt new file mode 100644 index 0000000..5ede615 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/200238.txt @@ -0,0 +1,7 @@ + ["200238-SPELL_CAST_SUCCESS"] = "Feed on the Weak, 200238, SPELL_CAST_SUCCESS, 1709815495.471, SPELL_CAST_SUCCESS, false, Creature-0-67-1466-0-99192-0000377644, Shade of Xavius, 68168, 0, Player-67-003003AA, Roxytwo, 1298, 0, 200238, Feed on the Weak, 32", + ["200238-SPELL_PERIODIC_DAMAGE"] = "Feed on the Weak, 200238, SPELL_PERIODIC_DAMAGE, 1709815497.471, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1466-0-99192-0000377644, Shade of Xavius, 68168, 0, Player-67-003003AA, Roxytwo, 1298, 128, 200238, Feed on the Weak, 32, 1238013, 0, 32, nil, nil, 1046966, false, false, false, false", + ["200238-SPELL_ABSORBED"] = "Feed on the Weak, 200238, SPELL_ABSORBED, 1709815496.514, SPELL_ABSORBED, false, Creature-0-67-1466-0-99192-0000377644, Shade of Xavius, 68168, 0, Player-67-003003AA, Roxytwo, 1298, 128, 200238, Feed on the Weak, 32, Player-67-003003AA, Roxytwo, 1298, 128, 108366, Soul Leech, 32, 1104390", + ["200238-SPELL_AURA_REMOVED"] = "Feed on the Weak, 200238, SPELL_AURA_REMOVED, 1709815500.522, SPELL_AURA_REMOVED, false, Creature-0-67-1466-0-99192-0000377644, Shade of Xavius, 68168, 0, Player-67-003003AA, Roxytwo, 1298, 128, 200238, Feed on the Weak, 32, DEBUFF", + ["200238-SPELL_MISSED"] = "Feed on the Weak, 200238, SPELL_MISSED, 1710354847.762, SPELL_MISSED, false, Creature-0-7-1466-0-99192-0000248D2B, Shade of Xavius, 68168, 0, Player-7-00116879, Элнела-epicx1, 1298, 0, 200238, Feed on the Weak, 32, IMMUNE, false", + ["200238-SPELL_AURA_APPLIED"] = "Feed on the Weak, 200238, SPELL_AURA_APPLIED, 1709815495.537, SPELL_AURA_APPLIED, false, Creature-0-67-1466-0-99192-0000377644, Shade of Xavius, 68168, 0, Player-67-003003AA, Roxytwo, 1298, 0, 200238, Feed on the Weak, 32, DEBUFF", + ["200238-SPELL_PERIODIC_MISSED"] = "Feed on the Weak, 200238, SPELL_PERIODIC_MISSED, 1709815496.514, SPELL_PERIODIC_MISSED, false, Creature-0-67-1466-0-99192-0000377644, Shade of Xavius, 68168, 0, Player-67-003003AA, Roxytwo, 1298, 128, 200238, Feed on the Weak, 32, ABSORB, false, 2284979", diff --git a/WeakAuras/Projects/RaiderlosSA/out/200248.txt b/WeakAuras/Projects/RaiderlosSA/out/200248.txt new file mode 100644 index 0000000..1b49ea7 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/200248.txt @@ -0,0 +1,8 @@ + ["200248-SPELL_CAST_START"] = "Arcane Blitz, 200248, SPELL_CAST_START, 1710074766.727, SPELL_CAST_START, false, Creature-0-88-1501-0-98280-000027E360, Risen Arcanist, 2632, 0, , nil, -2147483648, -2147483648, 200248, Arcane Blitz, 64", + ["200248-SPELL_CAST_SUCCESS"] = "Arcane Blitz, 200248, SPELL_CAST_SUCCESS, 1710074770.201, SPELL_CAST_SUCCESS, false, Creature-0-88-1501-0-98280-000027E360, Risen Arcanist, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 200248, Arcane Blitz, 64", + ["200248-SPELL_AURA_REMOVED"] = "Arcane Blitz, 200248, SPELL_AURA_REMOVED, 1710074780.338, SPELL_AURA_REMOVED, false, Creature-0-88-1501-0-98280-000027E360, Risen Arcanist, 2632, 0, Creature-0-88-1501-0-98280-000027E360, Risen Arcanist, 2632, 0, 200248, Arcane Blitz, 64, BUFF", + ["200248-SPELL_MISSED"] = "Arcane Blitz, 200248, SPELL_MISSED, 1710074844.4, SPELL_MISSED, false, Creature-0-88-1501-0-98280-000027E351, Risen Arcanist, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 200248, Arcane Blitz, 64, ABSORB, false, 2256366", + ["200248-SPELL_AURA_APPLIED_DOSE"] = "Arcane Blitz, 200248, SPELL_AURA_APPLIED_DOSE, 1710074860.241, SPELL_AURA_APPLIED_DOSE, false, Creature-0-88-1501-0-98280-000027E351, Risen Arcanist, 68168, 0, Creature-0-88-1501-0-98280-000027E351, Risen Arcanist, 68168, 0, 200248, Arcane Blitz, 64, BUFF, 2", + ["200248-SPELL_AURA_APPLIED"] = "Arcane Blitz, 200248, SPELL_AURA_APPLIED, 1710074770.286, SPELL_AURA_APPLIED, false, Creature-0-88-1501-0-98280-000027E360, Risen Arcanist, 2632, 0, Creature-0-88-1501-0-98280-000027E360, Risen Arcanist, 2632, 0, 200248, Arcane Blitz, 64, BUFF", + ["200248-SPELL_ABSORBED"] = "Arcane Blitz, 200248, SPELL_ABSORBED, 1710074770.968, SPELL_ABSORBED, false, Creature-0-88-1501-0-98280-000027E360, Risen Arcanist, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 200248, Arcane Blitz, 64, Player-67-002D9DD1, Succpotato, 1297, 0, 108366, Soul Leech, 32, 421597", + ["200248-SPELL_DAMAGE"] = "Arcane Blitz, 200248, SPELL_DAMAGE, 1710074770.968, SPELL_DAMAGE, false, Creature-0-88-1501-0-98280-000027E360, Risen Arcanist, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 200248, Arcane Blitz, 64, 29269, -1, 64, nil, nil, 2119265, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/200261.txt b/WeakAuras/Projects/RaiderlosSA/out/200261.txt new file mode 100644 index 0000000..326d402 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/200261.txt @@ -0,0 +1,7 @@ + ["200261-SPELL_CAST_SUCCESS"] = "Bonebreaking Strike, 200261, SPELL_CAST_SUCCESS, 1710074692.136, SPELL_CAST_SUCCESS, false, Creature-0-88-1501-0-98243-000027E3AC, Soul-Torn Champion, 2632, 0, , nil, -2147483648, -2147483648, 200261, Bonebreaking Strike, 1", + ["200261-SPELL_ABSORBED"] = "Bonebreaking Strike, 200261, SPELL_ABSORBED, 1710074817.809, SPELL_ABSORBED, false, Creature-0-88-1501-0-98243-000027E3AC, Soul-Torn Champion, 2632, 0, Player-67-0033B422, Фрипал, 1298, 0, 200261, Bonebreaking Strike, 1, Player-67-0033B422, Фрипал, 1298, 0, 209388, Bulwark of Order, 2, 149794", + ["200261-SPELL_AURA_REMOVED"] = "Bonebreaking Strike, 200261, SPELL_AURA_REMOVED, 1710074819.095, SPELL_AURA_REMOVED, false, Creature-0-88-1501-0-98243-000027E3AC, Soul-Torn Champion, 2632, 0, Player-67-0033B422, Фрипал, 1298, 0, 200261, Bonebreaking Strike, 1, DEBUFF", + ["200261-SPELL_CAST_START"] = "Bonebreaking Strike, 200261, SPELL_CAST_START, 1710074689.135, SPELL_CAST_START, false, Creature-0-88-1501-0-98243-000027E3AC, Soul-Torn Champion, 2632, 0, , nil, -2147483648, -2147483648, 200261, Bonebreaking Strike, 1", + ["200261-SPELL_AURA_APPLIED"] = "Bonebreaking Strike, 200261, SPELL_AURA_APPLIED, 1710074817.867, SPELL_AURA_APPLIED, false, Creature-0-88-1501-0-98243-000027E3AC, Soul-Torn Champion, 2632, 0, Player-67-0033B422, Фрипал, 1298, 0, 200261, Bonebreaking Strike, 1, DEBUFF", + ["200261-SPELL_DAMAGE"] = "Bonebreaking Strike, 200261, SPELL_DAMAGE, 1710074861.627, SPELL_DAMAGE, false, Creature-0-88-1501-0-98243-000027E3AC, Soul-Torn Champion, 2632, 0, Player-67-0033B422, Фрипал, 1298, 0, 200261, Bonebreaking Strike, 1, 68546, -1, 1, nil, nil, nil, false, false, false, false", + ["200261-SPELL_MISSED"] = "Bonebreaking Strike, 200261, SPELL_MISSED, 1710074817.825, SPELL_MISSED, false, Creature-0-88-1501-0-98243-000027E3AC, Soul-Torn Champion, 2632, 0, Player-67-0033B422, Фрипал, 1298, 0, 200261, Bonebreaking Strike, 1, ABSORB, false, 149794", diff --git a/WeakAuras/Projects/RaiderlosSA/out/200291.txt b/WeakAuras/Projects/RaiderlosSA/out/200291.txt new file mode 100644 index 0000000..c4664de --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/200291.txt @@ -0,0 +1,4 @@ + ["200291-SPELL_CAST_SUCCESS"] = "Knife Dance, 200291, SPELL_CAST_SUCCESS, 1710074697.611, SPELL_CAST_SUCCESS, false, Creature-0-88-1501-0-98691-000027E3AD, Risen Scout, 2632, 0, , nil, -2147483648, -2147483648, 200291, Knife Dance, 1", + ["200291-SPELL_AURA_APPLIED"] = "Knife Dance, 200291, SPELL_AURA_APPLIED, 1710074697.611, SPELL_AURA_APPLIED, false, Creature-0-88-1501-0-98691-000027E3AD, Risen Scout, 2632, 0, Creature-0-88-1501-0-98691-000027E3AD, Risen Scout, 2632, 0, 200291, Knife Dance, 1, BUFF", + ["200291-SPELL_CAST_START"] = "Knife Dance, 200291, SPELL_CAST_START, 1710074695.585, SPELL_CAST_START, false, Creature-0-88-1501-0-98691-000027E3AD, Risen Scout, 2632, 0, , nil, -2147483648, -2147483648, 200291, Knife Dance, 1", + ["200291-SPELL_AURA_REMOVED"] = "Knife Dance, 200291, SPELL_AURA_REMOVED, 1710074702.632, SPELL_AURA_REMOVED, false, Creature-0-88-1501-0-98691-000027E3AD, Risen Scout, 68168, 0, Creature-0-88-1501-0-98691-000027E3AD, Risen Scout, 68168, 0, 200291, Knife Dance, 1, BUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/200345.txt b/WeakAuras/Projects/RaiderlosSA/out/200345.txt new file mode 100644 index 0000000..0bcd277 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/200345.txt @@ -0,0 +1,2 @@ + ["200345-SPELL_AURA_REMOVED"] = "Arrow Barrage, 200345, SPELL_AURA_REMOVED, 1710074792.396, SPELL_AURA_REMOVED, false, Creature-0-88-1501-0-98275-000027E36A, Risen Archer, 2632, 0, Creature-0-88-1501-0-98275-000027E36A, Risen Archer, 2632, 0, 200345, Arrow Barrage, 1, BUFF", + ["200345-SPELL_AURA_APPLIED"] = "Arrow Barrage, 200345, SPELL_AURA_APPLIED, 1710074787.371, SPELL_AURA_APPLIED, false, Creature-0-88-1501-0-98275-000027E36A, Risen Archer, 2632, 0, Creature-0-88-1501-0-98275-000027E36A, Risen Archer, 2632, 0, 200345, Arrow Barrage, 1, BUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/200580.txt b/WeakAuras/Projects/RaiderlosSA/out/200580.txt new file mode 100644 index 0000000..0df2e8e --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/200580.txt @@ -0,0 +1,8 @@ + ["200580-SPELL_AURA_APPLIED_DOSE"] = "Maddening Roar, 200580, SPELL_AURA_APPLIED_DOSE, 1710353940.678, SPELL_AURA_APPLIED_DOSE, false, Creature-0-7-1466-0-95779-0000244D41, Festerhide Grizzly, 2632, 0, Player-7-00116879, Элнела-epicx1, 1298, 0, 200580, Maddening Roar, 32, DEBUFF, 2", + ["200580-SPELL_MISSED"] = "Maddening Roar, 200580, SPELL_MISSED, 1710353937.075, SPELL_MISSED, false, Creature-0-7-1466-0-95779-0000244D41, Festerhide Grizzly, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 200580, Maddening Roar, 32, ABSORB, false, 1951377", + ["200580-SPELL_CAST_SUCCESS"] = "Maddening Roar, 200580, SPELL_CAST_SUCCESS, 1709814699.053, SPELL_CAST_SUCCESS, false, Creature-0-67-1466-0-95779-0000371342, Festerhide Grizzly, 2632, 0, , nil, -2147483648, -2147483648, 200580, Maddening Roar, 32", + ["200580-SPELL_AURA_REMOVED"] = "Maddening Roar, 200580, SPELL_AURA_REMOVED, 1709814706.089, SPELL_AURA_REMOVED, false, Creature-0-67-1466-0-95779-0000371342, Festerhide Grizzly, 2632, 0, Player-67-002C9B2F, Pakmann, 1298, 0, 200580, Maddening Roar, 32, DEBUFF", + ["200580-SPELL_ABSORBED"] = "Maddening Roar, 200580, SPELL_ABSORBED, 1710353937.075, SPELL_ABSORBED, false, Creature-0-7-1466-0-95779-0000244D41, Festerhide Grizzly, 2632, 0, Player-7-00116879, Элнела-epicx1, 1298, 0, 200580, Maddening Roar, 32, Player-7-00116879, Элнела-epicx1, 1298, 0, 207472, Xavaric's Magnum Opus, 1, 1580991", + ["200580-SPELL_AURA_APPLIED"] = "Maddening Roar, 200580, SPELL_AURA_APPLIED, 1709814699.162, SPELL_AURA_APPLIED, false, Creature-0-67-1466-0-95779-0000371342, Festerhide Grizzly, 2632, 0, Player-67-002C9B2F, Pakmann, 1298, 0, 200580, Maddening Roar, 32, DEBUFF", + ["200580-SPELL_CAST_START"] = "Maddening Roar, 200580, SPELL_CAST_START, 1709814638.257, SPELL_CAST_START, false, Creature-0-67-1466-0-95779-0000371391, Festerhide Grizzly, 68168, 0, , nil, -2147483648, -2147483648, 200580, Maddening Roar, 32", + ["200580-SPELL_DAMAGE"] = "Maddening Roar, 200580, SPELL_DAMAGE, 1709814699.053, SPELL_DAMAGE, false, Creature-0-67-1466-0-95779-0000371342, Festerhide Grizzly, 2632, 0, Player-67-002C9B2F, Pakmann, 1298, 0, 200580, Maddening Roar, 32, 969512, -1, 32, nil, nil, nil, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/200631.txt b/WeakAuras/Projects/RaiderlosSA/out/200631.txt new file mode 100644 index 0000000..abae426 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/200631.txt @@ -0,0 +1,12 @@ + ["200631-SPELL_CAST_SUCCESS"] = "Unnerving Screech, 200631, SPELL_CAST_SUCCESS, 1709814569.652, SPELL_CAST_SUCCESS, false, Creature-0-67-1466-0-95769-0000370019, Mindshattered Screecher, 2632, 0, Player-67-002C9B2F, Pakmann, 1298, 0, 200631, Unnerving Screech, 1", + ["200631-SPELL_DAMAGE"] = "Unnerving Screech, 200631, SPELL_DAMAGE, 1709814570.007, SPELL_DAMAGE, false, Creature-0-67-1466-0-95769-0000370019, Mindshattered Screecher, 2632, 0, Player-67-002C9B2F, Pakmann, 1298, 0, 200631, Unnerving Screech, 1, 281761, -1, 1, nil, nil, nil, false, false, false, false", + ["200631-SPELL_AURA_REMOVED"] = "Unnerving Screech, 200631, SPELL_AURA_REMOVED, 1709814570.706, SPELL_AURA_REMOVED, false, Creature-0-67-1466-0-95769-0000370019, Mindshattered Screecher, 2632, 0, Player-67-002C9B2F, Pakmann, 1298, 0, 200631, Unnerving Screech, 1, DEBUFF", + ["200631-SPELL_ABSORBED"] = "Unnerving Screech, 200631, SPELL_ABSORBED, 1709982572.461, SPELL_ABSORBED, false, Creature-0-67-1466-0-95769-0000349D2A, Mindshattered Screecher, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 200631, Unnerving Screech, 1, Player-67-002D9DD1, Succpotato, 1297, 0, 108366, Soul Leech, 32, 151948", + ["200631-SPELL_AURA_APPLIED"] = "Unnerving Screech, 200631, SPELL_AURA_APPLIED, 1709814570.074, SPELL_AURA_APPLIED, false, Creature-0-67-1466-0-95769-0000370019, Mindshattered Screecher, 2632, 0, Player-67-002C9B2F, Pakmann, 1298, 0, 200631, Unnerving Screech, 1, DEBUFF", + ["200631-SPELL_MISSED"] = "Unnerving Screech, 200631, SPELL_MISSED, 1709982572.474, SPELL_MISSED, false, Creature-0-67-1466-0-95769-0000349D2A, Mindshattered Screecher, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 200631, Unnerving Screech, 1, ABSORB, false, 484765", + ["200631-SPELL_CAST_SUCCESS"] = "Unnerving Screech, 200631, SPELL_CAST_SUCCESS, 1710321702.322, SPELL_CAST_SUCCESS, false, Creature-0-67-1466-0-95769-00002A35CC, Mindshattered Screecher, 2632, 0, Player-67-002D9DD1, Succpotato, 1298, 0, 200631, Unnerving Screech, 1", + ["200631-SPELL_DAMAGE"] = "Unnerving Screech, 200631, SPELL_DAMAGE, 1710321702.656, SPELL_DAMAGE, false, Creature-0-67-1466-0-95769-00002A35CC, Mindshattered Screecher, 2632, 0, Player-67-002D9DD1, Succpotato, 1298, 0, 200631, Unnerving Screech, 1, 262029, -1, 1, nil, nil, 442245, false, false, false, false", + ["200631-SPELL_AURA_REMOVED"] = "Unnerving Screech, 200631, SPELL_AURA_REMOVED, 1710321702.656, SPELL_AURA_REMOVED, false, Creature-0-67-1466-0-95769-00002A35CF, Mindshattered Screecher, 2632, 0, Player-67-002D9DD1, Succpotato, 1298, 0, 200631, Unnerving Screech, 1, DEBUFF", + ["200631-SPELL_AURA_APPLIED"] = "Unnerving Screech, 200631, SPELL_AURA_APPLIED, 1710321701.489, SPELL_AURA_APPLIED, false, Creature-0-67-1466-0-95769-00002A35CF, Mindshattered Screecher, 2632, 0, Player-67-002D9DD1, Succpotato, 1298, 0, 200631, Unnerving Screech, 1, DEBUFF", + ["200631-SPELL_ABSORBED"] = "Unnerving Screech, 200631, SPELL_ABSORBED, 1710321701.456, SPELL_ABSORBED, false, Creature-0-67-1466-0-95769-00002A35CF, Mindshattered Screecher, 2632, 0, Player-67-002D9DD1, Succpotato, 1298, 0, 200631, Unnerving Screech, 1, Player-67-002D9DD1, Succpotato, 1298, 0, 108366, Soul Leech, 32, 57194", + ["200631-SPELL_MISSED"] = "Unnerving Screech, 200631, SPELL_MISSED, 1710321701.422, SPELL_MISSED, false, Creature-0-67-1466-0-95769-00002A35CF, Mindshattered Screecher, 2632, 0, Player-67-002D9DD1, Succpotato, 1298, 0, 200631, Unnerving Screech, 1, ABSORB, false, 728742", diff --git a/WeakAuras/Projects/RaiderlosSA/out/200700.txt b/WeakAuras/Projects/RaiderlosSA/out/200700.txt new file mode 100644 index 0000000..2f2dd84 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/200700.txt @@ -0,0 +1,2 @@ + ["200700-SPELL_CAST_START"] = "Landslide, 200700, SPELL_CAST_START, 1709812700.242, SPELL_CAST_START, false, Creature-0-67-1458-0-91007-0000337630, Dargrul, 68168, 0, , nil, -2147483648, -2147483648, 200700, Landslide, 8", + ["200700-SPELL_CAST_SUCCESS"] = "Landslide, 200700, SPELL_CAST_SUCCESS, 1709812701.519, SPELL_CAST_SUCCESS, false, Creature-0-67-1458-0-91007-0000337630, Dargrul, 68168, 0, Player-67-002A36D8, Pakkan, 1298, 0, 200700, Landslide, 8", diff --git a/WeakAuras/Projects/RaiderlosSA/out/200732.txt b/WeakAuras/Projects/RaiderlosSA/out/200732.txt new file mode 100644 index 0000000..06e03fa --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/200732.txt @@ -0,0 +1,5 @@ + ["200732-SPELL_ABSORBED"] = "Molten Crash, 200732, SPELL_ABSORBED, 1709841552.572, SPELL_ABSORBED, false, Creature-0-67-1458-0-91007-000061B4EB, Dargrul, 68168, 0, Player-67-00282563, Fregath, 1298, 0, 200732, Molten Crash, 8, Player-67-00282563, Fregath, 1298, 0, 209388, Bulwark of Order, 2, 1604565", + ["200732-SPELL_CAST_SUCCESS"] = "Molten Crash, 200732, SPELL_CAST_SUCCESS, 1709812705.535, SPELL_CAST_SUCCESS, false, Creature-0-67-1458-0-91007-0000337630, Dargrul, 68168, 0, Player-67-002A36D8, Pakkan, 1298, 0, 200732, Molten Crash, 8", + ["200732-SPELL_MISSED"] = "Molten Crash, 200732, SPELL_MISSED, 1709841552.572, SPELL_MISSED, false, Creature-0-67-1458-0-91007-000061B4EB, Dargrul, 68168, 0, Player-67-00282563, Fregath, 1298, 0, 200732, Molten Crash, 8, ABSORB, false, 1604565", + ["200732-SPELL_CAST_START"] = "Molten Crash, 200732, SPELL_CAST_START, 1709812703.485, SPELL_CAST_START, false, Creature-0-67-1458-0-91007-0000337630, Dargrul, 68168, 0, , nil, -2147483648, -2147483648, 200732, Molten Crash, 8", + ["200732-SPELL_DAMAGE"] = "Molten Crash, 200732, SPELL_DAMAGE, 1709812705.535, SPELL_DAMAGE, false, Creature-0-67-1458-0-91007-0000337630, Dargrul, 68168, 0, Player-67-002A36D8, Pakkan, 1298, 0, 200732, Molten Crash, 8, 2395578, -1, 8, nil, nil, nil, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/200898.txt b/WeakAuras/Projects/RaiderlosSA/out/200898.txt new file mode 100644 index 0000000..794b8f3 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/200898.txt @@ -0,0 +1,2 @@ + ["200898-SPELL_CAST_START"] = "Teleport, 200898, SPELL_CAST_START, 1709803002.318, SPELL_CAST_START, false, Creature-0-67-1493-0-96015-00002941F2, Inquisitor Tormentorum, 68168, 0, , nil, -2147483648, -2147483648, 200898, Teleport, 1", + ["200898-SPELL_CAST_SUCCESS"] = "Teleport, 200898, SPELL_CAST_SUCCESS, 1709803003.349, SPELL_CAST_SUCCESS, false, Creature-0-67-1493-0-96015-00002941F2, Inquisitor Tormentorum, 68168, 0, , nil, -2147483648, -2147483648, 200898, Teleport, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/201139.txt b/WeakAuras/Projects/RaiderlosSA/out/201139.txt new file mode 100644 index 0000000..44368df --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/201139.txt @@ -0,0 +1,4 @@ + ["201139-SPELL_AURA_APPLIED"] = "Brutal Assault, 201139, SPELL_AURA_APPLIED, 1710075235.102, SPELL_AURA_APPLIED, false, Creature-0-88-1501-0-98810-000027E375, Wrathguard Bladelord, 2632, 0, Creature-0-88-1501-0-98810-000027E375, Wrathguard Bladelord, 2632, 0, 201139, Brutal Assault, 1, BUFF", + ["201139-SPELL_AURA_REMOVED"] = "Brutal Assault, 201139, SPELL_AURA_REMOVED, 1710075237.1, SPELL_AURA_REMOVED, false, Creature-0-88-1501-0-98810-000027E375, Wrathguard Bladelord, 2632, 0, Creature-0-88-1501-0-98810-000027E375, Wrathguard Bladelord, 2632, 0, 201139, Brutal Assault, 1, BUFF", + ["201139-SPELL_CAST_START"] = "Brutal Assault, 201139, SPELL_CAST_START, 1710075233.604, SPELL_CAST_START, false, Creature-0-88-1501-0-98810-000027E375, Wrathguard Bladelord, 2632, 0, , nil, -2147483648, -2147483648, 201139, Brutal Assault, 1", + ["201139-SPELL_CAST_SUCCESS"] = "Brutal Assault, 201139, SPELL_CAST_SUCCESS, 1710075235.102, SPELL_CAST_SUCCESS, false, Creature-0-88-1501-0-98810-000027E375, Wrathguard Bladelord, 2632, 0, , nil, -2147483648, -2147483648, 201139, Brutal Assault, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/201400.txt b/WeakAuras/Projects/RaiderlosSA/out/201400.txt new file mode 100644 index 0000000..1b76a9b --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/201400.txt @@ -0,0 +1 @@ + ["201400-SPELL_DAMAGE"] = "Dread Inferno, 201400, SPELL_DAMAGE, 1709815459.564, SPELL_DAMAGE, false, Creature-0-67-1466-0-100527-0000377673, Dreadfire Imp, 2632, 0, Player-67-002C9B2F, Pakmann, 1298, 0, 201400, Dread Inferno, 4, 1463672, -1, 4, nil, nil, nil, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/202098.txt b/WeakAuras/Projects/RaiderlosSA/out/202098.txt new file mode 100644 index 0000000..7a97fe5 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/202098.txt @@ -0,0 +1,5 @@ + ["202098-SPELL_ABSORBED"] = "Brackwater Barrage, 202098, SPELL_ABSORBED, 1709839500.997, SPELL_ABSORBED, false, Creature-0-67-1492-0-96759-00005FA82A, Helya, 2632, 0, Player-67-00282563, Fregath, 1298, 0, 202098, Brackwater Barrage, 16, Player-67-00282563, Fregath, 1298, 0, 209388, Bulwark of Order, 2, 1042204", + ["202098-SPELL_MISSED"] = "Brackwater Barrage, 202098, SPELL_MISSED, 1709839500.997, SPELL_MISSED, false, Creature-0-67-1492-0-96759-00005FA82A, Helya, 2632, 0, Player-67-00282563, Fregath, 1298, 0, 202098, Brackwater Barrage, 16, ABSORB, false, 4136132", + ["202098-SPELL_DAMAGE"] = "Brackwater Barrage, 202098, SPELL_DAMAGE, 1709839501.398, SPELL_DAMAGE, false, Creature-0-67-1492-0-96759-00005FA82A, Helya, 2632, 0, Player-67-00292E75, Kamuihunt, 1298, 0, 202098, Brackwater Barrage, 16, 4945206, -1, 16, nil, nil, nil, false, false, false, false", + ["202098-SPELL_DAMAGE"] = "Brackwater Barrage, 202098, SPELL_DAMAGE, 1710320861.729, SPELL_DAMAGE, false, Creature-0-67-1492-0-96759-00002911C7, Helya, 2632, 0, Player-67-0020E0C2, Toofedka, 1298, 0, 202098, Brackwater Barrage, 16, 155453, -1, 16, nil, nil, 1537127, false, false, false, false", + ["202098-SPELL_ABSORBED"] = "Brackwater Barrage, 202098, SPELL_ABSORBED, 1710320861.729, SPELL_ABSORBED, false, Creature-0-67-1492-0-96759-00002911C7, Helya, 2632, 0, Player-67-0020E0C2, Toofedka, 1298, 0, 202098, Brackwater Barrage, 16, Player-67-0020E0C2, Toofedka, 1298, 0, 252208, Refractive Shell, 2, 312714", diff --git a/WeakAuras/Projects/RaiderlosSA/out/202181.txt b/WeakAuras/Projects/RaiderlosSA/out/202181.txt new file mode 100644 index 0000000..173dd56 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/202181.txt @@ -0,0 +1,4 @@ + ["202181-SPELL_AURA_APPLIED"] = "Stone Gaze, 202181, SPELL_AURA_APPLIED, 1709840366.332, SPELL_AURA_APPLIED, false, Creature-0-67-1458-0-91006-000061BE1F, Rockback Gnasher, 4680, 0, Player-67-00282563, Fregath, 1298, 0, 202181, Stone Gaze, 1, DEBUFF", + ["202181-SPELL_CAST_START"] = "Stone Gaze, 202181, SPELL_CAST_START, 1709812197.064, SPELL_CAST_START, false, Creature-0-67-1458-0-91006-0000337B6C, Rockback Gnasher, 70216, 0, , nil, -2147483648, -2147483648, 202181, Stone Gaze, 1", + ["202181-SPELL_CAST_SUCCESS"] = "Stone Gaze, 202181, SPELL_CAST_SUCCESS, 1709840366.288, SPELL_CAST_SUCCESS, false, Creature-0-67-1458-0-91006-000061BE1F, Rockback Gnasher, 4680, 0, Player-67-00282563, Fregath, 1298, 0, 202181, Stone Gaze, 1", + ["202181-SPELL_AURA_REMOVED"] = "Stone Gaze, 202181, SPELL_AURA_REMOVED, 1709840367.338, SPELL_AURA_REMOVED, false, Creature-0-67-1458-0-91006-000061BE1F, Rockback Gnasher, 4680, 0, Player-67-00282563, Fregath, 1298, 0, 202181, Stone Gaze, 1, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/202658.txt b/WeakAuras/Projects/RaiderlosSA/out/202658.txt new file mode 100644 index 0000000..b7ee948 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/202658.txt @@ -0,0 +1,7 @@ + ["202658-SPELL_ABSORBED"] = "Drain, 202658, SPELL_ABSORBED, 1709803038.81, SPELL_ABSORBED, false, Creature-0-67-1493-0-102584-00002941E7, Malignant Defiler, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 202658, Drain, 32, Player-67-002D9DD1, Succpotato, 1297, 0, 252208, Refractive Shell, 2, 191747", + ["202658-SPELL_PERIODIC_DAMAGE"] = "Drain, 202658, SPELL_PERIODIC_DAMAGE, 1710344588.588, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1493-0-102584-0000323298, Malignant Defiler, 2632, 0, Player-67-00299D61, Katifram, 1298, 0, 202658, Drain, 32, 554772, 0, 32, nil, nil, nil, false, false, false, false", + ["202658-SPELL_AURA_REMOVED"] = "Drain, 202658, SPELL_AURA_REMOVED, 1709803041.884, SPELL_AURA_REMOVED, false, Creature-0-67-1493-0-102584-00002941E7, Malignant Defiler, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 202658, Drain, 32, DEBUFF", + ["202658-SPELL_CAST_SUCCESS"] = "Drain, 202658, SPELL_CAST_SUCCESS, 1709803035.791, SPELL_CAST_SUCCESS, false, Creature-0-67-1493-0-102584-00002941E7, Malignant Defiler, 2632, 0, , nil, -2147483648, -2147483648, 202658, Drain, 32", + ["202658-SPELL_AURA_APPLIED"] = "Drain, 202658, SPELL_AURA_APPLIED, 1709803035.832, SPELL_AURA_APPLIED, false, Creature-0-67-1493-0-102584-00002941E7, Malignant Defiler, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 202658, Drain, 32, DEBUFF", + ["202658-SPELL_PERIODIC_MISSED"] = "Drain, 202658, SPELL_PERIODIC_MISSED, 1709803038.81, SPELL_PERIODIC_MISSED, false, Creature-0-67-1493-0-102584-00002941E7, Malignant Defiler, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 202658, Drain, 32, ABSORB, false, 191747", + ["202658-SPELL_CAST_START"] = "Drain, 202658, SPELL_CAST_START, 1709803032.719, SPELL_CAST_START, false, Creature-0-67-1493-0-102584-00002941E7, Malignant Defiler, 2632, 0, , nil, -2147483648, -2147483648, 202658, Drain, 32", diff --git a/WeakAuras/Projects/RaiderlosSA/out/202913.txt b/WeakAuras/Projects/RaiderlosSA/out/202913.txt new file mode 100644 index 0000000..c3ae9c7 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/202913.txt @@ -0,0 +1,2 @@ + ["202913-SPELL_CAST_START"] = "Fel Mortar, 202913, SPELL_CAST_START, 1709802884.798, SPELL_CAST_START, false, Creature-0-67-1493-0-95885-000029419C, Tirathon Saltheril, 68168, 0, , nil, -2147483648, -2147483648, 202913, Fel Mortar, 1", + ["202913-SPELL_CAST_SUCCESS"] = "Fel Mortar, 202913, SPELL_CAST_SUCCESS, 1709802886.815, SPELL_CAST_SUCCESS, false, Creature-0-67-1493-0-95885-000029419C, Tirathon Saltheril, 68168, 0, , nil, -2147483648, -2147483648, 202913, Fel Mortar, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/207979.txt b/WeakAuras/Projects/RaiderlosSA/out/207979.txt new file mode 100644 index 0000000..456d9c6 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/207979.txt @@ -0,0 +1,7 @@ + ["207979-SPELL_ABSORBED"] = "Shockwave, 207979, SPELL_ABSORBED, 1709936238.608, SPELL_ABSORBED, false, Creature-0-67-1571-0-104273-00006E000D, Jazshariu, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 207979, Shockwave, 1, Player-67-002D9DD1, Succpotato, 1297, 0, 108366, Soul Leech, 32, 919674", + ["207979-SPELL_DAMAGE"] = "Shockwave, 207979, SPELL_DAMAGE, 1709940185.411, SPELL_DAMAGE, false, Creature-0-67-1571-0-104273-000072F87B, Jazshariu, 68168, 0, Player-67-002B57E7, Pitic, 1298, 0, 207979, Shockwave, 1, 1087006, -1, 1, nil, nil, nil, false, false, false, false", + ["207979-SPELL_AURA_REMOVED"] = "Shockwave, 207979, SPELL_AURA_REMOVED, 1709936241.685, SPELL_AURA_REMOVED, false, Creature-0-67-1571-0-104273-00006E000D, Jazshariu, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 207979, Shockwave, 1, DEBUFF", + ["207979-SPELL_MISSED"] = "Shockwave, 207979, SPELL_MISSED, 1709936238.608, SPELL_MISSED, false, Creature-0-67-1571-0-104273-00006E000D, Jazshariu, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 207979, Shockwave, 1, ABSORB, false, 2029690", + ["207979-SPELL_CAST_SUCCESS"] = "Shockwave, 207979, SPELL_CAST_SUCCESS, 1709936238.608, SPELL_CAST_SUCCESS, false, Creature-0-67-1571-0-104273-00006E000D, Jazshariu, 68168, 0, , nil, -2147483648, -2147483648, 207979, Shockwave, 1", + ["207979-SPELL_CAST_START"] = "Shockwave, 207979, SPELL_CAST_START, 1709936237.121, SPELL_CAST_START, false, Creature-0-67-1571-0-104273-00006E000D, Jazshariu, 68168, 0, , nil, -2147483648, -2147483648, 207979, Shockwave, 1", + ["207979-SPELL_AURA_APPLIED"] = "Shockwave, 207979, SPELL_AURA_APPLIED, 1709936238.666, SPELL_AURA_APPLIED, false, Creature-0-67-1571-0-104273-00006E000D, Jazshariu, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 207979, Shockwave, 1, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/207980.txt b/WeakAuras/Projects/RaiderlosSA/out/207980.txt new file mode 100644 index 0000000..2dbac5c --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/207980.txt @@ -0,0 +1,4 @@ + ["207980-SPELL_CAST_SUCCESS"] = "Disintegration Beam, 207980, SPELL_CAST_SUCCESS, 1709936145.201, SPELL_CAST_SUCCESS, false, Creature-0-67-1571-0-104274-00006E000C, Baalgar the Watchful, 68168, 0, Player-67-00318BC5, Ossman, 1298, 0, 207980, Disintegration Beam, 32", + ["207980-SPELL_AURA_APPLIED"] = "Disintegration Beam, 207980, SPELL_AURA_APPLIED, 1709936145.282, SPELL_AURA_APPLIED, false, Creature-0-67-1571-0-104274-00006E000C, Baalgar the Watchful, 68168, 0, Player-67-00318BC5, Ossman, 1298, 0, 207980, Disintegration Beam, 32, DEBUFF", + ["207980-SPELL_AURA_REMOVED"] = "Disintegration Beam, 207980, SPELL_AURA_REMOVED, 1709936150.28, SPELL_AURA_REMOVED, false, Creature-0-67-1571-0-104274-00006E000C, Baalgar the Watchful, 68168, 0, Player-67-00318BC5, Ossman, 1298, 0, 207980, Disintegration Beam, 32, DEBUFF", + ["207980-SPELL_CAST_START"] = "Disintegration Beam, 207980, SPELL_CAST_START, 1709936144.166, SPELL_CAST_START, false, Creature-0-67-1571-0-104274-00006E000C, Baalgar the Watchful, 68168, 0, , nil, -2147483648, -2147483648, 207980, Disintegration Beam, 32", diff --git a/WeakAuras/Projects/RaiderlosSA/out/209027.txt b/WeakAuras/Projects/RaiderlosSA/out/209027.txt new file mode 100644 index 0000000..12e2e1d --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/209027.txt @@ -0,0 +1,7 @@ + ["209027-SPELL_CAST_START"] = "Quelling Strike, 209027, SPELL_CAST_START, 1709935447.312, SPELL_CAST_START, false, Creature-0-67-1571-0-111563-00006DFFEE, Duskwatch Guard, 68168, 0, , nil, -2147483648, -2147483648, 209027, Quelling Strike, 64", + ["209027-SPELL_CAST_SUCCESS"] = "Quelling Strike, 209027, SPELL_CAST_SUCCESS, 1709935479.769, SPELL_CAST_SUCCESS, false, Creature-0-67-1571-0-104246-00006E003C, Duskwatch Guard, 2632, 0, , nil, -2147483648, -2147483648, 209027, Quelling Strike, 64", + ["209027-SPELL_ABSORBED"] = "Quelling Strike, 209027, SPELL_ABSORBED, 1709939678.844, SPELL_ABSORBED, false, Creature-0-67-1571-0-104246-000072F866, Duskwatch Guard, 2632, 0, Player-67-002B9144, Redoc, 1298, 0, 209027, Quelling Strike, 64, Player-67-002B9144, Redoc, 1298, 0, 190456, Ignore Pain, 1, 1463584", + ["209027-SPELL_AURA_APPLIED"] = "Quelling Strike, 209027, SPELL_AURA_APPLIED, 1709935479.855, SPELL_AURA_APPLIED, false, Creature-0-67-1571-0-104246-00006E003C, Duskwatch Guard, 2632, 0, Player-67-0034F561, Baylan, 1298, 0, 209027, Quelling Strike, 64, DEBUFF", + ["209027-SPELL_MISSED"] = "Quelling Strike, 209027, SPELL_MISSED, 1709939776.867, SPELL_MISSED, false, Creature-0-67-1571-0-104246-000072F905, Duskwatch Guard, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 209027, Quelling Strike, 64, ABSORB, false, 3000657", + ["209027-SPELL_DAMAGE"] = "Quelling Strike, 209027, SPELL_DAMAGE, 1709935479.769, SPELL_DAMAGE, false, Creature-0-67-1571-0-104246-00006E003C, Duskwatch Guard, 2632, 0, Player-67-0034F561, Baylan, 1298, 0, 209027, Quelling Strike, 64, 1840687, -1, 64, nil, nil, nil, false, false, false, false", + ["209027-SPELL_AURA_REMOVED"] = "Quelling Strike, 209027, SPELL_AURA_REMOVED, 1709935480.57, SPELL_AURA_REMOVED, false, Creature-0-67-1571-0-104246-00006E003C, Duskwatch Guard, 2632, 0, Player-67-0034F561, Baylan, 1298, 0, 209027, Quelling Strike, 64, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/209404.txt b/WeakAuras/Projects/RaiderlosSA/out/209404.txt new file mode 100644 index 0000000..cadf2fb --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/209404.txt @@ -0,0 +1,7 @@ + ["209404-SPELL_CAST_SUCCESS"] = "Seal Magic, 209404, SPELL_CAST_SUCCESS, 1709939677.983, SPELL_CAST_SUCCESS, false, Creature-0-67-1571-0-104247-000072F864, Duskwatch Arcanist, 68168, 0, , nil, -2147483648, -2147483648, 209404, Seal Magic, 64", + ["209404-SPELL_CAST_START"] = "Seal Magic, 209404, SPELL_CAST_START, 1709939675.468, SPELL_CAST_START, false, Creature-0-67-1571-0-104247-000072F864, Duskwatch Arcanist, 2632, 0, , nil, -2147483648, -2147483648, 209404, Seal Magic, 64", + ["209404-SPELL_AURA_APPLIED"] = "Seal Magic, 209404, SPELL_AURA_APPLIED, 1709939678.05, SPELL_AURA_APPLIED, false, Creature-0-67-1571-0-104247-000072F864, Duskwatch Arcanist, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 209404, Seal Magic, 64, DEBUFF", + ["209404-SPELL_ABSORBED"] = "Seal Magic, 209404, SPELL_ABSORBED, 1709939677.983, SPELL_ABSORBED, false, Creature-0-67-1571-0-104247-000072F864, Duskwatch Arcanist, 68168, 0, Player-67-002B9144, Redoc, 1298, 0, 209404, Seal Magic, 64, Player-67-002B9144, Redoc, 1298, 0, 190456, Ignore Pain, 1, 2023661", + ["209404-SPELL_AURA_REMOVED"] = "Seal Magic, 209404, SPELL_AURA_REMOVED, 1709939682.079, SPELL_AURA_REMOVED, false, Creature-0-67-1571-0-104247-000072F864, Duskwatch Arcanist, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 209404, Seal Magic, 64, DEBUFF", + ["209404-SPELL_MISSED"] = "Seal Magic, 209404, SPELL_MISSED, 1710179643.03, SPELL_MISSED, false, Creature-0-88-1571-0-104247-00002CC3E8, Duskwatch Arcanist, 2632, 0, Pet-0-88-1571-0-78217-00002CCD23, Infernal, 4369, 0, 209404, Seal Magic, 64, ABSORB, false, 198155", + ["209404-SPELL_DAMAGE"] = "Seal Magic, 209404, SPELL_DAMAGE, 1709939677.983, SPELL_DAMAGE, false, Creature-0-67-1571-0-104247-000072F864, Duskwatch Arcanist, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 209404, Seal Magic, 64, 645395, -1, 64, nil, nil, nil, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/209485.txt b/WeakAuras/Projects/RaiderlosSA/out/209485.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/209495.txt b/WeakAuras/Projects/RaiderlosSA/out/209495.txt new file mode 100644 index 0000000..0ff386c --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/209495.txt @@ -0,0 +1,5 @@ + ["209495-SPELL_CAST_SUCCESS"] = "Charged Smash, 209495, SPELL_CAST_SUCCESS, 1709935553.732, SPELL_CAST_SUCCESS, false, Creature-0-67-1571-0-104270-00006E0038, Guardian Construct, 2632, 0, Player-67-00305D33, Djetli, 1298, 0, 209495, Charged Smash, 1", + ["209495-SPELL_DAMAGE"] = "Charged Smash, 209495, SPELL_DAMAGE, 1709935553.732, SPELL_DAMAGE, false, Creature-0-67-1571-0-104270-00006E0038, Guardian Construct, 2632, 0, Player-67-00305D33, Djetli, 1298, 0, 209495, Charged Smash, 1, 3167286, -1, 1, nil, nil, nil, false, false, false, false", + ["209495-SPELL_ABSORBED"] = "Charged Smash, 209495, SPELL_ABSORBED, 1709939731.304, SPELL_ABSORBED, false, Creature-0-67-1571-0-104270-000072F8A6, Guardian Construct, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 209495, Charged Smash, 1, Player-67-002D9DD1, Succpotato, 1297, 0, 108366, Soul Leech, 32, 455924", + ["209495-SPELL_CAST_START"] = "Charged Smash, 209495, SPELL_CAST_START, 1709935551.718, SPELL_CAST_START, false, Creature-0-67-1571-0-104270-00006E0038, Guardian Construct, 2632, 0, , nil, -2147483648, -2147483648, 209495, Charged Smash, 1", + ["209495-SPELL_MISSED"] = "Charged Smash, 209495, SPELL_MISSED, 1709935553.732, SPELL_MISSED, false, Creature-0-67-1571-0-104270-00006E0038, Guardian Construct, 2632, 0, Player-67-00318BC5, Ossman, 1298, 0, 209495, Charged Smash, 1, PARRY, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/209516.txt b/WeakAuras/Projects/RaiderlosSA/out/209516.txt new file mode 100644 index 0000000..bc9fdd3 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/209516.txt @@ -0,0 +1,7 @@ + ["209516-SPELL_ABSORBED"] = "Mana Fang, 209516, SPELL_ABSORBED, 1709939767.306, SPELL_ABSORBED, false, Creature-0-67-1571-0-105699-000072F904, Mana Saber, 2632, 0, Player-67-00247307, Smallpumper, 1298, 0, 209516, Mana Fang, 64, Player-67-00247307, Smallpumper, 1298, 0, 252545, Light of Absolarn, 8, 301592", + ["209516-SPELL_PERIODIC_MISSED"] = "Mana Fang, 209516, SPELL_PERIODIC_MISSED, 1709939767.332, SPELL_PERIODIC_MISSED, false, Creature-0-67-1571-0-105699-000072F904, Mana Saber, 2632, 0, Player-67-00247307, Smallpumper, 1298, 0, 209516, Mana Fang, 64, ABSORB, false, 301592", + ["209516-SPELL_PERIODIC_DAMAGE"] = "Mana Fang, 209516, SPELL_PERIODIC_DAMAGE, 1709935480.185, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1571-0-105699-00006E003D, Mana Saber, 2632, 0, Player-67-0034F561, Baylan, 1298, 0, 209516, Mana Fang, 64, 382555, 0, 64, nil, nil, nil, false, false, false, false", + ["209516-SPELL_MISSED"] = "Mana Fang, 209516, SPELL_MISSED, 1709939882.119, SPELL_MISSED, false, Creature-0-67-1571-0-105699-000072F969, Mana Saber, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 209516, Mana Fang, 64, ABSORB, false, 1856051", + ["209516-SPELL_AURA_APPLIED"] = "Mana Fang, 209516, SPELL_AURA_APPLIED, 1709935478.21, SPELL_AURA_APPLIED, false, Creature-0-67-1571-0-105699-00006E003D, Mana Saber, 2632, 0, Player-67-0034F561, Baylan, 1298, 0, 209516, Mana Fang, 64, DEBUFF", + ["209516-SPELL_DAMAGE"] = "Mana Fang, 209516, SPELL_DAMAGE, 1709935478.113, SPELL_DAMAGE, false, Creature-0-67-1571-0-105699-00006E003D, Mana Saber, 2632, 0, Player-67-00318BC5, Ossman, 1298, 0, 209516, Mana Fang, 64, 1624418, -1, 64, nil, nil, nil, false, false, false, false", + ["209516-SPELL_AURA_REMOVED"] = "Mana Fang, 209516, SPELL_AURA_REMOVED, 1709935480.57, SPELL_AURA_REMOVED, false, Creature-0-67-1571-0-105699-00006E003D, Mana Saber, 2632, 0, Player-67-0034F561, Baylan, 1298, 0, 209516, Mana Fang, 64, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/209628.txt b/WeakAuras/Projects/RaiderlosSA/out/209628.txt new file mode 100644 index 0000000..e68fd0e --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/209628.txt @@ -0,0 +1,5 @@ + ["209628-SPELL_CAST_SUCCESS"] = "Piercing Gale, 209628, SPELL_CAST_SUCCESS, 1709936553.484, SPELL_CAST_SUCCESS, false, Vehicle-0-67-1571-0-105754-00006F8516, Image of Advisor Melandrus, 2632, 0, , nil, -2147483648, -2147483648, 209628, Piercing Gale, 1", + ["209628-SPELL_ABSORBED"] = "Piercing Gale, 209628, SPELL_ABSORBED, 1709940450.292, SPELL_ABSORBED, false, Vehicle-0-67-1571-0-105754-000073C31B, Image of Advisor Melandrus, 2632, 0, Player-67-002B9144, Redoc, 1298, 0, 209628, Piercing Gale, 1, Player-67-002B9144, Redoc, 1298, 0, 190456, Ignore Pain, 1, 763164", + ["209628-SPELL_MISSED"] = "Piercing Gale, 209628, SPELL_MISSED, 1709936553.484, SPELL_MISSED, false, Vehicle-0-67-1571-0-105754-00006F8516, Image of Advisor Melandrus, 2632, 0, Player-67-0034F561, Baylan, 1298, 0, 209628, Piercing Gale, 1, ABSORB, false, 713902", + ["209628-SPELL_CAST_START"] = "Piercing Gale, 209628, SPELL_CAST_START, 1709936551.501, SPELL_CAST_START, false, Vehicle-0-67-1571-0-104218-00006E16CC, Advisor Melandrus, 68168, 0, , nil, -2147483648, -2147483648, 209628, Piercing Gale, 1", + ["209628-SPELL_DAMAGE"] = "Piercing Gale, 209628, SPELL_DAMAGE, 1709940450.307, SPELL_DAMAGE, false, Vehicle-0-67-1571-0-105754-000073C31B, Image of Advisor Melandrus, 2632, 0, Player-67-002B57E7, Pitic, 1298, 0, 209628, Piercing Gale, 1, 807824, -1, 1, nil, nil, nil, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/209676.txt b/WeakAuras/Projects/RaiderlosSA/out/209676.txt new file mode 100644 index 0000000..7c25fd5 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/209676.txt @@ -0,0 +1,4 @@ + ["209676-SPELL_CAST_START"] = "Slicing Maelstrom, 209676, SPELL_CAST_START, 1709936563.598, SPELL_CAST_START, false, Vehicle-0-67-1571-0-104218-00006E16CC, Advisor Melandrus, 68168, 0, , nil, -2147483648, -2147483648, 209676, Slicing Maelstrom, 1", + ["209676-SPELL_AURA_REMOVED"] = "Slicing Maelstrom, 209676, SPELL_AURA_REMOVED, 1709936568.639, SPELL_AURA_REMOVED, false, Vehicle-0-67-1571-0-104218-00006E16CC, Advisor Melandrus, 68168, 0, Vehicle-0-67-1571-0-104218-00006E16CC, Advisor Melandrus, 68168, 0, 209676, Slicing Maelstrom, 1, BUFF", + ["209676-SPELL_CAST_SUCCESS"] = "Slicing Maelstrom, 209676, SPELL_CAST_SUCCESS, 1709936564.615, SPELL_CAST_SUCCESS, false, Vehicle-0-67-1571-0-104218-00006E16CC, Advisor Melandrus, 68168, 0, , nil, -2147483648, -2147483648, 209676, Slicing Maelstrom, 1", + ["209676-SPELL_AURA_APPLIED"] = "Slicing Maelstrom, 209676, SPELL_AURA_APPLIED, 1709936564.633, SPELL_AURA_APPLIED, false, Vehicle-0-67-1571-0-104218-00006E16CC, Advisor Melandrus, 68168, 0, Vehicle-0-67-1571-0-104218-00006E16CC, Advisor Melandrus, 68168, 0, 209676, Slicing Maelstrom, 1, BUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/210261.txt b/WeakAuras/Projects/RaiderlosSA/out/210261.txt new file mode 100644 index 0000000..691aa85 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/210261.txt @@ -0,0 +1,3 @@ + ["210261-SPELL_CAST_SUCCESS"] = "Sound Alarm, 210261, SPELL_CAST_SUCCESS, 1709935473.192, SPELL_CAST_SUCCESS, false, Creature-0-67-1571-0-104251-00006E0039, Duskwatch Sentry, 68168, 0, , nil, -2147483648, -2147483648, 210261, Sound Alarm, 1", + ["210261-SPELL_CAST_START"] = "Sound Alarm, 210261, SPELL_CAST_START, 1709935471.157, SPELL_CAST_START, false, Creature-0-67-1571-0-104251-00006E0039, Duskwatch Sentry, 2632, 0, , nil, -2147483648, -2147483648, 210261, Sound Alarm, 1", + ["210261-SPELL_SUMMON"] = "Sound Alarm, 210261, SPELL_SUMMON, 1709935473.192, SPELL_SUMMON, false, Creature-0-67-1571-0-104251-00006E0039, Duskwatch Sentry, 68168, 0, Creature-0-67-1571-0-107073-00006E235B, Unknown, 2632, 0, 210261, Sound Alarm, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/211037.txt b/WeakAuras/Projects/RaiderlosSA/out/211037.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/211115.txt b/WeakAuras/Projects/RaiderlosSA/out/211115.txt new file mode 100644 index 0000000..d67c6f0 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/211115.txt @@ -0,0 +1,5 @@ + ["211115-SPELL_ABSORBED"] = "Phase Breach, 211115, SPELL_ABSORBED, 1709801341.899, SPELL_ABSORBED, false, Creature-0-67-1516-0-106059-000027CDC6, Warp Shade, 2632, 0, Player-67-003516C9, Mistwrap, 1298, 0, 211115, Phase Breach, 64, Player-67-003516C9, Mistwrap, 1298, 0, 252208, Refractive Shell, 2, 122640", + ["211115-SPELL_MISSED"] = "Phase Breach, 211115, SPELL_MISSED, 1709801341.91, SPELL_MISSED, false, Creature-0-67-1516-0-106059-000027CDC6, Warp Shade, 2632, 0, Player-67-00347555, Leiiel, 1298, 0, 211115, Phase Breach, 64, ABSORB, false, 954917", + ["211115-SPELL_CAST_SUCCESS"] = "Phase Breach, 211115, SPELL_CAST_SUCCESS, 1709801341.91, SPELL_CAST_SUCCESS, false, Creature-0-67-1516-0-106059-000027CDC6, Warp Shade, 2632, 0, , nil, -2147483648, -2147483648, 211115, Phase Breach, 64", + ["211115-SPELL_CAST_START"] = "Phase Breach, 211115, SPELL_CAST_START, 1709801339.343, SPELL_CAST_START, false, Creature-0-67-1516-0-106059-000027CDC6, Warp Shade, 2632, 0, , nil, -2147483648, -2147483648, 211115, Phase Breach, 64", + ["211115-SPELL_DAMAGE"] = "Phase Breach, 211115, SPELL_DAMAGE, 1709801341.91, SPELL_DAMAGE, false, Creature-0-67-1516-0-106059-000027CDC6, Warp Shade, 2632, 0, Player-67-003516C9, Mistwrap, 1298, 0, 211115, Phase Breach, 64, 695403, -1, 64, nil, nil, 122640, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/211217.txt b/WeakAuras/Projects/RaiderlosSA/out/211217.txt new file mode 100644 index 0000000..a27a030 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/211217.txt @@ -0,0 +1,2 @@ + ["211217-SPELL_CAST_START"] = "Arcane Slicer, 211217, SPELL_CAST_START, 1709801385.526, SPELL_CAST_START, false, Creature-0-67-1516-0-98756-000027CE18, Arcane Anomaly, 2632, 0, , nil, -2147483648, -2147483648, 211217, Arcane Slicer, 1", + ["211217-SPELL_CAST_SUCCESS"] = "Arcane Slicer, 211217, SPELL_CAST_SUCCESS, 1709801388.556, SPELL_CAST_SUCCESS, false, Creature-0-67-1516-0-98756-000027CE18, Arcane Anomaly, 2632, 0, , nil, -2147483648, -2147483648, 211217, Arcane Slicer, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/211464.txt b/WeakAuras/Projects/RaiderlosSA/out/211464.txt new file mode 100644 index 0000000..192ffdc --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/211464.txt @@ -0,0 +1,9 @@ + ["211464-SPELL_PERIODIC_MISSED"] = "Fel Detonation, 211464, SPELL_PERIODIC_MISSED, 1709936084.255, SPELL_PERIODIC_MISSED, false, Creature-0-67-1571-0-104278-00006E000A, Felbound Enforcer, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 211464, Fel Detonation, 4, ABSORB, false, 465998", + ["211464-SPELL_DAMAGE"] = "Fel Detonation, 211464, SPELL_DAMAGE, 1709936082.254, SPELL_DAMAGE, false, Creature-0-67-1571-0-104278-00006E000A, Felbound Enforcer, 68168, 0, Player-67-0034F561, Baylan, 1298, 0, 211464, Fel Detonation, 4, 383524, -1, 4, nil, nil, nil, false, false, false, false", + ["211464-SPELL_CAST_START"] = "Fel Detonation, 211464, SPELL_CAST_START, 1709936080.264, SPELL_CAST_START, false, Creature-0-67-1571-0-104278-00006E000A, Felbound Enforcer, 68168, 0, , nil, -2147483648, -2147483648, 211464, Fel Detonation, 4", + ["211464-SPELL_PERIODIC_DAMAGE"] = "Fel Detonation, 211464, SPELL_PERIODIC_DAMAGE, 1709936084.315, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1571-0-104278-00006E000A, Felbound Enforcer, 68168, 0, Player-67-0034F561, Baylan, 1298, 0, 211464, Fel Detonation, 4, 173771, 0, 4, nil, nil, nil, false, false, false, false", + ["211464-SPELL_AURA_APPLIED"] = "Fel Detonation, 211464, SPELL_AURA_APPLIED, 1709936082.329, SPELL_AURA_APPLIED, false, Creature-0-67-1571-0-104278-00006E000A, Felbound Enforcer, 68168, 0, Player-67-0034F561, Baylan, 1298, 0, 211464, Fel Detonation, 4, DEBUFF", + ["211464-SPELL_MISSED"] = "Fel Detonation, 211464, SPELL_MISSED, 1709936082.254, SPELL_MISSED, false, Creature-0-67-1571-0-104278-00006E000A, Felbound Enforcer, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 211464, Fel Detonation, 4, ABSORB, false, 1007169", + ["211464-SPELL_CAST_SUCCESS"] = "Fel Detonation, 211464, SPELL_CAST_SUCCESS, 1709936082.254, SPELL_CAST_SUCCESS, false, Creature-0-67-1571-0-104278-00006E000A, Felbound Enforcer, 68168, 0, , nil, -2147483648, -2147483648, 211464, Fel Detonation, 4", + ["211464-SPELL_ABSORBED"] = "Fel Detonation, 211464, SPELL_ABSORBED, 1709936082.254, SPELL_ABSORBED, false, Creature-0-67-1571-0-104278-00006E000A, Felbound Enforcer, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 211464, Fel Detonation, 4, Player-67-002D9DD1, Succpotato, 1297, 0, 207472, Xavaric's Magnum Opus, 1, 917411", + ["211464-SPELL_AURA_REMOVED"] = "Fel Detonation, 211464, SPELL_AURA_REMOVED, 1709936092.297, SPELL_AURA_REMOVED, false, Creature-0-67-1571-0-104278-00006E000A, Felbound Enforcer, 2632, 0, Player-67-00318BC5, Ossman, 1298, 0, 211464, Fel Detonation, 4, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/211771.txt b/WeakAuras/Projects/RaiderlosSA/out/211771.txt new file mode 100644 index 0000000..4a4ce4f --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/211771.txt @@ -0,0 +1,5 @@ + ["211771-SPELL_DAMAGE"] = "Prophecies of Doom, 211771, SPELL_DAMAGE, 1709801829.884, SPELL_DAMAGE, false, Creature-0-67-1516-0-105651-000027CD33, Dreadborne Seer, 68168, 0, Player-67-003516C9, Mistwrap, 1298, 0, 211771, Prophecies of Doom, 32, 173465, -1, 32, nil, nil, 173465, false, false, false, false", + ["211771-SPELL_CAST_SUCCESS"] = "Prophecies of Doom, 211771, SPELL_CAST_SUCCESS, 1709801829.884, SPELL_CAST_SUCCESS, false, Creature-0-67-1516-0-105651-000027CD33, Dreadborne Seer, 68168, 0, , nil, -2147483648, -2147483648, 211771, Prophecies of Doom, 32", + ["211771-SPELL_CAST_START"] = "Prophecies of Doom, 211771, SPELL_CAST_START, 1709801712.557, SPELL_CAST_START, false, Creature-0-67-1516-0-105651-000027CD58, Dreadborne Seer, 68168, 0, , nil, -2147483648, -2147483648, 211771, Prophecies of Doom, 32", + ["211771-SPELL_MISSED"] = "Prophecies of Doom, 211771, SPELL_MISSED, 1709801829.884, SPELL_MISSED, false, Creature-0-67-1516-0-105651-000027CD33, Dreadborne Seer, 68168, 0, Player-67-00347555, Leiiel, 1298, 0, 211771, Prophecies of Doom, 32, ABSORB, false, 813082", + ["211771-SPELL_ABSORBED"] = "Prophecies of Doom, 211771, SPELL_ABSORBED, 1709801829.884, SPELL_ABSORBED, false, Creature-0-67-1516-0-105651-000027CD33, Dreadborne Seer, 68168, 0, Player-67-003516C9, Mistwrap, 1298, 0, 211771, Prophecies of Doom, 32, Player-67-003516C9, Mistwrap, 1298, 0, 214423, Stance of the Mountain, 1, 173465", diff --git a/WeakAuras/Projects/RaiderlosSA/out/212784.txt b/WeakAuras/Projects/RaiderlosSA/out/212784.txt new file mode 100644 index 0000000..134ae87 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/212784.txt @@ -0,0 +1,4 @@ + ["212784-SPELL_CAST_START"] = "Eye Storm, 212784, SPELL_CAST_START, 1709935928.448, SPELL_CAST_START, false, Vehicle-0-67-1571-0-105715-00006E00A5, Watchful Inquisitor, 68168, 0, , nil, -2147483648, -2147483648, 212784, Eye Storm, 4", + ["212784-SPELL_AURA_APPLIED"] = "Eye Storm, 212784, SPELL_AURA_APPLIED, 1709936043.639, SPELL_AURA_APPLIED, false, Vehicle-0-67-1571-0-105715-00006E0010, Watchful Inquisitor, 68168, 0, Vehicle-0-67-1571-0-105715-00006E0010, Watchful Inquisitor, 68168, 0, 212784, Eye Storm, 4, BUFF", + ["212784-SPELL_AURA_REMOVED"] = "Eye Storm, 212784, SPELL_AURA_REMOVED, 1709936051.592, SPELL_AURA_REMOVED, false, Vehicle-0-67-1571-0-105715-00006E0010, Watchful Inquisitor, 68168, 0, Vehicle-0-67-1571-0-105715-00006E0010, Watchful Inquisitor, 68168, 0, 212784, Eye Storm, 4, BUFF", + ["212784-SPELL_CAST_SUCCESS"] = "Eye Storm, 212784, SPELL_CAST_SUCCESS, 1709936043.639, SPELL_CAST_SUCCESS, false, Vehicle-0-67-1571-0-105715-00006E0010, Watchful Inquisitor, 68168, 0, , nil, -2147483648, -2147483648, 212784, Eye Storm, 4", diff --git a/WeakAuras/Projects/RaiderlosSA/out/215204.txt b/WeakAuras/Projects/RaiderlosSA/out/215204.txt new file mode 100644 index 0000000..0e2a2cb --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/215204.txt @@ -0,0 +1,4 @@ + ["215204-SPELL_AURA_REMOVED"] = "Hinder, 215204, SPELL_AURA_REMOVED, 1709935839.119, SPELL_AURA_REMOVED, false, Creature-0-67-1571-0-104918-00006E9B93, Vigilant Duskwatch, 2632, 0, Player-67-0034F561, Baylan, 1298, 0, 215204, Hinder, 64, DEBUFF", + ["215204-SPELL_CAST_START"] = "Hinder, 215204, SPELL_CAST_START, 1709935830.941, SPELL_CAST_START, false, Creature-0-67-1571-0-104918-00006E9B93, Vigilant Duskwatch, 2632, 0, , nil, -2147483648, -2147483648, 215204, Hinder, 64", + ["215204-SPELL_CAST_SUCCESS"] = "Hinder, 215204, SPELL_CAST_SUCCESS, 1709935832.993, SPELL_CAST_SUCCESS, false, Creature-0-67-1571-0-104918-00006E9B93, Vigilant Duskwatch, 2632, 0, Player-67-0034F561, Baylan, 1298, 0, 215204, Hinder, 64", + ["215204-SPELL_AURA_APPLIED"] = "Hinder, 215204, SPELL_AURA_APPLIED, 1709935833.047, SPELL_AURA_APPLIED, false, Creature-0-67-1571-0-104918-00006E9B93, Vigilant Duskwatch, 2632, 0, Player-67-0034F561, Baylan, 1298, 0, 215204, Hinder, 64, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/215433.txt b/WeakAuras/Projects/RaiderlosSA/out/215433.txt new file mode 100644 index 0000000..2c25c12 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/215433.txt @@ -0,0 +1,4 @@ + ["215433-SPELL_CAST_SUCCESS"] = "Holy Radiance, 215433, SPELL_CAST_SUCCESS, 1709898621.019, SPELL_CAST_SUCCESS, false, Creature-0-67-1477-0-95834-00003610FC, Valarjar Mystic, 68168, 0, , nil, -2147483648, -2147483648, 215433, Holy Radiance, 2", + ["215433-SPELL_HEAL"] = "Holy Radiance, 215433, SPELL_HEAL, 1709898621.019, SPELL_HEAL, false, Creature-0-67-1477-0-95834-00003610FC, Valarjar Mystic, 68168, 0, Player-67-0021323C, Ofox, 1298, 0, 215433, Holy Radiance, 2, 2530018, 2530018, 0, false", + ["215433-SPELL_CAST_START"] = "Holy Radiance, 215433, SPELL_CAST_START, 1709898618.53, SPELL_CAST_START, false, Creature-0-67-1477-0-95834-00003610FC, Valarjar Mystic, 68168, 0, , nil, -2147483648, -2147483648, 215433, Holy Radiance, 2", + ["215433-SPELL_CAST_START"] = "Holy Radiance, 215433, SPELL_CAST_START, 1709749220.994, SPELL_CAST_START, false, Creature-0-67-1477-0-95834-0000434457, Valarjar Mystic, 2632, 0, , nil, -2147483648, -2147483648, 215433, Holy Radiance, 2", diff --git a/WeakAuras/Projects/RaiderlosSA/out/219488.txt b/WeakAuras/Projects/RaiderlosSA/out/219488.txt new file mode 100644 index 0000000..68485f0 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/219488.txt @@ -0,0 +1,2 @@ + ["219488-SPELL_SUMMON"] = "Streetsweeper, 219488, SPELL_SUMMON, 1709935820.475, SPELL_SUMMON, false, Vehicle-0-67-1571-0-104215-00006E00EE, Patrol Captain Gerdo, 68168, 0, Creature-0-67-1571-0-110403-00006E9E75, Unknown, 2632, 0, 219488, Streetsweeper, 64", + ["219488-SPELL_CAST_SUCCESS"] = "Streetsweeper, 219488, SPELL_CAST_SUCCESS, 1709935820.475, SPELL_CAST_SUCCESS, false, Vehicle-0-67-1571-0-104215-00006E00EE, Patrol Captain Gerdo, 68168, 0, Player-67-0034F561, Baylan, 1298, 0, 219488, Streetsweeper, 64", diff --git a/WeakAuras/Projects/RaiderlosSA/out/220871.txt b/WeakAuras/Projects/RaiderlosSA/out/220871.txt new file mode 100644 index 0000000..d536c58 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/220871.txt @@ -0,0 +1,4 @@ + ["220871-SPELL_AURA_REMOVED"] = "Unstable Mana, 220871, SPELL_AURA_REMOVED, 1709802023.857, SPELL_AURA_REMOVED, false, Creature-0-67-1516-0-98208-000027CDE6, Advisor Vandros, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 220871, Unstable Mana, 64, DEBUFF", + ["220871-SPELL_CAST_SUCCESS"] = "Unstable Mana, 220871, SPELL_CAST_SUCCESS, 1709802016.927, SPELL_CAST_SUCCESS, false, Creature-0-67-1516-0-98208-000027CDE6, Advisor Vandros, 68168, 0, , nil, -2147483648, -2147483648, 220871, Unstable Mana, 64", + ["220871-SPELL_CAST_START"] = "Unstable Mana, 220871, SPELL_CAST_START, 1709802014.54, SPELL_CAST_START, false, Creature-0-67-1516-0-98208-000027CDE6, Advisor Vandros, 68168, 0, , nil, -2147483648, -2147483648, 220871, Unstable Mana, 64", + ["220871-SPELL_AURA_APPLIED"] = "Unstable Mana, 220871, SPELL_AURA_APPLIED, 1709802016.976, SPELL_AURA_APPLIED, false, Creature-0-67-1516-0-98208-000027CDE6, Advisor Vandros, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 220871, Unstable Mana, 64, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/225100.txt b/WeakAuras/Projects/RaiderlosSA/out/225100.txt new file mode 100644 index 0000000..437b666 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/225100.txt @@ -0,0 +1,4 @@ + ["225100-SPELL_AURA_REMOVED"] = "Charging Station, 225100, SPELL_AURA_REMOVED, 1709935519.335, SPELL_AURA_REMOVED, false, Creature-0-67-1571-0-104270-00006E007C, Guardian Construct, 68168, 0, Creature-0-67-1571-0-104270-00006E007C, Guardian Construct, 68168, 0, 225100, Charging Station, 64, BUFF", + ["225100-SPELL_CAST_SUCCESS"] = "Charging Station, 225100, SPELL_CAST_SUCCESS, 1709935514.247, SPELL_CAST_SUCCESS, false, Creature-0-67-1571-0-104270-00006E007C, Guardian Construct, 68168, 0, , nil, -2147483648, -2147483648, 225100, Charging Station, 64", + ["225100-SPELL_AURA_APPLIED"] = "Charging Station, 225100, SPELL_AURA_APPLIED, 1709935514.247, SPELL_AURA_APPLIED, false, Creature-0-67-1571-0-104270-00006E007C, Guardian Construct, 68168, 0, Creature-0-67-1571-0-104270-00006E007C, Guardian Construct, 68168, 0, 225100, Charging Station, 64, BUFF", + ["225100-SPELL_CAST_START"] = "Charging Station, 225100, SPELL_CAST_START, 1709935512.691, SPELL_CAST_START, false, Creature-0-67-1571-0-104270-00006E007C, Guardian Construct, 2632, 0, , nil, -2147483648, -2147483648, 225100, Charging Station, 64", diff --git a/WeakAuras/Projects/RaiderlosSA/out/225573.txt b/WeakAuras/Projects/RaiderlosSA/out/225573.txt new file mode 100644 index 0000000..8232ca2 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/225573.txt @@ -0,0 +1,8 @@ + ["225573-SPELL_AURA_APPLIED"] = "Dark Mending, 225573, SPELL_AURA_APPLIED, 1710074428.941, SPELL_AURA_APPLIED, false, Creature-0-88-1501-0-98370-000027E3E1, Ghostly Councilor, 2632, 0, Creature-0-88-1501-0-98370-000027E3E1, Ghostly Councilor, 2632, 0, 225573, Dark Mending, 32, BUFF", + ["225573-SPELL_CAST_START"] = "Dark Mending, 225573, SPELL_CAST_START, 1710074426.442, SPELL_CAST_START, false, Creature-0-88-1501-0-98370-000027E3E1, Ghostly Councilor, 2632, 0, , nil, -2147483648, -2147483648, 225573, Dark Mending, 32", + ["225573-SPELL_CAST_SUCCESS"] = "Dark Mending, 225573, SPELL_CAST_SUCCESS, 1710074428.941, SPELL_CAST_SUCCESS, false, Creature-0-88-1501-0-98370-000027E3E1, Ghostly Councilor, 2632, 0, , nil, -2147483648, -2147483648, 225573, Dark Mending, 32", + ["225573-SPELL_AURA_REMOVED"] = "Dark Mending, 225573, SPELL_AURA_REMOVED, 1710074433.959, SPELL_AURA_REMOVED, false, Creature-0-88-1501-0-98370-000027E3E1, Ghostly Councilor, 2632, 0, Creature-0-88-1501-0-98370-000027E3E1, Ghostly Councilor, 2632, 0, 225573, Dark Mending, 32, BUFF", + ["225573-SPELL_AURA_APPLIED"] = "Dark Mending, 225573, SPELL_AURA_APPLIED, 1710160061.541, SPELL_AURA_APPLIED, false, Creature-0-67-1501-0-98370-000035D697, Ghostly Councilor, 2632, 0, Creature-0-67-1501-0-98370-000035D697, Ghostly Councilor, 2632, 0, 225573, Dark Mending, 32, BUFF", + ["225573-SPELL_CAST_START"] = "Dark Mending, 225573, SPELL_CAST_START, 1710160058.975, SPELL_CAST_START, false, Creature-0-67-1501-0-98370-000035D697, Ghostly Councilor, 2632, 0, , nil, -2147483648, -2147483648, 225573, Dark Mending, 32", + ["225573-SPELL_CAST_SUCCESS"] = "Dark Mending, 225573, SPELL_CAST_SUCCESS, 1710160061.541, SPELL_CAST_SUCCESS, false, Creature-0-67-1501-0-98370-000035D697, Ghostly Councilor, 2632, 0, , nil, -2147483648, -2147483648, 225573, Dark Mending, 32", + ["225573-SPELL_AURA_REMOVED"] = "Dark Mending, 225573, SPELL_AURA_REMOVED, 1710160066.541, SPELL_AURA_REMOVED, false, Creature-0-67-1501-0-98370-000035D697, Ghostly Councilor, 2632, 0, Creature-0-67-1501-0-98370-000035D697, Ghostly Councilor, 2632, 0, 225573, Dark Mending, 32, BUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/225732.txt b/WeakAuras/Projects/RaiderlosSA/out/225732.txt new file mode 100644 index 0000000..7525764 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/225732.txt @@ -0,0 +1,7 @@ + ["225732-SPELL_ABSORBED"] = "Strike Down, 225732, SPELL_ABSORBED, 1710331987.487, SPELL_ABSORBED, false, Creature-0-67-1501-0-98538-00001F3539, Lady Velandras Ravencrest, 68168, 0, Player-67-00079DF2, Mblo, 1298, 0, 225732, Strike Down, 1, Player-67-00079DF2, Mblo, 1298, 0, 108366, Soul Leech, 32, 627211", + ["225732-SPELL_AURA_REMOVED"] = "Strike Down, 225732, SPELL_AURA_REMOVED, 1710181173.997, SPELL_AURA_REMOVED, false, Creature-0-88-1501-0-98538-00002DA444, Lady Velandras Ravencrest, 2632, 0, Player-88-00008C31, Kusmanchik-legionx5, 1298, 0, 225732, Strike Down, 1, DEBUFF", + ["225732-SPELL_CAST_SUCCESS"] = "Strike Down, 225732, SPELL_CAST_SUCCESS, 1710074428.691, SPELL_CAST_SUCCESS, false, Creature-0-88-1501-0-98538-000027E3D1, Lady Velandras Ravencrest, 2632, 0, , nil, -2147483648, -2147483648, 225732, Strike Down, 1", + ["225732-SPELL_MISSED"] = "Strike Down, 225732, SPELL_MISSED, 1710074428.691, SPELL_MISSED, false, Creature-0-88-1501-0-98538-000027E3D1, Lady Velandras Ravencrest, 2632, 0, Player-67-0033B422, Фрипал, 1298, 0, 225732, Strike Down, 1, PARRY, false", + ["225732-SPELL_CAST_START"] = "Strike Down, 225732, SPELL_CAST_START, 1710074426.947, SPELL_CAST_START, false, Creature-0-88-1501-0-98538-000027E3D1, Lady Velandras Ravencrest, 2632, 0, , nil, -2147483648, -2147483648, 225732, Strike Down, 1", + ["225732-SPELL_AURA_APPLIED"] = "Strike Down, 225732, SPELL_AURA_APPLIED, 1710181172.926, SPELL_AURA_APPLIED, false, Creature-0-88-1501-0-98538-00002DA444, Lady Velandras Ravencrest, 2632, 0, Player-88-00008C31, Kusmanchik-legionx5, 1298, 0, 225732, Strike Down, 1, DEBUFF", + ["225732-SPELL_DAMAGE"] = "Strike Down, 225732, SPELL_DAMAGE, 1710331987.487, SPELL_DAMAGE, false, Creature-0-67-1501-0-98538-00001F3539, Lady Velandras Ravencrest, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 225732, Strike Down, 1, 554545, -1, 1, nil, nil, 114265, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/226285.txt b/WeakAuras/Projects/RaiderlosSA/out/226285.txt new file mode 100644 index 0000000..486dc63 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/226285.txt @@ -0,0 +1,4 @@ + ["226285-SPELL_CAST_SUCCESS"] = "Demonic Ascension, 226285, SPELL_CAST_SUCCESS, 1709801784.489, SPELL_CAST_SUCCESS, false, Creature-0-67-1516-0-105617-000027CD7A, Eredar Chaosbringer, 2632, 0, , nil, -2147483648, -2147483648, 226285, Demonic Ascension, 32", + ["226285-SPELL_AURA_APPLIED"] = "Demonic Ascension, 226285, SPELL_AURA_APPLIED, 1709801784.489, SPELL_AURA_APPLIED, false, Creature-0-67-1516-0-105617-000027CD7A, Eredar Chaosbringer, 2632, 0, Creature-0-67-1516-0-105617-000027CD7A, Eredar Chaosbringer, 2632, 0, 226285, Demonic Ascension, 32, BUFF", + ["226285-SPELL_CAST_START"] = "Demonic Ascension, 226285, SPELL_CAST_START, 1709801781.967, SPELL_CAST_START, false, Creature-0-67-1516-0-105617-000027CD7A, Eredar Chaosbringer, 2632, 0, , nil, -2147483648, -2147483648, 226285, Demonic Ascension, 32", + ["226285-SPELL_AURA_REMOVED"] = "Demonic Ascension, 226285, SPELL_AURA_REMOVED, 1709801788.419, SPELL_AURA_REMOVED, false, Creature-0-67-1516-0-105617-000027CD7A, Eredar Chaosbringer, 2632, 0, Creature-0-67-1516-0-105617-000027CD7A, Eredar Chaosbringer, 2632, 0, 226285, Demonic Ascension, 32, BUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/226296.txt b/WeakAuras/Projects/RaiderlosSA/out/226296.txt new file mode 100644 index 0000000..86ec51e --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/226296.txt @@ -0,0 +1,9 @@ + ["226296-SPELL_MISSED"] = "Piercing Shards, 226296, SPELL_MISSED, 1709840532.651, SPELL_MISSED, false, Creature-0-67-1458-0-91000-000061B4F1, Vileshard Hulk, 68168, 0, Player-67-00282563, Fregath, 1298, 0, 226296, Piercing Shards, 8, ABSORB, false, 906884", + ["226296-SPELL_CAST_SUCCESS"] = "Piercing Shards, 226296, SPELL_CAST_SUCCESS, 1709812194.448, SPELL_CAST_SUCCESS, false, Creature-0-67-1458-0-91000-000033762D, Vileshard Hulk, 2632, 0, Player-67-002A36D8, Pakkan, 1298, 0, 226296, Piercing Shards, 8", + ["226296-SPELL_AURA_APPLIED"] = "Piercing Shards, 226296, SPELL_AURA_APPLIED, 1709840037.434, SPELL_AURA_APPLIED, false, Creature-0-67-1458-0-91000-000061B4CF, Vileshard Hulk, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 226296, Piercing Shards, 8, DEBUFF", + ["226296-SPELL_CAST_START"] = "Piercing Shards, 226296, SPELL_CAST_START, 1709811996.099, SPELL_CAST_START, false, Creature-0-67-1458-0-91000-0000337614, Vileshard Hulk, 2632, 0, , nil, -2147483648, -2147483648, 226296, Piercing Shards, 8", + ["226296-SPELL_AURA_REMOVED"] = "Piercing Shards, 226296, SPELL_AURA_REMOVED, 1709840040.824, SPELL_AURA_REMOVED, false, Creature-0-67-1458-0-91000-000061B4CF, Vileshard Hulk, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 226296, Piercing Shards, 8, DEBUFF", + ["226296-SPELL_ABSORBED"] = "Piercing Shards, 226296, SPELL_ABSORBED, 1709840037.374, SPELL_ABSORBED, false, Creature-0-67-1458-0-91000-000061B4CF, Vileshard Hulk, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 226296, Piercing Shards, 8, Player-67-002D9DD1, Succpotato, 1297, 0, 108366, Soul Leech, 32, 376067", + ["226296-SPELL_DAMAGE"] = "Piercing Shards, 226296, SPELL_DAMAGE, 1709840037.374, SPELL_DAMAGE, false, Creature-0-67-1458-0-91000-000061B4CF, Vileshard Hulk, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 226296, Piercing Shards, 8, 3820560, -1, 8, nil, nil, 376067, false, false, false, false", + ["226296-SPELL_PERIODIC_DAMAGE"] = "Piercing Shards, 226296, SPELL_PERIODIC_DAMAGE, 1709840038.381, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1458-0-91000-000061B4CF, Vileshard Hulk, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 226296, Piercing Shards, 8, 707381, 0, 8, nil, nil, 8516, false, false, false, false", + ["226296-SPELL_PERIODIC_MISSED"] = "Piercing Shards, 226296, SPELL_PERIODIC_MISSED, 1709840494.004, SPELL_PERIODIC_MISSED, false, Creature-0-67-1458-0-91000-000061B4E8, Vileshard Hulk, 68168, 0, Player-67-00282563, Fregath, 1298, 0, 226296, Piercing Shards, 8, ABSORB, false, 322303", diff --git a/WeakAuras/Projects/RaiderlosSA/out/226316.txt b/WeakAuras/Projects/RaiderlosSA/out/226316.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/227254.txt b/WeakAuras/Projects/RaiderlosSA/out/227254.txt new file mode 100644 index 0000000..36ea619 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/227254.txt @@ -0,0 +1,3 @@ + ["227254-SPELL_PERIODIC_ENERGIZE"] = "Evocation, 227254, SPELL_PERIODIC_ENERGIZE, 1709804048.001, SPELL_PERIODIC_ENERGIZE, false, Creature-0-67-1651-0-114247-00002A578D, The Curator, 68168, 0, Creature-0-67-1651-0-114247-00002A578D, The Curator, 68168, 0, 227254, Evocation, 64, 3856, 0, 0, nil", + ["227254-SPELL_AURA_APPLIED"] = "Evocation, 227254, SPELL_AURA_APPLIED, 1709804047, SPELL_AURA_APPLIED, false, Creature-0-67-1651-0-114247-00002A578D, The Curator, 68168, 0, Creature-0-67-1651-0-114247-00002A578D, The Curator, 68168, 0, 227254, Evocation, 64, BUFF", + ["227254-SPELL_AURA_REMOVED"] = "Evocation, 227254, SPELL_AURA_REMOVED, 1709804050.212, SPELL_AURA_REMOVED, false, Creature-0-67-1651-0-114247-00002A578D, The Curator, 68168, 0, Creature-0-67-1651-0-114247-00002A578D, The Curator, 68168, 0, 227254, Evocation, 64, BUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/227267.txt b/WeakAuras/Projects/RaiderlosSA/out/227267.txt new file mode 100644 index 0000000..7dfbb78 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/227267.txt @@ -0,0 +1 @@ + ["227267-SPELL_SUMMON"] = "Summon Volatile Energy, 227267, SPELL_SUMMON, 1709760494.874, SPELL_SUMMON, false, Creature-0-67-1651-0-114247-000056C492, The Curator, 2632, 0, Creature-0-67-1651-0-114249-000056FDCA, Volatile Energy, 2632, 0, 227267, Summon Volatile Energy, 64", diff --git a/WeakAuras/Projects/RaiderlosSA/out/227404.txt b/WeakAuras/Projects/RaiderlosSA/out/227404.txt new file mode 100644 index 0000000..6c6a4bc --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/227404.txt @@ -0,0 +1,4 @@ + ["227404-SPELL_AURA_REMOVED"] = "Intangible Presence, 227404, SPELL_AURA_REMOVED, 1709913442.618, SPELL_AURA_REMOVED, false, Vehicle-0-67-1651-0-114264-000049DEB5, Midnight, 68168, 0, Player-67-002E06C1, Yabadabaduu, 1298, 0, 227404, Intangible Presence, 32, DEBUFF", + ["227404-SPELL_AURA_APPLIED"] = "Intangible Presence, 227404, SPELL_AURA_APPLIED, 1709913431.135, SPELL_AURA_APPLIED, false, Vehicle-0-67-1651-0-114264-000049DEB5, Midnight, 68168, 0, Player-67-000369E9, Иллидарияя, 1298, 0, 227404, Intangible Presence, 32, DEBUFF", + ["227404-SPELL_AURA_APPLIED"] = "Intangible Presence, 227404, SPELL_AURA_APPLIED, 1709910145.757, SPELL_AURA_APPLIED, false, Vehicle-0-67-1651-0-114264-0000456962, Midnight, 68168, 0, Player-67-0034F98C, Elisnakiri, 1298, 0, 227404, Intangible Presence, 32, DEBUFF", + ["227404-SPELL_AURA_REMOVED"] = "Intangible Presence, 227404, SPELL_AURA_REMOVED, 1709910165.587, SPELL_AURA_REMOVED, false, Vehicle-0-67-1651-0-114264-0000456962, Midnight, 68168, 0, Player-67-0034F98C, Elisnakiri, 1298, 0, 227404, Intangible Presence, 32, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/227463.txt b/WeakAuras/Projects/RaiderlosSA/out/227463.txt new file mode 100644 index 0000000..e09096b --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/227463.txt @@ -0,0 +1,4 @@ + ["227463-SPELL_CAST_START"] = "Whirling Edge, 227463, SPELL_CAST_START, 1709938975.256, SPELL_CAST_START, false, Creature-0-67-1651-0-114320-000071EECA, Lord Robin Daris, 2632, 0, , nil, -2147483648, -2147483648, 227463, Whirling Edge, 1", + ["227463-SPELL_CAST_SUCCESS"] = "Whirling Edge, 227463, SPELL_CAST_SUCCESS, 1709938975.74, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114320-000071EECA, Lord Robin Daris, 2632, 0, Player-67-0034D08E, Карлйк, 1298, 64, 227463, Whirling Edge, 1", + ["227463-SPELL_CAST_SUCCESS"] = "Whirling Edge, 227463, SPELL_CAST_SUCCESS, 1709910041.514, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114320-0000456A0E, Lord Robin Daris, 2584, 0, Player-67-00352BEE, Wosadel, 1352, 0, 227463, Whirling Edge, 1", + ["227463-SPELL_CAST_START"] = "Whirling Edge, 227463, SPELL_CAST_START, 1709910041.051, SPELL_CAST_START, false, Creature-0-67-1651-0-114320-0000456A0E, Lord Robin Daris, 2584, 0, , nil, -2147483648, -2147483648, 227463, Whirling Edge, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/227493.txt b/WeakAuras/Projects/RaiderlosSA/out/227493.txt new file mode 100644 index 0000000..1e2a0a1 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/227493.txt @@ -0,0 +1,10 @@ + ["227493-SPELL_CAST_START"] = "Mortal Strike, 227493, SPELL_CAST_START, 1709913448.303, SPELL_CAST_START, false, Creature-0-67-1651-0-114262-000049E08F, Attumen the Huntsman, 2632, 0, , nil, -2147483648, -2147483648, 227493, Mortal Strike, 32", + ["227493-SPELL_AURA_REMOVED"] = "Mortal Strike, 227493, SPELL_AURA_REMOVED, 1709913459.926, SPELL_AURA_REMOVED, false, Creature-0-67-1651-0-114262-000049E08F, Attumen the Huntsman, 2632, 0, Player-67-000369E9, Иллидарияя, 1298, 0, 227493, Mortal Strike, 32, DEBUFF", + ["227493-SPELL_MISSED"] = "Mortal Strike, 227493, SPELL_MISSED, 1709913571.223, SPELL_MISSED, false, Creature-0-67-1651-0-114262-00004B0B6A, Attumen the Huntsman, 68168, 0, Player-67-001A361E, Hullsa, 1298, 0, 227493, Mortal Strike, 32, DODGE, false", + ["227493-SPELL_DAMAGE"] = "Mortal Strike, 227493, SPELL_DAMAGE, 1709913449.846, SPELL_DAMAGE, false, Creature-0-67-1651-0-114262-000049E08F, Attumen the Huntsman, 2632, 0, Player-67-000369E9, Иллидарияя, 1298, 0, 227493, Mortal Strike, 32, 613039, -1, 32, nil, nil, nil, false, false, false, false", + ["227493-SPELL_ABSORBED"] = "Mortal Strike, 227493, SPELL_ABSORBED, 1709913571.223, SPELL_ABSORBED, false, Creature-0-67-1651-0-114262-00004B0B6A, Attumen the Huntsman, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 227493, Mortal Strike, 32, Player-67-002D9DD1, Succpotato, 1297, 0, 108366, Soul Leech, 32, 208608", + ["227493-SPELL_CAST_SUCCESS"] = "Mortal Strike, 227493, SPELL_CAST_SUCCESS, 1709913449.846, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114262-000049E08F, Attumen the Huntsman, 2632, 0, , nil, -2147483648, -2147483648, 227493, Mortal Strike, 32", + ["227493-SPELL_AURA_APPLIED"] = "Mortal Strike, 227493, SPELL_AURA_APPLIED, 1709913449.909, SPELL_AURA_APPLIED, false, Creature-0-67-1651-0-114262-000049E08F, Attumen the Huntsman, 2632, 0, Player-67-000369E9, Иллидарияя, 1298, 0, 227493, Mortal Strike, 32, DEBUFF", + ["227493-SPELL_MISSED"] = "Mortal Strike, 227493, SPELL_MISSED, 1709910157.265, SPELL_MISSED, false, Creature-0-67-1651-0-114262-00004603E7, Attumen the Huntsman, 68168, 0, Player-67-00352BEE, Wosadel, 1298, 0, 227493, Mortal Strike, 32, PARRY, false", + ["227493-SPELL_CAST_SUCCESS"] = "Mortal Strike, 227493, SPELL_CAST_SUCCESS, 1709910157.265, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114262-00004603E7, Attumen the Huntsman, 68168, 0, , nil, -2147483648, -2147483648, 227493, Mortal Strike, 32", + ["227493-SPELL_CAST_START"] = "Mortal Strike, 227493, SPELL_CAST_START, 1709910155.735, SPELL_CAST_START, false, Creature-0-67-1651-0-114262-00004603E7, Attumen the Huntsman, 68168, 0, , nil, -2147483648, -2147483648, 227493, Mortal Strike, 32", diff --git a/WeakAuras/Projects/RaiderlosSA/out/227508.txt b/WeakAuras/Projects/RaiderlosSA/out/227508.txt new file mode 100644 index 0000000..66d3360 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/227508.txt @@ -0,0 +1,4 @@ + ["227508-SPELL_CAST_START"] = "Mass Repentance, 227508, SPELL_CAST_START, 1710353116.772, SPELL_CAST_START, false, Creature-0-7-1651-0-113971-000023675D, Maiden of Virtue, 68168, 0, , nil, -2147483648, -2147483648, 227508, Mass Repentance, 2", + ["227508-SPELL_CAST_SUCCESS"] = "Mass Repentance, 227508, SPELL_CAST_SUCCESS, 1710353121.796, SPELL_CAST_SUCCESS, false, Creature-0-7-1651-0-113971-000023675D, Maiden of Virtue, 68168, 0, , nil, -2147483648, -2147483648, 227508, Mass Repentance, 2", + ["227508-SPELL_AURA_APPLIED"] = "Mass Repentance, 227508, SPELL_AURA_APPLIED, 1710353121.864, SPELL_AURA_APPLIED, false, Creature-0-7-1651-0-113971-000023675D, Maiden of Virtue, 68168, 0, Player-67-0028501B, Cromash, 1298, 0, 227508, Mass Repentance, 2, DEBUFF", + ["227508-SPELL_AURA_REMOVED"] = "Mass Repentance, 227508, SPELL_AURA_REMOVED, 1710353122.018, SPELL_AURA_REMOVED, false, Creature-0-7-1651-0-113971-000023675D, Maiden of Virtue, 68168, 0, Player-67-002547E4, Sharngan, 1298, 0, 227508, Mass Repentance, 2, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/227568.txt b/WeakAuras/Projects/RaiderlosSA/out/227568.txt new file mode 100644 index 0000000..0228875 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/227568.txt @@ -0,0 +1,8 @@ + ["227568-SPELL_PERIODIC_DAMAGE"] = "Burning Leg Sweep, 227568, SPELL_PERIODIC_DAMAGE, 1710108890.6, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1651-0-114261-00007C24C9, Toe Knee, 68168, 0, Player-67-00345CD7, Bagrintwo, 1298, 0, 227568, Burning Leg Sweep, 4, 931950, 122484, 4, nil, nil, nil, false, false, false, false", + ["227568-SPELL_AURA_APPLIED"] = "Burning Leg Sweep, 227568, SPELL_AURA_APPLIED, 1710108888.608, SPELL_AURA_APPLIED, false, Creature-0-67-1651-0-114261-00007C24C9, Toe Knee, 2632, 0, Player-67-00345CD7, Bagrintwo, 1298, 0, 227568, Burning Leg Sweep, 4, DEBUFF", + ["227568-SPELL_CAST_SUCCESS"] = "Burning Leg Sweep, 227568, SPELL_CAST_SUCCESS, 1710108888.565, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114261-00007C24C9, Toe Knee, 2632, 0, , nil, -2147483648, -2147483648, 227568, Burning Leg Sweep, 4", + ["227568-SPELL_DAMAGE"] = "Burning Leg Sweep, 227568, SPELL_DAMAGE, 1710108888.565, SPELL_DAMAGE, false, Creature-0-67-1651-0-114261-00007C24C9, Toe Knee, 2632, 0, Player-67-00352C1E, Icoo, 1298, 0, 227568, Burning Leg Sweep, 4, 851726, -1, 4, nil, nil, nil, false, false, false, false", + ["227568-SPELL_ABSORBED"] = "Burning Leg Sweep, 227568, SPELL_ABSORBED, 1710108888.548, SPELL_ABSORBED, false, Creature-0-67-1651-0-114261-00007C24C9, Toe Knee, 2632, 0, Player-67-003453A3, Notadh, 1298, 0, 227568, Burning Leg Sweep, 4, Player-67-003453A3, Notadh, 1298, 0, 235169, Archimonde's Hatred Reborn, 1, 689633", + ["227568-SPELL_CAST_START"] = "Burning Leg Sweep, 227568, SPELL_CAST_START, 1710108885.799, SPELL_CAST_START, false, Creature-0-67-1651-0-114261-00007C24C9, Toe Knee, 2632, 0, , nil, -2147483648, -2147483648, 227568, Burning Leg Sweep, 4", + ["227568-SPELL_MISSED"] = "Burning Leg Sweep, 227568, SPELL_MISSED, 1710108888.565, SPELL_MISSED, false, Creature-0-67-1651-0-114261-00007C24C9, Toe Knee, 2632, 0, Player-67-003453A3, Notadh, 1298, 0, 227568, Burning Leg Sweep, 4, ABSORB, false, 689633", + ["227568-SPELL_AURA_REMOVED"] = "Burning Leg Sweep, 227568, SPELL_AURA_REMOVED, 1710108890.617, SPELL_AURA_REMOVED, false, Creature-0-67-1651-0-114261-00007C24C9, Toe Knee, 68168, 0, Player-67-00345CD7, Bagrintwo, 1298, 0, 227568, Burning Leg Sweep, 4, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/227592.txt b/WeakAuras/Projects/RaiderlosSA/out/227592.txt new file mode 100644 index 0000000..269f3b8 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/227592.txt @@ -0,0 +1,5 @@ + ["227592-SPELL_CAST_START"] = "Frostbite, 227592, SPELL_CAST_START, 1709804132.312, SPELL_CAST_START, false, Creature-0-67-1651-0-114350-00002A9EDB, Shade of Medivh, 68168, 0, , nil, -2147483648, -2147483648, 227592, Frostbite, 16", + ["227592-SPELL_AURA_APPLIED"] = "Frostbite, 227592, SPELL_AURA_APPLIED, 1709804135.942, SPELL_AURA_APPLIED, false, Creature-0-67-1651-0-114350-00002A9EDB, Shade of Medivh, 68168, 0, Player-67-0035205B, Laewiä, 1298, 0, 227592, Frostbite, 16, DEBUFF", + ["227592-SPELL_AURA_REMOVED"] = "Frostbite, 227592, SPELL_AURA_REMOVED, 1709804156.031, SPELL_AURA_REMOVED, false, Creature-0-67-1651-0-114350-00002A9EDB, Shade of Medivh, 68168, 0, Player-67-0035205B, Laewiä, 1298, 0, 227592, Frostbite, 16, DEBUFF", + ["227592-SPELL_DAMAGE"] = "Frostbite, 227592, SPELL_DAMAGE, 1709804135.896, SPELL_DAMAGE, false, Creature-0-67-1651-0-114350-00002A9EDB, Shade of Medivh, 68168, 0, Player-67-0035205B, Laewiä, 1298, 0, 227592, Frostbite, 16, 1761421, -1, 16, nil, nil, nil, false, false, false, false", + ["227592-SPELL_CAST_SUCCESS"] = "Frostbite, 227592, SPELL_CAST_SUCCESS, 1709804135.344, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114350-00002A9EDB, Shade of Medivh, 68168, 0, Player-67-0035205B, Laewiä, 1298, 0, 227592, Frostbite, 16", diff --git a/WeakAuras/Projects/RaiderlosSA/out/227615.txt b/WeakAuras/Projects/RaiderlosSA/out/227615.txt new file mode 100644 index 0000000..66d4efd --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/227615.txt @@ -0,0 +1,2 @@ + ["227615-SPELL_CAST_START"] = "Inferno Bolt, 227615, SPELL_CAST_START, 1709760605.188, SPELL_CAST_START, false, Creature-0-67-1651-0-114350-00005713CB, Shade of Medivh, 68168, 0, , nil, -2147483648, -2147483648, 227615, Inferno Bolt, 4", + ["227615-SPELL_CAST_SUCCESS"] = "Inferno Bolt, 227615, SPELL_CAST_SUCCESS, 1709760608.222, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114350-00005713CB, Shade of Medivh, 68168, 0, Player-67-003516C9, Mistwrap, 1298, 0, 227615, Inferno Bolt, 4", diff --git a/WeakAuras/Projects/RaiderlosSA/out/227628.txt b/WeakAuras/Projects/RaiderlosSA/out/227628.txt new file mode 100644 index 0000000..ed1fc15 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/227628.txt @@ -0,0 +1 @@ + ["227628-SPELL_CAST_SUCCESS"] = "Piercing Missiles, 227628, SPELL_CAST_SUCCESS, 1709760609.284, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114350-00005713CB, Shade of Medivh, 68168, 0, Player-67-001380D1, Симпотяяшка, 1298, 0, 227628, Piercing Missiles, 64", diff --git a/WeakAuras/Projects/RaiderlosSA/out/227646.txt b/WeakAuras/Projects/RaiderlosSA/out/227646.txt new file mode 100644 index 0000000..f640a27 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/227646.txt @@ -0,0 +1,4 @@ + ["227646-SPELL_AURA_APPLIED"] = "Iron Whirlwind, 227646, SPELL_AURA_APPLIED, 1710109587.717, SPELL_AURA_APPLIED, false, Creature-0-67-1651-0-114318-00007BEA9E, Baron Rafe Dreuger, 2632, 0, Creature-0-67-1651-0-114318-00007BEA9E, Baron Rafe Dreuger, 2632, 0, 227646, Iron Whirlwind, 1, BUFF", + ["227646-SPELL_AURA_REMOVED"] = "Iron Whirlwind, 227646, SPELL_AURA_REMOVED, 1710109595.727, SPELL_AURA_REMOVED, false, Creature-0-67-1651-0-114318-00007BEA9E, Baron Rafe Dreuger, 2632, 0, Creature-0-67-1651-0-114318-00007BEA9E, Baron Rafe Dreuger, 2632, 0, 227646, Iron Whirlwind, 1, BUFF", + ["227646-SPELL_AURA_APPLIED"] = "Iron Whirlwind, 227646, SPELL_AURA_APPLIED, 1709910046.005, SPELL_AURA_APPLIED, false, Creature-0-67-1651-0-114318-0000456A0D, Baron Rafe Dreuger, 2584, 0, Creature-0-67-1651-0-114318-0000456A0D, Baron Rafe Dreuger, 2584, 0, 227646, Iron Whirlwind, 1, BUFF", + ["227646-SPELL_AURA_REMOVED"] = "Iron Whirlwind, 227646, SPELL_AURA_REMOVED, 1709910051.618, SPELL_AURA_REMOVED, false, Creature-0-67-1651-0-114318-0000456A0D, Baron Rafe Dreuger, 2584, 0, Creature-0-67-1651-0-114318-0000456A0D, Baron Rafe Dreuger, 2584, 0, 227646, Iron Whirlwind, 1, BUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/227672.txt b/WeakAuras/Projects/RaiderlosSA/out/227672.txt new file mode 100644 index 0000000..d340dd8 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/227672.txt @@ -0,0 +1,5 @@ + ["227672-SPELL_MISSED"] = "Will Breaker, 227672, SPELL_MISSED, 1710109593.863, SPELL_MISSED, false, Creature-0-67-1651-0-114321-00007BEAA0, Lord Crispin Ference, 2632, 0, Pet-0-67-1651-0-78158-00007CFCF5, Doomguard, 4369, 0, 227672, Will Breaker, 2, ABSORB, false, 123467", + ["227672-SPELL_CAST_START"] = "Will Breaker, 227672, SPELL_CAST_START, 1709939021.795, SPELL_CAST_START, false, Creature-0-67-1651-0-114321-0000724BBA, Lord Crispin Ference, 2632, 0, , nil, -2147483648, -2147483648, 227672, Will Breaker, 2", + ["227672-SPELL_ABSORBED"] = "Will Breaker, 227672, SPELL_ABSORBED, 1710109593.863, SPELL_ABSORBED, false, Creature-0-67-1651-0-114321-00007BEAA0, Lord Crispin Ference, 2632, 0, Player-67-0033159C, Yogistyle, 1298, 0, 227672, Will Breaker, 2, Player-67-0033159C, Yogistyle, 1298, 0, 122470, Touch of Karma, 1, 905570", + ["227672-SPELL_DAMAGE"] = "Will Breaker, 227672, SPELL_DAMAGE, 1709939022.682, SPELL_DAMAGE, false, Creature-0-67-1651-0-114321-0000724BBA, Lord Crispin Ference, 2632, 0, Player-67-00247307, Smallpumper, 1298, 0, 227672, Will Breaker, 2, 1666533, -1, 2, nil, nil, nil, false, false, false, false", + ["227672-SPELL_CAST_SUCCESS"] = "Will Breaker, 227672, SPELL_CAST_SUCCESS, 1709939022.682, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114321-0000724BBA, Lord Crispin Ference, 2632, 0, Player-67-00247307, Smallpumper, 1298, 0, 227672, Will Breaker, 2", diff --git a/WeakAuras/Projects/RaiderlosSA/out/227776.txt b/WeakAuras/Projects/RaiderlosSA/out/227776.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/227779.txt b/WeakAuras/Projects/RaiderlosSA/out/227779.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/227793.txt b/WeakAuras/Projects/RaiderlosSA/out/227793.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/227966.txt b/WeakAuras/Projects/RaiderlosSA/out/227966.txt new file mode 100644 index 0000000..8bfe484 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/227966.txt @@ -0,0 +1,3 @@ + ["227966-SPELL_DAMAGE"] = "Flashlight, 227966, SPELL_DAMAGE, 1709909914.586, SPELL_DAMAGE, false, Creature-0-67-1651-0-114544-0000456ACA, Skeletal Usher, 2632, 0, Player-67-0034F98C, Elisnakiri, 1298, 0, 227966, Flashlight, 2, 146051, -1, 2, nil, nil, nil, false, false, false, false", + ["227966-SPELL_CAST_START"] = "Flashlight, 227966, SPELL_CAST_START, 1709909899.852, SPELL_CAST_START, false, Creature-0-67-1651-0-114544-0000456A9E, Skeletal Usher, 2632, 0, , nil, -2147483648, -2147483648, 227966, Flashlight, 2", + ["227966-SPELL_CAST_SUCCESS"] = "Flashlight, 227966, SPELL_CAST_SUCCESS, 1709909914.586, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114544-0000456ACA, Skeletal Usher, 2632, 0, , nil, -2147483648, -2147483648, 227966, Flashlight, 2", diff --git a/WeakAuras/Projects/RaiderlosSA/out/227987.txt b/WeakAuras/Projects/RaiderlosSA/out/227987.txt new file mode 100644 index 0000000..12bc768 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/227987.txt @@ -0,0 +1 @@ + ["227987-SPELL_CAST_START"] = "Dinner Bell!, 227987, SPELL_CAST_START, 1710352324.544, SPELL_CAST_START, false, Creature-0-7-1651-0-114328-0000237E53, Coggleston, 68168, 0, , nil, -2147483648, -2147483648, 227987, Dinner Bell!, 4", diff --git a/WeakAuras/Projects/RaiderlosSA/out/228025.txt b/WeakAuras/Projects/RaiderlosSA/out/228025.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/228221.txt b/WeakAuras/Projects/RaiderlosSA/out/228221.txt new file mode 100644 index 0000000..b11efc6 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/228221.txt @@ -0,0 +1,2 @@ + ["228221-SPELL_AURA_APPLIED"] = "Severe Dusting, 228221, SPELL_AURA_APPLIED, 1710352267.374, SPELL_AURA_APPLIED, false, Creature-0-7-1651-0-114330-0000237E55, Babblet, 2632, 0, Player-7-00105511, Mezi-epicx1, 1298, 0, 228221, Severe Dusting, 1, DEBUFF", + ["228221-SPELL_AURA_REMOVED"] = "Severe Dusting, 228221, SPELL_AURA_REMOVED, 1710352279.507, SPELL_AURA_REMOVED, false, Creature-0-7-1651-0-114330-0000237E55, Babblet, 2632, 0, Player-7-00105511, Mezi-epicx1, 1298, 64, 228221, Severe Dusting, 1, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/228225.txt b/WeakAuras/Projects/RaiderlosSA/out/228225.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/228269.txt b/WeakAuras/Projects/RaiderlosSA/out/228269.txt new file mode 100644 index 0000000..4286d5b --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/228269.txt @@ -0,0 +1,2 @@ + ["228269-SPELL_CAST_START"] = "Flame Wreath, 228269, SPELL_CAST_START, 1709804155.502, SPELL_CAST_START, false, Creature-0-67-1651-0-114350-00002A9EDB, Shade of Medivh, 68168, 0, , nil, -2147483648, -2147483648, 228269, Flame Wreath, 4", + ["228269-SPELL_CAST_SUCCESS"] = "Flame Wreath, 228269, SPELL_CAST_SUCCESS, 1709804158.55, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114350-00002A9EDB, Shade of Medivh, 68168, 0, , nil, -2147483648, -2147483648, 228269, Flame Wreath, 4", diff --git a/WeakAuras/Projects/RaiderlosSA/out/228277.txt b/WeakAuras/Projects/RaiderlosSA/out/228277.txt new file mode 100644 index 0000000..46e86cf --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/228277.txt @@ -0,0 +1,8 @@ + ["228277-SPELL_CAST_START"] = "Shackles of Servitude, 228277, SPELL_CAST_START, 1709913037.858, SPELL_CAST_START, false, Creature-0-67-1651-0-114629-000049DFC4, Spectral Retainer, 2632, 0, , nil, -2147483648, -2147483648, 228277, Shackles of Servitude, 32", + ["228277-SPELL_AURA_REMOVED"] = "Shackles of Servitude, 228277, SPELL_AURA_REMOVED, 1709913076.959, SPELL_AURA_REMOVED, false, Creature-0-67-1651-0-114629-000049DFC4, Spectral Retainer, 2632, 0, Player-67-002E06C1, Yabadabaduu, 1298, 0, 228277, Shackles of Servitude, 32, DEBUFF", + ["228277-SPELL_AURA_APPLIED"] = "Shackles of Servitude, 228277, SPELL_AURA_APPLIED, 1709913061.954, SPELL_AURA_APPLIED, false, Creature-0-67-1651-0-114629-000049DFC4, Spectral Retainer, 2632, 0, Player-67-002E06C1, Yabadabaduu, 1298, 0, 228277, Shackles of Servitude, 32, DEBUFF", + ["228277-SPELL_CAST_SUCCESS"] = "Shackles of Servitude, 228277, SPELL_CAST_SUCCESS, 1709913061.917, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114629-000049DFC4, Spectral Retainer, 2632, 0, Player-67-002E06C1, Yabadabaduu, 1298, 0, 228277, Shackles of Servitude, 32", + ["228277-SPELL_CAST_START"] = "Shackles of Servitude, 228277, SPELL_CAST_START, 1709910019.784, SPELL_CAST_START, false, Creature-0-67-1651-0-114634-0000456A70, Undying Servant, 2632, 0, , nil, -2147483648, -2147483648, 228277, Shackles of Servitude, 32", + ["228277-SPELL_AURA_APPLIED"] = "Shackles of Servitude, 228277, SPELL_AURA_APPLIED, 1709910021.879, SPELL_AURA_APPLIED, false, Creature-0-67-1651-0-114634-0000456A70, Undying Servant, 2632, 0, Player-67-0034F98C, Elisnakiri, 1298, 0, 228277, Shackles of Servitude, 32, DEBUFF", + ["228277-SPELL_CAST_SUCCESS"] = "Shackles of Servitude, 228277, SPELL_CAST_SUCCESS, 1709910021.833, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114634-0000456A70, Undying Servant, 2632, 0, Player-67-0034F98C, Elisnakiri, 1298, 0, 228277, Shackles of Servitude, 32", + ["228277-SPELL_AURA_REMOVED"] = "Shackles of Servitude, 228277, SPELL_AURA_REMOVED, 1709910022.838, SPELL_AURA_REMOVED, false, Creature-0-67-1651-0-114634-0000456A70, Undying Servant, 2632, 0, Player-67-0034F98C, Elisnakiri, 1298, 0, 228277, Shackles of Servitude, 32, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/228278.txt b/WeakAuras/Projects/RaiderlosSA/out/228278.txt new file mode 100644 index 0000000..d6f3eaa --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/228278.txt @@ -0,0 +1,8 @@ + ["228278-SPELL_CAST_START"] = "Demoralizing Shout, 228278, SPELL_CAST_START, 1709913035.712, SPELL_CAST_START, false, Creature-0-67-1651-0-114633-000049DFDE, Spectral Valet, 2632, 0, , nil, -2147483648, -2147483648, 228278, Demoralizing Shout, 1", + ["228278-SPELL_CAST_SUCCESS"] = "Demoralizing Shout, 228278, SPELL_CAST_SUCCESS, 1709913059.252, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114633-000049DFDE, Spectral Valet, 2632, 0, , nil, -2147483648, -2147483648, 228278, Demoralizing Shout, 1", + ["228278-SPELL_AURA_REMOVED"] = "Demoralizing Shout, 228278, SPELL_AURA_REMOVED, 1709938883.802, SPELL_AURA_REMOVED, false, Creature-0-67-1651-0-114633-000071EEC1, Spectral Valet, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 228278, Demoralizing Shout, 1, DEBUFF", + ["228278-SPELL_AURA_APPLIED"] = "Demoralizing Shout, 228278, SPELL_AURA_APPLIED, 1709938863.788, SPELL_AURA_APPLIED, false, Creature-0-67-1651-0-114633-000071EEC1, Spectral Valet, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 228278, Demoralizing Shout, 1, DEBUFF", + ["228278-SPELL_CAST_SUCCESS"] = "Demoralizing Shout, 228278, SPELL_CAST_SUCCESS, 1709909901.636, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114633-0000456A8C, Spectral Valet, 68168, 0, , nil, -2147483648, -2147483648, 228278, Demoralizing Shout, 1", + ["228278-SPELL_AURA_APPLIED"] = "Demoralizing Shout, 228278, SPELL_AURA_APPLIED, 1709909901.636, SPELL_AURA_APPLIED, false, Creature-0-67-1651-0-114633-0000456A8C, Spectral Valet, 68168, 0, Creature-0-67-1651-0-97055-000045B5E6, Shambling Horror, 4370, 0, 228278, Demoralizing Shout, 1, DEBUFF", + ["228278-SPELL_AURA_REMOVED"] = "Demoralizing Shout, 228278, SPELL_AURA_REMOVED, 1709909903.147, SPELL_AURA_REMOVED, false, Creature-0-67-1651-0-114633-0000456A8C, Spectral Valet, 68168, 0, Creature-0-67-1651-0-97055-000045B5E6, Shambling Horror, 4370, 0, 228278, Demoralizing Shout, 1, DEBUFF", + ["228278-SPELL_CAST_START"] = "Demoralizing Shout, 228278, SPELL_CAST_START, 1709909899.633, SPELL_CAST_START, false, Creature-0-67-1651-0-114633-0000456A8C, Spectral Valet, 2632, 0, , nil, -2147483648, -2147483648, 228278, Demoralizing Shout, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/228279.txt b/WeakAuras/Projects/RaiderlosSA/out/228279.txt new file mode 100644 index 0000000..90dc9cf --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/228279.txt @@ -0,0 +1,8 @@ + ["228279-SPELL_CAST_SUCCESS"] = "Shadow Rejuvenation, 228279, SPELL_CAST_SUCCESS, 1709913568.703, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114632-000049DF00, Spectral Attendant, 2632, 0, , nil, -2147483648, -2147483648, 228279, Shadow Rejuvenation, 32", + ["228279-SPELL_AURA_APPLIED"] = "Shadow Rejuvenation, 228279, SPELL_AURA_APPLIED, 1709913568.703, SPELL_AURA_APPLIED, false, Creature-0-67-1651-0-114632-000049DF00, Spectral Attendant, 2632, 0, Creature-0-67-1651-0-114632-000049DF00, Spectral Attendant, 2632, 0, 228279, Shadow Rejuvenation, 32, BUFF", + ["228279-SPELL_CAST_START"] = "Shadow Rejuvenation, 228279, SPELL_CAST_START, 1709913567.14, SPELL_CAST_START, false, Creature-0-67-1651-0-114632-000049DF00, Spectral Attendant, 2632, 0, , nil, -2147483648, -2147483648, 228279, Shadow Rejuvenation, 32", + ["228279-SPELL_AURA_REMOVED"] = "Shadow Rejuvenation, 228279, SPELL_AURA_REMOVED, 1709913572.582, SPELL_AURA_REMOVED, false, Creature-0-67-1651-0-114632-000049DF00, Spectral Attendant, 2632, 0, Creature-0-67-1651-0-114632-000049DF00, Spectral Attendant, 2632, 0, 228279, Shadow Rejuvenation, 32, BUFF", + ["228279-SPELL_AURA_APPLIED"] = "Shadow Rejuvenation, 228279, SPELL_AURA_APPLIED, 1709910015.324, SPELL_AURA_APPLIED, false, Creature-0-67-1651-0-114632-0000456A6F, Spectral Attendant, 2632, 0, Creature-0-67-1651-0-114632-0000456A6F, Spectral Attendant, 2632, 0, 228279, Shadow Rejuvenation, 32, BUFF", + ["228279-SPELL_CAST_SUCCESS"] = "Shadow Rejuvenation, 228279, SPELL_CAST_SUCCESS, 1709910015.324, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114632-0000456A6F, Spectral Attendant, 2632, 0, , nil, -2147483648, -2147483648, 228279, Shadow Rejuvenation, 32", + ["228279-SPELL_CAST_START"] = "Shadow Rejuvenation, 228279, SPELL_CAST_START, 1709910013.842, SPELL_CAST_START, false, Creature-0-67-1651-0-114632-0000456A6F, Spectral Attendant, 2632, 0, , nil, -2147483648, -2147483648, 228279, Shadow Rejuvenation, 32", + ["228279-SPELL_AURA_REMOVED"] = "Shadow Rejuvenation, 228279, SPELL_AURA_REMOVED, 1709910027.35, SPELL_AURA_REMOVED, false, Creature-0-67-1651-0-114632-0000456A6F, Spectral Attendant, 2632, 0, Creature-0-67-1651-0-114632-0000456A6F, Spectral Attendant, 2632, 0, 228279, Shadow Rejuvenation, 32, BUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/228837.txt b/WeakAuras/Projects/RaiderlosSA/out/228837.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/228852.txt b/WeakAuras/Projects/RaiderlosSA/out/228852.txt new file mode 100644 index 0000000..e2b7c10 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/228852.txt @@ -0,0 +1,3 @@ + ["228852-SPELL_DAMAGE"] = "Shared Suffering, 228852, SPELL_DAMAGE, 1709939101.277, SPELL_DAMAGE, false, Creature-0-67-1651-0-114262-000071F012, Attumen the Huntsman, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 228852, Shared Suffering, 32, 4750072, -1, 32, nil, nil, nil, false, false, false, false", + ["228852-SPELL_CAST_START"] = "Shared Suffering, 228852, SPELL_CAST_START, 1709913456.27, SPELL_CAST_START, false, Creature-0-67-1651-0-114262-000049E08F, Attumen the Huntsman, 2632, 0, , nil, -2147483648, -2147483648, 228852, Shared Suffering, 32", + ["228852-SPELL_CAST_SUCCESS"] = "Shared Suffering, 228852, SPELL_CAST_SUCCESS, 1709913460.12, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114262-000049E08F, Attumen the Huntsman, 2632, 0, , nil, -2147483648, -2147483648, 228852, Shared Suffering, 32", diff --git a/WeakAuras/Projects/RaiderlosSA/out/229083.txt b/WeakAuras/Projects/RaiderlosSA/out/229083.txt new file mode 100644 index 0000000..18d2111 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/229083.txt @@ -0,0 +1,9 @@ + ["229083-SPELL_PERIODIC_MISSED"] = "Burning Blast, 229083, SPELL_PERIODIC_MISSED, 1709760933.445, SPELL_PERIODIC_MISSED, false, Creature-0-67-1651-0-114790-000057714E, Viz'aduum the Watcher, 68168, 0, Player-67-001380D1, Симпотяяшка, 1298, 0, 229083, Burning Blast, 4, IMMUNE, false", + ["229083-SPELL_CAST_START"] = "Burning Blast, 229083, SPELL_CAST_START, 1709760920.383, SPELL_CAST_START, false, Creature-0-67-1651-0-114790-000057714E, Viz'aduum the Watcher, 68168, 0, , nil, -2147483648, -2147483648, 229083, Burning Blast, 4", + ["229083-SPELL_AURA_REMOVED"] = "Burning Blast, 229083, SPELL_AURA_REMOVED, 1709760935.397, SPELL_AURA_REMOVED, false, Creature-0-67-1651-0-114790-000057714E, Viz'aduum the Watcher, 68168, 0, Player-67-001380D1, Симпотяяшка, 1298, 0, 229083, Burning Blast, 4, DEBUFF", + ["229083-SPELL_AURA_APPLIED"] = "Burning Blast, 229083, SPELL_AURA_APPLIED, 1709760922.454, SPELL_AURA_APPLIED, false, Creature-0-67-1651-0-114790-000057714E, Viz'aduum the Watcher, 68168, 0, Player-67-001380D1, Симпотяяшка, 1298, 0, 229083, Burning Blast, 4, DEBUFF", + ["229083-SPELL_DAMAGE"] = "Burning Blast, 229083, SPELL_DAMAGE, 1709760922.403, SPELL_DAMAGE, false, Creature-0-67-1651-0-114790-000057714E, Viz'aduum the Watcher, 68168, 0, Player-67-001380D1, Симпотяяшка, 1298, 0, 229083, Burning Blast, 4, 137169, -1, 4, nil, nil, nil, false, false, false, false", + ["229083-SPELL_CAST_SUCCESS"] = "Burning Blast, 229083, SPELL_CAST_SUCCESS, 1709760922.403, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114790-000057714E, Viz'aduum the Watcher, 68168, 0, Player-67-001380D1, Симпотяяшка, 1298, 0, 229083, Burning Blast, 4", + ["229083-SPELL_AURA_APPLIED_DOSE"] = "Burning Blast, 229083, SPELL_AURA_APPLIED_DOSE, 1709760927.313, SPELL_AURA_APPLIED_DOSE, false, Creature-0-67-1651-0-114790-000057714E, Viz'aduum the Watcher, 68168, 0, Player-67-001380D1, Симпотяяшка, 1298, 0, 229083, Burning Blast, 4, DEBUFF, 2", + ["229083-SPELL_ABSORBED"] = "Burning Blast, 229083, SPELL_ABSORBED, 1709804607.455, SPELL_ABSORBED, false, Creature-0-67-1651-0-114790-00002B13F5, Viz'aduum the Watcher, 68168, 0, Player-67-003516C9, Mistwrap, 1298, 0, 229083, Burning Blast, 4, Player-67-003516C9, Mistwrap, 1298, 0, 214423, Stance of the Mountain, 1, 127400", + ["229083-SPELL_PERIODIC_DAMAGE"] = "Burning Blast, 229083, SPELL_PERIODIC_DAMAGE, 1709760923.419, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1651-0-114790-000057714E, Viz'aduum the Watcher, 68168, 0, Player-67-001380D1, Симпотяяшка, 1298, 0, 229083, Burning Blast, 4, 130793, 0, 4, nil, nil, nil, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/229151.txt b/WeakAuras/Projects/RaiderlosSA/out/229151.txt new file mode 100644 index 0000000..a42ceda --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/229151.txt @@ -0,0 +1,5 @@ + ["229151-SPELL_CAST_START"] = "Disintegrate, 229151, SPELL_CAST_START, 1709760944.73, SPELL_CAST_START, false, Creature-0-67-1651-0-114790-000057714E, Viz'aduum the Watcher, 2632, 0, , nil, -2147483648, -2147483648, 229151, Disintegrate, 4", + ["229151-SPELL_CAST_SUCCESS"] = "Disintegrate, 229151, SPELL_CAST_SUCCESS, 1709760948.815, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-114790-000057714E, Viz'aduum the Watcher, 68168, 0, , nil, -2147483648, -2147483648, 229151, Disintegrate, 4", + ["229151-SPELL_ABSORBED"] = "Disintegrate, 229151, SPELL_ABSORBED, 1709760948.787, SPELL_ABSORBED, false, Creature-0-67-1651-0-114790-000057714E, Viz'aduum the Watcher, 68168, 0, Player-67-003453A3, Notadh, 1298, 0, 229151, Disintegrate, 4, Player-67-003453A3, Notadh, 1298, 0, 207472, Xavaric's Magnum Opus, 1, 669377", + ["229151-SPELL_DAMAGE"] = "Disintegrate, 229151, SPELL_DAMAGE, 1709760948.815, SPELL_DAMAGE, false, Creature-0-67-1651-0-114790-000057714E, Viz'aduum the Watcher, 68168, 0, Player-67-001380D1, Симпотяяшка, 1298, 0, 229151, Disintegrate, 4, 845965, -1, 4, nil, nil, nil, false, false, false, false", + ["229151-SPELL_MISSED"] = "Disintegrate, 229151, SPELL_MISSED, 1709760948.815, SPELL_MISSED, false, Creature-0-67-1651-0-114790-000057714E, Viz'aduum the Watcher, 68168, 0, Player-67-003453A3, Notadh, 1298, 0, 229151, Disintegrate, 4, ABSORB, false, 669377", diff --git a/WeakAuras/Projects/RaiderlosSA/out/229159.txt b/WeakAuras/Projects/RaiderlosSA/out/229159.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/229662.txt b/WeakAuras/Projects/RaiderlosSA/out/229662.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/229706.txt b/WeakAuras/Projects/RaiderlosSA/out/229706.txt new file mode 100644 index 0000000..41ea3cc --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/229706.txt @@ -0,0 +1,8 @@ + ["229706-SPELL_HEAL"] = "Leech Life, 229706, SPELL_HEAL, 1709760700.99, SPELL_HEAL, false, Creature-0-67-1651-0-115418-00005713C9, Spider, 2632, 0, Creature-0-67-1651-0-115418-00005713C9, Spider, 2632, 0, 229706, Leech Life, 8, 1179483, 0, 0, false", + ["229706-SPELL_AURA_APPLIED"] = "Leech Life, 229706, SPELL_AURA_APPLIED, 1709760699.037, SPELL_AURA_APPLIED, false, Creature-0-67-1651-0-115418-00005713C9, Spider, 2632, 0, Player-67-003003AA, Roxytwo, 1298, 0, 229706, Leech Life, 8, DEBUFF", + ["229706-SPELL_ABSORBED"] = "Leech Life, 229706, SPELL_ABSORBED, 1709760700.037, SPELL_ABSORBED, false, Creature-0-67-1651-0-115418-00005713C9, Spider, 2632, 0, Player-67-003003AA, Roxytwo, 1298, 0, 229706, Leech Life, 8, Player-67-003003AA, Roxytwo, 1298, 0, 108366, Soul Leech, 32, 393161", + ["229706-SPELL_CAST_START"] = "Leech Life, 229706, SPELL_CAST_START, 1709760697.947, SPELL_CAST_START, false, Creature-0-67-1651-0-115418-00005713C9, Spider, 2632, 0, , nil, -2147483648, -2147483648, 229706, Leech Life, 8", + ["229706-SPELL_MISSED"] = "Leech Life, 229706, SPELL_MISSED, 1709760700.037, SPELL_MISSED, false, Creature-0-67-1651-0-115418-00005713C9, Spider, 2632, 0, Player-67-003003AA, Roxytwo, 1298, 0, 229706, Leech Life, 8, ABSORB, false, 393161", + ["229706-SPELL_AURA_REMOVED"] = "Leech Life, 229706, SPELL_AURA_REMOVED, 1709760709.072, SPELL_AURA_REMOVED, false, Creature-0-67-1651-0-115418-00005713C9, Spider, 2632, 0, Player-67-003003AA, Roxytwo, 1298, 0, 229706, Leech Life, 8, DEBUFF", + ["229706-SPELL_DAMAGE"] = "Leech Life, 229706, SPELL_DAMAGE, 1709760700.99, SPELL_DAMAGE, false, Creature-0-67-1651-0-115418-00005713C9, Spider, 2632, 0, Player-67-003003AA, Roxytwo, 1298, 0, 229706, Leech Life, 8, 393161, -1, 8, nil, nil, nil, false, false, false, false", + ["229706-SPELL_CAST_SUCCESS"] = "Leech Life, 229706, SPELL_CAST_SUCCESS, 1709760698.977, SPELL_CAST_SUCCESS, false, Creature-0-67-1651-0-115418-00005713C9, Spider, 2632, 0, Player-67-003003AA, Roxytwo, 1298, 0, 229706, Leech Life, 8", diff --git a/WeakAuras/Projects/RaiderlosSA/out/229714.txt b/WeakAuras/Projects/RaiderlosSA/out/229714.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/230083.txt b/WeakAuras/Projects/RaiderlosSA/out/230083.txt new file mode 100644 index 0000000..1f3dbe5 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/230083.txt @@ -0,0 +1,2 @@ + ["230083-SPELL_AURA_APPLIED"] = "Nullification, 230083, SPELL_AURA_APPLIED, 1709760468.238, SPELL_AURA_APPLIED, false, Creature-0-67-1651-0-115765-000056C4B8, Abstract Nullifier, 68168, 0, Player-67-003516C9, Mistwrap, 1298, 0, 230083, Nullification, 1, DEBUFF", + ["230083-SPELL_AURA_REMOVED"] = "Nullification, 230083, SPELL_AURA_REMOVED, 1709760479.068, SPELL_AURA_REMOVED, false, Creature-0-67-1651-0-115765-000056C4B8, Abstract Nullifier, 2632, 0, Player-67-003516C9, Mistwrap, 1298, 0, 230083, Nullification, 1, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/232153.txt b/WeakAuras/Projects/RaiderlosSA/out/232153.txt new file mode 100644 index 0000000..2450b45 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/232153.txt @@ -0,0 +1,2 @@ + ["232153-SPELL_CAST_SUCCESS"] = "Kara Kazham!, 232153, SPELL_CAST_SUCCESS, 1710352316.1, SPELL_CAST_SUCCESS, false, Creature-0-7-1651-0-114328-0000237E53, Coggleston, 68168, 0, , nil, -2147483648, -2147483648, 232153, Kara Kazham!, 1", + ["232153-SPELL_CAST_START"] = "Kara Kazham!, 232153, SPELL_CAST_START, 1710352314.549, SPELL_CAST_START, false, Creature-0-7-1651-0-114328-0000237E53, Coggleston, 68168, 0, , nil, -2147483648, -2147483648, 232153, Kara Kazham!, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/234107.txt b/WeakAuras/Projects/RaiderlosSA/out/234107.txt new file mode 100644 index 0000000..be2c622 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/234107.txt @@ -0,0 +1,3 @@ + ["234107-SPELL_CAST_SUCCESS"] = "Chaotic Energy, 234107, SPELL_CAST_SUCCESS, 1710094528.763, SPELL_CAST_SUCCESS, false, Creature-0-67-1677-0-118804-000063578D, Domatrax, 68168, 0, , nil, -2147483648, -2147483648, 234107, Chaotic Energy, 4", + ["234107-SPELL_MISSED"] = "Chaotic Energy, 234107, SPELL_MISSED, 1710187478.044, SPELL_MISSED, false, Creature-0-67-1677-0-118804-00005FC36D, Domatrax, 2632, 0, Player-67-002DBA24, Athenà, 1298, 0, 234107, Chaotic Energy, 4, IMMUNE, false", + ["234107-SPELL_CAST_START"] = "Chaotic Energy, 234107, SPELL_CAST_START, 1710094523.746, SPELL_CAST_START, false, Creature-0-67-1677-0-118804-000063578D, Domatrax, 68168, 0, , nil, -2147483648, -2147483648, 234107, Chaotic Energy, 4", diff --git a/WeakAuras/Projects/RaiderlosSA/out/236543.txt b/WeakAuras/Projects/RaiderlosSA/out/236543.txt new file mode 100644 index 0000000..47f43c0 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/236543.txt @@ -0,0 +1,5 @@ + ["236543-SPELL_CAST_START"] = "Felsoul Cleave, 236543, SPELL_CAST_START, 1709751449.543, SPELL_CAST_START, false, Creature-0-67-1677-0-118804-0000472A9A, Domatrax, 68168, 0, , nil, -2147483648, -2147483648, 236543, Felsoul Cleave, 4", + ["236543-SPELL_ENERGIZE"] = "Felsoul Cleave, 236543, SPELL_ENERGIZE, 1710347335.287, SPELL_ENERGIZE, false, Creature-0-67-1677-0-118804-0000353E88, Domatrax, 2632, 0, Creature-0-67-1677-0-69791-000036D3F0, Соломонка, 4370, 0, 236543, Felsoul Cleave, 4, -550000, -550000, 10, 0", + ["236543-SPELL_CAST_SUCCESS"] = "Felsoul Cleave, 236543, SPELL_CAST_SUCCESS, 1709751451.542, SPELL_CAST_SUCCESS, false, Creature-0-67-1677-0-118804-0000472A9A, Domatrax, 68168, 0, , nil, -2147483648, -2147483648, 236543, Felsoul Cleave, 4", + ["236543-SPELL_DAMAGE"] = "Felsoul Cleave, 236543, SPELL_DAMAGE, 1709751451.542, SPELL_DAMAGE, false, Creature-0-67-1677-0-118804-0000472A9A, Domatrax, 68168, 0, Player-67-003514F7, Orste, 1298, 0, 236543, Felsoul Cleave, 4, 198168, -1, 4, nil, 132111, nil, false, false, false, false", + ["236543-SPELL_ABSORBED"] = "Felsoul Cleave, 236543, SPELL_ABSORBED, 1710187518.703, SPELL_ABSORBED, false, Creature-0-67-1677-0-118804-00005FC36D, Domatrax, 68168, 0, Player-67-002DBA24, Athenà, 1298, 0, 236543, Felsoul Cleave, 4, Player-67-002DBA24, Athenà, 1298, 0, 209388, Bulwark of Order, 2, 939825", diff --git a/WeakAuras/Projects/RaiderlosSA/out/236627.txt b/WeakAuras/Projects/RaiderlosSA/out/236627.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/237726.txt b/WeakAuras/Projects/RaiderlosSA/out/237726.txt new file mode 100644 index 0000000..8deb7fa --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/237726.txt @@ -0,0 +1,3 @@ + ["237726-SPELL_AURA_APPLIED"] = "Scornful Gaze, 237726, SPELL_AURA_APPLIED, 1709751320.563, SPELL_AURA_APPLIED, false, Creature-0-67-1677-0-117194-0000472A8C, Thrashbite the Scornful, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 237726, Scornful Gaze, 1, DEBUFF", + ["237726-SPELL_CAST_SUCCESS"] = "Scornful Gaze, 237726, SPELL_CAST_SUCCESS, 1709751320.485, SPELL_CAST_SUCCESS, false, Creature-0-67-1677-0-117194-0000472A8C, Thrashbite the Scornful, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 237726, Scornful Gaze, 1", + ["237726-SPELL_AURA_REMOVED"] = "Scornful Gaze, 237726, SPELL_AURA_REMOVED, 1709751326.496, SPELL_AURA_REMOVED, false, Creature-0-67-1677-0-117194-0000472A8C, Thrashbite the Scornful, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 237726, Scornful Gaze, 1, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/238315.txt b/WeakAuras/Projects/RaiderlosSA/out/238315.txt new file mode 100644 index 0000000..4882ea2 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/238315.txt @@ -0,0 +1,5 @@ + ["238315-SPELL_CAST_SUCCESS"] = "Shadow Sweep, 238315, SPELL_CAST_SUCCESS, 1710094546.523, SPELL_CAST_SUCCESS, false, Creature-0-67-1677-0-118802-000064D540, Hellblaze Mistress, 2632, 0, , nil, -2147483648, -2147483648, 238315, Shadow Sweep, 32", + ["238315-SPELL_DAMAGE"] = "Shadow Sweep, 238315, SPELL_DAMAGE, 1710094546.523, SPELL_DAMAGE, false, Creature-0-67-1677-0-118802-000064D540, Hellblaze Mistress, 2632, 0, Player-67-00328C5C, Stanlèy, 1298, 0, 238315, Shadow Sweep, 32, 1431109, -1, 32, nil, nil, nil, false, false, false, false", + ["238315-SPELL_MISSED"] = "Shadow Sweep, 238315, SPELL_MISSED, 1710094570.377, SPELL_MISSED, false, Creature-0-67-1677-0-118802-000064D80A, Hellblaze Mistress, 2632, 0, Player-67-0027F204, Touchofcheek, 1298, 0, 238315, Shadow Sweep, 32, ABSORB, false, 1984286", + ["238315-SPELL_CAST_START"] = "Shadow Sweep, 238315, SPELL_CAST_START, 1710094545.992, SPELL_CAST_START, false, Creature-0-67-1677-0-118802-000064D540, Hellblaze Mistress, 2632, 0, , nil, -2147483648, -2147483648, 238315, Shadow Sweep, 32", + ["238315-SPELL_ABSORBED"] = "Shadow Sweep, 238315, SPELL_ABSORBED, 1710094570.345, SPELL_ABSORBED, false, Creature-0-67-1677-0-118802-000064D80A, Hellblaze Mistress, 2632, 0, Player-67-0027F204, Touchofcheek, 1298, 0, 238315, Shadow Sweep, 32, Player-67-0027F204, Touchofcheek, 1298, 0, 252208, Refractive Shell, 2, 362103", diff --git a/WeakAuras/Projects/RaiderlosSA/out/238543.txt b/WeakAuras/Projects/RaiderlosSA/out/238543.txt new file mode 100644 index 0000000..57496c3 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/238543.txt @@ -0,0 +1,3 @@ + ["238543-SPELL_CAST_SUCCESS"] = "Demonic Mending, 238543, SPELL_CAST_SUCCESS, 1709751039.065, SPELL_CAST_SUCCESS, false, Creature-0-67-1677-0-119923-00004729ED, Helblaze Soulmender, 2632, 0, , nil, -2147483648, -2147483648, 238543, Demonic Mending, 4", + ["238543-SPELL_HEAL"] = "Demonic Mending, 238543, SPELL_HEAL, 1709751039.065, SPELL_HEAL, false, Creature-0-67-1677-0-119923-00004729ED, Helblaze Soulmender, 2632, 0, Creature-0-67-1677-0-118700-00004729DE, Felblight Stalker, 2632, 0, 238543, Demonic Mending, 4, 1178528, 0, 0, false", + ["238543-SPELL_CAST_START"] = "Demonic Mending, 238543, SPELL_CAST_START, 1709751036.06, SPELL_CAST_START, false, Creature-0-67-1677-0-119923-00004729ED, Helblaze Soulmender, 2632, 0, , nil, -2147483648, -2147483648, 238543, Demonic Mending, 4", diff --git a/WeakAuras/Projects/RaiderlosSA/out/239217.txt b/WeakAuras/Projects/RaiderlosSA/out/239217.txt new file mode 100644 index 0000000..67330ee --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/239217.txt @@ -0,0 +1,5 @@ + ["239217-SPELL_DAMAGE"] = "Blinding Glare, 239217, SPELL_DAMAGE, 1710094168.42, SPELL_DAMAGE, false, Creature-0-67-1677-0-118723-0000635799, Gazerax, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 239217, Blinding Glare, 32, 3827306, -1, 32, nil, nil, 966896, false, false, false, false", + ["239217-SPELL_ABSORBED"] = "Blinding Glare, 239217, SPELL_ABSORBED, 1710094168.42, SPELL_ABSORBED, false, Creature-0-67-1677-0-118723-0000635799, Gazerax, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 239217, Blinding Glare, 32, Player-67-002D9DD1, Succpotato, 1297, 0, 108366, Soul Leech, 32, 966896", + ["239217-SPELL_CAST_SUCCESS"] = "Blinding Glare, 239217, SPELL_CAST_SUCCESS, 1709938266.724, SPELL_CAST_SUCCESS, false, Creature-0-67-1677-0-118723-0000714407, Gazerax, 2632, 0, , nil, -2147483648, -2147483648, 239217, Blinding Glare, 32", + ["239217-SPELL_AURA_REMOVED"] = "Blinding Glare, 239217, SPELL_AURA_REMOVED, 1710094174.531, SPELL_AURA_REMOVED, false, Creature-0-67-1677-0-118723-0000635799, Gazerax, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 239217, Blinding Glare, 32, DEBUFF", + ["239217-SPELL_AURA_APPLIED"] = "Blinding Glare, 239217, SPELL_AURA_APPLIED, 1710094168.47, SPELL_AURA_APPLIED, false, Creature-0-67-1677-0-118723-0000635799, Gazerax, 2632, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 239217, Blinding Glare, 32, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/239268.txt b/WeakAuras/Projects/RaiderlosSA/out/239268.txt new file mode 100644 index 0000000..51d0b59 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/239268.txt @@ -0,0 +1,3 @@ + ["239268-SPELL_MISSED"] = "Venom Storm, 239268, SPELL_MISSED, 1709751379.764, SPELL_MISSED, false, Creature-0-67-1677-0-118705-0000472A34, Nal'asha, 68168, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 239268, Venom Storm, 8, ABSORB, false, 535561", + ["239268-SPELL_ABSORBED"] = "Venom Storm, 239268, SPELL_ABSORBED, 1709751379.764, SPELL_ABSORBED, false, Creature-0-67-1677-0-118705-0000472A34, Nal'asha, 68168, 0, Player-67-003514F7, Orste, 1298, 0, 239268, Venom Storm, 8, Player-67-003514F7, Orste, 1298, 0, 209388, Bulwark of Order, 2, 272864", + ["239268-SPELL_DAMAGE"] = "Venom Storm, 239268, SPELL_DAMAGE, 1709751379.764, SPELL_DAMAGE, false, Creature-0-67-1677-0-118705-0000472A34, Nal'asha, 68168, 0, Player-67-003514F7, Orste, 1298, 0, 239268, Venom Storm, 8, 171397, -1, 8, nil, nil, 387128, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/241937.txt b/WeakAuras/Projects/RaiderlosSA/out/241937.txt new file mode 100644 index 0000000..0692256 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/241937.txt @@ -0,0 +1,2 @@ + ["241937-SPELL_AURA_APPLIED"] = "Shadow Wall, 241937, SPELL_AURA_APPLIED, 1709751071.754, SPELL_AURA_APPLIED, true, , nil, 2632, 0, Creature-0-67-1677-0-118690-0000472A10, Wrathguard Invader, 2632, 0, 241937, Shadow Wall, 32, DEBUFF", + ["241937-SPELL_AURA_REMOVED"] = "Shadow Wall, 241937, SPELL_AURA_REMOVED, 1709751072.267, SPELL_AURA_REMOVED, true, , nil, 2632, 0, Creature-0-67-1677-0-118690-0000472A10, Wrathguard Invader, 2632, 0, 241937, Shadow Wall, 32, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/242792.txt b/WeakAuras/Projects/RaiderlosSA/out/242792.txt new file mode 100644 index 0000000..61c7249 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/242792.txt @@ -0,0 +1,5 @@ + ["242792-SPELL_AURA_REMOVED"] = "Vile Roots, 242792, SPELL_AURA_REMOVED, 1709751219.564, SPELL_AURA_REMOVED, false, Creature-0-67-1677-0-121569-0000472A73, Vilebark Walker, 68168, 0, Player-67-001DAFC2, Арагорни, 1298, 0, 242792, Vile Roots, 8, DEBUFF", + ["242792-SPELL_CAST_SUCCESS"] = "Vile Roots, 242792, SPELL_CAST_SUCCESS, 1709751217.54, SPELL_CAST_SUCCESS, false, Creature-0-67-1677-0-121569-0000472A73, Vilebark Walker, 2632, 0, , nil, -2147483648, -2147483648, 242792, Vile Roots, 8", + ["242792-SPELL_DAMAGE"] = "Vile Roots, 242792, SPELL_DAMAGE, 1709751217.54, SPELL_DAMAGE, false, Creature-0-67-1677-0-121569-0000472A73, Vilebark Walker, 2632, 0, Player-67-001DAFC2, Арагорни, 1298, 0, 242792, Vile Roots, 8, 683134, -1, 8, nil, nil, 203143, false, false, false, false", + ["242792-SPELL_ABSORBED"] = "Vile Roots, 242792, SPELL_ABSORBED, 1709751217.54, SPELL_ABSORBED, false, Creature-0-67-1677-0-121569-0000472A73, Vilebark Walker, 2632, 0, Player-67-001DAFC2, Арагорни, 1298, 0, 242792, Vile Roots, 8, Player-67-001DAFC2, Арагорни, 1298, 0, 203538, Greater Blessing of Kings, 2, 203143", + ["242792-SPELL_AURA_APPLIED"] = "Vile Roots, 242792, SPELL_AURA_APPLIED, 1709751217.592, SPELL_AURA_APPLIED, false, Creature-0-67-1677-0-121569-0000472A73, Vilebark Walker, 2632, 0, Player-67-001DAFC2, Арагорни, 1298, 0, 242792, Vile Roots, 8, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/243168.txt b/WeakAuras/Projects/RaiderlosSA/out/243168.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/243960.txt b/WeakAuras/Projects/RaiderlosSA/out/243960.txt new file mode 100644 index 0000000..45daea8 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/243960.txt @@ -0,0 +1,8 @@ + ["243960-SPELL_MISSED"] = "Shadow Strike, 243960, SPELL_MISSED, 1709755270.987, SPELL_MISSED, false, Creature-0-67-1712-0-122366-00004E582F, Varimathras, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 243960, Shadow Strike, 32, ABSORB, false, 532554", + ["243960-SPELL_ABSORBED"] = "Shadow Strike, 243960, SPELL_ABSORBED, 1709755270.987, SPELL_ABSORBED, false, Creature-0-67-1712-0-122366-00004E582F, Varimathras, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 243960, Shadow Strike, 32, Player-67-00247307, Smallpumper, 1298, 0, 252545, Light of Absolarn, 8, 532554", + ["243960-SPELL_CAST_SUCCESS"] = "Shadow Strike, 243960, SPELL_CAST_SUCCESS, 1709755270.987, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122366-00004E582F, Varimathras, 68168, 0, , nil, -2147483648, -2147483648, 243960, Shadow Strike, 32", + ["243960-SPELL_DAMAGE"] = "Shadow Strike, 243960, SPELL_DAMAGE, 1709755283.48, SPELL_DAMAGE, false, Creature-0-67-1712-0-122366-00004E582F, Varimathras, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 243960, Shadow Strike, 32, 1288998, -1, 32, nil, nil, nil, false, false, false, false", + ["243960-SPELL_MISSED"] = "Shadow Strike, 243960, SPELL_MISSED, 1709928900.374, SPELL_MISSED, false, Creature-0-67-1712-0-122366-0000641B7D, Varimathras, 68168, 0, Player-67-002C429F, Anusucc, 1300, 0, 243960, Shadow Strike, 32, ABSORB, false, 3085253", + ["243960-SPELL_DAMAGE"] = "Shadow Strike, 243960, SPELL_DAMAGE, 1709928822.473, SPELL_DAMAGE, false, Creature-0-67-1712-0-122366-0000641B7D, Varimathras, 68168, 0, Player-67-002C429F, Anusucc, 1300, 128, 243960, Shadow Strike, 32, 875880, -1, 32, nil, nil, 834182, false, false, false, false", + ["243960-SPELL_ABSORBED"] = "Shadow Strike, 243960, SPELL_ABSORBED, 1709928822.379, SPELL_ABSORBED, false, Creature-0-67-1712-0-122366-0000641B7D, Varimathras, 68168, 0, Player-67-002C429F, Anusucc, 1300, 128, 243960, Shadow Strike, 32, Player-67-0029732D, Ningenpriest, 1300, 0, 208771, Smite, 2, 423768", + ["243960-SPELL_CAST_SUCCESS"] = "Shadow Strike, 243960, SPELL_CAST_SUCCESS, 1709928822.473, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122366-0000641B7D, Varimathras, 68168, 0, , nil, -2147483648, -2147483648, 243960, Shadow Strike, 32", diff --git a/WeakAuras/Projects/RaiderlosSA/out/243961.txt b/WeakAuras/Projects/RaiderlosSA/out/243961.txt new file mode 100644 index 0000000..332fd02 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/243961.txt @@ -0,0 +1,6 @@ + ["243961-SPELL_HEAL_ABSORBED"] = "Misery, 243961, SPELL_HEAL_ABSORBED, 1709755209.126, SPELL_HEAL_ABSORBED, true, , nil, 1300, 0, Player-67-00303268, Raidenshøgun, 1300, 0, 243961, Misery, 32, Player-67-00303268, Raidenshøgun-uwowx100, 1300, 0, 243961, Leech, 1, 28602", + ["243961-SPELL_AURA_REMOVED"] = "Misery, 243961, SPELL_AURA_REMOVED, 1709755209.262, SPELL_AURA_REMOVED, true, , nil, 1300, 0, Player-67-00303268, Raidenshøgun, 1300, 0, 243961, Misery, 32, DEBUFF", + ["243961-SPELL_AURA_APPLIED"] = "Misery, 243961, SPELL_AURA_APPLIED, 1709755208.502, SPELL_AURA_APPLIED, true, , nil, 1300, 0, Player-67-00303268, Raidenshøgun, 1300, 0, 243961, Misery, 32, DEBUFF", + ["243961-SPELL_AURA_REMOVED"] = "Misery, 243961, SPELL_AURA_REMOVED, 1709928692.363, SPELL_AURA_REMOVED, true, , nil, 1300, 0, Player-67-002BCD76, Khonasham, 1300, 0, 243961, Misery, 32, DEBUFF", + ["243961-SPELL_HEAL_ABSORBED"] = "Misery, 243961, SPELL_HEAL_ABSORBED, 1709928689.663, SPELL_HEAL_ABSORBED, true, , nil, 1300, 128, Player-67-002C429F, Anusucc, 1300, 128, 243961, Misery, 32, Player-67-002C429F, Anusucc-uwowx100, 1300, 128, 243961, Unholy Strength, 1, 1331855", + ["243961-SPELL_AURA_APPLIED"] = "Misery, 243961, SPELL_AURA_APPLIED, 1709928688.13, SPELL_AURA_APPLIED, true, , nil, 1300, 128, Player-67-002C429F, Anusucc, 1300, 128, 243961, Misery, 32, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/243983.txt b/WeakAuras/Projects/RaiderlosSA/out/243983.txt new file mode 100644 index 0000000..c910147 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/243983.txt @@ -0,0 +1,8 @@ + ["243983-SPELL_CAST_START"] = "Collapsing World, 243983, SPELL_CAST_START, 1709753371.64, SPELL_CAST_START, false, Creature-0-67-1712-0-122104-00004B04B0, Portal Keeper Hasabel, 68168, 0, , nil, -2147483648, -2147483648, 243983, Collapsing World, 32", + ["243983-SPELL_CAST_SUCCESS"] = "Collapsing World, 243983, SPELL_CAST_SUCCESS, 1709753373.64, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122104-00004B04B0, Portal Keeper Hasabel, 68168, 0, , nil, -2147483648, -2147483648, 243983, Collapsing World, 32", + ["243983-SPELL_SUMMON"] = "Collapsing World, 243983, SPELL_SUMMON, 1709753373.64, SPELL_SUMMON, false, Creature-0-67-1712-0-122104-00004B04B0, Portal Keeper Hasabel, 68168, 0, Creature-0-67-1712-0-122425-00004B63D8, Collapsing World, 2632, 0, 243983, Collapsing World, 32", + ["243983-SPELL_DRAIN"] = "Collapsing World, 243983, SPELL_DRAIN, 1709753373.64, SPELL_DRAIN, false, Creature-0-67-1712-0-122104-00004B04B0, Portal Keeper Hasabel, 68168, 0, Creature-0-67-1712-0-122104-00004B04B0, Portal Keeper Hasabel, 68168, 0, 243983, Collapsing World, 32, 100, 3, nil, nil", + ["243983-SPELL_CAST_SUCCESS"] = "Collapsing World, 243983, SPELL_CAST_SUCCESS, 1709926312.699, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122104-00005FC7AC, Portal Keeper Hasabel, 2632, 0, , nil, -2147483648, -2147483648, 243983, Collapsing World, 32", + ["243983-SPELL_SUMMON"] = "Collapsing World, 243983, SPELL_SUMMON, 1709926312.699, SPELL_SUMMON, false, Creature-0-67-1712-0-122104-00005FC7AC, Portal Keeper Hasabel, 2632, 0, Creature-0-67-1712-0-122425-0000604AFF, Unknown, 2632, 0, 243983, Collapsing World, 32", + ["243983-SPELL_DRAIN"] = "Collapsing World, 243983, SPELL_DRAIN, 1709926312.699, SPELL_DRAIN, false, Creature-0-67-1712-0-122104-00005FC7AC, Portal Keeper Hasabel, 2632, 0, Creature-0-67-1712-0-122104-00005FC7AC, Portal Keeper Hasabel, 2632, 0, 243983, Collapsing World, 32, 100, 3, nil, nil", + ["243983-SPELL_CAST_START"] = "Collapsing World, 243983, SPELL_CAST_START, 1709926310.675, SPELL_CAST_START, false, Creature-0-67-1712-0-122104-00005FC7AC, Portal Keeper Hasabel, 2632, 0, , nil, -2147483648, -2147483648, 243983, Collapsing World, 32", diff --git a/WeakAuras/Projects/RaiderlosSA/out/243999.txt b/WeakAuras/Projects/RaiderlosSA/out/243999.txt new file mode 100644 index 0000000..6b3c1af --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/243999.txt @@ -0,0 +1,4 @@ + ["243999-SPELL_CAST_START"] = "Dark Fissure, 243999, SPELL_CAST_START, 1709755276.873, SPELL_CAST_START, false, Creature-0-67-1712-0-122366-00004E582F, Varimathras, 68168, 0, , nil, -2147483648, -2147483648, 243999, Dark Fissure, 32", + ["243999-SPELL_CAST_SUCCESS"] = "Dark Fissure, 243999, SPELL_CAST_SUCCESS, 1709755278.893, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122366-00004E582F, Varimathras, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 243999, Dark Fissure, 32", + ["243999-SPELL_CAST_START"] = "Dark Fissure, 243999, SPELL_CAST_START, 1709928828.322, SPELL_CAST_START, false, Creature-0-67-1712-0-122366-0000641B7D, Varimathras, 68168, 0, , nil, -2147483648, -2147483648, 243999, Dark Fissure, 32", + ["243999-SPELL_CAST_SUCCESS"] = "Dark Fissure, 243999, SPELL_CAST_SUCCESS, 1709928830.378, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122366-0000641B7D, Varimathras, 68168, 0, Player-67-002C429F, Anusucc, 1300, 128, 243999, Dark Fissure, 32", diff --git a/WeakAuras/Projects/RaiderlosSA/out/244000.txt b/WeakAuras/Projects/RaiderlosSA/out/244000.txt new file mode 100644 index 0000000..08cf0de --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/244000.txt @@ -0,0 +1,4 @@ + ["244000-SPELL_CAST_START"] = "Felstorm Barrage, 244000, SPELL_CAST_START, 1709753393.617, SPELL_CAST_START, false, Creature-0-67-1712-0-122104-00004B04B0, Portal Keeper Hasabel, 68168, 0, , nil, -2147483648, -2147483648, 244000, Felstorm Barrage, 4", + ["244000-SPELL_CAST_SUCCESS"] = "Felstorm Barrage, 244000, SPELL_CAST_SUCCESS, 1709753395.658, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122104-00004B04B0, Portal Keeper Hasabel, 68168, 0, , nil, -2147483648, -2147483648, 244000, Felstorm Barrage, 4", + ["244000-SPELL_CAST_START"] = "Felstorm Barrage, 244000, SPELL_CAST_START, 1709926332.692, SPELL_CAST_START, false, Creature-0-67-1712-0-122104-00005FC7AC, Portal Keeper Hasabel, 2632, 0, , nil, -2147483648, -2147483648, 244000, Felstorm Barrage, 4", + ["244000-SPELL_CAST_SUCCESS"] = "Felstorm Barrage, 244000, SPELL_CAST_SUCCESS, 1709926334.746, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122104-00005FC7AC, Portal Keeper Hasabel, 2632, 0, , nil, -2147483648, -2147483648, 244000, Felstorm Barrage, 4", diff --git a/WeakAuras/Projects/RaiderlosSA/out/244016.txt b/WeakAuras/Projects/RaiderlosSA/out/244016.txt new file mode 100644 index 0000000..d5a005d --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/244016.txt @@ -0,0 +1,14 @@ + ["244016-SPELL_AURA_REMOVED"] = "Reality Tear, 244016, SPELL_AURA_REMOVED, 1709753573.132, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122104-00004B04B0, Portal Keeper Hasabel, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 244016, Reality Tear, 1, DEBUFF", + ["244016-SPELL_PERIODIC_DAMAGE"] = "Reality Tear, 244016, SPELL_PERIODIC_DAMAGE, 1709753371.64, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1712-0-122104-00004B04B0, Portal Keeper Hasabel, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 244016, Reality Tear, 1, 51868, 0, 1, nil, nil, nil, false, false, false, false", + ["244016-SPELL_AURA_APPLIED_DOSE"] = "Reality Tear, 244016, SPELL_AURA_APPLIED_DOSE, 1709753379.696, SPELL_AURA_APPLIED_DOSE, false, Creature-0-67-1712-0-122104-00004B04B0, Portal Keeper Hasabel, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 244016, Reality Tear, 1, DEBUFF, 2", + ["244016-SPELL_ABSORBED"] = "Reality Tear, 244016, SPELL_ABSORBED, 1709753369.621, SPELL_ABSORBED, false, Creature-0-67-1712-0-122104-00004B04B0, Portal Keeper Hasabel, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 244016, Reality Tear, 1, Player-67-00247307, Smallpumper, 1298, 0, 252545, Light of Absolarn, 8, 51868", + ["244016-SPELL_AURA_APPLIED"] = "Reality Tear, 244016, SPELL_AURA_APPLIED, 1709753367.673, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122104-00004B04B0, Portal Keeper Hasabel, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 244016, Reality Tear, 1, DEBUFF", + ["244016-SPELL_CAST_SUCCESS"] = "Reality Tear, 244016, SPELL_CAST_SUCCESS, 1709753367.589, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122104-00004B04B0, Portal Keeper Hasabel, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 244016, Reality Tear, 1", + ["244016-SPELL_PERIODIC_MISSED"] = "Reality Tear, 244016, SPELL_PERIODIC_MISSED, 1709753369.621, SPELL_PERIODIC_MISSED, false, Creature-0-67-1712-0-122104-00004B04B0, Portal Keeper Hasabel, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 244016, Reality Tear, 1, ABSORB, false, 51868", + ["244016-SPELL_AURA_APPLIED"] = "Reality Tear, 244016, SPELL_AURA_APPLIED, 1709926306.663, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122104-00005FC7AC, Portal Keeper Hasabel, 2632, 0, Player-67-00345CD7, Bagrintwo, 1300, 0, 244016, Reality Tear, 1, DEBUFF", + ["244016-SPELL_PERIODIC_DAMAGE"] = "Reality Tear, 244016, SPELL_PERIODIC_DAMAGE, 1709926314.645, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1712-0-122104-00005FC7AC, Portal Keeper Hasabel, 2632, 0, Player-67-00345CD7, Bagrintwo, 1300, 0, 244016, Reality Tear, 1, 103595, 0, 1, nil, nil, 11510, false, false, false, false", + ["244016-SPELL_AURA_APPLIED_DOSE"] = "Reality Tear, 244016, SPELL_AURA_APPLIED_DOSE, 1709926330.742, SPELL_AURA_APPLIED_DOSE, false, Creature-0-67-1712-0-122104-00005FC7AC, Portal Keeper Hasabel, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 244016, Reality Tear, 1, DEBUFF, 2", + ["244016-SPELL_ABSORBED"] = "Reality Tear, 244016, SPELL_ABSORBED, 1709926308.666, SPELL_ABSORBED, false, Creature-0-67-1712-0-122104-00005FC7AC, Portal Keeper Hasabel, 2632, 0, Player-67-00345CD7, Bagrintwo, 1300, 0, 244016, Reality Tear, 1, Player-67-0029732D, Ningenpriest, 1298, 0, 208771, Smite, 2, 74047", + ["244016-SPELL_CAST_SUCCESS"] = "Reality Tear, 244016, SPELL_CAST_SUCCESS, 1709926306.663, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122104-00005FC7AC, Portal Keeper Hasabel, 2632, 0, Player-67-00345CD7, Bagrintwo, 1300, 0, 244016, Reality Tear, 1", + ["244016-SPELL_AURA_REMOVED"] = "Reality Tear, 244016, SPELL_AURA_REMOVED, 1709926336.779, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122104-00005FC7AC, Portal Keeper Hasabel, 2632, 0, Player-67-00345CD7, Bagrintwo, 1300, 0, 244016, Reality Tear, 1, DEBUFF", + ["244016-SPELL_PERIODIC_MISSED"] = "Reality Tear, 244016, SPELL_PERIODIC_MISSED, 1709926308.666, SPELL_PERIODIC_MISSED, false, Creature-0-67-1712-0-122104-00005FC7AC, Portal Keeper Hasabel, 2632, 0, Player-67-00345CD7, Bagrintwo, 1300, 0, 244016, Reality Tear, 1, ABSORB, false, 97958", diff --git a/WeakAuras/Projects/RaiderlosSA/out/244033.txt b/WeakAuras/Projects/RaiderlosSA/out/244033.txt new file mode 100644 index 0000000..ee2658f --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/244033.txt @@ -0,0 +1,6 @@ + ["244033-SPELL_DAMAGE"] = "Flame Rend, 244033, SPELL_DAMAGE, 1709756298.426, SPELL_DAMAGE, false, Creature-0-67-1712-0-121975-00004E7983, Aggramar, 68168, 0, Player-67-003465EF, Dotsvex, 1300, 0, 244033, Flame Rend, 4, 1224339, -1, 4, nil, nil, 687591, false, false, false, false", + ["244033-SPELL_MISSED"] = "Flame Rend, 244033, SPELL_MISSED, 1709756298.426, SPELL_MISSED, false, Creature-0-67-1712-0-121975-00004E7983, Aggramar, 68168, 0, Player-67-00247307, Smallpumper, 1298, 128, 244033, Flame Rend, 4, ABSORB, false, 569827", + ["244033-SPELL_ABSORBED"] = "Flame Rend, 244033, SPELL_ABSORBED, 1709756298.426, SPELL_ABSORBED, false, Creature-0-67-1712-0-121975-00004E7983, Aggramar, 68168, 0, Player-67-003465EF, Dotsvex, 1300, 0, 244033, Flame Rend, 4, Player-67-003465EF, Dotsvex, 1300, 0, 108366, Soul Leech, 32, 687591", + ["244033-SPELL_DAMAGE"] = "Flame Rend, 244033, SPELL_DAMAGE, 1709929882.433, SPELL_DAMAGE, false, Creature-0-67-1712-0-121975-0000644688, Aggramar, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 244033, Flame Rend, 4, 2225777, -1, 4, nil, nil, 423957, false, false, false, false", + ["244033-SPELL_MISSED"] = "Flame Rend, 244033, SPELL_MISSED, 1709929882.433, SPELL_MISSED, false, Creature-0-67-1712-0-121975-0000644688, Aggramar, 2632, 0, Player-67-00345CD7, Bagrintwo, 1298, 0, 244033, Flame Rend, 4, ABSORB, false, 1371388", + ["244033-SPELL_ABSORBED"] = "Flame Rend, 244033, SPELL_ABSORBED, 1709929882.433, SPELL_ABSORBED, false, Creature-0-67-1712-0-121975-0000644688, Aggramar, 2632, 0, Player-67-001B8E8E, Magicrooster, 1300, 0, 244033, Flame Rend, 4, Player-67-001B8E8E, Magicrooster, 1300, 0, 235450, Prismatic Barrier, 64, 1305604", diff --git a/WeakAuras/Projects/RaiderlosSA/out/244042.txt b/WeakAuras/Projects/RaiderlosSA/out/244042.txt new file mode 100644 index 0000000..2b04d90 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/244042.txt @@ -0,0 +1,6 @@ + ["244042-SPELL_CAST_SUCCESS"] = "Marked Prey, 244042, SPELL_CAST_SUCCESS, 1709755286.743, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122366-00004E582F, Varimathras, 68168, 0, , nil, -2147483648, -2147483648, 244042, Marked Prey, 32", + ["244042-SPELL_AURA_REMOVED"] = "Marked Prey, 244042, SPELL_AURA_REMOVED, 1709755291.805, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122366-00004E582F, Varimathras, 68168, 0, Player-67-0033EEFC, Wafba, 1300, 128, 244042, Marked Prey, 32, DEBUFF", + ["244042-SPELL_AURA_APPLIED"] = "Marked Prey, 244042, SPELL_AURA_APPLIED, 1709755286.779, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122366-00004E582F, Varimathras, 68168, 0, Player-67-0033EEFC, Wafba, 1300, 0, 244042, Marked Prey, 32, DEBUFF", + ["244042-SPELL_AURA_APPLIED"] = "Marked Prey, 244042, SPELL_AURA_APPLIED, 1709928838.157, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122366-0000641B7D, Varimathras, 68168, 0, Player-67-003504AB, Latviann, 1300, 0, 244042, Marked Prey, 32, DEBUFF", + ["244042-SPELL_CAST_SUCCESS"] = "Marked Prey, 244042, SPELL_CAST_SUCCESS, 1709928838.077, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122366-0000641B7D, Varimathras, 68168, 0, , nil, -2147483648, -2147483648, 244042, Marked Prey, 32", + ["244042-SPELL_AURA_REMOVED"] = "Marked Prey, 244042, SPELL_AURA_REMOVED, 1709928843.171, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122366-0000641B7D, Varimathras, 68168, 0, Player-67-003504AB, Latviann, 1300, 128, 244042, Marked Prey, 32, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/244056.txt b/WeakAuras/Projects/RaiderlosSA/out/244056.txt new file mode 100644 index 0000000..c141860 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/244056.txt @@ -0,0 +1,8 @@ + ["244056-SPELL_AURA_APPLIED"] = "Siphon Corruption, 244056, SPELL_AURA_APPLIED, 1709925145.324, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122135-00005C36B1, Shatug, 2632, 0, Creature-0-67-1712-0-122135-00005C36B1, Shatug, 2632, 0, 244056, Siphon Corruption, 32, BUFF", + ["244056-SPELL_CAST_SUCCESS"] = "Siphon Corruption, 244056, SPELL_CAST_SUCCESS, 1709925145.324, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122135-00005C36B1, Shatug, 2632, 0, , nil, -2147483648, -2147483648, 244056, Siphon Corruption, 32", + ["244056-SPELL_AURA_REMOVED"] = "Siphon Corruption, 244056, SPELL_AURA_REMOVED, 1709925154.442, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122135-00005C36B1, Shatug, 2632, 0, Creature-0-67-1712-0-122135-00005C36B1, Shatug, 2632, 0, 244056, Siphon Corruption, 32, BUFF", + ["244056-SPELL_CAST_START"] = "Siphon Corruption, 244056, SPELL_CAST_START, 1709925144.33, SPELL_CAST_START, false, Creature-0-67-1712-0-122135-00005C36B1, Shatug, 2632, 0, , nil, -2147483648, -2147483648, 244056, Siphon Corruption, 32", + ["244056-SPELL_AURA_REMOVED"] = "Siphon Corruption, 244056, SPELL_AURA_REMOVED, 1709752506.729, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122135-0000477122, Shatug, 68168, 0, Creature-0-67-1712-0-122135-0000477122, Shatug, 68168, 0, 244056, Siphon Corruption, 32, BUFF", + ["244056-SPELL_CAST_SUCCESS"] = "Siphon Corruption, 244056, SPELL_CAST_SUCCESS, 1709752497.675, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122135-0000477122, Shatug, 68168, 0, , nil, -2147483648, -2147483648, 244056, Siphon Corruption, 32", + ["244056-SPELL_CAST_START"] = "Siphon Corruption, 244056, SPELL_CAST_START, 1709752496.607, SPELL_CAST_START, false, Creature-0-67-1712-0-122135-0000477122, Shatug, 68168, 0, , nil, -2147483648, -2147483648, 244056, Siphon Corruption, 32", + ["244056-SPELL_AURA_APPLIED"] = "Siphon Corruption, 244056, SPELL_AURA_APPLIED, 1709752497.698, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122135-0000477122, Shatug, 68168, 0, Creature-0-67-1712-0-122135-0000477122, Shatug, 68168, 0, 244056, Siphon Corruption, 32, BUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/244057.txt b/WeakAuras/Projects/RaiderlosSA/out/244057.txt new file mode 100644 index 0000000..0f0a4cf --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/244057.txt @@ -0,0 +1,8 @@ + ["244057-SPELL_CAST_START"] = "Enflame Corruption, 244057, SPELL_CAST_START, 1709925170.377, SPELL_CAST_START, false, Creature-0-67-1712-0-122477-00005C36B4, F'harg, 2632, 0, , nil, -2147483648, -2147483648, 244057, Enflame Corruption, 4", + ["244057-SPELL_CAST_SUCCESS"] = "Enflame Corruption, 244057, SPELL_CAST_SUCCESS, 1709925171.385, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122477-00005C36B4, F'harg, 2632, 0, , nil, -2147483648, -2147483648, 244057, Enflame Corruption, 4", + ["244057-SPELL_AURA_REMOVED"] = "Enflame Corruption, 244057, SPELL_AURA_REMOVED, 1709925180.426, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122477-00005C36B4, F'harg, 2632, 0, Creature-0-67-1712-0-122477-00005C36B4, F'harg, 2632, 0, 244057, Enflame Corruption, 4, BUFF", + ["244057-SPELL_AURA_APPLIED"] = "Enflame Corruption, 244057, SPELL_AURA_APPLIED, 1709925171.385, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122477-00005C36B4, F'harg, 2632, 0, Creature-0-67-1712-0-122477-00005C36B4, F'harg, 2632, 0, 244057, Enflame Corruption, 4, BUFF", + ["244057-SPELL_CAST_START"] = "Enflame Corruption, 244057, SPELL_CAST_START, 1709752524.71, SPELL_CAST_START, false, Creature-0-67-1712-0-122477-0000477125, F'harg, 2632, 0, , nil, -2147483648, -2147483648, 244057, Enflame Corruption, 4", + ["244057-SPELL_AURA_APPLIED"] = "Enflame Corruption, 244057, SPELL_AURA_APPLIED, 1709752525.73, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122477-0000477125, F'harg, 2632, 0, Creature-0-67-1712-0-122477-0000477125, F'harg, 2632, 0, 244057, Enflame Corruption, 4, BUFF", + ["244057-SPELL_AURA_REMOVED"] = "Enflame Corruption, 244057, SPELL_AURA_REMOVED, 1709752534.728, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122477-0000477125, F'harg, 2632, 0, Creature-0-67-1712-0-122477-0000477125, F'harg, 2632, 0, 244057, Enflame Corruption, 4, BUFF", + ["244057-SPELL_CAST_SUCCESS"] = "Enflame Corruption, 244057, SPELL_CAST_SUCCESS, 1709752525.73, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122477-0000477125, F'harg, 2632, 0, , nil, -2147483648, -2147483648, 244057, Enflame Corruption, 4", diff --git a/WeakAuras/Projects/RaiderlosSA/out/244086.txt b/WeakAuras/Projects/RaiderlosSA/out/244086.txt new file mode 100644 index 0000000..cf4eb03 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/244086.txt @@ -0,0 +1,6 @@ + ["244086-SPELL_AURA_REMOVED"] = "Molten Touch, 244086, SPELL_AURA_REMOVED, 1709925141.299, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122477-00005C36B4, F'harg, 68168, 0, Player-67-002DCF30, Kritzkrieg, 1300, 0, 244086, Molten Touch, 1, DEBUFF", + ["244086-SPELL_AURA_APPLIED"] = "Molten Touch, 244086, SPELL_AURA_APPLIED, 1709925139.445, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122477-00005C36B4, F'harg, 68168, 0, Player-67-002DCF30, Kritzkrieg, 1300, 0, 244086, Molten Touch, 1, DEBUFF", + ["244086-SPELL_CAST_SUCCESS"] = "Molten Touch, 244086, SPELL_CAST_SUCCESS, 1709925139.445, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122477-00005C36B4, F'harg, 68168, 0, Player-67-002DCF30, Kritzkrieg, 1300, 0, 244086, Molten Touch, 1", + ["244086-SPELL_AURA_REMOVED"] = "Molten Touch, 244086, SPELL_AURA_REMOVED, 1709925140.699, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122477-00005C36B4, F'harg, 2632, 0, Player-67-002DCF30, Kritzkrieg, 1300, 0, 244086, Molten Touch, 1, DEBUFF", + ["244086-SPELL_AURA_APPLIED"] = "Molten Touch, 244086, SPELL_AURA_APPLIED, 1709925138.862, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122477-00005C36B4, F'harg, 2632, 0, Player-67-002DCF30, Kritzkrieg, 1300, 0, 244086, Molten Touch, 1, DEBUFF", + ["244086-SPELL_CAST_SUCCESS"] = "Molten Touch, 244086, SPELL_CAST_SUCCESS, 1709925138.862, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122477-00005C36B4, F'harg, 2632, 0, Player-67-002DCF30, Kritzkrieg, 1300, 0, 244086, Molten Touch, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/244093.txt b/WeakAuras/Projects/RaiderlosSA/out/244093.txt new file mode 100644 index 0000000..ffd5340 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/244093.txt @@ -0,0 +1,2 @@ + ["244093-SPELL_CAST_SUCCESS"] = "Necrotic Embrace, 244093, SPELL_CAST_SUCCESS, 1709928848.355, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122366-0000641B7D, Varimathras, 2632, 0, , nil, -2147483648, -2147483648, 244093, Necrotic Embrace, 32", + ["244093-SPELL_CAST_SUCCESS"] = "Necrotic Embrace, 244093, SPELL_CAST_SUCCESS, 1709928847.815, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122366-0000641B7D, Varimathras, 68168, 0, , nil, -2147483648, -2147483648, 244093, Necrotic Embrace, 32", diff --git a/WeakAuras/Projects/RaiderlosSA/out/244106.txt b/WeakAuras/Projects/RaiderlosSA/out/244106.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/244131.txt b/WeakAuras/Projects/RaiderlosSA/out/244131.txt new file mode 100644 index 0000000..bd35a99 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/244131.txt @@ -0,0 +1,4 @@ + ["244131-SPELL_AURA_REMOVED"] = "Consuming Sphere, 244131, SPELL_AURA_REMOVED, 1709925172.506, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122135-00005C36B1, Shatug, 68168, 0, Player-67-003460E5, Sugpula, 1300, 0, 244131, Consuming Sphere, 32, DEBUFF", + ["244131-SPELL_AURA_APPLIED"] = "Consuming Sphere, 244131, SPELL_AURA_APPLIED, 1709925172.427, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122135-00005C36B1, Shatug, 68168, 0, Player-67-0034F215, Inekshaman, 1300, 0, 244131, Consuming Sphere, 32, DEBUFF", + ["244131-SPELL_AURA_REMOVED"] = "Consuming Sphere, 244131, SPELL_AURA_REMOVED, 1709752527.262, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122135-0000477122, Shatug, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 244131, Consuming Sphere, 32, DEBUFF", + ["244131-SPELL_AURA_APPLIED"] = "Consuming Sphere, 244131, SPELL_AURA_APPLIED, 1709752526.726, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122135-0000477122, Shatug, 68168, 0, Player-67-00339F45, Shadøws, 1300, 0, 244131, Consuming Sphere, 32, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/244291.txt b/WeakAuras/Projects/RaiderlosSA/out/244291.txt new file mode 100644 index 0000000..4efe5eb --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/244291.txt @@ -0,0 +1,10 @@ + ["244291-SPELL_AURA_APPLIED"] = "Foe Breaker, 244291, SPELL_AURA_APPLIED, 1709756294.679, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-121975-00004E7983, Aggramar, 68168, 0, Player-67-00247307, Smallpumper, 1298, 128, 244291, Foe Breaker, 1, DEBUFF", + ["244291-SPELL_AURA_REMOVED"] = "Foe Breaker, 244291, SPELL_AURA_REMOVED, 1709756324.704, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-121975-00004E7983, Aggramar, 68168, 0, Player-67-00247307, Smallpumper, 1298, 128, 244291, Foe Breaker, 1, DEBUFF", + ["244291-SPELL_DAMAGE"] = "Foe Breaker, 244291, SPELL_DAMAGE, 1709756294.598, SPELL_DAMAGE, false, Creature-0-67-1712-0-121975-00004E7983, Aggramar, 68168, 0, Player-67-00247307, Smallpumper, 1298, 128, 244291, Foe Breaker, 1, 3114084, -1, 1, nil, nil, nil, false, false, false, false", + ["244291-SPELL_MISSED"] = "Foe Breaker, 244291, SPELL_MISSED, 1709756421.99, SPELL_MISSED, false, Creature-0-67-1712-0-121975-00004E7983, Aggramar, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 244291, Foe Breaker, 1, ABSORB, false, 3101721", + ["244291-SPELL_ABSORBED"] = "Foe Breaker, 244291, SPELL_ABSORBED, 1709756421.99, SPELL_ABSORBED, false, Creature-0-67-1712-0-121975-00004E7983, Aggramar, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 244291, Foe Breaker, 1, Player-67-00247307, Smallpumper, 1298, 0, 252545, Light of Absolarn, 8, 3101721", + ["244291-SPELL_AURA_APPLIED_DOSE"] = "Foe Breaker, 244291, SPELL_AURA_APPLIED_DOSE, 1710277390.61, SPELL_AURA_APPLIED_DOSE, false, Creature-0-67-1712-0-121975-00005E7369, Aggramar, 68168, 0, Player-67-00298001, Хронп, 1300, 0, 244291, Foe Breaker, 1, DEBUFF, 2", + ["244291-SPELL_AURA_APPLIED"] = "Foe Breaker, 244291, SPELL_AURA_APPLIED, 1709929878.685, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-121975-0000644688, Aggramar, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 244291, Foe Breaker, 1, DEBUFF", + ["244291-SPELL_AURA_REMOVED"] = "Foe Breaker, 244291, SPELL_AURA_REMOVED, 1709929908.702, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-121975-0000644688, Aggramar, 2632, 0, Player-67-002C429F, Anusucc, 1300, 128, 244291, Foe Breaker, 1, DEBUFF", + ["244291-SPELL_DAMAGE"] = "Foe Breaker, 244291, SPELL_DAMAGE, 1709929878.626, SPELL_DAMAGE, false, Creature-0-67-1712-0-121975-0000644688, Aggramar, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 244291, Foe Breaker, 1, 2887856, -1, 1, nil, nil, 7176924, false, false, false, false", + ["244291-SPELL_ABSORBED"] = "Foe Breaker, 244291, SPELL_ABSORBED, 1709929878.6, SPELL_ABSORBED, false, Creature-0-67-1712-0-121975-0000644688, Aggramar, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 244291, Foe Breaker, 1, Player-67-002C429F, Anusucc, 1300, 0, 252545, Light of Absolarn, 8, 3956195", diff --git a/WeakAuras/Projects/RaiderlosSA/out/244410.txt b/WeakAuras/Projects/RaiderlosSA/out/244410.txt new file mode 100644 index 0000000..ef90147 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/244410.txt @@ -0,0 +1,6 @@ + ["244410-SPELL_AURA_REMOVED"] = "Decimation, 244410, SPELL_AURA_REMOVED, 1709924694.157, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122773-00005D33E1, Decimator, 2632, 0, Player-67-00339F45, Shadøws, 1300, 0, 244410, Decimation, 4, DEBUFF", + ["244410-SPELL_CAST_SUCCESS"] = "Decimation, 244410, SPELL_CAST_SUCCESS, 1709924689.022, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122773-00005D33E1, Decimator, 2632, 0, Player-67-0034D19D, Brainstew, 1300, 0, 244410, Decimation, 4", + ["244410-SPELL_AURA_APPLIED"] = "Decimation, 244410, SPELL_AURA_APPLIED, 1709924689.092, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122773-00005D33E1, Decimator, 2632, 0, Player-67-00339F45, Shadøws, 1300, 0, 244410, Decimation, 4, DEBUFF", + ["244410-SPELL_AURA_REMOVED"] = "Decimation, 244410, SPELL_AURA_REMOVED, 1709752093.043, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122773-00004890BF, Decimator, 2632, 0, Player-67-00303268, Raidenshøgun, 1300, 0, 244410, Decimation, 4, DEBUFF", + ["244410-SPELL_CAST_SUCCESS"] = "Decimation, 244410, SPELL_CAST_SUCCESS, 1709752087.93, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122773-00004890BF, Decimator, 2632, 0, Player-67-0034E80E, Seedeath, 1300, 0, 244410, Decimation, 4", + ["244410-SPELL_AURA_APPLIED"] = "Decimation, 244410, SPELL_AURA_APPLIED, 1709752087.997, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122773-00004890BF, Decimator, 2632, 0, Player-67-00303268, Raidenshøgun, 1300, 0, 244410, Decimation, 4, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/244693.txt b/WeakAuras/Projects/RaiderlosSA/out/244693.txt new file mode 100644 index 0000000..9c5d702 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/244693.txt @@ -0,0 +1,4 @@ + ["244693-SPELL_CAST_SUCCESS"] = "Wake of Flame, 244693, SPELL_CAST_SUCCESS, 1709756110.194, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-121975-00004E7983, Aggramar, 2632, 0, Player-67-00351D42, Belyth, 1300, 0, 244693, Wake of Flame, 4", + ["244693-SPELL_CAST_START"] = "Wake of Flame, 244693, SPELL_CAST_START, 1709756108.173, SPELL_CAST_START, false, Creature-0-67-1712-0-121975-00004E7983, Aggramar, 2632, 0, , nil, -2147483648, -2147483648, 244693, Wake of Flame, 4", + ["244693-SPELL_CAST_START"] = "Wake of Flame, 244693, SPELL_CAST_START, 1709929845.797, SPELL_CAST_START, false, Creature-0-67-1712-0-121975-0000644688, Aggramar, 2632, 0, , nil, -2147483648, -2147483648, 244693, Wake of Flame, 4", + ["244693-SPELL_CAST_SUCCESS"] = "Wake of Flame, 244693, SPELL_CAST_SUCCESS, 1709929847.794, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-121975-0000644688, Aggramar, 2632, 0, Player-67-00315A41, Tosu, 1298, 0, 244693, Wake of Flame, 4", diff --git a/WeakAuras/Projects/RaiderlosSA/out/244768.txt b/WeakAuras/Projects/RaiderlosSA/out/244768.txt new file mode 100644 index 0000000..46aa9fa --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/244768.txt @@ -0,0 +1,4 @@ + ["244768-SPELL_AURA_REMOVED"] = "Desolate Gaze, 244768, SPELL_AURA_REMOVED, 1709925211.489, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122477-00005C36B4, F'harg, 2632, 0, Player-67-0034E040, Chumbinho, 1300, 0, 244768, Desolate Gaze, 1, DEBUFF", + ["244768-SPELL_AURA_APPLIED"] = "Desolate Gaze, 244768, SPELL_AURA_APPLIED, 1709925203.427, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122477-00005C36B4, F'harg, 2632, 0, Player-67-0034E040, Chumbinho, 1300, 0, 244768, Desolate Gaze, 1, DEBUFF", + ["244768-SPELL_AURA_REMOVED"] = "Desolate Gaze, 244768, SPELL_AURA_REMOVED, 1709752566.703, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122477-0000477125, F'harg, 2632, 0, Player-67-0034D317, Edgarsishere, 1298, 0, 244768, Desolate Gaze, 1, DEBUFF", + ["244768-SPELL_AURA_APPLIED"] = "Desolate Gaze, 244768, SPELL_AURA_APPLIED, 1709752558.69, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122477-0000477125, F'harg, 2632, 0, Player-67-0034D317, Edgarsishere, 1298, 0, 244768, Desolate Gaze, 1, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/244899.txt b/WeakAuras/Projects/RaiderlosSA/out/244899.txt new file mode 100644 index 0000000..213f2ef --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/244899.txt @@ -0,0 +1,16 @@ + ["244899-SPELL_CAST_SUCCESS"] = "Fiery Strike, 244899, SPELL_CAST_SUCCESS, 1709755613.851, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122468-00004E5DD6, Noura, Mother of Flames, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 244899, Fiery Strike, 4", + ["244899-SPELL_AURA_REMOVED"] = "Fiery Strike, 244899, SPELL_AURA_REMOVED, 1709755820.397, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122468-00004E5DD6, Noura, Mother of Flames, 2632, 0, Player-67-00247307, Smallpumper, 1298, 128, 244899, Fiery Strike, 4, DEBUFF", + ["244899-SPELL_MISSED"] = "Fiery Strike, 244899, SPELL_MISSED, 1709929295.961, SPELL_MISSED, false, Creature-0-67-1712-0-122468-00006527FF, Noura, Mother of Flames, 2632, 0, Player-67-002C429F, Anusucc, 1298, 0, 244899, Fiery Strike, 4, ABSORB, false, 1655217", + ["244899-SPELL_CAST_START"] = "Fiery Strike, 244899, SPELL_CAST_START, 1709755613.339, SPELL_CAST_START, false, Creature-0-67-1712-0-122468-00004E5DD6, Noura, Mother of Flames, 68168, 0, , nil, -2147483648, -2147483648, 244899, Fiery Strike, 4", + ["244899-SPELL_ABSORBED"] = "Fiery Strike, 244899, SPELL_ABSORBED, 1709755624.9, SPELL_ABSORBED, false, Creature-0-67-1712-0-122468-00004E5DD6, Noura, Mother of Flames, 68168, 0, Player-67-00351D42, Belyth, 1300, 0, 244899, Fiery Strike, 4, Player-67-00351D42, Belyth, 1300, 0, 235313, Blazing Barrier, 4, 418769", + ["244899-SPELL_AURA_APPLIED"] = "Fiery Strike, 244899, SPELL_AURA_APPLIED, 1709755613.932, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122468-00004E5DD6, Noura, Mother of Flames, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 244899, Fiery Strike, 4, DEBUFF", + ["244899-SPELL_DAMAGE"] = "Fiery Strike, 244899, SPELL_DAMAGE, 1709755613.851, SPELL_DAMAGE, false, Creature-0-67-1712-0-122468-00004E5DD6, Noura, Mother of Flames, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 244899, Fiery Strike, 4, 520126, -1, 4, nil, nil, nil, false, false, false, false", + ["244899-SPELL_AURA_APPLIED_DOSE"] = "Fiery Strike, 244899, SPELL_AURA_APPLIED_DOSE, 1709755624.94, SPELL_AURA_APPLIED_DOSE, false, Creature-0-67-1712-0-122468-00004E5DD6, Noura, Mother of Flames, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 244899, Fiery Strike, 4, DEBUFF, 2", + ["244899-SPELL_CAST_SUCCESS"] = "Fiery Strike, 244899, SPELL_CAST_SUCCESS, 1709929295.479, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122468-00006527FF, Noura, Mother of Flames, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 244899, Fiery Strike, 4", + ["244899-SPELL_AURA_REMOVED"] = "Fiery Strike, 244899, SPELL_AURA_REMOVED, 1709929397.61, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122468-00006527FF, Noura, Mother of Flames, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 244899, Fiery Strike, 4, DEBUFF", + ["244899-SPELL_AURA_APPLIED_DOSE"] = "Fiery Strike, 244899, SPELL_AURA_APPLIED_DOSE, 1709929306.498, SPELL_AURA_APPLIED_DOSE, false, Creature-0-67-1712-0-122468-00006527FF, Noura, Mother of Flames, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 244899, Fiery Strike, 4, DEBUFF, 2", + ["244899-SPELL_CAST_START"] = "Fiery Strike, 244899, SPELL_CAST_START, 1709929294.904, SPELL_CAST_START, false, Creature-0-67-1712-0-122468-00006527FF, Noura, Mother of Flames, 2632, 0, , nil, -2147483648, -2147483648, 244899, Fiery Strike, 4", + ["244899-SPELL_ABSORBED"] = "Fiery Strike, 244899, SPELL_ABSORBED, 1709929295.479, SPELL_ABSORBED, false, Creature-0-67-1712-0-122468-00006527FF, Noura, Mother of Flames, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 244899, Fiery Strike, 4, Player-67-0029732D, Ningenpriest, 1300, 0, 17, Power Word: Shield, 2, 1209333", + ["244899-SPELL_DAMAGE"] = "Fiery Strike, 244899, SPELL_DAMAGE, 1709929295.479, SPELL_DAMAGE, false, Creature-0-67-1712-0-122468-00006527FF, Noura, Mother of Flames, 2632, 0, Player-67-003224AB, Shkylol, 1300, 0, 244899, Fiery Strike, 4, 1935657, -1, 4, nil, nil, 1067388, false, false, false, false", + ["244899-SPELL_MISSED"] = "Fiery Strike, 244899, SPELL_MISSED, 1709929295.479, SPELL_MISSED, false, Creature-0-67-1712-0-122468-00006527FF, Noura, Mother of Flames, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 244899, Fiery Strike, 4, ABSORB, false, 1655217", + ["244899-SPELL_AURA_APPLIED"] = "Fiery Strike, 244899, SPELL_AURA_APPLIED, 1709929295.479, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122468-00006527FF, Noura, Mother of Flames, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 244899, Fiery Strike, 4, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/244969.txt b/WeakAuras/Projects/RaiderlosSA/out/244969.txt new file mode 100644 index 0000000..cfe590d --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/244969.txt @@ -0,0 +1,10 @@ + ["244969-SPELL_ABSORBED"] = "Eradication, 244969, SPELL_ABSORBED, 1709924728.522, SPELL_ABSORBED, false, Vehicle-0-67-1712-0-122450-00005C35F5, Garothi Worldbreaker, 2632, 0, Player-67-00345CD7, Bagrintwo, 1300, 0, 244969, Eradication, 1, Player-67-00345CD7, Bagrintwo, 1300, 0, 209388, Bulwark of Order, 2, 527303", + ["244969-SPELL_MISSED"] = "Eradication, 244969, SPELL_MISSED, 1709924728.555, SPELL_MISSED, false, Vehicle-0-67-1712-0-122450-00005C35F5, Garothi Worldbreaker, 2632, 0, Player-67-0034E040, Chumbinho, 1300, 0, 244969, Eradication, 1, IMMUNE, false", + ["244969-SPELL_CAST_START"] = "Eradication, 244969, SPELL_CAST_START, 1709924723.045, SPELL_CAST_START, false, Vehicle-0-67-1712-0-122450-00005C35F5, Garothi Worldbreaker, 2632, 0, , nil, -2147483648, -2147483648, 244969, Eradication, 1", + ["244969-SPELL_CAST_SUCCESS"] = "Eradication, 244969, SPELL_CAST_SUCCESS, 1709924728.555, SPELL_CAST_SUCCESS, false, Vehicle-0-67-1712-0-122450-00005C35F5, Garothi Worldbreaker, 2632, 0, , nil, -2147483648, -2147483648, 244969, Eradication, 1", + ["244969-SPELL_DAMAGE"] = "Eradication, 244969, SPELL_DAMAGE, 1709924728.555, SPELL_DAMAGE, false, Vehicle-0-67-1712-0-122450-00005C35F5, Garothi Worldbreaker, 2632, 0, Player-67-00345CD7, Bagrintwo, 1300, 0, 244969, Eradication, 1, 808458, -1, 1, nil, nil, 527303, false, false, false, false", + ["244969-SPELL_ABSORBED"] = "Eradication, 244969, SPELL_ABSORBED, 1709752136.326, SPELL_ABSORBED, false, Vehicle-0-67-1712-0-122450-0000477022, Garothi Worldbreaker, 68168, 0, Player-67-00300DF1, Keeponsmitin, 1300, 0, 244969, Eradication, 1, Player-67-00300DF1, Keeponsmitin, 1300, 0, 184662, Shield of Vengeance, 2, 527791", + ["244969-SPELL_MISSED"] = "Eradication, 244969, SPELL_MISSED, 1709752136.326, SPELL_MISSED, false, Vehicle-0-67-1712-0-122450-0000477022, Garothi Worldbreaker, 68168, 0, Player-67-00351D42, Belyth, 1300, 0, 244969, Eradication, 1, IMMUNE, false", + ["244969-SPELL_CAST_START"] = "Eradication, 244969, SPELL_CAST_START, 1709752130.798, SPELL_CAST_START, false, Vehicle-0-67-1712-0-122450-0000477022, Garothi Worldbreaker, 68168, 0, , nil, -2147483648, -2147483648, 244969, Eradication, 1", + ["244969-SPELL_CAST_SUCCESS"] = "Eradication, 244969, SPELL_CAST_SUCCESS, 1709752136.326, SPELL_CAST_SUCCESS, false, Vehicle-0-67-1712-0-122450-0000477022, Garothi Worldbreaker, 68168, 0, , nil, -2147483648, -2147483648, 244969, Eradication, 1", + ["244969-SPELL_DAMAGE"] = "Eradication, 244969, SPELL_DAMAGE, 1709752136.326, SPELL_DAMAGE, false, Vehicle-0-67-1712-0-122450-0000477022, Garothi Worldbreaker, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 244969, Eradication, 1, 1344610, -1, 1, nil, nil, nil, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/245161.txt b/WeakAuras/Projects/RaiderlosSA/out/245161.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/245281.txt b/WeakAuras/Projects/RaiderlosSA/out/245281.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/245546.txt b/WeakAuras/Projects/RaiderlosSA/out/245546.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/245586.txt b/WeakAuras/Projects/RaiderlosSA/out/245586.txt new file mode 100644 index 0000000..047fc10 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/245586.txt @@ -0,0 +1,8 @@ + ["245586-SPELL_HEAL_ABSORBED"] = "Chilled Blood, 245586, SPELL_HEAL_ABSORBED, 1709755805.385, SPELL_HEAL_ABSORBED, false, Creature-0-67-1712-0-122469-00004E5DD7, Diima, Mother of Gloom, 2632, 0, Player-67-00337344, Elemona, 1298, 0, 245586, Chilled Blood, 16, Player-67-00337344, Elemona-uwowx100, 1298, 0, 245586, Leech, 1, 19916", + ["245586-SPELL_AURA_REMOVED"] = "Chilled Blood, 245586, SPELL_AURA_REMOVED, 1709755814.952, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122469-00004E5DD7, Diima, Mother of Gloom, 2632, 0, Player-67-0034F5CD, Badbrony, 1300, 0, 245586, Chilled Blood, 16, DEBUFF, 131385", + ["245586-SPELL_CAST_SUCCESS"] = "Chilled Blood, 245586, SPELL_CAST_SUCCESS, 1709755805.299, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122469-00004E5DD7, Diima, Mother of Gloom, 2632, 0, Player-67-0020B127, Diemtherfker, 1300, 0, 245586, Chilled Blood, 16", + ["245586-SPELL_AURA_APPLIED"] = "Chilled Blood, 245586, SPELL_AURA_APPLIED, 1709755805.338, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122469-00004E5DD7, Diima, Mother of Gloom, 2632, 0, Player-67-0034F5CD, Badbrony, 1300, 0, 245586, Chilled Blood, 16, DEBUFF, 5577000", + ["245586-SPELL_HEAL_ABSORBED"] = "Chilled Blood, 245586, SPELL_HEAL_ABSORBED, 1709929487.68, SPELL_HEAL_ABSORBED, false, Creature-0-67-1712-0-122469-0000652801, Diima, Mother of Gloom, 2632, 0, Player-67-00344D74, Dotforlife, 1300, 0, 245586, Chilled Blood, 16, Player-67-00344D74, Dotforlife-uwowx100, 1300, 0, 245586, Leech, 1, 11346", + ["245586-SPELL_AURA_REMOVED"] = "Chilled Blood, 245586, SPELL_AURA_REMOVED, 1709929497.262, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-122469-0000652801, Diima, Mother of Gloom, 2632, 0, Player-67-00344D74, Dotforlife, 1300, 0, 245586, Chilled Blood, 16, DEBUFF, 3762747", + ["245586-SPELL_CAST_SUCCESS"] = "Chilled Blood, 245586, SPELL_CAST_SUCCESS, 1709929487.171, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122469-0000652801, Diima, Mother of Gloom, 2632, 0, Player-67-00344FA6, Deadgevex, 1300, 0, 245586, Chilled Blood, 16", + ["245586-SPELL_AURA_APPLIED"] = "Chilled Blood, 245586, SPELL_AURA_APPLIED, 1709929487.236, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-122469-0000652801, Diima, Mother of Gloom, 2632, 0, Player-67-00344D74, Dotforlife, 1300, 0, 245586, Chilled Blood, 16, DEBUFF, 8000000", diff --git a/WeakAuras/Projects/RaiderlosSA/out/245627.txt b/WeakAuras/Projects/RaiderlosSA/out/245627.txt new file mode 100644 index 0000000..b717421 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/245627.txt @@ -0,0 +1,4 @@ + ["245627-SPELL_CAST_SUCCESS"] = "Whirling Saber, 245627, SPELL_CAST_SUCCESS, 1709755612.491, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122468-00004E5DD6, Noura, Mother of Flames, 68168, 0, , nil, -2147483648, -2147483648, 245627, Whirling Saber, 4", + ["245627-SPELL_CAST_START"] = "Whirling Saber, 245627, SPELL_CAST_START, 1709755610.79, SPELL_CAST_START, false, Creature-0-67-1712-0-122468-00004E5DD6, Noura, Mother of Flames, 68168, 0, , nil, -2147483648, -2147483648, 245627, Whirling Saber, 4", + ["245627-SPELL_CAST_SUCCESS"] = "Whirling Saber, 245627, SPELL_CAST_SUCCESS, 1709929294.148, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-122468-00006527FF, Noura, Mother of Flames, 2632, 0, , nil, -2147483648, -2147483648, 245627, Whirling Saber, 4", + ["245627-SPELL_CAST_START"] = "Whirling Saber, 245627, SPELL_CAST_START, 1709929292.387, SPELL_CAST_START, false, Creature-0-67-1712-0-122468-00006527FF, Noura, Mother of Flames, 2632, 0, , nil, -2147483648, -2147483648, 245627, Whirling Saber, 4", diff --git a/WeakAuras/Projects/RaiderlosSA/out/245983.txt b/WeakAuras/Projects/RaiderlosSA/out/245983.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/246037.txt b/WeakAuras/Projects/RaiderlosSA/out/246037.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/246220.txt b/WeakAuras/Projects/RaiderlosSA/out/246220.txt new file mode 100644 index 0000000..446b5c1 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/246220.txt @@ -0,0 +1,6 @@ + ["246220-SPELL_AURA_REMOVED"] = "Fel Bombardment, 246220, SPELL_AURA_REMOVED, 1709924681.045, SPELL_AURA_REMOVED, false, Vehicle-0-67-1712-0-122450-00005C35F5, Garothi Worldbreaker, 2632, 0, Player-67-00345CD7, Bagrintwo, 1300, 0, 246220, Fel Bombardment, 1, DEBUFF", + ["246220-SPELL_AURA_APPLIED"] = "Fel Bombardment, 246220, SPELL_AURA_APPLIED, 1709924674.069, SPELL_AURA_APPLIED, false, Vehicle-0-67-1712-0-122450-00005C35F5, Garothi Worldbreaker, 2632, 0, Player-67-00345CD7, Bagrintwo, 1300, 0, 246220, Fel Bombardment, 1, DEBUFF", + ["246220-SPELL_CAST_SUCCESS"] = "Fel Bombardment, 246220, SPELL_CAST_SUCCESS, 1709924674.011, SPELL_CAST_SUCCESS, false, Vehicle-0-67-1712-0-122450-00005C35F5, Garothi Worldbreaker, 2632, 0, Player-67-00345CD7, Bagrintwo, 1300, 0, 246220, Fel Bombardment, 1", + ["246220-SPELL_AURA_REMOVED"] = "Fel Bombardment, 246220, SPELL_AURA_REMOVED, 1709752079.998, SPELL_AURA_REMOVED, false, Vehicle-0-67-1712-0-122450-0000477022, Garothi Worldbreaker, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 246220, Fel Bombardment, 1, DEBUFF", + ["246220-SPELL_AURA_APPLIED"] = "Fel Bombardment, 246220, SPELL_AURA_APPLIED, 1709752072.979, SPELL_AURA_APPLIED, false, Vehicle-0-67-1712-0-122450-0000477022, Garothi Worldbreaker, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 246220, Fel Bombardment, 1, DEBUFF", + ["246220-SPELL_CAST_SUCCESS"] = "Fel Bombardment, 246220, SPELL_CAST_SUCCESS, 1709752072.924, SPELL_CAST_SUCCESS, false, Vehicle-0-67-1712-0-122450-0000477022, Garothi Worldbreaker, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 246220, Fel Bombardment, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/246664.txt b/WeakAuras/Projects/RaiderlosSA/out/246664.txt new file mode 100644 index 0000000..28d9e32 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/246664.txt @@ -0,0 +1,8 @@ + ["246664-SPELL_MISSED"] = "Annihilation, 246664, SPELL_MISSED, 1709754489.095, SPELL_MISSED, false, Creature-0-67-1712-0-127230-00004C90DA, Garothi Annihilator, 2632, 0, Player-67-00297329, Kamuiheal, 1300, 0, 246664, Annihilation, 4, ABSORB, false, 1500944", + ["246664-SPELL_CAST_SUCCESS"] = "Annihilation, 246664, SPELL_CAST_SUCCESS, 1709754489.095, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-127230-00004C90DA, Garothi Annihilator, 2632, 0, , nil, -2147483648, -2147483648, 246664, Annihilation, 4", + ["246664-SPELL_DAMAGE"] = "Annihilation, 246664, SPELL_DAMAGE, 1709754489.095, SPELL_DAMAGE, false, Creature-0-67-1712-0-127230-00004C90DA, Garothi Annihilator, 2632, 0, Player-67-003504AB, Latviann, 1300, 0, 246664, Annihilation, 4, 912542, -1, 4, nil, nil, nil, false, false, false, false", + ["246664-SPELL_ABSORBED"] = "Annihilation, 246664, SPELL_ABSORBED, 1709754489.085, SPELL_ABSORBED, false, Creature-0-67-1712-0-127230-00004C90DA, Garothi Annihilator, 2632, 0, Player-67-00297329, Kamuiheal, 1300, 0, 246664, Annihilation, 4, Player-67-00297329, Kamuiheal, 1300, 0, 207472, Xavaric's Magnum Opus, 1, 1500944", + ["246664-SPELL_CAST_SUCCESS"] = "Annihilation, 246664, SPELL_CAST_SUCCESS, 1709927757.449, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-127230-000061C294, Garothi Annihilator, 2632, 0, , nil, -2147483648, -2147483648, 246664, Annihilation, 4", + ["246664-SPELL_ABSORBED"] = "Annihilation, 246664, SPELL_ABSORBED, 1709927757.449, SPELL_ABSORBED, false, Creature-0-67-1712-0-127230-000061C294, Garothi Annihilator, 2632, 0, Player-67-002A0DBE, Arizus, 1300, 0, 246664, Annihilation, 4, Player-67-002A0DBE, Arizus, 1300, 0, 203538, Greater Blessing of Kings, 2, 242279", + ["246664-SPELL_DAMAGE"] = "Annihilation, 246664, SPELL_DAMAGE, 1709927757.449, SPELL_DAMAGE, false, Creature-0-67-1712-0-127230-000061C294, Garothi Annihilator, 2632, 0, Player-67-002A0DBE, Arizus, 1300, 0, 246664, Annihilation, 4, 1663536, -1, 4, nil, nil, 242279, false, false, false, false", + ["246664-SPELL_MISSED"] = "Annihilation, 246664, SPELL_MISSED, 1709927760.708, SPELL_MISSED, false, Creature-0-67-1712-0-127230-000061C290, Garothi Annihilator, 2632, 0, Player-67-00345CD7, Bagrintwo, 1300, 0, 246664, Annihilation, 4, ABSORB, false, 820532", diff --git a/WeakAuras/Projects/RaiderlosSA/out/246706.txt b/WeakAuras/Projects/RaiderlosSA/out/246706.txt new file mode 100644 index 0000000..0772c31 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/246706.txt @@ -0,0 +1,6 @@ + ["246706-SPELL_DAMAGE"] = "Demolish, 246706, SPELL_DAMAGE, 1709754548.894, SPELL_DAMAGE, true, , nil, 1300, 0, Player-67-00346D7C, Livingbomb, 1300, 0, 246706, Demolish, 32, 2300020, -1, 32, nil, nil, nil, false, false, false, false", + ["246706-SPELL_ABSORBED"] = "Demolish, 246706, SPELL_ABSORBED, 1709754609.107, SPELL_ABSORBED, true, , nil, 1298, 0, Player-67-0034CDD5, Ubberagnarso, 1298, 0, 246706, Demolish, 32, Player-67-0034CDD5, Ubberagnarso, 1298, 0, 108366, Soul Leech, 32, 1054140", + ["246706-SPELL_MISSED"] = "Demolish, 246706, SPELL_MISSED, 1709927768.905, SPELL_MISSED, true, , nil, 1300, 0, Player-67-0034D19D, Brainstew, 1300, 0, 246706, Demolish, 32, IMMUNE, false", + ["246706-SPELL_DAMAGE"] = "Demolish, 246706, SPELL_DAMAGE, 1709927768.348, SPELL_DAMAGE, true, , nil, 1300, 0, Player-67-003224AB, Shkylol, 1300, 0, 246706, Demolish, 32, 19840082, 14503142, 32, nil, nil, 1067388, false, false, false, false", + ["246706-SPELL_ABSORBED"] = "Demolish, 246706, SPELL_ABSORBED, 1709927768.334, SPELL_ABSORBED, true, , nil, 1300, 0, Player-67-003224AB, Shkylol, 1300, 0, 246706, Demolish, 32, Player-67-003224AB, Shkylol, 1300, 0, 108366, Soul Leech, 32, 1067388", + ["246706-SPELL_MISSED"] = "Demolish, 246706, SPELL_MISSED, 1709927768.348, SPELL_MISSED, true, , nil, 1300, 0, Player-67-0034D19D, Brainstew, 1300, 0, 246706, Demolish, 32, IMMUNE, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/246779.txt b/WeakAuras/Projects/RaiderlosSA/out/246779.txt new file mode 100644 index 0000000..c1c22a3 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/246779.txt @@ -0,0 +1,6 @@ + ["246779-SPELL_MISSED"] = "Diabolic Bomb, 246779, SPELL_MISSED, 1709754817.541, SPELL_MISSED, false, Vehicle-0-67-1712-0-122578-00004C90BC, Kin'garoth, 68168, 0, Player-67-00352BEE, Wosadel, 1300, 0, 246779, Diabolic Bomb, 32, IMMUNE, false", + ["246779-SPELL_DAMAGE"] = "Diabolic Bomb, 246779, SPELL_DAMAGE, 1709754817.541, SPELL_DAMAGE, false, Vehicle-0-67-1712-0-122578-00004C90BC, Kin'garoth, 68168, 0, Player-67-003465EF, Dotsvex, 1300, 0, 246779, Diabolic Bomb, 32, 1293524, -1, 32, nil, nil, 687591, false, false, false, false", + ["246779-SPELL_ABSORBED"] = "Diabolic Bomb, 246779, SPELL_ABSORBED, 1709754817.541, SPELL_ABSORBED, false, Vehicle-0-67-1712-0-122578-00004C90BC, Kin'garoth, 68168, 0, Player-67-003465EF, Dotsvex, 1300, 0, 246779, Diabolic Bomb, 32, Player-67-003465EF, Dotsvex, 1300, 0, 108366, Soul Leech, 32, 687591", + ["246779-SPELL_MISSED"] = "Diabolic Bomb, 246779, SPELL_MISSED, 1709928264.581, SPELL_MISSED, false, Vehicle-0-67-1712-0-122578-000061C276, Kin'garoth, 2632, 0, Player-67-002D1DA2, Pinkleta, 1297, 0, 246779, Diabolic Bomb, 32, ABSORB, false, 1393311", + ["246779-SPELL_ABSORBED"] = "Diabolic Bomb, 246779, SPELL_ABSORBED, 1709928264.581, SPELL_ABSORBED, false, Vehicle-0-67-1712-0-122578-000061C276, Kin'garoth, 2632, 0, Player-67-002D1DA2, Pinkleta, 1297, 0, 246779, Diabolic Bomb, 32, Player-67-002D1DA2, Pinkleta, 1297, 0, 252208, Refractive Shell, 2, 315177", + ["246779-SPELL_DAMAGE"] = "Diabolic Bomb, 246779, SPELL_DAMAGE, 1709928264.581, SPELL_DAMAGE, false, Vehicle-0-67-1712-0-122578-000061C276, Kin'garoth, 2632, 0, Player-67-00352BEE, Wosadel, 1298, 0, 246779, Diabolic Bomb, 32, 1079533, -1, 32, nil, nil, nil, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/246840.txt b/WeakAuras/Projects/RaiderlosSA/out/246840.txt new file mode 100644 index 0000000..8461039 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/246840.txt @@ -0,0 +1,10 @@ + ["246840-SPELL_AURA_REMOVED"] = "Ruiner, 246840, SPELL_AURA_REMOVED, 1709754815.963, SPELL_AURA_REMOVED, true, , nil, 1300, 0, Player-67-00351D42, Belyth, 1300, 0, 246840, Ruiner, 4, DEBUFF", + ["246840-SPELL_PERIODIC_MISSED"] = "Ruiner, 246840, SPELL_PERIODIC_MISSED, 1709754815.543, SPELL_PERIODIC_MISSED, true, , nil, 1300, 0, Player-67-00351D42, Belyth, 1300, 0, 246840, Ruiner, 4, ABSORB, false, 1337482", + ["246840-SPELL_PERIODIC_DAMAGE"] = "Ruiner, 246840, SPELL_PERIODIC_DAMAGE, 1709754814.831, SPELL_PERIODIC_DAMAGE, true, , nil, 1300, 0, Player-67-00351D42, Belyth, 1300, 0, 246840, Ruiner, 4, 1337482, 0, 4, nil, nil, nil, false, false, false, false", + ["246840-SPELL_ABSORBED"] = "Ruiner, 246840, SPELL_ABSORBED, 1709754887.155, SPELL_ABSORBED, true, , nil, 1300, 0, Player-67-003465EF, Dotsvex, 1300, 0, 246840, Ruiner, 4, Player-67-003465EF, Dotsvex, 1300, 0, 108366, Soul Leech, 32, 557622", + ["246840-SPELL_AURA_APPLIED"] = "Ruiner, 246840, SPELL_AURA_APPLIED, 1709754814.831, SPELL_AURA_APPLIED, true, , nil, 1300, 0, Player-67-00351D42, Belyth, 1300, 0, 246840, Ruiner, 4, DEBUFF", + ["246840-SPELL_AURA_REMOVED"] = "Ruiner, 246840, SPELL_AURA_REMOVED, 1709928348.384, SPELL_AURA_REMOVED, true, , nil, 1300, 0, Player-67-003032B2, Waffele, 1300, 0, 246840, Ruiner, 4, DEBUFF", + ["246840-SPELL_PERIODIC_MISSED"] = "Ruiner, 246840, SPELL_PERIODIC_MISSED, 1709928347.399, SPELL_PERIODIC_MISSED, true, , nil, 1300, 0, Player-67-003032B2, Waffele, 1300, 0, 246840, Ruiner, 4, ABSORB, false, 884626", + ["246840-SPELL_PERIODIC_DAMAGE"] = "Ruiner, 246840, SPELL_PERIODIC_DAMAGE, 1709928449.865, SPELL_PERIODIC_DAMAGE, true, , nil, 1300, 0, Player-67-002A0DBE, Arizus, 1300, 0, 246840, Ruiner, 4, 1485761, 0, 4, nil, nil, nil, false, false, false, false", + ["246840-SPELL_ABSORBED"] = "Ruiner, 246840, SPELL_ABSORBED, 1709928347.399, SPELL_ABSORBED, true, , nil, 1300, 0, Player-67-003032B2, Waffele, 1300, 0, 246840, Ruiner, 4, Player-67-003032B2, Waffele, 1300, 0, 108366, Soul Leech, 32, 884626", + ["246840-SPELL_AURA_APPLIED"] = "Ruiner, 246840, SPELL_AURA_APPLIED, 1709928347.399, SPELL_AURA_APPLIED, true, , nil, 1300, 0, Player-67-003032B2, Waffele, 1300, 0, 246840, Ruiner, 4, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/247079.txt b/WeakAuras/Projects/RaiderlosSA/out/247079.txt new file mode 100644 index 0000000..4372158 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/247079.txt @@ -0,0 +1,5 @@ + ["247079-SPELL_ABSORBED"] = "Empowered Flame Rend, 247079, SPELL_ABSORBED, 1710103291.205, SPELL_ABSORBED, false, Creature-0-67-1712-0-121975-000068CD93, Aggramar, 68168, 0, Player-67-00247307, Smallpumper, 1300, 1, 247079, Empowered Flame Rend, 4, Player-67-00283236, Evadevine, 1298, 0, 208771, Smite, 2, 349006", + ["247079-SPELL_MISSED"] = "Empowered Flame Rend, 247079, SPELL_MISSED, 1710103710.501, SPELL_MISSED, false, Creature-0-67-1712-0-121975-000068CD93, Aggramar, 2632, 0, Player-67-00303268, Raidenshøgun, 1298, 2, 247079, Empowered Flame Rend, 4, ABSORB, false, 978457", + ["247079-SPELL_AURA_APPLIED"] = "Empowered Flame Rend, 247079, SPELL_AURA_APPLIED, 1710103264.392, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-121975-000068CD93, Aggramar, 2632, 0, Player-67-00303266, Oozzie, 1300, 0, 247079, Empowered Flame Rend, 4, DEBUFF", + ["247079-SPELL_AURA_REMOVED"] = "Empowered Flame Rend, 247079, SPELL_AURA_REMOVED, 1710103281.437, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-121975-000068CD93, Aggramar, 2632, 0, Player-67-00303268, Raidenshøgun, 1298, 2, 247079, Empowered Flame Rend, 4, DEBUFF", + ["247079-SPELL_DAMAGE"] = "Empowered Flame Rend, 247079, SPELL_DAMAGE, 1710103291.205, SPELL_DAMAGE, false, Creature-0-67-1712-0-121975-000068CD93, Aggramar, 68168, 0, Player-67-00247307, Smallpumper, 1300, 1, 247079, Empowered Flame Rend, 4, 1557961, -1, 4, nil, nil, 560891, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/247367.txt b/WeakAuras/Projects/RaiderlosSA/out/247367.txt new file mode 100644 index 0000000..23600ac --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/247367.txt @@ -0,0 +1,16 @@ + ["247367-SPELL_CAST_SUCCESS"] = "Shock Lance, 247367, SPELL_CAST_SUCCESS, 1709754232.983, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 247367, Shock Lance, 1", + ["247367-SPELL_ABSORBED"] = "Shock Lance, 247367, SPELL_ABSORBED, 1709754232.983, SPELL_ABSORBED, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 247367, Shock Lance, 1, Player-67-00297329, Kamuiheal, 1300, 0, 257444, Verdant Embrace, 8, 329444", + ["247367-SPELL_MISSED"] = "Shock Lance, 247367, SPELL_MISSED, 1709754232.983, SPELL_MISSED, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 247367, Shock Lance, 1, ABSORB, false, 329444", + ["247367-SPELL_AURA_REMOVED"] = "Shock Lance, 247367, SPELL_AURA_REMOVED, 1709754293.371, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 247367, Shock Lance, 1, DEBUFF", + ["247367-SPELL_DAMAGE"] = "Shock Lance, 247367, SPELL_DAMAGE, 1709754243.061, SPELL_DAMAGE, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 247367, Shock Lance, 1, 691657, -1, 1, nil, nil, nil, false, false, false, false", + ["247367-SPELL_AURA_APPLIED_DOSE"] = "Shock Lance, 247367, SPELL_AURA_APPLIED_DOSE, 1709754238.084, SPELL_AURA_APPLIED_DOSE, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 247367, Shock Lance, 1, DEBUFF, 2", + ["247367-SPELL_AURA_APPLIED"] = "Shock Lance, 247367, SPELL_AURA_APPLIED, 1709754233.046, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 247367, Shock Lance, 1, DEBUFF", + ["247367-SPELL_CAST_START"] = "Shock Lance, 247367, SPELL_CAST_START, 1709754231.98, SPELL_CAST_START, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, , nil, -2147483648, -2147483648, 247367, Shock Lance, 1", + ["247367-SPELL_AURA_APPLIED"] = "Shock Lance, 247367, SPELL_AURA_APPLIED, 1709927349.656, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 247367, Shock Lance, 1, DEBUFF", + ["247367-SPELL_CAST_SUCCESS"] = "Shock Lance, 247367, SPELL_CAST_SUCCESS, 1709927349.599, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 247367, Shock Lance, 1", + ["247367-SPELL_MISSED"] = "Shock Lance, 247367, SPELL_MISSED, 1709927359.552, SPELL_MISSED, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 247367, Shock Lance, 1, ABSORB, false, 2123331", + ["247367-SPELL_AURA_REMOVED"] = "Shock Lance, 247367, SPELL_AURA_REMOVED, 1709927389.8, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 247367, Shock Lance, 1, DEBUFF", + ["247367-SPELL_AURA_APPLIED_DOSE"] = "Shock Lance, 247367, SPELL_AURA_APPLIED_DOSE, 1709927354.732, SPELL_AURA_APPLIED_DOSE, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 247367, Shock Lance, 1, DEBUFF, 2", + ["247367-SPELL_DAMAGE"] = "Shock Lance, 247367, SPELL_DAMAGE, 1709927349.599, SPELL_DAMAGE, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 247367, Shock Lance, 1, 984477, -1, 1, nil, nil, 310887, false, false, false, false", + ["247367-SPELL_ABSORBED"] = "Shock Lance, 247367, SPELL_ABSORBED, 1709927354.597, SPELL_ABSORBED, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 247367, Shock Lance, 1, Player-67-0029732D, Ningenpriest, 1298, 0, 208771, Smite, 2, 420000", + ["247367-SPELL_CAST_START"] = "Shock Lance, 247367, SPELL_CAST_START, 1709927348.542, SPELL_CAST_START, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, , nil, -2147483648, -2147483648, 247367, Shock Lance, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/247376.txt b/WeakAuras/Projects/RaiderlosSA/out/247376.txt new file mode 100644 index 0000000..ac676a3 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/247376.txt @@ -0,0 +1,4 @@ + ["247376-SPELL_CAST_SUCCESS"] = "Pulse Grenade, 247376, SPELL_CAST_SUCCESS, 1709754244.094, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, , nil, -2147483648, -2147483648, 247376, Pulse Grenade, 1", + ["247376-SPELL_CAST_START"] = "Pulse Grenade, 247376, SPELL_CAST_START, 1709754243.061, SPELL_CAST_START, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, , nil, -2147483648, -2147483648, 247376, Pulse Grenade, 1", + ["247376-SPELL_CAST_SUCCESS"] = "Pulse Grenade, 247376, SPELL_CAST_SUCCESS, 1709927360.594, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, , nil, -2147483648, -2147483648, 247376, Pulse Grenade, 1", + ["247376-SPELL_CAST_START"] = "Pulse Grenade, 247376, SPELL_CAST_START, 1709927359.602, SPELL_CAST_START, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, , nil, -2147483648, -2147483648, 247376, Pulse Grenade, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/247552.txt b/WeakAuras/Projects/RaiderlosSA/out/247552.txt new file mode 100644 index 0000000..83323be --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/247552.txt @@ -0,0 +1,2 @@ + ["247552-SPELL_MISSED"] = "Sleep Canister, 247552, SPELL_MISSED, 1709927357.874, SPELL_MISSED, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 68168, 0, Player-67-003460E5, Sugpula, 1300, 0, 247552, Sleep Canister, 8, IMMUNE, false", + ["247552-SPELL_MISSED"] = "Sleep Canister, 247552, SPELL_MISSED, 1709927357.299, SPELL_MISSED, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-003460E5, Sugpula, 1300, 0, 247552, Sleep Canister, 8, IMMUNE, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/247687.txt b/WeakAuras/Projects/RaiderlosSA/out/247687.txt new file mode 100644 index 0000000..24b9c2b --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/247687.txt @@ -0,0 +1,20 @@ + ["247687-SPELL_AURA_APPLIED"] = "Sever, 247687, SPELL_AURA_APPLIED, 1709754304.801, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 247687, Sever, 1, DEBUFF", + ["247687-SPELL_PERIODIC_DAMAGE"] = "Sever, 247687, SPELL_PERIODIC_DAMAGE, 1709754306.749, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 247687, Sever, 1, 76931, 0, 1, nil, nil, nil, false, false, false, false", + ["247687-SPELL_CAST_SUCCESS"] = "Sever, 247687, SPELL_CAST_SUCCESS, 1709754304.732, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 247687, Sever, 1", + ["247687-SPELL_MISSED"] = "Sever, 247687, SPELL_MISSED, 1709754332.943, SPELL_MISSED, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 247687, Sever, 1, ABSORB, false, 1018735", + ["247687-SPELL_ABSORBED"] = "Sever, 247687, SPELL_ABSORBED, 1709754332.943, SPELL_ABSORBED, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 247687, Sever, 1, Player-67-00247307, Smallpumper, 1298, 0, 252545, Light of Absolarn, 8, 1018735", + ["247687-SPELL_CAST_START"] = "Sever, 247687, SPELL_CAST_START, 1709754303.7, SPELL_CAST_START, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, , nil, -2147483648, -2147483648, 247687, Sever, 1", + ["247687-SPELL_AURA_APPLIED_DOSE"] = "Sever, 247687, SPELL_AURA_APPLIED_DOSE, 1709754311.832, SPELL_AURA_APPLIED_DOSE, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 247687, Sever, 1, DEBUFF, 2", + ["247687-SPELL_PERIODIC_MISSED"] = "Sever, 247687, SPELL_PERIODIC_MISSED, 1709754334.77, SPELL_PERIODIC_MISSED, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 247687, Sever, 1, ABSORB, false, 945587", + ["247687-SPELL_AURA_REMOVED"] = "Sever, 247687, SPELL_AURA_REMOVED, 1709754371.174, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 247687, Sever, 1, DEBUFF", + ["247687-SPELL_DAMAGE"] = "Sever, 247687, SPELL_DAMAGE, 1709754304.732, SPELL_DAMAGE, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 247687, Sever, 1, 573616, -1, 1, nil, nil, nil, false, false, false, false", + ["247687-SPELL_AURA_APPLIED"] = "Sever, 247687, SPELL_AURA_APPLIED, 1709927439.137, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 247687, Sever, 1, DEBUFF", + ["247687-SPELL_PERIODIC_DAMAGE"] = "Sever, 247687, SPELL_PERIODIC_DAMAGE, 1709927441.097, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 247687, Sever, 1, 334998, 0, 1, nil, nil, 63809, false, false, false, false", + ["247687-SPELL_CAST_START"] = "Sever, 247687, SPELL_CAST_START, 1709927438.076, SPELL_CAST_START, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, , nil, -2147483648, -2147483648, 247687, Sever, 1", + ["247687-SPELL_AURA_APPLIED_DOSE"] = "Sever, 247687, SPELL_AURA_APPLIED_DOSE, 1709927446.226, SPELL_AURA_APPLIED_DOSE, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 247687, Sever, 1, DEBUFF, 2", + ["247687-SPELL_AURA_REMOVED"] = "Sever, 247687, SPELL_AURA_REMOVED, 1709927478.274, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 247687, Sever, 1, DEBUFF", + ["247687-SPELL_ABSORBED"] = "Sever, 247687, SPELL_ABSORBED, 1709927439.07, SPELL_ABSORBED, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 247687, Sever, 1, Player-67-002C429F, Anusucc, 1300, 0, 77535, Blood Shield, 32, 997354", + ["247687-SPELL_MISSED"] = "Sever, 247687, SPELL_MISSED, 1709927453.213, SPELL_MISSED, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 247687, Sever, 1, ABSORB, false, 2570802", + ["247687-SPELL_CAST_SUCCESS"] = "Sever, 247687, SPELL_CAST_SUCCESS, 1709927439.07, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 247687, Sever, 1", + ["247687-SPELL_DAMAGE"] = "Sever, 247687, SPELL_DAMAGE, 1709927439.07, SPELL_DAMAGE, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 247687, Sever, 1, 405150, -1, 1, nil, nil, 2600014, false, false, false, false", + ["247687-SPELL_PERIODIC_MISSED"] = "Sever, 247687, SPELL_PERIODIC_MISSED, 1709927449.147, SPELL_PERIODIC_MISSED, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 68168, 0, Player-67-002C429F, Anusucc, 1300, 0, 247687, Sever, 1, ABSORB, false, 675944", diff --git a/WeakAuras/Projects/RaiderlosSA/out/247716.txt b/WeakAuras/Projects/RaiderlosSA/out/247716.txt new file mode 100644 index 0000000..0c4ab26 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/247716.txt @@ -0,0 +1,13 @@ + ["247716-SPELL_AURA_REMOVED"] = "Charged Blasts, 247716, SPELL_AURA_REMOVED, 1709754332.867, SPELL_AURA_REMOVED, true, , nil, 2600, 0, Player-67-0034EA31, Koudyran, 1300, 0, 247716, Charged Blasts, 4, DEBUFF", + ["247716-SPELL_PERIODIC_DAMAGE"] = "Charged Blasts, 247716, SPELL_PERIODIC_DAMAGE, 1709754317.827, SPELL_PERIODIC_DAMAGE, true, , nil, 2632, 0, Player-67-0034EA31, Koudyran, 1300, 0, 247716, Charged Blasts, 4, 802297, 0, 4, nil, nil, nil, false, false, false, false", + ["247716-SPELL_ABSORBED"] = "Charged Blasts, 247716, SPELL_ABSORBED, 1709754314.773, SPELL_ABSORBED, true, , nil, 2632, 0, Player-67-00297329, Kamuiheal, 1300, 0, 247716, Charged Blasts, 4, Player-67-00297329, Kamuiheal, 1300, 0, 207472, Xavaric's Magnum Opus, 1, 1413343", + ["247716-SPELL_PERIODIC_MISSED"] = "Charged Blasts, 247716, SPELL_PERIODIC_MISSED, 1709754317.827, SPELL_PERIODIC_MISSED, true, , nil, 2632, 0, Player-67-00300DF1, Keeponsmitin, 1300, 0, 247716, Charged Blasts, 4, ABSORB, false, 730240", + ["247716-SPELL_AURA_APPLIED"] = "Charged Blasts, 247716, SPELL_AURA_APPLIED, 1709754314.834, SPELL_AURA_APPLIED, true, , nil, 2632, 0, Player-67-0034EA31, Koudyran, 1300, 0, 247716, Charged Blasts, 4, DEBUFF", + ["247716-SPELL_DAMAGE"] = "Charged Blasts, 247716, SPELL_DAMAGE, 1709754314.802, SPELL_DAMAGE, true, , nil, 2632, 0, Player-67-0034E79A, Gorlock, 1300, 0, 247716, Charged Blasts, 4, 1188784, -1, 4, nil, nil, nil, false, false, false, false", + ["247716-SPELL_MISSED"] = "Charged Blasts, 247716, SPELL_MISSED, 1709754351.176, SPELL_MISSED, true, , nil, 2632, 0, Player-67-0034CDD5, Ubberagnarso, 1298, 0, 247716, Charged Blasts, 4, ABSORB, false, 1616586", + ["247716-SPELL_AURA_REMOVED"] = "Charged Blasts, 247716, SPELL_AURA_REMOVED, 1709927467.266, SPELL_AURA_REMOVED, true, , nil, 2600, 0, Player-67-0034F5CD, Badbrony, 1300, 0, 247716, Charged Blasts, 4, DEBUFF", + ["247716-SPELL_PERIODIC_DAMAGE"] = "Charged Blasts, 247716, SPELL_PERIODIC_DAMAGE, 1709927452.219, SPELL_PERIODIC_DAMAGE, true, , nil, 2632, 0, Player-67-0034F5CD, Badbrony, 1300, 0, 247716, Charged Blasts, 4, 868748, 0, 4, 217188, nil, nil, false, false, false, false", + ["247716-SPELL_PERIODIC_MISSED"] = "Charged Blasts, 247716, SPELL_PERIODIC_MISSED, 1709927491.39, SPELL_PERIODIC_MISSED, true, , nil, 2600, 0, Player-67-003032B2, Waffele, 1300, 0, 247716, Charged Blasts, 4, ABSORB, false, 889747", + ["247716-SPELL_DAMAGE"] = "Charged Blasts, 247716, SPELL_DAMAGE, 1709927449.228, SPELL_DAMAGE, true, , nil, 2632, 0, Player-67-0034F5CD, Badbrony, 1300, 0, 247716, Charged Blasts, 4, 1814563, -1, 4, nil, nil, nil, false, false, false, false", + ["247716-SPELL_AURA_APPLIED"] = "Charged Blasts, 247716, SPELL_AURA_APPLIED, 1709927449.272, SPELL_AURA_APPLIED, true, , nil, 2632, 0, Player-67-0034F5CD, Badbrony, 1300, 0, 247716, Charged Blasts, 4, DEBUFF", + ["247716-SPELL_ABSORBED"] = "Charged Blasts, 247716, SPELL_ABSORBED, 1709927458.413, SPELL_ABSORBED, true, , nil, 2600, 0, Player-67-0034D3BE, Iamedgars, 1300, 0, 247716, Charged Blasts, 4, Player-67-0029732D, Ningenpriest, 1298, 0, 17, Power Word: Shield, 2, 989355", diff --git a/WeakAuras/Projects/RaiderlosSA/out/248068.txt b/WeakAuras/Projects/RaiderlosSA/out/248068.txt new file mode 100644 index 0000000..41aa550 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/248068.txt @@ -0,0 +1,4 @@ + ["248068-SPELL_CAST_START"] = "Empowered Pulse Grenade, 248068, SPELL_CAST_START, 1709754394.347, SPELL_CAST_START, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, , nil, -2147483648, -2147483648, 248068, Empowered Pulse Grenade, 32", + ["248068-SPELL_CAST_SUCCESS"] = "Empowered Pulse Grenade, 248068, SPELL_CAST_SUCCESS, 1709754395.364, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, , nil, -2147483648, -2147483648, 248068, Empowered Pulse Grenade, 32", + ["248068-SPELL_CAST_START"] = "Empowered Pulse Grenade, 248068, SPELL_CAST_START, 1709927551.63, SPELL_CAST_START, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, , nil, -2147483648, -2147483648, 248068, Empowered Pulse Grenade, 32", + ["248068-SPELL_CAST_SUCCESS"] = "Empowered Pulse Grenade, 248068, SPELL_CAST_SUCCESS, 1709927552.646, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, , nil, -2147483648, -2147483648, 248068, Empowered Pulse Grenade, 32", diff --git a/WeakAuras/Projects/RaiderlosSA/out/248070.txt b/WeakAuras/Projects/RaiderlosSA/out/248070.txt new file mode 100644 index 0000000..8133bb4 --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/248070.txt @@ -0,0 +1,4 @@ + ["248070-SPELL_CAST_SUCCESS"] = "Empowered Shrapnel Blast, 248070, SPELL_CAST_SUCCESS, 1709754405.928, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, , nil, -2147483648, -2147483648, 248070, Empowered Shrapnel Blast, 4", + ["248070-SPELL_CAST_START"] = "Empowered Shrapnel Blast, 248070, SPELL_CAST_START, 1709754404.379, SPELL_CAST_START, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, , nil, -2147483648, -2147483648, 248070, Empowered Shrapnel Blast, 4", + ["248070-SPELL_CAST_START"] = "Empowered Shrapnel Blast, 248070, SPELL_CAST_START, 1709927561.622, SPELL_CAST_START, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, , nil, -2147483648, -2147483648, 248070, Empowered Shrapnel Blast, 4", + ["248070-SPELL_CAST_SUCCESS"] = "Empowered Shrapnel Blast, 248070, SPELL_CAST_SUCCESS, 1709927563.132, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, , nil, -2147483648, -2147483648, 248070, Empowered Shrapnel Blast, 4", diff --git a/WeakAuras/Projects/RaiderlosSA/out/248396.txt b/WeakAuras/Projects/RaiderlosSA/out/248396.txt new file mode 100644 index 0000000..e25b98f --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/248396.txt @@ -0,0 +1,9 @@ + ["248396-SPELL_PERIODIC_MISSED"] = "Soulblight, 248396, SPELL_PERIODIC_MISSED, 1710278291.659, SPELL_PERIODIC_MISSED, false, Creature-0-67-1712-0-125008-0000622E74, Soulblight Orb, 2600, 0, Player-67-002D9DD1, Succpotato, 1297, 0, 248396, Soulblight, 32, ABSORB, false, 954327", + ["248396-SPELL_PERIODIC_DAMAGE"] = "Soulblight, 248396, SPELL_PERIODIC_DAMAGE, 1709756638.24, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1712-0-125008-000050DB3C, Soulblight Orb, 2632, 0, Player-67-0034EA31, Koudyran, 1300, 0, 248396, Soulblight, 32, 964123, 0, 32, nil, nil, nil, false, false, false, false", + ["248396-SPELL_AURA_REMOVED"] = "Soulblight, 248396, SPELL_AURA_REMOVED, 1709756644.343, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-125008-000050DB3C, Soulblight Orb, 2600, 0, Player-67-0034EA31, Koudyran, 1300, 0, 248396, Soulblight, 32, DEBUFF", + ["248396-SPELL_ABSORBED"] = "Soulblight, 248396, SPELL_ABSORBED, 1709756642.168, SPELL_ABSORBED, false, Creature-0-67-1712-0-125008-000050DB3C, Soulblight Orb, 2600, 0, Player-67-00351D42, Belyth, 1300, 0, 248396, Soulblight, 32, Player-67-00351D42, Belyth, 1300, 0, 235313, Blazing Barrier, 4, 392940", + ["248396-SPELL_AURA_APPLIED"] = "Soulblight, 248396, SPELL_AURA_APPLIED, 1709756636.294, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-125008-000050DB3C, Soulblight Orb, 2632, 0, Player-67-0034EA31, Koudyran, 1300, 0, 248396, Soulblight, 32, DEBUFF", + ["248396-SPELL_PERIODIC_DAMAGE"] = "Soulblight, 248396, SPELL_PERIODIC_DAMAGE, 1709930439.379, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1712-0-125008-0000671A19, Soulblight Orb, 2632, 0, Player-67-0034D161, Kimbustion, 1300, 0, 248396, Soulblight, 32, 1133080, 0, 32, nil, nil, nil, false, false, false, false", + ["248396-SPELL_AURA_REMOVED"] = "Soulblight, 248396, SPELL_AURA_REMOVED, 1709930445.424, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-125008-0000671A19, Soulblight Orb, 2600, 0, Player-67-0034D161, Kimbustion, 1300, 0, 248396, Soulblight, 32, DEBUFF", + ["248396-SPELL_AURA_APPLIED"] = "Soulblight, 248396, SPELL_AURA_APPLIED, 1709930437.398, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-125008-0000671A19, Soulblight Orb, 2632, 0, Player-67-0034D161, Kimbustion, 1300, 0, 248396, Soulblight, 32, DEBUFF", + ["248396-SPELL_ABSORBED"] = "Soulblight, 248396, SPELL_ABSORBED, 1709930447.22, SPELL_ABSORBED, false, Creature-0-67-1712-0-125008-0000671A19, Soulblight Orb, 2600, 0, Player-67-0034D3BE, Iamedgars, 1300, 0, 248396, Soulblight, 32, Player-67-0029732D, Ningenpriest, 1300, 0, 17, Power Word: Shield, 2, 1105342", diff --git a/WeakAuras/Projects/RaiderlosSA/out/248732.txt b/WeakAuras/Projects/RaiderlosSA/out/248732.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/250255.txt b/WeakAuras/Projects/RaiderlosSA/out/250255.txt new file mode 100644 index 0000000..2072daa --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/250255.txt @@ -0,0 +1,16 @@ + ["250255-SPELL_DAMAGE"] = "Empowered Shock Lance, 250255, SPELL_DAMAGE, 1709754394.347, SPELL_DAMAGE, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 250255, Empowered Shock Lance, 1, 676004, -1, 1, nil, nil, nil, false, false, false, false", + ["250255-SPELL_AURA_APPLIED"] = "Empowered Shock Lance, 250255, SPELL_AURA_APPLIED, 1709754394.4, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 250255, Empowered Shock Lance, 1, DEBUFF", + ["250255-SPELL_MISSED"] = "Empowered Shock Lance, 250255, SPELL_MISSED, 1709927582.178, SPELL_MISSED, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 250255, Empowered Shock Lance, 1, ABSORB, false, 2218605", + ["250255-SPELL_CAST_START"] = "Empowered Shock Lance, 250255, SPELL_CAST_START, 1709754393.298, SPELL_CAST_START, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, , nil, -2147483648, -2147483648, 250255, Empowered Shock Lance, 1", + ["250255-SPELL_AURA_REMOVED"] = "Empowered Shock Lance, 250255, SPELL_AURA_REMOVED, 1709754449.363, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 250255, Empowered Shock Lance, 1, DEBUFF", + ["250255-SPELL_ABSORBED"] = "Empowered Shock Lance, 250255, SPELL_ABSORBED, 1709754444.351, SPELL_ABSORBED, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 250255, Empowered Shock Lance, 1, Player-67-00297329, Kamuiheal, 1300, 0, 257444, Verdant Embrace, 8, 490231", + ["250255-SPELL_AURA_APPLIED_DOSE"] = "Empowered Shock Lance, 250255, SPELL_AURA_APPLIED_DOSE, 1709754404.432, SPELL_AURA_APPLIED_DOSE, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 250255, Empowered Shock Lance, 1, DEBUFF, 2", + ["250255-SPELL_CAST_SUCCESS"] = "Empowered Shock Lance, 250255, SPELL_CAST_SUCCESS, 1709754394.347, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-124158-00004C906F, Imonar the Soulhunter, 68168, 0, Player-67-00247307, Smallpumper, 1298, 0, 250255, Empowered Shock Lance, 1", + ["250255-SPELL_MISSED"] = "Empowered Shock Lance, 250255, SPELL_MISSED, 1709927581.636, SPELL_MISSED, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 250255, Empowered Shock Lance, 1, ABSORB, false, 2218605", + ["250255-SPELL_CAST_START"] = "Empowered Shock Lance, 250255, SPELL_CAST_START, 1709927550.568, SPELL_CAST_START, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, , nil, -2147483648, -2147483648, 250255, Empowered Shock Lance, 1", + ["250255-SPELL_AURA_REMOVED"] = "Empowered Shock Lance, 250255, SPELL_AURA_REMOVED, 1709927638.065, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 250255, Empowered Shock Lance, 1, DEBUFF", + ["250255-SPELL_ABSORBED"] = "Empowered Shock Lance, 250255, SPELL_ABSORBED, 1709927551.63, SPELL_ABSORBED, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 250255, Empowered Shock Lance, 1, Player-67-002C429F, Anusucc, 1300, 0, 77535, Blood Shield, 32, 1028745", + ["250255-SPELL_AURA_APPLIED_DOSE"] = "Empowered Shock Lance, 250255, SPELL_AURA_APPLIED_DOSE, 1709927561.687, SPELL_AURA_APPLIED_DOSE, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 250255, Empowered Shock Lance, 1, DEBUFF, 2", + ["250255-SPELL_AURA_APPLIED"] = "Empowered Shock Lance, 250255, SPELL_AURA_APPLIED, 1709927551.672, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 250255, Empowered Shock Lance, 1, DEBUFF", + ["250255-SPELL_CAST_SUCCESS"] = "Empowered Shock Lance, 250255, SPELL_CAST_SUCCESS, 1709927551.63, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 250255, Empowered Shock Lance, 1", + ["250255-SPELL_DAMAGE"] = "Empowered Shock Lance, 250255, SPELL_DAMAGE, 1709927551.63, SPELL_DAMAGE, false, Creature-0-67-1712-0-124158-000061C1D8, Imonar the Soulhunter, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 250255, Empowered Shock Lance, 1, 518250, -1, 1, nil, nil, 1517269, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/251570.txt b/WeakAuras/Projects/RaiderlosSA/out/251570.txt new file mode 100644 index 0000000..52c623e --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/251570.txt @@ -0,0 +1,10 @@ + ["251570-SPELL_AURA_APPLIED"] = "Soulbomb, 251570, SPELL_AURA_APPLIED, 1709756690.205, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-124828-0000509D5B, Argus the Unmaker, 68168, 0, Player-67-00303268, Raidenshøgun, 1300, 0, 251570, Soulbomb, 32, DEBUFF", + ["251570-SPELL_AURA_REMOVED"] = "Soulbomb, 251570, SPELL_AURA_REMOVED, 1709756705.217, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-124828-0000509D5B, Argus the Unmaker, 68168, 0, Player-67-00303268, Raidenshøgun, 1300, 0, 251570, Soulbomb, 32, DEBUFF", + ["251570-SPELL_PERIODIC_MISSED"] = "Soulbomb, 251570, SPELL_PERIODIC_MISSED, 1709756702.189, SPELL_PERIODIC_MISSED, false, Creature-0-67-1712-0-124828-0000509D5B, Argus the Unmaker, 68168, 0, Player-67-00303268, Raidenshøgun, 1300, 0, 251570, Soulbomb, 32, ABSORB, false, 444689", + ["251570-SPELL_PERIODIC_DAMAGE"] = "Soulbomb, 251570, SPELL_PERIODIC_DAMAGE, 1709756691.683, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1712-0-124828-0000509D5B, Argus the Unmaker, 68168, 0, Player-67-00303268, Raidenshøgun, 1300, 0, 251570, Soulbomb, 32, 444689, 0, 32, nil, nil, nil, false, false, false, false", + ["251570-SPELL_ABSORBED"] = "Soulbomb, 251570, SPELL_ABSORBED, 1709930513.229, SPELL_ABSORBED, false, Creature-0-67-1712-0-124828-000066CF54, Argus the Unmaker, 2632, 0, Player-67-002D1DA2, Pinkleta, 1300, 16, 251570, Soulbomb, 32, Player-67-0029732D, Ningenpriest, 1300, 0, 208771, Smite, 2, 286323", + ["251570-SPELL_AURA_REMOVED"] = "Soulbomb, 251570, SPELL_AURA_REMOVED, 1709930524.775, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-124828-000066CF54, Argus the Unmaker, 2632, 0, Player-67-002D1DA2, Pinkleta, 1297, 16, 251570, Soulbomb, 32, DEBUFF", + ["251570-SPELL_PERIODIC_MISSED"] = "Soulbomb, 251570, SPELL_PERIODIC_MISSED, 1709930511.219, SPELL_PERIODIC_MISSED, false, Creature-0-67-1712-0-124828-000066CF54, Argus the Unmaker, 2632, 0, Player-67-002D1DA2, Pinkleta, 1297, 16, 251570, Soulbomb, 32, ABSORB, false, 731029", + ["251570-SPELL_ABSORBED"] = "Soulbomb, 251570, SPELL_ABSORBED, 1709930512.708, SPELL_ABSORBED, false, Creature-0-67-1712-0-124828-000066CF54, Argus the Unmaker, 2632, 0, Player-67-002D1DA2, Pinkleta, 1297, 16, 251570, Soulbomb, 32, Player-67-0029732D, Ningenpriest, 1300, 0, 208771, Smite, 2, 286323", + ["251570-SPELL_PERIODIC_DAMAGE"] = "Soulbomb, 251570, SPELL_PERIODIC_DAMAGE, 1709930518.696, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1712-0-124828-000066CF54, Argus the Unmaker, 2632, 0, Player-67-002D1DA2, Pinkleta, 1297, 16, 251570, Soulbomb, 32, 324237, 0, 32, nil, nil, 406792, false, false, false, false", + ["251570-SPELL_AURA_APPLIED"] = "Soulbomb, 251570, SPELL_AURA_APPLIED, 1709930509.734, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-124828-000066CF54, Argus the Unmaker, 2632, 0, Player-67-002D1DA2, Pinkleta, 1297, 16, 251570, Soulbomb, 32, DEBUFF", diff --git a/WeakAuras/Projects/RaiderlosSA/out/253189.txt b/WeakAuras/Projects/RaiderlosSA/out/253189.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/254452.txt b/WeakAuras/Projects/RaiderlosSA/out/254452.txt new file mode 100644 index 0000000..b258aad --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/254452.txt @@ -0,0 +1,6 @@ + ["254452-SPELL_PERIODIC_MISSED"] = "Ravenous Blaze, 254452, SPELL_PERIODIC_MISSED, 1710103277.756, SPELL_PERIODIC_MISSED, false, Creature-0-67-1712-0-121975-000068CD93, Aggramar, 2632, 0, Player-67-002AB7D5, Pylonx, 1298, 0, 254452, Ravenous Blaze, 4, ABSORB, false, 391685", + ["254452-SPELL_PERIODIC_DAMAGE"] = "Ravenous Blaze, 254452, SPELL_PERIODIC_DAMAGE, 1710103277.756, SPELL_PERIODIC_DAMAGE, false, Creature-0-67-1712-0-121975-000068CD93, Aggramar, 2632, 0, Player-67-002D1DA2, Pinkleta, 1297, 0, 254452, Ravenous Blaze, 4, 389883, 0, 4, nil, nil, nil, false, false, false, false", + ["254452-SPELL_CAST_SUCCESS"] = "Ravenous Blaze, 254452, SPELL_CAST_SUCCESS, 1710103275.504, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-121975-000068CD93, Aggramar, 2632, 0, Player-67-00283236, Evadevine, 1298, 0, 254452, Ravenous Blaze, 4", + ["254452-SPELL_AURA_REMOVED"] = "Ravenous Blaze, 254452, SPELL_AURA_REMOVED, 1710103283.448, SPELL_AURA_REMOVED, false, Creature-0-67-1712-0-121975-000068CD93, Aggramar, 68168, 0, Player-67-002D1DA2, Pinkleta, 1297, 0, 254452, Ravenous Blaze, 4, DEBUFF", + ["254452-SPELL_AURA_APPLIED"] = "Ravenous Blaze, 254452, SPELL_AURA_APPLIED, 1710103275.504, SPELL_AURA_APPLIED, false, Creature-0-67-1712-0-121975-000068CD93, Aggramar, 2632, 0, Player-67-002D1DA2, Pinkleta, 1297, 0, 254452, Ravenous Blaze, 4, DEBUFF", + ["254452-SPELL_ABSORBED"] = "Ravenous Blaze, 254452, SPELL_ABSORBED, 1710103277.756, SPELL_ABSORBED, false, Creature-0-67-1712-0-121975-000068CD93, Aggramar, 2632, 0, Player-67-002AB7D5, Pylonx, 1298, 0, 254452, Ravenous Blaze, 4, Player-67-002AB7D5, Pylonx, 1298, 0, 108366, Soul Leech, 32, 391685", diff --git a/WeakAuras/Projects/RaiderlosSA/out/254919.txt b/WeakAuras/Projects/RaiderlosSA/out/254919.txt new file mode 100644 index 0000000..cb959ca --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/254919.txt @@ -0,0 +1,16 @@ + ["254919-SPELL_AURA_REMOVED"] = "Forging Strike, 254919, SPELL_AURA_REMOVED, 1709754827.115, SPELL_AURA_REMOVED, false, Vehicle-0-67-1712-0-122578-00004C90BC, Kin'garoth, 2632, 0, Player-67-00247307, Smallpumper, 1298, 128, 254919, Forging Strike, 1, DEBUFF", + ["254919-SPELL_DAMAGE"] = "Forging Strike, 254919, SPELL_DAMAGE, 1709754609.615, SPELL_DAMAGE, false, Vehicle-0-67-1712-0-122578-00004C90BC, Kin'garoth, 2632, 0, Player-67-00247307, Smallpumper, 1298, 0, 254919, Forging Strike, 1, 676216, -1, 1, nil, nil, nil, false, false, false, false", + ["254919-SPELL_CAST_SUCCESS"] = "Forging Strike, 254919, SPELL_CAST_SUCCESS, 1709754609.615, SPELL_CAST_SUCCESS, false, Vehicle-0-67-1712-0-122578-00004C90BC, Kin'garoth, 2632, 0, Player-67-00247307, Smallpumper, 1298, 0, 254919, Forging Strike, 1", + ["254919-SPELL_MISSED"] = "Forging Strike, 254919, SPELL_MISSED, 1709928075.179, SPELL_MISSED, false, Vehicle-0-67-1712-0-122578-000061C276, Kin'garoth, 2632, 0, Player-67-002C429F, Anusucc, 1298, 128, 254919, Forging Strike, 1, ABSORB, false, 2446653", + ["254919-SPELL_AURA_APPLIED_DOSE"] = "Forging Strike, 254919, SPELL_AURA_APPLIED_DOSE, 1709754807.051, SPELL_AURA_APPLIED_DOSE, false, Vehicle-0-67-1712-0-122578-00004C90BC, Kin'garoth, 68168, 0, Player-67-00247307, Smallpumper, 1298, 128, 254919, Forging Strike, 1, DEBUFF, 2", + ["254919-SPELL_ABSORBED"] = "Forging Strike, 254919, SPELL_ABSORBED, 1709754609.615, SPELL_ABSORBED, false, Vehicle-0-67-1712-0-122578-00004C90BC, Kin'garoth, 2632, 0, Player-67-00337344, Elemona, 1298, 0, 254919, Forging Strike, 1, Player-67-00337344, Elemona, 1298, 0, 207472, Xavaric's Magnum Opus, 1, 1441488", + ["254919-SPELL_AURA_APPLIED"] = "Forging Strike, 254919, SPELL_AURA_APPLIED, 1709754793.039, SPELL_AURA_APPLIED, false, Vehicle-0-67-1712-0-122578-00004C90BC, Kin'garoth, 68168, 0, Player-67-00247307, Smallpumper, 1298, 128, 254919, Forging Strike, 1, DEBUFF", + ["254919-SPELL_CAST_START"] = "Forging Strike, 254919, SPELL_CAST_START, 1709754608.348, SPELL_CAST_START, false, Vehicle-0-67-1712-0-122578-00004C90BC, Kin'garoth, 2632, 0, , nil, -2147483648, -2147483648, 254919, Forging Strike, 1", + ["254919-SPELL_AURA_REMOVED"] = "Forging Strike, 254919, SPELL_AURA_REMOVED, 1709928282.486, SPELL_AURA_REMOVED, false, Vehicle-0-67-1712-0-122578-000061C276, Kin'garoth, 2632, 0, Player-67-002C429F, Anusucc, 1300, 128, 254919, Forging Strike, 1, DEBUFF", + ["254919-SPELL_DAMAGE"] = "Forging Strike, 254919, SPELL_DAMAGE, 1709927990.38, SPELL_DAMAGE, false, Vehicle-0-67-1712-0-122578-000061C276, Kin'garoth, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 254919, Forging Strike, 1, 2637811, -1, 1, nil, nil, nil, false, false, false, false", + ["254919-SPELL_CAST_SUCCESS"] = "Forging Strike, 254919, SPELL_CAST_SUCCESS, 1709927990.38, SPELL_CAST_SUCCESS, false, Vehicle-0-67-1712-0-122578-000061C276, Kin'garoth, 2632, 0, Player-67-002C429F, Anusucc, 1300, 0, 254919, Forging Strike, 1", + ["254919-SPELL_MISSED"] = "Forging Strike, 254919, SPELL_MISSED, 1709928074.653, SPELL_MISSED, false, Vehicle-0-67-1712-0-122578-000061C276, Kin'garoth, 2632, 0, Player-67-002C429F, Anusucc, 1300, 128, 254919, Forging Strike, 1, ABSORB, false, 2446653", + ["254919-SPELL_AURA_APPLIED_DOSE"] = "Forging Strike, 254919, SPELL_AURA_APPLIED_DOSE, 1709928262.477, SPELL_AURA_APPLIED_DOSE, false, Vehicle-0-67-1712-0-122578-000061C276, Kin'garoth, 2632, 0, Player-67-002C429F, Anusucc, 1300, 128, 254919, Forging Strike, 1, DEBUFF, 2", + ["254919-SPELL_ABSORBED"] = "Forging Strike, 254919, SPELL_ABSORBED, 1709928074.622, SPELL_ABSORBED, false, Vehicle-0-67-1712-0-122578-000061C276, Kin'garoth, 2632, 0, Player-67-002C429F, Anusucc, 1300, 128, 254919, Forging Strike, 1, Player-67-002C429F, Anusucc, 1300, 128, 252545, Light of Absolarn, 8, 2055189", + ["254919-SPELL_AURA_APPLIED"] = "Forging Strike, 254919, SPELL_AURA_APPLIED, 1709928248.45, SPELL_AURA_APPLIED, false, Vehicle-0-67-1712-0-122578-000061C276, Kin'garoth, 2632, 0, Player-67-002C429F, Anusucc, 1300, 128, 254919, Forging Strike, 1, DEBUFF", + ["254919-SPELL_CAST_START"] = "Forging Strike, 254919, SPELL_CAST_START, 1709927989.167, SPELL_CAST_START, false, Vehicle-0-67-1712-0-122578-000061C276, Kin'garoth, 2632, 0, , nil, -2147483648, -2147483648, 254919, Forging Strike, 1", diff --git a/WeakAuras/Projects/RaiderlosSA/out/254926.txt b/WeakAuras/Projects/RaiderlosSA/out/254926.txt new file mode 100644 index 0000000..703e51f --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/254926.txt @@ -0,0 +1,10 @@ + ["254926-SPELL_CAST_SUCCESS"] = "Reverberating Strike, 254926, SPELL_CAST_SUCCESS, 1709754801.003, SPELL_CAST_SUCCESS, false, Vehicle-0-67-1712-0-122578-00004C90BC, Kin'garoth, 68168, 0, Player-67-00247307, Smallpumper, 1298, 128, 254926, Reverberating Strike, 1", + ["254926-SPELL_ABSORBED"] = "Reverberating Strike, 254926, SPELL_ABSORBED, 1709754873.321, SPELL_ABSORBED, false, Vehicle-0-67-1712-0-122578-00004C90BC, Kin'garoth, 68168, 0, Player-67-0034CDD5, Ubberagnarso, 1300, 0, 254926, Reverberating Strike, 1, Player-67-0034CDD5, Ubberagnarso, 1300, 0, 207472, Xavaric's Magnum Opus, 1, 433169", + ["254926-SPELL_CAST_START"] = "Reverberating Strike, 254926, SPELL_CAST_START, 1709754799.793, SPELL_CAST_START, false, Vehicle-0-67-1712-0-122578-00004C90BC, Kin'garoth, 68168, 0, , nil, -2147483648, -2147483648, 254926, Reverberating Strike, 1", + ["254926-SPELL_MISSED"] = "Reverberating Strike, 254926, SPELL_MISSED, 1709754801.003, SPELL_MISSED, false, Vehicle-0-67-1712-0-122578-00004C90BC, Kin'garoth, 68168, 0, Player-67-00247307, Smallpumper, 1298, 128, 254926, Reverberating Strike, 1, PARRY, false", + ["254926-SPELL_DAMAGE"] = "Reverberating Strike, 254926, SPELL_DAMAGE, 1709754873.321, SPELL_DAMAGE, false, Vehicle-0-67-1712-0-122578-00004C90BC, Kin'garoth, 68168, 0, Player-67-00340A28, Gunwomen, 1300, 0, 254926, Reverberating Strike, 1, 616081, -1, 1, nil, nil, nil, false, false, false, false", + ["254926-SPELL_CAST_SUCCESS"] = "Reverberating Strike, 254926, SPELL_CAST_SUCCESS, 1709928328.663, SPELL_CAST_SUCCESS, false, Vehicle-0-67-1712-0-122578-000061C276, Kin'garoth, 2632, 0, Player-67-002A0DBE, Arizus, 1300, 0, 254926, Reverberating Strike, 1", + ["254926-SPELL_ABSORBED"] = "Reverberating Strike, 254926, SPELL_ABSORBED, 1709928358.708, SPELL_ABSORBED, false, Vehicle-0-67-1712-0-122578-000061C276, Kin'garoth, 2632, 0, Player-67-002A2BE8, Darklockorc, 1300, 0, 254926, Reverberating Strike, 1, Player-67-002A2BE8, Darklockorc, 1300, 0, 108366, Soul Leech, 32, 278946", + ["254926-SPELL_CAST_START"] = "Reverberating Strike, 254926, SPELL_CAST_START, 1709928327.47, SPELL_CAST_START, false, Vehicle-0-67-1712-0-122578-000061C276, Kin'garoth, 2632, 0, , nil, -2147483648, -2147483648, 254926, Reverberating Strike, 1", + ["254926-SPELL_MISSED"] = "Reverberating Strike, 254926, SPELL_MISSED, 1709928328.663, SPELL_MISSED, false, Vehicle-0-67-1712-0-122578-000061C276, Kin'garoth, 2632, 0, Player-67-0034D19D, Brainstew, 1300, 0, 254926, Reverberating Strike, 1, DODGE, false", + ["254926-SPELL_DAMAGE"] = "Reverberating Strike, 254926, SPELL_DAMAGE, 1709928328.663, SPELL_DAMAGE, false, Vehicle-0-67-1712-0-122578-000061C276, Kin'garoth, 2632, 0, Player-67-003504AB, Latviann, 1300, 0, 254926, Reverberating Strike, 1, 1009943, -1, 1, nil, nil, nil, false, false, false, false", diff --git a/WeakAuras/Projects/RaiderlosSA/out/256457.txt b/WeakAuras/Projects/RaiderlosSA/out/256457.txt new file mode 100644 index 0000000..e69de29 diff --git a/WeakAuras/Projects/RaiderlosSA/out/257296.txt b/WeakAuras/Projects/RaiderlosSA/out/257296.txt new file mode 100644 index 0000000..190d3ea --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/257296.txt @@ -0,0 +1,10 @@ + ["257296-SPELL_MISSED"] = "Tortured Rage, 257296, SPELL_MISSED, 1709756612.062, SPELL_MISSED, false, Creature-0-67-1712-0-124828-0000509D5B, Argus the Unmaker, 68168, 0, Player-67-0034CDD5, Ubberagnarso, 1300, 0, 257296, Tortured Rage, 32, ABSORB, false, 1588389", + ["257296-SPELL_CAST_SUCCESS"] = "Tortured Rage, 257296, SPELL_CAST_SUCCESS, 1709756612.062, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-124828-0000509D5B, Argus the Unmaker, 68168, 0, , nil, -2147483648, -2147483648, 257296, Tortured Rage, 32", + ["257296-SPELL_DAMAGE"] = "Tortured Rage, 257296, SPELL_DAMAGE, 1709756612.062, SPELL_DAMAGE, false, Creature-0-67-1712-0-124828-0000509D5B, Argus the Unmaker, 68168, 0, Player-67-00310B05, Freewillie, 1300, 0, 257296, Tortured Rage, 32, 1533019, -1, 32, nil, nil, nil, false, false, false, false", + ["257296-SPELL_ABSORBED"] = "Tortured Rage, 257296, SPELL_ABSORBED, 1709756612.062, SPELL_ABSORBED, false, Creature-0-67-1712-0-124828-0000509D5B, Argus the Unmaker, 68168, 0, Player-67-0034D317, Edgarsishere, 1298, 0, 257296, Tortured Rage, 32, Player-67-0034D317, Edgarsishere, 1298, 0, 108366, Soul Leech, 32, 812610", + ["257296-SPELL_CAST_START"] = "Tortured Rage, 257296, SPELL_CAST_START, 1709756609.034, SPELL_CAST_START, false, Creature-0-67-1712-0-124828-0000509D5B, Argus the Unmaker, 68168, 0, , nil, -2147483648, -2147483648, 257296, Tortured Rage, 32", + ["257296-SPELL_MISSED"] = "Tortured Rage, 257296, SPELL_MISSED, 1709930413.179, SPELL_MISSED, false, Creature-0-67-1712-0-124828-000066CF54, Argus the Unmaker, 2632, 0, Player-67-002C429F, Anusucc, 1300, 128, 257296, Tortured Rage, 32, ABSORB, false, 1196634", + ["257296-SPELL_CAST_SUCCESS"] = "Tortured Rage, 257296, SPELL_CAST_SUCCESS, 1709930413.179, SPELL_CAST_SUCCESS, false, Creature-0-67-1712-0-124828-000066CF54, Argus the Unmaker, 2632, 0, , nil, -2147483648, -2147483648, 257296, Tortured Rage, 32", + ["257296-SPELL_CAST_START"] = "Tortured Rage, 257296, SPELL_CAST_START, 1709930410.162, SPELL_CAST_START, false, Creature-0-67-1712-0-124828-000066CF54, Argus the Unmaker, 2632, 0, , nil, -2147483648, -2147483648, 257296, Tortured Rage, 32", + ["257296-SPELL_DAMAGE"] = "Tortured Rage, 257296, SPELL_DAMAGE, 1709930413.179, SPELL_DAMAGE, false, Creature-0-67-1712-0-124828-000066CF54, Argus the Unmaker, 2632, 0, Player-67-00315A41, Tosu, 1298, 2, 257296, Tortured Rage, 32, 417700, -1, 32, nil, nil, 1721259, false, false, false, false", + ["257296-SPELL_ABSORBED"] = "Tortured Rage, 257296, SPELL_ABSORBED, 1709930413.179, SPELL_ABSORBED, false, Creature-0-67-1712-0-124828-000066CF54, Argus the Unmaker, 2632, 0, Player-67-002C429F, Anusucc, 1300, 128, 257296, Tortured Rage, 32, Player-67-002C429F, Anusucc, 1300, 128, 252545, Light of Absolarn, 8, 1005173", diff --git a/WeakAuras/Projects/RaiderlosSA/out/36247.txt b/WeakAuras/Projects/RaiderlosSA/out/36247.txt new file mode 100644 index 0000000..8beeb7c --- /dev/null +++ b/WeakAuras/Projects/RaiderlosSA/out/36247.txt @@ -0,0 +1 @@ + ["36247-SPELL_CAST_START"] = "Fel Fireball, 36247, SPELL_CAST_START, 1709804073.56, SPELL_CAST_START, false, Creature-0-67-1651-0-115488-00002A9EFC, Infused Pyromancer, 68168, 0, , nil, -2147483648, -2147483648, 36247, Fel Fireball, 4", diff --git a/FreshShit/RaiderlosSA/scratch.lua b/WeakAuras/Projects/RaiderlosSA/scratch.lua similarity index 96% rename from FreshShit/RaiderlosSA/scratch.lua rename to WeakAuras/Projects/RaiderlosSA/scratch.lua index 0c75e54..ad72493 100644 --- a/FreshShit/RaiderlosSA/scratch.lua +++ b/WeakAuras/Projects/RaiderlosSA/scratch.lua @@ -1,9 +1,9 @@ -local function varargToString(...) - local output = {} - for i = 1, select("#", ...) do - table.insert(output, tostring(select(i, ...))) - end - print(table.concat(output, ", ")) -end - -test("Hello", "world", "again", 2323, true) +local function varargToString(...) + local output = {} + for i = 1, select("#", ...) do + table.insert(output, tostring(select(i, ...))) + end + print(table.concat(output, ", ")) +end + +test("Hello", "world", "again", 2323, true) diff --git a/FreshShit/RaiderlosSA/spells.txt b/WeakAuras/Projects/RaiderlosSA/spells.txt similarity index 94% rename from FreshShit/RaiderlosSA/spells.txt rename to WeakAuras/Projects/RaiderlosSA/spells.txt index b955f92..792a248 100644 --- a/FreshShit/RaiderlosSA/spells.txt +++ b/WeakAuras/Projects/RaiderlosSA/spells.txt @@ -1,548 +1,548 @@ -##################################################################################### -### DEBUG ### -##################################################################################### - -##774!3 -Rejuvenation -##33763!3 -Lifebloom -##5185!3 -Healing Touch - -##################################################################################### -### Antorus ### -##################################################################################### - -########################################## -## Garothi ## -########################################## - -#244410!3 -Decimation -#246220!3 -Fel Bombardment -#244969!3 -Eradication -#244106!3 -Carnage - -########################################## -## Felhounds ## -########################################## - -#244086!3 -Molten Touch -#244768!3 -Desolate Gaze -#244057!3 -Enflame Corruption -#244131!3 -Consuming Sphere -#244056!3 -Siphon Corruption - -########################################## -## High Command ## -########################################## - -#245161!3 -Entropic Mine -#245546!3 -Summon Reinforcements - -########################################## -## Portal Keeper ## -########################################## - -#244016!3 -Reality Tear -#243983!3 -Collapsing World -#244000!3 -Felstorm Barrage - -########################################## -## Imonar ## -########################################## - -#247552!3 -Sleep Canister -#247367!3 -Shock Lance -#248068!3 -Empowered Pulse Grenade -#247376!3 -Pulse Grenade -#247716!3 -Charged Blasts -#247687!3 -Sever -#248070!3 -Empowered Shrapnel Blast -#250255!3 -Empowered Shock Lance - -########################################## -## Kin'garoth ## -########################################## - -#254919!3 -Forging Strike -#254926!3 -Reverberating Strike -#246840!3 -Ruiner -#246779!3 -Diabolic Bomb -#246706!3 -Demolish -#246664!3 -Annihilation - -########################################## -## Varimathras ## -########################################## - -#243960!3 -Shadow Strike -#243961!3 -Misery -#244042!3 -Marked Prey -#244093!3 -Necrotic Embrace -#248732!3 -Echoes of Doom -#243999!3 -Dark Fissure - -########################################## -## Coven ## -########################################## - -#253189!3 -Shivan Pact -#244899!1 -Fiery Strike -#245627!1 -Whirling Saber -#245281!3 -Shadow Blades -#245586!2 -Chilled Blood - -########################################## -## Aggramar ## -########################################## - -#254452!3 -Ravenous Blaze -#244693!3 -Wake of Flame -#244291!1 -Foe Braker -#244033!1 -Flame Rend -#247079!1 -Empowered Flame Rend -#245983!3 -Flare -#246037!3 -Empowered Flare - -########################################## -## Argus ## -########################################## - -#256457!3 -Cone of Death -#248396!3 -Soulblight -#257296!3 -Tortured Rage -#251570!3 -Soulbomb - -###################################################################################### -### DUNGEONS ### -###################################################################################### - -########################################## -## Black Rook Hold ## -########################################## - -#225573!3 -Dark Mending -#200105!3 -Sacrifice Soul -#225732!3 -Strike Down -#194996!3 -Soul Echoes -#195254!3 -Swirling Scythe -#194956!3 -Reap Soul -#200248!3 -Arcane Blitz -#200345!3 -Arrow Barrage -#200291!3 -Knife Dance -#200261!3 -Bonebreaking Strike -#197418!3 -Vengeful Shear -#201139!3 -Brutal Assault -#198245!3 -Brutal Haymaker -#198079!3 -Hateful Gaze - -########################################## -## Cathedral of Eternal Night ## -########################################## - -#241937!3 -Shadow Wall -#238543!3 -Demonic Mending -#242792!3 -Vile Roots -#236627!3 -Floral Fulmination -#239217!3 -Blinding Glare -#237726!3 -Scornful Gaze -#190620!3 -Felblaze Orb -#239268!3 -Venom Storm -#234107!3 -Chaotic Energy -#236543!3 -Felsoul Cleave -#238315!3 -Shadow Sweep -#243168!3 -Demonic Upheaval - -########################################## -## Court of Stars ## -########################################## - -#210261!3 -Sound Alarm -#215204!3 -Hinder -#209027!3 -Quelling Strike -#209516!3 -Mana Fang -#209485!3 -Drain Magic -#209404!3 -Seal Magic -#209495!3 -Charged Smash -#225100!3 -Charging Station -#219488!3 -Streetsweeper -#212784!3 -Eye Storm -#211464!3 -Fel Detonation -#207980!3 -Disintegration Beam -#207979!3 -Shockwave -#209628!3 -Piercing Gale -#209676!3 -Slicing Maelstrom - -########################################## -## Darkheart Thicket ## -########################################## - -#200631!3 -Unnerving Screech -#200580!3 -Maddening Roar -#191326!3 -Breath of Corruption -#201400!3 -Dread Inferno -#200238!3 -Feed on the Weak - -########################################## -## Eye of Azshara ## -########################################## - -#195172!3 -Mighty Slam -#195129!3 -Thundering Stomp -#195046!3 -Rejuvenating Waters -#162135!3 -Bellowing Roar -#197105!3 -Polymorh Fish -#193597!3 -Static Nova -#193611!3 -Focused Lightning -#196129!3 -Spray Sand -#196144!3 -Sandstorm -#196296!3 -Roiling Storm -#196290!3 -Chaotic Tempest -#191848!3 -Rampage - -########################################## -## Halls of Valor ## -########################################## - -#198605!3 -Thunderstrike -#198888!3 -Lightning Breath -#191284!3 -Horn of Valor -#198934!3 -Rune of Healing -#215433!3 -Holy Radiance -#199210!3 -Penetrating Shot -#191976!3 -Arcing Bolt -#192305!3 -Eye of the Storm -#192307!3 -Sanctify -#192048!3 -Expel Light -#192018!3 -Shield of Light -#196512!3 -Claw Frenzy -#199652!3 -Sever -#199726!3 -Unruly Yell -#199674!3 -Wicked Dagger -#193826!3 -Ragnarok -#198263!3 -Radiant Tempest -#198072!3 -Spear of Light -#197961!3 -Runic Band -#198750!3 -Surge - -########################################## -## Maw of Souls ## -########################################## - -#193364!3 -Screams of the Dead -#194442!3 -Six Pound Barrel -#194615!3 -Sea Legs -#192019!3 -Lantern of Darkness -#194099!3 -Bile Breath -#198405!3 -Bone Chilling Scream -#194325!3 -Fragment -#194216!3 -Cosmic Scythe -#195293!3 -Debilitating Shout -#185539!3 -Rapid Rupture -#198495!3 -Torrent -#202098!3 -Brackwater Barrage - -########################################## -## Neltharion's Lair ## -########################################## - -#202181!3 -Stone Gaze -#226296!3 -Piercing Shards -#188169!3 -Razor Shards -#198496!3 -Sunder -#199176!3 -Spiked Tongue -#193585!3 -Bound -#200700!3 -Landslide -#200732!3 -Molten Crash - -########################################## -## The Arcway ## -########################################## - -#211771!3 -Prophecies of Doom -#211037!3 -Celerity Zone -#195791!3 -Quarantine -#226285!3 -Demonic Ascension -#197810!3 -Wicked Slam -#211217!3 -Arcane Slicer -#211115!3 -Phase Breach -#196392!3 -Overcharge Mana -#200040!3 -Nether Venom -#200227!3 -Tangled Web -#220871!3 -Unstable Mana - -########################################## -## Vault of the Wardens ## -########################################## - -#193069!3 -Nightmares -#197799!3 -Unleash Fury -#191735!3 -Deafening Screech -#190836!3 -Hatred -#202913!3 -Fel Mortar -#200898!3 -Teleport -#199917!3 -Shadow Crash -#202658!3 -Drain -#194945!3 -Lingering Gaze -#196249!3 -Meteor -#192631!3 -Lava Wreath -#197513!3 -Detonating Moonglaive -#189469!3 -Turn Kick - -########################################## -## Seat of the Triumvirate ## -########################################## - -########################################## -## Upper Karazhan ## -########################################## - -#230083!3 -Nullification -#227267!3 -Summon Volatile Energy -#227254!3 -Evocation -#229662!3 -Fel Breath -#36247!3 -Fel Fireball -#227628!3 -Piercing Missiles -#227615!3 -Inferno Bolt -#227592!3 -Frostbite -#228269!3 -Flame Wreath -#227779!3 -Ceaseless Winter -#229706!3 -Leech Life -#229714!3 -Consume Magic -#229159!3 -Chaotic Shadows -#229083!3 -Burning Blast -#229151!3 -Disintegrate - -########################################## -## Lower Karazhan ## -########################################## - -#228221!3 -Severe Dusting -#228225!3 -Sultry Heat -#232153!3 -Kara Kazham -#227987!3 -Dinner Bell -#228025!3 -Heat Wave -#227568!3 -Burning Leg Sweep -#227776!3 -Magic Magnificent -#227966!3 -Flashlight -#228279!3 -Shadow Rejuvenation -#228278!3 -Demoralizing Shout -#228277!3 -Shackles of Servitude -#226316!3 -Shadow Bolt Volley -#227508!3 -Mass Repentance -#227793!3 -Sacred Ground -#227463!3 -Whirling Edge -#227646!3 -Iron Whirlwind -#227672!3 -Will Breaker -#227404!3 -Intangible Presence -#227493!3 -Mortal Strike -#228852!3 -Shared Suffering -#228837!3 +##################################################################################### +### DEBUG ### +##################################################################################### + +##774!3 +Rejuvenation +##33763!3 +Lifebloom +##5185!3 +Healing Touch + +##################################################################################### +### Antorus ### +##################################################################################### + +########################################## +## Garothi ## +########################################## + +#244410!3 +Decimation +#246220!3 +Fel Bombardment +#244969!3 +Eradication +#244106!3 +Carnage + +########################################## +## Felhounds ## +########################################## + +#244086!3 +Molten Touch +#244768!3 +Desolate Gaze +#244057!3 +Enflame Corruption +#244131!3 +Consuming Sphere +#244056!3 +Siphon Corruption + +########################################## +## High Command ## +########################################## + +#245161!3 +Entropic Mine +#245546!3 +Summon Reinforcements + +########################################## +## Portal Keeper ## +########################################## + +#244016!3 +Reality Tear +#243983!3 +Collapsing World +#244000!3 +Felstorm Barrage + +########################################## +## Imonar ## +########################################## + +#247552!3 +Sleep Canister +#247367!3 +Shock Lance +#248068!3 +Empowered Pulse Grenade +#247376!3 +Pulse Grenade +#247716!3 +Charged Blasts +#247687!3 +Sever +#248070!3 +Empowered Shrapnel Blast +#250255!3 +Empowered Shock Lance + +########################################## +## Kin'garoth ## +########################################## + +#254919!3 +Forging Strike +#254926!3 +Reverberating Strike +#246840!3 +Ruiner +#246779!3 +Diabolic Bomb +#246706!3 +Demolish +#246664!3 +Annihilation + +########################################## +## Varimathras ## +########################################## + +#243960!3 +Shadow Strike +#243961!3 +Misery +#244042!3 +Marked Prey +#244093!3 +Necrotic Embrace +#248732!3 +Echoes of Doom +#243999!3 +Dark Fissure + +########################################## +## Coven ## +########################################## + +#253189!3 +Shivan Pact +#244899!1 +Fiery Strike +#245627!1 +Whirling Saber +#245281!3 +Shadow Blades +#245586!2 +Chilled Blood + +########################################## +## Aggramar ## +########################################## + +#254452!3 +Ravenous Blaze +#244693!3 +Wake of Flame +#244291!1 +Foe Braker +#244033!1 +Flame Rend +#247079!1 +Empowered Flame Rend +#245983!3 +Flare +#246037!3 +Empowered Flare + +########################################## +## Argus ## +########################################## + +#256457!3 +Cone of Death +#248396!3 +Soulblight +#257296!3 +Tortured Rage +#251570!3 +Soulbomb + +###################################################################################### +### DUNGEONS ### +###################################################################################### + +########################################## +## Black Rook Hold ## +########################################## + +#225573!3 +Dark Mending +#200105!3 +Sacrifice Soul +#225732!3 +Strike Down +#194996!3 +Soul Echoes +#195254!3 +Swirling Scythe +#194956!3 +Reap Soul +#200248!3 +Arcane Blitz +#200345!3 +Arrow Barrage +#200291!3 +Knife Dance +#200261!3 +Bonebreaking Strike +#197418!3 +Vengeful Shear +#201139!3 +Brutal Assault +#198245!3 +Brutal Haymaker +#198079!3 +Hateful Gaze + +########################################## +## Cathedral of Eternal Night ## +########################################## + +#241937!3 +Shadow Wall +#238543!3 +Demonic Mending +#242792!3 +Vile Roots +#236627!3 +Floral Fulmination +#239217!3 +Blinding Glare +#237726!3 +Scornful Gaze +#190620!3 +Felblaze Orb +#239268!3 +Venom Storm +#234107!3 +Chaotic Energy +#236543!3 +Felsoul Cleave +#238315!3 +Shadow Sweep +#243168!3 +Demonic Upheaval + +########################################## +## Court of Stars ## +########################################## + +#210261!3 +Sound Alarm +#215204!3 +Hinder +#209027!3 +Quelling Strike +#209516!3 +Mana Fang +#209485!3 +Drain Magic +#209404!3 +Seal Magic +#209495!3 +Charged Smash +#225100!3 +Charging Station +#219488!3 +Streetsweeper +#212784!3 +Eye Storm +#211464!3 +Fel Detonation +#207980!3 +Disintegration Beam +#207979!3 +Shockwave +#209628!3 +Piercing Gale +#209676!3 +Slicing Maelstrom + +########################################## +## Darkheart Thicket ## +########################################## + +#200631!3 +Unnerving Screech +#200580!3 +Maddening Roar +#191326!3 +Breath of Corruption +#201400!3 +Dread Inferno +#200238!3 +Feed on the Weak + +########################################## +## Eye of Azshara ## +########################################## + +#195172!3 +Mighty Slam +#195129!3 +Thundering Stomp +#195046!3 +Rejuvenating Waters +#162135!3 +Bellowing Roar +#197105!3 +Polymorh Fish +#193597!3 +Static Nova +#193611!3 +Focused Lightning +#196129!3 +Spray Sand +#196144!3 +Sandstorm +#196296!3 +Roiling Storm +#196290!3 +Chaotic Tempest +#191848!3 +Rampage + +########################################## +## Halls of Valor ## +########################################## + +#198605!3 +Thunderstrike +#198888!3 +Lightning Breath +#191284!3 +Horn of Valor +#198934!3 +Rune of Healing +#215433!3 +Holy Radiance +#199210!3 +Penetrating Shot +#191976!3 +Arcing Bolt +#192305!3 +Eye of the Storm +#192307!3 +Sanctify +#192048!3 +Expel Light +#192018!3 +Shield of Light +#196512!3 +Claw Frenzy +#199652!3 +Sever +#199726!3 +Unruly Yell +#199674!3 +Wicked Dagger +#193826!3 +Ragnarok +#198263!3 +Radiant Tempest +#198072!3 +Spear of Light +#197961!3 +Runic Band +#198750!3 +Surge + +########################################## +## Maw of Souls ## +########################################## + +#193364!3 +Screams of the Dead +#194442!3 +Six Pound Barrel +#194615!3 +Sea Legs +#192019!3 +Lantern of Darkness +#194099!3 +Bile Breath +#198405!3 +Bone Chilling Scream +#194325!3 +Fragment +#194216!3 +Cosmic Scythe +#195293!3 +Debilitating Shout +#185539!3 +Rapid Rupture +#198495!3 +Torrent +#202098!3 +Brackwater Barrage + +########################################## +## Neltharion's Lair ## +########################################## + +#202181!3 +Stone Gaze +#226296!3 +Piercing Shards +#188169!3 +Razor Shards +#198496!3 +Sunder +#199176!3 +Spiked Tongue +#193585!3 +Bound +#200700!3 +Landslide +#200732!3 +Molten Crash + +########################################## +## The Arcway ## +########################################## + +#211771!3 +Prophecies of Doom +#211037!3 +Celerity Zone +#195791!3 +Quarantine +#226285!3 +Demonic Ascension +#197810!3 +Wicked Slam +#211217!3 +Arcane Slicer +#211115!3 +Phase Breach +#196392!3 +Overcharge Mana +#200040!3 +Nether Venom +#200227!3 +Tangled Web +#220871!3 +Unstable Mana + +########################################## +## Vault of the Wardens ## +########################################## + +#193069!3 +Nightmares +#197799!3 +Unleash Fury +#191735!3 +Deafening Screech +#190836!3 +Hatred +#202913!3 +Fel Mortar +#200898!3 +Teleport +#199917!3 +Shadow Crash +#202658!3 +Drain +#194945!3 +Lingering Gaze +#196249!3 +Meteor +#192631!3 +Lava Wreath +#197513!3 +Detonating Moonglaive +#189469!3 +Turn Kick + +########################################## +## Seat of the Triumvirate ## +########################################## + +########################################## +## Upper Karazhan ## +########################################## + +#230083!3 +Nullification +#227267!3 +Summon Volatile Energy +#227254!3 +Evocation +#229662!3 +Fel Breath +#36247!3 +Fel Fireball +#227628!3 +Piercing Missiles +#227615!3 +Inferno Bolt +#227592!3 +Frostbite +#228269!3 +Flame Wreath +#227779!3 +Ceaseless Winter +#229706!3 +Leech Life +#229714!3 +Consume Magic +#229159!3 +Chaotic Shadows +#229083!3 +Burning Blast +#229151!3 +Disintegrate + +########################################## +## Lower Karazhan ## +########################################## + +#228221!3 +Severe Dusting +#228225!3 +Sultry Heat +#232153!3 +Kara Kazham +#227987!3 +Dinner Bell +#228025!3 +Heat Wave +#227568!3 +Burning Leg Sweep +#227776!3 +Magic Magnificent +#227966!3 +Flashlight +#228279!3 +Shadow Rejuvenation +#228278!3 +Demoralizing Shout +#228277!3 +Shackles of Servitude +#226316!3 +Shadow Bolt Volley +#227508!3 +Mass Repentance +#227793!3 +Sacred Ground +#227463!3 +Whirling Edge +#227646!3 +Iron Whirlwind +#227672!3 +Will Breaker +#227404!3 +Intangible Presence +#227493!3 +Mortal Strike +#228852!3 +Shared Suffering +#228837!3 #Bellowing Roar \ No newline at end of file diff --git a/Random Trash/Account with herbalism dudu.txt b/WeakAuras/Projects/Random Trash/Account with herbalism dudu.txt similarity index 90% rename from Random Trash/Account with herbalism dudu.txt rename to WeakAuras/Projects/Random Trash/Account with herbalism dudu.txt index c9f15cc..f847cc7 100644 --- a/Random Trash/Account with herbalism dudu.txt +++ b/WeakAuras/Projects/Random Trash/Account with herbalism dudu.txt @@ -1,6 +1,6 @@ -sponge bob -sigarezest1 - - -overlordack +sponge bob +sigarezest1 + + +overlordack stefan2004 \ No newline at end of file diff --git a/Random Trash/Asakawa debuffs on nameplate non tsu.lua b/WeakAuras/Projects/Random Trash/Asakawa debuffs on nameplate non tsu.lua similarity index 97% rename from Random Trash/Asakawa debuffs on nameplate non tsu.lua rename to WeakAuras/Projects/Random Trash/Asakawa debuffs on nameplate non tsu.lua index 617733e..669f21c 100644 --- a/Random Trash/Asakawa debuffs on nameplate non tsu.lua +++ b/WeakAuras/Projects/Random Trash/Asakawa debuffs on nameplate non tsu.lua @@ -1,45 +1,45 @@ --- DO NOT EDIT -- -local points = {"TOP", "BOTTOM", "LEFT", "RIGHT", "CENTER", "TOPLEFT", "TOPRIGHT", "BOTTOMLEFT", "BOTTOMRIGHT"} - -local sortBy = aura_env.config.sort -local direction = aura_env.config.grow -local spacing = aura_env.config.spacing -local selfPoint = points[aura_env.config.selfPoint] -local anchorPoint = points[aura_env.config.anchorPoint] - -local x = direction == 3 and -(aura_env.region.width+spacing) or direction == 4 and (aura_env.region.width+spacing) or 0 -local y = direction == 2 and -(aura_env.region.height+spacing) or direction == 1 and (aura_env.region.height+spacing) or 0 - -local units = {} - -aura_env.UpdateClone = function(unit, region) - units[unit] = units[unit] or {} - local needsAdding = true - for i = #units[unit],1,-1 do - if units[unit][i] == region then - needsAdding = false - end - if (not units[unit][i].state.show) or (units[unit][i].id ~= aura_env.id) then - table.remove(units[unit], i) - end - end - if needsAdding then table.insert(units[unit], region) end - table.sort(units[unit], function(a,b) - return a.state[sortBy] < b.state[sortBy] - end - ) - for i, region in ipairs(units[unit]) do - region:SetAnchor(selfPoint, C_NamePlate.GetNamePlateForUnit(unit), anchorPoint) - region:SetOffset(aura_env.config.xOff + (x*(i-1)), aura_env.config.yOff + (y*(i-1))) - end -end - -aura_env.AddClone(aura_env.statee.unit, aura_env.region) - -aura_env.UpdateClone(aura_env.statee.unit, aura_env.region) - -function() - if aura_env.statee then - aura_env.UpdateClone(aura_env.statee.unit, aura_env.region) - end +-- DO NOT EDIT -- +local points = {"TOP", "BOTTOM", "LEFT", "RIGHT", "CENTER", "TOPLEFT", "TOPRIGHT", "BOTTOMLEFT", "BOTTOMRIGHT"} + +local sortBy = aura_env.config.sort +local direction = aura_env.config.grow +local spacing = aura_env.config.spacing +local selfPoint = points[aura_env.config.selfPoint] +local anchorPoint = points[aura_env.config.anchorPoint] + +local x = direction == 3 and -(aura_env.region.width+spacing) or direction == 4 and (aura_env.region.width+spacing) or 0 +local y = direction == 2 and -(aura_env.region.height+spacing) or direction == 1 and (aura_env.region.height+spacing) or 0 + +local units = {} + +aura_env.UpdateClone = function(unit, region) + units[unit] = units[unit] or {} + local needsAdding = true + for i = #units[unit],1,-1 do + if units[unit][i] == region then + needsAdding = false + end + if (not units[unit][i].state.show) or (units[unit][i].id ~= aura_env.id) then + table.remove(units[unit], i) + end + end + if needsAdding then table.insert(units[unit], region) end + table.sort(units[unit], function(a,b) + return a.state[sortBy] < b.state[sortBy] + end + ) + for i, region in ipairs(units[unit]) do + region:SetAnchor(selfPoint, C_NamePlate.GetNamePlateForUnit(unit), anchorPoint) + region:SetOffset(aura_env.config.xOff + (x*(i-1)), aura_env.config.yOff + (y*(i-1))) + end +end + +aura_env.AddClone(aura_env.statee.unit, aura_env.region) + +aura_env.UpdateClone(aura_env.statee.unit, aura_env.region) + +function() + if aura_env.statee then + aura_env.UpdateClone(aura_env.statee.unit, aura_env.region) + end end \ No newline at end of file diff --git a/Random Trash/GM Chat b/WeakAuras/Projects/Random Trash/GM Chat similarity index 98% rename from Random Trash/GM Chat rename to WeakAuras/Projects/Random Trash/GM Chat index 7974bc2..562b825 100644 --- a/Random Trash/GM Chat +++ b/WeakAuras/Projects/Random Trash/GM Chat @@ -1,128 +1,128 @@ -[02:19 AM] [Revealed]: [Orcish] oi -[02:19 AM] [Bosnianlady]: tank battle -[02:19 AM] [Lethaleye]: need 1 dps -[02:19 AM] [Pinkiepiie]: Wel it's not physical eh? -[02:19 AM] [Revealed]: [Orcish] hold up -[02:19 AM] [Revealed]: [Orcish] i gotta touch pinkie -[02:19 AM] [Revealed]: [Orcish] he wants me to touch him -[02:19 AM] [Revealed]: [Orcish] then after -[02:19 AM] [Revealed]: [Orcish] we can try -[02:19 AM] [Revealed]: [Orcish] rdy pink? -[02:19 AM] [Pinkiepiie]: yee boi -[02:19 AM] [Revealed]: [Orcish] gonna keg, keg and strike -[02:19 AM] [Pinkiepiie]: keg me daddy -[02:20 AM] [Pinkiepiie]: yea that was a weak ass keg smh -[02:20 AM] [Revealed]: [Orcish] ye -[02:20 AM] [Bosnianlady]: dude i tanked fuking 3 mos 18s in last hour -[02:20 AM] [Revealed]: [Orcish] xD -[02:20 AM] [Bosnianlady]: am losing my mind -[02:20 AM] [Revealed]: [Orcish] LOL -[02:20 AM] [Revealed]: [Orcish] i'd hate that -[02:20 AM] [Bosnianlady]: ye -[02:20 AM] [Revealed]: [Orcish] aight wanna tank battle? -[02:20 AM] [Bosnianlady]: ye -[02:20 AM] [Revealed]: [Orcish] i don't know how well i'll do -[02:20 AM] [Pinkiepiie]: pog -[02:20 AM] [Pinkiepiie]: hp unmoved -[02:21 AM] [Revealed]: [Orcish] u running brambles? -[02:21 AM] [Bosnianlady]: yep -[02:21 AM] [Revealed]: [Orcish] i feel it -[02:21 AM] [Revealed]: [Orcish] :( -[02:21 AM] [P] [Pinkiepiie]: (924.6) yay -[02:21 AM] Revealed bows before Bosnianlady. -[02:21 AM] [P] [Kidon]: (880.6) gonna run and grab a cup of tea rq -[02:21 AM] [Bosnianlady]: fak -[02:21 AM] [Bosnianlady]: sry -[02:21 AM] [P] [Starsynth]: [Orcish] (932.4) I just did the same -[02:21 AM] Bosnianlady cries on Revealed's shoulder. -[02:21 AM] Bortah bursts into dance. -[02:21 AM] [P] [AFK] [Fluffenchops]: (926.9) xD -[02:21 AM] [P] [Pinkiepiie]: (924.6) cb -[02:22 AM] Bosnianlady cries on Revealed's shoulder. -[02:22 AM] Bosnianlady hugs Revealed. -[02:22 AM] [Revealed]: [Orcish] sry, my gf just texted me as soon as I died lol -[02:22 AM] Bosnianlady hugs Revealed. -[02:22 AM] Revealed hugs Bosnianlady. -[02:22 AM] [P] [Pinkiepiie]: (924.6) Well ok -[02:22 AM] [P] [Pinkiepiie]: (924.6) Onto eoa -[02:23 AM] [P] [Revealed]: [Orcish] (913.3) let's see who gets there first? -[02:23 AM] [P] [Pinkiepiie]: (924.6) ooo -[02:23 AM] [P] [Pinkiepiie]: (916.1) y e s -[02:23 AM] [P] [Pinkiepiie]: (916.1) Cmon then -[02:23 AM] [P] [Pinkiepiie]: (916.1) o you dog -[02:23 AM] [P] [Revealed]: [Orcish] (913.3) noob, u lost already -[02:23 AM] [P] [Pinkiepiie]: (916.1) You got insta flight don't you -[02:23 AM] [P] [Revealed]: [Orcish] (913.3) :) -[02:24 AM] [P] [Pinkiepiie]: (916.1) s m h -[02:24 AM] [P] [Pinkiepiie]: (916.1) d o n o r s -[02:24 AM] [P] [Kidon]: (880.6) back -[02:24 AM] [P] [Pinkiepiie]: (916.1) stealing our wives -[02:24 AM] [P] [Kidon]: (880.6) i hit my leg on the chair and had to breath for like 10 seconds -[02:24 AM] [P] [Pinkiepiie]: (916.1) lol -[02:24 AM] [P] [Revealed]: [Orcish] (913.3) dw wont steal ur serbian blyat wife -[02:24 AM] [P] [Revealed]: [Orcish] (913.3) got my own girl -[02:24 AM] [P] [Starsynth]: [Orcish] (932.4) REEEeeeee -[02:24 AM] [P] [Starsynth]: [Orcish] (932.4) clikc -[02:24 AM] [P] [Starsynth]: [Orcish] (932.4) u fuck -[02:24 AM] [P] [Pinkiepiie]: (916.1) Jokes on you -[02:25 AM] [P] [Pinkiepiie]: (916.1) I'm a sad miserable loser -[02:25 AM] [P] [Pinkiepiie]: (916.1) ;) -[02:25 AM] [P] [Revealed]: [Orcish] (913.3) oh -[02:25 AM] [P] [Revealed]: [Orcish] (913.3) ur horde -[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) ._. -[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) PINK -[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) NO -[02:25 AM] [P] [Revealed]: [Orcish] (913.3) ;w; -[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) YOU A winner -[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) LOOK -[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) AT DIs big bad -[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) BOY -[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) DWURf -[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) Look at this sexy maniac -[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) come -[02:25 AM] [P] [Revealed]: [Orcish] (913.3) my girl said she'd go make some food -[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) accept summon pleb -[02:25 AM] [P] [Revealed]: [Orcish] (913.3) and i said "u eat something good ok" -[02:25 AM] Starsynth cheers at you. -[02:25 AM] Starsynth loves you. -[02:25 AM] [P] [Revealed]: [Orcish] (913.3) and she said "ya, wish i could eat you" -[02:25 AM] Starsynth is very happy with you! -[02:25 AM] [P] [Revealed]: [Orcish] (913.3) lmfao -[02:26 AM] [P] [Starsynth]: [Orcish] (896.7) Then you woke up? -[02:26 AM] [P] [Starsynth]: [Orcish] (896.7) OMEGalul -[02:26 AM] [P] [AFK] [Fluffenchops]: (926.9) awawaw goalz -[02:26 AM] [P] [Revealed]: [Orcish] (913.3) lmfao -[02:26 AM] [P] [Revealed]: [Orcish] (913.3) o -[02:26 AM] [P] [Revealed]: [Orcish] (913.3) i -[02:26 AM] [P] [Revealed]: [Orcish] (913.3) fluffen -[02:26 AM] [P] [Revealed]: [Orcish] (913.3) dont do that -[02:26 AM] [P] [Revealed]: [Orcish] (913.3) "awwawa" -[02:26 AM] [P] [AFK] [Fluffenchops]: (926.9) why -[02:26 AM] [P] [Revealed]: [Orcish] (913.3) reminds me of a retard thot named baby -[02:26 AM] [P] [Pinkiepiie]: (924.6) oof -[02:26 AM] [P] [AFK] [Fluffenchops]: (926.9) lul -[02:26 AM] [P] [Pinkiepiie]: (924.6) We say not that name -[02:26 AM] [P] [Starsynth]: [Orcish] (896.7) hahahah -[02:26 AM] [P] [Starsynth]: [Orcish] (896.7) Yes -[02:26 AM] [P] [AFK] [Fluffenchops]: (926.9) dont compare me to her pls :D -[02:26 AM] [P] [Revealed]: [Orcish] (913.3) aight -[02:26 AM] [P] [Revealed]: [Orcish] (913.3) dont do the awawa -[02:26 AM] [P] [Revealed]: [Orcish] (913.3) i had that bitch banned 30d -[02:26 AM] [P] [AFK] [Fluffenchops]: (926.9) aye -[02:26 AM] [P] [Starsynth]: [Orcish] (932.9) You ? -[02:26 AM] [P] [AFK] [Fluffenchops]: (926.9) i mean -[02:26 AM] [P] [Starsynth]: [Orcish] (932.9) Krem saved your ass -[02:26 AM] [P] [Revealed]: [Orcish] (913.3) for trynna blackmail me outta staff -[02:26 AM] [P] [Starsynth]: [Orcish] (932.9) :D -[02:26 AM] [P] [Revealed]: [Orcish] (913.3) "i had that bitch banned" -[02:27 AM] [P] [Pinkiepiie]: (924.6) 30??? -[02:27 AM] [P] [Revealed]: [Orcish] (913.3) that doesnt mean i banned her -[02:27 AM] [P] [Pinkiepiie]: (924.6) Doesn't that deserve a -1 -[02:27 AM] [P] [Starsynth]: [Orcish] (932.9) :P -[02:27 AM] [P] [Starsynth]: [Orcish] (932.9) go -[02:27 AM] [P] [Revealed]: [Orcish] (913.3) i'd say so too but -[02:27 AM] [P] [Starsynth]: [Orcish] (932.9) put it in -[02:27 AM] [P] [Revealed]: [Orcish] (913.3) put it in hard -[02:27 AM] [Starsynth]: [Orcish] tacno -[02:27 AM] [Starsynth]: [Orcish] ajde jasi me +[02:19 AM] [Revealed]: [Orcish] oi +[02:19 AM] [Bosnianlady]: tank battle +[02:19 AM] [Lethaleye]: need 1 dps +[02:19 AM] [Pinkiepiie]: Wel it's not physical eh? +[02:19 AM] [Revealed]: [Orcish] hold up +[02:19 AM] [Revealed]: [Orcish] i gotta touch pinkie +[02:19 AM] [Revealed]: [Orcish] he wants me to touch him +[02:19 AM] [Revealed]: [Orcish] then after +[02:19 AM] [Revealed]: [Orcish] we can try +[02:19 AM] [Revealed]: [Orcish] rdy pink? +[02:19 AM] [Pinkiepiie]: yee boi +[02:19 AM] [Revealed]: [Orcish] gonna keg, keg and strike +[02:19 AM] [Pinkiepiie]: keg me daddy +[02:20 AM] [Pinkiepiie]: yea that was a weak ass keg smh +[02:20 AM] [Revealed]: [Orcish] ye +[02:20 AM] [Bosnianlady]: dude i tanked fuking 3 mos 18s in last hour +[02:20 AM] [Revealed]: [Orcish] xD +[02:20 AM] [Bosnianlady]: am losing my mind +[02:20 AM] [Revealed]: [Orcish] LOL +[02:20 AM] [Revealed]: [Orcish] i'd hate that +[02:20 AM] [Bosnianlady]: ye +[02:20 AM] [Revealed]: [Orcish] aight wanna tank battle? +[02:20 AM] [Bosnianlady]: ye +[02:20 AM] [Revealed]: [Orcish] i don't know how well i'll do +[02:20 AM] [Pinkiepiie]: pog +[02:20 AM] [Pinkiepiie]: hp unmoved +[02:21 AM] [Revealed]: [Orcish] u running brambles? +[02:21 AM] [Bosnianlady]: yep +[02:21 AM] [Revealed]: [Orcish] i feel it +[02:21 AM] [Revealed]: [Orcish] :( +[02:21 AM] [P] [Pinkiepiie]: (924.6) yay +[02:21 AM] Revealed bows before Bosnianlady. +[02:21 AM] [P] [Kidon]: (880.6) gonna run and grab a cup of tea rq +[02:21 AM] [Bosnianlady]: fak +[02:21 AM] [Bosnianlady]: sry +[02:21 AM] [P] [Starsynth]: [Orcish] (932.4) I just did the same +[02:21 AM] Bosnianlady cries on Revealed's shoulder. +[02:21 AM] Bortah bursts into dance. +[02:21 AM] [P] [AFK] [Fluffenchops]: (926.9) xD +[02:21 AM] [P] [Pinkiepiie]: (924.6) cb +[02:22 AM] Bosnianlady cries on Revealed's shoulder. +[02:22 AM] Bosnianlady hugs Revealed. +[02:22 AM] [Revealed]: [Orcish] sry, my gf just texted me as soon as I died lol +[02:22 AM] Bosnianlady hugs Revealed. +[02:22 AM] Revealed hugs Bosnianlady. +[02:22 AM] [P] [Pinkiepiie]: (924.6) Well ok +[02:22 AM] [P] [Pinkiepiie]: (924.6) Onto eoa +[02:23 AM] [P] [Revealed]: [Orcish] (913.3) let's see who gets there first? +[02:23 AM] [P] [Pinkiepiie]: (924.6) ooo +[02:23 AM] [P] [Pinkiepiie]: (916.1) y e s +[02:23 AM] [P] [Pinkiepiie]: (916.1) Cmon then +[02:23 AM] [P] [Pinkiepiie]: (916.1) o you dog +[02:23 AM] [P] [Revealed]: [Orcish] (913.3) noob, u lost already +[02:23 AM] [P] [Pinkiepiie]: (916.1) You got insta flight don't you +[02:23 AM] [P] [Revealed]: [Orcish] (913.3) :) +[02:24 AM] [P] [Pinkiepiie]: (916.1) s m h +[02:24 AM] [P] [Pinkiepiie]: (916.1) d o n o r s +[02:24 AM] [P] [Kidon]: (880.6) back +[02:24 AM] [P] [Pinkiepiie]: (916.1) stealing our wives +[02:24 AM] [P] [Kidon]: (880.6) i hit my leg on the chair and had to breath for like 10 seconds +[02:24 AM] [P] [Pinkiepiie]: (916.1) lol +[02:24 AM] [P] [Revealed]: [Orcish] (913.3) dw wont steal ur serbian blyat wife +[02:24 AM] [P] [Revealed]: [Orcish] (913.3) got my own girl +[02:24 AM] [P] [Starsynth]: [Orcish] (932.4) REEEeeeee +[02:24 AM] [P] [Starsynth]: [Orcish] (932.4) clikc +[02:24 AM] [P] [Starsynth]: [Orcish] (932.4) u fuck +[02:24 AM] [P] [Pinkiepiie]: (916.1) Jokes on you +[02:25 AM] [P] [Pinkiepiie]: (916.1) I'm a sad miserable loser +[02:25 AM] [P] [Pinkiepiie]: (916.1) ;) +[02:25 AM] [P] [Revealed]: [Orcish] (913.3) oh +[02:25 AM] [P] [Revealed]: [Orcish] (913.3) ur horde +[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) ._. +[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) PINK +[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) NO +[02:25 AM] [P] [Revealed]: [Orcish] (913.3) ;w; +[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) YOU A winner +[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) LOOK +[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) AT DIs big bad +[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) BOY +[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) DWURf +[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) Look at this sexy maniac +[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) come +[02:25 AM] [P] [Revealed]: [Orcish] (913.3) my girl said she'd go make some food +[02:25 AM] [P] [Starsynth]: [Orcish] (932.4) accept summon pleb +[02:25 AM] [P] [Revealed]: [Orcish] (913.3) and i said "u eat something good ok" +[02:25 AM] Starsynth cheers at you. +[02:25 AM] Starsynth loves you. +[02:25 AM] [P] [Revealed]: [Orcish] (913.3) and she said "ya, wish i could eat you" +[02:25 AM] Starsynth is very happy with you! +[02:25 AM] [P] [Revealed]: [Orcish] (913.3) lmfao +[02:26 AM] [P] [Starsynth]: [Orcish] (896.7) Then you woke up? +[02:26 AM] [P] [Starsynth]: [Orcish] (896.7) OMEGalul +[02:26 AM] [P] [AFK] [Fluffenchops]: (926.9) awawaw goalz +[02:26 AM] [P] [Revealed]: [Orcish] (913.3) lmfao +[02:26 AM] [P] [Revealed]: [Orcish] (913.3) o +[02:26 AM] [P] [Revealed]: [Orcish] (913.3) i +[02:26 AM] [P] [Revealed]: [Orcish] (913.3) fluffen +[02:26 AM] [P] [Revealed]: [Orcish] (913.3) dont do that +[02:26 AM] [P] [Revealed]: [Orcish] (913.3) "awwawa" +[02:26 AM] [P] [AFK] [Fluffenchops]: (926.9) why +[02:26 AM] [P] [Revealed]: [Orcish] (913.3) reminds me of a retard thot named baby +[02:26 AM] [P] [Pinkiepiie]: (924.6) oof +[02:26 AM] [P] [AFK] [Fluffenchops]: (926.9) lul +[02:26 AM] [P] [Pinkiepiie]: (924.6) We say not that name +[02:26 AM] [P] [Starsynth]: [Orcish] (896.7) hahahah +[02:26 AM] [P] [Starsynth]: [Orcish] (896.7) Yes +[02:26 AM] [P] [AFK] [Fluffenchops]: (926.9) dont compare me to her pls :D +[02:26 AM] [P] [Revealed]: [Orcish] (913.3) aight +[02:26 AM] [P] [Revealed]: [Orcish] (913.3) dont do the awawa +[02:26 AM] [P] [Revealed]: [Orcish] (913.3) i had that bitch banned 30d +[02:26 AM] [P] [AFK] [Fluffenchops]: (926.9) aye +[02:26 AM] [P] [Starsynth]: [Orcish] (932.9) You ? +[02:26 AM] [P] [AFK] [Fluffenchops]: (926.9) i mean +[02:26 AM] [P] [Starsynth]: [Orcish] (932.9) Krem saved your ass +[02:26 AM] [P] [Revealed]: [Orcish] (913.3) for trynna blackmail me outta staff +[02:26 AM] [P] [Starsynth]: [Orcish] (932.9) :D +[02:26 AM] [P] [Revealed]: [Orcish] (913.3) "i had that bitch banned" +[02:27 AM] [P] [Pinkiepiie]: (924.6) 30??? +[02:27 AM] [P] [Revealed]: [Orcish] (913.3) that doesnt mean i banned her +[02:27 AM] [P] [Pinkiepiie]: (924.6) Doesn't that deserve a -1 +[02:27 AM] [P] [Starsynth]: [Orcish] (932.9) :P +[02:27 AM] [P] [Starsynth]: [Orcish] (932.9) go +[02:27 AM] [P] [Revealed]: [Orcish] (913.3) i'd say so too but +[02:27 AM] [P] [Starsynth]: [Orcish] (932.9) put it in +[02:27 AM] [P] [Revealed]: [Orcish] (913.3) put it in hard +[02:27 AM] [Starsynth]: [Orcish] tacno +[02:27 AM] [Starsynth]: [Orcish] ajde jasi me [02:27 AM] [P] [Kidon]: (880.6) o.o \ No newline at end of file diff --git a/Random Trash/Glowy Nameplate.lua b/WeakAuras/Projects/Random Trash/Glowy Nameplate.lua similarity index 96% rename from Random Trash/Glowy Nameplate.lua rename to WeakAuras/Projects/Random Trash/Glowy Nameplate.lua index 774594b..864fe68 100644 --- a/Random Trash/Glowy Nameplate.lua +++ b/WeakAuras/Projects/Random Trash/Glowy Nameplate.lua @@ -1,177 +1,177 @@ -function(allstates, event, ...) - local unitID = ... - local group = aura_env.group - local hplimit = aura_env.hplimit - - for i = 1, GetNumGroupMembers() do - if unitID == group..i then - local curHP = UnitHealth(group..i) - local maxHP = UnitHealthMax(group..i) - local percent = (curHP / maxHP) * 100 - - allstates[unitID] = allstates[unitID] or {} - local state = allstates[unitID] - - if percent < hplimit and state.show == true then - return - end - - state.show = false - - if percent < hplimit then - state.show = true - state.changed = true - state.name = group..i - end - end - end - return true -end - -aura_env.hplimit = 60 --health percentage threshold, change to whatever number you want (1-100) - ------------------------------------------ ---DONT CHANGE ANYTHING BELLOW THIS LINE-- ------------------------------------------ - -aura_env.me = UnitGUID("player") -aura_env.group = "party" -if IsInGroup() and not IsInRaid() then - aura_env.group = "party" -elseif IsInRaid() then - aura_env.group = "raid" -end - -aura_env.frameTable = {} - --- Send this function a group/raid member's unitID or GUID and it will return their raid frame. -function aura_env.GetFrame(target) - if not UnitExists(target) then - if type(target) == "string" and target:find("Player") then - target = select(6, GetPlayerInfoByGUID(target)) - else - return - end - end - --ShadowUF - if IsAddOnLoaded("ShadowedUnitFrames") then - if ShadowUF.enabledUnits.raid then - for _, frame in pairs(ShadowUF.Units.unitFrames) do - if frame.unitType == "raid" and frame:IsVisible() and frame.unit and UnitIsUnit(frame.unit, target) - then - return frame - end - end - end - end - -- CompactRaid - if IsAddOnLoaded("CompactRaid") then - return CompactRaid:FindUnitFrame(target) - end - -- Healbot - if IsAddOnLoaded("HealBot") then - for _, frame in pairs(HealBot_Unit_Button) do - if UnitIsUnit(frame.unit, target) then - return frame - end - end - end - -- Vuhdo - if IsAddOnLoaded("VuhDo") and VUHDO_CONFIG["SHOW_PANELS"] then - for _, v in pairs(VUHDO_UNIT_BUTTONS) do - if v[1].raidid and UnitIsUnit(v[1].raidid, target) then - return v[1] - end - end - end - if IsAddOnLoaded("Grid") then - for _, frame in pairs(Grid.modules.GridFrame.registeredFrames) do - if frame:IsVisible() then - if frame.unit and UnitIsUnit(frame.unit, target) then - return frame - end - end - end - end - --Grid2 - if IsAddOnLoaded("Grid2") then - for _, frame in pairs(Grid2Frame.registeredFrames) do - if frame:IsVisible() then - if frame.unit and UnitIsUnit(frame.unit, target) then - return frame - end - end - end - end - -- ElvUI - if ElvUF then - for _, frame in pairs(ElvUF.objects) do - if (frame.unitframeType == "raid" - or frame.unitframeType == "party" - or frame.unitframeType == "raid40" - ) - and frame:IsVisible() and frame.unit and UnitIsUnit(frame.unit, target) - then - return frame - end - end -end --- bdGrid -if IsAddOnLoaded("bdGrid") then - for _, frame in pairs(oUF_bdGridRaid) do - if UnitIsUnit(frame.unit, target) then - return frame - end - end -end ---Lastly, default frames -if CompactRaidFrameContainer.groupMode == "flush" then - for _, frame in pairs(CompactRaidFrameContainer.flowFrames) do - if frame.unit and frame:IsVisible() and UnitIsUnit(frame.unit, target) then - return frame - end - end -else - for i = 1, 8 do - for j = 1, 5 do - local frame = _G["CompactRaidGroup"..i.."Member"..j] - if frame:IsVisible() and frame.unit and UnitIsUnit(frame.unit, target) - then - return frame - end - end - end -end --- debug - uncomment below if you're seeing issues ---print("GlowOnDemand (WA) - No frame found. Target sent: ".. target) -end - -local frame = aura_env.GetFrame(aura_env.statee.name) -if frame then - local LBG = LibStub("LibButtonGlow-1.0") - table.insert(aura_env.frameTable, frame) - LBG.ShowOverlayGlow(frame) -end - -local frame = aura_env.GetFrame(aura_env.statee.name) -local LBG = LibStub("LibButtonGlow-1.0") -for i, v in ipairs(aura_env.frameTable) do - if v == frame then - table.remove(aura_env.frameTable, i) - break - end -end -LBG.HideOverlayGlow(frame) - -function(t) - if not t[1] then - if #aura_env.frameTable > 0 then - for _, v in ipairs(aura_env.frameTable) do - local LBG = LibStub("LibButtonGlow-1.0") - LBG.HideOverlayGlow(v) - end - end - aura_env.frameTable = {} - end - return t[1] -end +function(allstates, event, ...) + local unitID = ... + local group = aura_env.group + local hplimit = aura_env.hplimit + + for i = 1, GetNumGroupMembers() do + if unitID == group..i then + local curHP = UnitHealth(group..i) + local maxHP = UnitHealthMax(group..i) + local percent = (curHP / maxHP) * 100 + + allstates[unitID] = allstates[unitID] or {} + local state = allstates[unitID] + + if percent < hplimit and state.show == true then + return + end + + state.show = false + + if percent < hplimit then + state.show = true + state.changed = true + state.name = group..i + end + end + end + return true +end + +aura_env.hplimit = 60 --health percentage threshold, change to whatever number you want (1-100) + +----------------------------------------- +--DONT CHANGE ANYTHING BELLOW THIS LINE-- +----------------------------------------- + +aura_env.me = UnitGUID("player") +aura_env.group = "party" +if IsInGroup() and not IsInRaid() then + aura_env.group = "party" +elseif IsInRaid() then + aura_env.group = "raid" +end + +aura_env.frameTable = {} + +-- Send this function a group/raid member's unitID or GUID and it will return their raid frame. +function aura_env.GetFrame(target) + if not UnitExists(target) then + if type(target) == "string" and target:find("Player") then + target = select(6, GetPlayerInfoByGUID(target)) + else + return + end + end + --ShadowUF + if IsAddOnLoaded("ShadowedUnitFrames") then + if ShadowUF.enabledUnits.raid then + for _, frame in pairs(ShadowUF.Units.unitFrames) do + if frame.unitType == "raid" and frame:IsVisible() and frame.unit and UnitIsUnit(frame.unit, target) + then + return frame + end + end + end + end + -- CompactRaid + if IsAddOnLoaded("CompactRaid") then + return CompactRaid:FindUnitFrame(target) + end + -- Healbot + if IsAddOnLoaded("HealBot") then + for _, frame in pairs(HealBot_Unit_Button) do + if UnitIsUnit(frame.unit, target) then + return frame + end + end + end + -- Vuhdo + if IsAddOnLoaded("VuhDo") and VUHDO_CONFIG["SHOW_PANELS"] then + for _, v in pairs(VUHDO_UNIT_BUTTONS) do + if v[1].raidid and UnitIsUnit(v[1].raidid, target) then + return v[1] + end + end + end + if IsAddOnLoaded("Grid") then + for _, frame in pairs(Grid.modules.GridFrame.registeredFrames) do + if frame:IsVisible() then + if frame.unit and UnitIsUnit(frame.unit, target) then + return frame + end + end + end + end + --Grid2 + if IsAddOnLoaded("Grid2") then + for _, frame in pairs(Grid2Frame.registeredFrames) do + if frame:IsVisible() then + if frame.unit and UnitIsUnit(frame.unit, target) then + return frame + end + end + end + end + -- ElvUI + if ElvUF then + for _, frame in pairs(ElvUF.objects) do + if (frame.unitframeType == "raid" + or frame.unitframeType == "party" + or frame.unitframeType == "raid40" + ) + and frame:IsVisible() and frame.unit and UnitIsUnit(frame.unit, target) + then + return frame + end + end +end +-- bdGrid +if IsAddOnLoaded("bdGrid") then + for _, frame in pairs(oUF_bdGridRaid) do + if UnitIsUnit(frame.unit, target) then + return frame + end + end +end +--Lastly, default frames +if CompactRaidFrameContainer.groupMode == "flush" then + for _, frame in pairs(CompactRaidFrameContainer.flowFrames) do + if frame.unit and frame:IsVisible() and UnitIsUnit(frame.unit, target) then + return frame + end + end +else + for i = 1, 8 do + for j = 1, 5 do + local frame = _G["CompactRaidGroup"..i.."Member"..j] + if frame:IsVisible() and frame.unit and UnitIsUnit(frame.unit, target) + then + return frame + end + end + end +end +-- debug - uncomment below if you're seeing issues +--print("GlowOnDemand (WA) - No frame found. Target sent: ".. target) +end + +local frame = aura_env.GetFrame(aura_env.statee.name) +if frame then + local LBG = LibStub("LibButtonGlow-1.0") + table.insert(aura_env.frameTable, frame) + LBG.ShowOverlayGlow(frame) +end + +local frame = aura_env.GetFrame(aura_env.statee.name) +local LBG = LibStub("LibButtonGlow-1.0") +for i, v in ipairs(aura_env.frameTable) do + if v == frame then + table.remove(aura_env.frameTable, i) + break + end +end +LBG.HideOverlayGlow(frame) + +function(t) + if not t[1] then + if #aura_env.frameTable > 0 then + for _, v in ipairs(aura_env.frameTable) do + local LBG = LibStub("LibButtonGlow-1.0") + LBG.HideOverlayGlow(v) + end + end + aura_env.frameTable = {} + end + return t[1] +end diff --git a/Random Trash/Hashing/1.lua b/WeakAuras/Projects/Random Trash/Hashing/1.lua similarity index 96% rename from Random Trash/Hashing/1.lua rename to WeakAuras/Projects/Random Trash/Hashing/1.lua index 365f6db..6cf9774 100644 --- a/Random Trash/Hashing/1.lua +++ b/WeakAuras/Projects/Random Trash/Hashing/1.lua @@ -1,171 +1,171 @@ -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 = {} -local function tonum(cchar) - if cchar == ":" then return 58 end - if cchar == "-" then return 45 end - if cchar == "!" then return 32 end - if cchar == "," then return 44 end - - if cchar == "0" then return 48 end - if cchar == "1" then return 49 end - if cchar == "2" then return 50 end - if cchar == "3" then return 51 end - if cchar == "4" then return 52 end - if cchar == "5" then return 53 end - if cchar == "6" then return 54 end - if cchar == "7" then return 55 end - if cchar == "8" then return 56 end - if cchar == "9" then return 57 end - - if cchar == "A" then return 65 end - if cchar == "B" then return 66 end - if cchar == "C" then return 67 end - if cchar == "D" then return 68 end - if cchar == "E" then return 69 end - if cchar == "F" then return 70 end - if cchar == "G" then return 71 end - if cchar == "H" then return 72 end - if cchar == "I" then return 73 end - if cchar == "J" then return 74 end - if cchar == "K" then return 75 end - if cchar == "L" then return 76 end - if cchar == "M" then return 77 end - if cchar == "N" then return 78 end - if cchar == "O" then return 79 end - if cchar == "P" then return 80 end - if cchar == "Q" then return 81 end - if cchar == "R" then return 82 end - if cchar == "S" then return 83 end - if cchar == "T" then return 84 end - if cchar == "U" then return 85 end - if cchar == "V" then return 86 end - if cchar == "W" then return 87 end - if cchar == "X" then return 88 end - if cchar == "Y" then return 89 end - if cchar == "Z" then return 90 end - - if cchar == "a" then return 97 end - if cchar == "b" then return 98 end - if cchar == "c" then return 99 end - if cchar == "d" then return 100 end - if cchar == "e" then return 101 end - if cchar == "f" then return 102 end - if cchar == "g" then return 103 end - if cchar == "h" then return 104 end - if cchar == "i" then return 105 end - if cchar == "j" then return 106 end - if cchar == "k" then return 107 end - if cchar == "l" then return 108 end - if cchar == "m" then return 109 end - if cchar == "n" then return 110 end - if cchar == "o" then return 111 end - if cchar == "p" then return 112 end - if cchar == "q" then return 113 end - if cchar == "r" then return 114 end - if cchar == "s" then return 115 end - if cchar == "t" then return 116 end - if cchar == "u" then return 117 end - if cchar == "v" then return 118 end - if cchar == "w" then return 119 end - if cchar == "x" then return 120 end - if cchar == "y" then return 121 end - if cchar == "z" then return 122 end -end - -local function findcollision(hash_table, array) - local collisions = 0 - 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 - collisions = collisions + 1 - print(hash_table[i], hash_table[k], i, k, array[i], array[k]) - end - end - end - end - return collisions -end - -local function tohash(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 - hash = math.floor(hash * 10000) - return hash - --print(spellarray[hash], hash) -end - -local function checkbase(spell) - if spellarray[tohash(spell)] == nil then return 0 end - if spellarray[tohash(spell)] == spell then return 1 end -end - -for k, v in ipairs(cc) do - local hash = tohash(v) - hashtable[#hashtable] = hash - spellarray[hash] = v -end -findcollision(hashtable, cc) +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 = {} +local function tonum(cchar) + if cchar == ":" then return 58 end + if cchar == "-" then return 45 end + if cchar == "!" then return 32 end + if cchar == "," then return 44 end + + if cchar == "0" then return 48 end + if cchar == "1" then return 49 end + if cchar == "2" then return 50 end + if cchar == "3" then return 51 end + if cchar == "4" then return 52 end + if cchar == "5" then return 53 end + if cchar == "6" then return 54 end + if cchar == "7" then return 55 end + if cchar == "8" then return 56 end + if cchar == "9" then return 57 end + + if cchar == "A" then return 65 end + if cchar == "B" then return 66 end + if cchar == "C" then return 67 end + if cchar == "D" then return 68 end + if cchar == "E" then return 69 end + if cchar == "F" then return 70 end + if cchar == "G" then return 71 end + if cchar == "H" then return 72 end + if cchar == "I" then return 73 end + if cchar == "J" then return 74 end + if cchar == "K" then return 75 end + if cchar == "L" then return 76 end + if cchar == "M" then return 77 end + if cchar == "N" then return 78 end + if cchar == "O" then return 79 end + if cchar == "P" then return 80 end + if cchar == "Q" then return 81 end + if cchar == "R" then return 82 end + if cchar == "S" then return 83 end + if cchar == "T" then return 84 end + if cchar == "U" then return 85 end + if cchar == "V" then return 86 end + if cchar == "W" then return 87 end + if cchar == "X" then return 88 end + if cchar == "Y" then return 89 end + if cchar == "Z" then return 90 end + + if cchar == "a" then return 97 end + if cchar == "b" then return 98 end + if cchar == "c" then return 99 end + if cchar == "d" then return 100 end + if cchar == "e" then return 101 end + if cchar == "f" then return 102 end + if cchar == "g" then return 103 end + if cchar == "h" then return 104 end + if cchar == "i" then return 105 end + if cchar == "j" then return 106 end + if cchar == "k" then return 107 end + if cchar == "l" then return 108 end + if cchar == "m" then return 109 end + if cchar == "n" then return 110 end + if cchar == "o" then return 111 end + if cchar == "p" then return 112 end + if cchar == "q" then return 113 end + if cchar == "r" then return 114 end + if cchar == "s" then return 115 end + if cchar == "t" then return 116 end + if cchar == "u" then return 117 end + if cchar == "v" then return 118 end + if cchar == "w" then return 119 end + if cchar == "x" then return 120 end + if cchar == "y" then return 121 end + if cchar == "z" then return 122 end +end + +local function findcollision(hash_table, array) + local collisions = 0 + 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 + collisions = collisions + 1 + print(hash_table[i], hash_table[k], i, k, array[i], array[k]) + end + end + end + end + return collisions +end + +local function tohash(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 + hash = math.floor(hash * 10000) + return hash + --print(spellarray[hash], hash) +end + +local function checkbase(spell) + if spellarray[tohash(spell)] == nil then return 0 end + if spellarray[tohash(spell)] == spell then return 1 end +end + +for k, v in ipairs(cc) do + local hash = tohash(v) + hashtable[#hashtable] = hash + spellarray[hash] = v +end +findcollision(hashtable, cc) diff --git a/Random Trash/Hashing/2.lua b/WeakAuras/Projects/Random Trash/Hashing/2.lua similarity index 97% rename from Random Trash/Hashing/2.lua rename to WeakAuras/Projects/Random Trash/Hashing/2.lua index 03daa70..054a92a 100644 --- a/Random Trash/Hashing/2.lua +++ b/WeakAuras/Projects/Random Trash/Hashing/2.lua @@ -1,143 +1,143 @@ -COMBAT_LOG_EVENT_UNFILTERED -function(...) - local caster = select(6, ...) - if caster == UnitName("player") then - local subevent = select(3, ...); local spell = select(14, ...) - print(subevent, spell) - print(aura_env.checkbase(spell)) - if aura_env.checkbase(spell) == 1 then - aura_env.debuffspell = spell - end - end -end - -DISPLAY -function() - if aura_env.debuffspell ~= "" then - local time = GetTime() * 10 - local exptime = select(6, UnitDebuff("player", aura_env.debuffspell))) * 10 - local remtime = math.floor(exptime - time) - if remtime <= 0 then - aura_env.debuffspell = "" - end - return remtime - else - return "" - end -end - -INIT -aura_env.debuffspell = "" -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", "Binding Shot", "Thunderstrike", "Glowing Fragment" -} -local hashtable = {} -aura_env.spellarray = {} -local function tonum(cchar) - if cchar == ":" then return 58 end - if cchar == "-" then return 45 end - if cchar == "!" then return 32 end - if cchar == "," then return 44 end - - if cchar == "0" then return 48 end - if cchar == "1" then return 49 end - if cchar == "2" then return 50 end - if cchar == "3" then return 51 end - if cchar == "4" then return 52 end - if cchar == "5" then return 53 end - if cchar == "6" then return 54 end - if cchar == "7" then return 55 end - if cchar == "8" then return 56 end - if cchar == "9" then return 57 end - - if cchar == "A" then return 65 end - if cchar == "B" then return 66 end - if cchar == "C" then return 67 end - if cchar == "D" then return 68 end - if cchar == "E" then return 69 end - if cchar == "F" then return 70 end - if cchar == "G" then return 71 end - if cchar == "H" then return 72 end - if cchar == "I" then return 73 end - if cchar == "J" then return 74 end - if cchar == "K" then return 75 end - if cchar == "L" then return 76 end - if cchar == "M" then return 77 end - if cchar == "N" then return 78 end - if cchar == "O" then return 79 end - if cchar == "P" then return 80 end - if cchar == "Q" then return 81 end - if cchar == "R" then return 82 end - if cchar == "S" then return 83 end - if cchar == "T" then return 84 end - if cchar == "U" then return 85 end - if cchar == "V" then return 86 end - if cchar == "W" then return 87 end - if cchar == "X" then return 88 end - if cchar == "Y" then return 89 end - if cchar == "Z" then return 90 end - - if cchar == "a" then return 97 end - if cchar == "b" then return 98 end - if cchar == "c" then return 99 end - if cchar == "d" then return 100 end - if cchar == "e" then return 101 end - if cchar == "f" then return 102 end - if cchar == "g" then return 103 end - if cchar == "h" then return 104 end - if cchar == "i" then return 105 end - if cchar == "j" then return 106 end - if cchar == "k" then return 107 end - if cchar == "l" then return 108 end - if cchar == "m" then return 109 end - if cchar == "n" then return 110 end - if cchar == "o" then return 111 end - if cchar == "p" then return 112 end - if cchar == "q" then return 113 end - if cchar == "r" then return 114 end - if cchar == "s" then return 115 end - if cchar == "t" then return 116 end - if cchar == "u" then return 117 end - if cchar == "v" then return 118 end - if cchar == "w" then return 119 end - if cchar == "x" then return 120 end - if cchar == "y" then return 121 end - if cchar == "z" then return 122 end -end -local function findcollision(hash_table, array) - local collisions = 0 - 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 - collisions = collisions + 1 - print(hash_table[i], hash_table[k], i, k, array[i], array[k]) - end - end - end - end - return collisions -end -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 - hash = math.floor(hash * 10000) - return hash - --print(aura_env.spellarray[hash], hash) -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 -for k,v in ipairs(cc) do - local hash = aura_env.tohash(v) - hashtable[#hashtable] = hash - aura_env.spellarray[hash] = v -end +COMBAT_LOG_EVENT_UNFILTERED +function(...) + local caster = select(6, ...) + if caster == UnitName("player") then + local subevent = select(3, ...); local spell = select(14, ...) + print(subevent, spell) + print(aura_env.checkbase(spell)) + if aura_env.checkbase(spell) == 1 then + aura_env.debuffspell = spell + end + end +end + +DISPLAY +function() + if aura_env.debuffspell ~= "" then + local time = GetTime() * 10 + local exptime = select(6, UnitDebuff("player", aura_env.debuffspell))) * 10 + local remtime = math.floor(exptime - time) + if remtime <= 0 then + aura_env.debuffspell = "" + end + return remtime + else + return "" + end +end + +INIT +aura_env.debuffspell = "" +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", "Binding Shot", "Thunderstrike", "Glowing Fragment" +} +local hashtable = {} +aura_env.spellarray = {} +local function tonum(cchar) + if cchar == ":" then return 58 end + if cchar == "-" then return 45 end + if cchar == "!" then return 32 end + if cchar == "," then return 44 end + + if cchar == "0" then return 48 end + if cchar == "1" then return 49 end + if cchar == "2" then return 50 end + if cchar == "3" then return 51 end + if cchar == "4" then return 52 end + if cchar == "5" then return 53 end + if cchar == "6" then return 54 end + if cchar == "7" then return 55 end + if cchar == "8" then return 56 end + if cchar == "9" then return 57 end + + if cchar == "A" then return 65 end + if cchar == "B" then return 66 end + if cchar == "C" then return 67 end + if cchar == "D" then return 68 end + if cchar == "E" then return 69 end + if cchar == "F" then return 70 end + if cchar == "G" then return 71 end + if cchar == "H" then return 72 end + if cchar == "I" then return 73 end + if cchar == "J" then return 74 end + if cchar == "K" then return 75 end + if cchar == "L" then return 76 end + if cchar == "M" then return 77 end + if cchar == "N" then return 78 end + if cchar == "O" then return 79 end + if cchar == "P" then return 80 end + if cchar == "Q" then return 81 end + if cchar == "R" then return 82 end + if cchar == "S" then return 83 end + if cchar == "T" then return 84 end + if cchar == "U" then return 85 end + if cchar == "V" then return 86 end + if cchar == "W" then return 87 end + if cchar == "X" then return 88 end + if cchar == "Y" then return 89 end + if cchar == "Z" then return 90 end + + if cchar == "a" then return 97 end + if cchar == "b" then return 98 end + if cchar == "c" then return 99 end + if cchar == "d" then return 100 end + if cchar == "e" then return 101 end + if cchar == "f" then return 102 end + if cchar == "g" then return 103 end + if cchar == "h" then return 104 end + if cchar == "i" then return 105 end + if cchar == "j" then return 106 end + if cchar == "k" then return 107 end + if cchar == "l" then return 108 end + if cchar == "m" then return 109 end + if cchar == "n" then return 110 end + if cchar == "o" then return 111 end + if cchar == "p" then return 112 end + if cchar == "q" then return 113 end + if cchar == "r" then return 114 end + if cchar == "s" then return 115 end + if cchar == "t" then return 116 end + if cchar == "u" then return 117 end + if cchar == "v" then return 118 end + if cchar == "w" then return 119 end + if cchar == "x" then return 120 end + if cchar == "y" then return 121 end + if cchar == "z" then return 122 end +end +local function findcollision(hash_table, array) + local collisions = 0 + 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 + collisions = collisions + 1 + print(hash_table[i], hash_table[k], i, k, array[i], array[k]) + end + end + end + end + return collisions +end +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 + hash = math.floor(hash * 10000) + return hash + --print(aura_env.spellarray[hash], hash) +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 +for k,v in ipairs(cc) do + local hash = aura_env.tohash(v) + hashtable[#hashtable] = hash + aura_env.spellarray[hash] = v +end findcollision(hashtable, cc) \ No newline at end of file diff --git a/Random Trash/Herbs/Aethril.txt b/WeakAuras/Projects/Random Trash/Herbs/Aethril.txt similarity index 95% rename from Random Trash/Herbs/Aethril.txt rename to WeakAuras/Projects/Random Trash/Herbs/Aethril.txt index 0f80659..ba4e2d6 100644 --- a/Random Trash/Herbs/Aethril.txt +++ b/WeakAuras/Projects/Random Trash/Herbs/Aethril.txt @@ -1,150 +1,150 @@ -/way Azsuna 52.44 12.55 -/way Azsuna 43.81 13.48 -/way Azsuna 43.5 11.55 -/way Azsuna 43.54 10.41 -/way Azsuna 44.04 10.02 -/way Azsuna 45.05 8.91 -/way Azsuna 45.31 9.62 -/way Azsuna 50.71 12.66 -/way Azsuna 51.42 10.39 -/way Azsuna 51.03 11.49 -/way Azsuna 52.24 13.93 -/way Azsuna 53.1 13.66 -/way Azsuna 54.52 13.09 -/way Azsuna 53.98 15.09 -/way Azsuna 57.19 18.32 -/way Azsuna 57.95 19.85 -/way Azsuna 61.05 17.05 -/way Azsuna 62.21 16.11 -/way Azsuna 62.26 17.91 -/way Azsuna 61.86 18.55 -/way Azsuna 59.87 20.07 -/way Azsuna 60.17 20.82 -/way Azsuna 60.31 21.25 -/way Azsuna 58.31 24.61 -/way Azsuna 58.91 22.75 -/way Azsuna 59.92 22.74 -/way Azsuna 61.61 26.13 -/way Azsuna 61.21 27.72 -/way Azsuna 61.95 30.74 -/way Azsuna 63.08 30.76 -/way Azsuna 62.57 28.52 -/way Azsuna 64.55 27.75 -/way Azsuna 65.58 38.31 -/way Azsuna 66.38 38.49 -/way Azsuna 66.44 35.73 -/way Azsuna 65.28 35.11 -/way Azsuna 64.73 34.57 -/way Azsuna 63.54 34.19 -/way Azsuna 64.81 45.69 -/way Azsuna 63.1 46.83 -/way Azsuna 59.34 49.85 -/way Azsuna 56.61 52.15 -/way Azsuna 53.11 54.38 -/way Azsuna 51.66 55.68 -/way Azsuna 50.1 55.25 -/way Azsuna 50.05 56.35 -/way Azsuna 49.08 55.87 -/way Azsuna 36.28 21.97 -/way Azsuna 36.07 23.09 -/way Azsuna 35.3 23.32 -/way Azsuna 35.24 25.27 -/way Azsuna 35.84 26.66 -/way Azsuna 35.28 28.34 -/way Azsuna 38.92 33.69 -/way Azsuna 38.76 32.81 -/way Azsuna 39.8 32.01 -/way Azsuna 38.58 31.7 -/way Azsuna 37.15 31.49 -/way Azsuna 37.81 33.03 -/way Azsuna 38.91 33.95 -/way Azsuna 46.87 32.18 -/way Azsuna 46.45 33.24 -/way Azsuna 42.85 29.84 -/way Azsuna 42.2 30.7 -/way Azsuna 41.42 31.81 -/way Azsuna 40.38 32.88 -/way Azsuna 40.63 35.62 -/way Azsuna 43.97 31.84 -/way Azsuna 45.87 28.71 -/way Azsuna 44.62 30.16 -/way Azsuna 44.16 31.22 -/way Azsuna 45.01 33.8 -/way Azsuna 44.82 35.66 -/way Azsuna 44.33 38.18 -/way Azsuna 44.13 36.79 -/way Azsuna 43.29 36.63 -/way Azsuna 58.5 44.5 -/way Azsuna 56.98 46.04 -/way Azsuna 56.87 47.43 -/way Azsuna 58.08 48.77 -/way Azsuna 58.1 47.82 -/way Azsuna 59.82 48.78 -/way Azsuna 61.93 50.54 -/way Azsuna 60.81 49.52 -/way Azsuna 60.13 50.52 -/way Azsuna 58.7 50.72 -/way Azsuna 57.92 51.18 -/way Azsuna 56.76 51.49 -/way Azsuna 57.02 53.1 -/way Azsuna 60.5 55.71 -/way Azsuna 61.23 55.29 -/way Azsuna 62.2 54.63 -/way Azsuna 62.35 53.03 -/way Azsuna 61.71 51.69 -/way Azsuna 62.88 48.79 -/way Azsuna 59.03 16.36 -/way Azsuna 56.05 52.99 -/way Azsuna 54.9 54.78 -/way Azsuna 46.89 48.44 -/way Azsuna 48.12 52.99 -/way Azsuna 50.61 58.06 -/way Azsuna 65.48 47.52 -/way Azsuna 66.67 48.25 -/way Azsuna 67.25 46.04 -/way Azsuna 67.21 43.27 -/way Azsuna 56.87 48.7 -/way Azsuna 47.7 38.02 -/way Azsuna 45.05 37.62 -/way Azsuna 48.4 32.78 -/way Azsuna 51.98 31.45 -/way Azsuna 57.2 27.62 -/way Azsuna 61.29 29.89 -/way Azsuna 64.67 31.6 -/way Azsuna 60.67 23.86 -/way Azsuna 62.79 25.61 -/way Azsuna 66.4 36.85 -/way Azsuna 63.3 35.71 -/way Azsuna 54.11 30.37 -/way Azsuna 57.92 33.75 -/way Azsuna 42.81 10.38 -/way Azsuna 48.74 10.63 -/way Azsuna 40.78 11.45 -/way Azsuna 39.74 13.5 -/way Azsuna 35.84 15.6 -/way Azsuna 35.53 22.66 -/way Azsuna 35.42 27.64 -/way Azsuna 32.97 32.94 -/way Azsuna 38.01 35.61 -/way Azsuna 52.67 26.74 -/way Azsuna 54.31 17.67 -/way Azsuna 56.06 19.39 -/way Azsuna 51.37 15.24 -/way Azsuna 45.71 15.14 -/way Azsuna 46.61 16.25 -/way Azsuna 48.01 12.51 -/way Azsuna 44.59 32.83 -/way Azsuna 41.47 33.61 -/way Azsuna 42.3 36.7 -/way Azsuna 40.85 38.78 -/way Azsuna 39.97 53.3 -/way Azsuna 48.93 43.77 -/way Azsuna 60.71 36.87 -/way Azsuna 61.83 39.44 -/way Azsuna 56.71 64.6 -/way Azsuna 57 62.25 -/way Azsuna 62.66 54.86 -/way Azsuna 61.84 55.45 -/way Azsuna 56.88 61.05 -/way Azsuna 52.56 60.68 +/way Azsuna 52.44 12.55 +/way Azsuna 43.81 13.48 +/way Azsuna 43.5 11.55 +/way Azsuna 43.54 10.41 +/way Azsuna 44.04 10.02 +/way Azsuna 45.05 8.91 +/way Azsuna 45.31 9.62 +/way Azsuna 50.71 12.66 +/way Azsuna 51.42 10.39 +/way Azsuna 51.03 11.49 +/way Azsuna 52.24 13.93 +/way Azsuna 53.1 13.66 +/way Azsuna 54.52 13.09 +/way Azsuna 53.98 15.09 +/way Azsuna 57.19 18.32 +/way Azsuna 57.95 19.85 +/way Azsuna 61.05 17.05 +/way Azsuna 62.21 16.11 +/way Azsuna 62.26 17.91 +/way Azsuna 61.86 18.55 +/way Azsuna 59.87 20.07 +/way Azsuna 60.17 20.82 +/way Azsuna 60.31 21.25 +/way Azsuna 58.31 24.61 +/way Azsuna 58.91 22.75 +/way Azsuna 59.92 22.74 +/way Azsuna 61.61 26.13 +/way Azsuna 61.21 27.72 +/way Azsuna 61.95 30.74 +/way Azsuna 63.08 30.76 +/way Azsuna 62.57 28.52 +/way Azsuna 64.55 27.75 +/way Azsuna 65.58 38.31 +/way Azsuna 66.38 38.49 +/way Azsuna 66.44 35.73 +/way Azsuna 65.28 35.11 +/way Azsuna 64.73 34.57 +/way Azsuna 63.54 34.19 +/way Azsuna 64.81 45.69 +/way Azsuna 63.1 46.83 +/way Azsuna 59.34 49.85 +/way Azsuna 56.61 52.15 +/way Azsuna 53.11 54.38 +/way Azsuna 51.66 55.68 +/way Azsuna 50.1 55.25 +/way Azsuna 50.05 56.35 +/way Azsuna 49.08 55.87 +/way Azsuna 36.28 21.97 +/way Azsuna 36.07 23.09 +/way Azsuna 35.3 23.32 +/way Azsuna 35.24 25.27 +/way Azsuna 35.84 26.66 +/way Azsuna 35.28 28.34 +/way Azsuna 38.92 33.69 +/way Azsuna 38.76 32.81 +/way Azsuna 39.8 32.01 +/way Azsuna 38.58 31.7 +/way Azsuna 37.15 31.49 +/way Azsuna 37.81 33.03 +/way Azsuna 38.91 33.95 +/way Azsuna 46.87 32.18 +/way Azsuna 46.45 33.24 +/way Azsuna 42.85 29.84 +/way Azsuna 42.2 30.7 +/way Azsuna 41.42 31.81 +/way Azsuna 40.38 32.88 +/way Azsuna 40.63 35.62 +/way Azsuna 43.97 31.84 +/way Azsuna 45.87 28.71 +/way Azsuna 44.62 30.16 +/way Azsuna 44.16 31.22 +/way Azsuna 45.01 33.8 +/way Azsuna 44.82 35.66 +/way Azsuna 44.33 38.18 +/way Azsuna 44.13 36.79 +/way Azsuna 43.29 36.63 +/way Azsuna 58.5 44.5 +/way Azsuna 56.98 46.04 +/way Azsuna 56.87 47.43 +/way Azsuna 58.08 48.77 +/way Azsuna 58.1 47.82 +/way Azsuna 59.82 48.78 +/way Azsuna 61.93 50.54 +/way Azsuna 60.81 49.52 +/way Azsuna 60.13 50.52 +/way Azsuna 58.7 50.72 +/way Azsuna 57.92 51.18 +/way Azsuna 56.76 51.49 +/way Azsuna 57.02 53.1 +/way Azsuna 60.5 55.71 +/way Azsuna 61.23 55.29 +/way Azsuna 62.2 54.63 +/way Azsuna 62.35 53.03 +/way Azsuna 61.71 51.69 +/way Azsuna 62.88 48.79 +/way Azsuna 59.03 16.36 +/way Azsuna 56.05 52.99 +/way Azsuna 54.9 54.78 +/way Azsuna 46.89 48.44 +/way Azsuna 48.12 52.99 +/way Azsuna 50.61 58.06 +/way Azsuna 65.48 47.52 +/way Azsuna 66.67 48.25 +/way Azsuna 67.25 46.04 +/way Azsuna 67.21 43.27 +/way Azsuna 56.87 48.7 +/way Azsuna 47.7 38.02 +/way Azsuna 45.05 37.62 +/way Azsuna 48.4 32.78 +/way Azsuna 51.98 31.45 +/way Azsuna 57.2 27.62 +/way Azsuna 61.29 29.89 +/way Azsuna 64.67 31.6 +/way Azsuna 60.67 23.86 +/way Azsuna 62.79 25.61 +/way Azsuna 66.4 36.85 +/way Azsuna 63.3 35.71 +/way Azsuna 54.11 30.37 +/way Azsuna 57.92 33.75 +/way Azsuna 42.81 10.38 +/way Azsuna 48.74 10.63 +/way Azsuna 40.78 11.45 +/way Azsuna 39.74 13.5 +/way Azsuna 35.84 15.6 +/way Azsuna 35.53 22.66 +/way Azsuna 35.42 27.64 +/way Azsuna 32.97 32.94 +/way Azsuna 38.01 35.61 +/way Azsuna 52.67 26.74 +/way Azsuna 54.31 17.67 +/way Azsuna 56.06 19.39 +/way Azsuna 51.37 15.24 +/way Azsuna 45.71 15.14 +/way Azsuna 46.61 16.25 +/way Azsuna 48.01 12.51 +/way Azsuna 44.59 32.83 +/way Azsuna 41.47 33.61 +/way Azsuna 42.3 36.7 +/way Azsuna 40.85 38.78 +/way Azsuna 39.97 53.3 +/way Azsuna 48.93 43.77 +/way Azsuna 60.71 36.87 +/way Azsuna 61.83 39.44 +/way Azsuna 56.71 64.6 +/way Azsuna 57 62.25 +/way Azsuna 62.66 54.86 +/way Azsuna 61.84 55.45 +/way Azsuna 56.88 61.05 +/way Azsuna 52.56 60.68 /way Azsuna 46 61.02 \ No newline at end of file diff --git a/Random Trash/Herbs/Dreamleaf.txt b/WeakAuras/Projects/Random Trash/Herbs/Dreamleaf.txt similarity index 96% rename from Random Trash/Herbs/Dreamleaf.txt rename to WeakAuras/Projects/Random Trash/Herbs/Dreamleaf.txt index e1399e0..a669445 100644 --- a/Random Trash/Herbs/Dreamleaf.txt +++ b/WeakAuras/Projects/Random Trash/Herbs/Dreamleaf.txt @@ -1,200 +1,200 @@ -/way Val'Sharah 61.87 52.19 -/way Val'Sharah 60.2 53.05 -/way Val'Sharah 60.65 54.53 -/way Val'Sharah 59.47 55.87 -/way Val'Sharah 56.22 60.29 -/way Val'Sharah 56.95 61.33 -/way Val'Sharah 56.52 64.31 -/way Val'Sharah 58.38 65.51 -/way Val'Sharah 56.03 64.65 -/way Val'Sharah 55.53 70.26 -/way Val'Sharah 57.79 71.48 -/way Val'Sharah 59.03 69.43 -/way Val'Sharah 57.33 69.9 -/way Val'Sharah 55.39 68.84 -/way Val'Sharah 55.08 63.45 -/way Val'Sharah 52.34 61.54 -/way Val'Sharah 51.12 64.53 -/way Val'Sharah 54.28 62.65 -/way Val'Sharah 54.32 66.08 -/way Val'Sharah 58.53 61.45 -/way Val'Sharah 58.37 63.02 -/way Val'Sharah 59.24 65.05 -/way Val'Sharah 62.31 64.97 -/way Val'Sharah 63.37 67.79 -/way Val'Sharah 64.83 68.7 -/way Val'Sharah 68.37 63.92 -/way Val'Sharah 66.9 66.86 -/way Val'Sharah 67.08 68.7 -/way Val'Sharah 66.91 70.84 -/way Val'Sharah 65.61 71.3 -/way Val'Sharah 65.43 74.05 -/way Val'Sharah 66.57 73.67 -/way Val'Sharah 68.75 72.27 -/way Val'Sharah 67.56 72.17 -/way Val'Sharah 68.81 74.63 -/way Val'Sharah 67.77 75.19 -/way Val'Sharah 67.02 76.86 -/way Val'Sharah 65.7 75.96 -/way Val'Sharah 60.05 76.17 -/way Val'Sharah 56.95 76.95 -/way Val'Sharah 57.35 75.19 -/way Val'Sharah 58.36 73.27 -/way Val'Sharah 59.08 73.81 -/way Val'Sharah 60.66 75.82 -/way Val'Sharah 61.34 79.25 -/way Val'Sharah 62.71 80.38 -/way Val'Sharah 60.26 80.68 -/way Val'Sharah 59.23 82.19 -/way Val'Sharah 62.34 84.98 -/way Val'Sharah 58.92 88.3 -/way Val'Sharah 55.85 89.71 -/way Val'Sharah 56.13 87.83 -/way Val'Sharah 54.22 88.9 -/way Val'Sharah 53.37 87.68 -/way Val'Sharah 50.61 86.57 -/way Val'Sharah 49.98 83.55 -/way Val'Sharah 49.47 81.21 -/way Val'Sharah 50.49 79.7 -/way Val'Sharah 51.4 78.35 -/way Val'Sharah 52.52 75.98 -/way Val'Sharah 48.75 73.96 -/way Val'Sharah 48.14 72.49 -/way Val'Sharah 46.98 58.58 -/way Val'Sharah 43.72 57.99 -/way Val'Sharah 46.84 37.45 -/way Val'Sharah 46.85 39.36 -/way Val'Sharah 47.84 38.96 -/way Val'Sharah 48.45 40.92 -/way Val'Sharah 50.4 39.27 -/way Val'Sharah 50.43 40.57 -/way Val'Sharah 52.45 44.2 -/way Val'Sharah 54.73 47.17 -/way Val'Sharah 56.35 45.89 -/way Val'Sharah 54.9 41.74 -/way Val'Sharah 54.87 39.41 -/way Val'Sharah 56.71 40.19 -/way Val'Sharah 57.58 41.53 -/way Val'Sharah 58.36 41.66 -/way Val'Sharah 60.05 42.17 -/way Val'Sharah 61.65 43.31 -/way Val'Sharah 60.92 41.56 -/way Val'Sharah 62.24 44.16 -/way Val'Sharah 62.18 43.11 -/way Val'Sharah 64.04 40.91 -/way Val'Sharah 62.84 40.65 -/way Val'Sharah 63.51 38.93 -/way Val'Sharah 69.12 39.38 -/way Val'Sharah 70.92 38.4 -/way Val'Sharah 71.19 42.44 -/way Val'Sharah 72.93 44.69 -/way Val'Sharah 71.57 47.07 -/way Val'Sharah 69.24 45.68 -/way Val'Sharah 69.93 47.65 -/way Val'Sharah 68.74 48.58 -/way Val'Sharah 68.01 50.36 -/way Val'Sharah 70.59 51.95 -/way Val'Sharah 70.77 54.92 -/way Val'Sharah 71.17 56.39 -/way Val'Sharah 70.27 56.41 -/way Val'Sharah 69.1 55.12 -/way Val'Sharah 65.97 59.44 -/way Val'Sharah 65.88 56.5 -/way Val'Sharah 64.45 53.78 -/way Val'Sharah 63.19 56.73 -/way Val'Sharah 64.13 58.96 -/way Val'Sharah 65.55 61.24 -/way Val'Sharah 64.01 61.23 -/way Val'Sharah 64.35 75.33 -/way Val'Sharah 64.04 79.4 -/way Val'Sharah 65.31 79.67 -/way Val'Sharah 64.07 81.41 -/way Val'Sharah 62.41 82.04 -/way Val'Sharah 61.02 83.56 -/way Val'Sharah 59.89 83.19 -/way Val'Sharah 60.72 84.32 -/way Val'Sharah 61.72 84.3 -/way Val'Sharah 59.99 79.24 -/way Val'Sharah 56.12 79.23 -/way Val'Sharah 55.7 76.89 -/way Val'Sharah 51.19 72.26 -/way Val'Sharah 53.78 70.92 -/way Val'Sharah 52.44 72.53 -/way Val'Sharah 47.63 77.64 -/way Val'Sharah 49.85 74.92 -/way Val'Sharah 49.99 77.55 -/way Val'Sharah 47.43 76.36 -/way Val'Sharah 44.57 82.87 -/way Val'Sharah 44.59 86.64 -/way Val'Sharah 45.1 86.63 -/way Val'Sharah 44.31 85.05 -/way Val'Sharah 42.91 83.59 -/way Val'Sharah 42.69 81.24 -/way Val'Sharah 42.59 80.4 -/way Val'Sharah 41.57 81.13 -/way Val'Sharah 40.88 75.34 -/way Val'Sharah 50.44 53.49 -/way Val'Sharah 53.43 52.68 -/way Val'Sharah 55.29 50.86 -/way Val'Sharah 54.1 52.27 -/way Val'Sharah 53.37 51.14 -/way Val'Sharah 53.52 49.5 -/way Val'Sharah 52.4 49.71 -/way Val'Sharah 50.9 49.61 -/way Val'Sharah 47.8 52.24 -/way Val'Sharah 47.93 55.01 -/way Val'Sharah 46.89 53.79 -/way Val'Sharah 46.22 55.18 -/way Val'Sharah 46.32 56.82 -/way Val'Sharah 40.2 62.85 -/way Val'Sharah 40.35 60.93 -/way Val'Sharah 36.08 58.38 -/way Val'Sharah 35.03 60.53 -/way Val'Sharah 35.66 60.3 -/way Val'Sharah 40.75 60.72 -/way Val'Sharah 44.99 60.93 -/way Val'Sharah 43.77 60.96 -/way Val'Sharah 43.04 63.03 -/way Val'Sharah 41.88 63.67 -/way Val'Sharah 42.45 61.88 -/way Val'Sharah 43.65 60.82 -/way Val'Sharah 58.38 33.52 -/way Val'Sharah 41.66 54.31 -/way Val'Sharah 40.52 51.34 -/way Val'Sharah 37.56 54.61 -/way Val'Sharah 49.48 49.77 -/way Val'Sharah 51.33 41.98 -/way Val'Sharah 55.3 55.78 -/way Val'Sharah 61.99 30.91 -/way Val'Sharah 57.71 39.6 -/way Val'Sharah 69.54 37.38 -/way Val'Sharah 68.35 39.91 -/way Val'Sharah 62.37 48.14 -/way Val'Sharah 65.9 41.14 -/way Val'Sharah 73.55 52.84 -/way Val'Sharah 74.57 39.75 -/way Val'Sharah 72.1 49.22 -/way Val'Sharah 69.79 53.26 -/way Val'Sharah 67.27 60.55 -/way Val'Sharah 64.16 58.7 -/way Val'Sharah 54.76 57.01 -/way Val'Sharah 57.81 60.35 -/way Val'Sharah 48.01 69.08 -/way Val'Sharah 42.49 79.11 -/way Val'Sharah 41.64 69.85 -/way Val'Sharah 45.52 73.05 -/way Val'Sharah 50.98 82.3 -/way Val'Sharah 65.76 68.15 -/way Val'Sharah 63.63 64.98 -/way Val'Sharah 57.28 90.49 -/way Val'Sharah 55.64 84.34 -/way Val'Sharah 39.95 88.45 -/way Val'Sharah 44.02 82.51 -/way Val'Sharah 47.72 85.61 -/way Val'Sharah 50.24 84.23 -/way Val'Sharah 43.02 88.03 -/way Val'Sharah 46.15 83.47 -/way Val'Sharah 55.23 68.18 -/way Val'Sharah 22.55 64.61 -/way Val'Sharah 22.95 72.49 +/way Val'Sharah 61.87 52.19 +/way Val'Sharah 60.2 53.05 +/way Val'Sharah 60.65 54.53 +/way Val'Sharah 59.47 55.87 +/way Val'Sharah 56.22 60.29 +/way Val'Sharah 56.95 61.33 +/way Val'Sharah 56.52 64.31 +/way Val'Sharah 58.38 65.51 +/way Val'Sharah 56.03 64.65 +/way Val'Sharah 55.53 70.26 +/way Val'Sharah 57.79 71.48 +/way Val'Sharah 59.03 69.43 +/way Val'Sharah 57.33 69.9 +/way Val'Sharah 55.39 68.84 +/way Val'Sharah 55.08 63.45 +/way Val'Sharah 52.34 61.54 +/way Val'Sharah 51.12 64.53 +/way Val'Sharah 54.28 62.65 +/way Val'Sharah 54.32 66.08 +/way Val'Sharah 58.53 61.45 +/way Val'Sharah 58.37 63.02 +/way Val'Sharah 59.24 65.05 +/way Val'Sharah 62.31 64.97 +/way Val'Sharah 63.37 67.79 +/way Val'Sharah 64.83 68.7 +/way Val'Sharah 68.37 63.92 +/way Val'Sharah 66.9 66.86 +/way Val'Sharah 67.08 68.7 +/way Val'Sharah 66.91 70.84 +/way Val'Sharah 65.61 71.3 +/way Val'Sharah 65.43 74.05 +/way Val'Sharah 66.57 73.67 +/way Val'Sharah 68.75 72.27 +/way Val'Sharah 67.56 72.17 +/way Val'Sharah 68.81 74.63 +/way Val'Sharah 67.77 75.19 +/way Val'Sharah 67.02 76.86 +/way Val'Sharah 65.7 75.96 +/way Val'Sharah 60.05 76.17 +/way Val'Sharah 56.95 76.95 +/way Val'Sharah 57.35 75.19 +/way Val'Sharah 58.36 73.27 +/way Val'Sharah 59.08 73.81 +/way Val'Sharah 60.66 75.82 +/way Val'Sharah 61.34 79.25 +/way Val'Sharah 62.71 80.38 +/way Val'Sharah 60.26 80.68 +/way Val'Sharah 59.23 82.19 +/way Val'Sharah 62.34 84.98 +/way Val'Sharah 58.92 88.3 +/way Val'Sharah 55.85 89.71 +/way Val'Sharah 56.13 87.83 +/way Val'Sharah 54.22 88.9 +/way Val'Sharah 53.37 87.68 +/way Val'Sharah 50.61 86.57 +/way Val'Sharah 49.98 83.55 +/way Val'Sharah 49.47 81.21 +/way Val'Sharah 50.49 79.7 +/way Val'Sharah 51.4 78.35 +/way Val'Sharah 52.52 75.98 +/way Val'Sharah 48.75 73.96 +/way Val'Sharah 48.14 72.49 +/way Val'Sharah 46.98 58.58 +/way Val'Sharah 43.72 57.99 +/way Val'Sharah 46.84 37.45 +/way Val'Sharah 46.85 39.36 +/way Val'Sharah 47.84 38.96 +/way Val'Sharah 48.45 40.92 +/way Val'Sharah 50.4 39.27 +/way Val'Sharah 50.43 40.57 +/way Val'Sharah 52.45 44.2 +/way Val'Sharah 54.73 47.17 +/way Val'Sharah 56.35 45.89 +/way Val'Sharah 54.9 41.74 +/way Val'Sharah 54.87 39.41 +/way Val'Sharah 56.71 40.19 +/way Val'Sharah 57.58 41.53 +/way Val'Sharah 58.36 41.66 +/way Val'Sharah 60.05 42.17 +/way Val'Sharah 61.65 43.31 +/way Val'Sharah 60.92 41.56 +/way Val'Sharah 62.24 44.16 +/way Val'Sharah 62.18 43.11 +/way Val'Sharah 64.04 40.91 +/way Val'Sharah 62.84 40.65 +/way Val'Sharah 63.51 38.93 +/way Val'Sharah 69.12 39.38 +/way Val'Sharah 70.92 38.4 +/way Val'Sharah 71.19 42.44 +/way Val'Sharah 72.93 44.69 +/way Val'Sharah 71.57 47.07 +/way Val'Sharah 69.24 45.68 +/way Val'Sharah 69.93 47.65 +/way Val'Sharah 68.74 48.58 +/way Val'Sharah 68.01 50.36 +/way Val'Sharah 70.59 51.95 +/way Val'Sharah 70.77 54.92 +/way Val'Sharah 71.17 56.39 +/way Val'Sharah 70.27 56.41 +/way Val'Sharah 69.1 55.12 +/way Val'Sharah 65.97 59.44 +/way Val'Sharah 65.88 56.5 +/way Val'Sharah 64.45 53.78 +/way Val'Sharah 63.19 56.73 +/way Val'Sharah 64.13 58.96 +/way Val'Sharah 65.55 61.24 +/way Val'Sharah 64.01 61.23 +/way Val'Sharah 64.35 75.33 +/way Val'Sharah 64.04 79.4 +/way Val'Sharah 65.31 79.67 +/way Val'Sharah 64.07 81.41 +/way Val'Sharah 62.41 82.04 +/way Val'Sharah 61.02 83.56 +/way Val'Sharah 59.89 83.19 +/way Val'Sharah 60.72 84.32 +/way Val'Sharah 61.72 84.3 +/way Val'Sharah 59.99 79.24 +/way Val'Sharah 56.12 79.23 +/way Val'Sharah 55.7 76.89 +/way Val'Sharah 51.19 72.26 +/way Val'Sharah 53.78 70.92 +/way Val'Sharah 52.44 72.53 +/way Val'Sharah 47.63 77.64 +/way Val'Sharah 49.85 74.92 +/way Val'Sharah 49.99 77.55 +/way Val'Sharah 47.43 76.36 +/way Val'Sharah 44.57 82.87 +/way Val'Sharah 44.59 86.64 +/way Val'Sharah 45.1 86.63 +/way Val'Sharah 44.31 85.05 +/way Val'Sharah 42.91 83.59 +/way Val'Sharah 42.69 81.24 +/way Val'Sharah 42.59 80.4 +/way Val'Sharah 41.57 81.13 +/way Val'Sharah 40.88 75.34 +/way Val'Sharah 50.44 53.49 +/way Val'Sharah 53.43 52.68 +/way Val'Sharah 55.29 50.86 +/way Val'Sharah 54.1 52.27 +/way Val'Sharah 53.37 51.14 +/way Val'Sharah 53.52 49.5 +/way Val'Sharah 52.4 49.71 +/way Val'Sharah 50.9 49.61 +/way Val'Sharah 47.8 52.24 +/way Val'Sharah 47.93 55.01 +/way Val'Sharah 46.89 53.79 +/way Val'Sharah 46.22 55.18 +/way Val'Sharah 46.32 56.82 +/way Val'Sharah 40.2 62.85 +/way Val'Sharah 40.35 60.93 +/way Val'Sharah 36.08 58.38 +/way Val'Sharah 35.03 60.53 +/way Val'Sharah 35.66 60.3 +/way Val'Sharah 40.75 60.72 +/way Val'Sharah 44.99 60.93 +/way Val'Sharah 43.77 60.96 +/way Val'Sharah 43.04 63.03 +/way Val'Sharah 41.88 63.67 +/way Val'Sharah 42.45 61.88 +/way Val'Sharah 43.65 60.82 +/way Val'Sharah 58.38 33.52 +/way Val'Sharah 41.66 54.31 +/way Val'Sharah 40.52 51.34 +/way Val'Sharah 37.56 54.61 +/way Val'Sharah 49.48 49.77 +/way Val'Sharah 51.33 41.98 +/way Val'Sharah 55.3 55.78 +/way Val'Sharah 61.99 30.91 +/way Val'Sharah 57.71 39.6 +/way Val'Sharah 69.54 37.38 +/way Val'Sharah 68.35 39.91 +/way Val'Sharah 62.37 48.14 +/way Val'Sharah 65.9 41.14 +/way Val'Sharah 73.55 52.84 +/way Val'Sharah 74.57 39.75 +/way Val'Sharah 72.1 49.22 +/way Val'Sharah 69.79 53.26 +/way Val'Sharah 67.27 60.55 +/way Val'Sharah 64.16 58.7 +/way Val'Sharah 54.76 57.01 +/way Val'Sharah 57.81 60.35 +/way Val'Sharah 48.01 69.08 +/way Val'Sharah 42.49 79.11 +/way Val'Sharah 41.64 69.85 +/way Val'Sharah 45.52 73.05 +/way Val'Sharah 50.98 82.3 +/way Val'Sharah 65.76 68.15 +/way Val'Sharah 63.63 64.98 +/way Val'Sharah 57.28 90.49 +/way Val'Sharah 55.64 84.34 +/way Val'Sharah 39.95 88.45 +/way Val'Sharah 44.02 82.51 +/way Val'Sharah 47.72 85.61 +/way Val'Sharah 50.24 84.23 +/way Val'Sharah 43.02 88.03 +/way Val'Sharah 46.15 83.47 +/way Val'Sharah 55.23 68.18 +/way Val'Sharah 22.55 64.61 +/way Val'Sharah 22.95 72.49 /way Val'Sharah 21.81 69.82 \ No newline at end of file diff --git a/Random Trash/Herbs/Fjarnskaggl.txt b/WeakAuras/Projects/Random Trash/Herbs/Fjarnskaggl.txt similarity index 96% rename from Random Trash/Herbs/Fjarnskaggl.txt rename to WeakAuras/Projects/Random Trash/Herbs/Fjarnskaggl.txt index e1ffc62..c5f6374 100644 --- a/Random Trash/Herbs/Fjarnskaggl.txt +++ b/WeakAuras/Projects/Random Trash/Herbs/Fjarnskaggl.txt @@ -1,200 +1,200 @@ -/way Stormheim 47.24 55.62 -/way Stormheim 51.47 55.4 -/way Stormheim 49.09 52.04 -/way Stormheim 48.14 53.66 -/way Stormheim 45.46 53.33 -/way Stormheim 42.97 59.67 -/way Stormheim 42.91 57.7 -/way Stormheim 42.8 56.74 -/way Stormheim 41.94 53.95 -/way Stormheim 39.66 53.74 -/way Stormheim 40.06 52.65 -/way Stormheim 41.77 49.95 -/way Stormheim 42.6 49.17 -/way Stormheim 42.02 50.81 -/way Stormheim 42.54 52.47 -/way Stormheim 42.86 51.62 -/way Stormheim 44.56 52.7 -/way Stormheim 43.88 52.96 -/way Stormheim 43.66 54.02 -/way Stormheim 44.39 54.51 -/way Stormheim 44.57 56.26 -/way Stormheim 44.17 58.37 -/way Stormheim 46.02 58.16 -/way Stormheim 45.54 56.28 -/way Stormheim 45.64 55.67 -/way Stormheim 45.88 54.95 -/way Stormheim 75.52 64.36 -/way Stormheim 74.64 63.4 -/way Stormheim 75.47 61.49 -/way Stormheim 76.04 62.25 -/way Stormheim 76.34 62.88 -/way Stormheim 75.6 61.16 -/way Stormheim 74.48 61.07 -/way Stormheim 73.1 61.55 -/way Stormheim 71.6 61.94 -/way Stormheim 71.17 61.79 -/way Stormheim 70.7 61.82 -/way Stormheim 69.93 60.51 -/way Stormheim 68.88 62.24 -/way Stormheim 68.02 62.34 -/way Stormheim 68.38 60.4 -/way Stormheim 68.09 58.09 -/way Stormheim 68.51 57.47 -/way Stormheim 69.32 57.12 -/way Stormheim 70.52 56.23 -/way Stormheim 68.72 55.81 -/way Stormheim 68.24 55.37 -/way Stormheim 67.73 53.38 -/way Stormheim 67.47 50.94 -/way Stormheim 66.2 50.65 -/way Stormheim 66.13 49.8 -/way Stormheim 65.36 46.62 -/way Stormheim 68.76 42.62 -/way Stormheim 69.77 41.67 -/way Stormheim 70.11 40.61 -/way Stormheim 70.23 39.9 -/way Stormheim 70.45 39.16 -/way Stormheim 71.16 38.18 -/way Stormheim 70.62 37.63 -/way Stormheim 69.98 37.93 -/way Stormheim 69.85 36.95 -/way Stormheim 69.11 37.75 -/way Stormheim 68.09 38.08 -/way Stormheim 68.51 39.26 -/way Stormheim 67.77 40.49 -/way Stormheim 67.39 41.98 -/way Stormheim 66.73 42.58 -/way Stormheim 67.01 43.27 -/way Stormheim 66.64 43.31 -/way Stormheim 65.25 48.23 -/way Stormheim 64.43 47.44 -/way Stormheim 64.3 49.23 -/way Stormheim 63.4 49.43 -/way Stormheim 61.43 49.66 -/way Stormheim 62.74 50.15 -/way Stormheim 62.33 50.62 -/way Stormheim 61.77 51.52 -/way Stormheim 61.5 53.26 -/way Stormheim 61.08 54.15 -/way Stormheim 59.76 53.98 -/way Stormheim 59.06 52.97 -/way Stormheim 59.38 51.04 -/way Stormheim 59.05 51.07 -/way Stormheim 58.05 51.4 -/way Stormheim 57.23 50.59 -/way Stormheim 56.64 50.71 -/way Stormheim 53.07 53.33 -/way Stormheim 53.94 54.38 -/way Stormheim 53.44 54.49 -/way Stormheim 52.19 56.4 -/way Stormheim 51.96 58.49 -/way Stormheim 51.66 58.85 -/way Stormheim 51.36 59.61 -/way Stormheim 52 60.49 -/way Stormheim 53.76 58.93 -/way Stormheim 53.43 58.03 -/way Stormheim 52.75 56.71 -/way Stormheim 53.34 56.63 -/way Stormheim 53.46 55.97 -/way Stormheim 52.99 55.07 -/way Stormheim 52.69 53.46 -/way Stormheim 51.16 53.73 -/way Stormheim 50.62 53.1 -/way Stormheim 50.2 52.37 -/way Stormheim 50.13 50.4 -/way Stormheim 48.08 50.93 -/way Stormheim 47.68 48.92 -/way Stormheim 44.23 45.97 -/way Stormheim 45.22 43.32 -/way Stormheim 45.69 42.54 -/way Stormheim 46.28 42.7 -/way Stormheim 48.34 39.8 -/way Stormheim 49.36 37.64 -/way Stormheim 47.3 38.94 -/way Stormheim 42.38 41.41 -/way Stormheim 42.36 39.64 -/way Stormheim 42.97 39.05 -/way Stormheim 42.41 38.26 -/way Stormheim 40.83 40.62 -/way Stormheim 41.68 40.19 -/way Stormheim 61.22 64.31 -/way Stormheim 56.67 79.09 -/way Stormheim 73.25 44.25 -/way Stormheim 73.25 44.5 -/way Stormheim 69.24 50.47 -/way Stormheim 64.32 44.07 -/way Stormheim 62.95 46.32 -/way Stormheim 63.56 45.14 -/way Stormheim 68.35 58.98 -/way Stormheim 71.6 52.25 -/way Stormheim 82.09 57.01 -/way Stormheim 80.93 56.31 -/way Stormheim 79.83 64.42 -/way Stormheim 78.73 63.87 -/way Stormheim 80.89 63.18 -/way Stormheim 78.75 58.41 -/way Stormheim 77.87 57.58 -/way Stormheim 73.32 59.52 -/way Stormheim 70.2 58.54 -/way Stormheim 68.78 54.4 -/way Stormheim 67.69 59.37 -/way Stormheim 67.61 54.47 -/way Stormheim 65.94 52.25 -/way Stormheim 63.57 55.84 -/way Stormheim 68.18 50.25 -/way Stormheim 43.9 58.83 -/way Stormheim 43.27 81.62 -/way Stormheim 45.24 75.28 -/way Stormheim 43.53 70.2 -/way Stormheim 43.4 71.29 -/way Stormheim 48 67.59 -/way Stormheim 41.82 65.83 -/way Stormheim 41.11 65.23 -/way Stormheim 37.84 64.52 -/way Stormheim 41.31 58.59 -/way Stormheim 42.35 61.07 -/way Stormheim 38.37 56.57 -/way Stormheim 37.66 55.01 -/way Stormheim 44.11 44.07 -/way Stormheim 46.61 40.23 -/way Stormheim 44.65 38.78 -/way Stormheim 47.94 35.39 -/way Stormheim 43.25 31.36 -/way Stormheim 45.4 30.26 -/way Stormheim 43.1 26.67 -/way Stormheim 45.47 25.53 -/way Stormheim 50.15 21.58 -/way Stormheim 48.03 21.48 -/way Stormheim 62 25.52 -/way Stormheim 60.54 29.82 -/way Stormheim 52 25.83 -/way Stormheim 50.54 35.56 -/way Stormheim 44.97 39.08 -/way Stormheim 42.83 42.04 -/way Stormheim 43.57 45.19 -/way Stormheim 43.59 46.2 -/way Stormheim 49.47 49.89 -/way Stormheim 48.93 49.78 -/way Stormheim 43.63 38.21 -/way Stormheim 45.98 38.79 -/way Stormheim 44.19 40.82 -/way Stormheim 43.7 42.61 -/way Stormheim 44.29 46.69 -/way Stormheim 40.96 37.98 -/way Stormheim 42.18 36.75 -/way Stormheim 28.74 46.9 -/way Stormheim 29.32 47.14 -/way Stormheim 30.43 51.49 -/way Stormheim 34.47 45.62 -/way Stormheim 28.01 41.97 -/way Stormheim 33.22 43.93 -/way Stormheim 34.45 42.11 -/way Stormheim 36.37 40.26 -/way Stormheim 38.14 23.01 -/way Stormheim 43.17 21.07 -/way Stormheim 35.77 27.54 -/way Stormheim 63.95 62.4 -/way Stormheim 65.8 58.06 -/way Stormheim 59.47 56.02 +/way Stormheim 47.24 55.62 +/way Stormheim 51.47 55.4 +/way Stormheim 49.09 52.04 +/way Stormheim 48.14 53.66 +/way Stormheim 45.46 53.33 +/way Stormheim 42.97 59.67 +/way Stormheim 42.91 57.7 +/way Stormheim 42.8 56.74 +/way Stormheim 41.94 53.95 +/way Stormheim 39.66 53.74 +/way Stormheim 40.06 52.65 +/way Stormheim 41.77 49.95 +/way Stormheim 42.6 49.17 +/way Stormheim 42.02 50.81 +/way Stormheim 42.54 52.47 +/way Stormheim 42.86 51.62 +/way Stormheim 44.56 52.7 +/way Stormheim 43.88 52.96 +/way Stormheim 43.66 54.02 +/way Stormheim 44.39 54.51 +/way Stormheim 44.57 56.26 +/way Stormheim 44.17 58.37 +/way Stormheim 46.02 58.16 +/way Stormheim 45.54 56.28 +/way Stormheim 45.64 55.67 +/way Stormheim 45.88 54.95 +/way Stormheim 75.52 64.36 +/way Stormheim 74.64 63.4 +/way Stormheim 75.47 61.49 +/way Stormheim 76.04 62.25 +/way Stormheim 76.34 62.88 +/way Stormheim 75.6 61.16 +/way Stormheim 74.48 61.07 +/way Stormheim 73.1 61.55 +/way Stormheim 71.6 61.94 +/way Stormheim 71.17 61.79 +/way Stormheim 70.7 61.82 +/way Stormheim 69.93 60.51 +/way Stormheim 68.88 62.24 +/way Stormheim 68.02 62.34 +/way Stormheim 68.38 60.4 +/way Stormheim 68.09 58.09 +/way Stormheim 68.51 57.47 +/way Stormheim 69.32 57.12 +/way Stormheim 70.52 56.23 +/way Stormheim 68.72 55.81 +/way Stormheim 68.24 55.37 +/way Stormheim 67.73 53.38 +/way Stormheim 67.47 50.94 +/way Stormheim 66.2 50.65 +/way Stormheim 66.13 49.8 +/way Stormheim 65.36 46.62 +/way Stormheim 68.76 42.62 +/way Stormheim 69.77 41.67 +/way Stormheim 70.11 40.61 +/way Stormheim 70.23 39.9 +/way Stormheim 70.45 39.16 +/way Stormheim 71.16 38.18 +/way Stormheim 70.62 37.63 +/way Stormheim 69.98 37.93 +/way Stormheim 69.85 36.95 +/way Stormheim 69.11 37.75 +/way Stormheim 68.09 38.08 +/way Stormheim 68.51 39.26 +/way Stormheim 67.77 40.49 +/way Stormheim 67.39 41.98 +/way Stormheim 66.73 42.58 +/way Stormheim 67.01 43.27 +/way Stormheim 66.64 43.31 +/way Stormheim 65.25 48.23 +/way Stormheim 64.43 47.44 +/way Stormheim 64.3 49.23 +/way Stormheim 63.4 49.43 +/way Stormheim 61.43 49.66 +/way Stormheim 62.74 50.15 +/way Stormheim 62.33 50.62 +/way Stormheim 61.77 51.52 +/way Stormheim 61.5 53.26 +/way Stormheim 61.08 54.15 +/way Stormheim 59.76 53.98 +/way Stormheim 59.06 52.97 +/way Stormheim 59.38 51.04 +/way Stormheim 59.05 51.07 +/way Stormheim 58.05 51.4 +/way Stormheim 57.23 50.59 +/way Stormheim 56.64 50.71 +/way Stormheim 53.07 53.33 +/way Stormheim 53.94 54.38 +/way Stormheim 53.44 54.49 +/way Stormheim 52.19 56.4 +/way Stormheim 51.96 58.49 +/way Stormheim 51.66 58.85 +/way Stormheim 51.36 59.61 +/way Stormheim 52 60.49 +/way Stormheim 53.76 58.93 +/way Stormheim 53.43 58.03 +/way Stormheim 52.75 56.71 +/way Stormheim 53.34 56.63 +/way Stormheim 53.46 55.97 +/way Stormheim 52.99 55.07 +/way Stormheim 52.69 53.46 +/way Stormheim 51.16 53.73 +/way Stormheim 50.62 53.1 +/way Stormheim 50.2 52.37 +/way Stormheim 50.13 50.4 +/way Stormheim 48.08 50.93 +/way Stormheim 47.68 48.92 +/way Stormheim 44.23 45.97 +/way Stormheim 45.22 43.32 +/way Stormheim 45.69 42.54 +/way Stormheim 46.28 42.7 +/way Stormheim 48.34 39.8 +/way Stormheim 49.36 37.64 +/way Stormheim 47.3 38.94 +/way Stormheim 42.38 41.41 +/way Stormheim 42.36 39.64 +/way Stormheim 42.97 39.05 +/way Stormheim 42.41 38.26 +/way Stormheim 40.83 40.62 +/way Stormheim 41.68 40.19 +/way Stormheim 61.22 64.31 +/way Stormheim 56.67 79.09 +/way Stormheim 73.25 44.25 +/way Stormheim 73.25 44.5 +/way Stormheim 69.24 50.47 +/way Stormheim 64.32 44.07 +/way Stormheim 62.95 46.32 +/way Stormheim 63.56 45.14 +/way Stormheim 68.35 58.98 +/way Stormheim 71.6 52.25 +/way Stormheim 82.09 57.01 +/way Stormheim 80.93 56.31 +/way Stormheim 79.83 64.42 +/way Stormheim 78.73 63.87 +/way Stormheim 80.89 63.18 +/way Stormheim 78.75 58.41 +/way Stormheim 77.87 57.58 +/way Stormheim 73.32 59.52 +/way Stormheim 70.2 58.54 +/way Stormheim 68.78 54.4 +/way Stormheim 67.69 59.37 +/way Stormheim 67.61 54.47 +/way Stormheim 65.94 52.25 +/way Stormheim 63.57 55.84 +/way Stormheim 68.18 50.25 +/way Stormheim 43.9 58.83 +/way Stormheim 43.27 81.62 +/way Stormheim 45.24 75.28 +/way Stormheim 43.53 70.2 +/way Stormheim 43.4 71.29 +/way Stormheim 48 67.59 +/way Stormheim 41.82 65.83 +/way Stormheim 41.11 65.23 +/way Stormheim 37.84 64.52 +/way Stormheim 41.31 58.59 +/way Stormheim 42.35 61.07 +/way Stormheim 38.37 56.57 +/way Stormheim 37.66 55.01 +/way Stormheim 44.11 44.07 +/way Stormheim 46.61 40.23 +/way Stormheim 44.65 38.78 +/way Stormheim 47.94 35.39 +/way Stormheim 43.25 31.36 +/way Stormheim 45.4 30.26 +/way Stormheim 43.1 26.67 +/way Stormheim 45.47 25.53 +/way Stormheim 50.15 21.58 +/way Stormheim 48.03 21.48 +/way Stormheim 62 25.52 +/way Stormheim 60.54 29.82 +/way Stormheim 52 25.83 +/way Stormheim 50.54 35.56 +/way Stormheim 44.97 39.08 +/way Stormheim 42.83 42.04 +/way Stormheim 43.57 45.19 +/way Stormheim 43.59 46.2 +/way Stormheim 49.47 49.89 +/way Stormheim 48.93 49.78 +/way Stormheim 43.63 38.21 +/way Stormheim 45.98 38.79 +/way Stormheim 44.19 40.82 +/way Stormheim 43.7 42.61 +/way Stormheim 44.29 46.69 +/way Stormheim 40.96 37.98 +/way Stormheim 42.18 36.75 +/way Stormheim 28.74 46.9 +/way Stormheim 29.32 47.14 +/way Stormheim 30.43 51.49 +/way Stormheim 34.47 45.62 +/way Stormheim 28.01 41.97 +/way Stormheim 33.22 43.93 +/way Stormheim 34.45 42.11 +/way Stormheim 36.37 40.26 +/way Stormheim 38.14 23.01 +/way Stormheim 43.17 21.07 +/way Stormheim 35.77 27.54 +/way Stormheim 63.95 62.4 +/way Stormheim 65.8 58.06 +/way Stormheim 59.47 56.02 /way Stormheim 60.84 55.71 \ No newline at end of file diff --git a/Random Trash/Herbs/Foxflower.txt b/WeakAuras/Projects/Random Trash/Herbs/Foxflower.txt similarity index 96% rename from Random Trash/Herbs/Foxflower.txt rename to WeakAuras/Projects/Random Trash/Herbs/Foxflower.txt index 3370451..e367160 100644 --- a/Random Trash/Herbs/Foxflower.txt +++ b/WeakAuras/Projects/Random Trash/Herbs/Foxflower.txt @@ -1,199 +1,199 @@ -/way Highmountain 39.04 63.21 -/way Highmountain 42.24 55.42 -/way Highmountain 43.3 58.87 -/way Highmountain 40.39 59.24 -/way Highmountain 42.39 67.1 -/way Highmountain 37.19 66.98 -/way Highmountain 42.21 65.26 -/way Highmountain 42.86 52.36 -/way Highmountain 44.42 49.56 -/way Highmountain 46.31 46.84 -/way Highmountain 44.32 44.33 -/way Highmountain 47.06 48.3 -/way Highmountain 46.96 47.09 -/way Highmountain 57.3 22.65 -/way Highmountain 57.13 20.04 -/way Highmountain 56.54 21.14 -/way Highmountain 55.97 20.78 -/way Highmountain 56 20.19 -/way Highmountain 55.94 19.48 -/way Highmountain 54.72 16.63 -/way Highmountain 55.63 17.81 -/way Highmountain 55.27 18.91 -/way Highmountain 55.32 18.59 -/way Highmountain 41.11 51.73 -/way Highmountain 42.6 48.57 -/way Highmountain 43.68 48.71 -/way Highmountain 39.67 52.78 -/way Highmountain 40.85 53.98 -/way Highmountain 42.82 52.88 -/way Highmountain 41.21 56.52 -/way Highmountain 39.74 67.27 -/way Highmountain 40.77 65.23 -/way Highmountain 37.33 63.76 -/way Highmountain 37.5 62.89 -/way Highmountain 37.72 62.08 -/way Highmountain 40.68 57.62 -/way Highmountain 47.51 9.64 -/way Highmountain 45.07 8.99 -/way Highmountain 42.96 9.11 -/way Highmountain 43.26 8.47 -/way Highmountain 42.69 7.59 -/way Highmountain 45.72 9.49 -/way Highmountain 46.02 8.48 -/way Highmountain 44.75 8.04 -/way Highmountain 44.62 7.22 -/way Highmountain 41.25 13 -/way Highmountain 41.24 11.49 -/way Highmountain 42.07 11.42 -/way Highmountain 44.2 10.31 -/way Highmountain 43.54 11.57 -/way Highmountain 44.12 11.56 -/way Highmountain 45.67 12.81 -/way Highmountain 45.6 11.82 -/way Highmountain 48.04 10.68 -/way Highmountain 48.1 9.57 -/way Highmountain 50.88 11.06 -/way Highmountain 50.51 10.69 -/way Highmountain 50.02 10.43 -/way Highmountain 49.54 10.43 -/way Highmountain 48.84 10.72 -/way Highmountain 48.44 10.66 -/way Highmountain 47.95 11.28 -/way Highmountain 46.49 11.47 -/way Highmountain 47.16 11.19 -/way Highmountain 56.04 63.04 -/way Highmountain 56.46 60.72 -/way Highmountain 57.51 59.57 -/way Highmountain 57.31 58.61 -/way Highmountain 56.29 56.16 -/way Highmountain 56.93 56.51 -/way Highmountain 57.33 56.08 -/way Highmountain 57.78 56.85 -/way Highmountain 57.95 54.56 -/way Highmountain 57.54 53.68 -/way Highmountain 57.15 53.7 -/way Highmountain 55.34 53.18 -/way Highmountain 55.2 53.41 -/way Highmountain 56.17 54.2 -/way Highmountain 55.99 55.43 -/way Highmountain 55.9 56.79 -/way Highmountain 57.56 57.6 -/way Highmountain 55.89 59.48 -/way Highmountain 55.11 61.2 -/way Highmountain 39 40.8 -/way Highmountain 39.15 39.51 -/way Highmountain 40.15 36.93 -/way Highmountain 40.41 37.67 -/way Highmountain 40.55 36.19 -/way Highmountain 41.38 36.45 -/way Highmountain 41.54 35.29 -/way Highmountain 41.97 33.67 -/way Highmountain 41.46 31.24 -/way Highmountain 41.4 28.92 -/way Highmountain 40.79 29.51 -/way Highmountain 42.57 30.29 -/way Highmountain 46.38 32.35 -/way Highmountain 45.3 32.49 -/way Highmountain 44.18 33.11 -/way Highmountain 44.31 32.62 -/way Highmountain 44.76 30.4 -/way Highmountain 37.07 19.85 -/way Highmountain 36.06 20.92 -/way Highmountain 32.68 23.7 -/way Highmountain 33.36 21.36 -/way Highmountain 34.62 22.6 -/way Highmountain 35.26 23.87 -/way Highmountain 36.27 23.14 -/way Highmountain 34.74 23.43 -/way Highmountain 34.05 24.22 -/way Highmountain 34.18 27.2 -/way Highmountain 34.23 25.22 -/way Highmountain 31.78 35.09 -/way Highmountain 32.12 34.17 -/way Highmountain 33.13 33.36 -/way Highmountain 32.78 32.58 -/way Highmountain 31.77 31.79 -/way Highmountain 30.37 28.05 -/way Highmountain 30.53 29.81 -/way Highmountain 30.8 30.32 -/way Highmountain 28.47 40.12 -/way Highmountain 27.69 41.13 -/way Highmountain 28.37 41.03 -/way Highmountain 28.86 42.47 -/way Highmountain 29.95 41.71 -/way Highmountain 31.73 38.3 -/way Highmountain 30.38 39.04 -/way Highmountain 31.37 36.91 -/way Highmountain 31.64 35.8 -/way Highmountain 30.36 34.88 -/way Highmountain 31.05 33.51 -/way Highmountain 30.53 33.11 -/way Highmountain 31.38 30.83 -/way Highmountain 44.68 54.55 -/way Highmountain 44.08 54.55 -/way Highmountain 43.58 54.82 -/way Highmountain 45.12 50.11 -/way Highmountain 43.58 45.93 -/way Highmountain 42.63 45.65 -/way Highmountain 42.96 46.27 -/way Highmountain 42.09 46.82 -/way Highmountain 39.3 46.88 -/way Highmountain 40.18 47.01 -/way Highmountain 40.81 46.97 -/way Highmountain 41.37 48.56 -/way Highmountain 40.45 48.42 -/way Highmountain 38.56 50.23 -/way Highmountain 38.26 49.28 -/way Highmountain 39.77 49.03 -/way Highmountain 39.89 49.73 -/way Highmountain 39.97 50.65 -/way Highmountain 40.15 51.03 -/way Highmountain 58.81 62.31 -/way Highmountain 55.76 65.74 -/way Highmountain 52.04 58.38 -/way Highmountain 50.81 67.32 -/way Highmountain 43.38 66.19 -/way Highmountain 24.98 59.43 -/way Highmountain 26.05 63.62 -/way Highmountain 28.67 55.49 -/way Highmountain 26.86 41.18 -/way Highmountain 25.89 44.55 -/way Highmountain 24.23 43.43 -/way Highmountain 26.35 39.24 -/way Highmountain 28.83 35.34 -/way Highmountain 27.93 30.52 -/way Highmountain 28.73 28.61 -/way Highmountain 31.88 26.11 -/way Highmountain 37.52 15.31 -/way Highmountain 44.79 12.36 -/way Highmountain 58.06 22.18 -/way Highmountain 57.64 19.03 -/way Highmountain 54.81 16.28 -/way Highmountain 53.1 13.37 -/way Highmountain 49.63 13.87 -/way Highmountain 49.23 8.72 -/way Highmountain 47.72 6.15 -/way Highmountain 44.93 7.4 -/way Highmountain 42.09 27.58 -/way Highmountain 46.45 26.28 -/way Highmountain 47.57 24.96 -/way Highmountain 48.31 29.71 -/way Highmountain 35.86 38.62 -/way Highmountain 40.33 33.71 -/way Highmountain 36.87 35.15 -/way Highmountain 37.26 33.85 -/way Highmountain 42.47 51.44 -/way Highmountain 42.21 54.16 -/way Highmountain 44.95 55.74 -/way Highmountain 52 32.57 -/way Highmountain 52.49 34.19 -/way Highmountain 52.71 39.16 -/way Highmountain 54.4 50.27 -/way Highmountain 49.74 42.1 -/way Highmountain 47.22 51.9 -/way Highmountain 47.87 54.97 -/way Highmountain 43.42 72.85 -/way Highmountain 48.48 54.81 -/way Highmountain 38.62 61.09 +/way Highmountain 39.04 63.21 +/way Highmountain 42.24 55.42 +/way Highmountain 43.3 58.87 +/way Highmountain 40.39 59.24 +/way Highmountain 42.39 67.1 +/way Highmountain 37.19 66.98 +/way Highmountain 42.21 65.26 +/way Highmountain 42.86 52.36 +/way Highmountain 44.42 49.56 +/way Highmountain 46.31 46.84 +/way Highmountain 44.32 44.33 +/way Highmountain 47.06 48.3 +/way Highmountain 46.96 47.09 +/way Highmountain 57.3 22.65 +/way Highmountain 57.13 20.04 +/way Highmountain 56.54 21.14 +/way Highmountain 55.97 20.78 +/way Highmountain 56 20.19 +/way Highmountain 55.94 19.48 +/way Highmountain 54.72 16.63 +/way Highmountain 55.63 17.81 +/way Highmountain 55.27 18.91 +/way Highmountain 55.32 18.59 +/way Highmountain 41.11 51.73 +/way Highmountain 42.6 48.57 +/way Highmountain 43.68 48.71 +/way Highmountain 39.67 52.78 +/way Highmountain 40.85 53.98 +/way Highmountain 42.82 52.88 +/way Highmountain 41.21 56.52 +/way Highmountain 39.74 67.27 +/way Highmountain 40.77 65.23 +/way Highmountain 37.33 63.76 +/way Highmountain 37.5 62.89 +/way Highmountain 37.72 62.08 +/way Highmountain 40.68 57.62 +/way Highmountain 47.51 9.64 +/way Highmountain 45.07 8.99 +/way Highmountain 42.96 9.11 +/way Highmountain 43.26 8.47 +/way Highmountain 42.69 7.59 +/way Highmountain 45.72 9.49 +/way Highmountain 46.02 8.48 +/way Highmountain 44.75 8.04 +/way Highmountain 44.62 7.22 +/way Highmountain 41.25 13 +/way Highmountain 41.24 11.49 +/way Highmountain 42.07 11.42 +/way Highmountain 44.2 10.31 +/way Highmountain 43.54 11.57 +/way Highmountain 44.12 11.56 +/way Highmountain 45.67 12.81 +/way Highmountain 45.6 11.82 +/way Highmountain 48.04 10.68 +/way Highmountain 48.1 9.57 +/way Highmountain 50.88 11.06 +/way Highmountain 50.51 10.69 +/way Highmountain 50.02 10.43 +/way Highmountain 49.54 10.43 +/way Highmountain 48.84 10.72 +/way Highmountain 48.44 10.66 +/way Highmountain 47.95 11.28 +/way Highmountain 46.49 11.47 +/way Highmountain 47.16 11.19 +/way Highmountain 56.04 63.04 +/way Highmountain 56.46 60.72 +/way Highmountain 57.51 59.57 +/way Highmountain 57.31 58.61 +/way Highmountain 56.29 56.16 +/way Highmountain 56.93 56.51 +/way Highmountain 57.33 56.08 +/way Highmountain 57.78 56.85 +/way Highmountain 57.95 54.56 +/way Highmountain 57.54 53.68 +/way Highmountain 57.15 53.7 +/way Highmountain 55.34 53.18 +/way Highmountain 55.2 53.41 +/way Highmountain 56.17 54.2 +/way Highmountain 55.99 55.43 +/way Highmountain 55.9 56.79 +/way Highmountain 57.56 57.6 +/way Highmountain 55.89 59.48 +/way Highmountain 55.11 61.2 +/way Highmountain 39 40.8 +/way Highmountain 39.15 39.51 +/way Highmountain 40.15 36.93 +/way Highmountain 40.41 37.67 +/way Highmountain 40.55 36.19 +/way Highmountain 41.38 36.45 +/way Highmountain 41.54 35.29 +/way Highmountain 41.97 33.67 +/way Highmountain 41.46 31.24 +/way Highmountain 41.4 28.92 +/way Highmountain 40.79 29.51 +/way Highmountain 42.57 30.29 +/way Highmountain 46.38 32.35 +/way Highmountain 45.3 32.49 +/way Highmountain 44.18 33.11 +/way Highmountain 44.31 32.62 +/way Highmountain 44.76 30.4 +/way Highmountain 37.07 19.85 +/way Highmountain 36.06 20.92 +/way Highmountain 32.68 23.7 +/way Highmountain 33.36 21.36 +/way Highmountain 34.62 22.6 +/way Highmountain 35.26 23.87 +/way Highmountain 36.27 23.14 +/way Highmountain 34.74 23.43 +/way Highmountain 34.05 24.22 +/way Highmountain 34.18 27.2 +/way Highmountain 34.23 25.22 +/way Highmountain 31.78 35.09 +/way Highmountain 32.12 34.17 +/way Highmountain 33.13 33.36 +/way Highmountain 32.78 32.58 +/way Highmountain 31.77 31.79 +/way Highmountain 30.37 28.05 +/way Highmountain 30.53 29.81 +/way Highmountain 30.8 30.32 +/way Highmountain 28.47 40.12 +/way Highmountain 27.69 41.13 +/way Highmountain 28.37 41.03 +/way Highmountain 28.86 42.47 +/way Highmountain 29.95 41.71 +/way Highmountain 31.73 38.3 +/way Highmountain 30.38 39.04 +/way Highmountain 31.37 36.91 +/way Highmountain 31.64 35.8 +/way Highmountain 30.36 34.88 +/way Highmountain 31.05 33.51 +/way Highmountain 30.53 33.11 +/way Highmountain 31.38 30.83 +/way Highmountain 44.68 54.55 +/way Highmountain 44.08 54.55 +/way Highmountain 43.58 54.82 +/way Highmountain 45.12 50.11 +/way Highmountain 43.58 45.93 +/way Highmountain 42.63 45.65 +/way Highmountain 42.96 46.27 +/way Highmountain 42.09 46.82 +/way Highmountain 39.3 46.88 +/way Highmountain 40.18 47.01 +/way Highmountain 40.81 46.97 +/way Highmountain 41.37 48.56 +/way Highmountain 40.45 48.42 +/way Highmountain 38.56 50.23 +/way Highmountain 38.26 49.28 +/way Highmountain 39.77 49.03 +/way Highmountain 39.89 49.73 +/way Highmountain 39.97 50.65 +/way Highmountain 40.15 51.03 +/way Highmountain 58.81 62.31 +/way Highmountain 55.76 65.74 +/way Highmountain 52.04 58.38 +/way Highmountain 50.81 67.32 +/way Highmountain 43.38 66.19 +/way Highmountain 24.98 59.43 +/way Highmountain 26.05 63.62 +/way Highmountain 28.67 55.49 +/way Highmountain 26.86 41.18 +/way Highmountain 25.89 44.55 +/way Highmountain 24.23 43.43 +/way Highmountain 26.35 39.24 +/way Highmountain 28.83 35.34 +/way Highmountain 27.93 30.52 +/way Highmountain 28.73 28.61 +/way Highmountain 31.88 26.11 +/way Highmountain 37.52 15.31 +/way Highmountain 44.79 12.36 +/way Highmountain 58.06 22.18 +/way Highmountain 57.64 19.03 +/way Highmountain 54.81 16.28 +/way Highmountain 53.1 13.37 +/way Highmountain 49.63 13.87 +/way Highmountain 49.23 8.72 +/way Highmountain 47.72 6.15 +/way Highmountain 44.93 7.4 +/way Highmountain 42.09 27.58 +/way Highmountain 46.45 26.28 +/way Highmountain 47.57 24.96 +/way Highmountain 48.31 29.71 +/way Highmountain 35.86 38.62 +/way Highmountain 40.33 33.71 +/way Highmountain 36.87 35.15 +/way Highmountain 37.26 33.85 +/way Highmountain 42.47 51.44 +/way Highmountain 42.21 54.16 +/way Highmountain 44.95 55.74 +/way Highmountain 52 32.57 +/way Highmountain 52.49 34.19 +/way Highmountain 52.71 39.16 +/way Highmountain 54.4 50.27 +/way Highmountain 49.74 42.1 +/way Highmountain 47.22 51.9 +/way Highmountain 47.87 54.97 +/way Highmountain 43.42 72.85 +/way Highmountain 48.48 54.81 +/way Highmountain 38.62 61.09 /way Highmountain 42.5 61.79 \ No newline at end of file diff --git a/Random Trash/Herbs/Icecap.txt b/WeakAuras/Projects/Random Trash/Herbs/Icecap.txt similarity index 96% rename from Random Trash/Herbs/Icecap.txt rename to WeakAuras/Projects/Random Trash/Herbs/Icecap.txt index 53eb99e..caafd1f 100644 --- a/Random Trash/Herbs/Icecap.txt +++ b/WeakAuras/Projects/Random Trash/Herbs/Icecap.txt @@ -1,84 +1,84 @@ -/way Winterspring 59.16 84.77 -/way Winterspring 62.31 83 -/way Winterspring 57.11 82.01 -/way Winterspring 64.06 78.62 -/way Winterspring 61.3 77.48 -/way Winterspring 62.98 75.01 -/way Winterspring 60.57 72.97 -/way Winterspring 57.89 76.61 -/way Winterspring 58.81 71.72 -/way Winterspring 61.9 70.8 -/way Winterspring 55.55 66.93 -/way Winterspring 57.47 67.97 -/way Winterspring 64.62 67.64 -/way Winterspring 58.61 64.35 -/way Winterspring 60.58 63.25 -/way Winterspring 66.46 63.37 -/way Winterspring 54.22 59.72 -/way Winterspring 50.02 59.7 -/way Winterspring 55.15 58.99 -/way Winterspring 58.3 57.27 -/way Winterspring 66.48 58.7 -/way Winterspring 65.73 55.86 -/way Winterspring 67.08 55.5 -/way Winterspring 56.21 54.41 -/way Winterspring 63.85 54.34 -/way Winterspring 57.63 53.91 -/way Winterspring 62.95 52.24 -/way Winterspring 54.26 51.46 -/way Winterspring 53.42 52.49 -/way Winterspring 51.05 47.74 -/way Winterspring 62.14 46 -/way Winterspring 57.41 44.12 -/way Winterspring 67.38 43.91 -/way Winterspring 64.77 44.54 -/way Winterspring 63.95 38.93 -/way Winterspring 56.38 40.05 -/way Winterspring 53.33 40.12 -/way Winterspring 54.33 39.28 -/way Winterspring 58.25 36.59 -/way Winterspring 66.39 31.62 -/way Winterspring 65.34 33.85 -/way Winterspring 56.84 35.19 -/way Winterspring 53.46 28.57 -/way Winterspring 61.98 31.58 -/way Winterspring 61.24 31.93 -/way Winterspring 57.11 33.25 -/way Winterspring 47.75 31.28 -/way Winterspring 53.36 33.23 -/way Winterspring 58 25.44 -/way Winterspring 56.97 26.83 -/way Winterspring 49.79 25.15 -/way Winterspring 56.02 22.75 -/way Winterspring 46.42 24.46 -/way Winterspring 50.08 22.67 -/way Winterspring 46.7 18.24 -/way Winterspring 48.65 17.22 -/way Winterspring 49.35 18.76 -/way Winterspring 52.3 20.68 -/way Winterspring 45.21 14.81 -/way Winterspring 45.87 20.86 -/way Winterspring 47.49 50.39 -/way Winterspring 48.23 53.43 -/way Winterspring 47.36 58.17 -/way Winterspring 48.56 57.74 -/way Winterspring 45.22 57.7 -/way Winterspring 45.19 59.5 -/way Winterspring 42.43 49.82 -/way Winterspring 40.35 49.45 -/way Winterspring 40.46 54.28 -/way Winterspring 39.05 55.74 -/way Winterspring 37.6 55.77 -/way Winterspring 34.89 57.33 -/way Winterspring 34.59 50.15 -/way Winterspring 33.26 48.43 -/way Winterspring 32.77 51.29 -/way Winterspring 31.15 57.24 -/way Winterspring 30.3 54.04 -/way Winterspring 28.92 52.76 -/way Winterspring 28.32 55.97 -/way Winterspring 26.04 49.17 -/way Winterspring 24.02 49.75 -/way Winterspring 25.24 51.71 -/way Winterspring 24.44 50.98 -/way Winterspring 24.27 56.95 +/way Winterspring 59.16 84.77 +/way Winterspring 62.31 83 +/way Winterspring 57.11 82.01 +/way Winterspring 64.06 78.62 +/way Winterspring 61.3 77.48 +/way Winterspring 62.98 75.01 +/way Winterspring 60.57 72.97 +/way Winterspring 57.89 76.61 +/way Winterspring 58.81 71.72 +/way Winterspring 61.9 70.8 +/way Winterspring 55.55 66.93 +/way Winterspring 57.47 67.97 +/way Winterspring 64.62 67.64 +/way Winterspring 58.61 64.35 +/way Winterspring 60.58 63.25 +/way Winterspring 66.46 63.37 +/way Winterspring 54.22 59.72 +/way Winterspring 50.02 59.7 +/way Winterspring 55.15 58.99 +/way Winterspring 58.3 57.27 +/way Winterspring 66.48 58.7 +/way Winterspring 65.73 55.86 +/way Winterspring 67.08 55.5 +/way Winterspring 56.21 54.41 +/way Winterspring 63.85 54.34 +/way Winterspring 57.63 53.91 +/way Winterspring 62.95 52.24 +/way Winterspring 54.26 51.46 +/way Winterspring 53.42 52.49 +/way Winterspring 51.05 47.74 +/way Winterspring 62.14 46 +/way Winterspring 57.41 44.12 +/way Winterspring 67.38 43.91 +/way Winterspring 64.77 44.54 +/way Winterspring 63.95 38.93 +/way Winterspring 56.38 40.05 +/way Winterspring 53.33 40.12 +/way Winterspring 54.33 39.28 +/way Winterspring 58.25 36.59 +/way Winterspring 66.39 31.62 +/way Winterspring 65.34 33.85 +/way Winterspring 56.84 35.19 +/way Winterspring 53.46 28.57 +/way Winterspring 61.98 31.58 +/way Winterspring 61.24 31.93 +/way Winterspring 57.11 33.25 +/way Winterspring 47.75 31.28 +/way Winterspring 53.36 33.23 +/way Winterspring 58 25.44 +/way Winterspring 56.97 26.83 +/way Winterspring 49.79 25.15 +/way Winterspring 56.02 22.75 +/way Winterspring 46.42 24.46 +/way Winterspring 50.08 22.67 +/way Winterspring 46.7 18.24 +/way Winterspring 48.65 17.22 +/way Winterspring 49.35 18.76 +/way Winterspring 52.3 20.68 +/way Winterspring 45.21 14.81 +/way Winterspring 45.87 20.86 +/way Winterspring 47.49 50.39 +/way Winterspring 48.23 53.43 +/way Winterspring 47.36 58.17 +/way Winterspring 48.56 57.74 +/way Winterspring 45.22 57.7 +/way Winterspring 45.19 59.5 +/way Winterspring 42.43 49.82 +/way Winterspring 40.35 49.45 +/way Winterspring 40.46 54.28 +/way Winterspring 39.05 55.74 +/way Winterspring 37.6 55.77 +/way Winterspring 34.89 57.33 +/way Winterspring 34.59 50.15 +/way Winterspring 33.26 48.43 +/way Winterspring 32.77 51.29 +/way Winterspring 31.15 57.24 +/way Winterspring 30.3 54.04 +/way Winterspring 28.92 52.76 +/way Winterspring 28.32 55.97 +/way Winterspring 26.04 49.17 +/way Winterspring 24.02 49.75 +/way Winterspring 25.24 51.71 +/way Winterspring 24.44 50.98 +/way Winterspring 24.27 56.95 diff --git a/Random Trash/Herbs/Mountain Silversage.txt b/WeakAuras/Projects/Random Trash/Herbs/Mountain Silversage.txt similarity index 96% rename from Random Trash/Herbs/Mountain Silversage.txt rename to WeakAuras/Projects/Random Trash/Herbs/Mountain Silversage.txt index b1ea89f..d37e98e 100644 --- a/Random Trash/Herbs/Mountain Silversage.txt +++ b/WeakAuras/Projects/Random Trash/Herbs/Mountain Silversage.txt @@ -1,53 +1,53 @@ -/way Winterspring 66.76 84.03 -/way Winterspring 66.36 80.75 -/way Winterspring 62.24 80.15 -/way Winterspring 55.96 78.8 -/way Winterspring 56.02 76.95 -/way Winterspring 64.96 72.59 -/way Winterspring 65.44 70.65 -/way Winterspring 68.36 69 -/way Winterspring 52.57 67.93 -/way Winterspring 53.37 66.5 -/way Winterspring 61.09 66.97 -/way Winterspring 67.45 66.84 -/way Winterspring 68.19 64.02 -/way Winterspring 47.6 63.37 -/way Winterspring 67.42 57.23 -/way Winterspring 67.19 51.85 -/way Winterspring 63.49 50.05 -/way Winterspring 58.87 45.42 -/way Winterspring 53.68 45.06 -/way Winterspring 69.19 44.89 -/way Winterspring 59.6 42 -/way Winterspring 67.82 39.48 -/way Winterspring 59.84 37.64 -/way Winterspring 67.43 35.4 -/way Winterspring 66.7 29.13 -/way Winterspring 60.88 28.01 -/way Winterspring 60.16 21.19 -/way Winterspring 53.95 19.05 -/way Winterspring 52.44 18.27 -/way Winterspring 48.51 14.34 -/way Winterspring 44.13 14.69 -/way Winterspring 44.53 21.08 -/way Winterspring 45.31 26.71 -/way Winterspring 46.16 33.23 -/way Winterspring 48.2 45.28 -/way Winterspring 42.52 56.26 -/way Winterspring 42.18 53.86 -/way Winterspring 42.49 45.67 -/way Winterspring 40.75 46.4 -/way Winterspring 40.5 58 -/way Winterspring 39.56 44.86 -/way Winterspring 37.41 47.1 -/way Winterspring 37.05 58.92 -/way Winterspring 35.56 47.08 -/way Winterspring 34.11 59.82 -/way Winterspring 31.96 59.46 -/way Winterspring 31.19 47.17 -/way Winterspring 27.81 58.83 -/way Winterspring 27.7 47.35 -/way Winterspring 26.52 47.47 -/way Winterspring 24.62 62.82 -/way Winterspring 21.76 62.47 +/way Winterspring 66.76 84.03 +/way Winterspring 66.36 80.75 +/way Winterspring 62.24 80.15 +/way Winterspring 55.96 78.8 +/way Winterspring 56.02 76.95 +/way Winterspring 64.96 72.59 +/way Winterspring 65.44 70.65 +/way Winterspring 68.36 69 +/way Winterspring 52.57 67.93 +/way Winterspring 53.37 66.5 +/way Winterspring 61.09 66.97 +/way Winterspring 67.45 66.84 +/way Winterspring 68.19 64.02 +/way Winterspring 47.6 63.37 +/way Winterspring 67.42 57.23 +/way Winterspring 67.19 51.85 +/way Winterspring 63.49 50.05 +/way Winterspring 58.87 45.42 +/way Winterspring 53.68 45.06 +/way Winterspring 69.19 44.89 +/way Winterspring 59.6 42 +/way Winterspring 67.82 39.48 +/way Winterspring 59.84 37.64 +/way Winterspring 67.43 35.4 +/way Winterspring 66.7 29.13 +/way Winterspring 60.88 28.01 +/way Winterspring 60.16 21.19 +/way Winterspring 53.95 19.05 +/way Winterspring 52.44 18.27 +/way Winterspring 48.51 14.34 +/way Winterspring 44.13 14.69 +/way Winterspring 44.53 21.08 +/way Winterspring 45.31 26.71 +/way Winterspring 46.16 33.23 +/way Winterspring 48.2 45.28 +/way Winterspring 42.52 56.26 +/way Winterspring 42.18 53.86 +/way Winterspring 42.49 45.67 +/way Winterspring 40.75 46.4 +/way Winterspring 40.5 58 +/way Winterspring 39.56 44.86 +/way Winterspring 37.41 47.1 +/way Winterspring 37.05 58.92 +/way Winterspring 35.56 47.08 +/way Winterspring 34.11 59.82 +/way Winterspring 31.96 59.46 +/way Winterspring 31.19 47.17 +/way Winterspring 27.81 58.83 +/way Winterspring 27.7 47.35 +/way Winterspring 26.52 47.47 +/way Winterspring 24.62 62.82 +/way Winterspring 21.76 62.47 /way Winterspring 22.41 58.99 \ No newline at end of file diff --git a/Random Trash/Herbs/Starlight Rose.txt b/WeakAuras/Projects/Random Trash/Herbs/Starlight Rose.txt similarity index 96% rename from Random Trash/Herbs/Starlight Rose.txt rename to WeakAuras/Projects/Random Trash/Herbs/Starlight Rose.txt index e4d8aa5..97feabf 100644 --- a/Random Trash/Herbs/Starlight Rose.txt +++ b/WeakAuras/Projects/Random Trash/Herbs/Starlight Rose.txt @@ -1,200 +1,200 @@ -/way Suramar 52.4 48.2 -/way Suramar 54.4 48.23 -/way Suramar 59.18 50.54 -/way Suramar 58.96 46.15 -/way Suramar 54.91 46.5 -/way Suramar 54.55 47.26 -/way Suramar 61.05 50.74 -/way Suramar 62.89 52.74 -/way Suramar 63.77 54.93 -/way Suramar 70.23 63.85 -/way Suramar 67.49 59.77 -/way Suramar 66.18 57.51 -/way Suramar 64.22 52.52 -/way Suramar 60.07 49.38 -/way Suramar 55.96 45.39 -/way Suramar 22.27 58.65 -/way Suramar 22.86 54.7 -/way Suramar 23.04 53.17 -/way Suramar 23.12 53.84 -/way Suramar 24.63 51.23 -/way Suramar 27.43 41.62 -/way Suramar 24.7 39.47 -/way Suramar 23.73 39.94 -/way Suramar 18.41 47.7 -/way Suramar 19.13 45.07 -/way Suramar 18.87 43.64 -/way Suramar 17.04 43.5 -/way Suramar 15.28 42.46 -/way Suramar 15.58 39.75 -/way Suramar 16.94 39.28 -/way Suramar 17.3 39.97 -/way Suramar 18.19 40.52 -/way Suramar 19.77 43.53 -/way Suramar 19.81 42.84 -/way Suramar 23.16 43.34 -/way Suramar 26.86 40.75 -/way Suramar 27.44 41.95 -/way Suramar 27.32 45.11 -/way Suramar 28.79 47.29 -/way Suramar 31.11 47.49 -/way Suramar 31.52 49.9 -/way Suramar 31.61 54.38 -/way Suramar 33.61 54.24 -/way Suramar 34.03 53.09 -/way Suramar 37.9 48.99 -/way Suramar 39.05 51.47 -/way Suramar 40.39 48.64 -/way Suramar 40.77 48.19 -/way Suramar 44.14 50.24 -/way Suramar 56.5 45.1 -/way Suramar 59.76 42.14 -/way Suramar 58.33 41.44 -/way Suramar 58.51 43.04 -/way Suramar 59.12 47.83 -/way Suramar 35.44 37.57 -/way Suramar 34.72 37.99 -/way Suramar 33.97 37.32 -/way Suramar 20.39 51.41 -/way Suramar 19.48 49.62 -/way Suramar 20.86 49.17 -/way Suramar 21.24 48.51 -/way Suramar 21.67 46.84 -/way Suramar 20.77 46.4 -/way Suramar 20.68 45.54 -/way Suramar 23.78 46.23 -/way Suramar 23.67 45.78 -/way Suramar 24.7 44.5 -/way Suramar 24.36 42.97 -/way Suramar 25.12 42.57 -/way Suramar 25.27 41.14 -/way Suramar 25.49 38.68 -/way Suramar 26.48 37.83 -/way Suramar 28.26 37.27 -/way Suramar 31.6 36.18 -/way Suramar 32.77 37.25 -/way Suramar 33.51 35.46 -/way Suramar 32.97 39.24 -/way Suramar 32.76 40.68 -/way Suramar 30.18 46.7 -/way Suramar 29.81 47.95 -/way Suramar 27.61 50.45 -/way Suramar 27.86 53.57 -/way Suramar 27.06 53.26 -/way Suramar 26.08 53.85 -/way Suramar 25.37 54.48 -/way Suramar 25.15 56.59 -/way Suramar 24.5 55.55 -/way Suramar 22.73 55.49 -/way Suramar 21.64 56.04 -/way Suramar 20.89 52.45 -/way Suramar 21.6 48.93 -/way Suramar 22.78 47 -/way Suramar 23.67 47.17 -/way Suramar 28.81 49.54 -/way Suramar 27.63 49.1 -/way Suramar 28.12 47.43 -/way Suramar 29.6 45.44 -/way Suramar 31.08 44.93 -/way Suramar 32.12 45.11 -/way Suramar 32.86 44.32 -/way Suramar 35.29 50.54 -/way Suramar 31.72 11.15 -/way Suramar 35.36 11.62 -/way Suramar 38.72 14.9 -/way Suramar 39.7 14.87 -/way Suramar 28.23 19.56 -/way Suramar 24.39 25.74 -/way Suramar 26.2 27.16 -/way Suramar 28.07 29.18 -/way Suramar 28.8 38.56 -/way Suramar 30.55 37.63 -/way Suramar 34.55 42.86 -/way Suramar 33.84 50.23 -/way Suramar 35.52 51.77 -/way Suramar 35.33 58.01 -/way Suramar 38.64 62.53 -/way Suramar 40.41 73 -/way Suramar 41.04 81.46 -/way Suramar 41.17 83.21 -/way Suramar 70.07 61.17 -/way Suramar 69.26 62.64 -/way Suramar 68.31 58.27 -/way Suramar 66.58 55.69 -/way Suramar 66.13 53.94 -/way Suramar 65.37 48.57 -/way Suramar 65.11 50.4 -/way Suramar 62.57 50.61 -/way Suramar 65.12 38.6 -/way Suramar 62.25 45.8 -/way Suramar 60.11 46.19 -/way Suramar 58.62 49.54 -/way Suramar 56.22 48.62 -/way Suramar 47.37 55.17 -/way Suramar 41.33 72.02 -/way Suramar 38.71 60.97 -/way Suramar 36.71 59.7 -/way Suramar 39.76 57.54 -/way Suramar 42.32 49.6 -/way Suramar 49.52 47.44 -/way Suramar 49.79 40.3 -/way Suramar 48.78 42.77 -/way Suramar 46.87 39.44 -/way Suramar 36.65 42.98 -/way Suramar 29.53 46.51 -/way Suramar 28.25 46.15 -/way Suramar 25.63 52.48 -/way Suramar 27.12 69.02 -/way Suramar 23.49 61.88 -/way Suramar 26.37 46.84 -/way Suramar 28.77 41.26 -/way Suramar 28.94 43.58 -/way Suramar 30.97 39.66 -/way Suramar 34.05 38.76 -/way Suramar 34.52 44.14 -/way Suramar 36.22 41.74 -/way Suramar 39.85 39.65 -/way Suramar 47.15 41.25 -/way Suramar 40.72 40.06 -/way Suramar 44.52 39.66 -/way Suramar 41.5 38.6 -/way Suramar 44.86 35.75 -/way Suramar 44.63 33.2 -/way Suramar 47.33 28.88 -/way Suramar 32.03 34.06 -/way Suramar 27.66 36 -/way Suramar 27.58 44.62 -/way Suramar 25.91 44.49 -/way Suramar 26.84 48.81 -/way Suramar 22.94 55.55 -/way Suramar 19.91 54.45 -/way Suramar 21.16 53.32 -/way Suramar 22.64 50.19 -/way Suramar 24.23 33.84 -/way Suramar 30.34 33.68 -/way Suramar 30.66 33.03 -/way Suramar 39.58 16.08 -/way Suramar 39.3 14.48 -/way Suramar 34.8 10.58 -/way Suramar 30.29 8.71 -/way Suramar 30.67 12.65 -/way Suramar 31.53 14.5 -/way Suramar 31.63 16.56 -/way Suramar 33.53 20.08 -/way Suramar 34.88 19.76 -/way Suramar 35.59 18.08 -/way Suramar 43.46 27.48 -/way Suramar 42.73 27.39 -/way Suramar 41.23 25.46 -/way Suramar 39.47 24.45 -/way Suramar 38.39 26.94 -/way Suramar 37.32 26.91 -/way Suramar 36.21 30.36 -/way Suramar 27.01 29.36 -/way Suramar 27.04 31.9 -/way Suramar 17.98 42.91 -/way Suramar 15.82 43.16 -/way Suramar 15.74 38.61 -/way Suramar 16.66 36.19 -/way Suramar 21.23 20.19 +/way Suramar 52.4 48.2 +/way Suramar 54.4 48.23 +/way Suramar 59.18 50.54 +/way Suramar 58.96 46.15 +/way Suramar 54.91 46.5 +/way Suramar 54.55 47.26 +/way Suramar 61.05 50.74 +/way Suramar 62.89 52.74 +/way Suramar 63.77 54.93 +/way Suramar 70.23 63.85 +/way Suramar 67.49 59.77 +/way Suramar 66.18 57.51 +/way Suramar 64.22 52.52 +/way Suramar 60.07 49.38 +/way Suramar 55.96 45.39 +/way Suramar 22.27 58.65 +/way Suramar 22.86 54.7 +/way Suramar 23.04 53.17 +/way Suramar 23.12 53.84 +/way Suramar 24.63 51.23 +/way Suramar 27.43 41.62 +/way Suramar 24.7 39.47 +/way Suramar 23.73 39.94 +/way Suramar 18.41 47.7 +/way Suramar 19.13 45.07 +/way Suramar 18.87 43.64 +/way Suramar 17.04 43.5 +/way Suramar 15.28 42.46 +/way Suramar 15.58 39.75 +/way Suramar 16.94 39.28 +/way Suramar 17.3 39.97 +/way Suramar 18.19 40.52 +/way Suramar 19.77 43.53 +/way Suramar 19.81 42.84 +/way Suramar 23.16 43.34 +/way Suramar 26.86 40.75 +/way Suramar 27.44 41.95 +/way Suramar 27.32 45.11 +/way Suramar 28.79 47.29 +/way Suramar 31.11 47.49 +/way Suramar 31.52 49.9 +/way Suramar 31.61 54.38 +/way Suramar 33.61 54.24 +/way Suramar 34.03 53.09 +/way Suramar 37.9 48.99 +/way Suramar 39.05 51.47 +/way Suramar 40.39 48.64 +/way Suramar 40.77 48.19 +/way Suramar 44.14 50.24 +/way Suramar 56.5 45.1 +/way Suramar 59.76 42.14 +/way Suramar 58.33 41.44 +/way Suramar 58.51 43.04 +/way Suramar 59.12 47.83 +/way Suramar 35.44 37.57 +/way Suramar 34.72 37.99 +/way Suramar 33.97 37.32 +/way Suramar 20.39 51.41 +/way Suramar 19.48 49.62 +/way Suramar 20.86 49.17 +/way Suramar 21.24 48.51 +/way Suramar 21.67 46.84 +/way Suramar 20.77 46.4 +/way Suramar 20.68 45.54 +/way Suramar 23.78 46.23 +/way Suramar 23.67 45.78 +/way Suramar 24.7 44.5 +/way Suramar 24.36 42.97 +/way Suramar 25.12 42.57 +/way Suramar 25.27 41.14 +/way Suramar 25.49 38.68 +/way Suramar 26.48 37.83 +/way Suramar 28.26 37.27 +/way Suramar 31.6 36.18 +/way Suramar 32.77 37.25 +/way Suramar 33.51 35.46 +/way Suramar 32.97 39.24 +/way Suramar 32.76 40.68 +/way Suramar 30.18 46.7 +/way Suramar 29.81 47.95 +/way Suramar 27.61 50.45 +/way Suramar 27.86 53.57 +/way Suramar 27.06 53.26 +/way Suramar 26.08 53.85 +/way Suramar 25.37 54.48 +/way Suramar 25.15 56.59 +/way Suramar 24.5 55.55 +/way Suramar 22.73 55.49 +/way Suramar 21.64 56.04 +/way Suramar 20.89 52.45 +/way Suramar 21.6 48.93 +/way Suramar 22.78 47 +/way Suramar 23.67 47.17 +/way Suramar 28.81 49.54 +/way Suramar 27.63 49.1 +/way Suramar 28.12 47.43 +/way Suramar 29.6 45.44 +/way Suramar 31.08 44.93 +/way Suramar 32.12 45.11 +/way Suramar 32.86 44.32 +/way Suramar 35.29 50.54 +/way Suramar 31.72 11.15 +/way Suramar 35.36 11.62 +/way Suramar 38.72 14.9 +/way Suramar 39.7 14.87 +/way Suramar 28.23 19.56 +/way Suramar 24.39 25.74 +/way Suramar 26.2 27.16 +/way Suramar 28.07 29.18 +/way Suramar 28.8 38.56 +/way Suramar 30.55 37.63 +/way Suramar 34.55 42.86 +/way Suramar 33.84 50.23 +/way Suramar 35.52 51.77 +/way Suramar 35.33 58.01 +/way Suramar 38.64 62.53 +/way Suramar 40.41 73 +/way Suramar 41.04 81.46 +/way Suramar 41.17 83.21 +/way Suramar 70.07 61.17 +/way Suramar 69.26 62.64 +/way Suramar 68.31 58.27 +/way Suramar 66.58 55.69 +/way Suramar 66.13 53.94 +/way Suramar 65.37 48.57 +/way Suramar 65.11 50.4 +/way Suramar 62.57 50.61 +/way Suramar 65.12 38.6 +/way Suramar 62.25 45.8 +/way Suramar 60.11 46.19 +/way Suramar 58.62 49.54 +/way Suramar 56.22 48.62 +/way Suramar 47.37 55.17 +/way Suramar 41.33 72.02 +/way Suramar 38.71 60.97 +/way Suramar 36.71 59.7 +/way Suramar 39.76 57.54 +/way Suramar 42.32 49.6 +/way Suramar 49.52 47.44 +/way Suramar 49.79 40.3 +/way Suramar 48.78 42.77 +/way Suramar 46.87 39.44 +/way Suramar 36.65 42.98 +/way Suramar 29.53 46.51 +/way Suramar 28.25 46.15 +/way Suramar 25.63 52.48 +/way Suramar 27.12 69.02 +/way Suramar 23.49 61.88 +/way Suramar 26.37 46.84 +/way Suramar 28.77 41.26 +/way Suramar 28.94 43.58 +/way Suramar 30.97 39.66 +/way Suramar 34.05 38.76 +/way Suramar 34.52 44.14 +/way Suramar 36.22 41.74 +/way Suramar 39.85 39.65 +/way Suramar 47.15 41.25 +/way Suramar 40.72 40.06 +/way Suramar 44.52 39.66 +/way Suramar 41.5 38.6 +/way Suramar 44.86 35.75 +/way Suramar 44.63 33.2 +/way Suramar 47.33 28.88 +/way Suramar 32.03 34.06 +/way Suramar 27.66 36 +/way Suramar 27.58 44.62 +/way Suramar 25.91 44.49 +/way Suramar 26.84 48.81 +/way Suramar 22.94 55.55 +/way Suramar 19.91 54.45 +/way Suramar 21.16 53.32 +/way Suramar 22.64 50.19 +/way Suramar 24.23 33.84 +/way Suramar 30.34 33.68 +/way Suramar 30.66 33.03 +/way Suramar 39.58 16.08 +/way Suramar 39.3 14.48 +/way Suramar 34.8 10.58 +/way Suramar 30.29 8.71 +/way Suramar 30.67 12.65 +/way Suramar 31.53 14.5 +/way Suramar 31.63 16.56 +/way Suramar 33.53 20.08 +/way Suramar 34.88 19.76 +/way Suramar 35.59 18.08 +/way Suramar 43.46 27.48 +/way Suramar 42.73 27.39 +/way Suramar 41.23 25.46 +/way Suramar 39.47 24.45 +/way Suramar 38.39 26.94 +/way Suramar 37.32 26.91 +/way Suramar 36.21 30.36 +/way Suramar 27.01 29.36 +/way Suramar 27.04 31.9 +/way Suramar 17.98 42.91 +/way Suramar 15.82 43.16 +/way Suramar 15.74 38.61 +/way Suramar 16.66 36.19 +/way Suramar 21.23 20.19 /way Suramar 22.84 19.42 \ No newline at end of file diff --git a/Random Trash/Herbs/_How2Find.txt b/WeakAuras/Projects/Random Trash/Herbs/_How2Find.txt similarity index 97% rename from Random Trash/Herbs/_How2Find.txt rename to WeakAuras/Projects/Random Trash/Herbs/_How2Find.txt index a9f7cfd..c8bebc5 100644 --- a/Random Trash/Herbs/_How2Find.txt +++ b/WeakAuras/Projects/Random Trash/Herbs/_How2Find.txt @@ -1,2 +1,2 @@ -(\d+.?\d+) +(\d+.?\d+) left: (\d+.?\d+)%; top: (\d+.?\d+) \ No newline at end of file diff --git a/Random Trash/Interesting Shit/BARS QUESTIONMARK.lua b/WeakAuras/Projects/Random Trash/Interesting Shit/BARS QUESTIONMARK.lua similarity index 96% rename from Random Trash/Interesting Shit/BARS QUESTIONMARK.lua rename to WeakAuras/Projects/Random Trash/Interesting Shit/BARS QUESTIONMARK.lua index c787dec..aafb551 100644 --- a/Random Trash/Interesting Shit/BARS QUESTIONMARK.lua +++ b/WeakAuras/Projects/Random Trash/Interesting Shit/BARS QUESTIONMARK.lua @@ -1,132 +1,132 @@ ---1 -function(allstates) - for _, v in pairs(allstates) do - v.show = false; - v.changed = true; - end - for unit in aura_env.GroupMembers() do - if UnitIsVisible(unit) then - local role = UnitGroupRolesAssigned(unit) - --local icon = aura_env.roles[role] or "" - local name = string.sub(UnitName(unit),1,6) - local _, class = UnitClass(unit) - local _,_,_,str = GetClassColor(class) - name = string.format("|c%s%s|r", str, name) - local inside = WA_GetUnitDebuff(unit, GetSpellInfo(236283)) and "inside" - local dead = UnitIsDeadOrGhost(unit) and "DEAD" - local flag = inside or "" - local torment = UnitPower(unit, 10) - - local index = (100 - torment) - if role == "TANK" then - index = index - 1000 - elseif role == "HEALER" then - index = index - 500 - end - if inside then index = index - 100 end - - allstates[unit] = allstates[unit] or {}; - local state = allstates[unit]; - state.index = index - state.resort = true - state.ID = unit - state.show = true; - state.changed = true; - state.name = dead or name; - state.progressType = "static"; - state.value = torment - state.total = 100 - state.flag = flag - end - end - - for i = 1,3 do - local icon = i == 3 and aura_env.roles["TANK"] - or i == 2 and aura_env.roles["HEALER"] - or aura_env.roles["DAMAGER"] - local name = i == 3 and "TANKS" or i == 2 and "HEALERS" or "DPS" - local col = i == 3 and "FF8C00" or i == 2 and "7FFF00" or "DC143C" - local flag = string.format("%s |cFF%s%s|r %s", icon, col, name, icon) - - allstates["spacer"..i] = allstates["spacer"..i] or {}; - local state = allstates["spacer"..i]; - state.index = i * -400 - state.resort = true - state.ID = "spacer" - state.show = true; - state.changed = true; - state.name = "" - state.progressType = "static"; - state.value = 0 - state.total = 100 - state.flag = flag - end - - for k, v in pairs(allstates) do - if v.ID == "spacer" then - local region = WeakAuras.GetRegion(aura_env.id, k) - region.timer:ClearAllPoints() - region.timer:SetPoint("CENTER", region.bar, "CENTER") - region.bar.bg:SetVertexColor(1,1,1,0) - end - end - - return true -end - - ---2 -function aura_env.GroupMembers(reversed, forceParty) - local unit = (not forceParty and IsInRaid()) and 'raid' or 'party' - local numGroupMembers = forceParty and GetNumSubgroupMembers() or GetNumGroupMembers() - local i = reversed and numGroupMembers or (unit == 'party' and 0 or 1) - return function() - local ret - if i == 0 and unit == 'party' then - ret = 'player' - elseif i <= numGroupMembers and i > 0 then - ret = unit .. i - end - i = i + (reversed and -1 or 1) - return ret - end -end - -aura_env.roles = { - ["TANK"] = "|TInterface\\LFGFrame\\UI-LFG-ICON-PORTRAITROLES:0:0:0:0:64:64:0:19:22:41|t", - ["HEALER"] = "|TInterface\\LFGFrame\\UI-LFG-ICON-PORTRAITROLES:0:0:0:0:64:64:20:39:1:20|t", - ["DAMAGER"] = "|TInterface\\LFGFrame\\UI-LFG-ICON-PORTRAITROLES:0:0:0:0:64:64:20:39:22:41|t" -} - - ---3 -function() - local r,g,b = 0,1,0 - if aura_env and aura_env.statee then - if aura_env.statee.value > 40 then - r,g,b = 1,1,0 - end - if aura_env.statee.value > 80 then - r,g,b = 1,0.5,0 - end - if aura_env.statee.value > 95 then - r,g,b = 1,0,0 - end - local region = WeakAuras.GetRegion(aura_env.id, aura_env.statee.ID) - region.text:ClearAllPoints() - region.text:SetPoint("RIGHT", region.bar, "LEFT", -3,1) - region.text:SetJustifyH("RIGHT") - - end - return r, g, b, 1 -end - - ---4 -function(_,_,prog) - if aura_env.statee and aura_env.statee.ID == "spacer" then - return "" - else - return prog - end +--1 +function(allstates) + for _, v in pairs(allstates) do + v.show = false; + v.changed = true; + end + for unit in aura_env.GroupMembers() do + if UnitIsVisible(unit) then + local role = UnitGroupRolesAssigned(unit) + --local icon = aura_env.roles[role] or "" + local name = string.sub(UnitName(unit),1,6) + local _, class = UnitClass(unit) + local _,_,_,str = GetClassColor(class) + name = string.format("|c%s%s|r", str, name) + local inside = WA_GetUnitDebuff(unit, GetSpellInfo(236283)) and "inside" + local dead = UnitIsDeadOrGhost(unit) and "DEAD" + local flag = inside or "" + local torment = UnitPower(unit, 10) + + local index = (100 - torment) + if role == "TANK" then + index = index - 1000 + elseif role == "HEALER" then + index = index - 500 + end + if inside then index = index - 100 end + + allstates[unit] = allstates[unit] or {}; + local state = allstates[unit]; + state.index = index + state.resort = true + state.ID = unit + state.show = true; + state.changed = true; + state.name = dead or name; + state.progressType = "static"; + state.value = torment + state.total = 100 + state.flag = flag + end + end + + for i = 1,3 do + local icon = i == 3 and aura_env.roles["TANK"] + or i == 2 and aura_env.roles["HEALER"] + or aura_env.roles["DAMAGER"] + local name = i == 3 and "TANKS" or i == 2 and "HEALERS" or "DPS" + local col = i == 3 and "FF8C00" or i == 2 and "7FFF00" or "DC143C" + local flag = string.format("%s |cFF%s%s|r %s", icon, col, name, icon) + + allstates["spacer"..i] = allstates["spacer"..i] or {}; + local state = allstates["spacer"..i]; + state.index = i * -400 + state.resort = true + state.ID = "spacer" + state.show = true; + state.changed = true; + state.name = "" + state.progressType = "static"; + state.value = 0 + state.total = 100 + state.flag = flag + end + + for k, v in pairs(allstates) do + if v.ID == "spacer" then + local region = WeakAuras.GetRegion(aura_env.id, k) + region.timer:ClearAllPoints() + region.timer:SetPoint("CENTER", region.bar, "CENTER") + region.bar.bg:SetVertexColor(1,1,1,0) + end + end + + return true +end + + +--2 +function aura_env.GroupMembers(reversed, forceParty) + local unit = (not forceParty and IsInRaid()) and 'raid' or 'party' + local numGroupMembers = forceParty and GetNumSubgroupMembers() or GetNumGroupMembers() + local i = reversed and numGroupMembers or (unit == 'party' and 0 or 1) + return function() + local ret + if i == 0 and unit == 'party' then + ret = 'player' + elseif i <= numGroupMembers and i > 0 then + ret = unit .. i + end + i = i + (reversed and -1 or 1) + return ret + end +end + +aura_env.roles = { + ["TANK"] = "|TInterface\\LFGFrame\\UI-LFG-ICON-PORTRAITROLES:0:0:0:0:64:64:0:19:22:41|t", + ["HEALER"] = "|TInterface\\LFGFrame\\UI-LFG-ICON-PORTRAITROLES:0:0:0:0:64:64:20:39:1:20|t", + ["DAMAGER"] = "|TInterface\\LFGFrame\\UI-LFG-ICON-PORTRAITROLES:0:0:0:0:64:64:20:39:22:41|t" +} + + +--3 +function() + local r,g,b = 0,1,0 + if aura_env and aura_env.statee then + if aura_env.statee.value > 40 then + r,g,b = 1,1,0 + end + if aura_env.statee.value > 80 then + r,g,b = 1,0.5,0 + end + if aura_env.statee.value > 95 then + r,g,b = 1,0,0 + end + local region = WeakAuras.GetRegion(aura_env.id, aura_env.statee.ID) + region.text:ClearAllPoints() + region.text:SetPoint("RIGHT", region.bar, "LEFT", -3,1) + region.text:SetJustifyH("RIGHT") + + end + return r, g, b, 1 +end + + +--4 +function(_,_,prog) + if aura_env.statee and aura_env.statee.ID == "spacer" then + return "" + else + return prog + end end \ No newline at end of file diff --git a/Random Trash/Interesting Shit/SeaStar.lua b/WeakAuras/Projects/Random Trash/Interesting Shit/SeaStar.lua similarity index 96% rename from Random Trash/Interesting Shit/SeaStar.lua rename to WeakAuras/Projects/Random Trash/Interesting Shit/SeaStar.lua index 0a81513..4050ada 100644 --- a/Random Trash/Interesting Shit/SeaStar.lua +++ b/WeakAuras/Projects/Random Trash/Interesting Shit/SeaStar.lua @@ -1,134 +1,134 @@ ---Text? -function() - if not WeakAuras.IsOptionsOpen() then - WeakAuras.regions[aura_env.id].region.text2:SetText(string.format("Shuffle in %i casts", 10-aura_env.casts)) - -- return math.floor(((aura_env.rate - aura_env.success) / (10 - aura_env.casts) * 100) + 0.5) .. "%" - return aura_env.rate - aura_env.success - else - return "0" - end -end - - ---ENCOUNTER_START COMBAT_LOG_EVENT_UNFILTERED ENCOUNTER_END -function(event, ...) - if event == "ENCOUNTER_START" then - local id, id2 = ... - if not id then return end - --print("COMBAT STARTED") - - if GetNumGroupMembers() <= 5 then return end - local specID = GetSpecializationInfo(GetSpecialization()) - if not aura_env.procRate[specID] then return end - aura_env.reset() - aura_env.rate = aura_env.procRate[specID] - return true - - elseif event == "COMBAT_LOG_EVENT_UNFILTERED" then - local _, type, _, source, _, _, _, dest, _, _, _, spell, name = ... - - if type == "SPELL_CAST_SUCCESS" and source == aura_env.player and aura_env.spells[spell] then - if not aura_env.checkBuff() then - - aura_env.casts = aura_env.casts + 1 - end - - if aura_env.casts >= 10 then - aura_env.reset() - end - elseif (type == "SPELL_AURA_APPLIED" and - dest == aura_env.player and - (spell >= 242459 and spell <= 242474)) then - -- Because Blizzard needed 8 auras for one proc. - - aura_env.success = aura_env.success + 1 - if aura_env.casts == 0 then - aura_env.success = 0 - end - - - end - end -end - ---Untrigger -function(event, ...) - if event == "ENCOUNTER_END" then - local id, id2 = ... - if not id then return end - - print("ENCOUNTER ENDED") - print(...) - return true - - end - - -end - ---Name -function() - return string.format("Shuffle in %i casts", 10-aura_env.casts) -end - ---Every Frame -function() - return (aura_env.rate - aura_env.success) == 0 and not aura_env.checkBuff() - -end - ---INIT ---[[ -Author: Voulk (Discord: Voulk#1858) -Wago Link: X - -You can read more on the new deck based RNG system here: -https://questionablyepic.com/deck-RNG - - -]] - - - -aura_env.player = UnitGUID"player" -aura_env.buffID = 0 -aura_env.rate = 0 -aura_env.reset = function() - aura_env.deckSize = 10 - aura_env.success = 0 - aura_env.casts = 0 -end -aura_env.reset() - -aura_env.spells = -{ - [1064] = true, -- chain heal - [48438] = true, -- wild growth - [596] = true, -- prayer of healing - [85222] = true, -- light of dawn - [194509] = true, -- pw:r - [191837] = true -- essence font -} - -aura_env.procRate = -{ - [105] = 5, -- rdruid - [270] = 5, -- mw - [256] = 6, -- disc - [257] = 4, -- holy - [264] = 4, -- rsham - [65] = 4 -- hpal -} - - - --- Checks if the aura is active. If it is, we had a proc. -aura_env.checkBuff = function() - - local _, _, _, _, _, duration, expTime = UnitBuff("player", "Ocean's Embrace") - if duration then - return true - end - -end - +--Text? +function() + if not WeakAuras.IsOptionsOpen() then + WeakAuras.regions[aura_env.id].region.text2:SetText(string.format("Shuffle in %i casts", 10-aura_env.casts)) + -- return math.floor(((aura_env.rate - aura_env.success) / (10 - aura_env.casts) * 100) + 0.5) .. "%" + return aura_env.rate - aura_env.success + else + return "0" + end +end + + +--ENCOUNTER_START COMBAT_LOG_EVENT_UNFILTERED ENCOUNTER_END +function(event, ...) + if event == "ENCOUNTER_START" then + local id, id2 = ... + if not id then return end + --print("COMBAT STARTED") + + if GetNumGroupMembers() <= 5 then return end + local specID = GetSpecializationInfo(GetSpecialization()) + if not aura_env.procRate[specID] then return end + aura_env.reset() + aura_env.rate = aura_env.procRate[specID] + return true + + elseif event == "COMBAT_LOG_EVENT_UNFILTERED" then + local _, type, _, source, _, _, _, dest, _, _, _, spell, name = ... + + if type == "SPELL_CAST_SUCCESS" and source == aura_env.player and aura_env.spells[spell] then + if not aura_env.checkBuff() then + + aura_env.casts = aura_env.casts + 1 + end + + if aura_env.casts >= 10 then + aura_env.reset() + end + elseif (type == "SPELL_AURA_APPLIED" and + dest == aura_env.player and + (spell >= 242459 and spell <= 242474)) then + -- Because Blizzard needed 8 auras for one proc. + + aura_env.success = aura_env.success + 1 + if aura_env.casts == 0 then + aura_env.success = 0 + end + + + end + end +end + +--Untrigger +function(event, ...) + if event == "ENCOUNTER_END" then + local id, id2 = ... + if not id then return end + + print("ENCOUNTER ENDED") + print(...) + return true + + end + + +end + +--Name +function() + return string.format("Shuffle in %i casts", 10-aura_env.casts) +end + +--Every Frame +function() + return (aura_env.rate - aura_env.success) == 0 and not aura_env.checkBuff() + +end + +--INIT +--[[ +Author: Voulk (Discord: Voulk#1858) +Wago Link: X + +You can read more on the new deck based RNG system here: +https://questionablyepic.com/deck-RNG + + +]] + + + +aura_env.player = UnitGUID"player" +aura_env.buffID = 0 +aura_env.rate = 0 +aura_env.reset = function() + aura_env.deckSize = 10 + aura_env.success = 0 + aura_env.casts = 0 +end +aura_env.reset() + +aura_env.spells = +{ + [1064] = true, -- chain heal + [48438] = true, -- wild growth + [596] = true, -- prayer of healing + [85222] = true, -- light of dawn + [194509] = true, -- pw:r + [191837] = true -- essence font +} + +aura_env.procRate = +{ + [105] = 5, -- rdruid + [270] = 5, -- mw + [256] = 6, -- disc + [257] = 4, -- holy + [264] = 4, -- rsham + [65] = 4 -- hpal +} + + + +-- Checks if the aura is active. If it is, we had a proc. +aura_env.checkBuff = function() + + local _, _, _, _, _, duration, expTime = UnitBuff("player", "Ocean's Embrace") + if duration then + return true + end + +end + diff --git a/Random Trash/Some stuff.lua b/WeakAuras/Projects/Random Trash/Some stuff.lua similarity index 96% rename from Random Trash/Some stuff.lua rename to WeakAuras/Projects/Random Trash/Some stuff.lua index 704fae0..a2d6217 100644 --- a/Random Trash/Some stuff.lua +++ b/WeakAuras/Projects/Random Trash/Some stuff.lua @@ -1,17 +1,17 @@ ---COMBAT_LOG_EVENT_UNFILTERED -function(event, ...) - destFlags = select(10, ...) - --for i = 1, 40 do - --local x = select(i, ...) - --if x then - --print(i, x) - --end - --end - local se = select(2, ...) - if se == "SPELL_CAST_SUCCESS" then - local id = select(12, ...) - if (destFlags) then - print(CombatLog_Object_IsA(destFlags, COMBATLOG_FILTER_HOSTILE_PLAYERS)) - end - end -end +--COMBAT_LOG_EVENT_UNFILTERED +function(event, ...) + destFlags = select(10, ...) + --for i = 1, 40 do + --local x = select(i, ...) + --if x then + --print(i, x) + --end + --end + local se = select(2, ...) + if se == "SPELL_CAST_SUCCESS" then + local id = select(12, ...) + if (destFlags) then + print(CombatLog_Object_IsA(destFlags, COMBATLOG_FILTER_HOSTILE_PLAYERS)) + end + end +end diff --git a/Random Trash/Spells of some sort.txt b/WeakAuras/Projects/Random Trash/Spells of some sort.txt similarity index 95% rename from Random Trash/Spells of some sort.txt rename to WeakAuras/Projects/Random Trash/Spells of some sort.txt index a7c91a5..95ca855 100644 --- a/Random Trash/Spells of some sort.txt +++ b/WeakAuras/Projects/Random Trash/Spells of some sort.txt @@ -1,770 +1,770 @@ -SPELLS - -Paladin -Prot -Arcane Torrent 155145 90 -Honorable Medallion 195710 180 -Portal: Vale of Eternal Blossoms 132626 60 -Ardent Defender 498 60 -Avenging Wrath 31884 21 -Bastion of Light 204035 120 -Divine Shield 642 300 -Eye of Tyr 209202 60 -Guardian of Ancient Kings 86659 300 -Hammer of Justice 853 60 -Lay on Hands 633 600 -Bastion of Light 204035 120 -Blinding Light 115750 90 -Blessing of Spellwarding 204018 180 -Aegis of Light 204150 180 -Seraphim 152262 30 -Gladiator's Medallion 208683 120 -Shield of Virtue 215652 25 -Guardian of the Forgotten Queen 228049 180 -Holy -Arcane Torrent 155145 90 -Honorable Medallion 195710 180 -Portal: Vale of Eternal Blossoms 132626 60 -Aura Mastery 31821 180 -Avenging Wrath 31842 120 -Blinding Light 115750 90 -Divine Protection 498 60 -Divine Shield 642 300 -Hammer of Justice 853 60 -Holy Avenger 105809 90 -Lay on Hands 633 600 -Tyr's Deliverance 200652 90 -Light's Hammer 114158 60 -Blinding Light 115750 90 -Aura of Mercy 183415 180 -Holy Avenger 105809 90 -Gladiator's Medallion 208683 120 -Divine Favor 210294 45 -Avenging Crusader 216331 60 - -Ret -Arcane Torrent 155145 90 -Honorable Medallion 195710 180 -Portal: Vale of Eternal Blossoms 132626 60 -Crusade 31884 21 -Divine Shield 642 300 -Hammer of Justice 853 60 -Hand of Hindrance 183218 30 -Lay on Hands 633 600 -Shield of Vengeance 184662 120 -Wake of Ashes 205273 30 -Blinding Light 115750 90 -Eye for an Eye 205191 60 -Holy Wrath 210220 180 -Gladiator's Medallion 208683 120 -Blessing of Sanctuary 210256 45 -Hammer of Reckoning 247675 60 - - - -Druid -Balance -Honorable Medallion 195710 180 -Shadowmeld 58984 120 -Barkskin 22812 60 -Celestial Alignment 194223 180 -Dash 1850 180 -Displacer Beast 102280 30 -Dreamwalk 193753 60 -Innervate 29166 180 -Rebirth 20484 600 -Solar Beam 78675 60 -Warrior of Elune 202425 45 -Force of Nature 205636 60 -Warrior of Elune 202425 45 -Renewal 108238 90 -Displacer Beast 102280 30 -Mighty Bash 5211 50 -Mass Entanglement 102359 30 -Typhoon 132469 30 -Incarnation: Chosen of Elune 102560 180 -Astral Communion 202359 80 -Fury of Elune 202770 90 -Gladiator's Medallion 208683 120 -Faerie Swarm 209749 30 - -Feral -Honorable Medallion 195710 180 -Shadowmeld 58984 120 -Ashamane's Frenzy 210722 75 -Berserk 106951 180 -Dash 1850 180 -Dreamwalk 193753 60 -Rebirth 20484 600 -Stampeding Roar 106898 120 -Tiger's Fury 5217 30 -Renewal 108238 90 -Displacer Beast 102280 30 -Mighty Bash 5211 50 -Mass Entanglement 102359 30 -Typhoon 132469 30 -Incarnation: King of the Jungle 102543 180 -Elune's Guidance 202060 45 -Gladiator's Medallion 208683 120 -Thorns 236696 45 -Rip and Tear 203242 60 - -Guardian -Honorable Medallion 195710 180 -Shadowmeld 58984 120 -Barkskin 22812 60 -Dash 1850 180 -Dreamwalk 193753 60 -Incapacitating Roar 99 30 -Rage of the Sleeper 200851 90 -Rebirth 20484 600 -Stampeding Roar 106898 120 -Bristling Fur 155835 40 -Intimidating Roar 236748 30 -Mighty Bash 5211 50 -Mass Entanglement 102359 30 -Typhoon 132469 30 -Incarnation: Guardian of Ursoc 102558 180 -Lunar Beam 204066 75 -Gladiator's Medallion 208683 120 -Demoralizing Roar 201664 30 -Overrun 202246 25 - -Resto -Honorable Medallion 195710 180 -Shadowmeld 58984 120 -Barkskin 22812 60 -Dash 1850 180 -Displacer Beast 102280 30 -Dreamwalk 193753 60 -Essence of G'Hanir 208253 90 -Innervate 29166 180 -Ironbark 102342 90 -Rebirth 20484 600 -Tranquility 740 180 -Ursol's Vortex 102793 60 -Cenarion Ward 102351 30 -Renewal 108238 90 -Displacer Beast 102280 30 -Mighty Bash 5211 50 -Mass Entanglement 102359 30 -Typhoon 132469 30 -Incarnation: Tree of Life 33891 180 -Flourish 197721 60 -Gladiator's Medallion 208683 120 -Thorns 203727 45 -Overgrowth 203651 45 - - - -Warrior -Prot -Blood Fury 20572 120 -Battle Cry 1719 60 -Berserker Rage 18499 60 -Demoralizing Shout 1160 90 -Last Stand 12975 180 -Neltharion's Fury 203524 45 -Shield Wall 871 240 -Shockwave 46968 40 -Shockwave 46968 40 -Storm Bolt 107570 30 -Impending Victory 202168 30 -Avatar 107574 90 -Ravager 228920 60 -Gladiator's Medallion 208683 120 -Mass Spell Reflection 213915 30 -Disarm 236236 45 - -Fury -Blood Fury 20572 120 -Battle Cry 1719 60 -Berserker Rage 18499 60 -Bloodbath 12292 30 -Commanding Shout 97462 180 -Enraged Regeneration 184364 120 -Intimidating Shout 5246 90 -Odyn's Fury 205545 45 -Shockwave 46968 40 -Shockwave 46968 40 -Storm Bolt 107570 30 -Avatar 107574 90 -Bloodbath 12292 30 -Bladestorm 46924 90 -Dragon Roar 118000 25 -Gladiator's Medallion 208683 120 -Disarm 236077 45 -Spell Reflection 216890 25 - -Arms -Blood Fury 20572 120 -Battle Cry 1719 60 -Berserker Rage 18499 60 -Bladestorm 227847 90 -Commanding Shout 97462 180 -Die by the Sword 118038 180 -Intimidating Shout 5246 90 -Shockwave 46968 40 -Warbreaker 209577 60 -Shockwave 46968 40 -Storm Bolt 107570 30 -Avatar 107574 90 -Ravager 152277 60 -Gladiator's Medallion 208683 120 -Disarm 236077 45 -Spell Reflection 216890 25 -Duel 236273 60 -War Banner 236320 90 -Sharpen Blade 198817 25 - - - -Hunter -BM -Every Man for Himself 59752 120 -Honorable Medallion 195710 180 -Aspect of the Cheetah 186257 180 -Aspect of the Turtle 186265 180 -Aspect of the Wild 193530 120 -Bestial Wrath 19574 90 -Counter Shot 147362 24 -Exhilaration 109304 120 -Feign Death 5384 30 -Misdirection 34477 30 -Titan's Thunder 207068 60 -Binding Shot 109248 45 -Wyvern Sting 19386 45 -Intimidation 19577 60 -A Murder of Crows 131894 60 -Stampede 201430 180 -Gladiator's Medallion 208683 120 -Viper Sting 202797 30 -Scorpid Sting 202900 24 -Spider Sting 202914 45 -Dire Beast: Hawk 208652 30 -Dire Beast: Basilisk 205691 120 -Interlope 248518 45 - -MM -Every Man for Himself 59752 120 -Honorable Medallion 195710 180 -Aspect of the Cheetah 186257 180 -Aspect of the Turtle 186265 180 -Bursting Shot 186387 30 -Counter Shot 147362 24 -Exhilaration 109304 120 -Feign Death 5384 30 -Misdirection 34477 30 -Trueshot 193526 180 -Explosive Shot 212431 30 -Sentinel 206817 60 -Binding Shot 109248 45 -Wyvern Sting 19386 45 -Camouflage 199483 60 -A Murder of Crows 131894 60 -Piercing Shot 198670 30 -Gladiator's Medallion 208683 120 -Viper Sting 202797 30 -Scorpid Sting 202900 24 -Spider Sting 202914 45 -Scatter Shot 213691 30 -Hi-Explosive Trap 236776 40 - -Surv -Every Man for Himself 59752 120 -Honorable Medallion 195710 180 -Aspect of the Cheetah 186257 180 -Aspect of the Eagle 186289 120 -Aspect of the Turtle 186265 180 -Exhilaration 109304 120 -Feign Death 5384 30 -Fury of the Eagle 203415 45 -A Murder of Crows 206505 60 -Snake Hunter 201078 120 -Steel Trap 162488 60 -Sticky Bomb 191241 25 -Camouflage 199483 60 -Dragonsfire Grenade 194855 30 -Spitting Cobra 194407 60 -Gladiator's Medallion 208683 120 -Viper Sting 202797 30 -Scorpid Sting 202900 24 -Spider Sting 202914 45 -Mending Bandage 212640 25 -Master's Call 53271 45 - - - -Warlock -Affli -Arcane Torrent 28730 90 -Create Soulwell 29893 120 -Ritual of Summoning 698 120 -Soul Harvest 196098 120 -Soulstone 20707 600 -Summon Doomguard 18540 180 -Summon Infernal 1122 180 -Unending Resolve 104773 180 -Haunt 48181 25 -Mortal Coil 6789 45 -Howl of Terror 5484 40 -Phantom Singularity 205179 40 -Soul Harvest 196098 120 -Dark Pact 108416 60 -Grimoire of Service 108501 90 -Grimoire of Sacrifice 108503 30 -Gladiator's Medallion 208683 120 -Curse of Fragility 199954 45 -Casting Circle 221703 30 -Nether Ward 212295 45 -Soulshatter 212356 60 -Curse of Shadows 234877 30 - -Destro -Arcane Torrent 28730 90 -Create Soulwell 29893 120 -Havoc 80240 45 -Ritual of Summoning 698 120 -Soulstone 20707 600 -Summon Doomguard 18540 180 -Summon Infernal 1122 180 -Unending Resolve 104773 180 -Mortal Coil 6789 45 -Shadowfury 30283 30 -Cataclysm 152108 30 -Soul Harvest 196098 120 -Dark Pact 108416 60 -Grimoire of Service 108501 90 -Grimoire of Sacrifice 108503 30 -Channel Demonfire 196447 25 -Gladiator's Medallion 208683 120 -Curse of Fragility 199954 45 -Casting Circle 221703 30 -Nether Ward 212295 45 -Firestone 212284 25 -Bane of Havoc 200546 45 - -Demo -Arcane Torrent 28730 90 -Create Soulwell 29893 120 -Ritual of Summoning 698 120 -Soulstone 20707 600 -Summon Doomguard 18540 180 -Summon Infernal 1122 180 -Thal'kiel's Consumption 211714 45 -Unending Resolve 104773 180 -Mortal Coil 6789 45 -Shadowfury 30283 30 -Soul Harvest 196098 120 -Dark Pact 108416 60 -Grimoire of Service 108501 90 -Summon Darkglare 205180 24 -Gladiator's Medallion 208683 120 -Curse of Fragility 199954 45 -Casting Circle 221703 30 -Nether Ward 212295 45 -Call Felhunter 212619 24 -Call Fel Lord 212459 90 -Call Observer 201996 90 - - - -Monk -MW -Shadowmeld 58984 120 -Diffuse Magic 122783 90 -Fortifying Brew 243435 90 -Life Cocoon 116849 180 -Revival 115310 180 -Thunder Focus Tea 116680 30 -Transcendence: Transfer 119996 25 -Zen Pilgrimage 126892 60 -Chi Burst 123986 30 -Tiger's Lust 116841 30 -Ring of Peace 116844 45 -Leg Sweep 119381 45 -Diffuse Magic 122783 90 -Dampen Harm 122278 120 -Invoke Chi-Ji, the Red Crane 198664 180 -Mana Tea 197908 90 -Gladiator's Medallion 208683 120 -Zen Focus Tea 209584 45 -Way of the Crane 216113 45 - -BM -Shadowmeld 58984 120 -Chi Burst 123986 30 -Exploding Keg 214326 75 -Fortifying Brew 115203 420 -Tiger's Lust 116841 30 -Transcendence: Transfer 119996 25 -Zen Meditation 115176 300 -Zen Pilgrimage 126892 60 -Chi Burst 123986 30 -Tiger's Lust 116841 30 -Black Ox Brew 115399 90 -Ring of Peace 116844 45 -Leg Sweep 119381 45 -Dampen Harm 122278 120 -Invoke Niuzao, the Black Ox 132578 180 -Gladiator's Medallion 208683 120 -Guard 202162 45 -Double Barrel 202335 45 -Mighty Ox Kick 202370 30 - -WW -Shadowmeld 58984 120 -Chi Burst 123986 30 -Energizing Elixir 115288 60 -Fists of Fury 113656 24 -Flying Serpent Kick 101545 25 -Strike of the Windlord 205320 40 -Tiger's Lust 116841 30 -Touch of Death 115080 120 -Touch of Karma 122470 90 -Transcendence: Transfer 119996 25 -Whirling Dragon Punch 152175 24 -Zen Pilgrimage 126892 60 -Chi Burst 123986 30 -Tiger's Lust 116841 30 -Energizing Elixir 115288 60 -Ring of Peace 116844 45 -Leg Sweep 119381 45 -Diffuse Magic 122783 90 -Dampen Harm 122278 120 -Invoke Xuen, the White Tiger 123904 180 -Whirling Dragon Punch 152175 24 -Serenity 152173 90 -Gladiator's Medallion 208683 120 -Fortifying Brew 201318 90 -Zen Moment 201325 45 -Grapple Weapon 233759 60 - - - -Priest -Shadow -Arcane Torrent 232633 90 -Dispersion 47585 120 -Fade 586 30 -Mind Bomb 8122 60 -Shadow Crash 205385 30 -Shadowfiend 34433 180 -Silence 15487 45 -Vampiric Embrace 15286 180 -Void Torrent 205065 60 -Mind Bomb 205369 30 -Power Infusion 10060 120 -Mindbender 200174 60 -Shadow Crash 205385 30 -Surrender to Madness 193223 600 -Gladiator's Medallion 208683 120 -Psyfiend 211522 45 -Void Shift 108968 300 - -Holy -Arcane Torrent 232633 90 -Desperate Prayer 19236 90 -Divine Hymn 64843 180 -Fade 586 30 -Guardian Spirit 47788 240 -Holy Word: Chastise 88625 60 -Holy Word: Sanctify 34861 60 -Leap of Faith 73325 90 -Shining Force 204263 45 -Symbol of Hope 64901 360 -Halo 120517 40 -Apotheosis 200183 180 -Gladiator's Medallion 208683 120 -Inner Focus 196762 30 -Holy Ward 213610 30 -Greater Fade 213602 45 -Ray of Hope 197268 60 - -Disc -Arcane Torrent 232633 90 -Evangelism 246287 75 -Fade 586 30 -Leap of Faith 73325 90 -Light's Wrath 207946 90 -Mindbender 34433 180 -Pain Suppression 33206 240 -Power Word: Barrier 62618 180 -Psychic Scream 8122 60 -Rapture 47536 120 -Shining Force 204263 45 -Mindbender 123040 60 -Halo 120517 40 -Power Infusion 10060 120 -Evangelism 246287 75 -Gladiator's Medallion 208683 120 -Archangel 197862 60 -Dark Archangel 197871 60 - - - -DH -Havoc -Arcane Torrent 202719 90 -Honorable Medallion 195710 180 -Blur 198589 60 -Chaos Blades 247938 120 -Chaos Nova 179057 60 -Darkness 196718 180 -Eye Beam 198013 45 -Fury of the Illidari 201467 60 -Metamorphosis 191427 300 -Nemesis 206491 120 -Netherwalk 196555 120 -Spectral Sight 188501 30 -Vengeful Retreat 198793 25 -Netherwalk 196555 120 -Fel Eruption 211881 30 -Nemesis 206491 120 -Chaos Blades 247938 120 -Fel Barrage 211053 60 -Gladiator's Medallion 208683 120 -Reverse Magic 205604 60 -Eye of Leotheras 206649 45 -Rain from Above 206803 60 -Mana Break 203704 60 - -Veng -Arcane Torrent 202719 90 -Honorable Medallion 195710 180 -Demon Spikes 198793 25 -Fiery Brand 179057 60 -Immolation Aura 198013 45 -Metamorphosis 191427 300 -Sigil of Misery 207684 60 -Sigil of Silence 202137 60 -Soul Carver 207407 40 -Spectral Sight 188501 30 -Torment 198589 60 -Fel Eruption 211881 30 -Sigil of Chains 202138 90 -Fel Devastation 212084 60 -Demonic Infusion 236189 90 -Soul Barrier 227225 30 -Gladiator's Medallion 208683 120 -Reverse Magic 205604 60 -Eye of Leotheras 206649 45 -Demonic Trample 205629 30 -Illidan's Grasp 205630 60 - - - -DK -Blood -Arcane Torrent 50613 90 -Anti-Magic Shell 48707 60 -Asphyxiate 221562 45 -Blood Mirror 206977 120 -Blooddrinker 206931 30 -Consumption 205223 45 -Dancing Rune Weapon 49028 180 -Death and Decay 43265 30 -Death Gate 50977 60 -Gorefiend's Grasp 108199 120 -Icebound Fortitude 48792 180 -Raise Ally 61999 600 -Vampiric Blood 55233 90 -Wraith Walk 212552 45 -Blooddrinker 206931 30 -Tombstone 219809 60 -Bonestorm 194844 60 -Blood Mirror 206977 120 -Gladiator's Medallion 208683 120 -Dark Simulacrum 77606 25 -Anti-Magic Zone 51052 120 -Strangulate 47476 60 - -UH -Arcane Torrent 50613 90 -Anti-Magic Shell 48707 60 -Apocalypse 220143 90 -Army of the Dead 42650 600 -Corpse Shield 207319 60 -Dark Transformation 63560 60 -Death Gate 50977 60 -Defile 43265 30 -Icebound Fortitude 48792 180 -Raise Ally 61999 600 -Raise Dead 46584 60 -Summon Gargoyle 49206 180 -Wraith Walk 212552 45 -Blighted Rune Weapon 194918 60 -Asphyxiate 108194 45 -Corpse Shield 207319 60 -Dark Arbiter 207349 120 -Defile 152280 30 -Soul Reaper 130736 45 -Gladiator's Medallion 208683 120 -Dark Simulacrum 77606 25 -Anti-Magic Zone 51052 120 - -Frost -Arcane Torrent 50613 90 -Anti-Magic Shell 48707 60 -Breath of Sindragosa 152279 120 -Death Gate 50977 60 -Icebound Fortitude 48792 180 -Pillar of Frost 51271 60 -Raise Ally 61999 600 -Sindragosa's Fury 190778 300 -Wraith Walk 212552 45 -Horn of Winter 57330 30 -Blinding Sleet 207167 60 -Obliteration 207256 90 -Breath of Sindragosa 152279 120 -Gladiator's Medallion 208683 120 -Dark Simulacrum 77606 25 -Anti-Magic Zone 51052 120 -Chill Streak 204160 45 - - - -Rogue -Sub -Arcane Torrent 25046 90 -Honorable Medallion 195710 180 -Blind 2094 120 -Cloak of Shadows 31224 90 -Crimson Vial 185311 30 -Distract 1725 30 -Evasion 5277 120 -Goremaw's Bite 209782 60 -Marked for Death 137619 60 -Shadow Blades 121471 180 -Shroud of Concealment 114018 360 -Sprint 2983 120 -Tricks of the Trade 57934 30 -Vanish 1856 120 -Marked for Death 137619 60 -Gladiator's Medallion 208683 120 -Smoke Bomb 212182 180 -Cold Blood 213981 60 -Shadowy Duel 207736 120 - -Assa -Arcane Torrent 25046 90 -Honorable Medallion 195710 180 -Blind 2094 120 -Cloak of Shadows 31224 90 -Crimson Vial 185311 30 -Distract 1725 30 -Evasion 5277 120 -Kingsbane 192759 45 -Poisons 66 300 -Shroud of Concealment 114018 360 -Sprint 2983 120 -Toxic Blade 245388 25 -Tricks of the Trade 57934 30 -Vanish 1856 120 -Vendetta 79140 120 -Toxic Blade 245388 25 -Exsanguinate 200806 45 -Marked for Death 137619 60 -Gladiator's Medallion 208683 120 -Neurotoxin 206328 25 - -Outlaw -Arcane Torrent 25046 90 -Honorable Medallion 195710 180 -Adrenaline Rush 13750 180 -Blind 2094 120 -Bribe 199740 1800 -Cloak of Shadows 31224 90 -Crimson Vial 185311 30 -Curse of the Dreadblades 202665 90 -Distract 1725 30 -Grappling Hook 195457 30 -Marked for Death 137619 60 -Riposte 199754 120 -Shroud of Concealment 114018 360 -Sprint 2983 120 -Tricks of the Trade 57934 30 -Vanish 1856 120 -Grappling Hook 195457 30 -Cannonball Barrage 185767 60 -Killing Spree 51690 120 -Marked for Death 137619 60 -Gladiator's Medallion 208683 120 -Dismantle 207777 45 -Plunder Armor 198529 120 - - - -Mage -Frost -Arcane Torrent 28730 90 -Honorable Medallion 195710 180 -Teleportation Nexus 223413 43200 -Cold Snap 235219 300 -Counterspell 2139 24 -Displacement 212801 30 -Ebonbolt 214634 45 -Frozen Orb 84714 60 -Ice Barrier 11426 25 -Ice Block 45438 240 -Icy Veins 12472 180 -Invisibility 66 300 -Time Warp 80353 300 -Lonely Winter 31687 60 -Ray of Frost 205021 60 -Mirror Image 55342 120 -Ice Nova 157997 25 -Frozen Touch 205030 30 -Ring of Frost 113724 45 -Comet Storm 153595 30 -Gladiator's Medallion 208683 120 -Temporal Shield 198111 45 -Ice Form 198144 60 - -Arcane -Arcane Torrent 28730 90 -Honorable Medallion 195710 180 -Teleportation Nexus 223413 43200 -Arcane Power 12042 90 -Counterspell 2139 24 -Displacement 195676 30 -Greater Invisibility 66 300 -Ice Block 45438 240 -Mark of Aluneth 224968 60 -Presence of Mind 205025 60 -Prismatic Barrier 235450 25 -Time Warp 80353 300 -Mirror Image 55342 120 -Supernova 157980 25 -Charged Up 205032 40 -Ring of Frost 113724 45 -Erosion 205039 60 -Gladiator's Medallion 208683 120 -Temporal Shield 198111 45 -Rewind Time 213220 30 -Mass Invisibility 198158 60 - -Fire -Arcane Torrent 28730 90 -Honorable Medallion 195710 180 -Teleportation Nexus 223413 43200 -Blazing Barrier 235313 25 -Combustion 190319 120 -Counterspell 2139 24 -Ice Block 45438 240 -Invisibility 66 300 -Time Warp 80353 300 -Blast Wave 157981 25 -Mirror Image 55342 120 -Alexstrasza's Fury 235870 45 -Ring of Frost 113724 45 -Meteor 153561 45 -Gladiator's Medallion 208683 120 -Temporal Shield 198111 45 - -Every Man for Himself 59752 - - -Blessing of Freedom 1044 -Blessing of Sacrifice 6940 +SPELLS + +Paladin +Prot +Arcane Torrent 155145 90 +Honorable Medallion 195710 180 +Portal: Vale of Eternal Blossoms 132626 60 +Ardent Defender 498 60 +Avenging Wrath 31884 21 +Bastion of Light 204035 120 +Divine Shield 642 300 +Eye of Tyr 209202 60 +Guardian of Ancient Kings 86659 300 +Hammer of Justice 853 60 +Lay on Hands 633 600 +Bastion of Light 204035 120 +Blinding Light 115750 90 +Blessing of Spellwarding 204018 180 +Aegis of Light 204150 180 +Seraphim 152262 30 +Gladiator's Medallion 208683 120 +Shield of Virtue 215652 25 +Guardian of the Forgotten Queen 228049 180 +Holy +Arcane Torrent 155145 90 +Honorable Medallion 195710 180 +Portal: Vale of Eternal Blossoms 132626 60 +Aura Mastery 31821 180 +Avenging Wrath 31842 120 +Blinding Light 115750 90 +Divine Protection 498 60 +Divine Shield 642 300 +Hammer of Justice 853 60 +Holy Avenger 105809 90 +Lay on Hands 633 600 +Tyr's Deliverance 200652 90 +Light's Hammer 114158 60 +Blinding Light 115750 90 +Aura of Mercy 183415 180 +Holy Avenger 105809 90 +Gladiator's Medallion 208683 120 +Divine Favor 210294 45 +Avenging Crusader 216331 60 + +Ret +Arcane Torrent 155145 90 +Honorable Medallion 195710 180 +Portal: Vale of Eternal Blossoms 132626 60 +Crusade 31884 21 +Divine Shield 642 300 +Hammer of Justice 853 60 +Hand of Hindrance 183218 30 +Lay on Hands 633 600 +Shield of Vengeance 184662 120 +Wake of Ashes 205273 30 +Blinding Light 115750 90 +Eye for an Eye 205191 60 +Holy Wrath 210220 180 +Gladiator's Medallion 208683 120 +Blessing of Sanctuary 210256 45 +Hammer of Reckoning 247675 60 + + + +Druid +Balance +Honorable Medallion 195710 180 +Shadowmeld 58984 120 +Barkskin 22812 60 +Celestial Alignment 194223 180 +Dash 1850 180 +Displacer Beast 102280 30 +Dreamwalk 193753 60 +Innervate 29166 180 +Rebirth 20484 600 +Solar Beam 78675 60 +Warrior of Elune 202425 45 +Force of Nature 205636 60 +Warrior of Elune 202425 45 +Renewal 108238 90 +Displacer Beast 102280 30 +Mighty Bash 5211 50 +Mass Entanglement 102359 30 +Typhoon 132469 30 +Incarnation: Chosen of Elune 102560 180 +Astral Communion 202359 80 +Fury of Elune 202770 90 +Gladiator's Medallion 208683 120 +Faerie Swarm 209749 30 + +Feral +Honorable Medallion 195710 180 +Shadowmeld 58984 120 +Ashamane's Frenzy 210722 75 +Berserk 106951 180 +Dash 1850 180 +Dreamwalk 193753 60 +Rebirth 20484 600 +Stampeding Roar 106898 120 +Tiger's Fury 5217 30 +Renewal 108238 90 +Displacer Beast 102280 30 +Mighty Bash 5211 50 +Mass Entanglement 102359 30 +Typhoon 132469 30 +Incarnation: King of the Jungle 102543 180 +Elune's Guidance 202060 45 +Gladiator's Medallion 208683 120 +Thorns 236696 45 +Rip and Tear 203242 60 + +Guardian +Honorable Medallion 195710 180 +Shadowmeld 58984 120 +Barkskin 22812 60 +Dash 1850 180 +Dreamwalk 193753 60 +Incapacitating Roar 99 30 +Rage of the Sleeper 200851 90 +Rebirth 20484 600 +Stampeding Roar 106898 120 +Bristling Fur 155835 40 +Intimidating Roar 236748 30 +Mighty Bash 5211 50 +Mass Entanglement 102359 30 +Typhoon 132469 30 +Incarnation: Guardian of Ursoc 102558 180 +Lunar Beam 204066 75 +Gladiator's Medallion 208683 120 +Demoralizing Roar 201664 30 +Overrun 202246 25 + +Resto +Honorable Medallion 195710 180 +Shadowmeld 58984 120 +Barkskin 22812 60 +Dash 1850 180 +Displacer Beast 102280 30 +Dreamwalk 193753 60 +Essence of G'Hanir 208253 90 +Innervate 29166 180 +Ironbark 102342 90 +Rebirth 20484 600 +Tranquility 740 180 +Ursol's Vortex 102793 60 +Cenarion Ward 102351 30 +Renewal 108238 90 +Displacer Beast 102280 30 +Mighty Bash 5211 50 +Mass Entanglement 102359 30 +Typhoon 132469 30 +Incarnation: Tree of Life 33891 180 +Flourish 197721 60 +Gladiator's Medallion 208683 120 +Thorns 203727 45 +Overgrowth 203651 45 + + + +Warrior +Prot +Blood Fury 20572 120 +Battle Cry 1719 60 +Berserker Rage 18499 60 +Demoralizing Shout 1160 90 +Last Stand 12975 180 +Neltharion's Fury 203524 45 +Shield Wall 871 240 +Shockwave 46968 40 +Shockwave 46968 40 +Storm Bolt 107570 30 +Impending Victory 202168 30 +Avatar 107574 90 +Ravager 228920 60 +Gladiator's Medallion 208683 120 +Mass Spell Reflection 213915 30 +Disarm 236236 45 + +Fury +Blood Fury 20572 120 +Battle Cry 1719 60 +Berserker Rage 18499 60 +Bloodbath 12292 30 +Commanding Shout 97462 180 +Enraged Regeneration 184364 120 +Intimidating Shout 5246 90 +Odyn's Fury 205545 45 +Shockwave 46968 40 +Shockwave 46968 40 +Storm Bolt 107570 30 +Avatar 107574 90 +Bloodbath 12292 30 +Bladestorm 46924 90 +Dragon Roar 118000 25 +Gladiator's Medallion 208683 120 +Disarm 236077 45 +Spell Reflection 216890 25 + +Arms +Blood Fury 20572 120 +Battle Cry 1719 60 +Berserker Rage 18499 60 +Bladestorm 227847 90 +Commanding Shout 97462 180 +Die by the Sword 118038 180 +Intimidating Shout 5246 90 +Shockwave 46968 40 +Warbreaker 209577 60 +Shockwave 46968 40 +Storm Bolt 107570 30 +Avatar 107574 90 +Ravager 152277 60 +Gladiator's Medallion 208683 120 +Disarm 236077 45 +Spell Reflection 216890 25 +Duel 236273 60 +War Banner 236320 90 +Sharpen Blade 198817 25 + + + +Hunter +BM +Every Man for Himself 59752 120 +Honorable Medallion 195710 180 +Aspect of the Cheetah 186257 180 +Aspect of the Turtle 186265 180 +Aspect of the Wild 193530 120 +Bestial Wrath 19574 90 +Counter Shot 147362 24 +Exhilaration 109304 120 +Feign Death 5384 30 +Misdirection 34477 30 +Titan's Thunder 207068 60 +Binding Shot 109248 45 +Wyvern Sting 19386 45 +Intimidation 19577 60 +A Murder of Crows 131894 60 +Stampede 201430 180 +Gladiator's Medallion 208683 120 +Viper Sting 202797 30 +Scorpid Sting 202900 24 +Spider Sting 202914 45 +Dire Beast: Hawk 208652 30 +Dire Beast: Basilisk 205691 120 +Interlope 248518 45 + +MM +Every Man for Himself 59752 120 +Honorable Medallion 195710 180 +Aspect of the Cheetah 186257 180 +Aspect of the Turtle 186265 180 +Bursting Shot 186387 30 +Counter Shot 147362 24 +Exhilaration 109304 120 +Feign Death 5384 30 +Misdirection 34477 30 +Trueshot 193526 180 +Explosive Shot 212431 30 +Sentinel 206817 60 +Binding Shot 109248 45 +Wyvern Sting 19386 45 +Camouflage 199483 60 +A Murder of Crows 131894 60 +Piercing Shot 198670 30 +Gladiator's Medallion 208683 120 +Viper Sting 202797 30 +Scorpid Sting 202900 24 +Spider Sting 202914 45 +Scatter Shot 213691 30 +Hi-Explosive Trap 236776 40 + +Surv +Every Man for Himself 59752 120 +Honorable Medallion 195710 180 +Aspect of the Cheetah 186257 180 +Aspect of the Eagle 186289 120 +Aspect of the Turtle 186265 180 +Exhilaration 109304 120 +Feign Death 5384 30 +Fury of the Eagle 203415 45 +A Murder of Crows 206505 60 +Snake Hunter 201078 120 +Steel Trap 162488 60 +Sticky Bomb 191241 25 +Camouflage 199483 60 +Dragonsfire Grenade 194855 30 +Spitting Cobra 194407 60 +Gladiator's Medallion 208683 120 +Viper Sting 202797 30 +Scorpid Sting 202900 24 +Spider Sting 202914 45 +Mending Bandage 212640 25 +Master's Call 53271 45 + + + +Warlock +Affli +Arcane Torrent 28730 90 +Create Soulwell 29893 120 +Ritual of Summoning 698 120 +Soul Harvest 196098 120 +Soulstone 20707 600 +Summon Doomguard 18540 180 +Summon Infernal 1122 180 +Unending Resolve 104773 180 +Haunt 48181 25 +Mortal Coil 6789 45 +Howl of Terror 5484 40 +Phantom Singularity 205179 40 +Soul Harvest 196098 120 +Dark Pact 108416 60 +Grimoire of Service 108501 90 +Grimoire of Sacrifice 108503 30 +Gladiator's Medallion 208683 120 +Curse of Fragility 199954 45 +Casting Circle 221703 30 +Nether Ward 212295 45 +Soulshatter 212356 60 +Curse of Shadows 234877 30 + +Destro +Arcane Torrent 28730 90 +Create Soulwell 29893 120 +Havoc 80240 45 +Ritual of Summoning 698 120 +Soulstone 20707 600 +Summon Doomguard 18540 180 +Summon Infernal 1122 180 +Unending Resolve 104773 180 +Mortal Coil 6789 45 +Shadowfury 30283 30 +Cataclysm 152108 30 +Soul Harvest 196098 120 +Dark Pact 108416 60 +Grimoire of Service 108501 90 +Grimoire of Sacrifice 108503 30 +Channel Demonfire 196447 25 +Gladiator's Medallion 208683 120 +Curse of Fragility 199954 45 +Casting Circle 221703 30 +Nether Ward 212295 45 +Firestone 212284 25 +Bane of Havoc 200546 45 + +Demo +Arcane Torrent 28730 90 +Create Soulwell 29893 120 +Ritual of Summoning 698 120 +Soulstone 20707 600 +Summon Doomguard 18540 180 +Summon Infernal 1122 180 +Thal'kiel's Consumption 211714 45 +Unending Resolve 104773 180 +Mortal Coil 6789 45 +Shadowfury 30283 30 +Soul Harvest 196098 120 +Dark Pact 108416 60 +Grimoire of Service 108501 90 +Summon Darkglare 205180 24 +Gladiator's Medallion 208683 120 +Curse of Fragility 199954 45 +Casting Circle 221703 30 +Nether Ward 212295 45 +Call Felhunter 212619 24 +Call Fel Lord 212459 90 +Call Observer 201996 90 + + + +Monk +MW +Shadowmeld 58984 120 +Diffuse Magic 122783 90 +Fortifying Brew 243435 90 +Life Cocoon 116849 180 +Revival 115310 180 +Thunder Focus Tea 116680 30 +Transcendence: Transfer 119996 25 +Zen Pilgrimage 126892 60 +Chi Burst 123986 30 +Tiger's Lust 116841 30 +Ring of Peace 116844 45 +Leg Sweep 119381 45 +Diffuse Magic 122783 90 +Dampen Harm 122278 120 +Invoke Chi-Ji, the Red Crane 198664 180 +Mana Tea 197908 90 +Gladiator's Medallion 208683 120 +Zen Focus Tea 209584 45 +Way of the Crane 216113 45 + +BM +Shadowmeld 58984 120 +Chi Burst 123986 30 +Exploding Keg 214326 75 +Fortifying Brew 115203 420 +Tiger's Lust 116841 30 +Transcendence: Transfer 119996 25 +Zen Meditation 115176 300 +Zen Pilgrimage 126892 60 +Chi Burst 123986 30 +Tiger's Lust 116841 30 +Black Ox Brew 115399 90 +Ring of Peace 116844 45 +Leg Sweep 119381 45 +Dampen Harm 122278 120 +Invoke Niuzao, the Black Ox 132578 180 +Gladiator's Medallion 208683 120 +Guard 202162 45 +Double Barrel 202335 45 +Mighty Ox Kick 202370 30 + +WW +Shadowmeld 58984 120 +Chi Burst 123986 30 +Energizing Elixir 115288 60 +Fists of Fury 113656 24 +Flying Serpent Kick 101545 25 +Strike of the Windlord 205320 40 +Tiger's Lust 116841 30 +Touch of Death 115080 120 +Touch of Karma 122470 90 +Transcendence: Transfer 119996 25 +Whirling Dragon Punch 152175 24 +Zen Pilgrimage 126892 60 +Chi Burst 123986 30 +Tiger's Lust 116841 30 +Energizing Elixir 115288 60 +Ring of Peace 116844 45 +Leg Sweep 119381 45 +Diffuse Magic 122783 90 +Dampen Harm 122278 120 +Invoke Xuen, the White Tiger 123904 180 +Whirling Dragon Punch 152175 24 +Serenity 152173 90 +Gladiator's Medallion 208683 120 +Fortifying Brew 201318 90 +Zen Moment 201325 45 +Grapple Weapon 233759 60 + + + +Priest +Shadow +Arcane Torrent 232633 90 +Dispersion 47585 120 +Fade 586 30 +Mind Bomb 8122 60 +Shadow Crash 205385 30 +Shadowfiend 34433 180 +Silence 15487 45 +Vampiric Embrace 15286 180 +Void Torrent 205065 60 +Mind Bomb 205369 30 +Power Infusion 10060 120 +Mindbender 200174 60 +Shadow Crash 205385 30 +Surrender to Madness 193223 600 +Gladiator's Medallion 208683 120 +Psyfiend 211522 45 +Void Shift 108968 300 + +Holy +Arcane Torrent 232633 90 +Desperate Prayer 19236 90 +Divine Hymn 64843 180 +Fade 586 30 +Guardian Spirit 47788 240 +Holy Word: Chastise 88625 60 +Holy Word: Sanctify 34861 60 +Leap of Faith 73325 90 +Shining Force 204263 45 +Symbol of Hope 64901 360 +Halo 120517 40 +Apotheosis 200183 180 +Gladiator's Medallion 208683 120 +Inner Focus 196762 30 +Holy Ward 213610 30 +Greater Fade 213602 45 +Ray of Hope 197268 60 + +Disc +Arcane Torrent 232633 90 +Evangelism 246287 75 +Fade 586 30 +Leap of Faith 73325 90 +Light's Wrath 207946 90 +Mindbender 34433 180 +Pain Suppression 33206 240 +Power Word: Barrier 62618 180 +Psychic Scream 8122 60 +Rapture 47536 120 +Shining Force 204263 45 +Mindbender 123040 60 +Halo 120517 40 +Power Infusion 10060 120 +Evangelism 246287 75 +Gladiator's Medallion 208683 120 +Archangel 197862 60 +Dark Archangel 197871 60 + + + +DH +Havoc +Arcane Torrent 202719 90 +Honorable Medallion 195710 180 +Blur 198589 60 +Chaos Blades 247938 120 +Chaos Nova 179057 60 +Darkness 196718 180 +Eye Beam 198013 45 +Fury of the Illidari 201467 60 +Metamorphosis 191427 300 +Nemesis 206491 120 +Netherwalk 196555 120 +Spectral Sight 188501 30 +Vengeful Retreat 198793 25 +Netherwalk 196555 120 +Fel Eruption 211881 30 +Nemesis 206491 120 +Chaos Blades 247938 120 +Fel Barrage 211053 60 +Gladiator's Medallion 208683 120 +Reverse Magic 205604 60 +Eye of Leotheras 206649 45 +Rain from Above 206803 60 +Mana Break 203704 60 + +Veng +Arcane Torrent 202719 90 +Honorable Medallion 195710 180 +Demon Spikes 198793 25 +Fiery Brand 179057 60 +Immolation Aura 198013 45 +Metamorphosis 191427 300 +Sigil of Misery 207684 60 +Sigil of Silence 202137 60 +Soul Carver 207407 40 +Spectral Sight 188501 30 +Torment 198589 60 +Fel Eruption 211881 30 +Sigil of Chains 202138 90 +Fel Devastation 212084 60 +Demonic Infusion 236189 90 +Soul Barrier 227225 30 +Gladiator's Medallion 208683 120 +Reverse Magic 205604 60 +Eye of Leotheras 206649 45 +Demonic Trample 205629 30 +Illidan's Grasp 205630 60 + + + +DK +Blood +Arcane Torrent 50613 90 +Anti-Magic Shell 48707 60 +Asphyxiate 221562 45 +Blood Mirror 206977 120 +Blooddrinker 206931 30 +Consumption 205223 45 +Dancing Rune Weapon 49028 180 +Death and Decay 43265 30 +Death Gate 50977 60 +Gorefiend's Grasp 108199 120 +Icebound Fortitude 48792 180 +Raise Ally 61999 600 +Vampiric Blood 55233 90 +Wraith Walk 212552 45 +Blooddrinker 206931 30 +Tombstone 219809 60 +Bonestorm 194844 60 +Blood Mirror 206977 120 +Gladiator's Medallion 208683 120 +Dark Simulacrum 77606 25 +Anti-Magic Zone 51052 120 +Strangulate 47476 60 + +UH +Arcane Torrent 50613 90 +Anti-Magic Shell 48707 60 +Apocalypse 220143 90 +Army of the Dead 42650 600 +Corpse Shield 207319 60 +Dark Transformation 63560 60 +Death Gate 50977 60 +Defile 43265 30 +Icebound Fortitude 48792 180 +Raise Ally 61999 600 +Raise Dead 46584 60 +Summon Gargoyle 49206 180 +Wraith Walk 212552 45 +Blighted Rune Weapon 194918 60 +Asphyxiate 108194 45 +Corpse Shield 207319 60 +Dark Arbiter 207349 120 +Defile 152280 30 +Soul Reaper 130736 45 +Gladiator's Medallion 208683 120 +Dark Simulacrum 77606 25 +Anti-Magic Zone 51052 120 + +Frost +Arcane Torrent 50613 90 +Anti-Magic Shell 48707 60 +Breath of Sindragosa 152279 120 +Death Gate 50977 60 +Icebound Fortitude 48792 180 +Pillar of Frost 51271 60 +Raise Ally 61999 600 +Sindragosa's Fury 190778 300 +Wraith Walk 212552 45 +Horn of Winter 57330 30 +Blinding Sleet 207167 60 +Obliteration 207256 90 +Breath of Sindragosa 152279 120 +Gladiator's Medallion 208683 120 +Dark Simulacrum 77606 25 +Anti-Magic Zone 51052 120 +Chill Streak 204160 45 + + + +Rogue +Sub +Arcane Torrent 25046 90 +Honorable Medallion 195710 180 +Blind 2094 120 +Cloak of Shadows 31224 90 +Crimson Vial 185311 30 +Distract 1725 30 +Evasion 5277 120 +Goremaw's Bite 209782 60 +Marked for Death 137619 60 +Shadow Blades 121471 180 +Shroud of Concealment 114018 360 +Sprint 2983 120 +Tricks of the Trade 57934 30 +Vanish 1856 120 +Marked for Death 137619 60 +Gladiator's Medallion 208683 120 +Smoke Bomb 212182 180 +Cold Blood 213981 60 +Shadowy Duel 207736 120 + +Assa +Arcane Torrent 25046 90 +Honorable Medallion 195710 180 +Blind 2094 120 +Cloak of Shadows 31224 90 +Crimson Vial 185311 30 +Distract 1725 30 +Evasion 5277 120 +Kingsbane 192759 45 +Poisons 66 300 +Shroud of Concealment 114018 360 +Sprint 2983 120 +Toxic Blade 245388 25 +Tricks of the Trade 57934 30 +Vanish 1856 120 +Vendetta 79140 120 +Toxic Blade 245388 25 +Exsanguinate 200806 45 +Marked for Death 137619 60 +Gladiator's Medallion 208683 120 +Neurotoxin 206328 25 + +Outlaw +Arcane Torrent 25046 90 +Honorable Medallion 195710 180 +Adrenaline Rush 13750 180 +Blind 2094 120 +Bribe 199740 1800 +Cloak of Shadows 31224 90 +Crimson Vial 185311 30 +Curse of the Dreadblades 202665 90 +Distract 1725 30 +Grappling Hook 195457 30 +Marked for Death 137619 60 +Riposte 199754 120 +Shroud of Concealment 114018 360 +Sprint 2983 120 +Tricks of the Trade 57934 30 +Vanish 1856 120 +Grappling Hook 195457 30 +Cannonball Barrage 185767 60 +Killing Spree 51690 120 +Marked for Death 137619 60 +Gladiator's Medallion 208683 120 +Dismantle 207777 45 +Plunder Armor 198529 120 + + + +Mage +Frost +Arcane Torrent 28730 90 +Honorable Medallion 195710 180 +Teleportation Nexus 223413 43200 +Cold Snap 235219 300 +Counterspell 2139 24 +Displacement 212801 30 +Ebonbolt 214634 45 +Frozen Orb 84714 60 +Ice Barrier 11426 25 +Ice Block 45438 240 +Icy Veins 12472 180 +Invisibility 66 300 +Time Warp 80353 300 +Lonely Winter 31687 60 +Ray of Frost 205021 60 +Mirror Image 55342 120 +Ice Nova 157997 25 +Frozen Touch 205030 30 +Ring of Frost 113724 45 +Comet Storm 153595 30 +Gladiator's Medallion 208683 120 +Temporal Shield 198111 45 +Ice Form 198144 60 + +Arcane +Arcane Torrent 28730 90 +Honorable Medallion 195710 180 +Teleportation Nexus 223413 43200 +Arcane Power 12042 90 +Counterspell 2139 24 +Displacement 195676 30 +Greater Invisibility 66 300 +Ice Block 45438 240 +Mark of Aluneth 224968 60 +Presence of Mind 205025 60 +Prismatic Barrier 235450 25 +Time Warp 80353 300 +Mirror Image 55342 120 +Supernova 157980 25 +Charged Up 205032 40 +Ring of Frost 113724 45 +Erosion 205039 60 +Gladiator's Medallion 208683 120 +Temporal Shield 198111 45 +Rewind Time 213220 30 +Mass Invisibility 198158 60 + +Fire +Arcane Torrent 28730 90 +Honorable Medallion 195710 180 +Teleportation Nexus 223413 43200 +Blazing Barrier 235313 25 +Combustion 190319 120 +Counterspell 2139 24 +Ice Block 45438 240 +Invisibility 66 300 +Time Warp 80353 300 +Blast Wave 157981 25 +Mirror Image 55342 120 +Alexstrasza's Fury 235870 45 +Ring of Frost 113724 45 +Meteor 153561 45 +Gladiator's Medallion 208683 120 +Temporal Shield 198111 45 + +Every Man for Himself 59752 + + +Blessing of Freedom 1044 +Blessing of Sacrifice 6940 Death from Above 152150 \ No newline at end of file diff --git a/Random Trash/TomTom/2.lua b/WeakAuras/Projects/Random Trash/TomTom/2.lua similarity index 96% rename from Random Trash/TomTom/2.lua rename to WeakAuras/Projects/Random Trash/TomTom/2.lua index 4937ff0..46cf104 100644 --- a/Random Trash/TomTom/2.lua +++ b/WeakAuras/Projects/Random Trash/TomTom/2.lua @@ -1,46 +1,46 @@ --- TODO: Make this not suck -function TomTom:AddWaypoint(x, y, desc, persistent, minimap, world, silent) - 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 - - 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 - - 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 - - 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) -end - -function TomTom:SetCustomMFWaypoint(m, f, x, y, opts) - opts.persistent = false - - return self:AddMFWaypoint(m, f, x, y, opts) -end +-- TODO: Make this not suck +function TomTom:AddWaypoint(x, y, desc, persistent, minimap, world, silent) + 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 + + 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 + + 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 + + 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) +end + +function TomTom:SetCustomMFWaypoint(m, f, x, y, opts) + opts.persistent = false + + return self:AddMFWaypoint(m, f, x, y, opts) +end diff --git a/Random Trash/TomTom/3.lua b/WeakAuras/Projects/Random Trash/TomTom/3.lua similarity index 97% rename from Random Trash/TomTom/3.lua rename to WeakAuras/Projects/Random Trash/TomTom/3.lua index 9e0b7f3..d5f503f 100644 --- a/Random Trash/TomTom/3.lua +++ b/WeakAuras/Projects/Random Trash/TomTom/3.lua @@ -1,58 +1,58 @@ -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.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) 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 - - -- 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 - - -- uid is the 'new waypoint' called this for historical reasons - local uid = { m, f, x, y, title = opts.title } - - -- 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 - - -- 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 - - 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 -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 +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.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) 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 + + -- 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 + + -- uid is the 'new waypoint' called this for historical reasons + local uid = { m, f, x, y, title = opts.title } + + -- 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 + + -- 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 + + 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 +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 diff --git a/Random Trash/TomTom/TomTom.lua b/WeakAuras/Projects/Random Trash/TomTom/TomTom.lua similarity index 96% rename from Random Trash/TomTom/TomTom.lua rename to WeakAuras/Projects/Random Trash/TomTom/TomTom.lua index ff04df5..5519458 100644 --- a/Random Trash/TomTom/TomTom.lua +++ b/WeakAuras/Projects/Random Trash/TomTom/TomTom.lua @@ -1,1344 +1,1344 @@ ---[[-------------------------------------------------------------------------- --- TomTom by Cladhaire --- --- All Rights Reserved -----------------------------------------------------------------------------]] - --- Simple localization table for messages -local L = TomTomLocals -local ldb = LibStub("LibDataBroker-1.1") -local hbd = LibStub("HereBeDragons-1.0") - -local addonName, addon = ... -local TomTom = addon - -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 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, - 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, - 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, - closestusecontinent = 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, - }, - }, - } - - 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.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.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 - - 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() - - 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 - - coordFeedFrame:SetScript("OnUpdate", function(self, elapsed) - counter = counter + elapsed - if counter < throttle then return end - - 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 -end - --- Some utility functions that can pack/unpack data from a waypoint - --- Returns a hashable 'key' for a given waypoint consisting of the --- 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) -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 - - -- 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)) - return key -end - --- Returns the player's current coordinates without flipping the map or --- causing any other weirdness. This can and will cause the coordinates to be --- 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 -end - -function TomTom:GetCurrentPlayerPosition() - 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 - - 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 -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 - - for map, data in pairs(self.waypointprofile) do - for key, waypoint in pairs(data) do - waypoint.minimap = minimap - waypoint.world = sorld - waypoint.cleardistance = cleardistance - waypoint.arrivaldistance = arrivaldistance - end - end -end - -function TomTom:ReloadWaypoints() - self:ClearAllWaypoints() - - waypoints = {} - self.waypoints = waypoints - self.waypointprofile = self.waydb.profile - - 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 - - -- Set up default options - local options = { - desc = title, - title = title, - persistent = waypoint.persistent, - minimap = minimap, - world = world, - callbacks = nil, - silent = true, - } - - -- Override options with what is stored in the profile - for k, v in pairs(waypoint) do - if type(k) == "string" then - if k ~= "callbacks" then - -- we can never import callbacks, so ditch them - options[k] = v - end - end - end - - self:AddMFWaypoint(m, f, x, y, options) - end - end -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) -hooksecurefunc("WorldMap_ToggleSizeUp", function() - mapSizedUp = true - TomTom:ShowHideWorldCoords() -end) -hooksecurefunc("WorldMap_ToggleSizeDown", function() - 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 - - 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 - - TomTomWorldFrame.Player:Hide() - TomTomWorldFrame.Cursor:Hide() - - if self.profile.mapcoords.playerenable then TomTomWorldFrame.Player:Show() end - - if self.profile.mapcoords.cursorenable then TomTomWorldFrame.Cursor:Show() 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) - - 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) - - -- 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 - - -- 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 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, -} - -local origScript = WorldMapButton_OnClick -WorldMapButton_OnClick = function(self, ...) - 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 m, f = GetCurrentMapAreaID() - local x, y = GetCurrentCursorPosition() - - 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 -end - -if WorldMapButton:GetScript("OnClick") == origScript then - 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 -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, -} - -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] - - 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 - - -- 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 - - -- 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 -end - -function TomTom:InitializeDropdown(uid) - 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] - - 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) -end - -function TomTom:CHAT_MSG_ADDON(event, prefix, data, channel, sender) - 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 - - 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) -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 -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 -end - -local function _both_tooltip_show(event, tooltip, uid, dist) - 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: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) -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) -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 -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 -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 -end - -local function _remove(event, uid) - 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 - - -- 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 key = TomTom:GetKey(data) - local mapId = data[1] - local sv = TomTom.waypointprofile[mapId] - - 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 -end - --- TODO: Make this not suck -function TomTom:AddWaypoint(x, y, desc, persistent, minimap, world, silent) - 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 - - 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 - - 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 - - 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 --- more detailed functionality without losing the tooltip and onclick --- functionality. --- --- Options that are used in this 'opts' table in this function: --- * cleardistance - When the player is this far from the waypoint, the --- waypoint will be removed. --- * arrivaldistance - When the player is within this radius of the waypoint, --- the crazy arrow will change to the 'downwards' arrow, indicating that --- the player has arrived. - -function TomTom:DefaultCallbacks(opts) - opts = opts or {} - - local callbacks = { - minimap = { - onclick = _minimap_onclick, - tooltip_show = _minimap_tooltip_show, - tooltip_update = _both_tooltip_update, - }, - world = { - onclick = _world_onclick, - tooltip_show = _world_tooltip_show, - tooltip_update = _both_tooltip_show, - }, - distance = {}, - } - - 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 - - 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 - -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.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) 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 - - -- 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 - - -- uid is the 'new waypoint' called this for historical reasons - local uid = { m, f, x, y, title = opts.title } - - -- 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 - - -- 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 - - 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 -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 -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 -end - -function TomTom:WaypointExists(c, z, 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) -end - -function TomTom:SetCustomMFWaypoint(m, f, x, y, opts) - opts.persistent = false - - 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 - - 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 - - local coord_throttle = 0 - function WorldMap_OnUpdate(self, elapsed) - coord_throttle = coord_throttle + elapsed - if coord_throttle <= TomTom.profile.mapcoords.throttle then return end - - coord_throttle = 0 - 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 - - 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 -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 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 - - 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_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 -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"]) -end - -function TomTom:GetClosestWaypoint() - local m, f, x, y = self:GetCurrentPlayerPosition() - local c = hbd:GetCZFromMapID(m) - - local closest_waypoint = nil - local closest_dist = nil - - if not self.profile.arrow.closestusecontinent then - -- Simple search within this zone - if waypoints[m] then - for key, waypoint in pairs(waypoints[m]) do - local dist, x, y = TomTom:GetDistanceToWaypoint(waypoint) - if (dist and closest_dist == nil) or (dist and dist < closest_dist) then - closest_dist = dist - closest_waypoint = waypoint - end - end - end - else - -- Search all waypoints on this continent - for map, waypoints in pairs(waypoints) do - if c == hbd:GetCZFromMapID(m) then - for key, waypoint in pairs(waypoints) do - local dist, x, y = TomTom:GetDistanceToWaypoint(waypoint) - if (dist and closest_dist == nil) or (dist and dist < closest_dist) then - closest_dist = dist - closest_waypoint = waypoint - end - end - end - end - 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 -end - -SLASH_TOMTOM_CLOSEST_WAYPOINT1 = "/cway" -SLASH_TOMTOM_CLOSEST_WAYPOINT2 = "/closestway" -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 backm, backf, backx, backy = TomTom:GetCurrentPlayerPosition() - TomTom:AddMFWaypoint(backm, backf, backx, backy, { - title = title, - }) -end - -SLASH_TOMTOM_WAY1 = "/way" -SLASH_TOMTOM_WAY2 = "/tway" -SLASH_TOMTOM_WAY3 = "/tomtomway" - -local nameToMapId = {} -do - -- 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 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 - - 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 - - -- 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" - --- 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 - - -- 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 - 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) - - 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) - - 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 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 - - -- 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 - - -- 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 - - 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] - - x = x and tonumber(x) - y = y and tonumber(y) - - 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) - - 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 +--[[-------------------------------------------------------------------------- +-- TomTom by Cladhaire +-- +-- All Rights Reserved +----------------------------------------------------------------------------]] + +-- Simple localization table for messages +local L = TomTomLocals +local ldb = LibStub("LibDataBroker-1.1") +local hbd = LibStub("HereBeDragons-1.0") + +local addonName, addon = ... +local TomTom = addon + +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 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, + 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, + 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, + closestusecontinent = 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, + }, + }, + } + + 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.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.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 + + 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() + + 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 + + coordFeedFrame:SetScript("OnUpdate", function(self, elapsed) + counter = counter + elapsed + if counter < throttle then return end + + 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 +end + +-- Some utility functions that can pack/unpack data from a waypoint + +-- Returns a hashable 'key' for a given waypoint consisting of the +-- 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) +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 + + -- 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)) + return key +end + +-- Returns the player's current coordinates without flipping the map or +-- causing any other weirdness. This can and will cause the coordinates to be +-- 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 +end + +function TomTom:GetCurrentPlayerPosition() + 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 + + 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 +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 + + for map, data in pairs(self.waypointprofile) do + for key, waypoint in pairs(data) do + waypoint.minimap = minimap + waypoint.world = sorld + waypoint.cleardistance = cleardistance + waypoint.arrivaldistance = arrivaldistance + end + end +end + +function TomTom:ReloadWaypoints() + self:ClearAllWaypoints() + + waypoints = {} + self.waypoints = waypoints + self.waypointprofile = self.waydb.profile + + 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 + + -- Set up default options + local options = { + desc = title, + title = title, + persistent = waypoint.persistent, + minimap = minimap, + world = world, + callbacks = nil, + silent = true, + } + + -- Override options with what is stored in the profile + for k, v in pairs(waypoint) do + if type(k) == "string" then + if k ~= "callbacks" then + -- we can never import callbacks, so ditch them + options[k] = v + end + end + end + + self:AddMFWaypoint(m, f, x, y, options) + end + end +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) +hooksecurefunc("WorldMap_ToggleSizeUp", function() + mapSizedUp = true + TomTom:ShowHideWorldCoords() +end) +hooksecurefunc("WorldMap_ToggleSizeDown", function() + 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 + + 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 + + TomTomWorldFrame.Player:Hide() + TomTomWorldFrame.Cursor:Hide() + + if self.profile.mapcoords.playerenable then TomTomWorldFrame.Player:Show() end + + if self.profile.mapcoords.cursorenable then TomTomWorldFrame.Cursor:Show() 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) + + 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) + + -- 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 + + -- 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 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, +} + +local origScript = WorldMapButton_OnClick +WorldMapButton_OnClick = function(self, ...) + 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 m, f = GetCurrentMapAreaID() + local x, y = GetCurrentCursorPosition() + + 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 +end + +if WorldMapButton:GetScript("OnClick") == origScript then + 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 +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, +} + +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] + + 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 + + -- 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 + + -- 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 +end + +function TomTom:InitializeDropdown(uid) + 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] + + 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) +end + +function TomTom:CHAT_MSG_ADDON(event, prefix, data, channel, sender) + 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 + + 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) +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 +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 +end + +local function _both_tooltip_show(event, tooltip, uid, dist) + 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: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) +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) +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 +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 +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 +end + +local function _remove(event, uid) + 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 + + -- 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 key = TomTom:GetKey(data) + local mapId = data[1] + local sv = TomTom.waypointprofile[mapId] + + 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 +end + +-- TODO: Make this not suck +function TomTom:AddWaypoint(x, y, desc, persistent, minimap, world, silent) + 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 + + 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 + + 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 + + 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 +-- more detailed functionality without losing the tooltip and onclick +-- functionality. +-- +-- Options that are used in this 'opts' table in this function: +-- * cleardistance - When the player is this far from the waypoint, the +-- waypoint will be removed. +-- * arrivaldistance - When the player is within this radius of the waypoint, +-- the crazy arrow will change to the 'downwards' arrow, indicating that +-- the player has arrived. + +function TomTom:DefaultCallbacks(opts) + opts = opts or {} + + local callbacks = { + minimap = { + onclick = _minimap_onclick, + tooltip_show = _minimap_tooltip_show, + tooltip_update = _both_tooltip_update, + }, + world = { + onclick = _world_onclick, + tooltip_show = _world_tooltip_show, + tooltip_update = _both_tooltip_show, + }, + distance = {}, + } + + 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 + + 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 + +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.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) 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 + + -- 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 + + -- uid is the 'new waypoint' called this for historical reasons + local uid = { m, f, x, y, title = opts.title } + + -- 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 + + -- 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 + + 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 +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 +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 +end + +function TomTom:WaypointExists(c, z, 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) +end + +function TomTom:SetCustomMFWaypoint(m, f, x, y, opts) + opts.persistent = false + + 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 + + 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 + + local coord_throttle = 0 + function WorldMap_OnUpdate(self, elapsed) + coord_throttle = coord_throttle + elapsed + if coord_throttle <= TomTom.profile.mapcoords.throttle then return end + + coord_throttle = 0 + 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 + + 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 +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 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 + + 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_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 +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"]) +end + +function TomTom:GetClosestWaypoint() + local m, f, x, y = self:GetCurrentPlayerPosition() + local c = hbd:GetCZFromMapID(m) + + local closest_waypoint = nil + local closest_dist = nil + + if not self.profile.arrow.closestusecontinent then + -- Simple search within this zone + if waypoints[m] then + for key, waypoint in pairs(waypoints[m]) do + local dist, x, y = TomTom:GetDistanceToWaypoint(waypoint) + if (dist and closest_dist == nil) or (dist and dist < closest_dist) then + closest_dist = dist + closest_waypoint = waypoint + end + end + end + else + -- Search all waypoints on this continent + for map, waypoints in pairs(waypoints) do + if c == hbd:GetCZFromMapID(m) then + for key, waypoint in pairs(waypoints) do + local dist, x, y = TomTom:GetDistanceToWaypoint(waypoint) + if (dist and closest_dist == nil) or (dist and dist < closest_dist) then + closest_dist = dist + closest_waypoint = waypoint + end + end + end + end + 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 +end + +SLASH_TOMTOM_CLOSEST_WAYPOINT1 = "/cway" +SLASH_TOMTOM_CLOSEST_WAYPOINT2 = "/closestway" +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 backm, backf, backx, backy = TomTom:GetCurrentPlayerPosition() + TomTom:AddMFWaypoint(backm, backf, backx, backy, { + title = title, + }) +end + +SLASH_TOMTOM_WAY1 = "/way" +SLASH_TOMTOM_WAY2 = "/tway" +SLASH_TOMTOM_WAY3 = "/tomtomway" + +local nameToMapId = {} +do + -- 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 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 + + 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 + + -- 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" + +-- 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 + + -- 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 + 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) + + 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) + + 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 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 + + -- 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 + + -- 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 + + 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] + + x = x and tonumber(x) + y = y and tonumber(y) + + 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) + + 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/Random Trash/idk/idk.lua b/WeakAuras/Projects/Random Trash/idk/idk.lua similarity index 95% rename from Random Trash/idk/idk.lua rename to WeakAuras/Projects/Random Trash/idk/idk.lua index 183514d..beea49e 100644 --- a/Random Trash/idk/idk.lua +++ b/WeakAuras/Projects/Random Trash/idk/idk.lua @@ -1,65 +1,65 @@ -function() - FriendlyPlayerNameplateIds = {} - local pointer = 1 - for i = 1, 40 do - if UnitIsPlayer("nameplate" .. i) == true then - FriendlyPlayerNameplateIds[pointer] = i - pointer = pointer + 1 - end - end -end - - - -UnitIsFriend("player", "nameplate" .. i) - - - - -function() - local output = "" - for k,v in ipairs(FriendlyPlayerNameplateIds) do - if UnitName("nameplate" .. v) ~= nil then - output = output .. string.match(UnitName("nameplate" .. v), "%a+") .. " " .. UnitHealth("nameplate" .. v) .. "/" .. UnitHealthMax("nameplate" .. v) .. "\n" - end - end - return output -end - - - - - - -function() - local output = "" - FriendlyPlayerNameplateIds = {} - local pointer = 1 - for i = 1, 40 do - if UnitIsPlayer("nameplate" .. i) == true then - FriendlyPlayerNameplateIds[pointer] = i - pointer = pointer + 1 - output = output .. i .. " " .. string.match(UnitName("nameplate" .. i), "%a+") .. "\n" - end - end - output = output .. "\n\n\n" - for k,v in ipairs(FriendlyPlayerNameplateIds) do - output = output .. k .. " " .. v .. "\n" - end - return output -end - - - - - - - -local f = CreateFrame("Button", "name", UIParent, "SecureUnitButtonTemplate") -f:SetAttribute("unit", "player") -- or whatever unit you're making -f:EnableMouse(true) -f:SetSize(100, 20) -- width 100, height 20 -f:SetAllPoints(WeakAuras.regions[aura_env.id].region) -f:RegisterForClicks("LeftButtonUp", "RightButtonUp") -f:SetAttribute("type1", "target") -- Left click targets unit +function() + FriendlyPlayerNameplateIds = {} + local pointer = 1 + for i = 1, 40 do + if UnitIsPlayer("nameplate" .. i) == true then + FriendlyPlayerNameplateIds[pointer] = i + pointer = pointer + 1 + end + end +end + + + +UnitIsFriend("player", "nameplate" .. i) + + + + +function() + local output = "" + for k,v in ipairs(FriendlyPlayerNameplateIds) do + if UnitName("nameplate" .. v) ~= nil then + output = output .. string.match(UnitName("nameplate" .. v), "%a+") .. " " .. UnitHealth("nameplate" .. v) .. "/" .. UnitHealthMax("nameplate" .. v) .. "\n" + end + end + return output +end + + + + + + +function() + local output = "" + FriendlyPlayerNameplateIds = {} + local pointer = 1 + for i = 1, 40 do + if UnitIsPlayer("nameplate" .. i) == true then + FriendlyPlayerNameplateIds[pointer] = i + pointer = pointer + 1 + output = output .. i .. " " .. string.match(UnitName("nameplate" .. i), "%a+") .. "\n" + end + end + output = output .. "\n\n\n" + for k,v in ipairs(FriendlyPlayerNameplateIds) do + output = output .. k .. " " .. v .. "\n" + end + return output +end + + + + + + + +local f = CreateFrame("Button", "name", UIParent, "SecureUnitButtonTemplate") +f:SetAttribute("unit", "player") -- or whatever unit you're making +f:EnableMouse(true) +f:SetSize(100, 20) -- width 100, height 20 +f:SetAllPoints(WeakAuras.regions[aura_env.id].region) +f:RegisterForClicks("LeftButtonUp", "RightButtonUp") +f:SetAttribute("type1", "target") -- Left click targets unit f:SetAttribute("type2", "togglemenu") -- Right click opens the context menu \ No newline at end of file diff --git a/Random Trash/idk/idk2.lua b/WeakAuras/Projects/Random Trash/idk/idk2.lua similarity index 94% rename from Random Trash/idk/idk2.lua rename to WeakAuras/Projects/Random Trash/idk/idk2.lua index 7239e58..a35b3c7 100644 --- a/Random Trash/idk/idk2.lua +++ b/WeakAuras/Projects/Random Trash/idk/idk2.lua @@ -1,89 +1,89 @@ ---https://wago.io/VJb37XBIb -{ - "m": "d", - "s": "2.1.0.27", - "d": { - "yOffset": -13, - "width": 185, - "version": 1, - "id": "Player Frame Clickable", - "additional_triggers": [ - { - "untrigger": [], - "trigger": { - "unit": "player", - "use_unit": true, - "use_alwaystrue": true, - "event": "Conditions", - "subeventPrefix": "SPELL", - "subeventSuffix": "_CAST_START", - "type": "status", - "unevent": "auto" -} -} -], -"numTriggers": 2, -"disjunctive": "any", -"regionType": "texture", -"load": { -"use_never": false, -"faction": { -"multi": [] -}, -"difficulty": { -"multi": [] -}, -"role": { -"multi": [] -}, -"talent": { -"multi": [] -}, -"race": { -"multi": [] -} -}, -"trigger": { -"custom": "function(event) -return false -end -", -"events": "PLAYER_ENTERING_WORLD", -"type": "custom", -"custom_type": "status", -"custom_hide": "timed" -}, -"init_completed": 1, -"color": [ -null, -null, -null, -0 -], -"url": "https://wago.io/VJb37XBIb/1", -"untrigger": { -"custom": function() -if LeafPlayerFrame then -else - local r = WeakAuras.regions[aura_env.id].region - local f = CreateFrame("button", "LeafPlayerFrame", r, "SecureActionButtonTemplate") - f.unit = 'player' - f:SetAttribute("unit", "player") - f:SetAllPoints(r) - f:EnableMouse(true) - f:RegisterForClicks("LeftButtonUp", "RightButtonUp") - f:SetAttribute("type1", "target") - f:SetAttribute("type2", "togglemenu") - RegisterUnitWatch(f) - f:SetScript("OnEnter",UnitFrame_OnEnter) -end -end -" -}, -"height": 20, -"texture": "interface\\addons\\LeafPack\\Other\\Square Frame.tga", -"semver": "1.0.0" -}, -"v": 1421, -"wagoID": "VJb37XBIb" +--https://wago.io/VJb37XBIb +{ + "m": "d", + "s": "2.1.0.27", + "d": { + "yOffset": -13, + "width": 185, + "version": 1, + "id": "Player Frame Clickable", + "additional_triggers": [ + { + "untrigger": [], + "trigger": { + "unit": "player", + "use_unit": true, + "use_alwaystrue": true, + "event": "Conditions", + "subeventPrefix": "SPELL", + "subeventSuffix": "_CAST_START", + "type": "status", + "unevent": "auto" +} +} +], +"numTriggers": 2, +"disjunctive": "any", +"regionType": "texture", +"load": { +"use_never": false, +"faction": { +"multi": [] +}, +"difficulty": { +"multi": [] +}, +"role": { +"multi": [] +}, +"talent": { +"multi": [] +}, +"race": { +"multi": [] +} +}, +"trigger": { +"custom": "function(event) +return false +end +", +"events": "PLAYER_ENTERING_WORLD", +"type": "custom", +"custom_type": "status", +"custom_hide": "timed" +}, +"init_completed": 1, +"color": [ +null, +null, +null, +0 +], +"url": "https://wago.io/VJb37XBIb/1", +"untrigger": { +"custom": function() +if LeafPlayerFrame then +else + local r = WeakAuras.regions[aura_env.id].region + local f = CreateFrame("button", "LeafPlayerFrame", r, "SecureActionButtonTemplate") + f.unit = 'player' + f:SetAttribute("unit", "player") + f:SetAllPoints(r) + f:EnableMouse(true) + f:RegisterForClicks("LeftButtonUp", "RightButtonUp") + f:SetAttribute("type1", "target") + f:SetAttribute("type2", "togglemenu") + RegisterUnitWatch(f) + f:SetScript("OnEnter",UnitFrame_OnEnter) +end +end +" +}, +"height": 20, +"texture": "interface\\addons\\LeafPack\\Other\\Square Frame.tga", +"semver": "1.0.0" +}, +"v": 1421, +"wagoID": "VJb37XBIb" } \ No newline at end of file diff --git a/Random Trash/idk/idk3.lua b/WeakAuras/Projects/Random Trash/idk/idk3.lua similarity index 95% rename from Random Trash/idk/idk3.lua rename to WeakAuras/Projects/Random Trash/idk/idk3.lua index 3e39521..9e14bb3 100644 --- a/Random Trash/idk/idk3.lua +++ b/WeakAuras/Projects/Random Trash/idk/idk3.lua @@ -1,1333 +1,1333 @@ ---https://wago.io/V1NFD3AxM -{ - "m": "d", - "s": "2.2.2.0", - "c": [ - { - "yOffset": -210, - "outline": "None", - "id": "Target Name", - "additional_triggers": [], - "font": "bignoodle", - "regionType": "text", - "animation": { - "main": { - "colorA": 1, - "x": 0, - "duration": "100", - "colorFunc": return function(r1, g1, b1, a1, r2, g2, b2, a2) local class = UnitClass("target") - local red, green, blue = 1,1,0 - - if class == "Death Knight" then - red, green, blue = 0.77,0.12,0.23 - - elseif class == "Demon Hunter" then - red, green, blue = 0.64,0.19,0.79 - - elseif class == "Druid" then - red, green, blue = 1.00,0.49,0.04 - - elseif class == "Hunter" then - red, green, blue = 0.67,0.83,0.45 - - elseif class == "Mage" then - red, green, blue = 0.41,0.80,0.94 - - elseif class == "Monk" then - red, green, blue = 0,255,150 - - elseif class == "Paladin" then - red, green, blue = 0.96,0.55,0.73 - - elseif class == "Priest" then - red, green, blue = 1.00,1.00,1.00 - - elseif class == "Rogue" then - red, green, blue = 1.00,0.96,0.41 - - elseif class == "Shaman" then - red, green, blue = 0.0,0.44,0.87 - - elseif class == "Warlock" then - red, green, blue = 0.58,0.51,0.79 - - else red, green, blue = 0.78,0.61,0.43 -- Warrior, formatted slightly different. - end - - return red, green, blue, 1 - end - - - - ", - "y": 0, - "scalex": 1, - "scaley": 1, - "use_color": true, - "colorType": "custom", - "rotate": 0, - "colorG": 1, - "alpha": 0, - "type": "custom", - "colorR": 1, - "colorB": 1, - "duration_type": "relative" -} -}, -"activeTriggerMode": 0, -"init_completed": 1, -"numTriggers": 1, -"frameStrata": 5, -"displayText": "%n", -"xOffset": 158, -"customText": "function(r1, g1, b1, a1, r2, g2, b2, a2) - -local class = UnitClass("target") -local red, green, blue = 1,1,0 - -if class == "Death Knight" then - red, green, blue = 0.77,0.12,0.23 - - elseif class == "Demon Hunter" then - red, green, blue = 0.64,0.19,0.79 - - elseif class == "Druid" then - red, green, blue = 1.00,0.49,0.04 - - elseif class == "Hunter" then - red, green, blue = 0.67,0.83,0.45 - - elseif class == "Mage" then - red, green, blue = 0.41,0.80,0.94 - - elseif class == "Monk" then - red, green, blue = 0,255,150 - - elseif class == "Paladin" then - red, green, blue = 0.96,0.55,0.73 - - elseif class == "Priest" then - red, green, blue = 1.00,1.00,1.00 - - elseif class == "Rogue" then - red, green, blue = 1.00,0.96,0.41 - - elseif class == "Shaman" then - red, green, blue = 0.0,0.44,0.87 - - elseif class == "Warlock" then - red, green, blue = 0.58,0.51,0.79 - - else red, green, blue = 0.78,0.61,0.43 -- Warrior, formatted slightly different. - end - - return red, green, blue, 1 - end - - - - ", - "load": { - "difficulty": { - "multi": [] - }, - "faction": { - "multi": [] - }, - "class": { - "single": "HUNTER", - "multi": { - "DRUID": true -} -}, -"talent": { -"multi": [] -}, -"race": { -"multi": [] -}, -"role": { -"multi": [] -}, -"use_name": false, -"use_never": false, -"pvptalent": { -"multi": [] -} -}, -"trigger": { -"unit": "target", -"use_percenthealth": false, -"unevent": "auto", -"events": "PLAYER_ENTERING_WORLD", -"use_unit": true, -"type": "status", -"custom_type": "status", -"custom_hide": "timed", -"check": "event" -}, -"selfPoint": "LEFT", -"untrigger": { -"unit": "target" -}, -"width": 53.333267211914, -"height": 17.777723312378, -"fontSize": 18, -"url": "https://wago.io/V1NFD3AxM/1", -"version": 1, -"semver": "1.0.0" -}, -{ - "yOffset": -211, - "outline": "None", - "color": [ - 0, - 0, - 0 - ], - "additional_triggers": [], - "font": "bignoodle", - "regionType": "text", - "animation": { - "main": { - "scalex": 1, - "x": 0, - "duration": "100", - "y": 0, - "colorFunc": "return function(r1, g1, b1, a1, r2, g2, b2, a2) - - local class = UnitClass("target") - local red, green, blue = 1,1,0 - - if class == "Death Knight" then - red, green, blue = 0.77,0.12,0.23 - - elseif class == "Demon Hunter" then - red, green, blue = 0.64,0.19,0.79 - - elseif class == "Druid" then - red, green, blue = 1.00,0.49,0.04 - - elseif class == "Hunter" then - red, green, blue = 0.67,0.83,0.45 - - elseif class == "Mage" then - red, green, blue = 0.41,0.80,0.94 - - elseif class == "Monk" then - red, green, blue = 0,255,150 - - elseif class == "Paladin" then - red, green, blue = 0.96,0.55,0.73 - - elseif class == "Priest" then - red, green, blue = 1.00,1.00,1.00 - - elseif class == "Rogue" then - red, green, blue = 1.00,0.96,0.41 - - elseif class == "Shaman" then - red, green, blue = 0.0,0.44,0.87 - - elseif class == "Warlock" then - red, green, blue = 0.58,0.51,0.79 - - else red, green, blue = 0.78,0.61,0.43 -- Warrior, formatted slightly different. - end - - return red, green, blue, 1 - end - - - - ", - "scaley": 1, - "duration_type": "relative", - "colorType": "custom", - "use_color": true, - "rotate": 0, - "alpha": 0, - "colorG": 1, - "colorR": 1, - "colorB": 1, - "colorA": 1 -} -}, -"activeTriggerMode": 0, -"init_completed": 1, -"numTriggers": 1, -"frameStrata": 4, -"displayText": "%n", -"xOffset": 158.5, -"customText": "function(r1, g1, b1, a1, r2, g2, b2, a2) - -local class = UnitClass("target") -local red, green, blue = 1,1,0 - -if class == "Death Knight" then - red, green, blue = 0.77,0.12,0.23 - - elseif class == "Demon Hunter" then - red, green, blue = 0.64,0.19,0.79 - - elseif class == "Druid" then - red, green, blue = 1.00,0.49,0.04 - - elseif class == "Hunter" then - red, green, blue = 0.67,0.83,0.45 - - elseif class == "Mage" then - red, green, blue = 0.41,0.80,0.94 - - elseif class == "Monk" then - red, green, blue = 0,255,150 - - elseif class == "Paladin" then - red, green, blue = 0.96,0.55,0.73 - - elseif class == "Priest" then - red, green, blue = 1.00,1.00,1.00 - - elseif class == "Rogue" then - red, green, blue = 1.00,0.96,0.41 - - elseif class == "Shaman" then - red, green, blue = 0.0,0.44,0.87 - - elseif class == "Warlock" then - red, green, blue = 0.58,0.51,0.79 - - else red, green, blue = 0.78,0.61,0.43 -- Warrior, formatted slightly different. - end - - return red, green, blue, 1 - end - - - - ", - "id": "Target Name Shadow", - "load": { - "use_never": false, - "faction": { - "multi": [] - }, - "class": { - "single": "HUNTER", - "multi": { - "DRUID": true -} -}, -"talent": { -"multi": [] -}, -"race": { -"multi": [] -}, -"role": { -"multi": [] -}, -"use_name": false, -"difficulty": { -"multi": [] -}, -"pvptalent": { -"multi": [] -} -}, -"trigger": { -"unit": "target", -"use_percenthealth": false, -"unevent": "auto", -"events": "PLAYER_ENTERING_WORLD", -"use_unit": true, -"type": "status", -"custom_type": "status", -"custom_hide": "timed", -"check": "event" -}, -"width": 53.333358764648, -"untrigger": { -"unit": "target" -}, -"selfPoint": "LEFT", -"height": 17.777723312378, -"fontSize": 18, -"url": "https://wago.io/V1NFD3AxM/1", -"version": 1, -"semver": "1.0.0" -}, -{ - "yOffset": -210, - "outline": "None", - "id": "Target HP", - "additional_triggers": [], - "font": "bignoodle", - "regionType": "text", - "activeTriggerMode": 0, - "init_completed": 1, - "numTriggers": 1, - "frameStrata": 5, - "displayText": "%c", - "xOffset": -151, - "customText": "function() - if UnitIsDead("target") then - return "0" - end - - local health = UnitHealth("target") - if health >= 1000000 then - health = string.format("%.1fm", health / 1000000) -- 2.4m - elseif health >= 10000 then - health = string.format("%dk", health / 1000) -- 24k, 240k - elseif health >= 1000 then - health = string.format("%.1fk", health / 1000) -- 2.4k - end - - if UnitIsDead("target") then - return "0" - end - - local targethp = string.format("%.f", (UnitHealth("target")/UnitHealthMax("target"))*100) - - return string.format("%s | %s", targethp, health) - end", - "load": { - "difficulty": { - "multi": [] - }, - "faction": { - "multi": [] - }, - "class": { - "single": "HUNTER", - "multi": { - "DRUID": true - } - }, - "talent": { - "multi": [] - }, - "race": { - "multi": [] - }, - "role": { - "multi": [] - }, - "use_name": false, - "use_never": false, - "pvptalent": { - "multi": [] - } - }, - "trigger": { - "unit": "target", - "use_percenthealth": false, - "unevent": "auto", - "events": "PLAYER_ENTERING_WORLD", - "use_unit": true, - "type": "status", - "custom_type": "status", - "custom_hide": "timed", - "check": "event" - }, - "selfPoint": "LEFT", - "untrigger": { - "unit": "target" - }, - "width": 15.316210746765, - "height": 9.8461561203003, - "fontSize": 10, - "url": "https://wago.io/V1NFD3AxM/1", - "version": 1, - "semver": "1.0.0" - }, - { - "yOffset": -211, - "outline": "None", - "id": "Target HP Shadow", - "additional_triggers": [], - "font": "bignoodle", - "regionType": "text", - "activeTriggerMode": 0, - "init_completed": 1, - "numTriggers": 1, - "frameStrata": 4, - "displayText": "%c", - "xOffset": -150, - "customText": "function() - if UnitIsDead("target") then - return "0" - end - - local health = UnitHealth("target") - if health >= 1000000 then - health = string.format("%.1fm", health / 1000000) -- 2.4m - elseif health >= 10000 then - health = string.format("%dk", health / 1000) -- 24k, 240k - elseif health >= 1000 then - health = string.format("%.1fk", health / 1000) -- 2.4k - end - - if UnitIsDead("target") then - return "0" - end - - local targethp = string.format("%.f", (UnitHealth("target")/UnitHealthMax("target"))*100) - - return string.format("%s | %s", targethp, health) - end", - "trigger": { - "unit": "target", - "use_percenthealth": false, - "unevent": "auto", - "events": "PLAYER_ENTERING_WORLD", - "use_unit": true, - "type": "status", - "custom_type": "status", - "custom_hide": "timed", - "check": "event" - }, - "load": { - "use_never": false, - "faction": { - "multi": [] - }, - "class": { - "single": "HUNTER", - "multi": { - "DRUID": true - } - }, - "talent": { - "multi": [] - }, - "race": { - "multi": [] - }, - "role": { - "multi": [] - }, - "use_name": false, - "difficulty": { - "multi": [] - }, - "pvptalent": { - "multi": [] - } - }, - "width": 15.316210746765, - "color": [ - 0, - 0, - 0 - ], - "untrigger": { - "unit": "target" - }, - "selfPoint": "LEFT", - "height": 9.8461561203003, - "fontSize": 10, - "url": "https://wago.io/V1NFD3AxM/1", - "version": 1, - "semver": "1.0.0" - }, - { - "yOffset": -210, - "outline": "None", - "id": "Target MP", - "additional_triggers": [], - "font": "bignoodle", - "regionType": "text", - "activeTriggerMode": 0, - "init_completed": 1, - "numTriggers": 1, - "frameStrata": 5, - "displayText": "%c", - "xOffset": -318, - "customText": "function() - if UnitIsDead("target") then - return "0" - end - - local power = UnitPower("target") - if power >= 1000000 then - power = string.format("%.1fm", power / 1000000) -- 2.4m - elseif power >= 10000 then - power = string.format("%dk", power / 1000) -- 24k, 240k - elseif power >= 1000 then - power = string.format("%.1fk", power / 1000) -- 2.4k - end - - if UnitIsDead("target") then - return "0" - end - - local powermax = UnitPowerMax("target") - if powermax >= 1000000 then - powermax = string.format("%.1fm", powermax / 1000000) -- 2.4m - elseif powermax >= 10000 then - powermax = string.format("%dk", powermax / 1000) -- 24k, 240k - elseif powermax >= 1000 then - powermax = string.format("%.1fk", powermax / 1000) -- 2.4k - end - return string.format("%s | %s", powermax, power) - end", - "load": { - "use_never": false, - "faction": { - "multi": [] - }, - "class": { - "single": "HUNTER", - "multi": { - "DRUID": true - } - }, - "talent": { - "multi": [] - }, - "race": { - "multi": [] - }, - "role": { - "multi": [] - }, - "use_name": false, - "difficulty": { - "multi": [] - }, - "pvptalent": { - "multi": [] - } - }, - "trigger": { - "unit": "target", - "use_percenthealth": false, - "unevent": "auto", - "custom_hide": "timed", - "events": "PLAYER_ENTERING_WORLD", - "event": "Power", - "use_unit": true, - "custom_type": "status", - "type": "status", - "check": "event" - }, - "width": 13.675245285034, - "untrigger": { - "unit": "target" - }, - "selfPoint": "LEFT", - "height": 9.8461561203003, - "fontSize": 10, - "url": "https://wago.io/V1NFD3AxM/1", - "version": 1, - "semver": "1.0.0" - }, - { - "yOffset": -211, - "outline": "None", - "color": [ - 0, - 0, - 0 - ], - "additional_triggers": [], - "font": "bignoodle", - "regionType": "text", - "activeTriggerMode": 0, - "init_completed": 1, - "numTriggers": 1, - "frameStrata": 4, - "displayText": "%c", - "xOffset": -317, - "customText": "function() - if UnitIsDead("target") then - return "0" - end - - local power = UnitPower("target") - if power >= 1000000 then - power = string.format("%.1fm", power / 1000000) -- 2.4m - elseif power >= 10000 then - power = string.format("%dk", power / 1000) -- 24k, 240k - elseif power >= 1000 then - power = string.format("%.1fk", power / 1000) -- 2.4k - end - - if UnitIsDead("target") then - return "0" - end - - local powermax = UnitPowerMax("target") - if powermax >= 1000000 then - powermax = string.format("%.1fm", powermax / 1000000) -- 2.4m - elseif powermax >= 10000 then - powermax = string.format("%dk", powermax / 1000) -- 24k, 240k - elseif powermax >= 1000 then - powermax = string.format("%.1fk", powermax / 1000) -- 2.4k - end - return string.format("%s | %s", powermax, power) - end", - "id": "Target MP Shadow", - "load": { - "use_never": false, - "faction": { - "multi": [] - }, - "class": { - "single": "HUNTER", - "multi": { - "DRUID": true - } - }, - "talent": { - "multi": [] - }, - "race": { - "multi": [] - }, - "role": { - "multi": [] - }, - "use_name": false, - "difficulty": { - "multi": [] - }, - "pvptalent": { - "multi": [] - } - }, - "trigger": { - "unit": "target", - "use_percenthealth": false, - "unevent": "auto", - "custom_hide": "timed", - "events": "PLAYER_ENTERING_WORLD", - "event": "Power", - "type": "status", - "custom_type": "status", - "use_unit": true, - "check": "event" - }, - "width": 13.675245285034, - "untrigger": { - "unit": "target" - }, - "selfPoint": "LEFT", - "height": 9.8461561203003, - "fontSize": 10, - "url": "https://wago.io/V1NFD3AxM/1", - "version": 1, - "semver": "1.0.0" - }, - { - "yOffset": -210, - "additional_triggers": [], - "regionType": "aurabar", - "activeTriggerMode": 0, - "init_completed": 1, - "texture": "Kait", - "xOffset": -6, - "borderEdge": "1 Pixel", - "height": 12, - "borderSize": 2, - "orientation": "HORIZONTAL_INVERSE", - "id": "Target Health Bar", - "backdropColor": [ - 0.07843137254902, - 0.07843137254902, - 0.07843137254902, - 1 - ], - "backgroundColor": [ - 0.07843137254902, - 0.07843137254902, - 0.07843137254902, - 1 - ], - "barColor": [ - 0.28235294117647, - 0.28235294117647, - 0.28235294117647 - ], - "fontFlags": "OUTLINE", - "borderBackdrop": "Solid", - "borderOffset": 2, - "numTriggers": 1, - "frameStrata": 3, - "icon": false, - "border": true, - "borderColor": [ - 0, - 0, - 0, - 1 - ], - "timer": false, - "text": false, - "borderInset": 2, - "load": { - "use_never": false, - "faction": { - "multi": [] - }, - "class": { - "single": "HUNTER", - "multi": { - "ROGUE": true, - "MONK": true, - "PRIEST": true, - "DEATHKNIGHT": true, - "WARLOCK": true, - "HUNTER": true, - "MAGE": true, - "DRUID": true, - "SHAMAN": true, - "PALADIN": true -} -}, -"talent": { -"multi": [] -}, -"race": { -"multi": [] -}, -"role": { -"multi": [] -}, -"use_name": false, -"difficulty": { -"multi": [] -}, -"name": "Kaitain", -"pvptalent": { -"multi": [] -} -}, -"trigger": { -"unevent": "auto", -"use_spellName": true, -"unit": "target", -"use_unit": true, -"custom_hide": "timed", -"type": "status", -"spellName": 61304 -}, -"stacks": false, -"untrigger": { -"unit": "target", -"spellName": 61304 -}, -"sparkColor": [ -null, -null, -null, -0 -], -"icon_side": "LEFT", -"width": 300, -"url": "https://wago.io/V1NFD3AxM/1", -"version": 1, -"semver": "1.0.0" -}, -{ - "yOffset": -210, - "borderSize": 2, - "id": "Target Health Shadow", - "additional_triggers": [], - "backdropColor": [ - 0.07843137254902, - 0.07843137254902, - 0.07843137254902, - 1 - ], - "regionType": "aurabar", - "backgroundColor": [ - 0.07843137254902, - 0.07843137254902, - 0.07843137254902 - ], - "trigger": { - "spellName": 61304, - "custom_hide": "timed", - "use_spellName": true, - "type": "status", - "unit": "target", - "use_unit": true, - "unevent": "auto" - }, - "fontFlags": "OUTLINE", - "borderBackdrop": "Solid", - "width": 308, - "borderOffset": 2, - "barColor": [ - 0.28235294117647, - 0.28235294117647, - null, - 0 - ], - "numTriggers": 1, - "texture": "Kait", - "frameStrata": 2, - "icon": false, - "text": false, - "xOffset": -6, - "borderInset": 2, - "timer": false, - "stacks": false, - "borderColor": [ - 0, - 0, - 0, - 1 - ], - "load": { - "use_never": false, - "faction": { - "multi": [] - }, - "class": { - "single": "HUNTER", - "multi": { - "MAGE": true, - "MONK": true, - "PRIEST": true, - "DEATHKNIGHT": true, - "WARLOCK": true, - "HUNTER": true, - "ROGUE": true, - "DRUID": true, - "SHAMAN": true, - "PALADIN": true -} -}, -"talent": { -"multi": [] -}, -"race": { -"multi": [] -}, -"role": { -"multi": [] -}, -"use_name": false, -"difficulty": { -"multi": [] -}, -"name": "Kaitain", -"pvptalent": { -"multi": [] -} -}, -"borderEdge": "1 Pixel", -"init_completed": 1, -"untrigger": { -"unit": "target", -"spellName": 61304 -}, -"sparkColor": [ -null, -null, -null, -0 -], -"height": 20, -"activeTriggerMode": 0, -"url": "https://wago.io/V1NFD3AxM/1", -"version": 1, -"semver": "1.0.0" -}, -{ - "yOffset": -210, - "additional_triggers": [], - "regionType": "aurabar", - "animation": { - "main": { - "scalex": 1, - "x": 0, - "duration": "100", - "colorA": 1, - "y": 0, - "colorFunc": "return function(r1, g1, b1, a1, r2, g2, b2, a2) - - local class = UnitClass("target") - local red, green, blue = 1,1,0 - - if class == "Death Knight" then - red, green, blue = 0.77,0.12,0.23 - - elseif class == "Demon Hunter" then - red, green, blue = 0.64,0.19,0.79 - - elseif class == "Druid" then - red, green, blue = 1.00,0.49,0.04 - - elseif class == "Hunter" then - red, green, blue = 0.67,0.83,0.45 - - elseif class == "Mage" then - red, green, blue = 0.41,0.80,0.94 - - elseif class == "Monk" then - red, green, blue = 0,255,150 - - elseif class == "Paladin" then - red, green, blue = 0.96,0.55,0.73 - - elseif class == "Priest" then - red, green, blue = 1.00,1.00,1.00 - - elseif class == "Rogue" then - red, green, blue = 1.00,0.96,0.41 - - elseif class == "Shaman" then - red, green, blue = 0.0,0.44,0.87 - - elseif class == "Warlock" then - red, green, blue = 0.58,0.51,0.79 - - else red, green, blue = 0.78,0.61,0.43 -- Warrior, formatted slightly different. - end - - return red, green, blue, 1 - end - - - - - ", - "scaley": 1, - "duration_type": "relative", - "colorType": "custom", - "rotate": 0, - "colorG": 1, - "alpha": 0, - "type": "custom", - "colorR": 1, - "colorB": 1, - "use_color": true -} -}, -"trigger": { -"unevent": "auto", -"use_unit": true, -"unit": "target", -"event": "Power", -"type": "status", -"custom_hide": "timed", -"use_spellName": true, -"spellName": 61304 -}, -"init_completed": 1, -"texture": "Kait", -"borderColor": [ -0, -0, -0, -1 -], -"borderEdge": "1 Pixel", -"height": 12, -"borderSize": 2, -"orientation": "HORIZONTAL_INVERSE", -"id": "Target Power Bar", -"backdropColor": [ -0.07843137254902, -0.07843137254902, -0.07843137254902, -1 -], -"backgroundColor": [ -0.07843137254902, -0.07843137254902, -0.07843137254902, -1 -], -"barColor": [ -0.28235294117647, -0.28235294117647, -0.28235294117647 -], -"fontFlags": "OUTLINE", -"borderBackdrop": "Solid", -"borderOffset": 2, -"numTriggers": 1, -"frameStrata": 3, -"icon": false, -"activeTriggerMode": 0, -"xOffset": -248, -"timer": false, -"stacks": false, -"borderInset": 2, -"load": { -"use_never": false, -"faction": { -"multi": [] -}, -"class": { -"single": "HUNTER", -"multi": { -"MAGE": true, -"MONK": true, -"PRIEST": true, -"DEATHKNIGHT": true, -"WARLOCK": true, -"HUNTER": true, -"ROGUE": true, -"DRUID": true, -"SHAMAN": true, -"PALADIN": true -} -}, -"talent": { -"multi": [] -}, -"race": { -"multi": [] -}, -"role": { -"multi": [] -}, -"use_name": false, -"difficulty": { -"multi": [] -}, -"name": "Kaitain", -"pvptalent": { -"multi": [] -} -}, -"text": false, -"width": 150, -"untrigger": { -"unit": "target", -"spellName": 61304 -}, -"sparkColor": [ -null, -null, -null, -0 -], -"icon_side": "LEFT", -"border": true, -"url": "https://wago.io/V1NFD3AxM/1", -"version": 1, -"semver": "1.0.0" -}, -{ - "yOffset": -210, - "borderSize": 2, - "id": "Target Power Bar Shadow", - "additional_triggers": [], - "init_completed": 1, - "backdropColor": [ - 0.07843137254902, - 0.07843137254902, - 0.07843137254902, - 1 - ], - "regionType": "aurabar", - "animation": { - "main": { - "scalex": 1, - "x": 0, - "duration": "100", - "y": 0, - "colorFunc": "return function(r1, g1, b1, a1, r2, g2, b2, a2) - - local class = UnitClass("target") - local red, green, blue = 1,1,0 - - if class == "Death Knight" then - red, green, blue = 0.77,0.12,0.23 - - elseif class == "Demon Hunter" then - red, green, blue = 0.64,0.19,0.79 - - elseif class == "Druid" then - red, green, blue = 1.00,0.49,0.04 - - elseif class == "Hunter" then - red, green, blue = 0.67,0.83,0.45 - - elseif class == "Mage" then - red, green, blue = 0.41,0.80,0.94 - - elseif class == "Monk" then - red, green, blue = 0,255,150 - - elseif class == "Paladin" then - red, green, blue = 0.96,0.55,0.73 - - elseif class == "Priest" then - red, green, blue = 1.00,1.00,1.00 - - elseif class == "Rogue" then - red, green, blue = 1.00,0.96,0.41 - - elseif class == "Shaman" then - red, green, blue = 0.0,0.44,0.87 - - elseif class == "Warlock" then - red, green, blue = 0.58,0.51,0.79 - - else red, green, blue = 0.78,0.61,0.43 -- Warrior, formatted slightly different. - end - - return red, green, blue, 1 - end - - - - - ", - "scaley": 1, - "colorR": 1, - "colorType": "custom", - "duration_type": "relative", - "rotate": 0, - "alpha": 0, - "colorG": 1, - "use_color": true, - "colorB": 1, - "colorA": 1 -} -}, -"activeTriggerMode": 0, -"fontFlags": "OUTLINE", -"borderBackdrop": "Solid", -"backgroundColor": [ -0.07843137254902, -0.07843137254902, -0.07843137254902 -], -"borderOffset": 2, -"width": 158, -"numTriggers": 1, -"texture": "Kait", -"frameStrata": 2, -"icon": false, -"borderInset": 2, -"borderColor": [ -0, -0, -0, -1 -], -"borderEdge": "1 Pixel", -"timer": false, -"text": false, -"stacks": false, -"load": { -"use_never": false, -"faction": { -"multi": [] -}, -"class": { -"single": "HUNTER", -"multi": { -"MAGE": true, -"MONK": true, -"PRIEST": true, -"DEATHKNIGHT": true, -"WARLOCK": true, -"HUNTER": true, -"PALADIN": true, -"DRUID": true, -"SHAMAN": true, -"ROGUE": true -} -}, -"talent": { -"multi": [] -}, -"race": { -"multi": [] -}, -"role": { -"multi": [] -}, -"use_name": false, -"difficulty": { -"multi": [] -}, -"name": "Kaitain", -"pvptalent": { -"multi": [] -} -}, -"barColor": [ -0.28235294117647, -0.28235294117647, -0.28235294117647, -0 -], -"xOffset": -248, -"untrigger": { -"unit": "target", -"spellName": 61304 -}, -"sparkColor": [ -null, -null, -null, -0 -], -"height": 20, -"trigger": { -"spellName": 61304, -"custom_hide": "timed", -"use_spellName": true, -"event": "Power", -"type": "status", -"unit": "target", -"use_unit": true, -"unevent": "auto" -}, -"url": "https://wago.io/V1NFD3AxM/1", -"version": 1, -"semver": "1.0.0" -} -], -"d": { -"expanded": false, -"frameStrata": 3, -"version": 1, -"id": "Target Unit Frame", -"additional_triggers": [], -"regionType": "group", -"activeTriggerMode": 0, -"selfPoint": "BOTTOMLEFT", -"anchorPoint": "BOTTOM", -"url": "https://wago.io/V1NFD3AxM/1", -"load": { -"difficulty": { -"multi": [] -}, -"use_class": false, -"role": { -"multi": [] -}, -"race": { -"multi": [] -}, -"faction": { -"multi": [] -}, -"talent": { -"multi": [] -}, -"pvptalent": { -"multi": [] -} -}, -"yOffset": 680, -"numTriggers": 1, -"semver": "1.0.0" -}, -"v": 1421, -"a": [], -"wagoID": "V1NFD3AxM" +--https://wago.io/V1NFD3AxM +{ + "m": "d", + "s": "2.2.2.0", + "c": [ + { + "yOffset": -210, + "outline": "None", + "id": "Target Name", + "additional_triggers": [], + "font": "bignoodle", + "regionType": "text", + "animation": { + "main": { + "colorA": 1, + "x": 0, + "duration": "100", + "colorFunc": return function(r1, g1, b1, a1, r2, g2, b2, a2) local class = UnitClass("target") + local red, green, blue = 1,1,0 + + if class == "Death Knight" then + red, green, blue = 0.77,0.12,0.23 + + elseif class == "Demon Hunter" then + red, green, blue = 0.64,0.19,0.79 + + elseif class == "Druid" then + red, green, blue = 1.00,0.49,0.04 + + elseif class == "Hunter" then + red, green, blue = 0.67,0.83,0.45 + + elseif class == "Mage" then + red, green, blue = 0.41,0.80,0.94 + + elseif class == "Monk" then + red, green, blue = 0,255,150 + + elseif class == "Paladin" then + red, green, blue = 0.96,0.55,0.73 + + elseif class == "Priest" then + red, green, blue = 1.00,1.00,1.00 + + elseif class == "Rogue" then + red, green, blue = 1.00,0.96,0.41 + + elseif class == "Shaman" then + red, green, blue = 0.0,0.44,0.87 + + elseif class == "Warlock" then + red, green, blue = 0.58,0.51,0.79 + + else red, green, blue = 0.78,0.61,0.43 -- Warrior, formatted slightly different. + end + + return red, green, blue, 1 + end + + + + ", + "y": 0, + "scalex": 1, + "scaley": 1, + "use_color": true, + "colorType": "custom", + "rotate": 0, + "colorG": 1, + "alpha": 0, + "type": "custom", + "colorR": 1, + "colorB": 1, + "duration_type": "relative" +} +}, +"activeTriggerMode": 0, +"init_completed": 1, +"numTriggers": 1, +"frameStrata": 5, +"displayText": "%n", +"xOffset": 158, +"customText": "function(r1, g1, b1, a1, r2, g2, b2, a2) + +local class = UnitClass("target") +local red, green, blue = 1,1,0 + +if class == "Death Knight" then + red, green, blue = 0.77,0.12,0.23 + + elseif class == "Demon Hunter" then + red, green, blue = 0.64,0.19,0.79 + + elseif class == "Druid" then + red, green, blue = 1.00,0.49,0.04 + + elseif class == "Hunter" then + red, green, blue = 0.67,0.83,0.45 + + elseif class == "Mage" then + red, green, blue = 0.41,0.80,0.94 + + elseif class == "Monk" then + red, green, blue = 0,255,150 + + elseif class == "Paladin" then + red, green, blue = 0.96,0.55,0.73 + + elseif class == "Priest" then + red, green, blue = 1.00,1.00,1.00 + + elseif class == "Rogue" then + red, green, blue = 1.00,0.96,0.41 + + elseif class == "Shaman" then + red, green, blue = 0.0,0.44,0.87 + + elseif class == "Warlock" then + red, green, blue = 0.58,0.51,0.79 + + else red, green, blue = 0.78,0.61,0.43 -- Warrior, formatted slightly different. + end + + return red, green, blue, 1 + end + + + + ", + "load": { + "difficulty": { + "multi": [] + }, + "faction": { + "multi": [] + }, + "class": { + "single": "HUNTER", + "multi": { + "DRUID": true +} +}, +"talent": { +"multi": [] +}, +"race": { +"multi": [] +}, +"role": { +"multi": [] +}, +"use_name": false, +"use_never": false, +"pvptalent": { +"multi": [] +} +}, +"trigger": { +"unit": "target", +"use_percenthealth": false, +"unevent": "auto", +"events": "PLAYER_ENTERING_WORLD", +"use_unit": true, +"type": "status", +"custom_type": "status", +"custom_hide": "timed", +"check": "event" +}, +"selfPoint": "LEFT", +"untrigger": { +"unit": "target" +}, +"width": 53.333267211914, +"height": 17.777723312378, +"fontSize": 18, +"url": "https://wago.io/V1NFD3AxM/1", +"version": 1, +"semver": "1.0.0" +}, +{ + "yOffset": -211, + "outline": "None", + "color": [ + 0, + 0, + 0 + ], + "additional_triggers": [], + "font": "bignoodle", + "regionType": "text", + "animation": { + "main": { + "scalex": 1, + "x": 0, + "duration": "100", + "y": 0, + "colorFunc": "return function(r1, g1, b1, a1, r2, g2, b2, a2) + + local class = UnitClass("target") + local red, green, blue = 1,1,0 + + if class == "Death Knight" then + red, green, blue = 0.77,0.12,0.23 + + elseif class == "Demon Hunter" then + red, green, blue = 0.64,0.19,0.79 + + elseif class == "Druid" then + red, green, blue = 1.00,0.49,0.04 + + elseif class == "Hunter" then + red, green, blue = 0.67,0.83,0.45 + + elseif class == "Mage" then + red, green, blue = 0.41,0.80,0.94 + + elseif class == "Monk" then + red, green, blue = 0,255,150 + + elseif class == "Paladin" then + red, green, blue = 0.96,0.55,0.73 + + elseif class == "Priest" then + red, green, blue = 1.00,1.00,1.00 + + elseif class == "Rogue" then + red, green, blue = 1.00,0.96,0.41 + + elseif class == "Shaman" then + red, green, blue = 0.0,0.44,0.87 + + elseif class == "Warlock" then + red, green, blue = 0.58,0.51,0.79 + + else red, green, blue = 0.78,0.61,0.43 -- Warrior, formatted slightly different. + end + + return red, green, blue, 1 + end + + + + ", + "scaley": 1, + "duration_type": "relative", + "colorType": "custom", + "use_color": true, + "rotate": 0, + "alpha": 0, + "colorG": 1, + "colorR": 1, + "colorB": 1, + "colorA": 1 +} +}, +"activeTriggerMode": 0, +"init_completed": 1, +"numTriggers": 1, +"frameStrata": 4, +"displayText": "%n", +"xOffset": 158.5, +"customText": "function(r1, g1, b1, a1, r2, g2, b2, a2) + +local class = UnitClass("target") +local red, green, blue = 1,1,0 + +if class == "Death Knight" then + red, green, blue = 0.77,0.12,0.23 + + elseif class == "Demon Hunter" then + red, green, blue = 0.64,0.19,0.79 + + elseif class == "Druid" then + red, green, blue = 1.00,0.49,0.04 + + elseif class == "Hunter" then + red, green, blue = 0.67,0.83,0.45 + + elseif class == "Mage" then + red, green, blue = 0.41,0.80,0.94 + + elseif class == "Monk" then + red, green, blue = 0,255,150 + + elseif class == "Paladin" then + red, green, blue = 0.96,0.55,0.73 + + elseif class == "Priest" then + red, green, blue = 1.00,1.00,1.00 + + elseif class == "Rogue" then + red, green, blue = 1.00,0.96,0.41 + + elseif class == "Shaman" then + red, green, blue = 0.0,0.44,0.87 + + elseif class == "Warlock" then + red, green, blue = 0.58,0.51,0.79 + + else red, green, blue = 0.78,0.61,0.43 -- Warrior, formatted slightly different. + end + + return red, green, blue, 1 + end + + + + ", + "id": "Target Name Shadow", + "load": { + "use_never": false, + "faction": { + "multi": [] + }, + "class": { + "single": "HUNTER", + "multi": { + "DRUID": true +} +}, +"talent": { +"multi": [] +}, +"race": { +"multi": [] +}, +"role": { +"multi": [] +}, +"use_name": false, +"difficulty": { +"multi": [] +}, +"pvptalent": { +"multi": [] +} +}, +"trigger": { +"unit": "target", +"use_percenthealth": false, +"unevent": "auto", +"events": "PLAYER_ENTERING_WORLD", +"use_unit": true, +"type": "status", +"custom_type": "status", +"custom_hide": "timed", +"check": "event" +}, +"width": 53.333358764648, +"untrigger": { +"unit": "target" +}, +"selfPoint": "LEFT", +"height": 17.777723312378, +"fontSize": 18, +"url": "https://wago.io/V1NFD3AxM/1", +"version": 1, +"semver": "1.0.0" +}, +{ + "yOffset": -210, + "outline": "None", + "id": "Target HP", + "additional_triggers": [], + "font": "bignoodle", + "regionType": "text", + "activeTriggerMode": 0, + "init_completed": 1, + "numTriggers": 1, + "frameStrata": 5, + "displayText": "%c", + "xOffset": -151, + "customText": "function() + if UnitIsDead("target") then + return "0" + end + + local health = UnitHealth("target") + if health >= 1000000 then + health = string.format("%.1fm", health / 1000000) -- 2.4m + elseif health >= 10000 then + health = string.format("%dk", health / 1000) -- 24k, 240k + elseif health >= 1000 then + health = string.format("%.1fk", health / 1000) -- 2.4k + end + + if UnitIsDead("target") then + return "0" + end + + local targethp = string.format("%.f", (UnitHealth("target")/UnitHealthMax("target"))*100) + + return string.format("%s | %s", targethp, health) + end", + "load": { + "difficulty": { + "multi": [] + }, + "faction": { + "multi": [] + }, + "class": { + "single": "HUNTER", + "multi": { + "DRUID": true + } + }, + "talent": { + "multi": [] + }, + "race": { + "multi": [] + }, + "role": { + "multi": [] + }, + "use_name": false, + "use_never": false, + "pvptalent": { + "multi": [] + } + }, + "trigger": { + "unit": "target", + "use_percenthealth": false, + "unevent": "auto", + "events": "PLAYER_ENTERING_WORLD", + "use_unit": true, + "type": "status", + "custom_type": "status", + "custom_hide": "timed", + "check": "event" + }, + "selfPoint": "LEFT", + "untrigger": { + "unit": "target" + }, + "width": 15.316210746765, + "height": 9.8461561203003, + "fontSize": 10, + "url": "https://wago.io/V1NFD3AxM/1", + "version": 1, + "semver": "1.0.0" + }, + { + "yOffset": -211, + "outline": "None", + "id": "Target HP Shadow", + "additional_triggers": [], + "font": "bignoodle", + "regionType": "text", + "activeTriggerMode": 0, + "init_completed": 1, + "numTriggers": 1, + "frameStrata": 4, + "displayText": "%c", + "xOffset": -150, + "customText": "function() + if UnitIsDead("target") then + return "0" + end + + local health = UnitHealth("target") + if health >= 1000000 then + health = string.format("%.1fm", health / 1000000) -- 2.4m + elseif health >= 10000 then + health = string.format("%dk", health / 1000) -- 24k, 240k + elseif health >= 1000 then + health = string.format("%.1fk", health / 1000) -- 2.4k + end + + if UnitIsDead("target") then + return "0" + end + + local targethp = string.format("%.f", (UnitHealth("target")/UnitHealthMax("target"))*100) + + return string.format("%s | %s", targethp, health) + end", + "trigger": { + "unit": "target", + "use_percenthealth": false, + "unevent": "auto", + "events": "PLAYER_ENTERING_WORLD", + "use_unit": true, + "type": "status", + "custom_type": "status", + "custom_hide": "timed", + "check": "event" + }, + "load": { + "use_never": false, + "faction": { + "multi": [] + }, + "class": { + "single": "HUNTER", + "multi": { + "DRUID": true + } + }, + "talent": { + "multi": [] + }, + "race": { + "multi": [] + }, + "role": { + "multi": [] + }, + "use_name": false, + "difficulty": { + "multi": [] + }, + "pvptalent": { + "multi": [] + } + }, + "width": 15.316210746765, + "color": [ + 0, + 0, + 0 + ], + "untrigger": { + "unit": "target" + }, + "selfPoint": "LEFT", + "height": 9.8461561203003, + "fontSize": 10, + "url": "https://wago.io/V1NFD3AxM/1", + "version": 1, + "semver": "1.0.0" + }, + { + "yOffset": -210, + "outline": "None", + "id": "Target MP", + "additional_triggers": [], + "font": "bignoodle", + "regionType": "text", + "activeTriggerMode": 0, + "init_completed": 1, + "numTriggers": 1, + "frameStrata": 5, + "displayText": "%c", + "xOffset": -318, + "customText": "function() + if UnitIsDead("target") then + return "0" + end + + local power = UnitPower("target") + if power >= 1000000 then + power = string.format("%.1fm", power / 1000000) -- 2.4m + elseif power >= 10000 then + power = string.format("%dk", power / 1000) -- 24k, 240k + elseif power >= 1000 then + power = string.format("%.1fk", power / 1000) -- 2.4k + end + + if UnitIsDead("target") then + return "0" + end + + local powermax = UnitPowerMax("target") + if powermax >= 1000000 then + powermax = string.format("%.1fm", powermax / 1000000) -- 2.4m + elseif powermax >= 10000 then + powermax = string.format("%dk", powermax / 1000) -- 24k, 240k + elseif powermax >= 1000 then + powermax = string.format("%.1fk", powermax / 1000) -- 2.4k + end + return string.format("%s | %s", powermax, power) + end", + "load": { + "use_never": false, + "faction": { + "multi": [] + }, + "class": { + "single": "HUNTER", + "multi": { + "DRUID": true + } + }, + "talent": { + "multi": [] + }, + "race": { + "multi": [] + }, + "role": { + "multi": [] + }, + "use_name": false, + "difficulty": { + "multi": [] + }, + "pvptalent": { + "multi": [] + } + }, + "trigger": { + "unit": "target", + "use_percenthealth": false, + "unevent": "auto", + "custom_hide": "timed", + "events": "PLAYER_ENTERING_WORLD", + "event": "Power", + "use_unit": true, + "custom_type": "status", + "type": "status", + "check": "event" + }, + "width": 13.675245285034, + "untrigger": { + "unit": "target" + }, + "selfPoint": "LEFT", + "height": 9.8461561203003, + "fontSize": 10, + "url": "https://wago.io/V1NFD3AxM/1", + "version": 1, + "semver": "1.0.0" + }, + { + "yOffset": -211, + "outline": "None", + "color": [ + 0, + 0, + 0 + ], + "additional_triggers": [], + "font": "bignoodle", + "regionType": "text", + "activeTriggerMode": 0, + "init_completed": 1, + "numTriggers": 1, + "frameStrata": 4, + "displayText": "%c", + "xOffset": -317, + "customText": "function() + if UnitIsDead("target") then + return "0" + end + + local power = UnitPower("target") + if power >= 1000000 then + power = string.format("%.1fm", power / 1000000) -- 2.4m + elseif power >= 10000 then + power = string.format("%dk", power / 1000) -- 24k, 240k + elseif power >= 1000 then + power = string.format("%.1fk", power / 1000) -- 2.4k + end + + if UnitIsDead("target") then + return "0" + end + + local powermax = UnitPowerMax("target") + if powermax >= 1000000 then + powermax = string.format("%.1fm", powermax / 1000000) -- 2.4m + elseif powermax >= 10000 then + powermax = string.format("%dk", powermax / 1000) -- 24k, 240k + elseif powermax >= 1000 then + powermax = string.format("%.1fk", powermax / 1000) -- 2.4k + end + return string.format("%s | %s", powermax, power) + end", + "id": "Target MP Shadow", + "load": { + "use_never": false, + "faction": { + "multi": [] + }, + "class": { + "single": "HUNTER", + "multi": { + "DRUID": true + } + }, + "talent": { + "multi": [] + }, + "race": { + "multi": [] + }, + "role": { + "multi": [] + }, + "use_name": false, + "difficulty": { + "multi": [] + }, + "pvptalent": { + "multi": [] + } + }, + "trigger": { + "unit": "target", + "use_percenthealth": false, + "unevent": "auto", + "custom_hide": "timed", + "events": "PLAYER_ENTERING_WORLD", + "event": "Power", + "type": "status", + "custom_type": "status", + "use_unit": true, + "check": "event" + }, + "width": 13.675245285034, + "untrigger": { + "unit": "target" + }, + "selfPoint": "LEFT", + "height": 9.8461561203003, + "fontSize": 10, + "url": "https://wago.io/V1NFD3AxM/1", + "version": 1, + "semver": "1.0.0" + }, + { + "yOffset": -210, + "additional_triggers": [], + "regionType": "aurabar", + "activeTriggerMode": 0, + "init_completed": 1, + "texture": "Kait", + "xOffset": -6, + "borderEdge": "1 Pixel", + "height": 12, + "borderSize": 2, + "orientation": "HORIZONTAL_INVERSE", + "id": "Target Health Bar", + "backdropColor": [ + 0.07843137254902, + 0.07843137254902, + 0.07843137254902, + 1 + ], + "backgroundColor": [ + 0.07843137254902, + 0.07843137254902, + 0.07843137254902, + 1 + ], + "barColor": [ + 0.28235294117647, + 0.28235294117647, + 0.28235294117647 + ], + "fontFlags": "OUTLINE", + "borderBackdrop": "Solid", + "borderOffset": 2, + "numTriggers": 1, + "frameStrata": 3, + "icon": false, + "border": true, + "borderColor": [ + 0, + 0, + 0, + 1 + ], + "timer": false, + "text": false, + "borderInset": 2, + "load": { + "use_never": false, + "faction": { + "multi": [] + }, + "class": { + "single": "HUNTER", + "multi": { + "ROGUE": true, + "MONK": true, + "PRIEST": true, + "DEATHKNIGHT": true, + "WARLOCK": true, + "HUNTER": true, + "MAGE": true, + "DRUID": true, + "SHAMAN": true, + "PALADIN": true +} +}, +"talent": { +"multi": [] +}, +"race": { +"multi": [] +}, +"role": { +"multi": [] +}, +"use_name": false, +"difficulty": { +"multi": [] +}, +"name": "Kaitain", +"pvptalent": { +"multi": [] +} +}, +"trigger": { +"unevent": "auto", +"use_spellName": true, +"unit": "target", +"use_unit": true, +"custom_hide": "timed", +"type": "status", +"spellName": 61304 +}, +"stacks": false, +"untrigger": { +"unit": "target", +"spellName": 61304 +}, +"sparkColor": [ +null, +null, +null, +0 +], +"icon_side": "LEFT", +"width": 300, +"url": "https://wago.io/V1NFD3AxM/1", +"version": 1, +"semver": "1.0.0" +}, +{ + "yOffset": -210, + "borderSize": 2, + "id": "Target Health Shadow", + "additional_triggers": [], + "backdropColor": [ + 0.07843137254902, + 0.07843137254902, + 0.07843137254902, + 1 + ], + "regionType": "aurabar", + "backgroundColor": [ + 0.07843137254902, + 0.07843137254902, + 0.07843137254902 + ], + "trigger": { + "spellName": 61304, + "custom_hide": "timed", + "use_spellName": true, + "type": "status", + "unit": "target", + "use_unit": true, + "unevent": "auto" + }, + "fontFlags": "OUTLINE", + "borderBackdrop": "Solid", + "width": 308, + "borderOffset": 2, + "barColor": [ + 0.28235294117647, + 0.28235294117647, + null, + 0 + ], + "numTriggers": 1, + "texture": "Kait", + "frameStrata": 2, + "icon": false, + "text": false, + "xOffset": -6, + "borderInset": 2, + "timer": false, + "stacks": false, + "borderColor": [ + 0, + 0, + 0, + 1 + ], + "load": { + "use_never": false, + "faction": { + "multi": [] + }, + "class": { + "single": "HUNTER", + "multi": { + "MAGE": true, + "MONK": true, + "PRIEST": true, + "DEATHKNIGHT": true, + "WARLOCK": true, + "HUNTER": true, + "ROGUE": true, + "DRUID": true, + "SHAMAN": true, + "PALADIN": true +} +}, +"talent": { +"multi": [] +}, +"race": { +"multi": [] +}, +"role": { +"multi": [] +}, +"use_name": false, +"difficulty": { +"multi": [] +}, +"name": "Kaitain", +"pvptalent": { +"multi": [] +} +}, +"borderEdge": "1 Pixel", +"init_completed": 1, +"untrigger": { +"unit": "target", +"spellName": 61304 +}, +"sparkColor": [ +null, +null, +null, +0 +], +"height": 20, +"activeTriggerMode": 0, +"url": "https://wago.io/V1NFD3AxM/1", +"version": 1, +"semver": "1.0.0" +}, +{ + "yOffset": -210, + "additional_triggers": [], + "regionType": "aurabar", + "animation": { + "main": { + "scalex": 1, + "x": 0, + "duration": "100", + "colorA": 1, + "y": 0, + "colorFunc": "return function(r1, g1, b1, a1, r2, g2, b2, a2) + + local class = UnitClass("target") + local red, green, blue = 1,1,0 + + if class == "Death Knight" then + red, green, blue = 0.77,0.12,0.23 + + elseif class == "Demon Hunter" then + red, green, blue = 0.64,0.19,0.79 + + elseif class == "Druid" then + red, green, blue = 1.00,0.49,0.04 + + elseif class == "Hunter" then + red, green, blue = 0.67,0.83,0.45 + + elseif class == "Mage" then + red, green, blue = 0.41,0.80,0.94 + + elseif class == "Monk" then + red, green, blue = 0,255,150 + + elseif class == "Paladin" then + red, green, blue = 0.96,0.55,0.73 + + elseif class == "Priest" then + red, green, blue = 1.00,1.00,1.00 + + elseif class == "Rogue" then + red, green, blue = 1.00,0.96,0.41 + + elseif class == "Shaman" then + red, green, blue = 0.0,0.44,0.87 + + elseif class == "Warlock" then + red, green, blue = 0.58,0.51,0.79 + + else red, green, blue = 0.78,0.61,0.43 -- Warrior, formatted slightly different. + end + + return red, green, blue, 1 + end + + + + + ", + "scaley": 1, + "duration_type": "relative", + "colorType": "custom", + "rotate": 0, + "colorG": 1, + "alpha": 0, + "type": "custom", + "colorR": 1, + "colorB": 1, + "use_color": true +} +}, +"trigger": { +"unevent": "auto", +"use_unit": true, +"unit": "target", +"event": "Power", +"type": "status", +"custom_hide": "timed", +"use_spellName": true, +"spellName": 61304 +}, +"init_completed": 1, +"texture": "Kait", +"borderColor": [ +0, +0, +0, +1 +], +"borderEdge": "1 Pixel", +"height": 12, +"borderSize": 2, +"orientation": "HORIZONTAL_INVERSE", +"id": "Target Power Bar", +"backdropColor": [ +0.07843137254902, +0.07843137254902, +0.07843137254902, +1 +], +"backgroundColor": [ +0.07843137254902, +0.07843137254902, +0.07843137254902, +1 +], +"barColor": [ +0.28235294117647, +0.28235294117647, +0.28235294117647 +], +"fontFlags": "OUTLINE", +"borderBackdrop": "Solid", +"borderOffset": 2, +"numTriggers": 1, +"frameStrata": 3, +"icon": false, +"activeTriggerMode": 0, +"xOffset": -248, +"timer": false, +"stacks": false, +"borderInset": 2, +"load": { +"use_never": false, +"faction": { +"multi": [] +}, +"class": { +"single": "HUNTER", +"multi": { +"MAGE": true, +"MONK": true, +"PRIEST": true, +"DEATHKNIGHT": true, +"WARLOCK": true, +"HUNTER": true, +"ROGUE": true, +"DRUID": true, +"SHAMAN": true, +"PALADIN": true +} +}, +"talent": { +"multi": [] +}, +"race": { +"multi": [] +}, +"role": { +"multi": [] +}, +"use_name": false, +"difficulty": { +"multi": [] +}, +"name": "Kaitain", +"pvptalent": { +"multi": [] +} +}, +"text": false, +"width": 150, +"untrigger": { +"unit": "target", +"spellName": 61304 +}, +"sparkColor": [ +null, +null, +null, +0 +], +"icon_side": "LEFT", +"border": true, +"url": "https://wago.io/V1NFD3AxM/1", +"version": 1, +"semver": "1.0.0" +}, +{ + "yOffset": -210, + "borderSize": 2, + "id": "Target Power Bar Shadow", + "additional_triggers": [], + "init_completed": 1, + "backdropColor": [ + 0.07843137254902, + 0.07843137254902, + 0.07843137254902, + 1 + ], + "regionType": "aurabar", + "animation": { + "main": { + "scalex": 1, + "x": 0, + "duration": "100", + "y": 0, + "colorFunc": "return function(r1, g1, b1, a1, r2, g2, b2, a2) + + local class = UnitClass("target") + local red, green, blue = 1,1,0 + + if class == "Death Knight" then + red, green, blue = 0.77,0.12,0.23 + + elseif class == "Demon Hunter" then + red, green, blue = 0.64,0.19,0.79 + + elseif class == "Druid" then + red, green, blue = 1.00,0.49,0.04 + + elseif class == "Hunter" then + red, green, blue = 0.67,0.83,0.45 + + elseif class == "Mage" then + red, green, blue = 0.41,0.80,0.94 + + elseif class == "Monk" then + red, green, blue = 0,255,150 + + elseif class == "Paladin" then + red, green, blue = 0.96,0.55,0.73 + + elseif class == "Priest" then + red, green, blue = 1.00,1.00,1.00 + + elseif class == "Rogue" then + red, green, blue = 1.00,0.96,0.41 + + elseif class == "Shaman" then + red, green, blue = 0.0,0.44,0.87 + + elseif class == "Warlock" then + red, green, blue = 0.58,0.51,0.79 + + else red, green, blue = 0.78,0.61,0.43 -- Warrior, formatted slightly different. + end + + return red, green, blue, 1 + end + + + + + ", + "scaley": 1, + "colorR": 1, + "colorType": "custom", + "duration_type": "relative", + "rotate": 0, + "alpha": 0, + "colorG": 1, + "use_color": true, + "colorB": 1, + "colorA": 1 +} +}, +"activeTriggerMode": 0, +"fontFlags": "OUTLINE", +"borderBackdrop": "Solid", +"backgroundColor": [ +0.07843137254902, +0.07843137254902, +0.07843137254902 +], +"borderOffset": 2, +"width": 158, +"numTriggers": 1, +"texture": "Kait", +"frameStrata": 2, +"icon": false, +"borderInset": 2, +"borderColor": [ +0, +0, +0, +1 +], +"borderEdge": "1 Pixel", +"timer": false, +"text": false, +"stacks": false, +"load": { +"use_never": false, +"faction": { +"multi": [] +}, +"class": { +"single": "HUNTER", +"multi": { +"MAGE": true, +"MONK": true, +"PRIEST": true, +"DEATHKNIGHT": true, +"WARLOCK": true, +"HUNTER": true, +"PALADIN": true, +"DRUID": true, +"SHAMAN": true, +"ROGUE": true +} +}, +"talent": { +"multi": [] +}, +"race": { +"multi": [] +}, +"role": { +"multi": [] +}, +"use_name": false, +"difficulty": { +"multi": [] +}, +"name": "Kaitain", +"pvptalent": { +"multi": [] +} +}, +"barColor": [ +0.28235294117647, +0.28235294117647, +0.28235294117647, +0 +], +"xOffset": -248, +"untrigger": { +"unit": "target", +"spellName": 61304 +}, +"sparkColor": [ +null, +null, +null, +0 +], +"height": 20, +"trigger": { +"spellName": 61304, +"custom_hide": "timed", +"use_spellName": true, +"event": "Power", +"type": "status", +"unit": "target", +"use_unit": true, +"unevent": "auto" +}, +"url": "https://wago.io/V1NFD3AxM/1", +"version": 1, +"semver": "1.0.0" +} +], +"d": { +"expanded": false, +"frameStrata": 3, +"version": 1, +"id": "Target Unit Frame", +"additional_triggers": [], +"regionType": "group", +"activeTriggerMode": 0, +"selfPoint": "BOTTOMLEFT", +"anchorPoint": "BOTTOM", +"url": "https://wago.io/V1NFD3AxM/1", +"load": { +"difficulty": { +"multi": [] +}, +"use_class": false, +"role": { +"multi": [] +}, +"race": { +"multi": [] +}, +"faction": { +"multi": [] +}, +"talent": { +"multi": [] +}, +"pvptalent": { +"multi": [] +} +}, +"yOffset": 680, +"numTriggers": 1, +"semver": "1.0.0" +}, +"v": 1421, +"a": [], +"wagoID": "V1NFD3AxM" } \ No newline at end of file diff --git a/FreshShit/RayOfHope/1/display.lua b/WeakAuras/Projects/RayOfHope/1/display.lua similarity index 100% rename from FreshShit/RayOfHope/1/display.lua rename to WeakAuras/Projects/RayOfHope/1/display.lua diff --git a/FreshShit/RayOfHope/2/display.lua b/WeakAuras/Projects/RayOfHope/2/display.lua similarity index 100% rename from FreshShit/RayOfHope/2/display.lua rename to WeakAuras/Projects/RayOfHope/2/display.lua diff --git a/FreshShit/RayOfHope/export b/WeakAuras/Projects/RayOfHope/export similarity index 100% rename from FreshShit/RayOfHope/export rename to WeakAuras/Projects/RayOfHope/export diff --git a/FreshShit/RayOfHope/init.lua b/WeakAuras/Projects/RayOfHope/init.lua similarity index 100% rename from FreshShit/RayOfHope/init.lua rename to WeakAuras/Projects/RayOfHope/init.lua diff --git a/FreshShit/RayOfHope/trigger1.lua b/WeakAuras/Projects/RayOfHope/trigger1.lua similarity index 100% rename from FreshShit/RayOfHope/trigger1.lua rename to WeakAuras/Projects/RayOfHope/trigger1.lua diff --git a/FreshShit/RayOfHope/trigger2.lua b/WeakAuras/Projects/RayOfHope/trigger2.lua similarity index 100% rename from FreshShit/RayOfHope/trigger2.lua rename to WeakAuras/Projects/RayOfHope/trigger2.lua diff --git a/Complete Projects/Legion/RedpilledFoFDildos.lua b/WeakAuras/Projects/RedpilledFoFDildos.lua similarity index 97% rename from Complete Projects/Legion/RedpilledFoFDildos.lua rename to WeakAuras/Projects/RedpilledFoFDildos.lua index 023cc0c..eab2fef 100644 --- a/Complete Projects/Legion/RedpilledFoFDildos.lua +++ b/WeakAuras/Projects/RedpilledFoFDildos.lua @@ -1,44 +1,44 @@ ---TSU ---COMBAT_LOG_EVENT_UNFILTERED -function(allstates, e, ...) - for k, v in pairs(allstates) do - v.show = false - v.changed = true - end - local se = select(2, ...) - local pname = UnitName("player") - if se == "SPELL_AURA_APPLIED" or se == "SPELL_AURA_APPLIED_DOSE" then - local caster, target, aura = select(5, ...), select(9, ...), select(13, ...) - --print(caster, target, aura, pname) - if caster == pname and target == pname and aura == "Fingers of Frost" then - aura_env.stacks = aura_env.stacks + 1 - --print("1", aura_env.stacks) - end - elseif (se == "SPELL_AURA_REMOVED" or se == "SPELL_AURA_REMOVED_DOSE") and GetTime() - aura_env.cast > 2 then - local caster, target, aura = select(5, ...), select(9, ...), select(13, ...) - --print(caster, target, aura) - if caster == pname and target == pname and aura == "Fingers of Frost" then - aura_env.stacks = aura_env.stacks - 1 - --print("2", aura_env.stacks) - end - elseif se == "SPELL_CAST_SUCCESS" then - local caster, spell = select(5, ...), select(13, ...) - if caster == pname and spell == "Ice Lance" and aura_env.stacks > 0 then - aura_env.stacks = aura_env.stacks - 1 - aura_env.cast = GetTime() - --print("3", aura_env.stacks) - end - end - for i = 1, aura_env.stacks do - allstates[i] = { - show = true, - changed = true, - } - end - --DevTools_Dump(allstates) - return true -end - ---INIT -aura_env.stacks = 0 -aura_env.cast = 0 +--TSU +--COMBAT_LOG_EVENT_UNFILTERED +function(allstates, e, ...) + for k, v in pairs(allstates) do + v.show = false + v.changed = true + end + local se = select(2, ...) + local pname = UnitName("player") + if se == "SPELL_AURA_APPLIED" or se == "SPELL_AURA_APPLIED_DOSE" then + local caster, target, aura = select(5, ...), select(9, ...), select(13, ...) + --print(caster, target, aura, pname) + if caster == pname and target == pname and aura == "Fingers of Frost" then + aura_env.stacks = aura_env.stacks + 1 + --print("1", aura_env.stacks) + end + elseif (se == "SPELL_AURA_REMOVED" or se == "SPELL_AURA_REMOVED_DOSE") and GetTime() - aura_env.cast > 2 then + local caster, target, aura = select(5, ...), select(9, ...), select(13, ...) + --print(caster, target, aura) + if caster == pname and target == pname and aura == "Fingers of Frost" then + aura_env.stacks = aura_env.stacks - 1 + --print("2", aura_env.stacks) + end + elseif se == "SPELL_CAST_SUCCESS" then + local caster, spell = select(5, ...), select(13, ...) + if caster == pname and spell == "Ice Lance" and aura_env.stacks > 0 then + aura_env.stacks = aura_env.stacks - 1 + aura_env.cast = GetTime() + --print("3", aura_env.stacks) + end + end + for i = 1, aura_env.stacks do + allstates[i] = { + show = true, + changed = true, + } + end + --DevTools_Dump(allstates) + return true +end + +--INIT +aura_env.stacks = 0 +aura_env.cast = 0 diff --git a/Complete Projects/Legion/Rejuv.lua b/WeakAuras/Projects/Rejuv.lua similarity index 97% rename from Complete Projects/Legion/Rejuv.lua rename to WeakAuras/Projects/Rejuv.lua index f398996..53038a3 100644 --- a/Complete Projects/Legion/Rejuv.lua +++ b/WeakAuras/Projects/Rejuv.lua @@ -1,66 +1,66 @@ ---UPDATE_MOUSEOVER_UNIT -function() - return true -end - ---DISPLAY -function() - if UnitBuff("mouseover", "Rejuvenation (Germination)") then - local caster = select(8, UnitBuff("mouseover", "Rejuvenation (Germination)")) - if caster == "player" then - local amount = select(17, UnitBuff("mouseover", "Rejuvenation (Germination)")) - local exp = select(7, UnitBuff("mouseover", "Rejuvenation (Germination)")) - local dur = select(6, UnitBuff("mouseover", "Rejuvenation (Germination)")) - local remDur = exp - GetTime() - return aura_env.hexgrad(dur - remDur, 0, dur) .. aura_env.shorten(amount) .. "\124r" - end - end -end - ---INIT -aura_env.hexgrad = function(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 -end -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 -end +--UPDATE_MOUSEOVER_UNIT +function() + return true +end + +--DISPLAY +function() + if UnitBuff("mouseover", "Rejuvenation (Germination)") then + local caster = select(8, UnitBuff("mouseover", "Rejuvenation (Germination)")) + if caster == "player" then + local amount = select(17, UnitBuff("mouseover", "Rejuvenation (Germination)")) + local exp = select(7, UnitBuff("mouseover", "Rejuvenation (Germination)")) + local dur = select(6, UnitBuff("mouseover", "Rejuvenation (Germination)")) + local remDur = exp - GetTime() + return aura_env.hexgrad(dur - remDur, 0, dur) .. aura_env.shorten(amount) .. "\124r" + end + end +end + +--INIT +aura_env.hexgrad = function(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 +end +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 +end diff --git a/WIP/Reply to MOVE.lua b/WeakAuras/Projects/Reply to MOVE.lua similarity index 95% rename from WIP/Reply to MOVE.lua rename to WeakAuras/Projects/Reply to MOVE.lua index 45476c0..b3a1013 100644 --- a/WIP/Reply to MOVE.lua +++ b/WeakAuras/Projects/Reply to MOVE.lua @@ -1,14 +1,14 @@ -CHAT_MSG_PARTY, CHAT_MSG_PARTY_LEADER -function(_,msg,source) - local responses = - { - "" - } - if source ~= UnitName("player") then - msg:lower() - if msg:match("move") then - local id = math.random(1, #responses) - SendChatMessage(responses[id], "PARTY") - end - end +CHAT_MSG_PARTY, CHAT_MSG_PARTY_LEADER +function(_,msg,source) + local responses = + { + "" + } + if source ~= UnitName("player") then + msg:lower() + if msg:match("move") then + local id = math.random(1, #responses) + SendChatMessage(responses[id], "PARTY") + end + end end \ No newline at end of file diff --git a/Complete Projects/Legion/Reputation for Beloved.lua b/WeakAuras/Projects/Reputation for Beloved.lua similarity index 96% rename from Complete Projects/Legion/Reputation for Beloved.lua rename to WeakAuras/Projects/Reputation for Beloved.lua index fe24b37..460ea78 100644 --- a/Complete Projects/Legion/Reputation for Beloved.lua +++ b/WeakAuras/Projects/Reputation for Beloved.lua @@ -1,29 +1,29 @@ -DISPLAY -function() - local repIndex = 0 - local repName = aura_env.repName - local repColor = "|cFF00FF00" - for i = 1, GetNumFactions() do - local name,_,_,_,repmax,rep = GetFactionInfo(i) - if name == repName then - repIndex = i - end - end - local name,_,_,_,repmax,rep = GetFactionInfo(repIndex) - if math.floor(GetTime() - aura_env.repTime) > 30 then - repColor = "|cFFFF0000" - end - return name .. " " .. rep .. "/" .. repmax .. " +" .. aura_env.repChange .. " " .. repColor .. math.floor(GetTime() - aura_env.repTime) -end - -CHAT_MSG_COMBAT_FACTION_CHANGE -function(_,msg) - local name,change = msg:match("Reputation with ([%a+%s*%p*]+) increased by (%d+)") - aura_env.repName = name - aura_env.repChange = change - aura_env.repTime = GetTime() -end - -aura_env.repName = "" -aura_env.repChange = 0 +DISPLAY +function() + local repIndex = 0 + local repName = aura_env.repName + local repColor = "|cFF00FF00" + for i = 1, GetNumFactions() do + local name,_,_,_,repmax,rep = GetFactionInfo(i) + if name == repName then + repIndex = i + end + end + local name,_,_,_,repmax,rep = GetFactionInfo(repIndex) + if math.floor(GetTime() - aura_env.repTime) > 30 then + repColor = "|cFFFF0000" + end + return name .. " " .. rep .. "/" .. repmax .. " +" .. aura_env.repChange .. " " .. repColor .. math.floor(GetTime() - aura_env.repTime) +end + +CHAT_MSG_COMBAT_FACTION_CHANGE +function(_,msg) + local name,change = msg:match("Reputation with ([%a+%s*%p*]+) increased by (%d+)") + aura_env.repName = name + aura_env.repChange = change + aura_env.repTime = GetTime() +end + +aura_env.repName = "" +aura_env.repChange = 0 aura_env.repTime = GetTime() \ No newline at end of file diff --git a/Complete Projects/Legion/Reputations for Insane.lua b/WeakAuras/Projects/Reputations for Insane.lua similarity index 98% rename from Complete Projects/Legion/Reputations for Insane.lua rename to WeakAuras/Projects/Reputations for Insane.lua index a293ce2..d2ea734 100644 --- a/Complete Projects/Legion/Reputations for Insane.lua +++ b/WeakAuras/Projects/Reputations for Insane.lua @@ -1,12 +1,12 @@ -function() - local name = {select(1, GetFactionInfo(67)), select(1, GetFactionInfo(68)), select(1, GetFactionInfo(69)), select(1, GetFactionInfo(70)), select(1, GetFactionInfo(48)), select(1, GetFactionInfo(51))} - local rep = {select(6, GetFactionInfo(67)), select(6, GetFactionInfo(68)), select(6, GetFactionInfo(69)), select(6, GetFactionInfo(70)), select(6, GetFactionInfo(48)), select(6, GetFactionInfo(51))} - local repmax = {select(5, GetFactionInfo(67)), select(5, GetFactionInfo(68)), select(5, GetFactionInfo(69)), select(5, GetFactionInfo(70)), select(5, GetFactionInfo(48)), select(5, GetFactionInfo(51))} - local output = "" - for i = 1, 6 do - if rep[i] < 21000 then - output = output .. name[i] .. " " .. rep[i] .. "/" .. repmax[i] .. "\n" - end - end - return output +function() + local name = {select(1, GetFactionInfo(67)), select(1, GetFactionInfo(68)), select(1, GetFactionInfo(69)), select(1, GetFactionInfo(70)), select(1, GetFactionInfo(48)), select(1, GetFactionInfo(51))} + local rep = {select(6, GetFactionInfo(67)), select(6, GetFactionInfo(68)), select(6, GetFactionInfo(69)), select(6, GetFactionInfo(70)), select(6, GetFactionInfo(48)), select(6, GetFactionInfo(51))} + local repmax = {select(5, GetFactionInfo(67)), select(5, GetFactionInfo(68)), select(5, GetFactionInfo(69)), select(5, GetFactionInfo(70)), select(5, GetFactionInfo(48)), select(5, GetFactionInfo(51))} + local output = "" + for i = 1, 6 do + if rep[i] < 21000 then + output = output .. name[i] .. " " .. rep[i] .. "/" .. repmax[i] .. "\n" + end + end + return output end \ No newline at end of file diff --git a/Complete Projects/Legion/Rogue Sniffer 9000/Target Direction.lua b/WeakAuras/Projects/Rogue Sniffer 9000/Target Direction.lua similarity index 97% rename from Complete Projects/Legion/Rogue Sniffer 9000/Target Direction.lua rename to WeakAuras/Projects/Rogue Sniffer 9000/Target Direction.lua index a0ca9e6..a62dc74 100644 --- a/Complete Projects/Legion/Rogue Sniffer 9000/Target Direction.lua +++ b/WeakAuras/Projects/Rogue Sniffer 9000/Target Direction.lua @@ -1,80 +1,80 @@ -CHAT_MSG_SYSTEM -function(_,msg) - if string.match(msg, "X:") and not string.match(msg, "ZoneX:") then - aura_env.tX = string.match(msg, "X: [%-*(%d+)%.*]+") or 0 - aura_env.tY = string.match(msg, "Y: [%-*(%d+)%.*]+") or 0 - aura_env.tX = string.match(aura_env.tX, "[%-*(%d+)%.*]+") - aura_env.tY = string.match(aura_env.tY, "[%-*(%d+)%.*]+") - end -end - -CHAT_MSG_WHISPER -function(_,msg,sender) - sender = string.match(sender, "%a+") - if sender == UnitName("player") and msg ~= "trackon" and msg ~= "trackoff" and msg ~= "acquiretarget" then - aura_env.target = string.match(msg, "%a+") - print(aura_env.target) - end - if msg == "trackon" and aura_env.enable == 0 and sender == UnitName("player") then - aura_env.enable = 1 - print(aura_env.enable, aura_env.target) - end - if msg == "trackoff" and aura_env.enable == 1 and sender == UnitName("player") then - aura_env.enable = 0 - print(aura_env.enable, aura_env.target) - end - if msg == "acquiretarget" and sender == UnitName("player") then - aura_env.target = UnitName("target") - print(aura_env.enable, aura_env.target) - end -end - -EVERY FRAME -function() - if aura_env.enable == 1 and aura_env.target ~= nil then - local tt = math.floor((GetTime() - aura_env.startTime) * 10) - if tt ~= aura_env.lastTime and tt % aura_env.tickRate == 0 then - print(aura_env.target) - aura_env.lastTime = tt - SendChatMessage(".gps " .. aura_env.target, "say") - end - end -end - -EVERY FRAME -function() - local function range (val, min, max, max2) - val = 1 - (((max - val) / (max - min)) * max2) - return val - end - aura_env.pX = UnitPosition("player") or 0 - aura_env.pY = select(2,UnitPosition("player")) or 0 - local X = aura_env.pX - aura_env.tX - local Y = aura_env.pY - aura_env.tY - local playerFace = GetPlayerFacing() or 0 - local playerA = math.floor(playerFace * 100) - playerA = range(playerA, 0, 630, 360) - 1 - playerA = - playerA - playerA = playerA - 90 - if playerA < 0 then playerA = playerA + 360 end - aura_env.hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) - aura_env.angle = math.deg(math.atan2(X,Y)) - if aura_env.angle < 0 then aura_env.angle = aura_env.angle + 360 end - aura_env.angle = aura_env.angle - playerA -end - -ANIMATION -function() - return - aura_env.angle -end - -INIT -aura_env.pX = UnitPosition("player") or 0 -aura_env.pY = select(2,UnitPosition("player")) or 0 -aura_env.tX = UnitPosition("player") or 0 -aura_env.tY = select(2,UnitPosition("player")) or 0 -aura_env.angle = 0 -aura_env.target = "" -aura_env.enable = 0 -aura_env.tickRate = 5 +CHAT_MSG_SYSTEM +function(_,msg) + if string.match(msg, "X:") and not string.match(msg, "ZoneX:") then + aura_env.tX = string.match(msg, "X: [%-*(%d+)%.*]+") or 0 + aura_env.tY = string.match(msg, "Y: [%-*(%d+)%.*]+") or 0 + aura_env.tX = string.match(aura_env.tX, "[%-*(%d+)%.*]+") + aura_env.tY = string.match(aura_env.tY, "[%-*(%d+)%.*]+") + end +end + +CHAT_MSG_WHISPER +function(_,msg,sender) + sender = string.match(sender, "%a+") + if sender == UnitName("player") and msg ~= "trackon" and msg ~= "trackoff" and msg ~= "acquiretarget" then + aura_env.target = string.match(msg, "%a+") + print(aura_env.target) + end + if msg == "trackon" and aura_env.enable == 0 and sender == UnitName("player") then + aura_env.enable = 1 + print(aura_env.enable, aura_env.target) + end + if msg == "trackoff" and aura_env.enable == 1 and sender == UnitName("player") then + aura_env.enable = 0 + print(aura_env.enable, aura_env.target) + end + if msg == "acquiretarget" and sender == UnitName("player") then + aura_env.target = UnitName("target") + print(aura_env.enable, aura_env.target) + end +end + +EVERY FRAME +function() + if aura_env.enable == 1 and aura_env.target ~= nil then + local tt = math.floor((GetTime() - aura_env.startTime) * 10) + if tt ~= aura_env.lastTime and tt % aura_env.tickRate == 0 then + print(aura_env.target) + aura_env.lastTime = tt + SendChatMessage(".gps " .. aura_env.target, "say") + end + end +end + +EVERY FRAME +function() + local function range (val, min, max, max2) + val = 1 - (((max - val) / (max - min)) * max2) + return val + end + aura_env.pX = UnitPosition("player") or 0 + aura_env.pY = select(2,UnitPosition("player")) or 0 + local X = aura_env.pX - aura_env.tX + local Y = aura_env.pY - aura_env.tY + local playerFace = GetPlayerFacing() or 0 + local playerA = math.floor(playerFace * 100) + playerA = range(playerA, 0, 630, 360) - 1 + playerA = - playerA + playerA = playerA - 90 + if playerA < 0 then playerA = playerA + 360 end + aura_env.hyp = math.sqrt((math.abs(X^2)) + (math.abs(Y^2))) + aura_env.angle = math.deg(math.atan2(X,Y)) + if aura_env.angle < 0 then aura_env.angle = aura_env.angle + 360 end + aura_env.angle = aura_env.angle - playerA +end + +ANIMATION +function() + return - aura_env.angle +end + +INIT +aura_env.pX = UnitPosition("player") or 0 +aura_env.pY = select(2,UnitPosition("player")) or 0 +aura_env.tX = UnitPosition("player") or 0 +aura_env.tY = select(2,UnitPosition("player")) or 0 +aura_env.angle = 0 +aura_env.target = "" +aura_env.enable = 0 +aura_env.tickRate = 5 aura_env.startTime = GetTime() \ No newline at end of file diff --git a/Complete Projects/Legion/Rogue Sniffer 9000/Target Distance.lua b/WeakAuras/Projects/Rogue Sniffer 9000/Target Distance.lua similarity index 97% rename from Complete Projects/Legion/Rogue Sniffer 9000/Target Distance.lua rename to WeakAuras/Projects/Rogue Sniffer 9000/Target Distance.lua index 7a384d1..08c351b 100644 --- a/Complete Projects/Legion/Rogue Sniffer 9000/Target Distance.lua +++ b/WeakAuras/Projects/Rogue Sniffer 9000/Target Distance.lua @@ -1,43 +1,43 @@ -DISPLAY -function() - return aura_env.hyp .. "\n" .. aura_env.vertiDista -end - -EVERY FRAME -function() - aura_env.pX = UnitPosition("player") or 0 - aura_env.pY = select(2,UnitPosition("player")) or 0 - aura_env.pZ = select(3,UnitPosition("player")) or 0 - print(aura_env.pZ, aura_env.tZ) - local ajdX = aura_env.pX - aura_env.tX - local ajdY = aura_env.pY - aura_env.tY - aura_env.tX = math.floor(aura_env.tX * 100) / 100 - aura_env.tY = math.floor(aura_env.tY * 100) / 100 - aura_env.pX = math.floor(aura_env.pX * 100) / 100 - aura_env.pY = math.floor(aura_env.pY * 100) / 100 - aura_env.hyp = math.floor((math.sqrt((ajdX * ajdX) + (ajdY * ajdY)))) - aura_env.vertiDista = math.floor(aura_env.pZ - aura_env.tZ) -end - -CHAT_MSG_SYSTEM -function(_,msg) - if string.match(msg, "X:") and not string.match(msg, "ZoneX:") then - aura_env.tX = msg:match("X: [%-*(%d+)%.*]+") or 0 - aura_env.tY = msg:match("Y: [%-*(%d+)%.*]+") or 0 - aura_env.tZ = msg:match("Z: [%-*(%d+)%.*]+") or 0 - aura_env.tX = aura_env.tX:match("[%-*(%d+)%.*]+") - aura_env.tY = aura_env.tY:match("[%-*(%d+)%.*]+") - aura_env.tZ = aura_env.tZ:match("[%-*(%d+)%.*]+") - print(aura_env.tX, aura_env.tY, aura_env.tZ) - end -end - -INIT -aura_env.hyp = 0 -aura_env.tX = 0 -aura_env.tY = 0 -aura_env.tZ = 0 -aura_env.pX = 0 -aura_env.pY = 0 -aura_env.pZ = 0 +DISPLAY +function() + return aura_env.hyp .. "\n" .. aura_env.vertiDista +end + +EVERY FRAME +function() + aura_env.pX = UnitPosition("player") or 0 + aura_env.pY = select(2,UnitPosition("player")) or 0 + aura_env.pZ = select(3,UnitPosition("player")) or 0 + print(aura_env.pZ, aura_env.tZ) + local ajdX = aura_env.pX - aura_env.tX + local ajdY = aura_env.pY - aura_env.tY + aura_env.tX = math.floor(aura_env.tX * 100) / 100 + aura_env.tY = math.floor(aura_env.tY * 100) / 100 + aura_env.pX = math.floor(aura_env.pX * 100) / 100 + aura_env.pY = math.floor(aura_env.pY * 100) / 100 + aura_env.hyp = math.floor((math.sqrt((ajdX * ajdX) + (ajdY * ajdY)))) + aura_env.vertiDista = math.floor(aura_env.pZ - aura_env.tZ) +end + +CHAT_MSG_SYSTEM +function(_,msg) + if string.match(msg, "X:") and not string.match(msg, "ZoneX:") then + aura_env.tX = msg:match("X: [%-*(%d+)%.*]+") or 0 + aura_env.tY = msg:match("Y: [%-*(%d+)%.*]+") or 0 + aura_env.tZ = msg:match("Z: [%-*(%d+)%.*]+") or 0 + aura_env.tX = aura_env.tX:match("[%-*(%d+)%.*]+") + aura_env.tY = aura_env.tY:match("[%-*(%d+)%.*]+") + aura_env.tZ = aura_env.tZ:match("[%-*(%d+)%.*]+") + print(aura_env.tX, aura_env.tY, aura_env.tZ) + end +end + +INIT +aura_env.hyp = 0 +aura_env.tX = 0 +aura_env.tY = 0 +aura_env.tZ = 0 +aura_env.pX = 0 +aura_env.pY = 0 +aura_env.pZ = 0 aura_env.vertiDista = 0 \ No newline at end of file diff --git a/Complete Projects/Legion/Rogue Sniffer 9000/Target Zone.lua b/WeakAuras/Projects/Rogue Sniffer 9000/Target Zone.lua similarity index 96% rename from Complete Projects/Legion/Rogue Sniffer 9000/Target Zone.lua rename to WeakAuras/Projects/Rogue Sniffer 9000/Target Zone.lua index f5c6e86..cc34e2b 100644 --- a/Complete Projects/Legion/Rogue Sniffer 9000/Target Zone.lua +++ b/WeakAuras/Projects/Rogue Sniffer 9000/Target Zone.lua @@ -1,19 +1,19 @@ -DISPLAY -function() - return string.format("%s\n%s\n%s", aura_env.map, aura_env.zone, aura_env.area) -end - -CHAT_MSG_SYSTEM -function(_,msg) - if string.match(msg, "Zone:") then - aura_env.map = msg:match("Map: %d+ %(([%a%d%s'$%-:]+)%)") - aura_env.zone = msg:match("Zone: %d+ %(([%a%d%s'$%-:]+)%)") - aura_env.area = msg:match("Area: %d+ %(([%a%d%s'$%-:]+)%)") - print(aura_env.map, aura_env.zone, aura_env.area) - end -end - -INIT -aura_env.map = "" -aura_env.zone = "" +DISPLAY +function() + return string.format("%s\n%s\n%s", aura_env.map, aura_env.zone, aura_env.area) +end + +CHAT_MSG_SYSTEM +function(_,msg) + if string.match(msg, "Zone:") then + aura_env.map = msg:match("Map: %d+ %(([%a%d%s'$%-:]+)%)") + aura_env.zone = msg:match("Zone: %d+ %(([%a%d%s'$%-:]+)%)") + aura_env.area = msg:match("Area: %d+ %(([%a%d%s'$%-:]+)%)") + print(aura_env.map, aura_env.zone, aura_env.area) + end +end + +INIT +aura_env.map = "" +aura_env.zone = "" aura_env.area = "" \ No newline at end of file diff --git a/Complete Projects/Legion/Rogue Stealth.lua b/WeakAuras/Projects/Rogue Stealth.lua similarity index 96% rename from Complete Projects/Legion/Rogue Stealth.lua rename to WeakAuras/Projects/Rogue Stealth.lua index 9324a14..4da97b9 100644 --- a/Complete Projects/Legion/Rogue Stealth.lua +++ b/WeakAuras/Projects/Rogue Stealth.lua @@ -1,39 +1,39 @@ -function() - local output = "" - local buff = 0 - if IsInRaid() == false then - for i = 1, GetNumGroupMembers() do - if UnitClass("party" .. i) == "Rogue" then - buff = 0 - for j = 1, 40 do - if UnitBuff("party" .. i, j) == "Stealth" then - output = output .. "|cFF00FF00" .. UnitName("party" .. i) .. "\n" - buff = 1 - break - end - end - if buff == 0 then - output = output .. "|cFFFF0000" .. UnitName("party" .. i) .. "\n" - end - end - end - return output - else - for i = 1, GetNumGroupMembers() do - if UnitClass("raid" .. i) == "Rogue" then - buff = 0 - for j = 1, 40 do - if UnitBuff("raid" .. i, j) == "Stealth" then - output = output .. "|cFF00FF00" .. UnitName("raid" .. i) .. "\n" - buff = 1 - break - end - end - if buff == 0 then - output = output .. "|cFFFF0000" .. UnitName("raid" .. i) .. "\n" - end - end - end - return output - end -end +function() + local output = "" + local buff = 0 + if IsInRaid() == false then + for i = 1, GetNumGroupMembers() do + if UnitClass("party" .. i) == "Rogue" then + buff = 0 + for j = 1, 40 do + if UnitBuff("party" .. i, j) == "Stealth" then + output = output .. "|cFF00FF00" .. UnitName("party" .. i) .. "\n" + buff = 1 + break + end + end + if buff == 0 then + output = output .. "|cFFFF0000" .. UnitName("party" .. i) .. "\n" + end + end + end + return output + else + for i = 1, GetNumGroupMembers() do + if UnitClass("raid" .. i) == "Rogue" then + buff = 0 + for j = 1, 40 do + if UnitBuff("raid" .. i, j) == "Stealth" then + output = output .. "|cFF00FF00" .. UnitName("raid" .. i) .. "\n" + buff = 1 + break + end + end + if buff == 0 then + output = output .. "|cFFFF0000" .. UnitName("raid" .. i) .. "\n" + end + end + end + return output + end +end diff --git a/FreshShit/RogueBullshit/Cooldowns b/WeakAuras/Projects/RogueBullshit/Cooldowns similarity index 100% rename from FreshShit/RogueBullshit/Cooldowns rename to WeakAuras/Projects/RogueBullshit/Cooldowns diff --git a/FreshShit/RogueBullshit/Mouse b/WeakAuras/Projects/RogueBullshit/Mouse similarity index 100% rename from FreshShit/RogueBullshit/Mouse rename to WeakAuras/Projects/RogueBullshit/Mouse diff --git a/Complete Projects/Legion/RuneDinger.lua b/WeakAuras/Projects/RuneDinger.lua similarity index 95% rename from Complete Projects/Legion/RuneDinger.lua rename to WeakAuras/Projects/RuneDinger.lua index 4d7117e..fb4e662 100644 --- a/Complete Projects/Legion/RuneDinger.lua +++ b/WeakAuras/Projects/RuneDinger.lua @@ -1,30 +1,30 @@ ---EVERY FRAME -function() - local runeAmount = 0 - for i = 1, 6 do - local start, duration, runeReady = GetRuneCooldown(i) - if runeReady == true then - runeAmount = runeAmount + 1 - end - end - if runeAmount ~= aura_env.runeAmount then - aura_env.time = (GetTime() * 1000) + 250 - aura_env.runeAmount = runeAmount - return true - end - aura_env.runeAmount = runeAmount - if aura_env.time > GetTime() * 1000 then - return true - else - return false - end -end - ---DISPLAY -function() - return aura_env.runeAmount -end - ---INIT -aura_env.time = GetTime() -aura_env.runeAmount = 0 +--EVERY FRAME +function() + local runeAmount = 0 + for i = 1, 6 do + local start, duration, runeReady = GetRuneCooldown(i) + if runeReady == true then + runeAmount = runeAmount + 1 + end + end + if runeAmount ~= aura_env.runeAmount then + aura_env.time = (GetTime() * 1000) + 250 + aura_env.runeAmount = runeAmount + return true + end + aura_env.runeAmount = runeAmount + if aura_env.time > GetTime() * 1000 then + return true + else + return false + end +end + +--DISPLAY +function() + return aura_env.runeAmount +end + +--INIT +aura_env.time = GetTime() +aura_env.runeAmount = 0 diff --git a/Complete Projects/Legion/SaveCombatLog.lua b/WeakAuras/Projects/SaveCombatLog.lua similarity index 96% rename from Complete Projects/Legion/SaveCombatLog.lua rename to WeakAuras/Projects/SaveCombatLog.lua index cbdc431..9b9981d 100644 --- a/Complete Projects/Legion/SaveCombatLog.lua +++ b/WeakAuras/Projects/SaveCombatLog.lua @@ -1,13 +1,13 @@ ---COMBAT_LOG_EVENT_UNFILTERED -function(...) - local subevent = select(3, ...) - CombatLogSaveDavey[#CombatLogSaveDavey + 1] = {} - CombatLogSaveDavey[#CombatLogSaveDavey][subevent] = {} - for i = 1, 40 do - local tempvar = select(i, ...) - if tempvar ~= nil then - tempvar = tostring(tempvar) - CombatLogSaveDavey[#CombatLogSaveDavey][subevent][i] = tempvar - end - end +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local subevent = select(3, ...) + CombatLogSaveDavey[#CombatLogSaveDavey + 1] = {} + CombatLogSaveDavey[#CombatLogSaveDavey][subevent] = {} + for i = 1, 40 do + local tempvar = select(i, ...) + if tempvar ~= nil then + tempvar = tostring(tempvar) + CombatLogSaveDavey[#CombatLogSaveDavey][subevent][i] = tempvar + end + end end \ No newline at end of file diff --git a/NewAge/ScrollingText/export b/WeakAuras/Projects/ScrollingText/export similarity index 100% rename from NewAge/ScrollingText/export rename to WeakAuras/Projects/ScrollingText/export diff --git a/Complete Projects/Legion/Sea-Star Proc.lua b/WeakAuras/Projects/Sea-Star Proc.lua similarity index 96% rename from Complete Projects/Legion/Sea-Star Proc.lua rename to WeakAuras/Projects/Sea-Star Proc.lua index 07b53b8..f892875 100644 --- a/Complete Projects/Legion/Sea-Star Proc.lua +++ b/WeakAuras/Projects/Sea-Star Proc.lua @@ -1,40 +1,40 @@ ---[[ -[02:14 PM] [Virag's DT]: 14 - Light of Dawn -[02:14 PM] [Virag's DT]: 6 - Pinkiepiie -[02:14 PM] [Virag's DT]: 3 - SPELL_CAST_SUCCESS -[02:15 PM] [Virag's DT]: 14 - Ocean's Embrace -[02:15 PM] [Virag's DT]: 6 - Pinkiepiie -[02:15 PM] [Virag's DT]: 3 - SPELL_AURA_APPLIED -[02:15 PM] [Virag's DT]: 1 - COMBAT_LOG_EVENT_UNFILTERED -]]-- - ---COMBAT_LOG_EVENT_UNFILTERED -function(...) - local name = select(6, ...) - if name == UnitName("player") then - local subevent = select(3, ...) - if subevent == "SPELL_CAST_SUCCESS" then - local sname = select(14, ...) - if sname == "Light of Dawn" then - aura_env.LoD = aura_env.LoD + 1 - CustomTrash["SeaStar"]["Casts"] = CustomTrash["SeaStar"]["Casts"] + 1 - end - end - if subevent == "SPELL_AURA_APPLIED" then - local sname = select(14, ...) - if sname == "Ocean's Embrace" then - aura_env.proc = aura_env.proc + 1 - CustomTrash["SeaStar"]["Procs"] = CustomTrash["SeaStar"]["Procs"] + 1 - end - end - end -end - ---DISPLAY -function() - return aura_env.proc .. "/" .. aura_env.LoD -end - ---INIT -aura_env.LoD = CustomTrash["SeaStar"]["Casts"] +--[[ +[02:14 PM] [Virag's DT]: 14 - Light of Dawn +[02:14 PM] [Virag's DT]: 6 - Pinkiepiie +[02:14 PM] [Virag's DT]: 3 - SPELL_CAST_SUCCESS +[02:15 PM] [Virag's DT]: 14 - Ocean's Embrace +[02:15 PM] [Virag's DT]: 6 - Pinkiepiie +[02:15 PM] [Virag's DT]: 3 - SPELL_AURA_APPLIED +[02:15 PM] [Virag's DT]: 1 - COMBAT_LOG_EVENT_UNFILTERED +]]-- + +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local name = select(6, ...) + if name == UnitName("player") then + local subevent = select(3, ...) + if subevent == "SPELL_CAST_SUCCESS" then + local sname = select(14, ...) + if sname == "Light of Dawn" then + aura_env.LoD = aura_env.LoD + 1 + CustomTrash["SeaStar"]["Casts"] = CustomTrash["SeaStar"]["Casts"] + 1 + end + end + if subevent == "SPELL_AURA_APPLIED" then + local sname = select(14, ...) + if sname == "Ocean's Embrace" then + aura_env.proc = aura_env.proc + 1 + CustomTrash["SeaStar"]["Procs"] = CustomTrash["SeaStar"]["Procs"] + 1 + end + end + end +end + +--DISPLAY +function() + return aura_env.proc .. "/" .. aura_env.LoD +end + +--INIT +aura_env.LoD = CustomTrash["SeaStar"]["Casts"] aura_env.proc = CustomTrash["SeaStar"]["Procs"] \ No newline at end of file diff --git a/FreshShit/SephuzBar/event.lua b/WeakAuras/Projects/SephuzBar/event.lua similarity index 95% rename from FreshShit/SephuzBar/event.lua rename to WeakAuras/Projects/SephuzBar/event.lua index bd9e6b7..9957fc2 100644 --- a/FreshShit/SephuzBar/event.lua +++ b/WeakAuras/Projects/SephuzBar/event.lua @@ -1,27 +1,27 @@ --- COMBAT_LOG_EVENT_UNFILTERED --- For some reason the non lua version does not work (with status > event > spell aura applied...) -function(e, ...) - local subevent, err = CLEUParser.GetSubevent(...) - if err ~= nil then - -- print(err) - return - end - - if subevent == "SPELL_AURA_APPLIED" then - local spellid, err = CLEUParser.GetSpellId(...) - if err ~= nil then - -- print(err) - return - end - - local target, err = CLEUParser.GetDestName(...) - if err ~= nil then - -- print(err) - return - end - -- print(target, spellid) - if spellid == 208052 and UnitName("player") == target then - return true - end - end -end +-- COMBAT_LOG_EVENT_UNFILTERED +-- For some reason the non lua version does not work (with status > event > spell aura applied...) +function(e, ...) + local subevent, err = CLEUParser.GetSubevent(...) + if err ~= nil then + -- print(err) + return + end + + if subevent == "SPELL_AURA_APPLIED" then + local spellid, err = CLEUParser.GetSpellId(...) + if err ~= nil then + -- print(err) + return + end + + local target, err = CLEUParser.GetDestName(...) + if err ~= nil then + -- print(err) + return + end + -- print(target, spellid) + if spellid == 208052 and UnitName("player") == target then + return true + end + end +end diff --git a/FreshShit/SephuzBar/export b/WeakAuras/Projects/SephuzBar/export similarity index 100% rename from FreshShit/SephuzBar/export rename to WeakAuras/Projects/SephuzBar/export diff --git a/FreshShit/ShardCounter/display.lua b/WeakAuras/Projects/ShardCounter/display.lua similarity index 95% rename from FreshShit/ShardCounter/display.lua rename to WeakAuras/Projects/ShardCounter/display.lua index 32f9b84..0388715 100644 --- a/FreshShit/ShardCounter/display.lua +++ b/WeakAuras/Projects/ShardCounter/display.lua @@ -1,3 +1,3 @@ -function() - return aura_env.Display +function() + return aura_env.Display end \ No newline at end of file diff --git a/FreshShit/ShardCounter/event.lua b/WeakAuras/Projects/ShardCounter/event.lua similarity index 96% rename from FreshShit/ShardCounter/event.lua rename to WeakAuras/Projects/ShardCounter/event.lua index 6c91326..aa2d6c1 100644 --- a/FreshShit/ShardCounter/event.lua +++ b/WeakAuras/Projects/ShardCounter/event.lua @@ -1,7 +1,7 @@ --- TICKER_500 -function() - aura_env.SoulShardStack:CleanOld() - aura_env.AgonyStack:CleanOld() - aura_env.UpdateDisplay() - aura_env.SoulShards = UnitPower("player", 7) -end +-- TICKER_500 +function() + aura_env.SoulShardStack:CleanOld() + aura_env.AgonyStack:CleanOld() + aura_env.UpdateDisplay() + aura_env.SoulShards = UnitPower("player", 7) +end diff --git a/FreshShit/ShardCounter/event2.lua b/WeakAuras/Projects/ShardCounter/event2.lua similarity index 97% rename from FreshShit/ShardCounter/event2.lua rename to WeakAuras/Projects/ShardCounter/event2.lua index 70c0bfc..0ee4f3d 100644 --- a/FreshShit/ShardCounter/event2.lua +++ b/WeakAuras/Projects/ShardCounter/event2.lua @@ -1,14 +1,14 @@ --- UNIT_POWER -function(e, unit, power) - if unit ~= "player" then return end - if power ~= "SOUL_SHARDS" then return end - local soulShards = UnitPower("player", 7) - if soulShards == aura_env.SoulShards then return end - if soulShards < aura_env.SoulShards then - aura_env.SoulShards = soulShards - return - end - aura_env.SoulShards = soulShards - aura_env.SoulShardStack:Push(time()) - WeakAuras.ScanEvents("PLAY_SOUND", "Interface\\Sounds\\quack.ogg") +-- UNIT_POWER +function(e, unit, power) + if unit ~= "player" then return end + if power ~= "SOUL_SHARDS" then return end + local soulShards = UnitPower("player", 7) + if soulShards == aura_env.SoulShards then return end + if soulShards < aura_env.SoulShards then + aura_env.SoulShards = soulShards + return + end + aura_env.SoulShards = soulShards + aura_env.SoulShardStack:Push(time()) + WeakAuras.ScanEvents("PLAY_SOUND", "Interface\\Sounds\\quack.ogg") end \ No newline at end of file diff --git a/FreshShit/ShardCounter/event3.lua b/WeakAuras/Projects/ShardCounter/event3.lua similarity index 97% rename from FreshShit/ShardCounter/event3.lua rename to WeakAuras/Projects/ShardCounter/event3.lua index 8985e5d..6b5b291 100644 --- a/FreshShit/ShardCounter/event3.lua +++ b/WeakAuras/Projects/ShardCounter/event3.lua @@ -1,14 +1,14 @@ --- COMBAT_LOG_EVENT_UNFILTERED -function(e, ...) - local caster, err = CLEUParser.GetSourceName(...) - if err then return end - if caster ~= aura_env.PlayerName then return end - local subevent, err = CLEUParser.GetSubevent(...) - if err then return end - if subevent ~= "SPELL_PERIODIC_DAMAGE" then return end - local spellID, err = CLEUParser.GetSpellId(...) - if err then return end - if spellID == 980 then - aura_env.AgonyStack:Push(time()) - end +-- COMBAT_LOG_EVENT_UNFILTERED +function(e, ...) + local caster, err = CLEUParser.GetSourceName(...) + if err then return end + if caster ~= aura_env.PlayerName then return end + local subevent, err = CLEUParser.GetSubevent(...) + if err then return end + if subevent ~= "SPELL_PERIODIC_DAMAGE" then return end + local spellID, err = CLEUParser.GetSpellId(...) + if err then return end + if spellID == 980 then + aura_env.AgonyStack:Push(time()) + end end \ No newline at end of file diff --git a/FreshShit/ShardCounter/event5.lua b/WeakAuras/Projects/ShardCounter/event5.lua similarity index 96% rename from FreshShit/ShardCounter/event5.lua rename to WeakAuras/Projects/ShardCounter/event5.lua index 788ab32..e8fb0c1 100644 --- a/FreshShit/ShardCounter/event5.lua +++ b/WeakAuras/Projects/ShardCounter/event5.lua @@ -1,7 +1,7 @@ --- PLAYER_REGEN_DISABLED -function() - if aura_env.config.resetOnCombat then - aura_env.AgonyStack:CleanOld(0) - aura_env.SoulShardStack:CleanOld(0) - end +-- PLAYER_REGEN_DISABLED +function() + if aura_env.config.resetOnCombat then + aura_env.AgonyStack:CleanOld(0) + aura_env.SoulShardStack:CleanOld(0) + end end \ No newline at end of file diff --git a/FreshShit/ShardCounter/export b/WeakAuras/Projects/ShardCounter/export similarity index 100% rename from FreshShit/ShardCounter/export rename to WeakAuras/Projects/ShardCounter/export diff --git a/FreshShit/ShardCounter/init.lua b/WeakAuras/Projects/ShardCounter/init.lua similarity index 96% rename from FreshShit/ShardCounter/init.lua rename to WeakAuras/Projects/ShardCounter/init.lua index e827276..84a0021 100644 --- a/FreshShit/ShardCounter/init.lua +++ b/WeakAuras/Projects/ShardCounter/init.lua @@ -1,52 +1,52 @@ ----@class Stack ----@field maxSize number ----@field values table -aura_env.Stack = { - ---@param maxSize number - ---@return Stack - new = function(maxSize) - local self = setmetatable({}, { - __index = aura_env.Stack, - }) - self.maxSize = maxSize - self.values = {} - return self - end, - ---@param self 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 - end, - ---@param self Stack - ---@return number - PerSecond = function(self) - local first = self.values[#self.values] - local last = time() - - if first and last then return #self.values / (math.max(last - first, 1)) end - return 0 - end, - ---@param self Stack - ---@param threshold number? - CleanOld = function(self, threshold) - 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 - end - -- print(string.format("Clean after %d", #self.values)) - end, -} - -aura_env.SoulShardStack = aura_env.Stack.new(aura_env.config.soulShardStackMaxSize) -aura_env.AgonyStack = aura_env.Stack.new(aura_env.config.agonyStackMaxSize) -aura_env.Display = "" -aura_env.SoulShards = 0 -aura_env.PlayerName = UnitName("player") - -aura_env.UpdateDisplay = function() - local shards = string.format("%-8s %-7.2f/m", "Shards: ", aura_env.SoulShardStack:PerSecond() * 60) - local agony = string.format("%-8s %-7.2f/m", "Agony: ", aura_env.AgonyStack:PerSecond() * 60) - aura_env.Display = string.format("%s\n%s", shards, agony) -end +---@class Stack +---@field maxSize number +---@field values table +aura_env.Stack = { + ---@param maxSize number + ---@return Stack + new = function(maxSize) + local self = setmetatable({}, { + __index = aura_env.Stack, + }) + self.maxSize = maxSize + self.values = {} + return self + end, + ---@param self 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 + end, + ---@param self Stack + ---@return number + PerSecond = function(self) + local first = self.values[#self.values] + local last = time() + + if first and last then return #self.values / (math.max(last - first, 1)) end + return 0 + end, + ---@param self Stack + ---@param threshold number? + CleanOld = function(self, threshold) + 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 + end + -- print(string.format("Clean after %d", #self.values)) + end, +} + +aura_env.SoulShardStack = aura_env.Stack.new(aura_env.config.soulShardStackMaxSize) +aura_env.AgonyStack = aura_env.Stack.new(aura_env.config.agonyStackMaxSize) +aura_env.Display = "" +aura_env.SoulShards = 0 +aura_env.PlayerName = UnitName("player") + +aura_env.UpdateDisplay = function() + local shards = string.format("%-8s %-7.2f/m", "Shards: ", aura_env.SoulShardStack:PerSecond() * 60) + local agony = string.format("%-8s %-7.2f/m", "Agony: ", aura_env.AgonyStack:PerSecond() * 60) + aura_env.Display = string.format("%s\n%s", shards, agony) +end diff --git a/Complete Projects/Legion/Shield proc.lua b/WeakAuras/Projects/Shield proc.lua similarity index 95% rename from Complete Projects/Legion/Shield proc.lua rename to WeakAuras/Projects/Shield proc.lua index 3ac1892..ebbf2cd 100644 --- a/Complete Projects/Legion/Shield proc.lua +++ b/WeakAuras/Projects/Shield proc.lua @@ -1,27 +1,27 @@ ---COMBAT_LOG_EVENT_UNFILTERED -function(...) - local subevent = select(3, ...) - if subevent == "SPELL_CAST_SUCCESS" then - local caster = select(6, ...) - local spell = select(14, ...) - if caster == UnitName("player") and spell == "Hammer of the Righteous" then - aura_env.hammers = aura_env.hammers + 1 - end - end -end - ---SPELL_ACTIVATION_OVERLAY_GLOW_SHOW -function(_,ID) - if ID == 31935 then - aura_env.shields = aura_env.shields + 1 - end -end - ---DISPLAY -function() - return aura_env.shields / aura_env.hammers -end - ---INIT -aura_env.hammers = 0 +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local subevent = select(3, ...) + if subevent == "SPELL_CAST_SUCCESS" then + local caster = select(6, ...) + local spell = select(14, ...) + if caster == UnitName("player") and spell == "Hammer of the Righteous" then + aura_env.hammers = aura_env.hammers + 1 + end + end +end + +--SPELL_ACTIVATION_OVERLAY_GLOW_SHOW +function(_,ID) + if ID == 31935 then + aura_env.shields = aura_env.shields + 1 + end +end + +--DISPLAY +function() + return aura_env.shields / aura_env.hammers +end + +--INIT +aura_env.hammers = 0 aura_env.shields = 0 \ No newline at end of file diff --git a/Complete Projects/Legion/Shin Thing.lua b/WeakAuras/Projects/Shin Thing.lua similarity index 97% rename from Complete Projects/Legion/Shin Thing.lua rename to WeakAuras/Projects/Shin Thing.lua index 74ab949..f30de4d 100644 --- a/Complete Projects/Legion/Shin Thing.lua +++ b/WeakAuras/Projects/Shin Thing.lua @@ -1,15 +1,15 @@ ---EVERY FRAME TRIGGER -function() - local buffs = {"Greater Blessing of Kings", "Greater Blessing of Wisdom"} --Define buffs to look for - for k,v in ipairs(buffs) do --Go through array looking for each buff - if UnitBuff("player", v) then --If it finds the buff then - aura_env.icon = select(3, UnitBuff("player", v)) --Gets the icon and stores it in a protected variable - return true --Returns true to show aura - end - end -end - ---ICON INFO -function() - return aura_env.icon --Returns icon stored previously +--EVERY FRAME TRIGGER +function() + local buffs = {"Greater Blessing of Kings", "Greater Blessing of Wisdom"} --Define buffs to look for + for k,v in ipairs(buffs) do --Go through array looking for each buff + if UnitBuff("player", v) then --If it finds the buff then + aura_env.icon = select(3, UnitBuff("player", v)) --Gets the icon and stores it in a protected variable + return true --Returns true to show aura + end + end +end + +--ICON INFO +function() + return aura_env.icon --Returns icon stored previously end \ No newline at end of file diff --git a/Complete Projects/Legion/Skinning Skill.lua b/WeakAuras/Projects/Skinning Skill.lua similarity index 95% rename from Complete Projects/Legion/Skinning Skill.lua rename to WeakAuras/Projects/Skinning Skill.lua index db3b94a..157b083 100644 --- a/Complete Projects/Legion/Skinning Skill.lua +++ b/WeakAuras/Projects/Skinning Skill.lua @@ -1,11 +1,11 @@ -DISPLAY -function() - local profSkill = select(3, GetProfessionInfo(6)) - local maxSkill = select(4, GetProfessionInfo(6)) - return profSkill .. "/" .. maxSkill -end - -CHAT_MSG_SKILL -function() - return true +DISPLAY +function() + local profSkill = select(3, GetProfessionInfo(6)) + local maxSkill = select(4, GetProfessionInfo(6)) + return profSkill .. "/" .. maxSkill +end + +CHAT_MSG_SKILL +function() + return true end \ No newline at end of file diff --git a/Complete Projects/Legion/SoTR Counter.lua b/WeakAuras/Projects/SoTR Counter.lua similarity index 95% rename from Complete Projects/Legion/SoTR Counter.lua rename to WeakAuras/Projects/SoTR Counter.lua index 7fa1729..54497af 100644 --- a/Complete Projects/Legion/SoTR Counter.lua +++ b/WeakAuras/Projects/SoTR Counter.lua @@ -1,25 +1,25 @@ -EVERY FRAME TRIGGER -function() - local charges = GetSpellCharges("Shield of the Righteous") - if charges ~= aura_env.oldcharges then - aura_env.time = (GetTime() * 1000) + 250 - aura_env.oldcharges = charges - return true - end - aura_env.oldcharges = charges - if aura_env.time > GetTime() * 1000 then - return true - else - return false - end -end - -DISPLAY -function() - local charges = GetSpellCharges("Shield of the Righteous") - return charges -end - -INIT -aura_env.time = GetTime() +EVERY FRAME TRIGGER +function() + local charges = GetSpellCharges("Shield of the Righteous") + if charges ~= aura_env.oldcharges then + aura_env.time = (GetTime() * 1000) + 250 + aura_env.oldcharges = charges + return true + end + aura_env.oldcharges = charges + if aura_env.time > GetTime() * 1000 then + return true + else + return false + end +end + +DISPLAY +function() + local charges = GetSpellCharges("Shield of the Righteous") + return charges +end + +INIT +aura_env.time = GetTime() aura_env.oldcharges = 0 \ No newline at end of file diff --git a/LegionWA/SoTR Counter/Event.lua b/WeakAuras/Projects/SoTR Counter/Event.lua similarity index 96% rename from LegionWA/SoTR Counter/Event.lua rename to WeakAuras/Projects/SoTR Counter/Event.lua index 82928e4..976fe42 100644 --- a/LegionWA/SoTR Counter/Event.lua +++ b/WeakAuras/Projects/SoTR Counter/Event.lua @@ -1,8 +1,8 @@ --- SPELL_UPDATE_CHARGES -function(e) - local charges = aura_env.getCharges() - if (charges ~= aura_env.currentCharges) then - aura_env.currentCharges = charges - return true - end +-- SPELL_UPDATE_CHARGES +function(e) + local charges = aura_env.getCharges() + if (charges ~= aura_env.currentCharges) then + aura_env.currentCharges = charges + return true + end end \ No newline at end of file diff --git a/LegionWA/SoTR Counter/Export b/WeakAuras/Projects/SoTR Counter/Export similarity index 100% rename from LegionWA/SoTR Counter/Export rename to WeakAuras/Projects/SoTR Counter/Export diff --git a/LegionWA/SoTR Counter/Init.lua b/WeakAuras/Projects/SoTR Counter/Init.lua similarity index 97% rename from LegionWA/SoTR Counter/Init.lua rename to WeakAuras/Projects/SoTR Counter/Init.lua index a2501a6..cbb61f0 100644 --- a/LegionWA/SoTR Counter/Init.lua +++ b/WeakAuras/Projects/SoTR Counter/Init.lua @@ -1,3 +1,3 @@ -aura_env.getCharges = function() return select(1, GetSpellCharges(53600)) end - -aura_env.currentCharges = 0 +aura_env.getCharges = function() return select(1, GetSpellCharges(53600)) end + +aura_env.currentCharges = 0 diff --git a/LegionWA/SoTR Counter/Text.lua b/WeakAuras/Projects/SoTR Counter/Text.lua similarity index 95% rename from LegionWA/SoTR Counter/Text.lua rename to WeakAuras/Projects/SoTR Counter/Text.lua index ef31c66..8a218ed 100644 --- a/LegionWA/SoTR Counter/Text.lua +++ b/WeakAuras/Projects/SoTR Counter/Text.lua @@ -1,3 +1,3 @@ -function() - return aura_env.getCharges() +function() + return aura_env.getCharges() end \ No newline at end of file diff --git a/Complete Projects/Legion/SoTR Mitigation.lua b/WeakAuras/Projects/SoTR Mitigation.lua similarity index 95% rename from Complete Projects/Legion/SoTR Mitigation.lua rename to WeakAuras/Projects/SoTR Mitigation.lua index 09ec82c..c97a8ef 100644 --- a/Complete Projects/Legion/SoTR Mitigation.lua +++ b/WeakAuras/Projects/SoTR Mitigation.lua @@ -1,55 +1,55 @@ ---[[ -[08:58 PM] Dump: value=UnitBuff("player","Shield of the Righteous") -[08:58 PM] [1]="Shield of the Righteous", -[08:58 PM] [2]="", -[08:58 PM] [3]=236265, -[08:58 PM] [4]=0, -[08:58 PM] [6]=4.5, -[08:58 PM] [7]=34675.812, -[08:58 PM] [8]="player", -[08:58 PM] [9]=false, -[08:58 PM] [10]=true, -[08:58 PM] [11]=132403, -[08:58 PM] [12]=false, -[08:58 PM] [13]=false, -[08:58 PM] [14]=true, -[08:58 PM] [15]=false, -[08:58 PM] [16]=1, -[08:58 PM] [17]=-60 - - -01:05 PM] [Virag's DT]: 1 - COMBAT_LOG_EVENT_UNFILTERED -[01:05 PM] [Virag's DT]: 3 - SPELL_AURA_APPLIED -[01:05 PM] [Virag's DT]: 6 - Pinkiepiie -[01:05 PM] [Virag's DT]: 14 - Shield of the Righteous -[01:05 PM] [Virag's DT]: 16 - BUFF -]] - ---EVERY FRAME -function() - if UnitBuff("player", "Shield of the Righteous") then - return true - else - aura_env.mitigation = 0 - return false - end -end - ---COMBAT_LOG_EVENT_UNFILTERED -function(...) - local e = select(3, ...) - if e == "SPELL_AURA_APPLIED" then - local caster = select(6, ...) - local name = select(14, ...) - if caster == UnitName("player") and name == "Shield of the Righteous" then - aura_env.mitigation = abs(select(17, UnitBuff("player", "Shield of the Righteous"))) - end - end -end - ---DISPLAY -function() - if aura_env.mitigation then - return aura_env.mitigation .. "%" - end +--[[ +[08:58 PM] Dump: value=UnitBuff("player","Shield of the Righteous") +[08:58 PM] [1]="Shield of the Righteous", +[08:58 PM] [2]="", +[08:58 PM] [3]=236265, +[08:58 PM] [4]=0, +[08:58 PM] [6]=4.5, +[08:58 PM] [7]=34675.812, +[08:58 PM] [8]="player", +[08:58 PM] [9]=false, +[08:58 PM] [10]=true, +[08:58 PM] [11]=132403, +[08:58 PM] [12]=false, +[08:58 PM] [13]=false, +[08:58 PM] [14]=true, +[08:58 PM] [15]=false, +[08:58 PM] [16]=1, +[08:58 PM] [17]=-60 + + +01:05 PM] [Virag's DT]: 1 - COMBAT_LOG_EVENT_UNFILTERED +[01:05 PM] [Virag's DT]: 3 - SPELL_AURA_APPLIED +[01:05 PM] [Virag's DT]: 6 - Pinkiepiie +[01:05 PM] [Virag's DT]: 14 - Shield of the Righteous +[01:05 PM] [Virag's DT]: 16 - BUFF +]] + +--EVERY FRAME +function() + if UnitBuff("player", "Shield of the Righteous") then + return true + else + aura_env.mitigation = 0 + return false + end +end + +--COMBAT_LOG_EVENT_UNFILTERED +function(...) + local e = select(3, ...) + if e == "SPELL_AURA_APPLIED" then + local caster = select(6, ...) + local name = select(14, ...) + if caster == UnitName("player") and name == "Shield of the Righteous" then + aura_env.mitigation = abs(select(17, UnitBuff("player", "Shield of the Righteous"))) + end + end +end + +--DISPLAY +function() + if aura_env.mitigation then + return aura_env.mitigation .. "%" + end end \ No newline at end of file diff --git a/LegionWA/SoTR Texture/Export b/WeakAuras/Projects/SoTR Texture/Export similarity index 100% rename from LegionWA/SoTR Texture/Export rename to WeakAuras/Projects/SoTR Texture/Export diff --git a/LegionWA/SoTR Texture/Init.lua b/WeakAuras/Projects/SoTR Texture/Init.lua similarity index 95% rename from LegionWA/SoTR Texture/Init.lua rename to WeakAuras/Projects/SoTR Texture/Init.lua index 85f0704..27d5f4b 100644 --- a/LegionWA/SoTR Texture/Init.lua +++ b/WeakAuras/Projects/SoTR Texture/Init.lua @@ -1,6 +1,6 @@ -aura_env.findAura = function(LFname) - for i = 1, 40 do - local name = UnitAura("player", i) - if name == LFname then return i end - end -end +aura_env.findAura = function(LFname) + for i = 1, 40 do + local name = UnitAura("player", i) + if name == LFname then return i end + end +end diff --git a/LegionWA/SoTR Texture/Text.lua b/WeakAuras/Projects/SoTR Texture/Text.lua similarity index 98% rename from LegionWA/SoTR Texture/Text.lua rename to WeakAuras/Projects/SoTR Texture/Text.lua index 256a89f..5567842 100644 --- a/LegionWA/SoTR Texture/Text.lua +++ b/WeakAuras/Projects/SoTR Texture/Text.lua @@ -1,3 +1,3 @@ -function() - return -select(17, UnitAura("player", aura_env.findAura("Shield of the Righteous"))) .. "%" +function() + return -select(17, UnitAura("player", aura_env.findAura("Shield of the Righteous"))) .. "%" end \ No newline at end of file diff --git a/WIP/Some Premade Documentation.lua b/WeakAuras/Projects/Some Premade Documentation.lua similarity index 97% rename from WIP/Some Premade Documentation.lua rename to WeakAuras/Projects/Some Premade Documentation.lua index 11510e3..b5ca285 100644 --- a/WIP/Some Premade Documentation.lua +++ b/WeakAuras/Projects/Some Premade Documentation.lua @@ -1,2977 +1,2977 @@ -------------------------------------------------------- -----------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 } - -ACTIVITY_RETURN_VALUES = { - fullName = 1, - shortName = 2, - categoryID = 3, - groupID = 4, - itemLevel = 5, - filters = 6, - minLevel = 7, - maxPlayers = 8, - 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 = { - [1] = "questing", - [2] = "dungeons", - [3] = "raids", --Prefix for expansion - [4] = "arenas", - [5] = "scenarios", - [6] = "custom", -- Prefix for "-pve" or "-pvp" - [7] = "skirmishes", - [8] = "battlegrounds", - [9] = "ratedbgs", - [10] = "ashran", -} - -LFG_LIST_PER_EXPANSION_TEXTURES = { - [0] = "classic", - [1] = "bc", - [2] = "wrath", - [3] = "cataclysm", - [4] = "mists", - [5] = "warlords", - [6] = "legion", -} - -LFG_LIST_GROUP_DATA_ATLASES = { - --Roles - 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]) -end - -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, - timeout = 0, - whileDead = 1, - hideOnEscape = 1, -} - -------------------------------------------------------- -----------Base Frame -------------------------------------------------------- -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]) - end - LFGListFrame_SetBaseFilters(self, LE_LFG_LIST_FILTER_PVE) - LFGListFrame_SetActivePanel(self, self.NothingAvailable) - - self.EventsInBackground = { - 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 - --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 - --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 - else - 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 - 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 - 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") - end - 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) - 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, ...) 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 - end - end -end - -function LFGListFrame_OnShow(self) - 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() -end - -function LFGListFrame_IsPanelValid(self, panel) - 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 - 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 - 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 - 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 - 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 - 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 - else - if panel == self.NothingAvailable and not IsRestrictedAccount() then return false end - end - - return true -end - -function LFGListFrame_GetBestPanel(self) - 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 - else - return self.CategorySelection - end -end - -function LFGListFrame_FixPanelValid(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 - - --If we need to change panels, do so - LFGListFrame_FixPanelValid(self) - - --Update the current panel - if self.activePanel and self.activePanel.updateAll then self.activePanel.updateAll(self.activePanel) end -end - -------------------------------------------------------- -----------Nothing available frame -------------------------------------------------------- -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 -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) - else - self.Label:SetText(LFG_LIST_LOADING) - end -end - -------------------------------------------------------- -----------Category selection -------------------------------------------------------- -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 tContains(LFG_LIST_ACTIVE_QUEUE_MESSAGE_EVENTS, event) then LFGListCategorySelection_UpdateNavButtons(self) end -end - -function LFGListCategorySelection_OnShow(self) - LFGListCategorySelection_UpdateCategoryButtons(self) - LFGListCategorySelection_UpdateNavButtons(self) -end - -function LFGListCategorySelection_UpdateCategoryButtons(self) - local baseFilters = self:GetParent().baseFilters - local categories = C_LFGList.GetAvailableCategories(baseFilters) - - 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) - - 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) - end - - hasSelected = hasSelected or isSelected - end - - --Hide any extra buttons - 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 -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) - - if filters ~= 0 and #C_LFGList.GetAvailableActivities(categoryID, nil, allFilters) == 0 then - return btnIndex, false - end - - 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] - end - - 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)] - else - 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" - end - - --Try with the suffix and then without it - 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() - - return btnIndex + 1, selected -end - -function LFGListCategorySelection_SelectCategory(self, categoryID, filters) - 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 - - --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 - 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 - 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 - end - - self.FindGroupButton:SetEnabled(findEnabled) - self.StartGroupButton:SetEnabled(startEnabled) -end - -function LFGListCategorySelectionStartGroupButton_OnClick(self) - local panel = self:GetParent() - if not panel.selectedCategory then return end - - PlaySound("igMainMenuOptionCheckBoxOn") - - local baseFilters = panel:GetParent().baseFilters - - local entryCreation = panel:GetParent().EntryCreation - - LFGListEntryCreation_Show(entryCreation, baseFilters, panel.selectedCategory, panel.selectedFilters) -end - -function LFGListCategorySelectionFindGroupButton_OnClick(self) - local panel = self:GetParent() - if not panel.selectedCategory then return end - - PlaySound("igMainMenuOptionCheckBoxOn") - - 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) -end - ---The individual category buttons -function LFGListCategorySelectionButton_OnClick(self) - 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) -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) - end -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) - end - LFGListEntryCreation_SetEditMode(self, false) - - LFGListEntryCreation_UpdateValidState(self) - - 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 - - --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.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() -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 - - --Update the category dropdown - 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) - - --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) - - --Update the recommended item level box - 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) - end - - 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) - end - - 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) - else - 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 - - 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) -end - -function LFGListEntryCreation_PopulateGroups(self, dropDown, info) - if not self.selectedCategory then - --We don't have a category, so we can't fill out groups. - return - end - - 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 - --We don't bother filtering if we have less than 5 items anyway - 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) - - --If we have some recommended, just display those - 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 - 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 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 - - 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) - - 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) - - 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])) - end - 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) - 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) - ) - end -end - -function LFGListEntryCreation_PopulateActivities(self, dropDown, info) - local useMore = self.selectedFilters == 0 - - local filters = bit.bor(self.baseFilters, self.selectedFilters) - - --Start out displaying everything - 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) - - 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 - end - end - else - useMore = false - end - end - - 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) - 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) - 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) - ) - end -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 - - 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) - 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 - else - errorText = LFGListUtil_GetActiveQueueMessage(false) - end - - self.ListGroupButton:SetEnabled(not errorText) - self.ListGroupButton.errorText = errorText -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) - - --Update the dropdowns - 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.HonorLevel.EditBox:SetText(honorLevel ~= 0 and honorLevel or "") - self.VoiceChat.EditBox:SetText(voiceChat) - self.Description.EditBox:SetText(comment) - - self.ListGroupButton:SetText(DONE_EDITING) - else - 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 LFGListEntryCreationCancelButton_OnClick(self) - 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) - end -end - -function LFGListEntryCreationListGroupButton_OnClick(self) - 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.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() -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] - end - LFGListEntryCreationActivityFinder_Update(self) -end - -function LFGListEntryCreationActivityFinder_Update(self) - local actitivities = self.matchingActivities - - 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() - else - button:UnlockHighlight() - end - button:Show() - else - button:Hide() - end - end - 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) - end - self:Hide() -end - -function LFGListEntryCreationActivityFinder_Cancel(self) self:Hide() end - -function LFGListEntryCreationActivityFinder_Select(self, activityID) - self.selectedActivity = activityID - LFGListEntryCreationActivityFinder_Update(self) -end - -------------------------------------------------------- -----------Application Viewing -------------------------------------------------------- -function LFGListApplicationViewer_OnLoad(self) - 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") -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 we can't make changes, we just remove people immediately - 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) - end -end - -function LFGListApplicationViewer_OnShow(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 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) - else - 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("") - else - self.ItemLevel:SetFormattedText(LFG_LIST_ITEM_LEVEL_CURRENT, ilvl) - end - - if voiceChat == "" then - self.VoiceChatFrame.tooltip = nil - self.VoiceChatFrame:Hide() - else - self.VoiceChatFrame.tooltip = voiceChat - self.VoiceChatFrame:Show() - 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)] - else - 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" - end - - --Try with the suffix and then without it - 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) - else - 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() - else - self.RemoveEntryButton:Hide() - self.EditButton:Hide() - end - - if IsRestrictedAccount() then - self.EditButton:Disable() - self.EditButton.tooltip = ERR_RESTRICTED_ACCOUNT_LFG_LIST_TRIAL - else - 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)) -end - -function LFGListApplicationViewer_UpdateResultList(self) - self.applicants = C_LFGList.GetApplicants() - - --Filter applicants. Don't worry about order. - LFGListUtil_FilterApplicants(self.applicants) - - --Sort 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) - end - self.totalApplicantHeight = totalHeight - - 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 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 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 - 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) - else - GameTooltip:Hide() - end - end - end - end -end - -function LFGListApplicationViewer_UpdateResults(self) - 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 - --Just hide the tooltip. We should show it again inside the update function. - GameTooltip:Hide() - end - - 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() - else - button.applicantID = nil - button:Hide() - end - end - 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)) - - --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 - end - 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() - 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) - else - 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) - 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) -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 name, class, localizedClass, level, itemLevel, honorLevel, tank, healer, damage, assignedRole, relationship = - C_LFGList.GetApplicantMemberInfo(appID, memberIdx) - - member.memberIdx = memberIdx - - 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) - end - - 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("") - end - - 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 - - --Update the roles. - 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]) - 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 - end - - 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) - 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 - end - - --We're scrolled completely off the bottom - return #self.applicantSizes, 0 -end - -function LFGListApplicationViewerUtil_GetButtonHeight(numApplicants) return 20 * numApplicants + 6 end - -function LFGListApplicationViewerEditButton_OnClick(self) - PlaySound("igMainMenuOptionCheckBoxOn") - - 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 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) - else - 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 - ) - end - - --Add statistics - 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 - 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 - 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 - end - - 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.clearButton:SetScript("OnClick", function(btn) - 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 - 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) - 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_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 - end - end - - if canChangeLanguages then - self.SearchBox:SetWidth(228) - self.FilterButton:Show() - else - 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) -end - -function LFGListSearchPanel_SetCategory(self, categoryID, filters, preferredFilters) - self.categoryID = categoryID - self.filters = filters - self.preferredFilters = preferredFilters - - 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) -end - -function LFGListSearchPanel_CreateGroupInstead(self) - 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) -end - -function LFGListSearchPanel_ValidateSelected(self) - 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 -end - -function LFGListSearchPanel_UpdateResults(self) - local offset = HybridScrollFrame_GetOffset(self.ScrollFrame) - local buttons = self.ScrollFrame.buttons - - --If we have an application selected, deselect it. - 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() - end - else - 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] - - if result then - button.resultID = result - LFGListSearchEntry_Update(button) - button:Show() - else - button.resultID = nil - button:Hide() - end - end - - 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) - 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 - ) - - HybridScrollFrame_Update(self.ScrollFrame, totalHeight, self.ScrollFrame:GetHeight()) - end - LFGListSearchPanel_UpdateButtonStatus(self) -end - -function LFGListSearchPanel_SelectResult(self, resultID) - 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 - else - 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 - else - 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 - end - end -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))) - end - - LFGListSearchPanel_DoSearch(self:GetParent()) - self:ClearFocus() -end - -function LFGListSearchPanelSearchBox_OnTabPressed(self) - if IsShiftKeyDown() then - LFGListSearchPanel_AutoCompleteAdvance(self:GetParent(), -1) - else - 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) - end -end - -function LFGListSearchPanelSearchBox_OnTextChanged(self) - 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() -end - -function LFGListSearchPanel_AutoCompleteAdvance(self, offset) - 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 - else - break - end - end - - local newIndex = nil - if not idx then - --We had nothing selected, advance from the front or back - if offset > 0 then - newIndex = offset - else - newIndex = numDisplayed + 1 + offset - end - else - --Advance from our old location - newIndex = ((idx - 1 + offset + numDisplayed) % numDisplayed) + 1 - end - - 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 - end - - --Choose the autocomplete results - 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) - - 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 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 - --This is just a "x more" button - 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 - - if id == self.AutoCompleteFrame.selected then - button.Selected:Show() - foundSelected = true - else - button.Selected:Hide() - end - end - button:Show() - 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() - end - - --Update the frames height and show it - 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") -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) - - --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") - - 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() - end - - --Center justify if we're on more than one line - if self.PendingLabel:GetHeight() > 15 then - self.PendingLabel:SetJustifyH("CENTER") - else - 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) - else - self.PendingLabel:SetPoint("RIGHT", self.ExpirationTime, "RIGHT", -3, 0) - end - - self.expiration = GetTime() + appDuration - - 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) - - 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 - - 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 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) - else - 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) -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 - 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) - 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 - ) - end - 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 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(" ") 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 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 - ) - ) - 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) - 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) - 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) - end - - GameTooltip:Show() -end - -function LFGListSearchEntryUtil_GetFriendList(resultID) - 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 - else - displayedFirst = true - end - 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 - else - displayedFirst = true - end - 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 - else - displayedFirst = true - end - list = list .. RGBTableToColorCode(ChatTypeInfo.GUILD) .. guildMates[i] .. FONT_COLOR_CODE_CLOSE - end - return list -end - -------------------------------------------------------- -----------Application dialog functions -------------------------------------------------------- -function LFGListApplicationDialog_OnLoad(self) - 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 -end - -function LFGListApplicationDialog_Show(self, resultID) - 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 avail1, avail2 - if availTank then avail1 = self.TankButton end - if availHealer then - if avail1 then - avail2 = self.HealerButton - else - avail1 = self.HealerButton - end - end - if availDPS then - if avail1 then - avail2 = self.DamagerButton - else - avail1 = self.DamagerButton - end - end - - 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) - end - - local _, tank, healer, dps = GetLFGRoles() - self.TankButton.CheckButton:SetChecked(tank) - self.HealerButton.CheckButton:SetChecked(healer) - self.DamagerButton.CheckButton:SetChecked(dps) - - 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 - else - self.SignUpButton:Disable() - self.SignUpButton.errorText = LFG_LIST_MUST_SELECT_ROLE - end -end - -function LFGListRoleButtonCheckButton_OnClick(self) - if self:GetChecked() then - PlaySound("igMainMenuOptionCheckBoxOn") - else - 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() - ) -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") -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) - - 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 - --Check if we need to show this result - LFGListInviteDialog_CheckPending(self) - end - 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) - end - - --Check if we need to show any panels - 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) - end - 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 we're not empowered to make changes to applications, don't pop up anything. - 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 - 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 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.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) - else - self:SetHeight(210) - self.OfflineNotice:Hide() - end - - StaticPopupSpecial_Show(self) - - 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) - else - 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) -end - -function LFGListInviteDialog_Decline(self) - C_LFGList.DeclineInvite(self.resultID) - StaticPopupSpecial_Hide(self) - LFGListInviteDialog_CheckPending(self) -end - -function LFGListInviteDialog_Acknowledge(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() - else - 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) - - --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) -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() - else - 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 - end - end - - 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 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 - end - 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 - --It's times like this when I wish Lua was 0-based... - cat[((self.tabCategoryIndex - 1 + offset + #cat) % #cat) + 1]:SetFocus() - end - end -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) - end - 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 - --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 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 - end - end - end - - 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)) - - --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 - else - filters = LE_LFG_LIST_FILTER_RECOMMENDED - end - else - filters = 0 - end - - return filters, categoryID, groupID, activityID -end - -function LFGListUtil_SetUpDropDown(context, dropdown, populateFunc, onClickFunc) - local onClick = function(self, ...) onClickFunc(context, self.value, ...) end - local initialize = function(self) - 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") -end - -function LFGListUtil_ValidateLevelReq(self, text) - 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 -end - -function LFGListUtil_GetCurrentExpansion() - 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 -end - -function LFGListUtil_GetDecoratedCategoryName(categoryName, filter, useColors) - if filter == 0 then return categoryName end - - local colorStart = "" - local colorEnd = "" - if useColors then - colorStart = "|cffffffff" - colorEnd = "|r" - 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) -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) - - --If one has more friends, do that one first - if numBNetFriends1 ~= numBNetFriends2 then return numBNetFriends1 > numBNetFriends2 end - - if numCharFriends1 ~= numCharFriends2 then return numCharFriends1 > numCharFriends2 end - - if numGuildMates1 ~= numGuildMates2 then return numGuildMates1 > numGuildMates2 end - - --If we aren't sorting by anything else, just go by ID - return id1 < id2 -end - -function LFGListUtil_SortSearchResults(results) table.sort(results, LFGListUtil_SortSearchResultsCB) end - -function LFGListUtil_FilterApplicants(applicants) - --[[for i=#applicants, 1, -1 do - local id, status, pendingStatus, numMembers, isNew = C_LFGList.GetApplicantInfo(applicants[i]); - if ( status ~= "applied" and status ~= "invited" ) then - --Remove this applicant. Don't worry about order. - applicants[i] = applicants[#applicants]; - applicants[#applicants] = nil; - end - end--]] -end - -function LFGListUtil_SortApplicantsCB(id1, 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 - - return orderID1 < orderID2 -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) -end - -function LFGListUtil_IsEntryEmpowered() - 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) - end - - GameTooltip:AddLine(string.format(label, value)) -end - -local LFG_LIST_SEARCH_ENTRY_MENU = { - { - text = nil, --Group name goes here - isTitle = true, - notCheckable = true, - }, - { - text = WHISPER_LEADER, - 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 - tooltipWhileDisabled = 1, - tooltipOnButton = 1, - tooltipTitle = nil, --The title to display on mouseover - tooltipText = nil, --The text to display on mouseover - }, - { - text = LFG_LIST_REPORT_GROUP_FOR, - hasArrow = true, - notCheckable = true, - menuList = { - { - text = LFG_LIST_BAD_NAME, - 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, - arg1 = nil, --Search reuslt ID goes here - notCheckable = true, - 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, - arg1 = nil, --Search reuslt ID goes here - notCheckable = true, - 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, - arg1 = nil, --Search reuslt ID goes here - notCheckable = true, - disabled = nil, --Disabled if we don't have a name for the leader - }, - }, - }, - { - 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 - 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 -end - -local LFG_LIST_APPLICANT_MEMBER_MENU = { - { - text = nil, --Player name goes here - isTitle = true, - notCheckable = true, - }, - { - text = WHISPER, - 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 - }, - { - text = LFG_LIST_REPORT_FOR, - hasArrow = true, - notCheckable = true, - menuList = { - { - text = LFG_LIST_BAD_PLAYER_NAME, - notCheckable = true, - 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, - arg1 = nil, --Applicant ID goes here - }, - }, - }, - { - text = IGNORE_PLAYER, - notCheckable = true, - 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 - }, - { - 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 -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) - 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 - --Open to the window of our active activity - 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") - else - 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") - else - 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) - - 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 - 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) - end - else - return strcmputf8i(fullName1, fullName2) < 0 - end -end - -function LFGListUtil_SortActivitiesByRelevancy(activities) - table.sort(activities, LFGListUtil_SortActivitiesByRelevancyCB) -end - -LFG_LIST_ACTIVE_QUEUE_MESSAGE_EVENTS = { - "LFG_LIST_ACTIVE_ENTRY_UPDATE", - "LFG_LIST_SEARCH_RESULT_UPDATED", - "PVP_ROLE_CHECK_UPDATED", - "UPDATE_BATTLEFIELD_STATUS", - "LFG_UPDATE", - "LFG_ROLE_CHECK_UPDATE", - "LFG_PROPOSAL_UPDATE", - "LFG_PROPOSAL_FAILED", - "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 - end - - --Check for listings if we have an application - 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 - 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 - 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 - -local LFG_LIST_INACTIVE_STATUSES = { - cancelled = true, - failed = true, - declined = true, - timedout = true, - invitedeclined = true, -} - -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 - --If we're not listed, we can't change the value. - return - end - - C_LFGList.UpdateListing(activityID, name, iLevel, honorLevel, voiceChat, comment, autoAccept) -end +------------------------------------------------------- +----------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 } + +ACTIVITY_RETURN_VALUES = { + fullName = 1, + shortName = 2, + categoryID = 3, + groupID = 4, + itemLevel = 5, + filters = 6, + minLevel = 7, + maxPlayers = 8, + 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 = { + [1] = "questing", + [2] = "dungeons", + [3] = "raids", --Prefix for expansion + [4] = "arenas", + [5] = "scenarios", + [6] = "custom", -- Prefix for "-pve" or "-pvp" + [7] = "skirmishes", + [8] = "battlegrounds", + [9] = "ratedbgs", + [10] = "ashran", +} + +LFG_LIST_PER_EXPANSION_TEXTURES = { + [0] = "classic", + [1] = "bc", + [2] = "wrath", + [3] = "cataclysm", + [4] = "mists", + [5] = "warlords", + [6] = "legion", +} + +LFG_LIST_GROUP_DATA_ATLASES = { + --Roles + 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]) +end + +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, + timeout = 0, + whileDead = 1, + hideOnEscape = 1, +} + +------------------------------------------------------- +----------Base Frame +------------------------------------------------------- +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]) + end + LFGListFrame_SetBaseFilters(self, LE_LFG_LIST_FILTER_PVE) + LFGListFrame_SetActivePanel(self, self.NothingAvailable) + + self.EventsInBackground = { + 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 + --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 + --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 + else + 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 + 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 + 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") + end + 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) + 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, ...) 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 + end + end +end + +function LFGListFrame_OnShow(self) + 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() +end + +function LFGListFrame_IsPanelValid(self, panel) + 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 + 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 + 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 + 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 + 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 + 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 + else + if panel == self.NothingAvailable and not IsRestrictedAccount() then return false end + end + + return true +end + +function LFGListFrame_GetBestPanel(self) + 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 + else + return self.CategorySelection + end +end + +function LFGListFrame_FixPanelValid(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 + + --If we need to change panels, do so + LFGListFrame_FixPanelValid(self) + + --Update the current panel + if self.activePanel and self.activePanel.updateAll then self.activePanel.updateAll(self.activePanel) end +end + +------------------------------------------------------- +----------Nothing available frame +------------------------------------------------------- +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 +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) + else + self.Label:SetText(LFG_LIST_LOADING) + end +end + +------------------------------------------------------- +----------Category selection +------------------------------------------------------- +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 tContains(LFG_LIST_ACTIVE_QUEUE_MESSAGE_EVENTS, event) then LFGListCategorySelection_UpdateNavButtons(self) end +end + +function LFGListCategorySelection_OnShow(self) + LFGListCategorySelection_UpdateCategoryButtons(self) + LFGListCategorySelection_UpdateNavButtons(self) +end + +function LFGListCategorySelection_UpdateCategoryButtons(self) + local baseFilters = self:GetParent().baseFilters + local categories = C_LFGList.GetAvailableCategories(baseFilters) + + 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) + + 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) + end + + hasSelected = hasSelected or isSelected + end + + --Hide any extra buttons + 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 +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) + + if filters ~= 0 and #C_LFGList.GetAvailableActivities(categoryID, nil, allFilters) == 0 then + return btnIndex, false + end + + 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] + end + + 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)] + else + 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" + end + + --Try with the suffix and then without it + 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() + + return btnIndex + 1, selected +end + +function LFGListCategorySelection_SelectCategory(self, categoryID, filters) + 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 + + --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 + 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 + 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 + end + + self.FindGroupButton:SetEnabled(findEnabled) + self.StartGroupButton:SetEnabled(startEnabled) +end + +function LFGListCategorySelectionStartGroupButton_OnClick(self) + local panel = self:GetParent() + if not panel.selectedCategory then return end + + PlaySound("igMainMenuOptionCheckBoxOn") + + local baseFilters = panel:GetParent().baseFilters + + local entryCreation = panel:GetParent().EntryCreation + + LFGListEntryCreation_Show(entryCreation, baseFilters, panel.selectedCategory, panel.selectedFilters) +end + +function LFGListCategorySelectionFindGroupButton_OnClick(self) + local panel = self:GetParent() + if not panel.selectedCategory then return end + + PlaySound("igMainMenuOptionCheckBoxOn") + + 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) +end + +--The individual category buttons +function LFGListCategorySelectionButton_OnClick(self) + 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) +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) + end +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) + end + LFGListEntryCreation_SetEditMode(self, false) + + LFGListEntryCreation_UpdateValidState(self) + + 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 + + --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.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() +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 + + --Update the category dropdown + 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) + + --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) + + --Update the recommended item level box + 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) + end + + 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) + end + + 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) + else + 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 + + 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) +end + +function LFGListEntryCreation_PopulateGroups(self, dropDown, info) + if not self.selectedCategory then + --We don't have a category, so we can't fill out groups. + return + end + + 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 + --We don't bother filtering if we have less than 5 items anyway + 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) + + --If we have some recommended, just display those + 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 + 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 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 + + 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) + + 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) + + 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])) + end + 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) + 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) + ) + end +end + +function LFGListEntryCreation_PopulateActivities(self, dropDown, info) + local useMore = self.selectedFilters == 0 + + local filters = bit.bor(self.baseFilters, self.selectedFilters) + + --Start out displaying everything + 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) + + 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 + end + end + else + useMore = false + end + end + + 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) + 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) + 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) + ) + end +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 + + 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) + 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 + else + errorText = LFGListUtil_GetActiveQueueMessage(false) + end + + self.ListGroupButton:SetEnabled(not errorText) + self.ListGroupButton.errorText = errorText +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) + + --Update the dropdowns + 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.HonorLevel.EditBox:SetText(honorLevel ~= 0 and honorLevel or "") + self.VoiceChat.EditBox:SetText(voiceChat) + self.Description.EditBox:SetText(comment) + + self.ListGroupButton:SetText(DONE_EDITING) + else + 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 LFGListEntryCreationCancelButton_OnClick(self) + 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) + end +end + +function LFGListEntryCreationListGroupButton_OnClick(self) + 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.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() +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] + end + LFGListEntryCreationActivityFinder_Update(self) +end + +function LFGListEntryCreationActivityFinder_Update(self) + local actitivities = self.matchingActivities + + 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() + else + button:UnlockHighlight() + end + button:Show() + else + button:Hide() + end + end + 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) + end + self:Hide() +end + +function LFGListEntryCreationActivityFinder_Cancel(self) self:Hide() end + +function LFGListEntryCreationActivityFinder_Select(self, activityID) + self.selectedActivity = activityID + LFGListEntryCreationActivityFinder_Update(self) +end + +------------------------------------------------------- +----------Application Viewing +------------------------------------------------------- +function LFGListApplicationViewer_OnLoad(self) + 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") +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 we can't make changes, we just remove people immediately + 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) + end +end + +function LFGListApplicationViewer_OnShow(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 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) + else + 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("") + else + self.ItemLevel:SetFormattedText(LFG_LIST_ITEM_LEVEL_CURRENT, ilvl) + end + + if voiceChat == "" then + self.VoiceChatFrame.tooltip = nil + self.VoiceChatFrame:Hide() + else + self.VoiceChatFrame.tooltip = voiceChat + self.VoiceChatFrame:Show() + 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)] + else + 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" + end + + --Try with the suffix and then without it + 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) + else + 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() + else + self.RemoveEntryButton:Hide() + self.EditButton:Hide() + end + + if IsRestrictedAccount() then + self.EditButton:Disable() + self.EditButton.tooltip = ERR_RESTRICTED_ACCOUNT_LFG_LIST_TRIAL + else + 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)) +end + +function LFGListApplicationViewer_UpdateResultList(self) + self.applicants = C_LFGList.GetApplicants() + + --Filter applicants. Don't worry about order. + LFGListUtil_FilterApplicants(self.applicants) + + --Sort 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) + end + self.totalApplicantHeight = totalHeight + + 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 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 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 + 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) + else + GameTooltip:Hide() + end + end + end + end +end + +function LFGListApplicationViewer_UpdateResults(self) + 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 + --Just hide the tooltip. We should show it again inside the update function. + GameTooltip:Hide() + end + + 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() + else + button.applicantID = nil + button:Hide() + end + end + 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)) + + --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 + end + 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() + 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) + else + 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) + 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) +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 name, class, localizedClass, level, itemLevel, honorLevel, tank, healer, damage, assignedRole, relationship = + C_LFGList.GetApplicantMemberInfo(appID, memberIdx) + + member.memberIdx = memberIdx + + 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) + end + + 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("") + end + + 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 + + --Update the roles. + 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]) + 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 + end + + 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) + 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 + end + + --We're scrolled completely off the bottom + return #self.applicantSizes, 0 +end + +function LFGListApplicationViewerUtil_GetButtonHeight(numApplicants) return 20 * numApplicants + 6 end + +function LFGListApplicationViewerEditButton_OnClick(self) + PlaySound("igMainMenuOptionCheckBoxOn") + + 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 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) + else + 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 + ) + end + + --Add statistics + 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 + 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 + 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 + end + + 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.clearButton:SetScript("OnClick", function(btn) + 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 + 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) + 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_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 + end + end + + if canChangeLanguages then + self.SearchBox:SetWidth(228) + self.FilterButton:Show() + else + 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) +end + +function LFGListSearchPanel_SetCategory(self, categoryID, filters, preferredFilters) + self.categoryID = categoryID + self.filters = filters + self.preferredFilters = preferredFilters + + 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) +end + +function LFGListSearchPanel_CreateGroupInstead(self) + 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) +end + +function LFGListSearchPanel_ValidateSelected(self) + 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 +end + +function LFGListSearchPanel_UpdateResults(self) + local offset = HybridScrollFrame_GetOffset(self.ScrollFrame) + local buttons = self.ScrollFrame.buttons + + --If we have an application selected, deselect it. + 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() + end + else + 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] + + if result then + button.resultID = result + LFGListSearchEntry_Update(button) + button:Show() + else + button.resultID = nil + button:Hide() + end + end + + 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) + 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 + ) + + HybridScrollFrame_Update(self.ScrollFrame, totalHeight, self.ScrollFrame:GetHeight()) + end + LFGListSearchPanel_UpdateButtonStatus(self) +end + +function LFGListSearchPanel_SelectResult(self, resultID) + 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 + else + 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 + else + 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 + end + end +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))) + end + + LFGListSearchPanel_DoSearch(self:GetParent()) + self:ClearFocus() +end + +function LFGListSearchPanelSearchBox_OnTabPressed(self) + if IsShiftKeyDown() then + LFGListSearchPanel_AutoCompleteAdvance(self:GetParent(), -1) + else + 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) + end +end + +function LFGListSearchPanelSearchBox_OnTextChanged(self) + 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() +end + +function LFGListSearchPanel_AutoCompleteAdvance(self, offset) + 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 + else + break + end + end + + local newIndex = nil + if not idx then + --We had nothing selected, advance from the front or back + if offset > 0 then + newIndex = offset + else + newIndex = numDisplayed + 1 + offset + end + else + --Advance from our old location + newIndex = ((idx - 1 + offset + numDisplayed) % numDisplayed) + 1 + end + + 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 + end + + --Choose the autocomplete results + 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) + + 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 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 + --This is just a "x more" button + 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 + + if id == self.AutoCompleteFrame.selected then + button.Selected:Show() + foundSelected = true + else + button.Selected:Hide() + end + end + button:Show() + 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() + end + + --Update the frames height and show it + 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") +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) + + --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") + + 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() + end + + --Center justify if we're on more than one line + if self.PendingLabel:GetHeight() > 15 then + self.PendingLabel:SetJustifyH("CENTER") + else + 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) + else + self.PendingLabel:SetPoint("RIGHT", self.ExpirationTime, "RIGHT", -3, 0) + end + + self.expiration = GetTime() + appDuration + + 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) + + 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 + + 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 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) + else + 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) +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 + 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) + 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 + ) + end + 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 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(" ") 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 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 + ) + ) + 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) + 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) + 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) + end + + GameTooltip:Show() +end + +function LFGListSearchEntryUtil_GetFriendList(resultID) + 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 + else + displayedFirst = true + end + 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 + else + displayedFirst = true + end + 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 + else + displayedFirst = true + end + list = list .. RGBTableToColorCode(ChatTypeInfo.GUILD) .. guildMates[i] .. FONT_COLOR_CODE_CLOSE + end + return list +end + +------------------------------------------------------- +----------Application dialog functions +------------------------------------------------------- +function LFGListApplicationDialog_OnLoad(self) + 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 +end + +function LFGListApplicationDialog_Show(self, resultID) + 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 avail1, avail2 + if availTank then avail1 = self.TankButton end + if availHealer then + if avail1 then + avail2 = self.HealerButton + else + avail1 = self.HealerButton + end + end + if availDPS then + if avail1 then + avail2 = self.DamagerButton + else + avail1 = self.DamagerButton + end + end + + 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) + end + + local _, tank, healer, dps = GetLFGRoles() + self.TankButton.CheckButton:SetChecked(tank) + self.HealerButton.CheckButton:SetChecked(healer) + self.DamagerButton.CheckButton:SetChecked(dps) + + 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 + else + self.SignUpButton:Disable() + self.SignUpButton.errorText = LFG_LIST_MUST_SELECT_ROLE + end +end + +function LFGListRoleButtonCheckButton_OnClick(self) + if self:GetChecked() then + PlaySound("igMainMenuOptionCheckBoxOn") + else + 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() + ) +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") +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) + + 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 + --Check if we need to show this result + LFGListInviteDialog_CheckPending(self) + end + 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) + end + + --Check if we need to show any panels + 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) + end + 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 we're not empowered to make changes to applications, don't pop up anything. + 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 + 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 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.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) + else + self:SetHeight(210) + self.OfflineNotice:Hide() + end + + StaticPopupSpecial_Show(self) + + 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) + else + 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) +end + +function LFGListInviteDialog_Decline(self) + C_LFGList.DeclineInvite(self.resultID) + StaticPopupSpecial_Hide(self) + LFGListInviteDialog_CheckPending(self) +end + +function LFGListInviteDialog_Acknowledge(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() + else + 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) + + --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) +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() + else + 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 + end + end + + 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 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 + end + 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 + --It's times like this when I wish Lua was 0-based... + cat[((self.tabCategoryIndex - 1 + offset + #cat) % #cat) + 1]:SetFocus() + end + end +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) + end + 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 + --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 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 + end + end + end + + 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)) + + --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 + else + filters = LE_LFG_LIST_FILTER_RECOMMENDED + end + else + filters = 0 + end + + return filters, categoryID, groupID, activityID +end + +function LFGListUtil_SetUpDropDown(context, dropdown, populateFunc, onClickFunc) + local onClick = function(self, ...) onClickFunc(context, self.value, ...) end + local initialize = function(self) + 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") +end + +function LFGListUtil_ValidateLevelReq(self, text) + 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 +end + +function LFGListUtil_GetCurrentExpansion() + 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 +end + +function LFGListUtil_GetDecoratedCategoryName(categoryName, filter, useColors) + if filter == 0 then return categoryName end + + local colorStart = "" + local colorEnd = "" + if useColors then + colorStart = "|cffffffff" + colorEnd = "|r" + 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) +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) + + --If one has more friends, do that one first + if numBNetFriends1 ~= numBNetFriends2 then return numBNetFriends1 > numBNetFriends2 end + + if numCharFriends1 ~= numCharFriends2 then return numCharFriends1 > numCharFriends2 end + + if numGuildMates1 ~= numGuildMates2 then return numGuildMates1 > numGuildMates2 end + + --If we aren't sorting by anything else, just go by ID + return id1 < id2 +end + +function LFGListUtil_SortSearchResults(results) table.sort(results, LFGListUtil_SortSearchResultsCB) end + +function LFGListUtil_FilterApplicants(applicants) + --[[for i=#applicants, 1, -1 do + local id, status, pendingStatus, numMembers, isNew = C_LFGList.GetApplicantInfo(applicants[i]); + if ( status ~= "applied" and status ~= "invited" ) then + --Remove this applicant. Don't worry about order. + applicants[i] = applicants[#applicants]; + applicants[#applicants] = nil; + end + end--]] +end + +function LFGListUtil_SortApplicantsCB(id1, 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 + + return orderID1 < orderID2 +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) +end + +function LFGListUtil_IsEntryEmpowered() + 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) + end + + GameTooltip:AddLine(string.format(label, value)) +end + +local LFG_LIST_SEARCH_ENTRY_MENU = { + { + text = nil, --Group name goes here + isTitle = true, + notCheckable = true, + }, + { + text = WHISPER_LEADER, + 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 + tooltipWhileDisabled = 1, + tooltipOnButton = 1, + tooltipTitle = nil, --The title to display on mouseover + tooltipText = nil, --The text to display on mouseover + }, + { + text = LFG_LIST_REPORT_GROUP_FOR, + hasArrow = true, + notCheckable = true, + menuList = { + { + text = LFG_LIST_BAD_NAME, + 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, + arg1 = nil, --Search reuslt ID goes here + notCheckable = true, + 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, + arg1 = nil, --Search reuslt ID goes here + notCheckable = true, + 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, + arg1 = nil, --Search reuslt ID goes here + notCheckable = true, + disabled = nil, --Disabled if we don't have a name for the leader + }, + }, + }, + { + 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 + 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 +end + +local LFG_LIST_APPLICANT_MEMBER_MENU = { + { + text = nil, --Player name goes here + isTitle = true, + notCheckable = true, + }, + { + text = WHISPER, + 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 + }, + { + text = LFG_LIST_REPORT_FOR, + hasArrow = true, + notCheckable = true, + menuList = { + { + text = LFG_LIST_BAD_PLAYER_NAME, + notCheckable = true, + 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, + arg1 = nil, --Applicant ID goes here + }, + }, + }, + { + text = IGNORE_PLAYER, + notCheckable = true, + 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 + }, + { + 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 +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) + 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 + --Open to the window of our active activity + 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") + else + 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") + else + 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) + + 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 + 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) + end + else + return strcmputf8i(fullName1, fullName2) < 0 + end +end + +function LFGListUtil_SortActivitiesByRelevancy(activities) + table.sort(activities, LFGListUtil_SortActivitiesByRelevancyCB) +end + +LFG_LIST_ACTIVE_QUEUE_MESSAGE_EVENTS = { + "LFG_LIST_ACTIVE_ENTRY_UPDATE", + "LFG_LIST_SEARCH_RESULT_UPDATED", + "PVP_ROLE_CHECK_UPDATED", + "UPDATE_BATTLEFIELD_STATUS", + "LFG_UPDATE", + "LFG_ROLE_CHECK_UPDATE", + "LFG_PROPOSAL_UPDATE", + "LFG_PROPOSAL_FAILED", + "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 + end + + --Check for listings if we have an application + 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 + 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 + 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 + +local LFG_LIST_INACTIVE_STATUSES = { + cancelled = true, + failed = true, + declined = true, + timedout = true, + invitedeclined = true, +} + +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 + --If we're not listed, we can't change the value. + return + end + + C_LFGList.UpdateListing(activityID, name, iLevel, honorLevel, voiceChat, comment, autoAccept) +end diff --git a/WIP/Some next gen shit.lua b/WeakAuras/Projects/Some next gen shit.lua similarity index 99% rename from WIP/Some next gen shit.lua rename to WeakAuras/Projects/Some next gen shit.lua index 8c51569..04b6c4b 100644 --- a/WIP/Some next gen shit.lua +++ b/WeakAuras/Projects/Some next gen shit.lua @@ -1,60 +1,60 @@ -/run if not IsQuestFlaggedCompleted(39399) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 54.3 81.0 Akrrilo"); end -/run if not IsQuestFlaggedCompleted(38430) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 53.0 40.6 Argosh the Destroyer"); end -/run if not IsQuestFlaggedCompleted(38609) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 34.9 47.1 Belgork"); end -/run if not IsQuestFlaggedCompleted(38262) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 23.8 51.9 Bilkor the Thrower"); end -/run if not IsQuestFlaggedCompleted(38696) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 50.0 74.0 Bleeding Hollow Horror"); end -/run if not IsQuestFlaggedCompleted(38266) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 21.2 42.2 Bloodhunter Zulk"); end -/run if not IsQuestFlaggedCompleted(38209) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 40.7 69.8 Bramblefell"); end -/run if not IsQuestFlaggedCompleted(38589) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 57.4 67.9 Broodlord Ixkor"); end -/run if not IsQuestFlaggedCompleted(38820) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 48.0 57.2 Captain Grok'mar"); end -/run if not IsQuestFlaggedCompleted(38756) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 35.6 79.9 Captain Ironbeard"); end -/run if not IsQuestFlaggedCompleted(38031) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 30.9 68.3 Ceraxas"); end -/run if not IsQuestFlaggedCompleted(37990) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 44.4 37.3 Cindral the Wildfire"); end -/run if not IsQuestFlaggedCompleted(38746) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 15.2 54.5 Commander Krag'goth"); end -/run if not IsQuestFlaggedCompleted(38749) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 51.0 46.0 Commander Org'mok"); end -/run if not IsQuestFlaggedCompleted(38265) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 23.5 46.8 Dorg the Bloody"); end -/run if not IsQuestFlaggedCompleted(38736) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 19.8 53.6 Driss Vile"); end -/run if not IsQuestFlaggedCompleted(38264) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 25.1 46.6 Drivnul"); end -/run if not IsQuestFlaggedCompleted(38411) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 49.5 36.5 Executor Riloth"); end -/run if not IsQuestFlaggedCompleted(39379) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 54.3 81.0 Eyepiercer"); end -/run if not IsQuestFlaggedCompleted(38775) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 28.7 51.0 Felbore"); end -/run if not IsQuestFlaggedCompleted(38634) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 45.8 47.0 Felsmith Damorka"); end -/run if not IsQuestFlaggedCompleted(38211) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 52.0 26.4 Felspark"); end -/run if not IsQuestFlaggedCompleted(38604) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 63.2 80.0 Gloomtalon"); end -/run if not IsQuestFlaggedCompleted(38764) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 34.5 78.3 Glub'glok"); end -/run if not IsQuestFlaggedCompleted(38709) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 33.3 35.8 Gorabosh"); end -/run if not IsQuestFlaggedCompleted(38400) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 47.5 42.3 Grand Warlock Nethekurse"); end -/run if not IsQuestFlaggedCompleted(38750) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 15.9 59.7 Grannok"); end -/run if not IsQuestFlaggedCompleted(39046) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 39.6 32.6 Harbormaster Korak"); end -/run if not IsQuestFlaggedCompleted(38026) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 31.5 73.5 Imp-Master Valessa"); end -/run if not IsQuestFlaggedCompleted(38030) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 26 8 76.1 Jax'zor"); end -/run if not IsQuestFlaggedCompleted(38605) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 52.0 83.8 Krell the Serene"); end -/run if not IsQuestFlaggedCompleted(38825) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 39.6 68.4 Kris'kar the Unredeemed"); end -/run if not IsQuestFlaggedCompleted(38029) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 32.5 74.0 Lady Oran"); end -/run if not IsQuestFlaggedCompleted(38726) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 52.4 62.5 Magwia"); end -/run if not IsQuestFlaggedCompleted(38032) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 25.5 79.2 Mistress Thavra"); end -/run if not IsQuestFlaggedCompleted(38580) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 53.0 20.0 Overlord Ma'gruth"); end -/run if not IsQuestFlaggedCompleted(38557) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 53.6 21.6 Painmistress Selora"); end -/run if not IsQuestFlaggedCompleted(38282) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 16.8 48.8 Podlord Wakkawam"); end -/run if not IsQuestFlaggedCompleted(38457) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 56.7 24.7 Putre'thar"); end -/run if not IsQuestFlaggedCompleted(38034) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 16.8 44.7 Rasthe"); end -/run if not IsQuestFlaggedCompleted(38496) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 26.3 54.9 Relgor"); end -/run if not IsQuestFlaggedCompleted(39400) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 54.3 81.0 Rendarr"); end -/run if not IsQuestFlaggedCompleted(38631) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 43.0 73.9 Rendrak"); end -/run if not IsQuestFlaggedCompleted(38263) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 20.5 49.8 Rogond the Tracker"); end -/run if not IsQuestFlaggedCompleted(37953) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 43.0 36.9 Sergeant Mor'grak"); end -/run if not IsQuestFlaggedCompleted(38812) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 49.7 61.2 Shadowthrash"); end -/run if not IsQuestFlaggedCompleted(38600) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 62.2 73.0 Soulslicer"); end -/run if not IsQuestFlaggedCompleted(38700) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 65.2 37.0 Steelsnout"); end -/run if not IsQuestFlaggedCompleted(38628) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 40.5 79.2 Sylissa"); end -/run if not IsQuestFlaggedCompleted(38752) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 16.1 57.4 Szirek the Twisted"); end -/run if not IsQuestFlaggedCompleted(38597) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 48.9 73.5 The Blackfang"); end -/run if not IsQuestFlaggedCompleted(38654) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 34.9 72.5 The Goreclaw"); end -/run if not IsQuestFlaggedCompleted(38751) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 13.0 57.0 The Iron Houndmaster"); end -/run if not IsQuestFlaggedCompleted(38632) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 37.0 72.0 The Night Haunter"); end -/run if not IsQuestFlaggedCompleted(38747) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 13.4 58.6 Tho'gar Gorefist"); end -/run if not IsQuestFlaggedCompleted(38620) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 34.1 44 3 Thromma the Gutslicer"); end -/run if not IsQuestFlaggedCompleted(37937) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 27.6 32.8 Varyx the Damned"); end -/run if not IsQuestFlaggedCompleted(38579) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 60.0 21.2 Xanzith the Everlasting"); end -/run if not IsQuestFlaggedCompleted(38207) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 48.4 28.6 Zeter'el"); end +/run if not IsQuestFlaggedCompleted(39399) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 54.3 81.0 Akrrilo"); end +/run if not IsQuestFlaggedCompleted(38430) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 53.0 40.6 Argosh the Destroyer"); end +/run if not IsQuestFlaggedCompleted(38609) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 34.9 47.1 Belgork"); end +/run if not IsQuestFlaggedCompleted(38262) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 23.8 51.9 Bilkor the Thrower"); end +/run if not IsQuestFlaggedCompleted(38696) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 50.0 74.0 Bleeding Hollow Horror"); end +/run if not IsQuestFlaggedCompleted(38266) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 21.2 42.2 Bloodhunter Zulk"); end +/run if not IsQuestFlaggedCompleted(38209) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 40.7 69.8 Bramblefell"); end +/run if not IsQuestFlaggedCompleted(38589) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 57.4 67.9 Broodlord Ixkor"); end +/run if not IsQuestFlaggedCompleted(38820) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 48.0 57.2 Captain Grok'mar"); end +/run if not IsQuestFlaggedCompleted(38756) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 35.6 79.9 Captain Ironbeard"); end +/run if not IsQuestFlaggedCompleted(38031) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 30.9 68.3 Ceraxas"); end +/run if not IsQuestFlaggedCompleted(37990) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 44.4 37.3 Cindral the Wildfire"); end +/run if not IsQuestFlaggedCompleted(38746) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 15.2 54.5 Commander Krag'goth"); end +/run if not IsQuestFlaggedCompleted(38749) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 51.0 46.0 Commander Org'mok"); end +/run if not IsQuestFlaggedCompleted(38265) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 23.5 46.8 Dorg the Bloody"); end +/run if not IsQuestFlaggedCompleted(38736) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 19.8 53.6 Driss Vile"); end +/run if not IsQuestFlaggedCompleted(38264) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 25.1 46.6 Drivnul"); end +/run if not IsQuestFlaggedCompleted(38411) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 49.5 36.5 Executor Riloth"); end +/run if not IsQuestFlaggedCompleted(39379) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 54.3 81.0 Eyepiercer"); end +/run if not IsQuestFlaggedCompleted(38775) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 28.7 51.0 Felbore"); end +/run if not IsQuestFlaggedCompleted(38634) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 45.8 47.0 Felsmith Damorka"); end +/run if not IsQuestFlaggedCompleted(38211) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 52.0 26.4 Felspark"); end +/run if not IsQuestFlaggedCompleted(38604) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 63.2 80.0 Gloomtalon"); end +/run if not IsQuestFlaggedCompleted(38764) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 34.5 78.3 Glub'glok"); end +/run if not IsQuestFlaggedCompleted(38709) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 33.3 35.8 Gorabosh"); end +/run if not IsQuestFlaggedCompleted(38400) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 47.5 42.3 Grand Warlock Nethekurse"); end +/run if not IsQuestFlaggedCompleted(38750) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 15.9 59.7 Grannok"); end +/run if not IsQuestFlaggedCompleted(39046) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 39.6 32.6 Harbormaster Korak"); end +/run if not IsQuestFlaggedCompleted(38026) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 31.5 73.5 Imp-Master Valessa"); end +/run if not IsQuestFlaggedCompleted(38030) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 26 8 76.1 Jax'zor"); end +/run if not IsQuestFlaggedCompleted(38605) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 52.0 83.8 Krell the Serene"); end +/run if not IsQuestFlaggedCompleted(38825) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 39.6 68.4 Kris'kar the Unredeemed"); end +/run if not IsQuestFlaggedCompleted(38029) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 32.5 74.0 Lady Oran"); end +/run if not IsQuestFlaggedCompleted(38726) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 52.4 62.5 Magwia"); end +/run if not IsQuestFlaggedCompleted(38032) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 25.5 79.2 Mistress Thavra"); end +/run if not IsQuestFlaggedCompleted(38580) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 53.0 20.0 Overlord Ma'gruth"); end +/run if not IsQuestFlaggedCompleted(38557) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 53.6 21.6 Painmistress Selora"); end +/run if not IsQuestFlaggedCompleted(38282) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 16.8 48.8 Podlord Wakkawam"); end +/run if not IsQuestFlaggedCompleted(38457) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 56.7 24.7 Putre'thar"); end +/run if not IsQuestFlaggedCompleted(38034) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 16.8 44.7 Rasthe"); end +/run if not IsQuestFlaggedCompleted(38496) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 26.3 54.9 Relgor"); end +/run if not IsQuestFlaggedCompleted(39400) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 54.3 81.0 Rendarr"); end +/run if not IsQuestFlaggedCompleted(38631) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 43.0 73.9 Rendrak"); end +/run if not IsQuestFlaggedCompleted(38263) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 20.5 49.8 Rogond the Tracker"); end +/run if not IsQuestFlaggedCompleted(37953) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 43.0 36.9 Sergeant Mor'grak"); end +/run if not IsQuestFlaggedCompleted(38812) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 49.7 61.2 Shadowthrash"); end +/run if not IsQuestFlaggedCompleted(38600) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 62.2 73.0 Soulslicer"); end +/run if not IsQuestFlaggedCompleted(38700) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 65.2 37.0 Steelsnout"); end +/run if not IsQuestFlaggedCompleted(38628) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 40.5 79.2 Sylissa"); end +/run if not IsQuestFlaggedCompleted(38752) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 16.1 57.4 Szirek the Twisted"); end +/run if not IsQuestFlaggedCompleted(38597) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 48.9 73.5 The Blackfang"); end +/run if not IsQuestFlaggedCompleted(38654) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 34.9 72.5 The Goreclaw"); end +/run if not IsQuestFlaggedCompleted(38751) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 13.0 57.0 The Iron Houndmaster"); end +/run if not IsQuestFlaggedCompleted(38632) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 37.0 72.0 The Night Haunter"); end +/run if not IsQuestFlaggedCompleted(38747) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 13.4 58.6 Tho'gar Gorefist"); end +/run if not IsQuestFlaggedCompleted(38620) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 34.1 44 3 Thromma the Gutslicer"); end +/run if not IsQuestFlaggedCompleted(37937) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 27.6 32.8 Varyx the Damned"); end +/run if not IsQuestFlaggedCompleted(38579) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 60.0 21.2 Xanzith the Everlasting"); end +/run if not IsQuestFlaggedCompleted(38207) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 48.4 28.6 Zeter'el"); end /run if not IsQuestFlaggedCompleted(39045) then SlashCmdList.TOMTOM_WAY("Tanaan Jungle 37.0 32.8 Zoug the Heavy"); end \ No newline at end of file diff --git a/Complete Projects/Legion/Soul Leech.lua b/WeakAuras/Projects/Soul Leech.lua similarity index 96% rename from Complete Projects/Legion/Soul Leech.lua rename to WeakAuras/Projects/Soul Leech.lua index 088def2..b24c822 100644 --- a/Complete Projects/Legion/Soul Leech.lua +++ b/WeakAuras/Projects/Soul Leech.lua @@ -1,20 +1,20 @@ -DISPLAY -function() - local max_absorb = math.floor(UnitHealthMax("player") / 5) - local absorb = select(17, UnitBuff("player", "Soul Leech")) or 0 - return math.floor((absorb / max_absorb) * 100) -end - -TRIGGER -function() - local buff = UnitBuff("player", "Soul Leech") or 0 - if buff ~= nil then return true else return false end -end - -DURATION_TRIGGER -function() - local max_absorb = math.floor(UnitHealthMax("player") / 5) - local absorb = select(17, UnitBuff("player", "Soul Leech")) or 0 - local percentage = math.floor((absorb / max_absorb) * 100) - return percentage, 100, true +DISPLAY +function() + local max_absorb = math.floor(UnitHealthMax("player") / 5) + local absorb = select(17, UnitBuff("player", "Soul Leech")) or 0 + return math.floor((absorb / max_absorb) * 100) +end + +TRIGGER +function() + local buff = UnitBuff("player", "Soul Leech") or 0 + if buff ~= nil then return true else return false end +end + +DURATION_TRIGGER +function() + local max_absorb = math.floor(UnitHealthMax("player") / 5) + local absorb = select(17, UnitBuff("player", "Soul Leech")) or 0 + local percentage = math.floor((absorb / max_absorb) * 100) + return percentage, 100, true end \ No newline at end of file diff --git a/FreshShit/Sounds/Bababooey.ogg b/WeakAuras/Projects/Sounds/Bababooey.ogg similarity index 100% rename from FreshShit/Sounds/Bababooey.ogg rename to WeakAuras/Projects/Sounds/Bababooey.ogg diff --git a/FreshShit/Sounds/Bing.ogg b/WeakAuras/Projects/Sounds/Bing.ogg similarity index 100% rename from FreshShit/Sounds/Bing.ogg rename to WeakAuras/Projects/Sounds/Bing.ogg diff --git a/FreshShit/Sounds/Bing2.ogg b/WeakAuras/Projects/Sounds/Bing2.ogg similarity index 100% rename from FreshShit/Sounds/Bing2.ogg rename to WeakAuras/Projects/Sounds/Bing2.ogg diff --git a/FreshShit/Sounds/Bong.ogg b/WeakAuras/Projects/Sounds/Bong.ogg similarity index 100% rename from FreshShit/Sounds/Bong.ogg rename to WeakAuras/Projects/Sounds/Bong.ogg diff --git a/FreshShit/Sounds/BonusDucks.ogg b/WeakAuras/Projects/Sounds/BonusDucks.ogg similarity index 100% rename from FreshShit/Sounds/BonusDucks.ogg rename to WeakAuras/Projects/Sounds/BonusDucks.ogg diff --git a/FreshShit/Sounds/Boom2.ogg b/WeakAuras/Projects/Sounds/Boom2.ogg similarity index 100% rename from FreshShit/Sounds/Boom2.ogg rename to WeakAuras/Projects/Sounds/Boom2.ogg diff --git a/FreshShit/Sounds/Boom3.ogg b/WeakAuras/Projects/Sounds/Boom3.ogg similarity index 100% rename from FreshShit/Sounds/Boom3.ogg rename to WeakAuras/Projects/Sounds/Boom3.ogg diff --git a/FreshShit/Sounds/Boom4.ogg b/WeakAuras/Projects/Sounds/Boom4.ogg similarity index 100% rename from FreshShit/Sounds/Boom4.ogg rename to WeakAuras/Projects/Sounds/Boom4.ogg diff --git a/FreshShit/Sounds/BoomVery.ogg b/WeakAuras/Projects/Sounds/BoomVery.ogg similarity index 100% rename from FreshShit/Sounds/BoomVery.ogg rename to WeakAuras/Projects/Sounds/BoomVery.ogg diff --git a/FreshShit/Sounds/China.ogg b/WeakAuras/Projects/Sounds/China.ogg similarity index 100% rename from FreshShit/Sounds/China.ogg rename to WeakAuras/Projects/Sounds/China.ogg diff --git a/FreshShit/Sounds/China2.ogg b/WeakAuras/Projects/Sounds/China2.ogg similarity index 100% rename from FreshShit/Sounds/China2.ogg rename to WeakAuras/Projects/Sounds/China2.ogg diff --git a/FreshShit/Sounds/China3.ogg b/WeakAuras/Projects/Sounds/China3.ogg similarity index 100% rename from FreshShit/Sounds/China3.ogg rename to WeakAuras/Projects/Sounds/China3.ogg diff --git a/FreshShit/Sounds/China4.ogg b/WeakAuras/Projects/Sounds/China4.ogg similarity index 100% rename from FreshShit/Sounds/China4.ogg rename to WeakAuras/Projects/Sounds/China4.ogg diff --git a/FreshShit/Sounds/China5.ogg b/WeakAuras/Projects/Sounds/China5.ogg similarity index 100% rename from FreshShit/Sounds/China5.ogg rename to WeakAuras/Projects/Sounds/China5.ogg diff --git a/FreshShit/Sounds/China6.ogg b/WeakAuras/Projects/Sounds/China6.ogg similarity index 100% rename from FreshShit/Sounds/China6.ogg rename to WeakAuras/Projects/Sounds/China6.ogg diff --git a/FreshShit/Sounds/Cloak.ogg b/WeakAuras/Projects/Sounds/Cloak.ogg similarity index 100% rename from FreshShit/Sounds/Cloak.ogg rename to WeakAuras/Projects/Sounds/Cloak.ogg diff --git a/FreshShit/Sounds/Conga.ogg b/WeakAuras/Projects/Sounds/Conga.ogg similarity index 100% rename from FreshShit/Sounds/Conga.ogg rename to WeakAuras/Projects/Sounds/Conga.ogg diff --git a/FreshShit/Sounds/Dead.ogg b/WeakAuras/Projects/Sounds/Dead.ogg similarity index 100% rename from FreshShit/Sounds/Dead.ogg rename to WeakAuras/Projects/Sounds/Dead.ogg diff --git a/FreshShit/Sounds/Domination.ogg b/WeakAuras/Projects/Sounds/Domination.ogg similarity index 100% rename from FreshShit/Sounds/Domination.ogg rename to WeakAuras/Projects/Sounds/Domination.ogg diff --git a/FreshShit/Sounds/FortressReel.ogg b/WeakAuras/Projects/Sounds/FortressReel.ogg similarity index 100% rename from FreshShit/Sounds/FortressReel.ogg rename to WeakAuras/Projects/Sounds/FortressReel.ogg diff --git a/FreshShit/Sounds/FortressReelLoop.ogg b/WeakAuras/Projects/Sounds/FortressReelLoop.ogg similarity index 100% rename from FreshShit/Sounds/FortressReelLoop.ogg rename to WeakAuras/Projects/Sounds/FortressReelLoop.ogg diff --git a/FreshShit/Sounds/Gaben.ogg b/WeakAuras/Projects/Sounds/Gaben.ogg similarity index 100% rename from FreshShit/Sounds/Gaben.ogg rename to WeakAuras/Projects/Sounds/Gaben.ogg diff --git a/FreshShit/Sounds/GetFucked.ogg b/WeakAuras/Projects/Sounds/GetFucked.ogg similarity index 100% rename from FreshShit/Sounds/GetFucked.ogg rename to WeakAuras/Projects/Sounds/GetFucked.ogg diff --git a/FreshShit/Sounds/HL2ButtonClick.ogg b/WeakAuras/Projects/Sounds/HL2ButtonClick.ogg similarity index 100% rename from FreshShit/Sounds/HL2ButtonClick.ogg rename to WeakAuras/Projects/Sounds/HL2ButtonClick.ogg diff --git a/FreshShit/Sounds/HL2ButtonRelease.ogg b/WeakAuras/Projects/Sounds/HL2ButtonRelease.ogg similarity index 100% rename from FreshShit/Sounds/HL2ButtonRelease.ogg rename to WeakAuras/Projects/Sounds/HL2ButtonRelease.ogg diff --git a/FreshShit/Sounds/HL2ButtonRollover.ogg b/WeakAuras/Projects/Sounds/HL2ButtonRollover.ogg similarity index 100% rename from FreshShit/Sounds/HL2ButtonRollover.ogg rename to WeakAuras/Projects/Sounds/HL2ButtonRollover.ogg diff --git a/FreshShit/Sounds/Hitsound.ogg b/WeakAuras/Projects/Sounds/Hitsound.ogg similarity index 100% rename from FreshShit/Sounds/Hitsound.ogg rename to WeakAuras/Projects/Sounds/Hitsound.ogg diff --git a/FreshShit/Sounds/Hitsound2.ogg b/WeakAuras/Projects/Sounds/Hitsound2.ogg similarity index 100% rename from FreshShit/Sounds/Hitsound2.ogg rename to WeakAuras/Projects/Sounds/Hitsound2.ogg diff --git a/FreshShit/Sounds/Hitsound3.ogg b/WeakAuras/Projects/Sounds/Hitsound3.ogg similarity index 100% rename from FreshShit/Sounds/Hitsound3.ogg rename to WeakAuras/Projects/Sounds/Hitsound3.ogg diff --git a/FreshShit/Sounds/Hitsound4.ogg b/WeakAuras/Projects/Sounds/Hitsound4.ogg similarity index 100% rename from FreshShit/Sounds/Hitsound4.ogg rename to WeakAuras/Projects/Sounds/Hitsound4.ogg diff --git a/FreshShit/Sounds/Hitsound5.ogg b/WeakAuras/Projects/Sounds/Hitsound5.ogg similarity index 100% rename from FreshShit/Sounds/Hitsound5.ogg rename to WeakAuras/Projects/Sounds/Hitsound5.ogg diff --git a/FreshShit/Sounds/HitsoundBap.ogg b/WeakAuras/Projects/Sounds/HitsoundBap.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundBap.ogg rename to WeakAuras/Projects/Sounds/HitsoundBap.ogg diff --git a/FreshShit/Sounds/HitsoundBell.ogg b/WeakAuras/Projects/Sounds/HitsoundBell.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundBell.ogg rename to WeakAuras/Projects/Sounds/HitsoundBell.ogg diff --git a/FreshShit/Sounds/HitsoundBoom.ogg b/WeakAuras/Projects/Sounds/HitsoundBoom.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundBoom.ogg rename to WeakAuras/Projects/Sounds/HitsoundBoom.ogg diff --git a/FreshShit/Sounds/HitsoundBubble.ogg b/WeakAuras/Projects/Sounds/HitsoundBubble.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundBubble.ogg rename to WeakAuras/Projects/Sounds/HitsoundBubble.ogg diff --git a/FreshShit/Sounds/HitsoundCOD.ogg b/WeakAuras/Projects/Sounds/HitsoundCOD.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundCOD.ogg rename to WeakAuras/Projects/Sounds/HitsoundCOD.ogg diff --git a/FreshShit/Sounds/HitsoundCasino1.ogg b/WeakAuras/Projects/Sounds/HitsoundCasino1.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundCasino1.ogg rename to WeakAuras/Projects/Sounds/HitsoundCasino1.ogg diff --git a/FreshShit/Sounds/HitsoundCasino2.ogg b/WeakAuras/Projects/Sounds/HitsoundCasino2.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundCasino2.ogg rename to WeakAuras/Projects/Sounds/HitsoundCasino2.ogg diff --git a/FreshShit/Sounds/HitsoundCasino3.ogg b/WeakAuras/Projects/Sounds/HitsoundCasino3.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundCasino3.ogg rename to WeakAuras/Projects/Sounds/HitsoundCasino3.ogg diff --git a/FreshShit/Sounds/HitsoundDing.ogg b/WeakAuras/Projects/Sounds/HitsoundDing.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundDing.ogg rename to WeakAuras/Projects/Sounds/HitsoundDing.ogg diff --git a/FreshShit/Sounds/HitsoundDuck.ogg b/WeakAuras/Projects/Sounds/HitsoundDuck.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundDuck.ogg rename to WeakAuras/Projects/Sounds/HitsoundDuck.ogg diff --git a/FreshShit/Sounds/HitsoundHardbass.ogg b/WeakAuras/Projects/Sounds/HitsoundHardbass.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundHardbass.ogg rename to WeakAuras/Projects/Sounds/HitsoundHardbass.ogg diff --git a/FreshShit/Sounds/HitsoundMinecraft.ogg b/WeakAuras/Projects/Sounds/HitsoundMinecraft.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundMinecraft.ogg rename to WeakAuras/Projects/Sounds/HitsoundMinecraft.ogg diff --git a/FreshShit/Sounds/HitsoundNootNoot.ogg b/WeakAuras/Projects/Sounds/HitsoundNootNoot.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundNootNoot.ogg rename to WeakAuras/Projects/Sounds/HitsoundNootNoot.ogg diff --git a/FreshShit/Sounds/HitsoundOra.ogg b/WeakAuras/Projects/Sounds/HitsoundOra.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundOra.ogg rename to WeakAuras/Projects/Sounds/HitsoundOra.ogg diff --git a/FreshShit/Sounds/HitsoundQuake.ogg b/WeakAuras/Projects/Sounds/HitsoundQuake.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundQuake.ogg rename to WeakAuras/Projects/Sounds/HitsoundQuake.ogg diff --git a/FreshShit/Sounds/HitsoundRS.ogg b/WeakAuras/Projects/Sounds/HitsoundRS.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundRS.ogg rename to WeakAuras/Projects/Sounds/HitsoundRS.ogg diff --git a/FreshShit/Sounds/HitsoundRing.ogg b/WeakAuras/Projects/Sounds/HitsoundRing.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundRing.ogg rename to WeakAuras/Projects/Sounds/HitsoundRing.ogg diff --git a/FreshShit/Sounds/HitsoundSans.ogg b/WeakAuras/Projects/Sounds/HitsoundSans.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundSans.ogg rename to WeakAuras/Projects/Sounds/HitsoundSans.ogg diff --git a/FreshShit/Sounds/HitsoundSqueak.ogg b/WeakAuras/Projects/Sounds/HitsoundSqueak.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundSqueak.ogg rename to WeakAuras/Projects/Sounds/HitsoundSqueak.ogg diff --git a/FreshShit/Sounds/HitsoundTin.ogg b/WeakAuras/Projects/Sounds/HitsoundTin.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundTin.ogg rename to WeakAuras/Projects/Sounds/HitsoundTin.ogg diff --git a/FreshShit/Sounds/HitsoundUltrakill.ogg b/WeakAuras/Projects/Sounds/HitsoundUltrakill.ogg similarity index 100% rename from FreshShit/Sounds/HitsoundUltrakill.ogg rename to WeakAuras/Projects/Sounds/HitsoundUltrakill.ogg diff --git a/FreshShit/Sounds/ItsOverJerma.ogg b/WeakAuras/Projects/Sounds/ItsOverJerma.ogg similarity index 100% rename from FreshShit/Sounds/ItsOverJerma.ogg rename to WeakAuras/Projects/Sounds/ItsOverJerma.ogg diff --git a/FreshShit/Sounds/KillsoundHardbass.ogg b/WeakAuras/Projects/Sounds/KillsoundHardbass.ogg similarity index 100% rename from FreshShit/Sounds/KillsoundHardbass.ogg rename to WeakAuras/Projects/Sounds/KillsoundHardbass.ogg diff --git a/FreshShit/Sounds/KillsoundLego.ogg b/WeakAuras/Projects/Sounds/KillsoundLego.ogg similarity index 100% rename from FreshShit/Sounds/KillsoundLego.ogg rename to WeakAuras/Projects/Sounds/KillsoundLego.ogg diff --git a/FreshShit/Sounds/KillsoundRing.ogg b/WeakAuras/Projects/Sounds/KillsoundRing.ogg similarity index 100% rename from FreshShit/Sounds/KillsoundRing.ogg rename to WeakAuras/Projects/Sounds/KillsoundRing.ogg diff --git a/FreshShit/Sounds/KillsoundUltrakill.ogg b/WeakAuras/Projects/Sounds/KillsoundUltrakill.ogg similarity index 100% rename from FreshShit/Sounds/KillsoundUltrakill.ogg rename to WeakAuras/Projects/Sounds/KillsoundUltrakill.ogg diff --git a/FreshShit/Sounds/KillsoundYoda.ogg b/WeakAuras/Projects/Sounds/KillsoundYoda.ogg similarity index 100% rename from FreshShit/Sounds/KillsoundYoda.ogg rename to WeakAuras/Projects/Sounds/KillsoundYoda.ogg diff --git a/FreshShit/Sounds/MGSSpot.ogg b/WeakAuras/Projects/Sounds/MGSSpot.ogg similarity index 100% rename from FreshShit/Sounds/MGSSpot.ogg rename to WeakAuras/Projects/Sounds/MGSSpot.ogg diff --git a/FreshShit/Sounds/MedicGaming.ogg b/WeakAuras/Projects/Sounds/MedicGaming.ogg similarity index 100% rename from FreshShit/Sounds/MedicGaming.ogg rename to WeakAuras/Projects/Sounds/MedicGaming.ogg diff --git a/FreshShit/Sounds/MedicGangsterParadise.ogg b/WeakAuras/Projects/Sounds/MedicGangsterParadise.ogg similarity index 100% rename from FreshShit/Sounds/MedicGangsterParadise.ogg rename to WeakAuras/Projects/Sounds/MedicGangsterParadise.ogg diff --git a/FreshShit/Sounds/MeetTheSniper.ogg b/WeakAuras/Projects/Sounds/MeetTheSniper.ogg similarity index 100% rename from FreshShit/Sounds/MeetTheSniper.ogg rename to WeakAuras/Projects/Sounds/MeetTheSniper.ogg diff --git a/FreshShit/Sounds/Nemesis.ogg b/WeakAuras/Projects/Sounds/Nemesis.ogg similarity index 100% rename from FreshShit/Sounds/Nemesis.ogg rename to WeakAuras/Projects/Sounds/Nemesis.ogg diff --git a/FreshShit/Sounds/OOF.ogg b/WeakAuras/Projects/Sounds/OOF.ogg similarity index 100% rename from FreshShit/Sounds/OOF.ogg rename to WeakAuras/Projects/Sounds/OOF.ogg diff --git a/FreshShit/Sounds/OhNo.ogg b/WeakAuras/Projects/Sounds/OhNo.ogg similarity index 100% rename from FreshShit/Sounds/OhNo.ogg rename to WeakAuras/Projects/Sounds/OhNo.ogg diff --git a/FreshShit/Sounds/POOT.ogg b/WeakAuras/Projects/Sounds/POOT.ogg similarity index 100% rename from FreshShit/Sounds/POOT.ogg rename to WeakAuras/Projects/Sounds/POOT.ogg diff --git a/FreshShit/Sounds/Piss.ogg b/WeakAuras/Projects/Sounds/Piss.ogg similarity index 100% rename from FreshShit/Sounds/Piss.ogg rename to WeakAuras/Projects/Sounds/Piss.ogg diff --git a/FreshShit/Sounds/Revenge.ogg b/WeakAuras/Projects/Sounds/Revenge.ogg similarity index 100% rename from FreshShit/Sounds/Revenge.ogg rename to WeakAuras/Projects/Sounds/Revenge.ogg diff --git a/FreshShit/Sounds/StarScream.ogg b/WeakAuras/Projects/Sounds/StarScream.ogg similarity index 100% rename from FreshShit/Sounds/StarScream.ogg rename to WeakAuras/Projects/Sounds/StarScream.ogg diff --git a/FreshShit/Sounds/TheOnlyThingTheyFearIsYou.ogg b/WeakAuras/Projects/Sounds/TheOnlyThingTheyFearIsYou.ogg similarity index 100% rename from FreshShit/Sounds/TheOnlyThingTheyFearIsYou.ogg rename to WeakAuras/Projects/Sounds/TheOnlyThingTheyFearIsYou.ogg diff --git a/FreshShit/Sounds/TheOnlyThingTheyFearIsYou_Fried.ogg b/WeakAuras/Projects/Sounds/TheOnlyThingTheyFearIsYou_Fried.ogg similarity index 100% rename from FreshShit/Sounds/TheOnlyThingTheyFearIsYou_Fried.ogg rename to WeakAuras/Projects/Sounds/TheOnlyThingTheyFearIsYou_Fried.ogg diff --git a/FreshShit/Sounds/Uncloak.ogg b/WeakAuras/Projects/Sounds/Uncloak.ogg similarity index 100% rename from FreshShit/Sounds/Uncloak.ogg rename to WeakAuras/Projects/Sounds/Uncloak.ogg diff --git a/FreshShit/Sounds/WeAreNumberOne.ogg b/WeakAuras/Projects/Sounds/WeAreNumberOne.ogg similarity index 100% rename from FreshShit/Sounds/WeAreNumberOne.ogg rename to WeakAuras/Projects/Sounds/WeAreNumberOne.ogg diff --git a/FreshShit/Sounds/WeAreNumberOneFried.ogg b/WeakAuras/Projects/Sounds/WeAreNumberOneFried.ogg similarity index 100% rename from FreshShit/Sounds/WeAreNumberOneFried.ogg rename to WeakAuras/Projects/Sounds/WeAreNumberOneFried.ogg diff --git a/FreshShit/Sounds/WindowsXPError.ogg b/WeakAuras/Projects/Sounds/WindowsXPError.ogg similarity index 100% rename from FreshShit/Sounds/WindowsXPError.ogg rename to WeakAuras/Projects/Sounds/WindowsXPError.ogg diff --git a/FreshShit/Sounds/YouveGotMail.ogg b/WeakAuras/Projects/Sounds/YouveGotMail.ogg similarity index 100% rename from FreshShit/Sounds/YouveGotMail.ogg rename to WeakAuras/Projects/Sounds/YouveGotMail.ogg diff --git a/FreshShit/Sounds/bckp.tar.gz b/WeakAuras/Projects/Sounds/bckp.tar.gz similarity index 100% rename from FreshShit/Sounds/bckp.tar.gz rename to WeakAuras/Projects/Sounds/bckp.tar.gz diff --git a/FreshShit/Sounds/output.ogg b/WeakAuras/Projects/Sounds/output.ogg similarity index 100% rename from FreshShit/Sounds/output.ogg rename to WeakAuras/Projects/Sounds/output.ogg diff --git a/FreshShit/Sounds/wav/Bing.wav b/WeakAuras/Projects/Sounds/wav/Bing.wav similarity index 100% rename from FreshShit/Sounds/wav/Bing.wav rename to WeakAuras/Projects/Sounds/wav/Bing.wav diff --git a/FreshShit/Sounds/wav/Bing2.wav b/WeakAuras/Projects/Sounds/wav/Bing2.wav similarity index 100% rename from FreshShit/Sounds/wav/Bing2.wav rename to WeakAuras/Projects/Sounds/wav/Bing2.wav diff --git a/FreshShit/Sounds/wav/Bong.wav b/WeakAuras/Projects/Sounds/wav/Bong.wav similarity index 100% rename from FreshShit/Sounds/wav/Bong.wav rename to WeakAuras/Projects/Sounds/wav/Bong.wav diff --git a/FreshShit/Sounds/wav/BonusDucks.wav b/WeakAuras/Projects/Sounds/wav/BonusDucks.wav similarity index 100% rename from FreshShit/Sounds/wav/BonusDucks.wav rename to WeakAuras/Projects/Sounds/wav/BonusDucks.wav diff --git a/FreshShit/Sounds/wav/Boom2.wav b/WeakAuras/Projects/Sounds/wav/Boom2.wav similarity index 100% rename from FreshShit/Sounds/wav/Boom2.wav rename to WeakAuras/Projects/Sounds/wav/Boom2.wav diff --git a/FreshShit/Sounds/wav/Boom4.wav b/WeakAuras/Projects/Sounds/wav/Boom4.wav similarity index 100% rename from FreshShit/Sounds/wav/Boom4.wav rename to WeakAuras/Projects/Sounds/wav/Boom4.wav diff --git a/FreshShit/Sounds/wav/BoomVery.wav b/WeakAuras/Projects/Sounds/wav/BoomVery.wav similarity index 100% rename from FreshShit/Sounds/wav/BoomVery.wav rename to WeakAuras/Projects/Sounds/wav/BoomVery.wav diff --git a/FreshShit/Sounds/wav/China.wav b/WeakAuras/Projects/Sounds/wav/China.wav similarity index 100% rename from FreshShit/Sounds/wav/China.wav rename to WeakAuras/Projects/Sounds/wav/China.wav diff --git a/FreshShit/Sounds/wav/China2.wav b/WeakAuras/Projects/Sounds/wav/China2.wav similarity index 100% rename from FreshShit/Sounds/wav/China2.wav rename to WeakAuras/Projects/Sounds/wav/China2.wav diff --git a/FreshShit/Sounds/wav/China4.wav b/WeakAuras/Projects/Sounds/wav/China4.wav similarity index 100% rename from FreshShit/Sounds/wav/China4.wav rename to WeakAuras/Projects/Sounds/wav/China4.wav diff --git a/FreshShit/Sounds/wav/China6.wav b/WeakAuras/Projects/Sounds/wav/China6.wav similarity index 100% rename from FreshShit/Sounds/wav/China6.wav rename to WeakAuras/Projects/Sounds/wav/China6.wav diff --git a/FreshShit/Sounds/wav/Dead.wav b/WeakAuras/Projects/Sounds/wav/Dead.wav similarity index 100% rename from FreshShit/Sounds/wav/Dead.wav rename to WeakAuras/Projects/Sounds/wav/Dead.wav diff --git a/FreshShit/Sounds/wav/Domination.wav b/WeakAuras/Projects/Sounds/wav/Domination.wav similarity index 100% rename from FreshShit/Sounds/wav/Domination.wav rename to WeakAuras/Projects/Sounds/wav/Domination.wav diff --git a/FreshShit/Sounds/wav/FortressReel.wav b/WeakAuras/Projects/Sounds/wav/FortressReel.wav similarity index 100% rename from FreshShit/Sounds/wav/FortressReel.wav rename to WeakAuras/Projects/Sounds/wav/FortressReel.wav diff --git a/FreshShit/Sounds/wav/FortressReelLoop.wav b/WeakAuras/Projects/Sounds/wav/FortressReelLoop.wav similarity index 100% rename from FreshShit/Sounds/wav/FortressReelLoop.wav rename to WeakAuras/Projects/Sounds/wav/FortressReelLoop.wav diff --git a/FreshShit/Sounds/wav/GetFucked.wav b/WeakAuras/Projects/Sounds/wav/GetFucked.wav similarity index 100% rename from FreshShit/Sounds/wav/GetFucked.wav rename to WeakAuras/Projects/Sounds/wav/GetFucked.wav diff --git a/FreshShit/Sounds/wav/HL2ButtonClick.wav b/WeakAuras/Projects/Sounds/wav/HL2ButtonClick.wav similarity index 100% rename from FreshShit/Sounds/wav/HL2ButtonClick.wav rename to WeakAuras/Projects/Sounds/wav/HL2ButtonClick.wav diff --git a/FreshShit/Sounds/wav/HL2ButtonRollover.wav b/WeakAuras/Projects/Sounds/wav/HL2ButtonRollover.wav similarity index 100% rename from FreshShit/Sounds/wav/HL2ButtonRollover.wav rename to WeakAuras/Projects/Sounds/wav/HL2ButtonRollover.wav diff --git a/FreshShit/Sounds/wav/Hitsound.wav b/WeakAuras/Projects/Sounds/wav/Hitsound.wav similarity index 100% rename from FreshShit/Sounds/wav/Hitsound.wav rename to WeakAuras/Projects/Sounds/wav/Hitsound.wav diff --git a/FreshShit/Sounds/wav/Hitsound3.wav b/WeakAuras/Projects/Sounds/wav/Hitsound3.wav similarity index 100% rename from FreshShit/Sounds/wav/Hitsound3.wav rename to WeakAuras/Projects/Sounds/wav/Hitsound3.wav diff --git a/FreshShit/Sounds/wav/Hitsound4.wav b/WeakAuras/Projects/Sounds/wav/Hitsound4.wav similarity index 100% rename from FreshShit/Sounds/wav/Hitsound4.wav rename to WeakAuras/Projects/Sounds/wav/Hitsound4.wav diff --git a/FreshShit/Sounds/wav/Hitsound5.wav b/WeakAuras/Projects/Sounds/wav/Hitsound5.wav similarity index 100% rename from FreshShit/Sounds/wav/Hitsound5.wav rename to WeakAuras/Projects/Sounds/wav/Hitsound5.wav diff --git a/FreshShit/Sounds/wav/HitsoundBap.wav b/WeakAuras/Projects/Sounds/wav/HitsoundBap.wav similarity index 100% rename from FreshShit/Sounds/wav/HitsoundBap.wav rename to WeakAuras/Projects/Sounds/wav/HitsoundBap.wav diff --git a/FreshShit/Sounds/wav/HitsoundBoom.wav b/WeakAuras/Projects/Sounds/wav/HitsoundBoom.wav similarity index 100% rename from FreshShit/Sounds/wav/HitsoundBoom.wav rename to WeakAuras/Projects/Sounds/wav/HitsoundBoom.wav diff --git a/FreshShit/Sounds/wav/HitsoundBubble.wav b/WeakAuras/Projects/Sounds/wav/HitsoundBubble.wav similarity index 100% rename from FreshShit/Sounds/wav/HitsoundBubble.wav rename to WeakAuras/Projects/Sounds/wav/HitsoundBubble.wav diff --git a/FreshShit/Sounds/wav/HitsoundCasino3.wav b/WeakAuras/Projects/Sounds/wav/HitsoundCasino3.wav similarity index 100% rename from FreshShit/Sounds/wav/HitsoundCasino3.wav rename to WeakAuras/Projects/Sounds/wav/HitsoundCasino3.wav diff --git a/FreshShit/Sounds/wav/HitsoundDuck.wav b/WeakAuras/Projects/Sounds/wav/HitsoundDuck.wav similarity index 100% rename from FreshShit/Sounds/wav/HitsoundDuck.wav rename to WeakAuras/Projects/Sounds/wav/HitsoundDuck.wav diff --git a/FreshShit/Sounds/wav/HitsoundHardbass.wav b/WeakAuras/Projects/Sounds/wav/HitsoundHardbass.wav similarity index 100% rename from FreshShit/Sounds/wav/HitsoundHardbass.wav rename to WeakAuras/Projects/Sounds/wav/HitsoundHardbass.wav diff --git a/FreshShit/Sounds/wav/HitsoundMinecraft.wav b/WeakAuras/Projects/Sounds/wav/HitsoundMinecraft.wav similarity index 100% rename from FreshShit/Sounds/wav/HitsoundMinecraft.wav rename to WeakAuras/Projects/Sounds/wav/HitsoundMinecraft.wav diff --git a/FreshShit/Sounds/wav/HitsoundOra.wav b/WeakAuras/Projects/Sounds/wav/HitsoundOra.wav similarity index 100% rename from FreshShit/Sounds/wav/HitsoundOra.wav rename to WeakAuras/Projects/Sounds/wav/HitsoundOra.wav diff --git a/FreshShit/Sounds/wav/HitsoundSqueak.wav b/WeakAuras/Projects/Sounds/wav/HitsoundSqueak.wav similarity index 100% rename from FreshShit/Sounds/wav/HitsoundSqueak.wav rename to WeakAuras/Projects/Sounds/wav/HitsoundSqueak.wav diff --git a/FreshShit/Sounds/wav/HitsoundUltrakill.wav b/WeakAuras/Projects/Sounds/wav/HitsoundUltrakill.wav similarity index 100% rename from FreshShit/Sounds/wav/HitsoundUltrakill.wav rename to WeakAuras/Projects/Sounds/wav/HitsoundUltrakill.wav diff --git a/FreshShit/Sounds/wav/KillsoundHardbass.wav b/WeakAuras/Projects/Sounds/wav/KillsoundHardbass.wav similarity index 100% rename from FreshShit/Sounds/wav/KillsoundHardbass.wav rename to WeakAuras/Projects/Sounds/wav/KillsoundHardbass.wav diff --git a/FreshShit/Sounds/wav/KillsoundLego.wav b/WeakAuras/Projects/Sounds/wav/KillsoundLego.wav similarity index 100% rename from FreshShit/Sounds/wav/KillsoundLego.wav rename to WeakAuras/Projects/Sounds/wav/KillsoundLego.wav diff --git a/FreshShit/Sounds/wav/KillsoundUltrakill.wav b/WeakAuras/Projects/Sounds/wav/KillsoundUltrakill.wav similarity index 100% rename from FreshShit/Sounds/wav/KillsoundUltrakill.wav rename to WeakAuras/Projects/Sounds/wav/KillsoundUltrakill.wav diff --git a/FreshShit/Sounds/wav/MeetTheSniper.wav b/WeakAuras/Projects/Sounds/wav/MeetTheSniper.wav similarity index 100% rename from FreshShit/Sounds/wav/MeetTheSniper.wav rename to WeakAuras/Projects/Sounds/wav/MeetTheSniper.wav diff --git a/FreshShit/Sounds/wav/Nemesis.wav b/WeakAuras/Projects/Sounds/wav/Nemesis.wav similarity index 100% rename from FreshShit/Sounds/wav/Nemesis.wav rename to WeakAuras/Projects/Sounds/wav/Nemesis.wav diff --git a/FreshShit/Sounds/wav/OOF.wav b/WeakAuras/Projects/Sounds/wav/OOF.wav similarity index 100% rename from FreshShit/Sounds/wav/OOF.wav rename to WeakAuras/Projects/Sounds/wav/OOF.wav diff --git a/FreshShit/Sounds/wav/OhNo.wav b/WeakAuras/Projects/Sounds/wav/OhNo.wav similarity index 100% rename from FreshShit/Sounds/wav/OhNo.wav rename to WeakAuras/Projects/Sounds/wav/OhNo.wav diff --git a/FreshShit/Sounds/wav/POOT.wav b/WeakAuras/Projects/Sounds/wav/POOT.wav similarity index 100% rename from FreshShit/Sounds/wav/POOT.wav rename to WeakAuras/Projects/Sounds/wav/POOT.wav diff --git a/FreshShit/Sounds/wav/Piss.wav b/WeakAuras/Projects/Sounds/wav/Piss.wav similarity index 100% rename from FreshShit/Sounds/wav/Piss.wav rename to WeakAuras/Projects/Sounds/wav/Piss.wav diff --git a/FreshShit/Sounds/wav/Revenge.wav b/WeakAuras/Projects/Sounds/wav/Revenge.wav similarity index 100% rename from FreshShit/Sounds/wav/Revenge.wav rename to WeakAuras/Projects/Sounds/wav/Revenge.wav diff --git a/FreshShit/Sounds/wav/Uncloak.wav b/WeakAuras/Projects/Sounds/wav/Uncloak.wav similarity index 100% rename from FreshShit/Sounds/wav/Uncloak.wav rename to WeakAuras/Projects/Sounds/wav/Uncloak.wav diff --git a/FreshShit/Sounds/wav/WeAreNumberOne.wav b/WeakAuras/Projects/Sounds/wav/WeAreNumberOne.wav similarity index 100% rename from FreshShit/Sounds/wav/WeAreNumberOne.wav rename to WeakAuras/Projects/Sounds/wav/WeAreNumberOne.wav diff --git a/FreshShit/Sounds/wav/WeAreNumberOneFried.wav b/WeakAuras/Projects/Sounds/wav/WeAreNumberOneFried.wav similarity index 100% rename from FreshShit/Sounds/wav/WeAreNumberOneFried.wav rename to WeakAuras/Projects/Sounds/wav/WeAreNumberOneFried.wav diff --git a/Complete Projects/Legion/Spam Begone.lua b/WeakAuras/Projects/Spam Begone.lua similarity index 96% rename from Complete Projects/Legion/Spam Begone.lua rename to WeakAuras/Projects/Spam Begone.lua index 01f9af6..bd1b403 100644 --- a/Complete Projects/Legion/Spam Begone.lua +++ b/WeakAuras/Projects/Spam Begone.lua @@ -1,43 +1,43 @@ -CHAT_MSG_CHANNEL -function(_,msg,sender,_,channel) - sender = string.match(sender, "%a+") - msg = string.lower(msg, "%u", "%l") - local ignore = 1 - local filter = {"%[fuck", "baby", "thunderfury", "anal"} - if channel == "1. global_en" then - for i = 1, table.getn(filter) do - if string.match(msg, filter[i]) then - local _,friendson = GetNumFriends() - for j = 1, friendson do - if sender == GetFriendInfo(j) then - ignore = 0 - break - end - end - if ignore == 1 then - if not IsIgnored(sender) then - AddIgnore(sender) - print("IGNORING " .. sender .. " because of |cFFFF7F7F" .. msg) - aura_env.ignoreList[aura_env.pointer] = sender - aura_env.pointer = aura_env.pointer + 1 - end - end - end - end - end -end - -DISPLAY -function() - local output = "" - for k,v in pairs(aura_env.ignoreList) do - output = output .. v .. "\n" - end - return output -end - -INIT -aura_env.ignoreList = {} -aura_env.pointer = 1 - -/run for i = 1, GetNumGuildMembers() do local name = GetGuildRosterInfo(i); name = string.match(name, "%a+"); DelIgnore(name) end +CHAT_MSG_CHANNEL +function(_,msg,sender,_,channel) + sender = string.match(sender, "%a+") + msg = string.lower(msg, "%u", "%l") + local ignore = 1 + local filter = {"%[fuck", "baby", "thunderfury", "anal"} + if channel == "1. global_en" then + for i = 1, table.getn(filter) do + if string.match(msg, filter[i]) then + local _,friendson = GetNumFriends() + for j = 1, friendson do + if sender == GetFriendInfo(j) then + ignore = 0 + break + end + end + if ignore == 1 then + if not IsIgnored(sender) then + AddIgnore(sender) + print("IGNORING " .. sender .. " because of |cFFFF7F7F" .. msg) + aura_env.ignoreList[aura_env.pointer] = sender + aura_env.pointer = aura_env.pointer + 1 + end + end + end + end + end +end + +DISPLAY +function() + local output = "" + for k,v in pairs(aura_env.ignoreList) do + output = output .. v .. "\n" + end + return output +end + +INIT +aura_env.ignoreList = {} +aura_env.pointer = 1 + +/run for i = 1, GetNumGuildMembers() do local name = GetGuildRosterInfo(i); name = string.match(name, "%a+"); DelIgnore(name) end diff --git a/Complete Projects/Legion/Spell Charges/01.lua b/WeakAuras/Projects/Spell Charges/01.lua similarity index 96% rename from Complete Projects/Legion/Spell Charges/01.lua rename to WeakAuras/Projects/Spell Charges/01.lua index 882ab87..ee063d8 100644 --- a/Complete Projects/Legion/Spell Charges/01.lua +++ b/WeakAuras/Projects/Spell Charges/01.lua @@ -1,18 +1,18 @@ -function() -- 0 - 1 CHARGE - local charges, max, cdstart, cddur = GetSpellCharges(aura_env.spell) - cdstart = cdstart * 1000 - cddur = cddur * 1000 - if exptime then - exptime = exptime * 1000 - end - local time = GetTime() * 1000 - if charges >= 1 then --FULL CHARGES RETURNS FULL BAR - return 1, 1, 1 - end - if charges == 0 then --CHARGE 1 RECHARGING RETURNS COOLDOWN - local cd = time - cdstart - return cd, cddur, 1 - end -end - +function() -- 0 - 1 CHARGE + local charges, max, cdstart, cddur = GetSpellCharges(aura_env.spell) + cdstart = cdstart * 1000 + cddur = cddur * 1000 + if exptime then + exptime = exptime * 1000 + end + local time = GetTime() * 1000 + if charges >= 1 then --FULL CHARGES RETURNS FULL BAR + return 1, 1, 1 + end + if charges == 0 then --CHARGE 1 RECHARGING RETURNS COOLDOWN + local cd = time - cdstart + return cd, cddur, 1 + end +end + aura_env.spell= "Judgment" \ No newline at end of file diff --git a/Complete Projects/Legion/Spell Charges/12.lua b/WeakAuras/Projects/Spell Charges/12.lua similarity index 96% rename from Complete Projects/Legion/Spell Charges/12.lua rename to WeakAuras/Projects/Spell Charges/12.lua index 4f87c1f..c2836c0 100644 --- a/Complete Projects/Legion/Spell Charges/12.lua +++ b/WeakAuras/Projects/Spell Charges/12.lua @@ -1,21 +1,21 @@ -function() -- 1 - 2 CHARGE - local charges, max, cdstart, cddur = GetSpellCharges(aura_env.spell) - cdstart = cdstart * 1000 - cddur = cddur * 1000 - if exptime then - exptime = exptime * 1000 - end - local time = GetTime() * 1000 - if charges >= 2 then --FULL CHARGES RETURNS FULL BAR - return 1, 1, 1 - end - if charges == 1 then --CHARGE 2 RECHARGING RETURNS COOLDOWN - local cd = time - cdstart - return cd, cddur, 1 - end - if charges < 1 then --CHARGE 1 RECHARGING RETURNS 0 - return 0, 1, 1 - end -end - +function() -- 1 - 2 CHARGE + local charges, max, cdstart, cddur = GetSpellCharges(aura_env.spell) + cdstart = cdstart * 1000 + cddur = cddur * 1000 + if exptime then + exptime = exptime * 1000 + end + local time = GetTime() * 1000 + if charges >= 2 then --FULL CHARGES RETURNS FULL BAR + return 1, 1, 1 + end + if charges == 1 then --CHARGE 2 RECHARGING RETURNS COOLDOWN + local cd = time - cdstart + return cd, cddur, 1 + end + if charges < 1 then --CHARGE 1 RECHARGING RETURNS 0 + return 0, 1, 1 + end +end + aura_env.spell= "Judgment" \ No newline at end of file diff --git a/Complete Projects/Legion/Spell Charges/23.lua b/WeakAuras/Projects/Spell Charges/23.lua similarity index 96% rename from Complete Projects/Legion/Spell Charges/23.lua rename to WeakAuras/Projects/Spell Charges/23.lua index 08cd20d..82b173f 100644 --- a/Complete Projects/Legion/Spell Charges/23.lua +++ b/WeakAuras/Projects/Spell Charges/23.lua @@ -1,21 +1,21 @@ -function() -- 2 - 3 CHARGE - local charges, max, cdstart, cddur = GetSpellCharges(aura_env.spell) - cdstart = cdstart * 1000 - cddur = cddur * 1000 - if exptime then - exptime = exptime * 1000 - end - local time = GetTime() * 1000 - if charges >= 3 then --FULL CHARGES RETURNS FULL BAR - return 1, 1, 1 - end - if charges == 2 then --CHARGE 2 RECHARGING RETURNS COOLDOWN - local cd = time - cdstart - return cd, cddur, 1 - end - if charges < 2 then --CHARGE 1 RECHARGING RETURNS 0 - return 0, 1, 1 - end -end - +function() -- 2 - 3 CHARGE + local charges, max, cdstart, cddur = GetSpellCharges(aura_env.spell) + cdstart = cdstart * 1000 + cddur = cddur * 1000 + if exptime then + exptime = exptime * 1000 + end + local time = GetTime() * 1000 + if charges >= 3 then --FULL CHARGES RETURNS FULL BAR + return 1, 1, 1 + end + if charges == 2 then --CHARGE 2 RECHARGING RETURNS COOLDOWN + local cd = time - cdstart + return cd, cddur, 1 + end + if charges < 2 then --CHARGE 1 RECHARGING RETURNS 0 + return 0, 1, 1 + end +end + aura_env.spell= "Judgment" \ No newline at end of file diff --git a/FreshShit/Spotter/event.lua b/WeakAuras/Projects/Spotter/event.lua similarity index 96% rename from FreshShit/Spotter/event.lua rename to WeakAuras/Projects/Spotter/event.lua index a4d4d85..2285873 100644 --- a/FreshShit/Spotter/event.lua +++ b/WeakAuras/Projects/Spotter/event.lua @@ -1,24 +1,24 @@ --- NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED -function(event, unit) - local name = UnitName(unit) - if name and UnitIsPlayer(unit) then - local race = UnitRace(unit) - local doNotify = true - if aura_env.config.allyOnly then - doNotify = false - if aura_env.raceMap[race] == "Alliance" then - doNotify = true - end - end - -- Stinkies overwrite allyOnly - if aura_env.config.stinkyOnly then - doNotify = false - if WeakAurasSaved.Cyka.stinkies[name] then - doNotify = true - end - end - if doNotify then - aura_env.NotifySpotted(name, race) - end - end +-- NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED +function(event, unit) + local name = UnitName(unit) + if name and UnitIsPlayer(unit) then + local race = UnitRace(unit) + local doNotify = true + if aura_env.config.allyOnly then + doNotify = false + if aura_env.raceMap[race] == "Alliance" then + doNotify = true + end + end + -- Stinkies overwrite allyOnly + if aura_env.config.stinkyOnly then + doNotify = false + if WeakAurasSaved.Cyka.stinkies[name] then + doNotify = true + end + end + if doNotify then + aura_env.NotifySpotted(name, race) + end + end end \ No newline at end of file diff --git a/FreshShit/Spotter/export b/WeakAuras/Projects/Spotter/export similarity index 100% rename from FreshShit/Spotter/export rename to WeakAuras/Projects/Spotter/export diff --git a/FreshShit/Spotter/init.lua b/WeakAuras/Projects/Spotter/init.lua similarity index 96% rename from FreshShit/Spotter/init.lua rename to WeakAuras/Projects/Spotter/init.lua index 2afaa47..c8fb4e7 100644 --- a/FreshShit/Spotter/init.lua +++ b/WeakAuras/Projects/Spotter/init.lua @@ -1,55 +1,55 @@ ----@class Message ----@field message string ----@field channel string ----@field data string - ----@type Message[] -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", -} - -local throttleTimer = aura_env.config.throttle or 10 -local throttleMap = {} - ----@param playerName string ----@param race string ----@return nil -aura_env.NotifySpotted = function(playerName, race) - local now = GetTime() - local throttleTime = throttleMap[playerName] or 0 - 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 - - local message = { - channel = "CHANNEL", - data = aura_env.config.channel, - message = string.format("I see %s at %s!", playerName, zone), - } - table.insert(WeakAurasSaved.Cyka.MessageQueue, message) -end +---@class Message +---@field message string +---@field channel string +---@field data string + +---@type Message[] +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", +} + +local throttleTimer = aura_env.config.throttle or 10 +local throttleMap = {} + +---@param playerName string +---@param race string +---@return nil +aura_env.NotifySpotted = function(playerName, race) + local now = GetTime() + local throttleTime = throttleMap[playerName] or 0 + 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 + + local message = { + channel = "CHANNEL", + data = aura_env.config.channel, + message = string.format("I see %s at %s!", playerName, zone), + } + table.insert(WeakAurasSaved.Cyka.MessageQueue, message) +end diff --git a/FreshShit/SpySatellite/event.lua b/WeakAuras/Projects/SpySatellite/event.lua similarity index 94% rename from FreshShit/SpySatellite/event.lua rename to WeakAuras/Projects/SpySatellite/event.lua index 43415f3..ccf5d31 100644 --- a/FreshShit/SpySatellite/event.lua +++ b/WeakAuras/Projects/SpySatellite/event.lua @@ -1,4 +1,4 @@ --- COMBAT_LOG_EVENT_UNFILTERED -function(e, ...) - +-- COMBAT_LOG_EVENT_UNFILTERED +function(e, ...) + end \ No newline at end of file diff --git a/FreshShit/SpySatellite/event2.lua b/WeakAuras/Projects/SpySatellite/event2.lua similarity index 96% rename from FreshShit/SpySatellite/event2.lua rename to WeakAuras/Projects/SpySatellite/event2.lua index 51f0d94..c28eba2 100644 --- a/FreshShit/SpySatellite/event2.lua +++ b/WeakAuras/Projects/SpySatellite/event2.lua @@ -1,10 +1,10 @@ ---NAME_PLATE_UNIT_ADDED -function(e, unit) - if not UnitIsPlayer(unit) then return end - local name = UnitName(unit) - local health = UnitHealth(unit) - local player = aura_env.GetPlayer(name) - player.health = health - player:QueryIfNecessary() - WeakAurasSaved.Cyka.Players[name] = player +--NAME_PLATE_UNIT_ADDED +function(e, unit) + if not UnitIsPlayer(unit) then return end + local name = UnitName(unit) + local health = UnitHealth(unit) + local player = aura_env.GetPlayer(name) + player.health = health + player:QueryIfNecessary() + WeakAurasSaved.Cyka.Players[name] = player end \ No newline at end of file diff --git a/FreshShit/SpySatellite/event3.lua b/WeakAuras/Projects/SpySatellite/event3.lua similarity index 96% rename from FreshShit/SpySatellite/event3.lua rename to WeakAuras/Projects/SpySatellite/event3.lua index dd03a18..f14fb4c 100644 --- a/FreshShit/SpySatellite/event3.lua +++ b/WeakAuras/Projects/SpySatellite/event3.lua @@ -1,13 +1,13 @@ --- WHO_LIST_UPDATE -function() - for i = 1, GetNumWhoResults() do - local name, guild, level, race, class, zone = GetWhoInfo(i) - print(string.format("Got player info for %s", name)) - local player = aura_env.GetPlayer(name) - player.guild = guild - player.race = race - WeakAurasSaved.Cyka.Players[name] = player - player.whoQueued = false - aura_env.whoQueued = false - end +-- WHO_LIST_UPDATE +function() + for i = 1, GetNumWhoResults() do + local name, guild, level, race, class, zone = GetWhoInfo(i) + print(string.format("Got player info for %s", name)) + local player = aura_env.GetPlayer(name) + player.guild = guild + player.race = race + WeakAurasSaved.Cyka.Players[name] = player + player.whoQueued = false + aura_env.whoQueued = false + end end \ No newline at end of file diff --git a/FreshShit/SpySatellite/init.lua b/WeakAuras/Projects/SpySatellite/init.lua similarity index 97% rename from FreshShit/SpySatellite/init.lua rename to WeakAuras/Projects/SpySatellite/init.lua index 9e88f70..0bf54b0 100644 --- a/FreshShit/SpySatellite/init.lua +++ b/WeakAuras/Projects/SpySatellite/init.lua @@ -1,102 +1,102 @@ ----@class aura_env ----@field config table ----@field whoQueued boolean ----@field GetPlayer fun(name: string): Player - -local channelname = aura_env.config.channelname or "lAKDJjZfNgobMblAangc" -aura_env.whoQueued = false - -if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end -if not WeakAurasSaved.Cyka.RaceCache then WeakAurasSaved.Cyka.RaceCache = {} end - -aura_env.GetPlayer = function(name) - local player = WeakAurasSaved.Cyka.RaceCache[name] or Player.new(name) - WeakAurasSaved.Cyka.RaceCache[name] = player - return player -end - ----@class Player ----@field name string ----@field guild string|nil ----@field race string|nil ----@field health number ----@field whoQueued boolean -Player = { - ---@param name string - ---@return Player - new = function(name) - local self = setmetatable({}, { - __index = Player, - }) - self.name = name - self.whoQueued = false - self.health = 0 - return self - end, - QueryIfNecessary = function(self) - if self.whoQueued then return end - if self.race ~= nil then return end - self:QueryWho() - end, - 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) - 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) - print(string.format("Queueing who query for player %s: %s", self.name, query)) - self.whoQueued = true - aura_env.whoQueued = true - SendWho(query) - end, -} - ---[09:01 PM] Dump: value=GetChannelList() ---[09:01 PM] [1]=1, ---[09:01 PM] [2]="world_en", ---[09:01 PM] [3]=2, ---[09:01 PM] [4]="world_ru", ---[09:01 PM] [5]=3, ---[09:01 PM] [6]="world_hc", ---[09:01 PM] [7]=6, ---[09:01 PM] [8]="lAKDJjZfNgobMblAangc" --- --- zoneChannel, channelName = JoinPermanentChannel("name" [, "password" [, chatFrameIndex [, enableVoice]]]) --- ---[09:03 PM] Dump: value=GetChannelDisplayInfo(6) ---[09:03 PM] [1]="world_hc", ---[09:03 PM] [2]=false, ---[09:03 PM] [4]=3, ---[09:03 PM] [5]=1258, ---[09:03 PM] [6]=true, ---[09:03 PM] [7]="CHANNEL_CATEGORY_CUSTOM", ---[09:03 PM] [8]=false --- --- channelCount = GetNumDisplayChannels() --- --- --- SendChatMessage("text" [, "chatType" [, languageIndex [, "channel"]]]) ---Arguments: --- text - Message to be sent (up to 255 characters) (string) --- chatType - Channel on which to send the message (defaults to SAY if omitted) (string) --- CHANNEL - Message to a server or custom chat channel (sent with /1, /2, etc in the default UI); requires channel number for channel argument --- DND - Enables Away-From-Keyboard status for the player, with text as the custom message seen by others attempting to whisper the player --- EMOTE - Custom text emotes visible to nearby players (sent with /e in the default UI) --- GUILD - Messages to guild members (sent with /g in the default UI) --- INSTANCE_CHAT - Messages to a LFG/LFR instance group (sent with /i in the default UI) --- OFFICER - Messages to guild officers (sent with /o in the default UI) --- PARTY - Messages to party members (sent with /p in the default UI) --- RAID - Messages to raid members (sent with /ra in the default UI) --- RAID_WARNING - Warning to raid members (sent with /rw in the default UI) --- SAY - Speech to nearby players (sent with /s in the default UI) --- WHISPER - Message to a specific character (sent with /w in the default UI); requires name of the character for channel argument --- YELL - Yell to not-so-nearby players (sent with /y in the default UI) --- languageIndex - Language in which to send the message; defaults to Common (for Alliance players) or Orcish (for Horde players) if omitted. Language indices can be retrieved from GetLanguageByIndex(). (number) --- channel - If chatType is WHISPER, name of the target character; if chatType is CHANNEL, number identifying the target channel; ignored otherwise (string) --- --- language = GetDefaultLanguage() +---@class aura_env +---@field config table +---@field whoQueued boolean +---@field GetPlayer fun(name: string): Player + +local channelname = aura_env.config.channelname or "lAKDJjZfNgobMblAangc" +aura_env.whoQueued = false + +if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end +if not WeakAurasSaved.Cyka.RaceCache then WeakAurasSaved.Cyka.RaceCache = {} end + +aura_env.GetPlayer = function(name) + local player = WeakAurasSaved.Cyka.RaceCache[name] or Player.new(name) + WeakAurasSaved.Cyka.RaceCache[name] = player + return player +end + +---@class Player +---@field name string +---@field guild string|nil +---@field race string|nil +---@field health number +---@field whoQueued boolean +Player = { + ---@param name string + ---@return Player + new = function(name) + local self = setmetatable({}, { + __index = Player, + }) + self.name = name + self.whoQueued = false + self.health = 0 + return self + end, + QueryIfNecessary = function(self) + if self.whoQueued then return end + if self.race ~= nil then return end + self:QueryWho() + end, + 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) + 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) + print(string.format("Queueing who query for player %s: %s", self.name, query)) + self.whoQueued = true + aura_env.whoQueued = true + SendWho(query) + end, +} + +--[09:01 PM] Dump: value=GetChannelList() +--[09:01 PM] [1]=1, +--[09:01 PM] [2]="world_en", +--[09:01 PM] [3]=2, +--[09:01 PM] [4]="world_ru", +--[09:01 PM] [5]=3, +--[09:01 PM] [6]="world_hc", +--[09:01 PM] [7]=6, +--[09:01 PM] [8]="lAKDJjZfNgobMblAangc" +-- +-- zoneChannel, channelName = JoinPermanentChannel("name" [, "password" [, chatFrameIndex [, enableVoice]]]) +-- +--[09:03 PM] Dump: value=GetChannelDisplayInfo(6) +--[09:03 PM] [1]="world_hc", +--[09:03 PM] [2]=false, +--[09:03 PM] [4]=3, +--[09:03 PM] [5]=1258, +--[09:03 PM] [6]=true, +--[09:03 PM] [7]="CHANNEL_CATEGORY_CUSTOM", +--[09:03 PM] [8]=false +-- +-- channelCount = GetNumDisplayChannels() +-- +-- +-- SendChatMessage("text" [, "chatType" [, languageIndex [, "channel"]]]) +--Arguments: +-- text - Message to be sent (up to 255 characters) (string) +-- chatType - Channel on which to send the message (defaults to SAY if omitted) (string) +-- CHANNEL - Message to a server or custom chat channel (sent with /1, /2, etc in the default UI); requires channel number for channel argument +-- DND - Enables Away-From-Keyboard status for the player, with text as the custom message seen by others attempting to whisper the player +-- EMOTE - Custom text emotes visible to nearby players (sent with /e in the default UI) +-- GUILD - Messages to guild members (sent with /g in the default UI) +-- INSTANCE_CHAT - Messages to a LFG/LFR instance group (sent with /i in the default UI) +-- OFFICER - Messages to guild officers (sent with /o in the default UI) +-- PARTY - Messages to party members (sent with /p in the default UI) +-- RAID - Messages to raid members (sent with /ra in the default UI) +-- RAID_WARNING - Warning to raid members (sent with /rw in the default UI) +-- SAY - Speech to nearby players (sent with /s in the default UI) +-- WHISPER - Message to a specific character (sent with /w in the default UI); requires name of the character for channel argument +-- YELL - Yell to not-so-nearby players (sent with /y in the default UI) +-- languageIndex - Language in which to send the message; defaults to Common (for Alliance players) or Orcish (for Horde players) if omitted. Language indices can be retrieved from GetLanguageByIndex(). (number) +-- channel - If chatType is WHISPER, name of the target character; if chatType is CHANNEL, number identifying the target channel; ignored otherwise (string) +-- +-- language = GetDefaultLanguage() diff --git a/FreshShit/StinkyDetector/event.lua b/WeakAuras/Projects/StinkyDetector/event.lua similarity index 95% rename from FreshShit/StinkyDetector/event.lua rename to WeakAuras/Projects/StinkyDetector/event.lua index fa5785f..9a31fb6 100644 --- a/FreshShit/StinkyDetector/event.lua +++ b/WeakAuras/Projects/StinkyDetector/event.lua @@ -1,29 +1,29 @@ --- COMBAT_LOG_EVENT_UNFILTERED ----@param e string -function(e, ...) - local detected = false - local stinky = "" - - local source, err = CLEUParser.GetSourceName(...) - if not err then - if aura_env.stinkies[source] then - stinky = source - detected = true - end - end - if not detected then - local destination, err = CLEUParser.GetDestName(...) - if not err then - if aura_env.stinkies[destination] then - stinky = destination - detected = true - end - end - end - - if detected then - aura_env.StinkyDetected(stinky) - end - - return true +-- COMBAT_LOG_EVENT_UNFILTERED +---@param e string +function(e, ...) + local detected = false + local stinky = "" + + local source, err = CLEUParser.GetSourceName(...) + if not err then + if aura_env.stinkies[source] then + stinky = source + detected = true + end + end + if not detected then + local destination, err = CLEUParser.GetDestName(...) + if not err then + if aura_env.stinkies[destination] then + stinky = destination + detected = true + end + end + end + + if detected then + aura_env.StinkyDetected(stinky) + end + + return true end \ No newline at end of file diff --git a/FreshShit/StinkyDetector/event2.lua b/WeakAuras/Projects/StinkyDetector/event2.lua similarity index 96% rename from FreshShit/StinkyDetector/event2.lua rename to WeakAuras/Projects/StinkyDetector/event2.lua index a522fa7..b50a2eb 100644 --- a/FreshShit/StinkyDetector/event2.lua +++ b/WeakAuras/Projects/StinkyDetector/event2.lua @@ -1,44 +1,44 @@ --- TICKER_1000 ----@param allstates allstates ----@param e string ----@param prefix string ----@param msg string -function(allstates, e, prefix, msg, ...) - for i = 1, 40 do - if UnitIsPlayer("nameplate" .. i) then - local name = UnitName("nameplate" .. i) - if aura_env.stinkies[name] then - aura_env.StinkyDetected(name) - end - end - end - - local ttl = aura_env.config.ttl or 10 - for stinky, data in pairs(aura_env.detectedStinkies) do - local elapsed = GetTime() - data.seen - if allstates[stinky] then - if elapsed > ttl then - allstates[stinky].show = false - allstates[stinky].changed = true - aura_env.detectedStinkies[stinky] = nil - else - allstates[stinky].progress = string.format("%20ss", string.format("%.1f", elapsed)) - allstates[stinky].changed = true - end - else - allstates[stinky] = { - show = true, - changed = true, - name = string.format("%-20s", stinky), - progressType = "timed", - duration = ttl, - expirationTime = GetTime() + ttl, - autohide = true, - index = GetTime(), - progress = string.format("%20ss", string.format("%.1f", elapsed)) - } - end - end - - return true -end +-- TICKER_1000 +---@param allstates allstates +---@param e string +---@param prefix string +---@param msg string +function(allstates, e, prefix, msg, ...) + for i = 1, 40 do + if UnitIsPlayer("nameplate" .. i) then + local name = UnitName("nameplate" .. i) + if aura_env.stinkies[name] then + aura_env.StinkyDetected(name) + end + end + end + + local ttl = aura_env.config.ttl or 10 + for stinky, data in pairs(aura_env.detectedStinkies) do + local elapsed = GetTime() - data.seen + if allstates[stinky] then + if elapsed > ttl then + allstates[stinky].show = false + allstates[stinky].changed = true + aura_env.detectedStinkies[stinky] = nil + else + allstates[stinky].progress = string.format("%20ss", string.format("%.1f", elapsed)) + allstates[stinky].changed = true + end + else + allstates[stinky] = { + show = true, + changed = true, + name = string.format("%-20s", stinky), + progressType = "timed", + duration = ttl, + expirationTime = GetTime() + ttl, + autohide = true, + index = GetTime(), + progress = string.format("%20ss", string.format("%.1f", elapsed)) + } + end + end + + return true +end diff --git a/FreshShit/StinkyDetector/export b/WeakAuras/Projects/StinkyDetector/export similarity index 100% rename from FreshShit/StinkyDetector/export rename to WeakAuras/Projects/StinkyDetector/export diff --git a/FreshShit/StinkyDetector/init.lua b/WeakAuras/Projects/StinkyDetector/init.lua similarity index 96% rename from FreshShit/StinkyDetector/init.lua rename to WeakAuras/Projects/StinkyDetector/init.lua index 0c8e012..68823f1 100644 --- a/FreshShit/StinkyDetector/init.lua +++ b/WeakAuras/Projects/StinkyDetector/init.lua @@ -1,40 +1,40 @@ ----@class aura_env ----@field config table ----@field stinkies table ----@field detectedStinkies table ----@field StinkyDetected fun(name: string) -aura_env.stinkies = {} -aura_env.detectedStinkies = {} - ----@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 -end - -local stinkies = StrSplit(aura_env.config.stinkies, ",") -for _, name in ipairs(stinkies) do - aura_env.stinkies[name] = true -end - -aura_env.StinkyDetected = function(name) - local now = GetTime() - local existing = aura_env.detectedStinkies[name] - if not existing then - aura_env.detectedStinkies[name] = { seen = now, muteUntil = 0 } - else - existing.seen = now - end - if existing.muteUntil < now then - print(existing.muteUntil, now) - PlaySoundFile("Interface\\Sounds\\Domination.ogg", "Master") - end - aura_env.detectedStinkies[name].muteUntil = now + aura_env.config.alertThrottle -end +---@class aura_env +---@field config table +---@field stinkies table +---@field detectedStinkies table +---@field StinkyDetected fun(name: string) +aura_env.stinkies = {} +aura_env.detectedStinkies = {} + +---@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 +end + +local stinkies = StrSplit(aura_env.config.stinkies, ",") +for _, name in ipairs(stinkies) do + aura_env.stinkies[name] = true +end + +aura_env.StinkyDetected = function(name) + local now = GetTime() + local existing = aura_env.detectedStinkies[name] + if not existing then + aura_env.detectedStinkies[name] = { seen = now, muteUntil = 0 } + else + existing.seen = now + end + if existing.muteUntil < now then + print(existing.muteUntil, now) + PlaySoundFile("Interface\\Sounds\\Domination.ogg", "Master") + end + aura_env.detectedStinkies[name].muteUntil = now + aura_env.config.alertThrottle +end diff --git a/FreshShit/StinkyDetector/macro b/WeakAuras/Projects/StinkyDetector/macro similarity index 92% rename from FreshShit/StinkyDetector/macro rename to WeakAuras/Projects/StinkyDetector/macro index d04596c..b5ade84 100644 --- a/FreshShit/StinkyDetector/macro +++ b/WeakAuras/Projects/StinkyDetector/macro @@ -1,19 +1,19 @@ -/targetenemy -/tar Redb -/tar Курл -/tar Rien -/tar Unwa -/tar Лови -/tar Koro -/tar Pizd -/tar Joul -/tar Ratt -/tar Ramá -/tar Аста -/tar Bles -/tar Шпек -/tar Pask -/tar Oaks -/tar Пала -/tar Empa +/targetenemy +/tar Redb +/tar Курл +/tar Rien +/tar Unwa +/tar Лови +/tar Koro +/tar Pizd +/tar Joul +/tar Ratt +/tar Ramá +/tar Аста +/tar Bles +/tar Шпек +/tar Pask +/tar Oaks +/tar Пала +/tar Empa /tar Bunk \ No newline at end of file diff --git a/FreshShit/StinkyDetector/trigger.lua b/WeakAuras/Projects/StinkyDetector/trigger.lua similarity index 93% rename from FreshShit/StinkyDetector/trigger.lua rename to WeakAuras/Projects/StinkyDetector/trigger.lua index 4a9a664..cc2f257 100644 --- a/FreshShit/StinkyDetector/trigger.lua +++ b/WeakAuras/Projects/StinkyDetector/trigger.lua @@ -1,3 +1,3 @@ -function(t) - return t[3] +function(t) + return t[3] end \ No newline at end of file diff --git a/WIP/Swelter.lua b/WeakAuras/Projects/Swelter.lua similarity index 96% rename from WIP/Swelter.lua rename to WeakAuras/Projects/Swelter.lua index 1bd9ac3..4b11c92 100644 --- a/WIP/Swelter.lua +++ b/WeakAuras/Projects/Swelter.lua @@ -1,30 +1,30 @@ -COMBAT_LOG_EVENT_UNFILTERED -function(...) - local event = select(3, ...) - aura_env.spell = select(14, ...) - aura_env.target = select(10, ...) - if aura_env.target == UnitName("player") and aura_env.spell == "Swelter" and event == "SPELL_AURA_APPLIED" then - aura_env.startTime = GetTime() - end -end - -DURATION -function() - print(GetTime() - aura_env.startTime) - if UnitBuff("player", "Swelter") then - print("STEP TWO") - return GetTime() - aura_env.startTime, 3, 1 - elseif - GetTime() - aura_env.startTime <= 10 then - print("STEP THREE") - return GetTime() - aura_env.startTime, 10, 1 - end - if GetTime() - aura_env.startTime > 10 then - print("STEP FOUR") - return 1, 1, 1 - end -end - -aura_env.spell = "" -aura_env.target = "" +COMBAT_LOG_EVENT_UNFILTERED +function(...) + local event = select(3, ...) + aura_env.spell = select(14, ...) + aura_env.target = select(10, ...) + if aura_env.target == UnitName("player") and aura_env.spell == "Swelter" and event == "SPELL_AURA_APPLIED" then + aura_env.startTime = GetTime() + end +end + +DURATION +function() + print(GetTime() - aura_env.startTime) + if UnitBuff("player", "Swelter") then + print("STEP TWO") + return GetTime() - aura_env.startTime, 3, 1 + elseif + GetTime() - aura_env.startTime <= 10 then + print("STEP THREE") + return GetTime() - aura_env.startTime, 10, 1 + end + if GetTime() - aura_env.startTime > 10 then + print("STEP FOUR") + return 1, 1, 1 + end +end + +aura_env.spell = "" +aura_env.target = "" aura_env.startTime = 0 \ No newline at end of file diff --git a/WIP/TODO.lua b/WeakAuras/Projects/TODO.lua similarity index 96% rename from WIP/TODO.lua rename to WeakAuras/Projects/TODO.lua index ea52295..8b3e86b 100644 --- a/WIP/TODO.lua +++ b/WeakAuras/Projects/TODO.lua @@ -1,34 +1,34 @@ -"TODO" -make raid loot work somehow; filo register with table.insert remove - -string.byte() *H M M M M M M* - -TSU for rep bars - -"More difficult than expected" -sang for hp<2% or smth OR sort by HP % - -"Done maybe?" -tank alerts like in 7.1.5 but without focus using GroupRoleAssigned with neat list for debuffs :> --Done maybe - -dargul timer for shield - -"Done" -judmgnet of light on focus -macro for cast and focus if no focus -aura for judgment code -use ilterendi - -average melee hit during combat - -last n melee color by average -- using tohex maybe and maybe color function - -Arcway trinket auras for stacks and shield by using aura triggers for spell ids and 2 auras - -prydaz for time and absorb (with absorb % and abs) - -SPAWN TIMERS for herberino by using timer for herbs on cooldown (in seperate array) then insert into waypoint array - -rework last n melee hits with proper filo register - +"TODO" +make raid loot work somehow; filo register with table.insert remove + +string.byte() *H M M M M M M* + +TSU for rep bars + +"More difficult than expected" +sang for hp<2% or smth OR sort by HP % + +"Done maybe?" +tank alerts like in 7.1.5 but without focus using GroupRoleAssigned with neat list for debuffs :> --Done maybe + +dargul timer for shield + +"Done" +judmgnet of light on focus +macro for cast and focus if no focus +aura for judgment code +use ilterendi + +average melee hit during combat + +last n melee color by average -- using tohex maybe and maybe color function + +Arcway trinket auras for stacks and shield by using aura triggers for spell ids and 2 auras + +prydaz for time and absorb (with absorb % and abs) + +SPAWN TIMERS for herberino by using timer for herbs on cooldown (in seperate array) then insert into waypoint array + +rework last n melee hits with proper filo register + make a proper judgment/hotp bar thing with code \ No newline at end of file diff --git a/Complete Projects/Legion/TSU - DAI SPELL.lua b/WeakAuras/Projects/TSU - DAI SPELL.lua similarity index 96% rename from Complete Projects/Legion/TSU - DAI SPELL.lua rename to WeakAuras/Projects/TSU - DAI SPELL.lua index 03f016a..ef67533 100644 --- a/Complete Projects/Legion/TSU - DAI SPELL.lua +++ b/WeakAuras/Projects/TSU - DAI SPELL.lua @@ -1,57 +1,57 @@ - ---COMBAT_LOG_EVENT_UNFILTERED ---TSU -function(allstates, e, ...) - if e and e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, ...) - local t = debugprofilestop() - if se and se == "SPELL_DAMAGE" then - local casterGUID = select(4, ...) - local spell = select(13, ...) - local damage = select(15, ...) - local sid = select(12, ...) - if casterGUID and spell and sid and damage and casterGUID == UnitGUID("player") and aura_env.spells[spell] then - if not allstates[t] then - allstates[t] = { - show = true, - changed = true, - icon = select(3, GetSpellInfo(sid)), - progressType = "timed", - duration = debugprofilestop(), - expirationTime = GetTime() + 2.5, - autoHide = true, - damage = damage, - } - print(spell, sid, damage) - return true - end - end - end - end -end - ---INIT -aura_env.spells = { - ["Judgment"] = true, - ["Mark of the Hidden Satyr"] = true, -} -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 -end + +--COMBAT_LOG_EVENT_UNFILTERED +--TSU +function(allstates, e, ...) + if e and e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, ...) + local t = debugprofilestop() + if se and se == "SPELL_DAMAGE" then + local casterGUID = select(4, ...) + local spell = select(13, ...) + local damage = select(15, ...) + local sid = select(12, ...) + if casterGUID and spell and sid and damage and casterGUID == UnitGUID("player") and aura_env.spells[spell] then + if not allstates[t] then + allstates[t] = { + show = true, + changed = true, + icon = select(3, GetSpellInfo(sid)), + progressType = "timed", + duration = debugprofilestop(), + expirationTime = GetTime() + 2.5, + autoHide = true, + damage = damage, + } + print(spell, sid, damage) + return true + end + end + end + end +end + +--INIT +aura_env.spells = { + ["Judgment"] = true, + ["Mark of the Hidden Satyr"] = true, +} +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 +end diff --git a/Complete Projects/Legion/TSU - EnemyPlayerHealth - CLEV.lua b/WeakAuras/Projects/TSU - EnemyPlayerHealth - CLEV.lua similarity index 96% rename from Complete Projects/Legion/TSU - EnemyPlayerHealth - CLEV.lua rename to WeakAuras/Projects/TSU - EnemyPlayerHealth - CLEV.lua index 813bc11..0094ff5 100644 --- a/Complete Projects/Legion/TSU - EnemyPlayerHealth - CLEV.lua +++ b/WeakAuras/Projects/TSU - EnemyPlayerHealth - CLEV.lua @@ -1,153 +1,153 @@ ---TSU ---COMBAT_LOG_EVENT_UNFILTERED NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED -function(allstates, e, unit, ...) - if e == "NAME_PLATE_UNIT_ADDED" then - if UnitIsPlayer(unit) then - --if UnitIsEnemy("player", unit) then - local hp = UnitHealth(unit) - local maxHp = UnitHealthMax(unit) - local hppp = aura_env.round(hp / maxHp * 100, 2) - local shortHP = aura_env.shorten(hp) - local shortmaxHP = aura_env.shorten(maxHp) - local name = UnitName(unit) - local class = UnitClass(unit) - allstates[unit] = - { - changed = true, - show = true, - resort = true, - progressType = "static", - value = hp, - total = maxHp, - index = hppp, - name = name, - hppp = hppp, - shortHP = shortHP, - shortmaxHP = shortmaxHP, - class = class, - } - return true - --end - end - elseif e == "NAME_PLATE_UNIT_REMOVED" then - if UnitIsPlayer(unit) then - --if UnitIsEnemy("player", unit) then - if allstates[unit] then - allstates[unit].show = false - allstates[unit].changed = true - return true - end - --end - end - elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(1, ...) - if se == "SPELL_DAMAGE" or se == "SPELL_DAMAGE_PERIODIC" or se == "SPELL_HEAL" or se == "SPELL_HEAL_PERIODIC" then - local clogname = select(4, ...) - clogname = clogname:gsub("%-.+", "") - local unit = "nameplate" - for k,v in pairs(allstates) do - if allstates[k].name == clogname then - for i = 1, 40 do - local nplname = UnitName("nameplate" .. i) - if nplname == clogname then - unit = unit .. i - break - end - end - break - end - end - if UnitIsPlayer(unit) then - --if UnitIsEnemy("player", unit) then - if allstates[unit] then - local hp = UnitHealth(unit) - local maxHp = UnitHealthMax(unit) - local shortHP = aura_env.shorten(hp) - local shortmaxHP = aura_env.shorten(maxHp) - allstates[unit].value = hp - allstates[unit].total = maxHP - allstates[unit].shortHP = shortHP - allstates[unit].shortmaxHP = shortmaxHP - allstates[unit].show = true - allstates[unit].changed = true - return true - end - --end - end - end - end - end - ---ANIMATION -function() - if aura_env.statee then - return aura_env.classColor(aura_env.statee.class) - end -end - ---INIT -aura_env.round = function(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 -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 -end -aura_env.classColor = function(class) - 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 1, 1, 1, 1 end -end -aura_env.round = function(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 -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 -end -aura_env.range = function(val, min, max, max2) - val = 1 - (((max - val) / (max - min)) * max2) - return val +--TSU +--COMBAT_LOG_EVENT_UNFILTERED NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED +function(allstates, e, unit, ...) + if e == "NAME_PLATE_UNIT_ADDED" then + if UnitIsPlayer(unit) then + --if UnitIsEnemy("player", unit) then + local hp = UnitHealth(unit) + local maxHp = UnitHealthMax(unit) + local hppp = aura_env.round(hp / maxHp * 100, 2) + local shortHP = aura_env.shorten(hp) + local shortmaxHP = aura_env.shorten(maxHp) + local name = UnitName(unit) + local class = UnitClass(unit) + allstates[unit] = + { + changed = true, + show = true, + resort = true, + progressType = "static", + value = hp, + total = maxHp, + index = hppp, + name = name, + hppp = hppp, + shortHP = shortHP, + shortmaxHP = shortmaxHP, + class = class, + } + return true + --end + end + elseif e == "NAME_PLATE_UNIT_REMOVED" then + if UnitIsPlayer(unit) then + --if UnitIsEnemy("player", unit) then + if allstates[unit] then + allstates[unit].show = false + allstates[unit].changed = true + return true + end + --end + end + elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(1, ...) + if se == "SPELL_DAMAGE" or se == "SPELL_DAMAGE_PERIODIC" or se == "SPELL_HEAL" or se == "SPELL_HEAL_PERIODIC" then + local clogname = select(4, ...) + clogname = clogname:gsub("%-.+", "") + local unit = "nameplate" + for k,v in pairs(allstates) do + if allstates[k].name == clogname then + for i = 1, 40 do + local nplname = UnitName("nameplate" .. i) + if nplname == clogname then + unit = unit .. i + break + end + end + break + end + end + if UnitIsPlayer(unit) then + --if UnitIsEnemy("player", unit) then + if allstates[unit] then + local hp = UnitHealth(unit) + local maxHp = UnitHealthMax(unit) + local shortHP = aura_env.shorten(hp) + local shortmaxHP = aura_env.shorten(maxHp) + allstates[unit].value = hp + allstates[unit].total = maxHP + allstates[unit].shortHP = shortHP + allstates[unit].shortmaxHP = shortmaxHP + allstates[unit].show = true + allstates[unit].changed = true + return true + end + --end + end + end + end + end + +--ANIMATION +function() + if aura_env.statee then + return aura_env.classColor(aura_env.statee.class) + end +end + +--INIT +aura_env.round = function(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 +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 +end +aura_env.classColor = function(class) + 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 1, 1, 1, 1 end +end +aura_env.round = function(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 +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 +end +aura_env.range = function(val, min, max, max2) + val = 1 - (((max - val) / (max - min)) * max2) + return val end \ No newline at end of file diff --git a/Complete Projects/Legion/TSU - EnemyPlayerHealth.lua b/WeakAuras/Projects/TSU - EnemyPlayerHealth.lua similarity index 96% rename from Complete Projects/Legion/TSU - EnemyPlayerHealth.lua rename to WeakAuras/Projects/TSU - EnemyPlayerHealth.lua index 5f544fb..6a3cc25 100644 --- a/Complete Projects/Legion/TSU - EnemyPlayerHealth.lua +++ b/WeakAuras/Projects/TSU - EnemyPlayerHealth.lua @@ -1,143 +1,143 @@ ---TSU ---UNIT_HEALTH NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED -function(allstates, e, unit) - if e == "NAME_PLATE_UNIT_ADDED" then - if UnitExists(unit) then - if UnitIsPlayer(unit) then - if UnitIsEnemy("player", unit) then - local hp = UnitHealth(unit) - local maxHp = UnitHealthMax(unit) - local hppp = aura_env.round(hp / maxHp * 100, 2) - local shortHP = aura_env.shorten(hp) - local shortmaxHP = aura_env.shorten(maxHp) - local name = UnitName(unit) - local class = select(3, UnitClass(unit)) - local r, g, b, a = aura_env.classColor(class) - allstates[unit] = - { - changed = true, - show = true, - resort = true, - progressType = "static", - value = hp, - total = maxHp, - index = hppp, - name = name, - hppp = hppp, - shortHP = shortHP, - shortmaxHP = shortmaxHP, - r = r, g = g, b = b, a = a, - } - return true - end - end - end - elseif e == "NAME_PLATE_UNIT_REMOVED" then - if UnitExists(unit) then - if UnitIsPlayer(unit) then - if UnitIsEnemy("player", unit) then - if allstates[unit] then - allstates[unit].show = false - allstates[unit].changed = true - return true - end - end - end - end - elseif e == "UNIT_HEALTH" then - if UnitExists(unit) then - if UnitIsPlayer(unit) then - if UnitIsEnemy("player", unit) then - if allstates[unit] then - local hp = UnitHealth(unit) - local maxHp = UnitHealthMax(unit) - local shortHP = aura_env.shorten(hp) - local shortmaxHP = aura_env.shorten(maxHp) - print(hp, maxHp) - allstates[unit].value = hp - allstates[unit].total = maxHP - allstates[unit].shortHP = shortHP - allstates[unit].shortmaxHP = shortmaxHP - allstates[unit].show = true - allstates[unit].changed = true - return true - end - end - end - end - end -end - ---ANIMATION -function() - if aura_env.statee then - return aura_env.statee.r, aura_env.statee.g, aura_env.statee.b, aura_env.statee.a - end -end - ---INIT -aura_env.round = function(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 -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 -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 -end -aura_env.round = function(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 -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 -end -aura_env.range = function(val, min, max, max2) - val = 1 - (((max - val) / (max - min)) * max2) - return val +--TSU +--UNIT_HEALTH NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED +function(allstates, e, unit) + if e == "NAME_PLATE_UNIT_ADDED" then + if UnitExists(unit) then + if UnitIsPlayer(unit) then + if UnitIsEnemy("player", unit) then + local hp = UnitHealth(unit) + local maxHp = UnitHealthMax(unit) + local hppp = aura_env.round(hp / maxHp * 100, 2) + local shortHP = aura_env.shorten(hp) + local shortmaxHP = aura_env.shorten(maxHp) + local name = UnitName(unit) + local class = select(3, UnitClass(unit)) + local r, g, b, a = aura_env.classColor(class) + allstates[unit] = + { + changed = true, + show = true, + resort = true, + progressType = "static", + value = hp, + total = maxHp, + index = hppp, + name = name, + hppp = hppp, + shortHP = shortHP, + shortmaxHP = shortmaxHP, + r = r, g = g, b = b, a = a, + } + return true + end + end + end + elseif e == "NAME_PLATE_UNIT_REMOVED" then + if UnitExists(unit) then + if UnitIsPlayer(unit) then + if UnitIsEnemy("player", unit) then + if allstates[unit] then + allstates[unit].show = false + allstates[unit].changed = true + return true + end + end + end + end + elseif e == "UNIT_HEALTH" then + if UnitExists(unit) then + if UnitIsPlayer(unit) then + if UnitIsEnemy("player", unit) then + if allstates[unit] then + local hp = UnitHealth(unit) + local maxHp = UnitHealthMax(unit) + local shortHP = aura_env.shorten(hp) + local shortmaxHP = aura_env.shorten(maxHp) + print(hp, maxHp) + allstates[unit].value = hp + allstates[unit].total = maxHP + allstates[unit].shortHP = shortHP + allstates[unit].shortmaxHP = shortmaxHP + allstates[unit].show = true + allstates[unit].changed = true + return true + end + end + end + end + end +end + +--ANIMATION +function() + if aura_env.statee then + return aura_env.statee.r, aura_env.statee.g, aura_env.statee.b, aura_env.statee.a + end +end + +--INIT +aura_env.round = function(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 +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 +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 +end +aura_env.round = function(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 +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 +end +aura_env.range = function(val, min, max, max2) + val = 1 - (((max - val) / (max - min)) * max2) + return val end \ No newline at end of file diff --git a/Complete Projects/Legion/TSU - Explosives.lua b/WeakAuras/Projects/TSU - Explosives.lua similarity index 95% rename from Complete Projects/Legion/TSU - Explosives.lua rename to WeakAuras/Projects/TSU - Explosives.lua index 7493e8b..0281e44 100644 --- a/Complete Projects/Legion/TSU - Explosives.lua +++ b/WeakAuras/Projects/TSU - Explosives.lua @@ -1,87 +1,87 @@ ---TSU ---EVERY FRAME -function(allstates) - for _,v in pairs(allstates) do - v.show = false - v.changed = true - end - for i = 1, 40 do - unit = "nameplate" .. i - if UnitExists(unit) then - local name = UnitName(unit) - if name == "Fel Explosives" then - if UnitCastingInfo(unit) then - local _,_,_,_,startTime,endTime = UnitCastingInfo(unit) - local remainingTime = math.floor(endTime - (GetTime() * 1000)) - local castTime = endTime - startTime - --local hps = aura_env.shorten(UnitHealth(unit)) - --local maxhps = aura_env.shorten(UnitHealthMax(unit)) - local hp = UnitHealth(unit) - local maxhp = UnitHealthMax(unit) - local hpp = math.floor((hp / maxhp) * 100) - allstates[unit] = - { - changed = true, - show = true, - resort = true, - progressType = "static", - value = remainingTime, - total = castTime, - index = remainingTime, - one = "", - two = "", - hp = hp, - maxhp = maxhp, - hpp = hpp, - } - end - end - end - end - return true -end - ---ANIMATION -function() - if aura_env.statee then - local c = aura_env.range(aura_env.statee.hp, 0, aura_env.statee.maxhp, 1) - print(aura_env.grad(c)) - return aura_env.grad(c) - end -end - ---INIT -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 -end -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 -end -aura_env.range = function(val, min, max, max2) - val = 1 - (((max - val) / (max - min)) * max2) - return val +--TSU +--EVERY FRAME +function(allstates) + for _,v in pairs(allstates) do + v.show = false + v.changed = true + end + for i = 1, 40 do + unit = "nameplate" .. i + if UnitExists(unit) then + local name = UnitName(unit) + if name == "Fel Explosives" then + if UnitCastingInfo(unit) then + local _,_,_,_,startTime,endTime = UnitCastingInfo(unit) + local remainingTime = math.floor(endTime - (GetTime() * 1000)) + local castTime = endTime - startTime + --local hps = aura_env.shorten(UnitHealth(unit)) + --local maxhps = aura_env.shorten(UnitHealthMax(unit)) + local hp = UnitHealth(unit) + local maxhp = UnitHealthMax(unit) + local hpp = math.floor((hp / maxhp) * 100) + allstates[unit] = + { + changed = true, + show = true, + resort = true, + progressType = "static", + value = remainingTime, + total = castTime, + index = remainingTime, + one = "", + two = "", + hp = hp, + maxhp = maxhp, + hpp = hpp, + } + end + end + end + end + return true +end + +--ANIMATION +function() + if aura_env.statee then + local c = aura_env.range(aura_env.statee.hp, 0, aura_env.statee.maxhp, 1) + print(aura_env.grad(c)) + return aura_env.grad(c) + end +end + +--INIT +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 +end +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 +end +aura_env.range = function(val, min, max, max2) + val = 1 - (((max - val) / (max - min)) * max2) + return val end \ No newline at end of file diff --git a/Complete Projects/Legion/TSU - GroupConcordance.lua b/WeakAuras/Projects/TSU - GroupConcordance.lua similarity index 96% rename from Complete Projects/Legion/TSU - GroupConcordance.lua rename to WeakAuras/Projects/TSU - GroupConcordance.lua index 5fa4b3f..a32149e 100644 --- a/Complete Projects/Legion/TSU - GroupConcordance.lua +++ b/WeakAuras/Projects/TSU - GroupConcordance.lua @@ -1,110 +1,110 @@ ---TSU ---EVERY FRAME -function(allstates) - for _,v in pairs(allstates) do - v.show = false - v.changed = true - end - - for i = 1, GetNumGroupMembers() do - local unit = "raid" .. i - local class = UnitClass(unit) - local buff = UnitBuff(unit, "Concordance of the Legionfall") - if buff then - local exptime = select(7, UnitBuff(unit, "Concordance of the Legionfall")) - local amount = select(17, UnitBuff(unit, "Concordance of the Legionfall")) - local dur = 10 - local cur = exptime - GetTime() - local rem = dur - cur - local name = UnitName(unit) - allstates[unit] = - { - changed = true, - show = true, - resort = true, - progressType = "timed", - value = rem, - total = dur, - index = i, - class = class, - val = amount, - name = name, - } - end - end - return true -end - ---ANIMATION -function() - if aura_env.statee then - return aura_env.classColor(aura_env.statee.class) - end -end - ---INIT -aura_env.round = function(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 -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 -end -aura_env.classColor = function(class) - 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 1, 1, 1, 1 end -end -aura_env.round = function(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 -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 -end -aura_env.range = function(val, min, max, max2) - val = 1 - (((max - val) / (max - min)) * max2) - return val +--TSU +--EVERY FRAME +function(allstates) + for _,v in pairs(allstates) do + v.show = false + v.changed = true + end + + for i = 1, GetNumGroupMembers() do + local unit = "raid" .. i + local class = UnitClass(unit) + local buff = UnitBuff(unit, "Concordance of the Legionfall") + if buff then + local exptime = select(7, UnitBuff(unit, "Concordance of the Legionfall")) + local amount = select(17, UnitBuff(unit, "Concordance of the Legionfall")) + local dur = 10 + local cur = exptime - GetTime() + local rem = dur - cur + local name = UnitName(unit) + allstates[unit] = + { + changed = true, + show = true, + resort = true, + progressType = "timed", + value = rem, + total = dur, + index = i, + class = class, + val = amount, + name = name, + } + end + end + return true +end + +--ANIMATION +function() + if aura_env.statee then + return aura_env.classColor(aura_env.statee.class) + end +end + +--INIT +aura_env.round = function(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 +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 +end +aura_env.classColor = function(class) + 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 1, 1, 1, 1 end +end +aura_env.round = function(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 +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 +end +aura_env.range = function(val, min, max, max2) + val = 1 - (((max - val) / (max - min)) * max2) + return val end \ No newline at end of file diff --git a/Complete Projects/Legion/TSU - HealerMana.lua b/WeakAuras/Projects/TSU - HealerMana.lua similarity index 96% rename from Complete Projects/Legion/TSU - HealerMana.lua rename to WeakAuras/Projects/TSU - HealerMana.lua index 38e37e4..728fa8d 100644 --- a/Complete Projects/Legion/TSU - HealerMana.lua +++ b/WeakAuras/Projects/TSU - HealerMana.lua @@ -1,100 +1,100 @@ ---TSU ---UNIT_POWER -function(allstates) - for _,v in pairs(allstates) do - v.show = false - v.changed = true - end - - for k,v in pairs(aura_env.healerList) do - local unit = k - local name = v - local mana = UnitPower(unit) - local maxMana = UnitPowerMax(unit) - local shortMana = aura_env.shorten(mana, 0) - local class = UnitClass(unit) - allstates[unit] = - { - changed = true, - show = true, - resort = true, - progressType = "static", - value = mana, - total = maxMana, - index = mana, - name = name, - shortMana = shortMana, - class = class, - } - end - return true -end - ---ANIMATION -function() - if aura_env.statee then - return aura_env.classColor(aura_env.statee.class) - end -end - ---PLAYER_REGEN_DISABLED GROUP_JOINED GROUP_ROSTER_UPDATE -function() - aura_env.healerList = {} - if IsInRaid() then - for i = 1, GetNumGroupMembers() do - local unit = "raid" .. i - --print(UnitGroupRolesAssigned(unit)) - if UnitGroupRolesAssigned(unit) == "HEALER" then - aura_env.healerList[unit] = UnitName(unit) - print("Found " .. UnitGroupRolesAssigned(unit) .. " " .. UnitName(unit) .. " on ID " .. i) - end - end - else - for i = 1, GetNumGroupMembers() do - local unit = "party" .. i - --print(UnitGroupRolesAssigned(unit)) - if UnitGroupRolesAssigned(unit) == "HEALER" then - aura_env.healerList[unit] = UnitName(unit) - print("Found " .. UnitGroupRolesAssigned(unit) .. " " .. UnitName(unit) .. " on ID " .. i) - end - end - end -end - ---INIT -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 -end -aura_env.healerList = {} -aura_env.classColor = function(class) - 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 1, 1, 1, 1 end +--TSU +--UNIT_POWER +function(allstates) + for _,v in pairs(allstates) do + v.show = false + v.changed = true + end + + for k,v in pairs(aura_env.healerList) do + local unit = k + local name = v + local mana = UnitPower(unit) + local maxMana = UnitPowerMax(unit) + local shortMana = aura_env.shorten(mana, 0) + local class = UnitClass(unit) + allstates[unit] = + { + changed = true, + show = true, + resort = true, + progressType = "static", + value = mana, + total = maxMana, + index = mana, + name = name, + shortMana = shortMana, + class = class, + } + end + return true +end + +--ANIMATION +function() + if aura_env.statee then + return aura_env.classColor(aura_env.statee.class) + end +end + +--PLAYER_REGEN_DISABLED GROUP_JOINED GROUP_ROSTER_UPDATE +function() + aura_env.healerList = {} + if IsInRaid() then + for i = 1, GetNumGroupMembers() do + local unit = "raid" .. i + --print(UnitGroupRolesAssigned(unit)) + if UnitGroupRolesAssigned(unit) == "HEALER" then + aura_env.healerList[unit] = UnitName(unit) + print("Found " .. UnitGroupRolesAssigned(unit) .. " " .. UnitName(unit) .. " on ID " .. i) + end + end + else + for i = 1, GetNumGroupMembers() do + local unit = "party" .. i + --print(UnitGroupRolesAssigned(unit)) + if UnitGroupRolesAssigned(unit) == "HEALER" then + aura_env.healerList[unit] = UnitName(unit) + print("Found " .. UnitGroupRolesAssigned(unit) .. " " .. UnitName(unit) .. " on ID " .. i) + end + end + end +end + +--INIT +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 +end +aura_env.healerList = {} +aura_env.classColor = function(class) + 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 1, 1, 1, 1 end end \ No newline at end of file diff --git a/Complete Projects/Legion/TSU - Item Monitor.lua b/WeakAuras/Projects/TSU - Item Monitor.lua similarity index 97% rename from Complete Projects/Legion/TSU - Item Monitor.lua rename to WeakAuras/Projects/TSU - Item Monitor.lua index d093553..8e1d6a3 100644 --- a/Complete Projects/Legion/TSU - Item Monitor.lua +++ b/WeakAuras/Projects/TSU - Item Monitor.lua @@ -1,38 +1,38 @@ ---REMOVE_ITEM_SHOW ADD_ITEM_SHOW -function(allstates, e, what, howmuch) - if e == "ADD_ITEM_SHOW" then - if what then - --Get info about item - local icon = 0 - local name = GetItemInfo(what) - --Save icon to databases - if not WeakAurasSaved.CustomTrash.IconDatabase[name] then icon = select(10, GetItemInfo(name)) else icon = WeakAurasSaved.CustomTrash.IconDatabase[name] end - if name and icon and not WeakAurasSaved.CustomTrash.IconDatabase[name] then WeakAurasSaved.CustomTrash.IconDatabase[name] = icon; print("Adding|cff78cb00 ", name, " |rto the icon database") end - --Get ID for tooltip - local indexid = #allstates + 1 - local ID - if WeakAurasSaved.CustomTrash.IDDatabase[name] then ID = WeakAurasSaved.CustomTrash.IDDatabase[name] end - allstates[indexid] = - { - show = true, - changed = true, - index = GetTime(), - resort = true, - icon = icon, - name = what, - amount = howmuch, - } - if ID then - allstates[indexid].itemId = ID - end - C_Timer.After(5, function() WeakAuras.ScanEvents("REMOVE_ITEM_SHOW", indexid) end) - return true - end - elseif e == "REMOVE_ITEM_SHOW" then - if allstates[what] then - allstates[what].show = false - allstates[what].changed = true - return true - end - end +--REMOVE_ITEM_SHOW ADD_ITEM_SHOW +function(allstates, e, what, howmuch) + if e == "ADD_ITEM_SHOW" then + if what then + --Get info about item + local icon = 0 + local name = GetItemInfo(what) + --Save icon to databases + if not WeakAurasSaved.CustomTrash.IconDatabase[name] then icon = select(10, GetItemInfo(name)) else icon = WeakAurasSaved.CustomTrash.IconDatabase[name] end + if name and icon and not WeakAurasSaved.CustomTrash.IconDatabase[name] then WeakAurasSaved.CustomTrash.IconDatabase[name] = icon; print("Adding|cff78cb00 ", name, " |rto the icon database") end + --Get ID for tooltip + local indexid = #allstates + 1 + local ID + if WeakAurasSaved.CustomTrash.IDDatabase[name] then ID = WeakAurasSaved.CustomTrash.IDDatabase[name] end + allstates[indexid] = + { + show = true, + changed = true, + index = GetTime(), + resort = true, + icon = icon, + name = what, + amount = howmuch, + } + if ID then + allstates[indexid].itemId = ID + end + C_Timer.After(5, function() WeakAuras.ScanEvents("REMOVE_ITEM_SHOW", indexid) end) + return true + end + elseif e == "REMOVE_ITEM_SHOW" then + if allstates[what] then + allstates[what].show = false + allstates[what].changed = true + return true + end + end end \ No newline at end of file diff --git a/Complete Projects/Legion/TSU - Jana do a spell.lua b/WeakAuras/Projects/TSU - Jana do a spell.lua similarity index 96% rename from Complete Projects/Legion/TSU - Jana do a spell.lua rename to WeakAuras/Projects/TSU - Jana do a spell.lua index 82bb615..e773b79 100644 --- a/Complete Projects/Legion/TSU - Jana do a spell.lua +++ b/WeakAuras/Projects/TSU - Jana do a spell.lua @@ -1,65 +1,65 @@ ---TSU ---COMBAT_LOG_EVENT_UNFILTERED CHECK_ALLSTATES -function(allstates, e, ...) - if not aura_env.ticker then - aura_env.ticker = C_Timer.NewTicker(0.05, function() - WeakAuras.ScanEvents("CHECK_ALLSTATES") - end) - end - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - local t = select(1, ...) - local se = select(2, ...) - if se == "SPELL_CAST_SUCCESS" then - local casterguid = select(4, ...) - local spell = select(13, ...) - if casterguid == UnitGUID("player") and aura_env.spells[spell] then - local icon = select(3, GetSpellInfo(spell)) - allstates[t] = { - show = true, - changed = true, - icon = icon, - resort = true, - index = GetTime(), - time = GetTime(), - } - return true - end - end - elseif e == "CHECK_ALLSTATES" then - for k, v in pairs(allstates) do - if GetTime() - v.time >= aura_env.timer then - allstates[k] = { - show = false, - changed = true, - } - end - end - return true - end -end - ---PLAYER_SPELLBOOK_UPDATE -function() - local index = 1 - while GetSpellBookItemName(index, "spell") do - local name = GetSpellInfo(index, "spell") - local id = select(7, GetSpellInfo(index, "spell")) - if IsPlayerSpell(id) == true then - aura_env.spells[name] = id - end - index = index + 1 - end -end - ---INIT -aura_env.spells = {} -aura_env.timer = 3 -local index = 1 -while GetSpellBookItemName(index, "spell") do - local name = GetSpellInfo(index, "spell") - local id = select(7, GetSpellInfo(index, "spell")) - if IsPlayerSpell(id) == true then - aura_env.spells[name] = id - end - index = index + 1 -end +--TSU +--COMBAT_LOG_EVENT_UNFILTERED CHECK_ALLSTATES +function(allstates, e, ...) + if not aura_env.ticker then + aura_env.ticker = C_Timer.NewTicker(0.05, function() + WeakAuras.ScanEvents("CHECK_ALLSTATES") + end) + end + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + local t = select(1, ...) + local se = select(2, ...) + if se == "SPELL_CAST_SUCCESS" then + local casterguid = select(4, ...) + local spell = select(13, ...) + if casterguid == UnitGUID("player") and aura_env.spells[spell] then + local icon = select(3, GetSpellInfo(spell)) + allstates[t] = { + show = true, + changed = true, + icon = icon, + resort = true, + index = GetTime(), + time = GetTime(), + } + return true + end + end + elseif e == "CHECK_ALLSTATES" then + for k, v in pairs(allstates) do + if GetTime() - v.time >= aura_env.timer then + allstates[k] = { + show = false, + changed = true, + } + end + end + return true + end +end + +--PLAYER_SPELLBOOK_UPDATE +function() + local index = 1 + while GetSpellBookItemName(index, "spell") do + local name = GetSpellInfo(index, "spell") + local id = select(7, GetSpellInfo(index, "spell")) + if IsPlayerSpell(id) == true then + aura_env.spells[name] = id + end + index = index + 1 + end +end + +--INIT +aura_env.spells = {} +aura_env.timer = 3 +local index = 1 +while GetSpellBookItemName(index, "spell") do + local name = GetSpellInfo(index, "spell") + local id = select(7, GetSpellInfo(index, "spell")) + if IsPlayerSpell(id) == true then + aura_env.spells[name] = id + end + index = index + 1 +end diff --git a/Complete Projects/Legion/TSU - PlayerEvaluator.lua b/WeakAuras/Projects/TSU - PlayerEvaluator.lua similarity index 97% rename from Complete Projects/Legion/TSU - PlayerEvaluator.lua rename to WeakAuras/Projects/TSU - PlayerEvaluator.lua index 82ff5ab..fabf25a 100644 --- a/Complete Projects/Legion/TSU - PlayerEvaluator.lua +++ b/WeakAuras/Projects/TSU - PlayerEvaluator.lua @@ -1,78 +1,78 @@ ---NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED ---TSU -function(allstates, e, unit) - if e == "NAME_PLATE_UNIT_ADDED" then - if UnitExists(unit) then - if UnitIsPlayer(unit) then - local name = UnitName(unit) - allstates[unit] = { - show = true, - changed = true, - unit = unit, - name = name, - guild = GetGuildInfo(unit), - rank = select(2, GetGuildInfo(unit)), - } - return true - end - end - elseif e == "NAME_PLATE_UNIT_REMOVED" then - if allstates[unit] then - allstates[unit] = { - show = false, - changed = true, - } - return true - end - end -end - ---ON SHOW -if aura_env.statee.unit then - if aura_env.statee.name ~= UnitName(aura_env.statee.unit) then return end - local guild, rank = GetGuildInfo(aura_env.statee.unit) - if not guild or not rank then return end - if not aura_env.region.text then - local text = aura_env.region:CreateFontString(nil, "OVERLAY") - aura_env.region.text = text - end - aura_env.region:SetHeight(128) - aura_env.region:SetWidth(512) - aura_env.region.text:SetFont("Interface\\AddOns\\SharedMedia_MyMedia\\font\\iosevka-fixed-medium.ttf", 14, "OUTLINE") - aura_env.region.text:SetText(guild .. "\n" .. rank) - aura_env.region.text:SetJustifyH("CENTER") - aura_env.region.text:SetJustifyV("CENTER") - if not aura_env.region.texture then - local texture = aura_env.region:CreateTexture(nil, "OVERLAY") - aura_env.region.texture = texture - end - aura_env.region.texture:SetTexture("Interface\\Addons\\WeakAuras\\PowerAurasMedia\\Auras\\Aura22") - aura_env.region.texture:SetHeight(192) - aura_env.region.texture:SetWidth(192) - local plate = C_NamePlate.GetNamePlateForUnit(aura_env.statee.unit) - - if guild == "Indecisive" then - aura_env.region.texture:SetVertexColor(1, 0.85, 0, 1) - elseif guild == "Warforged" then - aura_env.region.texture:SetVertexColor(0.75, 0.75, 0.75, 1) - elseif guild == "Sideway" then - aura_env.region.texture:SetVertexColor(0.8, 0.5, 0.2, 1) - end - - if plate then - aura_env.region.texture:ClearAllPoints() - aura_env.region.texture:SetPoint("CENTER", plate, "TOP", 0, -16) - aura_env.region.texture:Show() - aura_env.region.text:ClearAllPoints() - aura_env.region.text:SetPoint("CENTER", plate, "CENTER", 0, 16) - aura_env.region.text:Show() - end -end - ---ON HIDE -if aura_env.region.text then - aura_env.region.text:Hide() -end -if aura_env.region.texture then - aura_env.region.texture:Hide() +--NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED +--TSU +function(allstates, e, unit) + if e == "NAME_PLATE_UNIT_ADDED" then + if UnitExists(unit) then + if UnitIsPlayer(unit) then + local name = UnitName(unit) + allstates[unit] = { + show = true, + changed = true, + unit = unit, + name = name, + guild = GetGuildInfo(unit), + rank = select(2, GetGuildInfo(unit)), + } + return true + end + end + elseif e == "NAME_PLATE_UNIT_REMOVED" then + if allstates[unit] then + allstates[unit] = { + show = false, + changed = true, + } + return true + end + end +end + +--ON SHOW +if aura_env.statee.unit then + if aura_env.statee.name ~= UnitName(aura_env.statee.unit) then return end + local guild, rank = GetGuildInfo(aura_env.statee.unit) + if not guild or not rank then return end + if not aura_env.region.text then + local text = aura_env.region:CreateFontString(nil, "OVERLAY") + aura_env.region.text = text + end + aura_env.region:SetHeight(128) + aura_env.region:SetWidth(512) + aura_env.region.text:SetFont("Interface\\AddOns\\SharedMedia_MyMedia\\font\\iosevka-fixed-medium.ttf", 14, "OUTLINE") + aura_env.region.text:SetText(guild .. "\n" .. rank) + aura_env.region.text:SetJustifyH("CENTER") + aura_env.region.text:SetJustifyV("CENTER") + if not aura_env.region.texture then + local texture = aura_env.region:CreateTexture(nil, "OVERLAY") + aura_env.region.texture = texture + end + aura_env.region.texture:SetTexture("Interface\\Addons\\WeakAuras\\PowerAurasMedia\\Auras\\Aura22") + aura_env.region.texture:SetHeight(192) + aura_env.region.texture:SetWidth(192) + local plate = C_NamePlate.GetNamePlateForUnit(aura_env.statee.unit) + + if guild == "Indecisive" then + aura_env.region.texture:SetVertexColor(1, 0.85, 0, 1) + elseif guild == "Warforged" then + aura_env.region.texture:SetVertexColor(0.75, 0.75, 0.75, 1) + elseif guild == "Sideway" then + aura_env.region.texture:SetVertexColor(0.8, 0.5, 0.2, 1) + end + + if plate then + aura_env.region.texture:ClearAllPoints() + aura_env.region.texture:SetPoint("CENTER", plate, "TOP", 0, -16) + aura_env.region.texture:Show() + aura_env.region.text:ClearAllPoints() + aura_env.region.text:SetPoint("CENTER", plate, "CENTER", 0, 16) + aura_env.region.text:Show() + end +end + +--ON HIDE +if aura_env.region.text then + aura_env.region.text:Hide() +end +if aura_env.region.texture then + aura_env.region.texture:Hide() end \ No newline at end of file diff --git a/Complete Projects/Legion/TSU - RepBars.lua b/WeakAuras/Projects/TSU - RepBars.lua similarity index 95% rename from Complete Projects/Legion/TSU - RepBars.lua rename to WeakAuras/Projects/TSU - RepBars.lua index 3477866..3b21cb3 100644 --- a/Complete Projects/Legion/TSU - RepBars.lua +++ b/WeakAuras/Projects/TSU - RepBars.lua @@ -1,48 +1,48 @@ ---TSU ---CHAT_MSG_COMBAT_FACTION_CHANGE -function(allstates,event,msg) - for _,v in pairs(allstates) do - v.show = false - v.changed = true - end - - for k,v in ipairs(aura_env.reps) do - local name,_,_,_,repmax,rep = GetFactionInfo(i) - allstates[unit] = - { - changed = true, - show = true, - resort = true, - progressType = "static", - value = rep, - total = repmax, - index = rep, - name = repname, - } - end - return true -end - ---CHAT_MSG_COMBAT_FACTION_CHANGE -function(_,msg) - local repname,change = msg:match("Reputation with ([%a+%s*%p*]+) increased by (%d+)") - for i = 1, GetNumFactions() do - local name,_,_,_,repmax,rep = GetFactionInfo(i) - if name == repName then - local repIndex = i - end - end - local isfound = 0 - for k,v in ipairs(aura_env.reps) do - if v == name then - isfound = 1 - break - end - end - if isfound == 0 then - table.insert(aura_env.reps, name) - end -end - ---INIT +--TSU +--CHAT_MSG_COMBAT_FACTION_CHANGE +function(allstates,event,msg) + for _,v in pairs(allstates) do + v.show = false + v.changed = true + end + + for k,v in ipairs(aura_env.reps) do + local name,_,_,_,repmax,rep = GetFactionInfo(i) + allstates[unit] = + { + changed = true, + show = true, + resort = true, + progressType = "static", + value = rep, + total = repmax, + index = rep, + name = repname, + } + end + return true +end + +--CHAT_MSG_COMBAT_FACTION_CHANGE +function(_,msg) + local repname,change = msg:match("Reputation with ([%a+%s*%p*]+) increased by (%d+)") + for i = 1, GetNumFactions() do + local name,_,_,_,repmax,rep = GetFactionInfo(i) + if name == repName then + local repIndex = i + end + end + local isfound = 0 + for k,v in ipairs(aura_env.reps) do + if v == name then + isfound = 1 + break + end + end + if isfound == 0 then + table.insert(aura_env.reps, name) + end +end + +--INIT aura_env.reps = {} \ No newline at end of file diff --git a/Complete Projects/Legion/TSU - Shitty kara trinket.lua b/WeakAuras/Projects/TSU - Shitty kara trinket.lua similarity index 96% rename from Complete Projects/Legion/TSU - Shitty kara trinket.lua rename to WeakAuras/Projects/TSU - Shitty kara trinket.lua index 4ad8e0a..9b23500 100644 --- a/Complete Projects/Legion/TSU - Shitty kara trinket.lua +++ b/WeakAuras/Projects/TSU - Shitty kara trinket.lua @@ -1,59 +1,59 @@ ---TSU ---EVERY FRAME -function(allstates) - for _,v in pairs(allstates) do - v.show = false - v.changed = true - end - - for i = 1, GetNumGroupMembers() do - local unit = "raid" .. i - local class = UnitClass(unit) - local buff = UnitBuff(unit, "Guardian's Familiar") - if buff then - local amount = select(17, UnitBuff(unit, "Guardian's Familiar")) - local maxval = 0 - if amount > maxval then - maxval = amount - end - local name = UnitName(unit) - allstates[unit] = - { - changed = true, - show = true, - resort = true, - progressType = "static", - value = amount, - total = maxval, - index = amount, - class = class, - name = name, - } - end - end - return true -end - ---ANIMATION -function() - if aura_env.statee then - return aura_env.classColor(aura_env.statee.class) - end -end - ---INIT -aura_env.classColor = function(class) - 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 1, 1, 1, 1 end +--TSU +--EVERY FRAME +function(allstates) + for _,v in pairs(allstates) do + v.show = false + v.changed = true + end + + for i = 1, GetNumGroupMembers() do + local unit = "raid" .. i + local class = UnitClass(unit) + local buff = UnitBuff(unit, "Guardian's Familiar") + if buff then + local amount = select(17, UnitBuff(unit, "Guardian's Familiar")) + local maxval = 0 + if amount > maxval then + maxval = amount + end + local name = UnitName(unit) + allstates[unit] = + { + changed = true, + show = true, + resort = true, + progressType = "static", + value = amount, + total = maxval, + index = amount, + class = class, + name = name, + } + end + end + return true +end + +--ANIMATION +function() + if aura_env.statee then + return aura_env.classColor(aura_env.statee.class) + end +end + +--INIT +aura_env.classColor = function(class) + 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 1, 1, 1, 1 end end \ No newline at end of file diff --git a/Complete Projects/Legion/TSU - Spell Alert.lua b/WeakAuras/Projects/TSU - Spell Alert.lua similarity index 96% rename from Complete Projects/Legion/TSU - Spell Alert.lua rename to WeakAuras/Projects/TSU - Spell Alert.lua index a51833f..9a8836a 100644 --- a/Complete Projects/Legion/TSU - Spell Alert.lua +++ b/WeakAuras/Projects/TSU - Spell Alert.lua @@ -1,494 +1,494 @@ ---Add raid frame glow for target of spellcast ---COMBAT_LOG_EVENT_UNFILTERED REMOVE_GUID NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED -function(allstates, e, ...) - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, ...) - if se == "SPELL_CAST_START" or se == "SPELL_CAST_SUCCESS" then - local spell = select(13, ...) - if aura_env.spells[spell] then - local ID = select(7, GetSpellInfo(aura_env.spells[spell].ID)) - if ID == aura_env.spells[spell].ID then - local castTime = select(4, GetSpellInfo(aura_env.spells[spell].ID)) - local GUID = select(4, ...) - if GUID then allstates[GUID] = {} end - if allstates[GUID].timer then allstates[GUID].timer:Cancel() end - if castTime > 1000 and se == "SPELL_CAST_START" then - if allstates[GUID].timer then allstates[GUID].timer:Cancel() end - allstates[GUID].changed = true - allstates[GUID].show = true - allstates[GUID].showTime = GetTime() - allstates[GUID].ID = aura_env.spells[spell].ID - allstates[GUID].ins = aura_env.spells[spell].ins - allstates[GUID].GUID = GUID - allstates[GUID].progressType = "timed" - allstates[GUID].expirationTime = GetTime() + castTime / 1000 - allstates[GUID].duration = castTime / 1000 - allstates[GUID].timer = C_Timer.NewTimer(castTime / 1000, function() WeakAuras.ScanEvents("REMOVE_GUID", GUID); end) - allstates[GUID].text = aura_env.spells[spell].ins - return true - elseif castTime == 0 and se == "SPELL_CAST_SUCCESS" then - if allstates[GUID].timer then allstates[GUID].timer:Cancel() end - allstates[GUID].changed = true - allstates[GUID].show = true - allstates[GUID].showTime = GetTime() - allstates[GUID].ID = aura_env.spells[spell].ID - allstates[GUID].ins = aura_env.spells[spell].ins - allstates[GUID].GUID = GUID - allstates[GUID].expirationTime = GetTime() + 2 - allstates[GUID].timer = C_Timer.NewTimer(2, function() WeakAuras.ScanEvents("REMOVE_GUID", GUID); end) - allstates[GUID].text = aura_env.spells[spell].ins - return true - end - end - end - elseif se == "SPELL_CAST_FAILED" then - local spell = select(13, ...) - if aura_env.spells[spell] then - local ID = select(7, GetSpellInfo(aura_env.spells[spell].ID)) - if ID == aura_env.spells[spell].ID then - local GUID = select(4, ...) - if allstates[GUID].timer then allstates[GUID].timer:Cancel() end - --WeakAuras.ScanEvents("REMOVE_GUID", GUID) - local rem = aura_env.round(allstates[GUID].expirationTime - GetTime(), 1) - local maxrem = allstates[GUID].expirationTime - allstates[GUID].showTime - allstates[GUID].changed = true - allstates[GUID].show = true - allstates[GUID].progressType = "static" - allstates[GUID].value = rem - allstates[GUID].total = maxrem - allstates[GUID].interrupted = true - allstates[GUID].timer = C_Timer.NewTimer(1, function() WeakAuras.ScanEvents("REMOVE_GUID", GUID) end) - return true - end - end - elseif se == "UNIT_DIED" then - local GUID = select(8, ...) - if allstates[GUID] and allstates[GUID].expirationTime and not allstates[GUID].interrupted then - local rem = allstates[GUID].expirationTime - GetTime() - local maxrem = allstates[GUID].expirationTime - allstates[GUID].showTime - allstates[GUID].changed = true - allstates[GUID].show = true - allstates[GUID].progressType = "static" - allstates[GUID].value = rem - allstates[GUID].total = maxrem - allstates[GUID].interrupted = true - allstates[GUID].timer = C_Timer.NewTimer(1, function() WeakAuras.ScanEvents("REMOVE_GUID", GUID) end) - return true - end - end - elseif e == "REMOVE_GUID" then - local GUID = select(1, ...) - if allstates[GUID] then - allstates[GUID].show = false - allstates[GUID].changed = true - return true - end - end -end - ---ANIMATION -function() - if aura_env.statee and aura_env.statee.interrupted then return 0, 1, 0, 1 end -end - ---ON SHOW -PlaySoundFile("Interface\\AddOns\\WeakAuras\\Media\\Sounds\\RobotBlip.ogg", "Master") - ---INIT -aura_env.spells = { - ["Hateful Charge"] = { - ["ID"] = 224188, - ["ins"] = "Hateful Charge - Intercept", - }, - ["Growing Paranoia"] = { - ["ID"] = 200289, - ["ins"] = "Growing Paranoia - Avoid", - }, - ["Waking Nightmare"] = { - ["ID"] = 200243, - ["ins"] = "Waking Nightmare - Stack", - }, - ["Static Nova"] = { - ["ID"] = 193597, - ["ins"] = "Static Nova - Run to island", - }, - ["Focused Lightning"] = { - ["ID"] = 193611, - ["ins"] = "Focused Lightning - Run from island", - }, - ["Scent Of Blood"] = { - ["ID"] = 196838, - ["ins"] = "Scent Of Blood - Prepare for Claw Frenzy", - }, - ["Celerity Zone"] = { - ["ID"] = 211037, - ["ins"] = "Celerity Zone - Get 50% haste", - }, - ["Sap Soul"] = { - ["ID"] = 200905, - ["ins"] = "Sap Soul - Manage", - }, - ["Meteor"] = { - ["ID"] = 196249, - ["ins"] = "Meteor - Stack", - }, - ["Fissure"] = { - ["ID"] = 192522, - ["ins"] = "Fissure - Yoink lava", - }, - ["Lava Wreath"] = { - ["ID"] = 192631, - ["ins"] = "Lava Wreath - Yoink lava", - }, - ["Knockdown Kick"] = { - ["ID"] = 214989, - ["ins"] = "Knockdown Kick - Beware", - }, - ["Knife Dance"] = { - ["ID"] = 200291, - ["ins"] = "Knife Dance - Beware", - }, - ["Mana Fang"] = { - ["ID"] = 209516, - ["ins"] = "Mana Fang - Beware", - }, - ["Frantic Rip"] = { - ["ID"] = 200620, - ["ins"] = "Frantic Rip - Beware", - }, - ["Grievous Tear"] = { - ["ID"] = 196376, - ["ins"] = "Grievous Tear - Beware", - }, - ["Nightmare Bolt"] = { - ["ID"] = 212834, - ["ins"] = "Nightmare Bolt - Beware", - }, - ["Rising Fury"] = { - ["ID"] = 195944, - ["ins"] = "Rising Fury - Beware", - }, - ["Ravenous Leap"] = { - ["ID"] = 197556, - ["ins"] = "Ravenous Leap - Beware", - }, - ["Lantern Of Darkness"] = { - ["ID"] = 192019, - ["ins"] = "Lantern Of Darkness - Beware", - }, - ["Shatter"] = { - ["ID"] = 188114, - ["ins"] = "Shatter - Beware", - }, - ["Prophecies Of Doom"] = { - ["ID"] = 211771, - ["ins"] = "Prophecies Of Doom - Beware", - }, - ["Quarantine"] = { - ["ID"] = 195791, - ["ins"] = "Quarantine - Beware", - }, - ["Deepening Shadows"] = { - ["ID"] = 213583, - ["ins"] = "Deepening Shadows - Beware", - }, - ["Maddening Roar"] = { - ["ID"] = 200580, - ["ins"] = "Maddening Roar - CC", - }, - ["Spray Sand"] = { - ["ID"] = 196129, - ["ins"] = "Spray Sand - CC", - }, - ["Drain"] = { - ["ID"] = 202658, - ["ins"] = "Drain - CC", - }, - ["Dark Mending"] = { - ["ID"] = 225573, - ["ins"] = "Dark Mending - Interrupt", - }, - ["Hinder"] = { - ["ID"] = 215204, - ["ins"] = "Hinder - Interrupt", - }, - ["Drain Magic"] = { - ["ID"] = 209485, - ["ins"] = "Drain Magic - Interrupt", - }, - ["Charging Station"] = { - ["ID"] = 225100, - ["ins"] = "Charging Station - Interrupt", - }, - ["Unnerving Screech"] = { - ["ID"] = 200631, - ["ins"] = "Unnerving Screech - Interrupt", - }, - ["Tormenting Eye"] = { - ["ID"] = 204243, - ["ins"] = "Tormenting Eye - Interrupt", - }, - ["Blood Metamorphosis"] = { - ["ID"] = 225562, - ["ins"] = "Blood Metamorphosis - Interrupt", - }, - ["Restoration"] = { - ["ID"] = 197502, - ["ins"] = "Restoration - Interrupt", - }, - ["Arcane Rebound"] = { - ["ID"] = 196028, - ["ins"] = "Arcane Rebound - Interrupt", - }, - ["Polymorph:Fish"] = { - ["ID"] = 197105, - ["ins"] = "Polymorph:Fish - Interrupt", - }, - ["Aqua Spout"] = { - ["ID"] = 196027, - ["ins"] = "Aqua Spout - Interrupt", - }, - ["Shattered Rune"] = { - ["ID"] = 198962, - ["ins"] = "Shattered Rune - Interrupt", - }, - ["Etch"] = { - ["ID"] = 198959, - ["ins"] = "Etch - Interrupt", - }, - ["Unruly Yell"] = { - ["ID"] = 199726, - ["ins"] = "Unruly Yell - Interrupt", - }, - ["Surge"] = { - ["ID"] = 198750, - ["ins"] = "Surge - Interrupt", - }, - ["Void Snap"] = { - ["ID"] = 194266, - ["ins"] = "Void Snap - Interrupt", - }, - ["Bound"] = { - ["ID"] = 193585, - ["ins"] = "Bound - Interrupt", - }, - ["Demonic Ascension"] = { - ["ID"] = 226285, - ["ins"] = "Demonic Ascension - Interrupt", - }, - ["Nightmares"] = { - ["ID"] = 193069, - ["ins"] = "Nightmares - Interrupt", - }, - ["Bonebreaking Strike"] = { - ["ID"] = 200261, - ["ins"] = "Bonebreaking Strike - Avoid", - }, - ["Ravens Dive"] = { - ["ID"] = 214001, - ["ins"] = "Ravens Dive - Avoid", - }, - ["Quelling Strike"] = { - ["ID"] = 209027, - ["ins"] = "Quelling Strike - Avoid", - }, - ["Wild Detonation"] = { - ["ID"] = 209477, - ["ins"] = "Wild Detonation - Avoid", - }, - ["Charged Blast"] = { - ["ID"] = 212031, - ["ins"] = "Charged Blast - Avoid", - }, - ["Charged Smash"] = { - ["ID"] = 209495, - ["ins"] = "Charged Smash - Avoid", - }, - ["Fel Detonation"] = { - ["ID"] = 211464, - ["ins"] = "Fel Detonation - Avoid", - }, - ["Star Shower"] = { - ["ID"] = 200658, - ["ins"] = "Star Shower - Avoid", - }, - ["Nightfall"] = { - ["ID"] = 198408, - ["ins"] = "Nightfall - Avoid", - }, - ["Dread Inferno"] = { - ["ID"] = 201400, - ["ins"] = "Dread Inferno - Avoid", - }, - ["Thunderstrike"] = { - ["ID"] = 198605, - ["ins"] = "Thunderstrike - Avoid", - }, - ["Felblaze Rush"] = { - ["ID"] = 193659, - ["ins"] = "Felblaze Rush - Avoid", - }, - ["Deceptive Strike"] = { - ["ID"] = 199250, - ["ins"] = "Deceptive Strike - Avoid", - }, - ["Cosmic Scythe"] = { - ["ID"] = 194216, - ["ins"] = "Cosmic Scythe - Avoid", - }, - ["Strike Of The Mountain"] = { - ["ID"] = 198475, - ["ins"] = "Strike Of The Mountain - Avoid", - }, - ["Spiked Tongue"] = { - ["ID"] = 199176, - ["ins"] = "Spiked Tongue - Avoid", - }, - ["Magma Wave"] = { - ["ID"] = 200404, - ["ins"] = "Magma Wave - Avoid", - }, - ["Shadow Slash"] = { - ["ID"] = 212030, - ["ins"] = "Shadow Slash - Avoid", - }, - ["Blink Strikes"] = { - ["ID"] = 199811, - ["ins"] = "Blink Strikes - Avoid", - }, - ["Nether Venom"] = { - ["ID"] = 200040, - ["ins"] = "Nether Venom - Avoid", - }, - ["Unstable Mana"] = { - ["ID"] = 220871, - ["ins"] = "Unstable Mana - Avoid", - }, - ["Lingering Gaze"] = { - ["ID"] = 194945, - ["ins"] = "Lingering Gaze - Avoid", - }, - ["Soul Blade"] = { - ["ID"] = 200084, - ["ins"] = "Soul Blade - Use Mitigation", - }, - ["Strike Down"] = { - ["ID"] = 225732, - ["ins"] = "Strike Down - Use Mitigation", - }, - ["Vengeful Shear"] = { - ["ID"] = 197418, - ["ins"] = "Vengeful Shear - Use Mitigation", - }, - ["Brutal Assault"] = { - ["ID"] = 201139, - ["ins"] = "Brutal Assault - Use Mitigation", - }, - ["Indigestion"] = { - ["ID"] = 200913, - ["ins"] = "Indigestion - Use Mitigation", - }, - ["Brutal Haymaker"] = { - ["ID"] = 198245, - ["ins"] = "Brutal Haymaker - Use Mitigation", - }, - ["Coup De Grace"] = { - ["ID"] = 214003, - ["ins"] = "Coup De Grace - Use Mitigation", - }, - ["Primal Rampage"] = { - ["ID"] = 198376, - ["ins"] = "Primal Rampage - Use Mitigation", - }, - ["Breath Of Corruption"] = { - ["ID"] = 191326, - ["ins"] = "Breath Of Corruption - Use Mitigation", - }, - ["Feed On The Weak"] = { - ["ID"] = 200238, - ["ins"] = "Feed On The Weak - Use Mitigation", - }, - ["Crashing Wave"] = { - ["ID"] = 191900, - ["ins"] = "Crashing Wave - Use Mitigation", - }, - ["Lightning Breath"] = { - ["ID"] = 198888, - ["ins"] = "Lightning Breath - Use Mitigation", - }, - ["Penetrating Shot"] = { - ["ID"] = 199210, - ["ins"] = "Penetrating Shot - Use Mitigation", - }, - ["Shield Of Light"] = { - ["ID"] = 192018, - ["ins"] = "Shield Of Light - Use Mitigation", - }, - ["Fire Blast"] = { - ["ID"] = 202365, - ["ins"] = "Fire Blast - Use Mitigation", - }, - ["Flare"] = { - ["ID"] = 202408, - ["ins"] = "Flare - Use Mitigation", - }, - ["Dark Slash"] = { - ["ID"] = 193211, - ["ins"] = "Dark Slash - Use Mitigation", - }, - ["Bile Breath"] = { - ["ID"] = 194099, - ["ins"] = "Bile Breath - Use Mitigation", - }, - ["Piercing Shards"] = { - ["ID"] = 226296, - ["ins"] = "Piercing Shards - Use Mitigation", - }, - ["Razor Shards"] = { - ["ID"] = 188169, - ["ins"] = "Razor Shards - Use Mitigation", - }, - ["Sunder"] = { - ["ID"] = 198496, - ["ins"] = "Sunder - Use Mitigation", - }, - ["Molten Crash"] = { - ["ID"] = 200732, - ["ins"] = "Molten Crash - Use Mitigation", - }, - ["Flame Breath"] = { - ["ID"] = 226420, - ["ins"] = "Flame Breath - Use Mitigation", - }, - ["Hatred"] = { - ["ID"] = 190836, - ["ins"] = "Hatred - Use Mitigation", - }, - ["a Mothers Love"] = { - ["ID"] = 194064, - ["ins"] = "a Mothers Love - Use Mitigation", - }, -} -aura_env.classColor = function(class) -if class == "Death Knight" then return "|cFFC41F3B" elseif -class == "Demon Hunter" then return "|cFFA330C9" elseif -class == "Druid" then return "|cFFFF7D0A" elseif -class == "Hunter" then return "|cFFABD473" elseif -class == "Mage" then return "|cFF40C7EB" elseif -class == "Monk" then return "|cFF00FF96" elseif -class == "Paladin" then return "|cFFF58CBA" elseif -class == "Priest" then return "|cFFFFFFFF" elseif -class == "Rogue" then return "|cFFFFF569" elseif -class == "Shaman" then return "|cFF0070DE" elseif -class == "Warlock" then return "|cFF8787ED" elseif -class == "Warrior" then return "|cFFC79C6E" else -return "|cFFFFFFFF" end -end -aura_env.round = function(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 +--Add raid frame glow for target of spellcast +--COMBAT_LOG_EVENT_UNFILTERED REMOVE_GUID NAME_PLATE_UNIT_ADDED NAME_PLATE_UNIT_REMOVED +function(allstates, e, ...) + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, ...) + if se == "SPELL_CAST_START" or se == "SPELL_CAST_SUCCESS" then + local spell = select(13, ...) + if aura_env.spells[spell] then + local ID = select(7, GetSpellInfo(aura_env.spells[spell].ID)) + if ID == aura_env.spells[spell].ID then + local castTime = select(4, GetSpellInfo(aura_env.spells[spell].ID)) + local GUID = select(4, ...) + if GUID then allstates[GUID] = {} end + if allstates[GUID].timer then allstates[GUID].timer:Cancel() end + if castTime > 1000 and se == "SPELL_CAST_START" then + if allstates[GUID].timer then allstates[GUID].timer:Cancel() end + allstates[GUID].changed = true + allstates[GUID].show = true + allstates[GUID].showTime = GetTime() + allstates[GUID].ID = aura_env.spells[spell].ID + allstates[GUID].ins = aura_env.spells[spell].ins + allstates[GUID].GUID = GUID + allstates[GUID].progressType = "timed" + allstates[GUID].expirationTime = GetTime() + castTime / 1000 + allstates[GUID].duration = castTime / 1000 + allstates[GUID].timer = C_Timer.NewTimer(castTime / 1000, function() WeakAuras.ScanEvents("REMOVE_GUID", GUID); end) + allstates[GUID].text = aura_env.spells[spell].ins + return true + elseif castTime == 0 and se == "SPELL_CAST_SUCCESS" then + if allstates[GUID].timer then allstates[GUID].timer:Cancel() end + allstates[GUID].changed = true + allstates[GUID].show = true + allstates[GUID].showTime = GetTime() + allstates[GUID].ID = aura_env.spells[spell].ID + allstates[GUID].ins = aura_env.spells[spell].ins + allstates[GUID].GUID = GUID + allstates[GUID].expirationTime = GetTime() + 2 + allstates[GUID].timer = C_Timer.NewTimer(2, function() WeakAuras.ScanEvents("REMOVE_GUID", GUID); end) + allstates[GUID].text = aura_env.spells[spell].ins + return true + end + end + end + elseif se == "SPELL_CAST_FAILED" then + local spell = select(13, ...) + if aura_env.spells[spell] then + local ID = select(7, GetSpellInfo(aura_env.spells[spell].ID)) + if ID == aura_env.spells[spell].ID then + local GUID = select(4, ...) + if allstates[GUID].timer then allstates[GUID].timer:Cancel() end + --WeakAuras.ScanEvents("REMOVE_GUID", GUID) + local rem = aura_env.round(allstates[GUID].expirationTime - GetTime(), 1) + local maxrem = allstates[GUID].expirationTime - allstates[GUID].showTime + allstates[GUID].changed = true + allstates[GUID].show = true + allstates[GUID].progressType = "static" + allstates[GUID].value = rem + allstates[GUID].total = maxrem + allstates[GUID].interrupted = true + allstates[GUID].timer = C_Timer.NewTimer(1, function() WeakAuras.ScanEvents("REMOVE_GUID", GUID) end) + return true + end + end + elseif se == "UNIT_DIED" then + local GUID = select(8, ...) + if allstates[GUID] and allstates[GUID].expirationTime and not allstates[GUID].interrupted then + local rem = allstates[GUID].expirationTime - GetTime() + local maxrem = allstates[GUID].expirationTime - allstates[GUID].showTime + allstates[GUID].changed = true + allstates[GUID].show = true + allstates[GUID].progressType = "static" + allstates[GUID].value = rem + allstates[GUID].total = maxrem + allstates[GUID].interrupted = true + allstates[GUID].timer = C_Timer.NewTimer(1, function() WeakAuras.ScanEvents("REMOVE_GUID", GUID) end) + return true + end + end + elseif e == "REMOVE_GUID" then + local GUID = select(1, ...) + if allstates[GUID] then + allstates[GUID].show = false + allstates[GUID].changed = true + return true + end + end +end + +--ANIMATION +function() + if aura_env.statee and aura_env.statee.interrupted then return 0, 1, 0, 1 end +end + +--ON SHOW +PlaySoundFile("Interface\\AddOns\\WeakAuras\\Media\\Sounds\\RobotBlip.ogg", "Master") + +--INIT +aura_env.spells = { + ["Hateful Charge"] = { + ["ID"] = 224188, + ["ins"] = "Hateful Charge - Intercept", + }, + ["Growing Paranoia"] = { + ["ID"] = 200289, + ["ins"] = "Growing Paranoia - Avoid", + }, + ["Waking Nightmare"] = { + ["ID"] = 200243, + ["ins"] = "Waking Nightmare - Stack", + }, + ["Static Nova"] = { + ["ID"] = 193597, + ["ins"] = "Static Nova - Run to island", + }, + ["Focused Lightning"] = { + ["ID"] = 193611, + ["ins"] = "Focused Lightning - Run from island", + }, + ["Scent Of Blood"] = { + ["ID"] = 196838, + ["ins"] = "Scent Of Blood - Prepare for Claw Frenzy", + }, + ["Celerity Zone"] = { + ["ID"] = 211037, + ["ins"] = "Celerity Zone - Get 50% haste", + }, + ["Sap Soul"] = { + ["ID"] = 200905, + ["ins"] = "Sap Soul - Manage", + }, + ["Meteor"] = { + ["ID"] = 196249, + ["ins"] = "Meteor - Stack", + }, + ["Fissure"] = { + ["ID"] = 192522, + ["ins"] = "Fissure - Yoink lava", + }, + ["Lava Wreath"] = { + ["ID"] = 192631, + ["ins"] = "Lava Wreath - Yoink lava", + }, + ["Knockdown Kick"] = { + ["ID"] = 214989, + ["ins"] = "Knockdown Kick - Beware", + }, + ["Knife Dance"] = { + ["ID"] = 200291, + ["ins"] = "Knife Dance - Beware", + }, + ["Mana Fang"] = { + ["ID"] = 209516, + ["ins"] = "Mana Fang - Beware", + }, + ["Frantic Rip"] = { + ["ID"] = 200620, + ["ins"] = "Frantic Rip - Beware", + }, + ["Grievous Tear"] = { + ["ID"] = 196376, + ["ins"] = "Grievous Tear - Beware", + }, + ["Nightmare Bolt"] = { + ["ID"] = 212834, + ["ins"] = "Nightmare Bolt - Beware", + }, + ["Rising Fury"] = { + ["ID"] = 195944, + ["ins"] = "Rising Fury - Beware", + }, + ["Ravenous Leap"] = { + ["ID"] = 197556, + ["ins"] = "Ravenous Leap - Beware", + }, + ["Lantern Of Darkness"] = { + ["ID"] = 192019, + ["ins"] = "Lantern Of Darkness - Beware", + }, + ["Shatter"] = { + ["ID"] = 188114, + ["ins"] = "Shatter - Beware", + }, + ["Prophecies Of Doom"] = { + ["ID"] = 211771, + ["ins"] = "Prophecies Of Doom - Beware", + }, + ["Quarantine"] = { + ["ID"] = 195791, + ["ins"] = "Quarantine - Beware", + }, + ["Deepening Shadows"] = { + ["ID"] = 213583, + ["ins"] = "Deepening Shadows - Beware", + }, + ["Maddening Roar"] = { + ["ID"] = 200580, + ["ins"] = "Maddening Roar - CC", + }, + ["Spray Sand"] = { + ["ID"] = 196129, + ["ins"] = "Spray Sand - CC", + }, + ["Drain"] = { + ["ID"] = 202658, + ["ins"] = "Drain - CC", + }, + ["Dark Mending"] = { + ["ID"] = 225573, + ["ins"] = "Dark Mending - Interrupt", + }, + ["Hinder"] = { + ["ID"] = 215204, + ["ins"] = "Hinder - Interrupt", + }, + ["Drain Magic"] = { + ["ID"] = 209485, + ["ins"] = "Drain Magic - Interrupt", + }, + ["Charging Station"] = { + ["ID"] = 225100, + ["ins"] = "Charging Station - Interrupt", + }, + ["Unnerving Screech"] = { + ["ID"] = 200631, + ["ins"] = "Unnerving Screech - Interrupt", + }, + ["Tormenting Eye"] = { + ["ID"] = 204243, + ["ins"] = "Tormenting Eye - Interrupt", + }, + ["Blood Metamorphosis"] = { + ["ID"] = 225562, + ["ins"] = "Blood Metamorphosis - Interrupt", + }, + ["Restoration"] = { + ["ID"] = 197502, + ["ins"] = "Restoration - Interrupt", + }, + ["Arcane Rebound"] = { + ["ID"] = 196028, + ["ins"] = "Arcane Rebound - Interrupt", + }, + ["Polymorph:Fish"] = { + ["ID"] = 197105, + ["ins"] = "Polymorph:Fish - Interrupt", + }, + ["Aqua Spout"] = { + ["ID"] = 196027, + ["ins"] = "Aqua Spout - Interrupt", + }, + ["Shattered Rune"] = { + ["ID"] = 198962, + ["ins"] = "Shattered Rune - Interrupt", + }, + ["Etch"] = { + ["ID"] = 198959, + ["ins"] = "Etch - Interrupt", + }, + ["Unruly Yell"] = { + ["ID"] = 199726, + ["ins"] = "Unruly Yell - Interrupt", + }, + ["Surge"] = { + ["ID"] = 198750, + ["ins"] = "Surge - Interrupt", + }, + ["Void Snap"] = { + ["ID"] = 194266, + ["ins"] = "Void Snap - Interrupt", + }, + ["Bound"] = { + ["ID"] = 193585, + ["ins"] = "Bound - Interrupt", + }, + ["Demonic Ascension"] = { + ["ID"] = 226285, + ["ins"] = "Demonic Ascension - Interrupt", + }, + ["Nightmares"] = { + ["ID"] = 193069, + ["ins"] = "Nightmares - Interrupt", + }, + ["Bonebreaking Strike"] = { + ["ID"] = 200261, + ["ins"] = "Bonebreaking Strike - Avoid", + }, + ["Ravens Dive"] = { + ["ID"] = 214001, + ["ins"] = "Ravens Dive - Avoid", + }, + ["Quelling Strike"] = { + ["ID"] = 209027, + ["ins"] = "Quelling Strike - Avoid", + }, + ["Wild Detonation"] = { + ["ID"] = 209477, + ["ins"] = "Wild Detonation - Avoid", + }, + ["Charged Blast"] = { + ["ID"] = 212031, + ["ins"] = "Charged Blast - Avoid", + }, + ["Charged Smash"] = { + ["ID"] = 209495, + ["ins"] = "Charged Smash - Avoid", + }, + ["Fel Detonation"] = { + ["ID"] = 211464, + ["ins"] = "Fel Detonation - Avoid", + }, + ["Star Shower"] = { + ["ID"] = 200658, + ["ins"] = "Star Shower - Avoid", + }, + ["Nightfall"] = { + ["ID"] = 198408, + ["ins"] = "Nightfall - Avoid", + }, + ["Dread Inferno"] = { + ["ID"] = 201400, + ["ins"] = "Dread Inferno - Avoid", + }, + ["Thunderstrike"] = { + ["ID"] = 198605, + ["ins"] = "Thunderstrike - Avoid", + }, + ["Felblaze Rush"] = { + ["ID"] = 193659, + ["ins"] = "Felblaze Rush - Avoid", + }, + ["Deceptive Strike"] = { + ["ID"] = 199250, + ["ins"] = "Deceptive Strike - Avoid", + }, + ["Cosmic Scythe"] = { + ["ID"] = 194216, + ["ins"] = "Cosmic Scythe - Avoid", + }, + ["Strike Of The Mountain"] = { + ["ID"] = 198475, + ["ins"] = "Strike Of The Mountain - Avoid", + }, + ["Spiked Tongue"] = { + ["ID"] = 199176, + ["ins"] = "Spiked Tongue - Avoid", + }, + ["Magma Wave"] = { + ["ID"] = 200404, + ["ins"] = "Magma Wave - Avoid", + }, + ["Shadow Slash"] = { + ["ID"] = 212030, + ["ins"] = "Shadow Slash - Avoid", + }, + ["Blink Strikes"] = { + ["ID"] = 199811, + ["ins"] = "Blink Strikes - Avoid", + }, + ["Nether Venom"] = { + ["ID"] = 200040, + ["ins"] = "Nether Venom - Avoid", + }, + ["Unstable Mana"] = { + ["ID"] = 220871, + ["ins"] = "Unstable Mana - Avoid", + }, + ["Lingering Gaze"] = { + ["ID"] = 194945, + ["ins"] = "Lingering Gaze - Avoid", + }, + ["Soul Blade"] = { + ["ID"] = 200084, + ["ins"] = "Soul Blade - Use Mitigation", + }, + ["Strike Down"] = { + ["ID"] = 225732, + ["ins"] = "Strike Down - Use Mitigation", + }, + ["Vengeful Shear"] = { + ["ID"] = 197418, + ["ins"] = "Vengeful Shear - Use Mitigation", + }, + ["Brutal Assault"] = { + ["ID"] = 201139, + ["ins"] = "Brutal Assault - Use Mitigation", + }, + ["Indigestion"] = { + ["ID"] = 200913, + ["ins"] = "Indigestion - Use Mitigation", + }, + ["Brutal Haymaker"] = { + ["ID"] = 198245, + ["ins"] = "Brutal Haymaker - Use Mitigation", + }, + ["Coup De Grace"] = { + ["ID"] = 214003, + ["ins"] = "Coup De Grace - Use Mitigation", + }, + ["Primal Rampage"] = { + ["ID"] = 198376, + ["ins"] = "Primal Rampage - Use Mitigation", + }, + ["Breath Of Corruption"] = { + ["ID"] = 191326, + ["ins"] = "Breath Of Corruption - Use Mitigation", + }, + ["Feed On The Weak"] = { + ["ID"] = 200238, + ["ins"] = "Feed On The Weak - Use Mitigation", + }, + ["Crashing Wave"] = { + ["ID"] = 191900, + ["ins"] = "Crashing Wave - Use Mitigation", + }, + ["Lightning Breath"] = { + ["ID"] = 198888, + ["ins"] = "Lightning Breath - Use Mitigation", + }, + ["Penetrating Shot"] = { + ["ID"] = 199210, + ["ins"] = "Penetrating Shot - Use Mitigation", + }, + ["Shield Of Light"] = { + ["ID"] = 192018, + ["ins"] = "Shield Of Light - Use Mitigation", + }, + ["Fire Blast"] = { + ["ID"] = 202365, + ["ins"] = "Fire Blast - Use Mitigation", + }, + ["Flare"] = { + ["ID"] = 202408, + ["ins"] = "Flare - Use Mitigation", + }, + ["Dark Slash"] = { + ["ID"] = 193211, + ["ins"] = "Dark Slash - Use Mitigation", + }, + ["Bile Breath"] = { + ["ID"] = 194099, + ["ins"] = "Bile Breath - Use Mitigation", + }, + ["Piercing Shards"] = { + ["ID"] = 226296, + ["ins"] = "Piercing Shards - Use Mitigation", + }, + ["Razor Shards"] = { + ["ID"] = 188169, + ["ins"] = "Razor Shards - Use Mitigation", + }, + ["Sunder"] = { + ["ID"] = 198496, + ["ins"] = "Sunder - Use Mitigation", + }, + ["Molten Crash"] = { + ["ID"] = 200732, + ["ins"] = "Molten Crash - Use Mitigation", + }, + ["Flame Breath"] = { + ["ID"] = 226420, + ["ins"] = "Flame Breath - Use Mitigation", + }, + ["Hatred"] = { + ["ID"] = 190836, + ["ins"] = "Hatred - Use Mitigation", + }, + ["a Mothers Love"] = { + ["ID"] = 194064, + ["ins"] = "a Mothers Love - Use Mitigation", + }, +} +aura_env.classColor = function(class) +if class == "Death Knight" then return "|cFFC41F3B" elseif +class == "Demon Hunter" then return "|cFFA330C9" elseif +class == "Druid" then return "|cFFFF7D0A" elseif +class == "Hunter" then return "|cFFABD473" elseif +class == "Mage" then return "|cFF40C7EB" elseif +class == "Monk" then return "|cFF00FF96" elseif +class == "Paladin" then return "|cFFF58CBA" elseif +class == "Priest" then return "|cFFFFFFFF" elseif +class == "Rogue" then return "|cFFFFF569" elseif +class == "Shaman" then return "|cFF0070DE" elseif +class == "Warlock" then return "|cFF8787ED" elseif +class == "Warrior" then return "|cFFC79C6E" else +return "|cFFFFFFFF" end +end +aura_env.round = function(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 \ No newline at end of file diff --git a/Complete Projects/Legion/TSU - Spells.lua b/WeakAuras/Projects/TSU - Spells.lua similarity index 97% rename from Complete Projects/Legion/TSU - Spells.lua rename to WeakAuras/Projects/TSU - Spells.lua index ddb2d1e..60a2a81 100644 --- a/Complete Projects/Legion/TSU - Spells.lua +++ b/WeakAuras/Projects/TSU - Spells.lua @@ -1,399 +1,399 @@ ---[[ -TODO: -Add interrupts / stuns / breaks by looking at friendly spells cast on the GUID's -Add support for default UI (!!!) -Mob deaths remove namepaltes, handle glow maybe? -Rework for GetSpellInfo instead of GetCastingInfo - if no namepalte found GetSpellinfo!!!!!! BIG IQ -Watch for damage on avengers instead of cast -]] - ---TSU ---COMBAT_LOG_EVENT_UNFILTERED HIDE_ALLSTATES_CAST NAME_PLATE_UNIT_REMOVED NAME_PLATE_UNIT_ADDED -function(allstates, e, ...) - local scan = false - local casterGUID, caster, spell, se, interrupted = false - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - se = select(2, ...) - if se == "SPELL_CAST_START" or se == "SPELL_CAST_SUCCESS" then - local casterFlags = select(6, ...) - if (bit.band(casterFlags, 0x00000840) == 0x00000840) == true then --Hostile NPC - casterGUID = select(4, ...) - caster = select(5, ...) - spell = select(13, ...) - scan = true - end - elseif e == "SPELL_CAST_FAILED" then - if (bit.band(casterFlags, 0x00000840) == 0x00000840) == true then --Hostile NPC - casterGUID = select(4, ...) - if allstates[casterGUID] then - allstates[casterGUID].show = true - allstates[casterGUID].changed = true - allstates[casterGUID].progressType = "static" - allstates[casterGUID].value = 1 - allstates[casterGUID].total = 1 - C_Timer.After(1.5, function() WeakAuras.ScanEvents("HIDE_ALLSTATES_CAST", casterGUID) end) - end - end - end - elseif e == "HIDE_ALLSTATES_CAST" then - local casterGUID = ... - if allstates[casterGUID] then - allstates[casterGUID].show = false - allstates[casterGUID].changed = true - return true - end - elseif e == "NAME_PLATE_UNIT_REMOVED" then - local u = ... - local uGUID = UnitGUID(u) - --print(uGUID, "nameplate removed") - if allstates[uGUID] then - aura_env.glow(u, 0) - end - elseif e == "NAME_PLATE_UNIT_ADDED" then - local u = ... - local uGUID = UnitGUID(u) - --print(uGUID, "nameplate added") - if allstates[uGUID] then - aura_env.glow(u, 1) - end - end - if scan == true then - for i = 1, 40 do - local unit = "nameplate" .. i - if UnitExists(unit) then - local unitGUID = UnitGUID(unit) - if unitGUID == casterGUID then - if se and (se == "SPELL_CAST_START" or se == "SPELL_CAST_SUCCESS") then - if UnitCastingInfo(unit) then - if aura_env.spells[spell] then - local _, _, _, texture, startTime, endTime = UnitCastingInfo(unit) - local remainingTime = math.floor(endTime - (GetTime() * 1000)) - local castTime = endTime - startTime - local castTimeDisplay = math.floor((castTime / 1000) * 10) / 10 - local castDisplay = math.floor((remainingTime / 1000) * 10) / 10 - local target = select(9, ...) - print(select(8, ...), select(9, ...), select(10, ...)) - --print(endTime / 1000, castTimeDisplay, GetTime()) - --print(unit) - --print("Adding", casterGUID, "to allstates") - if castTime > 1000 then - allstates[casterGUID] = { - changed = true, - show = true, - resort = true, - index = remainingTime, - icon = texture, - - progressType = "timed", - expirationTime = endTime / 1000, - duration = castTimeDisplay, - autoHide = true, - - name = caster, - spell = spell, - unitGUID = unitGUID, - castDisplay = castDisplay, - castTimeDisplay = castTimeDisplay, - unit = unit, - } - if aura_env.instructions[spell] ~= true then - allstates[casterGUID].instruction = aura_env.instructions[spell] - else - allstates[casterGUID].instruction = "" - end - end - end - end - elseif se == "SPELL_CAST_SUCCESS" then - if aura_env.spells[spell] then - if not allstates[casterGUID] then - allstates[casterGUID] = { - changed = true, - show = true, - resort = true, - index = 0, - icon = texture, - - progressType = "static", - value = 0, - total = 1, - - name = caster, - spell = spell, - unitGUID = unitGUID, - unit = unit, - } - if aura_env.instructions[spell] ~= true then - allstates[casterGUID].instruction = aura_env.instructions[spell] - else - allstates[casterGUID].instruction = "" - end - C_Timer.After(1, function() WeakAuras.ScanEvents("HIDE_ALLSTATES_CAST", casterGUID) end) - end - end - end - end - else - break - end - end - return true - end -end - ---[[ -DisplayText -Left: %total -Right: %castDisplay / %castTimeDisplay -]] - ---ON SHOW? -PlaySoundFile("Interface\\AddOns\\WeakAuras\\Media\\Sounds\\RobotBlip.ogg", "Master") -if aura_env.statee.unit then - aura_env.glow(aura_env.statee.unit, 1) -end - ---ON HIDE -if aura_env.statee.unit then - aura_env.glow(aura_env.statee.unit, 0) -end - ---INIT -aura_env.spells = { - --["Emblazoned Swipe"] = true, - ["Surge"] = true, - ["Stygian Blast"] = true, - ["Fragment of Despair"] = true, - ["Ruinous Strike"] = true, - ["Howling Dark "] = true, - - ["Dark Mending"] = true, - ["Sacrifice Soul"] = true, - ["Arrow Barrage"] = true, - ["Knife Dance"] = true, - ["Bonebreaking Strike"] = true, - ["Brutal Assault"] = true, - ["Indigestion"] = true, - ["Coup de Grace"] = true, - ["Raven's Dive"] = true, - - ["Shadow Wall"] = true, - ["Demonic Mending"] = true, - ["Devour Magic"] = true, - ["Shadow Wave"] = true, - ["Lumbering Crash"] = true, - ["Vile Roots"] = true, - ["Alluring Aroma"] = true, - ["Blistering Rain"] = true, - ["Floral Fulmination"] = true, - ["Throw Arcane Tome"] = true, - ["Throw Frost Tome"] = true, - ["Throw Silence Tome"] = true, - ["Summon Monstrosity"] = true, - ["Blinding Glare"] = true, - ["Stifling Satire"] = true, - ["Beguiling Biography"] = true, - ["Chaotic Energy"] = true, - - ["Hinder"] = true, - ["Quelling Strike"] = true, - ["Nightfall Orb"] = true, - ["Seal Magic"] = true, - ["Suppress"] = true, - ["Charging Station"] = true, - ["Bewitch"] = true, - ["Fel Detonation"] = true, - - ["Unnerving Screech"] = true, - ["Star Shower"] = true, - ["Maddening Roar"] = true, - ["Tormenting Eye"] = true, - - ["Storm"] = true, - ["Arc Lightning"] = true, - ["Mighty Slam"] = true, - ["Thundering Stomp"] = true, - ["Rejuvenating Waters"] = true, - ["Lightning Prod"] = true, - ["Restoration"] = true, - ["Polymorph: Fish"] = true, - - ["Etch"] = true, - ["Holy Radiance"] = true, - ["Cleansing Flames"] = true, - ["Unruly Yell"] = true, - - ["Soul Leech"] = true, - ["Terrifying Wail"] = true, - ["Pennies From Heaven"] = true, - ["Spotlight"] = true, --Kite away - ["Poetry Slam"] = true, --Interrupt - ["Final Curtainaw"] = true, --Run ay - ["Flashlight "] = true, --Face away - ["Shadow Rejuvenation"] = true, - ["Oath of Fealty"] = true, - - ["Unstable Energy"] = true, - ["Fel Bomb"] = true, - - ["Bone Chilling Scream"] = true, - ["Void Snap"] = true, - ["Brackwater Barrage"] = true, - ["Corrupted Bellow"] = true, - - ["Stone Gaze"] = true, - ["Piercing Shards"] = true, - ["Shatter"] = true, - ["Stone Bolt"] = true, - - ["Decimate"] = true, - ["Dread Screech"] = true, - ["Howling Dark"] = true, - ["Eternal Twilight"] = true, - ["Fragment of Despair"] = true, - - ["Prophecies of Doom"] = true, - ["Siphon Essence"] = true, - ["Torment"] = true, - ["Demonic Ascension"] = true, - ["Arcane Reconstitution"] = true, - ["Devour"] = true, - - ["Nightmares"] = true, - ["Unleash Fury"] = true, - ["Drain"] = true, - ["Scorching"] = true, - ["Meteor"] = true, - ["Detonate"] = true, - - ["Surge"] = true, - ["Stygian Blast"] = true, - ["Fragment of Despair"] = true, - ["Ruinous Strike"] = true, - ["Howling Dark"] = true, - ["Blood Assault"] = true, - ["Dread Screech"] = true, - ["Void Trap"] = true, - ["Ravaging Darkness"] = true, -} -aura_env.instructions = { - --["Emblazoned Swipe"] = "TEST", - - ["Dark Mending"] = "Interrupt", - ["Sacrifice Soul"] = true, - ["Arrow Barrage"] = true, - ["Knife Dance"] = true, - ["Bonebreaking Strike"] = "Dodge", - ["Brutal Assault"] = true, - ["Indigestion"] = true, - ["Coup de Grace"] = true, - ["Raven's Dive"] = "Dodge", - - ["Shadow Wall"] = true, - ["Demonic Mending"] = "Interrupt", - ["Devour Magic"] = true, - ["Shadow Wave"] = true, - ["Lumbering Crash"] = "Stun", - ["Vile Roots"] = true, - ["Alluring Aroma"] = "Stun", - ["Blistering Rain"] = "Stun", - ["Floral Fulmination"] = true, - ["Throw Arcane Tome"] = "Dodge", - ["Throw Frost Tome"] = "Dodge", - ["Throw Silence Tome"] = "Dodge", - ["Summon Monstrosity"] = "Stun/Kill", - ["Blinding Glare"] = "Face away", - ["Stifling Satire"] = true, - ["Beguiling Biography"] = true, - ["Chaotic Energy"] = true, - - ["Hinder"] = "Interrupt", - ["Quelling Strike"] = "Dodge", - ["Nightfall Orb"] = "Interrupt", - ["Seal Magic"] = "Interrupt", - ["Suppress"] = "Interrupt", - ["Charging Station"] = "Interrupt", - ["Bewitch"] = "Interrupt", - ["Fel Detonation"] = true, - - ["Unnerving Screech"] = "Interrupt", - ["Star Shower"] = "Interrupt", - ["Maddening Roar"] = true, - ["Tormenting Eye"] = true, - - ["Storm"] = "Interrupt", - ["Arc Lightning"] = "Interrupt", - ["Mighty Slam"] = "Stun", - ["Thundering Stomp"] = "Interrupt", - ["Rejuvenating Waters"] = "Interrupt", - ["Lightning Prod"] = "Interrupt", - ["Restoration"] = "Interrupt", - ["Polymorph: Fish"] = "Interrupt", - - ["Etch"] = "Interrupt", - ["Holy Radiance"] = "Interrupt", - ["Cleansing Flames"] = true, - ["Unruly Yell"] = "Interrupt", - - ["Soul Leech"] = "Interrupt", - ["Terrifying Wail"] = "Interrupt", - ["Pennies From Heaven"] = true, - ["Spotlight"] = "Move", --Kite away - ["Poetry Slam"] = "Interrupt", --Interrupt - ["Final Curtainaw"] = "Move", --Run ay - ["Flashlight "] = "Face away", --Face away - ["Shadow Rejuvenation"] = true, - ["Oath of Fealty"] = true, - - ["Unstable Energy"] = true, - ["Fel Bomb"] = "Soak", - - ["Bone Chilling Scream"] = "Interrupt", - ["Void Snap"] = "Interrupt", - ["Brackwater Barrage"] = "Dodge", - ["Corrupted Bellow"] = true, - - ["Stone Gaze"] = "Interrupt", - ["Piercing Shards"] = true, - ["Shatter"] = true, - ["Stone Bolt"] = "Interrupt", - - ["Decimate"] = true, - ["Dread Screech"] = true, - ["Howling Dark"] = true, - ["Eternal Twilight"] = true, - ["Fragment of Despair"] = true, - - ["Prophecies of Doom"] = "Stun", - ["Siphon Essence"] = true, - ["Torment"] = true, - ["Demonic Ascension"] = "Interrupt", - ["Arcane Reconstitution"] = true, - ["Devour"] = true, - - ["Nightmares"] = true, - ["Unleash Fury"] = true, - ["Drain"] = true, - ["Scorching"] = true, - ["Meteor"] = true, - ["Detonate"] = true, - - ["Surge"] = "Interrupt", - ["Stygian Blast"] = "Interrupt", - ["Fragment of Despair"] = "Soak", - ["Ruinous Strike"] = "Dodge", - ["Howling Dark"] = "Interrupt", - ["Blood Assault"] = "Stun", - ["Dread Screech"] = "Interrupt", - ["Void Trap"] = true, - ["Ravaging Darkness"] = true, -} -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 -end +--[[ +TODO: +Add interrupts / stuns / breaks by looking at friendly spells cast on the GUID's +Add support for default UI (!!!) +Mob deaths remove namepaltes, handle glow maybe? +Rework for GetSpellInfo instead of GetCastingInfo + if no namepalte found GetSpellinfo!!!!!! BIG IQ +Watch for damage on avengers instead of cast +]] + +--TSU +--COMBAT_LOG_EVENT_UNFILTERED HIDE_ALLSTATES_CAST NAME_PLATE_UNIT_REMOVED NAME_PLATE_UNIT_ADDED +function(allstates, e, ...) + local scan = false + local casterGUID, caster, spell, se, interrupted = false + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + se = select(2, ...) + if se == "SPELL_CAST_START" or se == "SPELL_CAST_SUCCESS" then + local casterFlags = select(6, ...) + if (bit.band(casterFlags, 0x00000840) == 0x00000840) == true then --Hostile NPC + casterGUID = select(4, ...) + caster = select(5, ...) + spell = select(13, ...) + scan = true + end + elseif e == "SPELL_CAST_FAILED" then + if (bit.band(casterFlags, 0x00000840) == 0x00000840) == true then --Hostile NPC + casterGUID = select(4, ...) + if allstates[casterGUID] then + allstates[casterGUID].show = true + allstates[casterGUID].changed = true + allstates[casterGUID].progressType = "static" + allstates[casterGUID].value = 1 + allstates[casterGUID].total = 1 + C_Timer.After(1.5, function() WeakAuras.ScanEvents("HIDE_ALLSTATES_CAST", casterGUID) end) + end + end + end + elseif e == "HIDE_ALLSTATES_CAST" then + local casterGUID = ... + if allstates[casterGUID] then + allstates[casterGUID].show = false + allstates[casterGUID].changed = true + return true + end + elseif e == "NAME_PLATE_UNIT_REMOVED" then + local u = ... + local uGUID = UnitGUID(u) + --print(uGUID, "nameplate removed") + if allstates[uGUID] then + aura_env.glow(u, 0) + end + elseif e == "NAME_PLATE_UNIT_ADDED" then + local u = ... + local uGUID = UnitGUID(u) + --print(uGUID, "nameplate added") + if allstates[uGUID] then + aura_env.glow(u, 1) + end + end + if scan == true then + for i = 1, 40 do + local unit = "nameplate" .. i + if UnitExists(unit) then + local unitGUID = UnitGUID(unit) + if unitGUID == casterGUID then + if se and (se == "SPELL_CAST_START" or se == "SPELL_CAST_SUCCESS") then + if UnitCastingInfo(unit) then + if aura_env.spells[spell] then + local _, _, _, texture, startTime, endTime = UnitCastingInfo(unit) + local remainingTime = math.floor(endTime - (GetTime() * 1000)) + local castTime = endTime - startTime + local castTimeDisplay = math.floor((castTime / 1000) * 10) / 10 + local castDisplay = math.floor((remainingTime / 1000) * 10) / 10 + local target = select(9, ...) + print(select(8, ...), select(9, ...), select(10, ...)) + --print(endTime / 1000, castTimeDisplay, GetTime()) + --print(unit) + --print("Adding", casterGUID, "to allstates") + if castTime > 1000 then + allstates[casterGUID] = { + changed = true, + show = true, + resort = true, + index = remainingTime, + icon = texture, + + progressType = "timed", + expirationTime = endTime / 1000, + duration = castTimeDisplay, + autoHide = true, + + name = caster, + spell = spell, + unitGUID = unitGUID, + castDisplay = castDisplay, + castTimeDisplay = castTimeDisplay, + unit = unit, + } + if aura_env.instructions[spell] ~= true then + allstates[casterGUID].instruction = aura_env.instructions[spell] + else + allstates[casterGUID].instruction = "" + end + end + end + end + elseif se == "SPELL_CAST_SUCCESS" then + if aura_env.spells[spell] then + if not allstates[casterGUID] then + allstates[casterGUID] = { + changed = true, + show = true, + resort = true, + index = 0, + icon = texture, + + progressType = "static", + value = 0, + total = 1, + + name = caster, + spell = spell, + unitGUID = unitGUID, + unit = unit, + } + if aura_env.instructions[spell] ~= true then + allstates[casterGUID].instruction = aura_env.instructions[spell] + else + allstates[casterGUID].instruction = "" + end + C_Timer.After(1, function() WeakAuras.ScanEvents("HIDE_ALLSTATES_CAST", casterGUID) end) + end + end + end + end + else + break + end + end + return true + end +end + +--[[ +DisplayText +Left: %total +Right: %castDisplay / %castTimeDisplay +]] + +--ON SHOW? +PlaySoundFile("Interface\\AddOns\\WeakAuras\\Media\\Sounds\\RobotBlip.ogg", "Master") +if aura_env.statee.unit then + aura_env.glow(aura_env.statee.unit, 1) +end + +--ON HIDE +if aura_env.statee.unit then + aura_env.glow(aura_env.statee.unit, 0) +end + +--INIT +aura_env.spells = { + --["Emblazoned Swipe"] = true, + ["Surge"] = true, + ["Stygian Blast"] = true, + ["Fragment of Despair"] = true, + ["Ruinous Strike"] = true, + ["Howling Dark "] = true, + + ["Dark Mending"] = true, + ["Sacrifice Soul"] = true, + ["Arrow Barrage"] = true, + ["Knife Dance"] = true, + ["Bonebreaking Strike"] = true, + ["Brutal Assault"] = true, + ["Indigestion"] = true, + ["Coup de Grace"] = true, + ["Raven's Dive"] = true, + + ["Shadow Wall"] = true, + ["Demonic Mending"] = true, + ["Devour Magic"] = true, + ["Shadow Wave"] = true, + ["Lumbering Crash"] = true, + ["Vile Roots"] = true, + ["Alluring Aroma"] = true, + ["Blistering Rain"] = true, + ["Floral Fulmination"] = true, + ["Throw Arcane Tome"] = true, + ["Throw Frost Tome"] = true, + ["Throw Silence Tome"] = true, + ["Summon Monstrosity"] = true, + ["Blinding Glare"] = true, + ["Stifling Satire"] = true, + ["Beguiling Biography"] = true, + ["Chaotic Energy"] = true, + + ["Hinder"] = true, + ["Quelling Strike"] = true, + ["Nightfall Orb"] = true, + ["Seal Magic"] = true, + ["Suppress"] = true, + ["Charging Station"] = true, + ["Bewitch"] = true, + ["Fel Detonation"] = true, + + ["Unnerving Screech"] = true, + ["Star Shower"] = true, + ["Maddening Roar"] = true, + ["Tormenting Eye"] = true, + + ["Storm"] = true, + ["Arc Lightning"] = true, + ["Mighty Slam"] = true, + ["Thundering Stomp"] = true, + ["Rejuvenating Waters"] = true, + ["Lightning Prod"] = true, + ["Restoration"] = true, + ["Polymorph: Fish"] = true, + + ["Etch"] = true, + ["Holy Radiance"] = true, + ["Cleansing Flames"] = true, + ["Unruly Yell"] = true, + + ["Soul Leech"] = true, + ["Terrifying Wail"] = true, + ["Pennies From Heaven"] = true, + ["Spotlight"] = true, --Kite away + ["Poetry Slam"] = true, --Interrupt + ["Final Curtainaw"] = true, --Run ay + ["Flashlight "] = true, --Face away + ["Shadow Rejuvenation"] = true, + ["Oath of Fealty"] = true, + + ["Unstable Energy"] = true, + ["Fel Bomb"] = true, + + ["Bone Chilling Scream"] = true, + ["Void Snap"] = true, + ["Brackwater Barrage"] = true, + ["Corrupted Bellow"] = true, + + ["Stone Gaze"] = true, + ["Piercing Shards"] = true, + ["Shatter"] = true, + ["Stone Bolt"] = true, + + ["Decimate"] = true, + ["Dread Screech"] = true, + ["Howling Dark"] = true, + ["Eternal Twilight"] = true, + ["Fragment of Despair"] = true, + + ["Prophecies of Doom"] = true, + ["Siphon Essence"] = true, + ["Torment"] = true, + ["Demonic Ascension"] = true, + ["Arcane Reconstitution"] = true, + ["Devour"] = true, + + ["Nightmares"] = true, + ["Unleash Fury"] = true, + ["Drain"] = true, + ["Scorching"] = true, + ["Meteor"] = true, + ["Detonate"] = true, + + ["Surge"] = true, + ["Stygian Blast"] = true, + ["Fragment of Despair"] = true, + ["Ruinous Strike"] = true, + ["Howling Dark"] = true, + ["Blood Assault"] = true, + ["Dread Screech"] = true, + ["Void Trap"] = true, + ["Ravaging Darkness"] = true, +} +aura_env.instructions = { + --["Emblazoned Swipe"] = "TEST", + + ["Dark Mending"] = "Interrupt", + ["Sacrifice Soul"] = true, + ["Arrow Barrage"] = true, + ["Knife Dance"] = true, + ["Bonebreaking Strike"] = "Dodge", + ["Brutal Assault"] = true, + ["Indigestion"] = true, + ["Coup de Grace"] = true, + ["Raven's Dive"] = "Dodge", + + ["Shadow Wall"] = true, + ["Demonic Mending"] = "Interrupt", + ["Devour Magic"] = true, + ["Shadow Wave"] = true, + ["Lumbering Crash"] = "Stun", + ["Vile Roots"] = true, + ["Alluring Aroma"] = "Stun", + ["Blistering Rain"] = "Stun", + ["Floral Fulmination"] = true, + ["Throw Arcane Tome"] = "Dodge", + ["Throw Frost Tome"] = "Dodge", + ["Throw Silence Tome"] = "Dodge", + ["Summon Monstrosity"] = "Stun/Kill", + ["Blinding Glare"] = "Face away", + ["Stifling Satire"] = true, + ["Beguiling Biography"] = true, + ["Chaotic Energy"] = true, + + ["Hinder"] = "Interrupt", + ["Quelling Strike"] = "Dodge", + ["Nightfall Orb"] = "Interrupt", + ["Seal Magic"] = "Interrupt", + ["Suppress"] = "Interrupt", + ["Charging Station"] = "Interrupt", + ["Bewitch"] = "Interrupt", + ["Fel Detonation"] = true, + + ["Unnerving Screech"] = "Interrupt", + ["Star Shower"] = "Interrupt", + ["Maddening Roar"] = true, + ["Tormenting Eye"] = true, + + ["Storm"] = "Interrupt", + ["Arc Lightning"] = "Interrupt", + ["Mighty Slam"] = "Stun", + ["Thundering Stomp"] = "Interrupt", + ["Rejuvenating Waters"] = "Interrupt", + ["Lightning Prod"] = "Interrupt", + ["Restoration"] = "Interrupt", + ["Polymorph: Fish"] = "Interrupt", + + ["Etch"] = "Interrupt", + ["Holy Radiance"] = "Interrupt", + ["Cleansing Flames"] = true, + ["Unruly Yell"] = "Interrupt", + + ["Soul Leech"] = "Interrupt", + ["Terrifying Wail"] = "Interrupt", + ["Pennies From Heaven"] = true, + ["Spotlight"] = "Move", --Kite away + ["Poetry Slam"] = "Interrupt", --Interrupt + ["Final Curtainaw"] = "Move", --Run ay + ["Flashlight "] = "Face away", --Face away + ["Shadow Rejuvenation"] = true, + ["Oath of Fealty"] = true, + + ["Unstable Energy"] = true, + ["Fel Bomb"] = "Soak", + + ["Bone Chilling Scream"] = "Interrupt", + ["Void Snap"] = "Interrupt", + ["Brackwater Barrage"] = "Dodge", + ["Corrupted Bellow"] = true, + + ["Stone Gaze"] = "Interrupt", + ["Piercing Shards"] = true, + ["Shatter"] = true, + ["Stone Bolt"] = "Interrupt", + + ["Decimate"] = true, + ["Dread Screech"] = true, + ["Howling Dark"] = true, + ["Eternal Twilight"] = true, + ["Fragment of Despair"] = true, + + ["Prophecies of Doom"] = "Stun", + ["Siphon Essence"] = true, + ["Torment"] = true, + ["Demonic Ascension"] = "Interrupt", + ["Arcane Reconstitution"] = true, + ["Devour"] = true, + + ["Nightmares"] = true, + ["Unleash Fury"] = true, + ["Drain"] = true, + ["Scorching"] = true, + ["Meteor"] = true, + ["Detonate"] = true, + + ["Surge"] = "Interrupt", + ["Stygian Blast"] = "Interrupt", + ["Fragment of Despair"] = "Soak", + ["Ruinous Strike"] = "Dodge", + ["Howling Dark"] = "Interrupt", + ["Blood Assault"] = "Stun", + ["Dread Screech"] = "Interrupt", + ["Void Trap"] = true, + ["Ravaging Darkness"] = true, +} +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 +end diff --git a/WIP/Tank Stack Alerts(UNTESTED).lua b/WeakAuras/Projects/Tank Stack Alerts(UNTESTED).lua similarity index 95% rename from WIP/Tank Stack Alerts(UNTESTED).lua rename to WeakAuras/Projects/Tank Stack Alerts(UNTESTED).lua index f9857cb..bb173da 100644 --- a/WIP/Tank Stack Alerts(UNTESTED).lua +++ b/WeakAuras/Projects/Tank Stack Alerts(UNTESTED).lua @@ -1,76 +1,76 @@ ---DISPLAY -function() - return aura_env.stacks -end - ---EVERY FRAME TRIGGER -function() - if aura_env.tank ~= "" then - for k,v in pairs(aura_env.spells) do - if UnitDebuff("target", k) ~= nil then - local _,_,_,stacks,_,dur,exptime = UnitDebuff("target", k) - if v > 1 and stacks > v then - aura_env.stacks = stacks - aura_env.exptime = exptime - aura_env.dur = dur - return true - end - if v == 1 then - aura_env.exptime = exptime - aura_env.dur = dur - return true - end - if v == 0 then - local _,_,starttime,exptime = UnitCastingInfo("boss1") - aura_env.exptime = exptime - aura_env.dur = exptime - starttime - return true - end - end - end - end -end - ---GROUP_ROSTER_UPDATE -function() - aura_env.tank = "" - for i = 1, GetNumGroupMembers() do --Find other tank - if UnitGroupRolesAssigned("raid" .. i) == "TANK" and UnitName("raid" .. i) ~= UnitName("player") then - aura_env.tank = UnitName("raid" .. i) - print(aura_env.tank, i) - end - end -end - ---DURATION TRIGGER -function() - print(aura_env.dur, aura_env.exptime) - return aura_env.dur, aura_env.exptime, 1 -end - ---INIT -aura_env.tank = "" -aura_env.stacks = 0 -aura_env.exptime = 0 -aura_env.spells = -{ - --NH - ["Arcane Slash"] = 2, - ["Annihilate"] = 2, - ["Feast of Blood"] = 1, - ["Recursive Strikes"] = 7, - ["Gravitational Pull"] = 1, - ["Ablating Explosion"] = 1, - ["Bonds of Fel"] = 0, - ["Empowered Bonds of Fel"] = 0, - --ToS - ["Burning Armor"] = 1, - ["Jagged Abrasion"] = 5, - ["Judgment of Light"] = 1, -} -for i = 1, GetNumGroupMembers() do --Find other tank - if UnitGroupRolesAssigned("raid" .. i) == "TANK" and UnitName("raid" .. i) ~= UnitName("player") then - aura_env.tank = UnitName("raid" .. i) - print(aura_env.tank, i) - end +--DISPLAY +function() + return aura_env.stacks +end + +--EVERY FRAME TRIGGER +function() + if aura_env.tank ~= "" then + for k,v in pairs(aura_env.spells) do + if UnitDebuff("target", k) ~= nil then + local _,_,_,stacks,_,dur,exptime = UnitDebuff("target", k) + if v > 1 and stacks > v then + aura_env.stacks = stacks + aura_env.exptime = exptime + aura_env.dur = dur + return true + end + if v == 1 then + aura_env.exptime = exptime + aura_env.dur = dur + return true + end + if v == 0 then + local _,_,starttime,exptime = UnitCastingInfo("boss1") + aura_env.exptime = exptime + aura_env.dur = exptime - starttime + return true + end + end + end + end +end + +--GROUP_ROSTER_UPDATE +function() + aura_env.tank = "" + for i = 1, GetNumGroupMembers() do --Find other tank + if UnitGroupRolesAssigned("raid" .. i) == "TANK" and UnitName("raid" .. i) ~= UnitName("player") then + aura_env.tank = UnitName("raid" .. i) + print(aura_env.tank, i) + end + end +end + +--DURATION TRIGGER +function() + print(aura_env.dur, aura_env.exptime) + return aura_env.dur, aura_env.exptime, 1 +end + +--INIT +aura_env.tank = "" +aura_env.stacks = 0 +aura_env.exptime = 0 +aura_env.spells = +{ + --NH + ["Arcane Slash"] = 2, + ["Annihilate"] = 2, + ["Feast of Blood"] = 1, + ["Recursive Strikes"] = 7, + ["Gravitational Pull"] = 1, + ["Ablating Explosion"] = 1, + ["Bonds of Fel"] = 0, + ["Empowered Bonds of Fel"] = 0, + --ToS + ["Burning Armor"] = 1, + ["Jagged Abrasion"] = 5, + ["Judgment of Light"] = 1, +} +for i = 1, GetNumGroupMembers() do --Find other tank + if UnitGroupRolesAssigned("raid" .. i) == "TANK" and UnitName("raid" .. i) ~= UnitName("player") then + aura_env.tank = UnitName("raid" .. i) + print(aura_env.tank, i) + end end \ No newline at end of file diff --git a/Complete Projects/Legion/Target TTD.lua b/WeakAuras/Projects/Target TTD.lua similarity index 96% rename from Complete Projects/Legion/Target TTD.lua rename to WeakAuras/Projects/Target TTD.lua index ccb8bd0..3270439 100644 --- a/Complete Projects/Legion/Target TTD.lua +++ b/WeakAuras/Projects/Target TTD.lua @@ -1,43 +1,43 @@ ---GAVE UP ---COMBAT_LOG_EVENT_UNFILTERED -function(e, ...) - local se = select(2, ...) - if se and (se == "SPELL_DAMAGE" or se == "SPELL_PERIODIC_DAMAGE" or se == "SWING_DAMAGE") then - local targetguid = select(8, ...) - local hit = select(15, ...) - if se == "SWING_DAMAGE" then - hit = select(12, ...) - end - if targetguid and hit and targetguid == UnitGUID("target") then - aura_env.hitTable[#aura_env.hitTable + 1] = hit - aura_env.hitTimerTable[#aura_env.hitTimerTable + 1] = debugprofilestop() - end - end - return true -end - ---DISPLAY -function() - local totalDamage = 0 - if UnitExists("target") then - local thp, tmhp = UnitHealth("target"), UnitHealthMax("target") - for k, v in ipairs(aura_env.hitTable) do - totalDamage = totalDamage + v - end - return thp / (totalDamage / aura_env.lifespan) - end -end - ---EVERY_FRAME -function() - if aura_env.hitTimerTable[1] and debugprofilestop() - aura_env.hitTimerTable[1] > aura_env.lifespan then - table.remove(aura_env.hitTimerTable, 1) - table.remove(aura_env.hitTable, 1) - return true - end -end - ---INIT -aura_env.hitTable = {} -aura_env.hitTimerTable = {} -aura_env.lifespan = 5000 +--GAVE UP +--COMBAT_LOG_EVENT_UNFILTERED +function(e, ...) + local se = select(2, ...) + if se and (se == "SPELL_DAMAGE" or se == "SPELL_PERIODIC_DAMAGE" or se == "SWING_DAMAGE") then + local targetguid = select(8, ...) + local hit = select(15, ...) + if se == "SWING_DAMAGE" then + hit = select(12, ...) + end + if targetguid and hit and targetguid == UnitGUID("target") then + aura_env.hitTable[#aura_env.hitTable + 1] = hit + aura_env.hitTimerTable[#aura_env.hitTimerTable + 1] = debugprofilestop() + end + end + return true +end + +--DISPLAY +function() + local totalDamage = 0 + if UnitExists("target") then + local thp, tmhp = UnitHealth("target"), UnitHealthMax("target") + for k, v in ipairs(aura_env.hitTable) do + totalDamage = totalDamage + v + end + return thp / (totalDamage / aura_env.lifespan) + end +end + +--EVERY_FRAME +function() + if aura_env.hitTimerTable[1] and debugprofilestop() - aura_env.hitTimerTable[1] > aura_env.lifespan then + table.remove(aura_env.hitTimerTable, 1) + table.remove(aura_env.hitTable, 1) + return true + end +end + +--INIT +aura_env.hitTable = {} +aura_env.hitTimerTable = {} +aura_env.lifespan = 5000 diff --git a/Complete Projects/Legion/Taunt God.lua b/WeakAuras/Projects/Taunt God.lua similarity index 98% rename from Complete Projects/Legion/Taunt God.lua rename to WeakAuras/Projects/Taunt God.lua index a86e878..888de24 100644 --- a/Complete Projects/Legion/Taunt God.lua +++ b/WeakAuras/Projects/Taunt God.lua @@ -1,60 +1,60 @@ ---COMBAT_LOG_EVENT_UNFILTERED UPDATE_TAUNT_GOD -function(...) - local e = select(1, ...) - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - local spellName = select(14, ...) - if (spellName == "Taunt" - or spellName == "Provoke" - or spellName == "Dark Command" - or spellName == "Torment" - or spellName == "Hand of Reckoning" - or spellName == "Growl") - and subEvent == "SPELL_CAST_SUCCESS" then - local target = select(10, ...) - local source = select(6, ...) - local subEvent = select(3, ...) - aura_env.spellName = spellName - aura_env.caster = source - aura_env.target = target - aura_env.cast_time = GetTime() - if aura_env.ticker then aura_env.ticker:Cancel() end - if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(1, function() WeakAuras.ScanEvents("UPDATE_TAUNT_GOD") end) - return true - else - return false - end - end - elseif e == "UPDATE_TAUNT_GOD" then - return true - end -end - ---DISPLAY -function() - local source_class = UnitClass(aura_env.caster) - local source_class_color = "|cFFFFFFFF" - local time_color = "|cFFFFFFFF" - local target_color = "|cFFFFFFFF" - if aura_env.spellName == "Taunt" - or aura_env.spellName == "Provoke" - or aura_env.spellName == "Hand of Reckoning" - or aura_env.spellName == "Dark Command" - or aura_env.spellName == "Torment" - or aura_env.spellName == "Growl" - then cooldown_time = aura_env.cast_time + 8 else cooldown_time = 0 end - if (cooldown_time / GetTime()) < 1 then time_color = "|cFF00FF00" else time_color = "|cFFFF0000" end - if source_class == "Death Knight" then source_class_color = "|cFFC41F3B" - elseif source_class == "Demon Hunter" then source_class_color = "|cFFA330C9" - elseif source_class == "Druid" then source_class_color = "|cFFFF7D0A" - elseif source_class == "Hunter" then source_class_color = "|cFFABD473" - elseif source_class == "Mage" then source_class_color = "|cFF40C7EB" - elseif source_class == "Monk" then source_class_color = "|cFF00FF96" - elseif source_class == "Paladin" then source_class_color = "|cFFF58CBA" - elseif source_class == "Priest" then source_class_color = "|cFFFFFFFF" - elseif source_class == "Rogue" then source_class_color = "|cFFFFF569" - elseif source_class == "Shaman" then source_class_color = "|cFF0070DE" - elseif source_class == "Warlock" then source_class_color = "|cFF8787ED" - elseif source_class == "Warrior" then source_class_color = "|cFFC79C6E" end - if aura_env.target == UnitName("target") then target_color = "|cFF00FF00" else target_color = "|cFFFF0000" end - return source_class_color .. aura_env.caster .. "\n" .. target_color .. aura_env.target .. "\n" .. source_class_color .. aura_env.spellName .. "\n" .. time_color .. math.floor(GetTime() - aura_env.cast_time) -end +--COMBAT_LOG_EVENT_UNFILTERED UPDATE_TAUNT_GOD +function(...) + local e = select(1, ...) + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + local spellName = select(14, ...) + if (spellName == "Taunt" + or spellName == "Provoke" + or spellName == "Dark Command" + or spellName == "Torment" + or spellName == "Hand of Reckoning" + or spellName == "Growl") + and subEvent == "SPELL_CAST_SUCCESS" then + local target = select(10, ...) + local source = select(6, ...) + local subEvent = select(3, ...) + aura_env.spellName = spellName + aura_env.caster = source + aura_env.target = target + aura_env.cast_time = GetTime() + if aura_env.ticker then aura_env.ticker:Cancel() end + if not aura_env.ticker then aura_env.ticker = C_Timer.NewTicker(1, function() WeakAuras.ScanEvents("UPDATE_TAUNT_GOD") end) + return true + else + return false + end + end + elseif e == "UPDATE_TAUNT_GOD" then + return true + end +end + +--DISPLAY +function() + local source_class = UnitClass(aura_env.caster) + local source_class_color = "|cFFFFFFFF" + local time_color = "|cFFFFFFFF" + local target_color = "|cFFFFFFFF" + if aura_env.spellName == "Taunt" + or aura_env.spellName == "Provoke" + or aura_env.spellName == "Hand of Reckoning" + or aura_env.spellName == "Dark Command" + or aura_env.spellName == "Torment" + or aura_env.spellName == "Growl" + then cooldown_time = aura_env.cast_time + 8 else cooldown_time = 0 end + if (cooldown_time / GetTime()) < 1 then time_color = "|cFF00FF00" else time_color = "|cFFFF0000" end + if source_class == "Death Knight" then source_class_color = "|cFFC41F3B" + elseif source_class == "Demon Hunter" then source_class_color = "|cFFA330C9" + elseif source_class == "Druid" then source_class_color = "|cFFFF7D0A" + elseif source_class == "Hunter" then source_class_color = "|cFFABD473" + elseif source_class == "Mage" then source_class_color = "|cFF40C7EB" + elseif source_class == "Monk" then source_class_color = "|cFF00FF96" + elseif source_class == "Paladin" then source_class_color = "|cFFF58CBA" + elseif source_class == "Priest" then source_class_color = "|cFFFFFFFF" + elseif source_class == "Rogue" then source_class_color = "|cFFFFF569" + elseif source_class == "Shaman" then source_class_color = "|cFF0070DE" + elseif source_class == "Warlock" then source_class_color = "|cFF8787ED" + elseif source_class == "Warrior" then source_class_color = "|cFFC79C6E" end + if aura_env.target == UnitName("target") then target_color = "|cFF00FF00" else target_color = "|cFFFF0000" end + return source_class_color .. aura_env.caster .. "\n" .. target_color .. aura_env.target .. "\n" .. source_class_color .. aura_env.spellName .. "\n" .. time_color .. math.floor(GetTime() - aura_env.cast_time) +end diff --git a/Complete Projects/Legion/Taunt.lua b/WeakAuras/Projects/Taunt.lua similarity index 97% rename from Complete Projects/Legion/Taunt.lua rename to WeakAuras/Projects/Taunt.lua index 72ef528..88c304e 100644 --- a/Complete Projects/Legion/Taunt.lua +++ b/WeakAuras/Projects/Taunt.lua @@ -1,58 +1,58 @@ -COMBAT_LOG_EVENT_UNFILTERED -function(...) - local spellName = select(14, ...) - local target = select(10, ...) - local source = select(6, ...) - local subEvent = select(3, ...) - if (spellName == "Taunt" - or spellName == "Provoke" - or spellName == "Dark Command" - or spellName == "Torment" - or spellName == "Hand of Reckoning" - or spellName == "Growl") - and subEvent == "SPELL_CAST_SUCCESS" then - aura_env.spellName = spellName - aura_env.caster = source - aura_env.target = target - aura_env.cast_time = GetTime() - return true - else - return false - end -end - -DISPLAY -function() - local source_class = UnitClass(aura_env.caster) - local source_class_color = "|cFFFFFFFF" - local time_color = "|cFFFFFFFF" - local target_color = "|cFFFFFFFF" - if aura_env.spellName == "Taunt" - or aura_env.spellName == "Provoke" - or aura_env.spellName == "Hand of Reckoning" - or aura_env.spellName == "Dark Command" - or aura_env.spellName == "Torment" - or aura_env.spellName == "Growl" - then cooldown_time = aura_env.cast_time + 8 end - if (cooldown_time / GetTime()) < 1 then time_color = "|cFF00FF00" else time_color = "|cFFFF0000" end - if source_class == "Death Knight" then source_class_color = "|cFFC41F3B" - elseif source_class == "Demon Hunter" then source_class_color = "|cFFA330C9" - elseif source_class == "Druid" then source_class_color = "|cFFFF7D0A" - elseif source_class == "Hunter" then source_class_color = "|cFFABD473" - elseif source_class == "Mage" then source_class_color = "|cFF40C7EB" - elseif source_class == "Monk" then source_class_color = "|cFF00FF96" - elseif source_class == "Paladin" then source_class_color = "|cFFF58CBA" - elseif source_class == "Priest" then source_class_color = "|cFFFFFFFF" - elseif source_class == "Rogue" then source_class_color = "|cFFFFF569" - elseif source_class == "Shaman" then source_class_color = "|cFF0070DE" - elseif source_class == "Warlock" then source_class_color = "|cFF8787ED" - elseif source_class == "Warrior" then source_class_color = "|cFFC79C6E" end - if aura_env.target == UnitName("target") then target_color = "|cFF00FF00" else target_color = "|cFFFF0000" end - return "|cFF0000FF------------------------------- \n" .. source_class_color .. aura_env.caster .. "\n" .. target_color .. aura_env.target .. "\n" .. source_class_color .. aura_env.spellName .. "\n" .. time_color .. math.floor(GetTime() - aura_env.cast_time) .. "\n|cFF0000FF-------------------------------" -end - -INIT -aura_env.target = "" -aura_env.cast_time = 0 -aura_env.spellName = "" -aura_env.caster = "" +COMBAT_LOG_EVENT_UNFILTERED +function(...) + local spellName = select(14, ...) + local target = select(10, ...) + local source = select(6, ...) + local subEvent = select(3, ...) + if (spellName == "Taunt" + or spellName == "Provoke" + or spellName == "Dark Command" + or spellName == "Torment" + or spellName == "Hand of Reckoning" + or spellName == "Growl") + and subEvent == "SPELL_CAST_SUCCESS" then + aura_env.spellName = spellName + aura_env.caster = source + aura_env.target = target + aura_env.cast_time = GetTime() + return true + else + return false + end +end + +DISPLAY +function() + local source_class = UnitClass(aura_env.caster) + local source_class_color = "|cFFFFFFFF" + local time_color = "|cFFFFFFFF" + local target_color = "|cFFFFFFFF" + if aura_env.spellName == "Taunt" + or aura_env.spellName == "Provoke" + or aura_env.spellName == "Hand of Reckoning" + or aura_env.spellName == "Dark Command" + or aura_env.spellName == "Torment" + or aura_env.spellName == "Growl" + then cooldown_time = aura_env.cast_time + 8 end + if (cooldown_time / GetTime()) < 1 then time_color = "|cFF00FF00" else time_color = "|cFFFF0000" end + if source_class == "Death Knight" then source_class_color = "|cFFC41F3B" + elseif source_class == "Demon Hunter" then source_class_color = "|cFFA330C9" + elseif source_class == "Druid" then source_class_color = "|cFFFF7D0A" + elseif source_class == "Hunter" then source_class_color = "|cFFABD473" + elseif source_class == "Mage" then source_class_color = "|cFF40C7EB" + elseif source_class == "Monk" then source_class_color = "|cFF00FF96" + elseif source_class == "Paladin" then source_class_color = "|cFFF58CBA" + elseif source_class == "Priest" then source_class_color = "|cFFFFFFFF" + elseif source_class == "Rogue" then source_class_color = "|cFFFFF569" + elseif source_class == "Shaman" then source_class_color = "|cFF0070DE" + elseif source_class == "Warlock" then source_class_color = "|cFF8787ED" + elseif source_class == "Warrior" then source_class_color = "|cFFC79C6E" end + if aura_env.target == UnitName("target") then target_color = "|cFF00FF00" else target_color = "|cFFFF0000" end + return "|cFF0000FF------------------------------- \n" .. source_class_color .. aura_env.caster .. "\n" .. target_color .. aura_env.target .. "\n" .. source_class_color .. aura_env.spellName .. "\n" .. time_color .. math.floor(GetTime() - aura_env.cast_time) .. "\n|cFF0000FF-------------------------------" +end + +INIT +aura_env.target = "" +aura_env.cast_time = 0 +aura_env.spellName = "" +aura_env.caster = "" diff --git a/Complete Projects/Legion/Titanguard.lua b/WeakAuras/Projects/Titanguard.lua similarity index 96% rename from Complete Projects/Legion/Titanguard.lua rename to WeakAuras/Projects/Titanguard.lua index c05504b..f9cb0ee 100644 --- a/Complete Projects/Legion/Titanguard.lua +++ b/WeakAuras/Projects/Titanguard.lua @@ -1,86 +1,86 @@ ---COMBAT_LOG_EVENT_UNFILTERED -function(e, ...) - local se = select(2, ...) - if se == "SPELL_AURA_APPLIED" then - local caster, target, buff = select(5, ...), select(9, ...), select(13, ...) - if caster == UnitName("player") and target == UnitName("player") and buff == "Bulwark of Flame" then - WeakAuras.ScanEvents("FUCKAGE_BEGIN") - C_Timer.After(3, function() WeakAuras.ScanEvents("FUCKAGE_STOP") end) - end - end -end - ---FUCKAGE_BEGIN FUCKAGE_STOP -function(e) - if e == "FUCKAGE_BEGIN" then - aura_env.fuckage = 1 - if UnitBuff("player", "Bulwark of Flame") then - local absorb = select(17, UnitBuff("player", "Bulwark of Flame")) - absorb = tonumber(absorb) - aura_env.maxAbsorb = absorb - end - elseif e == "FUCKAGE_STOP" then - aura_env.fuckage = 0 - end -end - ---EVERY FRAME TRIGGER -function() - if aura_env.fuckage == 1 then - return true - else - return false - end -end - ---EVERY FRAME DURATION -function() - if aura_env.fuckage == 1 then - if UnitBuff("player", "Bulwark of Flame") then - local absorb = select(17, UnitBuff("player", "Bulwark of Flame")) - absorb = tonumber(absorb) - if absorb > aura_env.maxAbsorb then - aura_env.maxAbsorb = absorb - end - aura_env.absorb = absorb - return absorb, aura_env.maxAbsorb, 1 - end - else - return 0, 0, 0 - end -end - ---NAME INFO -function() - return aura_env.shorten(aura_env.maxAbsorb) -end - ---STACKS -function() - return aura_env.shorten(aura_env.absorb) -end - ---INIT -aura_env.maxAbsorb = 0 -aura_env.fuckage = 0 -aura_env.absorb = 0 -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 -end +--COMBAT_LOG_EVENT_UNFILTERED +function(e, ...) + local se = select(2, ...) + if se == "SPELL_AURA_APPLIED" then + local caster, target, buff = select(5, ...), select(9, ...), select(13, ...) + if caster == UnitName("player") and target == UnitName("player") and buff == "Bulwark of Flame" then + WeakAuras.ScanEvents("FUCKAGE_BEGIN") + C_Timer.After(3, function() WeakAuras.ScanEvents("FUCKAGE_STOP") end) + end + end +end + +--FUCKAGE_BEGIN FUCKAGE_STOP +function(e) + if e == "FUCKAGE_BEGIN" then + aura_env.fuckage = 1 + if UnitBuff("player", "Bulwark of Flame") then + local absorb = select(17, UnitBuff("player", "Bulwark of Flame")) + absorb = tonumber(absorb) + aura_env.maxAbsorb = absorb + end + elseif e == "FUCKAGE_STOP" then + aura_env.fuckage = 0 + end +end + +--EVERY FRAME TRIGGER +function() + if aura_env.fuckage == 1 then + return true + else + return false + end +end + +--EVERY FRAME DURATION +function() + if aura_env.fuckage == 1 then + if UnitBuff("player", "Bulwark of Flame") then + local absorb = select(17, UnitBuff("player", "Bulwark of Flame")) + absorb = tonumber(absorb) + if absorb > aura_env.maxAbsorb then + aura_env.maxAbsorb = absorb + end + aura_env.absorb = absorb + return absorb, aura_env.maxAbsorb, 1 + end + else + return 0, 0, 0 + end +end + +--NAME INFO +function() + return aura_env.shorten(aura_env.maxAbsorb) +end + +--STACKS +function() + return aura_env.shorten(aura_env.absorb) +end + +--INIT +aura_env.maxAbsorb = 0 +aura_env.fuckage = 0 +aura_env.absorb = 0 +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 +end diff --git a/WIP/ToDissect.lua b/WeakAuras/Projects/ToDissect.lua similarity index 97% rename from WIP/ToDissect.lua rename to WeakAuras/Projects/ToDissect.lua index c76cc77..2b6fe2f 100644 --- a/WIP/ToDissect.lua +++ b/WeakAuras/Projects/ToDissect.lua @@ -1,564 +1,564 @@ -if select(2, UnitClass("player")) ~= "DRUID" then return end -local damageTable = {} -local updateInterval = 0.1 -local eventIndex = 0 -local playerGUID -local timeElapsed = 0 -local damageTP5S = 0 -local idFR = 22842 -local anouncedHealing = 0 - -local lowTransparency = 0.7 -local mediumTransparency = 0.5 -local highTransparency = 0.3 - -settingsFR = {} - -local frenzyRegenFrame = CreateFrame("Frame", "frenzyRegenFrame", UIParent) -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 }, -}) -frenzyRegenFrame:SetBackdropColor(0, 0, 0, 0.4) -frenzyRegenFrame:SetBackdropBorderColor(0, 0, 0, 1) - -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_ENABLED") -frenzyRegenFrame:RegisterEvent("ARTIFACT_UPDATE") -frenzyRegenFrame:RegisterEvent("PET_BATTLE_CLOSE") -frenzyRegenFrame:RegisterEvent("PET_BATTLE_OPENING_START") - -frenzyRegenFrame:EnableMouse(true) -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() -end) - -frenzyRegenFrame.damageTakenBar = CreateFrame("StatusBar", nil, frenzyRegenFrame) -frenzyRegenFrame.damageTakenBar:SetPoint("TOPLEFT", 3, -3) -frenzyRegenFrame.damageTakenBar:SetPoint("TOPRIGHT", -3, -3) -frenzyRegenFrame.damageTakenBar:SetHeight(20) -frenzyRegenFrame.damageTakenBar:SetStatusBarTexture("Interface\\TargetingFrame\\UI-StatusBar") -frenzyRegenFrame.damageTakenBar:GetStatusBarTexture():SetHorizTile(false) -frenzyRegenFrame.damageTakenBar:GetStatusBarTexture():SetVertTile(false) -frenzyRegenFrame.damageTakenBar:SetMinMaxValues(0, 100) -frenzyRegenFrame.damageTakenBar:SetStatusBarColor(0, 0.65, 0) - -frenzyRegenFrame.damageTakenBar.bg = frenzyRegenFrame.damageTakenBar:CreateTexture(nil, "BACKGROUND") -frenzyRegenFrame.damageTakenBar.bg:SetTexture("Interface\\TARGETINGFRAME\\UI-StatusBar") -frenzyRegenFrame.damageTakenBar.bg:SetAllPoints(true) -frenzyRegenFrame.damageTakenBar.bg:SetVertexColor(0, 0.35, 0) - -frenzyRegenFrame.damageTakenBar.value = frenzyRegenFrame.damageTakenBar:CreateFontString(nil, "OVERLAY") -frenzyRegenFrame.damageTakenBar.value:SetPoint("CENTER", frenzyRegenFrame.damageTakenBar, "CENTER", 4, 0) -frenzyRegenFrame.damageTakenBar.value:SetFont("Fonts\\FRIZQT__.TTF", 16, "OUTLINE") -frenzyRegenFrame.damageTakenBar.value:SetJustifyH("LEFT") -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 -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 -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 -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 -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 -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 +if select(2, UnitClass("player")) ~= "DRUID" then return end +local damageTable = {} +local updateInterval = 0.1 +local eventIndex = 0 +local playerGUID +local timeElapsed = 0 +local damageTP5S = 0 +local idFR = 22842 +local anouncedHealing = 0 + +local lowTransparency = 0.7 +local mediumTransparency = 0.5 +local highTransparency = 0.3 + +settingsFR = {} + +local frenzyRegenFrame = CreateFrame("Frame", "frenzyRegenFrame", UIParent) +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 }, +}) +frenzyRegenFrame:SetBackdropColor(0, 0, 0, 0.4) +frenzyRegenFrame:SetBackdropBorderColor(0, 0, 0, 1) + +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_ENABLED") +frenzyRegenFrame:RegisterEvent("ARTIFACT_UPDATE") +frenzyRegenFrame:RegisterEvent("PET_BATTLE_CLOSE") +frenzyRegenFrame:RegisterEvent("PET_BATTLE_OPENING_START") + +frenzyRegenFrame:EnableMouse(true) +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() +end) + +frenzyRegenFrame.damageTakenBar = CreateFrame("StatusBar", nil, frenzyRegenFrame) +frenzyRegenFrame.damageTakenBar:SetPoint("TOPLEFT", 3, -3) +frenzyRegenFrame.damageTakenBar:SetPoint("TOPRIGHT", -3, -3) +frenzyRegenFrame.damageTakenBar:SetHeight(20) +frenzyRegenFrame.damageTakenBar:SetStatusBarTexture("Interface\\TargetingFrame\\UI-StatusBar") +frenzyRegenFrame.damageTakenBar:GetStatusBarTexture():SetHorizTile(false) +frenzyRegenFrame.damageTakenBar:GetStatusBarTexture():SetVertTile(false) +frenzyRegenFrame.damageTakenBar:SetMinMaxValues(0, 100) +frenzyRegenFrame.damageTakenBar:SetStatusBarColor(0, 0.65, 0) + +frenzyRegenFrame.damageTakenBar.bg = frenzyRegenFrame.damageTakenBar:CreateTexture(nil, "BACKGROUND") +frenzyRegenFrame.damageTakenBar.bg:SetTexture("Interface\\TARGETINGFRAME\\UI-StatusBar") +frenzyRegenFrame.damageTakenBar.bg:SetAllPoints(true) +frenzyRegenFrame.damageTakenBar.bg:SetVertexColor(0, 0.35, 0) + +frenzyRegenFrame.damageTakenBar.value = frenzyRegenFrame.damageTakenBar:CreateFontString(nil, "OVERLAY") +frenzyRegenFrame.damageTakenBar.value:SetPoint("CENTER", frenzyRegenFrame.damageTakenBar, "CENTER", 4, 0) +frenzyRegenFrame.damageTakenBar.value:SetFont("Fonts\\FRIZQT__.TTF", 16, "OUTLINE") +frenzyRegenFrame.damageTakenBar.value:SetJustifyH("LEFT") +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 +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 +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 +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 +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 +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 diff --git a/Complete Projects/Legion/Trinket Equip.lua b/WeakAuras/Projects/Trinket Equip.lua similarity index 97% rename from Complete Projects/Legion/Trinket Equip.lua rename to WeakAuras/Projects/Trinket Equip.lua index 71a381d..03e030c 100644 --- a/Complete Projects/Legion/Trinket Equip.lua +++ b/WeakAuras/Projects/Trinket Equip.lua @@ -1,62 +1,62 @@ ---Trigger on combat ---Check bag for amount ---Maybe grey out if no trinket? ---Maybe make equipped glow :? ---Or fuck with opacity ---Make two rows ---PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED -function(e) - if e == "PLAYER_REGEN_ENABLED" then - local row = 1 - for k, v in ipairs(aura_env.daiTrinket) do - if not WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k] or not WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k][0] then - --Frame does not exist, create new frame - local iname = GetItemInfo(v) - local icon = GetItemIcon(v) - WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k] = CreateFrame("Button", nil, aura_env.region, "SecureActionButtonTemplate") - WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k]:SetAttribute("type", "macro") - WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k]:SetAttribute("macrotext", format("/equip %s", iname)) - WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k]:RegisterForClicks("LeftButtonDown") - print(k, "at", ((k - 1) * aura_env.size) - ((row - 1) * 8 * aura_env.size), - row * aura_env.size) - WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k]:SetPoint("CENTER", aura_env.region, "CENTER", ((k - 1) * aura_env.size) - ((row - 1) * 8 * aura_env.size), - row * aura_env.size) - WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k]:SetNormalTexture(icon) - WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k]:SetSize(aura_env.size, aura_env.size) - WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k]:Show() - if k % 8 == 0 then row = row + 1 end - else - WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k]:Show() - end - end - elseif e == "PLAYER_REGEN_DISABLED" then - for k, v in ipairs(aura_env.daiTrinket) do - if WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k] and WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k][0] then - WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k]:Hide() - end - end - end -end - ---INIT -if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end -if not WeakAurasSaved.CustomTrash.TrinketFuckery then WeakAurasSaved.CustomTrash.TrinketFuckery = {} end -if not WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons then WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons = {} end -aura_env.size = 48 -aura_env.daiTrinket = { - 137400, --Coagulated Nightwell Residue - 151978, --Smoldering Titanguard - 151956, --Garothi Feedback Circuit - 151957, --Ishkar's Felshield Emitter - 147023, --Leviathan's Hunger - 152645, --Eye of Dogs - 151975, --Apocalypse Drive - 151977, --Diima's Glacial Aegis - 137315, --Writhing Heart of Darkness - 151976, --Riftworld Codex - 147024, --Reliquary of the Damned - 137344, --Talisman of the Shaper - 151964, --Seeping Scourgewing - 136978, --Ember of Nulification - 152289, --Highfather's Machination - 151969, --Terminus Signaling Beacon -} +--Trigger on combat +--Check bag for amount +--Maybe grey out if no trinket? +--Maybe make equipped glow :? +--Or fuck with opacity +--Make two rows +--PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED +function(e) + if e == "PLAYER_REGEN_ENABLED" then + local row = 1 + for k, v in ipairs(aura_env.daiTrinket) do + if not WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k] or not WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k][0] then + --Frame does not exist, create new frame + local iname = GetItemInfo(v) + local icon = GetItemIcon(v) + WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k] = CreateFrame("Button", nil, aura_env.region, "SecureActionButtonTemplate") + WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k]:SetAttribute("type", "macro") + WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k]:SetAttribute("macrotext", format("/equip %s", iname)) + WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k]:RegisterForClicks("LeftButtonDown") + print(k, "at", ((k - 1) * aura_env.size) - ((row - 1) * 8 * aura_env.size), - row * aura_env.size) + WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k]:SetPoint("CENTER", aura_env.region, "CENTER", ((k - 1) * aura_env.size) - ((row - 1) * 8 * aura_env.size), - row * aura_env.size) + WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k]:SetNormalTexture(icon) + WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k]:SetSize(aura_env.size, aura_env.size) + WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k]:Show() + if k % 8 == 0 then row = row + 1 end + else + WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k]:Show() + end + end + elseif e == "PLAYER_REGEN_DISABLED" then + for k, v in ipairs(aura_env.daiTrinket) do + if WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k] and WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k][0] then + WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons[k]:Hide() + end + end + end +end + +--INIT +if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end +if not WeakAurasSaved.CustomTrash.TrinketFuckery then WeakAurasSaved.CustomTrash.TrinketFuckery = {} end +if not WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons then WeakAurasSaved.CustomTrash.TrinketFuckery.Buttons = {} end +aura_env.size = 48 +aura_env.daiTrinket = { + 137400, --Coagulated Nightwell Residue + 151978, --Smoldering Titanguard + 151956, --Garothi Feedback Circuit + 151957, --Ishkar's Felshield Emitter + 147023, --Leviathan's Hunger + 152645, --Eye of Dogs + 151975, --Apocalypse Drive + 151977, --Diima's Glacial Aegis + 137315, --Writhing Heart of Darkness + 151976, --Riftworld Codex + 147024, --Reliquary of the Damned + 137344, --Talisman of the Shaper + 151964, --Seeping Scourgewing + 136978, --Ember of Nulification + 152289, --Highfather's Machination + 151969, --Terminus Signaling Beacon +} WeakAuras.ScanEvents("PLAYER_REGEN_ENABLED") \ No newline at end of file diff --git a/Complete Projects/Legion/TrinketTest.lua b/WeakAuras/Projects/TrinketTest.lua similarity index 96% rename from Complete Projects/Legion/TrinketTest.lua rename to WeakAuras/Projects/TrinketTest.lua index 78f301c..f1d40cd 100644 --- a/Complete Projects/Legion/TrinketTest.lua +++ b/WeakAuras/Projects/TrinketTest.lua @@ -1,26 +1,26 @@ ---COMBAT_LOG_EVENT_UNFILTERED ---Made to test DHT tank trinket -function(e, ...) - local se = select(2, ...) - if se == "SWING_DAMAGE" then - local dmg = select(12, ...) - local crit = select(18, ...) - local target = select(9, ...) - print(dmg, target, crit) - if crit == false and target == UnitName("player") then - aura_env.swings = aura_env.swings + 1 - aura_env.totaldmg = aura_env.totaldmg + dmg - return true - end - end -end - ---DISPLAY -function() - return aura_env.swings .. "\n" .. aura_env.totaldmg .. "\n" .. aura_env.totaldmg / aura_env.swings -end - ---INIT -aura_env.totaldmg = 0 -aura_env.averagedmg = 0 +--COMBAT_LOG_EVENT_UNFILTERED +--Made to test DHT tank trinket +function(e, ...) + local se = select(2, ...) + if se == "SWING_DAMAGE" then + local dmg = select(12, ...) + local crit = select(18, ...) + local target = select(9, ...) + print(dmg, target, crit) + if crit == false and target == UnitName("player") then + aura_env.swings = aura_env.swings + 1 + aura_env.totaldmg = aura_env.totaldmg + dmg + return true + end + end +end + +--DISPLAY +function() + return aura_env.swings .. "\n" .. aura_env.totaldmg .. "\n" .. aura_env.totaldmg / aura_env.swings +end + +--INIT +aura_env.totaldmg = 0 +aura_env.averagedmg = 0 aura_env.swings = 0 \ No newline at end of file diff --git a/FreshShit/UwowLadderboardScraper/event.lua b/WeakAuras/Projects/UwowLadderboardScraper/event.lua similarity index 96% rename from FreshShit/UwowLadderboardScraper/event.lua rename to WeakAuras/Projects/UwowLadderboardScraper/event.lua index e70203d..dcf5beb 100644 --- a/FreshShit/UwowLadderboardScraper/event.lua +++ b/WeakAuras/Projects/UwowLadderboardScraper/event.lua @@ -1,29 +1,29 @@ --- TICKER_10000 -function() - if not InterfaceGUI then return end - if not InterfaceGUI.Cashe_1 then return end - for k, v in pairs(InterfaceGUI.Cashe_1) do - if v.UIMSG_BEST_RUNS then - local bestRuns = v.UIMSG_BEST_RUNS - for i = 1, #bestRuns, 5 do - local challengeId = bestRuns[i] - local roleMask = bestRuns[i + 1] - -- print(roleMask) - local stars = bestRuns[i + 2] - local keyLvl = bestRuns[i + 3] - local score = bestRuns[i + 4] - - if challengeId and challengeId > 0 and roleMask and roleMask > 0 and keyLvl and keyLvl > 0 then - local dungeonName = aura_env.challengeNameMap[challengeId] or "???" - local key = aura_env.Key.new( - dungeonName, - "isDps", - string.rep("+", stars) .. keyLvl, - "???", - score) - key:register() - end - end - end - end -end +-- TICKER_10000 +function() + if not InterfaceGUI then return end + if not InterfaceGUI.Cashe_1 then return end + for k, v in pairs(InterfaceGUI.Cashe_1) do + if v.UIMSG_BEST_RUNS then + local bestRuns = v.UIMSG_BEST_RUNS + for i = 1, #bestRuns, 5 do + local challengeId = bestRuns[i] + local roleMask = bestRuns[i + 1] + -- print(roleMask) + local stars = bestRuns[i + 2] + local keyLvl = bestRuns[i + 3] + local score = bestRuns[i + 4] + + if challengeId and challengeId > 0 and roleMask and roleMask > 0 and keyLvl and keyLvl > 0 then + local dungeonName = aura_env.challengeNameMap[challengeId] or "???" + local key = aura_env.Key.new( + dungeonName, + "isDps", + string.rep("+", stars) .. keyLvl, + "???", + score) + key:register() + end + end + end + end +end diff --git a/FreshShit/UwowLadderboardScraper/init.lua b/WeakAuras/Projects/UwowLadderboardScraper/init.lua similarity index 96% rename from FreshShit/UwowLadderboardScraper/init.lua rename to WeakAuras/Projects/UwowLadderboardScraper/init.lua index 7790117..b79f705 100644 --- a/FreshShit/UwowLadderboardScraper/init.lua +++ b/WeakAuras/Projects/UwowLadderboardScraper/init.lua @@ -1,89 +1,89 @@ -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", -} - ----@class Key ----@field name string ----@field role string ----@field level string ----@field time string ----@field score number -aura_env.Key = { - ---@return Key - ---@param name string - ---@param role string - ---@param level string - ---@param time string - ---@param score string - new = function(name, role, level, time, score) - local self = setmetatable({}, { - __index = Key, - __tostring = function(self) - local score = self.score - local keyLevel = tonumber(self.level:match("%d+$")) or 0 - - 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 - ) - 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 - ) - end - - return string.format("%-30s %-8s %-8s %-10s %-10s", self.name, self.role, level, self.time, score) - end, - }) - self.name = name - self.role = role - self.level = level - self.time = time - self.score = tonumber(score) or 0 - return self - end, - ---@return string - hash = function(self) return table.concat({ self.name, self.role, self.level, self.time, self.score }, "/") end, - - ---@param self Key - ---@param other Key - ---@return boolean - 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 - return false - end, - ---@param self Key - register = function(self) - 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, -} +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", +} + +---@class Key +---@field name string +---@field role string +---@field level string +---@field time string +---@field score number +aura_env.Key = { + ---@return Key + ---@param name string + ---@param role string + ---@param level string + ---@param time string + ---@param score string + new = function(name, role, level, time, score) + local self = setmetatable({}, { + __index = Key, + __tostring = function(self) + local score = self.score + local keyLevel = tonumber(self.level:match("%d+$")) or 0 + + 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 + ) + 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 + ) + end + + return string.format("%-30s %-8s %-8s %-10s %-10s", self.name, self.role, level, self.time, score) + end, + }) + self.name = name + self.role = role + self.level = level + self.time = time + self.score = tonumber(score) or 0 + return self + end, + ---@return string + hash = function(self) return table.concat({ self.name, self.role, self.level, self.time, self.score }, "/") end, + + ---@param self Key + ---@param other Key + ---@return boolean + 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 + return false + end, + ---@param self Key + register = function(self) + 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, +} diff --git a/Complete Projects/Legion/Valentine's Charms.lua b/WeakAuras/Projects/Valentine's Charms.lua similarity index 96% rename from Complete Projects/Legion/Valentine's Charms.lua rename to WeakAuras/Projects/Valentine's Charms.lua index 168b7fa..8271a8d 100644 --- a/Complete Projects/Legion/Valentine's Charms.lua +++ b/WeakAuras/Projects/Valentine's Charms.lua @@ -1,15 +1,15 @@ ---DURATION -function() - local charms = math.floor(GetItemCount(49655) / 10) - local tokens = GetItemCount(49927) - local total = charms + tokens - return total, 270, 1 -end - ---NAME -function() - local charms = math.floor(GetItemCount(49655) / 10) - local tokens = GetItemCount(49927) - local total = charms + tokens - return total +--DURATION +function() + local charms = math.floor(GetItemCount(49655) / 10) + local tokens = GetItemCount(49927) + local total = charms + tokens + return total, 270, 1 +end + +--NAME +function() + local charms = math.floor(GetItemCount(49655) / 10) + local tokens = GetItemCount(49927) + local total = charms + tokens + return total end \ No newline at end of file diff --git a/Complete Projects/Legion/Visp Bogec.lua b/WeakAuras/Projects/Visp Bogec.lua similarity index 97% rename from Complete Projects/Legion/Visp Bogec.lua rename to WeakAuras/Projects/Visp Bogec.lua index 6e4667d..8a94a7d 100644 --- a/Complete Projects/Legion/Visp Bogec.lua +++ b/WeakAuras/Projects/Visp Bogec.lua @@ -1,116 +1,116 @@ ---COMBAT_LOG_EVENT_UNFILTERED GROUP_ROSTER_UPDATE -function(allstates, e, ...) - local aura_env = aura_env - local restoreState = function(name, state, dur, pclass) - if allstates[name .. state] then - allstates[name .. state] = { - -- Playername .. spellname - show = true, - changed = true, - index = name, - resort = true, - name = aura_env.classColor(pclass) .. name .. "\124r", - icon = GetSpellTexture(state), - progressType = "static", - value = dur, - total = dur, - } - return true - end - end - if e == "COMBAT_LOG_EVENT_UNFILTERED" then - local se = select(2, ...) - if se == "SPELL_CAST_SUCCESS" then - local name = select(5, ...) - local spellID = select(12, ...) - if aura_env.classSpells[select(3, UnitClass(name))] and aura_env.classSpells[select(3, UnitClass(name))][spellID] then -- Player should probably be tracked - --print(name, spell) - --DevTools_Dump(allstates) - if allstates[name .. select(1, GetSpellInfo(spellID))] then - --print("YEET") - local pclass = select(3, UnitClass(name)) - local dur = aura_env.classSpells[select(3, UnitClass(name))][spellID] - allstates[name .. select(1, GetSpellInfo(spellID))] = { - show = true, - changed = true, - index = name, - resort = true, - name = aura_env.classColor(select(3, UnitClass(name))) .. name .. "\124r", - icon = GetSpellTexture(spellID), - progressType = "timed", - expirationTime = GetTime() + aura_env.classSpells[select(3, UnitClass(name))][spellID], - duration = dur, - ticker = C_Timer.After(dur - dur / 3, function() restoreState(name, spellID, dur, pclass) end)} - return true - end - end - end - elseif e == "GROUP_ROSTER_UPDATE" then - aura_env.groupMembers = {} - for k, v in pairs(allstates) do - v.show = false - v.changed = true - end - for i = 1, GetNumGroupMembers() do - if IsInRaid() == true then - aura_env.groupMembers[UnitName("raid" .. i)] = select(3, UnitClass("raid" .. i)) - end - end - for k, v in pairs(aura_env.groupMembers) do - if aura_env.classSpells[v] then - for k2, v2 in pairs(aura_env.classSpells[v]) do - allstates[k .. select(1, GetSpellInfo(k2))] = { - -- Playername .. spellname - show = true, - changed = true, - index = k, - class = v, - resort = true, - name = aura_env.classColor(v) .. k .. "\124r", - icon = GetSpellTexture(k2), - progressType = "static", - value = v2, - total = v2, - } - end - end - end - end - return true -end - ---INIT -aura_env.groupMembers = {} -aura_env.classSpells = { - -- Form [SpellID] = spellcooldown, - [2] = {-- Paladin - [31821] = 180, - }, - [11] = {--Druid - - }, - [5] = {-- Priest - - }, - [7] = {-- Shaman - - }, - [10] = {-- Monk - - }, -} -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 "\124cFF000000" end -end +--COMBAT_LOG_EVENT_UNFILTERED GROUP_ROSTER_UPDATE +function(allstates, e, ...) + local aura_env = aura_env + local restoreState = function(name, state, dur, pclass) + if allstates[name .. state] then + allstates[name .. state] = { + -- Playername .. spellname + show = true, + changed = true, + index = name, + resort = true, + name = aura_env.classColor(pclass) .. name .. "\124r", + icon = GetSpellTexture(state), + progressType = "static", + value = dur, + total = dur, + } + return true + end + end + if e == "COMBAT_LOG_EVENT_UNFILTERED" then + local se = select(2, ...) + if se == "SPELL_CAST_SUCCESS" then + local name = select(5, ...) + local spellID = select(12, ...) + if aura_env.classSpells[select(3, UnitClass(name))] and aura_env.classSpells[select(3, UnitClass(name))][spellID] then -- Player should probably be tracked + --print(name, spell) + --DevTools_Dump(allstates) + if allstates[name .. select(1, GetSpellInfo(spellID))] then + --print("YEET") + local pclass = select(3, UnitClass(name)) + local dur = aura_env.classSpells[select(3, UnitClass(name))][spellID] + allstates[name .. select(1, GetSpellInfo(spellID))] = { + show = true, + changed = true, + index = name, + resort = true, + name = aura_env.classColor(select(3, UnitClass(name))) .. name .. "\124r", + icon = GetSpellTexture(spellID), + progressType = "timed", + expirationTime = GetTime() + aura_env.classSpells[select(3, UnitClass(name))][spellID], + duration = dur, + ticker = C_Timer.After(dur - dur / 3, function() restoreState(name, spellID, dur, pclass) end)} + return true + end + end + end + elseif e == "GROUP_ROSTER_UPDATE" then + aura_env.groupMembers = {} + for k, v in pairs(allstates) do + v.show = false + v.changed = true + end + for i = 1, GetNumGroupMembers() do + if IsInRaid() == true then + aura_env.groupMembers[UnitName("raid" .. i)] = select(3, UnitClass("raid" .. i)) + end + end + for k, v in pairs(aura_env.groupMembers) do + if aura_env.classSpells[v] then + for k2, v2 in pairs(aura_env.classSpells[v]) do + allstates[k .. select(1, GetSpellInfo(k2))] = { + -- Playername .. spellname + show = true, + changed = true, + index = k, + class = v, + resort = true, + name = aura_env.classColor(v) .. k .. "\124r", + icon = GetSpellTexture(k2), + progressType = "static", + value = v2, + total = v2, + } + end + end + end + end + return true +end + +--INIT +aura_env.groupMembers = {} +aura_env.classSpells = { + -- Form [SpellID] = spellcooldown, + [2] = {-- Paladin + [31821] = 180, + }, + [11] = {--Druid + + }, + [5] = {-- Priest + + }, + [7] = {-- Shaman + + }, + [10] = {-- Monk + + }, +} +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 "\124cFF000000" end +end diff --git a/Complete Projects/Legion/Warlock Artifact.lua b/WeakAuras/Projects/Warlock Artifact.lua similarity index 96% rename from Complete Projects/Legion/Warlock Artifact.lua rename to WeakAuras/Projects/Warlock Artifact.lua index 2073783..0b7f3ef 100644 --- a/Complete Projects/Legion/Warlock Artifact.lua +++ b/WeakAuras/Projects/Warlock Artifact.lua @@ -1,17 +1,17 @@ -DISPLAY -function() - local souls = select(4, UnitBuff("player", "Tormented Souls")) or 0 - return souls -end - -TRIGGER -function() - local buff = UnitBuff("player", "Tormented Souls") or 0 - if buff ~= nil then return true else return false end -end - -DURATION_TRIGGER -function() - local souls = select(4, UnitBuff("player", "Tormented Souls")) or 0 - return souls, 12, true +DISPLAY +function() + local souls = select(4, UnitBuff("player", "Tormented Souls")) or 0 + return souls +end + +TRIGGER +function() + local buff = UnitBuff("player", "Tormented Souls") or 0 + if buff ~= nil then return true else return false end +end + +DURATION_TRIGGER +function() + local souls = select(4, UnitBuff("player", "Tormented Souls")) or 0 + return souls, 12, true end \ No newline at end of file diff --git a/FreshShit/WarlockDispelMaster/event.lua b/WeakAuras/Projects/WarlockDispelMaster/event.lua similarity index 96% rename from FreshShit/WarlockDispelMaster/event.lua rename to WeakAuras/Projects/WarlockDispelMaster/event.lua index 9ed7de6..3f6309a 100644 --- a/FreshShit/WarlockDispelMaster/event.lua +++ b/WeakAuras/Projects/WarlockDispelMaster/event.lua @@ -1,16 +1,16 @@ --- TICKER_200 -function() - for _, unit in ipairs(aura_env.Units) do - if UnitExists(unit) and not UnitIsDeadOrGhost(unit) and aura_env.HasDispellableDebuff(unit) then - local unitName = UnitName(unit) - local frame = aura_env.GetFrameFromName(unitName) - if frame == nil then - print("Frame not found for " .. unitName) - -- Unexpected behavior, bail! - return - end - -- print("Dispel " .. unitName) - aura_env.MakeFrameGlow(frame) - end - end +-- TICKER_200 +function() + for _, unit in ipairs(aura_env.Units) do + if UnitExists(unit) and not UnitIsDeadOrGhost(unit) and aura_env.HasDispellableDebuff(unit) then + local unitName = UnitName(unit) + local frame = aura_env.GetFrameFromName(unitName) + if frame == nil then + print("Frame not found for " .. unitName) + -- Unexpected behavior, bail! + return + end + -- print("Dispel " .. unitName) + aura_env.MakeFrameGlow(frame) + end + end end \ No newline at end of file diff --git a/FreshShit/WarlockDispelMaster/event2.lua b/WeakAuras/Projects/WarlockDispelMaster/event2.lua similarity index 95% rename from FreshShit/WarlockDispelMaster/event2.lua rename to WeakAuras/Projects/WarlockDispelMaster/event2.lua index 53336c4..07856ca 100644 --- a/FreshShit/WarlockDispelMaster/event2.lua +++ b/WeakAuras/Projects/WarlockDispelMaster/event2.lua @@ -1,4 +1,4 @@ --- TICKER_1000 -function() - aura_env.SetupPartyCache() +-- TICKER_1000 +function() + aura_env.SetupPartyCache() end \ No newline at end of file diff --git a/FreshShit/WarlockDispelMaster/export b/WeakAuras/Projects/WarlockDispelMaster/export similarity index 100% rename from FreshShit/WarlockDispelMaster/export rename to WeakAuras/Projects/WarlockDispelMaster/export diff --git a/FreshShit/WarlockDispelMaster/init.lua b/WeakAuras/Projects/WarlockDispelMaster/init.lua similarity index 96% rename from FreshShit/WarlockDispelMaster/init.lua rename to WeakAuras/Projects/WarlockDispelMaster/init.lua index 2f815e6..f22f8bc 100644 --- a/FreshShit/WarlockDispelMaster/init.lua +++ b/WeakAuras/Projects/WarlockDispelMaster/init.lua @@ -1,76 +1,76 @@ -LCG = LibStub("LibCustomGlow-1.0") ----@table -aura_env.BusyFrames = {} - -aura_env.Units = { - "player", - "party1", - "party2", - "party3", - "party4", - "party5", -} - ----@param unit string ----@return boolean, nil|string -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 - end - - return false, nil -end - ----@param frame Frame ----@return string, nil|string -aura_env.GetNameFromFrame = function(frame) - 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 - ---@diagnostic disable-next-line: undefined-field - local name = frame.Name:GetText() - 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 - ----@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.MakeFrameGlow = function(frame) - local frameName = frame:GetName() - if frame ~= nil and aura_env.BusyFrames[frameName] == nil then - ---@type Frame - ---@diagnostic disable-next-line: undefined-field - local healthBar = frame.Health - if healthBar ~= nil then - LCG.PixelGlow_Start(healthBar, { 1, 1, 0, 1 }, 16, 0.35, 8, 4) - aura_env.BusyFrames[frameName] = true - local aura_env = aura_env - C_Timer.After(1, function() - LCG.PixelGlow_Stop(healthBar) - aura_env.BusyFrames[frameName] = nil - end) - end - end -end - -aura_env.PartyCache = {} -aura_env.SetupPartyCache = function() - for i = 1, 5 do - -- /dump _G[string.format("ElvUF_RaidGroup1UnitButton%d", 1)].Name:GetText() - local raidFrame = _G[string.format("ElvUF_RaidGroup1UnitButton%d", i + 1)] - local name, err = aura_env.GetNameFromFrame(raidFrame) - if err == nil then - name = aura_env.RemoveNamePadding(name) - aura_env.PartyCache[name] = raidFrame - end - end -end +LCG = LibStub("LibCustomGlow-1.0") +---@table +aura_env.BusyFrames = {} + +aura_env.Units = { + "player", + "party1", + "party2", + "party3", + "party4", + "party5", +} + +---@param unit string +---@return boolean, nil|string +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 + end + + return false, nil +end + +---@param frame Frame +---@return string, nil|string +aura_env.GetNameFromFrame = function(frame) + 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 + ---@diagnostic disable-next-line: undefined-field + local name = frame.Name:GetText() + 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 + +---@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.MakeFrameGlow = function(frame) + local frameName = frame:GetName() + if frame ~= nil and aura_env.BusyFrames[frameName] == nil then + ---@type Frame + ---@diagnostic disable-next-line: undefined-field + local healthBar = frame.Health + if healthBar ~= nil then + LCG.PixelGlow_Start(healthBar, { 1, 1, 0, 1 }, 16, 0.35, 8, 4) + aura_env.BusyFrames[frameName] = true + local aura_env = aura_env + C_Timer.After(1, function() + LCG.PixelGlow_Stop(healthBar) + aura_env.BusyFrames[frameName] = nil + end) + end + end +end + +aura_env.PartyCache = {} +aura_env.SetupPartyCache = function() + for i = 1, 5 do + -- /dump _G[string.format("ElvUF_RaidGroup1UnitButton%d", 1)].Name:GetText() + local raidFrame = _G[string.format("ElvUF_RaidGroup1UnitButton%d", i + 1)] + local name, err = aura_env.GetNameFromFrame(raidFrame) + if err == nil then + name = aura_env.RemoveNamePadding(name) + aura_env.PartyCache[name] = raidFrame + end + end +end diff --git a/FreshShit/WhoSniffer/allstates.lua b/WeakAuras/Projects/WhoSniffer/allstates.lua similarity index 98% rename from FreshShit/WhoSniffer/allstates.lua rename to WeakAuras/Projects/WhoSniffer/allstates.lua index 6bd8751..1d58930 100644 --- a/FreshShit/WhoSniffer/allstates.lua +++ b/WeakAuras/Projects/WhoSniffer/allstates.lua @@ -1,22 +1,22 @@ ----@meta - ----[Source](https://github.com/WeakAuras/WeakAuras2/wiki/Trigger-State-Updater-%28TSU%29) ----@class state ----@field changed boolean Informs WeakAuras that the states values have changed. Always set this to true for states that were changed. ----@field show boolean Controls whether the display is visible. Note, that states that have show set to false are automatically removed. ----@field name string The name, returned by %n ----@field icon number|string IconID or TexturePath, used in icons and progress bars ----@field texture number|string IconID or TexturePath, used in textures ----@field stacks number The stack count, returned by %s ----@field index number|string Sets the order the output will display in a dynamic group (if sorting is set to "none" on the group). Strings or numbers are fine but DO NOT MIX TYPES! ----@field progressType string "timed" or "static" ----@field expirationTime number Use with "timed" progressType; relative to GetTime() ----@field duration number Use with "timed" progressType; total duration of the bar in seconds ----@field value number Use with "static" progressType ----@field maxValue number Use with "static" progressType ----@field autoHide boolean Set to true to make the display automatically hide at the end of the "timed" progress. autoHide can also be used along with the "static" progressType by defining a duration and expirationTime along with the static value and total. While the static values will be displayed, the timed values will set the Hide time for the clone. ----@field paused boolean Set to true (and set a remaining value) to pause a "timed" progress. Set to false (and recalculate the expirationTime value) to resume. ----@field remaining number Only used with paused, gives WA the info needed to show paused progress at the current point. -state = {} - ----@alias allstates table +---@meta + +---[Source](https://github.com/WeakAuras/WeakAuras2/wiki/Trigger-State-Updater-%28TSU%29) +---@class state +---@field changed boolean Informs WeakAuras that the states values have changed. Always set this to true for states that were changed. +---@field show boolean Controls whether the display is visible. Note, that states that have show set to false are automatically removed. +---@field name string The name, returned by %n +---@field icon number|string IconID or TexturePath, used in icons and progress bars +---@field texture number|string IconID or TexturePath, used in textures +---@field stacks number The stack count, returned by %s +---@field index number|string Sets the order the output will display in a dynamic group (if sorting is set to "none" on the group). Strings or numbers are fine but DO NOT MIX TYPES! +---@field progressType string "timed" or "static" +---@field expirationTime number Use with "timed" progressType; relative to GetTime() +---@field duration number Use with "timed" progressType; total duration of the bar in seconds +---@field value number Use with "static" progressType +---@field maxValue number Use with "static" progressType +---@field autoHide boolean Set to true to make the display automatically hide at the end of the "timed" progress. autoHide can also be used along with the "static" progressType by defining a duration and expirationTime along with the static value and total. While the static values will be displayed, the timed values will set the Hide time for the clone. +---@field paused boolean Set to true (and set a remaining value) to pause a "timed" progress. Set to false (and recalculate the expirationTime value) to resume. +---@field remaining number Only used with paused, gives WA the info needed to show paused progress at the current point. +state = {} + +---@alias allstates table diff --git a/FreshShit/WhoSniffer/event.lua b/WeakAuras/Projects/WhoSniffer/event.lua similarity index 96% rename from FreshShit/WhoSniffer/event.lua rename to WeakAuras/Projects/WhoSniffer/event.lua index 30bb01e..0aa6ede 100644 --- a/FreshShit/WhoSniffer/event.lua +++ b/WeakAuras/Projects/WhoSniffer/event.lua @@ -1,64 +1,64 @@ --- WHO_LIST_UPDATE -function() - for i = 1, GetNumWhoResults() do - local name, guild, level, race, class, zone = GetWhoInfo(i) - if not aura_env.ignored[name] then - ---@type WHOQuery - local query = aura_env.lastQuery - if not query then - print("No query wtf?") - return - end - ---@type WHOFilter[] - local filters = query.filters - for _, filter in pairs(filters) do - if not filter(name, guild, level, race, class, zone) then - --print("Filter failed", filter, name, guild, level, race, class, - -- zone) - return - end - end - - local timestamp = date("%Y-%m-%dT%H:%M:%S") - local player = aura_env.stinkies[name] - if not player then - player = Player.new(name, guild, race, class, zone) - local existing = WeakAurasSaved.Cyka.WhoSniffer[name] - - if not existing then WeakAurasSaved.Cyka.WhoSniffer[name] = {} - else - player.lastSeen = existing.lastSeen or "never" - player.firstSeen = existing.firstSeen or "never" - player.seenCount = existing.seenCount or 0 - end - if player.firstSeen == "never" then - player.firstSeen = timestamp - end - - local stinky = WeakAurasSaved.Cyka.stinkies[name] - if stinky then - PlaySoundFile("Interface\\Sounds\\Domination.ogg", "Master") - else - PlaySoundFile("Interface\\Sounds\\Cloak.ogg", "Master") - end - - aura_env.Notify(player) - player.lastSeen = timestamp - player.seenCount = player.seenCount + 1 - WeakAurasSaved.Cyka.WhoSniffer[name] = player - end - player.lastSeenInternal = GetTime() - if player.zone ~= zone then - aura_env.NotifyZoneChanged(player, zone) - end - player.zone = zone - player.lastSeen = timestamp - aura_env.stinkies[name] = player - end - end - -- Turns out WA cannot do this ( - -- aura_env.UpdateMacro() - _G["FriendsFrameCloseButton"]:Click() -end - --- /run WeakAurasSaved.Cyka.WhoSniffer = {} +-- WHO_LIST_UPDATE +function() + for i = 1, GetNumWhoResults() do + local name, guild, level, race, class, zone = GetWhoInfo(i) + if not aura_env.ignored[name] then + ---@type WHOQuery + local query = aura_env.lastQuery + if not query then + print("No query wtf?") + return + end + ---@type WHOFilter[] + local filters = query.filters + for _, filter in pairs(filters) do + if not filter(name, guild, level, race, class, zone) then + --print("Filter failed", filter, name, guild, level, race, class, + -- zone) + return + end + end + + local timestamp = date("%Y-%m-%dT%H:%M:%S") + local player = aura_env.stinkies[name] + if not player then + player = Player.new(name, guild, race, class, zone) + local existing = WeakAurasSaved.Cyka.WhoSniffer[name] + + if not existing then WeakAurasSaved.Cyka.WhoSniffer[name] = {} + else + player.lastSeen = existing.lastSeen or "never" + player.firstSeen = existing.firstSeen or "never" + player.seenCount = existing.seenCount or 0 + end + if player.firstSeen == "never" then + player.firstSeen = timestamp + end + + local stinky = WeakAurasSaved.Cyka.stinkies[name] + if stinky then + PlaySoundFile("Interface\\Sounds\\Domination.ogg", "Master") + else + PlaySoundFile("Interface\\Sounds\\Cloak.ogg", "Master") + end + + aura_env.Notify(player) + player.lastSeen = timestamp + player.seenCount = player.seenCount + 1 + WeakAurasSaved.Cyka.WhoSniffer[name] = player + end + player.lastSeenInternal = GetTime() + if player.zone ~= zone then + aura_env.NotifyZoneChanged(player, zone) + end + player.zone = zone + player.lastSeen = timestamp + aura_env.stinkies[name] = player + end + end + -- Turns out WA cannot do this ( + -- aura_env.UpdateMacro() + _G["FriendsFrameCloseButton"]:Click() +end + +-- /run WeakAurasSaved.Cyka.WhoSniffer = {} diff --git a/FreshShit/WhoSniffer/event2.lua b/WeakAuras/Projects/WhoSniffer/event2.lua similarity index 96% rename from FreshShit/WhoSniffer/event2.lua rename to WeakAuras/Projects/WhoSniffer/event2.lua index f21e952..c0df2a5 100644 --- a/FreshShit/WhoSniffer/event2.lua +++ b/WeakAuras/Projects/WhoSniffer/event2.lua @@ -1,33 +1,33 @@ --- TICKER_500 ----@type allstates allstates -function(allstates) - local now = GetTime() - for k, v in pairs(aura_env.stinkies) do - local ago = now - v.lastSeenInternal - if ago > aura_env.ttl then - allstates[k] = { show = false, changed = true } - aura_env.stinkies[k] = nil - PlaySoundFile("Interface\\Sounds\\Uncloak.ogg", "Master") - aura_env.NotifyGone(v) - else - if allstates[k] then - allstates[k].ago = string.format("%6.1fs", ago) - allstates[k].name = v:ToString() - allstates[k].changed = true - else - allstates[k] = { - show = true, - changed = true, - name = v:ToString(), - progressType = "timed", - duration = aura_env.ttl, - expirationTime = GetTime() + aura_env.ttl, - autohide = true, - index = ago, - ago = string.format("%6.1fs", ago), - } - end - end - end - return true -end +-- TICKER_500 +---@type allstates allstates +function(allstates) + local now = GetTime() + for k, v in pairs(aura_env.stinkies) do + local ago = now - v.lastSeenInternal + if ago > aura_env.ttl then + allstates[k] = { show = false, changed = true } + aura_env.stinkies[k] = nil + PlaySoundFile("Interface\\Sounds\\Uncloak.ogg", "Master") + aura_env.NotifyGone(v) + else + if allstates[k] then + allstates[k].ago = string.format("%6.1fs", ago) + allstates[k].name = v:ToString() + allstates[k].changed = true + else + allstates[k] = { + show = true, + changed = true, + name = v:ToString(), + progressType = "timed", + duration = aura_env.ttl, + expirationTime = GetTime() + aura_env.ttl, + autohide = true, + index = ago, + ago = string.format("%6.1fs", ago), + } + end + end + end + return true +end diff --git a/FreshShit/WhoSniffer/event3.lua b/WeakAuras/Projects/WhoSniffer/event3.lua similarity index 96% rename from FreshShit/WhoSniffer/event3.lua rename to WeakAuras/Projects/WhoSniffer/event3.lua index 6669021..e67ceda 100644 --- a/FreshShit/WhoSniffer/event3.lua +++ b/WeakAuras/Projects/WhoSniffer/event3.lua @@ -1,14 +1,14 @@ --- TICKER_1000 -function() - if aura_env.queryPending then return end - if WeakAuras.IsOptionsOpen() then return end - SetWhoToUI(1) - ---@type WHOQuery - local query = aura_env.whoQueries[aura_env.whoQueryIdx] - aura_env.lastQuery = query - SendWho(query.query) - aura_env.whoQueryIdx = aura_env.whoQueryIdx + 1 - if aura_env.whoQueryIdx > #aura_env.whoQueries then - aura_env.whoQueryIdx = 1 - end +-- TICKER_1000 +function() + if aura_env.queryPending then return end + if WeakAuras.IsOptionsOpen() then return end + SetWhoToUI(1) + ---@type WHOQuery + local query = aura_env.whoQueries[aura_env.whoQueryIdx] + aura_env.lastQuery = query + SendWho(query.query) + aura_env.whoQueryIdx = aura_env.whoQueryIdx + 1 + if aura_env.whoQueryIdx > #aura_env.whoQueries then + aura_env.whoQueryIdx = 1 + end end \ No newline at end of file diff --git a/FreshShit/WhoSniffer/event4.lua b/WeakAuras/Projects/WhoSniffer/event4.lua similarity index 96% rename from FreshShit/WhoSniffer/event4.lua rename to WeakAuras/Projects/WhoSniffer/event4.lua index e955648..316f98c 100644 --- a/FreshShit/WhoSniffer/event4.lua +++ b/WeakAuras/Projects/WhoSniffer/event4.lua @@ -1,17 +1,17 @@ --- CHAT_MSG_WHISPER ----@type event string ----@type msg string ----@type sender string -function(event, msg, sender) - if msg == "who" then - for _, player in pairs(aura_env.stinkies) do - local msg = aura_env.MakeNotifyMessage(player) - local message = { - channel = "WHISPER", - data = sender, - message = msg - } - table.insert(WeakAurasSaved.Cyka.MessageQueue, message) - end - end +-- CHAT_MSG_WHISPER +---@type event string +---@type msg string +---@type sender string +function(event, msg, sender) + if msg == "who" then + for _, player in pairs(aura_env.stinkies) do + local msg = aura_env.MakeNotifyMessage(player) + local message = { + channel = "WHISPER", + data = sender, + message = msg + } + table.insert(WeakAurasSaved.Cyka.MessageQueue, message) + end + end end \ No newline at end of file diff --git a/FreshShit/WhoSniffer/event5.lua b/WeakAuras/Projects/WhoSniffer/event5.lua similarity index 95% rename from FreshShit/WhoSniffer/event5.lua rename to WeakAuras/Projects/WhoSniffer/event5.lua index 894bbca..01b5d67 100644 --- a/FreshShit/WhoSniffer/event5.lua +++ b/WeakAuras/Projects/WhoSniffer/event5.lua @@ -1,26 +1,26 @@ --- CHAT_MSG_CHANNEL ----@type event string ----@type msg string ----@type sender string -function(event, msg, sender, ...) - local channelId = select(6, ...) - local channelName = aura_env.GetChannelName(channelId) - if not channelName then - return - end - if channelName ~= aura_env.config.channel then - return - end - - if msg == "who" then - for _, player in pairs(aura_env.stinkies) do - local msg = aura_env.MakeNotifyMessage(player) - local message = { - channel = "CHANNEL", - data = aura_env.config.channel, - message = msg - } - table.insert(WeakAurasSaved.Cyka.MessageQueue, message) - end - end -end +-- CHAT_MSG_CHANNEL +---@type event string +---@type msg string +---@type sender string +function(event, msg, sender, ...) + local channelId = select(6, ...) + local channelName = aura_env.GetChannelName(channelId) + if not channelName then + return + end + if channelName ~= aura_env.config.channel then + return + end + + if msg == "who" then + for _, player in pairs(aura_env.stinkies) do + local msg = aura_env.MakeNotifyMessage(player) + local message = { + channel = "CHANNEL", + data = aura_env.config.channel, + message = msg + } + table.insert(WeakAurasSaved.Cyka.MessageQueue, message) + end + end +end diff --git a/FreshShit/WhoSniffer/export b/WeakAuras/Projects/WhoSniffer/export similarity index 100% rename from FreshShit/WhoSniffer/export rename to WeakAuras/Projects/WhoSniffer/export diff --git a/FreshShit/WhoSniffer/init.lua b/WeakAuras/Projects/WhoSniffer/init.lua similarity index 96% rename from FreshShit/WhoSniffer/init.lua rename to WeakAuras/Projects/WhoSniffer/init.lua index e24dde2..2d6aaaf 100644 --- a/FreshShit/WhoSniffer/init.lua +++ b/WeakAuras/Projects/WhoSniffer/init.lua @@ -1,325 +1,325 @@ -if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end -if not WeakAurasSaved.Cyka.WhoSniffer then WeakAurasSaved.Cyka.WhoSniffer = {} end - -aura_env.ignored = { "Maritza", "Goodbones" } - ----@class aura_env ----@field raceMap table ----@field stinkies table ----@field classColors table ----@field whoQueries table ----@field ttl number ----@field messageQueue Message[] ----@field UpdateMacro fun() ----@field Notify fun(Player) ----@field NotifyGone fun(Player) ----@field queryPending boolean ----@field lastQuery WHOQuery - ----@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 -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 -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, -} - ----@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" -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" -end - ----@class Message ----@field message string ----@field channel string ----@field data string - -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[2] = WHOQuery.new( - '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 } -) -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 } -) -aura_env.whoQueries[5] = WHOQuery.new( - '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 -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", -} - ----@type table -aura_env.stinkies = {} - ----@class Player ----@field name string ----@field guild string ----@field race string ----@field class string ----@field zone string ----@field lastSeenInternal number ----@field lastSeen string ----@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, -} - ----@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", -} - ----@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 -end - ----@type string[] -local toNotify = StrSplit(aura_env.config.notify, ",") -for i, part in ipairs(toNotify) do - 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 -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 - ) -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 -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) -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) -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) -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) -end - ----@param player Player ----@return nil -aura_env.NotifyChannel = function(player) - 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) -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 +if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end +if not WeakAurasSaved.Cyka.WhoSniffer then WeakAurasSaved.Cyka.WhoSniffer = {} end + +aura_env.ignored = { "Maritza", "Goodbones" } + +---@class aura_env +---@field raceMap table +---@field stinkies table +---@field classColors table +---@field whoQueries table +---@field ttl number +---@field messageQueue Message[] +---@field UpdateMacro fun() +---@field Notify fun(Player) +---@field NotifyGone fun(Player) +---@field queryPending boolean +---@field lastQuery WHOQuery + +---@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 +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 +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, +} + +---@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" +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" +end + +---@class Message +---@field message string +---@field channel string +---@field data string + +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[2] = WHOQuery.new( + '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 } +) +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 } +) +aura_env.whoQueries[5] = WHOQuery.new( + '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 +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", +} + +---@type table +aura_env.stinkies = {} + +---@class Player +---@field name string +---@field guild string +---@field race string +---@field class string +---@field zone string +---@field lastSeenInternal number +---@field lastSeen string +---@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, +} + +---@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", +} + +---@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 +end + +---@type string[] +local toNotify = StrSplit(aura_env.config.notify, ",") +for i, part in ipairs(toNotify) do + 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 +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 + ) +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 +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) +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) +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) +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) +end + +---@param player Player +---@return nil +aura_env.NotifyChannel = function(player) + 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) +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 diff --git a/FreshShit/WhoSniffer/plan.lua b/WeakAuras/Projects/WhoSniffer/plan.lua similarity index 100% rename from FreshShit/WhoSniffer/plan.lua rename to WeakAuras/Projects/WhoSniffer/plan.lua diff --git a/FreshShit/_Autoruns/event.lua b/WeakAuras/Projects/_Autoruns/event.lua similarity index 97% rename from FreshShit/_Autoruns/event.lua rename to WeakAuras/Projects/_Autoruns/event.lua index fa09ff3..ba458c7 100644 --- a/FreshShit/_Autoruns/event.lua +++ b/WeakAuras/Projects/_Autoruns/event.lua @@ -1,5 +1,5 @@ ---PLAYER_ENTERING_WORLD -function(e) - SetCVar("cameraYawMoveSpeed", aura_env.config.speed) - SetCVar("cameraPitchMoveSpeed", aura_env.config.speed) +--PLAYER_ENTERING_WORLD +function(e) + SetCVar("cameraYawMoveSpeed", aura_env.config.speed) + SetCVar("cameraPitchMoveSpeed", aura_env.config.speed) end \ No newline at end of file diff --git a/FreshShit/_Autoruns/export b/WeakAuras/Projects/_Autoruns/export similarity index 100% rename from FreshShit/_Autoruns/export rename to WeakAuras/Projects/_Autoruns/export diff --git a/Complete Projects/Legion/_Big ass hammer thing.lua b/WeakAuras/Projects/_Big ass hammer thing.lua similarity index 97% rename from Complete Projects/Legion/_Big ass hammer thing.lua rename to WeakAuras/Projects/_Big ass hammer thing.lua index babb8f9..c0d0a87 100644 --- a/Complete Projects/Legion/_Big ass hammer thing.lua +++ b/WeakAuras/Projects/_Big ass hammer thing.lua @@ -1,29 +1,29 @@ ---COMBAT_LOG_EVENT_UNFILTERED -function() - myTooltip = CreateFrame("GameTooltip", "MyTooltip", UIParent, "GameTooltipTemplate") - if aura_env.owner == 0 then - myTooltip:SetOwner(UIParent, "ANCHOR_NONE") - myTooltip:SetSpellByID(213757) - aura_env.owner = 1 - end - local text = _G["MyTooltipTextLeft4"]:GetText() - local time = text:match("after (%d%.?%d*) sec") - if not time then - text = _G["MyTooltipTextLeft5"]:GetText() - time = text:match("after (%d%.?%d*) sec") - end - if time then - time = time + GetTime() - local judgtime = select(7, UnitDebuff("target", "Judgment", _, "PLAYER")) or 0 - local gcds, gcdd = GetSpellCooldown(203539) or 0, 0 - if gcdd > 0 then aura_env.gcd = gcdd end - if gcds > 0 then time = time + (gcdd - (GetTime() - gcds)) end - if judgtime == 0 and aura_env.gcd > 0 then judgtime = GetTime() + aura_env.gcd end - print(time, judgtime) - if judgtime < time then return true else return false end - end -end - ---INIT -aura_env.gcd = 0 +--COMBAT_LOG_EVENT_UNFILTERED +function() + myTooltip = CreateFrame("GameTooltip", "MyTooltip", UIParent, "GameTooltipTemplate") + if aura_env.owner == 0 then + myTooltip:SetOwner(UIParent, "ANCHOR_NONE") + myTooltip:SetSpellByID(213757) + aura_env.owner = 1 + end + local text = _G["MyTooltipTextLeft4"]:GetText() + local time = text:match("after (%d%.?%d*) sec") + if not time then + text = _G["MyTooltipTextLeft5"]:GetText() + time = text:match("after (%d%.?%d*) sec") + end + if time then + time = time + GetTime() + local judgtime = select(7, UnitDebuff("target", "Judgment", _, "PLAYER")) or 0 + local gcds, gcdd = GetSpellCooldown(203539) or 0, 0 + if gcdd > 0 then aura_env.gcd = gcdd end + if gcds > 0 then time = time + (gcdd - (GetTime() - gcds)) end + if judgtime == 0 and aura_env.gcd > 0 then judgtime = GetTime() + aura_env.gcd end + print(time, judgtime) + if judgtime < time then return true else return false end + end +end + +--INIT +aura_env.gcd = 0 aura_env.owner = 0 \ No newline at end of file diff --git a/FreshShit/_GlobalSoundPlayer/event.lua b/WeakAuras/Projects/_GlobalSoundPlayer/event.lua similarity index 97% rename from FreshShit/_GlobalSoundPlayer/event.lua rename to WeakAuras/Projects/_GlobalSoundPlayer/event.lua index 8446f55..d682d15 100644 --- a/FreshShit/_GlobalSoundPlayer/event.lua +++ b/WeakAuras/Projects/_GlobalSoundPlayer/event.lua @@ -1,7 +1,7 @@ --- PLAY_SOUND -function(e, file) - local success = PlaySoundFile(file, "Master") - if not success then - if aura_env.debug then print(string.format("Failed to play sound file at %s", file)) end - end +-- PLAY_SOUND +function(e, file) + local success = PlaySoundFile(file, "Master") + if not success then + if aura_env.debug then print(string.format("Failed to play sound file at %s", file)) end + end end \ No newline at end of file diff --git a/Complete Projects/Legion/_GlobalTicker.lua b/WeakAuras/Projects/_GlobalTicker.lua similarity index 97% rename from Complete Projects/Legion/_GlobalTicker.lua rename to WeakAuras/Projects/_GlobalTicker.lua index 9e73e28..b78019e 100644 --- a/Complete Projects/Legion/_GlobalTicker.lua +++ b/WeakAuras/Projects/_GlobalTicker.lua @@ -1,11 +1,11 @@ ---PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED -function() - if not WeakAurasSaved.GlobalTicker._callback then - WeakAurasSaved.GlobalTicker = C_Timer.NewTicker(0.2, function() WeakAuras.ScanEvents("GLOBAL_TICKER") end) - end -end - ---INIT -if not WeakAurasSaved.GlobalTicker._callback then - WeakAurasSaved.GlobalTicker = C_Timer.NewTicker(0.2, function() WeakAuras.ScanEvents("GLOBAL_TICKER") end) -end +--PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED +function() + if not WeakAurasSaved.GlobalTicker._callback then + WeakAurasSaved.GlobalTicker = C_Timer.NewTicker(0.2, function() WeakAuras.ScanEvents("GLOBAL_TICKER") end) + end +end + +--INIT +if not WeakAurasSaved.GlobalTicker._callback then + WeakAurasSaved.GlobalTicker = C_Timer.NewTicker(0.2, function() WeakAuras.ScanEvents("GLOBAL_TICKER") end) +end diff --git a/FreshShit/_GlobalTickers/event.lua b/WeakAuras/Projects/_GlobalTickers/event.lua similarity index 97% rename from FreshShit/_GlobalTickers/event.lua rename to WeakAuras/Projects/_GlobalTickers/event.lua index 14597de..6d84dd2 100644 --- a/FreshShit/_GlobalTickers/event.lua +++ b/WeakAuras/Projects/_GlobalTickers/event.lua @@ -1,14 +1,14 @@ --- PLAYER_ENTERING_WORLD GUILD_ROSTER_UPDATE -function(e) - for interval, ticker in pairs(aura_env.Tickers) do - if ticker == 0 then - if aura_env.Debug then print("Creating ticker") end - local tickerEvent = string.format("TICKER_%d", interval) - aura_env.Tickers[interval] = C_Timer.NewTicker(interval / 1000, function() - WeakAuras.ScanEvents(tickerEvent) - end) - else - if aura_env.Debug then print("Ticker already exists") end - end - end +-- PLAYER_ENTERING_WORLD GUILD_ROSTER_UPDATE +function(e) + for interval, ticker in pairs(aura_env.Tickers) do + if ticker == 0 then + if aura_env.Debug then print("Creating ticker") end + local tickerEvent = string.format("TICKER_%d", interval) + aura_env.Tickers[interval] = C_Timer.NewTicker(interval / 1000, function() + WeakAuras.ScanEvents(tickerEvent) + end) + else + if aura_env.Debug then print("Ticker already exists") end + end + end end \ No newline at end of file diff --git a/FreshShit/_GlobalTickers/export b/WeakAuras/Projects/_GlobalTickers/export similarity index 100% rename from FreshShit/_GlobalTickers/export rename to WeakAuras/Projects/_GlobalTickers/export diff --git a/FreshShit/_GlobalTickers/init.lua b/WeakAuras/Projects/_GlobalTickers/init.lua similarity index 93% rename from FreshShit/_GlobalTickers/init.lua rename to WeakAuras/Projects/_GlobalTickers/init.lua index 912f39c..525d396 100644 --- a/FreshShit/_GlobalTickers/init.lua +++ b/WeakAuras/Projects/_GlobalTickers/init.lua @@ -1,10 +1,10 @@ -aura_env.Debug = false -aura_env.Tickers = { - [100] = 0, - [200] = 0, - [500] = 0, - [1000] = 0, - [5000] = 0, - [10000] = 0, - [60000] = 0, -} +aura_env.Debug = false +aura_env.Tickers = { + [100] = 0, + [200] = 0, + [500] = 0, + [1000] = 0, + [5000] = 0, + [10000] = 0, + [60000] = 0, +} diff --git a/FreshShit/_ReactiveValue/event.lua b/WeakAuras/Projects/_ReactiveValue/event.lua similarity index 96% rename from FreshShit/_ReactiveValue/event.lua rename to WeakAuras/Projects/_ReactiveValue/event.lua index 1b73b31..c7df21e 100644 --- a/FreshShit/_ReactiveValue/event.lua +++ b/WeakAuras/Projects/_ReactiveValue/event.lua @@ -1,681 +1,681 @@ --- PLAYER_ENTERING_WORLD -function(e) - if ReactiveValue then return end - - ---@diagnostic disable: missing-return - local function dumpTable(table, depth) - if (depth > 200) then - print("Error: Depth > 200 in dumpTable()") - return - end - for k, v in pairs(table) do - if (type(v) == "table") then - print(string.rep(" ", depth) .. k .. ":") - dumpTable(v, depth + 1) - else - print(string.rep(" ", depth) .. k .. ": ", v) - end - end - end - - local metadata = { - ---@param self ReactiveValue - ---@param other ReactiveValue - ---@return ReactiveValue|nil - __add = function(self, other) - local otherType = type(other) - if otherType == "table" and other._type and other._type == self._type and other._value then - return self._value + other._value - end - if otherType == "string" and self._type == otherType then - return self._value .. other - end - if otherType == "number" and self._type == otherType then - return self._value + other - end - return nil - end, - ---@param self ReactiveValue - ---@param other ReactiveValue - ---@return ReactiveValue|nil - __mul = function(self, other) - local otherType = type(other) - if otherType == "table" and other._type and other._type == self._type and other._value then - return self._value * other._value - end - if otherType == "number" and self._type == otherType then - return self._value * other - end - return nil - end, - ---@param self ReactiveValue - ---@param other ReactiveValue - ---@return ReactiveValue|nil - __sub = function(self, other) - local otherType = type(other) - if otherType == "table" and other._type and other._type == self._type and other._value then - return self._value - other._value - end - if otherType == "number" and self._type == otherType then - return self._value - other - end - return nil - end, - ---@param self ReactiveValue - ---@param other ReactiveValue - ---@return ReactiveValue|nil - __div = function(self, other) - local otherType = type(other) - if otherType == "table" and other._type and other._type == self._type and other._value then - return self._value / other._value - end - if otherType == "number" and self._type == otherType then - return self._value / other - end - return nil - end, - ---@param self ReactiveValue - ---@param other ReactiveValue - ---@return ReactiveValue|nil - __mod = function(self, other) - local otherType = type(other) - if otherType == "table" and other._type and other._type == self._type and other._value then - return self._value % other._value - end - if otherType == "number" and self._type == otherType then - return self._value % other - end - return nil - end, - ---@param self ReactiveValue - ---@param other ReactiveValue - ---@return ReactiveValue|nil - __pow = function(self, other) - local otherType = type(other) - if otherType == "table" and other._type and other._type == self._type and other._value then - return self._value ^ other._value - end - if otherType == "number" and self._type == otherType then - return self._value ^ other - end - return nil - end, - ---@param self ReactiveValue - ---@param other ReactiveValue - ---@return boolean - __eq = function(self, other) - local otherType = type(other) - if otherType == "table" and other._type and other._type == self._type and other._value then - return self._value == other._value - end - return self._value == other - end, - ---@param self ReactiveValue - ---@param other ReactiveValue - ---@return boolean - __lt = function(self, other) - local otherType = type(other) - if otherType == "table" and other._type and other._type == self._type and other._value then - return self._value < other._value - end - return self._value < other - end, - ---@param self ReactiveValue - ---@param other ReactiveValue - ---@return boolean - __le = function(self, other) - local otherType = type(other) - if otherType == "table" and other._type and other._type == self._type and other._value then - return self._value <= other._value - end - return self._value <= other - end, - ---@param self ReactiveValue - ---@param other ReactiveValue - ---@return boolean - __gt = function(self, other) - local otherType = type(other) - if otherType == "table" and other._type and other._type == self._type and other._value then - return self._value > other._value - end - return self._value > other - end, - ---@param self ReactiveValue - ---@param other ReactiveValue - ---@return boolean - __ge = function(self, other) - local otherType = type(other) - if otherType == "table" and other._type and other._type == self._type and other._value then - return self._value >= other._value - end - return self._value >= other - end, - ---@param self ReactiveValue - ---@return number - __len = function(self) - if self._type == "table" then - return #self._value - end - if self._type == "string" then - return string.len(self._value) - end - return 0 - end, - ---@param self ReactiveValue - ---@return string - __tostring = function(self) - return tostring(self._value) - end, - ---@param self ReactiveValue - ---@param key string - ---@param value any - ---@return nil - __newindex = function(self, key, value) - local setupComplete = rawget(self, "_setupComplete") - if setupComplete == nil or setupComplete == false then - rawset(self, key, value) - return - end - if self._type ~= "table" then - rawset(self, key, value) - return - end - - self._value[key] = value - local ChangedKey = { key } - - -- If the value being assigned is a ReactiveValue - -- Then listen to changes on it as well - -- And propagate those changes upwards - if self._recursive and getmetatable(value) == getmetatable(self) then - self:_setupListeners(key, value) - end - - self:_notify() - self:_notifyFieldChanged(ChangedKey) - self:_notifyAnyFieldChanged(ChangedKey) - end, - ---@param self ReactiveValue - ---@param key string - ---@return any|nil - __index = function(self, key) - local value = rawget(self, key) - if value ~= nil then - return value - end - if rawget(self, "_type") ~= "table" then - return nil - end - local innerTable = rawget(self, "_value") - if innerTable ~= nil then - return rawget(innerTable, key) - end - return nil - end - -- __index = ReactiveValue - } - - --- Sadly I could not get @generic to play nice with this class - --- I think it's not ready yet, there are issues on github describing similar problems and it is marked as WIP... - --- Guess I'll have to live without it for now and specify type of a RV in #type - - ---## A type safe value that can be listened to for changes - ---### **Always use RV:set() for setting primitive values** - --- Supports primitive values and tables
- --- Tables can be listened to for changes on any field or a specific field
- ---### Example usage (value):
- --- ```lua - --- local test = ReactiveValue.new(1) - --- test:onChange(function(value) - --- print("test changed to " .. value) - --- end) - --- test:set(2) - --- test:set(test + 3) - --- ``` - ---### Example usage (table):
- --- ```lua - --- local test = ReactiveValue.new({1, 2, 3}) - --- test:onAnyFieldChange(function(field, value) - --- print(string.format("test.%s changed to %s", table.concat(field, "."), value)) - --- end) - --- test[1] = 4 -- test.1 changed to 4 - --- test[4] = {1, 2, 3} -- test.4 changed to - --- test[4][1] = 14 -- No log(!!) because test[4] is a table and not a ReactiveValue - --- ``` - ---### To trigger a callback for `test[4][1]` in the previous example do:
- --- ```lua - --- local test = ReactiveValue.new({1, 2, 3}, true) - --- test:onAnyFieldChange(function(field, value) - --- print(string.format("test.%s changed to %s", table.concat(field, "."), value)) - --- end) - --- test[1] = 4 -- test.1 changed to 4 - --- test[4] = {1, 2, 3} -- test.4 changed to
- --- test[4][1] = 14 -- test.4.1 changed to 14 - --- ``` - ---### To listen to a specific field of a table do:
- --- ```lua - --- local test = ReactiveValue.new({1, 2, 3}, true) - --- test:onFieldChange("1", function(value) - --- print("test.1 changed to " .. value) - --- end) - --- test[1] = 4 -- test.1 changed to 4 - --- test[4] = {1, 2, 3} -- Does not trigger callback - -- ``` - ---@class ReactiveValue - ---@field _listeners table - ---@field _fieldListeners table> - ---@field _anyFieldListeners table> - ---@field _oneTimeListeners table - ---@field _value any - ---@field _type string - ---@field _recursive boolean? - ReactiveValue = { - ---#### Get the underlying value of a ReactiveValue - ---@param self ReactiveValue - ---@return any - get = function(self) end, - - ---### Set the underlying value of a ReactiveValue triggering listener callbacks - ---@param self ReactiveValue - ---@param newValue any - set = function(self, newValue) end, - - ---## EVENT - ---### Register a listener that is triggered whenever the underlying value changes - --- Returns a function that can be called to undo the callback - ---@param self ReactiveValue - ---@param callback fun(value: any, type: string) - ---@return fun(): nil - onChange = function(self, callback) end, - - ---## EVENT - ---### Register a listener that is triggered whenever a specific field of a table changes - --- Returns a function that can be called to undo the callback - ---@param self ReactiveValue - ---@param field string - ---@param callback fun(field: string[], value: any, type: string) - ---@return fun(): nil - onFieldChange = function(self, field, callback) end, - - ---## EVENT - ---### Register a listener that is triggered whenever any field of a table changes - --- Returns a function that can be called to undo the callback - ---@param self ReactiveValue - ---@param callback fun(field: string[], value: any, type: string) - ---@param depth number? How deep to listen for changes - ---@return fun(): nil - onAnyFieldChange = function(self, callback, depth) end, - - ---## EVENT - ---### Register a listener that is triggered ONCE whenever the underlying value changes - --- Returns a function that can be called to undo the callback - ---@param self ReactiveValue - ---@param callback fun(value: any, type: string) - ---@return fun(): nil - once = function(self, callback) end, - ---### Setup listeners for all fields of a table recursively - --- This is used to ensure that listeners are notified recursively - - ---@param self ReactiveValue - _setupAllListenersRecursively = function(self) end, - ---### Setup listeners for a specific field of a table recursively - --- This is used to ensure that listeners are notified recursively - - ---@param self ReactiveValue - _setupListeners = function(self, key, value, recursive) end, - - ---### Notify listeners that the underlying value has changed - ---@param self ReactiveValue - ---@return nil - ---#### Event contains: - --- 2. value: any - The new value of the changed field - --- 3. type: string - The type of the new value of the changed field - _notify = function(self) end, - - ---### Notify listeners that a specific field of the underlying value has changed - ---#### Event contains: - --- 1. field: table - A list of keys that lead to the changed field - --- 2. value: any - The new value of the changed field - --- 3. type: string - The type of the new value of the changed field - ---@param self ReactiveValue - _notifyFieldChanged = function(self, field) end, - - ---### Notify listeners that any field of the underlying value has changed - ---#### Event contains: - --- 1. field: table - A list of keys that lead to the changed field - --- 2. value: any - The new value of the changed field - --- 3. type: string - The type of the new value of the changed field - _notifyAnyFieldChanged = function(self, field) end, - } - ---### Constructor - ---@param initialValue any - ---@param recursive boolean? - ---@return ReactiveValue - ReactiveValue.new = function(initialValue, recursive) - local self = setmetatable({}, metadata) - self._listeners = {} - self._fieldListeners = {} - self._anyFieldListeners = {} - self._oneTimeListeners = {} - self._value = initialValue - self._type = type(initialValue) - self._recursive = recursive or false - - ---@return any - self.get = function(self) - return self._value - end - ---@param newValue any - self.set = function(self, newValue) - if self._value == newValue then - return - end - if type(newValue) ~= self._type then - error("Expected " .. self._type .. ", got " .. type(newValue)) - return - end - self._value = newValue - self:_notify() - end - self.onChange = function(self, callback) - if type(callback) ~= "function" then - error("Expected function, got " .. type(callback)) - return function() end - end - self._listeners[callback] = true - return function() - self._listeners[callback] = nil - end - end - self.onFieldChange = function(self, field, callback) - if type(callback) ~= "function" then - error("Expected function, got " .. type(callback)) - return function() end - end - if self._fieldListeners[field] == nil then - self._fieldListeners[field] = {} - end - self._fieldListeners[field][callback] = true - return function() - self._fieldListeners[field][callback] = nil - end - end - self.onAnyFieldChange = function(self, callback, depth) - depth = depth or 99999 - if type(callback) ~= "function" then - error("Expected function, got " .. type(callback)) - return function() end - end - if self._anyFieldListeners[depth] == nil then - self._anyFieldListeners[depth] = {} - end - self._anyFieldListeners[depth][callback] = true - return function() - self._anyFieldListeners[depth][callback] = nil - end - end - self.once = function(self, callback) - if type(callback) ~= "function" then - error("Expected function, got " .. type(callback)) - return function() end - end - self._oneTimeListeners[callback] = true - return function() - self._oneTimeListeners[callback] = nil - end - end - - self._setupAllListenersRecursively = function(self) - if self._type ~= "table" then - return - end - for key, value in pairs(self._value) do - self:_setupListeners(key, value, true) - end - end - ---@param key string - ---@param value any - ---@param recursive boolean? - self._setupListeners = function(self, key, value, recursive) - recursive = recursive or false - if self._type ~= "table" then - return - end - if getmetatable(value) ~= getmetatable(self) then - return - end - value._recursive = true - if value._type == "table" then - value:onAnyFieldChange(function(key2) - ChangedKey = { key, table.unpack(key2) } - self:_notifyFieldChanged(ChangedKey) - self:_notifyAnyFieldChanged(ChangedKey) - end) - else - value:onChange(function(newVal) - ChangedKey = { key } - self:_notifyFieldChanged(ChangedKey) - self:_notifyAnyFieldChanged(ChangedKey) - end) - end - - if recursive then - value:_setupAllListenersRecursively() - end - end - - if recursive then - self:_setupAllListenersRecursively() - end - - self._notify = function(self) - for listener, _ in pairs(self._oneTimeListeners) do - -- task.spawn(listener, self._value, self._type) - listener(self._value, self._type) - self._oneTimeListeners[listener] = nil - end - for listener, _ in pairs(self._listeners) do - -- task.spawn(listener, self._value, self._type) - listener(self._value, self._type) - end - end - -- TODO: Maybe implement some sort of regex here or something... - -- Such as listening to *.field1 or something - -- But this (having to loop over listeners and evaluate some condition) would tank performance - -- Compared to a simple lookup - -- So I'm not going to do anything about it for now, until I figure out a better way - ---@param field table A list of keys that lead to the changed field - ---@return nil - self._notifyFieldChanged = function(self, field) - local value = self._value - for _, key in ipairs(field) do - value = value[key] - end - - local strfield = table.concat(field, ".") - if self._fieldListeners[strfield] == nil then - return - end - for listener, _ in pairs(self._fieldListeners[strfield]) do - -- task.spawn(listener, value, type(value)) - listener(value, type(value)) - end - end - ---@param self ReactiveValue - ---@param field table A list of keys that lead to the changed field - ---@return nil - self._notifyAnyFieldChanged = function(self, field) - local value = self._value - for _, key in ipairs(field) do - value = value[key] - end - local keyDepth = #field - for listenerDepth, listeners in pairs(self._anyFieldListeners) do - if listenerDepth >= keyDepth then - for listener, _ in pairs(listeners) do - -- The reason this also returns type(value) is so that clients don't have to compute type(value) - -- I assume some of them might want to do it so computing it once is probably better than having every client compute it for themselves - -- task.spawn(listener, field, value, type(value)) - listener(field, value, type(value)) - end - end - end - end - - self._setupComplete = true - return self - end - - _G["ReactiveValue"] = ReactiveValue - - -- S -- begintest - -- S local invocations = 0 - -- S -- Integer example - -- S local test = ReactiveValue.new(1) - -- S test:onChange(function(value) - -- S invocations = invocations + 1 - -- S print("test changed to " .. value) - -- S end) - -- S test:set(2) - -- S assert(invocations == 1) - -- S - -- S invocations = 0 - -- String example - -- S test = ReactiveValue.new("test") - -- S test:onChange(function(value) - -- S invocations = invocations + 1 - -- S print("test changed to " .. value) - -- S end) - -- S test:set("test2") - -- S assert(invocations == 1) - -- S - -- S -- Type safety example - -- S local res, err = pcall(test.set, test, 1) - -- S assert(res == false) - -- S assert(err:find("Expected string, got number")) - -- S - -- S -- Table example - -- S invocations = 0 - -- S test = ReactiveValue.new({1, 2, 3}) - -- S local clbk = test:onChange(function(value) - -- S invocations = invocations + 1 - -- S print("test changed to") - -- S dumpTable(value, 0) - -- S end) - -- S test:set({1, 2, 3, 4}) - -- S assert(invocations == 1) - -- S - -- S -- Callback removal example - -- S clbk() - -- S - -- S invocations = 0 - -- S -- Any field change example - -- S clbk = test:onAnyFieldChange(function(field, value) - -- S invocations = invocations + 1 - -- S print("test." .. table.concat(field, ".") .. " changed to " .. tostring(value)) - -- S end) - -- S test.Pero = 1 - -- S test.Pero = nil - -- S assert(invocations == 2) - -- S clbk() - -- S - -- S invocations = 0 - -- S -- Field change example - -- S test:onFieldChange("Pero", function(value) - -- S invocations = invocations + 1 - -- S print("test.Pero changed to " .. value) - -- S end) - -- S test.Pero = 2 - -- S assert(invocations == 1) - -- S - -- S invocations = 0 - -- S -- One time listener example - -- S test:once(function(value) - -- S invocations = invocations + 1 - -- S print("test changed to") - -- S dumpTable(value, 0) - -- S end) - -- S test:set({3, 2, 1}) - -- S assert(invocations == 1) - -- S - -- S invocations = 0 - -- S -- Table push example - -- S test = ReactiveValue.new({}) - -- S test:onChange(function(value) - -- S invocations = invocations + 1 - -- S print("test changed to") - -- S dumpTable(value, 0) - -- S end) - -- S test:onAnyFieldChange(function(field, value) - -- S invocations = invocations + 1 - -- S print("test." .. table.concat(field, ".") .. " changed to " .. value) - -- S end) - -- S test[#test + 1] = 4 - -- S assert(invocations == 2) - -- S - -- S invocations = 0 - -- S test = ReactiveValue.new({ - -- S name = "pero", - -- S coins = ReactiveValue.new(1) - -- S }) - -- S test.coins:onChange(function(value) - -- S invocations = invocations + 1 - -- S print("test.coins changed to " .. value) - -- S end) - -- S test.coins:set(2) - -- S assert(invocations == 1) - -- S - -- S invocations = 0 - -- S test = ReactiveValue.new({ - -- S name = "pero", - -- S coins = ReactiveValue.new(1) - -- S }, true) - -- S test:onAnyFieldChange(function(field, value) - -- S invocations = invocations + 1 - -- S print("test." .. table.concat(field, ".") .. " changed to " .. tostring(value)) - -- S end) - -- S test.coins:set(2) - -- S test.pero2 = ReactiveValue.new({}) - -- S test.pero2.coins = ReactiveValue.new(1) - -- S test.pero2.coins:set(2) - -- S assert(invocations == 4) - -- S - -- S invocations = 0 - -- S test = ReactiveValue.new({ - -- S name = "pero", - -- S coins = ReactiveValue.new({ - -- S value = ReactiveValue.new(1) - -- S }) - -- S }, true) - -- S test:onAnyFieldChange(function(field, value) - -- S invocations = invocations + 1 - -- S print("test." .. table.concat(field, ".") .. " changed to " .. tostring(value)) - -- S end) - -- S test.coins.value:set(2) - -- S assert(invocations == 1) - -- S - -- S invocations = 0 - -- S test = ReactiveValue.new({}, true) - -- S test.coins = ReactiveValue.new({}) - -- S test.coins.value = ReactiveValue.new(1) - -- S test:onAnyFieldChange(function(field, value) - -- S invocations = invocations + 1 - -- S print("test." .. table.concat(field, ".") .. " changed to " .. tostring(value)) - -- S end) - -- S test.coins.value:set(3) - -- S assert(invocations == 1) - --S - --S invocations = 0 - --S test = ReactiveValue.new({}, true) - --S test:onAnyFieldChange(function(field, value) - --S invocations = invocations + 1 - --S print("test." .. table.concat(field, ".") .. " changed to " .. tostring(value)) - --S end, 1) - --S test.test2 = ReactiveValue.new({}, true) - --S test.test2.test3 = ReactiveValue.new(1) - --S assert(invocations == 1) - --S - -- S -- endtest - - -- return ReactiveValue +-- PLAYER_ENTERING_WORLD +function(e) + if ReactiveValue then return end + + ---@diagnostic disable: missing-return + local function dumpTable(table, depth) + if (depth > 200) then + print("Error: Depth > 200 in dumpTable()") + return + end + for k, v in pairs(table) do + if (type(v) == "table") then + print(string.rep(" ", depth) .. k .. ":") + dumpTable(v, depth + 1) + else + print(string.rep(" ", depth) .. k .. ": ", v) + end + end + end + + local metadata = { + ---@param self ReactiveValue + ---@param other ReactiveValue + ---@return ReactiveValue|nil + __add = function(self, other) + local otherType = type(other) + if otherType == "table" and other._type and other._type == self._type and other._value then + return self._value + other._value + end + if otherType == "string" and self._type == otherType then + return self._value .. other + end + if otherType == "number" and self._type == otherType then + return self._value + other + end + return nil + end, + ---@param self ReactiveValue + ---@param other ReactiveValue + ---@return ReactiveValue|nil + __mul = function(self, other) + local otherType = type(other) + if otherType == "table" and other._type and other._type == self._type and other._value then + return self._value * other._value + end + if otherType == "number" and self._type == otherType then + return self._value * other + end + return nil + end, + ---@param self ReactiveValue + ---@param other ReactiveValue + ---@return ReactiveValue|nil + __sub = function(self, other) + local otherType = type(other) + if otherType == "table" and other._type and other._type == self._type and other._value then + return self._value - other._value + end + if otherType == "number" and self._type == otherType then + return self._value - other + end + return nil + end, + ---@param self ReactiveValue + ---@param other ReactiveValue + ---@return ReactiveValue|nil + __div = function(self, other) + local otherType = type(other) + if otherType == "table" and other._type and other._type == self._type and other._value then + return self._value / other._value + end + if otherType == "number" and self._type == otherType then + return self._value / other + end + return nil + end, + ---@param self ReactiveValue + ---@param other ReactiveValue + ---@return ReactiveValue|nil + __mod = function(self, other) + local otherType = type(other) + if otherType == "table" and other._type and other._type == self._type and other._value then + return self._value % other._value + end + if otherType == "number" and self._type == otherType then + return self._value % other + end + return nil + end, + ---@param self ReactiveValue + ---@param other ReactiveValue + ---@return ReactiveValue|nil + __pow = function(self, other) + local otherType = type(other) + if otherType == "table" and other._type and other._type == self._type and other._value then + return self._value ^ other._value + end + if otherType == "number" and self._type == otherType then + return self._value ^ other + end + return nil + end, + ---@param self ReactiveValue + ---@param other ReactiveValue + ---@return boolean + __eq = function(self, other) + local otherType = type(other) + if otherType == "table" and other._type and other._type == self._type and other._value then + return self._value == other._value + end + return self._value == other + end, + ---@param self ReactiveValue + ---@param other ReactiveValue + ---@return boolean + __lt = function(self, other) + local otherType = type(other) + if otherType == "table" and other._type and other._type == self._type and other._value then + return self._value < other._value + end + return self._value < other + end, + ---@param self ReactiveValue + ---@param other ReactiveValue + ---@return boolean + __le = function(self, other) + local otherType = type(other) + if otherType == "table" and other._type and other._type == self._type and other._value then + return self._value <= other._value + end + return self._value <= other + end, + ---@param self ReactiveValue + ---@param other ReactiveValue + ---@return boolean + __gt = function(self, other) + local otherType = type(other) + if otherType == "table" and other._type and other._type == self._type and other._value then + return self._value > other._value + end + return self._value > other + end, + ---@param self ReactiveValue + ---@param other ReactiveValue + ---@return boolean + __ge = function(self, other) + local otherType = type(other) + if otherType == "table" and other._type and other._type == self._type and other._value then + return self._value >= other._value + end + return self._value >= other + end, + ---@param self ReactiveValue + ---@return number + __len = function(self) + if self._type == "table" then + return #self._value + end + if self._type == "string" then + return string.len(self._value) + end + return 0 + end, + ---@param self ReactiveValue + ---@return string + __tostring = function(self) + return tostring(self._value) + end, + ---@param self ReactiveValue + ---@param key string + ---@param value any + ---@return nil + __newindex = function(self, key, value) + local setupComplete = rawget(self, "_setupComplete") + if setupComplete == nil or setupComplete == false then + rawset(self, key, value) + return + end + if self._type ~= "table" then + rawset(self, key, value) + return + end + + self._value[key] = value + local ChangedKey = { key } + + -- If the value being assigned is a ReactiveValue + -- Then listen to changes on it as well + -- And propagate those changes upwards + if self._recursive and getmetatable(value) == getmetatable(self) then + self:_setupListeners(key, value) + end + + self:_notify() + self:_notifyFieldChanged(ChangedKey) + self:_notifyAnyFieldChanged(ChangedKey) + end, + ---@param self ReactiveValue + ---@param key string + ---@return any|nil + __index = function(self, key) + local value = rawget(self, key) + if value ~= nil then + return value + end + if rawget(self, "_type") ~= "table" then + return nil + end + local innerTable = rawget(self, "_value") + if innerTable ~= nil then + return rawget(innerTable, key) + end + return nil + end + -- __index = ReactiveValue + } + + --- Sadly I could not get @generic to play nice with this class + --- I think it's not ready yet, there are issues on github describing similar problems and it is marked as WIP... + --- Guess I'll have to live without it for now and specify type of a RV in #type + + ---## A type safe value that can be listened to for changes + ---### **Always use RV:set() for setting primitive values** + --- Supports primitive values and tables
+ --- Tables can be listened to for changes on any field or a specific field
+ ---### Example usage (value):
+ --- ```lua + --- local test = ReactiveValue.new(1) + --- test:onChange(function(value) + --- print("test changed to " .. value) + --- end) + --- test:set(2) + --- test:set(test + 3) + --- ``` + ---### Example usage (table):
+ --- ```lua + --- local test = ReactiveValue.new({1, 2, 3}) + --- test:onAnyFieldChange(function(field, value) + --- print(string.format("test.%s changed to %s", table.concat(field, "."), value)) + --- end) + --- test[1] = 4 -- test.1 changed to 4 + --- test[4] = {1, 2, 3} -- test.4 changed to
+ --- test[4][1] = 14 -- No log(!!) because test[4] is a table and not a ReactiveValue + --- ``` + ---### To trigger a callback for `test[4][1]` in the previous example do:
+ --- ```lua + --- local test = ReactiveValue.new({1, 2, 3}, true) + --- test:onAnyFieldChange(function(field, value) + --- print(string.format("test.%s changed to %s", table.concat(field, "."), value)) + --- end) + --- test[1] = 4 -- test.1 changed to 4 + --- test[4] = {1, 2, 3} -- test.4 changed to
+ --- test[4][1] = 14 -- test.4.1 changed to 14 + --- ``` + ---### To listen to a specific field of a table do:
+ --- ```lua + --- local test = ReactiveValue.new({1, 2, 3}, true) + --- test:onFieldChange("1", function(value) + --- print("test.1 changed to " .. value) + --- end) + --- test[1] = 4 -- test.1 changed to 4 + --- test[4] = {1, 2, 3} -- Does not trigger callback + -- ``` + ---@class ReactiveValue + ---@field _listeners table + ---@field _fieldListeners table> + ---@field _anyFieldListeners table> + ---@field _oneTimeListeners table + ---@field _value any + ---@field _type string + ---@field _recursive boolean? + ReactiveValue = { + ---#### Get the underlying value of a ReactiveValue + ---@param self ReactiveValue + ---@return any + get = function(self) end, + + ---### Set the underlying value of a ReactiveValue triggering listener callbacks + ---@param self ReactiveValue + ---@param newValue any + set = function(self, newValue) end, + + ---## EVENT + ---### Register a listener that is triggered whenever the underlying value changes + --- Returns a function that can be called to undo the callback + ---@param self ReactiveValue + ---@param callback fun(value: any, type: string) + ---@return fun(): nil + onChange = function(self, callback) end, + + ---## EVENT + ---### Register a listener that is triggered whenever a specific field of a table changes + --- Returns a function that can be called to undo the callback + ---@param self ReactiveValue + ---@param field string + ---@param callback fun(field: string[], value: any, type: string) + ---@return fun(): nil + onFieldChange = function(self, field, callback) end, + + ---## EVENT + ---### Register a listener that is triggered whenever any field of a table changes + --- Returns a function that can be called to undo the callback + ---@param self ReactiveValue + ---@param callback fun(field: string[], value: any, type: string) + ---@param depth number? How deep to listen for changes + ---@return fun(): nil + onAnyFieldChange = function(self, callback, depth) end, + + ---## EVENT + ---### Register a listener that is triggered ONCE whenever the underlying value changes + --- Returns a function that can be called to undo the callback + ---@param self ReactiveValue + ---@param callback fun(value: any, type: string) + ---@return fun(): nil + once = function(self, callback) end, + ---### Setup listeners for all fields of a table recursively + --- This is used to ensure that listeners are notified recursively + + ---@param self ReactiveValue + _setupAllListenersRecursively = function(self) end, + ---### Setup listeners for a specific field of a table recursively + --- This is used to ensure that listeners are notified recursively + + ---@param self ReactiveValue + _setupListeners = function(self, key, value, recursive) end, + + ---### Notify listeners that the underlying value has changed + ---@param self ReactiveValue + ---@return nil + ---#### Event contains: + --- 2. value: any - The new value of the changed field + --- 3. type: string - The type of the new value of the changed field + _notify = function(self) end, + + ---### Notify listeners that a specific field of the underlying value has changed + ---#### Event contains: + --- 1. field: table - A list of keys that lead to the changed field + --- 2. value: any - The new value of the changed field + --- 3. type: string - The type of the new value of the changed field + ---@param self ReactiveValue + _notifyFieldChanged = function(self, field) end, + + ---### Notify listeners that any field of the underlying value has changed + ---#### Event contains: + --- 1. field: table - A list of keys that lead to the changed field + --- 2. value: any - The new value of the changed field + --- 3. type: string - The type of the new value of the changed field + _notifyAnyFieldChanged = function(self, field) end, + } + ---### Constructor + ---@param initialValue any + ---@param recursive boolean? + ---@return ReactiveValue + ReactiveValue.new = function(initialValue, recursive) + local self = setmetatable({}, metadata) + self._listeners = {} + self._fieldListeners = {} + self._anyFieldListeners = {} + self._oneTimeListeners = {} + self._value = initialValue + self._type = type(initialValue) + self._recursive = recursive or false + + ---@return any + self.get = function(self) + return self._value + end + ---@param newValue any + self.set = function(self, newValue) + if self._value == newValue then + return + end + if type(newValue) ~= self._type then + error("Expected " .. self._type .. ", got " .. type(newValue)) + return + end + self._value = newValue + self:_notify() + end + self.onChange = function(self, callback) + if type(callback) ~= "function" then + error("Expected function, got " .. type(callback)) + return function() end + end + self._listeners[callback] = true + return function() + self._listeners[callback] = nil + end + end + self.onFieldChange = function(self, field, callback) + if type(callback) ~= "function" then + error("Expected function, got " .. type(callback)) + return function() end + end + if self._fieldListeners[field] == nil then + self._fieldListeners[field] = {} + end + self._fieldListeners[field][callback] = true + return function() + self._fieldListeners[field][callback] = nil + end + end + self.onAnyFieldChange = function(self, callback, depth) + depth = depth or 99999 + if type(callback) ~= "function" then + error("Expected function, got " .. type(callback)) + return function() end + end + if self._anyFieldListeners[depth] == nil then + self._anyFieldListeners[depth] = {} + end + self._anyFieldListeners[depth][callback] = true + return function() + self._anyFieldListeners[depth][callback] = nil + end + end + self.once = function(self, callback) + if type(callback) ~= "function" then + error("Expected function, got " .. type(callback)) + return function() end + end + self._oneTimeListeners[callback] = true + return function() + self._oneTimeListeners[callback] = nil + end + end + + self._setupAllListenersRecursively = function(self) + if self._type ~= "table" then + return + end + for key, value in pairs(self._value) do + self:_setupListeners(key, value, true) + end + end + ---@param key string + ---@param value any + ---@param recursive boolean? + self._setupListeners = function(self, key, value, recursive) + recursive = recursive or false + if self._type ~= "table" then + return + end + if getmetatable(value) ~= getmetatable(self) then + return + end + value._recursive = true + if value._type == "table" then + value:onAnyFieldChange(function(key2) + ChangedKey = { key, table.unpack(key2) } + self:_notifyFieldChanged(ChangedKey) + self:_notifyAnyFieldChanged(ChangedKey) + end) + else + value:onChange(function(newVal) + ChangedKey = { key } + self:_notifyFieldChanged(ChangedKey) + self:_notifyAnyFieldChanged(ChangedKey) + end) + end + + if recursive then + value:_setupAllListenersRecursively() + end + end + + if recursive then + self:_setupAllListenersRecursively() + end + + self._notify = function(self) + for listener, _ in pairs(self._oneTimeListeners) do + -- task.spawn(listener, self._value, self._type) + listener(self._value, self._type) + self._oneTimeListeners[listener] = nil + end + for listener, _ in pairs(self._listeners) do + -- task.spawn(listener, self._value, self._type) + listener(self._value, self._type) + end + end + -- TODO: Maybe implement some sort of regex here or something... + -- Such as listening to *.field1 or something + -- But this (having to loop over listeners and evaluate some condition) would tank performance + -- Compared to a simple lookup + -- So I'm not going to do anything about it for now, until I figure out a better way + ---@param field table A list of keys that lead to the changed field + ---@return nil + self._notifyFieldChanged = function(self, field) + local value = self._value + for _, key in ipairs(field) do + value = value[key] + end + + local strfield = table.concat(field, ".") + if self._fieldListeners[strfield] == nil then + return + end + for listener, _ in pairs(self._fieldListeners[strfield]) do + -- task.spawn(listener, value, type(value)) + listener(value, type(value)) + end + end + ---@param self ReactiveValue + ---@param field table A list of keys that lead to the changed field + ---@return nil + self._notifyAnyFieldChanged = function(self, field) + local value = self._value + for _, key in ipairs(field) do + value = value[key] + end + local keyDepth = #field + for listenerDepth, listeners in pairs(self._anyFieldListeners) do + if listenerDepth >= keyDepth then + for listener, _ in pairs(listeners) do + -- The reason this also returns type(value) is so that clients don't have to compute type(value) + -- I assume some of them might want to do it so computing it once is probably better than having every client compute it for themselves + -- task.spawn(listener, field, value, type(value)) + listener(field, value, type(value)) + end + end + end + end + + self._setupComplete = true + return self + end + + _G["ReactiveValue"] = ReactiveValue + + -- S -- begintest + -- S local invocations = 0 + -- S -- Integer example + -- S local test = ReactiveValue.new(1) + -- S test:onChange(function(value) + -- S invocations = invocations + 1 + -- S print("test changed to " .. value) + -- S end) + -- S test:set(2) + -- S assert(invocations == 1) + -- S + -- S invocations = 0 + -- String example + -- S test = ReactiveValue.new("test") + -- S test:onChange(function(value) + -- S invocations = invocations + 1 + -- S print("test changed to " .. value) + -- S end) + -- S test:set("test2") + -- S assert(invocations == 1) + -- S + -- S -- Type safety example + -- S local res, err = pcall(test.set, test, 1) + -- S assert(res == false) + -- S assert(err:find("Expected string, got number")) + -- S + -- S -- Table example + -- S invocations = 0 + -- S test = ReactiveValue.new({1, 2, 3}) + -- S local clbk = test:onChange(function(value) + -- S invocations = invocations + 1 + -- S print("test changed to") + -- S dumpTable(value, 0) + -- S end) + -- S test:set({1, 2, 3, 4}) + -- S assert(invocations == 1) + -- S + -- S -- Callback removal example + -- S clbk() + -- S + -- S invocations = 0 + -- S -- Any field change example + -- S clbk = test:onAnyFieldChange(function(field, value) + -- S invocations = invocations + 1 + -- S print("test." .. table.concat(field, ".") .. " changed to " .. tostring(value)) + -- S end) + -- S test.Pero = 1 + -- S test.Pero = nil + -- S assert(invocations == 2) + -- S clbk() + -- S + -- S invocations = 0 + -- S -- Field change example + -- S test:onFieldChange("Pero", function(value) + -- S invocations = invocations + 1 + -- S print("test.Pero changed to " .. value) + -- S end) + -- S test.Pero = 2 + -- S assert(invocations == 1) + -- S + -- S invocations = 0 + -- S -- One time listener example + -- S test:once(function(value) + -- S invocations = invocations + 1 + -- S print("test changed to") + -- S dumpTable(value, 0) + -- S end) + -- S test:set({3, 2, 1}) + -- S assert(invocations == 1) + -- S + -- S invocations = 0 + -- S -- Table push example + -- S test = ReactiveValue.new({}) + -- S test:onChange(function(value) + -- S invocations = invocations + 1 + -- S print("test changed to") + -- S dumpTable(value, 0) + -- S end) + -- S test:onAnyFieldChange(function(field, value) + -- S invocations = invocations + 1 + -- S print("test." .. table.concat(field, ".") .. " changed to " .. value) + -- S end) + -- S test[#test + 1] = 4 + -- S assert(invocations == 2) + -- S + -- S invocations = 0 + -- S test = ReactiveValue.new({ + -- S name = "pero", + -- S coins = ReactiveValue.new(1) + -- S }) + -- S test.coins:onChange(function(value) + -- S invocations = invocations + 1 + -- S print("test.coins changed to " .. value) + -- S end) + -- S test.coins:set(2) + -- S assert(invocations == 1) + -- S + -- S invocations = 0 + -- S test = ReactiveValue.new({ + -- S name = "pero", + -- S coins = ReactiveValue.new(1) + -- S }, true) + -- S test:onAnyFieldChange(function(field, value) + -- S invocations = invocations + 1 + -- S print("test." .. table.concat(field, ".") .. " changed to " .. tostring(value)) + -- S end) + -- S test.coins:set(2) + -- S test.pero2 = ReactiveValue.new({}) + -- S test.pero2.coins = ReactiveValue.new(1) + -- S test.pero2.coins:set(2) + -- S assert(invocations == 4) + -- S + -- S invocations = 0 + -- S test = ReactiveValue.new({ + -- S name = "pero", + -- S coins = ReactiveValue.new({ + -- S value = ReactiveValue.new(1) + -- S }) + -- S }, true) + -- S test:onAnyFieldChange(function(field, value) + -- S invocations = invocations + 1 + -- S print("test." .. table.concat(field, ".") .. " changed to " .. tostring(value)) + -- S end) + -- S test.coins.value:set(2) + -- S assert(invocations == 1) + -- S + -- S invocations = 0 + -- S test = ReactiveValue.new({}, true) + -- S test.coins = ReactiveValue.new({}) + -- S test.coins.value = ReactiveValue.new(1) + -- S test:onAnyFieldChange(function(field, value) + -- S invocations = invocations + 1 + -- S print("test." .. table.concat(field, ".") .. " changed to " .. tostring(value)) + -- S end) + -- S test.coins.value:set(3) + -- S assert(invocations == 1) + --S + --S invocations = 0 + --S test = ReactiveValue.new({}, true) + --S test:onAnyFieldChange(function(field, value) + --S invocations = invocations + 1 + --S print("test." .. table.concat(field, ".") .. " changed to " .. tostring(value)) + --S end, 1) + --S test.test2 = ReactiveValue.new({}, true) + --S test.test2.test3 = ReactiveValue.new(1) + --S assert(invocations == 1) + --S + -- S -- endtest + + -- return ReactiveValue end \ No newline at end of file diff --git a/FreshShit/_ReactiveValue/export b/WeakAuras/Projects/_ReactiveValue/export similarity index 100% rename from FreshShit/_ReactiveValue/export rename to WeakAuras/Projects/_ReactiveValue/export diff --git a/FreshShit/_Shared/CLEUParser.lua b/WeakAuras/Projects/_Shared/CLEUParser.lua similarity index 96% rename from FreshShit/_Shared/CLEUParser.lua rename to WeakAuras/Projects/_Shared/CLEUParser.lua index 220e5f3..b555ae4 100644 --- a/FreshShit/_Shared/CLEUParser.lua +++ b/WeakAuras/Projects/_Shared/CLEUParser.lua @@ -1,1283 +1,1283 @@ ----PLAYER_ENTERING_WORLD GUILD_ROSTER_UPDATE -function() - CLEUEventInfo = { - ["GENERIC"] = { - ["timestamp"] = 1, - ["subevent"] = 2, - ["hideCaster"] = 3, - ["sourceGUID"] = 4, - ["sourceName"] = 5, - ["sourceFlags"] = 6, - ["sourceRaidFlags"] = 7, - ["destGUID"] = 8, - ["destName"] = 9, - ["destFlags"] = 10, - ["destRaidFlags"] = 11 - }, - ["GENERIC_SPELL"] = { - ["spellId"] = 12, - ["spellName"] = 13, - ["spellSchool"] = 14 - }, - ["GENERIC_DAMAGE"] = { - ["amount"] = 15, - ["overkill"] = 16, - ["school"] = 17, - ["resisted"] = 18, - ["blocked"] = 19, - ["absorbed"] = 20, - ["critical"] = 21, - ["glancing"] = 22, - ["crushing"] = 23, - ["isOffHand"] = 24 - }, - ["GENERIC_MISSED"] = { - ["missType"] = 15, - ["isOffHand"] = 16, - ["amountMissed"] = 17, - ["critical"] = 18 - }, - ["GENERIC_HEAL"] = { - ["amount"] = 15, - ["overhealing"] = 16, - ["absorbed"] = 17, - ["critical"] = 18 - }, - ["GENERIC_HEAL_ABSORBED"] = { - ["extraGUID"] = 15, - ["extraName"] = 17, - ["extraFlags"] = 17, - ["extraRaidFlags"] = 18, - ["extraSpellID"] = 19, - ["extraSpellName"] = 20, - ["extraSchool"] = 21, - ["absorbedAmount"] = 22, - ["totalAmount"] = 23 - }, - ["GENERIC_ENERGIZE"] = { - ["amount"] = 15, - ["overEnergize"] = 16, - ["powerType"] = 17 - }, - ["GENERIC_DRAIN"] = { - ["amount"] = 15, - ["powerType"] = 16, - ["extraAmount"] = 17 - }, - ["GENERIC_LEECH"] = { - ["amount"] = 15, - ["powerType"] = 16, - ["extraAmount"] = 17 - }, - ["GENERIC_INTERRUPT"] = { - ["extraSpellId"] = 15, - ["extraSpellName"] = 16, - ["extraSchool"] = 17 - }, - ["GENERIC_DISPEL"] = { - ["extraSpellId"] = 15, - ["extraSpellName"] = 16, - ["extraSchool"] = 17, - ["auraType"] = 18 - }, - ["GENERIC_DISPEL_FAILED"] = { - ["extraSpellId"] = 15, - ["extraSpellName"] = 16, - ["extraSchool"] = 17 - }, - ["GENERIC_STOLEN"] = { - ["extraSpellId"] = 15, - ["extraSpellName"] = 16, - ["extraSchool"] = 17, - ["auraType"] = 18 - }, - ["GENERIC_EXTRA_ATTACKS"] = { ["amount"] = 15 }, - ["GENERIC_AURA_APPLIED"] = { ["auraType"] = 15, ["amount"] = 16 }, - ["GENERIC_AURA_REMOVED"] = { ["auraType"] = 15, ["amount"] = 16 }, - ["GENERIC_AURA_APPLIED_DOSE"] = { ["auraType"] = 15, ["amount"] = 16 }, - ["GENERIC_AURA_REMOVED_DOSE"] = { ["auraType"] = 15, ["amount"] = 16 }, - ["GENERIC_AURA_REFRESH"] = { ["auraType"] = 15 }, - ["GENERIC_AURA_BROKEN"] = { ["auraType"] = 15 }, - ["GENERIC_AURA_BROKEN_SPELL"] = { - ["extraSpellId"] = 15, - ["extraSpellName"] = 16, - ["extraSchool"] = 17, - ["auraType"] = 18 - }, - ["GENERIC_CAST_START"] = {}, - ["GENERIC_CAST_SUCCESS"] = {}, - ["GENERIC_CAST_FAILED"] = {} - } - - CLEUEventInfo["SWING_DAMAGE"] = CLEUEventInfo["GENERIC_DAMAGE"] - CLEUEventInfo["SWING_MISSED"] = CLEUEventInfo["GENERIC_MISSED"] - CLEUEventInfo["SWING_HEAL"] = CLEUEventInfo["GENERIC_HEAL"] - CLEUEventInfo["SWING_HEAL_ABSORBED"] = - CLEUEventInfo["GENERIC_HEAL_ABSORBED"] - CLEUEventInfo["SWING_ENERGIZE"] = CLEUEventInfo["GENERIC_ENERGIZE"] - CLEUEventInfo["SWING_DRAIN"] = CLEUEventInfo["GENERIC_DRAIN"] - CLEUEventInfo["SWING_LEECH"] = CLEUEventInfo["GENERIC_LEECH"] - CLEUEventInfo["SWING_INTERRUPT"] = CLEUEventInfo["GENERIC_INTERRUPT"] - CLEUEventInfo["SWING_DISPEL"] = CLEUEventInfo["GENERIC_DISPEL"] - CLEUEventInfo["SWING_DISPEL_FAILED"] = - CLEUEventInfo["GENERIC_DISPEL_FAILED"] - CLEUEventInfo["SWING_STOLEN"] = CLEUEventInfo["GENERIC_STOLEN"] - CLEUEventInfo["SWING_EXTRA_ATTACKS"] = - CLEUEventInfo["GENERIC_EXTRA_ATTACKS"] - CLEUEventInfo["SWING_AURA_APPLIED"] = CLEUEventInfo["GENERIC_AURA_APPLIED"] - CLEUEventInfo["SWING_AURA_REMOVED"] = CLEUEventInfo["GENERIC_AURA_REMOVED"] - CLEUEventInfo["SWING_AURA_APPLIED_DOSE"] = - CLEUEventInfo["GENERIC_AURA_APPLIED_DOSE"] - CLEUEventInfo["SWING_AURA_REMOVED_DOSE"] = - CLEUEventInfo["GENERIC_AURA_REMOVED_DOSE"] - CLEUEventInfo["SWING_AURA_REFRESH"] = CLEUEventInfo["GENERIC_AURA_REFRESH"] - CLEUEventInfo["SWING_AURA_BROKEN"] = CLEUEventInfo["GENERIC_AURA_BROKEN"] - CLEUEventInfo["SWING_AURA_BROKEN_SPELL"] = - CLEUEventInfo["GENERIC_AURA_BROKEN_SPELL"] - CLEUEventInfo["SWING_CAST_START"] = CLEUEventInfo["GENERIC_CAST_START"] - CLEUEventInfo["SWING_CAST_SUCCESS"] = CLEUEventInfo["GENERIC_CAST_SUCCESS"] - CLEUEventInfo["SWING_CAST_FAILED"] = CLEUEventInfo["GENERIC_CAST_FAILED"] - - CLEUEventInfo["RANGE_DAMAGE"] = CLEUEventInfo["GENERIC_DAMAGE"] - CLEUEventInfo["RANGE_MISSED"] = CLEUEventInfo["GENERIC_MISSED"] - CLEUEventInfo["RANGE_HEAL"] = CLEUEventInfo["GENERIC_HEAL"] - CLEUEventInfo["RANGE_HEAL_ABSORBED"] = - CLEUEventInfo["GENERIC_HEAL_ABSORBED"] - CLEUEventInfo["RANGE_ENERGIZE"] = CLEUEventInfo["GENERIC_ENERGIZE"] - CLEUEventInfo["RANGE_DRAIN"] = CLEUEventInfo["GENERIC_DRAIN"] - CLEUEventInfo["RANGE_LEECH"] = CLEUEventInfo["GENERIC_LEECH"] - CLEUEventInfo["RANGE_INTERRUPT"] = CLEUEventInfo["GENERIC_INTERRUPT"] - CLEUEventInfo["RANGE_DISPEL"] = CLEUEventInfo["GENERIC_DISPEL"] - CLEUEventInfo["RANGE_DISPEL_FAILED"] = - CLEUEventInfo["GENERIC_DISPEL_FAILED"] - CLEUEventInfo["RANGE_STOLEN"] = CLEUEventInfo["GENERIC_STOLEN"] - CLEUEventInfo["RANGE_EXTRA_ATTACKS"] = - CLEUEventInfo["GENERIC_EXTRA_ATTACKS"] - CLEUEventInfo["RANGE_AURA_APPLIED"] = CLEUEventInfo["GENERIC_AURA_APPLIED"] - CLEUEventInfo["RANGE_AURA_REMOVED"] = CLEUEventInfo["GENERIC_AURA_REMOVED"] - CLEUEventInfo["RANGE_AURA_APPLIED_DOSE"] = - CLEUEventInfo["GENERIC_AURA_APPLIED_DOSE"] - CLEUEventInfo["RANGE_AURA_REMOVED_DOSE"] = - CLEUEventInfo["GENERIC_AURA_REMOVED_DOSE"] - CLEUEventInfo["RANGE_AURA_REFRESH"] = CLEUEventInfo["GENERIC_AURA_REFRESH"] - CLEUEventInfo["RANGE_AURA_BROKEN"] = CLEUEventInfo["GENERIC_AURA_BROKEN"] - CLEUEventInfo["RANGE_AURA_BROKEN_SPELL"] = - CLEUEventInfo["GENERIC_AURA_BROKEN_SPELL"] - CLEUEventInfo["RANGE_CAST_START"] = CLEUEventInfo["GENERIC_CAST_START"] - CLEUEventInfo["RANGE_CAST_SUCCESS"] = CLEUEventInfo["GENERIC_CAST_SUCCESS"] - CLEUEventInfo["RANGE_CAST_FAILED"] = CLEUEventInfo["GENERIC_CAST_FAILED"] - - CLEUEventInfo["SPELL_DAMAGE"] = CLEUEventInfo["GENERIC_DAMAGE"] - CLEUEventInfo["SPELL_MISSED"] = CLEUEventInfo["GENERIC_MISSED"] - CLEUEventInfo["SPELL_HEAL"] = CLEUEventInfo["GENERIC_HEAL"] - CLEUEventInfo["SPELL_HEAL_ABSORBED"] = - CLEUEventInfo["GENERIC_HEAL_ABSORBED"] - CLEUEventInfo["SPELL_ENERGIZE"] = CLEUEventInfo["GENERIC_ENERGIZE"] - CLEUEventInfo["SPELL_DRAIN"] = CLEUEventInfo["GENERIC_DRAIN"] - CLEUEventInfo["SPELL_LEECH"] = CLEUEventInfo["GENERIC_LEECH"] - CLEUEventInfo["SPELL_INTERRUPT"] = CLEUEventInfo["GENERIC_INTERRUPT"] - CLEUEventInfo["SPELL_DISPEL"] = CLEUEventInfo["GENERIC_DISPEL"] - CLEUEventInfo["SPELL_DISPEL_FAILED"] = - CLEUEventInfo["GENERIC_DISPEL_FAILED"] - CLEUEventInfo["SPELL_STOLEN"] = CLEUEventInfo["GENERIC_STOLEN"] - CLEUEventInfo["SPELL_EXTRA_ATTACKS"] = - CLEUEventInfo["GENERIC_EXTRA_ATTACKS"] - CLEUEventInfo["SPELL_AURA_APPLIED"] = CLEUEventInfo["GENERIC_AURA_APPLIED"] - CLEUEventInfo["SPELL_AURA_REMOVED"] = CLEUEventInfo["GENERIC_AURA_REMOVED"] - CLEUEventInfo["SPELL_AURA_APPLIED_DOSE"] = - CLEUEventInfo["GENERIC_AURA_APPLIED_DOSE"] - CLEUEventInfo["SPELL_AURA_REMOVED_DOSE"] = - CLEUEventInfo["GENERIC_AURA_REMOVED_DOSE"] - CLEUEventInfo["SPELL_AURA_REFRESH"] = CLEUEventInfo["GENERIC_AURA_REFRESH"] - CLEUEventInfo["SPELL_AURA_BROKEN"] = CLEUEventInfo["GENERIC_AURA_BROKEN"] - CLEUEventInfo["SPELL_AURA_BROKEN_SPELL"] = - CLEUEventInfo["GENERIC_AURA_BROKEN_SPELL"] - CLEUEventInfo["SPELL_CAST_START"] = CLEUEventInfo["GENERIC_CAST_START"] - CLEUEventInfo["SPELL_CAST_SUCCESS"] = CLEUEventInfo["GENERIC_CAST_SUCCESS"] - CLEUEventInfo["SPELL_CAST_FAILED"] = CLEUEventInfo["GENERIC_CAST_FAILED"] - - CLEUEventInfo["SPELL_PERIODIC_DAMAGE"] = CLEUEventInfo["GENERIC_DAMAGE"] - CLEUEventInfo["SPELL_PERIODIC_MISSED"] = CLEUEventInfo["GENERIC_MISSED"] - CLEUEventInfo["SPELL_PERIODIC_HEAL"] = CLEUEventInfo["GENERIC_HEAL"] - CLEUEventInfo["SPELL_PERIODIC_HEAL_ABSORBED"] = - CLEUEventInfo["GENERIC_HEAL_ABSORBED"] - CLEUEventInfo["SPELL_PERIODIC_ENERGIZE"] = CLEUEventInfo["GENERIC_ENERGIZE"] - CLEUEventInfo["SPELL_PERIODIC_DRAIN"] = CLEUEventInfo["GENERIC_DRAIN"] - CLEUEventInfo["SPELL_PERIODIC_LEECH"] = CLEUEventInfo["GENERIC_LEECH"] - CLEUEventInfo["SPELL_PERIODIC_INTERRUPT"] = - CLEUEventInfo["GENERIC_INTERRUPT"] - CLEUEventInfo["SPELL_PERIODIC_DISPEL"] = CLEUEventInfo["GENERIC_DISPEL"] - CLEUEventInfo["SPELL_PERIODIC_DISPEL_FAILED"] = - CLEUEventInfo["GENERIC_DISPEL_FAILED"] - CLEUEventInfo["SPELL_PERIODIC_STOLEN"] = CLEUEventInfo["GENERIC_STOLEN"] - CLEUEventInfo["SPELL_PERIODIC_EXTRA_ATTACKS"] = - CLEUEventInfo["GENERIC_EXTRA_ATTACKS"] - CLEUEventInfo["SPELL_PERIODIC_AURA_APPLIED"] = - CLEUEventInfo["GENERIC_AURA_APPLIED"] - CLEUEventInfo["SPELL_PERIODIC_AURA_REMOVED"] = - CLEUEventInfo["GENERIC_AURA_REMOVED"] - CLEUEventInfo["SPELL_PERIODIC_AURA_APPLIED_DOSE"] = - CLEUEventInfo["GENERIC_AURA_APPLIED_DOSE"] - CLEUEventInfo["SPELL_PERIODIC_AURA_REMOVED_DOSE"] = - CLEUEventInfo["GENERIC_AURA_REMOVED_DOSE"] - CLEUEventInfo["SPELL_PERIODIC_AURA_REFRESH"] = - CLEUEventInfo["GENERIC_AURA_REFRESH"] - CLEUEventInfo["SPELL_PERIODIC_AURA_BROKEN"] = - CLEUEventInfo["GENERIC_AURA_BROKEN"] - CLEUEventInfo["SPELL_PERIODIC_AURA_BROKEN_SPELL"] = - CLEUEventInfo["GENERIC_AURA_BROKEN_SPELL"] - CLEUEventInfo["SPELL_PERIODIC_CAST_START"] = - CLEUEventInfo["GENERIC_CAST_START"] - CLEUEventInfo["SPELL_PERIODIC_CAST_SUCCESS"] = - CLEUEventInfo["GENERIC_CAST_SUCCESS"] - CLEUEventInfo["SPELL_PERIODIC_CAST_FAILED"] = - CLEUEventInfo["GENERIC_CAST_FAILED"] - - ---@class CLEUParser - CLEUParser = { - ---@param ... any - ---@return number, nil|string - GetTimestamp = function(...) - local val = select(CLEUEventInfo["GENERIC"]["timestamp"], ...) - if val == nil then - return 0, "Timestamp is nil or missing" - end - if type(val) ~= "number" then - return 0, "Timestamp is not a number" - end - return val, nil - end, - ---@param ... any - ---@return string, nil|string - GetSubevent = function(...) - local val = select(CLEUEventInfo["GENERIC"]["subevent"], ...) - if val == nil then - return "", "Subevent is nil or missing" - end - if type(val) ~= "string" then - return "", "Subevent is not a string" - end - return val, nil - end, - ---@param ... any - ---@return boolean, nil|string - GetHideCaster = function(...) - local val = select(CLEUEventInfo["GENERIC"]["hideCaster"], ...) - if val == nil then - return false, "HideCaster is nil or missing" - end - if type(val) ~= "boolean" then - return false, "HideCaster is not a boolean" - end - return val, nil - end, - ---@param ... any - ---@return string, nil|string - GetSourceGUID = function(...) - local val = select(CLEUEventInfo["GENERIC"]["sourceGUID"], ...) - if val == nil then - return "", "SourceGUID is nil or missing" - end - if type(val) ~= "string" then - return "", "SourceGUID is not a string" - end - return val, nil - end, - ---@param ... any - ---@return string, nil|string - GetSourceName = function(...) - local val = select(CLEUEventInfo["GENERIC"]["sourceName"], ...) - if val == nil then - return "", "SourceName is nil or missing" - end - if type(val) ~= "string" then - return "", "SourceName is not a string" - end - return val, nil - end, - ---@param ... any - ---@return number, nil|string - GetSourceFlags = function(...) - local val = select(CLEUEventInfo["GENERIC"]["sourceFlags"], ...) - if val == nil then - return 0, "SourceFlags is nil or missing" - end - if type(val) ~= "number" then - return 0, "SourceFlags is not a number" - end - return val, nil - end, - ---@param ... any - ---@return number, nil|string - GetSourceRaidFlags = function(...) - local val = select(CLEUEventInfo["GENERIC"]["sourceRaidFlags"], ...) - if val == nil then - return 0, "SourceRaidFlags is nil or missing" - end - if type(val) ~= "number" then - return 0, "SourceRaidFlags is not a number" - end - return val, nil - end, - ---@param ... any - ---@return string, nil|string - GetDestGUID = function(...) - local val = select(CLEUEventInfo["GENERIC"]["destGUID"], ...) - if val == nil then - return "", "DestGUID is nil or missing" - end - if type(val) ~= "string" then - return "", "DestGUID is not a string" - end - return val, nil - end, - ---@param ... any - ---@return string, nil|string - GetDestName = function(...) - local val = select(CLEUEventInfo["GENERIC"]["destName"], ...) - if val == nil then - return "", "DestName is nil or missing" - end - if type(val) ~= "string" then - return "", "DestName is not a string" - end - return val, nil - end, - ---@param ... any - ---@return number, nil|string - GetDestFlags = function(...) - local val = select(CLEUEventInfo["GENERIC"]["destFlags"], ...) - if val == nil then - return 0, "DestFlags is nil or missing" - end - if type(val) ~= "number" then - return 0, "DestFlags is not a number" - end - return val, nil - end, - ---@param ... any - ---@return number, nil|string - GetDestRaidFlags = function(...) - local val = select(CLEUEventInfo["GENERIC"]["destRaidFlags"], ...) - if val == nil then - return 0, "DestRaidFlags is nil or missing" - end - if type(val) ~= "number" then - return 0, "DestRaidFlags is not a number" - end - return val, nil - end, - - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - ---@param ... any - ---@return number, nil|string - GetSpellId = function(...) - local val = select(CLEUEventInfo["GENERIC_SPELL"]["spellId"], ...) - if val == nil then return 0, "SpellId is nil or missing" end - if type(val) ~= "number" then - return 0, "SpellId is not a number" - end - return val, nil - end, - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - ---@param ... any - ---@return string, nil|string - GetSpellName = function(...) - local val = select(CLEUEventInfo["GENERIC_SPELL"]["spellName"], ...) - if val == nil then - return "", "SpellName is nil or missing" - end - if type(val) ~= "string" then - return "", "SpellName is not a string" - end - return val, nil - end, - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - ---@param ... any - ---@return number, nil|string - GetSpellSchool = function(...) - local val = select(CLEUEventInfo["GENERIC_SPELL"]["spellSchool"], - ...) - if val == nil then - return 0, "SpellSchool is nil or missing" - end - if type(val) ~= "number" then - return 0, "SpellSchool is not a number" - end - return val, nil - end, - - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_DAMAGE| - --- |_HEAL| - --- |_ENERGIZE| - --- |_DRAIN| - --- |_LEECH| - --- |_EXTRA_ATTACKS| - --- |_AURA_APPLIED| - --- |_AURA_REMOVED| - --- |_AURA_APPLIED_DOSE| - --- |_AURA_REMOVED_DOSE| - ---@param ... any - ---@return number, nil|string - GetAmount = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return 0, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["amount"], ...) - if val == nil then return 0, "Amount is nil or missing" end - if type(val) ~= "number" then - return 0, "Amount is not a number" - end - return val, nil - end, - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_DAMAGE| - ---@param ... any - ---@return number, nil|string - GetOverkill = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return 0, - string.format("Failed getting subevent due to: %s", err) - end - if not CLEUEventInfo[subevent] then - return 0, "Subevent is not a valid event" - end - if not CLEUEventInfo[subevent]["overkill"] then - return 0, "Overkill is nil or missing" - end - local val = select(CLEUEventInfo[subevent]["overkill"], ...) - if val == nil then return 0, "Overkill is nil or missing" end - if type(val) ~= "number" then - return 0, "Overkill is not a number" - end - return val, nil - end, - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_DAMAGE| - ---@param ... any - ---@return number, nil|string - GetSchool = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return 0, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["school"], ...) - if val == nil then return 0, "School is nil or missing" end - if type(val) ~= "number" then - return 0, "School is not a number" - end - return val, nil - end, - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_DAMAGE| - --- - --- Apparently this is allowed to be nil? - ---@param ... any - ---@return boolean, nil|string - GetResisted = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return false, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["resisted"], ...) - if val == nil then - return false, "Resisted is nil or missing" - end - if type(val) ~= "boolean" then - return false, "Resisted is not a boolean" - end - return val, nil - end, - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_DAMAGE| - --- - --- Apparently this is allowed to be nil? - ---@param ... any - ---@return boolean, nil|string - GetBlocked = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return false, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["blocked"], ...) - if val == nil then - return false, "Blocked is nil or missing" - end - if type(val) ~= "boolean" then - return false, "Blocked is not a boolean" - end - return val, nil - end, - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_DAMAGE| - --- |_HEAL| - --- - --- Apparently this is allowed to be nil? - ---@param ... any - ---@return boolean, nil|string - GetAbsorbed = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return false, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["absorbed"], ...) - if val == nil then - return false, "Absorbed is nil or missing" - end - if type(val) ~= "boolean" then - return false, "Absorbed is not a boolean" - end - return val, nil - end, - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_DAMAGE| - --- |_MISSED| - --- |_HEAL| - ---@param ... any - ---@return boolean, nil|string - GetCritical = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return false, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["critical"], ...) - if val == nil then - return false, "Critical is nil or missing" - end - if type(val) ~= "boolean" then - return false, "Critical is not a boolean" - end - return val, nil - end, - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_DAMAGE| - ---@param ... any - ---@return boolean, nil|string - GetGlancing = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return false, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["glancing"], ...) - if val == nil then - return false, "Glancing is nil or missing" - end - if type(val) ~= "boolean" then - return false, "Glancing is not a boolean" - end - return val, nil - end, - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_DAMAGE| - ---@param ... any - ---@return boolean, nil|string - GetCrushing = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return false, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["crushing"], ...) - if val == nil then - return false, "Crushing is nil or missing" - end - if type(val) ~= "boolean" then - return false, "Crushing is not a boolean" - end - return val, nil - end, - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_DAMAGE| - --- |_MISSED| - ---@param ... any - ---@return boolean, nil|string - GetIsOffHand = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return false, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["isOffHand"], ...) - if val == nil then - return false, "IsOffHand is nil or missing" - end - if type(val) ~= "boolean" then - return false, "IsOffHand is not a boolean" - end - return val, nil - end, - - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_MISSED| - --- - --- return type is unconfirmed! - ---@param ... any - ---@return string, nil|string - GetMissType = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return "", - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["missType"], ...) - if val == nil then - return "", "MissType is nil or missing" - end - if type(val) ~= "string" then - return "", "MissType is not a string" - end - return val, nil - end, - - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_MISSED| - ---@param ... any - ---@return number, nil|string - --- - --- return type is unconfirmed! - GetAmountMissed = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return 0, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["amountMissed"], ...) - if val == nil then - return 0, "AmountMissed is nil or missing" - end - if type(val) ~= "number" then - return 0, "AmountMissed is not a number" - end - return val, nil - end, - - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_HEAL| - --- - --- return type is unconfirmed! - ---@param ... any - ---@return number, nil|string - GetOverhealing = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return 0, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["overhealing"], ...) - if val == nil then - return 0, "Overhealing is nil or missing" - end - if type(val) ~= "number" then - return 0, "Overhealing is not a number" - end - return val, nil - end, - - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_HEAL_ABSORBED| - ---@param ... any - ---@return string, nil|string - GetExtraGUID = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return "", - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["extraGUID"], ...) - if val == nil then - return "", "ExtraGUID is nil or missing" - end - if type(val) ~= "string" then - return "", "ExtraGUID is not a string" - end - return val, nil - end, - - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_HEAL_ABSORBED| - ---@param ... any - ---@return string, nil|string - GetExtraName = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return "", - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["extraName"], ...) - if val == nil then - return "", "ExtraName is nil or missing" - end - if type(val) ~= "string" then - return "", "ExtraName is not a string" - end - return val, nil - end, - - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_HEAL_ABSORBED| - ---@param ... any - ---@return number, nil|string - GetExtraFlags = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return 0, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["extraFlags"], ...) - if val == nil then - return 0, "ExtraFlags is nil or missing" - end - if type(val) ~= "number" then - return 0, "ExtraFlags is not a number" - end - return val, nil - end, - - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_HEAL_ABSORBED| - ---@param ... any - ---@return number, nil|string - GetExtraRaidFlags = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return 0, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["extraRaidFlags"], ...) - if val == nil then - return 0, "ExtraRaidFlags is nil or missing" - end - if type(val) ~= "number" then - return 0, "ExtraRaidFlags is not a number" - end - return val, nil - end, - - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_HEAL_ABSORBED| - --- - --- WARNING! Different from "GetExtraSpellId" (capital ID!)
- --- This is the doing of Blizzard, not me.
- ---@see CLEUParser.GetExtraSpellId - ---@param ... any - ---@return number, nil|string - GetExtraSpellID = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return 0, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["extraSpellID"], ...) - if val == nil then - return 0, "ExtraSpellID is nil or missing" - end - if type(val) ~= "number" then - return 0, "ExtraSpellID is not a number" - end - return val, nil - end, - - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_HEAL_ABSORBED| - --- |_INTERRUPT| - --- |_DISPEL| - --- |_DISPEL_FAILED| - --- |_STOLEN| - --- |_AURA_BROKEN_SPELL| - ---@param ... any - ---@return string, nil|string - GetExtraSpellName = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return "", - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["extraSpellName"], ...) - if val == nil then - return "", "extraSpellName is nil or missing" - end - if type(val) ~= "string" then - return "", "extraSpellName is not a string" - end - return val, nil - end, - - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_HEAL_ABSORBED| - --- |_INTERRUPT| - --- |_DISPEL| - --- |_DISPEL_FAILED| - --- |_STOLEN| - --- |_AURA_BROKEN_SPELL| - ---@param ... any - ---@return number, nil|string - GetExtraSchool = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return 0, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["extraSchool"], ...) - if val == nil then - return 0, "ExtraSchool is nil or missing" - end - if type(val) ~= "number" then - return 0, "ExtraSchool is not a number" - end - return val, nil - end, - - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_HEAL_ABSORBED| - ---@param ... any - ---@return number, nil|string - GetAbsorbedAmount = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return 0, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["absorbedAmount"], ...) - if val == nil then - return 0, "AbsorbedAmount is nil or missing" - end - if type(val) ~= "number" then - return 0, "AbsorbedAmount is not a number" - end - return val, nil - end, - - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_ENERGIZE| - ---@param ... any - ---@return number, nil|string - GetOverEnergize = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return 0, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["overEnergize"], ...) - if val == nil then - return 0, "OverEnergize is nil or missing" - end - if type(val) ~= "number" then - return 0, "OverEnergize is not a number" - end - return val, nil - end, - - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_ENERGIZE| - --- |_DRAIN| - --- |_LEECH| - --- - --- return type is unconfirmed! - ---@param ... any - ---@return number, nil|string - GetPowerType = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return 0, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["powerType"], ...) - if val == nil then - return 0, "PowerType is nil or missing" - end - if type(val) ~= "number" then - return 0, "PowerType is not a number" - end - return val, nil - end, - - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_DRAIN| - --- |_LEECH| - ---@param ... any - ---@return number, nil|string - GetExtraAmount = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return 0, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["extraAmount"], ...) - if val == nil then - return 0, "ExtraAmount is nil or missing" - end - if type(val) ~= "number" then - return 0, "ExtraAmount is not a number" - end - return val, nil - end, - - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_INTERRUPT| - --- |_DISPEL| - --- |_DISPEL_FAILED| - --- |_STOLEN| - --- |_AURA_BROKEN_SPELL| - --- - --- WARNING! Different from "GetExtraSpellID" (capital ID!)
- --- This is the doing of Blizzard, not me.
- ---@see CLEUParser.GetExtraSpellID - ---@param ... any - ---@return number, nil|string - GetExtraSpellId = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return 0, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["extraSpellId"], ...) - if val == nil then - return 0, "ExtraSpellId is nil or missing" - end - if type(val) ~= "number" then - return 0, "ExtraSpellId is not a number" - end - return val, nil - end, - - --- Specific to subevents prefixed by: - --- |Prefix| - --- |-----| - --- |RANGE| - --- |SWING| - --- |SPELL| - --- |SPELL_PERIODIC| - --- |SPELL_BUILDING| - --- - --- And suffixed by: - --- |Suffix| - --- |------| - --- |_DISPEL| - --- |_STOLEN| - --- |_AURA_APPLIED| - --- |_AURA_REMOVED| - --- |_AURA_APPLIED_DOSE| - --- |_AURA_REMOVED_DOSE| - --- |_AURA_REFRESH| - --- |_AURA_BROKEN| - --- |_AURA_BROKEN_SPELL| - ---@param ... any - ---@return number, nil|string - GetExtraAuraType = function(...) - local subevent, err = CLEUParser.GetSubevent(...) - if err then - return 0, - string.format("Failed getting subevent due to: %s", err) - end - local val = select(CLEUEventInfo[subevent]["auraType"], ...) - if val == nil then return 0, "AuraType is nil or missing" end - if type(val) ~= "number" then - return 0, "AuraType is not a number" - end - return val, nil - end - } -end +---PLAYER_ENTERING_WORLD GUILD_ROSTER_UPDATE +function() + CLEUEventInfo = { + ["GENERIC"] = { + ["timestamp"] = 1, + ["subevent"] = 2, + ["hideCaster"] = 3, + ["sourceGUID"] = 4, + ["sourceName"] = 5, + ["sourceFlags"] = 6, + ["sourceRaidFlags"] = 7, + ["destGUID"] = 8, + ["destName"] = 9, + ["destFlags"] = 10, + ["destRaidFlags"] = 11 + }, + ["GENERIC_SPELL"] = { + ["spellId"] = 12, + ["spellName"] = 13, + ["spellSchool"] = 14 + }, + ["GENERIC_DAMAGE"] = { + ["amount"] = 15, + ["overkill"] = 16, + ["school"] = 17, + ["resisted"] = 18, + ["blocked"] = 19, + ["absorbed"] = 20, + ["critical"] = 21, + ["glancing"] = 22, + ["crushing"] = 23, + ["isOffHand"] = 24 + }, + ["GENERIC_MISSED"] = { + ["missType"] = 15, + ["isOffHand"] = 16, + ["amountMissed"] = 17, + ["critical"] = 18 + }, + ["GENERIC_HEAL"] = { + ["amount"] = 15, + ["overhealing"] = 16, + ["absorbed"] = 17, + ["critical"] = 18 + }, + ["GENERIC_HEAL_ABSORBED"] = { + ["extraGUID"] = 15, + ["extraName"] = 17, + ["extraFlags"] = 17, + ["extraRaidFlags"] = 18, + ["extraSpellID"] = 19, + ["extraSpellName"] = 20, + ["extraSchool"] = 21, + ["absorbedAmount"] = 22, + ["totalAmount"] = 23 + }, + ["GENERIC_ENERGIZE"] = { + ["amount"] = 15, + ["overEnergize"] = 16, + ["powerType"] = 17 + }, + ["GENERIC_DRAIN"] = { + ["amount"] = 15, + ["powerType"] = 16, + ["extraAmount"] = 17 + }, + ["GENERIC_LEECH"] = { + ["amount"] = 15, + ["powerType"] = 16, + ["extraAmount"] = 17 + }, + ["GENERIC_INTERRUPT"] = { + ["extraSpellId"] = 15, + ["extraSpellName"] = 16, + ["extraSchool"] = 17 + }, + ["GENERIC_DISPEL"] = { + ["extraSpellId"] = 15, + ["extraSpellName"] = 16, + ["extraSchool"] = 17, + ["auraType"] = 18 + }, + ["GENERIC_DISPEL_FAILED"] = { + ["extraSpellId"] = 15, + ["extraSpellName"] = 16, + ["extraSchool"] = 17 + }, + ["GENERIC_STOLEN"] = { + ["extraSpellId"] = 15, + ["extraSpellName"] = 16, + ["extraSchool"] = 17, + ["auraType"] = 18 + }, + ["GENERIC_EXTRA_ATTACKS"] = { ["amount"] = 15 }, + ["GENERIC_AURA_APPLIED"] = { ["auraType"] = 15, ["amount"] = 16 }, + ["GENERIC_AURA_REMOVED"] = { ["auraType"] = 15, ["amount"] = 16 }, + ["GENERIC_AURA_APPLIED_DOSE"] = { ["auraType"] = 15, ["amount"] = 16 }, + ["GENERIC_AURA_REMOVED_DOSE"] = { ["auraType"] = 15, ["amount"] = 16 }, + ["GENERIC_AURA_REFRESH"] = { ["auraType"] = 15 }, + ["GENERIC_AURA_BROKEN"] = { ["auraType"] = 15 }, + ["GENERIC_AURA_BROKEN_SPELL"] = { + ["extraSpellId"] = 15, + ["extraSpellName"] = 16, + ["extraSchool"] = 17, + ["auraType"] = 18 + }, + ["GENERIC_CAST_START"] = {}, + ["GENERIC_CAST_SUCCESS"] = {}, + ["GENERIC_CAST_FAILED"] = {} + } + + CLEUEventInfo["SWING_DAMAGE"] = CLEUEventInfo["GENERIC_DAMAGE"] + CLEUEventInfo["SWING_MISSED"] = CLEUEventInfo["GENERIC_MISSED"] + CLEUEventInfo["SWING_HEAL"] = CLEUEventInfo["GENERIC_HEAL"] + CLEUEventInfo["SWING_HEAL_ABSORBED"] = + CLEUEventInfo["GENERIC_HEAL_ABSORBED"] + CLEUEventInfo["SWING_ENERGIZE"] = CLEUEventInfo["GENERIC_ENERGIZE"] + CLEUEventInfo["SWING_DRAIN"] = CLEUEventInfo["GENERIC_DRAIN"] + CLEUEventInfo["SWING_LEECH"] = CLEUEventInfo["GENERIC_LEECH"] + CLEUEventInfo["SWING_INTERRUPT"] = CLEUEventInfo["GENERIC_INTERRUPT"] + CLEUEventInfo["SWING_DISPEL"] = CLEUEventInfo["GENERIC_DISPEL"] + CLEUEventInfo["SWING_DISPEL_FAILED"] = + CLEUEventInfo["GENERIC_DISPEL_FAILED"] + CLEUEventInfo["SWING_STOLEN"] = CLEUEventInfo["GENERIC_STOLEN"] + CLEUEventInfo["SWING_EXTRA_ATTACKS"] = + CLEUEventInfo["GENERIC_EXTRA_ATTACKS"] + CLEUEventInfo["SWING_AURA_APPLIED"] = CLEUEventInfo["GENERIC_AURA_APPLIED"] + CLEUEventInfo["SWING_AURA_REMOVED"] = CLEUEventInfo["GENERIC_AURA_REMOVED"] + CLEUEventInfo["SWING_AURA_APPLIED_DOSE"] = + CLEUEventInfo["GENERIC_AURA_APPLIED_DOSE"] + CLEUEventInfo["SWING_AURA_REMOVED_DOSE"] = + CLEUEventInfo["GENERIC_AURA_REMOVED_DOSE"] + CLEUEventInfo["SWING_AURA_REFRESH"] = CLEUEventInfo["GENERIC_AURA_REFRESH"] + CLEUEventInfo["SWING_AURA_BROKEN"] = CLEUEventInfo["GENERIC_AURA_BROKEN"] + CLEUEventInfo["SWING_AURA_BROKEN_SPELL"] = + CLEUEventInfo["GENERIC_AURA_BROKEN_SPELL"] + CLEUEventInfo["SWING_CAST_START"] = CLEUEventInfo["GENERIC_CAST_START"] + CLEUEventInfo["SWING_CAST_SUCCESS"] = CLEUEventInfo["GENERIC_CAST_SUCCESS"] + CLEUEventInfo["SWING_CAST_FAILED"] = CLEUEventInfo["GENERIC_CAST_FAILED"] + + CLEUEventInfo["RANGE_DAMAGE"] = CLEUEventInfo["GENERIC_DAMAGE"] + CLEUEventInfo["RANGE_MISSED"] = CLEUEventInfo["GENERIC_MISSED"] + CLEUEventInfo["RANGE_HEAL"] = CLEUEventInfo["GENERIC_HEAL"] + CLEUEventInfo["RANGE_HEAL_ABSORBED"] = + CLEUEventInfo["GENERIC_HEAL_ABSORBED"] + CLEUEventInfo["RANGE_ENERGIZE"] = CLEUEventInfo["GENERIC_ENERGIZE"] + CLEUEventInfo["RANGE_DRAIN"] = CLEUEventInfo["GENERIC_DRAIN"] + CLEUEventInfo["RANGE_LEECH"] = CLEUEventInfo["GENERIC_LEECH"] + CLEUEventInfo["RANGE_INTERRUPT"] = CLEUEventInfo["GENERIC_INTERRUPT"] + CLEUEventInfo["RANGE_DISPEL"] = CLEUEventInfo["GENERIC_DISPEL"] + CLEUEventInfo["RANGE_DISPEL_FAILED"] = + CLEUEventInfo["GENERIC_DISPEL_FAILED"] + CLEUEventInfo["RANGE_STOLEN"] = CLEUEventInfo["GENERIC_STOLEN"] + CLEUEventInfo["RANGE_EXTRA_ATTACKS"] = + CLEUEventInfo["GENERIC_EXTRA_ATTACKS"] + CLEUEventInfo["RANGE_AURA_APPLIED"] = CLEUEventInfo["GENERIC_AURA_APPLIED"] + CLEUEventInfo["RANGE_AURA_REMOVED"] = CLEUEventInfo["GENERIC_AURA_REMOVED"] + CLEUEventInfo["RANGE_AURA_APPLIED_DOSE"] = + CLEUEventInfo["GENERIC_AURA_APPLIED_DOSE"] + CLEUEventInfo["RANGE_AURA_REMOVED_DOSE"] = + CLEUEventInfo["GENERIC_AURA_REMOVED_DOSE"] + CLEUEventInfo["RANGE_AURA_REFRESH"] = CLEUEventInfo["GENERIC_AURA_REFRESH"] + CLEUEventInfo["RANGE_AURA_BROKEN"] = CLEUEventInfo["GENERIC_AURA_BROKEN"] + CLEUEventInfo["RANGE_AURA_BROKEN_SPELL"] = + CLEUEventInfo["GENERIC_AURA_BROKEN_SPELL"] + CLEUEventInfo["RANGE_CAST_START"] = CLEUEventInfo["GENERIC_CAST_START"] + CLEUEventInfo["RANGE_CAST_SUCCESS"] = CLEUEventInfo["GENERIC_CAST_SUCCESS"] + CLEUEventInfo["RANGE_CAST_FAILED"] = CLEUEventInfo["GENERIC_CAST_FAILED"] + + CLEUEventInfo["SPELL_DAMAGE"] = CLEUEventInfo["GENERIC_DAMAGE"] + CLEUEventInfo["SPELL_MISSED"] = CLEUEventInfo["GENERIC_MISSED"] + CLEUEventInfo["SPELL_HEAL"] = CLEUEventInfo["GENERIC_HEAL"] + CLEUEventInfo["SPELL_HEAL_ABSORBED"] = + CLEUEventInfo["GENERIC_HEAL_ABSORBED"] + CLEUEventInfo["SPELL_ENERGIZE"] = CLEUEventInfo["GENERIC_ENERGIZE"] + CLEUEventInfo["SPELL_DRAIN"] = CLEUEventInfo["GENERIC_DRAIN"] + CLEUEventInfo["SPELL_LEECH"] = CLEUEventInfo["GENERIC_LEECH"] + CLEUEventInfo["SPELL_INTERRUPT"] = CLEUEventInfo["GENERIC_INTERRUPT"] + CLEUEventInfo["SPELL_DISPEL"] = CLEUEventInfo["GENERIC_DISPEL"] + CLEUEventInfo["SPELL_DISPEL_FAILED"] = + CLEUEventInfo["GENERIC_DISPEL_FAILED"] + CLEUEventInfo["SPELL_STOLEN"] = CLEUEventInfo["GENERIC_STOLEN"] + CLEUEventInfo["SPELL_EXTRA_ATTACKS"] = + CLEUEventInfo["GENERIC_EXTRA_ATTACKS"] + CLEUEventInfo["SPELL_AURA_APPLIED"] = CLEUEventInfo["GENERIC_AURA_APPLIED"] + CLEUEventInfo["SPELL_AURA_REMOVED"] = CLEUEventInfo["GENERIC_AURA_REMOVED"] + CLEUEventInfo["SPELL_AURA_APPLIED_DOSE"] = + CLEUEventInfo["GENERIC_AURA_APPLIED_DOSE"] + CLEUEventInfo["SPELL_AURA_REMOVED_DOSE"] = + CLEUEventInfo["GENERIC_AURA_REMOVED_DOSE"] + CLEUEventInfo["SPELL_AURA_REFRESH"] = CLEUEventInfo["GENERIC_AURA_REFRESH"] + CLEUEventInfo["SPELL_AURA_BROKEN"] = CLEUEventInfo["GENERIC_AURA_BROKEN"] + CLEUEventInfo["SPELL_AURA_BROKEN_SPELL"] = + CLEUEventInfo["GENERIC_AURA_BROKEN_SPELL"] + CLEUEventInfo["SPELL_CAST_START"] = CLEUEventInfo["GENERIC_CAST_START"] + CLEUEventInfo["SPELL_CAST_SUCCESS"] = CLEUEventInfo["GENERIC_CAST_SUCCESS"] + CLEUEventInfo["SPELL_CAST_FAILED"] = CLEUEventInfo["GENERIC_CAST_FAILED"] + + CLEUEventInfo["SPELL_PERIODIC_DAMAGE"] = CLEUEventInfo["GENERIC_DAMAGE"] + CLEUEventInfo["SPELL_PERIODIC_MISSED"] = CLEUEventInfo["GENERIC_MISSED"] + CLEUEventInfo["SPELL_PERIODIC_HEAL"] = CLEUEventInfo["GENERIC_HEAL"] + CLEUEventInfo["SPELL_PERIODIC_HEAL_ABSORBED"] = + CLEUEventInfo["GENERIC_HEAL_ABSORBED"] + CLEUEventInfo["SPELL_PERIODIC_ENERGIZE"] = CLEUEventInfo["GENERIC_ENERGIZE"] + CLEUEventInfo["SPELL_PERIODIC_DRAIN"] = CLEUEventInfo["GENERIC_DRAIN"] + CLEUEventInfo["SPELL_PERIODIC_LEECH"] = CLEUEventInfo["GENERIC_LEECH"] + CLEUEventInfo["SPELL_PERIODIC_INTERRUPT"] = + CLEUEventInfo["GENERIC_INTERRUPT"] + CLEUEventInfo["SPELL_PERIODIC_DISPEL"] = CLEUEventInfo["GENERIC_DISPEL"] + CLEUEventInfo["SPELL_PERIODIC_DISPEL_FAILED"] = + CLEUEventInfo["GENERIC_DISPEL_FAILED"] + CLEUEventInfo["SPELL_PERIODIC_STOLEN"] = CLEUEventInfo["GENERIC_STOLEN"] + CLEUEventInfo["SPELL_PERIODIC_EXTRA_ATTACKS"] = + CLEUEventInfo["GENERIC_EXTRA_ATTACKS"] + CLEUEventInfo["SPELL_PERIODIC_AURA_APPLIED"] = + CLEUEventInfo["GENERIC_AURA_APPLIED"] + CLEUEventInfo["SPELL_PERIODIC_AURA_REMOVED"] = + CLEUEventInfo["GENERIC_AURA_REMOVED"] + CLEUEventInfo["SPELL_PERIODIC_AURA_APPLIED_DOSE"] = + CLEUEventInfo["GENERIC_AURA_APPLIED_DOSE"] + CLEUEventInfo["SPELL_PERIODIC_AURA_REMOVED_DOSE"] = + CLEUEventInfo["GENERIC_AURA_REMOVED_DOSE"] + CLEUEventInfo["SPELL_PERIODIC_AURA_REFRESH"] = + CLEUEventInfo["GENERIC_AURA_REFRESH"] + CLEUEventInfo["SPELL_PERIODIC_AURA_BROKEN"] = + CLEUEventInfo["GENERIC_AURA_BROKEN"] + CLEUEventInfo["SPELL_PERIODIC_AURA_BROKEN_SPELL"] = + CLEUEventInfo["GENERIC_AURA_BROKEN_SPELL"] + CLEUEventInfo["SPELL_PERIODIC_CAST_START"] = + CLEUEventInfo["GENERIC_CAST_START"] + CLEUEventInfo["SPELL_PERIODIC_CAST_SUCCESS"] = + CLEUEventInfo["GENERIC_CAST_SUCCESS"] + CLEUEventInfo["SPELL_PERIODIC_CAST_FAILED"] = + CLEUEventInfo["GENERIC_CAST_FAILED"] + + ---@class CLEUParser + CLEUParser = { + ---@param ... any + ---@return number, nil|string + GetTimestamp = function(...) + local val = select(CLEUEventInfo["GENERIC"]["timestamp"], ...) + if val == nil then + return 0, "Timestamp is nil or missing" + end + if type(val) ~= "number" then + return 0, "Timestamp is not a number" + end + return val, nil + end, + ---@param ... any + ---@return string, nil|string + GetSubevent = function(...) + local val = select(CLEUEventInfo["GENERIC"]["subevent"], ...) + if val == nil then + return "", "Subevent is nil or missing" + end + if type(val) ~= "string" then + return "", "Subevent is not a string" + end + return val, nil + end, + ---@param ... any + ---@return boolean, nil|string + GetHideCaster = function(...) + local val = select(CLEUEventInfo["GENERIC"]["hideCaster"], ...) + if val == nil then + return false, "HideCaster is nil or missing" + end + if type(val) ~= "boolean" then + return false, "HideCaster is not a boolean" + end + return val, nil + end, + ---@param ... any + ---@return string, nil|string + GetSourceGUID = function(...) + local val = select(CLEUEventInfo["GENERIC"]["sourceGUID"], ...) + if val == nil then + return "", "SourceGUID is nil or missing" + end + if type(val) ~= "string" then + return "", "SourceGUID is not a string" + end + return val, nil + end, + ---@param ... any + ---@return string, nil|string + GetSourceName = function(...) + local val = select(CLEUEventInfo["GENERIC"]["sourceName"], ...) + if val == nil then + return "", "SourceName is nil or missing" + end + if type(val) ~= "string" then + return "", "SourceName is not a string" + end + return val, nil + end, + ---@param ... any + ---@return number, nil|string + GetSourceFlags = function(...) + local val = select(CLEUEventInfo["GENERIC"]["sourceFlags"], ...) + if val == nil then + return 0, "SourceFlags is nil or missing" + end + if type(val) ~= "number" then + return 0, "SourceFlags is not a number" + end + return val, nil + end, + ---@param ... any + ---@return number, nil|string + GetSourceRaidFlags = function(...) + local val = select(CLEUEventInfo["GENERIC"]["sourceRaidFlags"], ...) + if val == nil then + return 0, "SourceRaidFlags is nil or missing" + end + if type(val) ~= "number" then + return 0, "SourceRaidFlags is not a number" + end + return val, nil + end, + ---@param ... any + ---@return string, nil|string + GetDestGUID = function(...) + local val = select(CLEUEventInfo["GENERIC"]["destGUID"], ...) + if val == nil then + return "", "DestGUID is nil or missing" + end + if type(val) ~= "string" then + return "", "DestGUID is not a string" + end + return val, nil + end, + ---@param ... any + ---@return string, nil|string + GetDestName = function(...) + local val = select(CLEUEventInfo["GENERIC"]["destName"], ...) + if val == nil then + return "", "DestName is nil or missing" + end + if type(val) ~= "string" then + return "", "DestName is not a string" + end + return val, nil + end, + ---@param ... any + ---@return number, nil|string + GetDestFlags = function(...) + local val = select(CLEUEventInfo["GENERIC"]["destFlags"], ...) + if val == nil then + return 0, "DestFlags is nil or missing" + end + if type(val) ~= "number" then + return 0, "DestFlags is not a number" + end + return val, nil + end, + ---@param ... any + ---@return number, nil|string + GetDestRaidFlags = function(...) + local val = select(CLEUEventInfo["GENERIC"]["destRaidFlags"], ...) + if val == nil then + return 0, "DestRaidFlags is nil or missing" + end + if type(val) ~= "number" then + return 0, "DestRaidFlags is not a number" + end + return val, nil + end, + + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + ---@param ... any + ---@return number, nil|string + GetSpellId = function(...) + local val = select(CLEUEventInfo["GENERIC_SPELL"]["spellId"], ...) + if val == nil then return 0, "SpellId is nil or missing" end + if type(val) ~= "number" then + return 0, "SpellId is not a number" + end + return val, nil + end, + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + ---@param ... any + ---@return string, nil|string + GetSpellName = function(...) + local val = select(CLEUEventInfo["GENERIC_SPELL"]["spellName"], ...) + if val == nil then + return "", "SpellName is nil or missing" + end + if type(val) ~= "string" then + return "", "SpellName is not a string" + end + return val, nil + end, + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + ---@param ... any + ---@return number, nil|string + GetSpellSchool = function(...) + local val = select(CLEUEventInfo["GENERIC_SPELL"]["spellSchool"], + ...) + if val == nil then + return 0, "SpellSchool is nil or missing" + end + if type(val) ~= "number" then + return 0, "SpellSchool is not a number" + end + return val, nil + end, + + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_DAMAGE| + --- |_HEAL| + --- |_ENERGIZE| + --- |_DRAIN| + --- |_LEECH| + --- |_EXTRA_ATTACKS| + --- |_AURA_APPLIED| + --- |_AURA_REMOVED| + --- |_AURA_APPLIED_DOSE| + --- |_AURA_REMOVED_DOSE| + ---@param ... any + ---@return number, nil|string + GetAmount = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return 0, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["amount"], ...) + if val == nil then return 0, "Amount is nil or missing" end + if type(val) ~= "number" then + return 0, "Amount is not a number" + end + return val, nil + end, + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_DAMAGE| + ---@param ... any + ---@return number, nil|string + GetOverkill = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return 0, + string.format("Failed getting subevent due to: %s", err) + end + if not CLEUEventInfo[subevent] then + return 0, "Subevent is not a valid event" + end + if not CLEUEventInfo[subevent]["overkill"] then + return 0, "Overkill is nil or missing" + end + local val = select(CLEUEventInfo[subevent]["overkill"], ...) + if val == nil then return 0, "Overkill is nil or missing" end + if type(val) ~= "number" then + return 0, "Overkill is not a number" + end + return val, nil + end, + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_DAMAGE| + ---@param ... any + ---@return number, nil|string + GetSchool = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return 0, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["school"], ...) + if val == nil then return 0, "School is nil or missing" end + if type(val) ~= "number" then + return 0, "School is not a number" + end + return val, nil + end, + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_DAMAGE| + --- + --- Apparently this is allowed to be nil? + ---@param ... any + ---@return boolean, nil|string + GetResisted = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return false, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["resisted"], ...) + if val == nil then + return false, "Resisted is nil or missing" + end + if type(val) ~= "boolean" then + return false, "Resisted is not a boolean" + end + return val, nil + end, + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_DAMAGE| + --- + --- Apparently this is allowed to be nil? + ---@param ... any + ---@return boolean, nil|string + GetBlocked = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return false, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["blocked"], ...) + if val == nil then + return false, "Blocked is nil or missing" + end + if type(val) ~= "boolean" then + return false, "Blocked is not a boolean" + end + return val, nil + end, + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_DAMAGE| + --- |_HEAL| + --- + --- Apparently this is allowed to be nil? + ---@param ... any + ---@return boolean, nil|string + GetAbsorbed = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return false, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["absorbed"], ...) + if val == nil then + return false, "Absorbed is nil or missing" + end + if type(val) ~= "boolean" then + return false, "Absorbed is not a boolean" + end + return val, nil + end, + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_DAMAGE| + --- |_MISSED| + --- |_HEAL| + ---@param ... any + ---@return boolean, nil|string + GetCritical = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return false, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["critical"], ...) + if val == nil then + return false, "Critical is nil or missing" + end + if type(val) ~= "boolean" then + return false, "Critical is not a boolean" + end + return val, nil + end, + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_DAMAGE| + ---@param ... any + ---@return boolean, nil|string + GetGlancing = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return false, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["glancing"], ...) + if val == nil then + return false, "Glancing is nil or missing" + end + if type(val) ~= "boolean" then + return false, "Glancing is not a boolean" + end + return val, nil + end, + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_DAMAGE| + ---@param ... any + ---@return boolean, nil|string + GetCrushing = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return false, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["crushing"], ...) + if val == nil then + return false, "Crushing is nil or missing" + end + if type(val) ~= "boolean" then + return false, "Crushing is not a boolean" + end + return val, nil + end, + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_DAMAGE| + --- |_MISSED| + ---@param ... any + ---@return boolean, nil|string + GetIsOffHand = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return false, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["isOffHand"], ...) + if val == nil then + return false, "IsOffHand is nil or missing" + end + if type(val) ~= "boolean" then + return false, "IsOffHand is not a boolean" + end + return val, nil + end, + + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_MISSED| + --- + --- return type is unconfirmed! + ---@param ... any + ---@return string, nil|string + GetMissType = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return "", + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["missType"], ...) + if val == nil then + return "", "MissType is nil or missing" + end + if type(val) ~= "string" then + return "", "MissType is not a string" + end + return val, nil + end, + + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_MISSED| + ---@param ... any + ---@return number, nil|string + --- + --- return type is unconfirmed! + GetAmountMissed = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return 0, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["amountMissed"], ...) + if val == nil then + return 0, "AmountMissed is nil or missing" + end + if type(val) ~= "number" then + return 0, "AmountMissed is not a number" + end + return val, nil + end, + + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_HEAL| + --- + --- return type is unconfirmed! + ---@param ... any + ---@return number, nil|string + GetOverhealing = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return 0, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["overhealing"], ...) + if val == nil then + return 0, "Overhealing is nil or missing" + end + if type(val) ~= "number" then + return 0, "Overhealing is not a number" + end + return val, nil + end, + + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_HEAL_ABSORBED| + ---@param ... any + ---@return string, nil|string + GetExtraGUID = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return "", + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["extraGUID"], ...) + if val == nil then + return "", "ExtraGUID is nil or missing" + end + if type(val) ~= "string" then + return "", "ExtraGUID is not a string" + end + return val, nil + end, + + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_HEAL_ABSORBED| + ---@param ... any + ---@return string, nil|string + GetExtraName = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return "", + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["extraName"], ...) + if val == nil then + return "", "ExtraName is nil or missing" + end + if type(val) ~= "string" then + return "", "ExtraName is not a string" + end + return val, nil + end, + + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_HEAL_ABSORBED| + ---@param ... any + ---@return number, nil|string + GetExtraFlags = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return 0, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["extraFlags"], ...) + if val == nil then + return 0, "ExtraFlags is nil or missing" + end + if type(val) ~= "number" then + return 0, "ExtraFlags is not a number" + end + return val, nil + end, + + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_HEAL_ABSORBED| + ---@param ... any + ---@return number, nil|string + GetExtraRaidFlags = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return 0, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["extraRaidFlags"], ...) + if val == nil then + return 0, "ExtraRaidFlags is nil or missing" + end + if type(val) ~= "number" then + return 0, "ExtraRaidFlags is not a number" + end + return val, nil + end, + + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_HEAL_ABSORBED| + --- + --- WARNING! Different from "GetExtraSpellId" (capital ID!)
+ --- This is the doing of Blizzard, not me.
+ ---@see CLEUParser.GetExtraSpellId + ---@param ... any + ---@return number, nil|string + GetExtraSpellID = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return 0, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["extraSpellID"], ...) + if val == nil then + return 0, "ExtraSpellID is nil or missing" + end + if type(val) ~= "number" then + return 0, "ExtraSpellID is not a number" + end + return val, nil + end, + + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_HEAL_ABSORBED| + --- |_INTERRUPT| + --- |_DISPEL| + --- |_DISPEL_FAILED| + --- |_STOLEN| + --- |_AURA_BROKEN_SPELL| + ---@param ... any + ---@return string, nil|string + GetExtraSpellName = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return "", + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["extraSpellName"], ...) + if val == nil then + return "", "extraSpellName is nil or missing" + end + if type(val) ~= "string" then + return "", "extraSpellName is not a string" + end + return val, nil + end, + + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_HEAL_ABSORBED| + --- |_INTERRUPT| + --- |_DISPEL| + --- |_DISPEL_FAILED| + --- |_STOLEN| + --- |_AURA_BROKEN_SPELL| + ---@param ... any + ---@return number, nil|string + GetExtraSchool = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return 0, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["extraSchool"], ...) + if val == nil then + return 0, "ExtraSchool is nil or missing" + end + if type(val) ~= "number" then + return 0, "ExtraSchool is not a number" + end + return val, nil + end, + + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_HEAL_ABSORBED| + ---@param ... any + ---@return number, nil|string + GetAbsorbedAmount = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return 0, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["absorbedAmount"], ...) + if val == nil then + return 0, "AbsorbedAmount is nil or missing" + end + if type(val) ~= "number" then + return 0, "AbsorbedAmount is not a number" + end + return val, nil + end, + + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_ENERGIZE| + ---@param ... any + ---@return number, nil|string + GetOverEnergize = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return 0, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["overEnergize"], ...) + if val == nil then + return 0, "OverEnergize is nil or missing" + end + if type(val) ~= "number" then + return 0, "OverEnergize is not a number" + end + return val, nil + end, + + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_ENERGIZE| + --- |_DRAIN| + --- |_LEECH| + --- + --- return type is unconfirmed! + ---@param ... any + ---@return number, nil|string + GetPowerType = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return 0, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["powerType"], ...) + if val == nil then + return 0, "PowerType is nil or missing" + end + if type(val) ~= "number" then + return 0, "PowerType is not a number" + end + return val, nil + end, + + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_DRAIN| + --- |_LEECH| + ---@param ... any + ---@return number, nil|string + GetExtraAmount = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return 0, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["extraAmount"], ...) + if val == nil then + return 0, "ExtraAmount is nil or missing" + end + if type(val) ~= "number" then + return 0, "ExtraAmount is not a number" + end + return val, nil + end, + + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_INTERRUPT| + --- |_DISPEL| + --- |_DISPEL_FAILED| + --- |_STOLEN| + --- |_AURA_BROKEN_SPELL| + --- + --- WARNING! Different from "GetExtraSpellID" (capital ID!)
+ --- This is the doing of Blizzard, not me.
+ ---@see CLEUParser.GetExtraSpellID + ---@param ... any + ---@return number, nil|string + GetExtraSpellId = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return 0, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["extraSpellId"], ...) + if val == nil then + return 0, "ExtraSpellId is nil or missing" + end + if type(val) ~= "number" then + return 0, "ExtraSpellId is not a number" + end + return val, nil + end, + + --- Specific to subevents prefixed by: + --- |Prefix| + --- |-----| + --- |RANGE| + --- |SWING| + --- |SPELL| + --- |SPELL_PERIODIC| + --- |SPELL_BUILDING| + --- + --- And suffixed by: + --- |Suffix| + --- |------| + --- |_DISPEL| + --- |_STOLEN| + --- |_AURA_APPLIED| + --- |_AURA_REMOVED| + --- |_AURA_APPLIED_DOSE| + --- |_AURA_REMOVED_DOSE| + --- |_AURA_REFRESH| + --- |_AURA_BROKEN| + --- |_AURA_BROKEN_SPELL| + ---@param ... any + ---@return number, nil|string + GetExtraAuraType = function(...) + local subevent, err = CLEUParser.GetSubevent(...) + if err then + return 0, + string.format("Failed getting subevent due to: %s", err) + end + local val = select(CLEUEventInfo[subevent]["auraType"], ...) + if val == nil then return 0, "AuraType is nil or missing" end + if type(val) ~= "number" then + return 0, "AuraType is not a number" + end + return val, nil + end + } +end diff --git a/FreshShit/_Shared/Colorer.lua b/WeakAuras/Projects/_Shared/Colorer.lua similarity index 96% rename from FreshShit/_Shared/Colorer.lua rename to WeakAuras/Projects/_Shared/Colorer.lua index 30a7554..3b8ba02 100644 --- a/FreshShit/_Shared/Colorer.lua +++ b/WeakAuras/Projects/_Shared/Colorer.lua @@ -1,64 +1,64 @@ ----@alias Color {r: number, g: number, b: number} ----@class Colorer ----@field colors table ----@field breakpoints table -Colorer = { - --- Make sure colors and breakpoints always have the same number of entries! VERY IMPORTANT! - ---@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 = 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 - }, - breakpoints = { -999, -10, -5, -2, 2, 5, 10, 999 }, - - ---@param value number - ---@return Color, nil|string - Interpolate = function(value) - local color = { r = 0, g = 0, b = 0 } - - ---@type table> - local bracket = { { 0, 0 }, { 1, 1 } } - for i = 1, #Colorer.breakpoints do - if value < Colorer.breakpoints[i] then - bracket[2] = { i, Colorer.breakpoints[i] } - break - end - bracket[1] = { i, Colorer.breakpoints[i] } - end - - ---@type Color - local startColor = Colorer.colors[bracket[1][1]] - ---@type Color - local endColor = Colorer.colors[bracket[2][1]] - - local fraction = (value - bracket[1][2]) / (bracket[2][2] - bracket[1][2]) - - for k, v in pairs(startColor) do - color[k] = Colorer.lerp(v, endColor[k], fraction) - end - - return color, nil - end, - - ---@param color Color - ---@return string - RGBToHex = function(color) - local r = math.floor(color.r * 255) - local g = math.floor(color.g * 255) - local b = math.floor(color.b * 255) - return string.format("%02x%02x%02x", r, g, b) - end, - - ---@param a number - ---@param b number - ---@param t number - ---@return number - lerp = function(a, b, t) return a * (1 - t) + b * t end, -} -setmetatable(Colorer, { __index = Colorer }) +---@alias Color {r: number, g: number, b: number} +---@class Colorer +---@field colors table +---@field breakpoints table +Colorer = { + --- Make sure colors and breakpoints always have the same number of entries! VERY IMPORTANT! + ---@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 = 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 + }, + breakpoints = { -999, -10, -5, -2, 2, 5, 10, 999 }, + + ---@param value number + ---@return Color, nil|string + Interpolate = function(value) + local color = { r = 0, g = 0, b = 0 } + + ---@type table> + local bracket = { { 0, 0 }, { 1, 1 } } + for i = 1, #Colorer.breakpoints do + if value < Colorer.breakpoints[i] then + bracket[2] = { i, Colorer.breakpoints[i] } + break + end + bracket[1] = { i, Colorer.breakpoints[i] } + end + + ---@type Color + local startColor = Colorer.colors[bracket[1][1]] + ---@type Color + local endColor = Colorer.colors[bracket[2][1]] + + local fraction = (value - bracket[1][2]) / (bracket[2][2] - bracket[1][2]) + + for k, v in pairs(startColor) do + color[k] = Colorer.lerp(v, endColor[k], fraction) + end + + return color, nil + end, + + ---@param color Color + ---@return string + RGBToHex = function(color) + local r = math.floor(color.r * 255) + local g = math.floor(color.g * 255) + local b = math.floor(color.b * 255) + return string.format("%02x%02x%02x", r, g, b) + end, + + ---@param a number + ---@param b number + ---@param t number + ---@return number + lerp = function(a, b, t) return a * (1 - t) + b * t end, +} +setmetatable(Colorer, { __index = Colorer }) diff --git a/FreshShit/_Shared/Messenger.lua b/WeakAuras/Projects/_Shared/Messenger.lua similarity index 97% rename from FreshShit/_Shared/Messenger.lua rename to WeakAuras/Projects/_Shared/Messenger.lua index 58aad8a..539ce92 100644 --- a/FreshShit/_Shared/Messenger.lua +++ b/WeakAuras/Projects/_Shared/Messenger.lua @@ -1,79 +1,79 @@ --- TICKER_200 -function() - if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end - if not WeakAurasSaved.Cyka.MessageQueue then WeakAurasSaved.Cyka.MessageQueue = {} end - - ---@type Message - local message = WeakAurasSaved.Cyka.MessageQueue[1] - if not message then return end - if not message.message or message.message == "" then return end - if not message.channel or message.channel == "" then return end - - -- Map channel names to ids - if message.channel == "CHANNEL" and message.data and string.match(message.data, "%D") then - print("Channel presented as string:", message.data) - local channelId = aura_env.channelIdMap[message.data] - if not channelId then - print("Channel not found, scanning") - aura_env.ScanChannels() - channelId = aura_env.channelIdMap[message.data] - end - if not channelId then - print("Channel not joined, joining") - channelId = aura_env.FindOrJoinChannel(message.data) - end - print("Channel resolved to id", channelId) - message.data = channelId - end - - table.remove(WeakAurasSaved.Cyka.MessageQueue, 1) - SendChatMessage(message.message, message.channel, nil, message.data) -end - ---INIT ----@type table -aura_env.channelIdMap = {} -aura_env.FindOrJoinChannel = function(channelName, password) - local function GetChannelId(channelName) - local channels = {GetChannelList()} - for i = 1, #channels, 2 do - local id = channels[i] - local name = channels[i + 1] - if name == channelName then - return id - end - end - end - - local channelId = GetChannelId(channelName) - if not channelId then - print("Channel", channelName, "not found, joining") - if password then - JoinPermanentChannel(channelName, password) - else - JoinPermanentChannel(channelName) - end - end - channelId = GetChannelId(channelName) - aura_env.channelIdMap[channelName] = channelId - return channelId -end -aura_env.ScanChannels = function() - local channels = {GetChannelList()} - for i = 1, #channels, 2 do - local id = channels[i] - local name = channels[i + 1] - aura_env.channelIdMap[name] = id - end -end -local channelId = aura_env.FindOrJoinChannel(aura_env.config.channel, aura_env.config.channelPassword) -print("Channel", aura_env.config.channel, "resolved to id", channelId) ---aura_env.iterator = 0 ---WeakAurasSaved.Cyka.MessageQueue = {} ---for i = 1, 100 do --- table.insert(WeakAurasSaved.Cyka.MessageQueue, { --- channel = "CHANNEL", --- data = aura_env.channelId, --- message = "TEST" .. i --- }) ---end +-- TICKER_200 +function() + if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end + if not WeakAurasSaved.Cyka.MessageQueue then WeakAurasSaved.Cyka.MessageQueue = {} end + + ---@type Message + local message = WeakAurasSaved.Cyka.MessageQueue[1] + if not message then return end + if not message.message or message.message == "" then return end + if not message.channel or message.channel == "" then return end + + -- Map channel names to ids + if message.channel == "CHANNEL" and message.data and string.match(message.data, "%D") then + print("Channel presented as string:", message.data) + local channelId = aura_env.channelIdMap[message.data] + if not channelId then + print("Channel not found, scanning") + aura_env.ScanChannels() + channelId = aura_env.channelIdMap[message.data] + end + if not channelId then + print("Channel not joined, joining") + channelId = aura_env.FindOrJoinChannel(message.data) + end + print("Channel resolved to id", channelId) + message.data = channelId + end + + table.remove(WeakAurasSaved.Cyka.MessageQueue, 1) + SendChatMessage(message.message, message.channel, nil, message.data) +end + +--INIT +---@type table +aura_env.channelIdMap = {} +aura_env.FindOrJoinChannel = function(channelName, password) + local function GetChannelId(channelName) + local channels = {GetChannelList()} + for i = 1, #channels, 2 do + local id = channels[i] + local name = channels[i + 1] + if name == channelName then + return id + end + end + end + + local channelId = GetChannelId(channelName) + if not channelId then + print("Channel", channelName, "not found, joining") + if password then + JoinPermanentChannel(channelName, password) + else + JoinPermanentChannel(channelName) + end + end + channelId = GetChannelId(channelName) + aura_env.channelIdMap[channelName] = channelId + return channelId +end +aura_env.ScanChannels = function() + local channels = {GetChannelList()} + for i = 1, #channels, 2 do + local id = channels[i] + local name = channels[i + 1] + aura_env.channelIdMap[name] = id + end +end +local channelId = aura_env.FindOrJoinChannel(aura_env.config.channel, aura_env.config.channelPassword) +print("Channel", aura_env.config.channel, "resolved to id", channelId) +--aura_env.iterator = 0 +--WeakAurasSaved.Cyka.MessageQueue = {} +--for i = 1, 100 do +-- table.insert(WeakAurasSaved.Cyka.MessageQueue, { +-- channel = "CHANNEL", +-- data = aura_env.channelId, +-- message = "TEST" .. i +-- }) +--end diff --git a/FreshShit/_Shared/Messenger_Export b/WeakAuras/Projects/_Shared/Messenger_Export similarity index 100% rename from FreshShit/_Shared/Messenger_Export rename to WeakAuras/Projects/_Shared/Messenger_Export diff --git a/FreshShit/__Ascension/Cooldowner/display.lua b/WeakAuras/Projects/__Ascension/Cooldowner/display.lua similarity index 94% rename from FreshShit/__Ascension/Cooldowner/display.lua rename to WeakAuras/Projects/__Ascension/Cooldowner/display.lua index ebe76b6..cade883 100644 --- a/FreshShit/__Ascension/Cooldowner/display.lua +++ b/WeakAuras/Projects/__Ascension/Cooldowner/display.lua @@ -1,6 +1,6 @@ -function() - if not aura_env.scanned then - aura_env.lookup() - end - return aura_env.keybind +function() + if not aura_env.scanned then + aura_env.lookup() + end + return aura_env.keybind end \ No newline at end of file diff --git a/FreshShit/__Ascension/Cooldowner/init.lua b/WeakAuras/Projects/__Ascension/Cooldowner/init.lua similarity index 96% rename from FreshShit/__Ascension/Cooldowner/init.lua rename to WeakAuras/Projects/__Ascension/Cooldowner/init.lua index 9b1ef82..6639c60 100644 --- a/FreshShit/__Ascension/Cooldowner/init.lua +++ b/WeakAuras/Projects/__Ascension/Cooldowner/init.lua @@ -1,55 +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", -} - -aura_env.lookup = function() - 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 - - 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 - - aura_env.scanned = true -end +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", +} + +aura_env.lookup = function() + 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 + + 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 + + aura_env.scanned = true +end diff --git a/FreshShit/__Ascension/TooltipItemInfo/export b/WeakAuras/Projects/__Ascension/TooltipItemInfo/export similarity index 100% rename from FreshShit/__Ascension/TooltipItemInfo/export rename to WeakAuras/Projects/__Ascension/TooltipItemInfo/export diff --git a/FreshShit/__Ascension/TooltipItemInfo/init.lua b/WeakAuras/Projects/__Ascension/TooltipItemInfo/init.lua similarity index 97% rename from FreshShit/__Ascension/TooltipItemInfo/init.lua rename to WeakAuras/Projects/__Ascension/TooltipItemInfo/init.lua index 8611eef..7109509 100644 --- a/FreshShit/__Ascension/TooltipItemInfo/init.lua +++ b/WeakAuras/Projects/__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 - - -- hooksecurefunc(GameTooltip, "SetInventoryItem", iteminfo) - hooksecurefunc(GameTooltip, "SetBagItem", iteminfo) - - _G.tooltipItemInfoHooked = true -end +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 + + -- hooksecurefunc(GameTooltip, "SetInventoryItem", iteminfo) + hooksecurefunc(GameTooltip, "SetBagItem", iteminfo) + + _G.tooltipItemInfoHooked = true +end diff --git a/FreshShit/__Ascension/TotemTicker/event.lua b/WeakAuras/Projects/__Ascension/TotemTicker/event.lua similarity index 97% rename from FreshShit/__Ascension/TotemTicker/event.lua rename to WeakAuras/Projects/__Ascension/TotemTicker/event.lua index e44469c..7bfca1f 100644 --- a/FreshShit/__Ascension/TotemTicker/event.lua +++ b/WeakAuras/Projects/__Ascension/TotemTicker/event.lua @@ -1,23 +1,23 @@ ---- CLEU:SPELL_SUMMON:UNIT_DIED TOTEM_TICK -function(event, name) - if event == "TOTEM_TICK" and name == aura_env.totem then - --print(aura_env.totem .. " Tick") - if aura_env.alive then - WeakAuras.timer:ScheduleTimer(WeakAuras.ScanEvents, 3, "TOTEM_TICK", aura_env.totem) - end - return true - end - --print(arg2, arg7, aura_env.totem) - if arg2 == "SPELL_SUMMON" and arg7 == aura_env.totem then - --print(aura_env.totem .. " Summoned") - WeakAuras.timer:ScheduleTimer(WeakAuras.ScanEvents, 3, "TOTEM_TICK", aura_env.totem) - aura_env.alive = true - return true - end - if arg2 == "UNIT_DIED" and arg7 == aura_env.totem then - --print(aura_env.totem .. " Died") - aura_env.alive = false - return false - end - return false +--- CLEU:SPELL_SUMMON:UNIT_DIED TOTEM_TICK +function(event, name) + if event == "TOTEM_TICK" and name == aura_env.totem then + --print(aura_env.totem .. " Tick") + if aura_env.alive then + WeakAuras.timer:ScheduleTimer(WeakAuras.ScanEvents, 3, "TOTEM_TICK", aura_env.totem) + end + return true + end + --print(arg2, arg7, aura_env.totem) + if arg2 == "SPELL_SUMMON" and arg7 == aura_env.totem then + --print(aura_env.totem .. " Summoned") + WeakAuras.timer:ScheduleTimer(WeakAuras.ScanEvents, 3, "TOTEM_TICK", aura_env.totem) + aura_env.alive = true + return true + end + if arg2 == "UNIT_DIED" and arg7 == aura_env.totem then + --print(aura_env.totem .. " Died") + aura_env.alive = false + return false + end + return false end \ No newline at end of file diff --git a/FreshShit/__Ascension/TotemTicker/init.lua b/WeakAuras/Projects/__Ascension/TotemTicker/init.lua similarity index 97% rename from FreshShit/__Ascension/TotemTicker/init.lua rename to WeakAuras/Projects/__Ascension/TotemTicker/init.lua index fcfb800..5b17282 100644 --- a/FreshShit/__Ascension/TotemTicker/init.lua +++ b/WeakAuras/Projects/__Ascension/TotemTicker/init.lua @@ -1,2 +1,2 @@ -aura_env.alive = false -aura_env.totem = aura_env.config.totem or "Tremor Totem" +aura_env.alive = false +aura_env.totem = aura_env.config.totem or "Tremor Totem" diff --git a/FreshShit/__Ascension/__Other/buffs b/WeakAuras/Projects/__Ascension/__Other/buffs similarity index 100% rename from FreshShit/__Ascension/__Other/buffs rename to WeakAuras/Projects/__Ascension/__Other/buffs diff --git a/FreshShit/__Ascension/__Other/cooldowns b/WeakAuras/Projects/__Ascension/__Other/cooldowns similarity index 100% rename from FreshShit/__Ascension/__Other/cooldowns rename to WeakAuras/Projects/__Ascension/__Other/cooldowns diff --git a/FreshShit/__Ascension/__Other/cursoricons b/WeakAuras/Projects/__Ascension/__Other/cursoricons similarity index 100% rename from FreshShit/__Ascension/__Other/cursoricons rename to WeakAuras/Projects/__Ascension/__Other/cursoricons diff --git a/FreshShit/__Ascension/__Other/procs b/WeakAuras/Projects/__Ascension/__Other/procs similarity index 100% rename from FreshShit/__Ascension/__Other/procs rename to WeakAuras/Projects/__Ascension/__Other/procs diff --git a/FreshShit/hekilidisplay b/WeakAuras/Projects/hekilidisplay similarity index 100% rename from FreshShit/hekilidisplay rename to WeakAuras/Projects/hekilidisplay diff --git a/WA snippets/Add Strings.lua b/WeakAuras/Snippets/Add Strings.lua similarity index 94% rename from WA snippets/Add Strings.lua rename to WeakAuras/Snippets/Add Strings.lua index 0259bbd..d3650e9 100644 --- a/WA snippets/Add Strings.lua +++ b/WeakAuras/Snippets/Add Strings.lua @@ -1,9 +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 -end +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 +end diff --git a/WA snippets/Adding text.lua b/WeakAuras/Snippets/Adding text.lua similarity index 98% rename from WA snippets/Adding text.lua rename to WeakAuras/Snippets/Adding text.lua index d0708d2..8a6e8a0 100644 --- a/WA snippets/Adding text.lua +++ b/WeakAuras/Snippets/Adding text.lua @@ -1,11 +1,11 @@ -function(expirationTime, duration, progress, formatedDuration, name, icon, stacks) - if not aura_env.region.text3 then - local text3 = aura_env.region:CreateFontString(nil, "OVERLAY") - aura_env.region.text3 = text3 - aura_env.region.text3:SetFont(aura_env.region.stacks:GetFont()) - aura_env.region.text3:SetTextColor(1, 1, 1, 1) - aura_env.region.text3:SetPoint("BOTTOMRIGHT", aura_env.region, "BOTTOMRIGHT", -1, 1) - aura_env.region.text3:Show() - end - aura_env.region.text3:SetText(progress) -end +function(expirationTime, duration, progress, formatedDuration, name, icon, stacks) + if not aura_env.region.text3 then + local text3 = aura_env.region:CreateFontString(nil, "OVERLAY") + aura_env.region.text3 = text3 + aura_env.region.text3:SetFont(aura_env.region.stacks:GetFont()) + aura_env.region.text3:SetTextColor(1, 1, 1, 1) + aura_env.region.text3:SetPoint("BOTTOMRIGHT", aura_env.region, "BOTTOMRIGHT", -1, 1) + aura_env.region.text3:Show() + end + aura_env.region.text3:SetText(progress) +end diff --git a/WA snippets/Anchor to nameplate.lua b/WeakAuras/Snippets/Anchor to nameplate.lua similarity index 97% rename from WA snippets/Anchor to nameplate.lua rename to WeakAuras/Snippets/Anchor to nameplate.lua index 4731d60..48802c0 100644 --- a/WA snippets/Anchor to nameplate.lua +++ b/WeakAuras/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) -end +local plate = C_NamePlate.GetNamePlateForUnit("target") +if plate then + aura_env.region:ClearAllPoints() + aura_env.region:SetPoint("BOTTOM", plate, "BOTTOM", 0, 0) +end diff --git a/WA snippets/Buttons.lua b/WeakAuras/Snippets/Buttons.lua similarity index 98% rename from WA snippets/Buttons.lua rename to WeakAuras/Snippets/Buttons.lua index d6ef84c..29a3e2b 100644 --- a/WA snippets/Buttons.lua +++ b/WeakAuras/Snippets/Buttons.lua @@ -1,9 +1,9 @@ -function() - local r = WeakAuras.regions['julijatest'].region - local b = CreateFrame("Button", "WEAK AURA NAME HERE", r, "SecureActionButtonTemplate") --Does some crazy shit - b:SetAllPoints() --No idea - b:SetAttribute("unit", "player") --Target I guess? - b:SetAttribute("macro", "DN") --What do // sub macro for spell - b:SetAttribute("type", "macro") --What do again....? // sub macro for spell -end +function() + local r = WeakAuras.regions['julijatest'].region + local b = CreateFrame("Button", "WEAK AURA NAME HERE", r, "SecureActionButtonTemplate") --Does some crazy shit + b:SetAllPoints() --No idea + b:SetAttribute("unit", "player") --Target I guess? + b:SetAttribute("macro", "DN") --What do // sub macro for spell + b:SetAttribute("type", "macro") --What do again....? // sub macro for spell +end --Goes with PLAYER_ENTERING_WORLD And only with it otherwise doesn't properly load for some reason \ No newline at end of file diff --git a/WA snippets/C_Timer.lua b/WeakAuras/Snippets/C_Timer.lua similarity index 98% rename from WA snippets/C_Timer.lua rename to WeakAuras/Snippets/C_Timer.lua index cd1c6dd..b60befe 100644 --- a/WA snippets/C_Timer.lua +++ b/WeakAuras/Snippets/C_Timer.lua @@ -1 +1 @@ -/ script C_Timer.After(15, function() SendChatMessage("lol", "PARTY"); end) +/ script C_Timer.After(15, function() SendChatMessage("lol", "PARTY"); end) diff --git a/WA snippets/Class Colors.lua b/WeakAuras/Snippets/Class Colors.lua similarity index 96% rename from WA snippets/Class Colors.lua rename to WeakAuras/Snippets/Class Colors.lua index 6b1ce77..7ee6aa2 100644 --- a/WA snippets/Class Colors.lua +++ b/WeakAuras/Snippets/Class Colors.lua @@ -1,90 +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 -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 -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 -end +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 +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 +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 +end diff --git a/WA snippets/Click Buttons.lua b/WeakAuras/Snippets/Click Buttons.lua similarity index 96% rename from WA snippets/Click Buttons.lua rename to WeakAuras/Snippets/Click Buttons.lua index e6f9810..9f00d5e 100644 --- a/WA snippets/Click Buttons.lua +++ b/WeakAuras/Snippets/Click Buttons.lua @@ -1,3 +1,3 @@ -function() - StaticPopup1Button1:Click("LeftButton") +function() + StaticPopup1Button1:Click("LeftButton") end \ No newline at end of file diff --git a/WA snippets/Color Gradient.lua b/WeakAuras/Snippets/Color Gradient.lua similarity index 96% rename from WA snippets/Color Gradient.lua rename to WeakAuras/Snippets/Color Gradient.lua index c9f2a2e..eb9c36f 100644 --- a/WA snippets/Color Gradient.lua +++ b/WeakAuras/Snippets/Color Gradient.lua @@ -1,59 +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 -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 -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 -end +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 +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 +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 +end diff --git a/WA snippets/Date and Time.lua b/WeakAuras/Snippets/Date and Time.lua similarity index 97% rename from WA snippets/Date and Time.lua rename to WeakAuras/Snippets/Date and Time.lua index e4de7ae..52ed231 100644 --- a/WA snippets/Date and Time.lua +++ b/WeakAuras/Snippets/Date and Time.lua @@ -1,35 +1,35 @@ -aura_env.getDate = function() - 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 - -aura_env.getTime = function() - 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 - -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 +aura_env.getDate = function() + 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 + +aura_env.getTime = function() + 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 + +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 diff --git a/WA snippets/DefStack.lua b/WeakAuras/Snippets/DefStack.lua similarity index 95% rename from WA snippets/DefStack.lua rename to WeakAuras/Snippets/DefStack.lua index ab68c0a..10e35f8 100644 --- a/WA snippets/DefStack.lua +++ b/WeakAuras/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 -end +aura_env.stackDef = function(def1, def2) + 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/WeakAuras/Snippets/Find Aura ID.lua similarity index 94% rename from WA snippets/Find Aura ID.lua rename to WeakAuras/Snippets/Find Aura ID.lua index 0d2a838..456c23c 100644 --- a/WA snippets/Find Aura ID.lua +++ b/WeakAuras/Snippets/Find Aura ID.lua @@ -1,10 +1,10 @@ -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 - else - break - end - end -end +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 + else + break + end + end +end diff --git a/WA snippets/FormatTime.lua b/WeakAuras/Snippets/FormatTime.lua similarity index 95% rename from WA snippets/FormatTime.lua rename to WeakAuras/Snippets/FormatTime.lua index 4687bb3..f00ec38 100644 --- a/WA snippets/FormatTime.lua +++ b/WeakAuras/Snippets/FormatTime.lua @@ -1,11 +1,11 @@ -local function formatTime(time) - local res, m, s = time, 0, 0 - while res >= 60 do - m = m + 1 - res = res - 60 - end - s = res - 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 +local function formatTime(time) + local res, m, s = time, 0, 0 + while res >= 60 do + m = m + 1 + res = res - 60 + end + s = res + 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 diff --git a/WA snippets/Functions.lua b/WeakAuras/Snippets/Functions.lua similarity index 96% rename from WA snippets/Functions.lua rename to WeakAuras/Snippets/Functions.lua index 0aaf934..8a6aaf0 100644 --- a/WA snippets/Functions.lua +++ b/WeakAuras/Snippets/Functions.lua @@ -1,3 +1,3 @@ -local function name(arguments) end - -aura_env.name = function(arguments) end +local function name(arguments) end + +aura_env.name = function(arguments) end diff --git a/WA snippets/Get Item Link from chat link.lua b/WeakAuras/Snippets/Get Item Link from chat link.lua similarity index 97% rename from WA snippets/Get Item Link from chat link.lua rename to WeakAuras/Snippets/Get Item Link from chat link.lua index 4473421..0ca9a77 100644 --- a/WA snippets/Get Item Link from chat link.lua +++ b/WeakAuras/Snippets/Get Item Link from chat link.lua @@ -1,4 +1,4 @@ -for itemLink in msg:gmatch("|%x+|Hitem:.-|h.-|h|r") do - itemID = itemLink:match("item:(%d+):") - icon = select(10, GetItemInfo(itemLink)) -end +for itemLink in msg:gmatch("|%x+|Hitem:.-|h.-|h|r") do + itemID = itemLink:match("item:(%d+):") + icon = select(10, GetItemInfo(itemLink)) +end diff --git a/WA snippets/GetSpellWithCooldown.lua b/WeakAuras/Snippets/GetSpellWithCooldown.lua similarity index 96% rename from WA snippets/GetSpellWithCooldown.lua rename to WeakAuras/Snippets/GetSpellWithCooldown.lua index 803f976..881d8e0 100644 --- a/WA snippets/GetSpellWithCooldown.lua +++ b/WeakAuras/Snippets/GetSpellWithCooldown.lua @@ -1,35 +1,35 @@ ---INIT -local i = 1 -while true do - local spellName, spellSubName = GetSpellBookItemName(i, BOOKTYPE_SPELL) - local type, ID = GetSpellBookItemInfo(i, BOOKTYPE_SPELL) - if not spellName then - do - break - end - 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 - end - - i = i + 1 -end - -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 -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 - end - end -end +--INIT +local i = 1 +while true do + local spellName, spellSubName = GetSpellBookItemName(i, BOOKTYPE_SPELL) + local type, ID = GetSpellBookItemInfo(i, BOOKTYPE_SPELL) + if not spellName then + do + break + end + 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 + end + + i = i + 1 +end + +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 +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 + end + end +end diff --git a/WA snippets/Hashing.lua b/WeakAuras/Snippets/Hashing.lua similarity index 97% rename from WA snippets/Hashing.lua rename to WeakAuras/Snippets/Hashing.lua index a4cce31..854ce5d 100644 --- a/WA snippets/Hashing.lua +++ b/WeakAuras/Snippets/Hashing.lua @@ -1,101 +1,101 @@ -local function tonum(cchar) - if cchar == ":" then return 58 end - if cchar == "-" then return 45 end - if cchar == "!" then return 32 end - if cchar == "," then return 44 end - - if cchar == "0" then return 48 end - if cchar == "1" then return 49 end - if cchar == "2" then return 50 end - if cchar == "3" then return 51 end - if cchar == "4" then return 52 end - if cchar == "5" then return 53 end - if cchar == "6" then return 54 end - if cchar == "7" then return 55 end - if cchar == "8" then return 56 end - if cchar == "9" then return 57 end - - if cchar == "A" then return 65 end - if cchar == "B" then return 66 end - if cchar == "C" then return 67 end - if cchar == "D" then return 68 end - if cchar == "E" then return 69 end - if cchar == "F" then return 70 end - if cchar == "G" then return 71 end - if cchar == "H" then return 72 end - if cchar == "I" then return 73 end - if cchar == "J" then return 74 end - if cchar == "K" then return 75 end - if cchar == "L" then return 76 end - if cchar == "M" then return 77 end - if cchar == "N" then return 78 end - if cchar == "O" then return 79 end - if cchar == "P" then return 80 end - if cchar == "Q" then return 81 end - if cchar == "R" then return 82 end - if cchar == "S" then return 83 end - if cchar == "T" then return 84 end - if cchar == "U" then return 85 end - if cchar == "V" then return 86 end - if cchar == "W" then return 87 end - if cchar == "X" then return 88 end - if cchar == "Y" then return 89 end - if cchar == "Z" then return 90 end - - if cchar == "a" then return 97 end - if cchar == "b" then return 98 end - if cchar == "c" then return 99 end - if cchar == "d" then return 100 end - if cchar == "e" then return 101 end - if cchar == "f" then return 102 end - if cchar == "g" then return 103 end - if cchar == "h" then return 104 end - if cchar == "i" then return 105 end - if cchar == "j" then return 106 end - if cchar == "k" then return 107 end - if cchar == "l" then return 108 end - if cchar == "m" then return 109 end - if cchar == "n" then return 110 end - if cchar == "o" then return 111 end - if cchar == "p" then return 112 end - if cchar == "q" then return 113 end - if cchar == "r" then return 114 end - if cchar == "s" then return 115 end - if cchar == "t" then return 116 end - if cchar == "u" then return 117 end - if cchar == "v" then return 118 end - if cchar == "w" then return 119 end - if cchar == "x" then return 120 end - if cchar == "y" then return 121 end - if cchar == "z" then return 122 end -end -local function findcollision(hash_table, array) - local collisions = 0 - 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 - collisions = collisions + 1 - print(hash_table[i], hash_table[k], i, k, array[i], array[k]) - end - end - end - end - return collisions -end -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 - hash = math.floor(hash * 10000) - return hash - --print(aura_env.spellarray[hash], hash) -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 +local function tonum(cchar) + if cchar == ":" then return 58 end + if cchar == "-" then return 45 end + if cchar == "!" then return 32 end + if cchar == "," then return 44 end + + if cchar == "0" then return 48 end + if cchar == "1" then return 49 end + if cchar == "2" then return 50 end + if cchar == "3" then return 51 end + if cchar == "4" then return 52 end + if cchar == "5" then return 53 end + if cchar == "6" then return 54 end + if cchar == "7" then return 55 end + if cchar == "8" then return 56 end + if cchar == "9" then return 57 end + + if cchar == "A" then return 65 end + if cchar == "B" then return 66 end + if cchar == "C" then return 67 end + if cchar == "D" then return 68 end + if cchar == "E" then return 69 end + if cchar == "F" then return 70 end + if cchar == "G" then return 71 end + if cchar == "H" then return 72 end + if cchar == "I" then return 73 end + if cchar == "J" then return 74 end + if cchar == "K" then return 75 end + if cchar == "L" then return 76 end + if cchar == "M" then return 77 end + if cchar == "N" then return 78 end + if cchar == "O" then return 79 end + if cchar == "P" then return 80 end + if cchar == "Q" then return 81 end + if cchar == "R" then return 82 end + if cchar == "S" then return 83 end + if cchar == "T" then return 84 end + if cchar == "U" then return 85 end + if cchar == "V" then return 86 end + if cchar == "W" then return 87 end + if cchar == "X" then return 88 end + if cchar == "Y" then return 89 end + if cchar == "Z" then return 90 end + + if cchar == "a" then return 97 end + if cchar == "b" then return 98 end + if cchar == "c" then return 99 end + if cchar == "d" then return 100 end + if cchar == "e" then return 101 end + if cchar == "f" then return 102 end + if cchar == "g" then return 103 end + if cchar == "h" then return 104 end + if cchar == "i" then return 105 end + if cchar == "j" then return 106 end + if cchar == "k" then return 107 end + if cchar == "l" then return 108 end + if cchar == "m" then return 109 end + if cchar == "n" then return 110 end + if cchar == "o" then return 111 end + if cchar == "p" then return 112 end + if cchar == "q" then return 113 end + if cchar == "r" then return 114 end + if cchar == "s" then return 115 end + if cchar == "t" then return 116 end + if cchar == "u" then return 117 end + if cchar == "v" then return 118 end + if cchar == "w" then return 119 end + if cchar == "x" then return 120 end + if cchar == "y" then return 121 end + if cchar == "z" then return 122 end +end +local function findcollision(hash_table, array) + local collisions = 0 + 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 + collisions = collisions + 1 + print(hash_table[i], hash_table[k], i, k, array[i], array[k]) + end + end + end + end + return collisions +end +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 + hash = math.floor(hash * 10000) + return hash + --print(aura_env.spellarray[hash], hash) +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 diff --git a/WA snippets/IconPrint b/WeakAuras/Snippets/IconPrint similarity index 97% rename from WA snippets/IconPrint rename to WeakAuras/Snippets/IconPrint index ddb5d54..0133516 100644 --- a/WA snippets/IconPrint +++ b/WeakAuras/Snippets/IconPrint @@ -1,2 +1,2 @@ -"\124T%s:0\124t" +"\124T%s:0\124t" Where %s is icon ID \ No newline at end of file diff --git a/WA snippets/Jump God.lua b/WeakAuras/Snippets/Jump God.lua similarity index 98% rename from WA snippets/Jump God.lua rename to WeakAuras/Snippets/Jump God.lua index 2f1e439..a66967c 100644 --- a/WA snippets/Jump God.lua +++ b/WeakAuras/Snippets/Jump God.lua @@ -1 +1 @@ -hooksecurefunc("JumpOrAscendStart", function() DEFAULT_CHAT_FRAME:AddMessage("Jump") end) +hooksecurefunc("JumpOrAscendStart", function() DEFAULT_CHAT_FRAME:AddMessage("Jump") end) diff --git a/WA snippets/NameplateGlow.lua b/WeakAuras/Snippets/NameplateGlow.lua similarity index 97% rename from WA snippets/NameplateGlow.lua rename to WeakAuras/Snippets/NameplateGlow.lua index 7900cf9..3d5a03d 100644 --- a/WA snippets/NameplateGlow.lua +++ b/WeakAuras/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 -end +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 +end diff --git a/WA snippets/New Texture and Anchor.lua b/WeakAuras/Snippets/New Texture and Anchor.lua similarity index 97% rename from WA snippets/New Texture and Anchor.lua rename to WeakAuras/Snippets/New Texture and Anchor.lua index adf8cfb..2861375 100644 --- a/WA snippets/New Texture and Anchor.lua +++ b/WeakAuras/Snippets/New Texture and Anchor.lua @@ -1,17 +1,17 @@ ---INIT -if not aura_env.region.texture then - local texture = aura_env.region:CreateTexture(nil, "OVERLAY") - aura_env.region.texture = texture -end -aura_env.region:SetHeight(128) -aura_env.region:SetWidth(128) -aura_env.region.texture:SetTexture("Interface\\Addons\\WeakAuras\\PowerAurasMedia\\Auras\\Aura51") -aura_env.region.texture:SetHeight(128) -aura_env.region.texture:SetWidth(128) -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) -end +--INIT +if not aura_env.region.texture then + local texture = aura_env.region:CreateTexture(nil, "OVERLAY") + aura_env.region.texture = texture +end +aura_env.region:SetHeight(128) +aura_env.region:SetWidth(128) +aura_env.region.texture:SetTexture("Interface\\Addons\\WeakAuras\\PowerAurasMedia\\Auras\\Aura51") +aura_env.region.texture:SetHeight(128) +aura_env.region.texture:SetWidth(128) +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) +end diff --git a/WA snippets/Print Table.lua b/WeakAuras/Snippets/Print Table.lua similarity index 95% rename from WA snippets/Print Table.lua rename to WeakAuras/Snippets/Print Table.lua index c547e4d..69a4d03 100644 --- a/WA snippets/Print Table.lua +++ b/WeakAuras/Snippets/Print Table.lua @@ -1,15 +1,15 @@ -local function printTable(table, n) - if not n then n = 0 end - for k, v in pairs(table) do - local printText = "" - for i = 1, n do - printText = printText .. " " - end - printText = printText .. "[" .. k .. "] = " .. tostring(v) - print(printText) - if type(v) == "table" then - n = n + 1 - printTable(v, n) - end - end -end +local function printTable(table, n) + if not n then n = 0 end + for k, v in pairs(table) do + local printText = "" + for i = 1, n do + printText = printText .. " " + end + printText = printText .. "[" .. k .. "] = " .. tostring(v) + print(printText) + if type(v) == "table" then + n = n + 1 + printTable(v, n) + end + end +end diff --git a/WA snippets/Reading Tooltips.lua b/WeakAuras/Snippets/Reading Tooltips.lua similarity index 97% rename from WA snippets/Reading Tooltips.lua rename to WeakAuras/Snippets/Reading Tooltips.lua index ccb3487..7afdb99 100644 --- a/WA snippets/Reading Tooltips.lua +++ b/WeakAuras/Snippets/Reading Tooltips.lua @@ -1,11 +1,11 @@ --- somewhere in your addon's initialization -local myTooltip = CreateFrame("GameTooltip", "MyAddOnTooltip", UIParent, "GameTooltipTemplate") -myTooltip:SetOwner(UIParent, "ANCHOR_NONE") - --- later, when you want to look at a tooltip -myTooltip:SetUnitBuff("player", index of buff) -for i = 1, myTooltip:NumLines() do - local textLeft = _G["MyAddOnTooltipTextLeft"..i]:GetText() - local textRight = _G["MyAddOnTooltipTextRight"..i]:GetText() - -- do a :match or whatever to look for pertinent text -end +-- somewhere in your addon's initialization +local myTooltip = CreateFrame("GameTooltip", "MyAddOnTooltip", UIParent, "GameTooltipTemplate") +myTooltip:SetOwner(UIParent, "ANCHOR_NONE") + +-- later, when you want to look at a tooltip +myTooltip:SetUnitBuff("player", index of buff) +for i = 1, myTooltip:NumLines() do + local textLeft = _G["MyAddOnTooltipTextLeft"..i]:GetText() + local textRight = _G["MyAddOnTooltipTextRight"..i]:GetText() + -- do a :match or whatever to look for pertinent text +end diff --git a/WA snippets/Registers.lua b/WeakAuras/Snippets/Registers.lua similarity index 95% rename from WA snippets/Registers.lua rename to WeakAuras/Snippets/Registers.lua index e02f7d5..dbb277f 100644 --- a/WA snippets/Registers.lua +++ b/WeakAuras/Snippets/Registers.lua @@ -1,84 +1,84 @@ -registers = { - ["filostack"] = {}, - ["fifostack"] = {}, - ["lifostack"] = {}, - ["lilostack"] = {}, - ["filo"] = { - ["push"] = function(var) - if not var then return false end - registers.filostack[#registers.filostack + 1] = var - return true - end, - ["pop"] = function() - local var = registers.filostack[#registers.filostack] - if not var then return false end - registers.filostack[#registers.filostack] = nil - return var - end, - }, - ["fifo"] = { - ["push"] = function(var) - if not var then return false end - registers.fifostack[#registers.fifostack + 1] = var - return true - end, - ["pop"] = function() - local var = registers.fifostack[1] - if not var then return false end - registers.fifostack[1] = nil - for i = 1, #registers.fifostack do - registers.fifostack[i] = registers.fifostack[i + 1] - registers.fifostack[i + 1] = nil - end - return var - end, - }, - ["lifo"] = { - ["push"] = function(var) - if not var then return false end - for i = 1, #registers.lifostack do - registers.lifostack[i + 1] = registers.lifostack[i] - end - registers.lifostack[1] = var - return true - end, - ["pop"] = function() - local var = #registers.lifostack - if not var then return false end - registers.lifostack[#registers.lifostack] = nil - return var - end, - }, -} - -print("lifo") -print("") -for i = 1, 10 do - print("push") - print(registers.lifo.push(i)) -end -print("") -for k, v in ipairs(registers.lifostack) do - print(v) -end -print("") -for i = 1, #registers.lifostack do - print("pop") - print(registers.lifo.pop()) -end -print("") -print("lilo") -print("") -for i = 1, 4 do - print("push") - print(registers.lilo.push(i)) -end -print("") -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 +registers = { + ["filostack"] = {}, + ["fifostack"] = {}, + ["lifostack"] = {}, + ["lilostack"] = {}, + ["filo"] = { + ["push"] = function(var) + if not var then return false end + registers.filostack[#registers.filostack + 1] = var + return true + end, + ["pop"] = function() + local var = registers.filostack[#registers.filostack] + if not var then return false end + registers.filostack[#registers.filostack] = nil + return var + end, + }, + ["fifo"] = { + ["push"] = function(var) + if not var then return false end + registers.fifostack[#registers.fifostack + 1] = var + return true + end, + ["pop"] = function() + local var = registers.fifostack[1] + if not var then return false end + registers.fifostack[1] = nil + for i = 1, #registers.fifostack do + registers.fifostack[i] = registers.fifostack[i + 1] + registers.fifostack[i + 1] = nil + end + return var + end, + }, + ["lifo"] = { + ["push"] = function(var) + if not var then return false end + for i = 1, #registers.lifostack do + registers.lifostack[i + 1] = registers.lifostack[i] + end + registers.lifostack[1] = var + return true + end, + ["pop"] = function() + local var = #registers.lifostack + if not var then return false end + registers.lifostack[#registers.lifostack] = nil + return var + end, + }, +} + +print("lifo") +print("") +for i = 1, 10 do + print("push") + print(registers.lifo.push(i)) +end +print("") +for k, v in ipairs(registers.lifostack) do + print(v) +end +print("") +for i = 1, #registers.lifostack do + print("pop") + print(registers.lifo.pop()) +end +print("") +print("lilo") +print("") +for i = 1, 4 do + print("push") + print(registers.lilo.push(i)) +end +print("") +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 diff --git a/WA snippets/Round.lua b/WeakAuras/Snippets/Round.lua similarity index 95% rename from WA snippets/Round.lua rename to WeakAuras/Snippets/Round.lua index dcb8538..b0d35a7 100644 --- a/WA snippets/Round.lua +++ b/WeakAuras/Snippets/Round.lua @@ -1,8 +1,8 @@ -aura_env.round = function(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 +aura_env.round = function(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 diff --git a/WA snippets/Shorten Number.lua b/WeakAuras/Snippets/Shorten Number.lua similarity index 95% rename from WA snippets/Shorten Number.lua rename to WeakAuras/Snippets/Shorten Number.lua index a02db57..cab902d 100644 --- a/WA snippets/Shorten Number.lua +++ b/WeakAuras/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 -end +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 +end diff --git a/WA snippets/Size to range.lua b/WeakAuras/Snippets/Size to range.lua similarity index 96% rename from WA snippets/Size to range.lua rename to WeakAuras/Snippets/Size to range.lua index 4f00d6b..66b0884 100644 --- a/WA snippets/Size to range.lua +++ b/WeakAuras/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 +aura_env.range = function(val, min, max, max2) + val = 1 - (((max - val) / (max - min)) * max2) + return val +end diff --git a/WA snippets/TableSort.lua b/WeakAuras/Snippets/TableSort.lua similarity index 95% rename from WA snippets/TableSort.lua rename to WeakAuras/Snippets/TableSort.lua index 450df5f..157e37c 100644 --- a/WA snippets/TableSort.lua +++ b/WeakAuras/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 -end +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 +end diff --git a/WA snippets/Talent IDs.lua b/WeakAuras/Snippets/Talent IDs.lua similarity index 96% rename from WA snippets/Talent IDs.lua rename to WeakAuras/Snippets/Talent IDs.lua index cf06920..39fc2a1 100644 --- a/WA snippets/Talent IDs.lua +++ b/WeakAuras/Snippets/Talent IDs.lua @@ -1,46 +1,46 @@ -[12:15 AM] 22428 -[12:15 AM] Holy Shield -[12:15 AM] 22558 -[12:15 AM] Blessed Hammer -[12:15 AM] 22430 -[12:15 AM] Consecrated Hammer -[12:15 AM] 22431 -[12:15 AM] First Avenger -[12:15 AM] 22604 -[12:15 AM] Bastion of Light -[12:15 AM] 22594 -[12:15 AM] Crusader's Judgment -[12:15 AM] 22179 -[12:15 AM] Fist of Justice -[12:15 AM] 22180 -[12:15 AM] Repentance -[12:15 AM] 21811 -[12:15 AM] Blinding Light -[12:15 AM] 22433 -[12:15 AM] Blessing of Spellwarding -[12:15 AM] 22434 -[12:15 AM] Cavalier -[12:15 AM] 22435 -[12:15 AM] Retribution Aura -[12:15 AM] 22705 -[12:15 AM] Hand of the Protector -[12:15 AM] 21795 -[12:15 AM] Knight Templar -[12:15 AM] 17601 -[12:15 AM] Final Stand -[12:15 AM] 22564 -[12:15 AM] Aegis of Light -[12:15 AM] 22438 -[12:15 AM] Consecrated Ground -[12:15 AM] 22484 -[12:15 AM] Judgment of Light -[12:15 AM] 21201 -[12:15 AM] Righteous Protector -[12:15 AM] 21202 -[12:15 AM] Seraphim -[12:15 AM] 22645 -[12:15 AM] Last Defender - -/run for row = 1, 7 do for column = 1, 3 do local tempvar = select(1, GetTalentInfo(row, column, 1)); print(tempvar); tempvar = select(2, GetTalentInfo(row, column, 1)); print(tempvar) end end - +[12:15 AM] 22428 +[12:15 AM] Holy Shield +[12:15 AM] 22558 +[12:15 AM] Blessed Hammer +[12:15 AM] 22430 +[12:15 AM] Consecrated Hammer +[12:15 AM] 22431 +[12:15 AM] First Avenger +[12:15 AM] 22604 +[12:15 AM] Bastion of Light +[12:15 AM] 22594 +[12:15 AM] Crusader's Judgment +[12:15 AM] 22179 +[12:15 AM] Fist of Justice +[12:15 AM] 22180 +[12:15 AM] Repentance +[12:15 AM] 21811 +[12:15 AM] Blinding Light +[12:15 AM] 22433 +[12:15 AM] Blessing of Spellwarding +[12:15 AM] 22434 +[12:15 AM] Cavalier +[12:15 AM] 22435 +[12:15 AM] Retribution Aura +[12:15 AM] 22705 +[12:15 AM] Hand of the Protector +[12:15 AM] 21795 +[12:15 AM] Knight Templar +[12:15 AM] 17601 +[12:15 AM] Final Stand +[12:15 AM] 22564 +[12:15 AM] Aegis of Light +[12:15 AM] 22438 +[12:15 AM] Consecrated Ground +[12:15 AM] 22484 +[12:15 AM] Judgment of Light +[12:15 AM] 21201 +[12:15 AM] Righteous Protector +[12:15 AM] 21202 +[12:15 AM] Seraphim +[12:15 AM] 22645 +[12:15 AM] Last Defender + +/run for row = 1, 7 do for column = 1, 3 do local tempvar = select(1, GetTalentInfo(row, column, 1)); print(tempvar); tempvar = select(2, GetTalentInfo(row, column, 1)); print(tempvar) end end + /run local tempvar = ""; for i = 1, 40 do tempvar = select(i, GetTalentInfoByID(22430)); if tempvar ~= nil then print(tempvar, i) end end \ No newline at end of file diff --git a/WA snippets/Text Frame.lua b/WeakAuras/Snippets/Text Frame.lua similarity index 97% rename from WA snippets/Text Frame.lua rename to WeakAuras/Snippets/Text Frame.lua index badf826..abfea52 100644 --- a/WA snippets/Text Frame.lua +++ b/WeakAuras/Snippets/Text Frame.lua @@ -1,8 +1,8 @@ -aura_env.f1 = CreateFrame("Frame", nil, UIParent) -aura_env.f1:SetWidth(100) -aura_env.f1:SetHeight(100) -aura_env.f1:SetPoint("CENTER", 0, 100) -aura_env.f1.text = aura_env.f1:CreateFontString(nil, "ARTWORK") -aura_env.f1.text:SetFont("Fonts\\ARIALN.ttf", 26, "OUTLINE") -aura_env.f1.text:SetPoint("CENTER", 0, 0) -aura_env.f1:Hide() +aura_env.f1 = CreateFrame("Frame", nil, UIParent) +aura_env.f1:SetWidth(100) +aura_env.f1:SetHeight(100) +aura_env.f1:SetPoint("CENTER", 0, 100) +aura_env.f1.text = aura_env.f1:CreateFontString(nil, "ARTWORK") +aura_env.f1.text:SetFont("Fonts\\ARIALN.ttf", 26, "OUTLINE") +aura_env.f1.text:SetPoint("CENTER", 0, 0) +aura_env.f1:Hide() diff --git a/WA snippets/Timed Hide.lua b/WeakAuras/Snippets/Timed Hide.lua similarity index 97% rename from WA snippets/Timed Hide.lua rename to WeakAuras/Snippets/Timed Hide.lua index be2b92b..a495664 100644 --- a/WA snippets/Timed Hide.lua +++ b/WeakAuras/Snippets/Timed Hide.lua @@ -1,3 +1,3 @@ -aura_env.region:Show() -local aura_env = aura_env -C_Timer.After(1, function() aura_env.region:Hide() end) +aura_env.region:Show() +local aura_env = aura_env +C_Timer.After(1, function() aura_env.region:Hide() end) diff --git a/WA snippets/ToHex.lua b/WeakAuras/Snippets/ToHex.lua similarity index 96% rename from WA snippets/ToHex.lua rename to WeakAuras/Snippets/ToHex.lua index 4cc7955..3e21040 100644 --- a/WA snippets/ToHex.lua +++ b/WeakAuras/Snippets/ToHex.lua @@ -1,5 +1,5 @@ -local function tohex(input) - local output = string.format("%x", input * 256) - return output - +local function tohex(input) + local output = string.format("%x", input * 256) + return output + \ No newline at end of file diff --git a/WA snippets/UnitBuff.lua b/WeakAuras/Snippets/UnitBuff.lua similarity index 95% rename from WA snippets/UnitBuff.lua rename to WeakAuras/Snippets/UnitBuff.lua index b2bda16..efbce02 100644 --- a/WA snippets/UnitBuff.lua +++ b/WeakAuras/Snippets/UnitBuff.lua @@ -1,10 +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 -end +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 +end diff --git a/WA snippets/UnitDebuffC.lua b/WeakAuras/Snippets/UnitDebuffC.lua similarity index 95% rename from WA snippets/UnitDebuffC.lua rename to WeakAuras/Snippets/UnitDebuffC.lua index 611da16..3d5d1b1 100644 --- a/WA snippets/UnitDebuffC.lua +++ b/WeakAuras/Snippets/UnitDebuffC.lua @@ -1,20 +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 -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 -end +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 +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 +end diff --git a/WA snippets/Weakaurs Useful Shit.lua b/WeakAuras/Snippets/Weakaurs Useful Shit.lua similarity index 98% rename from WA snippets/Weakaurs Useful Shit.lua rename to WeakAuras/Snippets/Weakaurs Useful Shit.lua index 6fa0874..ede5842 100644 --- a/WA snippets/Weakaurs Useful Shit.lua +++ b/WeakAuras/Snippets/Weakaurs Useful Shit.lua @@ -1,3 +1,3 @@ -/ run local f, x = CreateFrame("frame", nil, UIParent); f:SetScript("OnUpdate", function() if GameTooltipTextLeft1:GetText():match("Angellianna") then PlaySound(11466, "master", true); if not x then Screenshot(); x = true; end end end) - ---debugprofilestop() for accurate time like os.clock +/ run local f, x = CreateFrame("frame", nil, UIParent); f:SetScript("OnUpdate", function() if GameTooltipTextLeft1:GetText():match("Angellianna") then PlaySound(11466, "master", true); if not x then Screenshot(); x = true; end end end) + +--debugprofilestop() for accurate time like os.clock diff --git a/WA snippets/wow this works.lua b/WeakAuras/Snippets/wow this works.lua similarity index 97% rename from WA snippets/wow this works.lua rename to WeakAuras/Snippets/wow this works.lua index 359a78f..5bd8e7e 100644 --- a/WA snippets/wow this works.lua +++ b/WeakAuras/Snippets/wow this works.lua @@ -1,7 +1,7 @@ -function() - if not aura_env.tooltip then aura_env.tooltip = CreateFrame("GameTooltip", "tooltip1", UIParent, "GameTooltipTemplate") end - aura_env.tooltip:SetOwner(ElvUF_RaidGroup1UnitButton1, "ANCHOR_NONE") - --tooltip1:SetUnit("raid" .. 2) - local text = _G["tooltip1TextLeft1"]:GetText() - print(text) -end +function() + if not aura_env.tooltip then aura_env.tooltip = CreateFrame("GameTooltip", "tooltip1", UIParent, "GameTooltipTemplate") end + aura_env.tooltip:SetOwner(ElvUF_RaidGroup1UnitButton1, "ANCHOR_NONE") + --tooltip1:SetUnit("raid" .. 2) + local text = _G["tooltip1TextLeft1"]:GetText() + print(text) +end diff --git a/scratch.lua b/scratch.lua deleted file mode 100644 index e8e498d..0000000 --- a/scratch.lua +++ /dev/null @@ -1 +0,0 @@ -print(string.gsub("SHIFT-Y", "SHIFT%-", "S"))