Thread Tools Display Modes
06-13-10, 12:00 PM   #1
Grimsin
A Molten Giant
 
Grimsin's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2006
Posts: 990
error more then 60 upvalues

what does that mean? error more then 60 upvalues?
__________________
"Are we there yet?"

GrimUI
[SIGPIC][/SIGPIC]
  Reply With Quote
06-13-10, 12:11 PM   #2
Grimsin
A Molten Giant
 
Grimsin's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2006
Posts: 990
boils down to i have to shorten my code or something...

when it says that it means there are too many nested functions? or? if i global some big functions with lots of other local this and thats in it would it alleviate this problem?
__________________
"Are we there yet?"

GrimUI
[SIGPIC][/SIGPIC]

Last edited by Grimsin : 06-13-10 at 01:35 PM.
  Reply With Quote
06-13-10, 02:06 PM   #3
Grimsin
A Molten Giant
 
Grimsin's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2006
Posts: 990
i dunno what to do at the point... i know this is a bit of a mess but... anyone know why or what to do about the more then 60 upvalue error? this is massive... im sure there is more problems then just that but... the partyframes worked fine until i duped everything for the 2,3 and 4th party frames...

lua Code:
  1. local module = GrimUI:RegisterModule("PartyFrames")
  2.  
  3.  
  4.  
  5. -----------------------------------
  6. -- GUI Party Frame main creation.
  7. -----------------------------------
  8. local GrimPartyMain = CreateFrame("Frame", "GrimPartyMain", UIParent, "SecureHandlerStateTemplate");
  9.  
  10. --SecureHandler_OnLoad(GrimPartyMain);
  11. --GrimPartyMain:SetFrameRef("GrimPartyMain", GrimPartyMain);
  12. --GrimPartyMain:Execute([[
  13. --GrimPartyMain = self:GetFrameRef("GrimPartyMain");
  14. --]]);
  15. --GrimPartyMain:Execute("raidhideparty = " .. tostring(GetCVar("hidePartyInRaid"))); -- hook to Blizzard option for party raid hide frames
  16. --GrimPartyMain:SetAttribute("_onstate-unitexists", [[
  17. --  --if raidhideparty == 1 and newstate then
  18. --  --GrimPartyMain:Hide()
  19. --  --end
  20. --  --if raidhideparty ~= 1 and newstate then
  21. --  --GrimPartyMain:Show()
  22. --  --end
  23. --]]);
  24. --GrimPartyMain:SetAttribute("unit", "raid1");
  25. --GrimPartyMain(GrimPartyMain, true);
  26. --GrimPartyMain:SetAttribute("state-unitexists", UnitExists("raid1"));
  27.  
  28.  
  29.  
  30. local GUI_Party1Frame = CreateFrame("frame", "GUI_Party1Frame", GrimPartyMain, "SecureUnitButtonTemplate")
  31.  
  32. local GUI_Party2Frame = CreateFrame("frame", "GUI_Party2Frame", GrimPartyMain, "SecureUnitButtonTemplate")
  33.  
  34. local GUI_Party3Frame = CreateFrame("frame", "GUI_Party3Frame", GrimPartyMain, "SecureUnitButtonTemplate")
  35.  
  36. local GUI_Party4Frame = CreateFrame("frame", "GUI_Party4Frame", GrimPartyMain, "SecureUnitButtonTemplate")
  37.  
  38.  
  39. ------------------------------------
  40. -- PartyLayoutInitiate Function
  41. ------------------------------------
  42.  
  43. --------------
  44. --- PARTY 1
  45. -------------
  46. function GrimUI:Party1LayoutInitiate()
  47.  
  48.     local parentFrame = {}
  49.     local frame = parentFrame[self] or self;
  50.    
  51.     ---
  52.     -- Party1 Frame SetPoint
  53.     ---
  54.     if not GUI_Party1Frame:IsShown() then return end;
  55.    
  56.     if not GrimLayout.GUI_Party1Frame then
  57.         GUI_Party1Frame:ClearAllPoints();
  58.         GUI_Party1Frame:SetPoint("LEFT", GrimUIcoreArtB1, "TOPRIGHT", -81, -22)
  59.     end
  60.    
  61.     if GrimLayout.disabled == true then
  62.         GUI_Party1Frame:ClearAllPoints();
  63.         GUI_Party1Frame:SetPoint("LEFT", GrimUIcoreArtB1, "TOPRIGHT", -81, -22)
  64.     --elseif GrimLayout.nosave == true then
  65.       --    GUI_Party1Frame:SetPoint("LEFT", GrimUIcoreArtB1, "TOPRIGHT", -81, -22)
  66.      
  67.      
  68.     elseif GrimLayout.GUI_Party1Frame then
  69.           if GrimLayout[GUI_Party1Frame:GetName()] then
  70.               local points = GrimLayout[GUI_Party1Frame:GetName()];
  71.               if not points then
  72.               GUI_Party1Frame:ClearAllPoints()
  73.               GUI_Party1Frame:SetPoint("LEFT", GrimUIcoreArtB1, "TOPRIGHT", -81, -22) return
  74.               elseif points[1] == "nil" then
  75.               GUI_Party1Frame:ClearAllPoints();
  76.               GUI_Party1Frame:SetPoint("LEFT", GrimUIcoreArtB1, "TOPRIGHT", -81, -22) return
  77.               elseif points[1] == "LEFT" and points[2] == "UIParent" and points[3] == "TOPRIGHT" then
  78.               GUI_Party1Frame:ClearAllPoints();
  79.               GUI_Party1Frame:SetPoint("LEFT", GrimUIcoreArtB1, "TOPRIGHT", -81, -22) return
  80.               end;
  81.            
  82.               GUI_Party1Frame:ClearAllPoints();
  83.               GUI_Party1Frame:SetPoint(points[1], points[2],points[3], points[4], points[5]);
  84.             end
  85.     end
  86. end
  87.  
  88. ----------------
  89. -- PARTY 2
  90. ----------------
  91.  
  92. function GrimUI:Party2LayoutInitiate()
  93.     local parentFrame = {}
  94.     local frame = parentFrame[self] or self;
  95.    
  96.     ---
  97.     -- Party2 Frame SetPoint
  98.     ---
  99.     if not GUI_Party2Frame:IsShown() then return end;
  100.     if not GrimLayout.GUI_Party2Frame then
  101.         GUI_Party2Frame:SetPoint("BOTTOMLEFT", GUI_Party1Frame, "BOTTOMRIGHT", -1, 0)
  102.     end
  103.    
  104.     if GrimLayout.disabled == true then
  105.         GUI_Party2Frame:SetPoint("BOTTOMLEFT", GUI_Party1Frame, "BOTTOMRIGHT", -1, 0)
  106.     --elseif GrimLayout.nosave == true then
  107.           --GUI_Party2Frame:SetPoint("BOTTOMLEFT", GUI_Party1Frame, "BOTTOMRIGHT", -1, 0)
  108.      
  109.      
  110.     elseif GrimLayout.GUI_Party2Frame then
  111.           if GrimLayout[GUI_Party2Frame:GetName()] then
  112.               local points = GrimLayout[GUI_Party2Frame:GetName()];
  113.               if not points then GUI_Party2Frame:SetPoint("BOTTOMLEFT", GUI_Party1Frame, "BOTTOMRIGHT", -1, 0) return
  114.               elseif points[1] == "nil" then GUI_Party2Frame:SetPoint("BOTTOMLEFT", GUI_Party1Frame, "BOTTOMRIGHT", -1, 0) return
  115.               elseif points[1] == "BOTTOMLEFT" and points[2] == "UIParent" and points[3] == "BOTTOMRIGHT" then
  116.               GUI_Party2Frame:SetPoint("BOTTOMLEFT", GUI_Party1Frame, "BOTTOMRIGHT", -1, 0) return
  117.               end;
  118.               GUI_Party2Frame:ClearAllPoints();
  119.               GUI_Party2Frame:SetPoint(points[1], points[2],points[3], points[4], points[5]);
  120.             end
  121.     end
  122. end
  123.  
  124. ----------------
  125. -- PARTY 3
  126. ----------------
  127.  
  128. function GrimUI:Party3LayoutInitiate()
  129.     local parentFrame = {}
  130.     local frame = parentFrame[self] or self;
  131.     ---
  132.     -- Party3 Frame SetPoint
  133.     ---
  134.     if not GUI_Party3Frame:IsShown() then return end;
  135.     if not GrimLayout.GUI_Party3Frame then
  136.         GUI_Party3Frame:SetPoint("RIGHT", GrimUIcoreArtB4, "TOPLEFT", -139, -22)
  137.     end
  138.    
  139.     if GrimLayout.disabled == true then
  140.         GUI_Party3Frame:SetPoint("RIGHT", GrimUIcoreArtB4, "TOPLEFT", -139, -22)
  141.     --elseif GrimLayout.nosave == true then
  142.           --GUI_Party3Frame:SetPoint("RIGHT", GrimUIcoreArtB4, "TOPLEFT", -139, -22)
  143.      
  144.      
  145.     elseif GrimLayout.GUI_Party3Frame then
  146.           if GrimLayout[GUI_Party3Frame:GetName()] then
  147.               local points = GrimLayout[GUI_Party3Frame:GetName()];
  148.               if not points then GUI_Party3Frame:SetPoint("RIGHT", GrimUIcoreArtB4, "TOPLEFT", -139, -22) return
  149.               elseif points[1] == "nil" then GUI_Party3Frame:SetPoint("RIGHT", GrimUIcoreArtB4, "TOPLEFT", -139, -22) return
  150.               elseif points[1] == "RIGHT" and points[2] == "UIParent" and points[3] == "TOPLEFT" then
  151.               GUI_Party3Frame:SetPoint("RIGHT", GrimUIcoreArtB4, "TOPLEFT", -139, -22) return
  152.               end;
  153.               GUI_Party3Frame:ClearAllPoints();
  154.               GUI_Party3Frame:SetPoint(points[1], points[2],points[3], points[4], points[5]);
  155.             end
  156.     end
  157. end
  158.  
  159. ----------------
  160. -- PARTY 4
  161. ----------------
  162.  
  163. function GrimUI:Party4LayoutInitiate()
  164.     local parentFrame = {}
  165.     local frame = parentFrame[self] or self;
  166.     ---
  167.     -- Party4 Frame SetPoint
  168.     ---
  169.     if not GUI_Party4Frame:IsShown() then return end;
  170.     if not GrimLayout.GUI_Party4Frame then
  171.         GUI_Party4Frame:SetPoint("BOTTOMLEFT", GUI_Party3Frame, "BOTTOMRIGHT", -1, 0)
  172.     end
  173.  
  174.     if GrimLayout.disabled == true then
  175.         GUI_Party4Frame:SetPoint("BOTTOMLEFT", GUI_Party3Frame, "BOTTOMRIGHT", -1, 0)
  176.     --elseif GrimLayout.nosave == true then
  177.           --GUI_Party4Frame:SetPoint("BOTTOMLEFT", GUI_Party3Frame, "BOTTOMRIGHT", -1, 0)
  178.      
  179.      
  180.     elseif GrimLayout.GUI_Party4Frame then
  181.           if GrimLayout[GUI_Party4Frame:GetName()] then
  182.               local points = GrimLayout[GUI_Party4Frame:GetName()];
  183.               if not points then GUI_Party4Frame:SetPoint("BOTTOMLEFT", GUI_Party3Frame, "BOTTOMRIGHT", -1, 0) return
  184.               elseif points[1] == "nil" then GUI_Party4Frame:SetPoint("BOTTOMLEFT", GUI_Party3Frame, "BOTTOMRIGHT", -1, 0) return
  185.               elseif points[1] == "BOTTOMLEFT" and points[2] == "UIParent" and points[3] == "BOTTOMRIGHT" then
  186.               GUI_Party4Frame:SetPoint("BOTTOMLEFT", GUI_Party3Frame, "BOTTOMRIGHT", -1, 0) return
  187.               end;
  188.               GUI_Party4Frame:ClearAllPoints();
  189.               GUI_Party4Frame:SetPoint(points[1], points[2],points[3], points[4], points[5]);
  190.             end
  191.     end
  192. end
  193.  
  194.  
  195. ----------------------------------------------
  196. -- PLAYER_LOGIN functions - one time run on first load
  197. -----------------------------------------------
  198. local GUI_PartyFramesOnLogin = CreateFrame("Frame", "GUI_PartyFramesOnLogin", UIParent)
  199. GUI_PartyFramesOnLogin:RegisterEvent("PLAYER_LOGIN")
  200. GUI_PartyFramesOnLogin:SetScript("OnEvent", function(event)
  201.    
  202.     -- check opetions panel for GUI and Bliz hide options and then force one way or the other.
  203.     GrimUI.PartyHideShowFunc()
  204.     GrimUI.BPartyHideShowFunc()
  205.    
  206.     -- Update the party style prior to frame layout.
  207.  
  208.    
  209. end)
  210.  
  211.  
  212.  
  213.  
  214.  
  215. -------------------------------------------------------------
  216. -- Update Show/hide in raid based on the Bliz Variable chosen
  217. --------------------------------------------------------------
  218. local UpdatePartyCVar = CreateFrame("Frame", "UpdatePartyCVar", UIParent, "SecureHandlerStateTemplate");
  219. UpdatePartyCVar:RegisterEvent("CVAR_UPDATE")
  220.  
  221. UpdatePartyCVar:SetScript("OnEvent", function()
  222.  
  223.     if GetCVarBool("hidePartyInRaid") then
  224.  
  225.     RegisterStateDriver(GrimPartyMain, "visibility", "[@raid1,exists]hide;show");
  226.  
  227.     else
  228.  
  229.     UnregisterStateDriver(GrimPartyMain, "visibility");
  230.     GrimPartyMain:Show();
  231.     GrimUI.UpdatePartyStyle()
  232.     GrimUI.Party1LayoutInitiate()
  233.     GrimUI.Party2LayoutInitiate()
  234.     GrimUI.Party3LayoutInitiate()
  235.     GrimUI.Party4LayoutInitiate()
  236.      
  237.     end
  238.    
  239. end)
  240.  
  241.  
  242.  
  243.  
  244. --###############################################
  245. --## Frame/Texture/Font Creation for current Party Styles   ##
  246. --###############################################
  247.  
  248. ---------------
  249. --  Party1   --
  250. ---------------
  251.  
  252. -- Pedestal Frame
  253.     local Party1PedestalFrame = CreateFrame('Frame', "Party1PedestalFrame", GUI_Party1Frame)
  254.         Party1PedestalFrame.texture = Party1PedestalFrame:CreateTexture()
  255.  
  256. -- Health Bar
  257.     local Party1HealthBorder = CreateFrame('Button', "Party1HealthBorder", GUI_Party1Frame, "SecureActionButtonTemplate")
  258.     local Party1HealthBar = CreateFrame("StatusBar", "Party1HealthBar", GUI_Party1Frame, "TextStatusBar")
  259.     local Party1HealthNumTxtFrame = CreateFrame("Frame", "Party1HealthNumTxtFrame", GUI_Party1Frame)
  260.     local percentParty1HText = Party1HealthBorder:CreateFontString("percentParty1HText", "OVERLAY", "GameFontNormalSmall")
  261.    
  262. -- Mana Bar
  263.     local Party1ManaBorder = CreateFrame('Button', "Party1ManaBorder", GUI_Party1Frame, "SecureActionButtonTemplate")
  264.     local Party1ManaBar = CreateFrame("StatusBar", "Party1ManaBar", GUI_Party1Frame, "TextStatusBar")
  265.     local Party1ManaNumTxtFrame = CreateFrame("Frame", "Party1ManaNumTxtFrame", GUI_Party1Frame)
  266.     local percentParty1MText = Party1ManaBorder:CreateFontString("percentParty1MText", "OVERLAY", "GameFontNormalSmall")
  267.    
  268. -- Misc Frames
  269.     local Party1InfoTextFrame = CreateFrame("button", "GrimUI_Party1TextAreaFrame", GUI_Party1Frame, "SecureActionButtonTemplate")
  270.     local Party1NameText = Party1InfoTextFrame:CreateFontString("Party1NameText", "OVERLAY", "GameFontNormalSmall")
  271.    
  272.     local Party1LetterFrame = CreateFrame("Frame", "Party1LetterFrame", GUI_Party1Frame)
  273.     local Party1LeaderFrame = CreateFrame("Frame", "party1LeaderFrame", GUI_Party1Frame)
  274.     local Party1pvpIconFrame = CreateFrame("Frame", "Party1pvpIconFrame", GUI_Party1Frame)
  275.     local Party1offDeadGhostTxtFrame = CreateFrame("Frame", "Party1offDeadGhostTxtFrame", GUI_Party1Frame)
  276.  
  277. -- Target Bar
  278.     local targetOfParty1Frame = CreateFrame("frame", "targetOfParty1Frame", GUI_Party1Frame)
  279.     local targetOfParty1ClickFrame = CreateFrame("button", "targetOfParty1ClickFrame", GUI_Party1Frame, "SecureActionButtonTemplate")
  280.     local Party1ttbg = targetOfParty1Frame:CreateTexture(Party1ttbg, "BACKGROUND")
  281.    
  282.    
  283.     local Party1LetterHText = Party1LetterFrame:CreateFontString("Party1LetterHText", "OVERLAY",
  284.     "GameFontNormalSmall")
  285.     local Party1LetterMText = Party1LetterFrame:CreateFontString("Party1LetterMText", "OVERLAY", "GameFontNormalSmall")
  286.     local Party1CHNumTxt = Party1HealthNumTxtFrame:CreateFontString("Party1CHNumTxt", "OVERLAY", "GameFontNormalSmall")
  287.     local Party1MHNumTxt = Party1HealthNumTxtFrame:CreateFontString("Party1MHNumTxt", "OVERLAY", "GameFontNormalSmall")
  288.     local Party1CMNumTxt = Party1ManaNumTxtFrame:CreateFontString("Party1CMNumTxt", "OVERLAY", "GameFontNormalSmall")
  289.     local Party1MMNumTxt = Party1ManaNumTxtFrame:CreateFontString("Party1MMNumTxt", "OVERLAY", "GameFontNormalSmall")
  290.  
  291.     local Party1LvlClassText = Party1InfoTextFrame:CreateFontString(Party1LvlClassText, "OVERLAY", "GameFontNormalSmall")
  292.     local Party1DeadOfflineTxt = Party1offDeadGhostTxtFrame:CreateFontString("Party1DeadOfflineTxt", "OVERLAY", "GameFontNormalSmall")
  293.     local targetOfParty1Text = targetOfParty1Frame:CreateFontString("targetOfParty1Text", "OVERLAY", "GameFontNormalSmall")
  294.    
  295.    
  296.     ---------------
  297. --  Party2   --
  298. ---------------
  299.  
  300.  
  301. -- Pedestal Frame
  302.     local Party2PedestalFrame = CreateFrame('Frame', "Party2PedestalFrame", GUI_Party2Frame)
  303.         Party2PedestalFrame.texture = Party2PedestalFrame:CreateTexture()
  304.  
  305. -- Health Bar
  306.     local Party2HealthBorder = CreateFrame('Button', "Party2HealthBorder", GUI_Party2Frame, "SecureActionButtonTemplate")
  307.     local Party2HealthBar = CreateFrame("StatusBar", "Party2HealthBar", GUI_Party2Frame, "TextStatusBar")
  308.     local Party2HealthNumTxtFrame = CreateFrame("Frame", "Party2HealthNumTxtFrame", GUI_Party2Frame)
  309.     local percentParty2HText = Party2HealthBorder:CreateFontString("percentParty2HText", "OVERLAY", "GameFontNormalSmall")
  310.    
  311. -- Mana Bar
  312.     local Party2ManaBorder = CreateFrame('Button', "Party2ManaBorder", GUI_Party2Frame, "SecureActionButtonTemplate")
  313.     local Party2ManaBar = CreateFrame("StatusBar", "Party2ManaBar", GUI_Party2Frame, "TextStatusBar")
  314.     local Party2ManaNumTxtFrame = CreateFrame("Frame", "Party2ManaNumTxtFrame", GUI_Party2Frame)
  315.     local percentParty2MText = Party2ManaBorder:CreateFontString("percentParty2MText", "OVERLAY", "GameFontNormalSmall")
  316.    
  317. -- Misc Frames
  318.     local Party2InfoTextFrame = CreateFrame("button", "GrimUI_Party2TextAreaFrame", GUI_Party2Frame, "SecureActionButtonTemplate")
  319.     local Party2NameText = Party2InfoTextFrame:CreateFontString("Party2NameText", "OVERLAY", "GameFontNormalSmall")
  320.    
  321.     local Party2LetterFrame = CreateFrame("Frame", "Party2LetterFrame", GUI_Party2Frame)
  322.     local Party2LeaderFrame = CreateFrame("Frame", "Party2LeaderFrame", GUI_Party2Frame)
  323.     local Party2pvpIconFrame = CreateFrame("Frame", "Party2pvpIconFrame", GUI_Party2Frame)
  324.     local Party2offDeadGhostTxtFrame = CreateFrame("Frame", "Party2offDeadGhostTxtFrame", GUI_Party2Frame)
  325.  
  326. -- Target Bar
  327.     local targetOfParty2Frame = CreateFrame("frame", "targetOfParty2Frame", GUI_Party2Frame)
  328.     local targetOfParty2ClickFrame = CreateFrame("button", "targetOfParty2ClickFrame", GUI_Party2Frame, "SecureActionButtonTemplate")
  329.     local Party2ttbg = targetOfParty2Frame:CreateTexture(Party2ttbg, "BACKGROUND")
  330.    
  331.    
  332.     local Party2LetterHText = Party2LetterFrame:CreateFontString("Party2LetterHText", "OVERLAY",
  333.     "GameFontNormalSmall")
  334.     local Party2LetterMText = Party2LetterFrame:CreateFontString("Party2LetterMText", "OVERLAY", "GameFontNormalSmall")
  335.     local Party2CHNumTxt = Party2HealthNumTxtFrame:CreateFontString("Party2CHNumTxt", "OVERLAY", "GameFontNormalSmall")
  336.     local Party2MHNumTxt = Party2HealthNumTxtFrame:CreateFontString("Party2MHNumTxt", "OVERLAY", "GameFontNormalSmall")
  337.     local Party2CMNumTxt = Party2ManaNumTxtFrame:CreateFontString("Party2CMNumTxt", "OVERLAY", "GameFontNormalSmall")
  338.     local Party2MMNumTxt = Party2ManaNumTxtFrame:CreateFontString("Party2MMNumTxt", "OVERLAY", "GameFontNormalSmall")
  339.  
  340.     local Party2LvlClassText = Party2InfoTextFrame:CreateFontString(Party2LvlClassText, "OVERLAY", "GameFontNormalSmall")
  341.     local Party2DeadOfflineTxt = Party2offDeadGhostTxtFrame:CreateFontString("Party2DeadOfflineTxt", "OVERLAY", "GameFontNormalSmall")
  342.     local targetOfParty2Text = targetOfParty2Frame:CreateFontString("targetOfParty2Text", "OVERLAY", "GameFontNormalSmall")
  343. ---------------
  344. --  Party3   --
  345. ---------------
  346.  
  347.  
  348. -- Pedestal Frame
  349.     local Party3PedestalFrame = CreateFrame('Frame', "Party3PedestalFrame", GUI_Party3Frame)
  350.         Party3PedestalFrame.texture = Party3PedestalFrame:CreateTexture()
  351.  
  352. -- Health Bar
  353.     local Party3HealthBorder = CreateFrame('Button', "Party3HealthBorder", GUI_Party3Frame, "SecureActionButtonTemplate")
  354.     local Party3HealthBar = CreateFrame("StatusBar", "Party3HealthBar", GUI_Party3Frame, "TextStatusBar")
  355.     local Party3HealthNumTxtFrame = CreateFrame("Frame", "Party3HealthNumTxtFrame", GUI_Party3Frame)
  356.     local percentParty3HText = Party3HealthBorder:CreateFontString("percentParty3HText", "OVERLAY", "GameFontNormalSmall")
  357.    
  358. -- Mana Bar
  359.     local Party3ManaBorder = CreateFrame('Button', "Party3ManaBorder", GUI_Party3Frame, "SecureActionButtonTemplate")
  360.     local Party3ManaBar = CreateFrame("StatusBar", "Party3ManaBar", GUI_Party3Frame, "TextStatusBar")
  361.     local Party3ManaNumTxtFrame = CreateFrame("Frame", "Party3ManaNumTxtFrame", GUI_Party3Frame)
  362.     local percentParty3MText = Party3ManaBorder:CreateFontString("percentParty3MText", "OVERLAY", "GameFontNormalSmall")
  363.    
  364. -- Misc Frames
  365.     local Party3InfoTextFrame = CreateFrame("button", "GrimUI_Party3TextAreaFrame", GUI_Party3Frame, "SecureActionButtonTemplate")
  366.     local Party3NameText = Party3InfoTextFrame:CreateFontString("Party3NameText", "OVERLAY", "GameFontNormalSmall")
  367.    
  368.     local Party3LetterFrame = CreateFrame("Frame", "Party3LetterFrame", GUI_Party3Frame)
  369.     local Party3LeaderFrame = CreateFrame("Frame", "Party3LeaderFrame", GUI_Party3Frame)
  370.     local Party3pvpIconFrame = CreateFrame("Frame", "Party3pvpIconFrame", GUI_Party3Frame)
  371.     local Party3offDeadGhostTxtFrame = CreateFrame("Frame", "Party3offDeadGhostTxtFrame", GUI_Party3Frame)
  372.  
  373. -- Target Bar
  374.     local targetOfParty3Frame = CreateFrame("frame", "targetOfParty3Frame", GUI_Party3Frame)
  375.     local targetOfParty3ClickFrame = CreateFrame("button", "targetOfParty3ClickFrame", GUI_Party3Frame, "SecureActionButtonTemplate")
  376.     local Party3ttbg = targetOfParty3Frame:CreateTexture(Party3ttbg, "BACKGROUND")
  377.    
  378.    
  379.     local Party3LetterHText = Party3LetterFrame:CreateFontString("Party3LetterHText", "OVERLAY",
  380.     "GameFontNormalSmall")
  381.     local Party3LetterMText = Party3LetterFrame:CreateFontString("Party3LetterMText", "OVERLAY", "GameFontNormalSmall")
  382.     local Party3CHNumTxt = Party3HealthNumTxtFrame:CreateFontString("Party3CHNumTxt", "OVERLAY", "GameFontNormalSmall")
  383.     local Party3MHNumTxt = Party3HealthNumTxtFrame:CreateFontString("Party3MHNumTxt", "OVERLAY", "GameFontNormalSmall")
  384.     local Party3CMNumTxt = Party3ManaNumTxtFrame:CreateFontString("Party3CMNumTxt", "OVERLAY", "GameFontNormalSmall")
  385.     local Party3MMNumTxt = Party3ManaNumTxtFrame:CreateFontString("Party3MMNumTxt", "OVERLAY", "GameFontNormalSmall")
  386.  
  387.     local Party3LvlClassText = Party3InfoTextFrame:CreateFontString(Party3LvlClassText, "OVERLAY", "GameFontNormalSmall")
  388.     local Party3DeadOfflineTxt = Party3offDeadGhostTxtFrame:CreateFontString("Party3DeadOfflineTxt", "OVERLAY", "GameFontNormalSmall")
  389.     local targetOfParty3Text = targetOfParty3Frame:CreateFontString("targetOfParty3Text", "OVERLAY", "GameFontNormalSmall")
  390.  
  391. ---------------
  392. --  Party4   --
  393. ---------------
  394.  
  395.  
  396. -- Pedestal Frame
  397.     local Party4PedestalFrame = CreateFrame('Frame', "Party4PedestalFrame", GUI_Party4Frame)
  398.         Party4PedestalFrame.texture = Party4PedestalFrame:CreateTexture()
  399.  
  400. -- Health Bar
  401.     local Party4HealthBorder = CreateFrame('Button', "Party4HealthBorder", GUI_Party4Frame, "SecureActionButtonTemplate")
  402.     local Party4HealthBar = CreateFrame("StatusBar", "Party4HealthBar", GUI_Party4Frame, "TextStatusBar")
  403.     local Party4HealthNumTxtFrame = CreateFrame("Frame", "Party4HealthNumTxtFrame", GUI_Party4Frame)
  404.     local percentParty4HText = Party4HealthBorder:CreateFontString("percentParty4HText", "OVERLAY", "GameFontNormalSmall")
  405.    
  406. -- Mana Bar
  407.     local Party4ManaBorder = CreateFrame('Button', "Party4ManaBorder", GUI_Party4Frame, "SecureActionButtonTemplate")
  408.     local Party4ManaBar = CreateFrame("StatusBar", "Party4ManaBar", GUI_Party4Frame, "TextStatusBar")
  409.     local Party4ManaNumTxtFrame = CreateFrame("Frame", "Party4ManaNumTxtFrame", GUI_Party4Frame)
  410.     local percentParty4MText = Party4ManaBorder:CreateFontString("percentParty4MText", "OVERLAY", "GameFontNormalSmall")
  411.    
  412. -- Misc Frames
  413.     local Party4InfoTextFrame = CreateFrame("button", "GrimUI_Party4TextAreaFrame", GUI_Party4Frame, "SecureActionButtonTemplate")
  414.     local Party4NameText = Party4InfoTextFrame:CreateFontString("Party4NameText", "OVERLAY", "GameFontNormalSmall")
  415.    
  416.     local Party4LetterFrame = CreateFrame("Frame", "Party4LetterFrame", GUI_Party4Frame)
  417.     local Party4LeaderFrame = CreateFrame("Frame", "Party4LeaderFrame", GUI_Party4Frame)
  418.     local Party4pvpIconFrame = CreateFrame("Frame", "Party4pvpIconFrame", GUI_Party4Frame)
  419.     local Party4offDeadGhostTxtFrame = CreateFrame("Frame", "Party4offDeadGhostTxtFrame", GUI_Party4Frame)
  420.  
  421. -- Target Bar
  422.     local targetOfParty4Frame = CreateFrame("frame", "targetOfParty4Frame", GUI_Party4Frame)
  423.     local targetOfParty4ClickFrame = CreateFrame("button", "targetOfParty4ClickFrame", GUI_Party4Frame, "SecureActionButtonTemplate")
  424.     local Party4ttbg = targetOfParty4Frame:CreateTexture(Party4ttbg, "BACKGROUND")
  425.    
  426.    
  427.     local Party4LetterHText = Party4LetterFrame:CreateFontString("Party4LetterHText", "OVERLAY",
  428.     "GameFontNormalSmall")
  429.     local Party4LetterMText = Party4LetterFrame:CreateFontString("Party4LetterMText", "OVERLAY", "GameFontNormalSmall")
  430.     local Party4CHNumTxt = Party4HealthNumTxtFrame:CreateFontString("Party4CHNumTxt", "OVERLAY", "GameFontNormalSmall")
  431.     local Party4MHNumTxt = Party4HealthNumTxtFrame:CreateFontString("Party4MHNumTxt", "OVERLAY", "GameFontNormalSmall")
  432.     local Party4CMNumTxt = Party4ManaNumTxtFrame:CreateFontString("Party4CMNumTxt", "OVERLAY", "GameFontNormalSmall")
  433.     local Party4MMNumTxt = Party4ManaNumTxtFrame:CreateFontString("Party4MMNumTxt", "OVERLAY", "GameFontNormalSmall")
  434.  
  435.     local Party4LvlClassText = Party4InfoTextFrame:CreateFontString(Party4LvlClassText, "OVERLAY", "GameFontNormalSmall")
  436.     local Party4DeadOfflineTxt = Party4offDeadGhostTxtFrame:CreateFontString("Party4DeadOfflineTxt", "OVERLAY", "GameFontNormalSmall")
  437.     local targetOfParty4Text = targetOfParty4Frame:CreateFontString("targetOfParty4Text", "OVERLAY", "GameFontNormalSmall")
  438.  
  439. --###############################################
  440. --## Event Frames for current Party Styles   ##
  441. --###############################################
  442.  
  443. ---------------
  444. --  Party1   --
  445. ---------------
  446.  
  447. -- Health Events
  448. local Party1HealthEvents = CreateFrame("Frame", Party1HealthEvents, UIParent)
  449.     Party1HealthEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  450.     Party1HealthEvents:RegisterEvent("UNIT_HEALTH", "Party1")
  451.     Party1HealthEvents:RegisterEvent("UNIT_LEVEL", "Party1")
  452.     Party1HealthEvents:RegisterEvent("UNIT_AURA", "Party1")
  453.     Party1HealthEvents:RegisterEvent("UNIT_MAXHEALTH", "Party1")
  454.     Party1HealthEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  455.  
  456. -- Mana Events
  457. local Party1ManaEvents = CreateFrame("Frame", Party1ManaEvents, UIParent)
  458.     Party1ManaEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  459.     Party1ManaEvents:RegisterEvent("UNIT_HEALTH", "Party1")
  460.     Party1ManaEvents:RegisterEvent("UNIT_LEVEL", "Party1")
  461.     Party1ManaEvents:RegisterEvent("UNIT_MANA", "Party1")
  462.     Party1ManaEvents:RegisterEvent("UNIT_AURA", "Party1")
  463.     Party1ManaEvents:RegisterEvent("UNIT_DISPLAYPOWER", "Party1")
  464.     Party1ManaEvents:RegisterEvent("UNIT_ENERGY", "Party1")
  465.     Party1ManaEvents:RegisterEvent("UNIT_MAXENERGY", "Party1")
  466.     Party1ManaEvents:RegisterEvent("UNIT_MAXMANA", "Party1")
  467.     Party1ManaEvents:RegisterEvent("UNIT_MAXRUNICPOWER", "Party1")
  468.     Party1ManaEvents:RegisterEvent("UNIT_RUNIC_POWER", "Party1")
  469.     Party1ManaEvents:RegisterEvent("UNIT_RAGE", "Party1")
  470.     Party1ManaEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  471.  
  472. local Party1NameTextEvents = CreateFrame("frame", nil, UIParent)
  473.     Party1NameTextEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  474.     Party1NameTextEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  475.     Party1NameTextEvents:RegisterEvent("UNIT_NAME_UPDATE", "Party1")
  476.     Party1NameTextEvents:RegisterEvent("UNIT_FLAGS", "Party1")
  477.     Party1NameTextEvents:RegisterEvent("UNIT_THREAT_LIST_UPDATE", "Party1")
  478.     Party1NameTextEvents:RegisterEvent("UNIT_THREAT_SITUATION_UPDATE", "Party1")
  479.     Party1NameTextEvents:RegisterEvent("UNIT_COMBAT", "Party1")
  480.    
  481. local Party1LvlCassTextEvents = CreateFrame("frame", nil, GUI_Party1Frame)
  482.     Party1LvlCassTextEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  483.     Party1LvlCassTextEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  484.     Party1LvlCassTextEvents:RegisterEvent("UNIT_LEVEL", "Party1")
  485.    
  486. local Party1PartyLeaderEvent = CreateFrame("Frame", nil, UIParent)
  487.     Party1PartyLeaderEvent:RegisterEvent("PLAYER_ENTERING_WORLD")
  488.     Party1PartyLeaderEvent:RegisterEvent("PARTY_LEADER_CHANGED")
  489.     Party1PartyLeaderEvent:RegisterEvent("PARTY_MEMBERS_CHANGED")
  490.     Party1PartyLeaderEvent:RegisterEvent("ZONE_CHANGED_NEW_AREA")
  491.    
  492. local Party1pvpIconEvent = CreateFrame("Frame", nil, UIParent)
  493.     Party1pvpIconEvent:RegisterEvent("PLAYER_ENTERING_WORLD")
  494.     Party1pvpIconEvent:RegisterEvent("UNIT_FACTION", "Party1")
  495.     Party1pvpIconEvent:RegisterEvent("PARTY_MEMBERS_CHANGED")
  496.     Party1pvpIconEvent:RegisterEvent("UNIT_DYNAMIC_FLAGS", "Party1")
  497.  
  498. local Party1OffLineDeadEvents = CreateFrame("Frame", "Party1OffLineDeadEvents", UIParent)
  499.     Party1OffLineDeadEvents.RegisterEvents = GrimUI.RegisterEvents
  500.     Party1OffLineDeadEvents:RegisterEvents('PLAYER_ENTERING_WORLD', 'PARTY_MEMBERS_CHANGED', 'PARTY_MEMBER_DISABLE', 'PARTY_MEMBER_ENABLE')
  501.     Party1OffLineDeadEvents:RegisterEvent("UNIT_HEALTH", "Party1")
  502.    
  503. local targetOfParty1Frame = CreateFrame("frame", targetOfParty1Frame, GUI_Party1Frame)
  504.     targetOfParty1Frame.RegisterEvents = GrimUI.RegisterEvents
  505.     targetOfParty1Frame:RegisterEvents('PLAYER_ENTERING_WORLD', 'PARTY_MEMBERS_CHANGED', 'PARTY_LEADER_CHANGED', 'PLAYER_TARGET_CHANGED')
  506.     targetOfParty1Frame:RegisterEvent("UNIT_TARGET", "player")
  507.     targetOfParty1Frame:RegisterEvent("UNIT_TARGET", "Party1target")
  508.     targetOfParty1Frame:RegisterEvent("UNIT_TARGET", "target")
  509.     targetOfParty1Frame:RegisterEvent("UNIT_TARGET", "Party1")
  510.  
  511.  
  512. ---------------
  513. --  Party2   --
  514. ---------------
  515. -- Health Events
  516. local Party2HealthEvents = CreateFrame("Frame", Party2HealthEvents, UIParent)
  517.     Party2HealthEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  518.     Party2HealthEvents:RegisterEvent("UNIT_HEALTH", "Party2")
  519.     Party2HealthEvents:RegisterEvent("UNIT_LEVEL", "Party2")
  520.     Party2HealthEvents:RegisterEvent("UNIT_AURA", "Party2")
  521.     Party2HealthEvents:RegisterEvent("UNIT_MAXHEALTH", "Party2")
  522.     Party2HealthEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  523.  
  524. -- Mana Events
  525. local Party2ManaEvents = CreateFrame("Frame", Party2ManaEvents, UIParent)
  526.     Party2ManaEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  527.     Party2ManaEvents:RegisterEvent("UNIT_HEALTH", "Party2")
  528.     Party2ManaEvents:RegisterEvent("UNIT_LEVEL", "Party2")
  529.     Party2ManaEvents:RegisterEvent("UNIT_MANA", "Party2")
  530.     Party2ManaEvents:RegisterEvent("UNIT_AURA", "Party2")
  531.     Party2ManaEvents:RegisterEvent("UNIT_DISPLAYPOWER", "Party2")
  532.     Party2ManaEvents:RegisterEvent("UNIT_ENERGY", "Party2")
  533.     Party2ManaEvents:RegisterEvent("UNIT_MAXENERGY", "Party2")
  534.     Party2ManaEvents:RegisterEvent("UNIT_MAXMANA", "Party2")
  535.     Party2ManaEvents:RegisterEvent("UNIT_MAXRUNICPOWER", "Party2")
  536.     Party2ManaEvents:RegisterEvent("UNIT_RUNIC_POWER", "Party2")
  537.     Party2ManaEvents:RegisterEvent("UNIT_RAGE", "Party2")
  538.     Party2ManaEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  539.  
  540. local Party2NameTextEvents = CreateFrame("frame", nil, UIParent)
  541.     Party2NameTextEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  542.     Party2NameTextEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  543.     Party2NameTextEvents:RegisterEvent("UNIT_NAME_UPDATE", "Party2")
  544.     Party2NameTextEvents:RegisterEvent("UNIT_FLAGS", "Party2")
  545.     Party2NameTextEvents:RegisterEvent("UNIT_THREAT_LIST_UPDATE", "Party2")
  546.     Party2NameTextEvents:RegisterEvent("UNIT_THREAT_SITUATION_UPDATE", "Party2")
  547.     Party2NameTextEvents:RegisterEvent("UNIT_COMBAT", "Party2")
  548.    
  549. local Party2LvlCassTextEvents = CreateFrame("frame", nil, GUI_Party2Frame)
  550.     Party2LvlCassTextEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  551.     Party2LvlCassTextEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  552.     Party2LvlCassTextEvents:RegisterEvent("UNIT_LEVEL", "Party2")
  553.    
  554. local Party2PartyLeaderEvent = CreateFrame("Frame", nil, UIParent)
  555.     Party2PartyLeaderEvent:RegisterEvent("PLAYER_ENTERING_WORLD")
  556.     Party2PartyLeaderEvent:RegisterEvent("PARTY_LEADER_CHANGED")
  557.     Party2PartyLeaderEvent:RegisterEvent("PARTY_MEMBERS_CHANGED")
  558.     Party2PartyLeaderEvent:RegisterEvent("ZONE_CHANGED_NEW_AREA")
  559.    
  560. local Party2pvpIconEvent = CreateFrame("Frame", nil, UIParent)
  561.     Party2pvpIconEvent:RegisterEvent("PLAYER_ENTERING_WORLD")
  562.     Party2pvpIconEvent:RegisterEvent("UNIT_FACTION", "Party2")
  563.     Party2pvpIconEvent:RegisterEvent("PARTY_MEMBERS_CHANGED")
  564.     Party2pvpIconEvent:RegisterEvent("UNIT_DYNAMIC_FLAGS", "Party2")
  565.  
  566. local Party2OffLineDeadEvents = CreateFrame("Frame", "Party2OffLineDeadEvents", UIParent)
  567.     Party2OffLineDeadEvents.RegisterEvents = GrimUI.RegisterEvents
  568.     Party2OffLineDeadEvents:RegisterEvents('PLAYER_ENTERING_WORLD', 'PARTY_MEMBERS_CHANGED', 'PARTY_MEMBER_DISABLE', 'PARTY_MEMBER_ENABLE')
  569.     Party2OffLineDeadEvents:RegisterEvent("UNIT_HEALTH", "Party2")
  570.    
  571. local targetOfParty2Frame = CreateFrame("frame", targetOfParty2Frame, GUI_Party2Frame)
  572.     targetOfParty2Frame.RegisterEvents = GrimUI.RegisterEvents
  573.     targetOfParty2Frame:RegisterEvents('PLAYER_ENTERING_WORLD', 'PARTY_MEMBERS_CHANGED', 'PARTY_LEADER_CHANGED', 'PLAYER_TARGET_CHANGED')
  574.     targetOfParty2Frame:RegisterEvent("UNIT_TARGET", "player")
  575.     targetOfParty2Frame:RegisterEvent("UNIT_TARGET", "Party2target")
  576.     targetOfParty2Frame:RegisterEvent("UNIT_TARGET", "target")
  577.     targetOfParty2Frame:RegisterEvent("UNIT_TARGET", "Party2")
  578.  
  579.  
  580. ---------------
  581. --  Party3   --
  582. ---------------
  583. -- Health Events
  584. local Party3HealthEvents = CreateFrame("Frame", Party3HealthEvents, UIParent)
  585.     Party3HealthEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  586.     Party3HealthEvents:RegisterEvent("UNIT_HEALTH", "Party3")
  587.     Party3HealthEvents:RegisterEvent("UNIT_LEVEL", "Party3")
  588.     Party3HealthEvents:RegisterEvent("UNIT_AURA", "Party3")
  589.     Party3HealthEvents:RegisterEvent("UNIT_MAXHEALTH", "Party3")
  590.     Party3HealthEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  591.  
  592. -- Mana Events
  593. local Party3ManaEvents = CreateFrame("Frame", Party3ManaEvents, UIParent)
  594.     Party3ManaEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  595.     Party3ManaEvents:RegisterEvent("UNIT_HEALTH", "Party3")
  596.     Party3ManaEvents:RegisterEvent("UNIT_LEVEL", "Party3")
  597.     Party3ManaEvents:RegisterEvent("UNIT_MANA", "Party3")
  598.     Party3ManaEvents:RegisterEvent("UNIT_AURA", "Party3")
  599.     Party3ManaEvents:RegisterEvent("UNIT_DISPLAYPOWER", "Party3")
  600.     Party3ManaEvents:RegisterEvent("UNIT_ENERGY", "Party3")
  601.     Party3ManaEvents:RegisterEvent("UNIT_MAXENERGY", "Party3")
  602.     Party3ManaEvents:RegisterEvent("UNIT_MAXMANA", "Party3")
  603.     Party3ManaEvents:RegisterEvent("UNIT_MAXRUNICPOWER", "Party3")
  604.     Party3ManaEvents:RegisterEvent("UNIT_RUNIC_POWER", "Party3")
  605.     Party3ManaEvents:RegisterEvent("UNIT_RAGE", "Party3")
  606.     Party3ManaEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  607.  
  608. local Party3NameTextEvents = CreateFrame("frame", nil, UIParent)
  609.     Party3NameTextEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  610.     Party3NameTextEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  611.     Party3NameTextEvents:RegisterEvent("UNIT_NAME_UPDATE", "Party3")
  612.     Party3NameTextEvents:RegisterEvent("UNIT_FLAGS", "Party3")
  613.     Party3NameTextEvents:RegisterEvent("UNIT_THREAT_LIST_UPDATE", "Party3")
  614.     Party3NameTextEvents:RegisterEvent("UNIT_THREAT_SITUATION_UPDATE", "Party3")
  615.     Party3NameTextEvents:RegisterEvent("UNIT_COMBAT", "Party3")
  616.    
  617. local Party3LvlCassTextEvents = CreateFrame("frame", nil, GUI_Party3Frame)
  618.     Party3LvlCassTextEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  619.     Party3LvlCassTextEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  620.     Party3LvlCassTextEvents:RegisterEvent("UNIT_LEVEL", "Party3")
  621.    
  622. local Party3PartyLeaderEvent = CreateFrame("Frame", nil, UIParent)
  623.     Party3PartyLeaderEvent:RegisterEvent("PLAYER_ENTERING_WORLD")
  624.     Party3PartyLeaderEvent:RegisterEvent("PARTY_LEADER_CHANGED")
  625.     Party3PartyLeaderEvent:RegisterEvent("PARTY_MEMBERS_CHANGED")
  626.     Party3PartyLeaderEvent:RegisterEvent("ZONE_CHANGED_NEW_AREA")
  627.    
  628. local Party3pvpIconEvent = CreateFrame("Frame", nil, UIParent)
  629.     Party3pvpIconEvent:RegisterEvent("PLAYER_ENTERING_WORLD")
  630.     Party3pvpIconEvent:RegisterEvent("UNIT_FACTION", "Party3")
  631.     Party3pvpIconEvent:RegisterEvent("PARTY_MEMBERS_CHANGED")
  632.     Party3pvpIconEvent:RegisterEvent("UNIT_DYNAMIC_FLAGS", "Party3")
  633.  
  634. local Party3OffLineDeadEvents = CreateFrame("Frame", "Party3OffLineDeadEvents", UIParent)
  635.     Party3OffLineDeadEvents.RegisterEvents = GrimUI.RegisterEvents
  636.     Party3OffLineDeadEvents:RegisterEvents('PLAYER_ENTERING_WORLD', 'PARTY_MEMBERS_CHANGED', 'PARTY_MEMBER_DISABLE', 'PARTY_MEMBER_ENABLE')
  637.     Party3OffLineDeadEvents:RegisterEvent("UNIT_HEALTH", "Party3")
  638.    
  639. local targetOfParty3Frame = CreateFrame("frame", targetOfParty3Frame, GUI_Party3Frame)
  640.     targetOfParty3Frame.RegisterEvents = GrimUI.RegisterEvents
  641.     targetOfParty3Frame:RegisterEvents('PLAYER_ENTERING_WORLD', 'PARTY_MEMBERS_CHANGED', 'PARTY_LEADER_CHANGED', 'PLAYER_TARGET_CHANGED')
  642.     targetOfParty3Frame:RegisterEvent("UNIT_TARGET", "player")
  643.     targetOfParty3Frame:RegisterEvent("UNIT_TARGET", "Party3target")
  644.     targetOfParty3Frame:RegisterEvent("UNIT_TARGET", "target")
  645.     targetOfParty3Frame:RegisterEvent("UNIT_TARGET", "Party3")
  646.  
  647. ---------------
  648. --  Party4   --
  649. ---------------
  650. -- Health Events
  651. local Party4HealthEvents = CreateFrame("Frame", Party4HealthEvents, UIParent)
  652.     Party4HealthEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  653.     Party4HealthEvents:RegisterEvent("UNIT_HEALTH", "Party4")
  654.     Party4HealthEvents:RegisterEvent("UNIT_LEVEL", "Party4")
  655.     Party4HealthEvents:RegisterEvent("UNIT_AURA", "Party4")
  656.     Party4HealthEvents:RegisterEvent("UNIT_MAXHEALTH", "Party4")
  657.     Party4HealthEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  658.  
  659. -- Mana Events
  660. local Party4ManaEvents = CreateFrame("Frame", Party4ManaEvents, UIParent)
  661.     Party4ManaEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  662.     Party4ManaEvents:RegisterEvent("UNIT_HEALTH", "Party4")
  663.     Party4ManaEvents:RegisterEvent("UNIT_LEVEL", "Party4")
  664.     Party4ManaEvents:RegisterEvent("UNIT_MANA", "Party4")
  665.     Party4ManaEvents:RegisterEvent("UNIT_AURA", "Party4")
  666.     Party4ManaEvents:RegisterEvent("UNIT_DISPLAYPOWER", "Party4")
  667.     Party4ManaEvents:RegisterEvent("UNIT_ENERGY", "Party4")
  668.     Party4ManaEvents:RegisterEvent("UNIT_MAXENERGY", "Party4")
  669.     Party4ManaEvents:RegisterEvent("UNIT_MAXMANA", "Party4")
  670.     Party4ManaEvents:RegisterEvent("UNIT_MAXRUNICPOWER", "Party4")
  671.     Party4ManaEvents:RegisterEvent("UNIT_RUNIC_POWER", "Party4")
  672.     Party4ManaEvents:RegisterEvent("UNIT_RAGE", "Party4")
  673.     Party4ManaEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  674.  
  675. local Party4NameTextEvents = CreateFrame("frame", nil, UIParent)
  676.     Party4NameTextEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  677.     Party4NameTextEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  678.     Party4NameTextEvents:RegisterEvent("UNIT_NAME_UPDATE", "Party4")
  679.     Party4NameTextEvents:RegisterEvent("UNIT_FLAGS", "Party4")
  680.     Party4NameTextEvents:RegisterEvent("UNIT_THREAT_LIST_UPDATE", "Party4")
  681.     Party4NameTextEvents:RegisterEvent("UNIT_THREAT_SITUATION_UPDATE", "Party4")
  682.     Party4NameTextEvents:RegisterEvent("UNIT_COMBAT", "Party4")
  683.    
  684. local Party4LvlCassTextEvents = CreateFrame("frame", nil, GUI_Party4Frame)
  685.     Party4LvlCassTextEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  686.     Party4LvlCassTextEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  687.     Party4LvlCassTextEvents:RegisterEvent("UNIT_LEVEL", "Party4")
  688.    
  689. local Party4PartyLeaderEvent = CreateFrame("Frame", nil, UIParent)
  690.     Party4PartyLeaderEvent:RegisterEvent("PLAYER_ENTERING_WORLD")
  691.     Party4PartyLeaderEvent:RegisterEvent("PARTY_LEADER_CHANGED")
  692.     Party4PartyLeaderEvent:RegisterEvent("PARTY_MEMBERS_CHANGED")
  693.     Party4PartyLeaderEvent:RegisterEvent("ZONE_CHANGED_NEW_AREA")
  694.    
  695. local Party4pvpIconEvent = CreateFrame("Frame", nil, UIParent)
  696.     Party4pvpIconEvent:RegisterEvent("PLAYER_ENTERING_WORLD")
  697.     Party4pvpIconEvent:RegisterEvent("UNIT_FACTION", "Party4")
  698.     Party4pvpIconEvent:RegisterEvent("PARTY_MEMBERS_CHANGED")
  699.     Party4pvpIconEvent:RegisterEvent("UNIT_DYNAMIC_FLAGS", "Party4")
  700.  
  701. local Party4OffLineDeadEvents = CreateFrame("Frame", "Party4OffLineDeadEvents", UIParent)
  702.     Party4OffLineDeadEvents.RegisterEvents = GrimUI.RegisterEvents
  703.     Party4OffLineDeadEvents:RegisterEvents('PLAYER_ENTERING_WORLD', 'PARTY_MEMBERS_CHANGED', 'PARTY_MEMBER_DISABLE', 'PARTY_MEMBER_ENABLE')
  704.     Party4OffLineDeadEvents:RegisterEvent("UNIT_HEALTH", "Party4")
  705.    
  706. local targetOfParty4Frame = CreateFrame("frame", targetOfParty4Frame, GUI_Party4Frame)
  707.     targetOfParty4Frame.RegisterEvents = GrimUI.RegisterEvents
  708.     targetOfParty4Frame:RegisterEvents('PLAYER_ENTERING_WORLD', 'PARTY_MEMBERS_CHANGED', 'PARTY_LEADER_CHANGED', 'PLAYER_TARGET_CHANGED')
  709.     targetOfParty4Frame:RegisterEvent("UNIT_TARGET", "player")
  710.     targetOfParty4Frame:RegisterEvent("UNIT_TARGET", "Party4target")
  711.     targetOfParty4Frame:RegisterEvent("UNIT_TARGET", "target")
  712.     targetOfParty4Frame:RegisterEvent("UNIT_TARGET", "Party4")
  713.  
  714. ------------------------------------
  715. --- function locals.  do this to avoid 60 upvalue error
  716. -------------------------------------
  717. -- Party1
  718. local Party1active = UnitExists("Party1")
  719. local Party1Name = UnitName("Party1")
  720. local Party1Lvl = UnitLevel("Party1")
  721. local Party1class = UnitClass("Party1")
  722. local Party1Race = UnitRace("Party1")
  723. local unitParty1exists = UnitExists("Party1")
  724. local Party1isPartyLead = UnitIsPartyLeader("Party1")
  725. local Party1isDead = UnitIsDead("Party1")
  726. local Party1isGhost = UnitIsGhost("Party1")
  727. local Party1health = UnitHealth("Party1")
  728. local Party1connected = UnitIsConnected("Party1")
  729. local Party1englishFaction, Party1localizedFaction = UnitFactionGroup("Party1")
  730. local Party1ispvp = UnitIsPVP("Party1")
  731.  
  732.  
  733. -- Party2
  734. local Party2active = UnitExists("Party2")
  735. local Party2Name = UnitName("Party2")
  736. local Party2Lvl = UnitLevel("Party2")
  737. local Party2class = UnitClass("Party2")
  738. local Party2Race = UnitRace("Party2")
  739. local unitParty2exists = UnitExists("Party2")
  740. local Party2isPartyLead = UnitIsPartyLeader("Party2")
  741. local Party2englishFaction, Party2localizedFaction = UnitFactionGroup("Party2")
  742. local Party2ispvp = UnitIsPVP("Party2")
  743. local Party2isDead = UnitIsDead("Party2")
  744. local Party2isGhost = UnitIsGhost("Party2")
  745. local Party2health = UnitHealth("Party2")
  746. local Party2connected = UnitIsConnected("Party2")
  747.  
  748. -- Party3
  749. local Party3active = UnitExists("Party3")
  750. local Party3Name = UnitName("Party3")
  751. local Party3Lvl = UnitLevel("Party3")
  752. local Party3class = UnitClass("Party3")
  753. local Party3Race = UnitRace("Party3")
  754. local unitParty3exists = UnitExists("Party3")
  755. local Party3isPartyLead = UnitIsPartyLeader("Party3")
  756. local Party3englishFaction, localizedFaction = UnitFactionGroup("Party3")
  757. local Party3ispvp = UnitIsPVP("Party3")
  758. local Party3isDead = UnitIsDead("Party3")
  759. local Party3isGhost = UnitIsGhost("Party3")
  760. local Party3health = UnitHealth("Party3")
  761. local Party3connected = UnitIsConnected("Party3")
  762. -- Party4
  763.  
  764. --########################################################################
  765. --#######                 PARTY SYLES START                 ############
  766. --########################################################################
  767.  
  768. -----------------------------
  769. -- Grim Layout Style 1 ------------
  770. -----------------------------
  771. function GrimUI:GrimStyle1()
  772.    
  773.     --#################################################################---------------------
  774.     --########## Party1 Frame START ######--
  775.     --#############################################---------------------
  776.  
  777.     --Party1 main frame set height/width start
  778.     GUI_Party1Frame:SetWidth(223)
  779.     GUI_Party1Frame:SetHeight(135)
  780.     -- Party1 main frame end
  781.  
  782.     --Party1 pedestal
  783.     Party1PedestalFrame:ClearAllPoints()
  784.     Party1PedestalFrame:SetPoint("BOTTOM", GUI_Party1Frame, "BOTTOM", -62, 0)
  785.    
  786.     Party1PedestalFrame:SetHeight(15)
  787.     Party1PedestalFrame:SetWidth(49)
  788.        
  789.     Party1PedestalFrame.texture:ClearAllPoints()
  790.     Party1PedestalFrame.texture:SetAllPoints(Party1PedestalFrame)
  791.    
  792.     Party1PedestalFrame.texture:SetTexture("Interface\\AddOns\\!GrimUI\\Art\\pedestal.tga")
  793.     Party1PedestalFrame:SetFrameStrata("LOW")
  794.     Party1PedestalFrame:SetFrameLevel("2")
  795.  
  796.     -- party 1 health bar start
  797.     Party1HealthBorder:SetHeight(100)
  798.     Party1HealthBorder:SetWidth(31)
  799.    
  800.     Party1HealthBorder:ClearAllPoints()
  801.     Party1HealthBorder:SetPoint("BOTTOMLEFT", GUI_Party1Frame, "BOTTOMLEFT", 0, 0)
  802.  
  803.     Party1HealthBorder:SetBackdrop{
  804.             bgFile = nil,
  805.             edgeFile = "Interface/DialogFrame/UI-DialogBox-Border", tile = false, tileSize = 0, edgeSize = 5,
  806.             insets = { left = 0, right = 0, top = 0, bottom = 0 }
  807.         }
  808.     Party1HealthBorder:SetBackdropBorderColor(0, 0, 0, 1)
  809.     Party1HealthBorder:SetFrameStrata("BACKGROUND")
  810.     Party1HealthBorder:SetFrameLevel("3")
  811.     Party1HealthBorder:RegisterForClicks("AnyUp")
  812.     Party1HealthBorder:SetAttribute("unit", "Party1")
  813.     Party1HealthBorder:SetAttribute("*type1", "target")
  814.  
  815.         local showParty1menu = function()
  816.             ToggleDropDownMenu(1, nil, PartyMemberFrame1DropDown, "cursor", 0, 0)
  817.         end
  818.  
  819.     Party1HealthBorder.showParty1menu = showParty1menu
  820.     Party1HealthBorder.unit = "Party1"
  821.     Party1HealthBorder:SetAttribute("*type2", "showParty1menu")
  822.     Party1HealthBorder:SetScript("OnEnter", UnitFrame_OnEnter)
  823.     Party1HealthBorder:SetScript("OnLeave", UnitFrame_OnLeave)
  824.     Party1HealthBorder:SetFrameStrata("BACKGROUND")
  825.     Party1HealthBorder:SetFrameLevel("2")
  826.  
  827.     Party1HealthBar:SetWidth(29)
  828.     Party1HealthBar:SetHeight(98)
  829.    
  830.     Party1HealthBar:ClearAllPoints()
  831.     Party1HealthBar:SetPoint("CENTER", Party1HealthBorder, "CENTER", 0, 0)
  832.    
  833.     Party1HealthBar:SetStatusBarTexture("Interface\\AddOns\\!GrimUI\\Art\\VBarTexture.tga")
  834.     Party1HealthBar:SetStatusBarColor(.231, .682, .419, 1)
  835.     Party1HealthBar:SetOrientation("VERTICAL")
  836.     Party1HealthBar:SetFrameStrata("BACKGROUND")
  837.     Party1HealthBar:SetFrameLevel("2")
  838.  
  839.    
  840.    
  841.     percentParty1HText:ClearAllPoints()
  842.     percentParty1HText:SetPoint("TOP", Party1HealthBorder, "TOP", 0, -1)
  843.    
  844.     percentParty1HText:SetTextColor(1, 1, 1, 1)
  845.     percentParty1HText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 10, "NORMAL")
  846.  
  847.  
  848. ----------------------------------
  849. -- party 1 health bar end
  850. -----------------------------------
  851.  
  852.  
  853. -----------------------------------
  854. -- party 1 mana bar Start  
  855. ----------------------------------
  856.  
  857.  
  858.    
  859.     Party1ManaBorder:SetHeight(100)
  860.     Party1ManaBorder:SetWidth(31)
  861.    
  862.     Party1ManaBorder:ClearAllPoints()
  863.     Party1ManaBorder:SetPoint("BOTTOM", GUI_Party1Frame, "BOTTOM", -29, 0)
  864.  
  865.     Party1ManaBorder:SetBackdrop{
  866.             bgFile = nil,
  867.             edgeFile = "Interface/DialogFrame/UI-DialogBox-Border", tile = false, tileSize = 0, edgeSize = 5,
  868.             insets = { left = 0, right = 0, top = 0, bottom = 0 }
  869.         }
  870.     Party1ManaBorder:SetBackdropBorderColor(0, 0, 0, 1)
  871.  
  872.  
  873.     Party1ManaBorder:SetFrameStrata("BACKGROUND")
  874.     Party1ManaBorder:SetFrameLevel("3")
  875.  
  876.  
  877.     Party1ManaBorder:RegisterForClicks("AnyUp")
  878.     Party1ManaBorder:SetAttribute("unit", "Party1")
  879.     Party1ManaBorder:SetAttribute("*type1", "target")
  880.  
  881.     Party1ManaBorder.unit = "Party1"
  882.     Party1ManaBorder:SetAttribute("*type2", "showParty1menu")
  883.     Party1ManaBorder:SetScript("OnEnter", UnitFrame_OnEnter)
  884.     Party1ManaBorder:SetScript("OnLeave", UnitFrame_OnLeave)
  885.     Party1ManaBorder:SetFrameStrata("BACKGROUND")
  886.     Party1ManaBorder:SetFrameLevel("2")
  887.  
  888.  
  889.     Party1ManaBar:SetWidth(29)
  890.     Party1ManaBar:SetHeight(98)
  891.    
  892.     Party1ManaBar:ClearAllPoints()
  893.     Party1ManaBar:SetPoint("CENTER", Party1ManaBorder, "CENTER", 0, 0)
  894.    
  895.     Party1ManaBar:SetStatusBarTexture("Interface\\AddOns\\!GrimUI\\Art\\VBarTexture.tga")
  896.     Party1ManaBar:SetOrientation("VERTICAL")
  897.     Party1ManaBar:SetFrameStrata("BACKGROUND")
  898.     Party1ManaBar:SetFrameLevel("2")
  899.  
  900.    
  901.    
  902.     percentParty1MText:ClearAllPoints()
  903.     percentParty1MText:SetPoint("TOP", Party1ManaBorder, "TOP", 0, -1)
  904.    
  905.     percentParty1MText:SetTextColor(1, 1, 1, 1)
  906.     percentParty1MText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 10, "NORMAL")
  907.  
  908.  
  909.  
  910.    
  911. -- Party 1 Mana bar end
  912.  
  913. -- Party 1 TextInfo Frame Start
  914.  
  915.     Party1InfoTextFrame:ClearAllPoints()
  916.     Party1InfoTextFrame:SetPoint("RIGHT", GUI_Party1Frame, "RIGHT", 0, -7)
  917.    
  918.     Party1InfoTextFrame:SetWidth(125)
  919.     Party1InfoTextFrame:SetHeight(79)
  920.     Party1InfoTextFrame:SetFrameStrata("HIGH")
  921.     Party1InfoTextFrame:SetFrameLevel("5")
  922.  
  923.     Party1InfoTextFrame:RegisterForClicks("AnyUp")
  924.     Party1InfoTextFrame:SetAttribute("unit", "Party1")
  925.     Party1InfoTextFrame:SetAttribute("*type1", "target")
  926.  
  927.  
  928.     Party1InfoTextFrame.unit = "Party1"
  929.     Party1InfoTextFrame:SetAttribute("*type2", "showParty1menu")
  930.     Party1InfoTextFrame:SetScript("OnEnter", UnitFrame_OnEnter)
  931.     Party1InfoTextFrame:SetScript("OnLeave", UnitFrame_OnLeave)
  932.  
  933.     -- Party 1 TextInfo Frame END
  934.  
  935.     ------------------------------
  936.     -- party 1 name text Frame Start
  937.     ------------------------------
  938.  
  939.    
  940.    
  941.     Party1NameText:ClearAllPoints()
  942.     Party1NameText:SetPoint("TOPLEFT", Party1InfoTextFrame, "TOPLEFT", -1, 0)
  943.     Party1NameText:SetPoint("RIGHT", Party1InfoTextFrame, "RIGHT", 0, 0)
  944.    
  945.     Party1NameText:SetJustifyH("LEFT")
  946.     Party1NameText:SetTextColor(1, 1, 1, 1)
  947.     Party1NameText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font3.ttf", 17, "OUTLINE")
  948.  
  949.     ------------------------------
  950.     -- party 1 name text Frame END
  951.     ------------------------------
  952.    
  953.     Party1LetterFrame:ClearAllPoints()
  954.     Party1LetterFrame:SetPoint("LEFT", Party1InfoTextFrame, "LEFT", 0, -20)
  955.    
  956.     Party1LetterFrame:SetWidth(1)
  957.     Party1LetterFrame:SetHeight(1)
  958.    
  959.     Party1LetterHText:ClearAllPoints()
  960.    
  961.     Party1LetterHText:SetPoint("LEFT", Party1LetterFrame, "LEFT", 2, 0)
  962.    
  963.     Party1LetterHText:SetTextColor(0.937, 1, 0.345, 1)
  964.     Party1LetterHText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  965.    
  966.  
  967.     Party1LetterMText:ClearAllPoints()
  968.    
  969.     Party1LetterMText:SetPoint("LEFT", Party1LetterFrame, "LEFT", 60, 0)
  970.    
  971.     Party1LetterMText:SetTextColor(0.937, 1, 0.345, 1)
  972.     Party1LetterMText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  973.     Party1LetterHText:SetText("H:")
  974.     Party1LetterMText:SetText("M:")
  975.    
  976.     Party1LetterHText:Show()
  977.     Party1LetterMText:Show()
  978. ------------------------------------------------------------------------------
  979.     -- health numbered text start
  980.    
  981.     Party1HealthNumTxtFrame:ClearAllPoints()
  982.     Party1HealthNumTxtFrame:SetPoint("LEFT", Party1InfoTextFrame, "LEFT", 0, -16)
  983.    
  984.     Party1HealthNumTxtFrame:SetWidth(1)
  985.     Party1HealthNumTxtFrame:SetHeight(1)
  986.    
  987.    
  988.     Party1CHNumTxt:ClearAllPoints()
  989.     Party1CHNumTxt:SetPoint("LEFT", Party1HealthNumTxtFrame , "LEFT", 16, 0)
  990.    
  991.     Party1CHNumTxt:SetTextColor(1, 1, 1, 1)
  992.     Party1CHNumTxt:SetJustifyH("RIGHT")
  993.     Party1CHNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  994.    
  995.  
  996.    
  997.    
  998.     Party1MHNumTxt:ClearAllPoints()
  999.    
  1000.     Party1MHNumTxt:Show()
  1001.     Party1MHNumTxt:SetPoint("TOP", Party1CHNumTxt , "BOTTOM", 0, 0)
  1002.    
  1003.     Party1MHNumTxt:SetTextColor(1, 1, 1, 1)
  1004.     Party1MHNumTxt:SetJustifyH("RIGHT")
  1005.     Party1MHNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  1006.    
  1007.     ----------------------------------------------------------------
  1008.     -- Mana numbered text start
  1009.     --------------------------------
  1010.    
  1011.     -- Mana numbered text start
  1012.  
  1013.     Party1ManaNumTxtFrame:ClearAllPoints()
  1014.     Party1ManaNumTxtFrame:SetPoint("RIGHT", Party1InfoTextFrame, "RIGHT", -8, -16)
  1015.    
  1016.     Party1ManaNumTxtFrame:SetWidth(1)
  1017.     Party1ManaNumTxtFrame:SetHeight(1)
  1018.  
  1019.     Party1CMNumTxt:ClearAllPoints()
  1020.     Party1CMNumTxt:SetPoint("RIGHT", Party1ManaNumTxtFrame, "RIGHT", 0, 0)
  1021.    
  1022.     Party1CMNumTxt:SetTextColor(1, 1, 1, 1)
  1023.     Party1CMNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  1024.    
  1025.    
  1026.     Party1MMNumTxt:ClearAllPoints()
  1027.     Party1MMNumTxt:Show()
  1028.     Party1MMNumTxt:SetPoint("TOP", Party1CMNumTxt , "BOTTOM", 0, 0)
  1029.    
  1030.     Party1MMNumTxt:SetTextColor(1, 1, 1, 1)
  1031.     Party1MMNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  1032.    
  1033.     -------------------------------------------------------------------------------
  1034.     -- Party1 mana numbered text end
  1035.     ------------------------------
  1036.    
  1037.     Party1NameTextEvents:SetScript("OnEvent", function(self)
  1038.    
  1039.    
  1040.        
  1041.     if Party1active == 1 then
  1042.         local Party1NameStr = ("%s"):format(Party1Name)
  1043.         Party1NameText:SetText(Party1NameStr)
  1044.        
  1045.     end
  1046.        
  1047.     GrimUI.Party1NameColoring()
  1048.    
  1049.     end)
  1050.    
  1051.    
  1052.    
  1053.     Party1LvlClassText:ClearAllPoints()
  1054.     Party1LvlClassText:SetPoint("TOP", Party1InfoTextFrame, "TOP", 0, -34)
  1055.     Party1LvlClassText:SetPoint("LEFT", Party1InfoTextFrame, "LEFT", 2, 0)
  1056.     Party1LvlClassText:SetPoint("RIGHT", Party1InfoTextFrame, "RIGHT", 0, 0)
  1057.    
  1058.     Party1LvlClassText:SetJustifyH("LEFT")
  1059.     Party1LvlClassText:SetTextColor(0.937, 1, 0.345, 1)
  1060.     Party1LvlClassText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  1061.  
  1062.  
  1063.     Party1LvlCassTextEvents:SetScript("OnEvent", function(self)
  1064.    
  1065.  
  1066.    
  1067.     if unitParty1exists == 1 and Party1class ~= nil then
  1068.        
  1069.         local Party1lvlclassstr = ("%s %s"):format(Party1Lvl, Party1class)
  1070.         Party1LvlClassText:SetText(Party1lvlclassstr)
  1071.     elseif unitParty1exists == 1 and Party1class == nil then
  1072.         Party1LvlClassText:SetText("")
  1073.     end
  1074.  
  1075.  
  1076.     end)
  1077.    
  1078.     ----- party 1 lvl class text end
  1079.  
  1080.     -- party 1 party leader icon
  1081.    
  1082.    
  1083.     Party1LeaderFrame:ClearAllPoints()
  1084.     Party1LeaderFrame:SetPoint("TOPLEFT", Party1InfoTextFrame, "TOPLEFT", 3, -17)
  1085.    
  1086.     Party1LeaderFrame:SetHeight(20)
  1087.     Party1LeaderFrame:SetWidth(20)
  1088.     Party1LeaderFrame.texture = Party1LeaderFrame:CreateTexture()
  1089.     Party1LeaderFrame.texture:SetAllPoints(Party1LeaderFrame)
  1090.     Party1LeaderFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-LeaderIcon.blp")
  1091.     Party1LeaderFrame:Hide()
  1092.     Party1PartyLeaderEvent:SetScript("OnEvent", function(self)
  1093.          
  1094.        
  1095.        
  1096.         if Party1isPartyLead == 1 then
  1097.         Party1LeaderFrame:Show()
  1098.         end
  1099.         if Party1isPartyLead ~= 1 then
  1100.         Party1LeaderFrame:Hide()
  1101.         end
  1102.     end)
  1103.  
  1104. -- Party 1 PVP icon
  1105.    
  1106.    
  1107.     Party1pvpIconFrame:ClearAllPoints()
  1108.     Party1pvpIconFrame:SetPoint("TOPLEFT", Party1InfoTextFrame, "TOPLEFT", 22, -17)
  1109.    
  1110.     Party1pvpIconFrame:SetHeight(21)
  1111.     Party1pvpIconFrame:SetWidth(21)
  1112.     Party1pvpIconFrame.texture = Party1pvpIconFrame:CreateTexture()
  1113.     Party1pvpIconFrame.texture:SetAllPoints(Party1pvpIconFrame)
  1114.  
  1115.  
  1116.     Party1pvpIconEvent:SetScript("OnEvent", function(self)
  1117.        
  1118.        
  1119.         if Party1englishFaction == "Alliance" then    
  1120.         Party1pvpIconFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-PVP-Alliance.blp")
  1121.         elseif Party1englishFaction == "Horde" then
  1122.         Party1pvpIconFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-PVP-Horde.blp")
  1123.         end
  1124.        
  1125.        
  1126.        
  1127.         if Party1ispvp == 1 then
  1128.         Party1pvpIconFrame:Show()
  1129.         end
  1130.        
  1131.         if Party1ispvp ~= 1 then
  1132.         Party1pvpIconFrame:Hide()
  1133.         end
  1134.     end)
  1135.     --------------------------
  1136.     -- Party1 PVP icon end
  1137.     -------------------------
  1138.    
  1139.     --------------------------
  1140.     -- Party1 Offline/Dead overlay
  1141.     --------------------------
  1142.    
  1143.     Party1offDeadGhostTxtFrame:ClearAllPoints()
  1144.     Party1offDeadGhostTxtFrame:SetPoint("LEFT", GUI_Party1Frame, "LEFT", 15, 0)
  1145.    
  1146.     Party1offDeadGhostTxtFrame:SetWidth(68)
  1147.     Party1offDeadGhostTxtFrame:SetHeight(15)
  1148.    
  1149.  
  1150.    
  1151.    
  1152.     Party1DeadOfflineTxt:ClearAllPoints()
  1153.     Party1DeadOfflineTxt:SetPoint("CENTER", Party1offDeadGhostTxtFrame , "CENTER", 0, 0)
  1154.    
  1155.     Party1DeadOfflineTxt:SetTextColor(.85, .10, .10, 1)
  1156.     Party1DeadOfflineTxt:SetJustifyH("CENTER")
  1157.     Party1DeadOfflineTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 18, "OUTLINE")
  1158.    
  1159.    
  1160.     Party1OffLineDeadEvents:SetScript("OnEvent", function(self)
  1161.    
  1162.    
  1163.    
  1164.     if Party1isDead == 1 and Party1connected == 1 and Party1isGhost == nil then
  1165.        
  1166.         Party1DeadOfflineTxt:SetText("Dead")
  1167.     elseif Party1isGhost == 1 and Party1connected == 1 then
  1168.         Party1DeadOfflineTxt:SetText("Ghost")
  1169.     elseif Party1isDead == nil and Party1connected == nil and Party1isGhost == nil then
  1170.         Party1DeadOfflineTxt:SetText("Offline")
  1171.    
  1172.     elseif Party1isDead == 1 and Party1connected == nil and Party1isGhost == nil then
  1173.         Party1DeadOfflineTxt:SetText("Dead\n Offline")
  1174.     elseif Party1connected == nil and Party1isGhost == 1 then
  1175.         Party1DeadOfflineTxt:SetText("Ghost\n Offline")
  1176.     elseif Party1isDead == nil and Party1connected == 1 and Party1isGhost == nil then
  1177.         Party1DeadOfflineTxt:SetText(nil)
  1178.     end
  1179.    
  1180.    
  1181.     end)
  1182.    
  1183.     --######################  
  1184.     --Target targettarget Frame START
  1185.     --########################
  1186.        
  1187.     targetOfParty1Frame:SetWidth(122)
  1188.     targetOfParty1Frame:SetHeight(19)
  1189.    
  1190.     targetOfParty1Frame:ClearAllPoints()
  1191.     targetOfParty1Frame:SetPoint("BOTTOMRIGHT", GUI_Party1Frame, "BOTTOMRIGHT", -2, 1)
  1192.    
  1193.     targetOfParty1Frame:SetFrameStrata("HIGH")
  1194.     targetOfParty1Frame:SetFrameLevel("5")
  1195.  
  1196.    
  1197.     Party1ttbg:ClearAllPoints()
  1198.     Party1ttbg:SetAllPoints(targetOfParty1Frame)
  1199.    
  1200.    
  1201.     targetOfParty1Text:ClearAllPoints()
  1202.     targetOfParty1Text:SetPoint("CENTER", targetOfParty1Frame, "CENTER", 0, 2)
  1203.     targetOfParty1Text:SetPoint("LEFT", targetOfParty1Frame, "LEFT", 0, 1)
  1204.     targetOfParty1Text:SetPoint("RIGHT", targetOfParty1Frame, "RIGHT", 0, 1)
  1205.     targetOfParty1Text:SetTextColor(1, 1, 1, 1)
  1206.     targetOfParty1Text:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font3.ttf", 11, "OUTLINE")
  1207.  
  1208.     targetOfParty1Frame:SetScript("OnEvent", function(self)
  1209.         GrimUI.Party1Style1TargEventFunc()
  1210.     end)
  1211.    
  1212.    
  1213.     targetOfParty1ClickFrame:SetWidth(122)
  1214.     targetOfParty1ClickFrame:SetHeight(19)
  1215.    
  1216.     targetOfParty1ClickFrame:ClearAllPoints()
  1217.     targetOfParty1ClickFrame:SetPoint("BOTTOMRIGHT", GUI_Party1Frame, "BOTTOMRIGHT", -2, 1)
  1218.    
  1219.     targetOfParty1ClickFrame:SetFrameStrata("HIGH")
  1220.     targetOfParty1ClickFrame:SetFrameLevel("6")
  1221.    
  1222.     targetOfParty1ClickFrame:RegisterForClicks("AnyUp")
  1223.     targetOfParty1ClickFrame:SetAttribute("unit", "Party1target")
  1224.     targetOfParty1ClickFrame:SetAttribute("*type1", "target")
  1225.     RegisterUnitWatch(targetOfParty1ClickFrame)
  1226.  
  1227.  
  1228.         local showParty1targetmenu = function()
  1229.             ToggleDropDownMenu(1, nil, TargetFrameDropDown, "cursor", 0, 0)
  1230.        
  1231.         end
  1232.        
  1233.     targetOfParty1ClickFrame.showParty1targetmenu = showParty1targetmenu
  1234.     targetOfParty1ClickFrame.unit = "Party1target"
  1235.     targetOfParty1ClickFrame:SetAttribute("*type2", "showParty1targetmenu")
  1236.     targetOfParty1ClickFrame:SetScript("OnEnter", UnitFrame_OnEnter)
  1237.     targetOfParty1ClickFrame:SetScript("OnLeave", UnitFrame_OnLeave)
  1238.    
  1239.    
  1240.     --######################  
  1241.     --target targettargetFrame END
  1242.         --########################
  1243.    
  1244.     --###################
  1245.     -- Party1 Event Scripts
  1246.     --###################
  1247.    
  1248.     --Health Events
  1249.     Party1HealthEvents:SetScript("OnEvent", function(self)
  1250.         GrimUI.Party1Style1HealthEventFunc()
  1251.     end)
  1252.  
  1253.     --Mana Events
  1254.     Party1ManaEvents:SetScript("OnEvent", function(self)
  1255.         GrimUI.Party1Style1ManaEventFunc()
  1256.     end)
  1257.    
  1258.    
  1259.     -- after thoughts
  1260.  
  1261.    
  1262.     --##########################################################################
  1263.     -- Party1 Frame  END
  1264.     --################################################################################
  1265.    
  1266.    
  1267.     --#################################################################---------------------
  1268.     --########## Party2 Frame START ######--
  1269.     --#############################################---------------------
  1270.  
  1271.     --Party2 main frame set height/width start
  1272.     GUI_Party2Frame:SetWidth(223)
  1273.     GUI_Party2Frame:SetHeight(135)
  1274.     -- Party2 main frame end
  1275.  
  1276.     --Party2 pedestal
  1277.     Party2PedestalFrame:ClearAllPoints()
  1278.     Party2PedestalFrame:SetPoint("BOTTOM", GUI_Party2Frame, "BOTTOM", -62, 0)
  1279.    
  1280.     Party2PedestalFrame:SetHeight(15)
  1281.     Party2PedestalFrame:SetWidth(49)
  1282.        
  1283.     Party2PedestalFrame.texture:ClearAllPoints()
  1284.     Party2PedestalFrame.texture:SetAllPoints(Party2PedestalFrame)
  1285.    
  1286.     Party2PedestalFrame.texture:SetTexture("Interface\\AddOns\\!GrimUI\\Art\\pedestal.tga")
  1287.     Party2PedestalFrame:SetFrameStrata("LOW")
  1288.     Party2PedestalFrame:SetFrameLevel("2")
  1289.  
  1290.     -- party 1 health bar start
  1291.     Party2HealthBorder:SetHeight(100)
  1292.     Party2HealthBorder:SetWidth(31)
  1293.    
  1294.     Party2HealthBorder:ClearAllPoints()
  1295.     Party2HealthBorder:SetPoint("BOTTOMLEFT", GUI_Party2Frame, "BOTTOMLEFT", 0, 0)
  1296.  
  1297.     Party2HealthBorder:SetBackdrop{
  1298.             bgFile = nil,
  1299.             edgeFile = "Interface/DialogFrame/UI-DialogBox-Border", tile = false, tileSize = 0, edgeSize = 5,
  1300.             insets = { left = 0, right = 0, top = 0, bottom = 0 }
  1301.         }
  1302.     Party2HealthBorder:SetBackdropBorderColor(0, 0, 0, 1)
  1303.     Party2HealthBorder:SetFrameStrata("BACKGROUND")
  1304.     Party2HealthBorder:SetFrameLevel("3")
  1305.     Party2HealthBorder:RegisterForClicks("AnyUp")
  1306.     Party2HealthBorder:SetAttribute("unit", "Party2")
  1307.     Party2HealthBorder:SetAttribute("*type1", "target")
  1308.  
  1309.         local showParty2menu = function()
  1310.             ToggleDropDownMenu(1, nil, PartyMemberFrame1DropDown, "cursor", 0, 0)
  1311.         end
  1312.  
  1313.     Party2HealthBorder.unit = "Party2"
  1314.     Party2HealthBorder:SetAttribute("*type2", "showParty2menu")
  1315.     Party2HealthBorder:SetScript("OnEnter", UnitFrame_OnEnter)
  1316.     Party2HealthBorder:SetScript("OnLeave", UnitFrame_OnLeave)
  1317.     Party2HealthBorder:SetFrameStrata("BACKGROUND")
  1318.     Party2HealthBorder:SetFrameLevel("2")
  1319.  
  1320.     Party2HealthBar:SetWidth(29)
  1321.     Party2HealthBar:SetHeight(98)
  1322.    
  1323.     Party2HealthBar:ClearAllPoints()
  1324.     Party2HealthBar:SetPoint("CENTER", Party2HealthBorder, "CENTER", 0, 0)
  1325.    
  1326.     Party2HealthBar:SetStatusBarTexture("Interface\\AddOns\\!GrimUI\\Art\\VBarTexture.tga")
  1327.     Party2HealthBar:SetStatusBarColor(.231, .682, .419, 1)
  1328.     Party2HealthBar:SetOrientation("VERTICAL")
  1329.     Party2HealthBar:SetFrameStrata("BACKGROUND")
  1330.     Party2HealthBar:SetFrameLevel("2")
  1331.  
  1332.    
  1333.    
  1334.     percentParty2HText:ClearAllPoints()
  1335.     percentParty2HText:SetPoint("TOP", Party2HealthBorder, "TOP", 0, -1)
  1336.    
  1337.     percentParty2HText:SetTextColor(1, 1, 1, 1)
  1338.     percentParty2HText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 10, "NORMAL")
  1339.  
  1340.  
  1341. ----------------------------------
  1342. -- party 1 health bar end
  1343. -----------------------------------
  1344.  
  1345.  
  1346. -----------------------------------
  1347. -- party 1 mana bar Start  
  1348. ----------------------------------
  1349.  
  1350.  
  1351.    
  1352.     Party2ManaBorder:SetHeight(100)
  1353.     Party2ManaBorder:SetWidth(31)
  1354.    
  1355.     Party2ManaBorder:ClearAllPoints()
  1356.     Party2ManaBorder:SetPoint("BOTTOM", GUI_Party2Frame, "BOTTOM", -29, 0)
  1357.  
  1358.     Party2ManaBorder:SetBackdrop{
  1359.             bgFile = nil,
  1360.             edgeFile = "Interface/DialogFrame/UI-DialogBox-Border", tile = false, tileSize = 0, edgeSize = 5,
  1361.             insets = { left = 0, right = 0, top = 0, bottom = 0 }
  1362.         }
  1363.     Party2ManaBorder:SetBackdropBorderColor(0, 0, 0, 1)
  1364.  
  1365.  
  1366.     Party2ManaBorder:SetFrameStrata("BACKGROUND")
  1367.     Party2ManaBorder:SetFrameLevel("3")
  1368.  
  1369.  
  1370.     Party2ManaBorder:RegisterForClicks("AnyUp")
  1371.     Party2ManaBorder:SetAttribute("unit", "Party2")
  1372.     Party2ManaBorder:SetAttribute("*type1", "target")
  1373.  
  1374.  
  1375.     Party2ManaBorder.unit = "Party2"
  1376.     Party2ManaBorder:SetAttribute("*type2", "showParty2menu")
  1377.     Party2ManaBorder:SetScript("OnEnter", UnitFrame_OnEnter)
  1378.     Party2ManaBorder:SetScript("OnLeave", UnitFrame_OnLeave)
  1379.     Party2ManaBorder:SetFrameStrata("BACKGROUND")
  1380.     Party2ManaBorder:SetFrameLevel("2")
  1381.  
  1382.  
  1383.     Party2ManaBar:SetWidth(29)
  1384.     Party2ManaBar:SetHeight(98)
  1385.    
  1386.     Party2ManaBar:ClearAllPoints()
  1387.     Party2ManaBar:SetPoint("CENTER", Party2ManaBorder, "CENTER", 0, 0)
  1388.    
  1389.     Party2ManaBar:SetStatusBarTexture("Interface\\AddOns\\!GrimUI\\Art\\VBarTexture.tga")
  1390.     Party2ManaBar:SetOrientation("VERTICAL")
  1391.     Party2ManaBar:SetFrameStrata("BACKGROUND")
  1392.     Party2ManaBar:SetFrameLevel("2")
  1393.  
  1394.    
  1395.    
  1396.     percentParty2MText:ClearAllPoints()
  1397.     percentParty2MText:SetPoint("TOP", Party2ManaBorder, "TOP", 0, -1)
  1398.    
  1399.     percentParty2MText:SetTextColor(1, 1, 1, 1)
  1400.     percentParty2MText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 10, "NORMAL")
  1401.  
  1402.  
  1403.  
  1404.    
  1405. -- Party 1 Mana bar end
  1406.  
  1407. -- Party 1 TextInfo Frame Start
  1408.  
  1409.     Party2InfoTextFrame:ClearAllPoints()
  1410.     Party2InfoTextFrame:SetPoint("RIGHT", GUI_Party2Frame, "RIGHT", 0, -7)
  1411.    
  1412.     Party2InfoTextFrame:SetWidth(125)
  1413.     Party2InfoTextFrame:SetHeight(79)
  1414.     Party2InfoTextFrame:SetFrameStrata("HIGH")
  1415.     Party2InfoTextFrame:SetFrameLevel("5")
  1416.  
  1417.     Party2InfoTextFrame:RegisterForClicks("AnyUp")
  1418.     Party2InfoTextFrame:SetAttribute("unit", "Party2")
  1419.     Party2InfoTextFrame:SetAttribute("*type1", "target")
  1420.  
  1421.  
  1422.     Party2InfoTextFrame.unit = "Party2"
  1423.     Party2InfoTextFrame:SetAttribute("*type2", "showParty2menu")
  1424.     Party2InfoTextFrame:SetScript("OnEnter", UnitFrame_OnEnter)
  1425.     Party2InfoTextFrame:SetScript("OnLeave", UnitFrame_OnLeave)
  1426.  
  1427.     -- Party 1 TextInfo Frame END
  1428.  
  1429.     ------------------------------
  1430.     -- party 1 name text Frame Start
  1431.     ------------------------------
  1432.  
  1433.    
  1434.    
  1435.     Party2NameText:ClearAllPoints()
  1436.     Party2NameText:SetPoint("TOPLEFT", Party2InfoTextFrame, "TOPLEFT", -1, 0)
  1437.     Party2NameText:SetPoint("RIGHT", Party2InfoTextFrame, "RIGHT", 0, 0)
  1438.    
  1439.     Party2NameText:SetJustifyH("LEFT")
  1440.     Party2NameText:SetTextColor(1, 1, 1, 1)
  1441.     Party2NameText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font3.ttf", 17, "OUTLINE")
  1442.  
  1443.     ------------------------------
  1444.     -- party 1 name text Frame END
  1445.     ------------------------------
  1446.    
  1447.     Party2LetterFrame:ClearAllPoints()
  1448.     Party2LetterFrame:SetPoint("LEFT", Party2InfoTextFrame, "LEFT", 0, -20)
  1449.    
  1450.     Party2LetterFrame:SetWidth(1)
  1451.     Party2LetterFrame:SetHeight(1)
  1452.    
  1453.     Party2LetterHText:ClearAllPoints()
  1454.    
  1455.     Party2LetterHText:SetPoint("LEFT", Party2LetterFrame, "LEFT", 2, 0)
  1456.    
  1457.     Party2LetterHText:SetTextColor(0.937, 1, 0.345, 1)
  1458.     Party2LetterHText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  1459.    
  1460.  
  1461.     Party2LetterMText:ClearAllPoints()
  1462.    
  1463.     Party2LetterMText:SetPoint("LEFT", Party2LetterFrame, "LEFT", 60, 0)
  1464.    
  1465.     Party2LetterMText:SetTextColor(0.937, 1, 0.345, 1)
  1466.     Party2LetterMText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  1467.     Party2LetterHText:SetText("H:")
  1468.     Party2LetterMText:SetText("M:")
  1469.    
  1470.     Party2LetterHText:Show()
  1471.     Party2LetterMText:Show()
  1472. ------------------------------------------------------------------------------
  1473.     -- health numbered text start
  1474.    
  1475.     Party2HealthNumTxtFrame:ClearAllPoints()
  1476.     Party2HealthNumTxtFrame:SetPoint("LEFT", Party2InfoTextFrame, "LEFT", 0, -16)
  1477.    
  1478.     Party2HealthNumTxtFrame:SetWidth(1)
  1479.     Party2HealthNumTxtFrame:SetHeight(1)
  1480.    
  1481.    
  1482.     Party2CHNumTxt:ClearAllPoints()
  1483.     Party2CHNumTxt:SetPoint("LEFT", Party2HealthNumTxtFrame , "LEFT", 16, 0)
  1484.    
  1485.     Party2CHNumTxt:SetTextColor(1, 1, 1, 1)
  1486.     Party2CHNumTxt:SetJustifyH("RIGHT")
  1487.     Party2CHNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  1488.    
  1489.  
  1490.    
  1491.    
  1492.     Party2MHNumTxt:ClearAllPoints()
  1493.    
  1494.     Party2MHNumTxt:Show()
  1495.     Party2MHNumTxt:SetPoint("TOP", Party2CHNumTxt , "BOTTOM", 0, 0)
  1496.    
  1497.     Party2MHNumTxt:SetTextColor(1, 1, 1, 1)
  1498.     Party2MHNumTxt:SetJustifyH("RIGHT")
  1499.     Party2MHNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  1500.    
  1501.     ----------------------------------------------------------------
  1502.     -- Mana numbered text start
  1503.     --------------------------------
  1504.    
  1505.     -- Mana numbered text start
  1506.  
  1507.     Party2ManaNumTxtFrame:ClearAllPoints()
  1508.     Party2ManaNumTxtFrame:SetPoint("RIGHT", Party2InfoTextFrame, "RIGHT", -8, -16)
  1509.    
  1510.     Party2ManaNumTxtFrame:SetWidth(1)
  1511.     Party2ManaNumTxtFrame:SetHeight(1)
  1512.  
  1513.     Party2CMNumTxt:ClearAllPoints()
  1514.     Party2CMNumTxt:SetPoint("RIGHT", Party2ManaNumTxtFrame, "RIGHT", 0, 0)
  1515.    
  1516.     Party2CMNumTxt:SetTextColor(1, 1, 1, 1)
  1517.     Party2CMNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  1518.    
  1519.    
  1520.     Party2MMNumTxt:ClearAllPoints()
  1521.     Party2MMNumTxt:Show()
  1522.     Party2MMNumTxt:SetPoint("TOP", Party2CMNumTxt , "BOTTOM", 0, 0)
  1523.    
  1524.     Party2MMNumTxt:SetTextColor(1, 1, 1, 1)
  1525.     Party2MMNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  1526.    
  1527.     -------------------------------------------------------------------------------
  1528.     -- Party2 mana numbered text end
  1529.     ------------------------------
  1530.    
  1531.     Party2NameTextEvents:SetScript("OnEvent", function(self)
  1532.    
  1533.    
  1534.        
  1535.     if Party2active == 1 then
  1536.         local Party2NameStr = ("%s"):format(Party2Name)
  1537.         Party2NameText:SetText(Party2NameStr)
  1538.        
  1539.     end
  1540.    
  1541.     GrimUI.Party2NameColoring()
  1542.    
  1543.     end)
  1544.    
  1545.    
  1546.    
  1547.     Party2LvlClassText:ClearAllPoints()
  1548.     Party2LvlClassText:SetPoint("TOP", Party2InfoTextFrame, "TOP", 0, -34)
  1549.     Party2LvlClassText:SetPoint("LEFT", Party2InfoTextFrame, "LEFT", 2, 0)
  1550.     Party2LvlClassText:SetPoint("RIGHT", Party2InfoTextFrame, "RIGHT", 0, 0)
  1551.    
  1552.     Party2LvlClassText:SetJustifyH("LEFT")
  1553.     Party2LvlClassText:SetTextColor(0.937, 1, 0.345, 1)
  1554.     Party2LvlClassText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  1555.  
  1556.  
  1557.     Party2LvlCassTextEvents:SetScript("OnEvent", function(self)
  1558.    
  1559.  
  1560.    
  1561.     if unitParty2exists == 1 and Party2class ~= nil then
  1562.        
  1563.         local Party2lvlclassstr = ("%s %s"):format(Party2Lvl, Party2class)
  1564.         Party2LvlClassText:SetText(Party2lvlclassstr)
  1565.     elseif unitParty2exists == 1 and Party2class == nil then
  1566.         Party2LvlClassText:SetText("")
  1567.     end
  1568.  
  1569.  
  1570.     end)
  1571.    
  1572.     ----- party 1 lvl class text end
  1573.  
  1574.     -- party 1 party leader icon
  1575.    
  1576.    
  1577.     Party2LeaderFrame:ClearAllPoints()
  1578.     Party2LeaderFrame:SetPoint("TOPLEFT", Party2InfoTextFrame, "TOPLEFT", 3, -17)
  1579.    
  1580.     Party2LeaderFrame:SetHeight(20)
  1581.     Party2LeaderFrame:SetWidth(20)
  1582.     Party2LeaderFrame.texture = Party2LeaderFrame:CreateTexture()
  1583.     Party2LeaderFrame.texture:SetAllPoints(Party2LeaderFrame)
  1584.     Party2LeaderFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-LeaderIcon.blp")
  1585.     Party2LeaderFrame:Hide()
  1586.     Party2PartyLeaderEvent:SetScript("OnEvent", function(self)
  1587.          
  1588.        
  1589.        
  1590.         if Party2isPartyLead == 1 then
  1591.         Party2LeaderFrame:Show()
  1592.         end
  1593.         if Party2isPartyLead ~= 1 then
  1594.         Party2LeaderFrame:Hide()
  1595.         end
  1596.     end)
  1597.  
  1598. -- Party 1 PVP icon
  1599.    
  1600.    
  1601.     Party2pvpIconFrame:ClearAllPoints()
  1602.     Party2pvpIconFrame:SetPoint("TOPLEFT", Party2InfoTextFrame, "TOPLEFT", 22, -17)
  1603.    
  1604.     Party2pvpIconFrame:SetHeight(21)
  1605.     Party2pvpIconFrame:SetWidth(21)
  1606.     Party2pvpIconFrame.texture = Party2pvpIconFrame:CreateTexture()
  1607.     Party2pvpIconFrame.texture:SetAllPoints(Party2pvpIconFrame)
  1608.  
  1609.  
  1610.     Party2pvpIconEvent:SetScript("OnEvent", function(self)
  1611.        
  1612.        
  1613.         if Party2englishFaction == "Alliance" then    
  1614.         Party2pvpIconFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-PVP-Alliance.blp")
  1615.         elseif Party2englishFaction == "Horde" then
  1616.         Party2pvpIconFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-PVP-Horde.blp")
  1617.         end
  1618.        
  1619.        
  1620.         if Party2ispvp == 1 then
  1621.         Party2pvpIconFrame:Show()
  1622.         end
  1623.        
  1624.         if Party2ispvp ~= 1 then
  1625.         Party2pvpIconFrame:Hide()
  1626.         end
  1627.     end)
  1628.     --------------------------
  1629.     -- Party2 PVP icon end
  1630.     -------------------------
  1631.    
  1632.     --------------------------
  1633.     -- Party2 Offline/Dead overlay
  1634.     --------------------------
  1635.    
  1636.     Party2offDeadGhostTxtFrame:ClearAllPoints()
  1637.     Party2offDeadGhostTxtFrame:SetPoint("LEFT", GUI_Party2Frame, "LEFT", 15, 0)
  1638.    
  1639.     Party2offDeadGhostTxtFrame:SetWidth(68)
  1640.     Party2offDeadGhostTxtFrame:SetHeight(15)
  1641.    
  1642.  
  1643.    
  1644.    
  1645.     Party2DeadOfflineTxt:ClearAllPoints()
  1646.     Party2DeadOfflineTxt:SetPoint("CENTER", Party2offDeadGhostTxtFrame , "CENTER", 0, 0)
  1647.    
  1648.     Party2DeadOfflineTxt:SetTextColor(.85, .10, .10, 1)
  1649.     Party2DeadOfflineTxt:SetJustifyH("CENTER")
  1650.     Party2DeadOfflineTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 18, "OUTLINE")
  1651.    
  1652.    
  1653.     Party2OffLineDeadEvents:SetScript("OnEvent", function(self)
  1654.    
  1655.    
  1656.     if Party2isDead == 1 and Party2connected == 1 and Party2isGhost == nil then
  1657.        
  1658.         Party2DeadOfflineTxt:SetText("Dead")
  1659.     elseif Party2isGhost == 1 and Party2connected == 1 then
  1660.         Party2DeadOfflineTxt:SetText("Ghost")
  1661.     elseif Party2isDead == nil and Party2connected == nil and Party2isGhost == nil then
  1662.         Party2DeadOfflineTxt:SetText("Offline")
  1663.    
  1664.     elseif Party2isDead == 1 and Party2connected == nil and Party2isGhost == nil then
  1665.         Party2DeadOfflineTxt:SetText("Dead\n Offline")
  1666.     elseif Party2connected == nil and Party2isGhost == 1 then
  1667.         Party2DeadOfflineTxt:SetText("Ghost\n Offline")
  1668.     elseif Party2isDead == nil and Party2connected == 1 and Party2isGhost == nil then
  1669.         Party2DeadOfflineTxt:SetText(nil)
  1670.     end
  1671.    
  1672.    
  1673.     end)
  1674.    
  1675.     --######################  
  1676.     --Target targettarget Frame START
  1677.     --########################
  1678.        
  1679.     targetOfParty2Frame:SetWidth(122)
  1680.     targetOfParty2Frame:SetHeight(19)
  1681.    
  1682.     targetOfParty2Frame:ClearAllPoints()
  1683.     targetOfParty2Frame:SetPoint("BOTTOMRIGHT", GUI_Party2Frame, "BOTTOMRIGHT", -2, 1)
  1684.    
  1685.     targetOfParty2Frame:SetFrameStrata("HIGH")
  1686.     targetOfParty2Frame:SetFrameLevel("5")
  1687.  
  1688.    
  1689.     Party2ttbg:ClearAllPoints()
  1690.     Party2ttbg:SetAllPoints(targetOfParty2Frame)
  1691.    
  1692.    
  1693.     targetOfParty2Text:ClearAllPoints()
  1694.     targetOfParty2Text:SetPoint("CENTER", targetOfParty2Frame, "CENTER", 0, 2)
  1695.     targetOfParty2Text:SetPoint("LEFT", targetOfParty2Frame, "LEFT", 0, 1)
  1696.     targetOfParty2Text:SetPoint("RIGHT", targetOfParty2Frame, "RIGHT", 0, 1)
  1697.     targetOfParty2Text:SetTextColor(1, 1, 1, 1)
  1698.     targetOfParty2Text:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font3.ttf", 11, "OUTLINE")
  1699.  
  1700.     targetOfParty2Frame:SetScript("OnEvent", function(self)
  1701.         GrimUI.Party2Style1TargEventFunc()
  1702.     end)
  1703.    
  1704.    
  1705.     targetOfParty2ClickFrame:SetWidth(122)
  1706.     targetOfParty2ClickFrame:SetHeight(19)
  1707.    
  1708.     targetOfParty2ClickFrame:ClearAllPoints()
  1709.     targetOfParty2ClickFrame:SetPoint("BOTTOMRIGHT", GUI_Party2Frame, "BOTTOMRIGHT", -2, 1)
  1710.    
  1711.     targetOfParty2ClickFrame:SetFrameStrata("HIGH")
  1712.     targetOfParty2ClickFrame:SetFrameLevel("6")
  1713.    
  1714.     targetOfParty2ClickFrame:RegisterForClicks("AnyUp")
  1715.     targetOfParty2ClickFrame:SetAttribute("unit", "Party2target")
  1716.     targetOfParty2ClickFrame:SetAttribute("*type1", "target")
  1717.     RegisterUnitWatch(targetOfParty2ClickFrame)
  1718.  
  1719.  
  1720.         local showParty2targetmenu = function()
  1721.             ToggleDropDownMenu(1, nil, TargetFrameDropDown, "cursor", 0, 0)
  1722.        
  1723.         end
  1724.        
  1725.     targetOfParty2ClickFrame.showParty2targetmenu = showParty2targetmenu
  1726.     targetOfParty2ClickFrame.unit = "Party2target"
  1727.     targetOfParty2ClickFrame:SetAttribute("*type2", "showParty2targetmenu")
  1728.     targetOfParty2ClickFrame:SetScript("OnEnter", UnitFrame_OnEnter)
  1729.     targetOfParty2ClickFrame:SetScript("OnLeave", UnitFrame_OnLeave)
  1730.    
  1731.    
  1732.     --######################  
  1733.     --target targettargetFrame END
  1734.         --########################
  1735.    
  1736.     --###################
  1737.     -- Party2 Event Scripts
  1738.     --###################
  1739.    
  1740.     --Health Events
  1741.     Party2HealthEvents:SetScript("OnEvent", function(self)
  1742.         GrimUI.Party2Style1HealthEventFunc()
  1743.     end)
  1744.  
  1745.     --Mana Events
  1746.     Party2ManaEvents:SetScript("OnEvent", function(self)
  1747.         GrimUI.Party2Style1ManaEventFunc()
  1748.     end)
  1749.    
  1750.    
  1751.     -- after thoughts
  1752.  
  1753.    
  1754.     --##########################################################################
  1755.     -- Party2 Frame  END
  1756.     --################################################################################
  1757.    
  1758.     --#################################################################---------------------
  1759.     --########## Party3 Frame START ######--
  1760.     --#############################################---------------------
  1761.  
  1762.     --Party3 main frame set height/width start
  1763.     GUI_Party3Frame:SetWidth(223)
  1764.     GUI_Party3Frame:SetHeight(135)
  1765.     -- Party3 main frame end
  1766.  
  1767.     --Party3 pedestal
  1768.     Party3PedestalFrame:ClearAllPoints()
  1769.     Party3PedestalFrame:SetPoint("BOTTOM", GUI_Party3Frame, "BOTTOM", -62, 0)
  1770.    
  1771.     Party3PedestalFrame:SetHeight(15)
  1772.     Party3PedestalFrame:SetWidth(49)
  1773.        
  1774.     Party3PedestalFrame.texture:ClearAllPoints()
  1775.     Party3PedestalFrame.texture:SetAllPoints(Party3PedestalFrame)
  1776.    
  1777.     Party3PedestalFrame.texture:SetTexture("Interface\\AddOns\\!GrimUI\\Art\\pedestal.tga")
  1778.     Party3PedestalFrame:SetFrameStrata("LOW")
  1779.     Party3PedestalFrame:SetFrameLevel("2")
  1780.  
  1781.     -- party 1 health bar start
  1782.     Party3HealthBorder:SetHeight(100)
  1783.     Party3HealthBorder:SetWidth(31)
  1784.    
  1785.     Party3HealthBorder:ClearAllPoints()
  1786.     Party3HealthBorder:SetPoint("BOTTOMLEFT", GUI_Party3Frame, "BOTTOMLEFT", 0, 0)
  1787.  
  1788.     Party3HealthBorder:SetBackdrop{
  1789.             bgFile = nil,
  1790.             edgeFile = "Interface/DialogFrame/UI-DialogBox-Border", tile = false, tileSize = 0, edgeSize = 5,
  1791.             insets = { left = 0, right = 0, top = 0, bottom = 0 }
  1792.         }
  1793.     Party3HealthBorder:SetBackdropBorderColor(0, 0, 0, 1)
  1794.     Party3HealthBorder:SetFrameStrata("BACKGROUND")
  1795.     Party3HealthBorder:SetFrameLevel("3")
  1796.     Party3HealthBorder:RegisterForClicks("AnyUp")
  1797.     Party3HealthBorder:SetAttribute("unit", "Party3")
  1798.     Party3HealthBorder:SetAttribute("*type1", "target")
  1799.  
  1800.         local showParty3menu = function()
  1801.             ToggleDropDownMenu(1, nil, PartyMemberFrame1DropDown, "cursor", 0, 0)
  1802.         end
  1803.  
  1804.  
  1805.     Party3HealthBorder.unit = "Party3"
  1806.     Party3HealthBorder:SetAttribute("*type2", "showParty3menu")
  1807.     Party3HealthBorder:SetScript("OnEnter", UnitFrame_OnEnter)
  1808.     Party3HealthBorder:SetScript("OnLeave", UnitFrame_OnLeave)
  1809.     Party3HealthBorder:SetFrameStrata("BACKGROUND")
  1810.     Party3HealthBorder:SetFrameLevel("2")
  1811.  
  1812.     Party3HealthBar:SetWidth(29)
  1813.     Party3HealthBar:SetHeight(98)
  1814.    
  1815.     Party3HealthBar:ClearAllPoints()
  1816.     Party3HealthBar:SetPoint("CENTER", Party3HealthBorder, "CENTER", 0, 0)
  1817.    
  1818.     Party3HealthBar:SetStatusBarTexture("Interface\\AddOns\\!GrimUI\\Art\\VBarTexture.tga")
  1819.     Party3HealthBar:SetStatusBarColor(.231, .682, .419, 1)
  1820.     Party3HealthBar:SetOrientation("VERTICAL")
  1821.     Party3HealthBar:SetFrameStrata("BACKGROUND")
  1822.     Party3HealthBar:SetFrameLevel("2")
  1823.  
  1824.    
  1825.    
  1826.     percentParty3HText:ClearAllPoints()
  1827.     percentParty3HText:SetPoint("TOP", Party3HealthBorder, "TOP", 0, -1)
  1828.    
  1829.     percentParty3HText:SetTextColor(1, 1, 1, 1)
  1830.     percentParty3HText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 10, "NORMAL")
  1831.  
  1832.  
  1833. ----------------------------------
  1834. -- party 1 health bar end
  1835. -----------------------------------
  1836.  
  1837.  
  1838. -----------------------------------
  1839. -- party 1 mana bar Start  
  1840. ----------------------------------
  1841.  
  1842.  
  1843.    
  1844.     Party3ManaBorder:SetHeight(100)
  1845.     Party3ManaBorder:SetWidth(31)
  1846.    
  1847.     Party3ManaBorder:ClearAllPoints()
  1848.     Party3ManaBorder:SetPoint("BOTTOM", GUI_Party3Frame, "BOTTOM", -29, 0)
  1849.  
  1850.     Party3ManaBorder:SetBackdrop{
  1851.             bgFile = nil,
  1852.             edgeFile = "Interface/DialogFrame/UI-DialogBox-Border", tile = false, tileSize = 0, edgeSize = 5,
  1853.             insets = { left = 0, right = 0, top = 0, bottom = 0 }
  1854.         }
  1855.     Party3ManaBorder:SetBackdropBorderColor(0, 0, 0, 1)
  1856.  
  1857.  
  1858.     Party3ManaBorder:SetFrameStrata("BACKGROUND")
  1859.     Party3ManaBorder:SetFrameLevel("3")
  1860.  
  1861.  
  1862.     Party3ManaBorder:RegisterForClicks("AnyUp")
  1863.     Party3ManaBorder:SetAttribute("unit", "Party3")
  1864.     Party3ManaBorder:SetAttribute("*type1", "target")
  1865.  
  1866.  
  1867.     Party3ManaBorder.unit = "Party3"
  1868.     Party3ManaBorder:SetAttribute("*type2", "showParty3menu")
  1869.     Party3ManaBorder:SetScript("OnEnter", UnitFrame_OnEnter)
  1870.     Party3ManaBorder:SetScript("OnLeave", UnitFrame_OnLeave)
  1871.     Party3ManaBorder:SetFrameStrata("BACKGROUND")
  1872.     Party3ManaBorder:SetFrameLevel("2")
  1873.  
  1874.  
  1875.     Party3ManaBar:SetWidth(29)
  1876.     Party3ManaBar:SetHeight(98)
  1877.    
  1878.     Party3ManaBar:ClearAllPoints()
  1879.     Party3ManaBar:SetPoint("CENTER", Party3ManaBorder, "CENTER", 0, 0)
  1880.    
  1881.     Party3ManaBar:SetStatusBarTexture("Interface\\AddOns\\!GrimUI\\Art\\VBarTexture.tga")
  1882.     Party3ManaBar:SetOrientation("VERTICAL")
  1883.     Party3ManaBar:SetFrameStrata("BACKGROUND")
  1884.     Party3ManaBar:SetFrameLevel("2")
  1885.  
  1886.    
  1887.    
  1888.     percentParty3MText:ClearAllPoints()
  1889.     percentParty3MText:SetPoint("TOP", Party3ManaBorder, "TOP", 0, -1)
  1890.    
  1891.     percentParty3MText:SetTextColor(1, 1, 1, 1)
  1892.     percentParty3MText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 10, "NORMAL")
  1893.  
  1894.  
  1895.  
  1896.    
  1897. -- Party 1 Mana bar end
  1898.  
  1899. -- Party 1 TextInfo Frame Start
  1900.  
  1901.     Party3InfoTextFrame:ClearAllPoints()
  1902.     Party3InfoTextFrame:SetPoint("RIGHT", GUI_Party3Frame, "RIGHT", 0, -7)
  1903.    
  1904.     Party3InfoTextFrame:SetWidth(125)
  1905.     Party3InfoTextFrame:SetHeight(79)
  1906.     Party3InfoTextFrame:SetFrameStrata("HIGH")
  1907.     Party3InfoTextFrame:SetFrameLevel("5")
  1908.  
  1909.     Party3InfoTextFrame:RegisterForClicks("AnyUp")
  1910.     Party3InfoTextFrame:SetAttribute("unit", "Party3")
  1911.     Party3InfoTextFrame:SetAttribute("*type1", "target")
  1912.  
  1913.     Party3InfoTextFrame.unit = "Party3"
  1914.     Party3InfoTextFrame:SetAttribute("*type2", "showParty3menu")
  1915.     Party3InfoTextFrame:SetScript("OnEnter", UnitFrame_OnEnter)
  1916.     Party3InfoTextFrame:SetScript("OnLeave", UnitFrame_OnLeave)
  1917.  
  1918.     -- Party 1 TextInfo Frame END
  1919.  
  1920.     ------------------------------
  1921.     -- party 1 name text Frame Start
  1922.     ------------------------------
  1923.  
  1924.    
  1925.    
  1926.     Party3NameText:ClearAllPoints()
  1927.     Party3NameText:SetPoint("TOPLEFT", Party3InfoTextFrame, "TOPLEFT", -1, 0)
  1928.     Party3NameText:SetPoint("RIGHT", Party3InfoTextFrame, "RIGHT", 0, 0)
  1929.    
  1930.     Party3NameText:SetJustifyH("LEFT")
  1931.     Party3NameText:SetTextColor(1, 1, 1, 1)
  1932.     Party3NameText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font3.ttf", 17, "OUTLINE")
  1933.  
  1934.     ------------------------------
  1935.     -- party 1 name text Frame END
  1936.     ------------------------------
  1937.    
  1938.     Party3LetterFrame:ClearAllPoints()
  1939.     Party3LetterFrame:SetPoint("LEFT", Party3InfoTextFrame, "LEFT", 0, -20)
  1940.    
  1941.     Party3LetterFrame:SetWidth(1)
  1942.     Party3LetterFrame:SetHeight(1)
  1943.    
  1944.     Party3LetterHText:ClearAllPoints()
  1945.    
  1946.     Party3LetterHText:SetPoint("LEFT", Party3LetterFrame, "LEFT", 2, 0)
  1947.    
  1948.     Party3LetterHText:SetTextColor(0.937, 1, 0.345, 1)
  1949.     Party3LetterHText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  1950.    
  1951.  
  1952.     Party3LetterMText:ClearAllPoints()
  1953.    
  1954.     Party3LetterMText:SetPoint("LEFT", Party3LetterFrame, "LEFT", 60, 0)
  1955.    
  1956.     Party3LetterMText:SetTextColor(0.937, 1, 0.345, 1)
  1957.     Party3LetterMText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  1958.     Party3LetterHText:SetText("H:")
  1959.     Party3LetterMText:SetText("M:")
  1960.    
  1961.     Party3LetterHText:Show()
  1962.     Party3LetterMText:Show()
  1963. ------------------------------------------------------------------------------
  1964.     -- health numbered text start
  1965.    
  1966.     Party3HealthNumTxtFrame:ClearAllPoints()
  1967.     Party3HealthNumTxtFrame:SetPoint("LEFT", Party3InfoTextFrame, "LEFT", 0, -16)
  1968.    
  1969.     Party3HealthNumTxtFrame:SetWidth(1)
  1970.     Party3HealthNumTxtFrame:SetHeight(1)
  1971.    
  1972.    
  1973.     Party3CHNumTxt:ClearAllPoints()
  1974.     Party3CHNumTxt:SetPoint("LEFT", Party3HealthNumTxtFrame , "LEFT", 16, 0)
  1975.    
  1976.     Party3CHNumTxt:SetTextColor(1, 1, 1, 1)
  1977.     Party3CHNumTxt:SetJustifyH("RIGHT")
  1978.     Party3CHNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  1979.    
  1980.  
  1981.    
  1982.    
  1983.     Party3MHNumTxt:ClearAllPoints()
  1984.    
  1985.     Party3MHNumTxt:Show()
  1986.     Party3MHNumTxt:SetPoint("TOP", Party3CHNumTxt , "BOTTOM", 0, 0)
  1987.    
  1988.     Party3MHNumTxt:SetTextColor(1, 1, 1, 1)
  1989.     Party3MHNumTxt:SetJustifyH("RIGHT")
  1990.     Party3MHNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  1991.    
  1992.     ----------------------------------------------------------------
  1993.     -- Mana numbered text start
  1994.     --------------------------------
  1995.    
  1996.     -- Mana numbered text start
  1997.  
  1998.     Party3ManaNumTxtFrame:ClearAllPoints()
  1999.     Party3ManaNumTxtFrame:SetPoint("RIGHT", Party3InfoTextFrame, "RIGHT", -8, -16)
  2000.    
  2001.     Party3ManaNumTxtFrame:SetWidth(1)
  2002.     Party3ManaNumTxtFrame:SetHeight(1)
  2003.  
  2004.     Party3CMNumTxt:ClearAllPoints()
  2005.     Party3CMNumTxt:SetPoint("RIGHT", Party3ManaNumTxtFrame, "RIGHT", 0, 0)
  2006.    
  2007.     Party3CMNumTxt:SetTextColor(1, 1, 1, 1)
  2008.     Party3CMNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  2009.    
  2010.    
  2011.     Party3MMNumTxt:ClearAllPoints()
  2012.     Party3MMNumTxt:Show()
  2013.     Party3MMNumTxt:SetPoint("TOP", Party3CMNumTxt , "BOTTOM", 0, 0)
  2014.    
  2015.     Party3MMNumTxt:SetTextColor(1, 1, 1, 1)
  2016.     Party3MMNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  2017.    
  2018.     -------------------------------------------------------------------------------
  2019.     -- Party3 mana numbered text end
  2020.     ------------------------------
  2021.    
  2022.     Party3NameTextEvents:SetScript("OnEvent", function(self)
  2023.    
  2024.    
  2025.        
  2026.     if Party3active == 1 then
  2027.         local Party3NameStr = ("%s"):format(Party3Name)
  2028.         Party3NameText:SetText(Party3NameStr)
  2029.        
  2030.     end
  2031.    
  2032.     GrimUI.Party3NameColoring()
  2033.    
  2034.     end)
  2035.    
  2036.    
  2037.    
  2038.     Party3LvlClassText:ClearAllPoints()
  2039.     Party3LvlClassText:SetPoint("TOP", Party3InfoTextFrame, "TOP", 0, -34)
  2040.     Party3LvlClassText:SetPoint("LEFT", Party3InfoTextFrame, "LEFT", 2, 0)
  2041.     Party3LvlClassText:SetPoint("RIGHT", Party3InfoTextFrame, "RIGHT", 0, 0)
  2042.    
  2043.     Party3LvlClassText:SetJustifyH("LEFT")
  2044.     Party3LvlClassText:SetTextColor(0.937, 1, 0.345, 1)
  2045.     Party3LvlClassText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  2046.  
  2047.  
  2048.     Party3LvlCassTextEvents:SetScript("OnEvent", function(self)
  2049.    
  2050.    
  2051.  
  2052.    
  2053.     if unitParty3exists == 1 and Party3class ~= nil then
  2054.        
  2055.         local Party3lvlclassstr = ("%s %s"):format(Party3Lvl, Party3class)
  2056.         Party3LvlClassText:SetText(Party3lvlclassstr)
  2057.     elseif unitParty3exists == 1 and Party3class == nil then
  2058.         Party3LvlClassText:SetText("")
  2059.     end
  2060.  
  2061.  
  2062.     end)
  2063.    
  2064.     ----- party 1 lvl class text end
  2065.  
  2066.     -- party 1 party leader icon
  2067.    
  2068.    
  2069.     Party3LeaderFrame:ClearAllPoints()
  2070.     Party3LeaderFrame:SetPoint("TOPLEFT", Party3InfoTextFrame, "TOPLEFT", 3, -17)
  2071.    
  2072.     Party3LeaderFrame:SetHeight(20)
  2073.     Party3LeaderFrame:SetWidth(20)
  2074.     Party3LeaderFrame.texture = Party3LeaderFrame:CreateTexture()
  2075.     Party3LeaderFrame.texture:SetAllPoints(Party3LeaderFrame)
  2076.     Party3LeaderFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-LeaderIcon.blp")
  2077.     Party3LeaderFrame:Hide()
  2078.     Party3PartyLeaderEvent:SetScript("OnEvent", function(self)
  2079.          
  2080.        
  2081.         if Party3isPartyLead == 1 then
  2082.         Party3LeaderFrame:Show()
  2083.         end
  2084.         if Party3isPartyLead ~= 1 then
  2085.         Party3LeaderFrame:Hide()
  2086.         end
  2087.     end)
  2088.  
  2089. -- Party 1 PVP icon
  2090.    
  2091.    
  2092.     Party3pvpIconFrame:ClearAllPoints()
  2093.     Party3pvpIconFrame:SetPoint("TOPLEFT", Party3InfoTextFrame, "TOPLEFT", 22, -17)
  2094.    
  2095.     Party3pvpIconFrame:SetHeight(21)
  2096.     Party3pvpIconFrame:SetWidth(21)
  2097.     Party3pvpIconFrame.texture = Party3pvpIconFrame:CreateTexture()
  2098.     Party3pvpIconFrame.texture:SetAllPoints(Party3pvpIconFrame)
  2099.  
  2100.  
  2101.     Party3pvpIconEvent:SetScript("OnEvent", function(self)
  2102.        
  2103.        
  2104.         if Party3englishFaction == "Alliance" then    
  2105.         Party3pvpIconFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-PVP-Alliance.blp")
  2106.         elseif Party3englishFaction == "Horde" then
  2107.         Party3pvpIconFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-PVP-Horde.blp")
  2108.         end
  2109.        
  2110.        
  2111.         if Party3ispvp == 1 then
  2112.         Party3pvpIconFrame:Show()
  2113.         end
  2114.        
  2115.         if Party3ispvp ~= 1 then
  2116.         Party3pvpIconFrame:Hide()
  2117.         end
  2118.     end)
  2119.     --------------------------
  2120.     -- Party3 PVP icon end
  2121.     -------------------------
  2122.    
  2123.     --------------------------
  2124.     -- Party3 Offline/Dead overlay
  2125.     --------------------------
  2126.    
  2127.     Party3offDeadGhostTxtFrame:ClearAllPoints()
  2128.     Party3offDeadGhostTxtFrame:SetPoint("LEFT", GUI_Party3Frame, "LEFT", 15, 0)
  2129.    
  2130.     Party3offDeadGhostTxtFrame:SetWidth(68)
  2131.     Party3offDeadGhostTxtFrame:SetHeight(15)
  2132.    
  2133.  
  2134.    
  2135.    
  2136.     Party3DeadOfflineTxt:ClearAllPoints()
  2137.     Party3DeadOfflineTxt:SetPoint("CENTER", Party3offDeadGhostTxtFrame , "CENTER", 0, 0)
  2138.    
  2139.     Party3DeadOfflineTxt:SetTextColor(.85, .10, .10, 1)
  2140.     Party3DeadOfflineTxt:SetJustifyH("CENTER")
  2141.     Party3DeadOfflineTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 18, "OUTLINE")
  2142.    
  2143.    
  2144.     Party3OffLineDeadEvents:SetScript("OnEvent", function(self)
  2145.    
  2146.    
  2147.     if Party3isDead == 1 and Party3connected == 1 and Party3isGhost == nil then
  2148.        
  2149.         Party3DeadOfflineTxt:SetText("Dead")
  2150.     elseif Party3isGhost == 1 and Party3connected == 1 then
  2151.         Party3DeadOfflineTxt:SetText("Ghost")
  2152.     elseif Party3isDead == nil and Party3connected == nil and Party3isGhost == nil then
  2153.         Party3DeadOfflineTxt:SetText("Offline")
  2154.    
  2155.     elseif Party3isDead == 1 and Party3connected == nil and Party3isGhost == nil then
  2156.         Party3DeadOfflineTxt:SetText("Dead\n Offline")
  2157.     elseif Party3connected == nil and Party3isGhost == 1 then
  2158.         Party3DeadOfflineTxt:SetText("Ghost\n Offline")
  2159.     elseif Party3isDead == nil and Party3connected == 1 and Party3isGhost == nil then
  2160.         Party3DeadOfflineTxt:SetText(nil)
  2161.     end
  2162.    
  2163.    
  2164.     end)
  2165.    
  2166.     --######################  
  2167.     --Target targettarget Frame START
  2168.     --########################
  2169.        
  2170.     targetOfParty3Frame:SetWidth(122)
  2171.     targetOfParty3Frame:SetHeight(19)
  2172.    
  2173.     targetOfParty3Frame:ClearAllPoints()
  2174.     targetOfParty3Frame:SetPoint("BOTTOMRIGHT", GUI_Party3Frame, "BOTTOMRIGHT", -2, 1)
  2175.    
  2176.     targetOfParty3Frame:SetFrameStrata("HIGH")
  2177.     targetOfParty3Frame:SetFrameLevel("5")
  2178.  
  2179.    
  2180.     Party3ttbg:ClearAllPoints()
  2181.     Party3ttbg:SetAllPoints(targetOfParty3Frame)
  2182.    
  2183.    
  2184.     targetOfParty3Text:ClearAllPoints()
  2185.     targetOfParty3Text:SetPoint("CENTER", targetOfParty3Frame, "CENTER", 0, 2)
  2186.     targetOfParty3Text:SetPoint("LEFT", targetOfParty3Frame, "LEFT", 0, 1)
  2187.     targetOfParty3Text:SetPoint("RIGHT", targetOfParty3Frame, "RIGHT", 0, 1)
  2188.     targetOfParty3Text:SetTextColor(1, 1, 1, 1)
  2189.     targetOfParty3Text:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font3.ttf", 11, "OUTLINE")
  2190.  
  2191.     targetOfParty3Frame:SetScript("OnEvent", function(self)
  2192.         GrimUI.Party3Style1TargEventFunc()
  2193.     end)
  2194.    
  2195.    
  2196.     targetOfParty3ClickFrame:SetWidth(122)
  2197.     targetOfParty3ClickFrame:SetHeight(19)
  2198.    
  2199.     targetOfParty3ClickFrame:ClearAllPoints()
  2200.     targetOfParty3ClickFrame:SetPoint("BOTTOMRIGHT", GUI_Party3Frame, "BOTTOMRIGHT", -2, 1)
  2201.    
  2202.     targetOfParty3ClickFrame:SetFrameStrata("HIGH")
  2203.     targetOfParty3ClickFrame:SetFrameLevel("6")
  2204.    
  2205.     targetOfParty3ClickFrame:RegisterForClicks("AnyUp")
  2206.     targetOfParty3ClickFrame:SetAttribute("unit", "Party3target")
  2207.     targetOfParty3ClickFrame:SetAttribute("*type1", "target")
  2208.     RegisterUnitWatch(targetOfParty3ClickFrame)
  2209.  
  2210.  
  2211.         local showParty3targetmenu = function()
  2212.             ToggleDropDownMenu(1, nil, TargetFrameDropDown, "cursor", 0, 0)
  2213.        
  2214.         end
  2215.        
  2216.     targetOfParty3ClickFrame.showParty3targetmenu = showParty3targetmenu
  2217.     targetOfParty3ClickFrame.unit = "Party3target"
  2218.     targetOfParty3ClickFrame:SetAttribute("*type2", "showParty3targetmenu")
  2219.     targetOfParty3ClickFrame:SetScript("OnEnter", UnitFrame_OnEnter)
  2220.     targetOfParty3ClickFrame:SetScript("OnLeave", UnitFrame_OnLeave)
  2221.    
  2222.    
  2223.     --######################  
  2224.     --target targettargetFrame END
  2225.         --########################
  2226.    
  2227.     --###################
  2228.     -- Party3 Event Scripts
  2229.     --###################
  2230.    
  2231.     --Health Events
  2232.     Party3HealthEvents:SetScript("OnEvent", function(self)
  2233.         GrimUI.Party3Style1HealthEventFunc()
  2234.     end)
  2235.  
  2236.     --Mana Events
  2237.     Party3ManaEvents:SetScript("OnEvent", function(self)
  2238.         GrimUI.Party3Style1ManaEventFunc()
  2239.     end)
  2240.    
  2241.    
  2242.     -- after thoughts
  2243.  
  2244.    
  2245.     --##########################################################################
  2246.     -- Party3 Frame  END
  2247.     --################################################################################
  2248.    
  2249.     --#################################################################---------------------
  2250.     --########## Party4 Frame START ######--
  2251.     --#############################################---------------------
  2252.  
  2253.     --Party4 main frame set height/width start
  2254.     GUI_Party4Frame:SetWidth(223)
  2255.     GUI_Party4Frame:SetHeight(135)
  2256.     -- Party4 main frame end
  2257.  
  2258.     --Party4 pedestal
  2259.     Party4PedestalFrame:ClearAllPoints()
  2260.     Party4PedestalFrame:SetPoint("BOTTOM", GUI_Party4Frame, "BOTTOM", -62, 0)
  2261.    
  2262.     Party4PedestalFrame:SetHeight(15)
  2263.     Party4PedestalFrame:SetWidth(49)
  2264.        
  2265.     Party4PedestalFrame.texture:ClearAllPoints()
  2266.     Party4PedestalFrame.texture:SetAllPoints(Party4PedestalFrame)
  2267.    
  2268.     Party4PedestalFrame.texture:SetTexture("Interface\\AddOns\\!GrimUI\\Art\\pedestal.tga")
  2269.     Party4PedestalFrame:SetFrameStrata("LOW")
  2270.     Party4PedestalFrame:SetFrameLevel("2")
  2271.  
  2272.     -- party 1 health bar start
  2273.     Party4HealthBorder:SetHeight(100)
  2274.     Party4HealthBorder:SetWidth(31)
  2275.    
  2276.     Party4HealthBorder:ClearAllPoints()
  2277.     Party4HealthBorder:SetPoint("BOTTOMLEFT", GUI_Party4Frame, "BOTTOMLEFT", 0, 0)
  2278.  
  2279.     Party4HealthBorder:SetBackdrop{
  2280.             bgFile = nil,
  2281.             edgeFile = "Interface/DialogFrame/UI-DialogBox-Border", tile = false, tileSize = 0, edgeSize = 5,
  2282.             insets = { left = 0, right = 0, top = 0, bottom = 0 }
  2283.         }
  2284.     Party4HealthBorder:SetBackdropBorderColor(0, 0, 0, 1)
  2285.     Party4HealthBorder:SetFrameStrata("BACKGROUND")
  2286.     Party4HealthBorder:SetFrameLevel("3")
  2287.     Party4HealthBorder:RegisterForClicks("AnyUp")
  2288.     Party4HealthBorder:SetAttribute("unit", "Party4")
  2289.     Party4HealthBorder:SetAttribute("*type1", "target")
  2290.  
  2291.         local showParty4menu = function()
  2292.             ToggleDropDownMenu(1, nil, PartyMemberFrame1DropDown, "cursor", 0, 0)
  2293.         end
  2294.  
  2295.  
  2296.     Party4HealthBorder.unit = "Party4"
  2297.     Party4HealthBorder:SetAttribute("*type2", "showParty4menu")
  2298.     Party4HealthBorder:SetScript("OnEnter", UnitFrame_OnEnter)
  2299.     Party4HealthBorder:SetScript("OnLeave", UnitFrame_OnLeave)
  2300.     Party4HealthBorder:SetFrameStrata("BACKGROUND")
  2301.     Party4HealthBorder:SetFrameLevel("2")
  2302.  
  2303.     Party4HealthBar:SetWidth(29)
  2304.     Party4HealthBar:SetHeight(98)
  2305.    
  2306.     Party4HealthBar:ClearAllPoints()
  2307.     Party4HealthBar:SetPoint("CENTER", Party4HealthBorder, "CENTER", 0, 0)
  2308.    
  2309.     Party4HealthBar:SetStatusBarTexture("Interface\\AddOns\\!GrimUI\\Art\\VBarTexture.tga")
  2310.     Party4HealthBar:SetStatusBarColor(.231, .682, .419, 1)
  2311.     Party4HealthBar:SetOrientation("VERTICAL")
  2312.     Party4HealthBar:SetFrameStrata("BACKGROUND")
  2313.     Party4HealthBar:SetFrameLevel("2")
  2314.  
  2315.    
  2316.    
  2317.     percentParty4HText:ClearAllPoints()
  2318.     percentParty4HText:SetPoint("TOP", Party4HealthBorder, "TOP", 0, -1)
  2319.    
  2320.     percentParty4HText:SetTextColor(1, 1, 1, 1)
  2321.     percentParty4HText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 10, "NORMAL")
  2322.  
  2323.  
  2324. ----------------------------------
  2325. -- party 1 health bar end
  2326. -----------------------------------
  2327.  
  2328.  
  2329. -----------------------------------
  2330. -- party 1 mana bar Start  
  2331. ----------------------------------
  2332.  
  2333.  
  2334.    
  2335.     Party4ManaBorder:SetHeight(100)
  2336.     Party4ManaBorder:SetWidth(31)
  2337.    
  2338.     Party4ManaBorder:ClearAllPoints()
  2339.     Party4ManaBorder:SetPoint("BOTTOM", GUI_Party4Frame, "BOTTOM", -29, 0)
  2340.  
  2341.     Party4ManaBorder:SetBackdrop{
  2342.             bgFile = nil,
  2343.             edgeFile = "Interface/DialogFrame/UI-DialogBox-Border", tile = false, tileSize = 0, edgeSize = 5,
  2344.             insets = { left = 0, right = 0, top = 0, bottom = 0 }
  2345.         }
  2346.     Party4ManaBorder:SetBackdropBorderColor(0, 0, 0, 1)
  2347.  
  2348.  
  2349.     Party4ManaBorder:SetFrameStrata("BACKGROUND")
  2350.     Party4ManaBorder:SetFrameLevel("3")
  2351.  
  2352.  
  2353.     Party4ManaBorder:RegisterForClicks("AnyUp")
  2354.     Party4ManaBorder:SetAttribute("unit", "Party4")
  2355.     Party4ManaBorder:SetAttribute("*type1", "target")
  2356.  
  2357.  
  2358.     Party4ManaBorder.unit = "Party4"
  2359.     Party4ManaBorder:SetAttribute("*type2", "showParty4menu")
  2360.     Party4ManaBorder:SetScript("OnEnter", UnitFrame_OnEnter)
  2361.     Party4ManaBorder:SetScript("OnLeave", UnitFrame_OnLeave)
  2362.     Party4ManaBorder:SetFrameStrata("BACKGROUND")
  2363.     Party4ManaBorder:SetFrameLevel("2")
  2364.  
  2365.  
  2366.     Party4ManaBar:SetWidth(29)
  2367.     Party4ManaBar:SetHeight(98)
  2368.    
  2369.     Party4ManaBar:ClearAllPoints()
  2370.     Party4ManaBar:SetPoint("CENTER", Party4ManaBorder, "CENTER", 0, 0)
  2371.    
  2372.     Party4ManaBar:SetStatusBarTexture("Interface\\AddOns\\!GrimUI\\Art\\VBarTexture.tga")
  2373.     Party4ManaBar:SetOrientation("VERTICAL")
  2374.     Party4ManaBar:SetFrameStrata("BACKGROUND")
  2375.     Party4ManaBar:SetFrameLevel("2")
  2376.  
  2377.    
  2378.    
  2379.     percentParty4MText:ClearAllPoints()
  2380.     percentParty4MText:SetPoint("TOP", Party4ManaBorder, "TOP", 0, -1)
  2381.    
  2382.     percentParty4MText:SetTextColor(1, 1, 1, 1)
  2383.     percentParty4MText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 10, "NORMAL")
  2384.  
  2385.  
  2386.  
  2387.    
  2388. -- Party 1 Mana bar end
  2389.  
  2390. -- Party 1 TextInfo Frame Start
  2391.  
  2392.     Party4InfoTextFrame:ClearAllPoints()
  2393.     Party4InfoTextFrame:SetPoint("RIGHT", GUI_Party4Frame, "RIGHT", 0, -7)
  2394.    
  2395.     Party4InfoTextFrame:SetWidth(125)
  2396.     Party4InfoTextFrame:SetHeight(79)
  2397.     Party4InfoTextFrame:SetFrameStrata("HIGH")
  2398.     Party4InfoTextFrame:SetFrameLevel("5")
  2399.  
  2400.     Party4InfoTextFrame:RegisterForClicks("AnyUp")
  2401.     Party4InfoTextFrame:SetAttribute("unit", "Party4")
  2402.     Party4InfoTextFrame:SetAttribute("*type1", "target")
  2403.  
  2404.     Party4InfoTextFrame.unit = "Party4"
  2405.     Party4InfoTextFrame:SetAttribute("*type2", "showParty4menu")
  2406.     Party4InfoTextFrame:SetScript("OnEnter", UnitFrame_OnEnter)
  2407.     Party4InfoTextFrame:SetScript("OnLeave", UnitFrame_OnLeave)
  2408.  
  2409.     -- Party 1 TextInfo Frame END
  2410.  
  2411.     ------------------------------
  2412.     -- party 1 name text Frame Start
  2413.     ------------------------------
  2414.  
  2415.    
  2416.    
  2417.     Party4NameText:ClearAllPoints()
  2418.     Party4NameText:SetPoint("TOPLEFT", Party4InfoTextFrame, "TOPLEFT", -1, 0)
  2419.     Party4NameText:SetPoint("RIGHT", Party4InfoTextFrame, "RIGHT", 0, 0)
  2420.    
  2421.     Party4NameText:SetJustifyH("LEFT")
  2422.     Party4NameText:SetTextColor(1, 1, 1, 1)
  2423.     Party4NameText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font3.ttf", 17, "OUTLINE")
  2424.  
  2425.     ------------------------------
  2426.     -- party 1 name text Frame END
  2427.     ------------------------------
  2428.    
  2429.     Party4LetterFrame:ClearAllPoints()
  2430.     Party4LetterFrame:SetPoint("LEFT", Party4InfoTextFrame, "LEFT", 0, -20)
  2431.    
  2432.     Party4LetterFrame:SetWidth(1)
  2433.     Party4LetterFrame:SetHeight(1)
  2434.    
  2435.     Party4LetterHText:ClearAllPoints()
  2436.    
  2437.     Party4LetterHText:SetPoint("LEFT", Party4LetterFrame, "LEFT", 2, 0)
  2438.    
  2439.     Party4LetterHText:SetTextColor(0.937, 1, 0.345, 1)
  2440.     Party4LetterHText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  2441.    
  2442.  
  2443.     Party4LetterMText:ClearAllPoints()
  2444.    
  2445.     Party4LetterMText:SetPoint("LEFT", Party4LetterFrame, "LEFT", 60, 0)
  2446.    
  2447.     Party4LetterMText:SetTextColor(0.937, 1, 0.345, 1)
  2448.     Party4LetterMText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  2449.     Party4LetterHText:SetText("H:")
  2450.     Party4LetterMText:SetText("M:")
  2451.    
  2452.     Party4LetterHText:Show()
  2453.     Party4LetterMText:Show()
  2454. ------------------------------------------------------------------------------
  2455.     -- health numbered text start
  2456.    
  2457.     Party4HealthNumTxtFrame:ClearAllPoints()
  2458.     Party4HealthNumTxtFrame:SetPoint("LEFT", Party4InfoTextFrame, "LEFT", 0, -16)
  2459.    
  2460.     Party4HealthNumTxtFrame:SetWidth(1)
  2461.     Party4HealthNumTxtFrame:SetHeight(1)
  2462.    
  2463.    
  2464.     Party4CHNumTxt:ClearAllPoints()
  2465.     Party4CHNumTxt:SetPoint("LEFT", Party4HealthNumTxtFrame , "LEFT", 16, 0)
  2466.    
  2467.     Party4CHNumTxt:SetTextColor(1, 1, 1, 1)
  2468.     Party4CHNumTxt:SetJustifyH("RIGHT")
  2469.     Party4CHNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  2470.    
  2471.  
  2472.    
  2473.    
  2474.     Party4MHNumTxt:ClearAllPoints()
  2475.    
  2476.     Party4MHNumTxt:Show()
  2477.     Party4MHNumTxt:SetPoint("TOP", Party4CHNumTxt , "BOTTOM", 0, 0)
  2478.    
  2479.     Party4MHNumTxt:SetTextColor(1, 1, 1, 1)
  2480.     Party4MHNumTxt:SetJustifyH("RIGHT")
  2481.     Party4MHNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  2482.    
  2483.     ----------------------------------------------------------------
  2484.     -- Mana numbered text start
  2485.     --------------------------------
  2486.    
  2487.     -- Mana numbered text start
  2488.  
  2489.     Party4ManaNumTxtFrame:ClearAllPoints()
  2490.     Party4ManaNumTxtFrame:SetPoint("RIGHT", Party4InfoTextFrame, "RIGHT", -8, -16)
  2491.    
  2492.     Party4ManaNumTxtFrame:SetWidth(1)
  2493.     Party4ManaNumTxtFrame:SetHeight(1)
  2494.  
  2495.     Party4CMNumTxt:ClearAllPoints()
  2496.     Party4CMNumTxt:SetPoint("RIGHT", Party4ManaNumTxtFrame, "RIGHT", 0, 0)
  2497.    
  2498.     Party4CMNumTxt:SetTextColor(1, 1, 1, 1)
  2499.     Party4CMNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  2500.    
  2501.    
  2502.     Party4MMNumTxt:ClearAllPoints()
  2503.     Party4MMNumTxt:Show()
  2504.     Party4MMNumTxt:SetPoint("TOP", Party4CMNumTxt , "BOTTOM", 0, 0)
  2505.    
  2506.     Party4MMNumTxt:SetTextColor(1, 1, 1, 1)
  2507.     Party4MMNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  2508.    
  2509.     -------------------------------------------------------------------------------
  2510.     -- Party4 mana numbered text end
  2511.     ------------------------------
  2512.    
  2513.     Party4NameTextEvents:SetScript("OnEvent", function(self)
  2514.     local Party4active = UnitExists("Party4")
  2515.    
  2516.     local Party4Name = UnitName("Party4")
  2517.    
  2518.        
  2519.     if Party4active == 1 then
  2520.         local Party4NameStr = ("%s"):format(Party4Name)
  2521.         Party4NameText:SetText(Party4NameStr)
  2522.        
  2523.     end
  2524.        
  2525.     GrimUI.Party4NameColoring()
  2526.    
  2527.     end)
  2528.    
  2529.    
  2530.    
  2531.     Party4LvlClassText:ClearAllPoints()
  2532.     Party4LvlClassText:SetPoint("TOP", Party4InfoTextFrame, "TOP", 0, -34)
  2533.     Party4LvlClassText:SetPoint("LEFT", Party4InfoTextFrame, "LEFT", 2, 0)
  2534.     Party4LvlClassText:SetPoint("RIGHT", Party4InfoTextFrame, "RIGHT", 0, 0)
  2535.    
  2536.     Party4LvlClassText:SetJustifyH("LEFT")
  2537.     Party4LvlClassText:SetTextColor(0.937, 1, 0.345, 1)
  2538.     Party4LvlClassText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  2539.  
  2540.  
  2541.     Party4LvlCassTextEvents:SetScript("OnEvent", function(self)
  2542.     local Party4Lvl = UnitLevel("Party4")
  2543.    
  2544.     --local vehicname = UnitName("vehicle")
  2545.    -- local vehiclvl = UnitLevel("vehicle")
  2546.     --local vehictype = UnitCreatureType("vehicle")
  2547.        
  2548.     local Party4class = UnitClass("Party4")
  2549.     local Party4Race = UnitRace("Party4")
  2550.     local unitParty4exists = UnitExists("Party4")
  2551.  
  2552.    
  2553.     if unitParty4exists == 1 and Party4class ~= nil then
  2554.        
  2555.         local Party4lvlclassstr = ("%s %s"):format(Party4Lvl, Party4class)
  2556.         Party4LvlClassText:SetText(Party4lvlclassstr)
  2557.     elseif unitParty4exists == 1 and Party4class == nil then
  2558.         Party4LvlClassText:SetText("")
  2559.     end
  2560.  
  2561.  
  2562.     end)
  2563.    
  2564.     ----- party 1 lvl class text end
  2565.  
  2566.     -- party 1 party leader icon
  2567.    
  2568.    
  2569.     Party4LeaderFrame:ClearAllPoints()
  2570.     Party4LeaderFrame:SetPoint("TOPLEFT", Party4InfoTextFrame, "TOPLEFT", 3, -17)
  2571.    
  2572.     Party4LeaderFrame:SetHeight(20)
  2573.     Party4LeaderFrame:SetWidth(20)
  2574.     Party4LeaderFrame.texture = Party4LeaderFrame:CreateTexture()
  2575.     Party4LeaderFrame.texture:SetAllPoints(Party4LeaderFrame)
  2576.     Party4LeaderFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-LeaderIcon.blp")
  2577.     Party4LeaderFrame:Hide()
  2578.     Party4PartyLeaderEvent:SetScript("OnEvent", function(self)
  2579.          
  2580.         local Party4isPartyLead = UnitIsPartyLeader("Party4")
  2581.        
  2582.         if Party4isPartyLead == 1 then
  2583.         Party4LeaderFrame:Show()
  2584.         end
  2585.         if Party4isPartyLead ~= 1 then
  2586.         Party4LeaderFrame:Hide()
  2587.         end
  2588.     end)
  2589.  
  2590. -- Party 1 PVP icon
  2591.    
  2592.    
  2593.     Party4pvpIconFrame:ClearAllPoints()
  2594.     Party4pvpIconFrame:SetPoint("TOPLEFT", Party4InfoTextFrame, "TOPLEFT", 22, -17)
  2595.    
  2596.     Party4pvpIconFrame:SetHeight(21)
  2597.     Party4pvpIconFrame:SetWidth(21)
  2598.     Party4pvpIconFrame.texture = Party4pvpIconFrame:CreateTexture()
  2599.     Party4pvpIconFrame.texture:SetAllPoints(Party4pvpIconFrame)
  2600.  
  2601.  
  2602.     Party4pvpIconEvent:SetScript("OnEvent", function(self)
  2603.        
  2604.         local Party4englishFaction, localizedFaction = UnitFactionGroup("Party4")
  2605.         if Party4englishFaction == "Alliance" then    
  2606.         Party4pvpIconFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-PVP-Alliance.blp")
  2607.         elseif Party4englishFaction == "Horde" then
  2608.         Party4pvpIconFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-PVP-Horde.blp")
  2609.         end
  2610.        
  2611.         local Party4ispvp = UnitIsPVP("Party4")
  2612.        
  2613.         if Party4ispvp == 1 then
  2614.         Party4pvpIconFrame:Show()
  2615.         end
  2616.        
  2617.         if Party4ispvp ~= 1 then
  2618.         Party4pvpIconFrame:Hide()
  2619.         end
  2620.     end)
  2621.     --------------------------
  2622.     -- Party4 PVP icon end
  2623.     -------------------------
  2624.    
  2625.     --------------------------
  2626.     -- Party4 Offline/Dead overlay
  2627.     --------------------------
  2628.    
  2629.     Party4offDeadGhostTxtFrame:ClearAllPoints()
  2630.     Party4offDeadGhostTxtFrame:SetPoint("LEFT", GUI_Party4Frame, "LEFT", 15, 0)
  2631.    
  2632.     Party4offDeadGhostTxtFrame:SetWidth(68)
  2633.     Party4offDeadGhostTxtFrame:SetHeight(15)
  2634.    
  2635.  
  2636.    
  2637.    
  2638.     Party4DeadOfflineTxt:ClearAllPoints()
  2639.     Party4DeadOfflineTxt:SetPoint("CENTER", Party4offDeadGhostTxtFrame , "CENTER", 0, 0)
  2640.    
  2641.     Party4DeadOfflineTxt:SetTextColor(.85, .10, .10, 1)
  2642.     Party4DeadOfflineTxt:SetJustifyH("CENTER")
  2643.     Party4DeadOfflineTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 18, "OUTLINE")
  2644.    
  2645.    
  2646.     Party4OffLineDeadEvents:SetScript("OnEvent", function(self)
  2647.    
  2648.     local Party4isDead = UnitIsDead("Party4")
  2649.     local Party4isGhost = UnitIsGhost("Party4")
  2650.     local Party4health = UnitHealth("Party4")
  2651.     local Party4connected = UnitIsConnected("Party4")
  2652.    
  2653.     if Party4isDead == 1 and Party4connected == 1 and Party4isGhost == nil then
  2654.        
  2655.         Party4DeadOfflineTxt:SetText("Dead")
  2656.     elseif Party4isGhost == 1 and Party4connected == 1 then
  2657.         Party4DeadOfflineTxt:SetText("Ghost")
  2658.     elseif Party4isDead == nil and Party4connected == nil and Party4isGhost == nil then
  2659.         Party4DeadOfflineTxt:SetText("Offline")
  2660.    
  2661.     elseif Party4isDead == 1 and Party4connected == nil and Party4isGhost == nil then
  2662.         Party4DeadOfflineTxt:SetText("Dead\n Offline")
  2663.     elseif Party4connected == nil and Party4isGhost == 1 then
  2664.         Party4DeadOfflineTxt:SetText("Ghost\n Offline")
  2665.     elseif Party4isDead == nil and Party4connected == 1 and Party4isGhost == nil then
  2666.         Party4DeadOfflineTxt:SetText(nil)
  2667.     end
  2668.    
  2669.    
  2670.     end)
  2671.    
  2672.     --######################  
  2673.     --Target targettarget Frame START
  2674.     --########################
  2675.        
  2676.     targetOfParty4Frame:SetWidth(122)
  2677.     targetOfParty4Frame:SetHeight(19)
  2678.    
  2679.     targetOfParty4Frame:ClearAllPoints()
  2680.     targetOfParty4Frame:SetPoint("BOTTOMRIGHT", GUI_Party4Frame, "BOTTOMRIGHT", -2, 1)
  2681.    
  2682.     targetOfParty4Frame:SetFrameStrata("HIGH")
  2683.     targetOfParty4Frame:SetFrameLevel("5")
  2684.  
  2685.    
  2686.     Party4ttbg:ClearAllPoints()
  2687.     Party4ttbg:SetAllPoints(targetOfParty4Frame)
  2688.    
  2689.    
  2690.     targetOfParty4Text:ClearAllPoints()
  2691.     targetOfParty4Text:SetPoint("CENTER", targetOfParty4Frame, "CENTER", 0, 2)
  2692.     targetOfParty4Text:SetPoint("LEFT", targetOfParty4Frame, "LEFT", 0, 1)
  2693.     targetOfParty4Text:SetPoint("RIGHT", targetOfParty4Frame, "RIGHT", 0, 1)
  2694.     targetOfParty4Text:SetTextColor(1, 1, 1, 1)
  2695.     targetOfParty4Text:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font3.ttf", 11, "OUTLINE")
  2696.  
  2697.     targetOfParty4Frame:SetScript("OnEvent", function(self)
  2698.         GrimUI.Party4Style1TargEventFunc()
  2699.     end)
  2700.    
  2701.    
  2702.     targetOfParty4ClickFrame:SetWidth(122)
  2703.     targetOfParty4ClickFrame:SetHeight(19)
  2704.    
  2705.     targetOfParty4ClickFrame:ClearAllPoints()
  2706.     targetOfParty4ClickFrame:SetPoint("BOTTOMRIGHT", GUI_Party4Frame, "BOTTOMRIGHT", -2, 1)
  2707.    
  2708.     targetOfParty4ClickFrame:SetFrameStrata("HIGH")
  2709.     targetOfParty4ClickFrame:SetFrameLevel("6")
  2710.    
  2711.     targetOfParty4ClickFrame:RegisterForClicks("AnyUp")
  2712.     targetOfParty4ClickFrame:SetAttribute("unit", "Party4target")
  2713.     targetOfParty4ClickFrame:SetAttribute("*type1", "target")
  2714.     RegisterUnitWatch(targetOfParty4ClickFrame)
  2715.  
  2716.  
  2717.         local showParty4targetmenu = function()
  2718.             ToggleDropDownMenu(1, nil, TargetFrameDropDown, "cursor", 0, 0)
  2719.        
  2720.         end
  2721.        
  2722.     targetOfParty4ClickFrame.showParty4targetmenu = showParty4targetmenu
  2723.     targetOfParty4ClickFrame.unit = "Party4target"
  2724.     targetOfParty4ClickFrame:SetAttribute("*type2", "showParty4targetmenu")
  2725.     targetOfParty4ClickFrame:SetScript("OnEnter", UnitFrame_OnEnter)
  2726.     targetOfParty4ClickFrame:SetScript("OnLeave", UnitFrame_OnLeave)
  2727.    
  2728.    
  2729.     --######################  
  2730.     --target targettargetFrame END
  2731.         --########################
  2732.    
  2733.     --###################
  2734.     -- Party4 Event Scripts
  2735.     --###################
  2736.    
  2737.     --Health Events
  2738.     Party4HealthEvents:SetScript("OnEvent", function(self)
  2739.         GrimUI.Party4Style1HealthEventFunc()
  2740.     end)
  2741.  
  2742.     --Mana Events
  2743.     Party4ManaEvents:SetScript("OnEvent", function(self)
  2744.         GrimUI.Party4Style1ManaEventFunc()
  2745.     end)
  2746.    
  2747.    
  2748.     -- after thoughts
  2749.  
  2750.    
  2751.     --##########################################################################
  2752.     -- Party4 Frame  END
  2753.     --################################################################################
  2754.    
  2755.         -- Clique inclusion start
  2756. --ClickCastFrames = ClickCastFrames or {}
  2757. --ClickCastFrames[healthborder] = true
  2758. --ClickCastFrames[GrimPlayerManaborder] = true
  2759. --ClickCastFrames[playerModelClickFrame] = true
  2760. -- Clique inclusion end
  2761.    
  2762. end
  2763.  
  2764. --GrimUI.GrimStyle1 = GrimStyle1
  2765.  
  2766. -----------------------
  2767. -- Party1 Excluded Functions
  2768. -------------------------
  2769.  
  2770.  
  2771. function GrimUI:Party1Style1HealthEventFunc()
  2772.  
  2773.         local currParty1Health, maxParty1Health = UnitHealth("Party1"), UnitHealthMax("Party1")
  2774.         local Party1connected = UnitIsConnected("Party1")
  2775.         local percentParty1Health = floor(currParty1Health / maxParty1Health * 100)  
  2776.         local Party1CurrHealth, Party1MaxHealth = UnitHealth("Party1"), UnitHealthMax("Party1")
  2777.         local Party1chnumtxt = ("%s"):format(Party1CurrHealth)
  2778.         local Party1mhnumtxt = ("%s"):format(Party1MaxHealth)
  2779.        
  2780.         if Party1connected == nil or currParty1Health == nil or maxParty1Health == nil then
  2781.             percentParty1HText:SetText("0%")
  2782.         else
  2783.             local Party1Hstr = ("%s%%"):format(percentParty1Health)
  2784.             percentParty1HText:SetText(Party1Hstr)
  2785.         end
  2786.        
  2787.         Party1HealthBar:SetMinMaxValues(min(0, currParty1Health), maxParty1Health)
  2788.         Party1HealthBar:SetValue(currParty1Health)
  2789.    
  2790.         Party1CHNumTxt:SetText(Party1chnumtxt)
  2791.         Party1MHNumTxt:SetText(Party1mhnumtxt)
  2792. end
  2793.  
  2794.  
  2795. function GrimUI:Party1Style1ManaEventFunc()
  2796.  
  2797. local currMana, maxMana = UnitMana("Party1"), UnitManaMax("Party1")
  2798.         local currPower = UnitPower("Party1")
  2799.         local maxPower = UnitPowerMax("Party1")
  2800.         local percentMana = floor(currMana / maxMana * 100)
  2801.         local Party1currMana, Party1maxMana = UnitMana("Party1"), UnitManaMax("Party1")
  2802.         local Party1powerType = UnitPowerType("Party1")
  2803.         local Party1currPower = UnitPower("Party1")
  2804.         local Party1maxPower = UnitPowerMax("Party1")
  2805.         local Party1currShape = GetShapeshiftForm()
  2806.        
  2807.         if maxMana >= 1 then
  2808.             local perParty1Mstr = ("%s%%"):format(percentMana)
  2809.             percentParty1MText:SetText(perParty1Mstr)
  2810.         end
  2811.        
  2812.         if maxMana == 0 then
  2813.             local perParty1Mstr = ("0%")
  2814.             percentParty1MText:SetText(perParty1Mstr)
  2815.         end
  2816.        
  2817.        
  2818.         if Party1powerType == 0 then
  2819.            
  2820.             Party1ManaBar:SetMinMaxValues(min(0, currMana), maxMana)
  2821.             Party1ManaBar:SetValue(currMana)
  2822.             Party1ManaBar:SetStatusBarColor(.556, .556, .921, 1)
  2823.  
  2824.         elseif Party1powerType == 1 or 3 or 6 then
  2825.        
  2826.             Party1ManaBar:SetMinMaxValues(min(0, currPower), maxPower)
  2827.             Party1ManaBar:SetValue(currPower)
  2828.             Party1ManaBar:SetStatusBarColor(.656, .456, .456, 1)
  2829.  
  2830.         end
  2831.  
  2832.     if Party1powerType == 0 then
  2833.         local Party1curmanaSTR = ("%s"):format(Party1currMana)
  2834.         local Party1maxmanaSTR = ("%s"):format(Party1maxMana)
  2835.         Party1CMNumTxt:SetText(Party1curmanaSTR)
  2836.         Party1MMNumTxt:SetText(Party1maxmanaSTR)
  2837.        
  2838.     elseif Party1powerType == 1 or 3 or 6 then
  2839.         local Party1curpwrSTR = ("%s"):format(Party1currPower)
  2840.         local Party1maxpwrSTR = ("%s"):format(Party1maxPower)
  2841.            
  2842.         Party1CMNumTxt:SetText(Party1curpwrSTR)
  2843.         Party1MMNumTxt:SetText(Party1maxpwrSTR)
  2844.     end
  2845.  
  2846. end
  2847.  
  2848.  
  2849.  
  2850. function GrimUI:Party1Style1TargEventFunc()
  2851.         local party1targetTargetName = UnitName("Party1target")
  2852.         local party1targetExists = UnitExists("Party1target")
  2853.         local targetMe = UnitName("player")
  2854.         local targetmytarget = UnitName("target")
  2855.         local party1targetISmytarget = UnitIsUnit("party1target", "target")
  2856.  
  2857.         if party1targetExists == 1 and party1targetISmytarget == 1 then
  2858.             targetOfParty1Text:SetText("** YOUR TARGET **")
  2859.         end
  2860.  
  2861.  
  2862.         if  party1targetExists == 1 and party1targetTargetName == targetMe then
  2863.             targetOfParty1Text:SetText("** YOU **")
  2864.         end
  2865.        
  2866.         if  party1targetExists == 1 and party1targetTargetName ~= targetMe and party1targetISmytarget ~= 1 then
  2867.             local nametstr = ("%s"):format(party1targetTargetName)
  2868.             targetOfParty1Text:SetText(nametstr)
  2869.         end
  2870.         if party1targetExists == nil then
  2871.         targetOfParty1Text:SetText("-No Target-")
  2872.         Party1ttbg:SetTexture(0, 0, 0, 0)
  2873.         end
  2874.        
  2875.         local party1targetIsFoe = UnitIsEnemy("player", "Party1target")
  2876.         local party1targetIsFriend = UnitIsFriend("player", "Party1target")
  2877.    
  2878.         if party1targetExists == 1 and party1targetIsFoe == 1 then
  2879.         Party1ttbg:SetTexture(.40, .10, .10, 1)
  2880.         end
  2881.        
  2882.         if party1targetExists == 1 and party1targetIsFriend == 1 then
  2883.         Party1ttbg:SetTexture(.10, .40, .10, 1)
  2884.         end
  2885.         end
  2886.  
  2887. -----------------------
  2888. -- Party2 Excluded Functions
  2889. -------------------------
  2890. function GrimUI:Party2Style1HealthEventFunc()
  2891.  
  2892. local currParty2Health, maxParty2Health = UnitHealth("Party2"), UnitHealthMax("Party2")
  2893.         local Party2connected = UnitIsConnected("Party2")
  2894.         local percentParty2Health = floor(currParty2Health / maxParty2Health * 100)  
  2895.         local Party2CurrHealth, Party2MaxHealth = UnitHealth("Party2"), UnitHealthMax("Party2")
  2896.         local Party2chnumtxt = ("%s"):format(Party2CurrHealth)
  2897.         local Party2mhnumtxt = ("%s"):format(Party2MaxHealth)
  2898.        
  2899.         if Party2connected == nil or currParty2Health == nil or maxParty2Health == nil then
  2900.             percentParty2HText:SetText("0%")
  2901.         else
  2902.             local Party2Hstr = ("%s%%"):format(percentParty2Health)
  2903.             percentParty2HText:SetText(Party2Hstr)
  2904.         end
  2905.        
  2906.         Party2HealthBar:SetMinMaxValues(min(0, currParty2Health), maxParty2Health)
  2907.         Party2HealthBar:SetValue(currParty2Health)
  2908.    
  2909.         Party2CHNumTxt:SetText(Party2chnumtxt)
  2910.         Party2MHNumTxt:SetText(Party2mhnumtxt)
  2911. end
  2912.  
  2913.  
  2914.  
  2915. function GrimUI:Party2Style1ManaEventFunc()
  2916.  
  2917. local currMana, maxMana = UnitMana("Party2"), UnitManaMax("Party2")
  2918.         local powerType = UnitPowerType("Party2")
  2919.         local currPower = UnitPower("Party2")
  2920.         local maxPower = UnitPowerMax("Party2")
  2921.         local percentMana = floor(currMana / maxMana * 100)
  2922.         local Party2currMana, Party2maxMana = UnitMana("Party2"), UnitManaMax("Party2")
  2923.         local Party2powerType = UnitPowerType("Party2")
  2924.         local Party2currPower = UnitPower("Party2")
  2925.         local Party2maxPower = UnitPowerMax("Party2")
  2926.         local Party2currShape = GetShapeshiftForm()
  2927.        
  2928.         if maxMana >= 1 then
  2929.             local perParty2Mstr = ("%s%%"):format(percentMana)
  2930.             percentParty2MText:SetText(perParty2Mstr)
  2931.         end
  2932.        
  2933.         if maxMana == 0 then
  2934.             local perParty2Mstr = ("0%")
  2935.             percentParty2MText:SetText(perParty2Mstr)
  2936.         end
  2937.        
  2938.        
  2939.         if powerType == 0 then
  2940.            
  2941.             Party2ManaBar:SetMinMaxValues(min(0, currMana), maxMana)
  2942.             Party2ManaBar:SetValue(currMana)
  2943.             Party2ManaBar:SetStatusBarColor(.556, .556, .921, 1)
  2944.  
  2945.         elseif powerType == 1 or 3 or 6 then
  2946.        
  2947.             Party2ManaBar:SetMinMaxValues(min(0, currPower), maxPower)
  2948.             Party2ManaBar:SetValue(currPower)
  2949.             Party2ManaBar:SetStatusBarColor(.656, .456, .456, 1)
  2950.  
  2951.         end
  2952.  
  2953.     if Party2powerType == 0 then
  2954.         local Party2curmanaSTR = ("%s"):format(Party2currMana)
  2955.         local Party2maxmanaSTR = ("%s"):format(Party2maxMana)
  2956.         Party2CMNumTxt:SetText(Party2curmanaSTR)
  2957.         Party2MMNumTxt:SetText(Party2maxmanaSTR)
  2958.        
  2959.     elseif Party2powerType == 1 or 3 or 6 then
  2960.         local Party2curpwrSTR = ("%s"):format(Party2currPower)
  2961.         local Party2maxpwrSTR = ("%s"):format(Party2maxPower)
  2962.            
  2963.         Party2CMNumTxt:SetText(Party2curpwrSTR)
  2964.         Party2MMNumTxt:SetText(Party2maxpwrSTR)
  2965.     end
  2966.  
  2967. end
  2968.  
  2969.  
  2970. function GrimUI:Party2Style1TargEventFunc()
  2971.         local Party2targetTargetName = UnitName("Party2target")
  2972.         local Party2targetExists = UnitExists("Party2target")
  2973.         local targetMe = UnitName("player")
  2974.         local targetmytarget = UnitName("target")
  2975.         local Party2targetISmytarget = UnitIsUnit("Party2target", "target")
  2976.  
  2977.         if Party2targetExists == 1 and Party2targetISmytarget == 1 then
  2978.             targetOfParty2Text:SetText("** YOUR TARGET **")
  2979.         end
  2980.  
  2981.  
  2982.         if  Party2targetExists == 1 and Party2targetTargetName == targetMe then
  2983.             targetOfParty2Text:SetText("** YOU **")
  2984.         end
  2985.        
  2986.         if  Party2targetExists == 1 and Party2targetTargetName ~= targetMe and Party2targetISmytarget ~= 1 then
  2987.             local nametstr = ("%s"):format(Party2targetTargetName)
  2988.             targetOfParty2Text:SetText(nametstr)
  2989.         end
  2990.         if Party2targetExists == nil then
  2991.         targetOfParty2Text:SetText("-No Target-")
  2992.         Party2ttbg:SetTexture(0, 0, 0, 0)
  2993.         end
  2994.        
  2995.         local Party2targetIsFoe = UnitIsEnemy("player", "Party2target")
  2996.         local Party2targetIsFriend = UnitIsFriend("player", "Party2target")
  2997.    
  2998.         if Party2targetExists == 1 and Party2targetIsFoe == 1 then
  2999.         Party2ttbg:SetTexture(.40, .10, .10, 1)
  3000.         end
  3001.        
  3002.         if Party2targetExists == 1 and Party2targetIsFriend == 1 then
  3003.         Party2ttbg:SetTexture(.10, .40, .10, 1)
  3004.         end
  3005.         end
  3006.  
  3007.  
  3008.  
  3009.  
  3010. -----------------------
  3011. -- Party3 Excluded Functions
  3012. -------------------------
  3013. function GrimUI:Party3Style1HealthEventFunc()
  3014.  
  3015. local currParty3Health, maxParty3Health = UnitHealth("Party3"), UnitHealthMax("Party3")
  3016.         local Party3connected = UnitIsConnected("Party3")
  3017.         local percentParty3Health = floor(currParty3Health / maxParty3Health * 100)  
  3018.         local Party3CurrHealth, Party3MaxHealth = UnitHealth("Party3"), UnitHealthMax("Party3")
  3019.         local Party3chnumtxt = ("%s"):format(Party3CurrHealth)
  3020.         local Party3mhnumtxt = ("%s"):format(Party3MaxHealth)
  3021.        
  3022.         if Party3connected == nil or currParty3Health == nil or maxParty3Health == nil then
  3023.             percentParty3HText:SetText("0%")
  3024.         else
  3025.             local Party3Hstr = ("%s%%"):format(percentParty3Health)
  3026.             percentParty3HText:SetText(Party3Hstr)
  3027.         end
  3028.        
  3029.         Party3HealthBar:SetMinMaxValues(min(0, currParty3Health), maxParty3Health)
  3030.         Party3HealthBar:SetValue(currParty3Health)
  3031.    
  3032.         Party3CHNumTxt:SetText(Party3chnumtxt)
  3033.         Party3MHNumTxt:SetText(Party3mhnumtxt)
  3034. end
  3035.  
  3036.  
  3037.  
  3038. function GrimUI:Party3Style1ManaEventFunc()
  3039.  
  3040. local currMana, maxMana = UnitMana("Party3"), UnitManaMax("Party3")
  3041.         local powerType = UnitPowerType("Party3")
  3042.         local currPower = UnitPower("Party3")
  3043.         local maxPower = UnitPowerMax("Party3")
  3044.         local percentMana = floor(currMana / maxMana * 100)
  3045.         local Party3currMana, Party3maxMana = UnitMana("Party3"), UnitManaMax("Party3")
  3046.         local Party3powerType = UnitPowerType("Party3")
  3047.         local Party3currPower = UnitPower("Party3")
  3048.         local Party3maxPower = UnitPowerMax("Party3")
  3049.         local Party3currShape = GetShapeshiftForm()
  3050.        
  3051.         if maxMana >= 1 then
  3052.             local perParty3Mstr = ("%s%%"):format(percentMana)
  3053.             percentParty3MText:SetText(perParty3Mstr)
  3054.         end
  3055.        
  3056.         if maxMana == 0 then
  3057.             local perParty3Mstr = ("0%")
  3058.             percentParty3MText:SetText(perParty3Mstr)
  3059.         end
  3060.        
  3061.        
  3062.         if powerType == 0 then
  3063.            
  3064.             Party3ManaBar:SetMinMaxValues(min(0, currMana), maxMana)
  3065.             Party3ManaBar:SetValue(currMana)
  3066.             Party3ManaBar:SetStatusBarColor(.556, .556, .921, 1)
  3067.  
  3068.         elseif powerType == 1 or 3 or 6 then
  3069.        
  3070.             Party3ManaBar:SetMinMaxValues(min(0, currPower), maxPower)
  3071.             Party3ManaBar:SetValue(currPower)
  3072.             Party3ManaBar:SetStatusBarColor(.656, .456, .456, 1)
  3073.  
  3074.         end
  3075.  
  3076.     if Party3powerType == 0 then
  3077.         local Party3curmanaSTR = ("%s"):format(Party3currMana)
  3078.         local Party3maxmanaSTR = ("%s"):format(Party3maxMana)
  3079.         Party3CMNumTxt:SetText(Party3curmanaSTR)
  3080.         Party3MMNumTxt:SetText(Party3maxmanaSTR)
  3081.        
  3082.     elseif Party3powerType == 1 or 3 or 6 then
  3083.         local Party3curpwrSTR = ("%s"):format(Party3currPower)
  3084.         local Party3maxpwrSTR = ("%s"):format(Party3maxPower)
  3085.            
  3086.         Party3CMNumTxt:SetText(Party3curpwrSTR)
  3087.         Party3MMNumTxt:SetText(Party3maxpwrSTR)
  3088.     end
  3089.  
  3090. end
  3091.  
  3092.  
  3093.  
  3094. function GrimUI:Party3Style1TargEventFunc()
  3095.         local Party3targetTargetName = UnitName("Party3target")
  3096.         local Party3targetExists = UnitExists("Party3target")
  3097.         local targetMe = UnitName("player")
  3098.         local targetmytarget = UnitName("target")
  3099.         local Party3targetISmytarget = UnitIsUnit("Party3target", "target")
  3100.  
  3101.         if Party3targetExists == 1 and Party3targetISmytarget == 1 then
  3102.             targetOfParty3Text:SetText("** YOUR TARGET **")
  3103.         end
  3104.  
  3105.  
  3106.         if  Party3targetExists == 1 and Party3targetTargetName == targetMe then
  3107.             targetOfParty3Text:SetText("** YOU **")
  3108.         end
  3109.        
  3110.         if  Party3targetExists == 1 and Party3targetTargetName ~= targetMe and Party3targetISmytarget ~= 1 then
  3111.             local nametstr = ("%s"):format(Party3targetTargetName)
  3112.             targetOfParty3Text:SetText(nametstr)
  3113.         end
  3114.         if Party3targetExists == nil then
  3115.         targetOfParty3Text:SetText("-No Target-")
  3116.         Party3ttbg:SetTexture(0, 0, 0, 0)
  3117.         end
  3118.        
  3119.         local Party3targetIsFoe = UnitIsEnemy("player", "Party3target")
  3120.         local Party3targetIsFriend = UnitIsFriend("player", "Party3target")
  3121.    
  3122.         if Party3targetExists == 1 and Party3targetIsFoe == 1 then
  3123.         Party3ttbg:SetTexture(.40, .10, .10, 1)
  3124.         end
  3125.        
  3126.         if Party3targetExists == 1 and Party3targetIsFriend == 1 then
  3127.         Party3ttbg:SetTexture(.10, .40, .10, 1)
  3128.         end
  3129.         end
  3130.  
  3131. -----------------------
  3132. -- Party4 Excluded Functions
  3133. -------------------------
  3134. function GrimUI:Party4Style1HealthEventFunc()
  3135.  
  3136. local currParty4Health, maxParty4Health = UnitHealth("Party4"), UnitHealthMax("Party4")
  3137.         local Party4connected = UnitIsConnected("Party4")
  3138.         local percentParty4Health = floor(currParty4Health / maxParty4Health * 100)  
  3139.         local Party4CurrHealth, Party4MaxHealth = UnitHealth("Party4"), UnitHealthMax("Party4")
  3140.         local Party4chnumtxt = ("%s"):format(Party4CurrHealth)
  3141.         local Party4mhnumtxt = ("%s"):format(Party4MaxHealth)
  3142.        
  3143.         if Party4connected == nil or currParty4Health == nil or maxParty4Health == nil then
  3144.             percentParty4HText:SetText("0%")
  3145.         else
  3146.             local Party4Hstr = ("%s%%"):format(percentParty4Health)
  3147.             percentParty4HText:SetText(Party4Hstr)
  3148.         end
  3149.        
  3150.         Party4HealthBar:SetMinMaxValues(min(0, currParty4Health), maxParty4Health)
  3151.         Party4HealthBar:SetValue(currParty4Health)
  3152.    
  3153.         Party4CHNumTxt:SetText(Party4chnumtxt)
  3154.         Party4MHNumTxt:SetText(Party4mhnumtxt)
  3155. end
  3156.  
  3157.  
  3158.  
  3159. function GrimUI:Party4Style1ManaEventFunc()
  3160.  
  3161. local currMana, maxMana = UnitMana("Party4"), UnitManaMax("Party4")
  3162.         local powerType = UnitPowerType("Party4")
  3163.         local currPower = UnitPower("Party4")
  3164.         local maxPower = UnitPowerMax("Party4")
  3165.         local percentMana = floor(currMana / maxMana * 100)
  3166.         local Party4currMana, Party4maxMana = UnitMana("Party4"), UnitManaMax("Party4")
  3167.         local Party4powerType = UnitPowerType("Party4")
  3168.         local Party4currPower = UnitPower("Party4")
  3169.         local Party4maxPower = UnitPowerMax("Party4")
  3170.         local Party4currShape = GetShapeshiftForm()
  3171.        
  3172.         if maxMana >= 1 then
  3173.             local perParty4Mstr = ("%s%%"):format(percentMana)
  3174.             percentParty4MText:SetText(perParty4Mstr)
  3175.         end
  3176.        
  3177.         if maxMana == 0 then
  3178.             local perParty4Mstr = ("0%")
  3179.             percentParty4MText:SetText(perParty4Mstr)
  3180.         end
  3181.        
  3182.        
  3183.         if powerType == 0 then
  3184.            
  3185.             Party4ManaBar:SetMinMaxValues(min(0, currMana), maxMana)
  3186.             Party4ManaBar:SetValue(currMana)
  3187.             Party4ManaBar:SetStatusBarColor(.556, .556, .921, 1)
  3188.  
  3189.         elseif powerType == 1 or 3 or 6 then
  3190.        
  3191.             Party4ManaBar:SetMinMaxValues(min(0, currPower), maxPower)
  3192.             Party4ManaBar:SetValue(currPower)
  3193.             Party4ManaBar:SetStatusBarColor(.656, .456, .456, 1)
  3194.  
  3195.         end
  3196.  
  3197.     if Party4powerType == 0 then
  3198.         local Party4curmanaSTR = ("%s"):format(Party4currMana)
  3199.         local Party4maxmanaSTR = ("%s"):format(Party4maxMana)
  3200.         Party4CMNumTxt:SetText(Party4curmanaSTR)
  3201.         Party4MMNumTxt:SetText(Party4maxmanaSTR)
  3202.        
  3203.     elseif Party4powerType == 1 or 3 or 6 then
  3204.         local Party4curpwrSTR = ("%s"):format(Party4currPower)
  3205.         local Party4maxpwrSTR = ("%s"):format(Party4maxPower)
  3206.            
  3207.         Party4CMNumTxt:SetText(Party4curpwrSTR)
  3208.         Party4MMNumTxt:SetText(Party4maxpwrSTR)
  3209.     end
  3210.  
  3211. end
  3212.  
  3213.  
  3214.  
  3215. function GrimUI:Party4Style1TargEventFunc()
  3216.         local Party4targetTargetName = UnitName("Party4target")
  3217.         local Party4targetExists = UnitExists("Party4target")
  3218.         local targetMe = UnitName("player")
  3219.         local targetmytarget = UnitName("target")
  3220.         local Party4targetISmytarget = UnitIsUnit("Party4target", "target")
  3221.  
  3222.         if Party4targetExists == 1 and Party4targetISmytarget == 1 then
  3223.             targetOfParty4Text:SetText("** YOUR TARGET **")
  3224.         end
  3225.  
  3226.  
  3227.         if  Party4targetExists == 1 and Party4targetTargetName == targetMe then
  3228.             targetOfParty4Text:SetText("** YOU **")
  3229.         end
  3230.        
  3231.         if  Party4targetExists == 1 and Party4targetTargetName ~= targetMe and Party4targetISmytarget ~= 1 then
  3232.             local nametstr = ("%s"):format(Party4targetTargetName)
  3233.             targetOfParty4Text:SetText(nametstr)
  3234.         end
  3235.         if Party4targetExists == nil then
  3236.         targetOfParty4Text:SetText("-No Target-")
  3237.         Party4ttbg:SetTexture(0, 0, 0, 0)
  3238.         end
  3239.        
  3240.         local Party4targetIsFoe = UnitIsEnemy("player", "Party4target")
  3241.         local Party4targetIsFriend = UnitIsFriend("player", "Party4target")
  3242.    
  3243.         if Party4targetExists == 1 and Party4targetIsFoe == 1 then
  3244.         Party4ttbg:SetTexture(.40, .10, .10, 1)
  3245.         end
  3246.        
  3247.         if Party4targetExists == 1 and Party4targetIsFriend == 1 then
  3248.         Party4ttbg:SetTexture(.10, .40, .10, 1)
  3249.         end
  3250.         end
  3251.  
  3252.  
  3253.  
  3254.  
  3255. ----------------------------------
  3256. -- GrimLayout1 END ------------
  3257. ----------------------------------
  3258. ----------------------------------------------------------------------------------------------------------------------------------------
  3259.  
  3260. --######################################################################################################################################
  3261. --######################################################################################################################################
  3262. --##                 LAYOUT DIVIDER
  3263. --######################################################################################################################################
  3264. --######################################################################################################################################
  3265.  
  3266. ------------------------------------------------------------------------------------------------------------------------------------
  3267.  
  3268. ----------------------
  3269. -- PARTY STYLE 2 ------------
  3270. ---------------------------
  3271.  
  3272. local GrimStyle2 = function()
  3273.  
  3274.     --#################################################################---------------------
  3275.     --########## Party1 Frame START ######--
  3276.     --#############################################---------------------
  3277.  
  3278.         GUI_Party1Frame:SetWidth(192)
  3279.         GUI_Party1Frame:SetHeight(135)
  3280.  
  3281.     ---local pfbg = GUI_Party1Frame:CreateTexture(nil, "BACKGROUND")
  3282.     ---pfbg:SetTexture(0, 0, 0, .6)
  3283.     ---pfbg:SetAllPoints(GUI_Party1Frame)
  3284.    
  3285.    
  3286.     --  Party1 pedestal
  3287.     Party1PedestalFrame:ClearAllPoints()
  3288.     Party1PedestalFrame:SetPoint("BOTTOMLEFT", GUI_Party1Frame, "BOTTOMLEFT", 4, 0)
  3289.    
  3290.     Party1PedestalFrame:SetHeight(15)
  3291.     Party1PedestalFrame:SetWidth(49)
  3292.    
  3293.     Party1PedestalFrame.texture:Hide()
  3294.     Party1PedestalFrame.texture:ClearAllPoints()
  3295.     Party1PedestalFrame.texture:Show()
  3296.     Party1PedestalFrame.texture:SetAllPoints(Party1PedestalFrame)
  3297.    
  3298.     Party1PedestalFrame.texture:SetTexture("Interface\\AddOns\\!GrimUI\\Art\\pedestal.tga")
  3299.     Party1PedestalFrame:SetFrameStrata("LOW")
  3300.     Party1PedestalFrame:SetFrameLevel("2")
  3301.  
  3302.    
  3303.    
  3304.     -- party 1 health bar start
  3305.  
  3306.     Party1HealthBorder:SetHeight(28)
  3307.     Party1HealthBorder:SetWidth(140)
  3308.    
  3309.    
  3310.     Party1HealthBorder:ClearAllPoints()
  3311.     Party1HealthBorder:SetPoint("BOTTOMRIGHT", GUI_Party1Frame, "BOTTOMRIGHT", 0, 47)
  3312.  
  3313.     Party1HealthBorder:SetBackdrop{
  3314.             bgFile = nil,
  3315.             edgeFile = "Interface/DialogFrame/UI-DialogBox-Border", tile = false, tileSize = 0, edgeSize = 5,
  3316.             insets = { left = 0, right = 0, top = 0, bottom = 0 }
  3317.         }
  3318.     Party1HealthBorder:SetBackdropBorderColor(0, 0, 0, 1)
  3319.  
  3320.  
  3321.     Party1HealthBorder:SetFrameStrata("BACKGROUND")
  3322.     Party1HealthBorder:SetFrameLevel("3")
  3323.  
  3324.     Party1HealthBorder:RegisterForClicks("AnyUp")
  3325.     Party1HealthBorder:SetAttribute("unit", "Party1")
  3326.     Party1HealthBorder:SetAttribute("*type1", "target")
  3327.  
  3328.         local showParty1menu = function()
  3329.             ToggleDropDownMenu(1, nil, PartyMemberFrame1DropDown, "cursor", 0, 0)
  3330.         end
  3331.  
  3332.     Party1HealthBorder.showParty1menu = showParty1menu
  3333.     Party1HealthBorder.unit = "Party1"
  3334.     Party1HealthBorder:SetAttribute("*type2", "showParty1menu")
  3335.     Party1HealthBorder:SetScript("OnEnter", UnitFrame_OnEnter)
  3336.     Party1HealthBorder:SetScript("OnLeave", UnitFrame_OnLeave)
  3337.     Party1HealthBorder:SetFrameStrata("BACKGROUND")
  3338.     Party1HealthBorder:SetFrameLevel("2")
  3339.  
  3340.  
  3341.    
  3342.     Party1HealthBar:SetHeight(26)
  3343.     Party1HealthBar:SetWidth(138)
  3344.    
  3345.     Party1HealthBar:ClearAllPoints()
  3346.     Party1HealthBar:SetPoint("CENTER", Party1HealthBorder, "CENTER", 0, 0)
  3347.    
  3348.     Party1HealthBar:SetStatusBarTexture("Interface\\AddOns\\!GrimUI\\Art\\VBarTexture.tga")
  3349.     Party1HealthBar:SetStatusBarColor(.231, .682, .419, 1)
  3350.     Party1HealthBar:SetOrientation("HORIZONTAL")
  3351.     Party1HealthBar:SetFrameStrata("BACKGROUND")
  3352.     Party1HealthBar:SetFrameLevel("2")
  3353.  
  3354.     percentParty1HText:ClearAllPoints()
  3355.     percentParty1HText:SetPoint("BOTTOMLEFT", Party1HealthBorder, "BOTTOMLEFT", 0, 2)
  3356.    
  3357.     percentParty1HText:SetTextColor(1, 1, 1, 1)
  3358.     percentParty1HText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 10, "NORMAL")
  3359.  
  3360.    
  3361.  
  3362. ----------------------------------
  3363. -- party 1 health bar end
  3364. -----------------------------------
  3365.  
  3366.  
  3367. -----------------------------------
  3368. -- party 1 mana bar Start  
  3369. ----------------------------------
  3370.  
  3371.     Party1ManaBorder:SetHeight(28)
  3372.     Party1ManaBorder:SetWidth(140)
  3373.    
  3374.     Party1ManaBorder:ClearAllPoints()
  3375.     Party1ManaBorder:SetPoint("BOTTOMRIGHT", GUI_Party1Frame, "BOTTOMRIGHT", 0, 20)
  3376.  
  3377.     Party1ManaBorder:SetBackdrop{
  3378.             bgFile = nil,
  3379.             edgeFile = "Interface/DialogFrame/UI-DialogBox-Border", tile = false, tileSize = 0, edgeSize = 5,
  3380.             insets = { left = 0, right = 0, top = 0, bottom = 0 }
  3381.         }
  3382.     Party1ManaBorder:SetBackdropBorderColor(0, 0, 0, 1)
  3383.  
  3384.  
  3385.     Party1ManaBorder:SetFrameStrata("BACKGROUND")
  3386.     Party1ManaBorder:SetFrameLevel("3")
  3387.  
  3388.  
  3389.     Party1ManaBorder:RegisterForClicks("AnyUp")
  3390.     Party1ManaBorder:SetAttribute("unit", "Party1")
  3391.     Party1ManaBorder:SetAttribute("*type1", "target")
  3392.  
  3393.     local showParty1menu = function()
  3394.         ToggleDropDownMenu(1, nil, PartyMemberFrame1DropDown, "cursor", 0, 0)
  3395.     end
  3396.    
  3397.     Party1ManaBorder.showParty1menu = showParty1menu
  3398.     Party1ManaBorder.unit = "Party1"
  3399.     Party1ManaBorder:SetAttribute("*type2", "showParty1menu")
  3400.     Party1ManaBorder:SetScript("OnEnter", UnitFrame_OnEnter)
  3401.     Party1ManaBorder:SetScript("OnLeave", UnitFrame_OnLeave)
  3402.     Party1ManaBorder:SetFrameStrata("BACKGROUND")
  3403.     Party1ManaBorder:SetFrameLevel("2")
  3404.  
  3405.  
  3406.  
  3407.     Party1ManaBar:SetWidth(138)
  3408.     Party1ManaBar:SetHeight(26)
  3409.    
  3410.     Party1ManaBar:ClearAllPoints()
  3411.     Party1ManaBar:SetPoint("CENTER", Party1ManaBorder, "CENTER", 0, 0)
  3412.    
  3413.     Party1ManaBar:SetStatusBarTexture("Interface\\AddOns\\!GrimUI\\Art\\VBarTexture.tga")
  3414.     Party1ManaBar:SetOrientation("HORIZONTAL")
  3415.     Party1ManaBar:SetFrameStrata("BACKGROUND")
  3416.     Party1ManaBar:SetFrameLevel("2")
  3417.  
  3418.  
  3419.  
  3420.    
  3421.     percentParty1MText:ClearAllPoints()
  3422.     percentParty1MText:SetPoint("BOTTOMLEFT", Party1ManaBorder, "BOTTOMLEFT", 0, 2)
  3423.    
  3424.     percentParty1MText:SetTextColor(1, 1, 1, 1)
  3425.     percentParty1MText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 10, "NORMAL")
  3426.  
  3427.  
  3428.  
  3429.    
  3430. -- Party 1 Mana bar end
  3431.  
  3432. -- Party 1 TextInfo Frame Start
  3433.  
  3434.  
  3435.     Party1InfoTextFrame:ClearAllPoints()
  3436.     Party1InfoTextFrame:SetPoint("BOTTOMRIGHT", GUI_Party1Frame, "BOTTOMRIGHT", 0, 75)
  3437.    
  3438.    
  3439.     Party1InfoTextFrame:SetWidth(140)
  3440.     Party1InfoTextFrame:SetHeight(26)
  3441.     Party1InfoTextFrame:SetFrameStrata("HIGH")
  3442.     Party1InfoTextFrame:SetFrameLevel("5")
  3443.    
  3444.  
  3445.     Party1InfoTextFrame:RegisterForClicks("AnyUp")
  3446.     Party1InfoTextFrame:SetAttribute("unit", "Party1")
  3447.     Party1InfoTextFrame:SetAttribute("*type1", "target")
  3448.  
  3449.         local showParty1menu = function()
  3450.             ToggleDropDownMenu(1, nil, PartyMemberFrame1DropDown, "cursor", 0, 0)
  3451.        
  3452.         end
  3453.        
  3454.  
  3455.     Party1InfoTextFrame.showParty1menu = showParty1menu
  3456.     Party1InfoTextFrame.unit = "Party1"
  3457.     Party1InfoTextFrame:SetAttribute("*type2", "showParty1menu")
  3458.     Party1InfoTextFrame:SetScript("OnEnter", UnitFrame_OnEnter)
  3459.     Party1InfoTextFrame:SetScript("OnLeave", UnitFrame_OnLeave)
  3460.    
  3461.    
  3462.    
  3463.     -- Party 1 TextInfo Frame END
  3464.  
  3465.     ------------------------------
  3466.     -- party 1 name text Frame Start
  3467.     ------------------------------
  3468.    
  3469.  
  3470.  
  3471.  
  3472.    
  3473.     Party1NameText:ClearAllPoints()
  3474.     Party1NameText:SetPoint("TOPLEFT", Party1InfoTextFrame, "TOPLEFT", -1, 9)
  3475.     Party1NameText:SetPoint("TOPRIGHT", Party1InfoTextFrame, "TOPRIGHT", 0, 9)
  3476.    
  3477.    
  3478.    
  3479.     Party1NameText:SetJustifyH("LEFT")
  3480.     Party1NameText:SetTextColor(1, 1, 1, 1)
  3481.     Party1NameText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font3.ttf", 17, "OUTLINE")
  3482.  
  3483.  
  3484.    
  3485.     ------------------------------
  3486.     -- party 1 name text Frame END
  3487.     ------------------------------
  3488.  
  3489.     -- health numbered text start
  3490.    
  3491.  
  3492.     Party1HealthNumTxtFrame:ClearAllPoints()
  3493.     Party1HealthNumTxtFrame:SetPoint("RIGHT", Party1HealthBorder, "RIGHT", 0, 0)
  3494.    
  3495.     Party1HealthNumTxtFrame:SetWidth(1)
  3496.     Party1HealthNumTxtFrame:SetHeight(1)
  3497.    
  3498.  
  3499.     Party1CHNumTxt:ClearAllPoints()
  3500.     Party1CHNumTxt:SetPoint("RIGHT", Party1HealthNumTxtFrame , "RIGHT", 0, 0)
  3501.    
  3502.     Party1CHNumTxt:SetTextColor(1, 1, 1, 1)
  3503.     Party1CHNumTxt:SetJustifyH("RIGHT")
  3504.     Party1CHNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  3505.    
  3506.    
  3507.     ----------------------------------------------------------------
  3508.     -- Mana numbered text start
  3509.     --------------------------------
  3510.    
  3511.     -- Mana numbered text start
  3512.        
  3513.    
  3514.     Party1ManaNumTxtFrame:ClearAllPoints()
  3515.     Party1ManaNumTxtFrame:SetPoint("RIGHT", Party1ManaBorder, "RIGHT", 0, 0)
  3516.    
  3517.     Party1ManaNumTxtFrame:SetWidth(1)
  3518.     Party1ManaNumTxtFrame:SetHeight(1)
  3519.    
  3520.    
  3521.     Party1CMNumTxt:ClearAllPoints()
  3522.     Party1CMNumTxt:SetPoint("RIGHT", Party1ManaNumTxtFrame, "RIGHT", 0, 0)
  3523.     Party1CMNumTxt:SetTextColor(1, 1, 1, 1)
  3524.     Party1CMNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  3525.    
  3526.     -------------------------------------------------------------------------------
  3527.     -- Party1 mana numbered text end
  3528.     ------------------------------
  3529.    
  3530.     Party1NameTextEvents:SetScript("OnEvent", function(self)
  3531.    
  3532.     GrimUI.Party1NameColoring()
  3533.    
  3534.     end)
  3535.    
  3536.    
  3537.    
  3538.    
  3539.     Party1LvlClassText:ClearAllPoints()
  3540.     Party1LvlClassText:SetPoint("BOTTOM", Party1InfoTextFrame, "BOTTOM", 0, 3)
  3541.     Party1LvlClassText:SetPoint("LEFT", Party1InfoTextFrame, "LEFT", 2, 0)
  3542.     Party1LvlClassText:SetPoint("RIGHT", Party1InfoTextFrame, "RIGHT", 0, 0)
  3543.     Party1LvlClassText:SetJustifyH("LEFT")
  3544.     Party1LvlClassText:SetTextColor(0.937, 1, 0.345, 1)
  3545.     Party1LvlClassText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  3546.  
  3547.  
  3548.  
  3549.    
  3550.  
  3551.     Party1LvlCassTextEvents:SetScript("OnEvent", function(self)
  3552.     local Party1Lvl = UnitLevel("Party1")
  3553.    
  3554.     --local vehicname = UnitName("vehicle")
  3555.    -- local vehiclvl = UnitLevel("vehicle")
  3556.     --local vehictype = UnitCreatureType("vehicle")
  3557.        
  3558.     local Party1class = UnitClass("Party1")
  3559.     local Party1Race = UnitRace("Party1")
  3560.     local unitParty1exists = UnitExists("Party1")
  3561.  
  3562.    
  3563.     if unitParty1exists == 1 and Party1class ~= nil then
  3564.        
  3565.         local Party1lvlclassstr = ("%s %s"):format(Party1Lvl, Party1class)
  3566.         Party1LvlClassText:SetText(Party1lvlclassstr)
  3567.     elseif unitParty1exists == 1 and Party1class == nil then
  3568.         Party1LvlClassText:SetText("")
  3569.     end
  3570.    
  3571.    
  3572.    
  3573.     end)
  3574.    
  3575.     ----- party 1 lvl class text end
  3576.  
  3577.  
  3578.     -- party 1 party leader icon
  3579.    
  3580.    
  3581.     Party1LeaderFrame:ClearAllPoints()
  3582.     Party1LeaderFrame:SetPoint("BOTTOMRIGHT", Party1InfoTextFrame, "BOTTOMRIGHT", 0, 0)
  3583.    
  3584.     Party1LeaderFrame:SetHeight(18)
  3585.     Party1LeaderFrame:SetWidth(18)
  3586.     Party1LeaderFrame.texture = Party1LeaderFrame:CreateTexture()
  3587.     Party1LeaderFrame.texture:SetAllPoints(Party1LeaderFrame)
  3588.     Party1LeaderFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-LeaderIcon.blp")
  3589.     Party1LeaderFrame:Hide()
  3590.     Party1PartyLeaderEvent:SetScript("OnEvent", function(self)
  3591.          
  3592.         local Party1isPartyLead = UnitIsPartyLeader("Party1")
  3593.        
  3594.         if Party1isPartyLead == 1 then
  3595.         Party1LeaderFrame:Show()
  3596.         end
  3597.         if Party1isPartyLead ~= 1 then
  3598.         Party1LeaderFrame:Hide()
  3599.         end
  3600.     end)
  3601.  
  3602. -- Party 1 PVP icon
  3603.  
  3604.  
  3605.     Party1pvpIconFrame:ClearAllPoints()
  3606.     Party1pvpIconFrame:SetPoint("BOTTOMRIGHT", Party1InfoTextFrame, "BOTTOMRIGHT", -18, -2)
  3607.    
  3608.     Party1pvpIconFrame:SetHeight(19)
  3609.     Party1pvpIconFrame:SetWidth(19)
  3610.     Party1pvpIconFrame.texture = Party1pvpIconFrame:CreateTexture()
  3611.     Party1pvpIconFrame.texture:SetAllPoints(Party1pvpIconFrame)
  3612.  
  3613.  
  3614.     Party1pvpIconEvent:SetScript("OnEvent", function(self)
  3615.        
  3616.         local Party1englishFaction, localizedFaction = UnitFactionGroup("Party1")
  3617.         if Party1englishFaction == "Alliance" then    
  3618.         Party1pvpIconFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-PVP-Alliance.blp")
  3619.         elseif Party1englishFaction == "Horde" then
  3620.         Party1pvpIconFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-PVP-Horde.blp")
  3621.         end
  3622.        
  3623.         local Party1ispvp = UnitIsPVP("Party1")
  3624.        
  3625.         if Party1ispvp == 1 then
  3626.         Party1pvpIconFrame:Show()
  3627.         end
  3628.        
  3629.         if Party1ispvp ~= 1 then
  3630.         Party1pvpIconFrame:Hide()
  3631.         end
  3632.     end)
  3633.     --------------------------
  3634.     -- Party1 PVP icon end
  3635.     -------------------------
  3636.    
  3637.     --------------------------
  3638.     -- Party1 Offline/Dead overlay
  3639.     --------------------------
  3640.    
  3641.     Party1offDeadGhostTxtFrame:ClearAllPoints()
  3642.     Party1offDeadGhostTxtFrame:SetPoint("LEFT", GUI_Party1Frame, "LEFT", 15, 0)
  3643.    
  3644.     Party1offDeadGhostTxtFrame:SetWidth(68)
  3645.     Party1offDeadGhostTxtFrame:SetHeight(15)
  3646.    
  3647.     Party1DeadOfflineTxt:ClearAllPoints()
  3648.     Party1DeadOfflineTxt:SetPoint("CENTER", Party1offDeadGhostTxtFrame , "CENTER", 0, 0)
  3649.    
  3650.     Party1DeadOfflineTxt:SetTextColor(.85, .10, .10, 1)
  3651.     Party1DeadOfflineTxt:SetJustifyH("CENTER")
  3652.     Party1DeadOfflineTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 18, "OUTLINE")
  3653.    
  3654.    
  3655.    
  3656.     Party1OffLineDeadEvents:SetScript("OnEvent", function(self)
  3657.    
  3658.     local Party1isDead = UnitIsDead("Party1")
  3659.     local Party1isGhost = UnitIsGhost("Party1")
  3660.     local Party1health = UnitHealth("Party1")
  3661.     local Party1connected = UnitIsConnected("Party1")
  3662.    
  3663.     if Party1isDead == 1 and Party1connected == 1 and Party1isGhost == nil then
  3664.        
  3665.         Party1DeadOfflineTxt:SetText("Dead")
  3666.     elseif Party1isGhost == 1 and Party1connected == 1 then
  3667.         Party1DeadOfflineTxt:SetText("Ghost")
  3668.     elseif Party1isDead == nil and Party1connected == nil and Party1isGhost == nil then
  3669.         Party1DeadOfflineTxt:SetText("Offline")
  3670.    
  3671.     elseif Party1isDead == 1 and Party1connected == nil and Party1isGhost == nil then
  3672.         Party1DeadOfflineTxt:SetText("Dead\n Offline")
  3673.     elseif Party1connected == nil and Party1isGhost == 1 then
  3674.         Party1DeadOfflineTxt:SetText("Ghost\n Offline")
  3675.     elseif Party1isDead == nil and Party1connected == 1 and Party1isGhost == nil then
  3676.         Party1DeadOfflineTxt:SetText(nil)
  3677.     end
  3678.    
  3679.    
  3680.     end)
  3681.    
  3682.    
  3683.     --[[######################  
  3684.     Target targettarget Frame START
  3685.     ########################]]
  3686.        
  3687.        
  3688.    
  3689.     targetOfParty1Frame:SetWidth(140)
  3690.     targetOfParty1Frame:SetHeight(19)
  3691.    
  3692.     targetOfParty1Frame:ClearAllPoints()
  3693.     targetOfParty1Frame:SetPoint("BOTTOMRIGHT", GUI_Party1Frame, "BOTTOMRIGHT", 0, 1)
  3694.    
  3695.  
  3696.     Party1ttbg:SetAllPoints(targetOfParty1Frame)
  3697.    
  3698.     targetOfParty1Text:ClearAllPoints()
  3699.     targetOfParty1Text:SetPoint("CENTER", targetOfParty1Frame, "CENTER", 0, 0)
  3700.     targetOfParty1Text:SetPoint("LEFT", targetOfParty1Frame, "LEFT", 0, 1)
  3701.     targetOfParty1Text:SetPoint("RIGHT", targetOfParty1Frame, "RIGHT", 0, 1)
  3702.     targetOfParty1Text:SetTextColor(1, 1, 1, 1)
  3703.     targetOfParty1Text:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font3.ttf", 11, "OUTLINE")
  3704.  
  3705.  
  3706.     targetOfParty1Frame:SetScript("OnEvent", function(self)
  3707.         GrimUI.Party1Style2TargEventFunc()
  3708.     end)
  3709.    
  3710.    
  3711.    
  3712.     targetOfParty1ClickFrame:SetWidth(140)
  3713.     targetOfParty1ClickFrame:SetHeight(19)
  3714.    
  3715.     targetOfParty1ClickFrame:ClearAllPoints()
  3716.     targetOfParty1ClickFrame:SetPoint("BOTTOMRIGHT", GUI_Party1Frame, "BOTTOMRIGHT", 0, 1)
  3717.    
  3718.     targetOfParty1ClickFrame:SetFrameStrata("HIGH")
  3719.     targetOfParty1ClickFrame:SetFrameLevel("6")
  3720.    
  3721.     targetOfParty1ClickFrame:RegisterForClicks("AnyUp")
  3722.     targetOfParty1ClickFrame:SetAttribute("unit", "Party1target")
  3723.     targetOfParty1ClickFrame:SetAttribute("*type1", "target")
  3724.     RegisterUnitWatch(targetOfParty1ClickFrame)
  3725.  
  3726.    
  3727.    
  3728.         local showParty1targetmenu = function()
  3729.             ToggleDropDownMenu(1, nil, TargetFrameDropDown, "cursor", 0, 0)
  3730.        
  3731.         end
  3732.        
  3733.  
  3734.     targetOfParty1ClickFrame.showParty1targetmenu = showParty1targetmenu
  3735.     targetOfParty1ClickFrame.unit = "Party1target"
  3736.     targetOfParty1ClickFrame:SetAttribute("*type2", "showParty1targetmenu")
  3737.     targetOfParty1ClickFrame:SetScript("OnEnter", UnitFrame_OnEnter)
  3738.     targetOfParty1ClickFrame:SetScript("OnLeave", UnitFrame_OnLeave)
  3739.    
  3740.    
  3741.    
  3742.    
  3743.    
  3744.    
  3745.     --[[######################  
  3746.                Target targettargetFrame END
  3747.         ########################]]
  3748.    
  3749.     --#########
  3750.     -- Party1 Events
  3751.     ----------------
  3752.    
  3753.    
  3754.     Party1HealthEvents:SetScript("OnEvent", function(self)
  3755.         GrimUI.Party1Style2HealthEventFunc()
  3756.     end)
  3757.  
  3758.     Party1ManaEvents:SetScript("OnEvent", function(self)
  3759.         GrimUI.Party1Style2ManaEventFunc()
  3760.     end)
  3761.    
  3762.    
  3763.    
  3764.    
  3765.    
  3766.     -- after thoughts
  3767.     Party1LetterMText:Hide()
  3768.     Party1LetterHText:Hide()
  3769.     Party1MMNumTxt:Hide()
  3770.     Party1MHNumTxt:Hide()
  3771.    
  3772.  
  3773.         -----------------------##########################################################################
  3774.     -- Party1 Frame  END
  3775.     -----------------------################################################################################
  3776.         --#################################################################---------------------
  3777.     --########## Party2 Frame START ######--
  3778.     --#############################################---------------------
  3779.  
  3780.         GUI_Party2Frame:SetWidth(192)
  3781.         GUI_Party2Frame:SetHeight(135)
  3782.  
  3783.     ---local pfbg = GUI_Party2Frame:CreateTexture(nil, "BACKGROUND")
  3784.     ---pfbg:SetTexture(0, 0, 0, .6)
  3785.     ---pfbg:SetAllPoints(GUI_Party2Frame)
  3786.    
  3787.    
  3788.     --  Party2 pedestal
  3789.     Party2PedestalFrame:ClearAllPoints()
  3790.     Party2PedestalFrame:SetPoint("BOTTOMLEFT", GUI_Party2Frame, "BOTTOMLEFT", 4, 0)
  3791.    
  3792.     Party2PedestalFrame:SetHeight(15)
  3793.     Party2PedestalFrame:SetWidth(49)
  3794.    
  3795.     Party2PedestalFrame.texture:Hide()
  3796.     Party2PedestalFrame.texture:ClearAllPoints()
  3797.     Party2PedestalFrame.texture:Show()
  3798.     Party2PedestalFrame.texture:SetAllPoints(Party2PedestalFrame)
  3799.    
  3800.     Party2PedestalFrame.texture:SetTexture("Interface\\AddOns\\!GrimUI\\Art\\pedestal.tga")
  3801.     Party2PedestalFrame:SetFrameStrata("LOW")
  3802.     Party2PedestalFrame:SetFrameLevel("2")
  3803.  
  3804.    
  3805.    
  3806.     -- party 1 health bar start
  3807.  
  3808.     Party2HealthBorder:SetHeight(28)
  3809.     Party2HealthBorder:SetWidth(140)
  3810.    
  3811.    
  3812.     Party2HealthBorder:ClearAllPoints()
  3813.     Party2HealthBorder:SetPoint("BOTTOMRIGHT", GUI_Party2Frame, "BOTTOMRIGHT", 0, 47)
  3814.  
  3815.     Party2HealthBorder:SetBackdrop{
  3816.             bgFile = nil,
  3817.             edgeFile = "Interface/DialogFrame/UI-DialogBox-Border", tile = false, tileSize = 0, edgeSize = 5,
  3818.             insets = { left = 0, right = 0, top = 0, bottom = 0 }
  3819.         }
  3820.     Party2HealthBorder:SetBackdropBorderColor(0, 0, 0, 1)
  3821.  
  3822.  
  3823.     Party2HealthBorder:SetFrameStrata("BACKGROUND")
  3824.     Party2HealthBorder:SetFrameLevel("3")
  3825.  
  3826.     Party2HealthBorder:RegisterForClicks("AnyUp")
  3827.     Party2HealthBorder:SetAttribute("unit", "Party2")
  3828.     Party2HealthBorder:SetAttribute("*type1", "target")
  3829.  
  3830.         local showParty2menu = function()
  3831.             ToggleDropDownMenu(1, nil, PartyMemberFrame1DropDown, "cursor", 0, 0)
  3832.         end
  3833.  
  3834.     Party2HealthBorder.showParty2menu = showParty2menu
  3835.     Party2HealthBorder.unit = "Party2"
  3836.     Party2HealthBorder:SetAttribute("*type2", "showParty2menu")
  3837.     Party2HealthBorder:SetScript("OnEnter", UnitFrame_OnEnter)
  3838.     Party2HealthBorder:SetScript("OnLeave", UnitFrame_OnLeave)
  3839.     Party2HealthBorder:SetFrameStrata("BACKGROUND")
  3840.     Party2HealthBorder:SetFrameLevel("2")
  3841.  
  3842.  
  3843.    
  3844.     Party2HealthBar:SetHeight(26)
  3845.     Party2HealthBar:SetWidth(138)
  3846.    
  3847.     Party2HealthBar:ClearAllPoints()
  3848.     Party2HealthBar:SetPoint("CENTER", Party2HealthBorder, "CENTER", 0, 0)
  3849.    
  3850.     Party2HealthBar:SetStatusBarTexture("Interface\\AddOns\\!GrimUI\\Art\\VBarTexture.tga")
  3851.     Party2HealthBar:SetStatusBarColor(.231, .682, .419, 1)
  3852.     Party2HealthBar:SetOrientation("HORIZONTAL")
  3853.     Party2HealthBar:SetFrameStrata("BACKGROUND")
  3854.     Party2HealthBar:SetFrameLevel("2")
  3855.  
  3856.     percentParty2HText:ClearAllPoints()
  3857.     percentParty2HText:SetPoint("BOTTOMLEFT", Party2HealthBorder, "BOTTOMLEFT", 0, 2)
  3858.    
  3859.     percentParty2HText:SetTextColor(1, 1, 1, 1)
  3860.     percentParty2HText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 10, "NORMAL")
  3861.  
  3862.    
  3863.  
  3864. ----------------------------------
  3865. -- party 1 health bar end
  3866. -----------------------------------
  3867.  
  3868.  
  3869. -----------------------------------
  3870. -- party 1 mana bar Start  
  3871. ----------------------------------
  3872.  
  3873.     Party2ManaBorder:SetHeight(28)
  3874.     Party2ManaBorder:SetWidth(140)
  3875.    
  3876.     Party2ManaBorder:ClearAllPoints()
  3877.     Party2ManaBorder:SetPoint("BOTTOMRIGHT", GUI_Party2Frame, "BOTTOMRIGHT", 0, 20)
  3878.  
  3879.     Party2ManaBorder:SetBackdrop{
  3880.             bgFile = nil,
  3881.             edgeFile = "Interface/DialogFrame/UI-DialogBox-Border", tile = false, tileSize = 0, edgeSize = 5,
  3882.             insets = { left = 0, right = 0, top = 0, bottom = 0 }
  3883.         }
  3884.     Party2ManaBorder:SetBackdropBorderColor(0, 0, 0, 1)
  3885.  
  3886.  
  3887.     Party2ManaBorder:SetFrameStrata("BACKGROUND")
  3888.     Party2ManaBorder:SetFrameLevel("3")
  3889.  
  3890.  
  3891.     Party2ManaBorder:RegisterForClicks("AnyUp")
  3892.     Party2ManaBorder:SetAttribute("unit", "Party2")
  3893.     Party2ManaBorder:SetAttribute("*type1", "target")
  3894.  
  3895.     local showParty2menu = function()
  3896.         ToggleDropDownMenu(1, nil, PartyMemberFrame1DropDown, "cursor", 0, 0)
  3897.     end
  3898.    
  3899.     Party2ManaBorder.showParty2menu = showParty2menu
  3900.     Party2ManaBorder.unit = "Party2"
  3901.     Party2ManaBorder:SetAttribute("*type2", "showParty2menu")
  3902.     Party2ManaBorder:SetScript("OnEnter", UnitFrame_OnEnter)
  3903.     Party2ManaBorder:SetScript("OnLeave", UnitFrame_OnLeave)
  3904.     Party2ManaBorder:SetFrameStrata("BACKGROUND")
  3905.     Party2ManaBorder:SetFrameLevel("2")
  3906.  
  3907.  
  3908.  
  3909.     Party2ManaBar:SetWidth(138)
  3910.     Party2ManaBar:SetHeight(26)
  3911.    
  3912.     Party2ManaBar:ClearAllPoints()
  3913.     Party2ManaBar:SetPoint("CENTER", Party2ManaBorder, "CENTER", 0, 0)
  3914.    
  3915.     Party2ManaBar:SetStatusBarTexture("Interface\\AddOns\\!GrimUI\\Art\\VBarTexture.tga")
  3916.     Party2ManaBar:SetOrientation("HORIZONTAL")
  3917.     Party2ManaBar:SetFrameStrata("BACKGROUND")
  3918.     Party2ManaBar:SetFrameLevel("2")
  3919.  
  3920.  
  3921.  
  3922.    
  3923.     percentParty2MText:ClearAllPoints()
  3924.     percentParty2MText:SetPoint("BOTTOMLEFT", Party2ManaBorder, "BOTTOMLEFT", 0, 2)
  3925.    
  3926.     percentParty2MText:SetTextColor(1, 1, 1, 1)
  3927.     percentParty2MText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 10, "NORMAL")
  3928.  
  3929.  
  3930.  
  3931.    
  3932. -- Party 1 Mana bar end
  3933.  
  3934. -- Party 1 TextInfo Frame Start
  3935.  
  3936.  
  3937.     Party2InfoTextFrame:ClearAllPoints()
  3938.     Party2InfoTextFrame:SetPoint("BOTTOMRIGHT", GUI_Party2Frame, "BOTTOMRIGHT", 0, 75)
  3939.    
  3940.    
  3941.     Party2InfoTextFrame:SetWidth(140)
  3942.     Party2InfoTextFrame:SetHeight(26)
  3943.     Party2InfoTextFrame:SetFrameStrata("HIGH")
  3944.     Party2InfoTextFrame:SetFrameLevel("5")
  3945.    
  3946.  
  3947.     Party2InfoTextFrame:RegisterForClicks("AnyUp")
  3948.     Party2InfoTextFrame:SetAttribute("unit", "Party2")
  3949.     Party2InfoTextFrame:SetAttribute("*type1", "target")
  3950.  
  3951.         local showParty2menu = function()
  3952.             ToggleDropDownMenu(1, nil, PartyMemberFrame1DropDown, "cursor", 0, 0)
  3953.        
  3954.         end
  3955.        
  3956.  
  3957.     Party2InfoTextFrame.showParty2menu = showParty2menu
  3958.     Party2InfoTextFrame.unit = "Party2"
  3959.     Party2InfoTextFrame:SetAttribute("*type2", "showParty2menu")
  3960.     Party2InfoTextFrame:SetScript("OnEnter", UnitFrame_OnEnter)
  3961.     Party2InfoTextFrame:SetScript("OnLeave", UnitFrame_OnLeave)
  3962.    
  3963.    
  3964.    
  3965.     -- Party 1 TextInfo Frame END
  3966.  
  3967.     ------------------------------
  3968.     -- party 1 name text Frame Start
  3969.     ------------------------------
  3970.    
  3971.  
  3972.  
  3973.  
  3974.    
  3975.     Party2NameText:ClearAllPoints()
  3976.     Party2NameText:SetPoint("TOPLEFT", Party2InfoTextFrame, "TOPLEFT", -1, 9)
  3977.     Party2NameText:SetPoint("TOPRIGHT", Party2InfoTextFrame, "TOPRIGHT", 0, 9)
  3978.    
  3979.    
  3980.    
  3981.     Party2NameText:SetJustifyH("LEFT")
  3982.     Party2NameText:SetTextColor(1, 1, 1, 1)
  3983.     Party2NameText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font3.ttf", 17, "OUTLINE")
  3984.  
  3985.  
  3986.    
  3987.     ------------------------------
  3988.     -- party 1 name text Frame END
  3989.     ------------------------------
  3990.  
  3991.     -- health numbered text start
  3992.    
  3993.  
  3994.     Party2HealthNumTxtFrame:ClearAllPoints()
  3995.     Party2HealthNumTxtFrame:SetPoint("RIGHT", Party2HealthBorder, "RIGHT", 0, 0)
  3996.    
  3997.     Party2HealthNumTxtFrame:SetWidth(1)
  3998.     Party2HealthNumTxtFrame:SetHeight(1)
  3999.    
  4000.  
  4001.     Party2CHNumTxt:ClearAllPoints()
  4002.     Party2CHNumTxt:SetPoint("RIGHT", Party2HealthNumTxtFrame , "RIGHT", 0, 0)
  4003.    
  4004.     Party2CHNumTxt:SetTextColor(1, 1, 1, 1)
  4005.     Party2CHNumTxt:SetJustifyH("RIGHT")
  4006.     Party2CHNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  4007.    
  4008.    
  4009.     ----------------------------------------------------------------
  4010.     -- Mana numbered text start
  4011.     --------------------------------
  4012.    
  4013.     -- Mana numbered text start
  4014.        
  4015.    
  4016.     Party2ManaNumTxtFrame:ClearAllPoints()
  4017.     Party2ManaNumTxtFrame:SetPoint("RIGHT", Party2ManaBorder, "RIGHT", 0, 0)
  4018.    
  4019.     Party2ManaNumTxtFrame:SetWidth(1)
  4020.     Party2ManaNumTxtFrame:SetHeight(1)
  4021.    
  4022.    
  4023.     Party2CMNumTxt:ClearAllPoints()
  4024.     Party2CMNumTxt:SetPoint("RIGHT", Party2ManaNumTxtFrame, "RIGHT", 0, 0)
  4025.     Party2CMNumTxt:SetTextColor(1, 1, 1, 1)
  4026.     Party2CMNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  4027.    
  4028.     -------------------------------------------------------------------------------
  4029.     -- Party2 mana numbered text end
  4030.     ------------------------------
  4031.    
  4032.     Party2NameTextEvents:SetScript("OnEvent", function(self)
  4033.    
  4034.     GrimUI.Party2NameColoring()
  4035.    
  4036.     end)
  4037.    
  4038.    
  4039.    
  4040.    
  4041.     Party2LvlClassText:ClearAllPoints()
  4042.     Party2LvlClassText:SetPoint("BOTTOM", Party2InfoTextFrame, "BOTTOM", 0, 3)
  4043.     Party2LvlClassText:SetPoint("LEFT", Party2InfoTextFrame, "LEFT", 2, 0)
  4044.     Party2LvlClassText:SetPoint("RIGHT", Party2InfoTextFrame, "RIGHT", 0, 0)
  4045.     Party2LvlClassText:SetJustifyH("LEFT")
  4046.     Party2LvlClassText:SetTextColor(0.937, 1, 0.345, 1)
  4047.     Party2LvlClassText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  4048.  
  4049.  
  4050.  
  4051.    
  4052.  
  4053.     Party2LvlCassTextEvents:SetScript("OnEvent", function(self)
  4054.     local Party2Lvl = UnitLevel("Party2")
  4055.    
  4056.     --local vehicname = UnitName("vehicle")
  4057.    -- local vehiclvl = UnitLevel("vehicle")
  4058.     --local vehictype = UnitCreatureType("vehicle")
  4059.        
  4060.     local Party2class = UnitClass("Party2")
  4061.     local Party2Race = UnitRace("Party2")
  4062.     local unitParty2exists = UnitExists("Party2")
  4063.  
  4064.    
  4065.     if unitParty2exists == 1 and Party2class ~= nil then
  4066.        
  4067.         local Party2lvlclassstr = ("%s %s"):format(Party2Lvl, Party2class)
  4068.         Party2LvlClassText:SetText(Party2lvlclassstr)
  4069.     elseif unitParty2exists == 1 and Party2class == nil then
  4070.         Party2LvlClassText:SetText("")
  4071.     end
  4072.    
  4073.    
  4074.    
  4075.     end)
  4076.    
  4077.     ----- party 1 lvl class text end
  4078.  
  4079.  
  4080.     -- party 1 party leader icon
  4081.    
  4082.    
  4083.     Party2LeaderFrame:ClearAllPoints()
  4084.     Party2LeaderFrame:SetPoint("BOTTOMRIGHT", Party2InfoTextFrame, "BOTTOMRIGHT", 0, 0)
  4085.    
  4086.     Party2LeaderFrame:SetHeight(18)
  4087.     Party2LeaderFrame:SetWidth(18)
  4088.     Party2LeaderFrame.texture = Party2LeaderFrame:CreateTexture()
  4089.     Party2LeaderFrame.texture:SetAllPoints(Party2LeaderFrame)
  4090.     Party2LeaderFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-LeaderIcon.blp")
  4091.     Party2LeaderFrame:Hide()
  4092.     Party2PartyLeaderEvent:SetScript("OnEvent", function(self)
  4093.          
  4094.         local Party2isPartyLead = UnitIsPartyLeader("Party2")
  4095.        
  4096.         if Party2isPartyLead == 1 then
  4097.         Party2LeaderFrame:Show()
  4098.         end
  4099.         if Party2isPartyLead ~= 1 then
  4100.         Party2LeaderFrame:Hide()
  4101.         end
  4102.     end)
  4103.  
  4104. -- Party 1 PVP icon
  4105.  
  4106.  
  4107.     Party2pvpIconFrame:ClearAllPoints()
  4108.     Party2pvpIconFrame:SetPoint("BOTTOMRIGHT", Party2InfoTextFrame, "BOTTOMRIGHT", -18, -2)
  4109.    
  4110.     Party2pvpIconFrame:SetHeight(19)
  4111.     Party2pvpIconFrame:SetWidth(19)
  4112.     Party2pvpIconFrame.texture = Party2pvpIconFrame:CreateTexture()
  4113.     Party2pvpIconFrame.texture:SetAllPoints(Party2pvpIconFrame)
  4114.  
  4115.  
  4116.     Party2pvpIconEvent:SetScript("OnEvent", function(self)
  4117.        
  4118.         local Party2englishFaction, localizedFaction = UnitFactionGroup("Party2")
  4119.         if Party2englishFaction == "Alliance" then    
  4120.         Party2pvpIconFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-PVP-Alliance.blp")
  4121.         elseif Party2englishFaction == "Horde" then
  4122.         Party2pvpIconFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-PVP-Horde.blp")
  4123.         end
  4124.        
  4125.         local Party2ispvp = UnitIsPVP("Party2")
  4126.        
  4127.         if Party2ispvp == 1 then
  4128.         Party2pvpIconFrame:Show()
  4129.         end
  4130.        
  4131.         if Party2ispvp ~= 1 then
  4132.         Party2pvpIconFrame:Hide()
  4133.         end
  4134.     end)
  4135.     --------------------------
  4136.     -- Party2 PVP icon end
  4137.     -------------------------
  4138.    
  4139.     --------------------------
  4140.     -- Party2 Offline/Dead overlay
  4141.     --------------------------
  4142.    
  4143.     Party2offDeadGhostTxtFrame:ClearAllPoints()
  4144.     Party2offDeadGhostTxtFrame:SetPoint("LEFT", GUI_Party2Frame, "LEFT", 15, 0)
  4145.    
  4146.     Party2offDeadGhostTxtFrame:SetWidth(68)
  4147.     Party2offDeadGhostTxtFrame:SetHeight(15)
  4148.    
  4149.     Party2DeadOfflineTxt:ClearAllPoints()
  4150.     Party2DeadOfflineTxt:SetPoint("CENTER", Party2offDeadGhostTxtFrame , "CENTER", 0, 0)
  4151.    
  4152.     Party2DeadOfflineTxt:SetTextColor(.85, .10, .10, 1)
  4153.     Party2DeadOfflineTxt:SetJustifyH("CENTER")
  4154.     Party2DeadOfflineTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 18, "OUTLINE")
  4155.    
  4156.    
  4157.    
  4158.     Party2OffLineDeadEvents:SetScript("OnEvent", function(self)
  4159.    
  4160.     local Party2isDead = UnitIsDead("Party2")
  4161.     local Party2isGhost = UnitIsGhost("Party2")
  4162.     local Party2health = UnitHealth("Party2")
  4163.     local Party2connected = UnitIsConnected("Party2")
  4164.    
  4165.     if Party2isDead == 1 and Party2connected == 1 and Party2isGhost == nil then
  4166.        
  4167.         Party2DeadOfflineTxt:SetText("Dead")
  4168.     elseif Party2isGhost == 1 and Party2connected == 1 then
  4169.         Party2DeadOfflineTxt:SetText("Ghost")
  4170.     elseif Party2isDead == nil and Party2connected == nil and Party2isGhost == nil then
  4171.         Party2DeadOfflineTxt:SetText("Offline")
  4172.    
  4173.     elseif Party2isDead == 1 and Party2connected == nil and Party2isGhost == nil then
  4174.         Party2DeadOfflineTxt:SetText("Dead\n Offline")
  4175.     elseif Party2connected == nil and Party2isGhost == 1 then
  4176.         Party2DeadOfflineTxt:SetText("Ghost\n Offline")
  4177.     elseif Party2isDead == nil and Party2connected == 1 and Party2isGhost == nil then
  4178.         Party2DeadOfflineTxt:SetText(nil)
  4179.     end
  4180.    
  4181.    
  4182.     end)
  4183.    
  4184.    
  4185.     --[[######################  
  4186.     Target targettarget Frame START
  4187.     ########################]]
  4188.        
  4189.        
  4190.    
  4191.     targetOfParty2Frame:SetWidth(140)
  4192.     targetOfParty2Frame:SetHeight(19)
  4193.    
  4194.     targetOfParty2Frame:ClearAllPoints()
  4195.     targetOfParty2Frame:SetPoint("BOTTOMRIGHT", GUI_Party2Frame, "BOTTOMRIGHT", 0, 1)
  4196.    
  4197.  
  4198.     Party2ttbg:SetAllPoints(targetOfParty2Frame)
  4199.    
  4200.     targetOfParty2Text:ClearAllPoints()
  4201.     targetOfParty2Text:SetPoint("CENTER", targetOfParty2Frame, "CENTER", 0, 0)
  4202.     targetOfParty2Text:SetPoint("LEFT", targetOfParty2Frame, "LEFT", 0, 1)
  4203.     targetOfParty2Text:SetPoint("RIGHT", targetOfParty2Frame, "RIGHT", 0, 1)
  4204.     targetOfParty2Text:SetTextColor(1, 1, 1, 1)
  4205.     targetOfParty2Text:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font3.ttf", 11, "OUTLINE")
  4206.  
  4207.  
  4208.     targetOfParty2Frame:SetScript("OnEvent", function(self)
  4209.         GrimUI.Party2Style2TargEventFunc()
  4210.     end)
  4211.    
  4212.    
  4213.    
  4214.     targetOfParty2ClickFrame:SetWidth(140)
  4215.     targetOfParty2ClickFrame:SetHeight(19)
  4216.    
  4217.     targetOfParty2ClickFrame:ClearAllPoints()
  4218.     targetOfParty2ClickFrame:SetPoint("BOTTOMRIGHT", GUI_Party2Frame, "BOTTOMRIGHT", 0, 1)
  4219.    
  4220.     targetOfParty2ClickFrame:SetFrameStrata("HIGH")
  4221.     targetOfParty2ClickFrame:SetFrameLevel("6")
  4222.    
  4223.     targetOfParty2ClickFrame:RegisterForClicks("AnyUp")
  4224.     targetOfParty2ClickFrame:SetAttribute("unit", "Party2target")
  4225.     targetOfParty2ClickFrame:SetAttribute("*type1", "target")
  4226.     RegisterUnitWatch(targetOfParty2ClickFrame)
  4227.  
  4228.    
  4229.    
  4230.         local showParty2targetmenu = function()
  4231.             ToggleDropDownMenu(1, nil, TargetFrameDropDown, "cursor", 0, 0)
  4232.        
  4233.         end
  4234.        
  4235.  
  4236.     targetOfParty2ClickFrame.showParty2targetmenu = showParty2targetmenu
  4237.     targetOfParty2ClickFrame.unit = "Party2target"
  4238.     targetOfParty2ClickFrame:SetAttribute("*type2", "showParty2targetmenu")
  4239.     targetOfParty2ClickFrame:SetScript("OnEnter", UnitFrame_OnEnter)
  4240.     targetOfParty2ClickFrame:SetScript("OnLeave", UnitFrame_OnLeave)
  4241.    
  4242.    
  4243.    
  4244.    
  4245.    
  4246.    
  4247.     --[[######################  
  4248.                Target targettargetFrame END
  4249.         ########################]]
  4250.    
  4251.     --#########
  4252.     -- Party2 Events
  4253.     ----------------
  4254.    
  4255.    
  4256.     Party2HealthEvents:SetScript("OnEvent", function(self)
  4257.         GrimUI.Party2Style2HealthEventFunc()
  4258.     end)
  4259.  
  4260.     Party2ManaEvents:SetScript("OnEvent", function(self)
  4261.         GrimUI.Party2Style2ManaEventFunc()
  4262.     end)
  4263.    
  4264.    
  4265.    
  4266.    
  4267.    
  4268.     -- after thoughts
  4269.     Party2LetterMText:Hide()
  4270.     Party2LetterHText:Hide()
  4271.     Party2MMNumTxt:Hide()
  4272.     Party2MHNumTxt:Hide()
  4273.    
  4274.  
  4275.         -----------------------##########################################################################
  4276.     -- Party2 Frame  END
  4277.     -----------------------################################################################################
  4278.    
  4279.         --#################################################################---------------------
  4280.     --########## Party3 Frame START ######--
  4281.     --#############################################---------------------
  4282.  
  4283.         GUI_Party3Frame:SetWidth(192)
  4284.         GUI_Party3Frame:SetHeight(135)
  4285.  
  4286.     ---local pfbg = GUI_Party3Frame:CreateTexture(nil, "BACKGROUND")
  4287.     ---pfbg:SetTexture(0, 0, 0, .6)
  4288.     ---pfbg:SetAllPoints(GUI_Party3Frame)
  4289.    
  4290.    
  4291.     --  Party3 pedestal
  4292.     Party3PedestalFrame:ClearAllPoints()
  4293.     Party3PedestalFrame:SetPoint("BOTTOMLEFT", GUI_Party3Frame, "BOTTOMLEFT", 4, 0)
  4294.    
  4295.     Party3PedestalFrame:SetHeight(15)
  4296.     Party3PedestalFrame:SetWidth(49)
  4297.    
  4298.     Party3PedestalFrame.texture:Hide()
  4299.     Party3PedestalFrame.texture:ClearAllPoints()
  4300.     Party3PedestalFrame.texture:Show()
  4301.     Party3PedestalFrame.texture:SetAllPoints(Party3PedestalFrame)
  4302.    
  4303.     Party3PedestalFrame.texture:SetTexture("Interface\\AddOns\\!GrimUI\\Art\\pedestal.tga")
  4304.     Party3PedestalFrame:SetFrameStrata("LOW")
  4305.     Party3PedestalFrame:SetFrameLevel("2")
  4306.  
  4307.    
  4308.    
  4309.     -- party 1 health bar start
  4310.  
  4311.     Party3HealthBorder:SetHeight(28)
  4312.     Party3HealthBorder:SetWidth(140)
  4313.    
  4314.    
  4315.     Party3HealthBorder:ClearAllPoints()
  4316.     Party3HealthBorder:SetPoint("BOTTOMRIGHT", GUI_Party3Frame, "BOTTOMRIGHT", 0, 47)
  4317.  
  4318.     Party3HealthBorder:SetBackdrop{
  4319.             bgFile = nil,
  4320.             edgeFile = "Interface/DialogFrame/UI-DialogBox-Border", tile = false, tileSize = 0, edgeSize = 5,
  4321.             insets = { left = 0, right = 0, top = 0, bottom = 0 }
  4322.         }
  4323.     Party3HealthBorder:SetBackdropBorderColor(0, 0, 0, 1)
  4324.  
  4325.  
  4326.     Party3HealthBorder:SetFrameStrata("BACKGROUND")
  4327.     Party3HealthBorder:SetFrameLevel("3")
  4328.  
  4329.     Party3HealthBorder:RegisterForClicks("AnyUp")
  4330.     Party3HealthBorder:SetAttribute("unit", "Party3")
  4331.     Party3HealthBorder:SetAttribute("*type1", "target")
  4332.  
  4333.         local showParty3menu = function()
  4334.             ToggleDropDownMenu(1, nil, PartyMemberFrame1DropDown, "cursor", 0, 0)
  4335.         end
  4336.  
  4337.     Party3HealthBorder.showParty3menu = showParty3menu
  4338.     Party3HealthBorder.unit = "Party3"
  4339.     Party3HealthBorder:SetAttribute("*type2", "showParty3menu")
  4340.     Party3HealthBorder:SetScript("OnEnter", UnitFrame_OnEnter)
  4341.     Party3HealthBorder:SetScript("OnLeave", UnitFrame_OnLeave)
  4342.     Party3HealthBorder:SetFrameStrata("BACKGROUND")
  4343.     Party3HealthBorder:SetFrameLevel("2")
  4344.  
  4345.  
  4346.    
  4347.     Party3HealthBar:SetHeight(26)
  4348.     Party3HealthBar:SetWidth(138)
  4349.    
  4350.     Party3HealthBar:ClearAllPoints()
  4351.     Party3HealthBar:SetPoint("CENTER", Party3HealthBorder, "CENTER", 0, 0)
  4352.    
  4353.     Party3HealthBar:SetStatusBarTexture("Interface\\AddOns\\!GrimUI\\Art\\VBarTexture.tga")
  4354.     Party3HealthBar:SetStatusBarColor(.231, .682, .419, 1)
  4355.     Party3HealthBar:SetOrientation("HORIZONTAL")
  4356.     Party3HealthBar:SetFrameStrata("BACKGROUND")
  4357.     Party3HealthBar:SetFrameLevel("2")
  4358.  
  4359.     percentParty3HText:ClearAllPoints()
  4360.     percentParty3HText:SetPoint("BOTTOMLEFT", Party3HealthBorder, "BOTTOMLEFT", 0, 2)
  4361.    
  4362.     percentParty3HText:SetTextColor(1, 1, 1, 1)
  4363.     percentParty3HText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 10, "NORMAL")
  4364.  
  4365.    
  4366.  
  4367. ----------------------------------
  4368. -- party 1 health bar end
  4369. -----------------------------------
  4370.  
  4371.  
  4372. -----------------------------------
  4373. -- party 1 mana bar Start  
  4374. ----------------------------------
  4375.  
  4376.     Party3ManaBorder:SetHeight(28)
  4377.     Party3ManaBorder:SetWidth(140)
  4378.    
  4379.     Party3ManaBorder:ClearAllPoints()
  4380.     Party3ManaBorder:SetPoint("BOTTOMRIGHT", GUI_Party3Frame, "BOTTOMRIGHT", 0, 20)
  4381.  
  4382.     Party3ManaBorder:SetBackdrop{
  4383.             bgFile = nil,
  4384.             edgeFile = "Interface/DialogFrame/UI-DialogBox-Border", tile = false, tileSize = 0, edgeSize = 5,
  4385.             insets = { left = 0, right = 0, top = 0, bottom = 0 }
  4386.         }
  4387.     Party3ManaBorder:SetBackdropBorderColor(0, 0, 0, 1)
  4388.  
  4389.  
  4390.     Party3ManaBorder:SetFrameStrata("BACKGROUND")
  4391.     Party3ManaBorder:SetFrameLevel("3")
  4392.  
  4393.  
  4394.     Party3ManaBorder:RegisterForClicks("AnyUp")
  4395.     Party3ManaBorder:SetAttribute("unit", "Party3")
  4396.     Party3ManaBorder:SetAttribute("*type1", "target")
  4397.  
  4398.     local showParty3menu = function()
  4399.         ToggleDropDownMenu(1, nil, PartyMemberFrame1DropDown, "cursor", 0, 0)
  4400.     end
  4401.    
  4402.     Party3ManaBorder.showParty3menu = showParty3menu
  4403.     Party3ManaBorder.unit = "Party3"
  4404.     Party3ManaBorder:SetAttribute("*type2", "showParty3menu")
  4405.     Party3ManaBorder:SetScript("OnEnter", UnitFrame_OnEnter)
  4406.     Party3ManaBorder:SetScript("OnLeave", UnitFrame_OnLeave)
  4407.     Party3ManaBorder:SetFrameStrata("BACKGROUND")
  4408.     Party3ManaBorder:SetFrameLevel("2")
  4409.  
  4410.  
  4411.  
  4412.     Party3ManaBar:SetWidth(138)
  4413.     Party3ManaBar:SetHeight(26)
  4414.    
  4415.     Party3ManaBar:ClearAllPoints()
  4416.     Party3ManaBar:SetPoint("CENTER", Party3ManaBorder, "CENTER", 0, 0)
  4417.    
  4418.     Party3ManaBar:SetStatusBarTexture("Interface\\AddOns\\!GrimUI\\Art\\VBarTexture.tga")
  4419.     Party3ManaBar:SetOrientation("HORIZONTAL")
  4420.     Party3ManaBar:SetFrameStrata("BACKGROUND")
  4421.     Party3ManaBar:SetFrameLevel("2")
  4422.  
  4423.  
  4424.  
  4425.    
  4426.     percentParty3MText:ClearAllPoints()
  4427.     percentParty3MText:SetPoint("BOTTOMLEFT", Party3ManaBorder, "BOTTOMLEFT", 0, 2)
  4428.    
  4429.     percentParty3MText:SetTextColor(1, 1, 1, 1)
  4430.     percentParty3MText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 10, "NORMAL")
  4431.  
  4432.  
  4433.  
  4434.    
  4435. -- Party 1 Mana bar end
  4436.  
  4437. -- Party 1 TextInfo Frame Start
  4438.  
  4439.  
  4440.     Party3InfoTextFrame:ClearAllPoints()
  4441.     Party3InfoTextFrame:SetPoint("BOTTOMRIGHT", GUI_Party3Frame, "BOTTOMRIGHT", 0, 75)
  4442.    
  4443.    
  4444.     Party3InfoTextFrame:SetWidth(140)
  4445.     Party3InfoTextFrame:SetHeight(26)
  4446.     Party3InfoTextFrame:SetFrameStrata("HIGH")
  4447.     Party3InfoTextFrame:SetFrameLevel("5")
  4448.    
  4449.  
  4450.     Party3InfoTextFrame:RegisterForClicks("AnyUp")
  4451.     Party3InfoTextFrame:SetAttribute("unit", "Party3")
  4452.     Party3InfoTextFrame:SetAttribute("*type1", "target")
  4453.  
  4454.         local showParty3menu = function()
  4455.             ToggleDropDownMenu(1, nil, PartyMemberFrame1DropDown, "cursor", 0, 0)
  4456.        
  4457.         end
  4458.        
  4459.  
  4460.     Party3InfoTextFrame.showParty3menu = showParty3menu
  4461.     Party3InfoTextFrame.unit = "Party3"
  4462.     Party3InfoTextFrame:SetAttribute("*type2", "showParty3menu")
  4463.     Party3InfoTextFrame:SetScript("OnEnter", UnitFrame_OnEnter)
  4464.     Party3InfoTextFrame:SetScript("OnLeave", UnitFrame_OnLeave)
  4465.    
  4466.    
  4467.    
  4468.     -- Party 1 TextInfo Frame END
  4469.  
  4470.     ------------------------------
  4471.     -- party 1 name text Frame Start
  4472.     ------------------------------
  4473.    
  4474.  
  4475.  
  4476.  
  4477.    
  4478.     Party3NameText:ClearAllPoints()
  4479.     Party3NameText:SetPoint("TOPLEFT", Party3InfoTextFrame, "TOPLEFT", -1, 9)
  4480.     Party3NameText:SetPoint("TOPRIGHT", Party3InfoTextFrame, "TOPRIGHT", 0, 9)
  4481.    
  4482.    
  4483.    
  4484.     Party3NameText:SetJustifyH("LEFT")
  4485.     Party3NameText:SetTextColor(1, 1, 1, 1)
  4486.     Party3NameText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font3.ttf", 17, "OUTLINE")
  4487.  
  4488.  
  4489.    
  4490.     ------------------------------
  4491.     -- party 1 name text Frame END
  4492.     ------------------------------
  4493.  
  4494.     -- health numbered text start
  4495.    
  4496.  
  4497.     Party3HealthNumTxtFrame:ClearAllPoints()
  4498.     Party3HealthNumTxtFrame:SetPoint("RIGHT", Party3HealthBorder, "RIGHT", 0, 0)
  4499.    
  4500.     Party3HealthNumTxtFrame:SetWidth(1)
  4501.     Party3HealthNumTxtFrame:SetHeight(1)
  4502.    
  4503.  
  4504.     Party3CHNumTxt:ClearAllPoints()
  4505.     Party3CHNumTxt:SetPoint("RIGHT", Party3HealthNumTxtFrame , "RIGHT", 0, 0)
  4506.    
  4507.     Party3CHNumTxt:SetTextColor(1, 1, 1, 1)
  4508.     Party3CHNumTxt:SetJustifyH("RIGHT")
  4509.     Party3CHNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  4510.    
  4511.    
  4512.     ----------------------------------------------------------------
  4513.     -- Mana numbered text start
  4514.     --------------------------------
  4515.    
  4516.     -- Mana numbered text start
  4517.        
  4518.    
  4519.     Party3ManaNumTxtFrame:ClearAllPoints()
  4520.     Party3ManaNumTxtFrame:SetPoint("RIGHT", Party3ManaBorder, "RIGHT", 0, 0)
  4521.    
  4522.     Party3ManaNumTxtFrame:SetWidth(1)
  4523.     Party3ManaNumTxtFrame:SetHeight(1)
  4524.    
  4525.    
  4526.     Party3CMNumTxt:ClearAllPoints()
  4527.     Party3CMNumTxt:SetPoint("RIGHT", Party3ManaNumTxtFrame, "RIGHT", 0, 0)
  4528.     Party3CMNumTxt:SetTextColor(1, 1, 1, 1)
  4529.     Party3CMNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  4530.    
  4531.     -------------------------------------------------------------------------------
  4532.     -- Party3 mana numbered text end
  4533.     ------------------------------
  4534.    
  4535.     Party3NameTextEvents:SetScript("OnEvent", function(self)
  4536.    
  4537.     GrimUI.Party3NameColoring()
  4538.    
  4539.     end)
  4540.    
  4541.    
  4542.    
  4543.    
  4544.     Party3LvlClassText:ClearAllPoints()
  4545.     Party3LvlClassText:SetPoint("BOTTOM", Party3InfoTextFrame, "BOTTOM", 0, 3)
  4546.     Party3LvlClassText:SetPoint("LEFT", Party3InfoTextFrame, "LEFT", 2, 0)
  4547.     Party3LvlClassText:SetPoint("RIGHT", Party3InfoTextFrame, "RIGHT", 0, 0)
  4548.     Party3LvlClassText:SetJustifyH("LEFT")
  4549.     Party3LvlClassText:SetTextColor(0.937, 1, 0.345, 1)
  4550.     Party3LvlClassText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  4551.  
  4552.  
  4553.  
  4554.    
  4555.  
  4556.     Party3LvlCassTextEvents:SetScript("OnEvent", function(self)
  4557.     local Party3Lvl = UnitLevel("Party3")
  4558.    
  4559.     --local vehicname = UnitName("vehicle")
  4560.    -- local vehiclvl = UnitLevel("vehicle")
  4561.     --local vehictype = UnitCreatureType("vehicle")
  4562.        
  4563.     local Party3class = UnitClass("Party3")
  4564.     local Party3Race = UnitRace("Party3")
  4565.     local unitParty3exists = UnitExists("Party3")
  4566.  
  4567.    
  4568.     if unitParty3exists == 1 and Party3class ~= nil then
  4569.        
  4570.         local Party3lvlclassstr = ("%s %s"):format(Party3Lvl, Party3class)
  4571.         Party3LvlClassText:SetText(Party3lvlclassstr)
  4572.     elseif unitParty3exists == 1 and Party3class == nil then
  4573.         Party3LvlClassText:SetText("")
  4574.     end
  4575.    
  4576.    
  4577.    
  4578.     end)
  4579.    
  4580.     ----- party 1 lvl class text end
  4581.  
  4582.  
  4583.     -- party 1 party leader icon
  4584.    
  4585.    
  4586.     Party3LeaderFrame:ClearAllPoints()
  4587.     Party3LeaderFrame:SetPoint("BOTTOMRIGHT", Party3InfoTextFrame, "BOTTOMRIGHT", 0, 0)
  4588.    
  4589.     Party3LeaderFrame:SetHeight(18)
  4590.     Party3LeaderFrame:SetWidth(18)
  4591.     Party3LeaderFrame.texture = Party3LeaderFrame:CreateTexture()
  4592.     Party3LeaderFrame.texture:SetAllPoints(Party3LeaderFrame)
  4593.     Party3LeaderFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-LeaderIcon.blp")
  4594.     Party3LeaderFrame:Hide()
  4595.     Party3PartyLeaderEvent:SetScript("OnEvent", function(self)
  4596.          
  4597.         local Party3isPartyLead = UnitIsPartyLeader("Party3")
  4598.        
  4599.         if Party3isPartyLead == 1 then
  4600.         Party3LeaderFrame:Show()
  4601.         end
  4602.         if Party3isPartyLead ~= 1 then
  4603.         Party3LeaderFrame:Hide()
  4604.         end
  4605.     end)
  4606.  
  4607. -- Party 1 PVP icon
  4608.  
  4609.  
  4610.     Party3pvpIconFrame:ClearAllPoints()
  4611.     Party3pvpIconFrame:SetPoint("BOTTOMRIGHT", Party3InfoTextFrame, "BOTTOMRIGHT", -18, -2)
  4612.    
  4613.     Party3pvpIconFrame:SetHeight(19)
  4614.     Party3pvpIconFrame:SetWidth(19)
  4615.     Party3pvpIconFrame.texture = Party3pvpIconFrame:CreateTexture()
  4616.     Party3pvpIconFrame.texture:SetAllPoints(Party3pvpIconFrame)
  4617.  
  4618.  
  4619.     Party3pvpIconEvent:SetScript("OnEvent", function(self)
  4620.        
  4621.         local Party3englishFaction, localizedFaction = UnitFactionGroup("Party3")
  4622.         if Party3englishFaction == "Alliance" then    
  4623.         Party3pvpIconFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-PVP-Alliance.blp")
  4624.         elseif Party3englishFaction == "Horde" then
  4625.         Party3pvpIconFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-PVP-Horde.blp")
  4626.         end
  4627.        
  4628.         local Party3ispvp = UnitIsPVP("Party3")
  4629.        
  4630.         if Party3ispvp == 1 then
  4631.         Party3pvpIconFrame:Show()
  4632.         end
  4633.        
  4634.         if Party3ispvp ~= 1 then
  4635.         Party3pvpIconFrame:Hide()
  4636.         end
  4637.     end)
  4638.     --------------------------
  4639.     -- Party3 PVP icon end
  4640.     -------------------------
  4641.    
  4642.     --------------------------
  4643.     -- Party3 Offline/Dead overlay
  4644.     --------------------------
  4645.    
  4646.     Party3offDeadGhostTxtFrame:ClearAllPoints()
  4647.     Party3offDeadGhostTxtFrame:SetPoint("LEFT", GUI_Party3Frame, "LEFT", 15, 0)
  4648.    
  4649.     Party3offDeadGhostTxtFrame:SetWidth(68)
  4650.     Party3offDeadGhostTxtFrame:SetHeight(15)
  4651.    
  4652.     Party3DeadOfflineTxt:ClearAllPoints()
  4653.     Party3DeadOfflineTxt:SetPoint("CENTER", Party3offDeadGhostTxtFrame , "CENTER", 0, 0)
  4654.    
  4655.     Party3DeadOfflineTxt:SetTextColor(.85, .10, .10, 1)
  4656.     Party3DeadOfflineTxt:SetJustifyH("CENTER")
  4657.     Party3DeadOfflineTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 18, "OUTLINE")
  4658.    
  4659.    
  4660.    
  4661.     Party3OffLineDeadEvents:SetScript("OnEvent", function(self)
  4662.    
  4663.     local Party3isDead = UnitIsDead("Party3")
  4664.     local Party3isGhost = UnitIsGhost("Party3")
  4665.     local Party3health = UnitHealth("Party3")
  4666.     local Party3connected = UnitIsConnected("Party3")
  4667.    
  4668.     if Party3isDead == 1 and Party3connected == 1 and Party3isGhost == nil then
  4669.        
  4670.         Party3DeadOfflineTxt:SetText("Dead")
  4671.     elseif Party3isGhost == 1 and Party3connected == 1 then
  4672.         Party3DeadOfflineTxt:SetText("Ghost")
  4673.     elseif Party3isDead == nil and Party3connected == nil and Party3isGhost == nil then
  4674.         Party3DeadOfflineTxt:SetText("Offline")
  4675.    
  4676.     elseif Party3isDead == 1 and Party3connected == nil and Party3isGhost == nil then
  4677.         Party3DeadOfflineTxt:SetText("Dead\n Offline")
  4678.     elseif Party3connected == nil and Party3isGhost == 1 then
  4679.         Party3DeadOfflineTxt:SetText("Ghost\n Offline")
  4680.     elseif Party3isDead == nil and Party3connected == 1 and Party3isGhost == nil then
  4681.         Party3DeadOfflineTxt:SetText(nil)
  4682.     end
  4683.    
  4684.    
  4685.     end)
  4686.    
  4687.    
  4688.     --[[######################  
  4689.     Target targettarget Frame START
  4690.     ########################]]
  4691.        
  4692.        
  4693.    
  4694.     targetOfParty3Frame:SetWidth(140)
  4695.     targetOfParty3Frame:SetHeight(19)
  4696.    
  4697.     targetOfParty3Frame:ClearAllPoints()
  4698.     targetOfParty3Frame:SetPoint("BOTTOMRIGHT", GUI_Party3Frame, "BOTTOMRIGHT", 0, 1)
  4699.    
  4700.  
  4701.     Party3ttbg:SetAllPoints(targetOfParty3Frame)
  4702.    
  4703.     targetOfParty3Text:ClearAllPoints()
  4704.     targetOfParty3Text:SetPoint("CENTER", targetOfParty3Frame, "CENTER", 0, 0)
  4705.     targetOfParty3Text:SetPoint("LEFT", targetOfParty3Frame, "LEFT", 0, 1)
  4706.     targetOfParty3Text:SetPoint("RIGHT", targetOfParty3Frame, "RIGHT", 0, 1)
  4707.     targetOfParty3Text:SetTextColor(1, 1, 1, 1)
  4708.     targetOfParty3Text:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font3.ttf", 11, "OUTLINE")
  4709.  
  4710.  
  4711.     targetOfParty3Frame:SetScript("OnEvent", function(self)
  4712.         GrimUI.Party3Style2TargEventFunc()
  4713.     end)
  4714.    
  4715.    
  4716.    
  4717.     targetOfParty3ClickFrame:SetWidth(140)
  4718.     targetOfParty3ClickFrame:SetHeight(19)
  4719.    
  4720.     targetOfParty3ClickFrame:ClearAllPoints()
  4721.     targetOfParty3ClickFrame:SetPoint("BOTTOMRIGHT", GUI_Party3Frame, "BOTTOMRIGHT", 0, 1)
  4722.    
  4723.     targetOfParty3ClickFrame:SetFrameStrata("HIGH")
  4724.     targetOfParty3ClickFrame:SetFrameLevel("6")
  4725.    
  4726.     targetOfParty3ClickFrame:RegisterForClicks("AnyUp")
  4727.     targetOfParty3ClickFrame:SetAttribute("unit", "Party3target")
  4728.     targetOfParty3ClickFrame:SetAttribute("*type1", "target")
  4729.     RegisterUnitWatch(targetOfParty3ClickFrame)
  4730.  
  4731.    
  4732.    
  4733.         local showParty3targetmenu = function()
  4734.             ToggleDropDownMenu(1, nil, TargetFrameDropDown, "cursor", 0, 0)
  4735.        
  4736.         end
  4737.        
  4738.  
  4739.     targetOfParty3ClickFrame.showParty3targetmenu = showParty3targetmenu
  4740.     targetOfParty3ClickFrame.unit = "Party3target"
  4741.     targetOfParty3ClickFrame:SetAttribute("*type2", "showParty3targetmenu")
  4742.     targetOfParty3ClickFrame:SetScript("OnEnter", UnitFrame_OnEnter)
  4743.     targetOfParty3ClickFrame:SetScript("OnLeave", UnitFrame_OnLeave)
  4744.    
  4745.    
  4746.    
  4747.    
  4748.    
  4749.    
  4750.     --[[######################  
  4751.                Target targettargetFrame END
  4752.         ########################]]
  4753.    
  4754.     --#########
  4755.     -- Party3 Events
  4756.     ----------------
  4757.    
  4758.    
  4759.     Party3HealthEvents:SetScript("OnEvent", function(self)
  4760.         GrimUI.Party3Style2HealthEventFunc()
  4761.     end)
  4762.  
  4763.     Party3ManaEvents:SetScript("OnEvent", function(self)
  4764.         GrimUI.Party3Style2ManaEventFunc()
  4765.     end)
  4766.    
  4767.    
  4768.    
  4769.    
  4770.    
  4771.     -- after thoughts
  4772.     Party3LetterMText:Hide()
  4773.     Party3LetterHText:Hide()
  4774.     Party3MMNumTxt:Hide()
  4775.     Party3MHNumTxt:Hide()
  4776.    
  4777.  
  4778.         -----------------------##########################################################################
  4779.     -- Party3 Frame  END
  4780.     -----------------------################################################################################
  4781.    
  4782.         --#################################################################---------------------
  4783.     --########## Party4 Frame START ######--
  4784.     --#############################################---------------------
  4785.  
  4786.         GUI_Party4Frame:SetWidth(192)
  4787.         GUI_Party4Frame:SetHeight(135)
  4788.  
  4789.     ---local pfbg = GUI_Party4Frame:CreateTexture(nil, "BACKGROUND")
  4790.     ---pfbg:SetTexture(0, 0, 0, .6)
  4791.     ---pfbg:SetAllPoints(GUI_Party4Frame)
  4792.    
  4793.    
  4794.     --  Party4 pedestal
  4795.     Party4PedestalFrame:ClearAllPoints()
  4796.     Party4PedestalFrame:SetPoint("BOTTOMLEFT", GUI_Party4Frame, "BOTTOMLEFT", 4, 0)
  4797.    
  4798.     Party4PedestalFrame:SetHeight(15)
  4799.     Party4PedestalFrame:SetWidth(49)
  4800.    
  4801.     Party4PedestalFrame.texture:Hide()
  4802.     Party4PedestalFrame.texture:ClearAllPoints()
  4803.     Party4PedestalFrame.texture:Show()
  4804.     Party4PedestalFrame.texture:SetAllPoints(Party4PedestalFrame)
  4805.    
  4806.     Party4PedestalFrame.texture:SetTexture("Interface\\AddOns\\!GrimUI\\Art\\pedestal.tga")
  4807.     Party4PedestalFrame:SetFrameStrata("LOW")
  4808.     Party4PedestalFrame:SetFrameLevel("2")
  4809.  
  4810.    
  4811.    
  4812.     -- party 1 health bar start
  4813.  
  4814.     Party4HealthBorder:SetHeight(28)
  4815.     Party4HealthBorder:SetWidth(140)
  4816.    
  4817.    
  4818.     Party4HealthBorder:ClearAllPoints()
  4819.     Party4HealthBorder:SetPoint("BOTTOMRIGHT", GUI_Party4Frame, "BOTTOMRIGHT", 0, 47)
  4820.  
  4821.     Party4HealthBorder:SetBackdrop{
  4822.             bgFile = nil,
  4823.             edgeFile = "Interface/DialogFrame/UI-DialogBox-Border", tile = false, tileSize = 0, edgeSize = 5,
  4824.             insets = { left = 0, right = 0, top = 0, bottom = 0 }
  4825.         }
  4826.     Party4HealthBorder:SetBackdropBorderColor(0, 0, 0, 1)
  4827.  
  4828.  
  4829.     Party4HealthBorder:SetFrameStrata("BACKGROUND")
  4830.     Party4HealthBorder:SetFrameLevel("3")
  4831.  
  4832.     Party4HealthBorder:RegisterForClicks("AnyUp")
  4833.     Party4HealthBorder:SetAttribute("unit", "Party4")
  4834.     Party4HealthBorder:SetAttribute("*type1", "target")
  4835.  
  4836.         local showParty4menu = function()
  4837.             ToggleDropDownMenu(1, nil, PartyMemberFrame1DropDown, "cursor", 0, 0)
  4838.         end
  4839.  
  4840.     Party4HealthBorder.showParty4menu = showParty4menu
  4841.     Party4HealthBorder.unit = "Party4"
  4842.     Party4HealthBorder:SetAttribute("*type2", "showParty4menu")
  4843.     Party4HealthBorder:SetScript("OnEnter", UnitFrame_OnEnter)
  4844.     Party4HealthBorder:SetScript("OnLeave", UnitFrame_OnLeave)
  4845.     Party4HealthBorder:SetFrameStrata("BACKGROUND")
  4846.     Party4HealthBorder:SetFrameLevel("2")
  4847.  
  4848.  
  4849.    
  4850.     Party4HealthBar:SetHeight(26)
  4851.     Party4HealthBar:SetWidth(138)
  4852.    
  4853.     Party4HealthBar:ClearAllPoints()
  4854.     Party4HealthBar:SetPoint("CENTER", Party4HealthBorder, "CENTER", 0, 0)
  4855.    
  4856.     Party4HealthBar:SetStatusBarTexture("Interface\\AddOns\\!GrimUI\\Art\\VBarTexture.tga")
  4857.     Party4HealthBar:SetStatusBarColor(.231, .682, .419, 1)
  4858.     Party4HealthBar:SetOrientation("HORIZONTAL")
  4859.     Party4HealthBar:SetFrameStrata("BACKGROUND")
  4860.     Party4HealthBar:SetFrameLevel("2")
  4861.  
  4862.     percentParty4HText:ClearAllPoints()
  4863.     percentParty4HText:SetPoint("BOTTOMLEFT", Party4HealthBorder, "BOTTOMLEFT", 0, 2)
  4864.    
  4865.     percentParty4HText:SetTextColor(1, 1, 1, 1)
  4866.     percentParty4HText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 10, "NORMAL")
  4867.  
  4868.    
  4869.  
  4870. ----------------------------------
  4871. -- party 1 health bar end
  4872. -----------------------------------
  4873.  
  4874.  
  4875. -----------------------------------
  4876. -- party 1 mana bar Start  
  4877. ----------------------------------
  4878.  
  4879.     Party4ManaBorder:SetHeight(28)
  4880.     Party4ManaBorder:SetWidth(140)
  4881.    
  4882.     Party4ManaBorder:ClearAllPoints()
  4883.     Party4ManaBorder:SetPoint("BOTTOMRIGHT", GUI_Party4Frame, "BOTTOMRIGHT", 0, 20)
  4884.  
  4885.     Party4ManaBorder:SetBackdrop{
  4886.             bgFile = nil,
  4887.             edgeFile = "Interface/DialogFrame/UI-DialogBox-Border", tile = false, tileSize = 0, edgeSize = 5,
  4888.             insets = { left = 0, right = 0, top = 0, bottom = 0 }
  4889.         }
  4890.     Party4ManaBorder:SetBackdropBorderColor(0, 0, 0, 1)
  4891.  
  4892.  
  4893.     Party4ManaBorder:SetFrameStrata("BACKGROUND")
  4894.     Party4ManaBorder:SetFrameLevel("3")
  4895.  
  4896.  
  4897.     Party4ManaBorder:RegisterForClicks("AnyUp")
  4898.     Party4ManaBorder:SetAttribute("unit", "Party4")
  4899.     Party4ManaBorder:SetAttribute("*type1", "target")
  4900.  
  4901.     local showParty4menu = function()
  4902.         ToggleDropDownMenu(1, nil, PartyMemberFrame1DropDown, "cursor", 0, 0)
  4903.     end
  4904.    
  4905.     Party4ManaBorder.showParty4menu = showParty4menu
  4906.     Party4ManaBorder.unit = "Party4"
  4907.     Party4ManaBorder:SetAttribute("*type2", "showParty4menu")
  4908.     Party4ManaBorder:SetScript("OnEnter", UnitFrame_OnEnter)
  4909.     Party4ManaBorder:SetScript("OnLeave", UnitFrame_OnLeave)
  4910.     Party4ManaBorder:SetFrameStrata("BACKGROUND")
  4911.     Party4ManaBorder:SetFrameLevel("2")
  4912.  
  4913.  
  4914.  
  4915.     Party4ManaBar:SetWidth(138)
  4916.     Party4ManaBar:SetHeight(26)
  4917.    
  4918.     Party4ManaBar:ClearAllPoints()
  4919.     Party4ManaBar:SetPoint("CENTER", Party4ManaBorder, "CENTER", 0, 0)
  4920.    
  4921.     Party4ManaBar:SetStatusBarTexture("Interface\\AddOns\\!GrimUI\\Art\\VBarTexture.tga")
  4922.     Party4ManaBar:SetOrientation("HORIZONTAL")
  4923.     Party4ManaBar:SetFrameStrata("BACKGROUND")
  4924.     Party4ManaBar:SetFrameLevel("2")
  4925.  
  4926.  
  4927.  
  4928.    
  4929.     percentParty4MText:ClearAllPoints()
  4930.     percentParty4MText:SetPoint("BOTTOMLEFT", Party4ManaBorder, "BOTTOMLEFT", 0, 2)
  4931.    
  4932.     percentParty4MText:SetTextColor(1, 1, 1, 1)
  4933.     percentParty4MText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 10, "NORMAL")
  4934.  
  4935.  
  4936.  
  4937.    
  4938. -- Party 1 Mana bar end
  4939.  
  4940. -- Party 1 TextInfo Frame Start
  4941.  
  4942.  
  4943.     Party4InfoTextFrame:ClearAllPoints()
  4944.     Party4InfoTextFrame:SetPoint("BOTTOMRIGHT", GUI_Party4Frame, "BOTTOMRIGHT", 0, 75)
  4945.    
  4946.    
  4947.     Party4InfoTextFrame:SetWidth(140)
  4948.     Party4InfoTextFrame:SetHeight(26)
  4949.     Party4InfoTextFrame:SetFrameStrata("HIGH")
  4950.     Party4InfoTextFrame:SetFrameLevel("5")
  4951.    
  4952.  
  4953.     Party4InfoTextFrame:RegisterForClicks("AnyUp")
  4954.     Party4InfoTextFrame:SetAttribute("unit", "Party4")
  4955.     Party4InfoTextFrame:SetAttribute("*type1", "target")
  4956.  
  4957.         local showParty4menu = function()
  4958.             ToggleDropDownMenu(1, nil, PartyMemberFrame1DropDown, "cursor", 0, 0)
  4959.        
  4960.         end
  4961.        
  4962.  
  4963.     Party4InfoTextFrame.showParty4menu = showParty4menu
  4964.     Party4InfoTextFrame.unit = "Party4"
  4965.     Party4InfoTextFrame:SetAttribute("*type2", "showParty4menu")
  4966.     Party4InfoTextFrame:SetScript("OnEnter", UnitFrame_OnEnter)
  4967.     Party4InfoTextFrame:SetScript("OnLeave", UnitFrame_OnLeave)
  4968.    
  4969.    
  4970.    
  4971.     -- Party 1 TextInfo Frame END
  4972.  
  4973.     ------------------------------
  4974.     -- party 1 name text Frame Start
  4975.     ------------------------------
  4976.    
  4977.  
  4978.  
  4979.  
  4980.    
  4981.     Party4NameText:ClearAllPoints()
  4982.     Party4NameText:SetPoint("TOPLEFT", Party4InfoTextFrame, "TOPLEFT", -1, 9)
  4983.     Party4NameText:SetPoint("TOPRIGHT", Party4InfoTextFrame, "TOPRIGHT", 0, 9)
  4984.    
  4985.    
  4986.    
  4987.     Party4NameText:SetJustifyH("LEFT")
  4988.     Party4NameText:SetTextColor(1, 1, 1, 1)
  4989.     Party4NameText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font3.ttf", 17, "OUTLINE")
  4990.  
  4991.  
  4992.    
  4993.     ------------------------------
  4994.     -- party 1 name text Frame END
  4995.     ------------------------------
  4996.  
  4997.     -- health numbered text start
  4998.    
  4999.  
  5000.     Party4HealthNumTxtFrame:ClearAllPoints()
  5001.     Party4HealthNumTxtFrame:SetPoint("RIGHT", Party4HealthBorder, "RIGHT", 0, 0)
  5002.    
  5003.     Party4HealthNumTxtFrame:SetWidth(1)
  5004.     Party4HealthNumTxtFrame:SetHeight(1)
  5005.    
  5006.  
  5007.     Party4CHNumTxt:ClearAllPoints()
  5008.     Party4CHNumTxt:SetPoint("RIGHT", Party4HealthNumTxtFrame , "RIGHT", 0, 0)
  5009.    
  5010.     Party4CHNumTxt:SetTextColor(1, 1, 1, 1)
  5011.     Party4CHNumTxt:SetJustifyH("RIGHT")
  5012.     Party4CHNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  5013.    
  5014.    
  5015.     ----------------------------------------------------------------
  5016.     -- Mana numbered text start
  5017.     --------------------------------
  5018.    
  5019.     -- Mana numbered text start
  5020.        
  5021.    
  5022.     Party4ManaNumTxtFrame:ClearAllPoints()
  5023.     Party4ManaNumTxtFrame:SetPoint("RIGHT", Party4ManaBorder, "RIGHT", 0, 0)
  5024.    
  5025.     Party4ManaNumTxtFrame:SetWidth(1)
  5026.     Party4ManaNumTxtFrame:SetHeight(1)
  5027.    
  5028.    
  5029.     Party4CMNumTxt:ClearAllPoints()
  5030.     Party4CMNumTxt:SetPoint("RIGHT", Party4ManaNumTxtFrame, "RIGHT", 0, 0)
  5031.     Party4CMNumTxt:SetTextColor(1, 1, 1, 1)
  5032.     Party4CMNumTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  5033.    
  5034.     -------------------------------------------------------------------------------
  5035.     -- Party4 mana numbered text end
  5036.     ------------------------------
  5037.    
  5038.     Party4NameTextEvents:SetScript("OnEvent", function(self)
  5039.    
  5040.     GrimUI.Party4NameColoring()
  5041.    
  5042.     end)
  5043.    
  5044.    
  5045.    
  5046.    
  5047.     Party4LvlClassText:ClearAllPoints()
  5048.     Party4LvlClassText:SetPoint("BOTTOM", Party4InfoTextFrame, "BOTTOM", 0, 3)
  5049.     Party4LvlClassText:SetPoint("LEFT", Party4InfoTextFrame, "LEFT", 2, 0)
  5050.     Party4LvlClassText:SetPoint("RIGHT", Party4InfoTextFrame, "RIGHT", 0, 0)
  5051.     Party4LvlClassText:SetJustifyH("LEFT")
  5052.     Party4LvlClassText:SetTextColor(0.937, 1, 0.345, 1)
  5053.     Party4LvlClassText:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 12, "OUTLINE")
  5054.  
  5055.  
  5056.  
  5057.    
  5058.  
  5059.     Party4LvlCassTextEvents:SetScript("OnEvent", function(self)
  5060.     local Party4Lvl = UnitLevel("Party4")
  5061.    
  5062.     --local vehicname = UnitName("vehicle")
  5063.    -- local vehiclvl = UnitLevel("vehicle")
  5064.     --local vehictype = UnitCreatureType("vehicle")
  5065.        
  5066.     local Party4class = UnitClass("Party4")
  5067.     local Party4Race = UnitRace("Party4")
  5068.     local unitParty4exists = UnitExists("Party4")
  5069.  
  5070.    
  5071.     if unitParty4exists == 1 and Party4class ~= nil then
  5072.        
  5073.         local Party4lvlclassstr = ("%s %s"):format(Party4Lvl, Party4class)
  5074.         Party4LvlClassText:SetText(Party4lvlclassstr)
  5075.     elseif unitParty4exists == 1 and Party4class == nil then
  5076.         Party4LvlClassText:SetText("")
  5077.     end
  5078.    
  5079.    
  5080.    
  5081.     end)
  5082.    
  5083.     ----- party 1 lvl class text end
  5084.  
  5085.  
  5086.     -- party 1 party leader icon
  5087.    
  5088.    
  5089.     Party4LeaderFrame:ClearAllPoints()
  5090.     Party4LeaderFrame:SetPoint("BOTTOMRIGHT", Party4InfoTextFrame, "BOTTOMRIGHT", 0, 0)
  5091.    
  5092.     Party4LeaderFrame:SetHeight(18)
  5093.     Party4LeaderFrame:SetWidth(18)
  5094.     Party4LeaderFrame.texture = Party4LeaderFrame:CreateTexture()
  5095.     Party4LeaderFrame.texture:SetAllPoints(Party4LeaderFrame)
  5096.     Party4LeaderFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-LeaderIcon.blp")
  5097.     Party4LeaderFrame:Hide()
  5098.     Party4PartyLeaderEvent:SetScript("OnEvent", function(self)
  5099.          
  5100.         local Party4isPartyLead = UnitIsPartyLeader("Party4")
  5101.        
  5102.         if Party4isPartyLead == 1 then
  5103.         Party4LeaderFrame:Show()
  5104.         end
  5105.         if Party4isPartyLead ~= 1 then
  5106.         Party4LeaderFrame:Hide()
  5107.         end
  5108.     end)
  5109.  
  5110. -- Party 1 PVP icon
  5111.  
  5112.  
  5113.     Party4pvpIconFrame:ClearAllPoints()
  5114.     Party4pvpIconFrame:SetPoint("BOTTOMRIGHT", Party4InfoTextFrame, "BOTTOMRIGHT", -18, -2)
  5115.    
  5116.     Party4pvpIconFrame:SetHeight(19)
  5117.     Party4pvpIconFrame:SetWidth(19)
  5118.     Party4pvpIconFrame.texture = Party4pvpIconFrame:CreateTexture()
  5119.     Party4pvpIconFrame.texture:SetAllPoints(Party4pvpIconFrame)
  5120.  
  5121.  
  5122.     Party4pvpIconEvent:SetScript("OnEvent", function(self)
  5123.        
  5124.         local Party4englishFaction, localizedFaction = UnitFactionGroup("Party4")
  5125.         if Party4englishFaction == "Alliance" then    
  5126.         Party4pvpIconFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-PVP-Alliance.blp")
  5127.         elseif Party4englishFaction == "Horde" then
  5128.         Party4pvpIconFrame.texture:SetTexture("Interface\\GroupFrame\\UI-Group-PVP-Horde.blp")
  5129.         end
  5130.        
  5131.         local Party4ispvp = UnitIsPVP("Party4")
  5132.        
  5133.         if Party4ispvp == 1 then
  5134.         Party4pvpIconFrame:Show()
  5135.         end
  5136.        
  5137.         if Party4ispvp ~= 1 then
  5138.         Party4pvpIconFrame:Hide()
  5139.         end
  5140.     end)
  5141.     --------------------------
  5142.     -- Party4 PVP icon end
  5143.     -------------------------
  5144.    
  5145.     --------------------------
  5146.     -- Party4 Offline/Dead overlay
  5147.     --------------------------
  5148.    
  5149.     Party4offDeadGhostTxtFrame:ClearAllPoints()
  5150.     Party4offDeadGhostTxtFrame:SetPoint("LEFT", GUI_Party4Frame, "LEFT", 15, 0)
  5151.    
  5152.     Party4offDeadGhostTxtFrame:SetWidth(68)
  5153.     Party4offDeadGhostTxtFrame:SetHeight(15)
  5154.    
  5155.     Party4DeadOfflineTxt:ClearAllPoints()
  5156.     Party4DeadOfflineTxt:SetPoint("CENTER", Party4offDeadGhostTxtFrame , "CENTER", 0, 0)
  5157.    
  5158.     Party4DeadOfflineTxt:SetTextColor(.85, .10, .10, 1)
  5159.     Party4DeadOfflineTxt:SetJustifyH("CENTER")
  5160.     Party4DeadOfflineTxt:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font1.ttf", 18, "OUTLINE")
  5161.    
  5162.    
  5163.    
  5164.     Party4OffLineDeadEvents:SetScript("OnEvent", function(self)
  5165.    
  5166.     local Party4isDead = UnitIsDead("Party4")
  5167.     local Party4isGhost = UnitIsGhost("Party4")
  5168.     local Party4health = UnitHealth("Party4")
  5169.     local Party4connected = UnitIsConnected("Party4")
  5170.    
  5171.     if Party4isDead == 1 and Party4connected == 1 and Party4isGhost == nil then
  5172.        
  5173.         Party4DeadOfflineTxt:SetText("Dead")
  5174.     elseif Party4isGhost == 1 and Party4connected == 1 then
  5175.         Party4DeadOfflineTxt:SetText("Ghost")
  5176.     elseif Party4isDead == nil and Party4connected == nil and Party4isGhost == nil then
  5177.         Party4DeadOfflineTxt:SetText("Offline")
  5178.    
  5179.     elseif Party4isDead == 1 and Party4connected == nil and Party4isGhost == nil then
  5180.         Party4DeadOfflineTxt:SetText("Dead\n Offline")
  5181.     elseif Party4connected == nil and Party4isGhost == 1 then
  5182.         Party4DeadOfflineTxt:SetText("Ghost\n Offline")
  5183.     elseif Party4isDead == nil and Party4connected == 1 and Party4isGhost == nil then
  5184.         Party4DeadOfflineTxt:SetText(nil)
  5185.     end
  5186.    
  5187.    
  5188.     end)
  5189.    
  5190.    
  5191.     --[[######################  
  5192.     Target targettarget Frame START
  5193.     ########################]]
  5194.        
  5195.        
  5196.    
  5197.     targetOfParty4Frame:SetWidth(140)
  5198.     targetOfParty4Frame:SetHeight(19)
  5199.    
  5200.     targetOfParty4Frame:ClearAllPoints()
  5201.     targetOfParty4Frame:SetPoint("BOTTOMRIGHT", GUI_Party4Frame, "BOTTOMRIGHT", 0, 1)
  5202.    
  5203.  
  5204.     Party4ttbg:SetAllPoints(targetOfParty4Frame)
  5205.    
  5206.     targetOfParty4Text:ClearAllPoints()
  5207.     targetOfParty4Text:SetPoint("CENTER", targetOfParty4Frame, "CENTER", 0, 0)
  5208.     targetOfParty4Text:SetPoint("LEFT", targetOfParty4Frame, "LEFT", 0, 1)
  5209.     targetOfParty4Text:SetPoint("RIGHT", targetOfParty4Frame, "RIGHT", 0, 1)
  5210.     targetOfParty4Text:SetTextColor(1, 1, 1, 1)
  5211.     targetOfParty4Text:SetFont("Interface\\AddOns\\!GrimUI\\Fonts\\GrimUI_Font3.ttf", 11, "OUTLINE")
  5212.  
  5213.  
  5214.     targetOfParty4Frame:SetScript("OnEvent", function(self)
  5215.         GrimUI.Party4Style2TargEventFunc()
  5216.     end)
  5217.    
  5218.    
  5219.    
  5220.     targetOfParty4ClickFrame:SetWidth(140)
  5221.     targetOfParty4ClickFrame:SetHeight(19)
  5222.    
  5223.     targetOfParty4ClickFrame:ClearAllPoints()
  5224.     targetOfParty4ClickFrame:SetPoint("BOTTOMRIGHT", GUI_Party4Frame, "BOTTOMRIGHT", 0, 1)
  5225.    
  5226.     targetOfParty4ClickFrame:SetFrameStrata("HIGH")
  5227.     targetOfParty4ClickFrame:SetFrameLevel("6")
  5228.    
  5229.     targetOfParty4ClickFrame:RegisterForClicks("AnyUp")
  5230.     targetOfParty4ClickFrame:SetAttribute("unit", "Party4target")
  5231.     targetOfParty4ClickFrame:SetAttribute("*type1", "target")
  5232.     RegisterUnitWatch(targetOfParty4ClickFrame)
  5233.  
  5234.    
  5235.    
  5236.         local showParty4targetmenu = function()
  5237.             ToggleDropDownMenu(1, nil, TargetFrameDropDown, "cursor", 0, 0)
  5238.        
  5239.         end
  5240.        
  5241.  
  5242.     targetOfParty4ClickFrame.showParty4targetmenu = showParty4targetmenu
  5243.     targetOfParty4ClickFrame.unit = "Party4target"
  5244.     targetOfParty4ClickFrame:SetAttribute("*type2", "showParty4targetmenu")
  5245.     targetOfParty4ClickFrame:SetScript("OnEnter", UnitFrame_OnEnter)
  5246.     targetOfParty4ClickFrame:SetScript("OnLeave", UnitFrame_OnLeave)
  5247.    
  5248.    
  5249.    
  5250.    
  5251.    
  5252.    
  5253.     --[[######################  
  5254.                Target targettargetFrame END
  5255.         ########################]]
  5256.    
  5257.     --#########
  5258.     -- Party4 Events
  5259.     ----------------
  5260.    
  5261.    
  5262.     Party4HealthEvents:SetScript("OnEvent", function(self)
  5263.         GrimUI.Party4Style2HealthEventFunc()
  5264.     end)
  5265.  
  5266.     Party4ManaEvents:SetScript("OnEvent", function(self)
  5267.         GrimUI.Party4Style2ManaEventFunc()
  5268.     end)
  5269.    
  5270.    
  5271.    
  5272.    
  5273.    
  5274.     -- after thoughts
  5275.     Party4LetterMText:Hide()
  5276.     Party4LetterHText:Hide()
  5277.     Party4MMNumTxt:Hide()
  5278.     Party4MHNumTxt:Hide()
  5279.    
  5280.  
  5281.         -----------------------##########################################################################
  5282.     -- Party4 Frame  END
  5283.     -----------------------################################################################################
  5284.    
  5285.     -- Clique inclusion start
  5286. --ClickCastFrames = ClickCastFrames or {}
  5287. --ClickCastFrames[healthborder] = true
  5288. --ClickCastFrames[GrimPlayerManaborder] = true
  5289. --ClickCastFrames[playerModelClickFrame] = true
  5290. -- Clique inclusion end
  5291.    
  5292.  
  5293. end
  5294.  
  5295. GrimUI.GrimStyle2 = GrimStyle2
  5296.  
  5297.  
  5298.  
  5299. -----------------------
  5300. -- Party1 Excluded Functions
  5301. -------------------------
  5302.  
  5303. function GrimUI:Party1Style2HealthEventFunc()
  5304.         local currParty1Health, maxParty1Health = UnitHealth("Party1"), UnitHealthMax("Party1")
  5305.         local Party1connected = UnitIsConnected("Party1")
  5306.        
  5307.         local percentParty1Health = floor(currParty1Health / maxParty1Health * 100)  
  5308.        
  5309.         if Party1connected == nil or currParty1Health == nil or maxParty1Health == nil then
  5310.             percentParty1HText:SetText("0%")
  5311.         else
  5312.             local Party1Hstr = ("%s%%"):format(percentParty1Health)
  5313.             percentParty1HText:SetText(Party1Hstr)
  5314.         end
  5315.        
  5316.         Party1HealthBar:SetMinMaxValues(min(0, currParty1Health), maxParty1Health)
  5317.         Party1HealthBar:SetValue(currParty1Health)
  5318.         local Party1CurrHealth, Party1MaxHealth = UnitHealth("Party1"), UnitHealthMax("Party1")
  5319.         local Party1HealthText = ("%s/%s"):format(Party1CurrHealth, Party1MaxHealth)
  5320.    
  5321.         Party1CHNumTxt:SetText(Party1HealthText)
  5322.         end
  5323.    
  5324.  
  5325.    
  5326. function GrimUI:Party1Style2ManaEventFunc()
  5327.    
  5328. local currMana, maxMana = UnitMana("Party1"), UnitManaMax("Party1")
  5329.         local powerType = UnitPowerType("Party1")
  5330.         local currPower = UnitPower("Party1")
  5331.         local maxPower = UnitPowerMax("Party1")
  5332.         local percentMana = floor(currMana / maxMana * 100)
  5333.         local Party1currMana, Party1maxMana = UnitMana("Party1"), UnitManaMax("Party1")
  5334.         local Party1powerType = UnitPowerType("Party1")
  5335.         local Party1currPower = UnitPower("Party1")
  5336.         local Party1maxPower = UnitPowerMax("Party1")
  5337.         local Party1currShape = GetShapeshiftForm()
  5338.        
  5339.         if maxMana >= 1 then
  5340.             local perParty1Mstr = ("%s%%"):format(percentMana)
  5341.             percentParty1MText:SetText(perParty1Mstr)
  5342.         end
  5343.        
  5344.         if maxMana == 0 then
  5345.             local perParty1Mstr = ("0%")
  5346.             percentParty1MText:SetText(perParty1Mstr)
  5347.         end
  5348.        
  5349.        
  5350.        
  5351.        
  5352.         if powerType == 0 then
  5353.            
  5354.             Party1ManaBar:SetMinMaxValues(min(0, currMana), maxMana)
  5355.             Party1ManaBar:SetValue(currMana)
  5356.             Party1ManaBar:SetStatusBarColor(.556, .556, .921, 1)
  5357.  
  5358.         elseif powerType == 1 or 3 or 6 then
  5359.        
  5360.             Party1ManaBar:SetMinMaxValues(min(0, currPower), maxPower)
  5361.             Party1ManaBar:SetValue(currPower)
  5362.             Party1ManaBar:SetStatusBarColor(.656, .456, .456, 1)
  5363.  
  5364.         end
  5365.         Party1CMNumTxt:SetText(Party1ManaText)
  5366.    
  5367.    
  5368.     if Party1powerType == 0 then
  5369.         local Party1ManaText = ("%s/%s"):format(Party1currMana, Party1maxMana)
  5370.         Party1CMNumTxt:SetText(Party1ManaText)
  5371.        
  5372.        
  5373.     elseif Party1powerType == 1 or 3 or 6 then
  5374.         local Party1ManaText = ("%s/%s"):format(Party1currPower, Party1maxPower)
  5375.  
  5376.         Party1CMNumTxt:SetText(Party1ManaText)
  5377.     end
  5378.    
  5379. end
  5380.    
  5381.  
  5382.  
  5383. function GrimUI:Party1Style2TargEventFunc()
  5384. local party1targetTargetName = UnitName("Party1target")
  5385.         local party1targetExists = UnitExists("Party1target")
  5386.         local targetMe = UnitName("player")
  5387.         local targetmytarget = UnitName("target")
  5388.         local party1targetISmytarget = UnitIsUnit("party1target", "target")
  5389.  
  5390.         if party1targetExists == 1 and party1targetISmytarget == 1 then
  5391.             targetOfParty1Text:SetText("** YOUR TARGET **")
  5392.         end
  5393.  
  5394.  
  5395.         if  party1targetExists == 1 and party1targetTargetName == targetMe then
  5396.             targetOfParty1Text:SetText("** YOU **")
  5397.         end
  5398.        
  5399.         if  party1targetExists == 1 and party1targetTargetName ~= targetMe and party1targetISmytarget ~= 1 then
  5400.             local nametstr = ("%s"):format(party1targetTargetName)
  5401.             targetOfParty1Text:SetText(nametstr)
  5402.         end
  5403.         if party1targetExists == nil then
  5404.         targetOfParty1Text:SetText("-No Target-")
  5405.         Party1ttbg:SetTexture(0, 0, 0, 0)
  5406.         end
  5407.        
  5408.         local party1targetIsFoe = UnitIsEnemy("player", "Party1target")
  5409.         local party1targetIsFriend = UnitIsFriend("player", "Party1target")
  5410.    
  5411.         if party1targetExists == 1 and party1targetIsFoe == 1 then
  5412.         Party1ttbg:SetTexture(.40, .10, .10, 1)
  5413.         end
  5414.        
  5415.         if party1targetExists == 1 and party1targetIsFriend == 1 then
  5416.         Party1ttbg:SetTexture(.10, .40, .10, 1)
  5417.         end
  5418. end
  5419.  
  5420.  
  5421.  
  5422.  
  5423. -----------------------
  5424. -- Party2 Excluded Functions
  5425. -------------------------
  5426. function GrimUI:Party2Style2HealthEventFunc()
  5427.         local currParty2Health, maxParty2Health = UnitHealth("Party2"), UnitHealthMax("Party2")
  5428.         local Party2connected = UnitIsConnected("Party2")
  5429.        
  5430.         local percentParty2Health = floor(currParty2Health / maxParty2Health * 100)  
  5431.        
  5432.         if Party2connected == nil or currParty2Health == nil or maxParty2Health == nil then
  5433.             percentParty2HText:SetText("0%")
  5434.         else
  5435.             local Party2Hstr = ("%s%%"):format(percentParty2Health)
  5436.             percentParty2HText:SetText(Party2Hstr)
  5437.         end
  5438.        
  5439.         Party2HealthBar:SetMinMaxValues(min(0, currParty2Health), maxParty2Health)
  5440.         Party2HealthBar:SetValue(currParty2Health)
  5441.         local Party2CurrHealth, Party2MaxHealth = UnitHealth("Party2"), UnitHealthMax("Party2")
  5442.         local Party2HealthText = ("%s/%s"):format(Party2CurrHealth, Party2MaxHealth)
  5443.    
  5444.         Party2CHNumTxt:SetText(Party2HealthText)
  5445.         end
  5446.  
  5447.  
  5448.    
  5449. function GrimUI:Party2Style2ManaEventFunc()
  5450.    
  5451. local currMana, maxMana = UnitMana("Party2"), UnitManaMax("Party2")
  5452.         local powerType = UnitPowerType("Party2")
  5453.         local currPower = UnitPower("Party2")
  5454.         local maxPower = UnitPowerMax("Party2")
  5455.         local percentMana = floor(currMana / maxMana * 100)
  5456.         local Party2currMana, Party2maxMana = UnitMana("Party2"), UnitManaMax("Party2")
  5457.         local Party2powerType = UnitPowerType("Party2")
  5458.         local Party2currPower = UnitPower("Party2")
  5459.         local Party2maxPower = UnitPowerMax("Party2")
  5460.         local Party2currShape = GetShapeshiftForm()
  5461.        
  5462.         if maxMana >= 1 then
  5463.             local perParty2Mstr = ("%s%%"):format(percentMana)
  5464.             percentParty2MText:SetText(perParty2Mstr)
  5465.         end
  5466.        
  5467.         if maxMana == 0 then
  5468.             local perParty2Mstr = ("0%")
  5469.             percentParty2MText:SetText(perParty2Mstr)
  5470.         end
  5471.        
  5472.        
  5473.        
  5474.        
  5475.         if powerType == 0 then
  5476.            
  5477.             Party2ManaBar:SetMinMaxValues(min(0, currMana), maxMana)
  5478.             Party2ManaBar:SetValue(currMana)
  5479.             Party2ManaBar:SetStatusBarColor(.556, .556, .921, 1)
  5480.  
  5481.         elseif powerType == 1 or 3 or 6 then
  5482.        
  5483.             Party2ManaBar:SetMinMaxValues(min(0, currPower), maxPower)
  5484.             Party2ManaBar:SetValue(currPower)
  5485.             Party2ManaBar:SetStatusBarColor(.656, .456, .456, 1)
  5486.  
  5487.         end
  5488.         Party2CMNumTxt:SetText(Party2ManaText)
  5489.    
  5490.    
  5491.     if Party2powerType == 0 then
  5492.         local Party2ManaText = ("%s/%s"):format(Party2currMana, Party2maxMana)
  5493.         Party2CMNumTxt:SetText(Party2ManaText)
  5494.        
  5495.        
  5496.     elseif Party2powerType == 1 or 3 or 6 then
  5497.         local Party2ManaText = ("%s/%s"):format(Party2currPower, Party2maxPower)
  5498.  
  5499.         Party2CMNumTxt:SetText(Party2ManaText)
  5500.     end
  5501.    
  5502. end
  5503.    
  5504.  
  5505. function GrimUI:Party2Style2TargEventFunc()
  5506. local Party2targetTargetName = UnitName("Party2target")
  5507.         local Party2targetExists = UnitExists("Party2target")
  5508.         local targetMe = UnitName("player")
  5509.         local targetmytarget = UnitName("target")
  5510.         local Party2targetISmytarget = UnitIsUnit("Party2target", "target")
  5511.  
  5512.         if Party2targetExists == 1 and Party2targetISmytarget == 1 then
  5513.             targetOfParty2Text:SetText("** YOUR TARGET **")
  5514.         end
  5515.  
  5516.  
  5517.         if  Party2targetExists == 1 and Party2targetTargetName == targetMe then
  5518.             targetOfParty2Text:SetText("** YOU **")
  5519.         end
  5520.        
  5521.         if  Party2targetExists == 1 and Party2targetTargetName ~= targetMe and Party2targetISmytarget ~= 1 then
  5522.             local nametstr = ("%s"):format(Party2targetTargetName)
  5523.             targetOfParty2Text:SetText(nametstr)
  5524.         end
  5525.         if Party2targetExists == nil then
  5526.         targetOfParty2Text:SetText("-No Target-")
  5527.         Party2ttbg:SetTexture(0, 0, 0, 0)
  5528.         end
  5529.        
  5530.         local Party2targetIsFoe = UnitIsEnemy("player", "Party2target")
  5531.         local Party2targetIsFriend = UnitIsFriend("player", "Party2target")
  5532.    
  5533.         if Party2targetExists == 1 and Party2targetIsFoe == 1 then
  5534.         Party2ttbg:SetTexture(.40, .10, .10, 1)
  5535.         end
  5536.        
  5537.         if Party2targetExists == 1 and Party2targetIsFriend == 1 then
  5538.         Party2ttbg:SetTexture(.10, .40, .10, 1)
  5539.         end
  5540. end
  5541.  
  5542.  
  5543.  
  5544. -----------------------
  5545. -- Party3 Excluded Functions
  5546. -------------------------
  5547. function GrimUI:Party3Style2HealthEventFunc()
  5548.         local currParty3Health, maxParty3Health = UnitHealth("Party3"), UnitHealthMax("Party3")
  5549.         local Party3connected = UnitIsConnected("Party3")
  5550.        
  5551.         local percentParty3Health = floor(currParty3Health / maxParty3Health * 100)  
  5552.        
  5553.         if Party3connected == nil or currParty3Health == nil or maxParty3Health == nil then
  5554.             percentParty3HText:SetText("0%")
  5555.         else
  5556.             local Party3Hstr = ("%s%%"):format(percentParty3Health)
  5557.             percentParty3HText:SetText(Party3Hstr)
  5558.         end
  5559.        
  5560.         Party3HealthBar:SetMinMaxValues(min(0, currParty3Health), maxParty3Health)
  5561.         Party3HealthBar:SetValue(currParty3Health)
  5562.         local Party3CurrHealth, Party3MaxHealth = UnitHealth("Party3"), UnitHealthMax("Party3")
  5563.         local Party3HealthText = ("%s/%s"):format(Party3CurrHealth, Party3MaxHealth)
  5564.    
  5565.         Party3CHNumTxt:SetText(Party3HealthText)
  5566.         end
  5567.  
  5568. function GrimUI:Party3Style2ManaEventFunc()
  5569.    
  5570.     local currMana, maxMana = UnitMana("Party3"), UnitManaMax("Party3")
  5571.     local percentMana = floor(currMana / maxMana * 100)
  5572.     local Party3currMana, Party3maxMana = UnitMana("Party3"), UnitManaMax("Party3")
  5573.     local Party3powerType = UnitPowerType("Party3")
  5574.     local Party3currPower = UnitPower("Party3")
  5575.     local Party3maxPower = UnitPowerMax("Party3")
  5576.     local Party3currShape = GetShapeshiftForm()
  5577.        
  5578.         if maxMana >= 1 then
  5579.             local perParty3Mstr = ("%s%%"):format(percentMana)
  5580.             percentParty3MText:SetText(perParty3Mstr)
  5581.         end
  5582.        
  5583.         if maxMana == 0 then
  5584.             local perParty3Mstr = ("0%")
  5585.             percentParty3MText:SetText(perParty3Mstr)
  5586.         end
  5587.        
  5588.        
  5589.        
  5590.        
  5591.         if Party3powerType == 0 then
  5592.            
  5593.             Party3ManaBar:SetMinMaxValues(min(0, currMana), maxMana)
  5594.             Party3ManaBar:SetValue(currMana)
  5595.             Party3ManaBar:SetStatusBarColor(.556, .556, .921, 1)
  5596.  
  5597.         elseif Party3powerType == 1 or 3 or 6 then
  5598.        
  5599.             Party3ManaBar:SetMinMaxValues(min(0, Party3currPower), Party3maxPower)
  5600.             Party3ManaBar:SetValue(Party3currPower)
  5601.             Party3ManaBar:SetStatusBarColor(.656, .456, .456, 1)
  5602.  
  5603.         end
  5604.         Party3CMNumTxt:SetText(Party3ManaText)
  5605.    
  5606.    
  5607.     if Party3powerType == 0 then
  5608.         local Party3ManaText = ("%s/%s"):format(Party3currMana, Party3maxMana)
  5609.         Party3CMNumTxt:SetText(Party3ManaText)
  5610.        
  5611.        
  5612.     elseif Party3powerType == 1 or 3 or 6 then
  5613.         local Party3ManaText = ("%s/%s"):format(Party3currPower, Party3maxPower)
  5614.  
  5615.         Party3CMNumTxt:SetText(Party3ManaText)
  5616.     end
  5617.    
  5618. end
  5619.  
  5620. function GrimUI:Party3Style2TargEventFunc()
  5621. local Party3targetTargetName = UnitName("Party3target")
  5622.         local Party3targetExists = UnitExists("Party3target")
  5623.         local targetMe = UnitName("player")
  5624.         local targetmytarget = UnitName("target")
  5625.         local Party3targetISmytarget = UnitIsUnit("Party3target", "target")
  5626.  
  5627.         if Party3targetExists == 1 and Party3targetISmytarget == 1 then
  5628.             targetOfParty3Text:SetText("** YOUR TARGET **")
  5629.         end
  5630.  
  5631.  
  5632.         if  Party3targetExists == 1 and Party3targetTargetName == targetMe then
  5633.             targetOfParty3Text:SetText("** YOU **")
  5634.         end
  5635.        
  5636.         if  Party3targetExists == 1 and Party3targetTargetName ~= targetMe and Party3targetISmytarget ~= 1 then
  5637.             local nametstr = ("%s"):format(Party3targetTargetName)
  5638.             targetOfParty3Text:SetText(nametstr)
  5639.         end
  5640.         if Party3targetExists == nil then
  5641.         targetOfParty3Text:SetText("-No Target-")
  5642.         Party3ttbg:SetTexture(0, 0, 0, 0)
  5643.         end
  5644.        
  5645.         local Party3targetIsFoe = UnitIsEnemy("player", "Party3target")
  5646.         local Party3targetIsFriend = UnitIsFriend("player", "Party3target")
  5647.    
  5648.         if Party3targetExists == 1 and Party3targetIsFoe == 1 then
  5649.         Party3ttbg:SetTexture(.40, .10, .10, 1)
  5650.         end
  5651.        
  5652.         if Party3targetExists == 1 and Party3targetIsFriend == 1 then
  5653.         Party3ttbg:SetTexture(.10, .40, .10, 1)
  5654.         end
  5655. end
  5656.  
  5657.  
  5658. -----------------------
  5659. -- Party4 Excluded Functions
  5660. -------------------------
  5661.  
  5662. function GrimUI:Party4Style2HealthEventFunc()
  5663.         local currParty4Health, maxParty4Health = UnitHealth("Party4"), UnitHealthMax("Party4")
  5664.         local Party4connected = UnitIsConnected("Party4")
  5665.        
  5666.         local percentParty4Health = floor(currParty4Health / maxParty4Health * 100)  
  5667.        
  5668.         if Party4connected == nil or currParty4Health == nil or maxParty4Health == nil then
  5669.             percentParty4HText:SetText("0%")
  5670.         else
  5671.             local Party4Hstr = ("%s%%"):format(percentParty4Health)
  5672.             percentParty4HText:SetText(Party4Hstr)
  5673.         end
  5674.        
  5675.         Party4HealthBar:SetMinMaxValues(min(0, currParty4Health), maxParty4Health)
  5676.         Party4HealthBar:SetValue(currParty4Health)
  5677.         local Party4CurrHealth, Party4MaxHealth = UnitHealth("Party4"), UnitHealthMax("Party4")
  5678.         local Party4HealthText = ("%s/%s"):format(Party4CurrHealth, Party4MaxHealth)
  5679.    
  5680.         Party4CHNumTxt:SetText(Party4HealthText)
  5681.         end
  5682.    
  5683.  
  5684.  
  5685.    
  5686. function GrimUI:Party4Style2ManaEventFunc()
  5687.    
  5688. local currMana, maxMana = UnitMana("Party4"), UnitManaMax("Party4")
  5689.         local powerType = UnitPowerType("Party4")
  5690.         local currPower = UnitPower("Party4")
  5691.         local maxPower = UnitPowerMax("Party4")
  5692.         local percentMana = floor(currMana / maxMana * 100)
  5693.         local Party4currMana, Party4maxMana = UnitMana("Party4"), UnitManaMax("Party4")
  5694.         local Party4powerType = UnitPowerType("Party4")
  5695.         local Party4currPower = UnitPower("Party4")
  5696.         local Party4maxPower = UnitPowerMax("Party4")
  5697.         local Party4currShape = GetShapeshiftForm()
  5698.        
  5699.         if maxMana >= 1 then
  5700.             local perParty4Mstr = ("%s%%"):format(percentMana)
  5701.             percentParty4MText:SetText(perParty4Mstr)
  5702.         end
  5703.        
  5704.         if maxMana == 0 then
  5705.             local perParty4Mstr = ("0%")
  5706.             percentParty4MText:SetText(perParty4Mstr)
  5707.         end
  5708.        
  5709.        
  5710.        
  5711.        
  5712.         if powerType == 0 then
  5713.            
  5714.             Party4ManaBar:SetMinMaxValues(min(0, currMana), maxMana)
  5715.             Party4ManaBar:SetValue(currMana)
  5716.             Party4ManaBar:SetStatusBarColor(.556, .556, .921, 1)
  5717.  
  5718.         elseif powerType == 1 or 3 or 6 then
  5719.        
  5720.             Party4ManaBar:SetMinMaxValues(min(0, currPower), maxPower)
  5721.             Party4ManaBar:SetValue(currPower)
  5722.             Party4ManaBar:SetStatusBarColor(.656, .456, .456, 1)
  5723.  
  5724.         end
  5725.         Party4CMNumTxt:SetText(Party4ManaText)
  5726.    
  5727.    
  5728.     if Party4powerType == 0 then
  5729.         local Party4ManaText = ("%s/%s"):format(Party4currMana, Party4maxMana)
  5730.         Party4CMNumTxt:SetText(Party4ManaText)
  5731.        
  5732.        
  5733.     elseif Party4powerType == 1 or 3 or 6 then
  5734.         local Party4ManaText = ("%s/%s"):format(Party4currPower, Party4maxPower)
  5735.  
  5736.         Party4CMNumTxt:SetText(Party4ManaText)
  5737.     end
  5738.    
  5739. end
  5740.  
  5741.  
  5742. function GrimUI:Party4Style2TargEventFunc()
  5743. local Party4targetTargetName = UnitName("Party4target")
  5744.         local Party4targetExists = UnitExists("Party4target")
  5745.         local targetMe = UnitName("player")
  5746.         local targetmytarget = UnitName("target")
  5747.         local Party4targetISmytarget = UnitIsUnit("Party4target", "target")
  5748.  
  5749.         if Party4targetExists == 1 and Party4targetISmytarget == 1 then
  5750.             targetOfParty4Text:SetText("** YOUR TARGET **")
  5751.         end
  5752.  
  5753.  
  5754.         if  Party4targetExists == 1 and Party4targetTargetName == targetMe then
  5755.             targetOfParty4Text:SetText("** YOU **")
  5756.         end
  5757.        
  5758.         if  Party4targetExists == 1 and Party4targetTargetName ~= targetMe and Party4targetISmytarget ~= 1 then
  5759.             local nametstr = ("%s"):format(Party4targetTargetName)
  5760.             targetOfParty4Text:SetText(nametstr)
  5761.         end
  5762.         if Party4targetExists == nil then
  5763.         targetOfParty4Text:SetText("-No Target-")
  5764.         Party4ttbg:SetTexture(0, 0, 0, 0)
  5765.         end
  5766.        
  5767.         local Party4targetIsFoe = UnitIsEnemy("player", "Party4target")
  5768.         local Party4targetIsFriend = UnitIsFriend("player", "Party4target")
  5769.    
  5770.         if Party4targetExists == 1 and Party4targetIsFoe == 1 then
  5771.         Party4ttbg:SetTexture(.40, .10, .10, 1)
  5772.         end
  5773.        
  5774.         if Party4targetExists == 1 and Party4targetIsFriend == 1 then
  5775.         Party4ttbg:SetTexture(.10, .40, .10, 1)
  5776.         end
  5777. end
  5778.  
  5779.  
  5780. ----------------------
  5781. -- GrimLayout2 END ------------
  5782. ---------------------------
  5783.  
  5784. --########################################################################################################################################
  5785. --########################################################################################################################################
  5786. --########################################################################################################################################
  5787. --########################################################################################################################################
  5788. --##------------------------------------------------------------------------------------------------------------------------------------##
  5789. --##----------------------------------------              END OF LAYOUTS              --------------------------------------------------##
  5790. --##------------------------------------------------------------------------------------------------------------------------------------##
  5791. --########################################################################################################################################
  5792. --########################################################################################################################################
  5793. --########################################################################################################################################
  5794. --########################################################################################################################################
  5795.  
  5796. ---------------------------------------------------
  5797. ---- DUEL STYLE FUNCTIONS -------------------------
  5798. ---------------------------------------------------
  5799.  
  5800. -----------
  5801. -- Party1
  5802. ------------
  5803. function GrimUI:Party1NameColoring()
  5804.         local Party1active = UnitExists("Party1")
  5805.    
  5806.     local Party1Name = UnitName("Party1")
  5807.    
  5808.        
  5809.     if Party1active == 1 then
  5810.         local Party1NameStr = ("%s"):format(Party1Name)
  5811.         Party1NameText:SetText(Party1NameStr)
  5812.     end
  5813.     local Party1affectingcombat = UnitAffectingCombat("Party1")
  5814.     local Party1status = UnitThreatSituation("Party1")
  5815.    
  5816.     if event == "PLAYER_ENTERING_WORLD" then
  5817.         if Party1status == nil then
  5818.         Party1NameText:SetTextColor(1, 1, 1, 1)
  5819.         else
  5820.         Party1NameText:SetTextColor(1, 0, 0, 1)
  5821.         end
  5822.        
  5823.         if Party1affectingcombat == nil then
  5824.         Party1NameText:SetTextColor(1, 1, 1, 1)
  5825.         else
  5826.         Party1NameText:SetTextColor(1, 0, 0, 1)
  5827.         end
  5828.    
  5829.     end
  5830.    
  5831.     if event == "UNIT_FLAGS" then
  5832.         if Party1status == nil then
  5833.         Party1NameText:SetTextColor(1, 1, 1, 1)
  5834.         else
  5835.        
  5836.         Party1NameText:SetTextColor(1, 0, 0, 1)
  5837.         end
  5838.        
  5839.         if Party1affectingcombat == nil then
  5840.         Party1NameText:SetTextColor(1, 1, 1, 1)
  5841.         else
  5842.         Party1NameText:SetTextColor(1, 0, 0, 1)
  5843.         end
  5844.     end
  5845.    
  5846.     if event == "UNIT_THREAT_LIST_UPDATE" then
  5847.         if Party1status == nil then
  5848.         Party1NameText:SetTextColor(1, 1, 1, 1)
  5849.         else
  5850.        
  5851.         Party1NameText:SetTextColor(1, 0, 0, 1)
  5852.         end
  5853.         if Party1affectingcombat == nil then
  5854.         Party1NameText:SetTextColor(1, 1, 1, 1)
  5855.         else
  5856.         Party1NameText:SetTextColor(1, 0, 0, 1)
  5857.         end
  5858.    
  5859.     end
  5860.    
  5861.     if event == "UNIT_THREAT_SITUATION_UPDATE" then
  5862.         if Party1status == nil then
  5863.         Party1NameText:SetTextColor(1, 1, 1, 1)
  5864.         else
  5865.        
  5866.         Party1NameText:SetTextColor(1, 0, 0, 1)
  5867.         end
  5868.         if Party1affectingcombat == nil then
  5869.         Party1NameText:SetTextColor(1, 1, 1, 1)
  5870.         else
  5871.         Party1NameText:SetTextColor(1, 0, 0, 1)
  5872.         end
  5873.    
  5874.     end
  5875.  
  5876.     if event == "UNIT_COMBAT" then
  5877.         if Party1status == nil then
  5878.         Party1NameText:SetTextColor(1, 1, 1, 1)
  5879.         else
  5880.        
  5881.         Party1NameText:SetTextColor(1, 0, 0, 1)
  5882.         end
  5883.         if Party1affectingcombat == nil then
  5884.         Party1NameText:SetTextColor(1, 1, 1, 1)
  5885.         else
  5886.         Party1NameText:SetTextColor(1, 0, 0, 1)
  5887.         end
  5888.    
  5889.     end
  5890.  
  5891.  
  5892. end
  5893.  
  5894. -----------
  5895. -- Party2
  5896. ------------
  5897. function GrimUI:Party2NameColoring()
  5898.         local Party2active = UnitExists("Party2")
  5899.    
  5900.     local Party2Name = UnitName("Party2")
  5901.    
  5902.        
  5903.     if Party2active == 1 then
  5904.         local Party2NameStr = ("%s"):format(Party2Name)
  5905.         Party2NameText:SetText(Party2NameStr)
  5906.     end
  5907.     local Party2affectingcombat = UnitAffectingCombat("Party2")
  5908.     local Party2status = UnitThreatSituation("Party2")
  5909.    
  5910.     if event == "PLAYER_ENTERING_WORLD" then
  5911.         if Party2status == nil then
  5912.         Party2NameText:SetTextColor(1, 1, 1, 1)
  5913.         else
  5914.         Party2NameText:SetTextColor(1, 0, 0, 1)
  5915.         end
  5916.        
  5917.         if Party2affectingcombat == nil then
  5918.         Party2NameText:SetTextColor(1, 1, 1, 1)
  5919.         else
  5920.         Party2NameText:SetTextColor(1, 0, 0, 1)
  5921.         end
  5922.    
  5923.     end
  5924.    
  5925.     if event == "UNIT_FLAGS" then
  5926.         if Party2status == nil then
  5927.         Party2NameText:SetTextColor(1, 1, 1, 1)
  5928.         else
  5929.        
  5930.         Party2NameText:SetTextColor(1, 0, 0, 1)
  5931.         end
  5932.        
  5933.         if Party2affectingcombat == nil then
  5934.         Party2NameText:SetTextColor(1, 1, 1, 1)
  5935.         else
  5936.         Party2NameText:SetTextColor(1, 0, 0, 1)
  5937.         end
  5938.     end
  5939.    
  5940.     if event == "UNIT_THREAT_LIST_UPDATE" then
  5941.         if Party2status == nil then
  5942.         Party2NameText:SetTextColor(1, 1, 1, 1)
  5943.         else
  5944.        
  5945.         Party2NameText:SetTextColor(1, 0, 0, 1)
  5946.         end
  5947.         if Party2affectingcombat == nil then
  5948.         Party2NameText:SetTextColor(1, 1, 1, 1)
  5949.         else
  5950.         Party2NameText:SetTextColor(1, 0, 0, 1)
  5951.         end
  5952.    
  5953.     end
  5954.    
  5955.     if event == "UNIT_THREAT_SITUATION_UPDATE" then
  5956.         if Party2status == nil then
  5957.         Party2NameText:SetTextColor(1, 1, 1, 1)
  5958.         else
  5959.        
  5960.         Party2NameText:SetTextColor(1, 0, 0, 1)
  5961.         end
  5962.         if Party2affectingcombat == nil then
  5963.         Party2NameText:SetTextColor(1, 1, 1, 1)
  5964.         else
  5965.         Party2NameText:SetTextColor(1, 0, 0, 1)
  5966.         end
  5967.    
  5968.     end
  5969.  
  5970.     if event == "UNIT_COMBAT" then
  5971.         if Party2status == nil then
  5972.         Party2NameText:SetTextColor(1, 1, 1, 1)
  5973.         else
  5974.        
  5975.         Party2NameText:SetTextColor(1, 0, 0, 1)
  5976.         end
  5977.         if Party2affectingcombat == nil then
  5978.         Party2NameText:SetTextColor(1, 1, 1, 1)
  5979.         else
  5980.         Party2NameText:SetTextColor(1, 0, 0, 1)
  5981.         end
  5982.    
  5983.     end
  5984.  
  5985.  
  5986. end
  5987.  
  5988.  
  5989. -----------
  5990. -- Party3
  5991. ------------
  5992. function GrimUI:Party3NameColoring()
  5993.         local Party3active = UnitExists("Party3")
  5994.    
  5995.     local Party3Name = UnitName("Party3")
  5996.    
  5997.        
  5998.     if Party3active == 1 then
  5999.         local Party3NameStr = ("%s"):format(Party3Name)
  6000.         Party3NameText:SetText(Party3NameStr)
  6001.     end
  6002.     local Party3affectingcombat = UnitAffectingCombat("Party3")
  6003.     local Party3status = UnitThreatSituation("Party3")
  6004.    
  6005.     if event == "PLAYER_ENTERING_WORLD" then
  6006.         if Party3status == nil then
  6007.         Party3NameText:SetTextColor(1, 1, 1, 1)
  6008.         else
  6009.         Party3NameText:SetTextColor(1, 0, 0, 1)
  6010.         end
  6011.        
  6012.         if Party3affectingcombat == nil then
  6013.         Party3NameText:SetTextColor(1, 1, 1, 1)
  6014.         else
  6015.         Party3NameText:SetTextColor(1, 0, 0, 1)
  6016.         end
  6017.    
  6018.     end
  6019.    
  6020.     if event == "UNIT_FLAGS" then
  6021.         if Party3status == nil then
  6022.         Party3NameText:SetTextColor(1, 1, 1, 1)
  6023.         else
  6024.        
  6025.         Party3NameText:SetTextColor(1, 0, 0, 1)
  6026.         end
  6027.        
  6028.         if Party3affectingcombat == nil then
  6029.         Party3NameText:SetTextColor(1, 1, 1, 1)
  6030.         else
  6031.         Party3NameText:SetTextColor(1, 0, 0, 1)
  6032.         end
  6033.     end
  6034.    
  6035.     if event == "UNIT_THREAT_LIST_UPDATE" then
  6036.         if Party3status == nil then
  6037.         Party3NameText:SetTextColor(1, 1, 1, 1)
  6038.         else
  6039.        
  6040.         Party3NameText:SetTextColor(1, 0, 0, 1)
  6041.         end
  6042.         if Party3affectingcombat == nil then
  6043.         Party3NameText:SetTextColor(1, 1, 1, 1)
  6044.         else
  6045.         Party3NameText:SetTextColor(1, 0, 0, 1)
  6046.         end
  6047.    
  6048.     end
  6049.    
  6050.     if event == "UNIT_THREAT_SITUATION_UPDATE" then
  6051.         if Party3status == nil then
  6052.         Party3NameText:SetTextColor(1, 1, 1, 1)
  6053.         else
  6054.        
  6055.         Party3NameText:SetTextColor(1, 0, 0, 1)
  6056.         end
  6057.         if Party3affectingcombat == nil then
  6058.         Party3NameText:SetTextColor(1, 1, 1, 1)
  6059.         else
  6060.         Party3NameText:SetTextColor(1, 0, 0, 1)
  6061.         end
  6062.    
  6063.     end
  6064.  
  6065.     if event == "UNIT_COMBAT" then
  6066.         if Party3status == nil then
  6067.         Party3NameText:SetTextColor(1, 1, 1, 1)
  6068.         else
  6069.        
  6070.         Party3NameText:SetTextColor(1, 0, 0, 1)
  6071.         end
  6072.         if Party3affectingcombat == nil then
  6073.         Party3NameText:SetTextColor(1, 1, 1, 1)
  6074.         else
  6075.         Party3NameText:SetTextColor(1, 0, 0, 1)
  6076.         end
  6077.    
  6078.     end
  6079.  
  6080.  
  6081. end
  6082.  
  6083. -----------
  6084. -- Party4
  6085. ------------
  6086. function GrimUI:Party4NameColoring()
  6087.         local Party4active = UnitExists("Party4")
  6088.    
  6089.     local Party4Name = UnitName("Party4")
  6090.    
  6091.        
  6092.     if Party4active == 1 then
  6093.         local Party4NameStr = ("%s"):format(Party4Name)
  6094.         Party4NameText:SetText(Party4NameStr)
  6095.     end
  6096.     local Party4affectingcombat = UnitAffectingCombat("Party4")
  6097.     local Party4status = UnitThreatSituation("Party4")
  6098.    
  6099.     if event == "PLAYER_ENTERING_WORLD" then
  6100.         if Party4status == nil then
  6101.         Party4NameText:SetTextColor(1, 1, 1, 1)
  6102.         else
  6103.         Party4NameText:SetTextColor(1, 0, 0, 1)
  6104.         end
  6105.        
  6106.         if Party4affectingcombat == nil then
  6107.         Party4NameText:SetTextColor(1, 1, 1, 1)
  6108.         else
  6109.         Party4NameText:SetTextColor(1, 0, 0, 1)
  6110.         end
  6111.    
  6112.     end
  6113.    
  6114.     if event == "UNIT_FLAGS" then
  6115.         if Party4status == nil then
  6116.         Party4NameText:SetTextColor(1, 1, 1, 1)
  6117.         else
  6118.        
  6119.         Party4NameText:SetTextColor(1, 0, 0, 1)
  6120.         end
  6121.        
  6122.         if Party4affectingcombat == nil then
  6123.         Party4NameText:SetTextColor(1, 1, 1, 1)
  6124.         else
  6125.         Party4NameText:SetTextColor(1, 0, 0, 1)
  6126.         end
  6127.     end
  6128.    
  6129.     if event == "UNIT_THREAT_LIST_UPDATE" then
  6130.         if Party4status == nil then
  6131.         Party4NameText:SetTextColor(1, 1, 1, 1)
  6132.         else
  6133.        
  6134.         Party4NameText:SetTextColor(1, 0, 0, 1)
  6135.         end
  6136.         if Party4affectingcombat == nil then
  6137.         Party4NameText:SetTextColor(1, 1, 1, 1)
  6138.         else
  6139.         Party4NameText:SetTextColor(1, 0, 0, 1)
  6140.         end
  6141.    
  6142.     end
  6143.    
  6144.     if event == "UNIT_THREAT_SITUATION_UPDATE" then
  6145.         if Party4status == nil then
  6146.         Party4NameText:SetTextColor(1, 1, 1, 1)
  6147.         else
  6148.        
  6149.         Party4NameText:SetTextColor(1, 0, 0, 1)
  6150.         end
  6151.         if Party4affectingcombat == nil then
  6152.         Party4NameText:SetTextColor(1, 1, 1, 1)
  6153.         else
  6154.         Party4NameText:SetTextColor(1, 0, 0, 1)
  6155.         end
  6156.    
  6157.     end
  6158.  
  6159.     if event == "UNIT_COMBAT" then
  6160.         if Party4status == nil then
  6161.         Party4NameText:SetTextColor(1, 1, 1, 1)
  6162.         else
  6163.        
  6164.         Party4NameText:SetTextColor(1, 0, 0, 1)
  6165.         end
  6166.         if Party4affectingcombat == nil then
  6167.         Party4NameText:SetTextColor(1, 1, 1, 1)
  6168.         else
  6169.         Party4NameText:SetTextColor(1, 0, 0, 1)
  6170.         end
  6171.    
  6172.     end
  6173.  
  6174.  
  6175. end
  6176.  
  6177.  
  6178. ---------------UNI STYLE FUNC END
  6179.  
  6180. -- SetAttribe Unit watchs for main party frames.
  6181.  
  6182. GUI_Party1Frame:SetAttribute('unit', 'Party1')
  6183. RegisterUnitWatch(GUI_Party1Frame)
  6184.  
  6185. GUI_Party1Frame:SetScript("OnShow", GrimUI.Party1LayoutInitiate)
  6186.  
  6187. GUI_Party2Frame:SetAttribute('unit', 'Party2')
  6188. RegisterUnitWatch(GUI_Party2Frame)
  6189.  
  6190. GUI_Party2Frame:SetScript("OnShow", GrimUI.Party2LayoutInitiate)
  6191.  
  6192. GUI_Party3Frame:SetAttribute('unit', 'Party3')
  6193. RegisterUnitWatch(GUI_Party3Frame)
  6194.  
  6195. GUI_Party3Frame:SetScript("OnShow", GrimUI.Party3LayoutInitiate)
  6196.  
  6197. GUI_Party4Frame:SetAttribute('unit', 'Party4')
  6198. RegisterUnitWatch(GUI_Party4Frame)
  6199.  
  6200. GUI_Party4Frame:SetScript("OnShow", GrimUI.Party4LayoutInitiate)
  6201.  
  6202. ------------------------
  6203. -- Update Party Frame Style select function
  6204. -------------------------
  6205.  
  6206. local function UpdatePartyStyle()
  6207.  
  6208.        
  6209.        
  6210.    
  6211.        
  6212.         if GrimUIData.GUIPartyStyle == 1 then
  6213.         GrimUI.GrimStyle1()
  6214.        
  6215.        
  6216.         elseif GrimUIData.GUIPartyStyle == 2 then
  6217.         GrimUI.GrimStyle2()
  6218.        
  6219.         end
  6220.    
  6221. end
  6222.  
  6223. GrimUI.UpdatePartyStyle = UpdatePartyStyle
  6224.  
  6225. ----------------------------------------------
  6226. -- PLAYER_ENTERING_WORLD functions - every load screen - reloads - instances
  6227. -----------------------------------------------
  6228. local GUI_PartyFramesOnEntering = CreateFrame("Frame", "GUI_PartyFramesOnEntering", UIParent)
  6229. GUI_PartyFramesOnEntering:RegisterEvent("PLAYER_ENTERING_WORLD")
  6230. GUI_PartyFramesOnEntering:SetScript("OnEvent", function(event)
  6231.    
  6232.     -- check opetions panel for GUI and Bliz hide options and then force one way or the other.
  6233.     GrimUI.PartyHideShowFunc()
  6234.     GrimUI.BPartyHideShowFunc()
  6235.    
  6236.     GrimUI.UpdatePartyStyle()
  6237.    
  6238.    
  6239.     -- run the layout update right before player enters the world.
  6240.    
  6241.     GrimUI.Party1LayoutInitiate()
  6242.     GrimUI.Party2LayoutInitiate()
  6243.     GrimUI.Party3LayoutInitiate()
  6244.     GrimUI.Party4LayoutInitiate()
  6245.    
  6246.     -- show in arenas checks after normal hideshow func so if you have chosen to hide its always hidden.
  6247.     local inInstance, instanceType = IsInInstance()
  6248.     if inInstance == 1 and instanceType == "arena" then
  6249.    
  6250.         if GrimUIData.GUIPartyFrame == "show" then
  6251.         GrimPartyMain.Show = GrimPartyMain:Show()
  6252.         GrimPartyMain:Show();
  6253.         elseif GrimUIData.GUIPartyFrame == "hide" then
  6254.         GrimPartyMain.Hide = GrimPartyMain:Hide()
  6255.         GrimPartyMain:Hide();
  6256.         end
  6257.     end
  6258.    
  6259.    
  6260. end)
  6261.  
  6262.  
  6263.  
  6264. -----------------------------------------
  6265. ---- hide party frames in raid Start ----
  6266. -----------------------------------------
  6267.  
  6268.  
  6269.  
  6270. -----------------------------------------
  6271. ---- hide party frames in raid End   ----
  6272. -----------------------------------------
  6273.  
  6274. ---------------------------------------
  6275. -- show them again when you leave it heh....
  6276. ----------------------------------------------
  6277. --local ReshowPartyFrames = CreateFrame("Frame", nil, UIParent)
  6278. --ReshowPartyFrames:RegisterEvent("RAID_ROSTER_UPDATE")
  6279. --ReshowPartyFrames:RegisterEvent("PLAYER_ENTERING_WORLD")
  6280.  
  6281.  
  6282. --ReshowPartyFrames:SetScript("OnEvent", function(self)
  6283.    
  6284.     --local StillInRaid = UnitExists("raid1")
  6285.    
  6286.     --if event == "PLAYER_ENTERING_WORLD" and StillInRaid ~= 1 then
  6287.     --GrimPartyMain:Show()
  6288.     --end
  6289.    
  6290.    
  6291.     --if StillInRaid ~= 1 then
  6292.     --GrimPartyMain:Show()
  6293.     --end
  6294.  
  6295. --end)
  6296.  
  6297. --local RaidHideGrimPartyFrames = CreateFrame("Frame", nil, UIParent)
  6298. --RaidHideGrimPartyFrames:RegisterEvent("PLAYER_ENTERING_WORLD")
  6299. --RaidHideGrimPartyFrames:RegisterEvent("RAID_ROSTER_UPDATE")
  6300. --RaidHideGrimPartyFrames:RegisterEvent("PARTY_MEMBERS_CHANGED")
  6301.  
  6302. --RaidHideGrimPartyFrames:SetScript("OnEvent", function(self)
  6303. --  local imInARaid = UnitInRaid("player")
  6304. -- 
  6305. --
  6306. --  if imInARaid == 1 then
  6307. --  GrimMPartyFrame1:Hide()
  6308. --  GrimMPartyFrame2:Hide()
  6309. --  GrimMPartyFrame3:Hide()
  6310. --  GrimMPartyFrame4:Hide()
  6311. --  UnregisterUnitWatch(GrimMPartyFrame1)
  6312. --  UnregisterUnitWatch(GrimMPartyFrame2)
  6313. --  UnregisterUnitWatch(GrimMPartyFrame3)
  6314. --  UnregisterUnitWatch(GrimMPartyFrame4)
  6315. -- 
  6316. -- 
  6317. -- 
  6318. --  end
  6319. -- 
  6320. --  if imInARaid == nil then
  6321. --
  6322. --  RegisterUnitWatch(GrimMPartyFrame1)
  6323. --  RegisterUnitWatch(GrimMPartyFrame2)
  6324. --  RegisterUnitWatch(GrimMPartyFrame3)
  6325. --  RegisterUnitWatch(GrimMPartyFrame4)
  6326. -- 
  6327. --  end
  6328. -- 
  6329. --end)
  6330.  
  6331. --------------
  6332. -- Party Layout Update on style change.
  6333. ---------------
__________________
"Are we there yet?"

GrimUI
[SIGPIC][/SIGPIC]
  Reply With Quote
06-13-10, 02:45 PM   #4
Grimsin
A Molten Giant
 
Grimsin's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2006
Posts: 990
in theory if i made the partystyle function global it should work? right?

everyone says do not pollute the global enviroment well does that mean via making lots of global functions? or does making one or two massive global functions count?

if i put all my locals or most of them anyhow outside of the functions will that fix the problem?
__________________
"Are we there yet?"

GrimUI
[SIGPIC][/SIGPIC]

Last edited by Grimsin : 06-13-10 at 03:19 PM.
  Reply With Quote
06-13-10, 03:23 PM   #5
yssaril
A Warpwood Thunder Caller
 
yssaril's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2007
Posts: 96
you are using too many upvalues so lua doesn't have enough space to store them all (limit of the language not your memory)

I would consider attaching all your infrequently used values/references to one or more tables.

For example make a table and add all frames you create to this

Code:
local myFrames = {} -- all frames go here :)

myFrames.Frame1 = CreateFrame(...)
myFrames.Frame2 = CreateFrame(...)
myFrames.Frame3 = CreateFrame(...)
  Reply With Quote
06-13-10, 03:38 PM   #6
Grimsin
A Molten Giant
 
Grimsin's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2006
Posts: 990
im not sure i know what you mean? all the major frame creations take place outside of the functions. What i understand about the upvalue is its from trying to jam to many variables into a function? so i shouldnt need to table the frames themselves.
__________________
"Are we there yet?"

GrimUI
[SIGPIC][/SIGPIC]
  Reply With Quote
06-13-10, 04:02 PM   #7
Vrul
A Scalebane Royal Guard
 
Vrul's Avatar
AddOn Author - Click to view addons
Join Date: Nov 2007
Posts: 404
Your issue is the approach, or complete lack there of, you are taking. Reuse your code. Don't write the same blocks of code over and over with the only difference being a 1, 2, 3, or 4. That's just wasting the users memory and your time.
  Reply With Quote
06-13-10, 04:06 PM   #8
Grimsin
A Molten Giant
 
Grimsin's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2006
Posts: 990
yea but im not sure how to do that lol. some form of i in pairs but... and what part would make the most difference?
__________________
"Are we there yet?"

GrimUI
[SIGPIC][/SIGPIC]
  Reply With Quote
06-13-10, 04:11 PM   #9
Xus
A Fallenroot Satyr
 
Xus's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2007
Posts: 25
If your code allows it you can also split it into different lua files.
__________________
Xussie/Xusseh of Kazzak EU. Author of ForteXorcist
  Reply With Quote
06-13-10, 04:19 PM   #10
Slakah
A Molten Giant
 
Slakah's Avatar
AddOn Author - Click to view addons
Join Date: Aug 2007
Posts: 863
Theres a thread about this already http://www.wowinterface.com/forums/s...ad.php?t=22340 .
  Reply With Quote
06-13-10, 04:42 PM   #11
Grimsin
A Molten Giant
 
Grimsin's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2006
Posts: 990
blah that thread is only somewhat helpful.

now i have a "to many locals error" 200 max. table some of the locals? not sure how to table the framecreate local though. not without causing other problems.

Vrul do you mean something like this?

local Party1ispvp = UnitIsPVP("Party1") --- this being one local

local Party1CurrHealth, Party1MaxHealth = UnitHealth("Party1"), UnitHealthMax("Party1") --- does this count as two locals jammed into one? since im not actually using the word local again?


to table a createframe that looks like this
lua Code:
  1. -- Pedestal Frame
  2.     local Party1PedestalFrame = CreateFrame('Frame', "Party1PedestalFrame", GUI_Party1Frame)
  3.         Party1PedestalFrame.texture = Party1PedestalFrame:CreateTexture()

can it just be done like this?

lua Code:
  1. GrimUIPartyFunc = {}
  2.  
  3. -- Pedestal Frame
  4.     GrimUIPartyFunc.Party1PedestalFrame = CreateFrame('Frame', "Party1PedestalFrame", GUI_Party1Frame)
  5.         Party1PedestalFrame.texture = Party1PedestalFrame:CreateTexture()
__________________
"Are we there yet?"

GrimUI
[SIGPIC][/SIGPIC]

Last edited by Grimsin : 06-13-10 at 04:54 PM.
  Reply With Quote
06-13-10, 04:59 PM   #12
Slakah
A Molten Giant
 
Slakah's Avatar
AddOn Author - Click to view addons
Join Date: Aug 2007
Posts: 863
Originally Posted by Grimsin View Post
local Party1CurrHealth, Party1MaxHealth = UnitHealth("Party1"), UnitHealthMax("Party1") --- does this count as two locals jammed into one? since im not actually using the word local again?
No you then have two upvalues.

blah that thread is only somewhat helpful.
That thread explains exactly whats going wrong.

Heres a quick example of the number of upvalues your using
lua Code:
  1. local local1, local2 = "blah", "blah"
  2. --At this point you have 2 upvalues
  3. do
  4.     local local3 = "blah"
  5.     --at this points there are 3 upvalues
  6. end
  7. --Now we're back to two again
  8.  
  9. local function func(arg1, arg2, arg3)
  10.     --When this function is called we have 5 upvalues
  11.     --here we only have access to local1, local2 and the args (arg1, arg2 and arg3)
  12. end
  13.  
  14. --Only two upvalues here local1 and local2
  15. func("blah", "blah", "blah")
  16. --Back to two upvalues again local1 and local2
  17.  
  18. mytable = {}
  19. --number of upvalues still at 2 because mytable is stored in the Global table _G
  20. mytable.var = "blah"
  21. --number of upvalues still at 2
This is the best example I can give of why it's breaking.

Now if at any point in your code the upvalue count reaches more than 60 then you'll get your error.
Ways to avoid this include separating your code into sensible blocks, or by storing more of your variables in tables.
  Reply With Quote
06-13-10, 05:02 PM   #13
Grimsin
A Molten Giant
 
Grimsin's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2006
Posts: 990
so a local is still an upvalue even if it is not inside of a function or any table?

what i did was move all the local blahblah = functionblah) outside of my functions and tables then got a new error saying i had more then 200 locals. would that technically be to many upvalues to?

and to table those locals... can i just do a the blahblah = {} then put blahblah.myword = functionblah) ?

then to call that just change all the spots through out my code that say myword to read blahblah.myword ? it sounds to simple...
__________________
"Are we there yet?"

GrimUI
[SIGPIC][/SIGPIC]

Last edited by Grimsin : 06-13-10 at 05:04 PM.
  Reply With Quote
06-13-10, 08:01 PM   #14
Chimaine
A Deviate Faerie Dragon
 
Chimaine's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2008
Posts: 17
By the way, you dont need to create a local for frames you create with CreateFrame if these frames have a name. The name will be used to create a global named like the frame.
Code:
CreateFrame("Frame", "MyFrame")
MyFrame:Show()
Looking at your code, this could save insane amounts of upvalues...
__________________
Author cAddOns
Chimaine on EU-Destromath.

ATTN! A german writing english!
  Reply With Quote
06-13-10, 09:20 PM   #15
Xrystal
nUI Maintainer
 
Xrystal's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Feb 2006
Posts: 5,892
ah cool to know Chimaine. I'd seen that around in some addons but not consistent enough for me to see that it was an alternative to using local f = CreateFrame(...) rofl.

And yes grim, I use the table.funcName = function() route but instead of creating a new table I use the local addonName,addonTable = ... option available to make the table accessible across all my files.
__________________
  Reply With Quote
06-13-10, 09:33 PM   #16
yssaril
A Warpwood Thunder Caller
 
yssaril's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2007
Posts: 96
Originally Posted by Chimaine View Post
By the way, you dont need to create a local for frames you create with CreateFrame if these frames have a name. The name will be used to create a global named like the frame.
Code:
CreateFrame("Frame", "MyFrame")
MyFrame:Show()
Looking at your code, this could save insane amounts of upvalues...
then you are using global variables and have to make sure that you give each frame a very unique name.

This code would definitely work:
Code:
GrimUIPartyFunc = {}
 
-- Pedestal Frame 
    GrimUIPartyFunc.Party1PedestalFrame = CreateFrame('Frame', "Party1PedestalFrame", GUI_Party1Frame)
        Party1PedestalFrame.texture = Party1PedestalFrame:CreateTexture()
But you would be accessing the Frame by its Name "Party1PedestalFrame" which would be a global reference.
The following removes the global reference and makes everything local to your code with only the GrimUIPartyFunc being upvalued
Code:
local GrimUIPartyFunc = {}
 
-- Pedestal Frame 
    GrimUIPartyFunc.Party1PedestalFrame = CreateFrame('Frame', nil, GUI_Party1Frame) --use nil as name then we don;t create that global
        GrimUIPartyFunc.Party1PedestalFrame.texture = GrimUIPartyFunc.Party1PedestalFrame:CreateTexture()
-- access the frame via our trusty GrimUIPartyFunc table
  Reply With Quote
06-14-10, 12:29 AM   #17
Grimsin
A Molten Giant
 
Grimsin's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2006
Posts: 990
removing the locals on all the framecreation seems to have done the trick kind of lol... trying to shrink things down some... and thats not working out so well.

i tried this to shorten up the event frames but it does not seem to actually register the events like it should...

lua Code:
  1. GUIPartyEventFrames = {}
  2.  
  3. local function createPartyEventFrame(i)
  4.  
  5.         local GUIPartyFrame = CreateFrame("frame", "GUI_Party"..i.."Frame", GrimPartyMain, "SecureUnitButtonTemplate")
  6.    
  7.     -- Health Events
  8.         GUIPartyFrame.HealthEvents = CreateFrame("Frame", "Party"..i.."HealthEvents")
  9.         GUIPartyFrame.HealthEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  10.         GUIPartyFrame.HealthEvents:RegisterEvent("UNIT_HEALTH", "Party"..i.."")
  11.         GUIPartyFrame.HealthEvents:RegisterEvent("UNIT_LEVEL", "Party"..i.."")
  12.         GUIPartyFrame.HealthEvents:RegisterEvent("UNIT_AURA", "Party"..i.."")
  13.         GUIPartyFrame.HealthEvents:RegisterEvent("UNIT_MAXHEALTH", "Party"..i.."")
  14.         GUIPartyFrame.HealthEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  15.  
  16.         -- Mana Events
  17.         GUIPartyFrame.ManaEvents = CreateFrame("Frame", "Party"..i.."ManaEvents")
  18.         GUIPartyFrame.ManaEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  19.         GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_HEALTH", "Party"..i.."")
  20.         GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_LEVEL", "Party"..i.."")
  21.         GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_MANA", "Party"..i.."")
  22.         GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_AURA", "Party"..i.."")
  23.         GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_DISPLAYPOWER", "Party"..i.."")
  24.         GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_ENERGY", "Party"..i.."")
  25.         GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_MAXENERGY", "Party"..i.."")
  26.         GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_MAXMANA", "Party"..i.."")
  27.         GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_MAXRUNICPOWER", "Party"..i.."")
  28.         GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_RUNIC_POWER", "Party"..i.."")
  29.         GUIPartyFrame.ManaEvents:RegisterEvent("UNIT_RAGE", "Party"..i.."")
  30.         GUIPartyFrame.ManaEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  31.        
  32.         GUIPartyFrame.NameTextEvents = CreateFrame("Frame", "Party"..i.."NameTextEvents")
  33.         GUIPartyFrame.NameTextEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  34.         GUIPartyFrame.NameTextEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  35.         GUIPartyFrame.NameTextEvents:RegisterEvent("UNIT_NAME_UPDATE", "Party"..i.."")
  36.         GUIPartyFrame.NameTextEvents:RegisterEvent("UNIT_FLAGS", "Party"..i.."")
  37.         GUIPartyFrame.NameTextEvents:RegisterEvent("UNIT_THREAT_LIST_UPDATE", "Party"..i.."")
  38.         GUIPartyFrame.NameTextEvents:RegisterEvent("UNIT_THREAT_SITUATION_UPDATE", "Party"..i.."")
  39.         GUIPartyFrame.NameTextEvents:RegisterEvent("UNIT_COMBAT", "Party"..i.."")
  40.        
  41.         GUIPartyFrame.LvlClassTextEvents = CreateFrame("frame", "Party"..i.."LvlClassTextEvents")
  42.         GUIPartyFrame.LvlClassTextEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  43.         GUIPartyFrame.LvlClassTextEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  44.         GUIPartyFrame.LvlClassTextEvents:RegisterEvent("UNIT_LEVEL", "Party"..i.."")
  45.        
  46.         GUIPartyFrame.PartyLeaderEvent = CreateFrame("Frame", "Party"..i.."PartyLeaderEvent")
  47.         GUIPartyFrame.PartyLeaderEvent:RegisterEvent("PLAYER_ENTERING_WORLD")
  48.         GUIPartyFrame.PartyLeaderEvent:RegisterEvent("PARTY_LEADER_CHANGED")
  49.         GUIPartyFrame.PartyLeaderEvent:RegisterEvent("PARTY_MEMBERS_CHANGED")
  50.         GUIPartyFrame.PartyLeaderEvent:RegisterEvent("ZONE_CHANGED_NEW_AREA")
  51.        
  52.         GUIPartyFrame.pvpIconEvent = CreateFrame("Frame", "Party"..i.."pvpIconEvent")
  53.         GUIPartyFrame.pvpIconEvent:RegisterEvent("PLAYER_ENTERING_WORLD")
  54.         GUIPartyFrame.pvpIconEvent:RegisterEvent("UNIT_FACTION", "Party"..i.."")
  55.         GUIPartyFrame.pvpIconEvent:RegisterEvent("PARTY_MEMBERS_CHANGED")
  56.         GUIPartyFrame.pvpIconEvent:RegisterEvent("UNIT_DYNAMIC_FLAGS", "Party"..i.."")
  57.        
  58.         GUIPartyFrame.OffLineDeadEvents = CreateFrame("Frame", "Party"..i.."OffLineDeadEvents")
  59.         GUIPartyFrame.OffLineDeadEvents.RegisterEvents = GrimUI.RegisterEvents
  60.         GUIPartyFrame.OffLineDeadEvents:RegisterEvents('PLAYER_ENTERING_WORLD', 'PARTY_MEMBERS_CHANGED', 'PARTY_MEMBER_DISABLE', 'PARTY_MEMBER_ENABLE')
  61.         GUIPartyFrame.OffLineDeadEvents:RegisterEvent("UNIT_HEALTH", "Party"..i.."")
  62.        
  63.         GUIPartyFrame.targetOfFrameEvents = CreateFrame("frame", "targetOfParty"..i.."FrameEvents")
  64.         GUIPartyFrame.targetOfFrameEvents.RegisterEvents = GrimUI.RegisterEvents
  65.         GUIPartyFrame.targetOfFrameEvents:RegisterEvents('PLAYER_ENTERING_WORLD', 'PARTY_MEMBERS_CHANGED', 'PARTY_LEADER_CHANGED', 'PLAYER_TARGET_CHANGED')
  66.         GUIPartyFrame.targetOfFrameEvents:RegisterEvent("UNIT_TARGET", "player")
  67.         GUIPartyFrame.targetOfFrameEvents:RegisterEvent("UNIT_TARGET", "Party"..i.."target")
  68.         GUIPartyFrame.targetOfFrameEvents:RegisterEvent("UNIT_TARGET", "target")
  69.         GUIPartyFrame.targetOfFrameEvents:RegisterEvent("UNIT_TARGET", "Party"..i.."")
  70.        
  71.         -- this stores the party frame in the table
  72.         GUIPartyEventFrames["GUIPartyFrame"..i] = GUIPartyFrame
  73.          return GUIPartyFrame
  74. end
  75.  
  76. createPartyEventFrame(1)
  77. createPartyEventFrame(2)
  78. createPartyEventFrame(3)
  79. createPartyEventFrame(4)
__________________
"Are we there yet?"

GrimUI
[SIGPIC][/SIGPIC]

Last edited by Grimsin : 06-14-10 at 01:18 AM.
  Reply With Quote
06-14-10, 02:43 AM   #18
Chimaine
A Deviate Faerie Dragon
 
Chimaine's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2008
Posts: 17
Originally Posted by yssaril View Post
then you are using global variables and have to make sure that you give each frame a very unique name.
Not that difficult. Having your addon's name as a prefix is often enough.

If you register different types of Events to different frames, you have to create an OnEvent handler for each frame. I don't see one here, but maybe you create the handler elsewhere...
Also, maybe I'm still asleep, but does :RegisterEvent() not only have one arg?
__________________
Author cAddOns
Chimaine on EU-Destromath.

ATTN! A german writing english!

Last edited by Chimaine : 06-14-10 at 02:45 AM. Reason: Added
  Reply With Quote
06-14-10, 08:25 AM   #19
Grimsin
A Molten Giant
 
Grimsin's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2006
Posts: 990
you mean the Party1 arg's? its just like on the event ADDON_LOADED the name of your addon becomes an arg... all the unit events except the unit args.

i have the onscript handler and everything seems to be working fine but the events dont seem to be registering...
__________________
"Are we there yet?"

GrimUI
[SIGPIC][/SIGPIC]
  Reply With Quote
06-14-10, 09:21 AM   #20
Rilgamon
Premium Member
 
Rilgamon's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Sep 2009
Posts: 822
Perhaps you forgot to set the script ?
You need to set the script for every frame you register the events to.

local function onevent(self, event, ...)
[...]
end

GUIPartyFrame.HealthEvents:SetScript("OnEvent", onevent)
GUIPartyFrame.ManaEvents:SetScript("OnEvent", onevent)
[...]
__________________
The cataclysm broke the world ... and the pandas could not fix it!
  Reply With Quote

WoWInterface » Developer Discussions » Lua/XML Help » error more then 60 upvalues

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off