Files
wow-weakauras/Random Trash/Interesting Shit/BARS QUESTIONMARK.lua
2024-08-24 22:43:07 +02:00

132 lines
4.3 KiB
Lua

--1
function(allstates)
for _, v in pairs(allstates) do
v.show = false;
v.changed = true;
end
for unit in aura_env.GroupMembers() do
if UnitIsVisible(unit) then
local role = UnitGroupRolesAssigned(unit)
--local icon = aura_env.roles[role] or ""
local name = string.sub(UnitName(unit),1,6)
local _, class = UnitClass(unit)
local _,_,_,str = GetClassColor(class)
name = string.format("|c%s%s|r", str, name)
local inside = WA_GetUnitDebuff(unit, GetSpellInfo(236283)) and "inside"
local dead = UnitIsDeadOrGhost(unit) and "DEAD"
local flag = inside or ""
local torment = UnitPower(unit, 10)
local index = (100 - torment)
if role == "TANK" then
index = index - 1000
elseif role == "HEALER" then
index = index - 500
end
if inside then index = index - 100 end
allstates[unit] = allstates[unit] or {};
local state = allstates[unit];
state.index = index
state.resort = true
state.ID = unit
state.show = true;
state.changed = true;
state.name = dead or name;
state.progressType = "static";
state.value = torment
state.total = 100
state.flag = flag
end
end
for i = 1,3 do
local icon = i == 3 and aura_env.roles["TANK"]
or i == 2 and aura_env.roles["HEALER"]
or aura_env.roles["DAMAGER"]
local name = i == 3 and "TANKS" or i == 2 and "HEALERS" or "DPS"
local col = i == 3 and "FF8C00" or i == 2 and "7FFF00" or "DC143C"
local flag = string.format("%s |cFF%s%s|r %s", icon, col, name, icon)
allstates["spacer"..i] = allstates["spacer"..i] or {};
local state = allstates["spacer"..i];
state.index = i * -400
state.resort = true
state.ID = "spacer"
state.show = true;
state.changed = true;
state.name = ""
state.progressType = "static";
state.value = 0
state.total = 100
state.flag = flag
end
for k, v in pairs(allstates) do
if v.ID == "spacer" then
local region = WeakAuras.GetRegion(aura_env.id, k)
region.timer:ClearAllPoints()
region.timer:SetPoint("CENTER", region.bar, "CENTER")
region.bar.bg:SetVertexColor(1,1,1,0)
end
end
return true
end
--2
function aura_env.GroupMembers(reversed, forceParty)
local unit = (not forceParty and IsInRaid()) and 'raid' or 'party'
local numGroupMembers = forceParty and GetNumSubgroupMembers() or GetNumGroupMembers()
local i = reversed and numGroupMembers or (unit == 'party' and 0 or 1)
return function()
local ret
if i == 0 and unit == 'party' then
ret = 'player'
elseif i <= numGroupMembers and i > 0 then
ret = unit .. i
end
i = i + (reversed and -1 or 1)
return ret
end
end
aura_env.roles = {
["TANK"] = "|TInterface\\LFGFrame\\UI-LFG-ICON-PORTRAITROLES:0:0:0:0:64:64:0:19:22:41|t",
["HEALER"] = "|TInterface\\LFGFrame\\UI-LFG-ICON-PORTRAITROLES:0:0:0:0:64:64:20:39:1:20|t",
["DAMAGER"] = "|TInterface\\LFGFrame\\UI-LFG-ICON-PORTRAITROLES:0:0:0:0:64:64:20:39:22:41|t"
}
--3
function()
local r,g,b = 0,1,0
if aura_env and aura_env.statee then
if aura_env.statee.value > 40 then
r,g,b = 1,1,0
end
if aura_env.statee.value > 80 then
r,g,b = 1,0.5,0
end
if aura_env.statee.value > 95 then
r,g,b = 1,0,0
end
local region = WeakAuras.GetRegion(aura_env.id, aura_env.statee.ID)
region.text:ClearAllPoints()
region.text:SetPoint("RIGHT", region.bar, "LEFT", -3,1)
region.text:SetJustifyH("RIGHT")
end
return r, g, b, 1
end
--4
function(_,_,prog)
if aura_env.statee and aura_env.statee.ID == "spacer" then
return ""
else
return prog
end
end