Details | Compare with Previous | View Log
Line No. | Rev | Author | Line |
---|---|---|---|
1 | 133 | Tomate-202285 | --SKINNER ADD |
2 | 130 | Tomate-202285 | --categoryStatusBar15165 |
3 | Tomate-202285 | --categoryStatusBar15117 |
|
4 | Tomate-202285 | ||
5 | 73 | Syzgyn-40270 | local DBG = false |
6 | 16 | Syzgyn-40270 | UrbanAchiever = LibStub("AceAddon-3.0"):NewAddon("UrbanAchiever", "AceConsole-3.0", "AceEvent-3.0", "AceHook-3.0") |
7 | 2 | Syzgyn-40270 | local self = UrbanAchiever |
8 | Syzgyn-40270 | ------------------------------------------------------------- |
|
9 | Syzgyn-40270 | --Locals |
|
10 | Syzgyn-40270 | ------------------------------------------------------------- |
|
11 | Syzgyn-40270 | --bindings |
|
12 | Syzgyn-40270 | BINDING_HEADER_URBANACHIEVER = "Urban Achiever" |
|
13 | Syzgyn-40270 | ||
14 | 161 | Tomate-202285 | local MAX_ACHIEVEMENTS = 13930 --last 13931 |
15 | 70 | Syzgyn-40270 | local menuTypes = {"PLAYER", "PARTY", "RAID_PLAYER"} |
16 | 43 | Syzgyn-40270 | local playerFaction = UnitFactionGroup("player") == "Alliance" and 1 or 2 |
17 | 2 | Syzgyn-40270 | |
18 | 59 | Syzgyn-40270 | local moneyValues = { |
19 | Syzgyn-40270 | ["G"] = 10000, |
|
20 | Syzgyn-40270 | ["S"] = 100, |
|
21 | Syzgyn-40270 | ["C"] = 1, |
|
22 | Syzgyn-40270 | } |
|
23 | Syzgyn-40270 | ||
24 | 162 | Tomate-202285 | local hiddenAchievements = { |
25 | Tomate-202285 | "<Hidden>", |
|
26 | Tomate-202285 | "<DND>", |
|
27 | Tomate-202285 | "(DNT)", |
|
28 | Tomate-202285 | "(KMS)", |
|
29 | Tomate-202285 | "Hidden Tracking", |
|
30 | Tomate-202285 | "(Hidden Character Achievement)" |
|
31 | Tomate-202285 | } |
|
32 | Tomate-202285 | ||
33 | Tomate-202285 | ||
34 | Tomate-202285 | ||
35 | 2 | Syzgyn-40270 | self.categories = { |
36 | Syzgyn-40270 | ["achievements"] = {}, |
|
37 | Syzgyn-40270 | ["statistics"] = {}, |
|
38 | 107 | Tomate-202285 | ["guild"] = {}, |
39 | 2 | Syzgyn-40270 | } |
40 | Syzgyn-40270 | ||
41 | Syzgyn-40270 | self.masterList = {} |
|
42 | Syzgyn-40270 | self.seriesList = {} |
|
43 | Syzgyn-40270 | self.expandList = {} |
|
44 | Syzgyn-40270 | ||
45 | 107 | Tomate-202285 | self.isAchList = {} --Used to see if id's are achievements or statistics or guild |
46 | Tomate-202285 | self.isGuildList = {} --Used to see if id's are achievements or statistics or guild |
|
47 | 38 | Syzgyn-40270 | |
48 | 120 | Tomate-202285 | self.achieveList = {} |
49 | Tomate-202285 | ||
50 | 2 | Syzgyn-40270 | self.currentTab = "achievements" |
51 | 8 | Syzgyn-40270 | self.currentCat = -1 |
52 | 2 | Syzgyn-40270 | self.currentAch = 0 |
53 | Syzgyn-40270 | self.currentSort = "completed d" |
|
54 | Syzgyn-40270 | ||
55 | Syzgyn-40270 | self.displayTable = {} |
|
56 | Syzgyn-40270 | ||
57 | Syzgyn-40270 | self.catOffset = 0 |
|
58 | Syzgyn-40270 | self.achOffset = 0 |
|
59 | Syzgyn-40270 | self.criteriaOffset = 0 |
|
60 | Syzgyn-40270 | ||
61 | Syzgyn-40270 | self.isComparing = false |
|
62 | Syzgyn-40270 | self.comparisonUnit = "" |
|
63 | 43 | Syzgyn-40270 | self.comparisonFaction = "" |
64 | 2 | Syzgyn-40270 | |
65 | 51 | Syzgyn-40270 | self.moneyFormats = { --[1] = color, [2] = texture |
66 | Syzgyn-40270 | gold = {"|cffffd700%i|r", "%i|TInterface\\MoneyFrame\\UI-GoldIcon:14:14:2:0|t"}, |
|
67 | Syzgyn-40270 | silver = {"|cffc7c7cf%i|r", "%i|TInterface\\MoneyFrame\\UI-SilverIcon:14:14:2:0|t"}, |
|
68 | Syzgyn-40270 | copper = {"|cffeda55f%i|r", "%i|TInterface\\MoneyFrame\\UI-CopperIcon:14:14:2:0|t"}, |
|
69 | Syzgyn-40270 | } |
|
70 | Syzgyn-40270 | ||
71 | 2 | Syzgyn-40270 | self.sortFuncs = { |
72 | Syzgyn-40270 | ["name d"] = function(a, b) |
|
73 | 135 | Tomate-202285 | local _ |
74 | 2 | Syzgyn-40270 | _,a = GetAchievementInfo(a) |
75 | Syzgyn-40270 | _,b = GetAchievementInfo(b) |
|
76 | Syzgyn-40270 | return a < b |
|
77 | Syzgyn-40270 | end, |
|
78 | 109 | Tomate-202285 | |
79 | 2 | Syzgyn-40270 | ["name a"] = function(a, b) |
80 | 135 | Tomate-202285 | local _, a1, b1 |
81 | 2 | Syzgyn-40270 | _,a1 = GetAchievementInfo(a) |
82 | Syzgyn-40270 | _,b1 = GetAchievementInfo(b) |
|
83 | Syzgyn-40270 | assert(a1, "a "..a) |
|
84 | Syzgyn-40270 | assert(b1, "b "..b) |
|
85 | Syzgyn-40270 | return a1 > b1 |
|
86 | Syzgyn-40270 | end, |
|
87 | 109 | Tomate-202285 | |
88 | 2 | Syzgyn-40270 | ["points d"] = function(a, b) |
89 | 135 | Tomate-202285 | local _, a, b |
90 | 107 | Tomate-202285 | if self.isAchList[GetAchievementCategory(a)] or self.isGuildList[GetAchievementCategory(a)] then |
91 | 133 | Tomate-202285 | _,_,a = GetAchievementInfo(a) |
92 | 11 | Syzgyn-40270 | else |
93 | Syzgyn-40270 | a = GetStatistic(a) |
|
94 | Syzgyn-40270 | end |
|
95 | 107 | Tomate-202285 | if self.isAchList[GetAchievementCategory(b)] or self.isGuildList[GetAchievementCategory(b)] then |
96 | 133 | Tomate-202285 | _,_,b = GetAchievementInfo(b) |
97 | 11 | Syzgyn-40270 | else |
98 | Syzgyn-40270 | b = GetStatistic(b) |
|
99 | Syzgyn-40270 | end |
|
100 | 59 | Syzgyn-40270 | return a < b |
101 | 2 | Syzgyn-40270 | end, |
102 | 109 | Tomate-202285 | |
103 | 2 | Syzgyn-40270 | ["points a"] = function(a, b) |
104 | 135 | Tomate-202285 | local _, a, b |
105 | 107 | Tomate-202285 | if self.isAchList[GetAchievementCategory(a)] or self.isGuildList[GetAchievementCategory(a)] then |
106 | 133 | Tomate-202285 | _,_,a = GetAchievementInfo(a) |
107 | 11 | Syzgyn-40270 | else |
108 | Syzgyn-40270 | a = GetStatistic(a) |
|
109 | Syzgyn-40270 | end |
|
110 | 107 | Tomate-202285 | if self.isAchList[GetAchievementCategory(b)] or self.isGuildList[GetAchievementCategory(b)] then |
111 | 133 | Tomate-202285 | _,_,b = GetAchievementInfo(b) |
112 | 11 | Syzgyn-40270 | else |
113 | Syzgyn-40270 | b = GetStatistic(b) |
|
114 | Syzgyn-40270 | end |
|
115 | 59 | Syzgyn-40270 | return a > b |
116 | 2 | Syzgyn-40270 | end, |
117 | 109 | Tomate-202285 | |
118 | 2 | Syzgyn-40270 | ["completed d"] = function(a, b) |
119 | Syzgyn-40270 | local _,_,_,_,a1,a2,a3 = GetAchievementInfo(a) |
|
120 | 14 | Syzgyn-40270 | a1, a2, a3 = a1 or 0, a2 or 0, a3 or 0 |
121 | 2 | Syzgyn-40270 | local _,_,_,_,b1,b2,b3 = GetAchievementInfo(b) |
122 | 14 | Syzgyn-40270 | b1, b2, b3 = b1 or 0, b2 or 0, b3 or 0 |
123 | Syzgyn-40270 | if a3 ~= b3 then return a3 < b3 end --Years first |
|
124 | Syzgyn-40270 | if a1 ~= b1 then return a1 < b1 end --Then Months |
|
125 | Syzgyn-40270 | if a2 ~= b2 then return a2 < b2 end --Finally Days |
|
126 | Syzgyn-40270 | return false --They're exactly the same, return false |
|
127 | 2 | Syzgyn-40270 | end, |
128 | 109 | Tomate-202285 | |
129 | 2 | Syzgyn-40270 | ["completed a"] = function(a, b) |
130 | Syzgyn-40270 | local _,_,_,_,a1,a2,a3 = GetAchievementInfo(a) |
|
131 | 14 | Syzgyn-40270 | a1, a2, a3 = a1 or 0, a2 or 0, a3 or 0 |
132 | 2 | Syzgyn-40270 | local _,_,_,_,b1,b2,b3 = GetAchievementInfo(b) |
133 | 14 | Syzgyn-40270 | b1, b2, b3 = b1 or 0, b2 or 0, b3 or 0 |
134 | Syzgyn-40270 | if a3 ~= b3 then return a3 > b3 end --Years first |
|
135 | Syzgyn-40270 | if a1 ~= b1 then return a1 > b1 end --Then Months |
|
136 | Syzgyn-40270 | if a2 ~= b2 then return a2 > b2 end --Finally Days |
|
137 | Syzgyn-40270 | return false --They're exactly the same, return false |
|
138 | 2 | Syzgyn-40270 | end, |
139 | 109 | Tomate-202285 | |
140 | 2 | Syzgyn-40270 | ["compare d"] = function(a, b) |
141 | Syzgyn-40270 | if not self.isComparing then return false end |
|
142 | 14 | Syzgyn-40270 | --They're both achievements, go by date |
143 | 107 | Tomate-202285 | if (self.isAchList[GetAchievementCategory(a)] and self.isAchList[GetAchievementCategory(b)]) or (self.isGuildList[GetAchievementCategory(a)] and self.isGuildList[GetAchievementCategory(b)]) then |
144 | 14 | Syzgyn-40270 | local _,a1,a2,a3 = GetAchievementComparisonInfo(a,1) |
145 | Syzgyn-40270 | a1, a2, a3 = a1 or 0, a2 or 0, a3 or 0 |
|
146 | Syzgyn-40270 | local _,b1,b2,b3 = GetAchievementComparisonInfo(b,1) |
|
147 | Syzgyn-40270 | b1, b2, b3 = b1 or 0, b2 or 0, b3 or 0 |
|
148 | Syzgyn-40270 | if a3 ~= b3 then return a3 < b3 end --Years first |
|
149 | Syzgyn-40270 | if a1 ~= b1 then return a1 < b1 end --Then Months |
|
150 | Syzgyn-40270 | if a2 ~= b2 then return a2 < b2 end --Finally Days |
|
151 | Syzgyn-40270 | return false --They're exactly the same, return false |
|
152 | 11 | Syzgyn-40270 | else |
153 | 107 | Tomate-202285 | if self.isAchList[GetAchievementCategory(a)] or self.isGuildList[GetAchievementCategory(a)] then |
154 | 38 | Syzgyn-40270 | local _,a1, a2, a3 = GetAchievementComparisonInfo(a,1) |
155 | Syzgyn-40270 | a = (a1 or "") .. "/" .. (a2 or "") .. "/" .. (a3 or "") |
|
156 | Syzgyn-40270 | else |
|
157 | Syzgyn-40270 | a = GetStatistic(a) |
|
158 | Syzgyn-40270 | end |
|
159 | 109 | Tomate-202285 | |
160 | 107 | Tomate-202285 | if self.isAchList[GetAchievementCategory(b)] or self.isGuildList[GetAchievementCategory(b)] then |
161 | 38 | Syzgyn-40270 | local _,b1, b2, b3 = GetAchievementComparisonInfo(b,1) |
162 | Syzgyn-40270 | b = (b1 or "") .. "/" .. (b2 or "") .. "/" .. (b3 or "") |
|
163 | Syzgyn-40270 | else |
|
164 | Syzgyn-40270 | b = GetStatistic(b) |
|
165 | Syzgyn-40270 | end |
|
166 | 109 | Tomate-202285 | |
167 | 38 | Syzgyn-40270 | return a < b |
168 | 11 | Syzgyn-40270 | end |
169 | 2 | Syzgyn-40270 | end, |
170 | 109 | Tomate-202285 | |
171 | 2 | Syzgyn-40270 | ["compare a"] = function(a, b) |
172 | Syzgyn-40270 | if not self.isComparing then return false end |
|
173 | 109 | Tomate-202285 | |
174 | 107 | Tomate-202285 | if (self.isAchList[GetAchievementCategory(a)] and self.isAchList[GetAchievementCategory(b)]) or (self.isGuildList[GetAchievementCategory(a)] and self.isGuildList[GetAchievementCategory(b)]) then |
175 | 14 | Syzgyn-40270 | local _,a1,a2,a3 = GetAchievementComparisonInfo(a,1) |
176 | Syzgyn-40270 | a1, a2, a3 = a1 or 0, a2 or 0, a3 or 0 |
|
177 | Syzgyn-40270 | local _,b1,b2,b3 = GetAchievementComparisonInfo(b,1) |
|
178 | Syzgyn-40270 | b1, b2, b3 = b1 or 0, b2 or 0, b3 or 0 |
|
179 | Syzgyn-40270 | if a3 ~= b3 then return a3 > b3 end --Years first |
|
180 | Syzgyn-40270 | if a1 ~= b1 then return a1 > b1 end --Then Months |
|
181 | Syzgyn-40270 | if a2 ~= b2 then return a2 > b2 end --Finally Days |
|
182 | Syzgyn-40270 | return false --They're exactly the same, return false |
|
183 | Syzgyn-40270 | end |
|
184 | 109 | Tomate-202285 | |
185 | 107 | Tomate-202285 | if self.isAchList[GetAchievementCategory(a)] or self.isGuildList[GetAchievementCategory(a)] then |
186 | 11 | Syzgyn-40270 | local _,a1, a2, a3 = GetAchievementComparisonInfo(a,1) |
187 | Syzgyn-40270 | a = (a1 or "") .. "/" .. (a2 or "") .. "/" .. (a3 or "") |
|
188 | Syzgyn-40270 | else |
|
189 | Syzgyn-40270 | a = GetStatistic(a) |
|
190 | Syzgyn-40270 | end |
|
191 | 109 | Tomate-202285 | |
192 | 107 | Tomate-202285 | if self.isAchList[GetAchievementCategory(b)] or self.isGuildList[GetAchievementCategory(b)] then |
193 | 11 | Syzgyn-40270 | local _,b1, b2, b3 = GetAchievementComparisonInfo(b,1) |
194 | Syzgyn-40270 | b = (b1 or "") .. "/" .. (b2 or "") .. "/" .. (b3 or "") |
|
195 | Syzgyn-40270 | else |
|
196 | Syzgyn-40270 | b = GetStatistic(b) |
|
197 | Syzgyn-40270 | end |
|
198 | 109 | Tomate-202285 | |
199 | 2 | Syzgyn-40270 | return a > b |
200 | Syzgyn-40270 | end |
|
201 | Syzgyn-40270 | } |
|
202 | Syzgyn-40270 | ||
203 | 58 | Syzgyn-40270 | self.timers = {} |
204 | Syzgyn-40270 | ||
205 | 38 | Syzgyn-40270 | SLASH_URBANACHIEVER1 = "/urbanachiever" |
206 | Syzgyn-40270 | SLASH_URBANACHIEVER2 = "/ua" |
|
207 | Syzgyn-40270 | SlashCmdList["URBANACHIEVER"] = function(msg) |
|
208 | 71 | Syzgyn-40270 | if msg == "show" then |
209 | 47 | Syzgyn-40270 | self:ToggleFrame() |
210 | 38 | Syzgyn-40270 | else |
211 | 47 | Syzgyn-40270 | InterfaceOptionsFrame_OpenToCategory("Urban Achiever") |
212 | 38 | Syzgyn-40270 | end |
213 | Syzgyn-40270 | end |
|
214 | Syzgyn-40270 | ||
215 | 56 | Syzgyn-40270 | --Saved Variable |
216 | 38 | Syzgyn-40270 | UASVPC = { |
217 | Syzgyn-40270 | ["tracker"] = { |
|
218 | 43 | Syzgyn-40270 | ["x"] = UIParent:GetWidth()/2, |
219 | Syzgyn-40270 | ["y"] = UIParent:GetHeight()/2, |
|
220 | 53 | Syzgyn-40270 | ["scale"] = 1, |
221 | 56 | Syzgyn-40270 | ["list"] = { |
222 | Syzgyn-40270 | [1] = 0, |
|
223 | Syzgyn-40270 | [2] = 0, |
|
224 | Syzgyn-40270 | [3] = 0, |
|
225 | Syzgyn-40270 | [4] = 0, |
|
226 | 62 | Syzgyn-40270 | [5] = 0, |
227 | 56 | Syzgyn-40270 | }, |
228 | 50 | Syzgyn-40270 | }, |
229 | Syzgyn-40270 | ["statCriteria"] = true, |
|
230 | 51 | Syzgyn-40270 | ["moneyAsColor"] = false, |
231 | 58 | Syzgyn-40270 | ["trackTimed"] = true, |
232 | 38 | Syzgyn-40270 | } |
233 | 2 | Syzgyn-40270 | ------------------------------------------------------------- |
234 | 109 | Tomate-202285 | --Local functions |
235 | 73 | Syzgyn-40270 | ------------------------------------------------------------- |
236 | Syzgyn-40270 | local function debug(...) |
|
237 | Syzgyn-40270 | if DBG then print(...) end |
|
238 | Syzgyn-40270 | return |
|
239 | Syzgyn-40270 | end |
|
240 | Syzgyn-40270 | ||
241 | Syzgyn-40270 | local GANC = GetAchievementNumCriteria |
|
242 | Syzgyn-40270 | local function GetAchievementNumCriteria(...) |
|
243 | Syzgyn-40270 | return GANC(...) or 0 |
|
244 | Syzgyn-40270 | end |
|
245 | Syzgyn-40270 | ------------------------------------------------------------- |
|
246 | 109 | Tomate-202285 | --Startup Stuff |
247 | 2 | Syzgyn-40270 | ------------------------------------------------------------- |
248 | 73 | Syzgyn-40270 | function self:Initialize(event, name) |
249 | Syzgyn-40270 | self:UnregisterEvent("ADDON_LOADED") |
|
250 | Syzgyn-40270 | debug("Initializing") |
|
251 | 2 | Syzgyn-40270 | self:PopulateMasterList() |
252 | 109 | Tomate-202285 | |
253 | 2 | Syzgyn-40270 | self:PopulateCategories("achievements") |
254 | Syzgyn-40270 | self:PopulateCategories("statistics") |
|
255 | 107 | Tomate-202285 | self:PopulateCategories("guild") |
256 | 109 | Tomate-202285 | |
257 | 2 | Syzgyn-40270 | --self:PopulateAchievements("achievements") |
258 | Syzgyn-40270 | --self:PopulateAchievements("statistics") |
|
259 | 109 | Tomate-202285 | |
260 | 2 | Syzgyn-40270 | self:SetupFrames() |
261 | 109 | Tomate-202285 | |
262 | 43 | Syzgyn-40270 | UrbanAchiever:CreateOptions() |
263 | 120 | Tomate-202285 | self:PopulateAchieveList() |
264 | Tomate-202285 | end |
|
265 | 109 | Tomate-202285 | |
266 | 162 | Tomate-202285 | UrbanAchiever.hiddenAchievemen = {} |
267 | Tomate-202285 | ||
268 | Tomate-202285 | function self:PrintHidden() |
|
269 | Tomate-202285 | for k,v in pairs(UrbanAchiever.hiddenAchievemen) do |
|
270 | Tomate-202285 | print('["'..k..'"] = 3, --'.. v) |
|
271 | Tomate-202285 | end |
|
272 | Tomate-202285 | end |
|
273 | Tomate-202285 | ||
274 | Tomate-202285 | function self:checkHidden(id) |
|
275 | Tomate-202285 | return true |
|
276 | Tomate-202285 | --[[local _, name, _, _, _, _, _, description = GetAchievementInfo(id) |
|
277 | Tomate-202285 | for k,v in pairs(hiddenAchievements) do |
|
278 | Tomate-202285 | local hidden = string.find(name, v) |
|
279 | Tomate-202285 | if hidden ~= nil then |
|
280 | Tomate-202285 | table.insert(UrbanAchiever.hiddenAchievemen, id, name) |
|
281 | Tomate-202285 | return false |
|
282 | Tomate-202285 | end |
|
283 | Tomate-202285 | hidden = string.find(description, v) |
|
284 | Tomate-202285 | if hidden ~= nil then |
|
285 | Tomate-202285 | table.insert(UrbanAchiever.hiddenAchievemen, id, name) |
|
286 | Tomate-202285 | return false |
|
287 | Tomate-202285 | end |
|
288 | Tomate-202285 | end |
|
289 | Tomate-202285 | return true]] |
|
290 | Tomate-202285 | end |
|
291 | Tomate-202285 | ||
292 | 120 | Tomate-202285 | function self:PopulateAchieveList() |
293 | Tomate-202285 | for id = 1, MAX_ACHIEVEMENTS do |
|
294 | 135 | Tomate-202285 | local category = GetAchievementCategory(id) |
295 | 120 | Tomate-202285 | if category and category ~= nil then |
296 | 135 | Tomate-202285 | local _, _, _, completed = GetAchievementInfo(id) |
297 | 162 | Tomate-202285 | if not (UrbanAchiever.factionAchs[tostring(id)] and UrbanAchiever.factionAchs[tostring(id)] ~= playerFaction) and self:checkHidden(id) then |
298 | 121 | Tomate-202285 | if(type(self.achieveList[category]) == "table") then |
299 | Tomate-202285 | table.insert(self.achieveList[category], id, completed) |
|
300 | Tomate-202285 | else |
|
301 | Tomate-202285 | self.achieveList[category] = {[id] = completed} |
|
302 | Tomate-202285 | end |
|
303 | 120 | Tomate-202285 | end |
304 | Tomate-202285 | end |
|
305 | Tomate-202285 | end |
|
306 | 2 | Syzgyn-40270 | end |
307 | Syzgyn-40270 | ||
308 | Syzgyn-40270 | function self:OnEnable() |
|
309 | Syzgyn-40270 | self:RegisterEvent("ADDON_LOADED", "Initialize") |
|
310 | 83 | Tomate-202285 | self:RegisterEvent("ACHIEVEMENT_EARNED", function(self1,arg1) |
311 | 20 | Syzgyn-40270 | self:SetDisplayAchievement() |
312 | 135 | Tomate-202285 | local searchString = self:GetSearchString(arg1) |
313 | 83 | Tomate-202285 | self.masterList[arg1] = { |
314 | Tomate-202285 | ["searchString"] = searchString:lower(), |
|
315 | Tomate-202285 | } |
|
316 | 72 | Syzgyn-40270 | RemoveTrackedAchievement(arg1) |
317 | 20 | Syzgyn-40270 | end) |
318 | 21 | Syzgyn-40270 | self:RegisterEvent("CRITERIA_UPDATE", function() |
319 | Syzgyn-40270 | self:RefreshCriteriaButtons() |
|
320 | Syzgyn-40270 | end) |
|
321 | 109 | Tomate-202285 | |
322 | 7 | Syzgyn-40270 | self:RegisterEvent("INSPECT_ACHIEVEMENT_READY", function() |
323 | 40 | Syzgyn-40270 | if self.isComparing then |
324 | Syzgyn-40270 | self:ComparisonUpdate() |
|
325 | 58 | Syzgyn-40270 | self:RefreshAchievementButtons(false) |
326 | 40 | Syzgyn-40270 | self.frame:Show() |
327 | Syzgyn-40270 | end |
|
328 | 7 | Syzgyn-40270 | end) |
329 | 109 | Tomate-202285 | |
330 | 58 | Syzgyn-40270 | --I loooooove that this event gets called for any achievement, not just when you're tracking it. |
331 | 147 | Tomate-202285 | --I loooove it too because it's wireldy return 0 at idAchievement for 5.4 cooking daily... |
332 | 58 | Syzgyn-40270 | self:RegisterEvent("TRACKED_ACHIEVEMENT_UPDATE", function(event, ...) |
333 | 147 | Tomate-202285 | local idAchievement, criteriaID, elapsed, duration = ... |
334 | Tomate-202285 | if idAchievement == 0 or idAchievement == "0" or not elapsed or not duration or not UASVPC.trackTimed then return end |
|
335 | Tomate-202285 | ||
336 | 69 | Syzgyn-40270 | if elapsed < duration then |
337 | 147 | Tomate-202285 | AddTrackedAchievement(idAchievement) |
338 | Tomate-202285 | elseif IsTrackedAchievement(idAchievement) and elapsed >= duration then |
|
339 | Tomate-202285 | RemoveTrackedAchievement(idAchievement) |
|
340 | 58 | Syzgyn-40270 | end |
341 | Syzgyn-40270 | end) |
|
342 | 109 | Tomate-202285 | |
343 | 16 | Syzgyn-40270 | --Use a different button so InspectAchievements() doesnt get called. Easier hooking. |
344 | Syzgyn-40270 | UnitPopupButtons["UA_ACHIEVEMENTS"] = { text = COMPARE_ACHIEVEMENTS, dist = 1 }; |
|
345 | 135 | Tomate-202285 | --Replace their Achievement Button with mine. |
346 | 16 | Syzgyn-40270 | for j = 1, #menuTypes do |
347 | Syzgyn-40270 | local t = menuTypes[j] |
|
348 | Syzgyn-40270 | for i = 1, #UnitPopupMenus[t] do |
|
349 | Syzgyn-40270 | if UnitPopupMenus[t][i] == "ACHIEVEMENTS" then |
|
350 | Syzgyn-40270 | UnitPopupMenus[t][i] = "UA_ACHIEVEMENTS" |
|
351 | Syzgyn-40270 | break |
|
352 | Syzgyn-40270 | end |
|
353 | Syzgyn-40270 | end |
|
354 | Syzgyn-40270 | end |
|
355 | 109 | Tomate-202285 | |
356 | 33 | Syzgyn-40270 | SlashCmdList["ACHIEVEMENTUI"] = function(msg) |
357 | Syzgyn-40270 | self:ToggleFrame() |
|
358 | Syzgyn-40270 | end |
|
359 | 109 | Tomate-202285 | |
360 | 48 | Syzgyn-40270 | self:HookAlertFrames() |
361 | Syzgyn-40270 | self:HookMicroMenu() |
|
362 | 69 | Syzgyn-40270 | self:HookWatchFrame() |
363 | 109 | Tomate-202285 | |
364 | 16 | Syzgyn-40270 | self:SecureHook("UnitPopup_ShowMenu") |
365 | 2 | Syzgyn-40270 | end |
366 | Syzgyn-40270 | ||
367 | Syzgyn-40270 | function self:OnDisable() |
|
368 | 133 | Tomate-202285 | self:UnregisterEvent("ADDON_LOADED") |
369 | 2 | Syzgyn-40270 | self:UnregisterEvent("ACHIEVEMENT_EARNED") |
370 | Syzgyn-40270 | self:UnregisterEvent("CRITERIA_UPDATE") |
|
371 | 109 | Tomate-202285 | |
372 | 16 | Syzgyn-40270 | --Go back to the original button. |
373 | Syzgyn-40270 | for j = 1, #menuTypes do |
|
374 | Syzgyn-40270 | local t = menuTypes[j] |
|
375 | Syzgyn-40270 | for i = 1, #UnitPopupMenus[t] do |
|
376 | Syzgyn-40270 | if UnitPopupMenus[t][i] == "UA_ACHIEVEMENTS" then |
|
377 | Syzgyn-40270 | UnitPopupMenus[t][i] = "ACHIEVEMENTS" |
|
378 | Syzgyn-40270 | break |
|
379 | Syzgyn-40270 | end |
|
380 | Syzgyn-40270 | end |
|
381 | Syzgyn-40270 | end |
|
382 | 2 | Syzgyn-40270 | end |
383 | Syzgyn-40270 | ------------------------------------------------------------- |
|
384 | 16 | Syzgyn-40270 | --Hooking Stuff |
385 | Syzgyn-40270 | ------------------------------------------------------------- |
|
386 | Syzgyn-40270 | function self:UnitPopup_ShowMenu(dropdownMenu, which, unit, name, userData, ...) |
|
387 | Syzgyn-40270 | for i=1, UIDROPDOWNMENU_MAXBUTTONS do |
|
388 | 135 | Tomate-202285 | local button = _G["DropDownList"..UIDROPDOWNMENU_MENU_LEVEL.."Button"..i]; |
389 | 16 | Syzgyn-40270 | if button.value == "UA_ACHIEVEMENTS" then |
390 | 133 | Tomate-202285 | button.func = function() |
391 | 16 | Syzgyn-40270 | self:SetComparisonUnit(unit) |
392 | Syzgyn-40270 | end |
|
393 | Syzgyn-40270 | end |
|
394 | Syzgyn-40270 | end |
|
395 | 109 | Tomate-202285 | end |
396 | 19 | Syzgyn-40270 | |
397 | Syzgyn-40270 | function self:HookAlertFrames() |
|
398 | Syzgyn-40270 | if not AchievementFrame then |
|
399 | Syzgyn-40270 | AchievementFrame_LoadUI() |
|
400 | Syzgyn-40270 | end |
|
401 | 109 | Tomate-202285 | |
402 | 69 | Syzgyn-40270 | CreateFrame("Button", "AchievementAlertFrame1", UIParent, "AchievementAlertFrameTemplate") |
403 | 19 | Syzgyn-40270 | AchievementAlertFrame1:SetPoint("BOTTOM", UIParent, "BOTTOM", 0, 128) |
404 | 69 | Syzgyn-40270 | CreateFrame("Button", "AchievementAlertFrame2", UIParent, "AchievementAlertFrameTemplate") |
405 | 19 | Syzgyn-40270 | AchievementAlertFrame2:SetPoint("BOTTOM", AchievementAlertFrame1, "TOP", 0, -10) |
406 | 109 | Tomate-202285 | |
407 | 69 | Syzgyn-40270 | AchievementAlertFrame1:SetScript("OnClick", function(button) |
408 | 72 | Syzgyn-40270 | local id = button.id |
409 | 19 | Syzgyn-40270 | self.frame:Show() |
410 | 72 | Syzgyn-40270 | self:SetDisplayAchievement(id, true) |
411 | 19 | Syzgyn-40270 | self:SetCategory(id) |
412 | Syzgyn-40270 | end) |
|
413 | 109 | Tomate-202285 | |
414 | 69 | Syzgyn-40270 | AchievementAlertFrame2:SetScript("OnClick", function(button) |
415 | 72 | Syzgyn-40270 | local id = button.id |
416 | 19 | Syzgyn-40270 | self.frame:Show() |
417 | 72 | Syzgyn-40270 | self:SetDisplayAchievement(id, true) |
418 | 19 | Syzgyn-40270 | self:SetCategory(id) |
419 | Syzgyn-40270 | end) |
|
420 | Syzgyn-40270 | end |
|
421 | 48 | Syzgyn-40270 | |
422 | Syzgyn-40270 | function self:HookMicroMenu() |
|
423 | Syzgyn-40270 | AchievementMicroButton:SetScript("OnClick", function() |
|
424 | Syzgyn-40270 | self:ToggleFrame() |
|
425 | Syzgyn-40270 | end) |
|
426 | 109 | Tomate-202285 | |
427 | 48 | Syzgyn-40270 | AchievementMicroButton:SetScript("OnEnter", function(frame) |
428 | Syzgyn-40270 | frame.tooltipText = MicroButtonTooltipText(ACHIEVEMENT_BUTTON, "URBANACHIEVER_TOGGLE") |
|
429 | Syzgyn-40270 | GameTooltip_AddNewbieTip(frame, frame.tooltipText, 1.0, 1.0, 1.0, NEWBIE_TOOLTIP_ACHIEVEMENT); |
|
430 | Syzgyn-40270 | end) |
|
431 | Syzgyn-40270 | end |
|
432 | 69 | Syzgyn-40270 | |
433 | Syzgyn-40270 | function self:HookWatchFrame() |
|
434 | Syzgyn-40270 | local oldWatchFrameLinkButtonTemplate_OnLeftClick = WatchFrameLinkButtonTemplate_OnLeftClick |
|
435 | Syzgyn-40270 | ||
436 | Syzgyn-40270 | WatchFrameLinkButtonTemplate_OnLeftClick = function(this) |
|
437 | Syzgyn-40270 | CloseDropDownMenus() |
|
438 | Syzgyn-40270 | if ( this.type == "QUEST" ) then |
|
439 | 119 | Tomate-202285 | if IsModifiedClick("SELFCAST") then |
440 | 73 | Syzgyn-40270 | RemoveQuestWatch(GetQuestIndexForWatch(this.index)) |
441 | 69 | Syzgyn-40270 | WatchFrame_Update() |
442 | Syzgyn-40270 | else |
|
443 | 79 | Tomate-202285 | QuestLog_SetSelection(GetQuestIndexForWatch(this.index)) |
444 | 69 | Syzgyn-40270 | end |
445 | Syzgyn-40270 | elseif ( this.type == "ACHIEVEMENT" ) then |
|
446 | 119 | Tomate-202285 | if IsModifiedClick("SELFCAST") then |
447 | 69 | Syzgyn-40270 | RemoveTrackedAchievement(this.index) |
448 | Syzgyn-40270 | else |
|
449 | Syzgyn-40270 | if not self.frame:IsShown() then |
|
450 | Syzgyn-40270 | self.frame:Show() |
|
451 | Syzgyn-40270 | end |
|
452 | Syzgyn-40270 | self:SetDisplayAchievement(this.index, true) |
|
453 | Syzgyn-40270 | end |
|
454 | Syzgyn-40270 | end |
|
455 | Syzgyn-40270 | end |
|
456 | Syzgyn-40270 | end |
|
457 | 16 | Syzgyn-40270 | ------------------------------------------------------------- |
458 | 109 | Tomate-202285 | --Utilities |
459 | 2 | Syzgyn-40270 | ------------------------------------------------------------- |
460 | Syzgyn-40270 | function self:InsertIntoChat(id) |
|
461 | Syzgyn-40270 | --Taken from Historian, thanks Ixchael! |
|
462 | 120 | Tomate-202285 | if (GetCurrentKeyBoardFocus() == nil) then |
463 | 109 | Tomate-202285 | return; |
464 | 2 | Syzgyn-40270 | end; |
465 | 109 | Tomate-202285 | |
466 | 120 | Tomate-202285 | if not GetCurrentKeyBoardFocus():IsVisible() then |
467 | Tomate-202285 | GetCurrentKeyBoardFocus():Show(); |
|
468 | 2 | Syzgyn-40270 | end; |
469 | 109 | Tomate-202285 | |
470 | 120 | Tomate-202285 | GetCurrentKeyBoardFocus():Insert(GetAchievementLink(id)); |
471 | 2 | Syzgyn-40270 | end |
472 | Syzgyn-40270 | ||
473 | Syzgyn-40270 | function self:SortDisplayTable(sortStr) |
|
474 | Syzgyn-40270 | local dir = "d" |
|
475 | Syzgyn-40270 | if self.currentSort == sortStr .. " d" then |
|
476 | Syzgyn-40270 | dir = "a" |
|
477 | Syzgyn-40270 | end |
|
478 | Syzgyn-40270 | sortStr = sortStr .. " " .. dir |
|
479 | Syzgyn-40270 | self:RefreshAchievementButtons(sortStr) |
|
480 | Syzgyn-40270 | self.currentSort = sortStr |
|
481 | Syzgyn-40270 | end |
|
482 | Syzgyn-40270 | ||
483 | Syzgyn-40270 | function preserveSort(t, f) --table.sort sucks! |
|
484 | Syzgyn-40270 | local temp |
|
485 | Syzgyn-40270 | for a = 1, #t, 1 do |
|
486 | Syzgyn-40270 | for b = #t, a + 1, -1 do |
|
487 | Syzgyn-40270 | if f(t[b-1], t[b]) then |
|
488 | Syzgyn-40270 | temp = t[b-1] |
|
489 | Syzgyn-40270 | t[b-1] = t[b] |
|
490 | Syzgyn-40270 | t[b] = temp |
|
491 | Syzgyn-40270 | end |
|
492 | Syzgyn-40270 | end |
|
493 | Syzgyn-40270 | end |
|
494 | Syzgyn-40270 | end |
|
495 | Syzgyn-40270 | ||
496 | Syzgyn-40270 | function self:Search(searchStr) |
|
497 | Syzgyn-40270 | if searchStr == "" then return end --no point in returning everything |
|
498 | Syzgyn-40270 | searchStr = searchStr:lower() |
|
499 | Syzgyn-40270 | local searchTable = {strsplit(" ", searchStr)} |
|
500 | Syzgyn-40270 | local result = true |
|
501 | Syzgyn-40270 | self.displayTable = {} |
|
502 | 156 | Tomate-202285 | |
503 | Tomate-202285 | if type(searchStr) == "number" and self.masterList[searchStr] ~= nil then |
|
504 | Tomate-202285 | tinsert(self.displayTable, searchStr) |
|
505 | Tomate-202285 | else |
|
506 | Tomate-202285 | for a = 1, MAX_ACHIEVEMENTS do |
|
507 | Tomate-202285 | if self.masterList[a] then |
|
508 | Tomate-202285 | result = true |
|
509 | Tomate-202285 | for _, v in next, searchTable do |
|
510 | Tomate-202285 | if not self.masterList[a].searchString:find(v) then result = false break end |
|
511 | Tomate-202285 | end |
|
512 | Tomate-202285 | if result then |
|
513 | Tomate-202285 | tinsert(self.displayTable, a) |
|
514 | Tomate-202285 | end |
|
515 | 2 | Syzgyn-40270 | end |
516 | Syzgyn-40270 | end |
|
517 | Syzgyn-40270 | end |
|
518 | 156 | Tomate-202285 | |
519 | 2 | Syzgyn-40270 | self.currentCat = -2 |
520 | Syzgyn-40270 | self:RefreshAchievementButtons("name a") |
|
521 | Syzgyn-40270 | end |
|
522 | Syzgyn-40270 | ||
523 | Syzgyn-40270 | function self:GetSearchString(id) |
|
524 | Syzgyn-40270 | if not type(id) == "number" then return end |
|
525 | 82 | Tomate-202285 | local retok, id, name, points, completed, month, day, year, description, _,_, reward = pcall (GetAchievementInfo,id) |
526 | 133 | Tomate-202285 | if not retok or not id then return nil end |
527 | 2 | Syzgyn-40270 | if not id then return nil end |
528 | 81 | Tomate-202285 | if completed then |
529 | Tomate-202285 | if year < 10 then |
|
530 | 109 | Tomate-202285 | year = "0" .. year; |
531 | 81 | Tomate-202285 | end |
532 | 104 | Tomate-202285 | if (GetLocale() == "frFR" or GetLocale() == "ruRU") then |
533 | 81 | Tomate-202285 | completed = day .. "/" .. month .. "/" .. year; |
534 | Tomate-202285 | else |
|
535 | 106 | Tomate-202285 | if (GetLocale() == "deDE") then |
536 | Tomate-202285 | completed = day .. "." .. month .. "." .. year; |
|
537 | Tomate-202285 | else |
|
538 | Tomate-202285 | completed = month .. "/" .. day .. "/" .. year; |
|
539 | Tomate-202285 | end |
|
540 | 81 | Tomate-202285 | end |
541 | Tomate-202285 | else |
|
542 | Tomate-202285 | completed = ""; |
|
543 | Tomate-202285 | end |
|
544 | 2 | Syzgyn-40270 | --searchString will be used as a basis of the searching, instead of looping through all the sub-arrays |
545 | 135 | Tomate-202285 | local searchStr = name .. "; " .. points .. "; " .. completed .. "; " .. description .. "; " .. reward .. "; " |
546 | 2 | Syzgyn-40270 | |
547 | Syzgyn-40270 | --Add the criteria info |
|
548 | Syzgyn-40270 | for a=1, GetAchievementNumCriteria(id) do |
|
549 | 135 | Tomate-202285 | local _, criteriaName = pcall(GetAchievementCriteriaInfo, id, a) |
550 | 130 | Tomate-202285 | searchStr = searchStr .. (criteriaName or "") .. "; " |
551 | 2 | Syzgyn-40270 | end |
552 | Syzgyn-40270 | --Add all the info to the master list |
|
553 | Syzgyn-40270 | return searchStr:lower() |
|
554 | Syzgyn-40270 | end |
|
555 | Syzgyn-40270 | ||
556 | 82 | Tomate-202285 | function UrbanAchiever_CatButtonScroll(self1, arg1) |
557 | 2 | Syzgyn-40270 | --arg1 = 1 for up, -1 for down |
558 | 82 | Tomate-202285 | if IsShiftKeyDown() then arg1 = arg1 * 5 end --Shift = longer scroll |
559 | Tomate-202285 | local sMin, sMax = self.frame.catScroll:GetMinMaxValues() |
|
560 | Tomate-202285 | self.catOffset = math.min(sMax, math.max(sMin, self.catOffset+ (arg1 * -1))) |
|
561 | Tomate-202285 | self.frame.catScroll:SetValue(self.catOffset) |
|
562 | 2 | Syzgyn-40270 | end |
563 | Syzgyn-40270 | ||
564 | 82 | Tomate-202285 | function UrbanAchiever_AchButtonScroll(self1, arg1) |
565 | Tomate-202285 | --arg1 = 1 for up, -1 for down |
|
566 | Tomate-202285 | if IsShiftKeyDown() then arg1 = arg1 * 5 end --Shift = longer scroll |
|
567 | Tomate-202285 | local sMin, sMax = self.frame.achScroll:GetMinMaxValues() |
|
568 | Tomate-202285 | self.achOffset = math.min(sMax, math.max(sMin, self.achOffset+ (arg1 * -1))) |
|
569 | Tomate-202285 | self.frame.achScroll:SetValue(self.achOffset) |
|
570 | Tomate-202285 | end |
|
571 | Tomate-202285 | ||
572 | Tomate-202285 | function UrbanAchiever_CriteriaButtonScroll(self1, arg1) |
|
573 | Tomate-202285 | --arg1 = 1 for up, -1 for down |
|
574 | Tomate-202285 | if IsShiftKeyDown() then arg1 = arg1 * 5 end --Shift = longer scroll |
|
575 | Tomate-202285 | local sMin, sMax = self.frame.criteriaScroll:GetMinMaxValues() |
|
576 | Tomate-202285 | self.criteriaOffset = math.min(sMax, math.max(sMin, self.criteriaOffset+ (arg1 * -1))) |
|
577 | Tomate-202285 | self.frame.criteriaScroll:SetValue(self.criteriaOffset) |
|
578 | 133 | Tomate-202285 | end |
579 | 82 | Tomate-202285 | |
580 | 2 | Syzgyn-40270 | function self:ToggleFrame() |
581 | 79 | Tomate-202285 | if self.frame == nil then self:Initialize("","") end |
582 | Tomate-202285 | if self.frame == nil then return end |
|
583 | 2 | Syzgyn-40270 | if self.frame:IsShown() then |
584 | Syzgyn-40270 | self.frame:Hide() |
|
585 | Syzgyn-40270 | else |
|
586 | Syzgyn-40270 | self.frame:Show() |
|
587 | Syzgyn-40270 | end |
|
588 | Syzgyn-40270 | end |
|
589 | 8 | Syzgyn-40270 | |
590 | Syzgyn-40270 | function self:SetCategory(id) |
|
591 | Syzgyn-40270 | if id == nil then id = self.currentAch end |
|
592 | Syzgyn-40270 | if not self.masterList[id] then return end |
|
593 | 109 | Tomate-202285 | |
594 | 38 | Syzgyn-40270 | local category = GetAchievementCategory(id) |
595 | Syzgyn-40270 | if self.isAchList[category] then |
|
596 | 9 | Syzgyn-40270 | self.currentTab = "achievements" |
597 | Syzgyn-40270 | else |
|
598 | 107 | Tomate-202285 | if self.isGuildList[category] then |
599 | Tomate-202285 | self.currentTab = "guild" |
|
600 | Tomate-202285 | else |
|
601 | Tomate-202285 | self.currentTab = "statistics" |
|
602 | Tomate-202285 | end |
|
603 | 9 | Syzgyn-40270 | end |
604 | 109 | Tomate-202285 | |
605 | 8 | Syzgyn-40270 | self.currentCat = category |
606 | Syzgyn-40270 | local _, catParent = GetCategoryInfo(category) |
|
607 | 9 | Syzgyn-40270 | if catParent ~= -1 then --It's a child category, expand the parent |
608 | Syzgyn-40270 | for k, v in next, self.categories[self.currentTab] do |
|
609 | Syzgyn-40270 | if v.id == catParent then |
|
610 | Syzgyn-40270 | v.collapsed = false |
|
611 | Syzgyn-40270 | break |
|
612 | 8 | Syzgyn-40270 | end |
613 | Syzgyn-40270 | end |
|
614 | Syzgyn-40270 | end |
|
615 | 9 | Syzgyn-40270 | self:RefreshCategoryButtons() |
616 | 20 | Syzgyn-40270 | self:RefreshAchievementButtons(nil, id) |
617 | 8 | Syzgyn-40270 | end |
618 | 9 | Syzgyn-40270 | |
619 | 51 | Syzgyn-40270 | function self:FormatMoney(compMin, compMax) |
620 | Syzgyn-40270 | local fIndex = UASVPC.moneyAsColor and 1 or 2 |
|
621 | Syzgyn-40270 | local fSpace = UASVPC.moneyAsColor and "." or " " |
|
622 | 35 | Syzgyn-40270 | --compMin = 1368980 |
623 | Syzgyn-40270 | --compMax = 10000000 |
|
624 | Syzgyn-40270 | compMin = tostring(compMin) |
|
625 | Syzgyn-40270 | compMax = tostring(compMax) |
|
626 | Syzgyn-40270 | local length = compMin:len() |
|
627 | 37 | Syzgyn-40270 | local gold, silver, copper = "","","" |
628 | 35 | Syzgyn-40270 | if length <= 2 then -- 1-2 |
629 | 51 | Syzgyn-40270 | copper = compMin |
630 | 109 | Tomate-202285 | elseif length <= 4 then -- 3-4 |
631 | 35 | Syzgyn-40270 | silver = compMin:sub(1, length - 2) |
632 | Syzgyn-40270 | copper = compMin:sub(length-1) |
|
633 | Syzgyn-40270 | else -- 5+ |
|
634 | Syzgyn-40270 | gold = compMin:sub(1, length-4) |
|
635 | Syzgyn-40270 | silver = compMin:sub(length-3, length-2) |
|
636 | Syzgyn-40270 | copper = compMin:sub(length-1) |
|
637 | Syzgyn-40270 | end |
|
638 | 51 | Syzgyn-40270 | gold = tonumber(gold) or 0 |
639 | Syzgyn-40270 | silver = tonumber(silver) or 0 |
|
640 | Syzgyn-40270 | copper = tonumber(copper) or 0 |
|
641 | 109 | Tomate-202285 | |
642 | 51 | Syzgyn-40270 | if gold > 0 then gold = format(self.moneyFormats.gold[fIndex], gold) else gold = "" end |
643 | Syzgyn-40270 | if silver > 0 then silver = format(self.moneyFormats.silver[fIndex], silver) else silver = "" end |
|
644 | Syzgyn-40270 | if copper > 0 then copper = format(self.moneyFormats.copper[fIndex], copper) else copper = "" end |
|
645 | 109 | Tomate-202285 | |
646 | Tomate-202285 | compMin = gold .. (gold:len() > 0 and silver:len() > 0 and fSpace or "") .. |
|
647 | 133 | Tomate-202285 | silver .. (silver:len() > 0 and copper:len() > 0 and fSpace or "") .. copper |
648 | 55 | Syzgyn-40270 | if compMin == "" then compMin = format(self.moneyFormats.copper[fIndex], 0) end |
649 | 51 | Syzgyn-40270 | compMax = format(self.moneyFormats.gold[fIndex], compMax:sub(1, compMax:len() - 4)) |
650 | 109 | Tomate-202285 | |
651 | 35 | Syzgyn-40270 | return compMin, compMax |
652 | 33 | Syzgyn-40270 | end |
653 | 51 | Syzgyn-40270 | |
654 | Syzgyn-40270 | function self:StrToMoney(str) |
|
655 | 59 | Syzgyn-40270 | str = tostring(str) |
656 | Syzgyn-40270 | if not str:find("|T") then return str end |
|
657 | Syzgyn-40270 | local result = 0 |
|
658 | Syzgyn-40270 | for num, value in str:gmatch("(%d+)|T.-UI%-(.)") do |
|
659 | Syzgyn-40270 | result = result + (num * moneyValues[value]) |
|
660 | 51 | Syzgyn-40270 | end |
661 | Syzgyn-40270 | return tostring(result) |
|
662 | Syzgyn-40270 | end |
|
663 | Syzgyn-40270 | ||
664 | Syzgyn-40270 | function self:FormatString(str) |
|
665 | Syzgyn-40270 | if not str:find("|T") then return str end |
|
666 | Syzgyn-40270 | local cur, max |
|
667 | Syzgyn-40270 | local t = {string.split("/", str)} |
|
668 | Syzgyn-40270 | if t[2] then --There is a max string |
|
669 | Syzgyn-40270 | cur, max = self:FormatMoney(self:StrToMoney(t[1]), self:StrToMoney(t[2])) |
|
670 | Syzgyn-40270 | return cur .. " / " .. max |
|
671 | Syzgyn-40270 | else --No max string, fake one and ignore it. |
|
672 | Syzgyn-40270 | cur = self:FormatMoney(self:StrToMoney(t[1]), 10000) |
|
673 | Syzgyn-40270 | return cur |
|
674 | Syzgyn-40270 | end |
|
675 | Syzgyn-40270 | end |
|
676 | 2 | Syzgyn-40270 | ------------------------------------------------------------- |
677 | 109 | Tomate-202285 | --Frame Stuff |
678 | 2 | Syzgyn-40270 | ------------------------------------------------------------- |
679 | 109 | Tomate-202285 | |
680 | Tomate-202285 | function self:HideCategorySum() |
|
681 | 148 | Tomate-202285 | self.categoryFrame:Hide() |
682 | 109 | Tomate-202285 | end |
683 | Tomate-202285 | function self:ShowCategorySum() |
|
684 | 148 | Tomate-202285 | self.categoryFrame:Show() |
685 | 109 | Tomate-202285 | end |
686 | Tomate-202285 | function self:HideCategorySumGuild() |
|
687 | 148 | Tomate-202285 | self.categoryFrameGuilde:Hide() |
688 | 109 | Tomate-202285 | end |
689 | Tomate-202285 | function self:ShowCategorySumGuild() |
|
690 | 148 | Tomate-202285 | self.categoryFrameGuilde:Show() |
691 | 109 | Tomate-202285 | end |
692 | Tomate-202285 | ||
693 | 2 | Syzgyn-40270 | function self:SetupFrames() |
694 | Syzgyn-40270 | if self.frame then self.frame:Show() return end |
|
695 | Syzgyn-40270 | --Start with the frame and backdrop |
|
696 | Syzgyn-40270 | self.frame = CreateFrame("Frame", "UrbanAchieverFrame", UIParent) |
|
697 | Syzgyn-40270 | self.frame:SetBackdrop({ |
|
698 | Syzgyn-40270 | edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Border", tile = true, tileSize = 32, edgeSize = 32, |
|
699 | Syzgyn-40270 | insets = {left = 11, right = 12, top = 12, bottom = 11} |
|
700 | Syzgyn-40270 | }) |
|
701 | Syzgyn-40270 | self.frame.backdrop = self.frame:CreateTexture("$parentBG", "BACKGROUND") |
|
702 | Syzgyn-40270 | self.frame.backdrop:SetPoint("TOPLEFT", 6, -6) |
|
703 | Syzgyn-40270 | self.frame.backdrop:SetPoint("BOTTOMRIGHT", -6, 6) |
|
704 | Syzgyn-40270 | self.frame.backdrop:SetTexture("Interface\\AchievementFrame\\UI-Achievement-StatsBackground") |
|
705 | Syzgyn-40270 | ||
706 | Syzgyn-40270 | self.frame:SetWidth(632) |
|
707 | Syzgyn-40270 | self.frame:SetHeight(535) |
|
708 | Syzgyn-40270 | self.frame:SetPoint("CENTER") |
|
709 | Syzgyn-40270 | self.frame:SetFrameStrata("DIALOG") |
|
710 | Syzgyn-40270 | self.frame:EnableMouse(true) |
|
711 | Syzgyn-40270 | self.frame:SetMovable(true) |
|
712 | 109 | Tomate-202285 | |
713 | 83 | Tomate-202285 | self.frame:SetScript("OnMouseDown",function(self1,arg1) |
714 | 133 | Tomate-202285 | if ( arg1 == "LeftButton" ) then |
715 | 2 | Syzgyn-40270 | self.frame:StartMoving() |
716 | Syzgyn-40270 | end |
|
717 | 133 | Tomate-202285 | end) |
718 | Tomate-202285 | self.frame:SetScript("OnMouseUp",function(self1,arg1) |
|
719 | Tomate-202285 | if ( arg1 == "LeftButton" ) then |
|
720 | 2 | Syzgyn-40270 | self.frame:StopMovingOrSizing() |
721 | Syzgyn-40270 | end |
|
722 | 133 | Tomate-202285 | end) |
723 | 109 | Tomate-202285 | |
724 | 148 | Tomate-202285 | self.categoryFrame = CreateFrame("Frame", "UrbanAchieverFrame", self.frame) |
725 | Tomate-202285 | self.categoryFrame:SetBackdrop({ |
|
726 | Tomate-202285 | edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Border", tile = true, tileSize = 32, edgeSize = 32, |
|
727 | Tomate-202285 | insets = {left = 11, right = 12, top = 12, bottom = 11} |
|
728 | Tomate-202285 | }) |
|
729 | Tomate-202285 | self.categoryFrame.backdrop = self.categoryFrame:CreateTexture("$parentBG", "BACKGROUND") |
|
730 | Tomate-202285 | self.categoryFrame.backdrop:SetPoint("TOPLEFT", 6, -6) |
|
731 | Tomate-202285 | self.categoryFrame.backdrop:SetPoint("BOTTOMRIGHT", -6, 6) |
|
732 | Tomate-202285 | self.categoryFrame.backdrop:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Parchment") |
|
733 | Tomate-202285 | self.categoryFrame.backdrop:SetTexCoord(0,.5,0,1) |
|
734 | Tomate-202285 | self.categoryFrame:SetWidth(260) |
|
735 | 154 | Tomate-202285 | self.categoryFrame:SetHeight(470) |
736 | 148 | Tomate-202285 | self.categoryFrame:SetPoint("LEFT", self.frame, "RIGHT", -12, 0) |
737 | Tomate-202285 | ||
738 | Tomate-202285 | self.categoryFrameGuilde = CreateFrame("Frame", "UrbanAchieverFrame", self.frame) |
|
739 | Tomate-202285 | self.categoryFrameGuilde:SetBackdrop({ |
|
740 | Tomate-202285 | edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Border", tile = true, tileSize = 32, edgeSize = 32, |
|
741 | Tomate-202285 | insets = {left = 11, right = 12, top = 12, bottom = 11} |
|
742 | Tomate-202285 | }) |
|
743 | Tomate-202285 | self.categoryFrameGuilde.backdrop = self.categoryFrameGuilde:CreateTexture("$parentBG", "BACKGROUND") |
|
744 | Tomate-202285 | self.categoryFrameGuilde.backdrop:SetPoint("TOPLEFT", 6, -6) |
|
745 | Tomate-202285 | self.categoryFrameGuilde.backdrop:SetPoint("BOTTOMRIGHT", -6, 6) |
|
746 | Tomate-202285 | self.categoryFrameGuilde.backdrop:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Parchment") |
|
747 | Tomate-202285 | self.categoryFrameGuilde.backdrop:SetTexCoord(0,.5,0,1) |
|
748 | Tomate-202285 | self.categoryFrameGuilde:SetWidth(260) |
|
749 | Tomate-202285 | self.categoryFrameGuilde:SetHeight(240) |
|
750 | Tomate-202285 | self.categoryFrameGuilde:SetPoint("LEFT", self.frame, "RIGHT", -12, 0) |
|
751 | Tomate-202285 | ||
752 | 2 | Syzgyn-40270 | --Initialize arrays |
753 | Syzgyn-40270 | self.frame.catButtons = {} |
|
754 | Syzgyn-40270 | self.frame.achButtons = {} |
|
755 | Syzgyn-40270 | self.frame.tabButtons = {} |
|
756 | Syzgyn-40270 | self.frame.achSort = {} |
|
757 | 109 | Tomate-202285 | |
758 | 2 | Syzgyn-40270 | --Header |
759 | Syzgyn-40270 | local header = self.frame:CreateTexture("$parentHeader", "ARTWORK") |
|
760 | Syzgyn-40270 | header:SetTexture("Interface\\DialogFrame\\UI-DialogBox-Header") |
|
761 | Syzgyn-40270 | header:SetWidth(256) |
|
762 | Syzgyn-40270 | header:SetHeight(64) |
|
763 | Syzgyn-40270 | header:SetPoint("TOP") |
|
764 | 109 | Tomate-202285 | |
765 | 2 | Syzgyn-40270 | --Points Display Shield |
766 | Syzgyn-40270 | local shield = self.frame:CreateTexture("$parentPointShield", "ARTWORK") |
|
767 | Syzgyn-40270 | shield:SetTexture("Interface\\AchievementFrame\\UI-Achievement-TinyShield") |
|
768 | Syzgyn-40270 | shield:SetWidth(20) |
|
769 | Syzgyn-40270 | shield:SetHeight(20) |
|
770 | Syzgyn-40270 | shield:SetPoint("TOP", 76, -14) |
|
771 | Syzgyn-40270 | shield:SetTexCoord(0, 0.6, 0, 0.6) |
|
772 | 109 | Tomate-202285 | |
773 | 2 | Syzgyn-40270 | --Header Text |
774 | Syzgyn-40270 | local headerText = self.frame:CreateFontString("$parentHeaderText", "ARTWORK", "GameFontNormal") |
|
775 | Syzgyn-40270 | headerText:SetText("Urban Achiever") |
|
776 | Syzgyn-40270 | headerText:SetPoint("CENTER", header, 0, 12) |
|
777 | 109 | Tomate-202285 | |
778 | 2 | Syzgyn-40270 | --Points Text |
779 | Syzgyn-40270 | self.pointsText = self.frame:CreateFontString("$parentPointText", "ARTWORK", "GameFontNormal") |
|
780 | Syzgyn-40270 | self.pointsText:SetPoint("LEFT", shield, "RIGHT", 0, 2) |
|
781 | 109 | Tomate-202285 | |
782 | 2 | Syzgyn-40270 | --Comparison parent frame |
783 | Syzgyn-40270 | self.comparison = CreateFrame("Frame", nil, self.frame) |
|
784 | 109 | Tomate-202285 | |
785 | 2 | Syzgyn-40270 | --Comparison Points Text |
786 | Syzgyn-40270 | self.compPointsText = self.comparison:CreateFontString("$parentCompPointText", "ARTWORK", "GameFontNormal") |
|
787 | Syzgyn-40270 | self.compPointsText:SetText("12345") |
|
788 | Syzgyn-40270 | self.compPointsText:SetPoint("TOPRIGHT", self.frame, "TOP", -67, -14) |
|
789 | 109 | Tomate-202285 | |
790 | 2 | Syzgyn-40270 | --Comparison Points Display Shield |
791 | Syzgyn-40270 | self.compShield = self.comparison:CreateTexture("$parentCompPointShield", "ARTWORK") |
|
792 | Syzgyn-40270 | self.compShield:SetTexture("Interface\\AchievementFrame\\UI-Achievement-TinyShield") |
|
793 | Syzgyn-40270 | self.compShield:SetWidth(20) |
|
794 | Syzgyn-40270 | self.compShield:SetHeight(20) |
|
795 | Syzgyn-40270 | self.compShield:SetPoint("RIGHT", self.compPointsText, "LEFT", 0, -2) |
|
796 | Syzgyn-40270 | self.compShield:SetTexCoord(0, 0.6, 0, 0.6) |
|
797 | 109 | Tomate-202285 | |
798 | 2 | Syzgyn-40270 | --Comparison Header Text |
799 | Syzgyn-40270 | self.compHeaderText = self.comparison:CreateFontString("$parentCompHeaderText", "ARTWORK", "GameFontNormal") |
|
800 | 86 | Tomate-202285 | self.compHeaderText:SetText(UAComparing .. " [Name here]") |
801 | 2 | Syzgyn-40270 | self.compHeaderText:SetPoint("RIGHT", self.compShield, "LEFT", -5, 2) |
802 | 109 | Tomate-202285 | |
803 | 2 | Syzgyn-40270 | --Category Frame |
804 | Syzgyn-40270 | self.frame.category = CreateFrame("Frame", "$parentCategoryFrame", self.frame) |
|
805 | Syzgyn-40270 | self.frame.category:SetWidth(190) |
|
806 | Syzgyn-40270 | self.frame.category:SetHeight(470) |
|
807 | Syzgyn-40270 | self.frame.category:SetBackdrop({ |
|
808 | Syzgyn-40270 | edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Border", tile = true, tileSize = 32, edgeSize = 32, |
|
809 | Syzgyn-40270 | insets = {left = 11, right = 12, top = 12, bottom = 11} |
|
810 | Syzgyn-40270 | }) |
|
811 | Syzgyn-40270 | self.frame.category.backdrop = self.frame.category:CreateTexture("$parentBG", "BACKGROUND") |
|
812 | Syzgyn-40270 | self.frame.category.backdrop:SetPoint("TOPLEFT", 6, -6) |
|
813 | Syzgyn-40270 | self.frame.category.backdrop:SetPoint("BOTTOMRIGHT", -6, 6) |
|
814 | Syzgyn-40270 | self.frame.category.backdrop:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Parchment") |
|
815 | 87 | Tomate-202285 | self.frame.category.backdrop:SetTexCoord(0,.5,0,1) |
816 | 2 | Syzgyn-40270 | self.frame.category:SetPoint("RIGHT", self.frame, "LEFT", 12, 0) |
817 | 109 | Tomate-202285 | |
818 | 2 | Syzgyn-40270 | --Tab Buttons |
819 | 86 | Tomate-202285 | self.frame.tabButtons[1] = self:CreateTab("$parentTab1", self.frame, UAAchievement, "achievements") |
820 | 2 | Syzgyn-40270 | self.frame.tabButtons[1]:SetPoint("TOPLEFT", self.frame, "BOTTOMLEFT", 20, 6) |
821 | 109 | Tomate-202285 | |
822 | 86 | Tomate-202285 | self.frame.tabButtons[2] = self:CreateTab("$parentTab1", self.frame, UAStatistic, "statistics") |
823 | 2 | Syzgyn-40270 | self.frame.tabButtons[2]:SetPoint("TOPLEFT", self.frame.tabButtons[1], "TOPRIGHT", 5, 0) |
824 | 109 | Tomate-202285 | |
825 | 107 | Tomate-202285 | self.frame.tabButtons[3] = self:CreateTab("$parentTab1", self.frame, UAGuild, "guild") |
826 | Tomate-202285 | self.frame.tabButtons[3]:SetPoint("TOPLEFT", self.frame.tabButtons[2], "TOPRIGHT", 5, 0) |
|
827 | 109 | Tomate-202285 | |
828 | 2 | Syzgyn-40270 | --Category Buttons |
829 | Syzgyn-40270 | self.frame.catButtons[1] = self:CreateCategoryButton("$parentCatButton1", self.frame.category) |
|
830 | 133 | Tomate-202285 | self.frame.catButtons[1]:SetPoint("TOPLEFT", self.frame.category, 17, -17) |
831 | Tomate-202285 | for i=2, 21 do |
|
832 | 2 | Syzgyn-40270 | self.frame.catButtons[i] = self:CreateCategoryButton("$parentCatButton"..i, self.frame.category) |
833 | 133 | Tomate-202285 | self.frame.catButtons[i]:SetPoint("TOPLEFT", self.frame.catButtons[i-1], "BOTTOMLEFT", 0, -5) |
834 | 2 | Syzgyn-40270 | end |
835 | 109 | Tomate-202285 | |
836 | 2 | Syzgyn-40270 | --Achievement Buttons |
837 | Syzgyn-40270 | self.frame.achButtons[1] = self:CreateAchievementButton("$parentAchButton1", self.frame, 1) |
|
838 | Syzgyn-40270 | self.frame.achButtons[1]:SetPoint("TOPLEFT", 12, -90) |
|
839 | 114 | Tomate-202285 | self.frame.achButtons[1]:SetScript("OnEnter", function(self) |
840 | 133 | Tomate-202285 | if UrbanAchiever.currentTab == "guild" then |
841 | 114 | Tomate-202285 | GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); |
842 | Tomate-202285 | UrbanAchiever:CheckGuildMembersTooltip(self); |
|
843 | Tomate-202285 | GameTooltip:Show(); |
|
844 | 133 | Tomate-202285 | else |
845 | Tomate-202285 | if UrbanAchiever.currentTab == "achievements" then |
|
846 | Tomate-202285 | GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); |
|
847 | Tomate-202285 | UrbanAchiever:CheckCharOwnerTooltip(self); |
|
848 | Tomate-202285 | GameTooltip:Show(); |
|
849 | Tomate-202285 | end |
|
850 | 114 | Tomate-202285 | end |
851 | Tomate-202285 | end) |
|
852 | Tomate-202285 | self.frame.achButtons[1]:SetScript("OnLeave", function(self) |
|
853 | Tomate-202285 | GameTooltip:Hide(); |
|
854 | Tomate-202285 | guildMemberRequestFrame = nil; |
|
855 | Tomate-202285 | end) |
|
856 | 2 | Syzgyn-40270 | for i=2, 27 do |
857 | Syzgyn-40270 | self.frame.achButtons[i] = self:CreateAchievementButton("$parentAchButton" .. i, self.frame) |
|
858 | Syzgyn-40270 | self.frame.achButtons[i]:SetPoint("TOPLEFT", self.frame.achButtons[i-1], "BOTTOMLEFT") |
|
859 | 114 | Tomate-202285 | self.frame.achButtons[i]:SetScript("OnEnter", function(self) |
860 | 133 | Tomate-202285 | if UrbanAchiever.currentTab == "guild" then |
861 | 114 | Tomate-202285 | GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); |
862 | Tomate-202285 | UrbanAchiever:CheckGuildMembersTooltip(self); |
|
863 | Tomate-202285 | GameTooltip:Show(); |
|
864 | 133 | Tomate-202285 | else |
865 | Tomate-202285 | if UrbanAchiever.currentTab == "achievements" then |
|
866 | Tomate-202285 | GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); |
|
867 | Tomate-202285 | UrbanAchiever:CheckCharOwnerTooltip(self); |
|
868 | Tomate-202285 | GameTooltip:Show(); |
|
869 | Tomate-202285 | end |
|
870 | 114 | Tomate-202285 | end |
871 | Tomate-202285 | end) |
|
872 | Tomate-202285 | self.frame.achButtons[i]:SetScript("OnLeave", function(self) |
|
873 | Tomate-202285 | GameTooltip:Hide(); |
|
874 | Tomate-202285 | guildMemberRequestFrame = nil; |
|
875 | Tomate-202285 | end) |
|
876 | 2 | Syzgyn-40270 | end |
877 | 109 | Tomate-202285 | |
878 | 2 | Syzgyn-40270 | --Achievement Sort Buttons |
879 | 104 | Tomate-202285 | self.frame.achSort.name = self:CreateAchievementSortButton("$parentSortNameButton", 190, self.frame, UASORT_Name, "name") |
880 | 2 | Syzgyn-40270 | self.frame.achSort.name:SetPoint("BOTTOMLEFT", self.frame.achButtons[1], "TOPLEFT", 10, 1) |
881 | 109 | Tomate-202285 | |
882 | 151 | Tomate-202285 | self.frame.achSort.points = self:CreateAchievementSortButton("$parentSortPointsButton", 36, self.frame, UASORT_Points, "points") |
883 | 2 | Syzgyn-40270 | self.frame.achSort.points:SetPoint("LEFT", self.frame.achSort.name, "RIGHT", 1, 0) |
884 | 109 | Tomate-202285 | |
885 | 151 | Tomate-202285 | self.frame.achSort.completed = self:CreateAchievementSortButton("$parentSortCompletedButton", 62, self.frame, UASORT_Date, "completed") |
886 | 2 | Syzgyn-40270 | self.frame.achSort.completed:SetPoint("LEFT", self.frame.achSort.points, "RIGHT", 1, 0) |
887 | 109 | Tomate-202285 | |
888 | 104 | Tomate-202285 | self.frame.achSort.comparison = self:CreateAchievementSortButton("$parentSortComparisonButton", 70, self.frame, UASORT_Compare, "compare") |
889 | 2 | Syzgyn-40270 | self.frame.achSort.comparison:SetPoint("LEFT", self.frame.achSort.completed, "RIGHT", 1, 0) |
890 | Syzgyn-40270 | self.frame.achSort.comparison:Hide() |
|
891 | 109 | Tomate-202285 | |
892 | 2 | Syzgyn-40270 | --Close Button |
893 | Syzgyn-40270 | self.frame.close = CreateFrame("Button", "$parentCloseButton", self.frame, "UIPanelCloseButton") |
|
894 | Syzgyn-40270 | self.frame.close:SetPoint("TOPRIGHT", self.frame, "TOPRIGHT", -4, -5) |
|
895 | 109 | Tomate-202285 | |
896 | 2 | Syzgyn-40270 | --Category Toggle Button |
897 | Syzgyn-40270 | self.frame.catToggle = CreateFrame("Button", "$parentCategoryToggleButton", self.frame) |
|
898 | Syzgyn-40270 | self.frame.catToggle:SetNormalTexture("Interface\\Buttons\\UI-SpellbookIcon-PrevPage-Up") |
|
899 | Syzgyn-40270 | self.frame.catToggle:SetPushedTexture("Interface\\Buttons\\UI-SpellbookIcon-PrevPage-Down") |
|
900 | Syzgyn-40270 | self.frame.catToggle:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Round", "ADD") |
|
901 | Syzgyn-40270 | self.frame.catToggle:SetWidth(32) |
|
902 | Syzgyn-40270 | self.frame.catToggle:SetHeight(32) |
|
903 | Syzgyn-40270 | self.frame.catToggle:SetPoint("BOTTOMLEFT", self.frame.achButtons[1], "TOPLEFT", 5, 21) |
|
904 | Syzgyn-40270 | self.frame.catToggle:SetScript("OnClick", function() |
|
905 | Syzgyn-40270 | if self.frame.category:IsShown() then |
|
906 | Syzgyn-40270 | self.frame.category:Hide() |
|
907 | Syzgyn-40270 | else |
|
908 | Syzgyn-40270 | self.frame.category:Show() |
|
909 | Syzgyn-40270 | end |
|
910 | Syzgyn-40270 | end) |
|
911 | 109 | Tomate-202285 | |
912 | 2 | Syzgyn-40270 | --Search Editbox |
913 | Syzgyn-40270 | self.frame.editbox = self:CreateEditbox(self.frame) |
|
914 | Syzgyn-40270 | self.frame.editbox:SetWidth(200) |
|
915 | Syzgyn-40270 | self.frame.editbox:SetPoint("TOPLEFT", self.frame.catToggle, "TOPRIGHT", 10, 0) |
|
916 | 109 | Tomate-202285 | |
917 | 32 | Syzgyn-40270 | --Achievements Earned Progress Bar |
918 | 135 | Tomate-202285 | |
919 | Tomate-202285 | self.frame.summaryBar = CreateFrame("StatusBar", "$parentBar", self.frame, "AchievementFrameSummaryCategoryTemplate") |
|
920 | Tomate-202285 | self.frame.summaryBar:SetPoint("LEFT", self.frame.editbox, "RIGHT", 10, -5) |
|
921 | Tomate-202285 | self.frame.summaryBar:SetScript("OnShow", function(self) |
|
922 | Tomate-202285 | if self:GetID() ~= nil then |
|
923 | Tomate-202285 | local totalAchievements, totalCompleted |
|
924 | Tomate-202285 | local titleCategory = GetCategoryInfo(self:GetID()) |
|
925 | Tomate-202285 | if UrbanAchiever.isComparing or self:GetID() == -1 then |
|
926 | Tomate-202285 | if self:GetID() ~= -1 then |
|
927 | Tomate-202285 | totalAchievements, totalCompleted = GetCategoryNumAchievements(self:GetID()); |
|
928 | Tomate-202285 | else |
|
929 | Tomate-202285 | local inGuild |
|
930 | Tomate-202285 | if UrbanAchiever.currentTab == "guild" then |
|
931 | Tomate-202285 | inGuild = true |
|
932 | Tomate-202285 | else |
|
933 | Tomate-202285 | inGuild = false |
|
934 | Tomate-202285 | end |
|
935 | Tomate-202285 | titleCategory = UAAchievEarned |
|
936 | Tomate-202285 | totalAchievements, totalCompleted = GetNumCompletedAchievements(inGuild); |
|
937 | Tomate-202285 | end |
|
938 | Tomate-202285 | else |
|
939 | Tomate-202285 | totalAchievements, totalCompleted = AchievementFrame_GetCategoryTotalNumAchievements(self:GetID(), true); |
|
940 | Tomate-202285 | end |
|
941 | Tomate-202285 | self.text:SetText(string.format("%d/%d", totalCompleted, totalAchievements)); |
|
942 | Tomate-202285 | self:SetMinMaxValues(0, totalAchievements); |
|
943 | Tomate-202285 | self:SetValue(totalCompleted); |
|
944 | Tomate-202285 | self:RegisterEvent("ACHIEVEMENT_EARNED"); |
|
945 | Tomate-202285 | self.name:SetText(titleCategory) |
|
946 | Tomate-202285 | end |
|
947 | Tomate-202285 | end) |
|
948 | Tomate-202285 | self.frame.summaryBar:SetScript("OnHide", function(self) |
|
949 | Tomate-202285 | AchievementFrameSummaryCategory_OnHide(self) |
|
950 | Tomate-202285 | end) |
|
951 | Tomate-202285 | self.frame.summaryBar:SetWidth(200) |
|
952 | Tomate-202285 | self.frame.summaryBar:SetHeight(21) |
|
953 | 32 | Syzgyn-40270 | self.frame.summaryBar.text:ClearAllPoints() |
954 | Syzgyn-40270 | self.frame.summaryBar.text:SetPoint("RIGHT", -5, 0) |
|
955 | Syzgyn-40270 | self.frame.summaryBar.text:SetJustifyH("RIGHT") |
|
956 | Syzgyn-40270 | self.frame.summaryBar.name = self.frame.summaryBar:CreateFontString("$parentName", "OVERLAY", "GameFontHighlightSmall") |
|
957 | Syzgyn-40270 | self.frame.summaryBar.name:SetPoint("LEFT", 5, 0) |
|
958 | Syzgyn-40270 | self.frame.summaryBar.name:SetJustifyH("LEFT") |
|
959 | Syzgyn-40270 | self.frame.summaryBar.name:SetWidth(300) |
|
960 | 109 | Tomate-202285 | |
961 | 135 | Tomate-202285 | --Create Each Category Progress Bar |
962 | 133 | Tomate-202285 | local lastFrame |
963 | 78 | Tomate-202285 | local idxCat = 0 |
964 | Tomate-202285 | for i,id in ipairs(GetCategoryList()) do |
|
965 | 135 | Tomate-202285 | local tittleCat, parentCatID = GetCategoryInfo(id) |
966 | 148 | Tomate-202285 | --15234 = Héritage |
967 | Tomate-202285 | --81 = Tours de force |
|
968 | Tomate-202285 | if ( parentCatID == -1 ) and id ~= 15234 and id ~= 81 then |
|
969 | Tomate-202285 | idxCat, lastFrame = self:createCategoryStatusBar(id, idxCat, lastFrame, tittleCat, self.categoryFrame) |
|
970 | 78 | Tomate-202285 | end |
971 | Tomate-202285 | end |
|
972 | 109 | Tomate-202285 | |
973 | 133 | Tomate-202285 | local lastFrame |
974 | 109 | Tomate-202285 | local idxCat = 0 |
975 | Tomate-202285 | for i,id in ipairs(GetGuildCategoryList()) do |
|
976 | 135 | Tomate-202285 | local tittleCat, parentCatID = GetCategoryInfo(id) |
977 | 148 | Tomate-202285 | --15093 = Tours de force de guilde |
978 | Tomate-202285 | if (parentCatID == -1 or parentCatID == 15076) and id ~= 15093 then |
|
979 | Tomate-202285 | idxCat, lastFrame = self:createCategoryStatusBar(id, idxCat, lastFrame, tittleCat, self.categoryFrameGuilde) |
|
980 | 109 | Tomate-202285 | end |
981 | Tomate-202285 | end |
|
982 | Tomate-202285 | ||
983 | Tomate-202285 | ||
984 | 36 | Syzgyn-40270 | --Achievements Earned Comparison Progress Bar |
985 | 135 | Tomate-202285 | self.frame.comparisonSummaryBar = CreateFrame("StatusBar", "$parentComparisonBar", self.frame, "AchievementFrameSummaryCategoryTemplate") |
986 | Tomate-202285 | self.frame.comparisonSummaryBar:SetPoint("LEFT", self.frame.summaryBar, "RIGHT", 10, 0) |
|
987 | Tomate-202285 | self.frame.comparisonSummaryBar:SetScript("OnShow", function(self) |
|
988 | Tomate-202285 | if self:GetID() ~= nil then |
|
989 | Tomate-202285 | if UrbanAchiever.isComparing then |
|
990 | Tomate-202285 | local totalAchievements, totalCompleted |
|
991 | Tomate-202285 | if self:GetID() ~= -1 then |
|
992 | Tomate-202285 | totalAchievements = GetCategoryNumAchievements(self:GetID()); |
|
993 | Tomate-202285 | totalCompleted = GetComparisonCategoryNumAchievements(self:GetID()) |
|
994 | Tomate-202285 | else |
|
995 | Tomate-202285 | local inGuild |
|
996 | Tomate-202285 | if UrbanAchiever.currentTab == "guild" then |
|
997 | Tomate-202285 | inGuild = true |
|
998 | Tomate-202285 | else |
|
999 | Tomate-202285 | inGuild = false |
|
1000 | Tomate-202285 | end |
|
1001 | Tomate-202285 | totalAchievements, totalCompleted = GetNumComparisonCompletedAchievements(inGuild) |
|
1002 | Tomate-202285 | end |
|
1003 | Tomate-202285 | self.text:SetText(string.format("%d/%d", totalCompleted, totalAchievements)); |
|
1004 | Tomate-202285 | self:SetMinMaxValues(0, totalAchievements); |
|
1005 | Tomate-202285 | self:SetValue(totalCompleted); |
|
1006 | Tomate-202285 | self:RegisterEvent("ACHIEVEMENT_EARNED"); |
|
1007 | Tomate-202285 | end |
|
1008 | Tomate-202285 | end |
|
1009 | Tomate-202285 | end) |
|
1010 | Tomate-202285 | self.frame.comparisonSummaryBar:SetScript("OnHide", function(self) |
|
1011 | Tomate-202285 | AchievementFrameSummaryCategory_OnHide(self) |
|
1012 | Tomate-202285 | end) |
|
1013 | Tomate-202285 | self.frame.comparisonSummaryBar:SetWidth(200) |
|
1014 | Tomate-202285 | self.frame.comparisonSummaryBar:SetHeight(21) |
|
1015 | 36 | Syzgyn-40270 | self.frame.comparisonSummaryBar.text:ClearAllPoints() |
1016 | Syzgyn-40270 | self.frame.comparisonSummaryBar.text:SetPoint("RIGHT", -5, 0) |
|
1017 | Syzgyn-40270 | self.frame.comparisonSummaryBar.text:SetJustifyH("RIGHT") |
|
1018 | Syzgyn-40270 | self.frame.comparisonSummaryBar.name = self.frame.comparisonSummaryBar:CreateFontString("$parentName", "OVERLAY", "GameFontHighlightSmall") |
|
1019 | Syzgyn-40270 | self.frame.comparisonSummaryBar.name:SetPoint("LEFT", 5, 0) |
|
1020 | Syzgyn-40270 | self.frame.comparisonSummaryBar.name:SetJustifyH("LEFT") |
|
1021 | Syzgyn-40270 | self.frame.comparisonSummaryBar.name:SetWidth(300) |
|
1022 | 135 | Tomate-202285 | self.frame.comparisonSummaryBar:Hide() |
1023 | 109 | Tomate-202285 | |
1024 | 2 | Syzgyn-40270 | --Category Scroll Bar |
1025 | 58 | Syzgyn-40270 | self.frame.catScroll = CreateFrame("Slider", "$parentCatSlider", self.frame.category, "UIPanelScrollBarTemplate") |
1026 | 2 | Syzgyn-40270 | self.frame.catScroll:SetPoint("TOPLEFT", self.frame.catButtons[2], "TOPRIGHT") |
1027 | Syzgyn-40270 | self.frame.catScroll:SetPoint("BOTTOMLEFT", self.frame.catButtons[#self.frame.catButtons - 1], "BOTTOMRIGHT") |
|
1028 | Syzgyn-40270 | self.frame.catScroll:SetWidth(16) |
|
1029 | Syzgyn-40270 | self.frame.catScroll:SetMinMaxValues(0,0) |
|
1030 | Syzgyn-40270 | self.frame.catScroll:SetValueStep(1) |
|
1031 | 82 | Tomate-202285 | self.frame.catScroll:SetScript("OnValueChanged", UrbanAchiever_OnCatScroll) |
1032 | 2 | Syzgyn-40270 | self.frame.catScroll:SetValue(1) |
1033 | 109 | Tomate-202285 | |
1034 | 2 | Syzgyn-40270 | --Achievement Button Scroll Bar |
1035 | Syzgyn-40270 | self.frame.achScroll = CreateFrame("Slider", "$parentAchSlider", self.frame, "UIPanelScrollBarTemplate") |
|
1036 | Syzgyn-40270 | self.frame.achScroll:SetPoint("TOPLEFT", self.frame.achButtons[2], "TOPRIGHT") |
|
1037 | Syzgyn-40270 | self.frame.achScroll:SetPoint("BOTTOMLEFT", self.frame.achButtons[#self.frame.achButtons - 1], "BOTTOMRIGHT") |
|
1038 | Syzgyn-40270 | self.frame.achScroll:SetWidth(16) |
|
1039 | Syzgyn-40270 | self.frame.achScroll:SetMinMaxValues(0,0) |
|
1040 | Syzgyn-40270 | self.frame.achScroll:SetValueStep(1) |
|
1041 | 82 | Tomate-202285 | self.frame.achScroll:SetScript("OnValueChanged",UrbanAchiever_OnAchScroll) |
1042 | 2 | Syzgyn-40270 | self.frame.achScroll:SetValue(1) |
1043 | 109 | Tomate-202285 | |
1044 | 2 | Syzgyn-40270 | --Achievement Display Frame |
1045 | Syzgyn-40270 | self.frame.display = CreateFrame("Frame", "$parentDisplayFrame", self.frame) |
|
1046 | Syzgyn-40270 | self.frame.display.backdrop = self.frame.display:CreateTexture("$parentBG", "BACKGROUND") |
|
1047 | Syzgyn-40270 | self.frame.display.backdrop:SetPoint("TOPLEFT") |
|
1048 | Syzgyn-40270 | self.frame.display.backdrop:SetPoint("BOTTOMRIGHT") |
|
1049 | Syzgyn-40270 | self.frame.display:SetWidth(290) |
|
1050 | 148 | Tomate-202285 | self.frame.display:SetHeight(500) |
1051 | 2 | Syzgyn-40270 | self.frame.display:SetPoint("TOPRIGHT", -13, -75) -- , self.frame.achButtons[1], "TOPRIGHT", 19, 0) |
1052 | Syzgyn-40270 | self.frame.display:Hide() |
|
1053 | 109 | Tomate-202285 | |
1054 | 2 | Syzgyn-40270 | --Display Icon |
1055 | 28 | Syzgyn-40270 | self.frame.display.icon = self.frame.display:CreateTexture(nil, "ARTWORK") |
1056 | 2 | Syzgyn-40270 | self.frame.display.icon:SetWidth(64) |
1057 | Syzgyn-40270 | self.frame.display.icon:SetHeight(64) |
|
1058 | Syzgyn-40270 | self.frame.display.icon:SetPoint("TOPLEFT") |
|
1059 | 28 | Syzgyn-40270 | --self.frame.display.icon:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square", "ADD") |
1060 | Syzgyn-40270 | --self.frame.display.icon:SetScript("OnClick", function() |
|
1061 | Syzgyn-40270 | -- self:InsertIntoChat(self.currentAch) |
|
1062 | Syzgyn-40270 | --end) |
|
1063 | 109 | Tomate-202285 | |
1064 | 2 | Syzgyn-40270 | --Display Name |
1065 | Syzgyn-40270 | self.frame.display.name = self.frame.display:CreateFontString("$parentName", "ARTWORK", "AchievementPointsFont") |
|
1066 | Syzgyn-40270 | self.frame.display.name:SetPoint("TOPLEFT", self.frame.display.icon, "TOPRIGHT", 5, 0) |
|
1067 | Syzgyn-40270 | --self.frame.display.name:SetPoint("TOPRIGHT", -15,-15) |
|
1068 | Syzgyn-40270 | self.frame.display.name:SetWidth(220) |
|
1069 | Syzgyn-40270 | self.frame.display.name:SetHeight(70) |
|
1070 | Syzgyn-40270 | self.frame.display.name:SetJustifyH("CENTER") |
|
1071 | Syzgyn-40270 | self.frame.display.name:SetJustifyV("TOP") |
|
1072 | 109 | Tomate-202285 | |
1073 | 2 | Syzgyn-40270 | --Display Shield Icon |
1074 | Syzgyn-40270 | self.frame.display.shield = self.frame.display:CreateTexture("$parentShield", "ARTWORK") |
|
1075 | Syzgyn-40270 | self.frame.display.shield:SetPoint("TOPLEFT", self.frame.display.icon, "BOTTOMLEFT", 0, -5) |
|
1076 | Syzgyn-40270 | self.frame.display.shield:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Shields") |
|
1077 | 84 | Tomate-202285 | self.frame.display.shield:SetTexCoord(0, 0.5, 0.5, 1); |
1078 | 2 | Syzgyn-40270 | self.frame.display.shield:SetWidth(64) |
1079 | Syzgyn-40270 | self.frame.display.shield:SetHeight(64) |
|
1080 | 109 | Tomate-202285 | |
1081 | 2 | Syzgyn-40270 | --Display Points |
1082 | Syzgyn-40270 | self.frame.display.points = self.frame.display:CreateFontString("$parentPoints", "ARTWORK", "AchievementPointsFont") |
|
1083 | 84 | Tomate-202285 | self.frame.display.points:SetPoint("CENTER", self.frame.display.shield, "CENTER", 0, 3) |
1084 | 109 | Tomate-202285 | |
1085 | 2 | Syzgyn-40270 | --Display Description |
1086 | Syzgyn-40270 | self.frame.display.desc = self.frame.display:CreateFontString("$parentDescription", "ARTWORK", "GameFontNormal") |
|
1087 | Syzgyn-40270 | self.frame.display.desc:SetPoint("TOPLEFT", self.frame.display.shield, "TOPRIGHT", 5, 0) |
|
1088 | Syzgyn-40270 | --self.frame.display.desc:SetPoint("BOTTOMRIGHT", self.frame.display, "TOPRIGHT", -15,-109) |
|
1089 | Syzgyn-40270 | self.frame.display.desc:SetWidth(220) |
|
1090 | Syzgyn-40270 | self.frame.display.desc:SetHeight(65) |
|
1091 | Syzgyn-40270 | self.frame.display.desc:SetTextColor(1,1,1) |
|
1092 | 109 | Tomate-202285 | |
1093 | 2 | Syzgyn-40270 | --Display Reward |
1094 | Syzgyn-40270 | self.frame.display.reward = self.frame.display:CreateFontString("$parentReward", "ARTWORK", "GameFontNormal") |
|
1095 | 151 | Tomate-202285 | self.frame.display.reward:SetWidth(270) |
1096 | 2 | Syzgyn-40270 | self.frame.display.reward:SetPoint("TOP", self.frame.display, "TOP", 0, -127) |
1097 | Syzgyn-40270 | self.frame.display.reward:SetTextColor(1,1,1) |
|
1098 | 133 | Tomate-202285 | |
1099 | 113 | Tomate-202285 | --Display completed |
1100 | Tomate-202285 | self.frame.display.completed = self.frame.display:CreateFontString("$parentReward", "ARTWORK", "GameFontNormal") |
|
1101 | Tomate-202285 | self.frame.display.completed:SetPoint("TOP", self.frame.display, "TOP", 0, -60) |
|
1102 | Tomate-202285 | self.frame.display.completed:SetTextColor(0,1,0) |
|
1103 | 133 | Tomate-202285 | |
1104 | 113 | Tomate-202285 | --Display repCriteria |
1105 | Tomate-202285 | self.frame.display.repCriteria = self.frame.display:CreateFontString("$parentReward", "ARTWORK", "GameFontNormal") |
|
1106 | Tomate-202285 | self.frame.display.repCriteria:SetPoint("BOTTOM", self.frame.display, "TOP", 0, 3) |
|
1107 | 109 | Tomate-202285 | |
1108 | 2 | Syzgyn-40270 | --Display Compare Completed |
1109 | Syzgyn-40270 | self.frame.display.compareDate = self.frame.display:CreateFontString("$parentReward", "ARTWORK", "GameFontNormal") |
|
1110 | Syzgyn-40270 | self.frame.display.compareDate:SetPoint("TOP", self.frame.display.reward, "BOTTOM", 0, -1) |
|
1111 | Syzgyn-40270 | self.frame.display.compareDate:SetTextColor(0,1,0) |
|
1112 | 87 | Tomate-202285 | self.frame.display.compareDate:SetText("Tomate " .. UACompleted .. ": 12/12/12") |
1113 | 2 | Syzgyn-40270 | self.frame.display.compareDate:Hide() |
1114 | 109 | Tomate-202285 | |
1115 | 31 | Syzgyn-40270 | --Display Bar |
1116 | Syzgyn-40270 | self.frame.display.bar = CreateFrame("StatusBar", "$parentBar", self.frame.display, "AchievementProgressBarTemplate") |
|
1117 | 57 | Syzgyn-40270 | --self.frame.display.bar.text:SetFontObject("GameFontHighlight") |
1118 | 31 | Syzgyn-40270 | self.frame.display.bar.text:SetWidth(200) |
1119 | Syzgyn-40270 | self.frame.display.bar:SetPoint("CENTER", self.frame.display, 0, 60) |
|
1120 | 109 | Tomate-202285 | |
1121 | 31 | Syzgyn-40270 | --Display Comparison Bar |
1122 | Syzgyn-40270 | self.frame.display.compareBar = CreateFrame("StatusBar", "$parentCompareBar", self.frame.display, "AchievementProgressBarTemplate") |
|
1123 | 57 | Syzgyn-40270 | --self.frame.display.compareBar.text:SetFontObject("GameFontHighlight") |
1124 | 31 | Syzgyn-40270 | self.frame.display.compareBar.text:SetWidth(200) |
1125 | Syzgyn-40270 | self.frame.display.compareBar:ClearAllPoints() |
|
1126 | Syzgyn-40270 | self.frame.display.compareBar:SetPoint("TOP", self.frame.display.bar, "BOTTOM", 0, -25) |
|
1127 | 109 | Tomate-202285 | |
1128 | 31 | Syzgyn-40270 | --Display Comparison Bar Name Text |
1129 | Syzgyn-40270 | self.frame.display.compareBar.nameText = self.frame.display.compareBar:CreateFontString("$parentNameText", "ARTWORK", "GameFontNormal") |
|
1130 | Syzgyn-40270 | self.frame.display.compareBar.nameText:SetTextColor(1,1,1) |
|
1131 | Syzgyn-40270 | self.frame.display.compareBar.nameText:SetPoint("BOTTOM", self.frame.display.compareBar, "TOP", 0, 5) |
|
1132 | 109 | Tomate-202285 | |
1133 | 2 | Syzgyn-40270 | self.frame.display.criteriaButtons = {} |
1134 | 109 | Tomate-202285 | |
1135 | 2 | Syzgyn-40270 | --Criteria Buttons |
1136 | Syzgyn-40270 | self.frame.display.criteriaButtons[1] = self:CreateCriteriaButton("$parentCriteriaButton1", self.frame.display) |
|
1137 | Syzgyn-40270 | self.frame.display.criteriaButtons[1]:SetPoint("TOPLEFT", 0, -160) |
|
1138 | 113 | Tomate-202285 | self.frame.display.criteriaButtons[1]:SetScript("OnEnter", function(self) |
1139 | 114 | Tomate-202285 | if ( self.date ) then |
1140 | Tomate-202285 | GameTooltip:SetOwner(self, "ANCHOR_RIGHT",-50,0); |
|
1141 | Tomate-202285 | GameTooltip:AddLine(self.date, 1, 1, 1); |
|
1142 | Tomate-202285 | UrbanAchiever:CheckGuildMembersTooltip(self); |
|
1143 | 133 | Tomate-202285 | UrbanAchiever:CheckCharOwnerTooltip(self); |
1144 | 114 | Tomate-202285 | GameTooltip:Show(); |
1145 | Tomate-202285 | end |
|
1146 | Tomate-202285 | end) |
|
1147 | Tomate-202285 | self.frame.display.criteriaButtons[1]:SetScript("OnLeave", function(self) |
|
1148 | Tomate-202285 | GameTooltip:Hide(); |
|
1149 | Tomate-202285 | guildMemberRequestFrame = nil; |
|
1150 | Tomate-202285 | end) |
|
1151 | 148 | Tomate-202285 | for i=2, 18 do |
1152 | 2 | Syzgyn-40270 | self.frame.display.criteriaButtons[i] = self:CreateCriteriaButton("$parentCriteriaButton" .. i, self.frame.display) |
1153 | Syzgyn-40270 | self.frame.display.criteriaButtons[i]:SetPoint("TOPLEFT", self.frame.display.criteriaButtons[i-1], "BOTTOMLEFT") |
|
1154 | 113 | Tomate-202285 | self.frame.display.criteriaButtons[i]:SetScript("OnEnter", function(self) |
1155 | Tomate-202285 | if ( self.date ) then |
|
1156 | Tomate-202285 | GameTooltip:SetOwner(self, "ANCHOR_RIGHT",-50,0); |
|
1157 | Tomate-202285 | GameTooltip:AddLine(self.date, 1, 1, 1); |
|
1158 | Tomate-202285 | UrbanAchiever:CheckGuildMembersTooltip(self); |
|
1159 | 133 | Tomate-202285 | UrbanAchiever:CheckCharOwnerTooltip(self); |
1160 | 113 | Tomate-202285 | GameTooltip:Show(); |
1161 | Tomate-202285 | end |
|
1162 | Tomate-202285 | end) |
|
1163 | Tomate-202285 | self.frame.display.criteriaButtons[i]:SetScript("OnLeave", function(self) |
|
1164 | Tomate-202285 | GameTooltip:Hide(); |
|
1165 | Tomate-202285 | guildMemberRequestFrame = nil; |
|
1166 | Tomate-202285 | end) |
|
1167 | 2 | Syzgyn-40270 | end |
1168 | 109 | Tomate-202285 | |
1169 | 2 | Syzgyn-40270 | --Display Scroll Bar |
1170 | Syzgyn-40270 | self.frame.criteriaScroll = CreateFrame("Slider", "$parentSlider", self.frame.display, "UIPanelScrollBarTemplate") |
|
1171 | Syzgyn-40270 | self.frame.criteriaScroll:SetPoint("TOPLEFT", self.frame.display.criteriaButtons[2], "TOPRIGHT", 1,0) |
|
1172 | Syzgyn-40270 | self.frame.criteriaScroll:SetPoint("BOTTOMLEFT", self.frame.display.criteriaButtons[#self.frame.display.criteriaButtons - 1], "BOTTOMRIGHT", 1,0) |
|
1173 | Syzgyn-40270 | self.frame.criteriaScroll:SetWidth(16) |
|
1174 | Syzgyn-40270 | self.frame.criteriaScroll:SetMinMaxValues(0,0) |
|
1175 | Syzgyn-40270 | self.frame.criteriaScroll:SetValueStep(1) |
|
1176 | 82 | Tomate-202285 | self.frame.criteriaScroll:SetScript("OnValueChanged", UrbanAchiever_OnCriteriaScroll) |
1177 | 2 | Syzgyn-40270 | self.frame.criteriaScroll:SetValue(1) |
1178 | Syzgyn-40270 | self.frame.criteriaScroll:Show() |
|
1179 | 109 | Tomate-202285 | |
1180 | 2 | Syzgyn-40270 | self.frame.display.criteria = self.frame.display:CreateFontString("$parentCriteria", "ARTWORK", "GameFontNormal") |
1181 | Syzgyn-40270 | self.frame.display.criteria:SetPoint("TOPLEFT", 0, -135) |
|
1182 | Syzgyn-40270 | self.frame.display.criteria:SetJustifyH("LEFT") |
|
1183 | Syzgyn-40270 | self.frame.display.criteria:SetJustifyV("TOP") |
|
1184 | 109 | Tomate-202285 | |
1185 | 2 | Syzgyn-40270 | tinsert(UISpecialFrames,self.frame:GetName()) |
1186 | Syzgyn-40270 | self.frame:SetScript("OnShow", function() |
|
1187 | 52 | Syzgyn-40270 | self:UpdateFunction() |
1188 | 109 | Tomate-202285 | |
1189 | 2 | Syzgyn-40270 | if self.masterList[self.currentAch] then |
1190 | Syzgyn-40270 | self:SetDisplayAchievement(self.currentAch) |
|
1191 | Syzgyn-40270 | end |
|
1192 | 160 | Tomate-202285 | PlaySound(13832);--ACHIEVEMENT_MENU_OPEN |
1193 | 2 | Syzgyn-40270 | end) |
1194 | Syzgyn-40270 | self.frame:SetScript("OnHide", function() |
|
1195 | 160 | Tomate-202285 | PlaySound(13833);--ACHIEVEMENT_MENU_CLOSE |
1196 | 2 | Syzgyn-40270 | self.isComparing = false |
1197 | Syzgyn-40270 | end) |
|
1198 | Syzgyn-40270 | ||
1199 | Syzgyn-40270 | self:UpdateFunction() |
|
1200 | 109 | Tomate-202285 | |
1201 | 2 | Syzgyn-40270 | self.frame:Hide() |
1202 | Syzgyn-40270 | end |
|
1203 | Syzgyn-40270 | ||
1204 | 148 | Tomate-202285 | function self:createCategoryStatusBar(id, idxCat, lastFrame, tittleCat, parent) |
1205 | 133 | Tomate-202285 | idxCat = idxCat + 1 |
1206 | 148 | Tomate-202285 | local categoryFrame = CreateFrame("StatusBar","categoryStatusBar"..id, parent, "AchievementFrameSummaryCategoryTemplate") |
1207 | 133 | Tomate-202285 | if idxCat == 1 then |
1208 | Tomate-202285 | lastFrame = "categoryStatusBar"..id |
|
1209 | 148 | Tomate-202285 | categoryFrame:SetPoint("TOP", parent, "TOP", 0, -30) |
1210 | 133 | Tomate-202285 | else |
1211 | 148 | Tomate-202285 | categoryFrame:SetPoint("TOP", lastFrame, "BOTTOM", 0, -12) |
1212 | Tomate-202285 | lastFrame = "categoryStatusBar"..id |
|
1213 | 133 | Tomate-202285 | end |
1214 | Tomate-202285 | categoryFrame:SetID(id) |
|
1215 | Tomate-202285 | categoryFrame:SetScript("OnShow", function(self) |
|
1216 | Tomate-202285 | if self:GetID() ~= nil then |
|
1217 | Tomate-202285 | AchievementFrameSummaryCategory_OnShow (self) |
|
1218 | Tomate-202285 | end |
|
1219 | Tomate-202285 | end) |
|
1220 | Tomate-202285 | categoryFrame:SetScript("OnHide", function(self) |
|
1221 | Tomate-202285 | AchievementFrameSummaryCategory_OnHide(self) |
|
1222 | Tomate-202285 | end) |
|
1223 | 151 | Tomate-202285 | local button = loadstring("return categoryStatusBar" .. id .. "Button")() |
1224 | Tomate-202285 | button:SetScript("OnClick", function(self) |
|
1225 | Tomate-202285 | local id = self:GetParent():GetID(); |
|
1226 | Tomate-202285 | UrbanAchiever.currentCat = id |
|
1227 | Tomate-202285 | for _,v in next, UrbanAchiever.categories[UrbanAchiever.currentTab] do |
|
1228 | Tomate-202285 | if v.id == id then |
|
1229 | Tomate-202285 | v.collapsed = not v.collapsed |
|
1230 | Tomate-202285 | break |
|
1231 | Tomate-202285 | end |
|
1232 | Tomate-202285 | end |
|
1233 | Tomate-202285 | UrbanAchiever.achOffset = 0 |
|
1234 | Tomate-202285 | UrbanAchiever:RefreshCategoryButtons() |
|
1235 | Tomate-202285 | UrbanAchiever:RefreshAchievementButtons() |
|
1236 | Tomate-202285 | end) |
|
1237 | 148 | Tomate-202285 | categoryFrame:SetWidth(200) |
1238 | 133 | Tomate-202285 | categoryFrame:SetHeight(21) |
1239 | Tomate-202285 | categoryFrame.text:ClearAllPoints() |
|
1240 | Tomate-202285 | categoryFrame.text:SetPoint("RIGHT", -5, 0) |
|
1241 | Tomate-202285 | categoryFrame.text:SetJustifyH("RIGHT") |
|
1242 | Tomate-202285 | categoryFrame.name = categoryFrame:CreateFontString("$parentName", "OVERLAY", "GameFontHighlightSmall") |
|
1243 | Tomate-202285 | categoryFrame.name:SetPoint("LEFT", 5, 0) |
|
1244 | Tomate-202285 | categoryFrame.name:SetJustifyH("LEFT") |
|
1245 | 148 | Tomate-202285 | categoryFrame.name:SetWidth(200) |
1246 | 133 | Tomate-202285 | categoryFrame.name:SetText(tittleCat) |
1247 | 148 | Tomate-202285 | --categoryFrame:Hide() |
1248 | 133 | Tomate-202285 | |
1249 | Tomate-202285 | return idxCat, lastFrame |
|
1250 | Tomate-202285 | end |
|
1251 | Tomate-202285 | ||
1252 | 113 | Tomate-202285 | function self:CheckGuildMembersTooltip(requestFrame) |
1253 | Tomate-202285 | if ( self.currentTab == "guild" ) then |
|
1254 | Tomate-202285 | local achievementId = requestFrame.id; |
|
1255 | 114 | Tomate-202285 | if achievementId == nil then |
1256 | Tomate-202285 | achievementId = requestFrame:GetID(); |
|
1257 | Tomate-202285 | end |
|
1258 | 113 | Tomate-202285 | local _, achievementName, points, achievementCompleted, month, day, year, description, flags, iconpath = GetAchievementInfo(achievementId); |
1259 | Tomate-202285 | -- check if achievement has names, only if completed |
|
1260 | Tomate-202285 | if ( achievementCompleted and bit.band(flags, ACHIEVEMENT_FLAGS_SHOW_GUILD_MEMBERS) == ACHIEVEMENT_FLAGS_SHOW_GUILD_MEMBERS ) then |
|
1261 | Tomate-202285 | local numMembers = GetGuildAchievementNumMembers(achievementId); |
|
1262 | Tomate-202285 | if ( numMembers == 0 ) then |
|
1263 | Tomate-202285 | -- we may not have the members from the server yet |
|
1264 | Tomate-202285 | guildMemberRequestFrame = requestFrame; |
|
1265 | Tomate-202285 | GetGuildAchievementMembers(achievementId); |
|
1266 | Tomate-202285 | else |
|
1267 | Tomate-202285 | -- add a line break if the tooltip shows completed date (meta tooltip) |
|
1268 | Tomate-202285 | if ( GameTooltip:NumLines() > 0 ) then |
|
1269 | Tomate-202285 | GameTooltip:AddLine(" "); |
|
1270 | 133 | Tomate-202285 | end |
1271 | 113 | Tomate-202285 | GameTooltip:AddLine(GUILD_ACHIEVEMENT_EARNED_BY, 1, 1, 1); |
1272 | Tomate-202285 | local leftMemberName; |
|
1273 | Tomate-202285 | for i = 1, numMembers do |
|
1274 | Tomate-202285 | if ( leftMemberName ) then |
|
1275 | Tomate-202285 | GameTooltip:AddDoubleLine(leftMemberName, GetGuildAchievementMemberInfo(achievementId, i)); |
|
1276 | Tomate-202285 | leftMemberName = nil; |
|
1277 | Tomate-202285 | else |
|
1278 | Tomate-202285 | leftMemberName = GetGuildAchievementMemberInfo(achievementId, i); |
|
1279 | 133 | Tomate-202285 | end |
1280 | 113 | Tomate-202285 | end |
1281 | Tomate-202285 | -- check for leftover name |
|
1282 | Tomate-202285 | if ( leftMemberName ) then |
|
1283 | Tomate-202285 | GameTooltip:AddLine(leftMemberName); |
|
1284 | Tomate-202285 | end |
|
1285 | Tomate-202285 | end |
|
1286 | 133 | Tomate-202285 | -- otherwise check if criteria has names |
1287 | 114 | Tomate-202285 | elseif ( flags ~= nil ) then |
1288 | Tomate-202285 | if ( bit.band(flags, ACHIEVEMENT_FLAGS_SHOW_CRITERIA_MEMBERS) == ACHIEVEMENT_FLAGS_SHOW_CRITERIA_MEMBERS ) then |
|
1289 | Tomate-202285 | local numCriteria = GetAchievementNumCriteria(achievementId); |
|
1290 | Tomate-202285 | local firstName = true; |
|
1291 | Tomate-202285 | for i = 1, numCriteria do |
|
1292 | Tomate-202285 | local criteriaString, _, completed, _, _, charName = GetAchievementCriteriaInfo(achievementId, i); |
|
1293 | Tomate-202285 | if ( completed and charName ) then |
|
1294 | Tomate-202285 | if ( firstName ) then |
|
1295 | Tomate-202285 | if ( achievementCompleted ) then |
|
1296 | Tomate-202285 | GameTooltip:AddLine(GUILD_ACHIEVEMENT_EARNED_BY, 1, 1, 1); |
|
1297 | Tomate-202285 | else |
|
1298 | Tomate-202285 | GameTooltip:AddLine(INCOMPLETE, 1, 1, 1); |
|
1299 | Tomate-202285 | end |
|
1300 | Tomate-202285 | firstName = false; |
|
1301 | 113 | Tomate-202285 | end |
1302 | 114 | Tomate-202285 | GameTooltip:AddDoubleLine(criteriaString, charName, 0, 1, 0); |
1303 | 113 | Tomate-202285 | end |
1304 | Tomate-202285 | end |
|
1305 | Tomate-202285 | end |
|
1306 | Tomate-202285 | end |
|
1307 | Tomate-202285 | end |
|
1308 | Tomate-202285 | end |
|
1309 | Tomate-202285 | ||
1310 | 133 | Tomate-202285 | function self:CheckCharOwnerTooltip(requestFrame) |
1311 | Tomate-202285 | if ( self.currentTab == "achievements" ) then |
|
1312 | Tomate-202285 | local accountWide = false |
|
1313 | Tomate-202285 | local achievementId = requestFrame.id; |
|
1314 | Tomate-202285 | if achievementId == nil then |
|
1315 | Tomate-202285 | achievementId = requestFrame:GetID(); |
|
1316 | Tomate-202285 | end |
|
1317 | Tomate-202285 | local _, _, _, achievementCompleted, _, _, _, _, flags, _, _, isGuild, wasEarnedByMe, earnedBy = GetAchievementInfo(achievementId); |
|
1318 | Tomate-202285 | if isGuild then |
|
1319 | Tomate-202285 | return; |
|
1320 | Tomate-202285 | end |
|
1321 | Tomate-202285 | if flags ~= nil then |
|
1322 | Tomate-202285 | if ( bit.band(flags, ACHIEVEMENT_FLAGS_ACCOUNT) == ACHIEVEMENT_FLAGS_ACCOUNT ) then |
|
1323 | Tomate-202285 | accountWide = true |
|
1324 | Tomate-202285 | end |
|
1325 | Tomate-202285 | end |
|
1326 | Tomate-202285 | if accountWide then |
|
1327 | Tomate-202285 | if achievementCompleted then |
|
1328 | Tomate-202285 | GameTooltip:AddLine(ACCOUNT_WIDE_ACHIEVEMENT_COMPLETED); |
|
1329 | Tomate-202285 | else |
|
1330 | Tomate-202285 | GameTooltip:AddLine(ACCOUNT_WIDE_ACHIEVEMENT); |
|
1331 | Tomate-202285 | end |
|
1332 | Tomate-202285 | return; |
|
1333 | Tomate-202285 | end |
|
1334 | Tomate-202285 | if earnedBy then |
|
1335 | Tomate-202285 | GameTooltip:AddLine(format(ACHIEVEMENT_EARNED_BY,earnedBy)); |
|
1336 | Tomate-202285 | local me = UnitName("player") |
|
1337 | Tomate-202285 | if ( not wasEarnedByMe ) then |
|
1338 | Tomate-202285 | GameTooltip:AddLine(format(ACHIEVEMENT_NOT_COMPLETED_BY, me)); |
|
1339 | Tomate-202285 | elseif ( me ~= earnedBy ) then |
|
1340 | Tomate-202285 | GameTooltip:AddLine(format(ACHIEVEMENT_COMPLETED_BY, me)); |
|
1341 | Tomate-202285 | end |
|
1342 | Tomate-202285 | return; |
|
1343 | Tomate-202285 | end |
|
1344 | Tomate-202285 | end |
|
1345 | Tomate-202285 | end |
|
1346 | Tomate-202285 | ||
1347 | 2 | Syzgyn-40270 | function self:CreateCategoryButton(name, parent) |
1348 | Syzgyn-40270 | local button = CreateFrame("Button", name, parent) |
|
1349 | Syzgyn-40270 | button:EnableMouseWheel(true) |
|
1350 | 133 | Tomate-202285 | button:SetWidth(160) |
1351 | 2 | Syzgyn-40270 | button:SetHeight(16) |
1352 | 109 | Tomate-202285 | |
1353 | 30 | Syzgyn-40270 | button.offset = CreateFrame("Frame","$parentOffset", button) |
1354 | Syzgyn-40270 | button.offset:SetPoint("TOPLEFT") |
|
1355 | Syzgyn-40270 | button.offset:SetWidth(1) |
|
1356 | Syzgyn-40270 | button.offset:SetHeight(16) |
|
1357 | 109 | Tomate-202285 | |
1358 | 2 | Syzgyn-40270 | button.text = button:CreateFontString("$parentText", "BORDER", "GameFontNormal") |
1359 | 69 | Syzgyn-40270 | button.text:SetJustifyH("LEFT") |
1360 | 30 | Syzgyn-40270 | button.text:SetFont(GameFontNormal:GetFont(), 12) |
1361 | Syzgyn-40270 | button.text:SetPoint("LEFT", button.offset, "RIGHT", 7, 0) |
|
1362 | 69 | Syzgyn-40270 | button.text:SetPoint("RIGHT") |
1363 | Syzgyn-40270 | --button.text:SetWidth(150) |
|
1364 | 30 | Syzgyn-40270 | --button.text:SetTextColor(1,1,1) |
1365 | 109 | Tomate-202285 | |
1366 | 2 | Syzgyn-40270 | button.bg = button:CreateTexture(nil, "BACKGROUND") |
1367 | 30 | Syzgyn-40270 | --button.bg:SetTexture("Interface\\AuctionFrame\\UI-AuctionFrame-FilterBg") |
1368 | Syzgyn-40270 | button.bg:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Category-Background") |
|
1369 | Syzgyn-40270 | button.bg:SetTexCoord(0.025, 0.64, 0.1, 0.75) |
|
1370 | Syzgyn-40270 | button.bg:SetPoint("TOPLEFT", button.offset, "TOPRIGHT") |
|
1371 | 43 | Syzgyn-40270 | --button.bg:SetPoint("BOTTOMRIGHT") |
1372 | 133 | Tomate-202285 | button.bg:SetWidth(150) |
1373 | 43 | Syzgyn-40270 | button.bg:SetHeight(16) |
1374 | 109 | Tomate-202285 | |
1375 | 2 | Syzgyn-40270 | local highlightTexture = button:CreateTexture() |
1376 | 30 | Syzgyn-40270 | highlightTexture:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Category-Highlight") |
1377 | Syzgyn-40270 | highlightTexture:SetTexCoord(0.02, 0.65, 0, 0.91) |
|
1378 | Syzgyn-40270 | highlightTexture:SetPoint("TOPLEFT", button.bg, -1, 0) |
|
1379 | Syzgyn-40270 | highlightTexture:SetPoint("BOTTOMRIGHT", button.bg, 1, -2) |
|
1380 | 109 | Tomate-202285 | |
1381 | 30 | Syzgyn-40270 | --button:SetHighlightTexture("Interface\\FriendsFrame\\UI-FriendsFrame-HighlightBar", "ADD") |
1382 | Syzgyn-40270 | button:SetHighlightTexture(highlightTexture, "ADD") |
|
1383 | 109 | Tomate-202285 | |
1384 | 2 | Syzgyn-40270 | button:SetScript("OnClick", function() |
1385 | Syzgyn-40270 | local id = button:GetID() |
|
1386 | Syzgyn-40270 | self.currentCat = id |
|
1387 | Syzgyn-40270 | for _,v in next, self.categories[self.currentTab] do |
|
1388 | Syzgyn-40270 | if v.id == id then |
|
1389 | Syzgyn-40270 | v.collapsed = not v.collapsed |
|
1390 | Syzgyn-40270 | break |
|
1391 | Syzgyn-40270 | end |
|
1392 | Syzgyn-40270 | end |
|
1393 | 66 | Syzgyn-40270 | self.achOffset = 0 |
1394 | 2 | Syzgyn-40270 | self:RefreshCategoryButtons() |
1395 | Syzgyn-40270 | self:RefreshAchievementButtons() |
|
1396 | Syzgyn-40270 | end) |
|
1397 | 82 | Tomate-202285 | button:SetScript("OnMouseWheel",UrbanAchiever_CatButtonScroll) |
1398 | 109 | Tomate-202285 | |
1399 | 2 | Syzgyn-40270 | return button |
1400 | Syzgyn-40270 | end |
|
1401 | Syzgyn-40270 | ||
1402 | Syzgyn-40270 | function self:CreateAchievementButton(name, parent) |
|
1403 | Syzgyn-40270 | local button = CreateFrame("Button", name, parent) |
|
1404 | Syzgyn-40270 | button:EnableMouseWheel(true) |
|
1405 | Syzgyn-40270 | button:SetWidth(300) |
|
1406 | Syzgyn-40270 | button:SetHeight(16) |
|
1407 | 109 | Tomate-202285 | |
1408 | 2 | Syzgyn-40270 | button.expand = button:CreateFontString("$parentExpand", "BORDER", "GameFontNormal") |
1409 | Syzgyn-40270 | button.expand:SetText("+") |
|
1410 | Syzgyn-40270 | button.expand:SetWidth(10) |
|
1411 | Syzgyn-40270 | button.expand:SetHeight(10) |
|
1412 | Syzgyn-40270 | button.expand:SetPoint("TOPLEFT") |
|
1413 | Syzgyn-40270 | ||
1414 | Syzgyn-40270 | button.offset = CreateFrame("Frame", nil, button) |
|
1415 | Syzgyn-40270 | button.offset:SetWidth(10) |
|
1416 | Syzgyn-40270 | button.offset:SetHeight(1) |
|
1417 | Syzgyn-40270 | button.offset:SetPoint("TOPLEFT", 9, 0) |
|
1418 | 109 | Tomate-202285 | |
1419 | 2 | Syzgyn-40270 | button.bgframe = CreateFrame("Frame", nil, button) |
1420 | Syzgyn-40270 | button.bgframe:SetWidth(300) |
|
1421 | Syzgyn-40270 | button.bgframe:SetHeight(16) |
|
1422 | Syzgyn-40270 | button.bgframe:SetPoint("TOPLEFT") |
|
1423 | 109 | Tomate-202285 | |
1424 | 2 | Syzgyn-40270 | button.background = button:CreateTexture("$parentBackground", "BACKGROUND") |
1425 | Syzgyn-40270 | button.background:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Stat-Buttons") |
|
1426 | Syzgyn-40270 | button.background:SetAlpha(0.5) |
|
1427 | Syzgyn-40270 | ||
1428 | Syzgyn-40270 | button.background:SetPoint("TOPLEFT", button.offset, "TOPRIGHT") |
|
1429 | Syzgyn-40270 | button.background:SetPoint("BOTTOMRIGHT", button.bgframe) |
|
1430 | 109 | Tomate-202285 | |
1431 | 2 | Syzgyn-40270 | button.name = button:CreateFontString("$parentNameText","BORDER", "GameFontNormal") |
1432 | Syzgyn-40270 | button.name:SetPoint("TOPLEFT", button.background) |
|
1433 | 151 | Tomate-202285 | button.name:SetWidth(190) |
1434 | 2 | Syzgyn-40270 | button.name:SetHeight(16) |
1435 | Syzgyn-40270 | button.name:SetJustifyH("LEFT") |
|
1436 | Syzgyn-40270 | button.name:SetJustifyV("TOP") |
|
1437 | Syzgyn-40270 | button.name:SetTextColor(1,1,1) |
|
1438 | 109 | Tomate-202285 | |
1439 | 2 | Syzgyn-40270 | button.points = button:CreateFontString("$parentPointsText","BORDER", "GameFontNormal") |
1440 | 151 | Tomate-202285 | button.points:SetPoint("LEFT", button.name, "RIGHT", 2, 0) |
1441 | Tomate-202285 | button.points:SetWidth(36) |
|
1442 | Tomate-202285 | button.points:SetHeight(16) |
|
1443 | Tomate-202285 | button.points:SetJustifyH("CENTER") |
|
1444 | 2 | Syzgyn-40270 | button.points:SetJustifyV("TOP") |
1445 | Syzgyn-40270 | button.points:SetTextColor(1,1,1) |
|
1446 | 109 | Tomate-202285 | |
1447 | 2 | Syzgyn-40270 | button.completed = button:CreateFontString("$parentCompletedText","BORDER", "GameFontNormal") |
1448 | 151 | Tomate-202285 | button.completed:SetPoint("LEFT", button.points, "RIGHT", 2, 0) |
1449 | Tomate-202285 | button.completed:SetWidth(62) |
|
1450 | 43 | Syzgyn-40270 | button.completed:SetHeight(16) |
1451 | 151 | Tomate-202285 | button.completed:SetJustifyH("CENTER") |
1452 | 2 | Syzgyn-40270 | button.completed:SetJustifyV("TOP") |
1453 | Syzgyn-40270 | button.completed:SetTextColor(1,1,1) |
|
1454 | 109 | Tomate-202285 | |
1455 | 2 | Syzgyn-40270 | button.stat = button:CreateFontString("$parentStatText","BORDER", "GameFontNormal") |
1456 | 151 | Tomate-202285 | button.stat:SetPoint("LEFT", button.name, "RIGHT", 2, 0) |
1457 | Tomate-202285 | --button.stat:SetPoint("TOPRIGHT", button.background, "TOPRIGHT") |
|
1458 | 2 | Syzgyn-40270 | button.stat:SetJustifyH("LEFT") |
1459 | Syzgyn-40270 | button.stat:SetJustifyV("TOP") |
|
1460 | Syzgyn-40270 | button.stat:SetTextColor(1,1,1) |
|
1461 | 109 | Tomate-202285 | |
1462 | 2 | Syzgyn-40270 | button.comparison = CreateFrame("Frame", "$parentComparison", button) |
1463 | Syzgyn-40270 | button.comparison:SetPoint("RIGHT") |
|
1464 | Syzgyn-40270 | button.comparison:SetWidth(70) |
|
1465 | Syzgyn-40270 | button.comparison:SetHeight(16) |
|
1466 | Syzgyn-40270 | button.comparison:Hide() |
|
1467 | Syzgyn-40270 | button.comparison:SetFrameLevel(button.comparison:GetFrameLevel() - 1) |
|
1468 | 109 | Tomate-202285 | |
1469 | 2 | Syzgyn-40270 | button.comparison.background = button.comparison:CreateTexture("$parentBackground", "BACKGROUND") |
1470 | Syzgyn-40270 | button.comparison.background:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Parchment-Horizontal") |
|
1471 | Syzgyn-40270 | button.comparison.background:SetAlpha(0.5) |
|
1472 | Syzgyn-40270 | button.comparison.background:SetAllPoints(button.comparison) |
|
1473 | 109 | Tomate-202285 | |
1474 | 2 | Syzgyn-40270 | button.compare = button.comparison:CreateFontString("$parentText", "BORDER", "GameFontNormal") |
1475 | Syzgyn-40270 | button.compare:SetPoint("LEFT", button.comparison, 5, 0) |
|
1476 | Syzgyn-40270 | button.compare:SetPoint("RIGHT", button.comparison) |
|
1477 | Syzgyn-40270 | button.compare:SetTextColor(1,1,1) |
|
1478 | 109 | Tomate-202285 | |
1479 | 2 | Syzgyn-40270 | button.comparison:SetScript("OnShow", function() |
1480 | Syzgyn-40270 | if self.isComparing then |
|
1481 | Syzgyn-40270 | button:SetWidth(370) |
|
1482 | Syzgyn-40270 | self.frame:SetWidth(702) |
|
1483 | Syzgyn-40270 | end |
|
1484 | Syzgyn-40270 | end) |
|
1485 | 109 | Tomate-202285 | |
1486 | 2 | Syzgyn-40270 | button.comparison:SetScript("OnHide", function() |
1487 | Syzgyn-40270 | if not self.isComparing then |
|
1488 | Syzgyn-40270 | button:SetWidth(300) |
|
1489 | Syzgyn-40270 | self.frame:SetWidth(632) |
|
1490 | Syzgyn-40270 | end |
|
1491 | Syzgyn-40270 | end) |
|
1492 | 109 | Tomate-202285 | |
1493 | 2 | Syzgyn-40270 | local highlightTexture = button:CreateTexture() |
1494 | Syzgyn-40270 | highlightTexture:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Stat-Buttons") |
|
1495 | Syzgyn-40270 | highlightTexture:SetTexCoord(0, 1, 0.56, 0.73) |
|
1496 | Syzgyn-40270 | highlightTexture:SetPoint("TOPLEFT", button.background) |
|
1497 | Syzgyn-40270 | highlightTexture:SetPoint("BOTTOMRIGHT", button) |
|
1498 | 109 | Tomate-202285 | |
1499 | 2 | Syzgyn-40270 | button:SetHighlightTexture(highlightTexture, "ADD") |
1500 | 109 | Tomate-202285 | |
1501 | 2 | Syzgyn-40270 | button:SetScript("OnClick", function() |
1502 | Syzgyn-40270 | local id = button:GetID() |
|
1503 | 8 | Syzgyn-40270 | if self.masterList[id] then |
1504 | 120 | Tomate-202285 | SetFocusedAchievement(id) |
1505 | Tomate-202285 | if GetCurrentKeyBoardFocus() ~= nil and IsModifiedClick("CHATLINK") then |
|
1506 | 28 | Syzgyn-40270 | self:InsertIntoChat(id) |
1507 | Syzgyn-40270 | elseif IsShiftKeyDown() then |
|
1508 | 69 | Syzgyn-40270 | if IsTrackedAchievement(id) then |
1509 | Syzgyn-40270 | RemoveTrackedAchievement(id) |
|
1510 | Syzgyn-40270 | else |
|
1511 | 85 | Tomate-202285 | local retok, _, _, _, completed = pcall (GetAchievementInfo,id) |
1512 | Tomate-202285 | if not retok or not id then return nil end |
|
1513 | Tomate-202285 | if completed == true then |
|
1514 | 95 | Tomate-202285 | DEFAULT_CHAT_FRAME:AddMessage(UAAchievementDone); |
1515 | 85 | Tomate-202285 | else |
1516 | Tomate-202285 | AddTrackedAchievement(id) |
|
1517 | Tomate-202285 | end |
|
1518 | 69 | Syzgyn-40270 | end |
1519 | 49 | Syzgyn-40270 | self:RefreshAchievementButtons(false) |
1520 | 17 | Syzgyn-40270 | else |
1521 | Syzgyn-40270 | self.currentAch = id |
|
1522 | Syzgyn-40270 | if GetPreviousAchievement(id) and (not GetNextAchievement(id)) then |
|
1523 | 109 | Tomate-202285 | self.expandList[id] = not self.expandList[id] |
1524 | 17 | Syzgyn-40270 | end |
1525 | 109 | Tomate-202285 | |
1526 | 17 | Syzgyn-40270 | self:RefreshAchievementButtons(false) |
1527 | Syzgyn-40270 | self:SetDisplayAchievement(id) |
|
1528 | 8 | Syzgyn-40270 | end |
1529 | 2 | Syzgyn-40270 | end |
1530 | Syzgyn-40270 | end) |
|
1531 | 82 | Tomate-202285 | button:SetScript("OnMouseWheel", UrbanAchiever_AchButtonScroll) |
1532 | 109 | Tomate-202285 | |
1533 | 2 | Syzgyn-40270 | return button |
1534 | Syzgyn-40270 | end |
|
1535 | Syzgyn-40270 | ||
1536 | Syzgyn-40270 | function self:CreateCriteriaButton(name, parent) |
|
1537 | Syzgyn-40270 | local button = CreateFrame("Button", name, parent) |
|
1538 | Syzgyn-40270 | button:EnableMouseWheel(true) |
|
1539 | Syzgyn-40270 | button:SetWidth(273) |
|
1540 | Syzgyn-40270 | button:SetHeight(16) |
|
1541 | 109 | Tomate-202285 | |
1542 | 2 | Syzgyn-40270 | --Offset used to move text when an icon is present |
1543 | Syzgyn-40270 | button.offset = CreateFrame("Frame", nil, button) |
|
1544 | Syzgyn-40270 | button.offset:SetWidth(1) |
|
1545 | Syzgyn-40270 | button.offset:SetHeight(16) |
|
1546 | Syzgyn-40270 | button.offset:SetPoint("LEFT") |
|
1547 | 109 | Tomate-202285 | |
1548 | 2 | Syzgyn-40270 | button.text = button:CreateFontString("$parentText", "BORDER", "GameFontHighlight") |
1549 | Syzgyn-40270 | button.text:SetPoint("LEFT", button.offset, "RIGHT") |
|
1550 | Syzgyn-40270 | button.text:SetPoint("RIGHT", button) |
|
1551 | Syzgyn-40270 | button.text:SetJustifyH("LEFT") |
|
1552 | Syzgyn-40270 | button.text:SetTextColor(1,1,1) |
|
1553 | 109 | Tomate-202285 | |
1554 | 2 | Syzgyn-40270 | button.icon = button:CreateTexture(nil, "ARTWORK") |
1555 | Syzgyn-40270 | button.icon:SetWidth(16) |
|
1556 | Syzgyn-40270 | button.icon:SetHeight(16) |
|
1557 | Syzgyn-40270 | button.icon:SetPoint("RIGHT", button.text, "LEFT") |
|
1558 | 109 | Tomate-202285 | |
1559 | 2 | Syzgyn-40270 | button.comparison = button:CreateTexture(nil, "ARTWORK") |
1560 | Syzgyn-40270 | button.comparison:SetWidth(16) |
|
1561 | Syzgyn-40270 | button.comparison:SetHeight(16) |
|
1562 | Syzgyn-40270 | button.comparison:SetPoint("LEFT", button.offset) |
|
1563 | 109 | Tomate-202285 | |
1564 | 2 | Syzgyn-40270 | local highlightTexture = button:CreateTexture() |
1565 | Syzgyn-40270 | highlightTexture:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Stat-Buttons") |
|
1566 | Syzgyn-40270 | highlightTexture:SetTexCoord(0, 1, 0.56, 0.73) |
|
1567 | 109 | Tomate-202285 | |
1568 | 2 | Syzgyn-40270 | button:SetHighlightTexture("Interface\\FriendsFrame\\UI-FriendsFrame-HighlightBar", "ADD") |
1569 | 109 | Tomate-202285 | |
1570 | 82 | Tomate-202285 | button:SetScript("OnMouseWheel", UrbanAchiever_CriteriaButtonScroll) |
1571 | 109 | Tomate-202285 | |
1572 | 2 | Syzgyn-40270 | button:SetScript("OnClick", function() |
1573 | Syzgyn-40270 | local id = button:GetID() |
|
1574 | Syzgyn-40270 | if button.icon:IsShown() then |
|
1575 | Syzgyn-40270 | self:SetDisplayAchievement(id) |
|
1576 | Syzgyn-40270 | end |
|
1577 | Syzgyn-40270 | end) |
|
1578 | 109 | Tomate-202285 | |
1579 | 2 | Syzgyn-40270 | return button |
1580 | Syzgyn-40270 | end |
|
1581 | Syzgyn-40270 | ||
1582 | Syzgyn-40270 | function self:CreateAchievementSortButton(name, width, parent, text, sortStr) |
|
1583 | Syzgyn-40270 | local button = CreateFrame("Button", name, parent) |
|
1584 | Syzgyn-40270 | button:SetHeight(16) |
|
1585 | Syzgyn-40270 | button:SetWidth(width) |
|
1586 | Syzgyn-40270 | button:SetNormalTexture("Interface\\AchievementFrame\\UI-Achievement-Parchment-Horizontal-Desaturated") |
|
1587 | Syzgyn-40270 | button:SetHighlightTexture("Interface/FriendsFrame/UI-FriendsFrame-HighlightBar", "ADD") |
|
1588 | 109 | Tomate-202285 | |
1589 | 2 | Syzgyn-40270 | button.text = button:CreateFontString("$parentText", "ARTWORK", "GameFontNormal") |
1590 | Syzgyn-40270 | button.text:SetPoint("CENTER", 0, 2) |
|
1591 | Syzgyn-40270 | button.text:SetTextColor(1,1,1) |
|
1592 | Syzgyn-40270 | button.text:SetText(text) |
|
1593 | 109 | Tomate-202285 | |
1594 | 55 | Syzgyn-40270 | button:SetScript("OnClick", function() self:SortDisplayTable(sortStr) end) |
1595 | 109 | Tomate-202285 | |
1596 | 2 | Syzgyn-40270 | return button |
1597 | Syzgyn-40270 | end |
|
1598 | Syzgyn-40270 | ||
1599 | Syzgyn-40270 | function self:CreateTab(name, parent, text, tab) |
|
1600 | Syzgyn-40270 | local button = CreateFrame("Button", name, parent) |
|
1601 | Syzgyn-40270 | button:SetHeight(30) |
|
1602 | Syzgyn-40270 | button:SetWidth(100) |
|
1603 | 8 | Syzgyn-40270 | |
1604 | 2 | Syzgyn-40270 | button:SetHighlightTexture("Interface\\PaperDollInfoFrame\\UI-Character-Tab-Highlight", "ADD") |
1605 | Syzgyn-40270 | ||
1606 | Syzgyn-40270 | button:SetBackdrop({ |
|
1607 | Syzgyn-40270 | edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Border", tile = true, edgeSize = 16, |
|
1608 | Syzgyn-40270 | insets = {left = -5, right = -5, top = -5, bottom = -5} |
|
1609 | Syzgyn-40270 | }) |
|
1610 | Syzgyn-40270 | button.backdrop = button:CreateTexture("$parentBG", "BACKGROUND") |
|
1611 | Syzgyn-40270 | button.backdrop:SetPoint("TOPLEFT", 2, -2) |
|
1612 | Syzgyn-40270 | button.backdrop:SetPoint("BOTTOMRIGHT", -2, 2) |
|
1613 | 109 | Tomate-202285 | button.backdrop:SetTexture(0,0,0,1) |
1614 | Tomate-202285 | ||
1615 | 2 | Syzgyn-40270 | button.text = button:CreateFontString("$parentText", "ARTWORK", "GameFontNormal") |
1616 | Syzgyn-40270 | button.text:SetPoint("CENTER") |
|
1617 | Syzgyn-40270 | button.text:SetTextColor(1,1,1) |
|
1618 | Syzgyn-40270 | button.text:SetText(text) |
|
1619 | 109 | Tomate-202285 | |
1620 | 2 | Syzgyn-40270 | button:SetScript("OnClick", function() |
1621 | Syzgyn-40270 | self.currentTab = tab |
|
1622 | Syzgyn-40270 | self:RefreshCategoryButtons() |
|
1623 | Syzgyn-40270 | end) |
|
1624 | 109 | Tomate-202285 | |
1625 | 2 | Syzgyn-40270 | return button |
1626 | Syzgyn-40270 | end |
|
1627 | Syzgyn-40270 | ||
1628 | Syzgyn-40270 | function self:CreateEditbox(parent) |
|
1629 | 41 | Syzgyn-40270 | --Shamelessly yoinked from MSBT. Much <3 |
1630 | 2 | Syzgyn-40270 | -- Create container frame. |
1631 | Syzgyn-40270 | local editbox = CreateFrame("Frame", nil, parent) |
|
1632 | Syzgyn-40270 | editbox:SetHeight(32) |
|
1633 | Syzgyn-40270 | ||
1634 | Syzgyn-40270 | -- Create editbox frame. |
|
1635 | Syzgyn-40270 | local editboxFrame = CreateFrame("Editbox", nil, editbox) |
|
1636 | Syzgyn-40270 | editboxFrame:SetHeight(20) |
|
1637 | Syzgyn-40270 | editboxFrame:SetPoint("BOTTOMLEFT", editbox, "BOTTOMLEFT", 5, 0) |
|
1638 | Syzgyn-40270 | editboxFrame:SetPoint("BOTTOMRIGHT") |
|
1639 | Syzgyn-40270 | editboxFrame:SetAutoFocus(false) |
|
1640 | Syzgyn-40270 | editboxFrame:SetFontObject(ChatFontNormal) |
|
1641 | Syzgyn-40270 | editboxFrame:SetScript("OnEscapePressed", function() editboxFrame:ClearFocus() end) |
|
1642 | Syzgyn-40270 | editboxFrame:SetScript("OnEditFocusLost", function() editboxFrame:HighlightText(0, 0) end) |
|
1643 | Syzgyn-40270 | editboxFrame:SetScript("OnEditFocusGained", function() editboxFrame:HighlightText() end) |
|
1644 | 41 | Syzgyn-40270 | editboxFrame:SetScript("OnEnterPressed", function() self:Search(editboxFrame:GetText()) editboxFrame:ClearFocus() end) |
1645 | 2 | Syzgyn-40270 | |
1646 | Syzgyn-40270 | -- Left border. |
|
1647 | Syzgyn-40270 | local left = editboxFrame:CreateTexture(nil, "BACKGROUND") |
|
1648 | Syzgyn-40270 | left:SetTexture("Interface\\Common\\Common-Input-Border") |
|
1649 | Syzgyn-40270 | left:SetWidth(8) |
|
1650 | Syzgyn-40270 | left:SetHeight(22) |
|
1651 | Syzgyn-40270 | left:SetPoint("LEFT", editboxFrame, "LEFT", -5, 0) |
|
1652 | Syzgyn-40270 | left:SetTexCoord(0, 0.0625, 0, 0.625) |
|
1653 | Syzgyn-40270 | ||
1654 | 109 | Tomate-202285 | -- Right border. |
1655 | 2 | Syzgyn-40270 | local right = editboxFrame:CreateTexture(nil, "BACKGROUND") |
1656 | Syzgyn-40270 | right:SetTexture("Interface\\Common\\Common-Input-Border") |
|
1657 | Syzgyn-40270 | right:SetWidth(8) |
|
1658 | Syzgyn-40270 | right:SetHeight(22) |
|
1659 | Syzgyn-40270 | right:SetPoint("RIGHT") |
|
1660 | Syzgyn-40270 | right:SetTexCoord(0.9375, 1, 0, 0.625) |
|
1661 | Syzgyn-40270 | ||
1662 | 109 | Tomate-202285 | -- Middle border. |
1663 | 2 | Syzgyn-40270 | local middle = editboxFrame:CreateTexture(nil, "BACKGROUND") |
1664 | Syzgyn-40270 | middle:SetTexture("Interface\\Common\\Common-Input-Border") |
|
1665 | Syzgyn-40270 | middle:SetWidth(10) |
|
1666 | Syzgyn-40270 | middle:SetHeight(22) |
|
1667 | Syzgyn-40270 | middle:SetPoint("LEFT", left, "RIGHT", 0, 0) |
|
1668 | Syzgyn-40270 | middle:SetPoint("RIGHT", right, "LEFT", 0, 0) |
|
1669 | Syzgyn-40270 | middle:SetTexCoord(0.0625, 0.9375, 0, 0.625) |
|
1670 | Syzgyn-40270 | ||
1671 | Syzgyn-40270 | ||
1672 | Syzgyn-40270 | -- Label. |
|
1673 | Syzgyn-40270 | local label = editbox:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall") |
|
1674 | Syzgyn-40270 | label:SetPoint("TOPLEFT") |
|
1675 | Syzgyn-40270 | label:SetPoint("TOPRIGHT") |
|
1676 | Syzgyn-40270 | label:SetJustifyH("LEFT") |
|
1677 | Syzgyn-40270 | ||
1678 | Syzgyn-40270 | return editbox |
|
1679 | Syzgyn-40270 | end |
|
1680 | Syzgyn-40270 | ||
1681 | Syzgyn-40270 | ------------------------------------------------------------- |
|
1682 | 109 | Tomate-202285 | --Scroll Stuff |
1683 | 2 | Syzgyn-40270 | ------------------------------------------------------------- |
1684 | 82 | Tomate-202285 | function UrbanAchiever_OnCatScroll(self1) |
1685 | Tomate-202285 | self.catOffset = self1:GetValue() |
|
1686 | 2 | Syzgyn-40270 | self:RefreshCategoryButtons() |
1687 | Syzgyn-40270 | end |
|
1688 | Syzgyn-40270 | ||
1689 | 82 | Tomate-202285 | function UrbanAchiever_OnAchScroll(self1) |
1690 | Tomate-202285 | self.achOffset = self1:GetValue() |
|
1691 | 2 | Syzgyn-40270 | self:RefreshAchievementButtons(false) |
1692 | Syzgyn-40270 | end |
|
1693 | Syzgyn-40270 | ||
1694 | 82 | Tomate-202285 | function UrbanAchiever_OnCriteriaScroll(self1) |
1695 | Tomate-202285 | self.criteriaOffset = self1:GetValue() |
|
1696 | 2 | Syzgyn-40270 | self:RefreshCriteriaButtons() |
1697 | Syzgyn-40270 | end |
|
1698 | Syzgyn-40270 | ||
1699 | Syzgyn-40270 | ------------------------------------------------------------- |
|
1700 | 109 | Tomate-202285 | --Core Stuff |
1701 | 2 | Syzgyn-40270 | ------------------------------------------------------------- |
1702 | Syzgyn-40270 | function self:UpdateFunction() |
|
1703 | Syzgyn-40270 | if (not self.frame) or (not self.frame:IsShown()) then return end |
|
1704 | Syzgyn-40270 | self:RefreshCategoryButtons() |
|
1705 | 52 | Syzgyn-40270 | self:RefreshAchievementButtons(false) |
1706 | 2 | Syzgyn-40270 | self:ComparisonUpdate() |
1707 | Syzgyn-40270 | end |
|
1708 | Syzgyn-40270 | ||
1709 | Syzgyn-40270 | function self:PopulateMasterList() |
|
1710 | Syzgyn-40270 | local id, name, points, completed, month, day, year, description, icon, reward, searchString |
|
1711 | Syzgyn-40270 | local criteriaName |
|
1712 | Syzgyn-40270 | local catList, numAchievements, nextId |
|
1713 | Syzgyn-40270 | local tempTable = {} |
|
1714 | Syzgyn-40270 | local category |
|
1715 | 109 | Tomate-202285 | |
1716 | 2 | Syzgyn-40270 | --Get Every achievement |
1717 | Syzgyn-40270 | for i=1, MAX_ACHIEVEMENTS do |
|
1718 | Syzgyn-40270 | searchString = self:GetSearchString(i) |
|
1719 | 162 | Tomate-202285 | |
1720 | Tomate-202285 | if searchString and hidden == nil then |
|
1721 | 2 | Syzgyn-40270 | self.masterList[i] = { |
1722 | Syzgyn-40270 | ["searchString"] = searchString:lower(), |
|
1723 | Syzgyn-40270 | } |
|
1724 | 109 | Tomate-202285 | |
1725 | 2 | Syzgyn-40270 | if not GetNextAchievement(i) then |
1726 | 133 | Tomate-202285 | --If this isnt in the middle of a chain, add it to the category listing |
1727 | 162 | Tomate-202285 | if self:checkHidden(i) then |
1728 | Tomate-202285 | category = GetAchievementCategory(i) |
|
1729 | Tomate-202285 | if not self.seriesList[category] then |
|
1730 | Tomate-202285 | self.seriesList[category] = {} |
|
1731 | Tomate-202285 | end |
|
1732 | Tomate-202285 | ||
1733 | Tomate-202285 | tinsert(self.seriesList[category], i) |
|
1734 | 2 | Syzgyn-40270 | end |
1735 | Syzgyn-40270 | end |
|
1736 | Syzgyn-40270 | end |
|
1737 | Syzgyn-40270 | end |
|
1738 | Syzgyn-40270 | end |
|
1739 | Syzgyn-40270 | ||
1740 | Syzgyn-40270 | function self:PopulateCategories(tab) |
|
1741 | Syzgyn-40270 | local list, name, parent |
|
1742 | 38 | Syzgyn-40270 | local isAch = false |
1743 | 107 | Tomate-202285 | local isGuild = false |
1744 | 2 | Syzgyn-40270 | --Populate the list from API |
1745 | Syzgyn-40270 | if tab == "achievements" then |
|
1746 | Syzgyn-40270 | list = GetCategoryList() |
|
1747 | 38 | Syzgyn-40270 | isAch = true |
1748 | 2 | Syzgyn-40270 | else |
1749 | 107 | Tomate-202285 | if tab == "guild" then |
1750 | Tomate-202285 | list = GetGuildCategoryList() |
|
1751 | Tomate-202285 | isGuild = true |
|
1752 | Tomate-202285 | else |
|
1753 | Tomate-202285 | list = GetStatisticsCategoryList() |
|
1754 | Tomate-202285 | end |
|
1755 | 2 | Syzgyn-40270 | end |
1756 | 109 | Tomate-202285 | |
1757 | 2 | Syzgyn-40270 | --Insert summary Category |
1758 | Syzgyn-40270 | tinsert(self.categories[tab], { |
|
1759 | 109 | Tomate-202285 | ["id"] = "-1", |
1760 | 86 | Tomate-202285 | ["name"] = UASummary, |
1761 | 2 | Syzgyn-40270 | ["collapsed"] = true, |
1762 | Syzgyn-40270 | ["children"] = {} |
|
1763 | Syzgyn-40270 | }) |
|
1764 | 109 | Tomate-202285 | |
1765 | 2 | Syzgyn-40270 | --Add top level Categories |
1766 | Syzgyn-40270 | for _,id in next, list do |
|
1767 | Syzgyn-40270 | name, parent = GetCategoryInfo(id) |
|
1768 | 38 | Syzgyn-40270 | self.isAchList[id] = isAch |
1769 | 107 | Tomate-202285 | self.isGuildList[id] = isGuild |
1770 | Tomate-202285 | if parent == 15076 then |
|
1771 | Tomate-202285 | parent = -1 |
|
1772 | Tomate-202285 | end |
|
1773 | 2 | Syzgyn-40270 | if parent == -1 then |
1774 | Syzgyn-40270 | tinsert(self.categories[tab], { |
|
1775 | 109 | Tomate-202285 | ["id"] = id, |
1776 | 2 | Syzgyn-40270 | ["name"] = name, |
1777 | Syzgyn-40270 | ["collapsed"] = true, |
|
1778 | Syzgyn-40270 | ["children"] = {} |
|
1779 | Syzgyn-40270 | }) |
|
1780 | Syzgyn-40270 | end |
|
1781 | Syzgyn-40270 | end |
|
1782 | 109 | Tomate-202285 | |
1783 | 2 | Syzgyn-40270 | --Add child Categories |
1784 | Syzgyn-40270 | for _,childId in next, list do |
|
1785 | 135 | Tomate-202285 | local childName, childParent = GetCategoryInfo(childId) |
1786 | 2 | Syzgyn-40270 | for parentKey, parentCat in next, self.categories[tab] do |
1787 | Syzgyn-40270 | if childParent == parentCat.id then |
|
1788 | Syzgyn-40270 | tinsert(parentCat.children,{ |
|
1789 | 133 | Tomate-202285 | ["id"] = childId, |
1790 | Tomate-202285 | ["name"] = childName |
|
1791 | 2 | Syzgyn-40270 | }) |
1792 | Syzgyn-40270 | end |
|
1793 | Syzgyn-40270 | end |
|
1794 | Syzgyn-40270 | end |
|
1795 | Syzgyn-40270 | end |
|
1796 | Syzgyn-40270 | ||
1797 | Syzgyn-40270 | function self:SetAchievementButton(button, id, offset) |
|
1798 | 133 | Tomate-202285 | local retok, id, name, points, completed, month, day, year, description, flags,icon, reward = pcall(GetAchievementInfo,id) |
1799 | 82 | Tomate-202285 | if not retok then return nil end |
1800 | 109 | Tomate-202285 | |
1801 | 81 | Tomate-202285 | if completed then |
1802 | Tomate-202285 | if year < 10 then |
|
1803 | 109 | Tomate-202285 | year = "0" .. year; |
1804 | 81 | Tomate-202285 | end |
1805 | 104 | Tomate-202285 | if (GetLocale() == "frFR" or GetLocale() == "ruRU") then |
1806 | 81 | Tomate-202285 | completed = day .. "/" .. month .. "/" .. year; |
1807 | Tomate-202285 | else |
|
1808 | 105 | Tomate-202285 | if (GetLocale() == "deDE") then |
1809 | Tomate-202285 | completed = day .. "." .. month .. "." .. year; |
|
1810 | Tomate-202285 | else |
|
1811 | Tomate-202285 | completed = month .. "/" .. day .. "/" .. year; |
|
1812 | Tomate-202285 | end |
|
1813 | 81 | Tomate-202285 | end |
1814 | Tomate-202285 | else |
|
1815 | Tomate-202285 | completed = ""; |
|
1816 | Tomate-202285 | end |
|
1817 | 8 | Syzgyn-40270 | if not offset then offset = 1 end |
1818 | 109 | Tomate-202285 | |
1819 | 8 | Syzgyn-40270 | self.frame.achButtons[button]:SetWidth(300) |
1820 | 2 | Syzgyn-40270 | self.frame.achButtons[button].name:SetText(name) |
1821 | Syzgyn-40270 | self.frame.achButtons[button].completed:SetText(completed) |
|
1822 | Syzgyn-40270 | self.frame.achButtons[button]:SetID(id) |
|
1823 | Syzgyn-40270 | self.frame.achButtons[button].expand:Hide() |
|
1824 | Syzgyn-40270 | self.frame.achButtons[button].compare:SetText("") |
|
1825 | Syzgyn-40270 | self.frame.achButtons[button].comparison:Hide() |
|
1826 | 109 | Tomate-202285 | |
1827 | 133 | Tomate-202285 | self.frame.achButtons[button].background:SetVertexColor(1, 1, 1) |
1828 | Tomate-202285 | if flags ~= nil then |
|
1829 | Tomate-202285 | if ( bit.band(flags, ACHIEVEMENT_FLAGS_ACCOUNT) == ACHIEVEMENT_FLAGS_ACCOUNT ) then |
|
1830 | 149 | Tomate-202285 | self.frame.achButtons[button].background:SetVertexColor(.4, .4, 1) |
1831 | 133 | Tomate-202285 | end |
1832 | Tomate-202285 | end |
|
1833 | Tomate-202285 | ||
1834 | Tomate-202285 | ||
1835 | 2 | Syzgyn-40270 | self.frame.achButtons[button].background:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Parchment-Horizontal") |
1836 | Syzgyn-40270 | self.frame.achButtons[button].comparison.background:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Parchment-Horizontal") |
|
1837 | 109 | Tomate-202285 | |
1838 | 107 | Tomate-202285 | if self.isAchList[GetAchievementCategory(id)] == false and self.isGuildList[GetAchievementCategory(id)] == false then |
1839 | 133 | Tomate-202285 | --Its a statistic, no date, no points |
1840 | 51 | Syzgyn-40270 | self.frame.achButtons[button].stat:SetText(self:FormatString(GetStatistic(id))) |
1841 | 2 | Syzgyn-40270 | self.frame.achButtons[button].points:SetText("") |
1842 | 109 | Tomate-202285 | |
1843 | 2 | Syzgyn-40270 | if self.isComparing then |
1844 | Syzgyn-40270 | self.frame.achButtons[button].comparison:Show() |
|
1845 | 51 | Syzgyn-40270 | self.frame.achButtons[button].compare:SetText(self:FormatString(GetComparisonStatistic(id))) |
1846 | 2 | Syzgyn-40270 | end |
1847 | Syzgyn-40270 | else |
|
1848 | Syzgyn-40270 | self.frame.achButtons[button].points:SetText(points) |
|
1849 | Syzgyn-40270 | self.frame.achButtons[button].stat:SetText("") |
|
1850 | Syzgyn-40270 | ||
1851 | 109 | Tomate-202285 | if completed == "" then |
1852 | 2 | Syzgyn-40270 | self.frame.achButtons[button].background:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Parchment-Horizontal-Desaturated") |
1853 | Syzgyn-40270 | end |
|
1854 | 109 | Tomate-202285 | |
1855 | 69 | Syzgyn-40270 | if IsTrackedAchievement(id) then |
1856 | 49 | Syzgyn-40270 | self.frame.achButtons[button].expand:SetTextColor(0,1,0) |
1857 | Syzgyn-40270 | self.frame.achButtons[button].expand:SetText("T") |
|
1858 | Syzgyn-40270 | self.frame.achButtons[button].expand:Show() |
|
1859 | Syzgyn-40270 | elseif reward ~= "" then --Theres a reward, it takes precidence |
|
1860 | 2 | Syzgyn-40270 | self.frame.achButtons[button].expand:SetTextColor(1,0,0) |
1861 | Syzgyn-40270 | self.frame.achButtons[button].expand:SetText("!") |
|
1862 | Syzgyn-40270 | self.frame.achButtons[button].expand:Show() |
|
1863 | 8 | Syzgyn-40270 | elseif self.currentCat > 0 then --If we're searching or at the summary, we dont want to see the + or - |
1864 | 2 | Syzgyn-40270 | self.frame.achButtons[button].expand:SetTextColor(1,1,1) |
1865 | Syzgyn-40270 | if GetPreviousAchievement(id) and (not GetNextAchievement(id)) then --There's a sub achievement |
|
1866 | Syzgyn-40270 | self.frame.achButtons[button].expand:Show() |
|
1867 | Syzgyn-40270 | if self.expandList[id] then |
|
1868 | Syzgyn-40270 | self.frame.achButtons[button].expand:SetText("-") |
|
1869 | Syzgyn-40270 | else |
|
1870 | Syzgyn-40270 | self.frame.achButtons[button].expand:SetText("+") |
|
1871 | Syzgyn-40270 | end |
|
1872 | Syzgyn-40270 | end |
|
1873 | Syzgyn-40270 | end |
|
1874 | 109 | Tomate-202285 | |
1875 | 2 | Syzgyn-40270 | if self.isComparing then |
1876 | Syzgyn-40270 | self.frame.achButtons[button].comparison:Show() |
|
1877 | Syzgyn-40270 | local compDone, compM, compD, compY = GetAchievementComparisonInfo(id, 1) |
|
1878 | 109 | Tomate-202285 | |
1879 | Tomate-202285 | if compDone then |
|
1880 | 2 | Syzgyn-40270 | self.frame.achButtons[button].compare:SetText(string.format("%d/%d/0%d", compM, compD, compY)) |
1881 | Syzgyn-40270 | else |
|
1882 | Syzgyn-40270 | self.frame.achButtons[button].comparison.background:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Parchment-Horizontal-Desaturated") |
|
1883 | Syzgyn-40270 | end |
|
1884 | Syzgyn-40270 | end |
|
1885 | Syzgyn-40270 | end |
|
1886 | 109 | Tomate-202285 | |
1887 | 2 | Syzgyn-40270 | if self.currentAch == id then |
1888 | Syzgyn-40270 | self.frame.achButtons[button]:LockHighlight() |
|
1889 | Syzgyn-40270 | else |
|
1890 | Syzgyn-40270 | self.frame.achButtons[button]:UnlockHighlight() |
|
1891 | Syzgyn-40270 | end |
|
1892 | 109 | Tomate-202285 | |
1893 | 2 | Syzgyn-40270 | self.frame.achButtons[button].offset:SetWidth(offset) |
1894 | Syzgyn-40270 | self.frame.achButtons[button]:Show() |
|
1895 | Syzgyn-40270 | end |
|
1896 | Syzgyn-40270 | ||
1897 | 69 | Syzgyn-40270 | function self:SetDisplayAchievement(id, forceCat) |
1898 | 2 | Syzgyn-40270 | if id == nil then id = self.currentAch end |
1899 | Syzgyn-40270 | if not self.masterList[id] then return end |
|
1900 | 109 | Tomate-202285 | |
1901 | 2 | Syzgyn-40270 | self.currentAch = id |
1902 | 109 | Tomate-202285 | |
1903 | 2 | Syzgyn-40270 | --Update the category list |
1904 | Syzgyn-40270 | --On second thought, I dont want it doing this. |
|
1905 | 8 | Syzgyn-40270 | --On third thought, I only want to do it if we're coming from the summary frame. |
1906 | 69 | Syzgyn-40270 | if self.currentCat == -1 or forceCat then |
1907 | 8 | Syzgyn-40270 | self:SetCategory(self.currentAch) |
1908 | 2 | Syzgyn-40270 | end |
1909 | 109 | Tomate-202285 | |
1910 | 2 | Syzgyn-40270 | --Update this achievement |
1911 | Syzgyn-40270 | self.masterList[id].searchString = self:GetSearchString(id) |
|
1912 | 109 | Tomate-202285 | |
1913 | 82 | Tomate-202285 | local retok, id, name, points, completed, month, day, year, description, _,icon, reward = pcall (GetAchievementInfo,id) |
1914 | 109 | Tomate-202285 | |
1915 | 2 | Syzgyn-40270 | self.frame.display:Show() |
1916 | 28 | Syzgyn-40270 | self.frame.display.icon:SetTexture(icon) |
1917 | 2 | Syzgyn-40270 | self.frame.display.name:SetText(name) |
1918 | Syzgyn-40270 | self.frame.display.desc:SetText(description) |
|
1919 | Syzgyn-40270 | self.frame.display.compareDate:Hide() |
|
1920 | 109 | Tomate-202285 | |
1921 | 107 | Tomate-202285 | if self.isAchList[GetAchievementCategory(id)] == false and self.isGuildList[GetAchievementCategory(id)] == false then |
1922 | 2 | Syzgyn-40270 | --Statistic |
1923 | 25 | Syzgyn-40270 | self.frame.display.icon:Hide() |
1924 | Syzgyn-40270 | self.frame.display.icon:SetWidth(1) |
|
1925 | 2 | Syzgyn-40270 | self.frame.display.shield:Hide() |
1926 | Syzgyn-40270 | self.frame.display.reward:SetText("") |
|
1927 | Syzgyn-40270 | self.frame.display.points:SetText("") |
|
1928 | Syzgyn-40270 | self.frame.display.desc:SetText("") |
|
1929 | 25 | Syzgyn-40270 | self.frame.display.name:SetJustifyH("MIDDLE") |
1930 | 29 | Syzgyn-40270 | self.frame.display.name:SetWidth(280) |
1931 | 109 | Tomate-202285 | |
1932 | 2 | Syzgyn-40270 | for a = 1, #self.frame.display.criteriaButtons do |
1933 | Syzgyn-40270 | self.frame.display.criteriaButtons[a]:Hide() |
|
1934 | Syzgyn-40270 | self.frame.display.criteriaButtons[a].icon:Hide() |
|
1935 | Syzgyn-40270 | end |
|
1936 | 109 | Tomate-202285 | |
1937 | 51 | Syzgyn-40270 | self.frame.display.reward:SetText("|cffffffff" .. self:FormatString(GetStatistic(id))) |
1938 | 2 | Syzgyn-40270 | if self.isComparing then |
1939 | 26 | Syzgyn-40270 | self.frame.display.compareDate:Show() |
1940 | 51 | Syzgyn-40270 | self.frame.display.compareDate:SetText("|cffffffff" .. self.comparisonUnitName .. ": " .. self:FormatString(GetComparisonStatistic(id))) |
1941 | Syzgyn-40270 | self.frame.display.reward:SetText("|cffffffff" .. UnitName("player") .. ": " .. self:FormatString(GetStatistic(id))) |
|
1942 | 2 | Syzgyn-40270 | end |
1943 | 50 | Syzgyn-40270 | if UASVPC.statCriteria then |
1944 | 29 | Syzgyn-40270 | self:RefreshCriteriaButtons() |
1945 | Syzgyn-40270 | else |
|
1946 | Syzgyn-40270 | for i=1, #self.frame.display.criteriaButtons do |
|
1947 | Syzgyn-40270 | self.frame.display.criteriaButtons[i]:Hide() |
|
1948 | 50 | Syzgyn-40270 | self.frame.criteriaScroll:Hide() |
1949 | 29 | Syzgyn-40270 | end |
1950 | Syzgyn-40270 | end |
|
1951 | 2 | Syzgyn-40270 | else |
1952 | Syzgyn-40270 | --Achievement |
|
1953 | Syzgyn-40270 | self.frame.display.icon:Show() |
|
1954 | 25 | Syzgyn-40270 | self.frame.display.icon:SetWidth(64) |
1955 | 2 | Syzgyn-40270 | self.frame.display.shield:Show() |
1956 | 25 | Syzgyn-40270 | self.frame.display.name:SetJustifyH("LEFT") |
1957 | 29 | Syzgyn-40270 | self.frame.display.name:SetWidth(220) |
1958 | 81 | Tomate-202285 | if completed then |
1959 | Tomate-202285 | if year < 10 then |
|
1960 | 109 | Tomate-202285 | year = "0" .. year; |
1961 | 81 | Tomate-202285 | end |
1962 | 104 | Tomate-202285 | if (GetLocale() == "frFR" or GetLocale() == "ruRU") then |
1963 | 81 | Tomate-202285 | completed = day .. "/" .. month .. "/" .. year; |
1964 | Tomate-202285 | else |
|
1965 | 106 | Tomate-202285 | if (GetLocale() == "deDE") then |
1966 | Tomate-202285 | completed = day .. "." .. month .. "." .. year; |
|
1967 | Tomate-202285 | else |
|
1968 | Tomate-202285 | completed = month .. "/" .. day .. "/" .. year; |
|
1969 | Tomate-202285 | end |
|
1970 | 81 | Tomate-202285 | end |
1971 | Tomate-202285 | else |
|
1972 | Tomate-202285 | completed = ""; |
|
1973 | Tomate-202285 | end |
|
1974 | 109 | Tomate-202285 | |
1975 | Tomate-202285 | if points == 0 then |
|
1976 | 93 | Tomate-202285 | self.frame.display.shield:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Shields-NoPoints") |
1977 | 2 | Syzgyn-40270 | self.frame.display.points:SetText("") |
1978 | Syzgyn-40270 | else |
|
1979 | Syzgyn-40270 | self.frame.display.points:SetText(points) |
|
1980 | 93 | Tomate-202285 | self.frame.display.shield:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Shields") |
1981 | 2 | Syzgyn-40270 | end |
1982 | 133 | Tomate-202285 | |
1983 | Tomate-202285 | ||
1984 | 113 | Tomate-202285 | if self.currentTab == "guild" then |
1985 | 135 | Tomate-202285 | local requiresRep, hasRep, repLevel = GetAchievementGuildRep(self.currentAch); |
1986 | 113 | Tomate-202285 | if ( requiresRep ) then |
1987 | Tomate-202285 | local gender = UnitSex("player"); |
|
1988 | Tomate-202285 | local factionStandingtext = GetText("FACTION_STANDING_LABEL"..repLevel, gender); |
|
1989 | Tomate-202285 | self.frame.display.repCriteria:SetFormattedText(ACHIEVEMENT_REQUIRES_GUILD_REPUTATION, factionStandingtext); |
|
1990 | Tomate-202285 | if ( hasRep ) then |
|
1991 | Tomate-202285 | self.frame.display.repCriteria:SetTextColor(0, 1, 0); |
|
1992 | Tomate-202285 | else |
|
1993 | Tomate-202285 | self.frame.display.repCriteria:SetTextColor(1, 0, 0); |
|
1994 | Tomate-202285 | end |
|
1995 | Tomate-202285 | self.frame.display.repCriteria:Show(); |
|
1996 | Tomate-202285 | else |
|
1997 | Tomate-202285 | self.frame.display.repCriteria:Hide(); |
|
1998 | Tomate-202285 | end |
|
1999 | Tomate-202285 | else |
|
2000 | Tomate-202285 | self.frame.display.repCriteria:Hide(); |
|
2001 | Tomate-202285 | end |
|
2002 | 133 | Tomate-202285 | |
2003 | 2 | Syzgyn-40270 | if completed == "" then |
2004 | 84 | Tomate-202285 | self.frame.display.shield:SetTexCoord(.5, 1, 0, .5) |
2005 | 2 | Syzgyn-40270 | self.frame.display.points:SetVertexColor(.65, .65, .65) |
2006 | Syzgyn-40270 | self.frame.display.reward:SetText(reward) |
|
2007 | 113 | Tomate-202285 | self.frame.display.completed:SetText("") |
2008 | 2 | Syzgyn-40270 | else |
2009 | 84 | Tomate-202285 | self.frame.display.shield:SetTexCoord(0 , .5, 0, .5) |
2010 | 2 | Syzgyn-40270 | self.frame.display.points:SetVertexColor(1, 1, 1) |
2011 | 113 | Tomate-202285 | self.frame.display.reward:SetText(reward) |
2012 | Tomate-202285 | self.frame.display.completed:SetText(UACompleted .. ": " .. completed) |
|
2013 | 2 | Syzgyn-40270 | end |
2014 | 109 | Tomate-202285 | |
2015 | 2 | Syzgyn-40270 | if self.isComparing then |
2016 | Syzgyn-40270 | local compDone, m, d, y = GetAchievementComparisonInfo(id,1) |
|
2017 | Syzgyn-40270 | if compDone then |
|
2018 | 109 | Tomate-202285 | self.frame.display.compareDate:Show() |
2019 | 86 | Tomate-202285 | self.frame.display.compareDate:SetText(string.format("%s " .. UACompleted .. ":" .." %d/%d/0%d", self.comparisonUnitName, m or -1, d or -1, y or -1)) |
2020 | 2 | Syzgyn-40270 | end |
2021 | Syzgyn-40270 | end |
|
2022 | 29 | Syzgyn-40270 | self:RefreshCriteriaButtons() |
2023 | 2 | Syzgyn-40270 | end |
2024 | Syzgyn-40270 | end |
|
2025 | 8 | Syzgyn-40270 | ------------------------------------------------------------- |
2026 | 109 | Tomate-202285 | --Refresh Stuff |
2027 | 8 | Syzgyn-40270 | ------------------------------------------------------------- |
2028 | 2 | Syzgyn-40270 | function self:RefreshCriteriaButtons() |
2029 | 79 | Tomate-202285 | if self.frame == nil then self:Initialize("","") end |
2030 | Tomate-202285 | if self.frame == nil then return end |
|
2031 | 42 | Syzgyn-40270 | if not self.frame:IsShown() then return end |
2032 | 135 | Tomate-202285 | local id, month, day, year, criteriaName, criteriaType, criteriaCompleted, criteriaQuantity, criteriaReqQuantity, _ ,criteriaFlags, criteriaAssetID, icon, quantityStr, charName |
2033 | 2 | Syzgyn-40270 | local buttonNum = 1 |
2034 | Syzgyn-40270 | local str = "" |
|
2035 | Syzgyn-40270 | local offset = 1 |
|
2036 | Syzgyn-40270 | local compDone, comparisonComplete, compCriteriaText |
|
2037 | 109 | Tomate-202285 | |
2038 | 2 | Syzgyn-40270 | if self.isComparing then |
2039 | Syzgyn-40270 | compDone = GetAchievementComparisonInfo(self.currentAch,1) |
|
2040 | Syzgyn-40270 | end |
|
2041 | 109 | Tomate-202285 | |
2042 | 150 | Tomate-202285 | local numStatusBar = 0 |
2043 | 109 | Tomate-202285 | |
2044 | 31 | Syzgyn-40270 | self.frame.display.bar:Hide() |
2045 | Syzgyn-40270 | self.frame.display.compareBar:Hide() |
|
2046 | 109 | Tomate-202285 | |
2047 | 66 | Syzgyn-40270 | for a = self.criteriaOffset + 1, min(#self.frame.display.criteriaButtons + self.criteriaOffset, GetAchievementNumCriteria(self.currentAch)) do |
2048 | 151 | Tomate-202285 | self.frame.display.criteriaButtons[buttonNum]:Hide() |
2049 | 66 | Syzgyn-40270 | self.frame.display.criteriaButtons[buttonNum].icon:Hide() |
2050 | Syzgyn-40270 | self.frame.display.criteriaButtons[buttonNum].comparison:Hide() |
|
2051 | Syzgyn-40270 | offset = 1 |
|
2052 | 133 | Tomate-202285 | |
2053 | 113 | Tomate-202285 | criteriaName, criteriaType, criteriaCompleted, criteriaQuantity, criteriaReqQuantity, charName, criteriaFlags, criteriaAssetID, quantityStr = |
2054 | 133 | Tomate-202285 | GetAchievementCriteriaInfo(self.currentAch, a) |
2055 | 66 | Syzgyn-40270 | if criteriaType then --Some Achievements seem to throw out the wrong number of criteria, causing errors. |
2056 | 113 | Tomate-202285 | if criteriaType == CRITERIA_TYPE_ACHIEVEMENT and criteriaAssetID then |
2057 | Tomate-202285 | id, criteriaName, _, criteriaCompleted, month, day, year, _, _, icon = GetAchievementInfo(criteriaAssetID); |
|
2058 | Tomate-202285 | end |
|
2059 | 133 | Tomate-202285 | |
2060 | 66 | Syzgyn-40270 | if criteriaCompleted then |
2061 | Syzgyn-40270 | str = "|CFF00FF00" |
|
2062 | Syzgyn-40270 | else |
|
2063 | Syzgyn-40270 | str = "|CFF808080" |
|
2064 | Syzgyn-40270 | end |
|
2065 | Syzgyn-40270 | str = str .. criteriaName -- .. "= " .. criteriaQuantity .. " (" .. criteriaAssetID .. ")" |
|
2066 | Syzgyn-40270 | if UASVPC.specificCriteria and criteriaReqQuantity > 1 then |
|
2067 | Syzgyn-40270 | str = string.format("%s (%d/%d)", str, criteriaQuantity, criteriaReqQuantity) |
|
2068 | Syzgyn-40270 | end |
|
2069 | 109 | Tomate-202285 | |
2070 | 113 | Tomate-202285 | if criteriaType == CRITERIA_TYPE_ACHIEVEMENT and criteriaAssetID then |
2071 | 66 | Syzgyn-40270 | --Its a meta achievement |
2072 | 113 | Tomate-202285 | self.frame.display.criteriaButtons[buttonNum].icon:SetTexture(icon) |
2073 | Tomate-202285 | self.frame.display.criteriaButtons[buttonNum].icon:Show() |
|
2074 | Tomate-202285 | offset = offset + 16 |
|
2075 | Tomate-202285 | self.frame.display.criteriaButtons[buttonNum]:SetID(criteriaAssetID) |
|
2076 | 150 | Tomate-202285 | end |
2077 | Tomate-202285 | if (bit.band(criteriaFlags, 1) == 1) then |
|
2078 | 66 | Syzgyn-40270 | --Its a progress bar |
2079 | Syzgyn-40270 | offset = 1 |
|
2080 | Syzgyn-40270 | str = "" |
|
2081 | 150 | Tomate-202285 | numStatusBar = numStatusBar+1 |
2082 | 109 | Tomate-202285 | |
2083 | 151 | Tomate-202285 | self.frame.display.bar:ClearAllPoints() |
2084 | Tomate-202285 | self.frame.display.bar:SetPoint("CENTER", self.frame.display, 0, 60) |
|
2085 | Tomate-202285 | ||
2086 | 66 | Syzgyn-40270 | self.frame.display.bar:Show() |
2087 | Syzgyn-40270 | self.frame.display.bar:SetMinMaxValues(0,criteriaReqQuantity) |
|
2088 | Syzgyn-40270 | self.frame.display.bar:SetValue(criteriaQuantity) |
|
2089 | Syzgyn-40270 | local cQ, cRQ = criteriaQuantity, criteriaReqQuantity |
|
2090 | Syzgyn-40270 | if quantityStr:find("|T") then |
|
2091 | Syzgyn-40270 | cQ, cRQ = self:FormatMoney(criteriaQuantity, criteriaReqQuantity) |
|
2092 | 58 | Syzgyn-40270 | end |
2093 | 66 | Syzgyn-40270 | self.frame.display.bar.text:SetText(cQ .. " / " .. cRQ) |
2094 | 109 | Tomate-202285 | |
2095 | 66 | Syzgyn-40270 | if self.isComparing and compCriteriaText then |
2096 | Syzgyn-40270 | self.frame.display.compareBar:Show() |
|
2097 | Syzgyn-40270 | self.frame.display.compareBar:SetMinMaxValues(0, criteriaReqQuantity) |
|
2098 | Syzgyn-40270 | local _,_,min, max = string.find(compCriteriaText, "(%d+)/(%d+)") |
|
2099 | Syzgyn-40270 | self.frame.display.compareBar:SetValue(min) |
|
2100 | Syzgyn-40270 | --If theres money textures in the string, we're gonna need to format it. |
|
2101 | 51 | Syzgyn-40270 | if quantityStr:find("|T") then |
2102 | 66 | Syzgyn-40270 | min, criteriaReqQuantity = self:FormatMoney(min, criteriaReqQuantity) |
2103 | 51 | Syzgyn-40270 | end |
2104 | 66 | Syzgyn-40270 | self.frame.display.compareBar.text:SetText(min .. " / " .. criteriaReqQuantity) |
2105 | Syzgyn-40270 | self.frame.display.compareBar.nameText:SetText(self.comparisonUnitName .. ":") |
|
2106 | 109 | Tomate-202285 | |
2107 | 2 | Syzgyn-40270 | end |
2108 | 66 | Syzgyn-40270 | --If theres a progress bar, theres no other achievements |
2109 | 150 | Tomate-202285 | --break |
2110 | Tomate-202285 | local buttonNumCurrent |
|
2111 | Tomate-202285 | local buttonNumEnd = buttonNum+2 |
|
2112 | Tomate-202285 | for buttonNumCurrent=buttonNum, buttonNumEnd, 1 do |
|
2113 | Tomate-202285 | self.frame.display.criteriaButtons[buttonNumCurrent].icon:Hide() |
|
2114 | Tomate-202285 | self.frame.display.criteriaButtons[buttonNumCurrent].date = nil |
|
2115 | Tomate-202285 | self.frame.display.criteriaButtons[buttonNumCurrent].id = nil |
|
2116 | Tomate-202285 | self.frame.display.criteriaButtons[buttonNumCurrent].text:SetText('') |
|
2117 | Tomate-202285 | self.frame.display.criteriaButtons[buttonNumCurrent].offset:SetWidth(1) |
|
2118 | Tomate-202285 | end |
|
2119 | 113 | Tomate-202285 | else |
2120 | 151 | Tomate-202285 | self.frame.display.criteriaButtons[buttonNum]:Show() |
2121 | 150 | Tomate-202285 | if month then |
2122 | Tomate-202285 | self.frame.display.criteriaButtons[buttonNum].date = string.format(SHORTDATE, day, month, year); |
|
2123 | Tomate-202285 | else |
|
2124 | Tomate-202285 | self.frame.display.criteriaButtons[buttonNum].date = nil; |
|
2125 | Tomate-202285 | end |
|
2126 | Tomate-202285 | if id then |
|
2127 | Tomate-202285 | self.frame.display.criteriaButtons[buttonNum].id = id; |
|
2128 | Tomate-202285 | else |
|
2129 | Tomate-202285 | self.frame.display.criteriaButtons[buttonNum].id = nil; |
|
2130 | Tomate-202285 | end |
|
2131 | Tomate-202285 | self.frame.display.criteriaButtons[buttonNum].text:SetText(str) |
|
2132 | Tomate-202285 | self.frame.display.criteriaButtons[buttonNum].offset:SetWidth(offset) |
|
2133 | Tomate-202285 | buttonNum = buttonNum + 1 |
|
2134 | 113 | Tomate-202285 | end |
2135 | 2 | Syzgyn-40270 | end |
2136 | Syzgyn-40270 | end |
|
2137 | Syzgyn-40270 | self.frame.criteriaScroll:SetMinMaxValues(0,math.max(GetAchievementNumCriteria(self.currentAch)-#self.frame.display.criteriaButtons, 0)) |
|
2138 | 109 | Tomate-202285 | |
2139 | 151 | Tomate-202285 | if numStatusBar and buttonNum > 1 then |
2140 | Tomate-202285 | self.frame.display.compareBar:ClearAllPoints() |
|
2141 | Tomate-202285 | self.frame.display.bar:SetPoint("TOP", self.frame.display.criteriaButtons[buttonNum-1],"BOTTOM", 0, -15) |
|
2142 | Tomate-202285 | end |
|
2143 | Tomate-202285 | ||
2144 | 2 | Syzgyn-40270 | if GetAchievementNumCriteria(self.currentAch)-#self.frame.display.criteriaButtons > 0 then |
2145 | Syzgyn-40270 | self.frame.criteriaScroll:Show() |
|
2146 | Syzgyn-40270 | else |
|
2147 | Syzgyn-40270 | self.frame.criteriaScroll:Hide() |
|
2148 | Syzgyn-40270 | end |
|
2149 | 109 | Tomate-202285 | |
2150 | 151 | Tomate-202285 | for a = GetAchievementNumCriteria(self.currentAch) + 1, #self.frame.display.criteriaButtons do |
2151 | 2 | Syzgyn-40270 | self.frame.display.criteriaButtons[a]:Hide() |
2152 | Syzgyn-40270 | end |
|
2153 | Syzgyn-40270 | end |
|
2154 | Syzgyn-40270 | ||
2155 | 8 | Syzgyn-40270 | function self:RefreshCategoryButtons() |
2156 | Syzgyn-40270 | local count = 0 |
|
2157 | Syzgyn-40270 | local buttonNum = 1 |
|
2158 | Syzgyn-40270 | for k, v in next, self.categories[self.currentTab] do |
|
2159 | Syzgyn-40270 | count = count + 1 |
|
2160 | Syzgyn-40270 | if buttonNum <= #self.frame.catButtons and count > self.catOffset then |
|
2161 | Syzgyn-40270 | self.frame.catButtons[buttonNum].text:SetText(v.name) |
|
2162 | 30 | Syzgyn-40270 | self.frame.catButtons[buttonNum].offset:SetWidth(1) |
2163 | 8 | Syzgyn-40270 | self.frame.catButtons[buttonNum]:SetID(v.id) |
2164 | Syzgyn-40270 | if v.id == self.currentCat then |
|
2165 | Syzgyn-40270 | self.frame.catButtons[buttonNum]:LockHighlight() |
|
2166 | Syzgyn-40270 | else |
|
2167 | Syzgyn-40270 | self.frame.catButtons[buttonNum]:UnlockHighlight() |
|
2168 | Syzgyn-40270 | end |
|
2169 | Syzgyn-40270 | self.frame.catButtons[buttonNum]:Show() |
|
2170 | Syzgyn-40270 | buttonNum = buttonNum + 1 |
|
2171 | Syzgyn-40270 | end |
|
2172 | 109 | Tomate-202285 | |
2173 | 8 | Syzgyn-40270 | if v.collapsed == false then |
2174 | Syzgyn-40270 | for subK, subV in next, v.children do |
|
2175 | Syzgyn-40270 | count = count + 1 |
|
2176 | Syzgyn-40270 | if buttonNum <= #self.frame.catButtons and count > self.catOffset then |
|
2177 | 30 | Syzgyn-40270 | self.frame.catButtons[buttonNum].text:SetText(subV.name) |
2178 | Syzgyn-40270 | self.frame.catButtons[buttonNum].offset:SetWidth(10) |
|
2179 | 8 | Syzgyn-40270 | self.frame.catButtons[buttonNum]:SetID(subV.id) |
2180 | Syzgyn-40270 | if subV.id == self.currentCat then |
|
2181 | Syzgyn-40270 | self.frame.catButtons[buttonNum]:LockHighlight() |
|
2182 | Syzgyn-40270 | else |
|
2183 | Syzgyn-40270 | self.frame.catButtons[buttonNum]:UnlockHighlight() |
|
2184 | Syzgyn-40270 | end |
|
2185 | Syzgyn-40270 | self.frame.catButtons[buttonNum]:Show() |
|
2186 | Syzgyn-40270 | buttonNum = buttonNum + 1 |
|
2187 | Syzgyn-40270 | end |
|
2188 | Syzgyn-40270 | end |
|
2189 | Syzgyn-40270 | end |
|
2190 | Syzgyn-40270 | end |
|
2191 | 109 | Tomate-202285 | |
2192 | 8 | Syzgyn-40270 | self.frame.catScroll:SetMinMaxValues(0,math.max(count-#self.frame.catButtons, 0)) |
2193 | Syzgyn-40270 | if count-#self.frame.catButtons > 0 then |
|
2194 | Syzgyn-40270 | self.frame.catScroll:Show() |
|
2195 | Syzgyn-40270 | else |
|
2196 | Syzgyn-40270 | self.frame.catScroll:Hide() |
|
2197 | 109 | Tomate-202285 | end |
2198 | Tomate-202285 | ||
2199 | 8 | Syzgyn-40270 | for i = buttonNum, #self.frame.catButtons do |
2200 | Syzgyn-40270 | self.frame.catButtons[i]:Hide() |
|
2201 | Syzgyn-40270 | end |
|
2202 | 32 | Syzgyn-40270 | self:RefreshSummaryBar() |
2203 | 109 | Tomate-202285 | |
2204 | Tomate-202285 | if self.currentTab == "guild" then |
|
2205 | Tomate-202285 | self.pointsText:SetTextColor(0,1,0); |
|
2206 | 113 | Tomate-202285 | self.pointsText:SetText(GetTotalAchievementPoints(true)); |
2207 | 109 | Tomate-202285 | else |
2208 | Tomate-202285 | self.pointsText:SetTextColor(1,1,1); |
|
2209 | Tomate-202285 | self.pointsText:SetText(GetTotalAchievementPoints()); |
|
2210 | Tomate-202285 | end |
|
2211 | 135 | Tomate-202285 | self:RefreshSummaryBar() |
2212 | 109 | Tomate-202285 | |
2213 | 34 | Syzgyn-40270 | --Stuff for tab highlights |
2214 | Syzgyn-40270 | --Not happy with this, but it works till I find some better textures. |
|
2215 | Syzgyn-40270 | if self.currentTab == "achievements" then |
|
2216 | Syzgyn-40270 | self.frame.tabButtons[1]:LockHighlight() |
|
2217 | Syzgyn-40270 | self.frame.tabButtons[2]:UnlockHighlight() |
|
2218 | 107 | Tomate-202285 | self.frame.tabButtons[3]:UnlockHighlight() |
2219 | 34 | Syzgyn-40270 | else |
2220 | 107 | Tomate-202285 | if self.currentTab == "guild" then |
2221 | Tomate-202285 | self.frame.tabButtons[1]:UnlockHighlight() |
|
2222 | Tomate-202285 | self.frame.tabButtons[2]:UnlockHighlight() |
|
2223 | Tomate-202285 | self.frame.tabButtons[3]:LockHighlight() |
|
2224 | Tomate-202285 | else |
|
2225 | Tomate-202285 | self.frame.tabButtons[1]:UnlockHighlight() |
|
2226 | Tomate-202285 | self.frame.tabButtons[2]:LockHighlight() |
|
2227 | Tomate-202285 | self.frame.tabButtons[3]:UnlockHighlight() |
|
2228 | Tomate-202285 | end |
|
2229 | 34 | Syzgyn-40270 | end |
2230 | 8 | Syzgyn-40270 | end |
2231 | Syzgyn-40270 | ||
2232 | 20 | Syzgyn-40270 | function self:RefreshAchievementButtons(sortStr, shownID) |
2233 | 8 | Syzgyn-40270 | local count = 0 |
2234 | Syzgyn-40270 | local buttonNum = 1 |
|
2235 | Syzgyn-40270 | local prevId |
|
2236 | Syzgyn-40270 | --sortStr = true dont change the table, sort it |
|
2237 | Syzgyn-40270 | -- false dont change the table, dont sort it |
|
2238 | Syzgyn-40270 | -- nil reset the table, sort it by name then completed |
|
2239 | Syzgyn-40270 | if sortStr then |
|
2240 | Syzgyn-40270 | preserveSort(self.displayTable, self.sortFuncs[sortStr]) |
|
2241 | Syzgyn-40270 | elseif sortStr == nil then |
|
2242 | Syzgyn-40270 | self.displayTable = {} |
|
2243 | Syzgyn-40270 | for _, id in next, (self.seriesList[self.currentCat] or {}) do |
|
2244 | 43 | Syzgyn-40270 | --If we're searching, or comparing with the opposite faction, or its not in the list, or its the right faction, show |
2245 | Syzgyn-40270 | if self.currentCat == -2 or (self.isComparing and self.comparisonFaction ~= playerFaction) or (not UrbanAchiever.factionAchs[tostring(id)]) or UrbanAchiever.factionAchs[tostring(id)] == playerFaction then |
|
2246 | Syzgyn-40270 | tinsert(self.displayTable, id) |
|
2247 | Syzgyn-40270 | end |
|
2248 | 8 | Syzgyn-40270 | end |
2249 | Syzgyn-40270 | preserveSort(self.displayTable, self.sortFuncs["name a"]) |
|
2250 | Syzgyn-40270 | preserveSort(self.displayTable, self.sortFuncs["completed d"]) |
|
2251 | Syzgyn-40270 | end |
|
2252 | 109 | Tomate-202285 | |
2253 | 20 | Syzgyn-40270 | --Used to move the achievement scroll to show the ID we want. |
2254 | Syzgyn-40270 | if shownID then |
|
2255 | Syzgyn-40270 | --Make sure we're looking for the top achievement of the series. |
|
2256 | Syzgyn-40270 | local nextId = GetNextAchievement(shownID) |
|
2257 | Syzgyn-40270 | if nextId then |
|
2258 | Syzgyn-40270 | while nextId do |
|
2259 | Syzgyn-40270 | shownID = nextId |
|
2260 | Syzgyn-40270 | nextId = GetNextAchievement(nextId) |
|
2261 | Syzgyn-40270 | end |
|
2262 | Syzgyn-40270 | if GetPreviousAchievement(shownID) and (not GetNextAchievement(shownID)) then |
|
2263 | Syzgyn-40270 | self.expandList[shownID] = true |
|
2264 | Syzgyn-40270 | end |
|
2265 | Syzgyn-40270 | end |
|
2266 | Syzgyn-40270 | for count, id in next, self.displayTable do |
|
2267 | Syzgyn-40270 | if id == shownID then |
|
2268 | Syzgyn-40270 | if count > #self.frame.achButtons then |
|
2269 | Syzgyn-40270 | self.frame.achScroll:SetValue(count - #self.frame.achButtons) |
|
2270 | Syzgyn-40270 | end |
|
2271 | Syzgyn-40270 | break |
|
2272 | Syzgyn-40270 | end |
|
2273 | Syzgyn-40270 | end |
|
2274 | Syzgyn-40270 | end |
|
2275 | 109 | Tomate-202285 | |
2276 | 8 | Syzgyn-40270 | for _, id in next, self.displayTable do |
2277 | Syzgyn-40270 | count = count + 1 |
|
2278 | Syzgyn-40270 | if buttonNum <= #self.frame.achButtons and count > self.achOffset then |
|
2279 | Syzgyn-40270 | self:SetAchievementButton(buttonNum, id, 1) |
|
2280 | Syzgyn-40270 | buttonNum = buttonNum + 1 |
|
2281 | Syzgyn-40270 | end |
|
2282 | Syzgyn-40270 | prevId = GetPreviousAchievement(id) |
|
2283 | Syzgyn-40270 | if prevId and (not GetNextAchievement(id)) then |
|
2284 | Syzgyn-40270 | if (self.currentCat ~= -2) and (self.expandList[id]) then |
|
2285 | Syzgyn-40270 | while prevId do |
|
2286 | Syzgyn-40270 | count = count + 1 |
|
2287 | Syzgyn-40270 | if buttonNum <= #self.frame.achButtons and count > self.achOffset then |
|
2288 | Syzgyn-40270 | self:SetAchievementButton(buttonNum, prevId, 10) |
|
2289 | Syzgyn-40270 | buttonNum = buttonNum + 1 |
|
2290 | Syzgyn-40270 | end |
|
2291 | Syzgyn-40270 | prevId = GetPreviousAchievement(prevId) |
|
2292 | Syzgyn-40270 | end |
|
2293 | Syzgyn-40270 | end |
|
2294 | Syzgyn-40270 | end |
|
2295 | Syzgyn-40270 | end |
|
2296 | 109 | Tomate-202285 | |
2297 | 8 | Syzgyn-40270 | --Start summary category stuff. We assume all the above stuff has done nothing. |
2298 | Syzgyn-40270 | if self.currentCat == -1 then --Summary category |
|
2299 | 109 | Tomate-202285 | --Incredibly hackish on my part :\ |
2300 | 8 | Syzgyn-40270 | self.frame.achButtons[buttonNum]:SetWidth(300) |
2301 | 86 | Tomate-202285 | self.frame.achButtons[buttonNum].name:SetText(UARecentAchiev .. ":") |
2302 | 8 | Syzgyn-40270 | self.frame.achButtons[buttonNum].completed:SetText("") |
2303 | Syzgyn-40270 | self.frame.achButtons[buttonNum].compare:SetText("") |
|
2304 | Syzgyn-40270 | self.frame.achButtons[buttonNum].points:SetText("") |
|
2305 | 10 | Syzgyn-40270 | self.frame.achButtons[buttonNum].stat:SetText("") |
2306 | 8 | Syzgyn-40270 | self.frame.achButtons[buttonNum]:SetID(-1) |
2307 | Syzgyn-40270 | self.frame.achButtons[buttonNum].expand:Hide() |
|
2308 | Syzgyn-40270 | self.frame.achButtons[buttonNum].comparison:Hide() |
|
2309 | Syzgyn-40270 | self.frame.achButtons[buttonNum].background:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Parchment-Horizontal-Desaturated") |
|
2310 | 12 | Syzgyn-40270 | self.frame.achButtons[buttonNum].comparison.background:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Parchment-Horizontal-Desaturated") |
2311 | 8 | Syzgyn-40270 | self.frame.achButtons[buttonNum].offset:SetWidth(1) |
2312 | 10 | Syzgyn-40270 | self.frame.achButtons[buttonNum]:UnlockHighlight() |
2313 | 133 | Tomate-202285 | self.frame.achButtons[buttonNum].background:SetVertexColor(1, 1, 1) |
2314 | 109 | Tomate-202285 | if self.isComparing then |
2315 | 12 | Syzgyn-40270 | self.frame.achButtons[buttonNum]:SetWidth(370) |
2316 | Syzgyn-40270 | self.frame.achButtons[buttonNum].comparison:Show() |
|
2317 | Syzgyn-40270 | end |
|
2318 | 8 | Syzgyn-40270 | self.frame.achButtons[buttonNum]:Show() |
2319 | Syzgyn-40270 | buttonNum = buttonNum + 1 |
|
2320 | 109 | Tomate-202285 | |
2321 | 8 | Syzgyn-40270 | for k,id in next, {GetLatestCompletedAchievements()} do |
2322 | Syzgyn-40270 | self:SetAchievementButton(buttonNum, id) |
|
2323 | Syzgyn-40270 | buttonNum = buttonNum + 1 |
|
2324 | Syzgyn-40270 | end |
|
2325 | 109 | Tomate-202285 | |
2326 | 116 | Tomate-202285 | self.frame.achButtons[buttonNum]:Hide() |
2327 | Tomate-202285 | buttonNum = buttonNum + 1 |
|
2328 | 133 | Tomate-202285 | |
2329 | 8 | Syzgyn-40270 | self.frame.achButtons[buttonNum]:SetWidth(300) |
2330 | 109 | Tomate-202285 | self.frame.achButtons[buttonNum].name:SetText(UARecentGuildAchiev .. ":") |
2331 | Tomate-202285 | self.frame.achButtons[buttonNum].completed:SetText("") |
|
2332 | Tomate-202285 | self.frame.achButtons[buttonNum].compare:SetText("") |
|
2333 | Tomate-202285 | self.frame.achButtons[buttonNum].points:SetText("") |
|
2334 | Tomate-202285 | self.frame.achButtons[buttonNum].stat:SetText("") |
|
2335 | Tomate-202285 | self.frame.achButtons[buttonNum]:SetID(-1) |
|
2336 | Tomate-202285 | self.frame.achButtons[buttonNum].expand:Hide() |
|
2337 | Tomate-202285 | self.frame.achButtons[buttonNum].comparison:Hide() |
|
2338 | Tomate-202285 | self.frame.achButtons[buttonNum].background:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Parchment-Horizontal-Desaturated") |
|
2339 | Tomate-202285 | self.frame.achButtons[buttonNum].comparison.background:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Parchment-Horizontal-Desaturated") |
|
2340 | Tomate-202285 | self.frame.achButtons[buttonNum].offset:SetWidth(1) |
|
2341 | Tomate-202285 | self.frame.achButtons[buttonNum]:UnlockHighlight() |
|
2342 | 133 | Tomate-202285 | self.frame.achButtons[buttonNum].background:SetVertexColor(1, 1, 1) |
2343 | 109 | Tomate-202285 | if self.isComparing then |
2344 | Tomate-202285 | self.frame.achButtons[buttonNum]:SetWidth(370) |
|
2345 | Tomate-202285 | self.frame.achButtons[buttonNum].comparison:Show() |
|
2346 | Tomate-202285 | end |
|
2347 | Tomate-202285 | self.frame.achButtons[buttonNum]:Show() |
|
2348 | Tomate-202285 | buttonNum = buttonNum + 1 |
|
2349 | Tomate-202285 | ||
2350 | Tomate-202285 | for k,id in next, {GetLatestCompletedAchievements(true)} do |
|
2351 | Tomate-202285 | self:SetAchievementButton(buttonNum, id) |
|
2352 | Tomate-202285 | buttonNum = buttonNum + 1 |
|
2353 | Tomate-202285 | end |
|
2354 | Tomate-202285 | ||
2355 | Tomate-202285 | if self.currentTab == "guild" then |
|
2356 | Tomate-202285 | self:HideCategorySum() |
|
2357 | Tomate-202285 | self:ShowCategorySumGuild() |
|
2358 | Tomate-202285 | else |
|
2359 | Tomate-202285 | self:HideCategorySumGuild() |
|
2360 | Tomate-202285 | self:ShowCategorySum() |
|
2361 | Tomate-202285 | end |
|
2362 | Tomate-202285 | else |
|
2363 | Tomate-202285 | self:HideCategorySumGuild() |
|
2364 | Tomate-202285 | self:HideCategorySum() |
|
2365 | Tomate-202285 | end |
|
2366 | 8 | Syzgyn-40270 | --End summary category stuff. |
2367 | 109 | Tomate-202285 | |
2368 | 8 | Syzgyn-40270 | --Scroll bar Stuff |
2369 | Syzgyn-40270 | self.frame.achScroll:SetMinMaxValues(0,math.max(count-#self.frame.achButtons, 0)) |
|
2370 | Syzgyn-40270 | if count-#self.frame.achButtons > 0 then |
|
2371 | Syzgyn-40270 | self.frame.achScroll:Show() |
|
2372 | Syzgyn-40270 | else |
|
2373 | Syzgyn-40270 | self.frame.achScroll:Hide() |
|
2374 | Syzgyn-40270 | end |
|
2375 | Syzgyn-40270 | for i = buttonNum, #self.frame.achButtons do |
|
2376 | Syzgyn-40270 | self.frame.achButtons[i]:Hide() |
|
2377 | Syzgyn-40270 | self.frame.achButtons[i].offset:SetWidth(1) |
|
2378 | Syzgyn-40270 | end |
|
2379 | Syzgyn-40270 | end |
|
2380 | Syzgyn-40270 | ||
2381 | 120 | Tomate-202285 | function self:GetRealCategoryNumAchievements(id) |
2382 | Tomate-202285 | local numItems, numCompleted = 0, 0 |
|
2383 | Tomate-202285 | if self.achieveList[id] ~= nil then |
|
2384 | Tomate-202285 | for k,v in pairs(self.achieveList[id]) do |
|
2385 | Tomate-202285 | numItems = numItems+1 |
|
2386 | Tomate-202285 | if v then |
|
2387 | Tomate-202285 | numCompleted = numCompleted+1 |
|
2388 | Tomate-202285 | end |
|
2389 | Tomate-202285 | end |
|
2390 | Tomate-202285 | end |
|
2391 | Tomate-202285 | return numItems, numCompleted |
|
2392 | Tomate-202285 | end |
|
2393 | Tomate-202285 | ||
2394 | 32 | Syzgyn-40270 | function self:RefreshSummaryBar() |
2395 | 135 | Tomate-202285 | self.frame.summaryBar:Hide() |
2396 | Tomate-202285 | self.frame.summaryBar:SetID(self.currentCat) |
|
2397 | Tomate-202285 | self.frame.summaryBar:Show() |
|
2398 | 109 | Tomate-202285 | |
2399 | 135 | Tomate-202285 | if self.isComparing then |
2400 | Tomate-202285 | self.frame.summaryBar:SetWidth(200) |
|
2401 | Tomate-202285 | self.frame.comparisonSummaryBar:Hide() |
|
2402 | Tomate-202285 | self.frame.comparisonSummaryBar.name:SetText('('..self.comparisonUnitName..')') |
|
2403 | Tomate-202285 | self.frame.comparisonSummaryBar:SetID(self.currentCat) |
|
2404 | Tomate-202285 | self.frame.comparisonSummaryBar:Show() |
|
2405 | 32 | Syzgyn-40270 | else |
2406 | 135 | Tomate-202285 | self.frame.summaryBar:SetWidth(330) |
2407 | Tomate-202285 | self.frame.comparisonSummaryBar:Hide() |
|
2408 | 32 | Syzgyn-40270 | end |
2409 | Syzgyn-40270 | end |
|
2410 | 2 | Syzgyn-40270 | ------------------------------------------------------------- |
2411 | 109 | Tomate-202285 | --Comparison Stuff |
2412 | 2 | Syzgyn-40270 | ------------------------------------------------------------- |
2413 | Syzgyn-40270 | function self:ComparisonUpdate() |
|
2414 | Syzgyn-40270 | if self.isComparing and (self.comparisonUnit ~= "") then |
|
2415 | Syzgyn-40270 | self.comparison:Show() |
|
2416 | Syzgyn-40270 | self.frame.achSort.comparison:Show() |
|
2417 | Syzgyn-40270 | self.compPointsText:SetText(GetComparisonAchievementPoints()) |
|
2418 | Syzgyn-40270 | if UnitExists(self.comparisonUnit) then |
|
2419 | 86 | Tomate-202285 | self.compHeaderText:SetText(string.format(UAComparing .. " %s", self.comparisonUnitName)) |
2420 | 2 | Syzgyn-40270 | end |
2421 | Syzgyn-40270 | else |
|
2422 | Syzgyn-40270 | self.comparison:Hide() |
|
2423 | Syzgyn-40270 | self.frame.achSort.comparison:Hide() |
|
2424 | Syzgyn-40270 | self.comparisonUnit = "" |
|
2425 | Syzgyn-40270 | end |
|
2426 | 36 | Syzgyn-40270 | self:RefreshSummaryBar() |
2427 | 2 | Syzgyn-40270 | end |
2428 | Syzgyn-40270 | ||
2429 | Syzgyn-40270 | function self:SetComparisonUnit(unit) |
|
2430 | Syzgyn-40270 | if not UnitExists(unit) then return end |
|
2431 | 109 | Tomate-202285 | |
2432 | 43 | Syzgyn-40270 | self.isComparing = true |
2433 | Syzgyn-40270 | self.comparisonUnit = unit |
|
2434 | Syzgyn-40270 | self.comparisonUnitName = UnitName(unit) |
|
2435 | Syzgyn-40270 | self.comparisonFaction = UnitFactionGroup(unit) == "Alliance" and 1 or 2 |
|
2436 | 109 | Tomate-202285 | |
2437 | 2 | Syzgyn-40270 | ClearAchievementComparisonUnit() |
2438 | Syzgyn-40270 | SetAchievementComparisonUnit(unit) |
|
2439 | 135 | Tomate-202285 | end |