vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 local module = ArcHUD:NewModule("ComboPoints")
2 module.unit = "player"
3 module.defaults = {
4 Enabled = true,
5 Outline = true,
6 Flash = true,
7 Side = 2,
8 Level = 1,
9 }
10 module.options = {
11 {name = "Flash", text = "FLASH", tooltip = "FLASH"},
12 attach = true,
13 }
14 module.localized = true
15  
16 function module:Initialize()
17 -- Setup the frame we need
18 self.f = self:CreateRing(true, ArcHUDFrame)
19 self.f:SetAlpha(0)
20  
21 -- Override Update timer
22 self:RegisterMetro(self.name .. "Update", self.UpdateAlpha, 0.05, self.f)
23 end
24  
25 function module:Update()
26 if(self.db.profile.Outline) then
27 self.f.BG:Show()
28 else
29 self.f.BG:Hide()
30 end
31  
32 self.Flash = self.db.profile.Flash
33  
34 -- Clear all points for the ring
35 self.f:ClearAllPoints()
36 self.f:SetValue(0)
37 if(self.db.profile.Side == 1) then
38 -- Attach to left side
39 self.f:SetPoint("TOPLEFT", self.parent:GetModule("Anchors").Left, "TOPLEFT", self.db.profile.Level * -15, 0)
40 self.f.BG:SetReversed(false)
41 self.f:SetReversed(false)
42 else
43 -- Attach to right side
44 self.f:SetPoint("TOPRIGHT", self.parent:GetModule("Anchors").Right, "TOPRIGHT", self.db.profile.Level * 15, 0)
45 self.f.BG:SetReversed(true)
46 self.f:SetReversed(true)
47 end
48 self.f.BG:SetAngle(180)
49 end
50  
51 function module:Enable()
52 self.f.dirty = true
53 self.f.fadeIn = 0.25
54  
55 self.f:UpdateColor({["r"] = 1, ["g"] = 0, ["b"] = 0})
56 self.f:SetMax(5)
57 self.f:SetValue(GetComboPoints())
58  
59 -- Register the events we will use
60 self:RegisterEvent("PLAYER_COMBO_POINTS", "UpdateComboPoints")
61 self:RegisterEvent("PLAYER_TARGET_CHANGED", "UpdateComboPoints")
62  
63 -- Activate the timers
64 self:StartMetro(self.name .. "Alpha")
65 self:StartMetro(self.name .. "Fade")
66 self:StartMetro(self.name .. "Update")
67  
68 self.f:Show()
69 end
70  
71 function module:UpdateAlpha()
72 if(self.pulse) then
73 self.alphaPulse = self.alphaPulse + arg1/2
74 local amt = math.sin(self.alphaPulse * self.twoPi) * 0.5 + 0.5
75 self:UpdateColor({["r"] = 1, ["g"] = amt, ["b"] = amt})
76 end
77 end
78  
79 function module:UpdateComboPoints()
80 self.f:SetValue(GetComboPoints())
81 if(GetComboPoints() < 5 and GetComboPoints() >= 0) then
82 self.f.pulse = false
83 self.f.alphaPulse = 0
84 self.f:UpdateColor({["r"] = 1, ["g"] = 0, ["b"] = 0})
85 else
86 if(self.Flash) then
87 self.f.pulse = true
88 else
89 self.f.pulse = false
90 end
91 end
92 if(GetComboPoints() > 0) then
93 if(ArcHUD.db.profile.FadeIC > ArcHUD.db.profile.FadeOOC) then
94 self.f:SetRingAlpha(ArcHUD.db.profile.FadeIC)
95 else
96 self.f:SetRingAlpha(ArcHUD.db.profile.FadeOOC)
97 end
98 else
99 self.f:SetRingAlpha(0)
100 end
101 end
102