vanilla-wow-addons – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | local XPerl_Player_Pet_Events = {} |
2 | |||
3 | ---------------------- |
||
4 | -- Loading Function -- |
||
5 | ---------------------- |
||
6 | function XPerl_Player_Pet_OnLoad() |
||
7 | |||
8 | -- Events |
||
9 | this:RegisterEvent("PLAYER_ENTERING_WORLD") |
||
10 | this:RegisterEvent("PLAYER_LEAVING_WORLD") |
||
11 | |||
12 | this.time = 0 |
||
13 | XPerl_InitFadeFrame(this) |
||
14 | |||
15 | -- Set here to reduce amount of function calls made |
||
16 | this:SetScript("OnEvent", XPerl_Player_Pet_OnEvent) |
||
17 | this:SetScript("OnUpdate", XPerl_Player_Pet_OnUpdate) |
||
18 | this:SetScript("OnShow", XPerl_Player_Pet_UpdatePortrait) |
||
19 | |||
20 | XPerl_RegisterHighlight(XPerl_Player_Pet_CastClickOverlay, 2) |
||
21 | XPerl_RegisterPerlFrames(this, {"NameFrame", "StatsFrame", "PortraitFrame", "LevelFrame", "HappyFrame"}) |
||
22 | |||
23 | this.FlashFrames = {XPerl_Player_Pet_NameFrame, XPerl_Player_Pet_LevelFrame, |
||
24 | XPerl_Player_Pet_StatsFrame, XPerl_Player_Pet_PortraitFrame} |
||
25 | end |
||
26 | |||
27 | ------------------- |
||
28 | -- Event Handler -- |
||
29 | ------------------- |
||
30 | local function XPerl_Player_Pet_RegisterSome() |
||
31 | this:RegisterEvent("UNIT_PET") |
||
32 | this:RegisterEvent("UNIT_HAPPINESS") |
||
33 | this:RegisterEvent("PET_STABLE_UPDATE") |
||
34 | this:RegisterEvent("PET_STABLE_SHOW") |
||
35 | this:RegisterEvent("PET_STABLE_CLOSED") |
||
36 | this:RegisterEvent("PET_STABLE_UPDATE_PAPERDOLL") |
||
37 | end |
||
38 | local function XPerl_Player_Pet_RegisterForPet() |
||
39 | this:RegisterEvent("UNIT_AURA") |
||
40 | this:RegisterEvent("UNIT_FOCUS") |
||
41 | this:RegisterEvent("UNIT_MAXFOCUS") |
||
42 | this:RegisterEvent("PET_ATTACK_START") |
||
43 | this:RegisterEvent("UNIT_FACTION") |
||
44 | this:RegisterEvent("UNIT_FLAGS") |
||
45 | this:RegisterEvent("UNIT_DYNAMIC_FLAGS") |
||
46 | this:RegisterEvent("UNIT_PET_EXPERIENCE") |
||
47 | this:RegisterEvent("UNIT_MODEL_CHANGED") |
||
48 | XPerl_RegisterBasics() |
||
49 | end |
||
50 | |||
51 | local function XPerl_Player_Pet_UnregisterSome() |
||
52 | this:UnregisterEvent("UNIT_PET") |
||
53 | this:UnregisterEvent("UNIT_HAPPINESS") |
||
54 | this:UnregisterEvent("PET_STABLE_UPDATE") |
||
55 | this:UnregisterEvent("PET_STABLE_SHOW") |
||
56 | this:UnregisterEvent("PET_STABLE_CLOSED") |
||
57 | this:UnregisterEvent("PET_STABLE_UPDATE_PAPERDOLL") |
||
58 | end |
||
59 | local function XPerl_Player_Pet_UnregisterForPet() |
||
60 | this:UnregisterEvent("UNIT_AURA") |
||
61 | this:UnregisterEvent("UNIT_FOCUS") |
||
62 | this:UnregisterEvent("UNIT_MAXFOCUS") |
||
63 | this:UnregisterEvent("PET_ATTACK_START") |
||
64 | this:UnregisterEvent("UNIT_FACTION") |
||
65 | this:UnregisterEvent("UNIT_FLAGS") |
||
66 | this:UnregisterEvent("UNIT_DYNAMIC_FLAGS") |
||
67 | this:UnregisterEvent("UNIT_PET_EXPERIENCE") |
||
68 | this:UnregisterEvent("UNIT_MODEL_CHANGED") |
||
69 | XPerl_UnregisterBasics() |
||
70 | end |
||
71 | |||
72 | ------------------------- |
||
73 | -- The Update Function -- |
||
74 | ------------------------- |
||
75 | local function XPerl_Player_Pet_CheckPet() |
||
76 | if (UnitExists("pet")) then |
||
77 | if (UnitIsVisible("pet")) then |
||
78 | XPerl_CancelFade(XPerl_Player_Pet) |
||
79 | |||
80 | XPerl_Player_Pet:Show() |
||
81 | XPerl_Player_Pet_RegisterForPet() |
||
82 | return true |
||
83 | end |
||
84 | end |
||
85 | |||
86 | XPerl_Player_Pet_UnregisterForPet() |
||
87 | |||
88 | XPerl_StartFade(XPerl_Player_Pet) |
||
89 | return false |
||
90 | end |
||
91 | |||
92 | -- XPerl_Player_Pet_UpdateName |
||
93 | local function XPerl_Player_Pet_UpdateName() |
||
94 | local petname = UnitName("pet") |
||
95 | |||
96 | if (petname == UNKNOWNOBJECT) then |
||
97 | XPerl_Player_Pet_NameFrame_NameBarText:SetText("") |
||
98 | else |
||
99 | XPerl_Player_Pet_NameFrame_NameBarText:SetText(petname) |
||
100 | end |
||
101 | |||
102 | if (UnitIsPVP("player")) then |
||
103 | XPerl_Player_Pet_NameFrame_NameBarText:SetTextColor(0, 1, 0, XPerlConfig.TextTransparency) |
||
104 | else |
||
105 | XPerl_Player_Pet_NameFrame_NameBarText:SetTextColor(0.5, 0.5, 1, XPerlConfig.TextTransparency) |
||
106 | end |
||
107 | end |
||
108 | |||
109 | -- XPerl_Player_Pet_UpdateLevel |
||
110 | local function XPerl_Player_Pet_UpdateLevel() |
||
111 | local petlevel = UnitLevel("pet") |
||
112 | local petxp, petxpmax = GetPetExperience() |
||
113 | |||
114 | XPerl_Player_Pet_StatsFrame_XPBar:SetStatusBarColor(0.3, 0.3, 1, 1) |
||
115 | XPerl_Player_Pet_StatsFrame_XPBarBG:SetVertexColor(0.3, 0.3, 1, 0.25) |
||
116 | |||
117 | XPerl_Player_Pet_StatsFrame_XPBar:SetMinMaxValues(0, petxpmax) |
||
118 | XPerl_Player_Pet_StatsFrame_XPBar:SetValue(petxp) |
||
119 | |||
120 | XPerl_Player_Pet_LevelFrameText:SetText(petlevel) |
||
121 | end |
||
122 | |||
123 | -- XPerl_Player_Pet_UpdateHealth |
||
124 | local function XPerl_Player_Pet_UpdateHealth() |
||
125 | local pethealth = UnitHealth("pet") |
||
126 | local pethealthmax = UnitHealthMax("pet") |
||
127 | |||
128 | XPerl_SetHealthBar(XPerl_Player_Pet_StatsFrame_HealthBar, pethealth, pethealthmax) |
||
129 | |||
130 | if (UnitIsDead("pet")) then |
||
131 | XPerl_Player_Pet_StatsFrame_HealthBarText:SetText(XPERL_LOC_DEAD) |
||
132 | XPerl_Player_Pet_StatsFrame_ManaBarText:Hide() |
||
133 | end |
||
134 | end |
||
135 | |||
136 | local function XPerl_Player_Pet_UpdateManaType() |
||
137 | XPerl_SetManaBarType("pet", XPerl_Player_Pet_StatsFrame_ManaBar, XPerl_Player_Pet_StatsFrame_ManaBarBG) |
||
138 | end |
||
139 | |||
140 | -- XPerl_Player_Pet_UpdateMana() |
||
141 | local function XPerl_Player_Pet_UpdateMana() |
||
142 | local petmana = UnitMana("pet") |
||
143 | local petmanamax = UnitManaMax("pet") |
||
144 | |||
145 | XPerl_Player_Pet_StatsFrame_ManaBar:SetMinMaxValues(0, petmanamax) |
||
146 | XPerl_Player_Pet_StatsFrame_ManaBar:SetValue(petmana) |
||
147 | |||
148 | XPerl_Player_Pet_StatsFrame_ManaBarText:SetText(petmana.."/"..petmanamax) |
||
149 | |||
150 | if (XPerlConfig.ShowPlayerPetValues == 1) then |
||
151 | XPerl_Player_Pet_StatsFrame_ManaBarText:Show() |
||
152 | end |
||
153 | end |
||
154 | |||
155 | -- XPerl_Player_Pet_CombatFlash |
||
156 | local function XPerl_Player_Pet_CombatFlash(elapsed, argNew, argGreen) |
||
157 | if (XPerl_CombatFlashSet (elapsed, XPerl_Player_Pet, argNew, argGreen)) then |
||
158 | XPerl_CombatFlashSetFrames(XPerl_Player_Pet) |
||
159 | end |
||
160 | end |
||
161 | |||
162 | -- XPerl_Player_Pet_UpdatePortrait() |
||
163 | function XPerl_Player_Pet_UpdatePortrait() |
||
164 | if (XPerlConfig.ShowPlayerPetPortrait == 1) then |
||
165 | if (XPerlConfig.ShowPlayerPetPortrait3D == 1) then |
||
166 | XPerl_Player_Pet_PortraitFrame_Portrait:Hide() |
||
167 | XPerl_Player_Pet_PortraitFrame_Portrait3D:Show() |
||
168 | XPerlSetPortrait3D(XPerl_Player_Pet_PortraitFrame_Portrait3D, "pet") |
||
169 | else |
||
170 | XPerl_Player_Pet_PortraitFrame_Portrait3D.last3DTime = nil |
||
171 | XPerl_Player_Pet_PortraitFrame_Portrait:Show() |
||
172 | XPerl_Player_Pet_PortraitFrame_Portrait3D:Hide() |
||
173 | SetPortraitTexture(XPerl_Player_Pet_PortraitFrame_Portrait, "pet") |
||
174 | end |
||
175 | end |
||
176 | end |
||
177 | |||
178 | -- XPerl_Player_Pet_OnUpdate |
||
179 | function XPerl_Player_Pet_OnUpdate() |
||
180 | if (this.PlayerFlash) then |
||
181 | XPerl_Player_Pet_CombatFlash(arg1, false) |
||
182 | end |
||
183 | |||
184 | XPerl_ProcessFade(XPerl_Player_Pet) |
||
185 | end |
||
186 | |||
187 | -------------------- |
||
188 | -- Buff Functions -- |
||
189 | -------------------- |
||
190 | local function GetBuffButton(buffnum, debuff, createIfAbsent) |
||
191 | |||
192 | local buffType |
||
193 | if (debuff == 1) then |
||
194 | buffType = "DeBuff" |
||
195 | else |
||
196 | buffType = "Buff" |
||
197 | end |
||
198 | local name = "XPerl_Player_Pet_BuffFrame_"..buffType..buffnum |
||
199 | local button = getglobal(name) |
||
200 | |||
201 | if (not button and createIfAbsent) then |
||
202 | button = CreateFrame("Button", name, XPerl_Player_Pet_BuffFrame, "XPerl_"..buffType.."Template") |
||
203 | button:SetID(buffnum) |
||
204 | |||
205 | local size = XPerlConfig.PlayerPetBuffSize * (1 + (0.3 * debuff)) |
||
206 | button:SetHeight(size) |
||
207 | button:SetWidth(size) |
||
208 | |||
209 | if (debuff == 1) then |
||
210 | button:SetScript("OnEnter", XPerl_Player_Pet_SetDeBuffTooltip) |
||
211 | else |
||
212 | button:SetScript("OnEnter", XPerl_Player_Pet_SetBuffTooltip) |
||
213 | end |
||
214 | button:SetScript("OnLeave", XPerl_PlayerTipHide) |
||
215 | |||
216 | button:ClearAllPoints() |
||
217 | if (buffnum == 1) then |
||
218 | if (debuff == 1) then |
||
219 | button:SetPoint("TOPLEFT", 0, -(XPerlConfig.PlayerPetBuffSize + 1)) |
||
220 | else |
||
221 | button:SetPoint("TOPLEFT", 0, 0) |
||
222 | end |
||
223 | else |
||
224 | local prevButton = getglobal("XPerl_Player_Pet_BuffFrame_"..buffType..(buffnum - 1)) |
||
225 | button:SetPoint("TOPLEFT", prevButton, "TOPRIGHT", 1 + debuff, 0) |
||
226 | end |
||
227 | end |
||
228 | |||
229 | return button |
||
230 | end |
||
231 | |||
232 | local function XPerl_Player_Pet_Buff_UpdateAll () |
||
233 | if (UnitExists("pet")) then |
||
234 | for buffnum=1,10 do |
||
235 | local buff, buffApplications = UnitBuff("pet", buffnum) |
||
236 | local button = GetBuffButton(buffnum, 0, buff) |
||
237 | |||
238 | if (buff) then |
||
239 | local icon = getglobal(button:GetName().."Icon") |
||
240 | local count = getglobal(button:GetName().."Count") |
||
241 | icon:SetTexture(buff) |
||
242 | |||
243 | if ( buffApplications > 1 ) then |
||
244 | count:SetText(buffApplications) |
||
245 | count:Show() |
||
246 | else |
||
247 | count:Hide() |
||
248 | end |
||
249 | button:Show() |
||
250 | |||
251 | elseif (button) then |
||
252 | button:Hide() |
||
253 | end |
||
254 | end |
||
255 | |||
256 | for buffnum=1,8 do |
||
257 | local debuff, debuffApplications, debuffType = UnitDebuff("pet", buffnum) |
||
258 | local button = GetBuffButton(buffnum, 1, debuff) |
||
259 | if (debuff) then |
||
260 | local icon = getglobal(button:GetName().."Icon") |
||
261 | local count = getglobal(button:GetName().."Count") |
||
262 | local border = getglobal(button:GetName().."Border") |
||
263 | |||
264 | icon:SetTexture(debuff) |
||
265 | |||
266 | if ( debuffApplications > 1 ) then |
||
267 | count:SetText(debuffApplications) |
||
268 | count:Show() |
||
269 | else |
||
270 | count:Hide() |
||
271 | end |
||
272 | |||
273 | local borderColor = DebuffTypeColor[(debuffType or "none")] |
||
274 | border:SetVertexColor(borderColor.r, borderColor.g, borderColor.b) |
||
275 | button:Show() |
||
276 | |||
277 | elseif (button) then |
||
278 | button:Hide() |
||
279 | end |
||
280 | end |
||
281 | |||
282 | XPerl_CheckDebuffs("pet", {XPerl_Player_Pet_NameFrame, XPerl_Player_Pet_PortraitFrame, XPerl_Player_Pet_LevelFrame, XPerl_Player_Pet_StatsFrame}) |
||
283 | end |
||
284 | end |
||
285 | |||
286 | function XPerl_Player_Pet_SetBuffTooltip () |
||
287 | GameTooltip:SetOwner(this, "ANCHOR_BOTTOMRIGHT") |
||
288 | GameTooltip:SetUnitBuff("pet", this:GetID()) |
||
289 | end |
||
290 | |||
291 | function XPerl_Player_Pet_SetDeBuffTooltip () |
||
292 | GameTooltip:SetOwner(this, "ANCHOR_BOTTOMRIGHT") |
||
293 | GameTooltip:SetUnitDebuff("pet", this:GetID()) |
||
294 | end |
||
295 | |||
296 | --------------- |
||
297 | -- Happiness -- |
||
298 | --------------- |
||
299 | |||
300 | local function XPerl_Player_Pet_SetHappiness() |
||
301 | local happiness, damagePercentage, loyaltyRate = GetPetHappiness() |
||
302 | |||
303 | if (not happiness) then |
||
304 | happiness = 3 |
||
305 | end |
||
306 | |||
307 | if ( happiness == 1 ) then |
||
308 | XPerl_Player_Pet_HappyFrame_PetHappinessTexture:SetTexCoord(0.375, 0.5625, 0, 0.359375) |
||
309 | elseif ( happiness == 2 ) then |
||
310 | XPerl_Player_Pet_HappyFrame_PetHappinessTexture:SetTexCoord(0.1875, 0.375, 0, 0.359375) |
||
311 | elseif ( happiness == 3 ) then |
||
312 | XPerl_Player_Pet_HappyFrame_PetHappinessTexture:SetTexCoord(0, 0.1875, 0, 0.359375) |
||
313 | end |
||
314 | if ( happiness ~= nil ) then |
||
315 | XPerl_Player_Pet_HappyFrame_PetHappiness.tooltip = getglobal("PET_HAPPINESS"..happiness) |
||
316 | XPerl_Player_Pet_HappyFrame_PetHappiness.tooltipDamage = format(PET_DAMAGE_PERCENTAGE, damagePercentage) |
||
317 | if ( loyaltyRate < 0 ) then |
||
318 | XPerl_Player_Pet_HappyFrame_PetHappiness.tooltipLoyalty = getglobal("LOSING_LOYALTY") |
||
319 | elseif ( loyaltyRate > 0 ) then |
||
320 | XPerl_Player_Pet_HappyFrame_PetHappiness.tooltipLoyalty = getglobal("GAINING_LOYALTY") |
||
321 | else |
||
322 | XPerl_Player_Pet_HappyFrame_PetHappiness.tooltipLoyalty = nil |
||
323 | end |
||
324 | end |
||
325 | |||
326 | if (XPerlConfig.PetHappiness == 1 and (XPerlConfig.PetHappinessSad == 0 or happiness < 3)) then |
||
327 | XPerl_Player_Pet_HappyFrame:Show() |
||
328 | |||
329 | if (XPerlConfig.PetFlashWhenSad == 1 and happiness < 3) then |
||
330 | if (not UIFrameIsFlashing(XPerl_Player_Pet_HappyFrame)) then |
||
331 | UIFrameFlash(XPerl_Player_Pet_HappyFrame, 0.5, 0.5, 30, 1, 0, 1) |
||
332 | end |
||
333 | else |
||
334 | if (UIFrameIsFlashing(XPerl_Player_Pet_HappyFrame)) then |
||
335 | UIFrameFlashStop(XPerl_Player_Pet_HappyFrame) |
||
336 | UIFrameFlashUpdate(1) |
||
337 | end |
||
338 | end |
||
339 | else |
||
340 | if (UIFrameIsFlashing(XPerl_Player_Pet_HappyFrame)) then |
||
341 | UIFrameFlashStop(XPerl_Player_Pet_HappyFrame) |
||
342 | UIFrameFlashUpdate(1) |
||
343 | end |
||
344 | XPerl_Player_Pet_HappyFrame:Hide() |
||
345 | end |
||
346 | end |
||
347 | |||
348 | -------------------- |
||
349 | -- Click Handlers -- |
||
350 | -------------------- |
||
351 | function XPerl_Player_Pet_OnClick(button) |
||
352 | |||
353 | if (XPerl_OnClick_Handler(button, "pet")) then |
||
354 | return |
||
355 | end |
||
356 | |||
357 | if (button == "RightButton") then |
||
358 | HideDropDownMenu(1) |
||
359 | ToggleDropDownMenu(1, nil, PetFrameDropDown, "XPerl_Player_Pet_StatsFrame", 0, 0) |
||
360 | end |
||
361 | end |
||
362 | |||
363 | -- XPerl_Player_Pet_Update_Control |
||
364 | local function XPerl_Player_Pet_Update_Control() |
||
365 | if (UnitIsCharmed("pet")) then |
||
366 | XPerl_Player_Pet_NameFrame_Warning:Show() |
||
367 | else |
||
368 | XPerl_Player_Pet_NameFrame_Warning:Hide() |
||
369 | end |
||
370 | end |
||
371 | |||
372 | -- XPerl_Player_Pet_UpdateCombat |
||
373 | local function XPerl_Player_Pet_UpdateCombat() |
||
374 | if (UnitExists("pet")) then |
||
375 | if (UnitAffectingCombat("pet")) then |
||
376 | XPerl_Player_Pet_NameFrame_ActivityStatus:Show() |
||
377 | else |
||
378 | XPerl_Player_Pet_NameFrame_ActivityStatus:Hide() |
||
379 | end |
||
380 | XPerl_Player_Pet_Update_Control() |
||
381 | end |
||
382 | end |
||
383 | |||
384 | function XPerl_Player_Pet_UpdateDisplay () |
||
385 | if (XPerl_Player_Pet_CheckPet()) then |
||
386 | XPerl_CancelFade(XPerl_Player_Pet) |
||
387 | |||
388 | XPerl_Player_Pet_UpdatePortrait() |
||
389 | XPerl_Player_Pet_UpdateName() |
||
390 | XPerl_Player_Pet_UpdateHealth() |
||
391 | XPerl_Player_Pet_UpdateManaType() |
||
392 | XPerl_Player_Pet_UpdateMana() |
||
393 | XPerl_Player_Pet_UpdateLevel() |
||
394 | XPerl_Player_Pet_SetHappiness() |
||
395 | XPerl_Player_Pet_Buff_UpdateAll() |
||
396 | |||
397 | XPerl_Player_Pet_UpdateCombat() |
||
398 | end |
||
399 | end |
||
400 | |||
401 | ------------------- |
||
402 | -- Event Handler -- |
||
403 | ------------------- |
||
404 | function XPerl_Player_Pet_OnEvent() |
||
405 | local func = XPerl_Player_Pet_Events[event] |
||
406 | if (func) then |
||
407 | func() |
||
408 | else |
||
409 | XPerl_ShowMessage("EXTRA EVENT") |
||
410 | end |
||
411 | end |
||
412 | |||
413 | -- PLAYER_ENTERING_WORLD |
||
414 | function XPerl_Player_Pet_Events:PLAYER_ENTERING_WORLD() |
||
415 | --XPerl_Player_Pet.PlayerFlash = 0 |
||
416 | XPerl_Player_Pet_RegisterSome() |
||
417 | end |
||
418 | |||
419 | -- PLAYER_LEAVING_WORLD |
||
420 | function XPerl_Player_Pet_Events:PLAYER_LEAVING_WORLD() |
||
421 | XPerl_Player_Pet_UnregisterSome() |
||
422 | end |
||
423 | |||
424 | -- UNIT_AURA |
||
425 | function XPerl_Player_Pet_Events:UNIT_AURA() |
||
426 | if (arg1 == "pet") then |
||
427 | XPerl_Player_Pet_Buff_UpdateAll() |
||
428 | end |
||
429 | end |
||
430 | |||
431 | -- UNIT_PET |
||
432 | function XPerl_Player_Pet_Events:UNIT_PET() |
||
433 | XPerl_Player_Pet_UpdateDisplay() |
||
434 | end |
||
435 | |||
436 | XPerl_Player_Pet_Events.PET_STABLE_SHOW = XPerl_Player_Pet_Events.UNIT_PET |
||
437 | |||
438 | -- UNIT_NAME_UPDATE |
||
439 | function XPerl_Player_Pet_Events:UNIT_NAME_UPDATE() |
||
440 | if (arg1 == "pet") then |
||
441 | XPerl_Player_Pet_UpdateName() |
||
442 | end |
||
443 | end |
||
444 | |||
445 | -- UNIT_MODEL_CHANGED |
||
446 | function XPerl_Player_Pet_Events:UNIT_MODEL_CHANGED() |
||
447 | if (arg1 == "pet") then |
||
448 | XPerl_Player_Pet_UpdatePortrait() |
||
449 | end |
||
450 | end |
||
451 | --XPerl_Player_Pet_Events.UNIT_PORTRAIT_UPDATE = XPerl_Player_Pet_Events.UNIT_MODEL_CHANGED |
||
452 | |||
453 | -- UNIT_HEALTH, UNIT_MAXHEALTH |
||
454 | function XPerl_Player_Pet_Events:UNIT_HEALTH() |
||
455 | if (arg1 == "pet") then |
||
456 | XPerl_Player_Pet_UpdateHealth() |
||
457 | end |
||
458 | end |
||
459 | XPerl_Player_Pet_Events.UNIT_MAXHEALTH = XPerl_Player_Pet_Events.UNIT_HEALTH |
||
460 | |||
461 | -- UNIT_RAGE |
||
462 | function XPerl_Player_Pet_Events:UNIT_RAGE() |
||
463 | if (arg1 == "pet") then |
||
464 | XPerl_Player_Pet_UpdateMana() |
||
465 | end |
||
466 | end |
||
467 | |||
468 | XPerl_Player_Pet_Events.UNIT_MAXRAGE = XPerl_Player_Pet_Events.UNIT_RAGE |
||
469 | XPerl_Player_Pet_Events.UNIT_ENERGY = XPerl_Player_Pet_Events.UNIT_RAGE |
||
470 | XPerl_Player_Pet_Events.UNIT_MAXENERGY = XPerl_Player_Pet_Events.UNIT_RAGE |
||
471 | XPerl_Player_Pet_Events.UNIT_MANA = XPerl_Player_Pet_Events.UNIT_RAGE |
||
472 | XPerl_Player_Pet_Events.UNIT_MAXMANA = XPerl_Player_Pet_Events.UNIT_RAGE |
||
473 | XPerl_Player_Pet_Events.UNIT_FOCUS = XPerl_Player_Pet_Events.UNIT_RAGE |
||
474 | XPerl_Player_Pet_Events.UNIT_MAXFOCUS = XPerl_Player_Pet_Events.UNIT_RAGE |
||
475 | |||
476 | -- UNIT_LEVEL |
||
477 | function XPerl_Player_Pet_Events:UNIT_LEVEL() |
||
478 | if (arg1 == "pet") then |
||
479 | XPerl_Player_Pet_UpdateLevel() |
||
480 | end |
||
481 | end |
||
482 | |||
483 | XPerl_Player_Pet_Events.UNIT_PET_EXPERIENCE = XPerl_Player_Pet_Events.UNIT_LEVEL |
||
484 | |||
485 | -- UNIT_DISPLAYPOWER |
||
486 | function XPerl_Player_Pet_Events:UNIT_DISPLAYPOWER() |
||
487 | if (arg1 == "pet") then |
||
488 | XPerl_Player_Pet_UpdateManaType() |
||
489 | end |
||
490 | end |
||
491 | |||
492 | -- UNIT_HAPPINESS |
||
493 | -- Happiness events come while you have a pet up, each 2 secs |
||
494 | function XPerl_Player_Pet_Events:UNIT_HAPPINESS() |
||
495 | if (arg1 == "pet") then |
||
496 | --XPerl_Player_Pet_UpdateDisplay(); -- Update all, fixes bug with stables in 1.11 |
||
497 | XPerl_Player_Pet_SetHappiness() |
||
498 | XPerl_Player_Pet_UpdateCombat() |
||
499 | end |
||
500 | end |
||
501 | |||
502 | -- PET_ATTACK_START |
||
503 | function XPerl_Player_Pet_Events:PET_ATTACK_START() |
||
504 | XPerl_Player_Pet_UpdateCombat() |
||
505 | end |
||
506 | |||
507 | -- UNIT_COMBAT |
||
508 | function XPerl_Player_Pet_Events:UNIT_COMBAT() |
||
509 | if (arg1 == "pet") then |
||
510 | if (arg2 == "HEAL") then |
||
511 | XPerl_Player_Pet_CombatFlash(0, true, true) |
||
512 | elseif (arg4 and arg4 > 0) then |
||
513 | XPerl_Player_Pet_CombatFlash(0, true) |
||
514 | end |
||
515 | end |
||
516 | end |
||
517 | |||
518 | -- UNIT_DYNAMIC_FLAGS |
||
519 | function XPerl_Player_Pet_Events:UNIT_FACTION() |
||
520 | if (arg1 == "pet" or arg1 == "player") then |
||
521 | XPerl_Player_Pet_UpdateName() |
||
522 | XPerl_Player_Pet_UpdateCombat() |
||
523 | end |
||
524 | end |
||
525 | |||
526 | XPerl_Player_Pet_Events.UNIT_FLAGS = XPerl_Player_Pet_Events.UNIT_FACTION |
||
527 | XPerl_Player_Pet_Events.UNIT_DYNAMIC_FLAGS = XPerl_Player_Pet_Events.UNIT_FACTION |
||
528 | |||
529 | -- XPerl_Player_Pet_Set_Bits |
||
530 | function XPerl_Player_Pet_Set_Bits() |
||
531 | if (XPerlConfig.ShowPlayerPetPortrait==0) then |
||
532 | XPerl_Player_Pet_PortraitFrame:Hide() |
||
533 | XPerl_Player_Pet_PortraitFrame:SetWidth(3) |
||
534 | else |
||
535 | XPerl_Player_Pet_PortraitFrame:Show() |
||
536 | XPerl_Player_Pet_PortraitFrame:SetWidth(50) |
||
537 | XPerl_Player_Pet_UpdatePortrait() |
||
538 | end |
||
539 | |||
540 | if (XPerlConfig.ShowPlayerPetName == 1) then |
||
541 | XPerl_Player_Pet_NameFrame:Show() |
||
542 | XPerl_Player_Pet_NameFrame:SetHeight(24) |
||
543 | else |
||
544 | XPerl_Player_Pet_NameFrame:Hide() |
||
545 | XPerl_Player_Pet_NameFrame:SetHeight(2) |
||
546 | end |
||
547 | |||
548 | if (XPerlConfig.ShowPlayerPetName == 1 or XPerlConfig.ShowPlayerPetPortrait == 1) then |
||
549 | XPerl_Player_Pet_HappyFrame:SetPoint("BOTTOMRIGHT", XPerl_Player_Pet_PortraitFrame, "BOTTOMLEFT", 2, 0) |
||
550 | |||
551 | if (XPerlConfig.ShowPetLevel == 1) then |
||
552 | XPerl_Player_Pet_LevelFrame:SetPoint("TOPRIGHT", XPerl_Player_Pet_PortraitFrame, "TOPLEFT", 2, 0) |
||
553 | end |
||
554 | else |
||
555 | XPerl_Player_Pet_HappyFrame:SetPoint("BOTTOMRIGHT", XPerl_Player_Pet_StatsFrame, "BOTTOMLEFT", 2, 0) |
||
556 | |||
557 | if (XPerlConfig.ShowPetLevel == 1) then |
||
558 | XPerl_Player_Pet_LevelFrame:SetPoint("TOPRIGHT", XPerl_Player_Pet_HappyFrame, "TOPLEFT", 2, 0) |
||
559 | end |
||
560 | end |
||
561 | |||
562 | if (XPerlConfig.ShowPetXP==0) then |
||
563 | XPerl_Player_Pet_StatsFrame_XPBar:Hide() |
||
564 | XPerl_Player_Pet_StatsFrame:SetHeight(34) |
||
565 | else |
||
566 | XPerl_Player_Pet_StatsFrame_XPBar:Show() |
||
567 | XPerl_Player_Pet_StatsFrame:SetHeight(44) |
||
568 | end |
||
569 | |||
570 | if (XPerlConfig.ShowPetLevel == 0) then |
||
571 | XPerl_Player_Pet_LevelFrame:Hide() |
||
572 | else |
||
573 | XPerl_Player_Pet_LevelFrame:Show() |
||
574 | end |
||
575 | |||
576 | if (XPerlConfig.ShowPetXP == 1 or XPerlConfig.ShowPlayerPetPortrait == 0 or XPerlConfig.ShowPlayerPetName == 0) then |
||
577 | XPerl_Player_Pet_BuffFrame:SetPoint("TOPLEFT", XPerl_Player_Pet_StatsFrame, "BOTTOMLEFT", 2, 0) |
||
578 | else |
||
579 | XPerl_Player_Pet_BuffFrame:SetPoint("TOPLEFT", XPerl_Player_Pet_PortraitFrame, "BOTTOMLEFT", 2, 0) |
||
580 | end |
||
581 | |||
582 | if (XPerlConfig.ShowPlayerPetValues == 1) then |
||
583 | XPerl_Player_Pet_StatsFrame_HealthBarText:Show() |
||
584 | XPerl_Player_Pet_StatsFrame_ManaBarText:Show() |
||
585 | else |
||
586 | XPerl_Player_Pet_StatsFrame_HealthBarText:Hide() |
||
587 | XPerl_Player_Pet_StatsFrame_ManaBarText:Hide() |
||
588 | end |
||
589 | |||
590 | XPerl_Player_Pet_CastClickOverlay:ClearAllPoints() |
||
591 | if (XPerlConfig.ShowPlayerPetPortrait == 1 or XPerlConfig.ShowPlayerPetName == 1) then |
||
592 | XPerl_Player_Pet_CastClickOverlay:SetPoint("BOTTOMLEFT", XPerl_Player_Pet_PortraitFrame) |
||
593 | else |
||
594 | XPerl_Player_Pet_CastClickOverlay:SetPoint("BOTTOMLEFT", XPerl_Player_Pet_StatsFrame) |
||
595 | end |
||
596 | XPerl_Player_Pet_CastClickOverlay:SetPoint("TOPRIGHT", XPerl_Player_Pet_NameFrame) |
||
597 | |||
598 | XPerlConfig.PlayerPetBuffSize = tonumber(XPerlConfig.PlayerPetBuffSize) or 20 |
||
599 | XPerl_SetBuffSize("XPerl_Player_Pet_", XPerlConfig.PlayerPetBuffSize, XPerlConfig.PlayerPetBuffSize * 1.3) |
||
600 | end |