Skip to content

Instantly share code, notes, and snippets.

@Lombra

Lombra/Raid.lua Secret

Last active November 26, 2015 03:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Lombra/782d84064be0d1f3eefc to your computer and use it in GitHub Desktop.
Save Lombra/782d84064be0d1f3eefc to your computer and use it in GitHub Desktop.
local roleColors = {
TANK = {0.2, 0.2, 0.8},
HEALER = {0, 0.7, 0},
DAMAGER = {0.7, 0, 0},
NONE = {0.7, 0.7, 0.7},
}
local function onEnter(self)
GameTooltip:SetOwner(self, "ANCHOR_LEFT")
GameTooltip:SetText(UnitName(self.unit))
GameTooltip:Show()
end
function NewSecureGroupHeader(name)
local header = _G[name] or CreateFrame("Frame", name, UIParent, "SecureGroupHeaderTemplate")
header:SetAttribute("showRaid", true)
header:SetAttribute("point", "LEFT")
header:SetAttribute("xOffset", 1)
header:SetAttribute("unitsPerColumn", 5)
header:SetAttribute("maxColumns", 8)
header:SetAttribute("columnAnchorPoint", "TOP")
header:SetAttribute("columnSpacing", 1)
header:SetAttribute("template", "AuraButtonTemplate, SecureUnitButtonTemplate")
header:SetAttribute("initialConfigFunction", [[
self:SetAttribute("*type1", "target")
]])
header.e = header.e or CreateFrame("Frame")
header.e:RegisterEvent("GROUP_ROSTER_UPDATE")
header.e:RegisterEvent("PLAYER_ROLES_ASSIGNED")
header.e:SetScript("OnEvent", function(self, event, ...)
for i, frame in ipairs(header) do
frame:SetScript("OnEnter", onEnter)
frame:SetScript("OnLeave", GameTooltip_Hide)
frame.bg = frame.bg or frame:CreateTexture(nil, "BACKGROUND")
frame.bg:SetAllPoints()
frame.role = frame.role or frame:CreateTexture()
frame.role:SetSize(8, 8)
frame.role:SetPoint("TOPLEFT")
frame.roleBG = frame.roleBG or frame:CreateTexture(nil, nil, nil, -1)
frame.roleBG:SetSize(9, 9)
frame.roleBG:SetPoint("TOPLEFT")
frame.roleBG:SetTexture(0, 0, 0)
local unit = frame:GetAttribute("unit")
frame.unit = unit
if unit then
local _, class = UnitClass(unit)
classColor = RAID_CLASS_COLORS[class]
frame.bg:SetTexture(classColor.r, classColor.g, classColor.b)
frame.role:SetTexture(unpack(roleColors[UnitGroupRolesAssigned(unit)]))
end
end
end)
return header
end
local tanks = NewSecureGroupHeader("LombleRaidTanks")
tanks:SetAttribute("roleFilter", "TANK")
tanks:SetPoint("TOPLEFT", 32, -32)
tanks:Show()
local healers = NewSecureGroupHeader("LombleRaidHealers")
healers:SetAttribute("roleFilter", "HEALER")
healers:SetPoint("TOPLEFT", tanks, "BOTTOMLEFT", 0, -4)
healers:Show()
local damagers = NewSecureGroupHeader("LombleRaidDamagers")
damagers:SetAttribute("roleFilter", "DAMAGER")
damagers:SetPoint("TOPLEFT", healers, "BOTTOMLEFT", 0, -4)
damagers:Show()
local none = NewSecureGroupHeader("LombleRaidNone")
none:SetAttribute("roleFilter", "NONE")
none:SetPoint("TOPLEFT", damagers, "BOTTOMLEFT", 0, -4)
none:Show()
local raid = NewSecureGroupHeader("LombleRaidAll")
raid:SetAttribute("groupingOrder", "TANK,HEALER,DAMAGER,NONE")
raid:SetAttribute("groupBy", "ASSIGNEDROLE")
raid:SetPoint("TOPLEFT", 192, -32)
raid:Show()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment