GUIPartyEventFrames = {}
local function createPartyEventFrame(i)
local GUIPartyFrame = CreateFrame("frame", "GUI_Party"..i.."Frame", GrimPartyMain, "SecureUnitButtonTemplate")
-- Health Events
GUIPartyFrame.HealthEvents = CreateFrame("Frame", "Party"..i.."HealthEvents")
GUIPartyFrame.HealthEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
GUIPartyFrame.HealthEvents:RegisterEvent("UNIT_HEALTH", "Party"..i.."")
GUIPartyFrame.HealthEvents:RegisterEvent("UNIT_LEVEL", "Party"..i.."")
GUIPartyFrame.HealthEvents:RegisterEvent("UNIT_AURA", "Party"..i.."")
GUIPartyFrame.HealthEvents:RegisterEvent("UNIT_MAXHEALTH", "Party"..i.."")
GUIPartyFrame.HealthEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
-- Mana Events
GUIPartyFrame.ManaEvents = CreateFrame("Frame", "Party"..i.."ManaEvents")
GUIPartyFrame.ManaEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_HEALTH", "Party"..i.."")
GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_LEVEL", "Party"..i.."")
GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_MANA", "Party"..i.."")
GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_AURA", "Party"..i.."")
GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_DISPLAYPOWER", "Party"..i.."")
GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_ENERGY", "Party"..i.."")
GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_MAXENERGY", "Party"..i.."")
GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_MAXMANA", "Party"..i.."")
GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_MAXRUNICPOWER", "Party"..i.."")
GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_RUNIC_POWER", "Party"..i.."")
GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_RAGE", "Party"..i.."")
GUIPartyFrame.ManaEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
GUIPartyFrame.NameTextEvents = CreateFrame("Frame", "Party"..i.."NameTextEvents")
GUIPartyFrame.NameTextEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
GUIPartyFrame.NameTextEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
GUIPartyFrame.NameTextEvents:RegisterEvent("UNIT_NAME_UPDATE", "Party"..i.."")
GUIPartyFrame.NameTextEvents:RegisterEvent("UNIT_FLAGS", "Party"..i.."")
GUIPartyFrame.NameTextEvents:RegisterEvent("UNIT_THREAT_LIST_UPDATE", "Party"..i.."")
GUIPartyFrame.NameTextEvents:RegisterEvent("UNIT_THREAT_SITUATION_UPDATE", "Party"..i.."")
GUIPartyFrame.NameTextEvents:RegisterEvent("UNIT_COMBAT", "Party"..i.."")
GUIPartyFrame.LvlClassTextEvents = CreateFrame("frame", "Party"..i.."LvlClassTextEvents")
GUIPartyFrame.LvlClassTextEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
GUIPartyFrame.LvlClassTextEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
GUIPartyFrame.LvlClassTextEvents:RegisterEvent("UNIT_LEVEL", "Party"..i.."")
GUIPartyFrame.PartyLeaderEvent = CreateFrame("Frame", "Party"..i.."PartyLeaderEvent")
GUIPartyFrame.PartyLeaderEvent:RegisterEvent("PLAYER_ENTERING_WORLD")
GUIPartyFrame.PartyLeaderEvent:RegisterEvent("PARTY_LEADER_CHANGED")
GUIPartyFrame.PartyLeaderEvent:RegisterEvent("PARTY_MEMBERS_CHANGED")
GUIPartyFrame.PartyLeaderEvent:RegisterEvent("ZONE_CHANGED_NEW_AREA")
GUIPartyFrame.pvpIconEvent = CreateFrame("Frame", "Party"..i.."pvpIconEvent")
GUIPartyFrame.pvpIconEvent:RegisterEvent("PLAYER_ENTERING_WORLD")
GUIPartyFrame.pvpIconEvent:RegisterEvent("UNIT_FACTION", "Party"..i.."")
GUIPartyFrame.pvpIconEvent:RegisterEvent("PARTY_MEMBERS_CHANGED")
GUIPartyFrame.pvpIconEvent:RegisterEvent("UNIT_DYNAMIC_FLAGS", "Party"..i.."")
GUIPartyFrame.OffLineDeadEvents = CreateFrame("Frame", "Party"..i.."OffLineDeadEvents")
GUIPartyFrame.OffLineDeadEvents.RegisterEvents = GrimUI.RegisterEvents
GUIPartyFrame.OffLineDeadEvents:RegisterEvents('PLAYER_ENTERING_WORLD', 'PARTY_MEMBERS_CHANGED', 'PARTY_MEMBER_DISABLE', 'PARTY_MEMBER_ENABLE')
GUIPartyFrame.OffLineDeadEvents:RegisterEvent("UNIT_HEALTH", "Party"..i.."")
GUIPartyFrame.targetOfFrameEvents = CreateFrame("frame", "targetOfParty"..i.."FrameEvents")
GUIPartyFrame.targetOfFrameEvents.RegisterEvents = GrimUI.RegisterEvents
GUIPartyFrame.targetOfFrameEvents:RegisterEvents('PLAYER_ENTERING_WORLD', 'PARTY_MEMBERS_CHANGED', 'PARTY_LEADER_CHANGED', 'PLAYER_TARGET_CHANGED')
GUIPartyFrame.targetOfFrameEvents:RegisterEvent("UNIT_TARGET", "player")
GUIPartyFrame.targetOfFrameEvents:RegisterEvent("UNIT_TARGET", "Party"..i.."target")
GUIPartyFrame.targetOfFrameEvents:RegisterEvent("UNIT_TARGET", "target")
GUIPartyFrame.targetOfFrameEvents:RegisterEvent("UNIT_TARGET", "Party"..i.."")
-- this stores the party frame in the table
GUIPartyEventFrames["GUIPartyFrame"..i] = GUIPartyFrame
return GUIPartyFrame
end
createPartyEventFrame(1)
createPartyEventFrame(2)
createPartyEventFrame(3)
createPartyEventFrame(4)