diff --git a/WA-ChannelSpy/ChannelSpy.string b/WA-ChannelSpy/ChannelSpy.string new file mode 100644 index 0000000..ee40c22 --- /dev/null +++ b/WA-ChannelSpy/ChannelSpy.string @@ -0,0 +1 @@ +!WA:2!TEv3UTnYv444lYgIwaxJDDt62fGR26ukeTeUjalAnqkQ(1wP6VLKAvcm8YmICO0KqnKyMH2wPP9cJIIETFe819k9i0l2Rjm6n929ryFc2ZmKw)4vElAWslzXH8mN5C(oNZ3CMnAS9KT932)FUllkresOyw3(oTA2Po7SUbbCSyJR4Jr(rN(YSH)67mdr9ghX6frOIHvR3XPUvSUpHhhIM6Gpt4geXMGeUXUcYeC(OnI3YlHlIMiLOFSpsGTWNGPIVfLapfjiEdi(IXvkddzipbjIY)clUaXeAviuI4rx4h5MPJxnm73Z(G(F(NRxnIgqgPHsyixm9eZqepFf0FM(EAHrEOqDVXikfhAfXfyg88)YFDXlenyOjsHRvVr5(TCCREyzh3gwLBxxdSEDc8QFxj9o9BN9Mbn7uR7aBD)inD4ktpb56yewmkmAik0Oq1RvDbttsrLSKGmbnPkPFMUuiPHzhpTGUymMQetETSHPMZ83mKHrVrnct91KF1YDMGeQc5aBAKbV4sMNmuaG5KyqBsOXOWUh(oVgn(97j)B)3X2T9QdTlKn95MX(L99BJ5C0iSbxWi0rMzHwJchjNAz4QrJfUZ7yhRVlh(uO0IvVKoV4CKyHS1QO)3EMoLeUkeiqddXMekhZegllDPmFOOUPPEb4p4NCV9wrepiTGxnkmIH97aUJXOeI)YiKBjyYJcj8XvLIws(GSpzXk9dWIEqkoM1Kgevz6b9BwBjLWWIegv3QCZAUvBv222TA3wDTSpAzLE8(dyOyzjqtQYwQg5JnK6VyUvpplwvCCiI6hIz8SewnT5EZ6fZSxRYVSULRQMSzNdCh01QvndcVju)qqHTIgrOL0jClCyeYhcH9ZZlZb3SaT94OtnYFURde6yMLdGYgJNwAoEM)(RVwz(hsaNAE4yf4rWsW5E6)lFzqzz1wNo1Bz37LU97vRStDJFO1AMpOfHl23ghI9e5pPYuvCUWbyGudfw49zUNgXc9l8(6c52VRvxBiGCTpKtf1K6JpRKUxucvmVKaYXYTGAzeQYCTvMrX9dJofIffLvm523Qvn52zakKJNxti)v9pjHMmRvMg0Lkj81ju9yeHXnwHKS418B5SalEZrY5FSKwA9lrw9etjRYML8NQ3C6ysiwHGlR8m5LvbxxXjxaysvDLuOsiWCbWyLR3BGlLwEbxKCcyAMYwd9YQCPl7gZDLCvSw3)w0OK6D9KnzSvsUY92t(91WoOy)3Xmlu8h3cwp6RseNh0xbTxE0JZX(FcYcaKGgjwmL3lFx657TxioqSQNF7okaZ)a8zfV5))kZU9CA2TJTXkv2zPZGcgganCWhRDoSn3OrG8F9Jy53(nvetJXPB9T8KHkvANeeqoBMB1Y2oU2oLTCsV)WdXOqOxMeG2DySApJzzDS4og4gt3kDR4gZzsvQPeaqMRynR3Ypsn6ydL0GPEopghg20NRLzo84)0A3eqFD0P6RLG6Atv5O33swxY1M7V9yyWFTS7vVvRl9Xdb33beKDy9w9A0V1faBwgsP9O0p8Bs)iWz3j9xME)0hKwi9Zs)ylzVa(aa8FVXwjl6tjBVw5gpgZjgvp)pQVUM8Ge8vZehaL0Lbb5M2EiADfSyuyDaWsPFRV9r5YEtI151DxNdEZ0N0prlvFi0VJiHB5ng79MHjkfM(PAPpm9xL(Bs3n9rAZGEMFTcdob)eeDA8VaPU3jd)AdTg8VUt8hV2oRZUj93(Dqp4ygff(vqUbGLhDbhhgK1AELUooDBxjiIkI3QbJ8w9Vmb5ZqcKUJZLq80cps2LTwfzZa)JRs4yxzWgyedN8QkCYBX7ynjjuq0Uq9oi(ZE1qbkea0Ds)dAwQsD5DvGSqp5nxmxbpPS3q2BJOyi38UNlncBqHpm)WeVi7WeBEjtzdYmOkcWdph2qZx2J05dYVj(ZU9JweZWEePBV5fikrEiIi6xK(ZBK(rvOWk)VXio2wWGoWeJV3v(qewkHkXMXXEruF(5szKlFAZktqekm30MPp)EP)50wPTHB3(Mp5si9h7RoSYF)NXMMFij2RHIgsW0kTQ3W5srK3jzbKpO0Jlq8VCrZRxbN3bo9u3y1jC0MPAThmsiSS53LDYkvVjsBAODvR617m0l7eopb4dNHBJJjwn(kR2V2YtYY(8nHRzlbs3DwggR4GF(gBSXMxkDvs(csOzGimAN4hqgrbI6CRrvQuNXIy8XXp(2XD)PqyM45kgZW8XrH(t3MB9uZNAU32N8FEX3d \ No newline at end of file diff --git a/WA-ChannelSpy/ChannelSpy.table b/WA-ChannelSpy/ChannelSpy.table new file mode 100644 index 0000000..c0ff363 --- /dev/null +++ b/WA-ChannelSpy/ChannelSpy.table @@ -0,0 +1,141 @@ +{ + "d": { + "actions": { + "finish": [], + "init": { + "custom": "-- Config\naura_env.lastUpdate = 0\nlocal channelRoster = {}\nlocal chatFrame = DEFAULT_CHAT_FRAME\nfor i = 1, NUM_CHAT_WINDOWS do\n local frame = getglobal(\"ChatFrame\"..i)\n if frame.name == \"ChannelSpy\" then\n chatFrame = frame\n break\n end\nend\n\n\nlocal function log(s)\n local timestamp = date(\"%H|cFF808080:|r%M|cFF808080:|r%S\")\n chatFrame:AddMessage(string.format(\"[|cFFAAAAFFChannelSpy|r] %s %s\", timestamp, s))\n if ChannelSpyDB ~= nil then\n table.insert(ChannelSpyDB, date() .. \" \" .. s)\n end\nend\n\n\nlocal function classColoredName(guid)\n local _, englishClass, _, _, _, name = GetPlayerInfoByGUID(guid)\n return RAID_CLASS_COLORS[englishClass]:WrapTextInColorCode(name)\nend\n\n\naura_env.eventHandlers = {}\n\n\nfunction aura_env.eventHandlers.PLAYER_ENTERING_WORLD(isInitialLogin, isReloadingUi)\n ChannelFrame:Show()\n C_Timer.After(3, function()\n ChannelFrame:Hide()\n end)\n return true\nend\n\n\nfunction aura_env.eventHandlers.WA_CHANNELSPY_UPDATE()\n ChannelFrame.ChannelList:SelectChannelByName(\"General\")\n ChannelFrame.ChannelList:SelectChannelByName(\"world\")\n return true\nend\n\n\nfunction aura_env.eventHandlers.CHANNEL_ROSTER_UPDATE(channelIndex, count)\n if GetChannelDisplayInfo(channelIndex):lower() ~= \"world\" then\n return false\n end\n \n for guid, isOnline in pairs(channelRoster) do\n channelRoster[guid] = false\n end\n \n local rosterIndex = 1\n while true do\n local name, _, _, guid = C_ChatInfo.GetChannelRosterInfo(channelIndex, rosterIndex)\n if guid == nil then\n break\n end\n \n if channelRoster[guid] == nil then\n log(classColoredName(guid) .. \" |cFF00FF00joined|r.\")\n end\n \n channelRoster[guid] = true\n rosterIndex = rosterIndex + 1\n end\n \n for guid, isOnline in pairs(channelRoster) do\n if not isOnline then\n log(classColoredName(guid) .. \" |cFFFF0000left|r.\")\n channelRoster[guid] = nil\n end\n end\n \n return true\nend\n\n\nfunction aura_env.eventHandlers.OPTIONS()\n return false\nend", + "do_custom": true + }, + "start": [] + }, + "anchorFrameType": "SCREEN", + "anchorPoint": "CENTER", + "animation": { + "finish": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + }, + "main": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + }, + "start": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + } + }, + "authorOptions": [], + "automaticWidth": "Auto", + "color": [ + 1, + 1, + 1, + 1 + ], + "conditions": [], + "config": [], + "customTextUpdate": "event", + "displayText": "", + "displayText_format_p_format": "timed", + "displayText_format_p_time_dynamic_threshold": 60, + "displayText_format_p_time_format": 0, + "displayText_format_p_time_precision": 1, + "fixedWidth": 200, + "font": "Friz Quadrata TT", + "fontSize": 12, + "frameStrata": 1, + "id": "ChannelSpy", + "information": { + "ignoreOptionsEventErrors": false + }, + "internalVersion": 45, + "justify": "LEFT", + "load": { + "class": { + "multi": [] + }, + "namerealm": "Acb", + "size": { + "multi": [] + }, + "spec": { + "multi": [] + }, + "talent": { + "multi": [] + }, + "use_namerealm": true, + "use_never": true, + "zoneIds": "" + }, + "outline": "OUTLINE", + "regionType": "text", + "selfPoint": "BOTTOM", + "semver": "1.0.0", + "shadowColor": [ + 0, + 0, + 0, + 1 + ], + "shadowXOffset": 1, + "shadowYOffset": -1, + "subRegions": [], + "tocversion": 11307, + "triggers": { + "1": { + "trigger": { + "custom": "function(event, ...)\n return aura_env.eventHandlers[event](...)\nend", + "custom_hide": "custom", + "custom_type": "event", + "debuffType": "HELPFUL", + "event": "Health", + "events": "PLAYER_ENTERING_WORLD WA_CHANNELSPY_UPDATE CHANNEL_ROSTER_UPDATE", + "names": [], + "spellIds": [], + "subeventPrefix": "SPELL", + "subeventSuffix": "_CAST_START", + "type": "custom", + "unit": "player" + }, + "untrigger": [] + }, + "2": { + "trigger": { + "check": "update", + "custom": "function()\n local time = GetTime()\n if time > aura_env.lastUpdate + 1 then\n WeakAuras.ScanEvents(\"WA_CHANNELSPY_UPDATE\")\n aura_env.lastUpdate = time\n return true\n end\n return false\nend", + "custom_hide": "timed", + "custom_type": "status", + "debuffType": "HELPFUL", + "event": "Health", + "names": [], + "spellIds": [], + "subeventPrefix": "SPELL", + "subeventSuffix": "_CAST_START", + "type": "custom", + "unit": "player" + }, + "untrigger": [] + }, + "activeTriggerMode": -10, + "disjunctive": "any" + }, + "uid": "eMepiRFVRMj", + "url": "https://wago.io/uZvB1CEF6/1", + "version": 1, + "wagoID": "uZvB1CEF6", + "wordWrap": "WordWrap", + "xOffset": 0, + "yOffset": 0 + }, + "m": "d", + "s": "3.3.0", + "v": 1421, + "wagoID": "uZvB1CEF6" +} \ No newline at end of file diff --git a/WA-ChannelSpy/ChannelSpy/ChannelSpy.lua b/WA-ChannelSpy/ChannelSpy/ChannelSpy.lua new file mode 100644 index 0000000..1066ed6 --- /dev/null +++ b/WA-ChannelSpy/ChannelSpy/ChannelSpy.lua @@ -0,0 +1 @@ +ChannelSpyDB = {} -- default value, will be overwritten by the game if persistent data exists diff --git a/WA-ChannelSpy/ChannelSpy/ChannelSpy.toc b/WA-ChannelSpy/ChannelSpy/ChannelSpy.toc new file mode 100644 index 0000000..c82fb79 --- /dev/null +++ b/WA-ChannelSpy/ChannelSpy/ChannelSpy.toc @@ -0,0 +1,12 @@ +## Interface: 11305 + +## Title: ChannelSpy +## Notes: Log world chat. +## Author: Caspervk +## Version: 0.0.1 + +## X-License: GNU General Public License v3 or later (GPLv3+) + +##SavedVariables: ChannelSpyDB + +ChannelSpy.lua diff --git a/WA-ChannelSpy/README.md b/WA-ChannelSpy/README.md new file mode 100644 index 0000000..2ba600d --- /dev/null +++ b/WA-ChannelSpy/README.md @@ -0,0 +1,2 @@ +# ChannelSpy +Show players joining/leaving the world channel (and by extension, probably the game). Will optionally save a log if the AddOn 'ChannelSpy' is loaded. \ No newline at end of file diff --git a/WA-ChannelSpy/channelspy.png b/WA-ChannelSpy/channelspy.png new file mode 100644 index 0000000..75c74c8 Binary files /dev/null and b/WA-ChannelSpy/channelspy.png differ diff --git a/WA-ClassicAutoMark/ClassicAutoMark.string b/WA-ClassicAutoMark/ClassicAutoMark.string new file mode 100644 index 0000000..0f36e61 --- /dev/null +++ b/WA-ClassicAutoMark/ClassicAutoMark.string @@ -0,0 +1 @@ +!WA:2!9YZAST115zg2uxtNh2YYA5H76zCZXsjsmsYjUjEvvLKIsKn6viPSSJJb5L8Ei5n6Y7927djrNhBviOWDRddZdT)OByyqRdfiyaBvBzDnRDRZdyaBdD7aTSc39S1Opg6w3dV3RTi777CUxY7L6sAzVGDrKj59(D(oFFFNVNN73jro3aw5pDItNy8bAoG8aYx5Xtv3uFJuZS0QlEJk6MYuZusvxt2u3iFbDvf5DLCSBOBUKHTIUMvSRcq7yKRQU2dCxVd7DK0QcpCzDfn7kPZSyXm53UMJQAAfZQQ0Y5TmKQsJAkvLp4ZK3YwY0owLAkAkwnILc(Wo2w2Mk1RtnTEOhX09RFKTLPvCQvRyldQz2mZV8SRmFkB4h5LCmLMClldQQAozRy3WYPcDDQMDbaALn3Pu6KfkwQqXK5lMYbqEfdvPwuZ8AsnPwXYZbTswQKQDJ2dDztkm08fwoZ8ZFvhnxsi2ov1vDAQvGZb3e4pQPMK65a6eyLlEvjnLMsixDg29o71Osw0c2MuT62noiBWuA6A0DLbAfHOes5MwuqMjBTfckYxStMQPKI2SSFeyaStYEe2PyddFEFDFN8sQk11snFMzlAcYpK4ISnq85P15RiPu1LKRDvhlAPQQswwnQylPc81q5B6OARelLLYLPdXMa(IbTk(L8C4WVzEzGqbb5DTBf3f906Q6MFWirISC0Xt8KMc2KwEhHQronlQD08wvHzi6wWuoVstf7gvepT82IpZid04eKLv2KQUTjNmro(AYTG1bLQCnixqla0w0uw6M2St6ohTPGOx1IQwJRBzwCPL5cGnxQwnGeY(b28TERdaxt6OiVZfYu1sx6mPtl)u3aeYGqsZEwqNt3Ss(KZKBLc5vrY8WxtmbcuC4RkzwDE(k2Ro0226vxxS0(Ug9XIRiBmyAugPunPJT(csMRrwFYetak)kYRQiB34W7uZe0PG1CjBPO3uygmlElKtRuiD(mzw0SLh1M(T(Ei1wbOUAk1JTfyXjuSQykjR4y9Q3ZwiQXXgp)mBJAkkc7TDu0QPBku1gY4banbDtQRXygu9nJPPUPvzaL2CGImq1h9k)qGi2wvrdy2vkoFUfZSRvdjz9nUGGGoXbyVl2HmosvhlB9MfPBAVIHmSmZoXnaRDDC2QYzZui7ZUhqhpg7(FKRkRxsmKYveFUzKxBSXisYYKQQkvxtQIkLWfmXu1bDesfhBBDnUCHmfjTjfMe(VgoEk(JIpkj(QjlfNKibbTTlr1wpHIm(Z4LAds7NiuMgjMp8E2mA40UGoOnoSTPdn4trRelW2DwDZ0ijAnC85P1SfOEfdC(ZRuVrNBeC4fO2jvv56Gwd3xYaGSqvtfd7HJVKgFQaCxZrJ76ByutEuxXXiXiUxcHe4PuYeMfunZcetcOitnvaslE7rTkvATKaPyLOqvjnUsaWvGumDYfkLptHmfHzoashjgvtEe29fJDK77ryh9lVRc3iPkTe6Big4T5bVb6)qsDdPwwOqSm7hG9aB55bBGjyNy70Tvkzpi7HydfZ0rJ7anfQZGodkHUClZ(bzVh2dhJna7ymsmJJIo)xNwu4wDbDz6VYbyXV4wBa2IRAkzS1QUFjvnDnBJJmRPYLjpRJKmAzrkwKnwmwIpcBsWD165nGWhTkVLvvQMKPIE5TaBd7wnL0kpPnvR822Ba0tRAW8vUI47aiQ0nvanKYMkACxpaMEK88VvoLPKICzUVtKxmBWghDlYEc()EA8F3bFO7iBWEY7AlKmr3wVBxBQZlSPIYE)PSbljwMiS0vsTuXIlTa78GVwU7SSt)7Du86UZo938m41zZo9F2XWRte18faBjLATypgBbxVphVlVpLkQyRszVZySLJYEww(DKvSWqBOP7n7cwwXySz3zj9cvNC9tNu65MJviYocsTJR1THqEuHRSx9Eyxyi2Z1G9dJHY4rEGaqEHJgzp35(6(ox59XEE2LUgeR3CnHS48ryF4pyu4I9QXpz1T74MzZinBBsimduQ5tFoNLRNTLmOaae7guT2Q9MuBhtns8fbRnqb)PFA(tafB(NX6ypbQ22O7M2MR8B4dGMO)8PidZVFc(VELPiAkQejnzsU0lTyP5ZvO4f788lXDin(lztIpcr3Ke)LkMdZiOg4d)5F(8Gse3ja8vQKCR0nOvxBSvLaRfT6NLpkFZEdE6hltnbLyBGmaVTnsutvx30LGwxs1HsECbFKWg8RRsEuYeJpUqI5kh4KnqvcOWeCgniQrBEyPh90VnFTHVAF8TvGOlf0DayoXb2L)G8EHoyLyNGvMjLcHPb7i)cGZIRCKBkw)ohyXHEATmo)lYjebDofb9xmk)ocA1)D4)JR8oUMtZkuZ4INOyHkRuz8bv01vHB)YGIvvU7dW5d3jtD0Zd7DZwRm6rzOyIm2SmA63BhzHLMj3S5YKht8RyMsPZMCX5YmdzLLNb)5clTsHmlDo4XRSyUIK0lTqQKfln)sZvkZ5GmwH7oBU5HexZmZzrakntoySU4xGcwvJNVTARKQAbuKBnkHtmJclcjcSY0wVJ)8SGoLkKAXf5)6s(hpFGWQu(QOcdWOkSxyhHWMNZ4o81whrOzH7uybzDUuQQXUDzjj0USv4HANJAxe(whJm(9F)DOnWNHBqFYJrMiOLwFdWiejX7eelmuofF(620fvlcy06E)AsQwuU66NOcYYowSpEfx2g1caw3tS0qrMMhXTmimqVGVaxiSofeid46NrePzE96kvnES2cj386dSs5EVloXL4ZUAuUXrjHlBU)R4xK9oF0VmMUTRNPx7tWgmVIMHdWmw0zOwvBKFd0W6UHulRjbzCFxxLN3nM9vJuOD5wlOxHGETaJhmDZJp5A0wSpng1rK)zJzzVCERMGMb7hZ4N7LQo(41Qjp54JZJD)sMXMbkqrJsWyvCBjqBIab(WfncMtVsnLQKM6vsqYvJWNCdipm4gwe9AcOWeWqAHizczOP7Ojpk(GwKnuuH00Oc8ktu04WZZt2d3WTRqv13ibHn4oYahJz5aYc2N6UbDXkqQn0Q2v4EdS(KdmMXz87CSOKzDk6hu4GCLCJHElBFxSqYsp1zN4mVK9T)4EV3HJ7m3HJ7jVdh3tChoUtFhoUjVdh3e8XXETkOYqPjy)YrzF67I9l1G9Pw(DmEIjFs0ZZVQ3JNK9Rbl2SpdBh2Vo73G96SFt2NL9BHqdJbgzGXekOUi609FEEI3UMNNS)ZZzE7AEEV9FEEQ938adPfCZTrJwr0A4rrXKrHK4uLmSOnyV2wGno3jb7tNcCYyTd39iLB924Q8IEfB1GyxBkY3bfttPwBvTnsMm65G56W7UUB4DEwcLR0GILE8hc24OFQS8FvMNI4voEfUdY8rRW3hGnJk(Dk3pNl6UykZqLXAwQGl8g72(RibyCuOadjeDf9Un4eXWKc5nYEZu1KKPysLDg0SGhCJpk61UTVCdt96WaGqO8nu68UFEHrjYuvBPZ7(5f8cs56UxameVRncG8QeJyepue2tDXJiQLyJwqgTrEjvJgsrQWl9MgzGwrUk)bffXUfCz2cNtixsgDGnhnQacop9Z2dEYCIrj1H)Qa)jb)zoj8B4VkWFst2fp1jwneYhMlUqv5oaJcUJNw)wMuqWdbvflWTIYg5khL9LIY(tIY(RJYyr5faG1cC9gSVseOoGVkW7dSze2F5wgoqSCGoqe93SzK31)N4rrknsA1vXuk8VUmj8hpXzdLriJrg297qwZDnyn6gl7nmafcaTuG84qSocM8Zip(KJ8JUVLQ(q4TLG9Vic7RfL9NgLDFO92BYfFybuGC6nz)5STyp2wvK6S5xzN(V9T((FGdCGyBdrCHuImrljW2XF(6yX0PsUsXLy6md)1FDHiSXo7qq0Am3maRLG)UYGgdG1NwkyvRxLFp8FM8KvNW4i(aPt1I3qCxVDJJ9yghJFNGBwet6M872P0Yp8UIngZDBNICn(Z9k39qBlmCWcdtT4slMHnOjKOfcZ2Ca7KhMGkXkVzgbyJ2BO1U8B6TPcmTDBpc0Am1I6AuxMZ3wwVDUfxeQla3zrJhQTGOKyd3kvDc3VHEJ8Wgw5)d6YwNpaBTUIfFBgUYGSVDu2FF(twDYtEs23Hlaz)J5ZNBUSfz)tmj2)8hM9VeHDt2Hy)RS)nqx4FN9Fis28)KzW(VoXby)3mn2)d77Y(E7iOp(qdJaNSnbYERh86roqKRhjsz2F875M4U5IU81KBVigP9UOW(qLzMLzwLzGhDNYS1lZ2OmBtCBryTkZUCz2lgY(GWEjC3pUbxllfKiRmQ9nzYzMX4iGhXKY4QkvMkVG0MnyV8dZUYREpSMaJKM9JFdRM66qDPUMnL7EekqTMVFtxDvwXHy)()I6Fc2VBu2xmk7ZfL97aHtno6yJb15b1PTiubx(mKXgJ9grz)2rzFHOSpF02qF3CO3Ewft6gsQqMY9bkJbsQvvblcpToKvCwuCXEJdUxWpOlsvHyX1DKmL7hspYc6Q2uncuAGTPElKc6jkVMlSZPibA2VXDVx4oehUBmV06sKmQ0Ma1kPYEJd3li3HdzEQ064eF4EnXgdYzMnKajebwxSP4ULZEJd1FMNdFxqDu2x8yCM)(HsAq5UfyeQXz6dX(c3l7ZF4ULqhnWCRaYjpOJgc0hXh0zuvGSfqGpkh4J1f3ha14R5XviCVCOV)Ur9dmNoisLQxNxZtoqzqJc(z1dxPXvqW1vYlvNgU4sOUExHIbxv5bbv5uZNm9ZSAUfNJmFYC57L289kgWXMHcrTifLu11iPLmSLu06Nk4q(HNlr4XXdvr8qHmffOuqGeU(ZXcb(vBz2CnKKoAVumccFwj7QnCnm6LoskvWf2gqLjKvLmHq5R1pQ)4DGUa(QbROOj3d63vKoOF6zj8v)qDjO7oCz6X7MHDDe0wX9y3gQa3e0aEUvM)uZTs(vs1FxzghFohtNkswnuij3Ksk2WuFJoYUWgXX6mIus2K8kYbGVBz9nYlD5lZHoTEftPUGmWQ4GzLwBnOobskvDD5UmEV39oGB4b)TeYTHACuRXFzT9bkJJ7HWc8O)KSoybU9BedgCevLS2VdyvfqlLmJUWZyVvvhilKMVlhclp01qh090)Xoph4ws3M8CG2uOGjuPVPlyZRBEQNPHu)m3V25G1cDDsbvWPFORZ7pfYKn0o1ZQyk9c3cfsiQPtffl0AOaeoc8zQ2p)3dWXjOYaLdPTbON1JiIUI)JCo6AAkqY6ZH2xks9lsYn9GfCryQO3pJIDH1hTQyraxqY5f6Z6ZwGexM8mMk9zXzYZrB2huyC8cqLKq2mNYIKxVfueYCcFfq4Idhk11MrkORkR0Bbe3ZLhSzHc0iPnL2qTVM376k)NVVI(aebUHq9WfJBElDe8wg(4R7Tl3S30DUt3qQPbUJH9wTYJmleWhqa(5WUHgCHesBu2YfAGcoih67EpQFlvXsb1Jil6OQI7MPz)IKCKok3GsLCpYFC)zqTyYZF(8jxizH(BqDTukq5T5PDIj2J1NLXWMqYvRr45T0N18RvaYbQofeMknP9XQ4gfuDKb4srvft(X6Tv)8kRJXxxa7VctDOy4w9Xey3fKKjf4jxRG(9drdXLPaLnKXLXa33I4AhjNwnkUrcoG3Hgq8IqbwKGY1wwvQUtBjWr7nFvWgkn0csFHmNKzD9wQ0(jyDrBkQKB4SEOnViTQj4s22TgKEd45OA6n7aypLO3mn3hhKCMHIMMRopitV)9A1T7mMuq8N2KsnCZc6qCapy3XIsB2YW2N3PEOGkaZROIO9039rxuAZnnLAkzrsc1U3YMgQZB3ui9bDA8DwGcuyD6(zFHd7NNCHEW5mXxo7Qkyy)zLOMQkAs9nmvh0pRUQA7KM6HH)GDaFvDtiBidJ(w8Wof1BwbQze7(M(tgOMGHUQsqHspe1c9MNrd35W(ff44(bmySYEmIJbkoMk24BeQnR2NfDJJiu1L7VzXHDJU6bRWSu4o(E97o(GEMBqAy09lrCJcRrvP47uUGnLk3pNdIe6xtipsdfbRQ0xVjBlYNhJ23hO2Xhw7JW1hDITdxOsQdgSocDhUxV2zUeIhsVs1NbF953wdqhCPCBmGJMxXIVJf(41qYvra9nsPR1ckvadd4uvSRf9i1VJfCnXTU1ENQ4G5CrQUjuH9LDwhD13VeTgY)eScwZNLTJCR(eV5ARO1amcrhU1Q1hAzBx4GsU6ZQ5UEyd33rRqffhkek9CqMlkv7EJgYZ3ATgxL)kOHCwOxpcVxFylhDh(JeVeMPmXTa0XKUnKaKstqp3Y295kYYuT8lM5CzYN6YGoa2cNNM9cLB3wrD3uJLWxAKB79DFyh(XQuMvDZhMbzVKw0QITF7(n1RSmQibb(jtrEXxoWt8ADn424lMwzu8TpJVmzdjftFnoNO)hVyCVHe)sJqK196rb8vyZFj1VYuK4X59KabYDIqBAatkKlHzlIJfOtdoPTOalJIW92hc(O0l6HYlbeNsOGYPJaWbmHhGCMbU1eJsEkpc17cimXRpT97KhF364opSjqIV4eJMiXOp1l)4Vi(ELWVBTgKa6ltQ0cQEwbQ42uobjNgr3XKOl6Tac2aUq8nTrjnG4vq02rjDpLBqjnG4WDnppnmpyphlMe(SbZ6l3PlbKwJ70v0o0KAsnvuvKqjuIatqG(JAIXjJHRjWYfQRW7rtLlfaECrJd8uKNUZ6foJNASt94if5XBbggEvbsszTa31RRq8USXxhzcfnlQP9W9zjBuon0PHu8Wd(j(x7H2qhePl60e4TXJfEBRmEm4cybrtVGF7)x70OyH37qcLYyEVhTE0Hrj8tQ(7ZOU6fuxnP04DjayWZXuGJ5PWxAuILpBxp8mIFdaRewGkkqxIE3PZTR2qckEu2TjWc0TpGYsWwDnqthHMtqniGMTfrtNKC5CCIHpcSWdKqX1zl0QXYgYWDu0yWcS)A)iIUO9vCvZXeg5kLM0MWsp)r4QnagnH)jEfShRTD0a2uT1O82LcaTQk)Ldy3qrtqSE4vwNAPDkBHHOeFQhfjeSUzH9W4KHr4JlJPfqJ3LckAgRJiqQQTdq8TGblivsv9Mn5KTUWULAY9cuvYXcrou5d8K1Ge77WmiUtiKDaxq7ivciBv0wxXcBpBo9n8tpsxYkUNorRZtaibYIuds5cFrsJ2rqAHPu4aybsKehbxWkP6FIKQzdOBcI48oaudoopVw4R53Pjyx3cgAvQY6ubBlA2lsntiXLo8DIW8d)0D7hUa1UtRSmCCb)ehwf3Rhb8kDjSX4mtKePZHNWxpApYE8r1lupEaupsy90gx7hV3T2SnCNk(nGxJcALyGH2TZh(d0R7e81MHba49l(8jNVyCSbvBFJ0fZpFG7KFV3bhuxnBB4(m7xV7Tpy0qDt6ZbJNNPzuSQItlbFfJKHrcEKZsskll6PnWcq0IVBa5AR7iSaaRJeKKyDEIEJZWndGXQiHzm4ccFiK6Q6va971003qLkx31xa(cgrBdXKcYeyo53GpPC1yUWGcXTxf7AoiveIHUnUhha28Done6Xb4I2trHwAvByQRbzC7ot4B(gMk3qqUCw7zJ76tRf6eQEcF95zDhf0j7kAk2ZTsUzggsPcOhCeXBRKiGr0zZH1k1D8D7TO2vdu7TYCretxQtd92fFGcsTozbbkKD3X12ClOfe5vmNFRQCyEmHs9cQ4vcH8fT8SVgi2p6NI0PTT7Ae9p2KpKe2KIkvwZbYH9r0rpoiHxYr(WDaK2jUPpUHpl4OqPEiGgcBS)tSYFYrTxpbAvt3MmColiRFBtD1NH2AgynDyEZUNZkPQD77eEx5hMaf1nZzTm3PzGvyePIhcvfjh8r7lK72ApItveIPf5hPOquIq2AVPokY0VD(QoAUAW6vULtT)SN0C1rrvdzpR9M(T2xLYtGbSLPyKzfrIlyM4GxIW97pk6FtcDKXXlGorl4cERXxRPLOOb89Zs4vDoQ3CXNi0DHj9d5GVhEFoqSjQu3eF4vMXDdIbADrVjqGQYj8KAHOhGw1HeuaIkSxZKs7ttKEKezF1Y7L(RRplHHlqd4cVWQNph71)bMtDWPuqlDo7cExbPKGpZRL0WMmcpjdiQvQgpiqEhucutvC4tdORgeyVZqrhGxqAZ(apUDbyW5G3112GFSqcco6V17uN0WPExp2T0pqi21W64EIVy1TuO9gdeAv4IY0cmeF5vSh1Qoq2Ps8UIfrMYxmMELWYEV3JrMOxNAiKZFwhkFHYDhaCB)qllL6AyJn1Epo6Tzs3L0eijGZsetawVcN6T8sIwKDYOOxetADCZCbR2QoMMqYfQTgZJeCla6oYyJhpAV2cHwSDBzbG7rULHs6mC8C86FWDo0mJsQS30RbsskrBDhiOBLo)kuI0)HSPdOVpFJBpdP7nviakARxGOW7hHKApOW7glPRup6E5UDcKEl1Uzm6lqHVvBWXHb(cT6Sw39cCpxvq0nYBd5M47CVjs74vePDeU8pGPWfTCpACHKhYTmJdqwLN6Qx7w7oe27dHCNRWYvk4xfxrWxTLdb4lHXkuG56UPzA1vkGjCRtpHNlq0jxh)GDBuXfpDM09MeHLy3Nct4YZ6iGSsiP6rUFDtyIFpwaYp8LGEUaS)teCVPF25hC1I2jX6jBdD10NM)WROncFmEk1ISFrbJIgE(8XdKTMTVSn8NFjFsVvMADvyENGJJ6l7FmnaFvQV3QgANBxGTW62Q4IaIHB)s)7Zwe638LNW58zwPZ2g6l(uP2heXsb)pzQLTWPa(Tf5Nqu8BZQkv3s8v(jxf)jE681BwrYEE96q9zPfRC8DbnhuyBNZriFQ4BqFBAj((S4s38H1DuLjO(aM)PCl(2Ab56CklHjxLwaFvFYHdqEJKGSiQs4ykCIUrdjB8aSP7uVrI(w5QNq4s73YkdFFn7v9J3oNUXy77DWvSrjDVZiUow0OBA7x5y)j8rPgkMrxAWSKZg70v6C4XcAbkESCTgoe3P4iCFjhtjgoEoOfweX7c29k7BV5eDqZiDE)bDVwe0U3twVhxM(pJ0bsP23KeYacpT6(pgFobczpl8n2ESRd3snNUdnE77azPLlMBPfl0TQYEoyTFLOSp1REpIZisrX7p0y4oNoW0qXHGHykjt8Kb25xJvahG44JNU9PXaQPK3XSnyzISdK2f2u6irUD2LYN75wAXIjNND(p5JW(4ZYoA0T8oyzPqztE(c3atex3i(utzkKlwp6JC9i)eFWSt)39a41qzN(BUoE9IzN(p6tIx)8r3ck0YascQf7Rp01J8XmoILtLetMOZXeXD2UEKRC9iFub2bCoWKxpYpPh2)2VbE95Zo9F1jWls2P3za8AiyuFmbEVEKFQEGOt7drFJxhV(CzN(pyi86OaHVjETryiQdkEcbo9HOx)44fWVFd(xEGSt)z4)FjIJTFOON0hI(Qm86lLD6VUnETE2P)wRIxf3pi6mTruKSt)1(zWRF6St)D((413T)S07DpS036ZIxVoSY9q41dND6RXfYhC)qjpLpe5ksBZjGsX5WRlkqehkuzSncpJaHB5z1caebW3d5IV)bVfD2rWRJ3(lUyW9)jym7o2xEbJvvVG1iTwEG1FZZ))(d \ No newline at end of file diff --git a/WA-ClassicAutoMark/ClassicAutoMark.table b/WA-ClassicAutoMark/ClassicAutoMark.table new file mode 100644 index 0000000..ca715a3 --- /dev/null +++ b/WA-ClassicAutoMark/ClassicAutoMark.table @@ -0,0 +1,2155 @@ +{ + "c": [ + { + "actions": { + "finish": [], + "init": { + "custom": "-- add clickable frame\nlocal buttonFrame = CreateFrame(\"Button\", \"WA_\" .. aura_env.id .. \"_Button\", aura_env.region)\nbuttonFrame:EnableMouse(true)\nbuttonFrame:RegisterForClicks(\"LeftButtonUp\", \"RightButtonUp\")\nbuttonFrame:SetAllPoints(aura_env.region)\nbuttonFrame:SetScript(\"OnClick\", function(self, button)\n local clearAllMarks = button == \"RightButton\"\n WeakAuras.ScanEvents(\"WA_CAM_RESET\", clearAllMarks)\nend)", + "do_custom": true + }, + "start": [] + }, + "anchorFrameType": "SCREEN", + "anchorPoint": "CENTER", + "animation": { + "finish": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + }, + "main": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + }, + "start": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + } + }, + "authorOptions": [], + "automaticWidth": "Auto", + "color": [ + 0.13333333333333, + 0.69411764705882, + 0.29803921568628, + 1 + ], + "conditions": [], + "config": [], + "customTextUpdate": "event", + "displayText": "ClassicAutoMark", + "fixedWidth": 200, + "font": "Friz Quadrata TT", + "fontSize": 14, + "frameStrata": 1, + "id": "ClassicAutoMark_Title", + "information": { + "ignoreOptionsEventErrors": false + }, + "internalVersion": 45, + "justify": "LEFT", + "load": { + "class": { + "multi": [] + }, + "ingroup": { + "multi": { + "group": true, + "raid": true + } + }, + "size": { + "multi": { + "flexible": true, + "fortyman": true, + "party": true, + "scenario": true, + "ten": true, + "twenty": true, + "twentyfive": true + } + }, + "spec": { + "multi": [] + }, + "talent": { + "multi": [] + }, + "use_ingroup": false, + "use_never": false, + "zoneIds": "" + }, + "outline": "OUTLINE", + "regionType": "text", + "selfPoint": "BOTTOM", + "semver": "1.0.0", + "shadowColor": [ + 0, + 0, + 0, + 1 + ], + "shadowXOffset": 1, + "shadowYOffset": -1, + "subRegions": [], + "tocversion": 11307, + "triggers": { + "1": { + "trigger": { + "debuffType": "HELPFUL", + "duration": "1", + "event": "Conditions", + "instance_size": [], + "names": [], + "spellIds": [], + "subeventPrefix": "SPELL", + "subeventSuffix": "_CAST_START", + "type": "unit", + "unevent": "auto", + "unit": "player", + "use_alwaystrue": true, + "use_unit": true + }, + "untrigger": [] + }, + "activeTriggerMode": -10 + }, + "uid": "OoSc2v3AaZG", + "url": "https://wago.io/0cX1T1IvH/1", + "version": 1, + "wagoID": "0cX1T1IvH", + "wordWrap": "WordWrap", + "xOffset": 0, + "yOffset": 0 + }, + { + "actions": { + "finish": [], + "init": { + "custom": "-- Config\naura_env.mobPriority = {}\naura_env.mobMarks = {}\nfor i, mob in pairs(aura_env.config[\"mobMarks\"]) do\n if mob.name ~= \"\" then -- empty entry used as separator\n aura_env.mobPriority[mob.name] = i\n aura_env.mobMarks[mob.name] = {}\n for i = 1, 8 do\n -- Target markers are indexed {1,..,8}/{star,..,skull} by Blizzard. In our options dropdown, however, \n -- we have indexed {1,..,9}/{none,skull,..,star} for the sake of player familiarity.\n local mark = 10 - mob[\"mark_\" .. i]\n if mark == 9 then -- the '-'/none options\n break\n end\n table.insert(aura_env.mobMarks[mob.name], mark)\n end\n end\nend\naura_env.hoverNum = 0\naura_env.lastUpdate = 0\n\n\n\n-- Events\n-- WA_CAM_RESET MODIFIER_STATE_CHANGED UPDATE_MOUSEOVER_UNIT COMBAT_LOG_EVENT_UNFILTERED:UNIT_DIED WA_CAM_UPDATE\naura_env.eventHandlers = {}\n\nfunction aura_env.eventHandlers.WA_CAM_RESET(allStates, clearAllMarks)\n -- Clear all clones\n for _, s in pairs(allStates) do\n s.show = false\n s.changed = true\n end\n if clearAllMarks then\n -- There is no API for clearing all marks. Instead, we set all marks on the player and then remove the last one.\n -- Unfortunately, if the client thinks the player doesn't have a mark, setting mark 0 (the \"delete\" mark)\n -- won't actually send the command to the server, causing us to keep the last mark. Therefore, we set an\n -- invisble mark (9) on the player for instant visual feedback, and then schedule it for removal\n -- after 1 second, when we have presumably received the update from the server.\n for i = 1, 9 do\n SetRaidTarget(\"player\", i)\n end\n C_Timer.After(1, function()\n SetRaidTarget(\"player\", 0)\n end)\n end\n return true\nend\n\n\nfunction aura_env.eventHandlers.MODIFIER_STATE_CHANGED(allStates, key, down)\n if down == 1 and (key == \"LALT\" or key == \"LCTRL\" or key == \"RCTRL\" or key == \"RALT\") then\n aura_env.hoverNum = 0\n end\n return false\nend\n\n\nfunction aura_env.eventHandlers.UPDATE_MOUSEOVER_UNIT(allStates)\n -- Discover Mode (CTRL): Add mobs to state without marking. Allows for priority-based marking with global knowledge.\n -- Mark Mode (ALT): Mark mobs when hovered. Will use potential information from Discover Mode.\n -- Synchronise Mode (NONE): Update state when hovering anything.\n local guid = UnitGUID(\"mouseover\")\n if guid == nil then\n return false\n end\n local state = allStates[guid]\n \n -- Synchronise known markers and state\n local targetMark = GetRaidTargetIndex(\"mouseover\")\n if state ~= nil then\n state.isMarked = targetMark == state.mark\n state.changed = true\n end\n if targetMark ~= nil then\n for sGuid, s in pairs(allStates) do\n if s.mark == targetMark then\n s.isMarked = sGuid == guid\n s.changed = true\n break\n end\n end\n end\n \n if not (IsControlKeyDown() or IsAltKeyDown()) then\n return true\n end\n if UnitIsPlayer(\"mouseover\") or UnitIsDead(\"mouseover\") then\n return true\n end\n local name = UnitName(\"mouseover\")\n if not aura_env.mobMarks[name] then -- unknown mob\n return true\n end\n \n -- Clean state for discover mode.\n -- We clean here, instead of on MODIFIER_STATE_CHANGED, to allow for modified keybinds. In other words,\n -- cleaning requires hovering at least one mob with the modifier held.\n if IsControlKeyDown() and aura_env.hoverNum == 0 then\n for _, s in pairs(allStates) do\n s.show = false\n s.changed = true\n end\n end\n \n if state == nil or not state.show then\n state = {\n show = true,\n changed = true,\n progressType = \"static\",\n value = UnitHealth(\"mouseover\"),\n total = UnitHealthMax(\"mouseover\"),\n icon = 0,\n name = name,\n index = math.huge,\n mark = nil,\n isMarked = false,\n priority = aura_env.mobPriority[name],\n hoverNum = aura_env.hoverNum,\n }\n allStates[guid] = state\n aura_env.hoverNum = aura_env.hoverNum + 1\n end\n \n local markQueue = {}\n local assignedMarks = {}\n if IsControlKeyDown() then\n -- Discover Mode: Queue all states for remarking, disregarding currently-assigned marks.\n for _, s in pairs(allStates) do\n if s.show then\n table.insert(markQueue, s)\n end\n end\n table.sort(markQueue, function(a, b)\n if a.priority ~= b.priority then\n return a.priority < b.priority\n end\n return a.hoverNum < b.hoverNum\n end)\n elseif not state.isMarked then\n -- Mark Mode: Queue hovered state for remarking, respecting current marks.\n table.insert(markQueue, state)\n for sGuid, s in pairs(allStates) do\n if s.mark ~= nil and sGuid ~= guid then\n assignedMarks[s.mark] = true\n end\n end\n end\n \n -- Re-assign marks to queued states.\n for _, s in ipairs(markQueue) do\n local prevMark = s.mark\n s.mark, s.index = nil, math.huge\n for _, mark in ipairs(aura_env.mobMarks[s.name]) do\n if not assignedMarks[mark] then\n s.mark, s.index = mark, -mark\n assignedMarks[mark] = true\n break\n end\n end\n s.isMarked = s.isMarked and s.mark == prevMark\n end\n \n -- Mark Mode: (Un)mark current target if inconsistent.\n if IsAltKeyDown() and not state.isMarked then\n SetRaidTarget(\"mouseover\", state.mark or 0)\n state.isMarked = true\n else\n state.isMarked = targetMark == state.mark\n end\n \n return true\nend\n\n\nfunction aura_env.eventHandlers.COMBAT_LOG_EVENT_UNFILTERED(allStates) -- CLEU:UNIT_DIED\n local _, event, _, _, _, _, _, destGuid, destName, destFlags, destRaidFlags = CombatLogGetCurrentEventInfo()\n if event ~= \"UNIT_DIED\" then\n return false\n end\n -- We could get the dying unit's mark by log2(destRaidFlags). Not sure for what, though.\n local state = allStates[destGuid]\n if state ~= nil then\n state.show = false\n state.changed = true\n return true\n end\n return false\nend\n\n\nfunction aura_env.eventHandlers.WA_CAM_UPDATE(allStates)\n if not next(allStates) then\n return false\n end\n for unit in WA_IterateGroupMembers() do\n local unitTarget = unit .. \"target\"\n local state = allStates[UnitGUID(unitTarget)]\n if state ~= nil and not state.changed then\n state.value = UnitHealth(unitTarget)\n state.total = UnitHealthMax(unitTarget)\n state.isMarked = GetRaidTargetIndex(unitTarget) == state.mark\n state.changed = true\n end\n end\n return true\nend\n\n\nfunction aura_env.eventHandlers.OPTIONS(allStates)\n return false\nend", + "do_custom": true + }, + "start": [] + }, + "alpha": 1, + "anchorFrameType": "SCREEN", + "anchorPoint": "CENTER", + "animation": { + "finish": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "preset": "fade", + "type": "preset" + }, + "main": { + "alpha": 0, + "colorA": 1, + "colorB": 1, + "colorFunc": " function(progress, r1, g1, b1, a1, r2, g2, b2, a2)\n local angle = (progress * 2 * math.pi) - (math.pi / 2)\n local newProgress = ((math.sin(angle) + 1)/2);\n return WeakAuras.GetHSVTransition(newProgress, r1, g1, b1, a1, r2, g2, b2, a2)\n end\n ", + "colorG": 1, + "colorR": 1, + "colorType": "pulseHSV", + "duration_type": "relative", + "easeStrength": 3, + "easeType": "none", + "rotate": 0, + "scalex": 1, + "scaley": 1, + "type": "none", + "use_color": false, + "x": 0, + "y": 0 + }, + "start": { + "alpha": 0, + "colorA": 1, + "colorB": 1, + "colorFunc": " function(progress, r1, g1, b1, a1, r2, g2, b2, a2)\n return WeakAuras.GetHSVTransition(progress, r1, g1, b1, a1, r2, g2, b2, a2)\n end\n ", + "colorG": 1, + "colorR": 1, + "colorType": "straightHSV", + "duration_type": "relative", + "easeStrength": 3, + "easeType": "none", + "preset": "fade", + "rotate": 0, + "scalex": 1, + "scaley": 1, + "translateFunc": " function(progress, startX, startY, deltaX, deltaY)\n return startX + (progress * deltaX), startY + (progress * deltaY)\n end\n ", + "translateType": "straightTranslate", + "type": "preset", + "use_color": false, + "use_translate": false, + "x": -50, + "y": 0 + } + }, + "authorOptions": [ + { + "collapse": false, + "groupType": "array", + "hideReorder": false, + "key": "mobMarks", + "limitType": "none", + "name": "Mobs", + "nameSource": 1, + "size": 1, + "subOptions": [ + { + "default": "", + "key": "name", + "length": 10, + "multiline": false, + "name": "Mob Name", + "type": "input", + "useDesc": false, + "useLength": false, + "width": 2 + }, + { + "fontSize": "small", + "text": "|c00ffd200Marks|r\nDefine raid markers for the specific mob. If multiple mobs of the same name are found, they will be marked in the order specified below. ", + "type": "description", + "width": 2 + }, + { + "default": 1, + "key": "mark_1", + "name": "", + "type": "select", + "useDesc": false, + "values": [ + "-", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_8:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_7:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_6:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_5:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_4:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_3:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_2:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_1:16|t" + ], + "width": 0.25 + }, + { + "default": 1, + "key": "mark_2", + "name": "", + "type": "select", + "useDesc": false, + "values": [ + "-", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_8:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_7:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_6:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_5:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_4:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_3:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_2:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_1:16|t" + ], + "width": 0.25 + }, + { + "default": 1, + "key": "mark_3", + "name": "", + "type": "select", + "useDesc": false, + "values": [ + "-", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_8:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_7:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_6:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_5:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_4:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_3:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_2:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_1:16|t" + ], + "width": 0.25 + }, + { + "default": 1, + "key": "mark_4", + "name": "", + "type": "select", + "useDesc": false, + "values": [ + "-", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_8:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_7:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_6:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_5:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_4:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_3:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_2:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_1:16|t" + ], + "width": 0.25 + }, + { + "default": 1, + "key": "mark_5", + "name": "", + "type": "select", + "useDesc": false, + "values": [ + "-", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_8:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_7:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_6:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_5:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_4:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_3:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_2:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_1:16|t" + ], + "width": 0.25 + }, + { + "default": 1, + "key": "mark_6", + "name": "", + "type": "select", + "useDesc": false, + "values": [ + "-", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_8:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_7:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_6:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_5:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_4:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_3:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_2:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_1:16|t" + ], + "width": 0.25 + }, + { + "default": 1, + "key": "mark_7", + "name": "", + "type": "select", + "useDesc": false, + "values": [ + "-", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_8:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_7:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_6:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_5:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_4:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_3:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_2:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_1:16|t" + ], + "width": 0.25 + }, + { + "default": 1, + "key": "mark_8", + "name": "", + "type": "select", + "useDesc": false, + "values": [ + "-", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_8:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_7:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_6:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_5:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_4:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_3:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_2:16|t", + "|TInterface\\TargetingFrame\\UI-RaidTargetingIcon_1:16|t" + ], + "width": 0.25 + } + ], + "type": "group", + "useCollapse": false, + "useDesc": false, + "width": 1 + }, + { + "height": 100, + "type": "space", + "useHeight": true, + "variableWidth": true, + "width": 2 + } + ], + "auto": true, + "automaticWidth": "Auto", + "backgroundColor": [ + 0, + 0, + 0, + 0 + ], + "barColor": [ + 0, + 0, + 0, + 0.49999934434891 + ], + "color": [ + 1, + 1, + 1, + 1 + ], + "conditions": [ + { + "changes": [ + { + "property": "barColor", + "value": [ + 0.75294117647059, + 0.70196078431373, + 0.2078431372549, + 1 + ] + }, + { + "property": "sub.2.text_color" + } + ], + "check": { + "op": "==", + "trigger": 1, + "value": "1", + "variable": "mark" + } + }, + { + "changes": [ + { + "property": "barColor", + "value": [ + 0.83529411764706, + 0.43921568627451, + 0.070588235294118, + 1 + ] + }, + { + "property": "sub.2.text_color" + } + ], + "check": { + "op": "==", + "trigger": 1, + "value": "2", + "variable": "mark" + } + }, + { + "changes": [ + { + "property": "barColor", + "value": [ + 0.67843137254902, + 0.17254901960784, + 0.76470588235294, + 1 + ] + }, + { + "property": "sub.2.text_color" + } + ], + "check": { + "op": "==", + "trigger": 1, + "value": "3", + "variable": "mark" + } + }, + { + "changes": [ + { + "property": "barColor", + "value": [ + 0.082352941176471, + 0.65882352941177, + 0.066666666666667, + 1 + ] + }, + { + "property": "sub.2.text_color" + } + ], + "check": { + "op": "==", + "trigger": 1, + "value": "4", + "variable": "mark" + } + }, + { + "changes": [ + { + "property": "barColor", + "value": [ + 0.52549019607843, + 0.63921568627451, + 0.72941176470588, + 1 + ] + }, + { + "property": "sub.2.text_color" + } + ], + "check": { + "op": "==", + "trigger": 1, + "value": "5", + "variable": "mark" + } + }, + { + "changes": [ + { + "property": "barColor", + "value": [ + 0, + 0.54901960784314, + 0.93725490196078, + 1 + ] + }, + { + "property": "sub.2.text_color" + } + ], + "check": { + "op": "==", + "trigger": 1, + "value": "6", + "variable": "mark" + } + }, + { + "changes": [ + { + "property": "barColor", + "value": [ + 0.74117647058823, + 0.20392156862745, + 0.14117647058823, + 1 + ] + }, + { + "property": "sub.2.text_color" + } + ], + "check": { + "op": "==", + "trigger": 1, + "value": "7", + "variable": "mark" + } + }, + { + "changes": [ + { + "property": "barColor", + "value": [ + 0.76470588235294, + 0.72941176470588, + 0.69803921568628, + 1 + ] + }, + { + "property": "sub.2.text_color", + "value": [ + 1, + 1, + 1, + 1 + ] + } + ], + "check": { + "op": "==", + "trigger": 1, + "value": "8", + "variable": "mark" + } + }, + { + "changes": [ + { + "property": "sub.2.text_color", + "value": [ + 0.87843137254902, + 0.25098039215686, + 0.25098039215686, + 1 + ] + } + ], + "check": { + "trigger": 1, + "value": 0, + "variable": "isMarked" + } + } + ], + "config": { + "mobMarks": [ + { + "mark_1": 1, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "-- MOLTEN CORE --" + }, + { + "mark_1": 2, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Firewalker" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Ancient Core Hound" + }, + { + "mark_1": 3, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Flameguard" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Molten Destroyer" + }, + { + "mark_1": 3, + "mark_2": 2, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Molten Giant" + }, + { + "mark_1": 4, + "mark_2": 5, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Lava Elemental" + }, + { + "mark_1": 4, + "mark_2": 5, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Lava Reaver" + }, + { + "mark_1": 3, + "mark_2": 4, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Flamewaker Protector" + }, + { + "mark_1": 3, + "mark_2": 4, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Flamewaker" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 6, + "mark_6": 7, + "mark_7": 8, + "mark_8": 9, + "name": "Firesworn" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Flamewaker Priest" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 8, + "mark_4": 9, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Flamewaker Elite" + }, + { + "mark_1": 4, + "mark_2": 5, + "mark_3": 6, + "mark_4": 7, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Flamewaker Healer" + }, + { + "mark_1": 2, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Golemagg the Incinerator" + }, + { + "mark_1": 3, + "mark_2": 4, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Core Rager" + }, + { + "mark_1": 1, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "" + }, + { + "mark_1": 1, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "-- BLACKWING LAIR --" + }, + { + "mark_1": 6, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Death Talon Captain" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Death Talon Flamescale" + }, + { + "mark_1": 4, + "mark_2": 5, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Death Talon Seether" + }, + { + "mark_1": 9, + "mark_2": 8, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Death Talon Wyrmkin" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 6, + "mark_6": 7, + "mark_7": 8, + "mark_8": 9, + "name": "Death Talon Hatcher" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Blackwing Warlock" + }, + { + "mark_1": 4, + "mark_2": 5, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Blackwing Spellbinder" + }, + { + "mark_1": 6, + "mark_2": 3, + "mark_3": 2, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Death Talon Overseer" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 9, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Death Talon Wyrmguard" + }, + { + "mark_1": 1, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "" + }, + { + "mark_1": 1, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "-- ZUL'GURUB --" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Gurubashi Axe Thrower" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Gurubashi Bat Rider" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Razzashi Cobra" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 6, + "mark_6": 7, + "mark_7": 8, + "mark_8": 9, + "name": "Hakkari Blood Priest" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 6, + "mark_6": 7, + "mark_7": 8, + "mark_8": 9, + "name": "Hakkari Priest" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 6, + "mark_6": 7, + "mark_7": 8, + "mark_8": 9, + "name": "Soulflayer" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 6, + "mark_6": 7, + "mark_7": 8, + "mark_8": 9, + "name": "Hakkari Shadow Hunter" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 6, + "mark_6": 7, + "mark_7": 8, + "mark_8": 9, + "name": "Hakkari Shadowcaster" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 6, + "mark_6": 7, + "mark_7": 8, + "mark_8": 9, + "name": "Hakkari Witch Doctor" + }, + { + "mark_1": 2, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "High Priest Thekal" + }, + { + "mark_1": 3, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Zealot Zath" + }, + { + "mark_1": 4, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Zealot Lor'Khan" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Voodoo Slave" + }, + { + "mark_1": 1, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "" + }, + { + "mark_1": 1, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "-- Ahn'Qiraj --" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Anubisath Sentinel" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Qiraji Brainwasher" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 6, + "mark_6": 7, + "mark_7": 1, + "mark_8": 1, + "name": "Vekniss Guardian" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Vekniss Warrior" + }, + { + "mark_1": 2, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Princess Yauj" + }, + { + "mark_1": 3, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Lord Kri" + }, + { + "mark_1": 4, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Vem" + }, + { + "mark_1": 3, + "mark_2": 4, + "mark_3": 5, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Sartura's Royal Guard" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Vekniss Soldier" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Vekniss Hive Crawler" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Qiraji Lasher" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Vekniss Stinger" + }, + { + "mark_1": 3, + "mark_2": 4, + "mark_3": 5, + "mark_4": 6, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Vekniss Wasp" + }, + { + "mark_1": 6, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Qiraji Champion" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Qiraji Slayer" + }, + { + "mark_1": 5, + "mark_2": 4, + "mark_3": 3, + "mark_4": 2, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Qiraji Mindslayer" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Obsidian Nullifier" + }, + { + "mark_1": 4, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Anubisath Warder" + }, + { + "mark_1": 1, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "" + }, + { + "mark_1": 1, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "-- NAXXRAMAS --" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Bile Retcher" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Patchwork Golem" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Sewage Slime" + }, + { + "mark_1": 2, + "mark_2": 9, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Sludge Belcher" + }, + { + "mark_1": 2, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Living Monstrosity" + }, + { + "mark_1": 3, + "mark_2": 4, + "mark_3": 5, + "mark_4": 6, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Mad Scientist" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Stitched Spewer" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Infectious Ghoul" + }, + { + "mark_1": 9, + "mark_2": 8, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Plague Slime" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Stoneskin Gargoyle" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Plague Beast" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Necro Stalker" + }, + { + "mark_1": 2, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Venom Stalker" + }, + { + "mark_1": 3, + "mark_2": 4, + "mark_3": 5, + "mark_4": 6, + "mark_5": 7, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Carrion Spinner" + }, + { + "mark_1": 6, + "mark_2": 5, + "mark_3": 4, + "mark_4": 3, + "mark_5": 7, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Dread Creeper" + }, + { + "mark_1": 3, + "mark_2": 4, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Crypt Guard" + }, + { + "mark_1": 2, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Crypt Reaver" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 6, + "mark_6": 7, + "mark_7": 1, + "mark_8": 1, + "name": "Naxxramas Acolyte" + }, + { + "mark_1": 9, + "mark_2": 8, + "mark_3": 7, + "mark_4": 6, + "mark_5": 5, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Naxxramas Cultist" + }, + { + "mark_1": 9, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Grand Widow Faerlina" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Naxxramas Follower" + }, + { + "mark_1": 4, + "mark_2": 5, + "mark_3": 6, + "mark_4": 7, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Naxxramas Worshipper" + }, + { + "mark_1": 2, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Tomb Horror" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Necropolis Acolyte" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Necro Knight" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Necro Knight Guardian" + }, + { + "mark_1": 2, + "mark_2": 4, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Spirit of Naxxramas" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Plagued Gargoyle" + }, + { + "mark_1": 5, + "mark_2": 4, + "mark_3": 3, + "mark_4": 2, + "mark_5": 6, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Plagued Ghoul" + }, + { + "mark_1": 3, + "mark_2": 4, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Shade of Naxxramas" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Skeletal Steed" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Deathknight Cavalier" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Death Lord" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Deathknight" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Skeletal Smith" + }, + { + "mark_1": 3, + "mark_2": 4, + "mark_3": 5, + "mark_4": 6, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Death Touched Warrior" + }, + { + "mark_1": 3, + "mark_2": 4, + "mark_3": 5, + "mark_4": 6, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Dark Touched Warrior" + }, + { + "mark_1": 3, + "mark_2": 4, + "mark_3": 5, + "mark_4": 6, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Doom Touched Warrior" + }, + { + "mark_1": 3, + "mark_2": 4, + "mark_3": 5, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Risen Deathknight" + }, + { + "mark_1": 3, + "mark_2": 2, + "mark_3": 4, + "mark_4": 5, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Bony Construct" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Deathknight Captain" + }, + { + "mark_1": 2, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Instructor Razuvious" + }, + { + "mark_1": 3, + "mark_2": 4, + "mark_3": 5, + "mark_4": 6, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Deathknight Understudy" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Unholy Staff" + }, + { + "mark_1": 2, + "mark_2": 3, + "mark_3": 4, + "mark_4": 5, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Unholy Axe" + }, + { + "mark_1": 3, + "mark_2": 2, + "mark_3": 4, + "mark_4": 5, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Unholy Swords" + }, + { + "mark_1": 4, + "mark_2": 1, + "mark_3": 1, + "mark_4": 1, + "mark_5": 1, + "mark_6": 1, + "mark_7": 1, + "mark_8": 1, + "name": "Deathknight Vindicator" + } + ] + }, + "customText": "function()\n if WeakAuras.IsOptionsOpen() then\n return \"Name\", 99\n end\n \n local state = aura_env.state\n local mark = (state.mark ~= nil and ICON_LIST[state.mark] .. \"0|t \") or \"|TInterface\\\\RaidFrame\\\\ReadyCheck-Waiting:0|t \"\n local healthPercent = math.floor(state.value / state.total * 100)\n return mark .. state.name, healthPercent\nend", + "customTextUpdate": "event", + "desaturate": false, + "displayText": "%c", + "fixedWidth": 200, + "font": "Friz Quadrata TT", + "fontSize": 13, + "frameStrata": 1, + "height": 15, + "icon": false, + "iconSource": -1, + "icon_color": [ + 1, + 1, + 1, + 1 + ], + "icon_side": "RIGHT", + "id": "ClassicAutoMark_Mobs", + "information": { + "ignoreOptionsEventErrors": false + }, + "internalVersion": 45, + "inverse": false, + "justify": "LEFT", + "load": { + "class": { + "multi": [] + }, + "ingroup": { + "multi": { + "group": true, + "raid": true + } + }, + "size": { + "multi": { + "flexible": true, + "fortyman": true, + "party": true, + "scenario": true, + "ten": true, + "twenty": true, + "twentyfive": true + } + }, + "spec": { + "multi": [] + }, + "talent": { + "multi": [] + }, + "use_ingroup": false, + "use_never": false, + "zoneIds": "" + }, + "orientation": "HORIZONTAL", + "outline": "OUTLINE", + "regionType": "aurabar", + "selfPoint": "BOTTOM", + "semver": "1.0.0", + "smoothProgress": true, + "spark": false, + "sparkBlendMode": "ADD", + "sparkColor": [ + 1, + 1, + 1, + 1 + ], + "sparkHeight": 30, + "sparkHidden": "NEVER", + "sparkOffsetX": 0, + "sparkOffsetY": 0, + "sparkRotation": 0, + "sparkRotationMode": "AUTO", + "sparkTexture": "Interface\\CastingBar\\UI-CastingBar-Spark", + "sparkWidth": 10, + "subRegions": [ + { + "type": "aurabar_bar" + }, + { + "anchorXOffset": 0, + "anchorYOffset": 0, + "rotateText": "NONE", + "text_anchorPoint": "INNER_LEFT", + "text_automaticWidth": "Auto", + "text_color": [ + 1, + 1, + 1, + 1 + ], + "text_fixedWidth": 64, + "text_font": "Friz Quadrata TT", + "text_fontSize": 12, + "text_fontType": "None", + "text_justify": "CENTER", + "text_selfPoint": "LEFT", + "text_shadowColor": [ + 0, + 0, + 0, + 1 + ], + "text_shadowXOffset": 1, + "text_shadowYOffset": -1, + "text_text": "%c1", + "text_text_format_c1_format": "none", + "text_visible": true, + "text_wordWrap": "WordWrap", + "type": "subtext" + }, + { + "anchorXOffset": 0, + "anchorYOffset": 0, + "rotateText": "NONE", + "text_anchorPoint": "INNER_RIGHT", + "text_automaticWidth": "Auto", + "text_color": [ + 1, + 1, + 1, + 1 + ], + "text_fixedWidth": 64, + "text_font": "Friz Quadrata TT", + "text_fontSize": 12, + "text_fontType": "None", + "text_justify": "CENTER", + "text_selfPoint": "RIGHT", + "text_shadowColor": [ + 0, + 0, + 0, + 1 + ], + "text_shadowXOffset": 1, + "text_shadowYOffset": -1, + "text_text": "%c2%%", + "text_text_format_c2_format": "none", + "text_visible": true, + "text_wordWrap": "WordWrap", + "type": "subtext" + } + ], + "texture": "Minimalist", + "tocversion": 11307, + "triggers": { + "1": { + "trigger": { + "check": "event", + "custom": "function(allStates, event, ...)\n return aura_env.eventHandlers[event](allStates, ...)\nend", + "customVariables": "{\n value = true,\n total = true,\n \n mark = \"number\",\n isMarked = \"bool\",\n}", + "custom_type": "stateupdate", + "debuffType": "HELPFUL", + "duration": "1", + "event": "Health", + "events": "WA_CAM_RESET MODIFIER_STATE_CHANGED UPDATE_MOUSEOVER_UNIT COMBAT_LOG_EVENT_UNFILTERED:UNIT_DIED WA_CAM_UPDATE", + "names": [], + "spellIds": [], + "subeventPrefix": "SPELL", + "subeventSuffix": "_CAST_START", + "type": "custom", + "unevent": "auto", + "unit": "player", + "use_unit": true + }, + "untrigger": [] + }, + "2": { + "trigger": { + "check": "update", + "custom": "function()\n local time = GetTime()\n if time > aura_env.lastUpdate + 1 then\n WeakAuras.ScanEvents(\"WA_CAM_UPDATE\")\n aura_env.lastUpdate = time\n return true\n end\n return false\nend", + "custom_hide": "timed", + "custom_type": "status", + "debuffType": "HELPFUL", + "type": "custom", + "unit": "player" + }, + "untrigger": [] + }, + "activeTriggerMode": 1, + "customTriggerLogic": "function(trigger)\n return trigger[1]\nend", + "disjunctive": "custom" + }, + "uid": "tzMpWlYs)yP", + "url": "https://wago.io/0cX1T1IvH/1", + "useAdjustededMax": false, + "useAdjustededMin": false, + "version": 1, + "wagoID": "0cX1T1IvH", + "width": 200, + "wordWrap": "WordWrap", + "xOffset": 0, + "yOffset": 0, + "zoom": 0.3 + } + ], + "d": { + "actions": { + "finish": [], + "init": [], + "start": [] + }, + "align": "LEFT", + "anchorFrameType": "SCREEN", + "anchorPoint": "CENTER", + "animate": true, + "animation": { + "finish": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + }, + "main": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + }, + "start": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + } + }, + "arcLength": 360, + "authorOptions": [], + "backdropColor": [ + 0, + 0, + 0, + 0.5 + ], + "border": true, + "borderBackdrop": "Solid", + "borderColor": [ + 0, + 0, + 0, + 1 + ], + "borderEdge": "1 Pixel", + "borderInset": 1, + "borderOffset": 5, + "borderSize": 1, + "columnSpace": 1, + "conditions": [], + "config": [], + "constantFactor": "RADIUS", + "frameStrata": 1, + "fullCircle": true, + "gridType": "RD", + "gridWidth": 5, + "groupIcon": 132212, + "grow": "DOWN", + "id": "ClassicAutoMark v2.1", + "information": { + "ignoreOptionsEventErrors": true + }, + "internalVersion": 45, + "limit": 5, + "load": { + "class": { + "multi": [] + }, + "size": { + "multi": [] + }, + "spec": { + "multi": [] + }, + "talent": { + "multi": [] + }, + "use_class": false, + "zoneIds": "" + }, + "radius": 200, + "regionType": "dynamicgroup", + "rotation": 0, + "rowSpace": 1, + "scale": 1, + "selfPoint": "TOPLEFT", + "semver": "1.0.0", + "sort": "none", + "space": 1, + "stagger": 0, + "subRegions": [], + "tocversion": 11307, + "triggers": [ + { + "trigger": { + "debuffType": "HELPFUL", + "event": "Health", + "names": [], + "spellIds": [], + "subeventPrefix": "SPELL", + "subeventSuffix": "_CAST_START", + "type": "aura2", + "unit": "player" + }, + "untrigger": [] + } + ], + "uid": "YEcsoa6CCd8", + "url": "https://wago.io/0cX1T1IvH/1", + "useLimit": false, + "version": 1, + "wagoID": "0cX1T1IvH", + "xOffset": 399.99975585938, + "yOffset": 39.999877929688 + }, + "m": "d", + "s": "3.3.0", + "v": 1421, + "wagoID": "0cX1T1IvH" +} \ No newline at end of file diff --git a/WA-ClassicAutoMark/README.md b/WA-ClassicAutoMark/README.md new file mode 100644 index 0000000..bb74f8b --- /dev/null +++ b/WA-ClassicAutoMark/README.md @@ -0,0 +1,4 @@ +# ClassicAutoMark +Mob marking helper for Classic WoW. Mob health-values are updated using targettarget of raid raid members, since the nameplate range is severely limited in classic. +Hold ALT and mouseover mobs to mark them in a single pass; mobs hovered last, but which should have had higher priority for e.g. skull, might not be marked. +Hold CTRL to do a first "discover" pass, where all mobs are indexed, to allow better prioritised marking of groups of mobs. Alternatively, hold both CTRL+ALT to discover and mark simultaniously; this might cause marks to switch around. \ No newline at end of file diff --git a/WA-ClassicAutoMark/classicautomark.png b/WA-ClassicAutoMark/classicautomark.png new file mode 100644 index 0000000..9d84543 Binary files /dev/null and b/WA-ClassicAutoMark/classicautomark.png differ diff --git a/WA-DKPSpy/DKPSpy.string b/WA-DKPSpy/DKPSpy.string new file mode 100644 index 0000000..8ccd4b7 --- /dev/null +++ b/WA-DKPSpy/DKPSpy.string @@ -0,0 +1 @@ +!WA:2!Ts1tVTrru8MKdLUcqflreiXHfFOYr4yAPsvkrQhY6SUuW5pSEdUvCiz2DER9uwpZYBMnjoh4Gfh4C(i4ZCYFe4cxxfXNGEGpa9taVz3njTbcNypypZ7)VF)M3BPEnM0G3G)RFoQYnPcjG7Dqy)NVRpE6EjjAWS0cUqNLYMgcNAw(c9ygxDYlR09z3zbtgpwH7Restux)Dd9dYUFCU2OMyT)GmoZabWXG08AwojLzeXdfCZyVTORil2ius9tc0ggAC8esH5bNZvhwfJJIQ()0L)Juvml1DRyORAYe3N62xenWKhT5ZadDez40wnR1U(J78WMR5u5bPKepaqblvCgG3URxBZndW2qsk1h3IRxBa5d9vxfBgaJeAdG2lTAUJsU93UVNGZbSzB3KCzzR3kdHeXPTDNaAnBe02LGBdkIYTAB7Qbj5WAoU1FziH0TQK62PJBZnDBA)V291CinRDB1G93)pkIkGHdXkoWRqLAeyZTlf2tHdvd3IZvYUJzsjK26Qc8FgKju616)TivPPwsR6eEDi05XXK(2UQOxfaXG44ldY7qNuO0xEP1BNWRJKi5TJrNTzgM7p)u3MzmTUPRzmiVY0)lw4MX46eqMwsnrj0tC9yNze8oAeG6p8by9X)YZmnd8YPrGxNRHdzPNWMs0qoC0R15rLdrdYtiIAXHD3Aq4Hdc3kiCgphzwAQXJkU38UkjxuosDLl7xYTbd23VF)ajJ4bNIvJSt0aotNbPPpNRDMzZOn1hfepgI)XI7TOA07qBrTGgpnqE50mMllJRNDEEohIOskKSb)A)(737G(NNlRBiNSpYoFFmewDFhI9(T78gc6auYs)EQ7Pk9hoNjftkBHNu8b9k(ypPsc)oW0WadcYrMX39IlBYYQb1ehk56zwBSPUyDVjmHK8Ty9Io3T4llEyXJOJnUPeVeL0KD)EO4m3VlNXrlphgoNWk7KcbBoEPkgp5ClCy7t8OidlLA3vdMKNAeoEA6v0QfB4eeNspoSN8ium2EapJQCcnxEMnpdid)06fMVOAH5kZXY0ylApdTG8cceP9N7LvYzoNRH0KQLPE7fgU3o4RisqKm1RVFVW5gv8XvG271(lAk4r0W8GSPbXQuf(nRqFlsqIHjCJASvEt1Y5Ewr2mgnOBGV)UZPNdaVCj8V8(FvUGV40nE5gYSP)0WNzWP1R9JiiormYzrvd0TmflT0sRmp(Q3yoleYefwrERM9jIrsfc1nJV9rIpIkuF0StuiFiYYMnS(qdDWJ7qRzBC8F(I)( \ No newline at end of file diff --git a/WA-DKPSpy/DKPSpy.table b/WA-DKPSpy/DKPSpy.table new file mode 100644 index 0000000..6ffee78 --- /dev/null +++ b/WA-DKPSpy/DKPSpy.table @@ -0,0 +1,119 @@ +{ + "d": { + "actions": { + "finish": [], + "init": { + "custom": "local AceComm = LibStub:GetLibrary(\"AceComm-3.0\")\nlocal LibAceSerializer = LibStub:GetLibrary(\"AceSerializer-3.0\")\nlocal LibDeflate = LibStub:GetLibrary(\"LibDeflate\")\n\n\n\nAceComm:RegisterComm(\"MonDKPBidder\", function(prefix, message, distribution, sender)\n print(sender .. \": \" .. message)\nend)\n\nAceComm:RegisterComm(\"CommDKPBidder\", function(prefix, message, distribution, sender)\n local decoded = LibDeflate:DecodeForWoWAddonChannel(message)\n local decompressed = LibDeflate:DecompressDeflate(decoded)\n success, objReceived = LibAceSerializer:Deserialize(decompressed)\n if objReceived.Data ~= \"pass\" then\n print(sender .. \": \" .. objReceived.Data)\n end\nend)", + "do_custom": true + }, + "start": [] + }, + "anchorFrameType": "SCREEN", + "anchorPoint": "CENTER", + "animation": { + "finish": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + }, + "main": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + }, + "start": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + } + }, + "authorOptions": [], + "automaticWidth": "Auto", + "color": [ + 1, + 1, + 1, + 1 + ], + "conditions": [], + "config": [], + "customTextUpdate": "event", + "displayText": "", + "fixedWidth": 200, + "font": "Friz Quadrata TT", + "fontSize": 12, + "frameStrata": 1, + "id": "DKPSpy", + "information": { + "ignoreOptionsEventErrors": true + }, + "internalVersion": 45, + "justify": "LEFT", + "load": { + "class": { + "multi": [] + }, + "size": { + "multi": [] + }, + "spec": { + "multi": [] + }, + "talent": { + "multi": [] + }, + "use_never": true, + "zoneIds": "" + }, + "outline": "OUTLINE", + "regionType": "text", + "selfPoint": "BOTTOM", + "semver": "1.0.0", + "shadowColor": [ + 0, + 0, + 0, + 1 + ], + "shadowXOffset": 1, + "shadowYOffset": -1, + "subRegions": [], + "tocversion": 11307, + "triggers": { + "1": { + "trigger": { + "check": "event", + "custom_type": "stateupdate", + "debuffType": "HELPFUL", + "duration": "1", + "event": "Conditions", + "names": [], + "spellIds": [], + "subeventPrefix": "SPELL", + "subeventSuffix": "_CAST_START", + "type": "unit", + "unevent": "auto", + "unit": "player", + "use_alwaystrue": true, + "use_unit": true + }, + "untrigger": [] + }, + "activeTriggerMode": -10 + }, + "uid": "x9Y9npyqWGt", + "url": "https://wago.io/rr7bwIqeh/1", + "version": 1, + "wagoID": "rr7bwIqeh", + "wordWrap": "WordWrap", + "xOffset": 0, + "yOffset": 0 + }, + "m": "d", + "s": "3.3.0", + "v": 1421, + "wagoID": "rr7bwIqeh" +} \ No newline at end of file diff --git a/WA-DKPSpy/README.md b/WA-DKPSpy/README.md new file mode 100644 index 0000000..ebd946b --- /dev/null +++ b/WA-DKPSpy/README.md @@ -0,0 +1,2 @@ +# DKPSpy +Spies on hidden bids from the DKP AddOn 'MonolithDKP' and derivatives. This works because, even though auction bids are supposed to be hidden, and thus only visible to the loot master, they are broadcast through the in-game RAID AddOn channel and filtered client-side. \ No newline at end of file diff --git a/WA-PrayerOfHealingHelper/PrayerOfHealingHelper.string b/WA-PrayerOfHealingHelper/PrayerOfHealingHelper.string new file mode 100644 index 0000000..8ff48f8 --- /dev/null +++ b/WA-PrayerOfHealingHelper/PrayerOfHealingHelper.string @@ -0,0 +1 @@ +!WA:2!TErZUTXXzTHf2bSfWYmXgXU2fBesvjTLLfzQKTBHlmxzYqfitRSKk2bkPuZU7WDh7LZoyMDLiDr)j6Ko0t6y7LcEPTbTx4tqGrropqOpbc9jqpan5BMDjfvkto1fyeN5B(()3rg1l0RGxbVdV7qbdXF5ZiEXbx5169pTBxbo(5ghJsIdI4pLftIOI88bPx04lJF2)9Vm3CxCeI6c3VveHg7SETMTRzFSMb2rXifngSlFUZpjYdBvD72pLJC18CnBrmIhN3PlHseb5TGFIx8iVOoUjI4OE76K(l7AOeoQdMU3YjagnWOW4aH5dn)n)2dI5eFFmx8RxKNT9W5h6HDs62T9agM3O2MBvF7nTIHdYlDQ3akQhX9Xa)uQWUJsLqh11249W04tejo6nBXXDj9TBTvTn38aVmckuw(odxpQNdk2CZiFlL(4WcrdW8tsz1yw334p2nHQn0ILYBcFHrUOqtwuWQklau)YLV39mVT5hGJBXWHHwr0eH6kc1VyjZBzUYYvU)AAsNIE3eoh0oG8v0q7gXnvAXsM9icbqAQ7XKqnzicxuCw(UsMErAQvFKUMBi0AWguBe1hxCHhteWzZNG8jUlSKM)LmJdWutZ7ChtbQh2KRW0ejGlJrHGgH9m3kQXeUQ(otxhV72GwslEonDPjUKstigt9gVnF25PCb9q9bwoXrElZv1xYXXjC6yrTKcTLmJ5j48a52qChlYNgAfSRVDZnA3PrTQB2UrN621(OTHe4FbKTgpGNq1izht6H9KxI9VMeh1WtDhTrCFCCQgdoWZaz(WhAsjHAV1e7jt16Icf4ZzqZk4SZzm7Za7C7j38eu)ItjBZ7m1Df)2kvMihB)hi0bypr(jj4TGAes)rDwVAR2DA1UQD7XvdbepOy5iiYMwsLFrzHVsEf5npjrG7Gc3hnqOy8UY3Zc6sej)Xz1fupIUYwEn51L)S8YIYsY3n)bkQu63UYBk)jY3s(2YBNFKhr8cTJDpCfeDa7Yi9(2PIu1Si3qIBeTJBuye)dZbFNcTAWCkk8JHkEqo7CKah2v3bsEHdCq81NGk0dqGIv1I4GP7R9jgdb73g7RuZBDv5vgPcbaPDG1HxN9UX4(XD0)bQS6HI7W6Ose6W4yxIsO5yV3mWXH43HM0ZbZZGXUCvhhoEpcObn1xiyZRPreG8I2pvvnmmYDsk0XwIT9gFqJ2S3sdv5DbMrC1DOTQchpnvWK(ypnWp)40gXFsQbA8A99VaIKKUdKxyix1(f3gaA18PnRD0eLFHFkBMMIhyO9qHNzXgYRWbNMcRmz98mznut5zbOJY4enMnFDo5vMFucYdIbiZ2TzfMY6ZyqUZbmZcUXChpHnQE4wnJO4uq7hX9EghXo4zzBsn29a10jeVBMdEQbtwBwREB21MHvMUXjn0mdmOzBSOtKUsHArEf(ASsFxzjzZx6ehWXIGOqpd2nNbU8OeQx6qh9wNamXpiUXJyRymh8zfgH8(ko0JeUMDv7EjHXKfT1N21IJiE7EKQOs1PIh4K2a(Qs382UHiHyrhv71qSZw2BuRvBaUgB9D7osTnJZbwcWEueAb9hCvB0L46MfVKgTpDx2BRaG7dvNtboy4z7FtN)d)vGtcAU8gNOl1Sa1XtvbxP6JFmBEGbv9ujKypSh0elyKgRgeppm1UzTpUMTUsVvuc3fFJ5o1b5(sFTJzsvYw5wz5v)2SIa6bxxkRN1NvjFeIs6PNbVM8hw)1yKa3kggj4hhCrOj2ohpEyUoaWfyq0EIdu4PyJChREic9Wl7OZRTZ5iGHo4(5spxn73pihWRlj)C5oP(wfSaBuilazi)9Y)qHbgf6BCKgUITdzjqZFT9i)DxmfEDO)xFJpCY8fgpYhYBelzYlVKPpSCGfcw8kWzy5aluLPFpbsfOHXetigMhwbwGhiyzgrnLOy2EZ7AEosP493AmradsrdYCkQ5zjyyD5s3TsPF50Zt4LbWfNMYBzwKxbKcVCPslD24F)zHOVcr)ZJOZSq0rHOZ5renlerkeraIQHC5DsB2zKgYgKfQSYj)r1bNUk4RcnQGgV)4NZo4R)6VCU5(bhPN1iut(EK1RII6zKLLQRmFixvaNWXdHKov3rIiUscXBePXl38frR2Tz5xLoMPDkESIBOMv1f5I)01rqVyQVfI)PBVXDo70DAPFESMSGHXrU7Low7nx62lq8yVZwC17knJ6AM9Qq43qiJ900gC15WtAuPwoTw3UwTMJ6QaaP6q)2C27RMn04rlp3fG(jxuEOYxq7s8ZdDvuYbhK(0)ZgzokItG2i6sd28qrz7nwV6MD2OjSTvTHUtMUFRfTDdWUVCnzHBm3b7H4ee09n7Xd6BS3dfMGz)Pjz2cvyr8)8oyMkXl9UDk)zlRPcYsF)Lxzkm7gCVuel(Ghu57)9Y)8kpOeqF5Lp3lchlQFvgRuPkC3a1dyfxFr5xawVrUdG6hW3gpqU2IY)ADLPj)BY)(crS3q(fS)8)xSe)XiwSsL7F)VFt5(REpLPu57Yus5LYuK)dTryagH8FkxBeHMoNb0w4FPccBbfe2V)YGQuyV)9Z)M) \ No newline at end of file diff --git a/WA-PrayerOfHealingHelper/PrayerOfHealingHelper.table b/WA-PrayerOfHealingHelper/PrayerOfHealingHelper.table new file mode 100644 index 0000000..2743318 --- /dev/null +++ b/WA-PrayerOfHealingHelper/PrayerOfHealingHelper.table @@ -0,0 +1,266 @@ +{ + "d": { + "actions": { + "finish": [], + "init": { + "custom": "aura_env.unitHealths = {}", + "do_custom": true + }, + "start": [] + }, + "alpha": 1, + "anchorFrameType": "SCREEN", + "anchorPoint": "CENTER", + "animation": { + "finish": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + }, + "main": { + "alpha": 0, + "colorA": 1, + "colorB": 1, + "colorFunc": "function(progress, r1, g1, b1, a1, r2, g2, b2, a2)\n local angle = (progress * 2 * math.pi) - (math.pi / 2)\n local newProgress = ((math.sin(angle) + 1)/2);\n return r1 + (newProgress * (r2 - r1)),\n g1 + (newProgress * (g2 - g1)),\n b1 + (newProgress * (b2 - b1)),\n a1 + (newProgress * (a2 - a1))\nend\n", + "colorG": 1, + "colorR": 1, + "colorType": "pulseColor", + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "rotate": 0, + "scalex": 1, + "scaley": 1, + "type": "custom", + "use_color": false, + "x": 0, + "y": 0 + }, + "start": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + } + }, + "authorOptions": [], + "backgroundColor": [ + 0, + 0, + 0, + 0.5 + ], + "barColor": [ + 1, + 1, + 1, + 1 + ], + "conditions": [ + { + "changes": [ + { + "property": "barColor", + "value": [ + 1, + 1, + 0, + 1 + ] + } + ], + "check": { + "trigger": -1, + "value": "function(states)\n local poh5Hps = states[1].value / 3.0\n local fh7Hps = (992 + GetSpellBonusHealing() * 0.429) / 1.5\n return poh5Hps > fh7Hps\nend", + "variable": "customcheck" + } + }, + { + "changes": [ + { + "property": "barColor", + "value": [ + 0, + 1, + 0, + 1 + ] + } + ], + "check": { + "op": "", + "trigger": -1, + "value": "function(states)\n local poh5Hps = states[1].value / 3.0\n local gh5Hps = (2288 + GetSpellBonusHealing() * 0.857) / 2.5\n return poh5Hps > gh5Hps\nend", + "variable": "customcheck" + } + } + ], + "config": [], + "desaturate": false, + "frameStrata": 1, + "height": 259.00024414063, + "icon": false, + "iconSource": -1, + "icon_color": [ + 1, + 1, + 1, + 1 + ], + "icon_side": "RIGHT", + "id": "Prayer of Healing Helper", + "information": [], + "internalVersion": 45, + "inverse": false, + "load": { + "class": { + "multi": [], + "single": "PRIEST" + }, + "ingroup": { + "multi": { + "group": true, + "raid": true + } + }, + "size": { + "multi": [] + }, + "spec": { + "multi": [] + }, + "spellknown": 25316, + "talent": { + "multi": [] + }, + "use_class": true, + "use_exact_spellknown": false, + "use_ingroup": false, + "use_never": false, + "use_spellknown": true, + "zoneIds": "" + }, + "orientation": "VERTICAL_INVERSE", + "regionType": "aurabar", + "selfPoint": "CENTER", + "semver": "1.0.0", + "spark": false, + "sparkBlendMode": "ADD", + "sparkColor": [ + 1, + 1, + 1, + 1 + ], + "sparkHeight": 30, + "sparkHidden": "NEVER", + "sparkOffsetX": 0, + "sparkOffsetY": 0, + "sparkRotation": 0, + "sparkRotationMode": "AUTO", + "sparkTexture": "Interface\\CastingBar\\UI-CastingBar-Spark", + "sparkWidth": 10, + "subRegions": [ + { + "type": "aurabar_bar" + }, + { + "anchorXOffset": 0, + "anchorYOffset": 0, + "rotateText": "NONE", + "text_anchorPoint": "LEFT", + "text_automaticWidth": "Auto", + "text_color": [ + 1, + 1, + 1, + 1 + ], + "text_fixedWidth": 64, + "text_font": "Friz Quadrata TT", + "text_fontSize": 12, + "text_fontType": "None", + "text_justify": "CENTER", + "text_selfPoint": "RIGHT", + "text_shadowColor": [ + 0, + 0, + 0, + 1 + ], + "text_shadowXOffset": 1, + "text_shadowYOffset": -1, + "text_text": "%p", + "text_text_format_n_format": "none", + "text_text_format_p_big_number_format": "AbbreviateNumbers", + "text_text_format_p_decimal_precision": 0, + "text_text_format_p_format": "Number", + "text_text_format_p_round_type": "round", + "text_text_format_p_time_dynamic_threshold": 0, + "text_text_format_p_time_precision": 1, + "text_visible": true, + "text_wordWrap": "WordWrap", + "type": "subtext" + } + ], + "texture": "Minimalist", + "tocversion": 11307, + "triggers": { + "1": { + "trigger": { + "custom": "function(event, unitTarget)\n if unitTarget == nil then\n return false\n end\n aura_env.unitHealths[unitTarget] = UnitHealthMax(unitTarget) - UnitHealth(unitTarget)\n return true\nend", + "customDuration": "function()\n local poh5Heal = 1177 + GetSpellBonusHealing() * 0.286\n \n local current = 0\n for unit, missingHealth in pairs(aura_env.unitHealths) do\n if IsSpellInRange(\"Dispel Magic\", unit) then -- same range as untalented PoH\n current = current + min(missingHealth, poh5Heal)\n end \n end\n local max = poh5Heal * 5\n return current, max, true\nend", + "custom_hide": "custom", + "custom_type": "event", + "debuffType": "HELPFUL", + "duration": "1", + "dynamicDuration": true, + "event": "Combat Log", + "events": "UNIT_HEALTH_FREQUENT:party", + "names": [], + "spellIds": [], + "subeventPrefix": "SPELL", + "subeventSuffix": "_CAST_START", + "type": "custom", + "unevent": "timed", + "unit": "player" + }, + "untrigger": [] + }, + "2": { + "trigger": { + "debuffType": "HELPFUL", + "duration": "1", + "event": "Conditions", + "names": [], + "spellIds": [], + "subeventPrefix": "SPELL", + "subeventSuffix": "_CAST_START", + "type": "unit", + "unevent": "auto", + "unit": "player", + "use_alwaystrue": true, + "use_unit": true + }, + "untrigger": [] + }, + "activeTriggerMode": 1, + "disjunctive": "any" + }, + "uid": "iHkLjo5fN1z", + "url": "https://wago.io/TsF6TtVcs/1", + "useAdjustededMax": false, + "useAdjustededMin": false, + "version": 1, + "wagoID": "TsF6TtVcs", + "width": 15.000045776367, + "xOffset": -415.99993896484, + "yOffset": -325.49966430664, + "zoom": 0 + }, + "m": "d", + "s": "3.3.0", + "v": 1421, + "wagoID": "TsF6TtVcs" +} \ No newline at end of file diff --git a/WA-PrayerOfHealingHelper/README.md b/WA-PrayerOfHealingHelper/README.md new file mode 100644 index 0000000..39807b1 --- /dev/null +++ b/WA-PrayerOfHealingHelper/README.md @@ -0,0 +1,2 @@ +# PrayerOfHealingHelper +Shows when it is beneficial to use PoH instead of Flash Heal or Greater Heal, and changes colour accordingly. \ No newline at end of file diff --git a/WA-PrayerOfHealingHelper/WoWScrnShot_011321_223417.jpg b/WA-PrayerOfHealingHelper/WoWScrnShot_011321_223417.jpg new file mode 100644 index 0000000..9f5e36e Binary files /dev/null and b/WA-PrayerOfHealingHelper/WoWScrnShot_011321_223417.jpg differ diff --git a/WA-RaidBuffMemory/README.md b/WA-RaidBuffMemory/README.md new file mode 100644 index 0000000..1488d22 --- /dev/null +++ b/WA-RaidBuffMemory/README.md @@ -0,0 +1,2 @@ +# WA-RaidBuffMemory +Remember and show raid member's world buffs, even if they log off to conserve them. This helps to sort groups based on player's buff-status. \ No newline at end of file diff --git a/WA-RaidBuffMemory/WA-RaidBuffMemory.string b/WA-RaidBuffMemory/WA-RaidBuffMemory.string new file mode 100644 index 0000000..940f6d7 --- /dev/null +++ b/WA-RaidBuffMemory/WA-RaidBuffMemory.string @@ -0,0 +1 @@ +!WA:2!LIvZVrYrv8m7aKSn5JDDIws2Ki6yK86H17G941E3KOvwZx2EsgBp0941KSR1mv3DntxY90DNQ6X2ZgTCWjkkIByjKciozIGlCYhrCHv8hqjlaHcxGf4aCCrCaXfEVQ7zShV2oeOKLRU769E17R6vVFtQBpIWy6StNDYr6mIZioF8ufAZd2QWcgvk9qRaUdLxGyVHdpim8cf8y37EeUJE9GaViw4bKUrUb8vcJyb(cTDbo7gwXoW)fp3tF(9j(2WI1cy(r7vyL61xzPQLNV((XcTyGxa)TsLkvAdriXMMItSvszwdreHhPvG5ZI0SAbtcxTDI4S2TPCXLhJN84hTNd1QBRw17fs5lwUAT5xTAHi4fdsxoj3oIqQNxfhH2dfDTOBs9JmbQzBVFJI5nR3WSEEJ6f6cBIvOhPhLpGSACkqMHzTYvRAO(I1IuIxKRHpPdfmZU(jQG2(2bED74BIwqAloXH1v8Hp9UcQxlLDlpVbXJ123WOYclwNdwgYwQ9GTYG2w502RvxpVImUThTzbVaIZTTIiEWMEjJoDbNSwbb7E0ljVQMHThriWNka2Mn(a)Eb(uWgp3bwjbPy)A60PRLEYSZSlXN1HG(1zLpZ8YxOGpq)dOeb1mIt9Bh5(Kh4aElKIgOVJlOq4ZrSdsd6zL5k0HW8bEL5Kt)KYRlNrol84ZD8VWJ3kQ7o8GiLatziSbljnV3kTAjOrPSId9U7fpx2Pnn8IMVxxcNQpp4f0xZLfr3JR8m4M)aNEGlNzRYRs4Ye8gF5cIaEKm3UeUDvLz8Hx6GK0nkFviMU7QlxP(8g5xQCUUmN9RU2kI3B(vlmDndq92koE9qWsHiIF08qQxa3YiFPkRAUtxbTkRdlY9bXBySYFEi5M5SgZjY9z2lkWEtWvbA5tnXvhL58qdcZPaKDTeTtaV3oiPO(pQXQ73IdjnG3Mers)OyDCE8t46wMfnkxE5hbzkuUpX72Xc9owGM1I1wl8cGYK)O2vt(2jotdpuj)Q7HHlw85V9z(Tc4XXBTKZzv8bItpI9L)4RUhdO1mOl3M(kpH8ntjFkRILxUEzJdSHJZobB5BUflK28b9FfdqUYNgsD0Kp7y76e0WURikOttR45Tp)VM1s3pisVXczxlFJH9cnWhf6rUuFnDyCg0Cl93)(AuFhnVaiJrFRaUNZGvumFNC5U5nV56W7tnHU(1UMoCUYRhZVTErEp9Gw42OxItAd(b1P5eUU(1ZndYvUyUmdzCwes)7s8DiEe(aPp1nq6MoMU5HKQUIRaZ8aBwuVbuLBsKQRNinpw4v2GTXve6MKn38qQMsPPZet1sbExXHWbIwkyBgnMOPMz6zNfjA2erf43ULxWwuUUjfozsC6t4SZo5RJeEJycxds5Dz0wG4k4rfcWfKSTtFJzvB7ntKiPxBkqvjcFd95HJlD9POHxI0H0MQDFnTeVDRU(QkV6IE(2MWrxQyCW5g)0e6yfYmQTiM82W5jyxWKXfwTsPXp(6wjXTtpCFhueRRyjj9XA4mfCWPrD5(6TiEIypbMEGZQ)bP5kMMqVHoZxpKW4IXpmTjJUtWajfRwc0Ca1AGLP0c9Sz1h9AJItO4wFatGIfZXqkfouFoRWnylqAhQEdVSTlXVnf9tr8UhsqFBO)mAgnMqT1OzWITdRhZeoBLEWHK(dmKaFeNMyyLlwRrDA4fgwFhEnSQbSaCNg1oAC4aYc0it1DRq1gLYMjZX4W3HUnWYHbK7Ou0JPmX3pd0PIKdw7(d5IsYduUr8BpwwB3qhWZGPJ5HlYehjFmj5cxQIOyGVpO)uNycoPKTH23HtMF)7piEXIRbLBMzE8KmS)GjWi6j(3HgmQsOFrPltOZYmuExFYULUpZ7XtaT4uYgpwkvcZhXLNiN1FCjerS8OzzWnd8O4STbkxMtnx9moppCTG1tIOIK4Lg2owdQ)Mzv9sTiu41dUNl2RQnioEYuLfVhVr(vnYF8As1j820HJ0h(zDiqD4BVb0U14toH(1ZO)DVL(OCWgg9)YQnNu21r35egp9sN9jo2x85zTlySYQ1AySIjCRCJvRvkF9YhkWmdYbvhWHcgqaPc05aS4cyhsqqXcKY4dv74ZRQEFlfUYG44GhOGLunTi07q6PBr1fWft6rbjoJ3u3NcLkG3bvXMQROfCeX92OtAbAKECB7azCQQnK(xtvSrDwhkpBEKQXHBL77rgpZqPORb54kpEwtBIFz0jjgF0tW90Ou5Q5FNYLgDG1K5uQB8)GVVVWpEm4lUWxPw9kRSS5)VbZtVy3xKq9XuF5ZPjVWZoM8IF8L3fvFfkNlhEH8CW1t1RanN6H1(H(L7yX8P9Bfn8Iq3PnAt9HWRTjC1Yk(npyOxFOqnvmPFs5llFf5xhanP6EuH3yF19LXMLCe5ZVtF0iJm1UQssldkdGxcKtrpa7IOja7Gi)AYxKd9ZGU4cag0ajj8UdYKoITROyc4MYSdf4o5G0DuVT(r5xXi4I4GLIAst5Rg(s9nh9A8G2COhm9Xv3hM5a4qGN5aToCea5xaNwIjS7F7J7bOpBGL1mgXPimFscI(jKfQFgzM6dQpkVeaq0LAVH8vLVKHcX0U4EbipS3O5JI953MWzyXFr4lh3YWH3jnQFxmHB0j0UVuxl8IiC8nP1Jb6UuGd9N)eY635rBqPH5r4NrgyCYv(nKRdaXfKimWbWfE9uYROz5szTDJEnlfwq4Rz(DyjauPgZc7z1JwaldlV6LKFytLEIrtUR8BIWALzv)FIXKFaGXeOjxZDrYBWd8aOWFWElLVYY5nnRywFFK3er3eXU1aHe7kVMcNm(8dnbWDD2cAkrVi0k)EinyMmjkoymqWnLFRZ9Oi62GLqxJtcrJo8fkwn)s1QVsHQ5l(25lvQs9k3USvhgNhWDn2cXd(AY5kGnjjNkgK9WaLVXNp05DHiIVdUDgfQwE5s70haM7(omb(RtG)MkNd18KF4LMg29X5NMNOYHVbEsL3cG2E38ooR4lU7GQO3DjQdJC36XukUBmO7giOBfMB5QOVkOtTV0KzZnt4l0xbqgG0xmLXXvUCmA3WN)yDbGAhGhl0LKw(TtlnKMYVIMC(9Z)Ew965yT2BNzti6JiMPUHxemjB4Ci447)7ei3TP8D(EJj3EE5ftVZMj5O8KCZrdch9w3YytIxxQLcg4K84(vfxEm5N(wlo3F)xGJFzQuP3jKhecD10t(jjItUN8Nelb5NAPGdoP8NQ4l1IZ93(x44FNkT8NDkmG4chWq6fN7V(BXXNDwmKBY(mS4C)LRJJzHT6pnfoYEM70npKXp7hHJF8IZDGA8hwCUF13hhF0PkafIY(ca00)ynCufu5Fao(HNoJicZJW4VpECgofeP5HQ6F(FGJ)5IZ9jVioE10kgLVRMCTuJS5V578Fo \ No newline at end of file diff --git a/WA-RaidBuffMemory/WA-RaidBuffMemory.table b/WA-RaidBuffMemory/WA-RaidBuffMemory.table new file mode 100644 index 0000000..4764aab --- /dev/null +++ b/WA-RaidBuffMemory/WA-RaidBuffMemory.table @@ -0,0 +1,424 @@ +{ + "c": [ + { + "actions": { + "finish": [], + "init": { + "custom": "if not _G.WA_RaidBuffMemory_Buffs then\n _G.WA_RaidBuffMemory_Buffs = {}\nend\nlocal worldBuffs = {\n [22888] = 1, -- Rallying Cry of the Dragonslayer\n [24425] = 2, -- Spirit of Zandalar\n [22817] = 3, -- Fengus' Ferocity\n [22820] = 4, -- Slip'kik's Savvy\n [22818] = 5, -- Mol'dar's Moxie\n [15366] = 6, -- Songflower Serenade\n [16609] = 7, -- Warchief's Blessing\n [23768] = 8, -- Sayge's Dark Fortune of Damage\n}\n\n\nlocal function syncStates(allStates, unit)\n local guid = UnitGUID(unit)\n local buffs = _G.WA_RaidBuffMemory_Buffs[guid]\n if not buffs then\n return false\n end\n \n for buff, _ in pairs(worldBuffs) do\n local state = allStates[guid .. \"-\" .. buff]\n if state then\n state.show = false\n state.changed = true\n end\n end\n for _, buff in ipairs(buffs) do\n allStates[guid .. \"-\" .. buff] = {\n unit = unit,\n show = true,\n changed = true,\n icon = select(3, GetSpellInfo(buff)),\n index = worldBuffs[buff],\n spellId = buff,\n }\n end\n return true\nend\n\n\nlocal function updateUnitAuras(unit)\n if not UnitIsConnected(unit) then\n return\n end\n local buffs = {}\n for i = 1, 255 do\n local name, _, _, _, _, _, _, _, _, spellId = UnitBuff(unit, i)\n if spellId == nil then\n break\n end\n if worldBuffs[spellId] then\n table.insert(buffs, spellId)\n end\n end\n _G.WA_RaidBuffMemory_Buffs[UnitGUID(unit)] = buffs\nend\n\n\n\naura_env.eventHandlers = {}\n\nfunction aura_env.eventHandlers.UNIT_AURA(allStates, unitTarget)\n if not unitTarget or unitTarget:sub(0, 4) ~= \"raid\" then\n return false\n end\n updateUnitAuras(unitTarget)\n return syncStates(allStates, unitTarget)\nend\n\n\nfunction aura_env.eventHandlers.GROUP_ROSTER_UPDATE(allStates)\n for unit in WA_IterateGroupMembers() do\n syncStates(allStates, unit)\n end\n -- addon unitframes may be slow to update; need to force frame reanchor after finished reordering\n C_Timer.After(2, function()\n WeakAuras.ScanEvents(\"GROUP_ROSTER_UPDATE_DELAYED\")\n end)\n return true\nend\n\n\nfunction aura_env.eventHandlers.GROUP_ROSTER_UPDATE_DELAYED(allStates)\n return true\nend\n\n\nfunction aura_env.eventHandlers.OPTIONS(allStates)\n for unit in WA_IterateGroupMembers() do\n updateUnitAuras(unit)\n syncStates(allStates, unit)\n end\n return true\nend", + "do_custom": true + }, + "start": [] + }, + "alpha": 1, + "anchorFrameType": "SCREEN", + "anchorPoint": "CENTER", + "animation": { + "finish": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + }, + "main": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + }, + "start": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + } + }, + "authorOptions": [], + "blendMode": "BLEND", + "color": [ + 1, + 1, + 1, + 1 + ], + "conditions": [ + { + "changes": [ + { + "property": "color", + "value": [ + 0.83529411764706, + 0, + 0, + 1 + ] + } + ], + "check": { + "op": "==", + "trigger": 1, + "value": "228880", + "variable": "spellId" + } + }, + { + "changes": [ + { + "property": "color", + "value": [ + 0, + 0.81176470588235, + 0, + 1 + ] + } + ], + "check": { + "op": "==", + "trigger": 1, + "value": "244250", + "variable": "spellId" + } + }, + { + "changes": [ + { + "property": "color", + "value": [ + 0, + 1, + 0.68235294117647, + 1 + ] + } + ], + "check": { + "op": "==", + "trigger": 1, + "value": "228170", + "variable": "spellId" + } + }, + { + "changes": [ + { + "property": "color", + "value": [ + 0.63137254901961, + 0, + 0.53725490196078, + 1 + ] + } + ], + "check": { + "op": "==", + "trigger": 1, + "value": "228200", + "variable": "spellId" + } + }, + { + "changes": [ + { + "property": "color", + "value": [ + 0.4156862745098, + 0.29411764705882, + 0.13725490196078, + 1 + ] + } + ], + "check": { + "op": "==", + "trigger": 1, + "value": "228180", + "variable": "spellId" + } + }, + { + "changes": [ + { + "property": "color", + "value": [ + 1, + 0.50980392156863, + 0.67450980392157, + 1 + ] + } + ], + "check": { + "op": "==", + "trigger": 1, + "value": "153660", + "variable": "spellId" + } + }, + { + "changes": [ + { + "property": "color", + "value": [ + 1, + 0.38823529411765, + 0, + 1 + ] + } + ], + "check": { + "op": "==", + "trigger": 1, + "value": "166090", + "variable": "spellId" + } + }, + { + "changes": [ + { + "property": "color", + "value": [ + 0.62352941176471, + 0.023529411764706, + 1, + 1 + ] + } + ], + "check": { + "op": "==", + "trigger": 1, + "value": "237680", + "variable": "spellId" + } + } + ], + "config": [], + "cooldown": false, + "cooldownEdge": false, + "cooldownSwipe": true, + "cooldownTextDisabled": false, + "desaturate": false, + "discrete_rotation": 0, + "displayIcon": "", + "frameStrata": 1, + "height": 16, + "icon": true, + "iconSource": -1, + "id": "RaidBuffMemory_Icon", + "information": [], + "internalVersion": 45, + "inverse": false, + "keepAspectRatio": false, + "load": { + "class": { + "multi": [] + }, + "ingroup": { + "multi": { + "raid": true + }, + "single": "raid" + }, + "raid_role": { + "single": "MAINASSIST" + }, + "size": { + "multi": { + "none": true + }, + "single": "none" + }, + "spec": { + "multi": [] + }, + "talent": { + "multi": [] + }, + "use_combat": false, + "use_ingroup": true, + "use_never": false, + "use_raid_role": true, + "use_zone": false, + "zone": "Stormwind City", + "zoneIds": "" + }, + "mirror": false, + "regionType": "icon", + "rotate": false, + "rotation": 0, + "selfPoint": "CENTER", + "semver": "1.0.0", + "subRegions": [], + "texture": "Interface\\AddOns\\WeakAuras\\Media\\Textures\\Square_FullWhite", + "textureWrapMode": "CLAMPTOBLACKADDITIVE", + "tocversion": 11307, + "triggers": { + "1": { + "trigger": { + "auranames": [ + "Arcane Intellect" + ], + "check": "event", + "combinePerUnit": true, + "custom": "function(allStates, event, ...)\n return aura_env.eventHandlers[event](allStates, ...)\nend", + "customVariables": "{\n spellId = \"number\",\n}", + "custom_type": "stateupdate", + "debuffType": "HELPFUL", + "duration": "1", + "event": "Cooldown Progress (Spell)", + "events": "OPTIONS GROUP_ROSTER_UPDATE GROUP_ROSTER_UPDATE_DELAYED UNIT_AURA", + "genericShowOn": "showOnCooldown", + "ignoreDisconnected": false, + "names": [], + "realSpellName": 0, + "showClones": true, + "spellIds": [], + "spellName": 0, + "subeventPrefix": "SPELL", + "subeventSuffix": "_CAST_START", + "type": "custom", + "unevent": "auto", + "unit": "group", + "useName": true, + "use_genericShowOn": true, + "use_spellName": true, + "use_track": true + }, + "untrigger": [] + }, + "activeTriggerMode": -10 + }, + "uid": "AqbyydbWK)v", + "url": "https://wago.io/2ZE03KZa7/1", + "useTooltip": true, + "version": 1, + "wagoID": "2ZE03KZa7", + "width": 16, + "xOffset": 0, + "yOffset": 0, + "zoom": 0.25 + } + ], + "d": { + "actions": { + "finish": [], + "init": [], + "start": [] + }, + "align": "RIGHT", + "anchorFrameType": "SCREEN", + "anchorPerUnit": "UNITFRAME", + "anchorPoint": "BOTTOMLEFT", + "animate": false, + "animation": { + "finish": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + }, + "main": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + }, + "start": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + } + }, + "arcLength": 360, + "authorOptions": [], + "backdropColor": [ + 1, + 1, + 1, + 0.5 + ], + "border": false, + "borderBackdrop": "Blizzard Tooltip", + "borderColor": [ + 0, + 0, + 0, + 1 + ], + "borderEdge": "Square Full White", + "borderInset": 1, + "borderOffset": 4, + "borderSize": 2, + "columnSpace": 1, + "conditions": [], + "config": [], + "constantFactor": "RADIUS", + "frameStrata": 1, + "fullCircle": true, + "gridType": "RU", + "gridWidth": 6, + "groupIcon": 134153, + "grow": "GRID", + "id": "RaidBuffMemory", + "information": [], + "internalVersion": 45, + "limit": 5, + "load": { + "class": { + "multi": [] + }, + "size": { + "multi": [] + }, + "spec": { + "multi": [] + }, + "talent": { + "multi": [] + }, + "zoneIds": "" + }, + "radius": 200, + "regionType": "dynamicgroup", + "rotation": 0, + "rowSpace": 1, + "scale": 1, + "selfPoint": "BOTTOMLEFT", + "semver": "1.0.0", + "sort": "none", + "space": 0, + "stagger": 0, + "subRegions": [], + "tocversion": 11307, + "triggers": [ + { + "trigger": { + "debuffType": "HELPFUL", + "event": "Health", + "names": [], + "spellIds": [], + "subeventPrefix": "SPELL", + "subeventSuffix": "_CAST_START", + "type": "aura2", + "unit": "player" + }, + "untrigger": [] + } + ], + "uid": "LWOsqFUB3PR", + "url": "https://wago.io/2ZE03KZa7/1", + "useAnchorPerUnit": true, + "useLimit": false, + "version": 1, + "wagoID": "2ZE03KZa7", + "xOffset": 0, + "yOffset": 0 + }, + "m": "d", + "s": "3.3.0", + "v": 1421, + "wagoID": "2ZE03KZa7" +} \ No newline at end of file diff --git a/WA-WCBHO_Tracker/README.md b/WA-WCBHO_Tracker/README.md new file mode 100644 index 0000000..24a4429 --- /dev/null +++ b/WA-WCBHO_Tracker/README.md @@ -0,0 +1,2 @@ +# WCBHO_Tracker +Shows the online status of "friends" with the note "WCBHO" in their name (). diff --git a/WA-WCBHO_Tracker/WCBHO_Tracker.string b/WA-WCBHO_Tracker/WCBHO_Tracker.string new file mode 100644 index 0000000..548db10 --- /dev/null +++ b/WA-WCBHO_Tracker/WCBHO_Tracker.string @@ -0,0 +1 @@ +!WA:2!LMXwSXXv1mDPQHTLwhN2K4KMMPljU2j2BJDOwOi5g8yVBSB9lMDDStBH13zM7UZKm7md3zw)inbPUkcCv)av)nsTA)IpOiyfvGecHukiHeVUYQarOYlZ7wjqk)HeFW5EVZo7RXjbXinENzoN7599CpNJLUuV(QNl95sF2El3RrVgB9SBJi6ZIDkfyEZdTRMlXatuq6x1G46PMZ12YGSXcfl6Jdo5H3UeXTI3m6Uoh5bo4Buh5OB6sw01YjqBYmZNpJATIvSTN0IOBJxv13dPJtqq6bwUo(JP6hGibjvSCScsQve(X3mz1aIvPsyI)r7Ne(4xQMbwRsXI530dtMoZSlMDPzvcGxurviOrR67HTTNXWp5U(v0WRHDcYbyBTr9ctorU8fYLFc18kvaMO5zJ2etIqBrcgqtn3IzMDwv(x0MgJSdmvDqLX(j3UItOiKSUURDLYo54AWDa9dtCq2xcKtqvE5Qv8XZAv2cwjY2QKJYSzYMNaQhBTs1a(PIlX05Kk2UiJlPfGSbUDi1YvSdSssUMRdguGhqv3g57Fi6GjvaLsx8G11WShQwIyzWmbPuNAhTq)XKU2UKxqssA6l83(HF)v33(aRRJvzuaZARdmjXoOkbGpzbpUnpPMWFUAnXVzmkH9oqUVqfeblNfCvYlBAfGRr4IlJB3YytWyyPZD0HRkhisju8DjbkoGKRrqgwv8V5JuxaosOsSTqyasng9rYspi983cJ8X5ci8WRhAhdWbYaxG5oj(yiqYWVkdhgVPNxPmYYHVq6Z)q0lq)m0jGhF0o)svIBaNos7cuaS7obzHOmxIM6etnZs5cfSzCGGwPBjErec)GQ2m)2dxlWvFnH3C)dDMuwg7S8KktVqH8q06vXKTzg)LTmcmF46fjqWbOcOauI7iI4ZY(etI1YnPAMmZdYZ6IqLrRyzu3T0AlpdkR7lmiwdKVIwLsQa2Z1vMAHLNNSPqsgkrnM2Bj8t1TCk6se2UKB7JTlY3vrYVWISyRE1p6wxUgSFICvUu9e1SGfNZTcrh)K7Z7ugw(Sy984nckiOtHrs74gG9lG00i41SGqet6OjR3cMEN6u6JiF9RlFQrsdXdOWhlbQq4JCk4nqSuNTIwiEHYOnoaDjj6dr3)oCbvTHpsHjRMEY7nzeVrppxRkOZJNsaxvxhCDltqEvxo8bVtedvANiv1qndjLGCj(Oawyh2uPORtGxpzjwxt(ZwbzWCPY5ZFlU4k8kxwApuxMvPl19zwBhitqbw2dqcSlV62rpQmh2VeDa2oz6PFa6z4pme)VdZ(BSksiB4ga6z8E67IBTH26DY7hVJjDmcl5jyA8gk2fajIcYHXWotRY4cEeSUfBZrcsaGwfcwjRnkqyPYl(I3aZWslwec7FLjHvB5usbrELLMz4MVnCoEKaFzM0zGTA7ryaxVfVPWEEpuRiPSH6txS(CgxeJuUYIwJCUAq6DSyF7nFeibwGTLdSZFP8ZoZ8zA1nVIun9k(bUL57dE7IvC4Nrnq60PhmPmCzvuMzVkGDwlnKFjaN2YFbhg5KdmXoCCyxemykCKtDD9Szp7zZcxcSUojfhhSJrYwWZaO0aPg(uZD(tLl1qYxehKhm3dmO8WDYUgA6GjbsSJVjYWD9lleEyd)G3xB45bPE90utxYJja0NCx4qcxwYgDUTszc4v6J957N2ZFLEqnb(0drpCDXJfmTmWQSadd6tLK(K0Jtpk9y0xFJe)NilhY2ohtW9hsMFY6qYr2Yjla74aTywl)G05mDxx8Q)acW2UWbxYoURlpEtdchcOyYwWxhzO2PbG18vklm0r0s2WnYRiizroiy9DUyXBZazCv2Cghd8gdyny0AbpVyHcZP8xCCzhlBzeqPw)(5H6xmgif)uJud2Eqb7kYE8YHRIfv)5aH5vBdn2LVjx3divWd1fqDtKtjSXEc3J4wIG99zNgbiLIf9yPNQBexdzxbZnMDbkaYuBhpilM5HXCKMnonKDwhfmWRgQsSKmd1WQWlLzEi9x0xy5cVXqYPgo1GDtygqGUTGA34Wpjkch2BDJd)GRiC4su38I7ihVD)xjOkTbsDk)lWDHWVW(XuW9iXiSn2mc0aItBh(nIERXE9g)YcF5cTmFlnylL9qwe)M7vAlOvSVpmyO9KaYppF)XWYNBSZEwz5HhgYNu2DnSSBXI8CsOIqMyigv2ekjOdk2EeuhaJYQ1flhNRRXLeJtg4B0NiPOUAFVdV8efclGsDIjFXmQfwAXPMiFMgjqyL7vNZGk8uqQ6My9RczsocTp6bO9EhbExcrSybA(E(ITjHraqunboqjmQo0L3(hB4JB)RT44s5uPSgMecOf9oLMRRn85BqprsidyrOwZxN(6EFquQTwttXsc2vEkiLb)7pFZK4mglY2kFg5rAp9WYy0vNaq0pDoDKtgUfeYKeVfmvZmtXr8X5CUZJJIC0D45kIS9fUUVIgZBuXN(MAcpcZlW9gNGxJ4v4k)A4rroB6Dae)58IEJMZ1aNW7yXCcKxJJLFd6t)YE9aLgnHXvahl2aBmNLJjDCOTGT6tJxFJAcw18BJS9mrSKxvbhhYQKzGaSscXVxmHaLSGa59Ir(KgP947TiWPngy7a0GTQSCaG1pcx5t3alMzzhGDo(qrn8c59oqd2NVXN5L2fHK52Sx5IIz1gTX07ZXAmrJ3ncwIobH1jZcvcAsBUyFJ9sSxj83lhk)Re(7L7wrwjonzLbBqG4GEzHIQXBmCZeQCHxABUznVydPqLNo3L6DtPE3qsyYNibxx5pVQaDUA8LJrniWzZLGBn4gb3KrH3HBn4gnABQrZWEy3dWsUH26)r6XuiOrqHoTrcnOqvOIODzgHCMORINcRJ2KQSvV0Vkp(I(wjOVDcE7JSoj)2jOVBnUDyXkWwb67ir)6je6oR9YVbSZVU37()NEsgPdNXaKrHu3KrgCqgn6eyjgWsCGADbuJbuJde1fqedicakSkFnj63mb9Bz2D7YkxZ1TSK3tgZww9rIkLUUl74rrpB1MEb1zEPfMp)eZgBxiEI2ecNvG5EuToVOEE3q8wKuDGtliH1YUIOw2eEp7DVqFdOrKYi7w6iH2)lDi6bRh2otb4ERJ71hRnLcbTqJM9i49mDbSZ(DeFwA7iehfAn2l1DBDns151dhbHw1CuiE9F3wm0BIJb)ur1I2UUeVdYrS9YYPBDhXYJAQ512rm)HWgbKUfholfRvXnP7VMireZsQm)cZNXB07PIh6bleycrvMU2gsENmgtz3EbVNog06O3r6bjqrwmu86TfJudxFn(3c72Nn9OqIX7r3IGKNZ1XvEoSHvLYEN(EQkTiBTYTMnnD0Uirlr)7W)EJ5nqX7ejmSuLkZ76Gd90Tm0ZAZm)8Wj1Sj0iCfRbcau)YQEdF3e3USMsn5gBwBho0nhAOK2vOongke9KBDC6VmH3tfdpAPpA6Rs)rKW55q)X8Gs6FHEs6pHUf9N(AXgC3XqomP)mj6pNUF6VGsdTPTjyy67b7UIJqDm(HvHesVFS7iIzksJt)v8H)q)10Rq)JRs)nGRR)7TWkMiZhqX0Fl93r)90)WERHntjr)bXAfBBEs0)uF0)SK3X3lQfoTMToc4tewC2Y72I3IXKzoO)Jh)JdA60x4V)PzxJ19dclWhYTamdrl6g9FcY171q2OF04B1hN7vJgA3jIrCBFYr3hs4npqR(IpACUKWebMOasu3sYhUQMjMvtXXuxNLX6J13EmCYOndL0ny3RUlF8mk2WzzSkmhDIPMQZsirBywTXEK(OpOuSfH2YSHutMYYW7GTnz3czCciqjTTnIsgdvMyP8lShtNIfQ0CiL8Loz0qkVBZhTZetN8(z2IMBZhdQpBOlQZCXPZtxrtzH85xyU6Cwpn3apU3NCVpyUfw2)9q6ACg(Dy)pgkXpyQ50t3Jbn1MZJ1FPd22K04COtQ2CcUHsSLHb2rD(mxkJQ3PVpM)ydHIoBc6C053dLODXaEXK(ojGU)yd2hsE9Wq3gjPFI(32WTGO)YvH(6oC8TrDw6JMSENhItV0v6N(MJr7jr11cBnTAJohv5durIiAV2)O9FBPdTyIZM(5Qc1O5HjbBsFhyXzP9m0(UT0JNAb1uUEPgFCnERV(NgaKa(UcZtiGaey7fiLiwLlJiHGVT0rJasMQc7aEYTLomNBWHMtFHA9YUEma3J41dCAB6pv6MhRogN)DrNSy71DDn0a14QyJvJO30x47Dm46O)7esm6DBPJhpbQN3eldcob74FBPt0KajGCxFx213PbbIZcCBP(oDmuD7PSiy55qvSJxMjiWH1KvWvelgRjlAN4aM7MlaIxw3YXqEsRGnfuKHrdAhI3ozSxFthh5SUqLqbr8bmX)R3IF1GF0Lt6DM7D8iBMPfUgM4A27AV)k)3p \ No newline at end of file diff --git a/WA-WCBHO_Tracker/WCBHO_Tracker.table b/WA-WCBHO_Tracker/WCBHO_Tracker.table new file mode 100644 index 0000000..7d4fb97 --- /dev/null +++ b/WA-WCBHO_Tracker/WCBHO_Tracker.table @@ -0,0 +1,665 @@ +{ + "c": [ + { + "actions": { + "finish": [], + "init": { + "custom": "aura_env.lastUpdate = 0", + "do_custom": true + }, + "start": [] + }, + "alpha": 1, + "anchorFrameType": "SCREEN", + "anchorPoint": "CENTER", + "animation": { + "finish": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + }, + "main": { + "alpha": 0, + "colorA": 1, + "colorB": 1, + "colorFunc": "function(progress, r1, g1, b1, a1, r2, g2, b2, a2)\n return r1 + (progress * (r2 - r1)), g1 + (progress * (g2 - g1)), b1 + (progress * (b2 - b1)), a1 + (progress * (a2 - a1))\nend\n", + "colorG": 1, + "colorR": 1, + "colorType": "custom", + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "preset": "alphaPulse", + "rotate": 0, + "scalex": 1, + "scaley": 1, + "type": "none", + "use_color": false, + "x": 0, + "y": 0 + }, + "start": { + "alpha": 0, + "alphaFunc": "function(progress, start, delta)\n return start + (progress * delta)\nend\n", + "alphaType": "straight", + "colorA": 1, + "colorB": 1, + "colorFunc": "function(progress, r1, g1, b1, a1, r2, g2, b2, a2)\n return WeakAuras.GetHSVTransition(progress, r1, g1, b1, a1, r2, g2, b2, a2)\nend\n", + "colorG": 1, + "colorR": 1, + "colorType": "straightHSV", + "duration": "5", + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "easeOut", + "preset": "starShakeDecay", + "rotate": 0, + "scalex": 1, + "scaley": 1, + "translateFunc": "function(progress, startX, startY, deltaX, deltaY)\n return startX + (progress * deltaX), startY + (progress * deltaY)\nend\n", + "translateType": "straightTranslate", + "type": "none", + "use_alpha": false, + "use_color": true, + "use_translate": false, + "x": 0, + "y": 0 + } + }, + "authorOptions": [], + "automaticWidth": "Auto", + "backgroundColor": [ + 0, + 0, + 0, + 0 + ], + "barColor": [ + 0, + 0, + 0, + 0 + ], + "color": [ + 1, + 1, + 1, + 1 + ], + "conditions": [ + { + "changes": [ + { + "property": "alpha", + "value": 0.5 + } + ], + "check": { + "trigger": 1, + "value": 0, + "variable": "isOnline" + } + }, + { + "changes": [ + { + "property": "sub.4.text_color", + "value": [ + 1, + 0, + 0.035294117647059, + 1 + ] + } + ], + "check": { + "checks": [ + { + "op": "==", + "trigger": 1, + "value": "Orgrimmar", + "variable": "area" + }, + { + "op": "==", + "trigger": 1, + "value": "Durotar", + "variable": "area" + } + ], + "op": "==", + "trigger": -2, + "variable": "OR" + } + }, + { + "changes": [ + { + "property": "sub.4.text_color", + "value": [ + 0.10588235294118, + 1, + 0, + 1 + ] + } + ], + "check": { + "op": "==", + "trigger": 1, + "value": "Felwood", + "variable": "area" + }, + "linked": true + }, + { + "changes": [ + { + "property": "sub.4.text_color", + "value": [ + 1, + 0.77254901960784, + 0, + 1 + ] + } + ], + "check": { + "op": "==", + "trigger": 1, + "value": "The Barrens", + "variable": "area" + }, + "linked": true + }, + { + "changes": [ + { + "property": "sub.4.text_color", + "value": [ + 1, + 1, + 1, + 1 + ] + } + ], + "check": { + "checks": [ + { + "op": "==", + "trigger": 1, + "value": "Dire Maul", + "variable": "area" + }, + { + "op": "==", + "trigger": 1, + "value": "Feralas", + "variable": "area" + } + ], + "op": "==", + "trigger": -2, + "variable": "OR" + } + }, + { + "changes": [ + { + "property": "sub.4.text_color", + "value": [ + 0, + 0.98823529411765, + 1, + 1 + ] + } + ], + "check": { + "checks": [ + { + "op": "==", + "trigger": 1, + "value": "Stormwind City", + "variable": "area" + }, + { + "op": "==", + "trigger": 1, + "value": "Elwynn Forest", + "variable": "area" + } + ], + "trigger": -2, + "variable": "OR" + } + } + ], + "config": [], + "customText": "function(...)\n if aura_env.state.isOnline then\n return \"|cFF00FFFFOnline|r\"\n end\n return date(\"-%M:%S\", GetTime() - aura_env.state.lastSeen)\nend", + "customTextUpdate": "event", + "desaturate": false, + "displayText": "%c1 || %1.area || %1.guid || %1.notes", + "displayText_format_.area_format": "none", + "displayText_format_1.area_abbreviate": false, + "displayText_format_1.area_abbreviate_max": 8, + "displayText_format_1.area_format": "none", + "displayText_format_1.area_time_dynamic": false, + "displayText_format_1.area_time_precision": 1, + "displayText_format_1.guid_abbreviate": false, + "displayText_format_1.guid_abbreviate_max": 8, + "displayText_format_1.guid_color": "class", + "displayText_format_1.guid_format": "guid", + "displayText_format_1.guid_realm_name": "never", + "displayText_format_1.lastSeen_decimal_precision": 1, + "displayText_format_1.lastSeen_format": "none", + "displayText_format_1.lastSeen_gcd_cast": false, + "displayText_format_1.lastSeen_gcd_channel": false, + "displayText_format_1.lastSeen_gcd_gcd": true, + "displayText_format_1.lastSeen_gcd_hide_zero": false, + "displayText_format_1.lastSeen_time_dynamic": false, + "displayText_format_1.lastSeen_time_precision": 1, + "displayText_format_1.name_format": "none", + "displayText_format_1.notes_abbreviate": false, + "displayText_format_1.notes_abbreviate_max": 8, + "displayText_format_1.notes_format": "none", + "displayText_format_c1_format": "none", + "displayText_format_n_format": "none", + "displayText_format_p_format": "timed", + "displayText_format_p_time_dynamic": false, + "displayText_format_p_time_precision": 1, + "fixedWidth": 200, + "font": "Friz Quadrata TT", + "fontSize": 12, + "frameStrata": 1, + "height": 13, + "icon": false, + "iconSource": -1, + "icon_color": [ + 1, + 1, + 1, + 1 + ], + "icon_side": "RIGHT", + "id": "WCBHO_Tracker_Entry", + "information": [], + "internalVersion": 45, + "inverse": false, + "justify": "LEFT", + "load": { + "class": { + "multi": [] + }, + "namerealm": "Mesg", + "size": { + "multi": [] + }, + "spec": { + "multi": [] + }, + "talent": { + "multi": [] + }, + "use_namerealm": true, + "zoneIds": "" + }, + "orientation": "HORIZONTAL", + "outline": "OUTLINE", + "regionType": "aurabar", + "selfPoint": "BOTTOM", + "semver": "1.0.0", + "shadowColor": [ + 0, + 0, + 0, + 1 + ], + "shadowXOffset": 1, + "shadowYOffset": -1, + "spark": false, + "sparkBlendMode": "ADD", + "sparkColor": [ + 1, + 1, + 1, + 1 + ], + "sparkHeight": 30, + "sparkHidden": "NEVER", + "sparkOffsetX": 0, + "sparkOffsetY": 0, + "sparkRotation": 0, + "sparkRotationMode": "AUTO", + "sparkTexture": "Interface\\CastingBar\\UI-CastingBar-Spark", + "sparkWidth": 10, + "subRegions": [ + { + "type": "aurabar_bar" + }, + { + "anchorXOffset": 0, + "anchorYOffset": 0, + "rotateText": "NONE", + "text_anchorPoint": "INNER_LEFT", + "text_automaticWidth": "Auto", + "text_color": [ + 1, + 0, + 0, + 1 + ], + "text_fixedWidth": 64, + "text_font": "Fira Mono Medium", + "text_fontSize": 11, + "text_fontType": "None", + "text_justify": "CENTER", + "text_selfPoint": "LEFT", + "text_shadowColor": [ + 0, + 0, + 0, + 1 + ], + "text_shadowXOffset": 1, + "text_shadowYOffset": -1, + "text_text": "%c1", + "text_text_format_1.lastSeen_decimal_precision": 0, + "text_text_format_1.lastSeen_format": "timed", + "text_text_format_1.lastSeen_round_type": "floor", + "text_text_format_1.lastSeen_time_dynamic_threshold": 0, + "text_text_format_1.lastSeen_time_format": 0, + "text_text_format_1.lastSeen_time_precision": 1, + "text_text_format_c1_format": "none", + "text_text_format_n_decimal_precision": 1, + "text_text_format_n_format": "none", + "text_text_format_n_time_precision": 1, + "text_visible": true, + "text_wordWrap": "WordWrap", + "type": "subtext" + }, + { + "anchorXOffset": 0, + "anchorYOffset": 0, + "rotateText": "NONE", + "text_anchorPoint": "INNER_LEFT", + "text_anchorXOffset": 50, + "text_automaticWidth": "Auto", + "text_color": [ + 1, + 1, + 1, + 1 + ], + "text_fixedWidth": 64, + "text_font": "Friz Quadrata TT", + "text_fontSize": 12, + "text_fontType": "None", + "text_justify": "CENTER", + "text_selfPoint": "LEFT", + "text_shadowColor": [ + 0, + 0, + 0, + 1 + ], + "text_shadowXOffset": 1, + "text_shadowYOffset": -1, + "text_text": "%1.guid", + "text_text_format_1.area_abbreviate": true, + "text_text_format_1.area_abbreviate_max": 30, + "text_text_format_1.area_format": "none", + "text_text_format_1.guid_abbreviate": false, + "text_text_format_1.guid_abbreviate_max": 8, + "text_text_format_1.guid_color": "class", + "text_text_format_1.guid_format": "guid", + "text_text_format_1.guid_realm_name": "never", + "text_text_format_n_format": "none", + "text_visible": true, + "text_wordWrap": "WordWrap", + "type": "subtext" + }, + { + "anchorXOffset": 0, + "anchorYOffset": 0, + "rotateText": "NONE", + "text_anchorPoint": "INNER_LEFT", + "text_anchorXOffset": 145, + "text_automaticWidth": "Auto", + "text_color": [ + 0.75686274509804, + 0.75686274509804, + 0.75686274509804, + 1 + ], + "text_fixedWidth": 64, + "text_font": "Friz Quadrata TT", + "text_fontSize": 12, + "text_fontType": "None", + "text_justify": "CENTER", + "text_selfPoint": "LEFT", + "text_shadowColor": [ + 0, + 0, + 0, + 1 + ], + "text_shadowXOffset": 1, + "text_shadowYOffset": -1, + "text_text": "%1.area", + "text_text_format_1.area_abbreviate": true, + "text_text_format_1.area_abbreviate_max": 30, + "text_text_format_1.area_format": "none", + "text_text_format_n_format": "none", + "text_visible": true, + "text_wordWrap": "WordWrap", + "type": "subtext" + }, + { + "anchorXOffset": 0, + "anchorYOffset": 0, + "rotateText": "NONE", + "text_anchorPoint": "INNER_LEFT", + "text_anchorXOffset": 280, + "text_automaticWidth": "Auto", + "text_color": [ + 1, + 1, + 1, + 1 + ], + "text_fixedWidth": 64, + "text_font": "Friz Quadrata TT", + "text_fontSize": 12, + "text_fontType": "None", + "text_justify": "CENTER", + "text_selfPoint": "LEFT", + "text_shadowColor": [ + 0, + 0, + 0, + 1 + ], + "text_shadowXOffset": 1, + "text_shadowYOffset": -1, + "text_text": "%1.notes", + "text_text_format_1.area_abbreviate": true, + "text_text_format_1.area_abbreviate_max": 30, + "text_text_format_1.area_format": "none", + "text_text_format_1.notes_format": "none", + "text_text_format_n_format": "none", + "text_visible": true, + "text_wordWrap": "WordWrap", + "type": "subtext" + } + ], + "texture": "Flat", + "tocversion": 11307, + "triggers": { + "1": { + "trigger": { + "check": "event", + "custom": "function(allStates, event, ...)\n C_FriendList.ShowFriends()\n local now = GetTime()\n for i = 1, C_FriendList.GetNumOnlineFriends() do\n local friend = C_FriendList.GetFriendInfoByIndex(i)\n if friend.notes ~= nil and friend.notes:find(\"WCBHO\") then\n allStates[friend.guid] = {\n show = true,\n changed = true,\n progressType = \"static\",\n value = 1,\n total = 1,\n index = table.concat({friend.area, friend.className, friend.name}, \"-\"),\n name = friend.name,\n guid = friend.guid,\n area = friend.area,\n notes = friend.notes:gsub(\"%s?WCBHO%s?\", \"\", 1),\n lastSeen = now,\n }\n end\n end\n for guid, state in pairs(allStates) do\n state.show = state.lastSeen > now - 3600 -- remove offline after an hour\n state.changed = true\n state.isOnline = state.lastSeen == now\n end\n return true\nend", + "customVariables": "{\n guid = \"string\",\n area = \"string\",\n notes = \"string\",\n lastSeen = \"number\",\n isOnline = \"bool\",\n}", + "custom_hide": "timed", + "custom_type": "stateupdate", + "debuffType": "HELPFUL", + "event": "Health", + "events": "WA_WCBHO_TRACKER_UPDATE", + "names": [], + "spellIds": [], + "subeventPrefix": "SPELL", + "subeventSuffix": "_CAST_START", + "type": "custom", + "unit": "player" + }, + "untrigger": [] + }, + "2": { + "trigger": { + "check": "update", + "custom": "function()\n local time = GetTime()\n if time > aura_env.lastUpdate + 1 then\n WeakAuras.ScanEvents(\"WA_WCBHO_TRACKER_UPDATE\")\n aura_env.lastUpdate = time\n return true\n end\n return false\nend", + "custom_type": "status", + "debuffType": "HELPFUL", + "type": "custom", + "unit": "player" + }, + "untrigger": [] + }, + "activeTriggerMode": 1, + "disjunctive": "any" + }, + "uid": "MdGeaBjPi13", + "url": "https://wago.io/0oPnWDk7l/1", + "useAdjustededMax": false, + "useAdjustededMin": false, + "version": 1, + "wagoID": "0oPnWDk7l", + "width": 400, + "wordWrap": "WordWrap", + "xOffset": 0, + "yOffset": 0, + "zoom": 0 + } + ], + "d": { + "actions": { + "finish": [], + "init": [], + "start": [] + }, + "align": "LEFT", + "anchorFrameType": "SCREEN", + "anchorPoint": "CENTER", + "animate": true, + "animation": { + "finish": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + }, + "main": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + }, + "start": { + "duration_type": "seconds", + "easeStrength": 3, + "easeType": "none", + "type": "none" + } + }, + "arcLength": 360, + "authorOptions": [], + "backdropColor": [ + 0, + 0, + 0, + 0.74276608228684 + ], + "border": true, + "borderBackdrop": "Solid", + "borderColor": [ + 0, + 0, + 0, + 1 + ], + "borderEdge": "Square Full White", + "borderInset": 0, + "borderOffset": 2, + "borderSize": 1, + "columnSpace": 1, + "conditions": [], + "config": [], + "constantFactor": "RADIUS", + "frameStrata": 1, + "fullCircle": true, + "gridType": "RD", + "gridWidth": 5, + "groupIcon": 136075, + "grow": "DOWN", + "id": "WCBHO_Tracker", + "information": [], + "internalVersion": 45, + "limit": 5, + "load": { + "class": { + "multi": [] + }, + "size": { + "multi": [] + }, + "spec": { + "multi": [] + }, + "talent": { + "multi": [] + }, + "zoneIds": "" + }, + "radius": 200, + "regionType": "dynamicgroup", + "rotation": 0, + "rowSpace": 1, + "scale": 1, + "selfPoint": "TOPLEFT", + "semver": "1.0.0", + "sort": "none", + "space": 1, + "stagger": 0, + "subRegions": [], + "tocversion": 11307, + "triggers": [ + { + "trigger": { + "debuffType": "HELPFUL", + "event": "Health", + "names": [], + "spellIds": [], + "subeventPrefix": "SPELL", + "subeventSuffix": "_CAST_START", + "type": "aura2", + "unit": "player" + }, + "untrigger": [] + } + ], + "uid": "ogvWIaFoJ)e", + "url": "https://wago.io/0oPnWDk7l/1", + "useLimit": false, + "version": 1, + "wagoID": "0oPnWDk7l", + "xOffset": 370, + "yOffset": -50 + }, + "m": "d", + "s": "3.3.0", + "v": 1421, + "wagoID": "0oPnWDk7l" +} \ No newline at end of file diff --git a/WA-WCBHO_Tracker/wcbho_tracer.png b/WA-WCBHO_Tracker/wcbho_tracer.png new file mode 100644 index 0000000..32facce Binary files /dev/null and b/WA-WCBHO_Tracker/wcbho_tracer.png differ