WoWInterface SVN UrbanAchiever

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /trunk
    from Rev 57 to Rev 58
    Reverse comparison

Rev 57 → Rev 58

Main.lua
171,6 → 171,8
end
}
 
self.timers = {}
 
SLASH_URBANACHIEVER1 = "/urbanachiever"
SLASH_URBANACHIEVER2 = "/ua"
SlashCmdList["URBANACHIEVER"] = function(msg)
199,6 → 201,7
},
["statCriteria"] = true,
["moneyAsColor"] = false,
["trackTimed"] = true,
}
-------------------------------------------------------------
--Startup Stuff
228,6 → 231,7
self:SetDisplayAchievement()
self.masterList[arg1].searchString = self:GetSearchString(arg1)
self:SubTracker(arg1)
self.timers[arg1] = nil
self:TrackerUpdate()
end)
self:RegisterEvent("CRITERIA_UPDATE", function()
238,11 → 242,28
self:RegisterEvent("INSPECT_ACHIEVEMENT_READY", function()
if self.isComparing then
self:ComparisonUpdate()
self:RefreshAchievementButtons(false)
self:RefreshAchievementButtons(false)
self.frame:Show()
end
end)
 
--I loooooove that this event gets called for any achievement, not just when you're tracking it.
self:RegisterEvent("TRACKED_ACHIEVEMENT_UPDATE", function(event, ...)
local id, _,elapsed, duration = ...
self:Print(...)
if duration then
if UASVPC.trackTimed then self:AddTracker(id) end
if self.timers[id] and GetTime() - self.timers[id].start >= self.timers[id].duration then
--Timer has expired, wipe it.
self.timers[id] = nil
else
--No timer, or timer hasn't expired, refresh it
self.timers[id] = {["start"] = GetTime() - elapsed, ["duration"] = duration}
end
end
self:TrackerUpdate()
end)
 
--Use a different button so InspectAchievements() doesnt get called. Easier hooking.
UnitPopupButtons["UA_ACHIEVEMENTS"] = { text = COMPARE_ACHIEVEMENTS, dist = 1 };
--Replace their Acheivement Button with mine.
722,7 → 743,7
self.frame.comparisonSummaryBar.name:SetWidth(300)
 
--Category Scroll Bar
self.frame.catScroll = CreateFrame("Slider", "$parentCatSlider", self.frame, "UIPanelScrollBarTemplate")
self.frame.catScroll = CreateFrame("Slider", "$parentCatSlider", self.frame.category, "UIPanelScrollBarTemplate")
self.frame.catScroll:SetPoint("TOPLEFT", self.frame.catButtons[2], "TOPRIGHT")
self.frame.catScroll:SetPoint("BOTTOMLEFT", self.frame.catButtons[#self.frame.catButtons - 1], "BOTTOMRIGHT")
self.frame.catScroll:SetWidth(16)
1045,7 → 1066,7
if ChatFrameEditBox:IsVisible() and IsModifiedClick("CHATLINK") then
self:InsertIntoChat(id)
elseif IsShiftKeyDown() then
self:AddTracker(id)
self:ToggleTracker(id)
self:RefreshAchievementButtons(false)
else
self.currentAch = id
1540,7 → 1561,9
str = "|CFF808080"
end
str = str .. criteriaName -- .. "= " .. criteriaQuantity .. " (" .. criteriaAssetID .. ")"
 
if UASVPC.specificCriteria and criteriaReqQuantity > 1 then
str = string.format("%s (%d/%d)", str, criteriaQuantity, criteriaReqQuantity)
end
if self.isComparing and not compDone and UASVPC.statCriteria then
compCriteriaText,comparisonComplete = GetCriteriaComparisonInfo(self.currentAch, a, 1)
 
1944,6 → 1967,8
self.tracker.achievements[i] = self:CreateTrackerAchievementFrame("$parentAchievement" .. i, self.tracker)
self.tracker.achievements[i]:SetPoint("TOPLEFT", self.tracker.achievements[i-1], "BOTTOMLEFT")
end
 
self.tracker:SetScript("OnUpdate", function() self:TrackerOnUpdate() end)
end
 
function self:CreateTrackerAchievementFrame(name, parent)
2046,10 → 2071,19
self.tracker.achievements[num].bar.text:SetText(cQ .. " / " .. cRQ)
height = height + 20
else
if UASVPC.specificCriteria and cReqQuantity > 1 then
cName = string.format("%s (%d/%d)", cName, cQuantity, cReqQuantity)
end
str = str .. " - " .. cName .. "\n"
end
end
end
if self.timers[id] then --There's an active timer for this achievement, display it
local timer = self.timers[id]
local timeLeft = math.floor(timer.start + timer.duration - GetTime())
str = str .. " - " .. SecondsToTime(timeLeft) .. "\n"
end
 
else --Its a Statistic, display the stat
self.tracker.achievements[num].icon:Hide()
str = "|cffffffff - " .. GetStatistic(id)
2060,14 → 2094,23
self.tracker.achievements[num]:Show()
end
 
function self:ToggleTracker(id)
if self:IsTracking(id) then
self:SubTracker(id)
else
self:AddTracker(id)
end
end
 
function self:AddTracker(id)
--Make sure we're not already tracking
for i=1, #self.tracker.achievements do
if self.tracker.achievements[i]:GetID() == id then
self:SubTracker(id)
return
if self.tracker.achievements[i]:GetID() == id then
self:SetTrackerAchievement(i, id) --Refresh it for timer purposes
return
end
end
 
--Add to the end
for i=1, #self.tracker.achievements do
if self.tracker.achievements[i]:GetID() == 0 then
2120,3 → 2163,11
end
end
end
 
function self:TrackerOnUpdate()
for id,_ in next, self.timers do
if self:IsTracking(id) then
self:AddTracker(id)
end
end
end
Options.lua
95,6 → 95,38
mC:SetChecked(UASVPC.moneyAsColor)
end)
 
local dS = CreateFrame("CheckButton", "UACB3", panel, "OptionsCheckButtonTemplate")
dS:SetPoint("TOPLEFT", mC, "BOTTOMLEFT", 0, -10)
dS.text = getglobal(dS:GetName() .. "Text")
dS.text:SetText("Detailed Criteria")
dS.tooltipText = "Show the progress of individual criteria."
dS:SetChecked(UASVPC.specificCriteria)
dS:SetScript("OnClick", function()
if dS:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOn")
else
PlaySound("igMainMenuOptionCheckBoxOff")
end
UASVPC.specificCriteria = not UASVPC.specificCriteria
dS:SetChecked(UASVPC.specificCriteria)
end)
 
local tT = CreateFrame("CheckButton", "UACB4", panel, "OptionsCheckButtonTemplate")
tT:SetPoint("TOPLEFT", dS, "BOTTOMLEFT", 0, -10)
tT.text = getglobal(tT:GetName() .. "Text")
tT.text:SetText("Auto-track timed Achievements")
tT.tooltipText = "Will begin tracking achievements when a timer is started for one."
tT:SetChecked(UASVPC.trackTimed)
tT:SetScript("OnClick", function()
if tT:GetChecked() then
PlaySound("igMainMenuOptionCheckBoxOn")
else
PlaySound("igMainMenuOptionCheckBoxOff")
end
UASVPC.trackTimed = not UASVPC.trackTimed
tT:SetChecked(UASVPC.trackTimed)
end)
 
InterfaceOptions_AddCategory(panel)
UrbanAchiever:AddHelpPanel()
end