vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 if ( CT_AddMovable ) then
2 CT_AddMovable("CT_TargetFrame_Drag", CT_TARGETFRAME_MOVABLE, "TOPLEFT", "TOPLEFT", "UIParent", 278, -25, function(status)
3 if ( status ) then
4 CT_TargetFrame_Drag:Show();
5 else
6 CT_TargetFrame_Drag:Hide();
7 end
8 end);
9 end
10  
11 function CT_TargetFrameOnEvent(event)
12  
13 if( ( event == "UNIT_HEALTH" or event == "UNIT_MAXHEALTH" ) and arg1 == "target" ) then
14 CT_ShowTargetHealth();
15 return;
16 end
17  
18 if( ( event == "UNIT_MANA" or event == "UNIT_RAGE" or event == "UNIT_FOCUS" or event == "UNIT_ENERGY" or event == "UPDATE_SHAPESHIFT_FORMS" or event == "UNIT_MAXMANA" or event == "UNIT_MAXRAGE" or event == "UNIT_MAXMENERGY" or event == "UNIT_MAXFOCUS" ) and arg1 == "target" ) then
19 CT_ShowTargetMana();
20 return;
21 end
22  
23 if ( event == "PLAYER_TARGET_CHANGED" or ( event == "UNIT_DISPLAYPOWER" and arg1 == "target" ) ) then
24 CT_ShowTargetHealth();
25 CT_ShowTargetMana();
26 end
27 end
28  
29 function CT_TargetFrame_ShallDisplay(offset)
30 return CT_UnitFramesOptions.styles[3][offset][1];
31 end
32  
33 function CT_TargetFrame_GetHealth(id)
34 if ( not UnitExists("target") or not UnitExists("player") ) then
35 return "";
36 end
37 if ( UnitHealth("target") <= 0 and UnitIsConnected("target") ) then
38 return "";
39 end
40 if ( UnitHealthMax("target") == 100 ) then
41 id = 2;
42 end
43 if ( id == 2 ) then
44 return floor(( UnitHealth("target") or 1 ) / ( UnitHealthMax("target") or 1)*100) .. "%";
45 elseif ( id == 3 ) then
46 local deficit = ( UnitHealth("target") or 1 ) - ( UnitHealthMax("target") or 1 );
47 if ( deficit == 0 ) then
48 deficit = "";
49 end
50 return deficit;
51 elseif ( id == 4 ) then
52 return ( UnitHealth("target") or "?" ) .. "/" .. ( UnitHealthMax("target") or "?" );
53 end
54 end
55  
56 function CT_TargetFrame_GetMana(id)
57 if ( not UnitExists("target") or not UnitExists("player") ) then
58 return "";
59 end
60 if ( UnitPowerType("target") > 0 or UnitManaMax("target") == 0 or ( UnitHealth("target") <= 0 and UnitIsConnected("target") ) ) then
61 return "";
62 end
63 if ( id == 2 ) then
64 return floor(( UnitMana("target") or 1 ) / ( UnitManaMax("target") or 1)*100) .. "%";
65 elseif ( id == 3 ) then
66 local deficit = ( UnitMana("target") or 1 ) - ( UnitManaMax("target") or 1 );
67 if ( deficit == 0 ) then
68 deficit = "";
69 end
70 return deficit;
71 elseif ( id == 4 ) then
72 return ( UnitMana("target") or "?" ) .. "/" .. ( UnitManaMax("target") or "?" );
73 end
74 end
75  
76 function CT_ShowTargetHealth()
77 if ( not UnitExists("target") or not UnitExists("player") or not UnitHealth("target") or not UnitHealthMax("target") ) then
78 return;
79 end
80 local typeOnHealth = CT_TargetFrame_ShallDisplay(1);
81 if ( typeOnHealth > 1 ) then
82 CT_TargetHealthBar:Show();
83 CT_TargetHealthBar:SetText(CT_TargetFrame_GetHealth(typeOnHealth));
84 else
85 CT_TargetHealthBar:Hide();
86 end
87 CT_TargetHealthBar:SetTextColor(CT_UnitFramesOptions.styles[3][1][2], CT_UnitFramesOptions.styles[3][1][3], CT_UnitFramesOptions.styles[3][1][4], CT_UnitFramesOptions.styles[3][1][5]);
88 end
89  
90 -- Hack HealthBar_OnValueChanged to smoothly change the color
91 CT_TargetFrame_oldHealthBar_OnValueChanged = HealthBar_OnValueChanged;
92 function HealthBar_OnValueChanged(value, smooth)
93 CT_TargetFrame_oldHealthBar_OnValueChanged(value, 1);
94 end
95  
96 function CT_ShowTargetMana()
97 if ( not UnitExists("target") or not UnitExists("player") ) then
98 return;
99 end
100 local typeOnMana = CT_TargetFrame_ShallDisplay(2);
101 if ( typeOnMana > 0 ) then
102 CT_TargetManaBar:SetText(CT_TargetFrame_GetMana(typeOnMana));
103 CT_TargetManaBar:Show();
104 else
105 CT_TargetManaBar:Hide();
106 end
107 CT_TargetManaBar:SetTextColor(CT_UnitFramesOptions.styles[3][2][2], CT_UnitFramesOptions.styles[3][2][3], CT_UnitFramesOptions.styles[3][2][4], CT_UnitFramesOptions.styles[3][2][5]);
108 end
109  
110 function CT_SetTargetClass()
111 if ( not CT_UnitFramesOptions.displayTargetClass ) then
112 return;
113 end
114 if ( not UnitExists("target") or not UnitExists("player") ) then return; end
115 if ( UnitIsPlayer("target") ) then
116 CT_TargetFrameClassFrameText:SetText(UnitClass("target") or "");
117 else
118 CT_TargetFrameClassFrameText:SetText(UnitCreatureType("target") or "");
119 end
120 end
121  
122 MAX_TARGET_BUFFS = 20;
123 CT_UnitFrames_oldTargetDebuffButton_Update = TargetDebuffButton_Update;
124 function CT_UnitFrames_newTargetDebuffButton_Update()
125 CT_UnitFrames_oldTargetDebuffButton_Update();
126  
127 local numBuffs = 0;
128 while ( numBuffs < MAX_TARGET_BUFFS and UnitBuff("target", numBuffs+1) ) do
129 numBuffs = numBuffs + 1;
130 end
131 if ( UnitIsFriend("player", "target") ) then
132 TargetFrameBuff1:SetPoint("TOPLEFT", "TargetFrame", "BOTTOMLEFT", 5, 32);
133 if ( numBuffs > 6 ) then
134 TargetFrameDebuff1:SetPoint("TOPLEFT", "TargetFrameBuff7", "BOTTOMLEFT", 0, -2);
135 else
136 TargetFrameDebuff1:SetPoint("TOPLEFT", "TargetFrameBuff1", "BOTTOMLEFT", 0, -2);
137 end
138 TargetFrameBuff7:ClearAllPoints();
139 TargetFrameBuff7:SetPoint("TOPLEFT", "TargetFrameBuff1", "BOTTOMLEFT", 0, -2);
140 TargetFrameBuff11:ClearAllPoints();
141 TargetFrameBuff11:SetPoint("LEFT", "TargetFrameBuff10", "RIGHT", 3, 0);
142 else
143 TargetFrameBuff7:ClearAllPoints();
144 TargetFrameBuff7:SetPoint("LEFT", "TargetFrameBuff6", "RIGHT", 3, 0);
145 TargetFrameBuff11:ClearAllPoints();
146 TargetFrameBuff11:SetPoint("TOPLEFT", "TargetFrameBuff1", "BOTTOMLEFT", 0, -2);
147 end
148  
149 local buffSize, button = 21;
150 if ( numBuffs > 5 ) then
151 buffSize = 17;
152 end
153 for i = 1, 5, 1 do
154 button = getglobal("TargetFrameBuff" .. i);
155 button:SetWidth(buffSize);
156 button:SetHeight(buffSize);
157 end
158 end
159 TargetDebuffButton_Update = CT_UnitFrames_newTargetDebuffButton_Update;