Add coloring to riochecker
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
-- CHAT_MSG_SYSTEM
|
||||
function(e, msg)
|
||||
-- if e == "OPTIONS" then
|
||||
-- WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ")
|
||||
-- WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "-> Return to Karazhan: Lower / isDPS / +++5 / 8m29s / 59.1 ")
|
||||
-- WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "-> Cathedral of Eternal Night / isDPS / +++2 / 9m41s / 23.4 ")
|
||||
-- WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "-> Seat of the Triumvirate / isDPS / +++14 / 14m54s / 165.5 ")
|
||||
-- WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "-> Return to Karazhan: Upper / isDPS / +++11 / 10m23s / 128.0 ")
|
||||
-- WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ")
|
||||
-- end
|
||||
if e == "OPTIONS" then
|
||||
WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ")
|
||||
WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "-> Return to Karazhan: Lower / isDPS / +++5 / 8m29s / 59.1 ")
|
||||
WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "-> Cathedral of Eternal Night / isDPS / +++2 / 9m41s / 23.4 ")
|
||||
WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "-> Seat of the Triumvirate / isDPS / +++14 / 14m54s / 165.5 ")
|
||||
WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "-> Return to Karazhan: Upper / isDPS / +++11 / 10m23s / 128.0 ")
|
||||
WeakAuras.ScanEvents("CHAT_MSG_SYSTEM", "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ")
|
||||
end
|
||||
if not msg then return end
|
||||
if string.byte(msg, 1) + string.byte(msg, 6) == 77 then
|
||||
aura_env.reading = not aura_env.reading
|
||||
|
||||
1
FreshShit/RIOChecker/export
Normal file
1
FreshShit/RIOChecker/export
Normal file
@@ -0,0 +1 @@
|
||||
!TV1dtTnUs8plxA7mjhbtsiqlDA7CuU0wOqGbhoMB4vNO4OK4IJDgj7uOT4p7VDLK)BSnM3rVoZBAHAKTK(P9FA3vXBmABmWqFHH(e8xOPRVNTLd1qFWho8GpE6fdo(W(9m0N664PB9vQr)27AO75AUIY4wUog9FERTB1YqN47n3LD6sp4HCaipapl(sBYTdO3a38mtdDtFUN7c59t9DmXXwVrWrbJK)WOE(mNGreFgzi1zLMcbDpMLZSGJOoavE7PtNYPEg972bwwgDgaYGBxcuSNayo1E6zUwoqZd61FqVZH1112Lb0u)2IF7iUUT4Ax8Qxss7ILtiEaA(Q)cmM7cINL5Lwt8MBOVpCp8uZqgvN7ryEso2YXcBPpXDOeqJ3gcncKIRwqdg96GrxadUpzbTEnKhPSAGKiAmmkzcYZ4aNsS50e9n132(ekNtMjb6B3LOZ0ImS7A1aj8rBU5M)HPnHZdgbYdg9auMqzYoMArTNemsiNGb4rgBtFLJ)IXuwZGrIH(MuJCmqFxVeLYzg(BsqkPwhbHgRQbScgDc5AGd4(mA8AtCYcpX(lKBH)oNScgN3CCkeugkxXGrUtdgrDagMY)TGr)vVZ)7GrhEYzNE(G97p43sTM)HhyPuidgoWqAjnjh(Z3advrFT02Tdm7zjVzC0nbJURjUMbJEpJEBjW0Uz4JML5EjyTJr6Y5wE0sPO2XuuwCALIIOoLHtgsQLw3UjyUx88yOERTF5u0UDtiJ60obm7TDmmN5ZwAtFasPwA70mxE7ugXz2ddPojrsRJKSEisNxKaG2ATskDS(6xjSjzLtjXpLXUWKtScTBHx7iUUT4AxX1D2bV(CX19G)PalLv(scJSiy0kcUOH7tsnIqxTctFajhl7VZvUzdh3HoEu2sxBWnO0puOlBbUnwxcz7AsSvBFczLyr2SOwX6SKe(9UnnZTkhoVPq6ymJyEn1lKsuYvL25BsdbCZLKoYGXuKfSImyEsUE10sP7M4UomH)ynnsD8Qeb4kcSRS(KWvNtXigB(i4YR68Pqg1QzvxH7Qc8WukEyqi5I7mK0A)4qAY1Qe7fbwfAoiItFqKTz(KH01)vXuo87N(FFnbs(bUIDcxXIGCktM7HaY6kBQntkSbmAemAlO3eGIMhRpQJkWW)AqpTcuxWQSKyX41JfEnk3qxWoxD9NkHJTbVk1x1mw6adVzmJ1OYA(qNyMXoXIhemNI8lsY3NOQ3XL2Rx5(tZ2hYRPDEsqhGO3SgfZqab(7G6RTqLbdC0gcY63XL)OucL7sLz3hP3EmDf1(hzwDrRXVYO7xz09Rm6QygDICneP1TJiRo8IO1Ey6DB)RC5(PKlxOVS)X5XLhqpE5Wvi6)CZF7Hqw)GYDlIe(xjVTIwT))mNTiU9x5R9OMVwWrOtehxGYUe23SpiV56qMqt0o42Rjkxg53L8d7tIuzGODYFs8kdQWbKeWSzsMk1qhr(zHrvs0bZ1o)oSLjjMtpEwfGfhpLqSobPH1tYms19XK5GLqJNMuZzaPj5CgqgsppRkR7znuSs2r4q)sARlKyBkjPMQfUPe(Mkqko2m(jDlqJt9wq9iIyQ1)MmIyHB2ho0Yzc9gXebryZYgPNlp(ZroIMX1TX9h5jKkLsIxlPxn5TvDYxN8WgEUsldbbOjKvVCbXZCE9ApBYgpTwdyJh6iSvE(EkYZSldGWJorCcv0hhRSdRNinQ6XStfegr7wf4xTScc)jHeuOn0KeD9AF3C60N1QZnr)FY3z1AMLP0ycprD2zN17AwCxvMCse0jjuJtSkpirtbblUpf2XQ9kRPWIIBLuzfAi9dwvzhzSEFQkEgvLKKZvvj76rrvPYxlRQYUIIMkQQc9qNrg8Sn3UfeA5zB(IexB3k8p1cPgLprr7mogfpt6D8HT9PrPPaNdA3LZmIOoHgw0i)XiJW8AvOM8htSPISv(JsgO51Qio5pMy)dXEiL8CK7WIuqyeKJYxqKmuB2WyZj85vkMqiaIqtqAZoMGHW3kwphlzsRStXOyaUABvRrLYDugKSOCfCHT3SC6oKUh7c0fXj5hK0cyQ0bURZ(nvWLJyiYLIKAKPLfjBy4PbY9GyrZtrNPNO89cx8mtyU(QxRWqDF5E1srzhvPJmMMMYjN3ecDWxSmdZRGZmf6wxjjrKG0tyOdBEcjz05azrVY7Io8JL80psaY9Cpakx9ebuqE6Qd3gMQt9vnYq(H3uYRypL5nGdAG(FCqluLhZy2lcLZyUMuopz9peF6uLWz9SH4fZ(l4ZsjaYREbkqGeJF55IMmYMmZlyrrMn4UnFt9RcUBRpTrJTkRH2gnEATCpd71QS9vWpJ7pUUKGa0FgFdm8qTAnEqteM2tlCEroPtorfZxRSfCTG8IzgkVkDQrUZtotLeU0jUM4xmtUkP10tTe17PJ)CyI)AWzrQFVA8cCMjK5L7ebnwV6jst24TzkAOAovk8GRxjH5LyCO6nYh5uik3GYDzEc)cnLsGiN5PQbPKUFIoyCWOTy(v5S0hH1b0ulhl(Crnbb3bkSzZOmUScKge9artrLlfwIqGof0boE6(tNADJH(Wd2xFWq9b7F(GWbnCU1eSwNaDewYwaPG(vm0BBOlMQH(bZjqed1g(ympJrfyQFwVJpoEjrw7GpS)GHNO)(H6)T(GENe7UQov6xjH8b1(OHiwyrNE2GdpTVETImfIewWHOio9qQGxVwMvty3UP4to5F5FZBF2dGKFtWOZdducPd8ri42xNtCEzWOJD)cgTElqAX)ZZ0fT2yJn2r04fl6Shx0AN90A)yqfhqaX)egUfhFXz9Gt94G303A2CV1jJoIg7TOBBjz0zBTUpgKHofT7CNQEJEdyw(lwzXeVXHS0q7UIwT7UyNUsQO9U7OTZpqDYflxMNoPDB5Q3ArNTvesNxGVVN)HeYpB75uE)IsJuKIq6KixBGQ4lJVfo1Sm6EB5hO56DSBdPJGN)8I8aKB9mkiL16j34mRp)Yd6uAnsUwmNuPQwiu5KOw1(CUlwzuv2kp25QNKptghJf1YPxBrHZYxsTTpCIQ4CfXe4q0I0wVrHzKbMuHu8DunuHDWdrOWXhl5vDzfScXJOJHqxYYX9d9o(S3DXXYbfhYddj2VtUHb5EepFGM850HYAeapbcwdTLgym3GGUotSKLOBrrafRYyiNGXN4orSk4te8ZBZYxrcaSAGZLJ2odhLx060b7d1ax0)Wbdbo599guPmaKXStmRmXR5U(mtAJC2(l75E9aKASIa9QcuUAZeRR5E3yXrFJEe2mQh4yQYZ8q(zIfRIZvLAB0hktCrvhn91xNeNb(EOOu1STCcvOmUtdMo(AZGCYu7uRxtZCoEOMrAAssbdyC5hoemlpVM8TI1m1Y0qTboVDMQ)8bkXglo98n1ZXEflo)plSAwH14UZTYsAFfDGCyITeYsJN4yo3LLPK6TCKzz8xHFna6SRH(Nbc0Aka1X9EhyU(fx2KlzKLg6xg1Yc4JZp80dMtnVg3yDty183cYAMbcdypeKnnU0Qf(D4tLEu0p48E96JPxFdDISC873b)Yh4JWA2T3UNw38DTmNHZ1AH0PqIk0xTb0Xf)(ne61qjp5u447GZrGhxqSCQ(OJY1VAJ3tOKox81wq5cf6AQ1SO2H(Te3B7seFTmaN3MIVPg(2EwH6qX7QBTNYXVMgzEON8BWHH(7GeYGdh464IhrycKIMykg6D0AVR22g6RarF3oOI34)(d
|
||||
@@ -3,6 +3,117 @@ aura_env.reading = false
|
||||
aura_env.fullMessage = {}
|
||||
aura_env.displayString = ""
|
||||
|
||||
---@class ScoreColorer
|
||||
---@field colors table<number, Color>
|
||||
---@field breakpoints table<number>
|
||||
aura_env.ScoreColorer = {
|
||||
--- Make sure colors and breakpoints always have the same number of entries! VERY IMPORTANT!
|
||||
---@type table<number, Color>
|
||||
colors = {
|
||||
{ r = 0.62, g = 0.62, b = 0.62 }, -- Grey
|
||||
{ r = 1, g = 1, b = 1 }, -- White
|
||||
{ r = 0.12, g = 1, b = 0 }, -- Green
|
||||
{ r = 0, g = 0.44, b = 0.87 }, -- Blue
|
||||
{ r = 0.64, g = 0.21, b = 0.93 }, -- Purple
|
||||
{ r = 1, g = 0.5, b = 0 }, -- Orange
|
||||
{ r = 1, g = 0.2, b = 0.23 },
|
||||
{ r = 0, g = 0.8, b = 1.0 }, -- Blizzard Blue
|
||||
},
|
||||
breakpoints = { 0, 100, 200, 300, 400, 550, 750, 9999 },
|
||||
|
||||
---@param value number
|
||||
---@return Color, nil|string
|
||||
Interpolate = function(value)
|
||||
local color = { r = 0, g = 0, b = 0 }
|
||||
|
||||
---@type table<number, table<number, number>>
|
||||
local bracket = { { 0, 0 }, { 1, 1 } }
|
||||
for i = 1, #aura_env.ScoreColorer.breakpoints do
|
||||
if value < aura_env.ScoreColorer.breakpoints[i] then
|
||||
bracket[2] = { i, aura_env.ScoreColorer.breakpoints[i] }
|
||||
break
|
||||
end
|
||||
bracket[1] = { i, aura_env.ScoreColorer.breakpoints[i] }
|
||||
end
|
||||
|
||||
---@type Color
|
||||
local startColor = aura_env.ScoreColorer.colors[bracket[1][1]]
|
||||
---@type Color
|
||||
local endColor = aura_env.ScoreColorer.colors[bracket[2][1]]
|
||||
|
||||
local fraction = (value - bracket[1][2]) / (bracket[2][2] - bracket[1][2])
|
||||
|
||||
for k, v in pairs(startColor) do
|
||||
color[k] = aura_env.ScoreColorer.lerp(v, endColor[k], fraction)
|
||||
end
|
||||
|
||||
return color, nil
|
||||
end,
|
||||
|
||||
---@param a number
|
||||
---@param b number
|
||||
---@param t number
|
||||
---@return number
|
||||
lerp = function(a, b, t)
|
||||
return a * (1 - t) + b * t
|
||||
end
|
||||
}
|
||||
---@class KeyLevel
|
||||
---@field colors table<number, Color>
|
||||
---@field breakpoints table<number>
|
||||
aura_env.KeyLevel = {
|
||||
--- Make sure colors and breakpoints always have the same number of entries! VERY IMPORTANT!
|
||||
---@type table<number, Color>
|
||||
colors = {
|
||||
{ r = 0.62, g = 0.62, b = 0.62 }, -- Grey
|
||||
{ r = 1, g = 1, b = 1 }, -- White
|
||||
{ r = 0.12, g = 1, b = 0 }, -- Green
|
||||
{ r = 0, g = 0.44, b = 0.87 }, -- Blue
|
||||
{ r = 0.64, g = 0.21, b = 0.93 }, -- Purple
|
||||
{ r = 1, g = 0.5, b = 0 }, -- Orange
|
||||
{ r = 1, g = 0.2, b = 0.23 },
|
||||
{ r = 0, g = 0.8, b = 1.0 }, -- Blizzard Blue
|
||||
},
|
||||
breakpoints = { 1, 10, 15, 20, 25, 29, 33, 9999 },
|
||||
|
||||
---@param value number
|
||||
---@return Color, nil|string
|
||||
Interpolate = function(value)
|
||||
local color = { r = 0, g = 0, b = 0 }
|
||||
|
||||
---@type table<number, table<number, number>>
|
||||
local bracket = { { 0, 0 }, { 1, 1 } }
|
||||
for i = 1, #aura_env.KeyLevel.breakpoints do
|
||||
if value < aura_env.KeyLevel.breakpoints[i] then
|
||||
bracket[2] = { i, aura_env.KeyLevel.breakpoints[i] }
|
||||
break
|
||||
end
|
||||
bracket[1] = { i, aura_env.KeyLevel.breakpoints[i] }
|
||||
end
|
||||
|
||||
---@type Color
|
||||
local startColor = aura_env.KeyLevel.colors[bracket[1][1]]
|
||||
---@type Color
|
||||
local endColor = aura_env.KeyLevel.colors[bracket[2][1]]
|
||||
|
||||
local fraction = (value - bracket[1][2]) / (bracket[2][2] - bracket[1][2])
|
||||
|
||||
for k, v in pairs(startColor) do
|
||||
color[k] = aura_env.KeyLevel.lerp(v, endColor[k], fraction)
|
||||
end
|
||||
|
||||
return color, nil
|
||||
end,
|
||||
|
||||
---@param a number
|
||||
---@param b number
|
||||
---@param t number
|
||||
---@return number
|
||||
lerp = function(a, b, t)
|
||||
return a * (1 - t) + b * t
|
||||
end
|
||||
}
|
||||
|
||||
if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end
|
||||
if not WeakAurasSaved.Cyka.MData then WeakAurasSaved.Cyka.MData = {} end
|
||||
|
||||
@@ -11,7 +122,7 @@ if not WeakAurasSaved.Cyka.MData then WeakAurasSaved.Cyka.MData = {} end
|
||||
---@field role string
|
||||
---@field level string
|
||||
---@field time string
|
||||
---@field score string
|
||||
---@field score number
|
||||
Key = {
|
||||
---@return Key
|
||||
---@param name string
|
||||
@@ -23,14 +134,30 @@ Key = {
|
||||
local self = setmetatable({}, {
|
||||
__index = Key,
|
||||
__tostring = function(self)
|
||||
return string.format("%-30s %-8s %-8s %-10s %-10s", self.name, self.role, self.level, self.time, self.score)
|
||||
local score = self.score
|
||||
local keyLevel = tonumber(self.level:match("%d+$")) or 0
|
||||
|
||||
local formattedScore, err = aura_env.ScoreColorer.Interpolate(self.score)
|
||||
if not err then
|
||||
score = string.format("|cff%02x%02x%02x%d|r", formattedScore.r * 255, formattedScore.g * 255,
|
||||
formattedScore.b * 255, self.score)
|
||||
end
|
||||
|
||||
local formattedLevel, err = aura_env.KeyLevel.Interpolate(keyLevel)
|
||||
if not err then
|
||||
level = string.format("|cff%02x%02x%02x%s|r", formattedLevel.r * 255, formattedLevel.g * 255,
|
||||
formattedLevel.b * 255, self.level)
|
||||
end
|
||||
|
||||
return string.format("%-30s %-8s %-8s %-10s %-10s", self.name, self.role, level, self.time,
|
||||
score)
|
||||
end,
|
||||
})
|
||||
self.name = name
|
||||
self.role = role
|
||||
self.level = level
|
||||
self.time = time
|
||||
self.score = score
|
||||
self.score = tonumber(score) or 0
|
||||
return self
|
||||
end,
|
||||
---@return string
|
||||
|
||||
Reference in New Issue
Block a user