vanilla-wow-addons – Blame information for rev 1
?pathlinks?
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 |